10 *A,10000 20 end 10000 "*M 10010 "PPLAY =$E31B 10020 "PRECO =$E319 10030 "RAMON =$FF3F 10040 "ROMON =$FF3E 10050 "LOCK =$7FC 10060 "TIM2 =$FF02 10070 "TINT =$FF09 10080 "SYNC =$16 10090 "PIO =1 10100 "BGD =$FF19 10110 " 10120 "FNLEN =$D0 10130 "FFIRST=$D1 10140 "FLAST =$D3 10150 "DATA =$D5 10160 "CNT =$D6 10170 "CHKSUM=$D7 10180 "TEMP =$D8 10190 "TOP =$D9 10200 " 10210 "FNAM=$200 10220 "TAPEB=FNAM 10230 " 10240 " ORG $1008 10250 "BEGIN: LDX #7 10260 " LDA #0 10270 " STA BTM 10280 "CLF: STA $55F,X 10290 " DEX 10300 " BPL CLF 10310 " JMP SETUP1 10320 " 10330 "THIN:BYT 32,225,97,160 10340 "READ: JSR PPLAY 10350 " SEI 10360 " LDX #1 10370 "RETRY: LDA #0 10380 " STA BGD 10390 " STA CHKSUM 10400 " STA PIO 10410 " LDY #255 10420 "SYNCT: 10430 " JSR READB 10440 " CMP #SYNC 10450 " BEQ GOTSYN 10460 " 10470 " STX DATA 10480 " JSR SKIPB 10490 " BCC SYNCT 10500 "GOTSYN: 10510 " JSR READB 10520 " CMP #SYNC 10530 " BEQ GOTSYN 10540 " 10550 " CMP FNLEN 10560 " BNE RETRY 10570 " STA FNLEN 10580 " 10590 "NAMCHK: INY 10600 " CPY FNLEN 10610 " BCS NMEND 10620 " JSR READC 10630 " CMP FNAM,Y 10640 " BEQ NAMCHK 10650 " BNE RETRY 10660 "NMEND: LDA #42 10670 " STA 3552 10680 " LDY #3 10690 "GADDR: JSR READC 10700 " STA FFIRST,Y 10710 " DEY 10720 " BPL GADDR 10730 " 10740 " JSR READC 10750 " CMP CHKSUM 10760 " BNE ERROR 10770 " 10780 " LDY FFIRST 10790 " LDA #0 10800 " STA FFIRST 10810 " STA TOP 10820 " 10830 "RBLOCK: LDA FFIRST+1 10840 " CMP FLAST +1 10850 " PHP 10860 " BCC NOTYT 10870 " LDA FLAST 10880 " BEQ RDONE 10890 " STA TOP 10900 "NOTYT: 10910 " JSR READC 10920 " STA (FFIRST),Y 10930 " INY 10940 " CPY TOP 10950 " BNE NOTYT 10960 " 10970 " JSR READC 10980 " CMP CHKSUM 10990 " BNE ERROR 11000 " 11010 " INC FFIRST+1 11020 " PLP 11030 " BNE RBLOCK 11040 " 11050 "RDONE: CLC 11060 " BYT $24 11070 "ERROR: SEC 11080 " LDA #$88 11090 " STA PIO 11100 " STA LOCK 11110 " CLI 11120 " RTS 11130 " 11140 "READC: LDA DATA 11150 " EOR CHKSUM 11160 " STA CHKSUM 11170 "READB: LDA #$FE 11180 " STA DATA 11190 " INC BGD 11200 " JSR STOPT 11210 "SKIPB: STY TEMP 11220 " LDY #$38 11230 "READ0: LDA #$10 11240 "READ1: BIT PIO 11250 " BNE READ1 11260 " STY TIM2 11270 " STX TIM2+1 11280 "READ2: BIT PIO 11290 " BEQ READ2 11300 " LDA TIM2+1 11310 " ASL A 11320 " ROL DATA 11330 " BCS READ0 11340 " LDY TEMP 11350 " LDA DATA 11360 " RTS 11370 " 11380 "WRITE: JSR PRECO 11390 " SEI 11400 " STA RAMON 11410 " LDA #2 11420 " STA PIO 11430 " 11440 " LDA #0 11450 " STA CHKSUM 11460 " STA BGD 11470 " LDA #4 11480 " JSR GAIT 11490 " 11500 " LDX #16 11510 "WSYNC: LDA #SYNC 11520 " JSR WRITEB 11530 " DEX 11540 " BNE WSYNC 11550 " 11560 " LDA FNLEN 11570 " JSR WRITEB 11580 " LDA FNLEN 11590 " BEQ NONAME 11600 " 11610 " LDY #0 11620 "WNAME: LDA FNAM,Y 11630 " JSR WRITEB 11640 " INY 11650 " CPY FNLEN 11660 " BCC WNAME 11670 "NONAME: LDA #42 11680 " STA 3552 11690 " LDX #3 11700 "WADDR: LDA FFIRST,X 11710 " JSR WRITEB 11720 " DEX 11730 " BPL WADDR 11740 " 11750 " LDA CHKSUM 11760 " JSR WRITEB 11770 " 11780 " LDY FFIRST 11790 " LDA #0 11800 " STA FFIRST 11810 " STA TOP 11820 " 11830 "BLOCK: JSR DELL 11840 " LDA FFIRST+1 11850 " CMP FLAST +1 11860 " PHP 11870 " BCC NOTYET 11880 " LDA FLAST 11890 " BEQ WDONE 11900 " STA TOP 11910 "NOTYET: 11920 " LDA (FFIRST),Y 11930 " JSR WRITEB 11940 " INY 11950 " CPY TOP 11960 " BNE NOTYET 11970 " 11980 " LDA CHKSUM 11990 " JSR WRITEB 12000 " 12010 " INC FFIRST+1 12020 " PLP 12030 " BNE BLOCK 12040 " 12050 "WDONE: LDA #$88 12060 " STA PIO 12070 " STA LOCK 12080 " STA ROMON 12090 " CLI 12100 " RTS 12110 " 12120 "WRITEB: STA DATA 12130 " EOR CHKSUM 12140 " STA CHKSUM 12150 " INC BGD 12160 " JSR STOPT 12170 " TYA 12180 " PHA 12190 " LDY #8 12200 "WRT1: LDA #0 12210 " STA PIO 12220 " JSR DELS 12230 " ASL DATA 12240 " BCC ZERO 12250 " JSR DELL 12260 "ZERO: LDA #2 12270 " STA PIO 12280 " JSR DELL 12290 " DEY 12300 " BNE WRT1 12310 " PLA 12320 " TAY 12330 " RTS 12340 " 12350 "GAIT: STA CNT 12360 " LDX #0 12370 " LDY #0 12380 "GAIT1: DEY 12390 " BNE GAIT1 12400 " DEX 12410 " BNE GAIT1 12420 " DEC CNT 12430 " BNE GAIT1 12440 " RTS 12450 " 12460 "DELL: LDA #$E0 12470 " BYT $2C 12480 "DELS: LDA #$60 12490 " STA TIM2 12500 " LDA #0 12510 " STA TIM2+1 12520 " LDA #16 12530 " STA TINT 12540 "DEL11: BIT TINT 12550 " BEQ DEL11 12560 " STA TINT 12570 " RTS 12580 " 12590 " 12600 "SCR=$C00 12610 "COL=3110 12620 "VEC=$DA 12630 "CMV=$DC 12640 "VC2=$DE 12650 "VC3=$E0 12660 "FLB=$E2 12670 "DIR=$E3 12680 "BTC=$E4 12690 "YTP=$E5 12700 "XPIX=$E6 12710 "DEL1=$E7 12720 "DEL2=$E8 12730 "MODE=$61 12740 "IND=$62 12750 "BUFAD=$63 12760 "BTC2=$65 12770 "BTM=$66 12780 "VC4=$67 12790 "MESP=$69 12800 "RAST=2 12810 "RASB=130 12820 " 12830 "NLIN=16 12840 "CMEM=$1E00 12850 " 12860 "LEFT: LDX #NLIN 12870 " LDA #SCR 12900 " STA VEC+1 12910 "LEFT0: LDY #0 12920 "LEFT1: INY 12930 " LDA (VEC),Y 12940 " DEY 12950 " STA (VEC),Y 12960 " INY 12970 " CPY #39 12980 " BCC LEFT1 12990 " CLC 13000 " LDA VEC 13010 " ADC #40 13020 " STA VEC 13030 " BCC LEFT2 13040 " INC VEC+1 13050 "LEFT2: DEX 13060 " BNE LEFT0 13070 " RTS 13080 " 13090 "DELAY: LDA DEL2 13100 " STA VC2 13110 " LDA DEL1 13120 " STA VC2+1 13130 "DELBOY: LDA VC2 13140 " ORA VC2+1 13150 " BEQ DONIIT 13160 "NOWAY: LDA VC2 13170 " SEC 13180 " SBC #1 13190 " STA VC2 13200 " LDA VC2+1 13210 " SBC #0 13220 " STA VC2+1 13230 " JMP DELBOY 13240 "DONIIT: RTS 13250 " 13260 "GOL: LDA XPIX 13270 " BEQ SHL 13280 " DEC XPIX 13290 " JSR DELAY 13300 " JMP GOL 13310 "SHL: LDA #2 13320 " STA DIR 13330 "GOL1: LDA DIR 13340 " BNE GOL1 13350 " JSR LEFT 13360 " LDA #7 13370 " STA XPIX 13380 " RTS 13390 " 13400 "IRQ: LDA $FF09 13410 " STA $FF09 13420 " LDA $FF0B 13430 " CMP #RASB 13440 " BEQ IRQ2 13450 " LDA $FF07 13460 " AND #$F0 13470 " ORA XPIX 13480 " STA $FF07 13490 "TOPI: LDA #$55 13500 " STA $FF15 13510 " STA $FF19 13520 " JSR $FF9F 13530 " JSR OPTION 13540 " JSR SPEED 13550 " LDA #RASB 13560 " STA $FF0B 13570 " JMP $FCC3 13580 " 13590 "IRQ2: LDA $FF07 13600 " AND #$F0 13610 " ORA #8 13620 " STA $FF07 13630 " LDA #0 13640 " STA DIR 13650 "TOPI2: LDA #$45 13660 " STA $FF15 13670 " STA $FF19 13680 " LDA FLB 13690 " BEQ FLOF 13700 " CMP #1 13710 " BNE NSWAP 13720 " JSR IRSWAP 13730 " JMP FLOT 13740 "NSWAP: CMP #2 13750 " BNE FLOT 13760 " JSR CLSCR 13770 "FLOT: LDA #0 13780 " STA FLB 13790 "FLOF: LDA #RAST 13800 " STA $FF0B 13810 " JMP $FCC3 13820 " 13830 "SETUP1:LDA #MESSG 13860 " STA MESP+1 13870 "SETUP: LDX #255 13880 " TXS 13890 " LDA MESP 13900 " STA GETCH+1 13910 " LDA MESP+1 13920 " STA GETCH+2 13930 " JSR $FBD8 13940 "BYT 27,'N',142,8,0 13950 " LDY #0 13960 " LDA (MESP),Y 13970 " CMP #255 13980 " BNE SETUP0 13990 " JSR EDITMD 14000 " JMP SETUP 14010 "SETUP0: SEI 14020 " LDA #IRQ 14050 " STA $315 14060 " JSR DRWBOX 14070 " LDA #$D1 14080 " STA $FF13 14090 " LDA #0 14100 " STA FLB 14110 " STA DEL1 14120 " LDA #$88 14130 " STA DEL2 14140 " 14150 "FIND: LDA #7 14160 " STA XPIX 14170 " CLI 14180 "GETI: JSR GETCH 14190 " CMP #30;^ 14200 " BNE GETI3 14210 " JSR COMMAN 14220 " JMP OPTIO4 14230 "GETI3: JSR DLINE 14240 "GETI33: JSR WRIIT 14250 " JSR GOL 14260 " LSR BTC 14270 " LDA BTM 14280 " BEQ WID4 14290 " DEC BTC2 14300 " LSR BTC 14310 "WID4: BCC GETI33 14320 " LDX #32;FLASH STAR 14330 " LDA 4032 14340 " CMP #32 14350 " BNE JJ1 14360 " LDX #42 14370 "JJ1: TXA 14380 " STA 4032 14390 "OPTIO4: LDA 198 14400 " CMP #64 14410 " BEQ FIND 14420 "YYAA: CMP 198 14430 " BEQ YYAA 14440 " CMP #22;'T' 14450 " BNE TTTT 14460 " JSR EDITMD 14470 " JMP SETUP 14480 "TTTT: CMP #13;'S' 14490 " BNE TTT2 14500 " JSR SAVEDT 14510 " JMP SETUP 14520 "TTT2: CMP #42;'L' 14530 " BNE TTT3 14540 " JSR LOADDT 14550 " JMP SETUP 14560 "TTT3: CMP #28;'B' 14570 " BNE CONTI 14580 " JSR EDBOT 14590 "GOBAK: JMP FIND 14600 "CONTI: CMP #56;'1' 14610 " BNE TTT4 14620 " LDA #MESSG 14640 " JMP STRST 14650 "TTT4: CMP #59;'2' 14660 " BNE TTT5 14670 " LDA #MESSG+1024 14690 " JMP STRST 14700 "TTT5: CMP #8;'3' 14710 " BNE TTT6 14720 " LDA #MESSG+2048 14740 " JMP STRST 14750 "TTT6: CMP #11;'4' 14760 " BNE GOBAK 14770 " LDA #MESSG+3072 14790 "STRST: STA MESP 14800 " STY MESP+1 14810 " JMP SETUP 14820 " 14830 "EDITTP: LDA #TAPEB 14850 " LDX #255 14860 " STX TAPEB 14870 " JMP SKIP 14880 " 14890 "EDITMD: JSR $FBD8 14900 "BYT 147,'EDIT MODE',0 14910 " LDA MESP 14920 " LDY MESP+1 14930 "SKIP: STA BUFAD 14940 " STY BUFAD+1 14950 "EDIM9: LDA BUFAD 14960 " STA VEC 14970 " LDA BUFAD+1 14980 " STA VEC+1 14990 " SEI 15000 " LDX #IRQ3 15030 " STX $315 15040 " CLI 15050 " LDA #0 15060 " STA 239 15070 " STA MODE 15080 " JSR STTUS 15090 " LDA #<3512 15100 " STA $FF0D 15110 " LDA #>3512 15120 " STA $FF0C 15130 " 15140 "EDI1: LDY #0 15150 "EDI2: LDA (VEC),Y 15160 " CMP #255 15170 " BEQ BLANK 15180 " AND #$3F 15190 " STA 3512,Y 15200 " INY 15210 " CPY #20 15220 " BCC EDI2 15230 "BLANK: LDA #32 15240 "BLAN2: CPY #20 15250 " BEQ EDI9 15260 " STA 3512,Y 15270 " INY 15280 " JMP BLAN2 15290 " 15300 "EDI9: JSR GETPOS 15310 " JSR $FFE4 15320 " CMP #27 ;ESCAPE 15330 " BNE EGGH 15340 " JMP TOGMD 15350 "EGGH: CMP #157;LEFT 15360 " BNE EGG44 15370 " JMP LEFTC 15380 "EGG44: CMP #29 ;RIGHT 15390 " BNE EGGI 15400 " JMP RGHTC 15410 "EGGI: CMP #13 ;RETURN 15420 " BNE NOFIN 15430 " LDY #0 15440 " LDA (BUFAD),Y 15450 " CMP #255 15460 " BEQ EDI9 15470 " LDA #255 15480 " STA $FF0C 15490 " STA $FF0D 15500 " RTS 15510 "NOFIN: CMP #19 ;HOME 15520 " BEQ EDIM9 15530 " CMP #147 ;CLEAR 15540 " BNE EGG0 15550 " JMP CLER 15560 "EGG0: CMP #20 ;DELETE 15570 " BNE EGG8 15580 " JMP KILL 15590 "EGG8: CMP #32 ;SPACE 15600 " BCC EDI9 ;=96 15630 " AND #$3F 15640 " LDX MODE 15650 " BNE MDIN 15660 " LDY #0 15670 " PHA 15680 " LDA (VC2),Y 15690 " TAX 15700 " PLA 15710 " STA (VC2),Y 15720 " TXA 15730 " CMP #255 15740 " BNE NOJOE 15750 " INY 15760 " STA (VC2),Y 15770 "NOJOE: JMP RGHTC 15780 "MDIN: PHA 15790 " LDA VC2 15800 " STA CMV 15810 " LDA VC2+1 15820 " STA CMV+1 15830 " LDY #0 15840 "MDFIND: LDA (CMV),Y 15850 " CMP #255 15860 " BEQ MDSHF 15870 " INC CMV 15880 " BNE MDFIND 15890 " INC CMV+1 15900 " JMP MDFIND 15910 "MDSHF: LDA (CMV),Y 15920 " INY 15930 " STA (CMV),Y 15940 " DEY 15950 " LDA CMV 15960 " BNE MDDEC 15970 " DEC CMV+1 15980 "MDDEC: DEC CMV 15990 " SEC 16000 " LDA CMV 16010 " SBC VC2 16020 " LDA CMV+1 16030 " SBC VC2+1 16040 " BPL MDSHF 16050 " PLA 16060 " STA (VC2),Y 16070 " JMP RGHTC 16080 " 16090 "KILL: LDA VC2 16100 " CMP BUFAD 16110 " BNE KILL0 16120 " LDA VC2+1 16130 " CMP BUFAD+1 16140 " BEQ KILL00 16150 "KILL0: LDY #0 16160 "KILL2: LDA (VC2),Y 16170 " TAX 16180 " LDA VC2 16190 " BNE JJJJJJ 16200 " DEC VC2+1 16210 "JJJJJJ:DEC VC2 16220 " TXA 16230 " STA (VC2),Y 16240 " LDA VC2 16250 " CLC 16260 " ADC #2 16270 " STA VC2 16280 " BNE IIIIII 16290 " INC VC2+1 16300 "IIIIII: CPX #255 16310 " BNE KILL 16320 " JMP LEFTC 16330 "KILL00: JMP EDI9 16340 " 16350 "CLER: LDA #255 16360 " LDY #0 16370 " STA (BUFAD),Y 16380 " JMP EDIM9 16390 " 16400 "LEFTC: LDA VC2 16410 " CMP BUFAD 16420 " BNE OKLLL 16430 " LDA VC2+1 16440 " CMP BUFAD+1 16450 " BEQ OKL9 16460 "OKLLL: LDA $FF0D 16470 " CMP #185 16480 " BCC OKL2 16490 " DEC $FF0D 16500 " JMP EDI1 16510 "OKL2: LDA VEC 16520 " BNE OKLLLL 16530 " DEC VEC+1 16540 "OKLLLL: DEC VEC 16550 "OKL9: JMP EDI1 16560 " 16570 "RGHTC: LDY #0 16580 " LDA (VC2),Y 16590 " CMP #255 16600 " BEQ RG3 16610 "RG1: LDA $FF0D 16620 " CMP #203 16630 " BCS RG2 16640 " INC $FF0D 16650 " JMP EDI1 16660 "RG2: INC VEC 16670 " BNE RG3 16680 " INC VEC+1 16690 "RG3: JMP EDI1 16700 " 16710 "TOGMD: LDA MODE 16720 " EOR #255 16730 " STA MODE 16740 " JSR STTUS 16750 " JMP EDI9 16760 "TOGM2: LDA #255 16770 "STTUS: LDX #8 16780 " LDA MODE 16790 " BEQ OVER 16800 "STT1: LDA INS,X 16810 " AND #$3F 16820 " STA 4032,X 16830 " DEX 16840 " BPL STT1 16850 " RTS 16860 "OVER: LDA OVE,X 16870 " AND #$3F 16880 " STA 4032,X 16890 " DEX 16900 " BPL OVER 16910 " RTS 16920 "INS: BYT 'INSERT ' 16930 "OVE: BYT 'OVERWRITE' 16940 " 16950 "IRQ3: LDA $FF09 16960 " STA $FF09 16970 " LDA #8 16980 " STA $FF07 16990 " LDA #$53 17000 " STA $FF15 17010 " STA $FF19 17020 " JSR $FF9F 17030 " LDA #RAST 17040 " STA $FF0B 17050 " JMP $FCC3 17060 " 17070 "GETPOS: LDA $FF0D 17080 " SEC 17090 " SBC #184 17100 " CLC 17110 " ADC VEC 17120 " STA VC2 17130 " LDA VEC+1 17140 " ADC #0 17150 " STA VC2+1 17160 " RTS 17170 " 17180 "OPTION: LDA 198 17190 " CMP #4 ;'F1' 17200 " BEQ FASTER 17210 " CMP #5 ;'F2' 17220 " BEQ SLOWER 17230 " CMP #6 ;'F3' KEY 17240 " BEQ CHBACK 17250 " CMP #3 ;HELP KEY 17260 " BEQ CHSCRN 17270 " RTS 17280 " 17290 "CHBACK:INC TOPI+1 17300 " RTS 17310 "CHSCRN:INC TOPI2+1 17320 " RTS 17330 " 17340 "SLOWER: LDA DEL1 17350 " CMP #8 17360 " BCC OKIN 17370 "HEEHAW: RTS 17380 "OKIN: INC DEL2 17390 " BNE HEEHAW 17400 "YYYYYY: INC DEL1 17410 " RTS 17420 " 17430 "FASTER: LDA DEL2 17440 " ORA DEL1 17450 " BEQ HEEHAW 17460 "OKIN1: LDA DEL2 17470 " SEC 17480 " SBC #1 17490 " STA DEL2 17500 " LDA DEL1 17510 " SBC #0 17520 " STA DEL1 17530 " RTS 17540 " 17550 "ADD40: PHA 17560 " LDA VC2 17570 " CLC 17580 " ADC #40 17590 " STA VC2 17600 " LDA VC2+1 17610 " ADC #0 17620 " STA VC2+1 17630 " PLA 17640 " RTS 17650 " 17660 "TOASC: PHA 17670 " LDY #0 17680 " LSR A 17690 " LSR A 17700 " LSR A 17710 " LSR A 17720 " JSR TO1 17730 " PLA 17740 " AND #15 17750 "TO1: CMP #10 17760 " BCC DIGIT 17770 " SEC 17780 " SBC #9 17790 " JMP TO2 17800 "DIGIT: ORA #48 17810 "TO2: STA (VEC),Y 17820 " INY 17830 " RTS 17840 " 17850 "SPEED: LDA #<4033 17860 " STA VEC 17870 " LDA #>4033 17880 " STA VEC+1 17890 " LDA DEL1 17900 " JSR TOASC 17910 " INC VEC 17920 " INC VEC 17930 " LDA DEL2 17940 " JSR TOASC 17950 " LDA MESP+1 17960 " SEC 17970 " SBC #>MESSG 17980 " LSR A 17990 " LSR A 18000 " ADC #49 18010 " STA 4038 18020 " RTS 18030 " 18040 "DRWBOX: LDA #BOX 18070 " STA BOX1+2 18080 " LDA #<3712 18090 " STA BOX2+1 18100 " LDA #>3712 18110 " STA BOX2+2 18120 "BOX1: LDA $FFFF 18130 " BEQ DRWEND 18140 " JSR CONVET 18150 "BOX2: STA $FFFF 18160 " INC BOX1+1 18170 " BNE BOX3 18180 " INC BOX1+2 18190 "BOX3: INC BOX2+1 18200 " BNE BOX1 18210 " INC BOX2+2 18220 " JMP BOX1 18230 "DRWEND: RTS 18240 " 18250 "EDEND: LDA #255 18260 " STA $FF0C 18270 " STA $FF0D 18280 " RTS 18290 "EDBOT: LDA #<3712 18300 " STA $FF0D 18310 " LDA #>3712 18320 " STA $FF0C 18330 " LDA #BOX 18360 " STA VC3+1 18370 " LDA #0 18380 " STA 239 18390 "EDBK: JSR $FFE4 18391 " CMP #0 18392 " BEQ EDBK;NO KEY 18400 " CMP #147;CLEAR 18410 " BNE OKB 18420 " JMP C1 18430 "OKB: CMP #13 ;RETURN 18440 " BEQ EDEND 18450 " CMP #157;LEFT 18460 " BEQ L1 18470 " CMP #29 ;RIGHT 18480 " BEQ R1 18490 " CMP #145;UP 18500 " BEQ U1 18510 " CMP #17 ;DOWN 18520 " BEQ D1 18570 " LDY #0 18580 " STA (VC3),Y 18590 " JSR DRWBOX 18600 " 18610 "R1: LDA VC3 18620 " CMP #BOX+319 18660 " BEQ EDBK 18670 "R2: INC $FF0D 18680 " BNE R3 18690 " INC $FF0C 18700 "R3: INC VC3 18710 " BNE R4 18720 " INC VC3+1 18730 "R4: JMP EDBK 18740 " 18750 "L1: LDA VC3 18760 " CMP #BOX 18800 " BEQ EDBK 18810 "L2: LDA $FF0D 18820 " BNE L3 18830 " DEC $FF0C 18840 "L3: DEC $FF0D 18850 " LDA VC3 18860 " BNE L4 18870 " DEC VC3+1 18880 "L4: DEC VC3 18890 " JMP EDBK 18900 " 18910 "U1: LDA VC3 18920 " SEC 18930 " SBC #BOX+40 18960 " BMI EDBK 18970 " LDA VC3 18980 " SEC 18990 " SBC #40 19000 " STA VC3 19010 " LDA VC3+1 19020 " SBC #0 19030 " STA VC3+1 19040 " LDA $FF0D 19050 " SEC 19060 " SBC #40 19070 " STA $FF0D 19080 " LDA $FF0C 19090 " SBC #0 19100 " STA $FF0C 19110 "DD2: JMP EDBK 19120 " 19130 "D1: LDA #BOX+279 19170 " SBC VC3+1 19180 " BMI DD2 19190 " LDA VC3 19200 " CLC 19210 " ADC #40 19220 " STA VC3 19230 " LDA VC3+1 19240 " ADC #0 19250 " STA VC3+1 19260 " LDA $FF0D 19270 " CLC 19280 " ADC #40 19290 " STA $FF0D 19300 " LDA $FF0C 19310 " ADC #0 19320 " STA $FF0C 19330 " JMP EDBK 19340 " 19350 "C1: LDX #160 19360 " LDA #32 19370 "C2: STA BOX-1,X 19380 " STA BOX+159,X 19390 " DEX 19400 " BNE C2 19410 " JSR DRWBOX 19420 " JMP EDBOT 19430 " 19440 "SAVEDT: JSR $FBD8 19450 "BYT 147,'ENTER NAME FOR SAVE',0 19460 " JSR EDITTP 19470 " JSR HUNTLE 19480 " STY FNLEN 19490 " JSR POST 19500 " LDA #BOX 19530 " STA FFIRST+1 19540 " LDA #MESSG+3072 19570 " STA FLAST+1 19580 " LDY #0 19590 "SVSE: LDA (FLAST),Y 19600 " INC FLAST 19610 " BNE SV1 19620 " INC FLAST+1 19630 "SV1: CMP #255 19640 " BNE SVSE 19650 " JSR WRITE 19660 " RTS 19670 " 19680 "LOADDT: JSR $FBD8 19690 "BYT 147,'ENTER NAME FOR LOAD',0 19700 " JSR EDITTP 19710 " JSR HUNTLE 19720 " STY FNLEN 19730 " JSR POST 19740 " JSR READ 19750 " BCS RERR 19760 " RTS 19770 "RERR: JSR $FBD8 19780 "BYT 13,'PROCEDURE ABORTED, PRESS SPACE BAR',0 19790 " LDA #$88 19800 " STA LOCK 19810 " STA PIO 19820 "RE1: LDA 198 19830 " CMP #60 19840 " BNE RE1 19850 " JMP SETUP 19860 " 19870 "HUNTLE: LDY #1 19880 "HUNT1: LDA TAPEB,Y 19890 " CMP #255 19900 " BEQ HEND 19910 " INY 19920 " JMP HUNT1 19930 "HEND: RTS 19940 " 19950 "POST: JSR $FBD8 19960 "BYT 13,'POSITION TAPE AND PRESS SPACE BAR',0 19970 " LDA PIO 19980 " AND #$F7 19990 " STA PIO 20000 "POS1: LDA 198 20010 " CMP #60 20020 " BNE POS1 20030 " LDA PIO 20040 " ORA #8 20050 " STA PIO 20060 " RTS 20070 " 20080 "STOPT: LDA #$7F 20090 " STA $FD30 20100 " STA $FF08 20110 " LDA $FF08 20120 " CMP #$7F 20130 " BEQ ST1 20140 " RTS 20150 "ST1: STA ROMON 20160 " CLI 20170 " JMP RERR 20180 " 20190 "DLINE: LDY #0 20200 " STY CMV+1 20210 " AND #$3F 20220 " ASL A 20230 " ROL CMV+1 20240 " ASL A 20250 " ROL CMV+1 20260 " ASL A 20270 " ROL CMV+1 20280 " CLC 20290 " ADC #CMEM 20320 " ADC CMV+1 20330 " STA CMV+1 20340 " LDA BTM 20350 " BEQ WIDE 20360 " LDA #3 20370 " STA BTC2 20380 " LDA #$C0 20390 " BNE WIDE1 20400 "WIDE: LDA #$80 20410 "WIDE1: STA BTC 20420 " RTS 20430 " 20440 "WRIIT: LDA #COL 20460 "WRT12: STA VC2 20470 " STY VC2+1 20480 " LDY #0 20490 "WRT11: LDA (CMV),Y 20500 " STY YTP 20510 " AND BTC 20520 " LDY BTM 20530 " BEQ WID1 20540 " LDY BTC2 20550 " BEQ NOSHF 20560 "SHF: LSR A 20570 " LSR A 20580 " DEY 20590 " BNE SHF 20600 "NOSHF: TAY 20610 " LDA THIN,Y 20620 " BNE WID2 20630 "WID1: CMP #0 20640 " BEQ WID3 20650 " LDA #160 20660 " BNE WID2 20670 "WID3: LDA #32 20680 "WID2: LDY #0 20690 " STA (VC2),Y 20700 " JSR ADD40 20710 " STA (VC2),Y 20720 " JSR ADD40 20730 " INC YTP 20740 " LDY YTP 20750 " CPY #8 20760 " BCC WRT11 20770 " RTS 20780 " 20790 "REDO: LDA MESP 20800 " STA GETCH+1 20810 " LDA MESP+1 20820 " STA GETCH+2 20830 "GETCH: LDA $FFFF 20840 " CMP #255 20850 " BEQ REDO 20860 " INC GETCH+1 20870 " BNE GETI2 20880 " INC GETCH+2 20890 "GETI2: RTS 20900 " 20910 "GETVL: JSR GETCH 20920 " AND #$3F 20930 " BEQ IREY 20940 " CMP #27 20950 " BCS IREY 20960 " RTS 20970 "IREY: LDA #1 20980 " RTS 20990 " 21000 "COMMAN: JSR GETCH 21010 "COM1: CMP #'1 21020 " BNE CONE 21030 " LDA #0 21040 " STA BTM 21050 " RTS 21060 "CONE: CMP #'2 21070 " BNE CTWO 21080 " LDA #1 21090 " STA BTM 21100 " RTS 21110 "CTWO: CMP #'3 21120 " BNE CTHR 21130 " JSR GETVL 21140 " LDX #0 21150 " LDY #64 21160 "CTWO1: DEX 21170 " BNE CTWO1 21180 " DEY 21190 " BNE CTWO1 21200 " SEC 21210 " SBC #1 21220 " BNE CTWO1 21230 " RTS 21240 "CTHR: CMP #'4 21250 " BNE CHFIV 21260 " JSR FLASH 21270 " JMP FL1 21280 "CHFIV: CMP #'5 21290 " BNE CHSIX 21300 " JSR FLASH 21310 " JSR DRINW 21320 " JMP FL1 21330 "CHSIX: CMP #'6 21340 " BNE CHSEV 21350 " JMP SPCAGE 21360 "CHSEV: CMP#'7 21370 " BNE CHEIG 21380 " LDA #2 21390 " JMP WAIT 21400 "CHEIG: CMP #'8 21410 " BNE CHNIN 21420 " JSR DRINW 21430 " LDA #1 21440 " JMP WAIT 21450 "CHNIN: CMP#'9 21460 " BNE CHTAN 21470 " JSR DRINW 21480 " JMP EFFE1 21490 "CHTAN: CMP#1 21500 " BNE CHBBB 21510 " JSR DRINW 21520 " JMP EFFE2 21530 "CHBBB: CMP #2 21540 " BNE CHCCC 21550 " JSR DRINW 21560 " JMP EFFE3 21570 "CHCCC: CMP #3 21580 " BNE CHDDD 21590 " JSR DRINW 21600 " JMP EFFE4 21610 "CHDDD: CMP #4 21620 " BNE CHEEE 21630 " JSR DRINW 21640 " JMP EFFE5 21650 "CHEEE: CMP #5 21651 " BNE CHFFF 21652 " JSR DRINW 21653 " JMP EFFE6 21654 "CHFFF: RTS 21660 " 21670 "FLASH: JSR CLWIN 21680 "FL99: JSR GETVL 21690 " STA FFIRST 21700 " JSR GETVL 21710 " STA FNLEN 21720 " RTS 21730 "FL1: LDA #1 21740 " JSR WAIT 21750 " LDA FNLEN 21760 " LDY #64 21770 " LDX #0 21780 "FL2: DEX 21790 " BNE FL2 21800 " DEY 21810 " BNE FL2 21820 " SEC 21830 " SBC #1 21840 " BNE FL2 21850 " DEC FFIRST 21860 " BNE FL1 21870 " RTS 21880 " 21890 "WAIT: STA FLB 21900 "WAIT1: LDA FLB 21910 " BNE WAIT1 21920 " RTS 21930 " 21940 "CLWIN: LDA #96 21950 "CLP: LDY #160 21960 "CL1: STA WINDOW-1,Y 21970 " STA WINDOW+159,Y 21980 " STA WINDOW+319,Y 21990 " STA WINDOW+479,Y 22000 " DEY 22010 " BNE CL1 22020 " RTS 22030 " 22040 "IRSWAP: LDY #160 22050 "IR1: LDA SCR-1,Y 22060 " LDX WINDOW-1,Y 22070 " STA WINDOW-1,Y 22080 " TXA 22090 " STA SCR-1,Y 22100 " 22110 " LDA SCR+159,Y 22120 " LDX WINDOW+159,Y 22130 " STA WINDOW+159,Y 22140 " TXA 22150 " STA SCR+159,Y 22160 " 22170 " LDA SCR+319,Y 22180 " LDX WINDOW+319,Y 22190 " STA WINDOW+319,Y 22200 " TXA 22210 " STA SCR+319,Y 22220 " 22230 " LDA SCR+479,Y 22240 " LDX WINDOW+479,Y 22250 " STA WINDOW+479,Y 22260 " TXA 22270 " STA SCR+479,Y 22280 " DEY 22290 " BNE IR1 22300 " RTS 22310 " 22320 "DRINW: LDA #WINDOW-2 22350 " STA VC3+1 22360 "DR1: JSR GETCH 22370 " JSR DLINE 22380 "DR99: LDA VC3 22390 " LDY VC3+1 22400 " JSR WRT12 22410 " INC VC3 22420 " BNE DR2 22430 " INC VC3+1 22440 "DR2: LSR BTC 22450 " LDA BTM 22460 " BEQ DR3 22470 " DEC BTC2 22480 " LSR BTC 22490 "DR3: BCC DR99 22500 " LDA VC3 22510 " SEC 22520 " SBC #WINDOW+38 22550 " BMI DR1 22560 " LDA #32 22570 " STA WINDOW+638 22580 " STA WINDOW+639 22590 " RTS 22600 " 22610 "SPCAGE: JSR GETVL 22620 " STA FNLEN 22630 " JSR DRINW 22640 " LDA #<640 22650 " STA VC3 22660 " LDA #>640 22670 " STA VC3+1 22680 "SPCAG2: LDA $FF02 22690 " AND #3 22700 " CMP #3 22710 " BCS SPCAG2 22720 " PHA 22730 " TAY 22740 " LDA $FF00 22750 " CPY #2 22760 " BNE SPC1 22770 " AND #$7F 22780 "SPC1: STA VC2 22790 " CLC 22800 " ADC #WINDOW 22850 " STA VC4+1 22860 " LDY #0 22870 " LDA (VC4),Y 22880 " CMP #255 22890 " BEQ SPCAG2 22900 " PHA 22910 " LDA #255 22920 " STA (VC4),Y 22930 " 22940 " LDA VC2 22950 " CLC 22960 " ADC #SCR 23000 " STA VC4+1 23010 " PLA 23020 " STA (VC4),Y 23030 " 23040 " LDA VC3 23050 " BNE GGGG 23060 " DEC VC3+1 23070 "GGGG: DEC VC3 23080 " LDA VC3+1 23090 " BNE GGCON 23100 " LDA VC3 23110 " BEQ GGEND 23120 " 23130 "GGCON: LDA FNLEN 23140 " ASL A 23150 " ASL A 23160 " ASL A 23170 " ADC FNLEN 23180 "GGCONT:SEC 23190 " SBC #1 23200 " BNE GGCONT 23210 " JMP SPCAG2 23220 "GGEND: RTS 23230 " 23240 "CLSCR: JSR GETCH 23250 "CLS: LDY #160 23260 "CS1: STA SCR-1,Y 23270 " STA SCR+159,Y 23280 " STA SCR+319,Y 23290 " STA SCR+479,Y 23300 " DEY 23310 " BNE CS1 23320 " RTS 23330 " 23340 "PLONY: LDA #0 23350 "PLONY1:SEC 23360 " SBC #3 23370 " BNE PLONY1 23380 "PLONT: LDA #0 23390 "PLONT1:SEC 23400 " SBC #3 23410 " BNE PLONT1 23420 " CLC 23430 " BCC PLONK 23440 "PLONS: SEC 23450 "PLONK: PHP 23460 " STY FNLEN 23470 " BCS NOADJ 23480 " TXA 23490 " CLC 23500 " ADC #SCR 23530 " ADC #0 23540 " STA VC4+1 23550 "NOADJ: TXA 23560 " CLC 23570 " ADC #WINDOW 23600 " ADC #0 23610 " STA VC3+1 23620 " 23630 " CPY #0 23640 " BEQ PLO1 23650 "PLO3: PLP 23660 " PHP 23670 " BCS NOADJ2 23680 " LDA VC4 23690 " CLC 23700 " ADC #40 23710 " STA VC4 23720 " LDA VC4+1 23730 " ADC #0 23740 " STA VC4+1 23750 "NOADJ2: LDA VC3 23760 " CLC 23770 " ADC #40 23780 " STA VC3 23790 " LDA VC3+1 23800 " ADC #0 23810 " STA VC3+1 23820 " DEY 23830 " BNE PLO3 23840 "PLO1: LDY #0 23850 " LDA (VC3),Y 23860 " STA (VC4),Y 23870 " PLP 23880 " LDY FNLEN 23890 " RTS 23900 " 23910 "EFFE1: LDY #0 23920 "EF0: LDX #39 23930 "EF1: JSR PLONT 23940 " DEX 23950 " BPL EF1 23960 " INY 23970 " CPY #16 23980 " BCC EF0 23990 " RTS 24000 " 24010 "EFFE2: LDY #15 24020 "EFF0: LDX #39 24030 "EFF1: JSR PLONT 24040 " DEX 24050 " BPL EFF1 24060 " DEY 24070 " BPL EFF0 24080 " RTS 24090 " 24100 "EFFE3: LDX #0 24110 "EFFF0: LDY #15 24120 "EFFF1: JSR PLONT 24130 " DEY 24140 " BPL EFFF1 24150 " INX 24160 " CPX#40 24170 " BCC EFFF0 24180 " RTS 24190 " 24200 "EFFE4: LDX #39 24210 "EFFFF0: LDY #15 24220 "EFFFF1: JSR PLONT 24230 " DEY 24240 " BPL EFFFF1 24250 " DEX 24260 " BPL EFFFF0 24270 " RTS 24280 " 24290 "EFFE5: LDY #15 24300 " STY FFIRST 24310 "FE3: LDA #SCR 24340 " STA VC4+1 24350 "FE2: LDX #0 24360 "FE0: JSR PLONS 24370 " INC VC4 24380 " BNE FE1 24390 " INC VC4+1 24400 "FE1: INX 24410 " CPX #40 24420 " BCC FE0 24430 " INY 24440 " CPY #16 24450 " BCC FE2 24460 " DEC FFIRST 24470 " LDY FFIRST 24480 " BPL FE3 24490 " RTS 24500 " 24510 "EFFE6: LDA #0 24520 " STA FFIRST 24530 " STA FLAST 24540 " LDA #13 24550 " STA FFIRST+1 24560 " LDA #37 24570 " STA FLAST+1 24580 "FAD0: LDX FLAST+1 24590 " LDY FFIRST 24600 "FAD1: JSR PLONY 24610 " DEX 24620 " CPX FLAST 24630 " BNE FAD1 24640 "FAD2: JSR PLONY 24650 " INY 24660 " CPY FFIRST+1 24670 " BNE FAD2 24680 "FAD3: JSR PLONY 24690 " INX 24700 " CPX FLAST+1 24710 " BNE FAD3 24720 "FAD4: JSR PLONY 24730 " DEY 24740 " CPY FFIRST 24750 " BNE FAD4 24760 " INC FFIRST 24770 " INC FLAST 24780 " DEC FFIRST+1 24790 " DEC FLAST+1 24800 " LDA FFIRST 24810 " CMP #7 24820 " BNE FAD0 24830 " RTS 24840 " 40000 "CONVET: CMP #33 40010 " BCC MKSPC 40020 " CMP #64 40030 " BCC YUMMT 40040 " SEC 40050 " SBC #64 40060 " RTS 40070 "MKSPC: LDA #32 40080 "YUMMT: RTS 40120 " 50000 "RES 2 50010 "WINDOW:ORG *+640 50020 "WIND: 50030 " ORG $2000 50040 "BOX: 50050 " BYT ' ' 50060 " BYT ' ' 50070 " BYT ' ' 50080 " BYT ' ' 50090 " BYT ' ' 50100 " BYT ' ' 50110 " BYT ' ' 50120 " BYT ' ' 50130 " BYT '*0000 (C)MEGA AWESOME COMPUTERS 1988',0 50140 " 50150 "MESSG: 50160 "BYT '(C)MEGA AWESOME COMPUTERS 1988 ',255 50170 " 50180 "ORG MESSG+1024 50190 "BYT 'MESSAGE 2 ',255 50200 " 50210 "ORG MESSG+2048 50220 "BYT 'MESSAGE 3 ',255 50230 " 50240 "ORG MESSG+3072 50250 "BYT 'MESSAGE 4 ',255 50260 " 50270 "*T