diff --git a/src/inc/sndseq.plh b/src/inc/sndseq.plh index 5378ee9..97dc00a 100644 --- a/src/inc/sndseq.plh +++ b/src/inc/sndseq.plh @@ -1,7 +1,7 @@ import sndseq word musicSequence // musicSequence(yield, backgroundProc)#0 - word spkrTone // spkrTone(pitch, duration)#0 - word spkrPWM // spkrPWM(sample, speed, len)#0 + word tonePlay // tonePlay(pitch, duration)#0 + word pcmPlay // pcmPlay(samples, pagecnt)#0 predef musicPlay(track, rept)#0, musicStop#0, musicSimple predef musicGetKey(yield, backgroundProc)#1, musicRead(filename)#1 end diff --git a/src/libsrc/apple/sndseq.pla b/src/libsrc/apple/sndseq.pla index 131f974..c5b7207 100755 --- a/src/libsrc/apple/sndseq.pla +++ b/src/libsrc/apple/sndseq.pla @@ -66,14 +66,14 @@ predef musicPlay(track, rept)#0 predef musicStop#0 predef spkrSequence(yield, func)#0 predef a2spkrTone(pitch, duration)#0 -predef a2spkrPWM(sample, speed, len)#0 +predef a2spkrPCM(samples, pagecnt)#0 predef a2keypressed // // Static sequencer values // export word musicSequence = @spkrSequence -export word spkrTone = @a2spkrTone -export word spkrPWM = @a2spkrPWM +export word tonePlay = @a2spkrTone +export word pcmPlay = @a2spkrPCM word keypressed = @a2keypressed word instr[] // Overlay with other variables @@ -315,42 +315,45 @@ TONEXIT PLP INX RTS end -asm a2spkrPWM(sample, speed, len)#0 - STX ESP - LDY ESTKH,X +asm a2spkrPCM(samples, pagecnt)#0 +PWM_DIV = 3 +PWM_DLY = $100/PWM_DIV LDA ESTKL,X - BEQ + - INY -+ STY DSTH - STA DSTL - LDA ESTKL+2,X + STA TMP + LDA ESTKL+1,X STA SRCL - LDA ESTKH+2,X + LDA ESTKH+1,X STA SRCH - LDY ESTKL+1,X - INY - STY TMPL - LDY #$00 PHP SEI -- LDA (SRC),Y - SEC --- LDX TMPL ---- DEX - BNE --- - SBC #$01 - BCS -- - BIT $C030 - INY - BNE + + LDY #$00 +PWM_OUT LDA (SRC),Y ; 5 + STA $C030 ; 4 + LSR ; 2 + LSR ; 2 + LSR ; 2 + ;LSR ; 2 + ; 17 +end +asm pwm_on + STA ON_BR+1 ; 4 +ON_BR BNE OFF_BR ; 3 + !FILL 31, $EA ; 15 * 2 NOPs + EOR #$1F ; 2 + STA $C030 ; 4 + ; 43 +end +asm pwm_off + STA OFF_BR+1 ; 4 +OFF_BR BNE ON_BR ; 3 + !FILL 31, $EA ; 15 * 2 NOPs + INY ; 2 + BNE PWM_OUT ; 3 + ; 12 INC SRCH -+ DEC DSTL - BNE - - DEC DSTH - BNE - - PLP - LDX ESP - INX + DEC TMP + BNE PWM_OUT +PCMEX PLP INX INX RTS @@ -389,12 +392,12 @@ def a3spkrTone(pitch, duration)#0 a2spkrTone(pitch, duration) ^ENV_REG = env end -def a3spkrPWM(sample, speed, len)#0 +def a3spkrPCM(samples, pagecnt)#0 byte env env = ^ENV_REG ^ENV_REG = env | $C0 - a2spkrPWM(sample, speed, len) + a2spkrPCM(samples, pagecnt) ^ENV_REG = env end // @@ -736,7 +739,7 @@ def spkrSequence(yield, func)#0 // Percussion event // if seqEvent->perchanvol - //spkrPWM($D000, 0, 64) // Play some random sample as percussion + //pcmPlay($D000, 0, 64) // Play some random sample as percussion else if seqRepeat musicPlay(seqTrack, TRUE) @@ -755,7 +758,7 @@ def spkrSequence(yield, func)#0 if numNotes > 1 for i = 0 to MAX_SPKR_NOTES-1 if notes1[i] - spkrTone(periods1[i], arpeggioDuration[numNotes])#0 + tonePlay(periods1[i], arpeggioDuration[numNotes])#0 fin next seqTime++ @@ -769,7 +772,7 @@ def spkrSequence(yield, func)#0 next duration = eventTime - seqTime seqTime = duration + seqTime - spkrTone(period, DUR16TH * duration)#0 + tonePlay(period, DUR16TH * duration)#0 fin if yieldTime <= seqTime; func()#0; yieldTime = seqTime + yield; fin until keypressed() @@ -788,7 +791,7 @@ def noSequence(yield, func)#0 repeat seqTime++ if seqTime < 0; seqTime = 1; fin // Capture wrap-around - spkrTone(0, DUR16TH) // Waste 16th of a second playing silence + tonePlay(0, DUR16TH) // Waste 16th of a second playing silence if keypressed(); return; fin if yield == seqTime; func()#0; seqTime = 0; fin until FALSE @@ -868,8 +871,8 @@ end when MACHID & MACHID_MODEL is MACHID_III - spkrTone = @a3spkrTone - spkrPWM = @a3spkrPWM + tonePlay = @a3spkrTone + pcmPlay = @a3spkrPCM keypressed = @a3keypressed break is MACHID_I @@ -897,6 +900,11 @@ if mbSlot < 0 next fin // +// Fixups +// +pwm_on:1 = @pwm_on+4 +pwm_off:1 = @pwm_off+4 +// // Keep module in memory // done diff --git a/src/makefile b/src/makefile index 39301d1..42e33b0 100755 --- a/src/makefile +++ b/src/makefile @@ -48,6 +48,7 @@ FPSTR = rel/FPSTR\#FE1000 FPU = rel/FPU\#FE1000 SNDSEQ = rel/apple/SNDSEQ\#FE1000 PLAYSEQ = rel/apple/PLAYSEQ\#FE1000 +PLAYWAV = rel/apple/PLAYWAV\#FE1000 SANITY = rel/SANITY\#FE1000 RPNCALC = rel/RPNCALC\#FE1000 LZ4 = rel/LZ4\#FE1000 @@ -119,7 +120,16 @@ TXTTYPE = .TXT #SYSTYPE = \#FF2000 #TXTTYPE = \#040000 -apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) $(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) $(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) $(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) $(INITSLOT) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) $(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) $(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(GRLIB) $(DGRLIB) $(VBLANK) $(GRTEST) $(DGRTEST) $(HGRTEST) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) $(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) $(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(CONIOTEST) +apple: $(PLVMZP_APL) $(PLASM) $(PLVM) $(PLVM01) $(PLVM02) $(PLVMJIT) $(PLVM802) $(PLVM03) $(PLVMJIT03) \ +$(CMD) $(CMDJIT) $(JIT) $(JIT16) $(JITUNE) $(SOSCMD) $(SOSCMDJIT) $(PLASMAPLASM) $(CODEOPT) $(PLFORTH) \ +$(HRFORTH) $(HR2FORTH) $(TX2FORTH) $(SEXPR) $(SMATH) $(DRAWL) $(ZIPCHIP) $(MATCHFILES) $(ARGS) $(MEMMGR) \ +$(MEMTEST) $(FIBER) $(FIBERTEST) $(LONGJMP) $(ED) $(MON) $(COPY) $(DEL) $(REN) $(CAT) $(NEWDIR) $(TYPE) \ +$(INITSLOT) $(SOS) $(ROD) $(SIEVE) $(PRIMEGAP) $(MOUSE) $(UTHERNET2) $(UTHERNET) $(ETHERIP) $(INET) $(DHCP) \ +$(HTTPD) $(TFTPD) $(ROGUE) $(ROGUEMAP) $(ROGUECOMBAT) $(SFM) $(SFMSPRT) $(GRAFIX) $(GFXDEMO) $(LINES) \ +$(HGRTILE) $(HGRFONT) $(HGRSPRITE) $(HGRLIB) $(TILETEST) $(HGRTEST) $(GRLIB) $(DGRLIB) $(VBLANK) \ +$(GRTEST) $(DGRTEST) $(HGRTEST) $(FILEIO_APL) $(CONIO_APL) $(JOYBUZZ) $(PORTIO) $(SPIPORT) \ +$(SDFAT) $(FATCAT) $(FATGET) $(FATPUT) $(FATWDSK) $(FATRDSK) $(INT32) $(INT32TEST) $(SANE) $(FPSTR) $(FPU) $(SANITY) \ +$(LZ4) $(LZ4CAT) $(RPNCALC) $(SNDSEQ) $(PLAYSEQ) $(PLAYWAV) $(CONIOTEST) -rm vmsrc/plvmzp.inc @@ -433,6 +443,10 @@ $(PLAYSEQ): samplesrc/playseq.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW samplesrc/playseq.pla acme --setpc 4094 -o $(PLAYSEQ) samplesrc/playseq.a +$(PLAYWAV): samplesrc/playwav.pla $(PLVM02) $(PLASM) + ./$(PLASM) -AMOW samplesrc/playwav.pla + acme --setpc 4094 -o $(PLAYWAV) samplesrc/playwav.a + $(GRAFIX): libsrc/apple/grafix.pla $(PLVM02) $(PLASM) ./$(PLASM) -AMOW libsrc/apple/grafix.pla acme --setpc 4094 -o $(GRAFIX) libsrc/apple/grafix.a diff --git a/src/mkrel b/src/mkrel index 21a810f..1cd39c5 100755 --- a/src/mkrel +++ b/src/mkrel @@ -2,198 +2,201 @@ make apple -cp rel/apple/CMD#061000 prodos/CMD.BIN -cp rel/apple/CMD.128#061000 prodos/CMD.128.BIN +cp rel/apple/CMD#061000 prodos/CMD.BIN +cp rel/apple/CMD.128#061000 prodos/CMD.128.BIN cp rel/apple/PLASMA.SYSTEM#FF2000 prodos/PLASMA.SYSTEM.SYS -cp rel/apple/PLVM.128#FF2000 prodos/PLVM.128.SYS -cp rel/apple/PLVM16#FF2000 prodos/PLVM16.SYS -cp ../doc/Editor.md prodos/EDITOR.README.TXT +cp rel/apple/PLVM.128#FF2000 prodos/PLVM.128.SYS +cp rel/apple/PLVM16#FF2000 prodos/PLVM16.SYS +cp ../doc/Editor.md prodos/EDITOR.README.TXT rm -rf prodos/sys mkdir prodos/sys -cp rel/apple/FILEIO#FE1000 prodos/sys/FILEIO.REL -cp rel/apple/CONIO#FE1000 prodos/sys/CONIO.REL -cp rel/LINES#FE1000 prodos/sys/LINES.REL -cp rel/apple/HGRFONT#FE1000 prodos/sys/HGRFONT.REL -cp rel/apple/HGRTILE#FE1000 prodos/sys/HGRTILE.REL -cp rel/apple/HGRSPRITE#FE1000 prodos/sys/HGRSPRITE.REL -cp rel/apple/HGRLIB#FE1000 prodos/sys/HGRLIB.REL -cp rel/apple/GRLIB#FE1000 prodos/sys/GRLIB.REL -cp rel/apple/DGRLIB#FE1000 prodos/sys/DGRLIB.REL -cp rel/apple/VBLANK#FE1000 prodos/sys/VBLANK.REL -cp rel/apple/COPY#FE1000 prodos/sys/COPY.REL -cp rel/apple/DEL#FE1000 prodos/sys/DEL.REL -cp rel/apple/REN#FE1000 prodos/sys/REN.REL -cp rel/apple/CAT#FE1000 prodos/sys/CAT.REL -cp rel/apple/NEWDIR#FE1000 prodos/sys/NEWDIR.REL -cp rel/apple/TYPE#FE1000 prodos/sys/TYPE.REL -cp rel/apple/INITSLOT#FE1000 prodos/sys/INITSLOT.REL -cp rel/apple/MATCHFILES#FE1000 prodos/sys/MATCHFILES.REL -cp rel/LZ4CAT#FE1000 prodos/sys/LZ4CAT.REL -cp rel/ARGS#FE1000 prodos/sys/ARGS.REL -cp rel/ED#FE1000 prodos/sys/ED.REL -cp rel/FIBER#FE1000 prodos/sys/FIBER.REL -cp rel/LONGJMP#FE1000 prodos/sys/LONGJMP.REL -cp rel/MEMMGR#FE1000 prodos/sys/MEMMGR.REL -cp rel/INET#FE1000 prodos/sys/INET.REL -cp rel/DHCP#FE1000 prodos/sys/DHCP.REL -cp rel/ETHERIP#FE1000 prodos/sys/ETHERIP.REL -cp rel/apple/MOUSE#FE1000 prodos/sys/MOUSE.REL -cp rel/apple/UTHERNET2#FE1000 prodos/sys/UTHERNET2.REL -cp rel/apple/UTHERNET#FE1000 prodos/sys/UTHERNET.REL -cp rel/apple/PORTIO#FE1000 prodos/sys/PORTIO.REL -cp rel/apple/JOYBUZZ#FE1000 prodos/sys/JOYBUZZ.REL -cp rel/apple/SNDSEQ#FE1000 prodos/sys/SNDSEQ.REL -cp rel/apple/JIT#FE1000 prodos/sys/JIT.REL -cp rel/apple/JIT16#FE1000 prodos/sys/JIT16.REL -cp rel/apple/JITUNE#FE1000 prodos/sys/JITUNE.REL -cp rel/apple/ZIPCHIP#FE1000 prodos/sys/ZIPCHIP.REL -cp rel/LZ4#FE1000 prodos/sys/LZ4.REL -cp rel/TFTPD#FE1000 prodos/sys/TFTPD.REL -cp rel/INT32#FE1000 prodos/sys/INT32.REL -cp rel/FPSTR#FE1000 prodos/sys/FPSTR.REL -cp rel/FPU#FE1000 prodos/sys/FPU.REL -cp rel/SANE#FE1000 prodos/sys/SANE.REL +cp rel/apple/FILEIO#FE1000 prodos/sys/FILEIO.REL +cp rel/apple/CONIO#FE1000 prodos/sys/CONIO.REL +cp rel/LINES#FE1000 prodos/sys/LINES.REL +cp rel/apple/HGRFONT#FE1000 prodos/sys/HGRFONT.REL +cp rel/apple/HGRTILE#FE1000 prodos/sys/HGRTILE.REL +cp rel/apple/HGRSPRITE#FE1000 prodos/sys/HGRSPRITE.REL +cp rel/apple/HGRLIB#FE1000 prodos/sys/HGRLIB.REL +cp rel/apple/GRLIB#FE1000 prodos/sys/GRLIB.REL +cp rel/apple/DGRLIB#FE1000 prodos/sys/DGRLIB.REL +cp rel/apple/VBLANK#FE1000 prodos/sys/VBLANK.REL +cp rel/apple/COPY#FE1000 prodos/sys/COPY.REL +cp rel/apple/DEL#FE1000 prodos/sys/DEL.REL +cp rel/apple/REN#FE1000 prodos/sys/REN.REL +cp rel/apple/CAT#FE1000 prodos/sys/CAT.REL +cp rel/apple/NEWDIR#FE1000 prodos/sys/NEWDIR.REL +cp rel/apple/TYPE#FE1000 prodos/sys/TYPE.REL +cp rel/apple/INITSLOT#FE1000 prodos/sys/INITSLOT.REL +cp rel/apple/MATCHFILES#FE1000 prodos/sys/MATCHFILES.REL +cp rel/LZ4CAT#FE1000 prodos/sys/LZ4CAT.REL +cp rel/ARGS#FE1000 prodos/sys/ARGS.REL +cp rel/ED#FE1000 prodos/sys/ED.REL +cp rel/FIBER#FE1000 prodos/sys/FIBER.REL +cp rel/LONGJMP#FE1000 prodos/sys/LONGJMP.REL +cp rel/MEMMGR#FE1000 prodos/sys/MEMMGR.REL +cp rel/INET#FE1000 prodos/sys/INET.REL +cp rel/DHCP#FE1000 prodos/sys/DHCP.REL +cp rel/ETHERIP#FE1000 prodos/sys/ETHERIP.REL +cp rel/apple/MOUSE#FE1000 prodos/sys/MOUSE.REL +cp rel/apple/UTHERNET2#FE1000 prodos/sys/UTHERNET2.REL +cp rel/apple/UTHERNET#FE1000 prodos/sys/UTHERNET.REL +cp rel/apple/PORTIO#FE1000 prodos/sys/PORTIO.REL +cp rel/apple/JOYBUZZ#FE1000 prodos/sys/JOYBUZZ.REL +cp rel/apple/SNDSEQ#FE1000 prodos/sys/SNDSEQ.REL +cp rel/apple/JIT#FE1000 prodos/sys/JIT.REL +cp rel/apple/JIT16#FE1000 prodos/sys/JIT16.REL +cp rel/apple/JITUNE#FE1000 prodos/sys/JITUNE.REL +cp rel/apple/ZIPCHIP#FE1000 prodos/sys/ZIPCHIP.REL +cp rel/LZ4#FE1000 prodos/sys/LZ4.REL +cp rel/TFTPD#FE1000 prodos/sys/TFTPD.REL +cp rel/INT32#FE1000 prodos/sys/INT32.REL +cp rel/FPSTR#FE1000 prodos/sys/FPSTR.REL +cp rel/FPU#FE1000 prodos/sys/FPU.REL +cp rel/SANE#FE1000 prodos/sys/SANE.REL cp ../sysfiles/FP6502.CODE#060000 prodos/sys/FP6502.CODE.BIN -cp ../sysfiles/ELEMS.CODE#060000 prodos/sys/ELEMS.CODE.BIN -cp rel/apple/SOS#FE1000 prodos/sys/SOS.REL -cp rel/apple/GRAFIX#FE1000 prodos/sys/GRAFIX.REL -cp rel/HRFORTH#FE1000 prodos/sys/HRFORTH.REL -cp rel/HR2FORTH#FE1000 prodos/sys/HR2FORTH.REL -cp rel/TX2FORTH#FE1000 prodos/sys/TX2FORTH.REL -cp rel/PLFORTH#FE1000 prodos/sys/PLFORTH.REL +cp ../sysfiles/ELEMS.CODE#060000 prodos/sys/ELEMS.CODE.BIN +cp rel/apple/SOS#FE1000 prodos/sys/SOS.REL +cp rel/apple/GRAFIX#FE1000 prodos/sys/GRAFIX.REL +cp rel/HRFORTH#FE1000 prodos/sys/HRFORTH.REL +cp rel/HR2FORTH#FE1000 prodos/sys/HR2FORTH.REL +cp rel/TX2FORTH#FE1000 prodos/sys/TX2FORTH.REL +cp rel/PLFORTH#FE1000 prodos/sys/PLFORTH.REL mkdir prodos/sys/scripts -cp scripts/plasma.4th prodos/sys/scripts/PLASMA.4TH.TXT -cp scripts/machid.4th prodos/sys/scripts/MACHID.4TH.TXT -cp scripts/conio.4th prodos/sys/scripts/CONIO.4TH.TXT -cp scripts/fileio.4th prodos/sys/scripts/FILEIO.4TH.TXT -cp scripts/grlib.4th prodos/sys/scripts/GRLIB.4TH.TXT -cp scripts/dgrlib.4th prodos/sys/scripts/DGRLIB.4TH.TXT -cp scripts/hgrlib.4th prodos/sys/scripts/HGRLIB.4TH.TXT -cp scripts/grafix.4th prodos/sys/scripts/GRAFIX.4TH.TXT -cp scripts/int32.4th prodos/sys/scripts/INT32.4TH.TXT -cp scripts/fpu.4th prodos/sys/scripts/FPU.4TH.TXT +cp scripts/plasma.4th prodos/sys/scripts/PLASMA.4TH.TXT +cp scripts/machid.4th prodos/sys/scripts/MACHID.4TH.TXT +cp scripts/conio.4th prodos/sys/scripts/CONIO.4TH.TXT +cp scripts/fileio.4th prodos/sys/scripts/FILEIO.4TH.TXT +cp scripts/grlib.4th prodos/sys/scripts/GRLIB.4TH.TXT +cp scripts/dgrlib.4th prodos/sys/scripts/DGRLIB.4TH.TXT +cp scripts/hgrlib.4th prodos/sys/scripts/HGRLIB.4TH.TXT +cp scripts/grafix.4th prodos/sys/scripts/GRAFIX.4TH.TXT +cp scripts/int32.4th prodos/sys/scripts/INT32.4TH.TXT +cp scripts/fpu.4th prodos/sys/scripts/FPU.4TH.TXT rm -rf prodos/demos mkdir prodos/demos -cp rel/INT32TEST#FE1000 prodos/demos/INT32TEST.REL -cp rel/apple/CONIOTEST#FE1000 prodos/demos/CONIOTEST.REL -cp rel/apple/ROD#FE1000 prodos/demos/ROD.REL -cp rel/RPNCALC#FE1000 prodos/demos/RPNCALC.REL -cp ../doc/ROGUE.LZ4.BIN prodos/demos/ROGUE.LZ4.BIN -cp rel/PRIMEGAP#FE1000 prodos/demos/PRIMEGAP.REL +cp rel/INT32TEST#FE1000 prodos/demos/INT32TEST.REL +cp rel/apple/CONIOTEST#FE1000 prodos/demos/CONIOTEST.REL +cp rel/apple/ROD#FE1000 prodos/demos/ROD.REL +cp rel/RPNCALC#FE1000 prodos/demos/RPNCALC.REL +cp ../doc/ROGUE.LZ4.BIN prodos/demos/ROGUE.LZ4.BIN +cp rel/PRIMEGAP#FE1000 prodos/demos/PRIMEGAP.REL mkdir prodos/demos/rogue -cp rel/ROGUE#FE1000 prodos/demos/rogue/ROGUE.REL -cp rel/ROGUECOMBAT#FE1000 prodos/demos/rogue/ROGUECOMBAT.REL -cp rel/ROGUEMAP#FE1000 prodos/demos/rogue/ROGUEMAP.REL +cp rel/ROGUE#FE1000 prodos/demos/rogue/ROGUE.REL +cp rel/ROGUECOMBAT#FE1000 prodos/demos/rogue/ROGUECOMBAT.REL +cp rel/ROGUEMAP#FE1000 prodos/demos/rogue/ROGUEMAP.REL cp samplesrc/LEVEL0#040000 prodos/demos/rogue/LEVEL0.TXT cp samplesrc/LEVEL1#040000 prodos/demos/rogue/LEVEL1.TXT mkdir prodos/demos/music -cp rel/apple/PLAYSEQ#FE1000 prodos/demos/music/PLAYSEQ.REL -cp mockingboard/ultima3.seq prodos/demos/music/ULTIMA3.SEQ.BIN +cp rel/apple/PLAYSEQ#FE1000 prodos/demos/music/PLAYSEQ.REL +cp rel/apple/PLAYWAV#FE1000 prodos/demos/music/PLAYWAV.REL +cp mockingboard/ultima3.seq prodos/demos/music/ULTIMA3.SEQ.BIN cp mockingboard/startrek.seq prodos/demos/music/STARTREK.SEQ.BIN +cp mockingboard/hello.wav prodos/demos/music/HELLO.WAV.BIN mkdir prodos/demos/net -cp rel/HTTPD#FE1000 prodos/demos/net/HTTPD.REL +cp rel/HTTPD#FE1000 prodos/demos/net/HTTPD.REL cp samplesrc/index.html prodos/demos/net/INDEX.HTML.TXT mkdir prodos/demos/apple2 cp rel/apple/TILETEST#FE1000 prodos/demos/apple2/TILETEST.REL -cp rel/apple/HGRTEST#FE1000 prodos/demos/apple2/HGRTEST.REL -cp rel/apple/GRTEST#FE1000 prodos/demos/apple2/GRTEST.REL -cp rel/apple/DGRTEST#FE1000 prodos/demos/apple2/DGRTEST.REL +cp rel/apple/HGRTEST#FE1000 prodos/demos/apple2/HGRTEST.REL +cp rel/apple/GRTEST#FE1000 prodos/demos/apple2/GRTEST.REL +cp rel/apple/DGRTEST#FE1000 prodos/demos/apple2/DGRTEST.REL mkdir prodos/demos/apple2/spiders -cp rel/apple/SFM#FE1000 prodos/demos/apple2/spiders/SFM.REL +cp rel/apple/SFM#FE1000 prodos/demos/apple2/spiders/SFM.REL cp rel/apple/SFMSPRT#FE1000 prodos/demos/apple2/spiders/SFMSPRT.REL mkdir prodos/demos/apple2/sdutils -cp rel/apple/SPIPORT#FE1000 prodos/demos/apple2/sdutils/SPIPORT.REL -cp rel/apple/SDFAT#FE1000 prodos/demos/apple2/sdutils/SDFAT.REL -cp rel/apple/FATCAT#FE1000 prodos/demos/apple2/sdutils/FATCAT.REL -cp rel/apple/FATGET#FE1000 prodos/demos/apple2/sdutils/FATGET.REL -cp rel/apple/FATPUT#FE1000 prodos/demos/apple2/sdutils/FATPUT.REL -cp rel/apple/FATREADDSK#FE1000 prodos/demos/apple2/sdutils/FATREADDSK.REL +cp rel/apple/SPIPORT#FE1000 prodos/demos/apple2/sdutils/SPIPORT.REL +cp rel/apple/SDFAT#FE1000 prodos/demos/apple2/sdutils/SDFAT.REL +cp rel/apple/FATCAT#FE1000 prodos/demos/apple2/sdutils/FATCAT.REL +cp rel/apple/FATGET#FE1000 prodos/demos/apple2/sdutils/FATGET.REL +cp rel/apple/FATPUT#FE1000 prodos/demos/apple2/sdutils/FATPUT.REL +cp rel/apple/FATREADDSK#FE1000 prodos/demos/apple2/sdutils/FATREADDSK.REL cp rel/apple/FATWRITEDSK#FE1000 prodos/demos/apple2/sdutils/FATWRITEDSK.REL mkdir prodos/demos/apple3 -cp rel/apple/GFXDEMO#FE1000 prodos/demos/apple3/GFXDEMO.REL +cp rel/apple/GFXDEMO#FE1000 prodos/demos/apple3/GFXDEMO.REL cp samplesrc/APPLE3.PIX#060000 prodos/demos/apple3/APPLE3.PIX.BIN rm -rf prodos/bld mkdir prodos/bld -cp rel/PLASM#FE1000 prodos/bld/PLASM.REL -cp rel/CODEOPT#FE1000 prodos/bld/CODEOPT.REL -cp ../sysfiles/EDASM#FF2000 prodos/bld/EDASM.SYS -cp ../sysfiles/EDASM.ASM#063000 prodos/bld/EDASM.ASM.BIN -cp ../sysfiles/EDASM.ED#063000 prodos/bld/EDASM.ED.BIN +cp rel/PLASM#FE1000 prodos/bld/PLASM.REL +cp rel/CODEOPT#FE1000 prodos/bld/CODEOPT.REL +cp ../sysfiles/EDASM#FF2000 prodos/bld/EDASM.SYS +cp ../sysfiles/EDASM.ASM#063000 prodos/bld/EDASM.ASM.BIN +cp ../sysfiles/EDASM.ED#063000 prodos/bld/EDASM.ED.BIN cp ../sysfiles/EDASM.SWAP#062000 prodos/bld/EDASM.SWAP.BIN mkdir prodos/bld/basic cp ../sysfiles/BASIC.SYSTEM#FF2000 prodos/bld/basic/BASIC.SYS -cp samplesrc/rod.bas prodos/bld/basic/ROD.BAS.TXT +cp samplesrc/rod.bas prodos/bld/basic/ROD.BAS.TXT mkdir prodos/bld/samples -cp samplesrc/hello.pla prodos/bld/samples/HELLO.PLA.TXT +cp samplesrc/hello.pla prodos/bld/samples/HELLO.PLA.TXT cp samplesrc/int32test.pla prodos/bld/samples/INT32TEST.PLA.TXT cp samplesrc/coniotest.pla prodos/bld/samples/CONIOTEST.PLA.TXT -cp samplesrc/grtest.pla prodos/bld/samples/GRTEST.PLA.TXT -cp samplesrc/dgrtest.pla prodos/bld/samples/DGRTEST.PLA.TXT -cp samplesrc/hgrtest.pla prodos/bld/samples/HGRTEST.PLA.TXT -cp samplesrc/tiletest.pla prodos/bld/samples/TILETEST.PLA.TXT +cp samplesrc/grtest.pla prodos/bld/samples/GRTEST.PLA.TXT +cp samplesrc/dgrtest.pla prodos/bld/samples/DGRTEST.PLA.TXT +cp samplesrc/hgrtest.pla prodos/bld/samples/HGRTEST.PLA.TXT +cp samplesrc/tiletest.pla prodos/bld/samples/TILETEST.PLA.TXT cp samplesrc/fibertest.pla prodos/bld/samples/FIBERTEST.PLA.TXT cp samplesrc/mousetest.pla prodos/bld/samples/MOUSETEST.PLA.TXT -cp samplesrc/memtest.pla prodos/bld/samples/MEMTEST.PLA.TXT -cp samplesrc/rod.pla prodos/bld/samples/ROD.PLA.TXT -cp samplesrc/sieve.pla prodos/bld/samples/SIEVE.PLA.TXT -cp samplesrc/test.pla prodos/bld/samples/TEST.PLA.TXT -cp samplesrc/testlib.pla prodos/bld/samples/TESTLIB.PLA.TXT -cp samplesrc/playseq.pla prodos/bld/samples/PLAYSEQ.PLA.TXT -cp samplesrc/rpncalc.pla prodos/bld/samples/RPNCALC.PLA.TXT -cp samplesrc/fatcat.pla prodos/bld/samples/FATCAT.PLA.TXT -cp samplesrc/gfxdemo.pla prodos/bld/samples/GFXDEMO.PLA.TXT -cp samplesrc/sfm.pla prodos/bld/samples/SFM.PLA.TXT -cp samplesrc/sfmsprt.pla prodos/bld/samples/SFMSPRT.PLA.TXT -cp samplesrc/fppow.pla prodos/bld/samples/FPPOW.PLA.TXT -cp utilsrc/apple/mon.pla prodos/bld/samples/MON.PLA.TXT +cp samplesrc/memtest.pla prodos/bld/samples/MEMTEST.PLA.TXT +cp samplesrc/rod.pla prodos/bld/samples/ROD.PLA.TXT +cp samplesrc/sieve.pla prodos/bld/samples/SIEVE.PLA.TXT +cp samplesrc/test.pla prodos/bld/samples/TEST.PLA.TXT +cp samplesrc/testlib.pla prodos/bld/samples/TESTLIB.PLA.TXT +cp samplesrc/playseq.pla prodos/bld/samples/PLAYSEQ.PLA.TXT +cp samplesrc/playwav.pla prodos/bld/samples/PLAYWAV.PLA.TXT +cp samplesrc/rpncalc.pla prodos/bld/samples/RPNCALC.PLA.TXT +cp samplesrc/fatcat.pla prodos/bld/samples/FATCAT.PLA.TXT +cp samplesrc/gfxdemo.pla prodos/bld/samples/GFXDEMO.PLA.TXT +cp samplesrc/sfm.pla prodos/bld/samples/SFM.PLA.TXT +cp samplesrc/sfmsprt.pla prodos/bld/samples/SFMSPRT.PLA.TXT +cp samplesrc/fppow.pla prodos/bld/samples/FPPOW.PLA.TXT +cp utilsrc/apple/mon.pla prodos/bld/samples/MON.PLA.TXT cp utilsrc/apple/zipchip.pla prodos/bld/samples/ZIPCHIP.PLA.TXT -cp samplesrc/testrel.asm prodos/bld/samples/TESTREL.ASM.TXT -cp samplesrc/testext.asm prodos/bld/samples/TESTEXT.ASM.TXT -cp samplesrc/testasm.pla prodos/bld/samples/TESTASM.PLA.TXT +cp samplesrc/testrel.asm prodos/bld/samples/TESTREL.ASM.TXT +cp samplesrc/testext.asm prodos/bld/samples/TESTEXT.ASM.TXT +cp samplesrc/testasm.pla prodos/bld/samples/TESTASM.PLA.TXT -cp libsrc/apple/debug.asm prodos/bld/samples/DEBUG.ASM.TXT -cp libsrc/apple/mxtui.pla prodos/bld/samples/MXTUI.PLA.TXT +cp libsrc/apple/debug.asm prodos/bld/samples/DEBUG.ASM.TXT +cp libsrc/apple/mxtui.pla prodos/bld/samples/MXTUI.PLA.TXT mkdir prodos/bld/scripts -cp scripts/rod.4th prodos/bld/scripts/ROD.4TH.TXT -cp scripts/bounce.4th prodos/bld/scripts/BOUNCE.4TH.TXT -cp scripts/dbounce.4th prodos/bld/scripts/DBOUNCE.4TH.TXT -cp scripts/hrbounce.4th prodos/bld/scripts/HRBOUNCE.4TH.TXT -cp scripts/plot.4th prodos/bld/scripts/PLOT.4TH.TXT -cp scripts/hrplot.4th prodos/bld/scripts/HRPLOT.4TH.TXT -cp scripts/gfxplot.4th prodos/bld/scripts/GFXPLOT.4TH.TXT -cp scripts/hdinstall.4th prodos/bld/scripts/HDINSTALL.4TH.TXT +cp scripts/rod.4th prodos/bld/scripts/ROD.4TH.TXT +cp scripts/bounce.4th prodos/bld/scripts/BOUNCE.4TH.TXT +cp scripts/dbounce.4th prodos/bld/scripts/DBOUNCE.4TH.TXT +cp scripts/hrbounce.4th prodos/bld/scripts/HRBOUNCE.4TH.TXT +cp scripts/plot.4th prodos/bld/scripts/PLOT.4TH.TXT +cp scripts/hrplot.4th prodos/bld/scripts/HRPLOT.4TH.TXT +cp scripts/gfxplot.4th prodos/bld/scripts/GFXPLOT.4TH.TXT +cp scripts/hdinstall.4th prodos/bld/scripts/HDINSTALL.4TH.TXT cp scripts/hdinstall1.4th prodos/bld/scripts/HDINSTALL1.4TH.TXT cp scripts/hdinstall2.4th prodos/bld/scripts/HDINSTALL2.4TH.TXT mkdir prodos/bld/lisp -cp rel/SEXPR#FE1000 prodos/bld/lisp/SEXPR.REL -cp rel/SMATH#FE1000 prodos/bld/lisp/SMATH.REL -cp rel/DRAWL#FE1000 prodos/bld/lisp/DRAWL.REL -cp lisp/set.lisp prodos/bld/lisp/SET.LISP.TXT -cp lisp/list.lisp prodos/bld/lisp/LIST.LISP.TXT -cp lisp/maplist.lisp prodos/bld/lisp/MAPLIST.LISP.TXT -cp lisp/gcd.lisp prodos/bld/lisp/GCD.LISP.TXT -cp lisp/fact.lisp prodos/bld/lisp/FACT.LISP.TXT -cp lisp/loop.lisp prodos/bld/lisp/LOOP.LISP.TXT -cp lisp/minmax.lisp prodos/bld/lisp/MINMAX.LISP.TXT -cp lisp/prog.lisp prodos/bld/lisp/PROG.LISP.TXT -cp lisp/lores.lisp prodos/bld/lisp/LORES.LISP.TXT -cp lisp/defun.lisp prodos/bld/lisp/DEFUN.LISP.TXT -cp lisp/rod.lisp prodos/bld/lisp/ROD.LISP.TXT +cp rel/SEXPR#FE1000 prodos/bld/lisp/SEXPR.REL +cp rel/SMATH#FE1000 prodos/bld/lisp/SMATH.REL +cp rel/DRAWL#FE1000 prodos/bld/lisp/DRAWL.REL +cp lisp/set.lisp prodos/bld/lisp/SET.LISP.TXT +cp lisp/list.lisp prodos/bld/lisp/LIST.LISP.TXT +cp lisp/maplist.lisp prodos/bld/lisp/MAPLIST.LISP.TXT +cp lisp/gcd.lisp prodos/bld/lisp/GCD.LISP.TXT +cp lisp/fact.lisp prodos/bld/lisp/FACT.LISP.TXT +cp lisp/loop.lisp prodos/bld/lisp/LOOP.LISP.TXT +cp lisp/minmax.lisp prodos/bld/lisp/MINMAX.LISP.TXT +cp lisp/prog.lisp prodos/bld/lisp/PROG.LISP.TXT +cp lisp/lores.lisp prodos/bld/lisp/LORES.LISP.TXT +cp lisp/defun.lisp prodos/bld/lisp/DEFUN.LISP.TXT +cp lisp/rod.lisp prodos/bld/lisp/ROD.LISP.TXT #mkdir prodos/bld/examples #cp samplesrc/examples/ex.1.pla prodos/bld/examples/EX.1.PLA.TXT @@ -215,38 +218,38 @@ cp lisp/rod.lisp prodos/bld/lisp/ROD.LISP.TXT #cp samplesrc/examples/ex.17.pla prodos/bld/examples/EX.17.PLA.TXT mkdir prodos/bld/inc -cp inc/args.plh prodos/bld/inc/ARGS.PLH.TXT -cp inc/matchfiles.plh prodos/bld/inc/MATCHFILES.PLH.TXT -cp inc/cmdsys.plh prodos/bld/inc/CMDSYS.PLH.TXT -cp inc/conio.plh prodos/bld/inc/CONIO.PLH.TXT -cp inc/lines.plh prodos/bld/inc/LINES.PLH.TXT -cp inc/hgrfont.plh prodos/bld/inc/HGRFONT.PLH.TXT -cp inc/hgrtile.plh prodos/bld/inc/HGRTILE.PLH.TXT -cp inc/hgrsprite.plh prodos/bld/inc/HGRSPRITE.PLH.TXT -cp inc/hgrlib.plh prodos/bld/inc/HGRLIB.PLH.TXT -cp inc/grlib.plh prodos/bld/inc/GRLIB.PLH.TXT -cp inc/dgrlib.plh prodos/bld/inc/DGRLIB.PLH.TXT -cp inc/vblank.plh prodos/bld/inc/VBLANK.PLH.TXT -cp inc/fiber.plh prodos/bld/inc/FIBER.PLH.TXT -cp inc/fileio.plh prodos/bld/inc/FILEIO.PLH.TXT -cp inc/int32.plh prodos/bld/inc/INT32.PLH.TXT -cp inc/fpstr.plh prodos/bld/inc/FPSTR.PLH.TXT -cp inc/fpu.plh prodos/bld/inc/FPU.PLH.TXT -cp inc/mouse.plh prodos/bld/inc/MOUSE.PLH.TXT -cp inc/inet.plh prodos/bld/inc/INET.PLH.TXT -cp inc/longjmp.plh prodos/bld/inc/LONGJMP.PLH.TXT -cp inc/memmgr.plh prodos/bld/inc/MEMMGR.PLH.TXT -cp inc/sane.plh prodos/bld/inc/SANE.PLH.TXT -cp inc/joybuzz.plh prodos/bld/inc/JOYBUZZ.PLH.TXT -cp inc/portio.plh prodos/bld/inc/PORTIO.PLH.TXT -cp inc/sdfat.plh prodos/bld/inc/SDFAT.PLH.TXT -cp inc/sndseq.plh prodos/bld/inc/SNDSEQ.PLH.TXT -cp inc/spiport.plh prodos/bld/inc/SPIPORT.PLH.TXT -cp inc/testlib.plh prodos/bld/inc/TESTLIB.PLH.TXT -cp inc/grafix.plh prodos/bld/inc/GRAFIX.PLH.TXT -cp inc/lz4.plh prodos/bld/inc/LZ4.PLH.TXT -cp inc/plasma.inc prodos/bld/inc/PLASMA.INC.TXT -cp inc/extheader.inc prodos/bld/inc/EXTHEADER.INC.TXT -cp inc/extdefseg.inc prodos/bld/inc/EXTDEFSEG.INC.TXT +cp inc/args.plh prodos/bld/inc/ARGS.PLH.TXT +cp inc/matchfiles.plh prodos/bld/inc/MATCHFILES.PLH.TXT +cp inc/cmdsys.plh prodos/bld/inc/CMDSYS.PLH.TXT +cp inc/conio.plh prodos/bld/inc/CONIO.PLH.TXT +cp inc/lines.plh prodos/bld/inc/LINES.PLH.TXT +cp inc/hgrfont.plh prodos/bld/inc/HGRFONT.PLH.TXT +cp inc/hgrtile.plh prodos/bld/inc/HGRTILE.PLH.TXT +cp inc/hgrsprite.plh prodos/bld/inc/HGRSPRITE.PLH.TXT +cp inc/hgrlib.plh prodos/bld/inc/HGRLIB.PLH.TXT +cp inc/grlib.plh prodos/bld/inc/GRLIB.PLH.TXT +cp inc/dgrlib.plh prodos/bld/inc/DGRLIB.PLH.TXT +cp inc/vblank.plh prodos/bld/inc/VBLANK.PLH.TXT +cp inc/fiber.plh prodos/bld/inc/FIBER.PLH.TXT +cp inc/fileio.plh prodos/bld/inc/FILEIO.PLH.TXT +cp inc/int32.plh prodos/bld/inc/INT32.PLH.TXT +cp inc/fpstr.plh prodos/bld/inc/FPSTR.PLH.TXT +cp inc/fpu.plh prodos/bld/inc/FPU.PLH.TXT +cp inc/mouse.plh prodos/bld/inc/MOUSE.PLH.TXT +cp inc/inet.plh prodos/bld/inc/INET.PLH.TXT +cp inc/longjmp.plh prodos/bld/inc/LONGJMP.PLH.TXT +cp inc/memmgr.plh prodos/bld/inc/MEMMGR.PLH.TXT +cp inc/sane.plh prodos/bld/inc/SANE.PLH.TXT +cp inc/joybuzz.plh prodos/bld/inc/JOYBUZZ.PLH.TXT +cp inc/portio.plh prodos/bld/inc/PORTIO.PLH.TXT +cp inc/sdfat.plh prodos/bld/inc/SDFAT.PLH.TXT +cp inc/sndseq.plh prodos/bld/inc/SNDSEQ.PLH.TXT +cp inc/spiport.plh prodos/bld/inc/SPIPORT.PLH.TXT +cp inc/testlib.plh prodos/bld/inc/TESTLIB.PLH.TXT +cp inc/grafix.plh prodos/bld/inc/GRAFIX.PLH.TXT +cp inc/lz4.plh prodos/bld/inc/LZ4.PLH.TXT +cp inc/plasma.inc prodos/bld/inc/PLASMA.INC.TXT +cp inc/extheader.inc prodos/bld/inc/EXTHEADER.INC.TXT +cp inc/extdefseg.inc prodos/bld/inc/EXTDEFSEG.INC.TXT make -f dhgr.tk/makefile all diff --git a/src/mockingboard/hello.wav b/src/mockingboard/hello.wav new file mode 100644 index 0000000..db46c4a Binary files /dev/null and b/src/mockingboard/hello.wav differ diff --git a/src/samplesrc/playwav.pla b/src/samplesrc/playwav.pla new file mode 100755 index 0000000..063f9cd --- /dev/null +++ b/src/samplesrc/playwav.pla @@ -0,0 +1,58 @@ +include "inc/cmdsys.plh" +include "inc/args.plh" +include "inc/fileio.plh" +include "inc/sndseq.plh" + +// +// These are utility sequences/routines needed to test the music sequencer code. +// +word arg, pcm, len +byte ref + +byte sinewave[] +byte = $80, $83, $86, $89, $8C, $8F, $92, $95, $98, $9C, $9F, $A2, $A5, $A8, $AB, $AE +byte = $B0, $B3, $B6, $B9, $BC, $BF, $C1, $C4, $C7, $C9, $CC, $CE, $D1, $D3, $D5, $D8 +byte = $DA, $DC, $DE, $E0, $E2, $E4, $E6, $E8, $EA, $EC, $ED, $EF, $F0, $F2, $F3, $F5 +byte = $F6, $F7, $F8, $F9, $FA, $FB, $FC, $FC, $FD, $FE, $FE, $FF, $FF, $FF, $FF, $FF +byte = $FF, $FF, $FF, $FF, $FF, $FF, $FE, $FE, $FD, $FC, $FC, $FB, $FA, $F9, $F8, $F7 +byte = $F6, $F5, $F3, $F2, $F0, $EF, $ED, $EC, $EA, $E8, $E6, $E4, $E2, $E0, $DE, $DC +byte = $DA, $D8, $D5, $D3, $D1, $CE, $CC, $C9, $C7, $C4, $C1, $BF, $BC, $B9, $B6, $B3 +byte = $B0, $AE, $AB, $A8, $A5, $A2, $9F, $9C, $98, $95, $92, $8F, $8C, $89, $86, $83 +byte = $80, $7C, $79, $76, $73, $70, $6D, $6A, $67, $63, $60, $5D, $5A, $57, $54, $51 +byte = $4F, $4C, $49, $46, $43, $40, $3E, $3B, $38, $36, $33, $31, $2E, $2C, $2A, $27 +byte = $25, $23, $21, $1F, $1D, $1B, $19, $17, $15, $13, $12, $10, $0F, $0D, $0C, $0A +byte = $09, $08, $07, $06, $05, $04, $03, $03, $02, $01, $01, $00, $00, $00, $00, $00 +byte = $00, $00, $00, $00, $00, $00, $01, $01, $02, $03, $03, $04, $05, $06, $07, $08 +byte = $09, $0A, $0C, $0D, $0F, $10, $12, $13, $15, $17, $19, $1B, $1D, $1F, $21, $23 +byte = $25, $27, $2A, $2C, $2E, $31, $33, $36, $38, $3B, $3E, $40, $43, $46, $49, $4C +byte = $4F, $51, $54, $57, $5A, $5D, $60, $63, $67, $6A, $6D, $70, $73, $76, $79, $7C + +arg = argNext(argFirst) +if ^arg + ref = fileio:open(arg) + if ref + pcm = heapmark + len = fileio:read(ref, pcm, heapavail) + fileio:close(ref) + heapalloc(len) + pcm = pcm + 44 + len = len - 44 + pcmPlay(pcm, len / 256)#0 + fin +else + while ^$C000 < 128 + pcmPlay(@sinewave, 1)#0 + loop + getc + memset(@sinewave, $10F0, 256) + while ^$C000 < 128 + pcmPlay(@sinewave, 1)#0 + loop + getc + memset(@sinewave, $8080, 256) + while ^$C000 < 128 + pcmPlay(@sinewave, 1)#0 + loop + getc +fin +done