REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $074c Exec: $8b8d * REM *(Start: 09217 Length: 01868 Exec: 35725) * REM ************************************************* REM 10 :'DUMP PROGRAM 20 :'PEEKS A WORD (16 BITS) 30 DEF FN W(A)= PEEK (A)*256+ PEEK (A+1) 40 DIM ZZ(2),XX(2,1),ZZ$(2),XX$(2,1) 50 DIM XY(1,2,3) 60 :'DEFINING VARIABLES BEFORE USE 70 FOR I=0 TO 2 80 ZZ(I)=I:ZZ$(I)= STR$ (I) 90 FOR J=0 TO 1 100 XX(I,J)=C:XX$(I,J)= STR$ (C) 110 XY(J,I,0)=C 120 C=C+1 130 NEXT J,I 140 PS=0 150 PE=0 160 VS=0 170 VE=0 180 AS=0 190 AE=0 200 DA=0 210 NA=0 220 DV=0 230 DBYTE=0:AN$="":SBYTE=0 240 R=0:H3=0:H2=0:H1=0:H0=0 250 PA=&H19 260 PS= FN W(PA) 270 VS= FN W(PA+2) 280 AS= FN W(PA+4) 290 PE=VS-1 300 VE=AS-1 310 AE= FN W(PA+6)-1 320 CLS 330 INPUT "OUTPUT TO PRINTER";AN$ 340 IF AN$="Y" THEN DV=-2 : ELSE DV=0 350 PRINT #DV,"PROGRAM START ADDRESS = ";:DBYTE=PS 360 GO SUB 790: PRINT #DV 370 PRINT #DV,"PROGRAM END ADDRESS = ";:DBYTE=PE 380 GO SUB 790: PRINT #DV 390 PRINT #DV,"VARIABLE START ADDRESS = ";:DBYTE=VS 400 GO SUB 790: PRINT #DV 410 PRINT #DV,"VARIABLE END ADDRESS = ";:DBYTE=VE 420 GO SUB 790: PRINT #DV 430 PRINT #DV,"ARRAY START ADDRESS = ";:DBYTE=AS 440 GO SUB 790: PRINT #DV 450 PRINT #DV,"ARRAY END ADDRESS = ";:DBYTE=AE 460 GO SUB 790: PRINT #DV 470 INPUT "DO YOU WISH A PROGRAM DUMP";AN$ 480 IF AN$<>"Y" THEN GO TO 640 490 PRINT #DV,"PROGRAM DUMP" 500 DA=PS 510 NA= FN W(DA) 520 IF (NA=0) OR (DA=PE) THEN 630 530 PRINT #DV: PRINT #DV 540 DBYTE=DA: GO SUB 790 550 PRINT #DV 560 DBYTE=NA: GO SUB 790 570 DA=DA+2 580 DBYTE= FN W(DA): GO SUB 790 590 DA=DA+2 600 SBYTE= PEEK (DA): GO SUB 870 610 DA=DA+1 620 IF DA<>NA THEN GO TO 600 : ELSE GO TO 510 630 PRINT #DV 640 INPUT "DO YOU VANT A VARIABLE DUMP";AN$ 650 IF AN$<>"Y" THEN GO TO 700 660 PRINT #DV: PRINT #DV: PRINT #DV,"VARIABLE DUMP" 670 FOR DA=VS TO VE 680 SBYTE= PEEK (DA): GO SUB 870 690 NEXT DA 700 PRINT #DV 710 INPUT "DO WANT AN ARRAY DUMP";AN$ 720 IF AN$<>"Y" THEN GO TO 770 730 PRINT #DV: PRINT #DV: PRINT #DV,"ARRAY DUMP" 740 FOR DA=AS TO AE 750 SBYTE= PEEK (DA): GO SUB 870 760 NEXT DA 770 PRINT #DV: PRINT #DV,"DUMP FINISHED" 780 STOP 790 :'PRINT 2 BYTES AS 4 HEX CHARS 800 R=DBYTE 810 H3= INT (R/4096):R=DBYTE-H3*4096 820 H2= INT (R/256):R=R-H2*256 830 H1= INT (R/16):H0=R-H1*16 840 HW$= HEX$ (H3)+ HEX$ (H2)+ HEX$ (H1)+ HEX$ (H0) 850 PRINT #DV, USING " ";HW$ 860 RETURN 870 :'PRINT 1 BYTE AS A CHARACTER 880 PRINT CHR$ (SBYTE); 890 RETURN REM REM line numbering breaks here! REM E); 2020 RETURN REM REM line numbering breaks here! REM FROM FROM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $0b2d Exec: $8b8d * REM *(Start: 09217 Length: 02861 Exec: 35725) * REM ************************************************* REM 1 POKE 65495,0 10 REM DUMP PROGRAM 20 REM PEEKS A WORD (16 BITS) 30 DEF FN W(A)= PEEK (A)*256+ PEEK (A+1) 40 DIM ZZ(2),XX(2,1),ZZ$(2),XX$(2,1) 50 DIM XY(1,2,3) 60 REM DEFINING VARIABLES BEFORE USE 70 FOR I=0 TO 2 80 ZZ(I)=I:ZZ$(I)= STR$ (I) 90 FOR J=0 TO 1 100 XX(I,J)=C:XX$(I,J)= STR$ (C) 110 XY(J,I,0)=C 120 C=C+1 130 NEXT J,I 140 PS=0 150 PE=0 160 VS=0 170 VE=0 180 AS=0 190 AE=0 200 DA=0 210 NA=0 220 DV=0 230 DBYTE=0:AN$="":SBYTE=0 240 R=0:H3=0:H2=0:H1=0:H0=0 250 PA=&H19 260 PS= FN W(PA) 270 VS= FN W(PA+2) 280 AS= FN W(PA+4) 290 PE=VS-1 300 VE=AS-1 310 AE= FN W(PA+6)-1 320 CLS 330 INPUT "OUTPUT TO PRINTER";AN$ 340 IF AN$="Y" THEN DV=-2 350 DV=0 360 PRINT #DV,"PROGRAM START ADDRESS = ";:DBYTE=PS 370 GO SUB 800: PRINT #DV 380 PRINT #DV,"PROGRAM END ADDRESS = ";:DBYTE=PE 390 GO SUB 800: PRINT #DV 400 PRINT #DV,"VARIABLE START ADDRESS = ";:DBYTE=VS 410 GO SUB 800: PRINT #DV 420 PRINT #DV,"VARIABLE END ADDRESS = ";:DBYTE=VE 430 GO SUB 800: PRINT #DV 440 PRINT #DV,"ARRAY START ADDRESS = ";:DBYTE=AS 450 GO SUB 800: PRINT #DV 460 PRINT #DV,"ARRAY END ADDRESS = ";:DBYTE=AE 470 GO SUB 800: PRINT #DV 480 INPUT "DO YOU WISH A PROGRAM DUMP";AN$ 490 IF AN$<>"Y" THEN GO TO 650 500 PRINT #DV,"PROGRAM DUMP" 510 DA=PS 520 NA= FN W(DA) 530 IF (NA=0) OR (DA=PE) THEN 640 540 PRINT #DV: PRINT #DV 550 DBYTE=DA: GO SUB 800 560 PRINT #DV 570 DBYTE=NA: GO SUB 800 580 DA=DA+2 590 DBYTE= FN W(DA): GO SUB 800 600 DA=DA+2 610 SBYTE= PEEK (DA): GO SUB 880 620 DA=DA+1 630 IF DA<>NA THEN GO TO 610 : ELSE GO TO 520 640 PRINT #DV 650 INPUT "DO YOU VANT A VARIABLE DUMP";AN$ 660 IF AN$<>"Y" THEN GO TO 710 670 PRINT #DV: PRINT #DV: PRINT #DV,"VARIABLE DUMP" 680 FOR DA=VS TO VE 690 SBYTE= PEEK (DA): GO SUB 880 700 NEXT DA 710 PRINT #DV 720 INPUT "DO WANT AN ARRAY DUMP";AN$ 730 IF AN$<>"Y" THEN GO TO 780 740 PRINT #DV: PRINT #DV: PRINT #DV,"ARRAY DUMP" 750 FOR DA=AS TO AE 760 SBYTE= PEEK (DA): GO SUB 880 770 NEXT DA 780 PRINT #DV: PRINT #DV,"DUMP FINISHED" 790 STOP 800 REM PRINT 2 BYTES AS 4 HEX CHARS 810 R=DBYTE 820 H3= INT (R/4096):R=DBYTE-H3*4096 830 H2= INT (R/256):R=R-H2*256 840 H1= INT (R/16):H0=R-H1*16 850 HW$= HEX$ (H3)+ HEX$ (H2)+ HEX$ (H1)+ HEX$ (H0) 860 PRINT #DV, USING " ";HW$ 870 RETURN 880 REM PRINT 1 BYTE AS A CHARACTER 890 IF SBYTE=135 THEN PRINT "PRINT";: GO TO 1140 900 IF SBYTE=137 THEN PRINT "INPUT";: GO TO 1140 910 IF SBYTE=152 THEN PRINT "DEF";: GO TO 1140 920 IF SBYTE=190 THEN PRINT "FN";: GO TO 1140 930 IF SBYTE=195 THEN PRINT "+";: GO TO 1140 940 IF SBYTE=197 THEN PRINT "*";: GO TO 1140 950 IF SBYTE=203 THEN PRINT "=";: GO TO 1140 960 IF SBYTE=140 THEN PRINT "DIM";: GO TO 1140 970 IF SBYTE=130 THEN PRINT "REM";: GO TO 1140 980 IF SBYTE=255 THEN PRINT "PEEK";: GO TO 1140 990 IF SBYTE=196 THEN PRINT "-";: GO TO 1140 1000 IF SBYTE=128 THEN PRINT "FOR";: GO TO 1140 1010 IF SBYTE=188 THEN PRINT "TO";: GO TO 1140 1020 IF SBYTE=142 THEN PRINT "STR$";: GO TO 1140 1030 IF SBYTE=139 THEN PRINT "NEXT";: GO TO 1140 1040 IF SBYTE=160 THEN PRINT "CLS";: GO TO 1140 1050 IF SBYTE=133 THEN PRINT "IF";: GO TO 1140 1060 IF SBYTE=191 THEN PRINT "THEN";: GO TO 1140 1070 IF SBYTE=129 THEN PRINT "GO";: GO TO 1140 1080 IF SBYTE=189 THEN PRINT "SUB";: GO TO 1140 1090 IF SBYTE=204 THEN PRINT "<";: GO TO 1140 1100 IF SBYTE=202 THEN PRINT ">";: GO TO 1140 1110 IF SBYTE=201 THEN PRINT "OR";: GO TO 1140 1120 IF SBYTE=149 THEN PRINT "LIST";: GO TO 1140 1121 IF SBYTE=147 THEN PRINT "POKE";: GO TO 1140 1122 IF SBYTE=146 THEN PRINT "STOP";: GO TO 1140 1123 IF SBYTE=198 THEN PRINT "/";: GO TO 1140 1124 IF SBYTE=129+16 THEN PRINT "RETURN";: GO TO 1140 1125 IF SBYTE=205 THEN PRINT "USING";: GO TO 1140 1130 PRINT CHR$ (SBYTE); 1140 RETURN REM REM line numbering breaks here! REM FROM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $0282 Exec: $8b8d * REM *(Start: 09217 Length: 00642 Exec: 35725) * REM ************************************************* REM 10 GO SUB 2000 20 FOR V=1 TO 15 30 V2=V*2:V4=V*4 40 PRINT "MAX VOLUM=";V4 50 TIMER =0 60 FOR C=1 TO 50 70 N=0: GO SUB 1000 80 N=V: GO SUB 1000 90 N=V2: GO SUB 1000 100 N=V4: GO SUB 1000 110 N=V2: GO SUB 1000 120 N=V: GO SUB 1000 130 NEXT C 140 CP=( TIMER /50)/50 150 PRINT "CYCLE PERIOD=";CP;" OF A SECOND" 160 NEXT V 170 END 1000 :' BASIC DAC OUTPUT ROUTINE 1010 :' INPUT PARAMETER N, 6-BIT VALUE 1020 POKE &HFF20,(( PEEK (&HFF20) AND 3) OR (N*4)) 1030 RETURN 2000 :' SELECT AND ENABLE 6-BIT DAC SOUND SOURCE 2010 :' P0CRA = &HFF01:P0CRB=&HFF03:P1CRB= &HFF23 2019 :' NOW SET PIA0-CA2 LO 2020 POKE &HFF01,( PEEK (&HFF01) AND &HF7) 2029 :' SET PIA0-CB2 LO 2030 POKE &HFF03,( PEEK (&HFF03) AND &HF7) 2040 POKE &HFF23,( PEEK (&HFF23) OR 8) :' ENABLE SOUND 2050 RETURN REM REM line numbering breaks here! REM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $078a Exec: $8b8d * REM *(Start: 09217 Length: 01930 Exec: 35725) * REM ************************************************* REM 10 :'DUMP PROGRAM 15 :'PEEKS A WORD (16 BITS) 20 DEF FN W(A)= PEEK (A)*256+ PEEK (A+1) 30 DIM ZZ(2),XX(2,1),ZZ$(2),XX$(2,1) 40 DIM XY(1,2,3) 50 :'DEFINING VARIABLES BEFORE USE 60 FOR I=0 TO 2 70 ZZ(I)=I:ZZ$(I)= STR$ (I) 80 FOR J=0 TO 1 90 XX(I,J)=C:XX$(I,J)= STR$ (C) 100 XY(J,I,0)=C 110 C=C+1 120 NEXT J,I 130 PS=0 140 PE=0 150 VS=0 160 VE=0 170 AS=0 180 AE=0 190 DA=0 200 NA=0 210 DV=0 220 DBYTE=0:AN$="":SBYTE=0 230 R=0:H3=0:H2=0:H1=0:H0=0 240 PA=&H19 250 PS= FN W(PA) 260 VS= FN W(PA+2) 270 AS= FN W(PA+4) 280 PE=VS-1 290 VE=AS-1 300 AE= FN W(PA+6)-1 310 CLS 320 INPUT "OUTPUT TO PRINTER";AN$ 330 IF AN$="Y" THEN DV=-2 : ELSE DV=0 340 PRINT #DV,"PROGRAM START ADDRESS = ";:DBYTE=PS 350 GO SUB 1000: PRINT #DV 360 PRINT #DV,"PROGRAM END ADDRESS = ";:DBYTE=PE 370 GO SUB 1000: PRINT #DV 380 PRINT #DV,"VARIABLE START ADDRESS = ";:DBYTE=VS 390 GO SUB 1000: PRINT #DV 400 PRINT #DV,"VARIABLE END ADDRESS = ";:DBYTE=VE 410 GO SUB 1000: PRINT #DV 420 PRINT #DV,"ARRAY START ADDRESS = ";:DBYTE=AS 430 GO SUB 1000: PRINT #DV 440 PRINT #DV,"ARRAY END ADDRESS = ";:DBYTE=AE 450 GO SUB 1000: PRINT #DV 460 INPUT "DO YOU WISH A PROGRAM DUMP";AN$ 470 IF AN$<>"Y" THEN GO TO 630 480 PRINT #DV,"PROGRAM DUMP" 490 DA=PS 500 NA= FN W(DA) 510 IF (NA=0) OR (DA=PE) THEN 620 520 PRINT #DV: PRINT #DV 530 DBYTE=DA: GO SUB 1000 540 PRINT #DV 550 DBYTE=NA: GO SUB 1000 560 DA=DA+2 570 DBYTE= FN W(DA): GO SUB 1000 580 DA=DA+2 590 SBYTE= PEEK (DA): GO SUB 2000 600 DA=DA+1 610 IF DA<>NA THEN GO TO 590 : ELSE GO TO 500 620 PRINT #DV 630 INPUT "DO YOU VANT A VARIABLE DUMP";AN$ 640 IF AN$<>"Y" THEN GO TO 690 650 PRINT #DV: PRINT #DV: PRINT #DV,"VARIABLE DUMP" 660 FOR DA=VS TO VE 670 SBYTE= PEEK (DA): GO SUB 2000 680 NEXT DA 690 PRINT #DV 700 INPUT "DO WANT AN ARRAY DUMP";AN$ 710 IF AN$<>"Y" THEN GO TO 760 720 PRINT #DV: PRINT #DV: PRINT #DV,"ARRAY DUMP" 730 FOR DA=AS TO AE 740 SBYTE= PEEK (DA): GO SUB 2000 750 NEXT DA 760 PRINT #DV: PRINT #DV,"DUMP FINISHED" 770 STOP 1000 :'PRINT 2 BYTES AS 4 HEX CHARS 1010 R=DBYTE 1020 H3= INT (R/4096):R=DBYTE-H3*4096 1030 H2= INT (R/256):R=R-H2*256 1040 H1= INT (R/16):H0=R-H1*16 1045 HW$= HEX$ (H3)+ HEX$ (H2)+ HEX$ (H1)+ HEX$ (H0) 1050 PRINT #DV, USING " ";HW$ 1060 RETURN 2000 :'PRINT 1BYTE AS 2 HEX CHARS 2010 H1= INT (SBYTE/16):H0=SBYTE-H1*16 2020 PRINT #DV, USING " "; HEX$ (H1)+ HEX$ (H0); 2030 RETURN REM REM line numbering breaks here! REM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $0470 Exec: $8b8d * REM *(Start: 09217 Length: 01136 Exec: 35725) * REM ************************************************* REM 10 CLEAR 200,&H6FFF 20 AD=&H7100 30 FOR I=&H7000 TO &H7061 40 READ X$:X= VAL ("&H"+X$): POKE I,X 50 CSUM=CSUM+X 60 NEXT I 70 IF CSUM<>12446 THEN PRINT "DATA ERROR",CSUM: END 80 CLS : PRINT "** SOUND PHRASES **" 90 PRINT "NEW PHRASE ?" 100 A$= INKEY$ : IF A$="" THEN 100 110 IF A$="N" THEN 230 : ELSE IF A$<>"Y" THEN 100 120 INPUT "STARTING FREQUENCY";PR$(0) 130 IF LEN (PR$(0))<>4 THEN 120 140 INPUT "ENDING FREQUENCY";PR$(1) 150 IF LEN (PR$(1))<>4 THEN 140 160 INPUT "INCREMENT";PR$(2) 170 IF LEN (PR$(2))<>4 THEN 160 180 INPUT "DURATION";PR$(3) 190 IF LEN (PR$(3))<>4 THEN 180 200 PR$(3)= STR$ ( VAL (PR$(3))/10) 210 PR$(3)= MID$ (PR$(3),2) 220 IF LEN (PR$(3))<4 THEN PR$(3)="0"+PR$(3): GO TO 220 230 FOR I=0 TO 3 240 POKE AD+(2*I), VAL ( LEFT$ (PR$(I),2)) 250 POKE AD+(2*I)+1, VAL ( RIGHT$ (PR$(I),2)) 260 NEXT I 270 AD=AD+8 280 PRINT "MORE ?" 290 A$= INKEY$ : IF A$="" THEN 290 300 IF A$="Y" THEN 80 : ELSE IF A$<>"N" THEN 290 310 POKE AD+4,0: POKE AD+5,0 320 EXEC &H7000 330 GO TO 80 340 END 350 DATA 34,76,B6,FF,23,84,F3,B7,FF,23,F6,FF,22 360 DATA CA,02,F7,FF,22,8A,04,B7,FF,23,8D,03,35,76 370 DATA 39,CE,70,F8,33,48,AE,44,27,26,AE,C4,AC,42,27,F4 380 DATA 2C,0F,8D,1D,EC,C4,E3,44,10,A3,42,2C,E7 390 DATA ED,C4,20,F1,8D,0E,EC,C4,A3,44,10,A3,42 400 DATA 2F,D8,ED,C4,20,F1,39,AE,46,10,AE,C4,31,3F,26,FC,B6,FF,22 410 DATA 88,02,B7,FF,22,30,1F,26,ED,39 REM REM line numbering breaks here! REM FROM FROM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $0116 Exec: $8b8d * REM *(Start: 09217 Length: 00278 Exec: 35725) * REM ************************************************* REM 10 CLS 20 LINE INPUT "DAG: ";D$ 30 LINE INPUT "TIME: ";H$ 40 LINE INPUT "MINUTT: ";M$ 50 LINE INPUT "SEKUND: ";S$ 55 D= VAL (D$):H= VAL (H$):M= VAL (M$):S= VAL (S$) 60 CLS 70 TIMER =0 80 T= TIMER /47.5 90 IF T>.99 THEN S=S+1: TIMER =0 100 IF S>59 THEN M=M+1:S=0 110 IF M>59 THEN H=H+1:M=0 120 IF H>23 THEN D=D+1:H=0 130 PRINT @0,D;H;M;S;T 140 GO TO 80 REM REM line numbering breaks here! REM FROM U@ ]p LINE 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) ($FFFF)($FFDF)  /'^7^ FOR ($FFD0) 80 COPY / MERGE CREATE +5 STEP OR 74 PUT ($f5) 2561 DRIVE DIR REM REM line numbering breaks here! REM PMODE ($FF4C)($f8)($fd) TROFF MERGE CREATE +E STEP OR 745 PUT @ 229 7171  CHAIN ($FFCA)  REM REM line numbering breaks here! REM L($f7)= CHAIN DIR AUTO ELSE ERROR 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 86 31T2SCODSCODE 5 5 5 4 4 4 3 3 3 2 2 2 1 1 1 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF) REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM /'^7 FOR P FOR P 36 FOR ($fd) ON 337  FOR 31403 6 32908  RUN ($f6) ELSE . ELSE 33188 79 INPUT RETURN ($f0) 80 EDIT CONT MERGE CREATE +5 STEP OR 74 PUT ($f8)($ed)($f8)($f4) REM REM line numbering breaks here! REM ($FF0A) ($fc){ MERGE CREATE OFF ($f3) STEP OR ?45 PUT CLS  451 REM REM line numbering breaks here! REM  STEP CLS D RETURN 5 POKE RETURN  CONT SAVE ON OPEN 36499 IF ELSE ELSE . ELSE ERROR REM REM line numbering breaks here! REM 255 ($FFFF) REM REM line numbering breaks here! REM ($FFFF)($FFDF) 255 ($FFFF)($FF60)POL`COH`?`P"OL`C"OH`?OLOOP`)&OUTPUT`"IL`\DELAY`"IH`ILOOP`INPUT`&LENGHT` REM REM line numbering breaks here! REM &TSTART($FF20)#PIA[\  [\ DELAY RTS[` RTS[m BNE OLOOP[z LEAY -2,Y[ RUN  BNE OL[ AUDIO DECB[ DRAW  BSR DELAY[+OL CLR ,U[ FREAD  LDB ,X+[($ea) COM ,X[($fd) BNE OH\ DECB\! BSR DELAY\/ STA ,U\DOH LDA #$80\V COM ,X\jOLOOP LDB ,X+\| LDY LENGHT,PCR\ RUN  LDX TSTART,PCR\ TROFF  STB 3,U\+ STA -1,U\ DRIVE INCA\($ea) STA -3,U\($f8) LDD #$343F]  LDU #PIA]"OUTPUT ORCC #$50]6 RTS]J BNE ILOOP]W LEAY -2,Y]l STB ,X+] FOR  BCC IL] POKE  LSR ,U] SKIPF  BSR DELAY] PMODE IL INCB]< CLRB] ERROR  STB ,X+]($e8) BCS IH]($fb) LSR ,U^  BSR DELAY^ IH INCB^4 ILOOP CLRB^B LDY LENGHT,PCR^P LDX TSTART,PCR^j LDU #PIA^ ELSE INPUT ORCC #$50^ DEF LENGHT FDB $1800^ PSET TSTART FDB $0600^ STEP  ORG $6000^ DRIVE PIA EQU $FF20^($eb)_($FF5F)H@`]`]N! 0  @N! `\N!0000 errs ```````````````````````````````` [!  _O@ ~ ($ef) `\ 255 ($FF28) 4826 \^t ELSE ($FF12)PIA EQU $FF20`````````````` REM REM line numbering breaks here! REM 2 A   5 ` FOR REM REM line numbering breaks here! REM 2  95 LLIST [ZN!MJQ REM REM line numbering breaks here! REM  P AUTO ($FF20) SCREEN DIM ($f4) SCREEN DIM ($f2)_\ READ Hd-($f9) SWAP FOR _\ READ >d-$($f9) SWAP FOR 1>&($e8)9P AUTO ($FF20)<4? EDIT ]L EDIT _ SWAP C SCREEN DIM * SCREEN DIM + FLREAD FOR c ELSE DATA FOR EDIT - READ Z&($f7)c ELSE FLREAD FOR o- READ Z&($f9)1>& VERIFY 99 FROM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $01a3 Exec: $8b8d * REM *(Start: 09217 Length: 00419 Exec: 35725) * REM ************************************************* REM 10 CLS 20 PRINT "HOW LONG DO YOU WANT" 30 PRINT "TO SET THE TIMER FOR" 40 PRINT 50 PRINT "ENTER THEN NUMBER OF MINUTES"; 60 INPUT A 70 CLS : PRINT "COUNTING UP TO";A;"MINUTE/S" 80 FOR I=1 TO A: FOR J=1 TO 37825: NEXT J 90 CLS : PRINT "COUNTING UP TO";A;"MINUTES/S" 100 PRINT 110 PRINT I;MINUTE/S OF";A;"COUNTED" 120 SOUND 200,2 130 NEXT I 140 FOR I=1 TO 4 150 SOUND 180,5: SOUND 150,3: SOUND 100,1: NEXT I 160 CLS 170 PRINT "TIMES UP!" 180 PRINT 190 PRINT "DO YOU WANT TO RESET TIMER?Y/N"; 200 IF B$="Y" THEN GO TO 10: ELSE END REM REM line numbering breaks here! REM ($FFFF)($FF0F) ($FFFF)($FFF8)($FFFF)($FF0F)($f0)($FFFF)($FFE0)($FFFF)($FFCF) 206 REM REM line numbering breaks here! REM 4080 ($FFFF) REM REM line numbering breaks here! REM NOT ($FFBF)($FFFF)($fe)($FFFB)($FFEF)($FFFF) ( DSKINIT ($ed) TALKPROGBASD 252 REM REM line numbering breaks here! REM COUNTER BAS ($fc) 172 REM REM line numbering breaks here! REM SCODE BAK REALTIMEBAS PUT   ($FFFF) SOUND BAS RESTORE  y SCODE BIN FREAD ! f ATEST BAS H 139 REM REM line numbering breaks here! REM HEXDUMP BAS l 147 REM REM line numbering breaks here! REM CHRDUMP BAK $ 6 CHDUMP BAS  U CHRDUMP BASz w LOTTO BAS DIM  SCRFL BIN SET   CATHRINEBIN COLOR  s MAP BIN OFF   SEC BIN CREATE  ( INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $07f3 Exec: $8b8d * REM *(Start: 09217 Length: 02035 Exec: 35725) * REM ************************************************* REM 10 :'SPEECH PROGRAM 20 :'FOR THE DRAGON 30 PCLEAR 8: CLEAR 200,&H7000 40 CLS : PRINT " STORING MACHINE CODE" 50 DIM A(255) 60 SS=&H0600:SE=SS+&H17FF 65 :'start & end of speech mem 70 READ IS,OS,I:IS=IS+I:OS=OS+I 80 READ P 90 IF P>=0 THEN POKE I,P:I=I+1: GO TO 80 100 :' 110 :'COMMAND LOOP 120 SOUND 40,1: AUDIO OFF : CLS : SCREEN 1,0 130 PRINT "COMMAND KEYS:" 140 PRINT " I-INPUT SPEECH" 150 PRINT " O-OUTPUT SPEECH ONCE" 160 PRINT " R-OUTPUT SPEECH REPEATEDLY" 170 PRINT " A-ANALYSE SPEECH" 180 PRINT " S-SAVE SPEECH" 190 PRINT " L-LOAD SPEECH" 200 GO SUB 730 210 ON INSTR ("IORSLA",A$) GO TO 260,340,390,440,490,540 220 PRINT " invalid command" 230 GO TO 200 240 :' 250 :' SPEECH INPUT 260 PRINT "PRESS ANY KEY TO START" 270 PMODE 4,1: PCLS 280 AUDIO ON : GO SUB 730 290 SCREEN 1,1 300 EXEC IS::'INPUT SPEECH 310 GO TO 120 320 :' 330 :' OUTPUT SPEECH ONCE 340 PMODE 4,1: SCREEN 1,1 350 AUDIO ON : EXEC OS::'OUTPUT SPEECH 360 GO TO 120 370 :' 380 :' OUTPUT SPEECH REPEATEDLY 390 PMODE 4,1: SCREEN 1,1: AUDIO ON 400 EXEC OS: IF INKEY$ ="" THEN 400 410 GO TO 120 420 :' 430 :'SAVE SPEECH TO CASSETTE 440 INPUT "NAME";A$ 450 CSAVE M A$,SS,SE,0 460 GO TO 120 470 :' 480 :'LOAD SPEECH FROM CASSETTE 490 INPUT "NAME";A$ 500 CLOAD M A$ 510 GO TO 120 520 :' 530 :'ANALYSE SPEECH 540 PMODE 4,5: PCLS : SCREEN 1,1 550 FOR I=0 TO 255:A(I)=0: NEXT I 560 FOR I=SS TO SE 570 P= PEEK (I) 580 IF A(P)<192 THEN PSET (P,192-A(P)) 590 A(P)=A(P)+1 600 NEXT I 610 SCREEN 1,0: GO SUB 730 620 FOR I=1 TO 255 630 A(I)=A(P)+1 640 IF A(I)>P THEN P=A(I) 650 NEXT I 660 P=191/P 670 FOR I=1 TO 255 680 LINE (I,191)-(I,191-P*A(I)), PSET 690 NEXT I 700 GO SUB 730 710 GO TO 120 720 :' 730 :'SUBRUTINE TO WAIT FOR KEYPRESS 740 A$= INKEY$ : IF A$="" THEN 740 750 IF ASC (A$)=3 THEN STOP 760 RETURN 770 :' 780 :'SPEECH ROUTINE OFFSETS FROM START OF CODE 790 DATA 4,41 800 :' CODE START ADRESS 810 DATA &H7000 820 :' SPEECH MEMORY START HIGH&LOW BYTES 830 DATA 6,0 840 :' SPEECH MEMORY LENGHT HIGH&LOW BYTES 850 DATA 24,0 860 :' SPEECH SUBROUTINES 870 DATA 26,80,206,255,32,174,140,244,16,174,140,242 880 DATA 95,92,141,72,100,196,37,249,231,128,95,92,141,62,100,196 890 DATA 36,249,231,128,49,62,38,232,57,26,80,206,255,32,204,52 900 DATA 63,167,93,76,167,95,231,67,174,140,197,16,174,140,195,230 910 DATA 128,99,132,134,128,167,196,141,19,90,38,247,99,132,230,128 920 DATA 111,196,141,8,90,38,249,49,62,38,228,57,57 930 DATA -1 REM REM line numbering breaks here! REM ($FFFF)($FF0F) ($FFFF)($FFF8)($FFFF)($FF0F)($f0)($FFFF)($FFE0)($FFFF)($FFCF) 206 REM REM line numbering breaks here! REM 4080 ($FFFF) REM REM line numbering breaks here! REM NOT ($FFBF)($FFFF)($fe)($FFFB)($FFEF)($FFFF) ( DSKINIT ($ed) TALKPROGBASD 252 REM REM line numbering breaks here! REM COUNTER BAS ($fc) 172 REM REM line numbering breaks here! REM SCODE BAK REALTIMEBAS PUT   ($FFFF) SOUND BAS RESTORE  y SCODE BIN FREAD ! f ATEST BAS H 139 REM REM line numbering breaks here! REM HEXDUMP BAS l 147 REM REM line numbering breaks here! REM CHRDUMP BAK $ 6 CHDUMP BAS  U CHRDUMP BASz w LOTTO BAS DIM  SCRFL BIN SET   CATHRINEBIN COLOR  s MAP BIN OFF   SEC BIN CREATE  ( INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT INPUT 85 $ n NEXT READ LINE $($ea)` POKE 65495,0 60010 REM DUMP PROGRAM 60020 REM PEEKS A WORD (16 BITS) 60030 DEF FN W(A)= PEEK (A)*256+ PEEK (A+1) 60040 DIM ZZ(2),XX(2,1),ZZ$(2),XX$(2,1) 60050 DIM XY(1,2,3) 60060 REM DEFINING VARIABLES BEFORE USE 60070 FOR I=0 TO 2 60080 ZZ(I)=I:ZZ$(I)= STR$ (I) 60090 FOR J=0 TO 1 60100 XX(I,J)=C:XX$(I,J)= STR$ (C) 60110 XY(J,I,0)=C 60120 C=C+1 60130 NEXT J,I 60140 PS=0 60150 PE=0 60160 VS=0 60170 VE=0 60180 AS=0 60190 AE=0 60200 DA=0 60210 NA=0 60220 DV=0 60230 DBYTE=0:AN$="":SBYTE=0 60240 R=0:H3=0:H2=0:H1=0:H0=0 60250 PA=&H19 60260 PS= FN W(PA) 60270 VS= FN W(PA+2) 60280 AS= FN W(PA+4) 60290 PE=VS-1 60300 VE=AS-1 60310 AE= FN W(PA+6)-1 60320 CLS 60330 INPUT "OUTPUT TO PRINTER";AN$ 60340 IF AN$="Y" THEN DV=-2 60350 DV=0 60360 PRINT #DV,"PROGRAM START ADDRESS = ";:DBYTE=PS 60370 GO SUB 60800: PRINT #DV 60380 PRINT #DV,"PROGRAM END ADDRESS = ";:DBYTE=PE 60390 GO SUB 60800: PRINT #DV 60400 PRINT #DV,"VARIABLE START ADDRESS = ";:DBYTE=VS 60410 GO SUB 60800: PRINT #DV 60420 PRINT #DV,"VARIABLE END ADDRESS = ";:DBYTE=VE 60430 GO SUB 60800: PRINT #DV 60440 PRINT #DV,"ARRAY START ADDRESS = ";:DBYTE=AS 60450 GO SUB 60800: PRINT #DV 60460 PRINT #DV,"ARRAY END ADDRESS = ";:DBYTE=AE 60470 GO SUB 60800: PRINT #DV 60480 INPUT "DO YOU WISH A PROGRAM DUMP";AN$ 60490 IF AN$<>"Y" THEN GO TO 60650 60500 PRINT #DV,"PROGRAM DUMP" 60510 DA=PS 60520 NA= FN W(DA) 60530 IF (NA=0) OR (DA=PE) THEN 60640 60540 PRINT #DV: PRINT #DV 60550 DBYTE=DA: GO SUB 60800 60560 PRINT #DV 60570 DBYTE=NA: GO SUB 60800 60580 DA=DA+2 60590 DBYTE= FN W(DA): GO SUB 60800 60600 DA=DA+2 60610 SBYTE= PEEK (DA): GO SUB 60880 60620 DA=DA+1 60630 IF DA<>NA THEN GO TO 60610 : ELSE GO TO 60520 60640 PRINT #DV 60650 INPUT "DO YOU VANT A VARIABLE DUMP";AN$ 60660 IF AN$<>"Y" THEN GO TO 60710 60670 PRINT #DV: PRINT #DV: PRINT #DV,"VARIABLE DUMP" 60680 FOR DA=VS TO VE 60690 SBYTE= PEEK (DA): GO SUB 60880 60700 NEXT DA 60710 PRINT #DV 60720 INPUT "DO WANT AN ARRAY DUMP";AN$ 60730 IF AN$<>"Y" THEN GO TO 60780 60740 PRINT #DV: PRINT #DV: PRINT #DV,"ARRAY DUMP" 60750 FOR DA=AS TO AE 60760 SBYTE= PEEK (DA): GO SUB 60880 60770 NEXT DA 60780 PRINT #DV: PRINT #DV,"DUMP FINISHED" 60790 STOP 60800 REM PRINT 2 BYTES AS 4 HEX CHARS 60810 R=DBYTE 60820 H3= INT (R/4096):R=DBYTE-H3*4096 60830 H2= INT (R/256):R=R-H2*256 60840 H1= INT (R/16):H0=R-H1*16 60850 HW$= HEX$ (H3)+ HEX$ (H2)+ HEX$ (H1)+ HEX$ (H0) 60860 PRINT #DV, USING " ";HW$ 60870 RETURN 60880 REM PRINT 1 BYTE AS A CHARACTER 60890 IF SBYTE=135 THEN PRINT "PRINT";: GO TO 61190 60900 IF SBYTE=137 THEN PRINT "INPUT";: GO TO 61190 60910 IF SBYTE=152 THEN PRINT "DEF";: GO TO 61190 60920 IF SBYTE=190 THEN PRINT "FN";: GO TO 61190 60930 IF SBYTE=195 THEN PRINT "+";: GO TO 61190 60940 IF SBYTE=197 THEN PRINT "*";: GO TO 61190 60950 IF SBYTE=203 THEN PRINT "=";: GO TO 61190 60960 IF SBYTE=140 THEN PRINT "DIM";: GO TO 61190 60970 IF SBYTE=130 THEN PRINT "REM";: GO TO 61190 60980 IF SBYTE=255 THEN PRINT "PEEK";: GO TO 61190 60990 IF SBYTE=196 THEN PRINT "-";: GO TO 61190 61000 IF SBYTE=128 THEN PRINT "FOR";: GO TO 61190 61010 IF SBYTE=188 THEN PRINT "TO";: GO TO 61190 61020 IF SBYTE=142 THEN PRINT "STR$";: GO TO 61190 61030 IF SBYTE=139 THEN PRINT "NEXT";: GO TO 61190 61040 IF SBYTE=160 THEN PRINT "CLS";: GO TO 61190 61050 IF SBYTE=133 THEN PRINT "IF";: GO TO 61190 61060 IF SBYTE=191 THEN PRINT "THEN";: GO TO 61190 61070 IF SBYTE=129 THEN PRINT "GO";: GO TO 61190 61080 IF SBYTE=189 THEN PRINT "SUB";: GO TO 61190 61090 IF SBYTE=204 THEN PRINT "<";: GO TO 61190 61100 IF SBYTE=202 THEN PRINT ">";: GO TO 61190 61110 IF SBYTE=201 THEN PRINT "OR";: GO TO 61190 61120 IF SBYTE=149 THEN PRINT "LIST";: GO TO 61190 61130 IF SBYTE=147 THEN PRINT "POKE";: GO TO 61190 61140 IF SBYTE=146 THEN PRINT "STOP";: GO TO 61190 61150 IF SBYTE=198 THEN PRINT "/";: GO TO 61190 61160 IF SBYTE=129+16 THEN PRINT "RETURN";: GO TO 61190 61170 IF SBYTE=205 THEN PRINT "USING";: GO TO 61190 61180 PRINT CHR$ (SBYTE); 61190 RETURN REM REM line numbering breaks here! REM FROM REM REM ************************************************* REM * Dragon file header detected: * REM * Start: $2401 Length: $0300 Exec: $8b8d * REM *(Start: 09217 Length: 00768 Exec: 35725) * REM ************************************************* REM 1 L=1 10 CLS 20 A= RND (34) 30 B= RND (34) 40 C= RND (34) 50 D= RND (34) 60 E= RND (34) 70 F= RND (34) 80 G= RND (34) 90 IF A=B OR A=C OR A=D OR A=E OR A=F OR A=G THEN 20 100 IF B=C OR B=D OR B=E OR B=F OR B=G THEN 30 110 IF C=D OR C=E OR C=F OR C=G THEN 40 120 IF D=E OR D=F OR D=G THEN 50 130 IF E=F OR E=G THEN 60 140 IF F=G THEN 70 141 L$= STR$ (L) 142 GO SUB 180 150 PRINT L$":";A;B;C;D;E;F;G 160 INK$= INKEY$ : IF INK$="" THEN 160 161 L=L+1 170 GO TO 20 180 IF A>B THEN SWAP A,B 190 IF A>C THEN SWAP A,C 200 IF A>D THEN SWAP A,D 210 IF A>E THEN SWAP A,E 220 IF A>F THEN SWAP A,F 230 IF A>G THEN SWAP A,G 240 IF B>C THEN SWAP B,C 250 IF B>D THEN SWAP B,D 260 IF B>E THEN SWAP B,E 270 IF B>F THEN SWAP B,F 280 IF B>G THEN SWAP B,G 290 IF C>D THEN SWAP C,D 300 IF C>E THEN SWAP C,E 310 IF C>F THEN SWAP C,F 320 IF C>G THEN SWAP C,G 330 IF D>E THEN SWAP D,E 340 IF D>F THEN SWAP D,F 350 IF D>G THEN SWAP D,G 360 IF E>F THEN SWAP E,F 370 IF E>G THEN SWAP E,G 380 IF F>G THEN SWAP F,G 390 RETURN REM REM line numbering breaks here! REM FROM FROM FROM UN! N! LINE 4 DATA 167 FOR DIM  REM REM line numbering breaks here! REM ($f9)L GO FOR ($f1)5 STOP FROM FROM UN! jN! LINE DATA C SUB FOR DATA A SUB FOR DATA T SUB FOR DATA H SUB FOR DATA R SUB FOR DATA I SUB FOR DATA N SUB FOR DATA E SUB FOR DATA SUB FOR DATA E SUB FOR DATA L SUB FOR DATA S SUB FOR DATA K SUB FOR DATA E SUB FOR DATA R SUB FOR DATA SUB FOR DATA S SUB FOR DATA T SUB FOR DATA I SUB FOR DATA A SUB FOR DATA N SUB FOR 9 FROM UN! N! LINE 4 LET NOT 227 GO DIM REM REM line numbering breaks here! REM ($f9)($fd)5 CLEAR FROM FROM FROM UN! 8618 0 DIM ~ RESTORE FROM CATHRINE ELSKER STIAN REM REM line numbering breaks here! REM