32771,2  $0801,$E801-OPT M1 L?W 2059,64000X(BYT $9E,"2061",0,0,0i2LASTAD$A000<STARTPLAY1:PLAYING2!!1000JSR CLEARMENUINIT JSR INITMENU JSR BYT "1 - EDIT TEXT",13 BYT "2 - REPLAY",13 $BYT "3 - SILENT",139 .BYT "4 - DISK MENU",13R 8BYT "5 - QUIT",13y BBYT "CRSR UP/DOWN=FREQUENCY",13 LBYT "CRSR RIGHT/LEFT=SPEED",13 VBYT "YOUR CHOICE?",0 `MENU1 JSR SHOWSPEED jLOOP JSR $FFE4 tCMP #17:BEQ QDOWN:CMP #145:BEQ QUPK ~CMP #29:BNE #3:JMP FASTER:CMP #157:BNE #3:JMP SLOWERs CMP #'1:BCC LOOP:CMP #'6:BCS LOOP SBC #'0:BNE #3:JMP EDTEXT TAX:DEX:BNE #3:JMP REPLAY DEX:BNE #3:JMP MENUINIT DEX:BNE #3:JMP DISKMENU LDA #%00000010:STA $DC0D JSR NE0:JSR OUTPUT04 LDA #$00:STA $028Ap SEI:LDA #$EA31:STA $0314:LDA #$EA31:STA $0315:CLI:RTS QUP LDA Q:CLC:ADC #$80:STA Q:LDA Q1:ADC #0:STA Q1 QDOWN LDA Q:SEC:SBC #$40:STA Q:LDA Q1:SBC #0:STA Q1 LDA Q:STA $D400:LDA Q1:STA $D401:JMP LOOP) !!2000G  PLA:STA $FD:PLA:STA $FET LDY #$00{ PRLOOP INC $FD:BNE PR1:INC $FE:PR1 LDA ($FD),Y:BEQ PRDE JSR $FFD2:JMP PRLOOP PRDE LDA $FE:PHA:LDA $FD:PHA:RTS 4!!2100 >CLEAR LDA #0:STA $FD:LDA #0:STA $FE- HLDY #$00:LDA #':LDX #LASTAD] RCLEARLOOP STA ($FD),Y:INC $FD:BNE CLEARLOOP \INC $FE:CPX $FE:BNE CLEARLOOP fLDY #$3F:LDA #$00 pLOOP STA $02C0,Y:DEY:BPL LOOP zLDY #21 LOOP LDA SPR,Y:STA $02C0,Y:DEY:BPL LOOP RTS!!22006INIT LDA #$00:STA $D020:LDA #$07:STA $D021dLDA #$00:STA FUNCTI:LDA #$FF:STA PLAYNOWLDA Q:STA $D400:LDA Q1:STA $D401LDA #$00:STA $D405:LDA #$F0:STA $D406JSR OUTPUT0:JSR NE0LDA #$00:STA $D417:LDA #$0F:STA $D418LDA #%00000010:STA $DC0DHLDX #'1:STX SPEED:DEX:STX SPEED1:STX SPEED2YJSR SETSPEEDSEI:LDA #IRQ:STA $0314:LDA #IRQ:STA $0315:CLI LDA #%00010001:STA $DC0F:LDA #%10000010:STA $DC0D LDA #$80:STA $028A RTS !!2500 NE0 LDA #%00010000:STA $D404:RTS9 NE1 LDA #%00010001:STA $D404:RTSD( !!2600X2 SHOWSPEED JSR |< BYT " SPEED: "F SPEED BYT "100"P BYT " ",13,0Z RTS !!3000 FASTER MAC LDX #'9:CPX SPEED:BNE OK:CPX SPEED1:BNE OK:CPX SPEED2:BEQ DE% OK INXK INC SPEED2:CPX SPEED2:BNE DE1c LDA #'0:STA SPEED2 INC SPEED1:CPX SPEED1:BNE DE1 STA SPEED1:INC SPEED DE1 JSR SETSPEED DE JMP MENU1!!4000SLOWER MACLDX #'1:CPX SPEED1:BNE OK6DEX:CPX SPEED:BNE OK:CPX SPEED2:BEQ DEHOK LDX #'01nDEC SPEED2:CPX SPEED2:BNE DE1LDA #'9:STA SPEED2DEC SPEED1:CPX SPEED1:BNE DE1STA SPEED1:DEC SPEEDDE1 JSR SETSPEEDDE JMP MENU1!!5000 EDTEXT JSR 3BYT "TEXT TO EDIT (0-9): ",0iLOOP JSR $FFE4:TAY:SEC:SBC #'0:CMP #10:BCS LOOPCMP PLAYNOW:BNE #3:JMP MENUTAX:TYA:JSR $FFD2LDA TABLO,X:STA $02:LDA TABHI,X:STA $03LDA TABLO1,X:SEC:SBC #1:STA $04:LDA TABHI1,X:SBC #0:STA $05JSR 8BYT 13," F1 - DONE",0cEDHOME LDA $02:STA $FB:LDA $03:STA $FCxLDA #$01:LDY #39LOOP STA $DA08,Y:DEY:BPL LOOP STA $DA084020:LDA #&:STA $06084020EDLOOP JSR SHOWROWLOOP JSR $FFE4:CMP #157:BEQ EDLEFT:CMP #29:BEQ EDRIGHT3(CMP #148:BEQ EDINSJ2CMP #133:BEQ EDDEq<CMP #19:BEQ EDHOME:CMP #20:BEQ EDFCMP #$20:BCC LOOP:BEQ EDCHAROKPCMP #$DE:BEQ EDCHAROKZCMP #'_1:BCS LOOPdCMP #':BCS EDCHAR nTAX:LDY IITAB,X:BEQ LOOP:BEQ EDLOOPLxEDCHAROK LDX $FB:CPX $04:BNE EDSRE:LDX $FC:CPX $05:BEQ EDLOOPEDSRE LDY #$00:PHA:LDA ($FB),Y:TAX:PLA:STA ($FB),YINC $FB:BNE #2:INC $FCCPX #':BEQ EDLAST:CPX #'_:BNE EDLOOPEDLAST TXA:STA ($FB),Y:JMP EDLOOPEDINS JMP EDINS0EDCHAR LDY #$00:STA ($FB),Y:JMP EDLOOPCEDDE JMP MENUEDLEFT LDA $FB:CMP $02:BNE EDLEFK:LDA $FC:CMP $03:BEQ EDLOOPEDLEFK LDA $FB:BNE #2:DEC $FC:DEC $FBJMP EDLOOPEDRIGHT LDY #$00:LDA ($FB),Y CMP #'_:BEQ EDLOOP:CMP #':BEQ EDLOOP,INC $FB:BNE EDLOOP:INC $FCCEDLOOP JMP EDLOOP~ED LDA $FB:CMP $02:BNE #6:LDA $FC:CMP $03:BEQ EDLOOPLDA $FB:BNE #2:DEC $FC:DEC $FB"LDA $FB:STA $FD:LDA $FC:STA $FE:LDX #$00:LDY #$01,EDLOOP LDA ($FD),Y:STA ($FD,X)'6CMP #'_:BEQ EDLOOP:CMP #':BEQ EDLOOPS@INC $FD:BNE EDLOOP:INC $FE:JMP EDLOOPJEDINS LDA $FB:STA $FD:LDA $FC:STA $FE:LDX #$00TLOOP LDA ($FD,X):CMP #'_:BEQ EDINS1:CMP #':BEQ EDINS1^INC $FD:BNE LOOP:INC $FE:BNE LOOP,hEDINS1 LDA $FD:CMP $04:BNE EDINS2:LDA $FE:CMP $05:BEQ EDLOOP@rEDINS2 LDY #$01b|LOOP LDA ($FD,X):STA ($FD),YLDA $FD:CMP $FB:BNE EDINS3:LDA $FE:CMP $FC:BEQ EDINS4EDINS3 LDA $FD:BNE #2:DEC $FE:DEC $FD:JMP LOOPEDINS4 LDA #$20:STA ($FD,X):JMP EDLOOP!!5800ESHOWROW LDA $FB:SEC:SBC #20:STA $FD:LDA $FC:SBC #0:STA $FE[LDX #$00:LDY #$00LOOP LDA $FE:CMP $03:BCC SRSPACE:BNE SROK1LDA $FD:CMP $02:BCC SRSPACESROK1 LDA $FE:CMP $05:BCC SROK:BNE SRSPACELDA $FD:CMP $04:BCC SROK:BEQ SROK SRSPACE LDA #$20:BNE SRSREXSROK LDA ($FD),Y:CMP #$DE:BNE #4:LDA #&:BNE SRSRE~CMP #'_:BEQ #4:CMP #':BNE SRSCR PHA:LDA #$FE:STA $FE:PLASRSCR #$3F SRSRE STA $0608,X*INC $FD:BNE #2:INC $FE4INX:CPX #40:BCC LOOP:RTSp!!6000zREPLAY JSR @BYT "TEXT TO PLAY (0-9): ",0rLOOP JSR $FFE4:SEC:SBC #'0:CMP #10:BCS LOOPSTA PLAYNOWTAX:LDA #$00:STA FUNCTILDA TABLO,X:STA PLAYSTART:LDA TABHI,X:STA PLAYSTART1LDA #STARTPLAY:STA FUNCTIJMP MENUX!!70005bKEY JSR $FFE4:CMP #0:BNE KEY?lJSR kvBYT 13,"PRESS ANY KEY TO CONTINUE!",0LOOP JSR $FFE4:CMP #0:BEQ LOOPRTS@!!8000J JSR TBYT "TEXT TO SAVE (0-9): ",0 ^LOOP JSR $FFE4:TAY:SEC:SBC #'0:CMP #10:BCS LOOP"hTAX:TYA:JSR $FFD2PrLDA TABLO,X:STA $FB:LDA TABHI,X:STA $FCt|LDA #'S:STA $0D:LDA #'W:STA $0EJSR FILE:BCS DMLDX #$08:JSR $FFC9:BCS :LDA $90:BNE LDY #$00LOOP LDA ($FB),Y:TAX:JSR $FFD2 CPX #':BEQ :CPX #'_:BEQ . INC $FB:BNE LOOP:INC $FC:BNE LOOPG  LDA #$08:JSR $FFC3U JSR $FFE7j DM JMP DISKMENUu (#!!9000 2# JSR <#BYT "TEXT TO LOAD (0-9): ",0 F#LOOP JSR $FFE4:TAY:SEC:SBC #'0:CMP #10:BCS LOOP P#TAX:TYA:JSR $FFD2"!Z#LDA TABLO,X:STA $FB:LDA TABHI,X:STA $FCf!d#LDA TABLO1,X:SEC:SBC #1:STA $FD:LDA TABHI1,X:SBC #0:STA $FE!n#LDA #'S:STA $0D:LDA #'R:STA $0E!x#JSR FILE:BCS DM!#LDX #$08:JSR $FFC6:BCS :LDA $90:BNE :LDY #$00!#LOOP JSR $FFCF:LDX $90:BNE 1"#CMP #':BEQ 2:CMP #'_:BEQ 2T"#CMP #$20:BCC 1:CMP #94:BCS 1:TAX:LDA IITAB,X:BEQ 1"#LDA $FB:CMP $FD:BNE #6:LDA $FC:CMP $FE:BEQ 1"#TXA:STA ($FB),Y:INC $FB:BNE LOOP:INC $FC:BNE LOOP"#1 LDA #'"#2 STA ($FB),Y:JMP "'!!10000#'IRQ MAC:LDA $DC0D:PHA: #$02:BNE IRQBYES5#$'IRQBNO JMP NMIRQY#.'IRQBYES DEC IRQCOUNT:BNE IRQBNOr#8'LDA #10:STA IRQCOUNT#B'LDA FUNCTI:BNE GA#L'LDA #$FF:STA PLAYNOW:BNE IRQBNO#V'GA CMP #PLAYING:BEQ IRQPLAYING#`'CMP #STARTPLAY:BNE IRQBNO.$j'LDA PLAYSTART:STA CHARPTR1:LDA PLAYSTART1:STA CHARPTR2_$t'LDX #$00:STX CHAR:STX NOSPACE:DEX:STX NECNT|$~'LDA #PLAYING:STA FUNCTI$'JSR NE0:JSR OUTPUT0:JMP NMIRQ$'IRQPLAYING LDX NECNT:BMI IPSIT$'DEX:BNE IPSIT:JSR OUTPUT0:JSR NE0:LDX #$FF%'IPSIT STX NECNT:JMP NMIRQ4%'IPSIT INX:BNE IPSITT%'IPNE ASL CHAR:BEQ CHARPTRx%'LDA #1:BCC #2:LDA #3:STA NECNT%'JSR OUTPUT1:JSR NE1:JMP NMIRQ%'CHARPTR LDX 0%'INC CHARPTR1:BNE #3:INC CHARPTR2 &'CPX #$20:BEQ IPSPACE:CPX #$DE:BEQ IPINVNOSPACE2&'CPX #'_:BEQ IPREPEAT:CPX #':BEQ IPL&(LDA IITAB,X:STA CHAR& (LDA NOSPACE:BNE IPNE:LDA #$FE:STA NECNT:BNE NMIRQ&(IPSPACE LDA #$FC:STA NECNT:BNE NMIRQ&(IPINVNOSPACE LDA NOSPACE:E #$FF:STA NOSPACE:JMP IPNE '((IPREPEAT LDA #STARTPLAY:STA FUNCTI:BNE NMIRQ='2(IP LDA #$00:STA FUNCTII'*!!10900f'*NMIRQ PLA: #$01:BNE #3t'*JMP $FEBC'*LDA #$01:STA $028B:JMP $EA31'*!!11000'+SETSPEED MAC:LDX #$00' +STX REG1:STX REG11:STX REG31:STX REG4:STX REG41)(+DEX:STX REG21:LDA #$1C:STA REG2:LDA #$11:STA REG36( +LDX #$02T(*+LOOP1 LDA SPEED,X: #$0F`(4+BEQ 1h(>+TAY(H+LOOP2 LDA DECTAB,X:CLC:ADC REG1:STA REG1:BCC #3:INC REG11(R+DEY:BNE LOOP2(\+1 DEX:BPL LOOP1(f+LDX #$0F)p+LOOP3 LDA REG31:CMP REG11:BCC LESS:BNE ME3)z+LDA REG3:CMP REG1:BCC LESS[)+ME LDA REG3:SEC:SBC REG1:STA REG3)+LDA REG31:SBC REG11:STA REG31)+SEC)+LESS ROL REG4:ROL REG41)+ASL REG2:ROL REG21)+ROL REG3:ROL REG31)+DEX:BPL LOOP3*+LDA REG4:STA $DC06:LDA REG41:STA $DC07*+RTS)*.!!12000L*.OUTPUT1 LDA #$01:STA $D020:RTSX*2!!13000{*2OUTPUT0 LDA #$00:STA $D020:RTS*6!!14000*6DISKMENU JSR *6BYT "DISK MENU",13*6BYT "---------",13*6BYT "1 - DIR",13*6BYT "2 - LOAD",13+6BYT "3 - SAVE",13/+6BYT "4 - DISK COMMAND",13K+7BYT "5 - MAIN MENU",13g+ 7BYT "YOUR CHOICE? ",0t+7JSR INIT+7LOOP JSR $FFE4:CMP #'1:BCC LOOP:CMP #'6:BCS LOOP+(7TAX:JSR $FFD2:LDA #$0D:JSR $FFD2:TXA+27SBC #'0:TAX:BEQ DIR,<7DEX:BEQ ,F7DEX:BEQ !,P7DEX:BEQ COMM.,Z7JMP MENUA,d7DIR JMP DODIRN,n7 JMP [,x7 JMP o,7COMM JMP DMCOM,:!!15000 ! OUT,:OUT STX $0100,:STA $0101,:A $0100,:STA $0102,:BNE OUT1,:LDA #'0,:JMP $FFD2,:OUT1 LDY #$04 -:OUT2 LDX #'0-:OUT3 LDA $01010-;CMP OUTHI,Y>-;BNE OUT4L-;LDA $0100]-$;CMP OUTLO,Yq-.;OUT4 BCC OUT5y-8;INX-B;LDA $0100-L;SBC OUTLO,Y-V;STA $0100-`;LDA $0101-j;SBC OUTHI,Y-t;STA $0101-~;BCS OUT3-;OUT5 CPX #'0.;BNE OUT6.;LDA $0102.;BNE OUT70.;OUT6 LDA #$00>.;STA $0102F.;TXAT.;JSR $FFD2b.;OUT7 DEYp.;BPL OUT2x.;RTS.;OUTLO BYT 1,10,100,1000,10000.!!16000.>DODIR JSR DIR.>JSR KEY/>JMP DISKMENU/>DIR LDA #$93#/>JSR $FFD20/>LDA #$08STA $BAI/>LDA #$04[/>LDX #DIRNAMEm/>LDY #DIRNAME{/>JSR $FFBD/>LDA #$60/?STA $B9/ ?JSR $F3D5/?LDA $BA/ ?JSR $FFB4/*?LDA $B9/4?JSR $FF96/>?JSR $FFA5/H?LDA $90/R?LSR A0\?LSR A0f?BCS DIRRTS!0p?JSR $FFA570z?DIRLINE JSR $FFE1D0?BEQ DIRU0?JSR DIRBYTEf0?JSR DIRBYTEw0?JSR DIRBYTE0?STA $FD0?JSR DIRBYTE0?LDX $FD0?JSR OUT0?LDA #$200?JSR $FFD20?DIRCHAR JSR DIRBYTE0?BNE DIRLINE0?LDA #$0D 1@JSR $FFD21@JMP DIRLINE41@DIRLINE JSR $FFD2D1$@JMP DIRCHAR[1.@DIRBYTE JSR $FFA5c18@TAXo1B@LDA $90y1L@LSR A1V@LSR A1`@BCS DIRT1j@BIT $901t@BVS DIRDE1~@TXA1@RTS1@DIRRTS JMP $FFE71@DIRDE JSR $FFAB1@JSR $FFAB2@JSR $F642 2@PLA2@PLA2@RTS.2@DIRT LDA $9092@ #$FDE2@STA $90S2@JSR $FFE1b2ABNE DIRTj2 APLAr2APLA2ADIR JSR $FFE72(AJMP $F63322ADIRNAME BYT "$0:*"2hB!!170002rB LDA $022|BSTA $072BLDA $032BCLC2BADC #$D42BSTA $08 3BLDY $043BIL1 LDA #$00*3BSTA ($07),Y73BLDA #$20G3BSTA ($02),YW3BSTA ($05),Y_3BDEYk3BBPL IL1w3BSTY $1E3CSEC3CIL2 INC $1E3CLDA $073&CSBC #4030CSTA $073:CBCS IL23DCDEC $083NCLDA $083XCCMP #$D83bCBCS IL23lCLDA $074vCADC #404CSTA $1F4CINY(4CINC $04<4CILOOP JSR CURSH4CSTY $09V4CJSR $FFE4b4CLDY $09o4CCMP #$20}4CBCC ICTRL4CCMP #$804CBCC III4CCMP #$A04CBCC ICTRL4DIII CPY $044 DBCS ILOOP4DSTA ($05),Y4 DJSR SCREEN5*DSTA ($02),Y 54DINY5>DINC $1F#5HDBNE ILOOP<5RDICTRL CMP #$14 ! DELI5\DBEQ IDEL_5fDCMP #$0D ! RETURNm5pDBNE ILOOPu5zDDEY5DSTY $045DJMP NOCURS5DIDEL CPY #$005DBEQ ILOOP5DDEY5DLDA #$205DSTA ($02),Y5DSTA ($05),Y5DDEC $1F6DBPL ILOOP 6PF!!180006ZFCOMM JSR $FFBD,6dFLDA #$0886nFSTA $BAE6xFLDA #$7FQ6FLDX $BA^6FLDY #$6Fl6FJSR $FFBAz6FJSR $F3DD6FLDA $BA6FJSR $FFB46FLDA $906FBNE COMMERR6FLDA $B96FJSR $FF966FLDA $906FBNE COMMERR6FCOMMLOOP JSR $FFA5 7GCMP #$0D7GBEQ COMMERR(7GJSR $FFD247"GLDA $90E7,GBEQ COMMLOOPZ76GCOMMERR LDA #$0Dh7@GJSR $FFD2u7JGLDA #$087TGJSR $FFAB7^GLDA #$007hGSTA $907rGRTS78J!!190007BJCURS LDA #$0B7LJSTA $07F87VJLDA #$017`JSTA $D0157jJLDA #$098tJSTA $D0278~JLDA #$00"8JSTA $D01708JSTA $D01B>8JSTA $D01CL8JSTA $D01DX8JLDA $1Eb8JASL Al8JASL Av8JASL A8JADC #$328JSTA $D0018JLDA $1F8JASL A8KASL A8 KASL A8KPHP8KCLC8(KADC #$1882KSTA $D0008NJSR 30;HNLDA $04;RNLDX #ESTRING;\NLDY #ESTRING;fNJSR COMM;pNJSR KEY;zNJMP DISKMENU;NFIAME JSR PLDA #$08> PTAX>PTAY)>PJSR $FFBA7>(PJSR $FFC0E>2PBCC OFRTSS>FPJSR KEYh>PPSECv>ZPOFRTS RTS>`!!60000>jTABLO BLO 0,1,2,3,4,5,6,7,8,9>tBLO 9SIZE>~TABHI BHI 0,1,2,3,4,5,6,7,8,9>BHI 9SIZE?FUNCTI BYT 0$?IRQCOUNT BYT 108?PLAYSTART W 0J?REG1 W $0000\?REG2 W $FF1Cn?REG3 W $0011?REG4 W $0000?DECTAB BYT 100,10,1?NECNT BYT 0?CHAR BYT 0?NOSPACE BYT 0?PLAYNOW BYT $FF? Q W $7000?!!63000 1 @IITAB$21%@BYT %00110100 ! "!"=@BYT %01001010 ! """T@BYT 00000000 ! "#"q@BYT %00100100 ! "$" (E')@BYT %00111000 ! "%" (UE)@BYT %11111000 ! "&" (CH)@ BYT %01111010 ! "'"@!BYT %10110100 ! "("@"BYT %10110110 ! ")"A#BYT %00110110 ! "*" (UNDERSTRYK)0A$BYT %01010100 ! "+"HA%BYT %11001110 ! ","`A&BYT %10000110 ! "-"xA'BYT %01010110 ! "."A(BYT %10010100 ! "/"A)BYT %11111100 ! "0"A*BYT %01111100 ! "1"A+BYT %00111100 ! "2"A,BYT %00011100 ! "3"B-BYT %00001100 ! "4" B.BYT %00000100 ! "5"8B/BYT %10000100 ! "6"PB0BYT %11000100 ! "7"hB1BYT %11100100 ! "8"B2BYT %11110100 ! "9"B3BYT %11100010 ! ":"B4BYT %10101010 ! ";"B5BYT 00000000 ! "<"B6BYT %10001100 ! "="B7BYT 00000000 ! ">"C8BYT %00110010 ! "?"&C9BYT %00010110 ! "@">C:BYT %01100000 ! "A"VC;BYT %10001000 ! "B"nCBYT %01000000 ! "E"C?BYT %00101000 ! "F"C@BYT %11010000 ! "G"CABYT %00001000 ! "H"CBBYT %00100000 ! "I"DCBYT %01111000 ! "J".DDBYT %10110000 ! "K"FDEBYT %01001000 ! "L"^DFBYT %11100000 ! "M"vDGBYT %10100000 ! "N"DHBYT %11110000 ! "O"DIBYT %01101000 ! "P"DJBYT %11011000 ! "Q"DKBYT %01010000 ! "R"DLBYT %00010000 ! "S"EMBYT %11000000 ! "T"ENBYT %00110000 ! "U"6EOBYT %00011000 ! "V"NEPBYT %01110000 ! "W"fEQBYT %10011000 ! "X"~ERBYT %10111000 ! "Y"ESBYT %11001000 ! "Z"ETBYT %01011000 ! "["EUBYT %11101000 ! "\"EVBYT %01101100 ! "]"FWESTRING BYT "PROGRAM MADE BY JOLLY CRACKER OF XAKK!!!"&F!!63900