# HG changeset patch # User Shinji KONO # Date 1546555159 -32400 # Node ID f8f44153f8c115fbeacbb4d64f9cd7b11b587fc2 # Parent 6be44b5de44595c7c159ecc9a985a1a04dc8cba2 add TL1 source diff -r 6be44b5de445 -r f8f44153f8c1 TL1/TL1.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TL1/TL1.txt Fri Jan 04 07:39:19 2019 +0900 @@ -0,0 +1,1605 @@ +1000 *******TL/1************** +1010 GAME EQU $B503 +1020 TXTTOP EQU $FB7E +1030 BASE EQU $FB +1040 DPAGE EQU BASE*$100 +1050 SETDP BASE +1060 MSTACK EQU $FE52-$100 +1070 INEEE EQU $B003 +1080 OUTEEE EQU $B006 +1090 ** DPAGE DEFINE +1100 ORG DPAGE+$10 +1110 INDN RMB 1 +1120 OUTDN RMB 1 +1130 LB RMB 2 +1140 GB RMB 2 +1150 MHIGH RMB 1 +1160 MOD RMB 1 +1170 WT1 RMB 1 +1180 WT2 RMB 1 +1190 RNDH RMB 1 +1200 RNDL RMB 1 +1210 DREG RMB 1 +1220 DBUF RMB 3 +1230 XR RMB 2 +1240 YR RMB 2 +1250 ZR RMB 2 +1260 PFTBEG RMB 2 +1270 PC RMB 2 +1280 SREG RMB 2 +1290 SP RMB 2 +1300 PFMAX RMB 2 +1310 LSW RMB 2 +1320 SY RMB 2 +1330 CH RMB 1 +1340 VAL RMB 1 +1350 GL RMB 1 +1360 OPER RMB 1 +1370 GLL RMB 1 +1380 INDEX RMB 1 +1390 RMCODE RMB 1 +1400 ACC RMB 1 +1410 LSIZE RMB 1 +1420 TCOUNT RMB 1 +1430 TEND RMB 2 +1440 WEND RMB 2 +1450 PMODE RMB 1 +1450 RSW RMB 1 +1470 GEND RMB 2 +1480 SSW RMB 1 +1490 +1500 ORG $5000 +1510 ** +1520 COMP LDA #BASE +1530 TFR A,DP +1540 CLRA +5005 STA OUTDN +5006 STA LSW +1570 STA INDEX +1580 STA PMODE +1590 STA LSIZE +1600 STA RSW +1610 STA PFMAX +1620 LDX #MSTACK +1630 STX SP +1640 LEAX 2,x +1650 STX PFTBEG +1660 CLRB +1670 C1 STA ,X+ +1680 DECB +1690 BNE C1 +1700 INCA +1710 STA TCOUNT +1720 LDA #" " +1730 STA CH +1740 LDX TXTTOP +1750 LEAX 2,X +1760 STX SREG +1790 LEAX WTBLE,PCR +1780 STX TEND +1790 LEAX OBJECT,PCR +1800 STX PC +1810 STX OBJMP+1,PCR +1820 ** +1830 LBSR CRLF +1840 BSR REG0 +1850 LBSR WORD +1860 CMPA #$30 PROC? +1870 BNE *+4 +1880 BSR REGNAM +1890 BSR REG0 +1900 CMPA #$31 FUNC? +1910 BNE *+4 +1920 BSR REGNAM +1930 CLR LSIZE +1340 BSR REG0 +1950 LBSR PROG +1960 LBSR STPOUT +1970 LDX TEND +1980 STX GEND +1990 PLOOP LDA SY +2000 CMPA #$8F /END CODE +2010 LBEQ ENDL +2020 CMPA $4 +2030 BCC ERR4 +2040 DECA +2050 STA PMODE +2060 LDA VAL +2070 LBSR DEFPF +2080 LBSR PUTHS +2090 FDB $03BD +2100 FDB PSHLB +2110 BSR REG0 +2120 CLR LSIZE +2130 LBSR WORD +2140 CMPA #$37 +2150 BNE PL1 +2160 BSR REGNAM +2170 LDA #$38 ) +2180 LBSR CHECK +2190 PL1 BSR PROG +2200 LDB PMODE +2210 CMPB #1 +2220 BNE *+5 +2230 LBSR RETP +2240 LDX GEND +2250 STX TEND +2260 LDB #5 +2270 STB TCOUNT +2280 BRA PLOOP +2290 ** +2330 * REGIST ZERO +2310 ** +2320 REG0 LDX TEND +2330 CLR ,X+ +2340 STX TEND +2350 INC TCOUNT +2360 RTS +2370 ** +2380 * REGIST NAME +2390 ** +2400 REGNAM COM RSW +2410 LBSR WORD +2420 LDB RSW +2430 BEQ *+5 +2440 ERR4 LBRA ERROR +2450 LDX TEND +2460 LDA LSIZE +2470 STA ,X +2480 INC LSIZE +2490 LDX WEND +2500 STX TEND +2510 BSR WORD1 +2520 CMPA #$36 +2530 BNE REG2 +2540 BSR WORD1 +2550 BNE ERR4 +2560 LDA VAL +2570 ADDA LSIZE +2575 STA LSIZE +2580 BSR WORD1 +2590 LDA #$3A +2600 LBSR CHECK +2610 REG2 CMPA #$3C +2620 BEQ REGNAM +2630 RTS +2640 ** +2650 * PROGRAM +2660 ** +2670 PROG CMPA #$32 VAR? +2680 BNE *+4 +2690 BSR REGNAM +2700 BSR REG0 +2710 CMPA #$33 ARRAY? +2720 BNE *+4 +2730 BSR REGNAM +2740 LDB #-1 +2750 STB INDEX +2760 ** +2770 * STATEMENT +2780 ** +2790 STAT BSR SSTAT +2800 LDB SSW +2310 BEQ RTS1 +2820 LBRA ERROR +2830 ** +2840 * STATEMENTS LIST +2850 ** +2860 STLIST BSR SSTAT +2870 LDB SSW +2880 BEQ STLIST +2890 RTS1 RTS +2900 ** +2910 * SINGLE STATEMENT +2920 ** +2930 SSTAT CLRA +2940 STA ACC +2950 STA SSW +2960 LDY SY +2970 ** +2980 * MULTIPLE STATEMENTS +2990 ** +3000 SS1 CMPA #$34 +3010 BCS SS2 +3020 CMPA #$38 +3060 BSR WORD1 +3070 BSR STLIST +3080 PULS A +3090 CLR SSW +3100 LBRA CHECK +3110 ** +3120 * STOP +3130 ** +3140 SS2 CMPA #$50 +3150 BNE SS3 +3160 BSR STPOUT +3170 WORD1 LBRA WORD +3180 ** +3190 STPOUT LBSR PUTHS +3200 FCB 3,$7E +3210 FDB MONIT +3220 RTS +3230 ** +3240 * RETURN +3250 ** +3260 SS3 CMPA #$51 +3270 BNE SS4 +3280 LDB PMODE +3290 LBEQ ERR4 +3300 PSHS B +3310 BSR WORD1 +3320 PULS B +3330 DECB +3340 BEQ RETP +3350 LBSR EXPR +3360 RETP ,_BSR PUTHS +3370 FDB $037E +3380 FDB PULLB +3390 RTS +3400 ** +3410 * PROC CALL +3420 ** +3430 SS4 CMPA #2 +3440 LBEQ PFCALL +3450 CMPA #$E0 +3460 BCS SS5 +3470 LBRA PFCALL +3480 ** +3490 * ASS I GMENT STATEMENT +3500** +3510 SS5 CMPA #7 +3520 BCS ASSIGN +3530 LBRA SS6 +3540 ASSIGN LDB GL +3550 PSHS B +3560 LDB VAL +3570 PSHS B +3580 CMPA #5 +5590 BNE ASS1 +5600 LBSR SUBSC1 +3610 LDB ,S +3620 LDA LSW +3630 BNE AS0 +3640 LDA #$8B +3650 LBSR PUTAB +3660 LDA #1 +3670 BRA AS2 +3680 AS0 ADDB OPER +3690 STB ,S +3700 CLR LSW +3710 BRA AS1 +3720 ASS1 CMPA #6 +3730 BNE ASS2 +3740 LBSR DSUBSC +3750 LDA #2 +3760 BRA AS2 +3770 CMPA #4 +3780 BEQ *+5 +3790 LBRA ERROR +3800 LBSR WORD +3810 AS1 CLRA +3820 AS2 PSHS A +3830 LDA SY +3840 CMPA #S3C +3850 BNE *+9 +3860 LBSR WORD +3870 BSR ASSIGN +3680 BRA AS3 +3890 LDA #$3D +3900 LBSR CHECK +3910 LDA #$27 +3920 LBSR CHECK +3930 LBSR EXPR +3940 AS3 PULS D +3950 STB OPER 4-- +3960 PULS B +3970 STB GLL +3980 TSTA +3390 BNE AS4 +4000 LBSR PUTX +4010 LDA #$A7 +4020 LDS OPER +4030 LBRA PUTAB +4040 AS4 DECA +4050 BNE AS5 +4050 LBSR PUTX +4070 LDA #$33 +4080 LBSR PUTA +4090 LBRA STABX +4100 AS5 LBSR PUTHS +4110 FCB 10 +4120 FDB $33D7 +4130 FCB WT2 +4140 FDB $33D7 +4150 FCB WT1 $DE,WT2 +4160 FDB $A700 +4170 CLR INDEX +4180 RTS +4190 ** +4200 ** NON-STATEMENT +4210 ** +4220 SSEND COM SSW +4230 RTS +4242 ** +4250 CMPA #$58 +4260 BCC SSEND +4270 CMPA #$52 +4280 BCS SSEND +4290 SUBA #$51 +4300 PSHS A +4310 LBSR WORD +4320 PULS B +4330 ** +4340 * REPEAT UNTIL +4350 ** +4360 DECB +4370 BNE SS7 +4380 STB INDEX +4390 BSR ASTOUT +4400 LBSR STLIST +4410 LDA #$60 +4420 LBSR CHECK +4430 LBSR EXPR +4440 LBSR PUTHS +4450 FCB 2 +4460 FDB $2603 +4470 CLR SSW +4480 BRA MINOUT +4490 ** +4500 * FOR-TO +4510 ** +4520 SS7 DECB +4530 BNE SS8 +4540 CMPA #4 +4531 BEQ *+5 +4560 LBRA ERROR +4370 LDB VAL +4580 PSHS B +4590 LDB GL +4600 PSHS B +4610 LBSR ASSIGN +4620 LDA #$61 +4630 LBSR CHECK +4640 CLR ACC +4650 LBSR EXPR +4660 LDA #$64 +4670 LBSR CHECK +4680 BSR ASTOUT +4690 LDA #$36 +4700 LBSR PUTA +4710 CLR INDEX +4720 LBSR STAT +4730 LDA #$32 +4740 LBSR PUTA +4750 PULS D +4760 STA GLL +4770 STB OPER +4780 LDA #$A1 +4790 LBSR PUTABSX +4800 LBSR PUTHS +4610 FCB 2 +4020 FDB $2305 +4830 LDA #$6C +4840 LDB OPER +4850 LBSR PUTAB +4860 MINOUT LBRA PULJMP +4870 ASTOUT LBRA PSHDEF +4880 ** +4890 * WHILE-DO +4900 ** +4910 SS8 DECB +4920 BNE SS9 +4930 STB INDEX +4940 BSR ASTOUT +4950 LBSR EXPR +4960 LDA #$64 +4970 LBSR CHECK +4980 LBSR PUTHS +4990 FCB 2 +5000 FDB $2603 +5010 BSR SLAOUT +5020 LDS INDEX +5130 PSHS B +5040 LBSR STAT +5500 PULS B +5060 STB INDEX +5070 BSR PEROUT +5080 BSR MINOUT +5090 PLUOUT LBRA PULDEF +5100 ** +5110 ** IF—THEN +5120 ** +5130 SS9 DECB +3140 BNE SS10 +5150 LBSR EXPR +5160 LDA #$65 +5170 LBSR CHECK +5180 LBSR PUTHS +5190 FCB 2 +5200 FDB $2603 +5210 BSR SLAOUT +5220 LDB INDEX +5230 PSHS B +5340 LBSR STAT +5250 PULS B +5260 CMPB INDEX +5270 BEQ *+4 +5280 CLRB +5290 BRA PLUOUT +5300 SLAOUT LBRA PSHJMP +5310 PEROUT LBRA STCHG +5320 *** +5330 * CASE—OF +5340 SS10 DECB +5350 BNE SS11 +5360 LBSR EXPR +5370 LDA #$66 +5380 LBSR CHECK +5390 CLRB +3400 S10A INCB +5410 PSHS B +5420 STB ACC +5430 LBSR LEXPR +5440 LDA #$81 +5450 LBSR ROPER +5460 LBSR PUTHS +5470 FCB 2 +5480 FDB $2703 +5490 BSR SLAOUT +5500 LDB INDEX +5510 PSHS B +5520 LBSR STAT +5540 BSR PEROUT +5550 BSR PLUOUT +5560 PULS B +5570 STB INDEX +5580 PULS B +5590 LDA SY +5600 CMPA #$XX +5610 BNE S10A +5620 PSHS B +5630 LBSR WORD +5640 LBSR STAT +5650 CLR INDEX +5660 PULS A +5670 LBRA PLDFN +5680 ** +5690 * WRITE STATEMENT +5700 ** +5710 SS11 LDA #$37 +5720 LBSR CHECK +5730 LBSR EXPR +5740 LBSR PUTHS +5750 FDB $0297 +5760 FCB OUTDN +5780 LBSR CHECK +5790 WTLP CLR ACC +5800 BSR WTERM +5810 LDA SY +5820 CMPA #$3C +5830 BNE WTEN +5840 LBSR WORD +5850 BRA WTLP +5860 WTEN LDA #$36 +5870 LBRA CHECK +5880 ** +3890 WTERM CMPA #$6C +3900 BNE WR1 +5910 LBSR PUTHS +5920 FDB $03BD +5930 FDB PUTSTR +5940 LDA CH +5950 WR01 CMPA #""" +5960 BEQ WR02 +5970 LBSR PUTA +5980 LBSR GFTCH +5390 BRA WRO1 +6000 WRO2 CLRA +6010 STA INDEX +6020 LBSR PUTA +6030 LBSR GETCH +6040 LBRA WORD +6050 ** +6060 WR1 CMPA #$6B +6070 BNE WR3 +6080 LBSR WORD +6090 CMPA #$37 +6121 BEQ WR2 +6110 LBSR PUTHS +6120 FDB $03BD +6130 FDB CRLFA +6140 RTS +6150 ** +6160 WR2 LBSR WEXPR +6170 BSR WTEN +6180 LBSR PUTHS +6190 FDB $03BD +6200 FDB CRLFA +6210 RTS +6220 ** +6230 WR3 CMPA #$6A +6240 BNE WR4 +6250 LBSR SUBSC +6260 LBSR PUTHS +6270 FDB $03BD +6280 FDB SPACEA +6300 ** +6310 WR4 CMPA #$A9 +6320 BNE WR5 +6320 LBSR SUBSC +6340 LBSR PUTHS +6350 FDB $03BD +6360 FDB PUTCA +6370 RTS +6380 ** +6390 WR5 CMPA #$26 +6400 BNE WR6 +6410 LBSR DSUBSC +5420 LBSR PUTPLB +6430 LBSR PUTHS +6440 FDB $03BD +6450 FDB PUTDA+1 +6460 BRA WR66 +6470 ** +6480 WR6 LBSR EXPR +6490 LBSR PUTHS +6500 FDB $03BD +6510 FDB PUTDA +6520 WR66 CLR INDEX +530 RTS11 RTS +6540 ** +6750 * PUTX & PUTB +6560 ** +6570 PUTABX PSHS D +6580 BSR PUTX +6590 PULS D +6600 BRA PUTAB +6610 ** +6620 * PUT LP, OR GB BY INDEX +6630 ** +6640 PUTX LDB GLL +6650 CMPB INDEX +6660 BEQ RTS11 +6670 STB INDEX +6680 ADDB #LB+1 +6490 LDA #$DE +6700 *** +6710 * PUT ACC A&B +6720 ** +6730 PUTAB BSR PUTA +6740 TFR B,A +6750 ** +6760 * PUT ACCA RS AN OBJECT +6770 ** +6780 PUTA STX RNDH +6790 LBSR ROUT +6800 LDX RNDH +6810 RTS +6820 •* +6830 * PUTHS STRING +6840 ** +6850 PUTHS LDX ,S++ +6860 LDB ,X+ +6870 PS1 LDA ,X+ +6880 BSR PUTA +6890 DECB +6900 BNE PS1 +6910 JMP ,X +6920 ** +6930 ** CHECK ACC +6940 ** +6950 CHECK CMPA SY +6960 BEQ WORD +6970 ** +6980 * ERROR +6990 ** +7000 ERROR LBSR PUTSTR +7010 FDB $0D0A +7020 FCS "ERROR" +7030 LDX TEND +7040 LEAX 1,X +7050 NEG ,X +7060 ER0 LDA ,X+ +7070 LBSR PUTCA +7080 CMPX WEND +7090 BNE ER0 +7100 JMP GAME +7010 ** +7120 * WORD DECORDER +7130 ** +7140 WORD BSR WORDS +7150 LDA SY +7160 RTS +7170 WORDS CLRB +7180 STB SY +7190 STB VAL +7200 LDA CH +7210 ** SKIP CONT ,SPACE.; +7220 WD1 CMPA #$21 +7230 BCS SKIP +7340 CMPA #"." +7250 BEQ SKIP +7260 CMPA #";" +7270 BNE WD2 +7280 SKIP BSR GETCH +7290 BRA WD1 +7300 ** +7310 * COMMENT +7320 ** +7330 WD2 CMPA #"%" +7440 BNE WD3 +7350 BSR GETCH +7360 CMPA #$20 +7370 BCC *--4 +7380 BRA WD1 +7390 ** +7400 * ASCC CONST +7410 ** +7420 WD3 CMPA #"'" +7430 BNE WD4 +7440 BSR GETCH +7450 STA VAL +7460 BSR GETCH +7470 GETCH PSHS X +7480 LBSR MEMIN +7490 STA CH +7500 PULS X,PC +7510 * HEX CONSTANT +75221 WD4 CMPA #"$" +7530 BNE WD5 +7540 WD40 BSR GETCH +7560 BEQ WD41 +7570 BCC RTS2 +7580 +7590 BCC RTS2 +7600 SUBA #7 +7610 WD41 SUBA #"0" +7620 LDB VAL +7630 ASLB +7640 ASLB +7650 ASLB +7660 ASLB +7670 PSHS B +7680 ADDA ,S+ +7693 STA VAL +7700 BRA WD40 +7710 ** +7720 * TEST ALPHA NUMERIC +7730 TSTNA CMPA #"0" +7740 BCS NAF +7750 CMPA #'9'+1 +7760 BCS NT +7770 CMPA #"A" +7780 BCS NAF +7790 CMPA #'Z'+1 +7800 BCS AT +7810 NAF CLRB CLEAR C +7823 AT LDB #-1 +7833 RTS2 RTS +7840 NT CLRB +7350 RTS +7860 ** DECIMAL CONSTANT +7870 W5 BSR TSTNA +7883 BNE WD6 +7890 WD50 SUBA #"0" +7900 PSHS A +7910 LDA VAL +7920 LDB #10 +7930 MUL +7940 ADDA ,S+ +7950 STA VAL +7960 BSR GETCH +7970 BSR TSTNA +7980 BEQ WD50 +7990 RTS +8000 * THE OTHER WORDS +8010 LDX TEND +8020 PSHS A +8030 NEGA +8040 LEAX 1,X +8050 BSR STAONE +8060 PULS A +8070 BSR TSTNA +8080 BCC TLOOK1 +8090 WD61 LDA CH +8100 BSR TSTNA +8110 BCS *+4 +8120 BNE TLOOK1 +8130 BSR STRONE +8140 BRA W061 +8150 STAONE STA ,X+ +8160 STX WEND +8170 BRA GETCH +8180 TLOOK1 LDA RSW +8190 BEQ TLOOK +8200 COM RSW +8210 RTS +8220 ** +8230 * WORD TABLE SEARCH +8240 ** +8250 TLOOK LDA TCOUNG +8260 STA SY +8270 LDX TEND +8280 S01 LDU WEND +8290 S02 LDA ,-U +8300 CMPA ,-X +8310 BEQ S06 +8320 S03 TST ,X +8330 BEQ S05 +8340 BMI S04 +8350 LEAX -1,X +8360 BRA S03 +8370 S04 LEAX -1,X +8380 BRA S01 +8390 S05 DEC SY +8400 BNE S01 +8410 LBRA ERROR +8420 S6 TSTA +8430 BPL S02 +8440 LDB ,-X +8450 STB VAL +8460 LDA SY +8470 CMPA #1 +8480 BNE *+6 +8490 TFR B,A +8500 BRA S07 +8510 CMPA #4 +8520 BCS RTSS +8530 LDB #1 +8540 TST PMODE +8550 BEQ *+6 +8560 CMPA #6 +8570 BCS *+3 +8580 NEGB +8390 STB GL +8600 ANDA #$FD +8610 S07 STA SY +8620 RTSS RTS +8620 ** +8640 * ARITHMATIC EXPRESSION +8650 ** +8660 WEXPR LBSR WORD +8670 EXPR BSR LEXPR +8680 BSR OLOAD +8690 RTE RTS +8700 ** WORD * LEXPR +8710 WLEXPR LBSR WORD +8620 ** +8730 * LOGICAL EXPRESSION +8640 ** +8750 LEXPR BSR REEXPR +8760 LE1 LDY SY +8770 CMPA #$82 +8780 BCS RTE +6790 CMPA #$8A+1 +8800 BCC RTE +8810 PSHS A +8820 LBSR WORD +8830 BSR REXPR +8840 LDB LSW +3850 BNE LE2 +8860 LBSR PUTHS +8870 FDB $0397 +8880 FCB WT1 +8890 FCB $32 +8900 PULS A +8910 ADDA #$10 +8920 LDB #WT1 +8930 LBSR PUTAB +8940 BRA LE1 +8950 LE2 PULS A +8560 BSR OCORD +8970 BRA LE1 +8980 ** +8990 * RELATIONAL EXPRESS +8900 ** +9010 REXPR BSR AEXPR +9020 RE1 LDA SY +9030 CMPA #$21 +5040 BCS RTE +9350 CMPA #$30 +9060 BCC RTE +9070 PSHS A +9080 LBSR WORD +9090 ASR AEXPR +9100 LDA #$80 +9110 BSR AOPER +9120 PULS A +9130 LBSR PUTHS +9140 FCB 6 +9150 FCB $3,$4F,$20,$02,$86,$FF +9160 BRA RE1 +9170 ** ADDING OPERATFR +9180 ROPER LDB LSW +9190 BNE OCORD +9200 PSHS A +9210 CMPA #$80 +9220 BEQ *+5 +9230 BSR PUTPUL +9240 FCB $8C +9250 BSR PUTPLB +9260 PULS A +9270 SUBA #$70 +9280 PUTA1 LBRA PUTA +9290 ** OUTPUT SAVED L-CC +9300 OLOAD LDA LSW +9310 BEQ RTE +9320 LDA ACC +9330 BEQ *+6 +9340 LDA #$36 +9350 BSR PUTA1 +9360 LDA #$86 +9370 OCORD PSHS A +9380 CLRA +9390 STA LSW +9400 COMA +9410 STA ACC +9420 LDA AMODE +9430 CMPA #$20 +9440 BNE *+5 +9450 LBSR PUTX +9460 CLR LSW +9470 PULS A +9480 ADDA AMODE +9490 LDB OPER +3500 LBRA PUTAB +9510 * PUT 'TAB:PULS A' +9520 PUTPUL LBSR PUTHS +9530 FCB 2 +9540 FDB $1632 +9550 RTS +9560 +9570 +9580 BRA PUTA1 +9590 ** +9600 * ADDING EXPRESSION +9610 ** +9620 AEXPR BSR MEXPR +9630 AE1 LDA SY +9640 CMPA #$80 +9650 BEQ AE2 +9660 CMPA #$8B +9670 BNE RTE1 +9650 AE2 PSHS A +9690 LBSR WORD +9700 BSR MEXPR +9710 PULS A +9720 BSR ROPER +9730 BRA AE1 +9740 ** +9750 * MUTIPLYING EXPRESSION +9760 ** +9770 MEXPR BSR TERM +9780 ME1 LDA SY +9790 CMPA #$8E +9800 BEQ ME2 +9810 CMPA #$8F +9820 BNE RTE1 +9830 ME2 PSHS A +9840 LBSR WORD +9850 BSR TERM +9860 LDB LSW +9870 BEQ ME3 +9830 LDA #$C6 +9890 BSR OCORD +9900 FCB $8C +9910 ME3 BSR PUTPUL +9920 PULS A +9930 CMPA #$8E +9940 BHS ME4 +9950 LBSR PUTHS +9960 FCB 3 +9970 FCB $BD +9980 FDB MULT +9990 BRA ME1 +10000 ME4 LBSR PUTHS +10010 FCB 3 +10020 FCB $BD +10030 FDB DIV +10040 BRA ME1 +10050 ** +10060 * TERM +10070 ** +10080 TERM LDA SY +10050 BNE TM1 +10100 * SAVE L-COMMAND +10110 SLOAD, PSHS A +10120 LBSR OLOAD +10130 LDA VAL +10140 STA OPER +10150 LDA GL +10160 STA GLL +10170 PULS A +10180 STA PMODE +10190 COM LSW +10200 LBRA WORD +10210 * CONSTfTRUE & FALSE +10220 +10230 BEQ TM01 +10240 CMPA #$A1 +10250 BNE TM2 +10260 TM01 SUBA #$A1 +10270 STA VAL +10280 CLRA +10290 BRA SLOAD +10300 * SYSTEM VAR MHIGH & MOD +10310 TM2 CMPA #$16 +10220 BRA *+6 +10330 CMPA #$17 +10340 BNE TM3 +10350 STA VAL +10360 LDA #$10 +10370 BRA SLOAD +10380 * SIMPLE VARIABLE +10390 TM3 CMPA #4 +10400 BNE TM4 +10410 LDA #$20 +10420 BRA SLOAD +10430 * ( EXPTRSSION ) +10440 TM4 CMPA #$35 +10450 BCS TM5 +10460 CMPA #$38 +10470 BCC TM5 +10480 PSHS A +10490 LBSR WLEXPR +10500 PULS A +10510 ADDA #4 +10520 LBRA CHECK +10530 ** FUNCTION CALL +10540 TM5 CMPA #3 +10550 BMI *+6 +10560 CMPA #$E0 +10570 BCS TMG +10580 BSR OLP +10590 PFCALL LDA VAL +10600 PSHS A +10610 LBSR WORD +10620 CMPA #$37 +10630 BNE PFC1 +10640 LDA LSIZE +10650 PSHS A +10660 INC LSIZE +10670 PFC2 INC LSIZE +10680 LBSR WEXPR +10690 CLRB +10700 STB ACC +10710 DECB +10720 STB GLL +10730 LDA #$A7 +10740 LDB LSIZE +10750 LBSR PUTABX +10760 LDA SY +10770 CMPA #$3C +10780 BEQ PFC2 +10790 PULS A +10800 STA LSIZE +10810 LDA #$3B +10820 LBSR CHECK +10830 PFC1 LDB #-1 +10840 STB RCC +10850 STB INDEX +10860 LDA #$86 +10870 LDB LSIZE +10880 +10890 +10900 CMPA #$C0 +10910 BCC *+5 +10920 LBRA CALPF +10930 LDX #LIBR +10940 SUBA #$C0 +10950 PFC3 BEQ PFC4 +10960 LBSR PUTA +10970 DECA +10380 BRA PFC3 +10990 PFC4 LDA #$BD +11000 LBSR PUTA +11010 LDD ,X +11020 LBRA PUTAB +11030 ** +11040 OLP LBSR OLORD +11050 LDB ACC +11060 BEQ RTS4 +11070 LDA #$36 +11080 LBSR PUTA +11090 CLR ACC +11100 RTS4 RTS +11110 ** FUNCTION RND +11120 TM6 CMPA #$70 +11130 BNE T161 +11140 BSR SUBSC +11150 LBSR PUTHS +11160 FCB $03BD +11170 FDB RND +11180 RTS +11190 * FUNTION GET +11200 TM61 CMPA #$71 +11210 BNE TM62 +11220 BSR SUBSC +11230 LBSR PUTHS +11240 FDB $0597 +11250 FCB INDN,$BD +11260 FDB GETCH +11270 RTS +11280 * FUNCTION READ +11290 TM62 CMPA #$72 +11300 BNE TM7 +11310 BSR SUBSC +11320 LBSR PUTHS +11330 FDB $0597 +11340 FDB INDN +11350 FCB $8D +11360 FDB GETDA +11370 RTS +11280 * FUNCTION NOTASL ET AL +11390 TM7 CMPA #$40 +11400 BCS TM8 +11410 CMPA #$49+1 +11420 BCC TM8 +11430 PSHS A +11440 BSR SUBSC +11450 PULS A +11450 LBRA PUTA +11470 * ARRAY +11480 TMS CMPA #$5 +11490 BNE TM9 +11500 LDB VAL +11510 PSHS B +11520 LDB GL +11530 PSHS B +11540 BSR SUBSC1 +11550 PULS B +11560 STB GLL +11570 PULS B +11580 LDA LSW +11590 BEQ ARY1 +11600 ADDB OPER +11610 STB OPER +11620 LDA #$20 +11630 STA ANODE +11640 RTS +11650 ARY1 LDA #$8B +11660 LBSR PUTABX +11670 LBRA LDAAX +11680 ** +11690 DSUBSC LDA #$3C +11700 BSR SIUBS1 +11710 LDA #$3B +11720 PSHS A +11730 BRA SUBS2 +11740 SUBSC LDA #$3E +11750 SUBC1 PSHS A +11760 LBSR WORD +11770 LDA #$37 +11780 LBSR CHECK +11790 LBSR EXPR +11800 PULS A +11810 LBRA CHECK +11820 SUBSC1 LBSR WORD +11830 LDA #$36 +11240 LBSR CHECK +11850 LBSR LEXPR +11860 LDB LSW +11870 BEQ SBS5 +11880 LDB AMODE +11890 BEQ SBS5 +11900 LBSR OLOAD +11910 SB35 LDA #$3A +11920 LBRA CHECK +11930 * MEM FUNCTION +11940 TM9 CMPA #6 +11950 BNE TM10 +11960 BSR DSUBSC +11970 LBSR PUTHS +11980 FDB $0997 +11990 FCB WT2 +12000 FDB $3297 +12010 FCB WT1,$DE,WT1 +12020 FDB $A600 +12030 CLR INDEX +12040 RTS +12050 ** FOR EXPANTION +12060 TMI0 BRA ERROR +12070 ** +12080 * LIBRARY ADDRESSS TABLE +12090 ** +12100 LIBR RMB 80 +12110 ** +12120 * ADDRESS DEPENDENT CODE +12130 * GENARATION +12140 ** +12150 * SET PRC—FUNC TABLE +12160 ** +12170 SETPFT PSHS A +12180 LDB #3 +12190 MUL +12200 ADDD PFTBEG +12210 STD XR +12220 PULS A,PC +12230 ** +12240 TWICE LBSR PUTSTR +12250 FCB $0D,$0A +12260 FCS "TWICE!" +12270 JMP GAME +12280 ** +12290 * DEF PROC-FUNC +12300 ** +12310 DEFPF BSR SETPFT +12320 LDX XR +12330 TST ,X +12740 BNE TWICE +12350 COM ,X +12360 LDX 1,X +12370 STX YR +12380 LDX XR +12400 BSR PCST +12410 LDX YR +12420 DP1 BEQ RT10 +12430 LDX ,X +12440 STX ZR +12450 LDX YR +12460 BSR PCST +12470 LDX ZR +17480 STX YR +12490 BRA DP1 +12500 ** +12510 * CALL POR0-FUNC +12520 ** +12530 CRLPF BSR SETPFT +12540 INCA +12550 CMPA PFMAX +12560 BCS *+4 +12570 STA PFMAX +12580 LDA #$BD +12590 BSR AOUT +12600 LDX XR +12610 LDD 1,X +12620 LDX PC +12630 BSR STAABX +12640 LDX XR +12650 TST , X +12660 BNE PC2ADD +12670 LEAX 1,X +12680 BSR PCST +12690 BRA PC2ADD +12700 ** +12710 * PUL-DEF N TIMES +12720 ** +12730 PLDFN PSHS A +12740 BSR PULDEF +12750 DEC ,S +12760 BNE *-4 +12770 PULS A,PC +12780 ** +12790 * PULL AND DEFINE +12800 ** +12810 PULDEF BSR PULSTK +12820 PCST LDD PC +12830 STAABX STD ,X +12840 PT10 RTS +12850 ** +12860 JMPOUT LDA #$7E +12870 ROUT LDX PC +12880 STA ,X +12890 BRA INCPC1 +12900 ** +12910 PULSTK LDX SP +12920 LEAX 2,x +12930 STX SP +12940 LDD ,X +12950 LDX ,X +12960 RTS +12970 ** +12980 * PUL STACK & Jump +12990 ** +13000 PULJMP BSR JMPOUT +13010 BSR PULSTK +13020 PCST2 LDX PC +13030 BSR STAABX +13040 INCPC LEAX 1,X +13050 INCPC1 LEAX 1,X +13060 SETPC STX PC +13070 RTS +13080 ** +13090 * PUSH STACK & JUMP +13100 ** +13110 PSHJMP BSR JMPOUT +13120 BSR PSHDEF +13130 PC2ADD LDX PC +13140 BRA INCPC +13150 ** +13160 * PUSH STRCK & DEFINE +13170 ** +13189 TSHDEF LDX SP +13190 BSR PCST +13200 LEAX -2,X +13210 STX SP +13220 RTS +13240 OUTPC3 BSR ROUT +13250 LDD PC +13260 ADDD #3 +13270 BRA PCST2 +13280 ** +13290 * LDA R,X +13300 LDAAX LDA #$B7 +13310 BSR OUTPC3 +13320 LDA #$A6 +13730 LA1 BSR ROUT +13340 BRA INCPC1 +13350 ** +13360 * STA B,X +13370 STABX LDA #$F7 +13380 BSR OUTPC3 +13390 LDA #$A7 +13400 BRA LA1 +13410 ** +13420 * STACK TOP CHANGE +13430 ** +13440 STCHG LDU SP +13450 LEAU 2,U +13460 PULU D,X +13470 EXG D,X +13480 PSHU D,X +13490 RTS +135n0 ** +13510 * END OF LOAD +13320 ** +13530 ENDL LDX PFTBEG +13340 LDA PFMAX +13550 EL1 BEQ EL +13560 TST ,X +13570 BEQ UDERR +13580 EL2 LEAX 3,X +13590 DECA +13600 BRA EL1 +13610 UDERR PSHS A +13620 STA ZR +13630 SUBA PFMAX +13640 NEGA +13650 PSHS A +13660 LBSR PUTSTR +13670 FDB $0D0A +13680 FCS "UNDEF" +13690 PULS A +13700 LBSR PUTCA +13710 PULS A +13720 LDX ZR +13730 BRA EL2 +13740 EL LDX PC +13750 STX VARPTR+1,PCR +13760 JMP GAME +13770 ** +13780 * INPUT ROUTINE +13790 * GET ONE CHR FORM MEMORY +13810 MEMIN LDX SREG +13820 LDA ,X+ +13830 BEQ LEND +13840 MEM1 STX SREG +13850 MEM2 LBRA PUTCR +13860 LEND LDA #$D +13870 BSR MEM2 +13860 LDA #$A +13890 TST ,X++ +13900 BPL MEM1 +13910 LDA #"/" +13920 RTS +13930 ********************** +13940 * ADVANCE WORD +13950 ** +13960 WTABLE FCB 0 END MARK +13970 FCB $30,-'P' +13980 FCC "ROC" +13990 FCB $31,-'F' +14000 FCC "UNC" +14010 FCB $32, 'V' +14020 FCC "AR" +14030 FCB $33,-'A' +14040 FCC "RRAY" +14030 FCB $34, -'B' +14060 FCC "EGIN" +14070 FCB $35,';' +14080 FCB $36,-'[' +14090 FCB $37,-'(' +'4100 FCB $38,-'E' +14110 FCC "ND" +14120 FCB $39, -'=' +14130 FCB $3A,-']' +14140 FCB $3B,-')' +14150 FCB $3C,-';' +14160 FCB $3D,-':' +14170 FCB $50,-'S' +14180 FCC "TOP" +14190 FCB $51,-'R' +14200 FCC "ETURN" +14210 FCB $55,-'I' +14220 FCC "F" +14230 FCB $65,-'T' +14240 FCC "HEN" +14250 FCB $53,-'F' +14260 FCC "OR" +14270 FCB $61,-'T' +14280 FCC "O" +14290 FCB $52, -'R' +14300 FCC "EPEATI1 +14310 FCB $60,-'U' +14320 FCC "NTIL" +14330 FCB $54, -'W' +14340 FCC "HILE" +14350 FCB $64,-'D' +14360 FCC "O" +14370 FCB $56,-'C' +14380 FCC "ASE" +14390 FCB $66, -'O' +14400 FCC "F" +14410 FCB $67,-'E' +14420 FCC "LSE" +14430 FCB $57, -'W' +14440 FCC "RITE" +14450 FCB $69,-'A' +14460 FCC "SCII" +14470 FCB $6A,-'S' +14480 FCC "PACE" +14490 FCB $68,-'C' +14500 FCC "RLF" +14510 FCB $6C,-'"' +14520 FCB $8B,-'+' +14530 FCB $80,-'-' +14540 FCB $8E -'*' +14550 FCB $8F,-'/' +14560 FCB $82,-'S' +14570 FCC "BC" +14580 FCB $84 —'A' +14590 FCC "ND" +14600 FCB $88,-'E' +14610 FCC "OR" +14620 FCB $89,-'A' +14630 FCC "DC" +14640 FCB $8A,-'O' +14650 FCC ”R" +14660 FCB $22,-'>' +14670 FCB $25,-'<' +14680 FCB $26,-'#' +14690 FCB $27,-'=' +14700 FCB $2D,-'L','T' +14710 FCB $2E,-'G','T' +14720 FCB $40,-'N','E','G' +14730 FCB $43,-'N','O','T' +14740 FCB,$43,-'C','O','M' +14750 FCB $44,-'L','S','R' +14760 FCB $46,-'R','O','R' +14790 FCB $47,-'A','S','R' +14590 FCB $48,-'A','S','L' +14590 FCB $49,-'R','O','L' +14590 FCB $06,-'M','E','M' +14810 FCB $A0,-'T' +14820 FCC "RUE" +14830 FCB $A1,-'F' +14840 FCC "ALSE" +14850 FCB $16,-'M' +14660 FCC "HIGH" +14870 FCB $17,-'M' +14880 FCC "OD" +14890 FCB $70,-'R','N','D' +14900 FCB $71,-'G','E','T' +14910 FCB $72,-'R' +14920 FCC "EAD" +14930 ****** +14940 WTBLE RMB $500 +14950 ****** +14960 * SUPORTING ROUTINES +14970 * & I/0 CONTROL +14980 ** +14990 SYSTEM EQU $8837 +13000 RUB EQU $8 +13010 STACK EQU $FEE00 +15020 ** OBJECT START +15030 C LDS #STACK +15040 VARPTR LDX #0 +15050 STX G8 +15060 STX LB +15070 OBJMP JMP >0 +15080 ** +15090 * PUSH LB & SET NEW LP +15100 ** +15110 PSHLB CLRB +15120 ADDD LB +15130 STD WT1 +15140 LDX WT1 +15150 LDD LB +15160 STD ,X++ +15170 STX LB +13180 RTS +15190 ** +15200 * PULL LB +15210 ** +13220 PULLB LDX LB +15230 LDX ,--X +15240 STX LB +15250 TSTA +15260 RTS +15270 ** +13280 * RND FUNCTION +15290 ** +15300 RND PSHS A +13310 LDA RNDL +15320 LDB $125 +15330 MUL +15340 ADDD #1 +15350 STA RNDL +15360 PSHS A +15370 LDA RNDH +15380 LDB #125 +15390 MUL +15400 ADDA ,S+ +15410 STA RNDH +15420 PULS B +15430 MUL +15440 INCA +15450 RTS +15460 ** +15470 * DVISITION SET MOD +15480 ** +15490 DIV STB WT1 +13500 BEQ ERDIV +15510 TFR A,B +15520 CLRA +15530 STA WT2 +15540 DV0 INC WT2 +15550 ASL WT1 +15560 BCC DV0 +15570 DV1 ROR WT1 +15580 CMPB WT1 +15590 BCS DV2 +15600 SUBB WT1 +15510 ORCC #1 +15520 BRA *+4 +15530 DV2 ANDCC #$FE CLR C +15640 ROLA +15650 DEC WT2 +15670 STB MOD +15680 TSTA +15690 RTS +15700 ** +15710 ERDIV STB COUTDN +17720 LBSR CRLF +15730 LBSR PUTSTR +15740 FCC "ERR DIV 0" +15750 MONIT JMP SYSTEM +15760 ** +15770 MULT MUL +15780 STA MHIGH +15790 TFR B,A +15800 RTS +15810 ** +15820 * PUT A IN DECIMAL +15830 ** +15840 PUTDA CLRB +15850 PUTDR STB DREG +15860 LEAX ,S +15870 LEAS -4,S +15880 CLR 1,X +15890 LDB #3 +15900 P0 PSHS B +15910 LDB #10 +15920 BSR DIV +15930 ADDB #$30 +15940 STB ,X +15950 LEAX -1,X +15960 PULS B +15970 DECB +15980 BNE P0 +15990 COMA 3,X +16000 LDA #"0" +16010 LDB #4 +16020 P1 LEAX 1,X +16030 DECB +16040 CMPA ,X +16050 BEQ P1 +16060 COM 4,S +16070 LDA DREG +16080 PSHS B +16090 SUBA ,S+ +16100 BCS PRX +16110 BSR SPACER +16120 PRX LDB ,X +16130 BEQ P4 +16140 BSR PUTCA +16150 LEAX 1,X +16160 BRA PRX +16170 P4 LEAS 4,S +16180 CL1 RTS +16190 ** +16200 * GET IN A DECIMAL +16210 ** +16220 GETDA CLRA +16230 PSHS A +16240 BSR GETCA +16250 CMPA #RUB +16265 BNE GD1 +16275 PULS A +16280 LDB #10 +16290 LBSR DIV +16300 BRA GETDA+1 +16310 GD1 SUBA #"0" +16320 BCS GD2 +16330 CMPA #10 +16340 BCC GD2 +16355 STA DBUF +16365 PULS A +16370 LDB #10 +16380 MUL +16390 ADDB DBUF +16405 TFR B,A +16415 BRA GETDA+1 +16420 GD2 PULS A,PC +16430 ** +16445 * SPACE A TIMES +16455 ** +16460 SPFICEA BEQ CL1 +16470 PSHS A +16485 LDA #" " +16490 BSR PUTCA +16500 PULS A +16310 DECA +16520 BRA SPACER +16530 ** +16540 * STR OUT +16550 ** +16560 PUTSTR PSHS X +16570 LDX 2,S +16560 STR1 LDA ,X+ +16590 BEQ STR2 +16650 LBSR PUTCA +16610 BRA STR1 +16620 STR2 STX 2,S +16630 PULS X,PC +16640 ** +16650 * CRLF +16660 ** +16670 CRLF LDA #$0D +16680 BSR PUTCA +16690 LDA LDA #$0A +16755 BRA PUTCA +16710 ** +16725 * CRLF A TIMES +16730 ** +16740 CRLFA BEQ CL1 +16750 PSHS A +16760 BSR CRLF +16770 PULS A +16780 DECA +16790 BRA CRLFA +16800 ** +16810 * PUTCHR A +16820 ** +16830 PUTCA PSHS X +16840 LDB OUTDN +16850 LEAX OUTAT,PC +16860 ASLB +16870 JSR [B,X] +16880 PULS X,PC +16890 ** +16900 * GET ACCA ONE CHR +16910 ** +16920 GETCA PSHS X +16930 LDB INDN +16940 LEAX INAT,PC +16950 ASLB +16960 JSR [B,X] +16970 PULS X, PC +16980 ** +16990 * INPUT ROUTINE ADDRESS +17000 ** +17010 INAT FDB INEEE +17020 RMB 4 +17030 RMB 14 +17040 ** +17050 * OUTPUT ROUTINE ADDRESS +17060 ** +17070 OUTAT FDB OUTEEE +17080 RMB 6 +17090 RMB 12 +17100 +17110 * OBJECT PG AREA +17120 +17130 OBJECT NOP +17140 END diff -r 6be44b5de445 -r f8f44153f8c1 TL1/toasm.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TL1/toasm.pl Fri Jan 04 07:39:19 2019 +0900 @@ -0,0 +1,7 @@ +#!/usr/bin/perl + +while(<>) { + s/\r\n$//; + s/^\d+ //; + print $_,"\n" +}