0100 .OPT NO LIST 0110 ;SAVE#D:ROBOX.M65 0120 ;asm,,#d:boxer 0130 ; 0140 ;------------------ 0150 ;the actual adventure 0160 ;is done here 0170 ; by Barry Kolbe 0180 ;------------------ 0190 ; 0200 *= $80 0210 OLDC 1 0220 INDR 2 0230 EOLFLAG 1 0240 TEMP 1 0250 SAVEY 1 0260 ILEN 1 0270 IPUT 1 ;input flag 0280 SAVEX 1 0290 SAVX2 1 0300 CHAR 1 0310 XPOS 1 0320 YPOS 1 0330 SCR 2 0340 SCR2 2 0350 CSHAPE 1 0360 BLINK 1 0370 OLDAC 1 0380 CAPS 1 0390 PAUSE? 1 0400 CLICK? 1 0410 DLIDX 1 0420 BLKPOS 1 0430 MYCOUNT 1 0440 MYCNT2 1 0450 GOFLAG 1 0460 X1 1 0470 X2 1 0480 X3 1 0490 VRBN 1 0500 NOUNN 1 0510 TAPEN 1 0520 CPL 1 0530 CPH 1 0540 TYPE 1 0550 SCORE 1 0560 ;----- 0570 EXPBUF = $0500 0580 MYBUF = $0600 0590 LINELEN = 32 0600 SCMEM = $3B00 0610 MYPM = $2000 0620 PLR0 = MYPM+$0400 0630 PLR1 = PLR0+$0100 0640 PLR2 = PLR1+$0100 0650 PLR3 = PLR2+$0100 0660 BOTLIN = 13 0670 ; 0680 .MACRO PRINT 0690 LDA # <%1 0700 LDY # >%1 0710 JSR EPRINT 0720 .ENDM 0730 ;----------- 0740 .MACRO PUTTER 0750 LDA # >%1 0760 LDX # <%1 0770 JSR MYPUT 0780 .ENDM 0790 ;----------- 0800 ; 0810 *= 0 0820 PASS .= PASS+1 0830 .IF PASS=1 0840 .INCLUDE #D:ROBOX2.M65 0850 .ENDIF 0860 ; 0870 *= $2000 0880 .INCLUDE #D:ROBOX3.M65 0890 *= $2800 0900 .INCLUDE #D:ROBOX4.M65 0910 ;-------- 0920 ;decode 0930 ;------- 0940 CLD 0950 LDX #0 0960 ?DE LDA VERB,X 0970 CLC 0980 ADC #5 0990 STA VERB,X 1000 INX 1010 CPX #188 1020 BNE ?DE 1030 LDA #1 1040 STA $0244 1050 LDA #$FF 1060 STA TAPEN 1070 PRINT TRMACT 1080 GETCOM JSR PUTCR 1090 JSR INPUT 1100 LDX #$FF 1110 STX NOUNN 1120 LDA MYBUF 1130 CMP #EOL 1140 .LOCAL 1150 BNE ?B1 1160 PRINT MYBUF 1170 JMP GETCOM 1180 ?B1 LDX #0 1190 ?B2 STX VRBN 1200 LDY VL,X 1210 LDA VERB,Y 1220 BPL ?B9 1230 PRINT SYNTAX 1240 JMP GETCOM 1250 ?B9 CMP MYBUF 1260 BEQ MATONE 1270 INX 1280 BNE ?B2 1290 JMP GETCOM 1300 MATONE LDX #0 1310 ?B8 INX 1320 INY 1330 LDA VERB,Y 1340 BMI ?LAST 1350 CMP MYBUF,X 1360 BEQ ?B8 1370 BNE ?B3 1380 ?LAST AND #$7F 1390 CMP MYBUF,X 1400 BEQ GOTVRB 1410 ?B3 JSR INSERR 1420 JMP GETCOM 1430 GOTVRB STX X3 1440 LDX VRBN 1450 LDA VFG,X 1460 BNE ?VB 1470 INC VFG,X 1480 JSR GTSCR 1490 ?VB LDX X3 1500 INX 1510 LDA MYBUF,X 1520 CMP #EOL 1530 BNE ?B5 1540 JMP TRANS 1550 ?B5 CMP #$20 1560 BEQ GTNOUN 1570 JMP ?B3 1580 GTNOUN INX 1590 STX X2 1600 LDX #0 1610 ?N1 STX NOUNN 1620 LDY NL,X 1630 LDA NOUN,Y 1640 BMI NONUN 1650 LDX X2 1660 CMP MYBUF,X 1670 BEQ GOTNUN 1680 LDX NOUNN 1690 INX 1700 BNE ?N1 1710 GOTNUN INX 1720 INY 1730 LDA NOUN,Y 1740 BMI ?NLAST 1750 CMP MYBUF,X 1760 BEQ GOTNUN 1770 BNE ?N3 1780 ?NLAST AND #$7F 1790 CMP MYBUF,X 1800 BNE ?N3 1810 INX 1820 LDA MYBUF,X 1830 CMP #EOL 1840 BEQ TRANS 1850 ?N3 JSR INSERR 1860 JMP GETCOM 1870 NONUN LDX X2 1880 JSR INSERR 1890 JMP GETCOM 1900 ;--------------------- 1910 ;insert -error & print 1920 ;--------------------- 1930 INSERR STX X1 1940 LDX #0 1950 ?B4 LDA MYBUF,X 1960 STA OUTBUF,X 1970 INX 1980 CPX X1 1990 BNE ?B4 2000 ?B0 LDY #0 2010 ?B7 LDA ERR,Y 2020 STA OUTBUF,X 2030 INX 2040 INY 2050 CPY #7 2060 BNE ?B7 2070 LDY X1 2080 LDA MYBUF,Y 2090 CMP #EOL 2100 BEQ ?B11 2110 ORA #$80 2120 STA OUTBUF,X 2130 ?B6 INY 2140 INX 2150 LDA MYBUF,Y 2160 ?B11 STA OUTBUF,X 2170 CMP #EOL 2180 BNE ?B6 2190 ?B12 PRINT OUTBUF 2200 RTS 2210 ;--------------- 2220 ;handle input 2230 ;--------------- 2240 TRANS LDA VRBN 2250 ASL A 2260 TAX 2270 LDA JTAB,X 2280 STA JPER+1 2290 LDA JTAB+1,X 2300 STA JPER+2 2310 JPER JSR $FFFF 2320 JMP GETCOM 2330 ;--------------- 2340 ;pr cat 2350 ;------- 2360 JCT PRINT CATLOG 2370 PRINT T1 2380 PRINT T2 2390 PRINT T3 2400 PRINT T4 2410 PRINT T5 2420 RTS 2430 ;------ 2440 ;dump st 2450 ;------- 2460 JDM LDX NOUNN 2470 BEQ ?JD1 2480 PRINT COMERR 2490 RTS 2500 ?JD1 LDA NFG 2510 BNE ?JD3 2520 INC NFG 2530 JSR GTSCR 2540 ?JD3 PRINT WALN 2550 PRINT CODE2 2560 LDX #3 2570 ?JD2 STX X1 2580 PRINT PG1 2590 LDX X1 2600 DEX 2610 BPL ?JD2 2620 PRINT PG2 2630 PRINT PG3 2640 PRINT PG4 2650 RTS 2660 ;------ 2670 ;eng tap 2680 ;------- 2690 JEN LDX NOUNN 2700 CPX #1 2710 BEQ ?JEN1 2720 CPX #3 2730 BNE ?RMM 2740 JMP ROMB 2750 ?RMM PRINT COMERR 2760 RTS 2770 ?JEN1 JSR PASWRD 2780 BCC ?JEN3 2790 RTS 2800 ?JEN3 PRINT TAPNAM 2810 JSR INPUT 2820 LDX #0 2830 ?EN3 STX TAPEN 2840 LDY TN,X 2850 LDA TNAM,Y 2860 BMI NOTAP 2870 CMP MYBUF 2880 BEQ ?EN2 2890 ?EN6 LDX TAPEN 2900 INX 2910 BNE ?EN3 2920 NOTAP PRINT NOTAVL 2930 LDA #$FF 2940 STA TAPEN 2950 RTS 2960 ?EN2 LDX #0 2970 ?EN5 INX 2980 INY 2990 LDA TNAM,Y 3000 BMI ?EN4 3010 CMP MYBUF,X 3020 BNE ?EN6 3030 BEQ ?EN5 3040 ?EN4 AND #$7F 3050 CMP MYBUF,X 3060 BNE NOTAP 3070 LDX TAPEN 3080 LDA EFG,X 3090 BNE ?ENA 3100 INC EFG,X 3110 JSR GTSCR 3120 ?ENA PRINT TREAD 3130 RTS 3140 ;---------- 3150 ;launch 3160 ;---------- 3170 JLA PRINT ROBLA 3180 JSR PUTCR 3190 INC PAUSE? 3200 LDA SCORE 3210 CMP #42 3220 BEQ ?Z1 3230 PRINT MISSON 3240 JSR FINI 3250 LDA #$FD 3260 LDX #$00 3270 JSR FWAIT 3280 STX $022F 3290 STX $D01D 3300 LDA #$40 3310 STA NMIEN 3320 LDA #$2A 3330 STA $02C8 3340 LDX #$E4 3350 LDY #$5F 3360 LDA #6 3370 JSR SETVBV 3380 LDX #$E4 3390 LDY #$62 3400 LDA #7 3410 JSR SETVBV 3420 LDA #0 3430 LDX #3 3440 ?KK STA HPOSP0,X 3450 DEX 3460 BPL ?KK 3470 LDA #$FF 3480 LDX #$A0 3490 JSR FWAIT 3500 LDA #0 3510 STA $02C8 3520 ?Z3 JMP ?Z3 3530 ?Z1 LDA #'. 3540 STA MISSON+19 3550 PRINT MISSON 3560 PRINT CONGRT 3570 JSR FINI 3580 JMP ?Z3 3590 ;--------- 3600 ;good bye! 3610 ;--------- 3620 FINI JSR PUTCR 3630 PRINT COMP 3640 PRINT COMP1 3650 RTS 3660 ;------ 3670 ;time killer 3680 ;------ 3690 FWAIT STA RTCLOK-1 3700 STX RTCLOK 3710 ?FW LDA RTCLOK-1 3720 BMI ?FW 3730 RTS 3740 ;------- 3750 ;play tape 3760 ;--------- 3770 JPL LDX NOUNN 3780 CPX #1 3790 BEQ ?PL3 3800 PRINT COMERR 3810 RTS 3820 ?PL3 JSR PASWRD 3830 BCC ?PL1 3840 RTS 3850 ?PL1 LDA TAPEN 3860 BPL ?PL2 3870 PRINT NREAD 3880 RTS 3890 ?PL2 ASL A 3900 TAX 3910 LDA ETAB,X 3920 STA EJMP+1 3930 LDA ETAB+1,X 3940 STA EJMP+2 3950 EJMP JSR $FFFF 3960 LDX TAPEN 3970 LDA PLFG,X 3980 BNE ?PP 3990 INC PLFG,X 4000 JSR GTSCR 4010 ?PP JMP GETCOM 4020 ;--------- 4030 ;ret dat 4040 ;--------- 4050 JRE PRINT RTPRG 4060 LDX #41 4070 ?JR3 LDA SCRTAB,X 4080 STA OUTBUF,X 4090 DEX 4100 BPL ?JR3 4110 LDA #4 4120 JSR OPENF 4130 BPL ?JR1 4140 ?JR2 PRINT NODAT 4150 JSR CLOSE2 4160 ?JR1 LDA #$07 4170 JSR REWR 4180 LDX #41 4190 ?JR5 LDA SCRTAB,X 4200 ORA OUTBUF,X 4210 STA SCRTAB,X 4220 DEX 4230 BPL ?JR5 4240 JSR GTSCR 4250 RTS 4260 ;------- 4270 ;store dat 4280 ;------- 4290 JST PRINT STPRG 4300 LDA #8 4310 JSR OPENF 4320 BMI ?JR2 4330 LDA #$0B 4340 JSR REWR 4350 RTS 4360 ;----- 4370 ;open file 4380 ;----- 4390 OPENF PHA 4400 JSR CLOSE2 4410 PLA 4420 LDX #$20 4430 STA AUX1,X 4440 LDA #3 4450 STA ICCOM,X 4460 LDA # >DISK 4470 STA ICBAH,X 4480 LDA # SCRTAB 4680 STA ICBAH,X 4690 LDA # W1 5010 STA CPH 5020 LDA # W2 5060 STA CPH 5070 LDA #