# HG changeset patch # User Shinji KONO # Date 1546566459 -32400 # Node ID 8f2154d95a04ab9921e30c9f4f78f096722f63f5 # Parent f8f44153f8c115fbeacbb4d64f9cd7b11b587fc2 fix diff -r f8f44153f8c1 -r 8f2154d95a04 TL1/TL1.txt --- a/TL1/TL1.txt Fri Jan 04 07:39:19 2019 +0900 +++ b/TL1/TL1.txt Fri Jan 04 10:47:39 2019 +0900 @@ -29,8 +29,8 @@ 1280 SREG RMB 2 1290 SP RMB 2 1300 PFMAX RMB 2 -1310 LSW RMB 2 -1320 SY RMB 2 +1310 LSW RMB 1 +1320 SY RMB 1 1330 CH RMB 1 1340 VAL RMB 1 1350 GL RMB 1 @@ -43,12 +43,12 @@ 1420 TCOUNT RMB 1 1430 TEND RMB 2 1440 WEND RMB 2 -1450 PMODE RMB 1 +1450 AMODE RMB 1 1450 RSW RMB 1 1470 GEND RMB 2 1480 SSW RMB 1 1490 -1500 ORG $5000 +1500 ORG $5000 1510 ** 1520 COMP LDA #BASE 1530 TFR A,DP @@ -56,7 +56,7 @@ 5005 STA OUTDN 5006 STA LSW 1570 STA INDEX -1580 STA PMODE +1580 STA AMODE 1590 STA LSIZE 1600 STA RSW 1610 STA PFMAX @@ -103,7 +103,7 @@ 2020 CMPA $4 2030 BCC ERR4 2040 DECA -2050 STA PMODE +2050 STA AMODE 2060 LDA VAL 2070 LBSR DEFPF 2080 LBSR PUTHS @@ -118,7 +118,7 @@ 2170 LDA #$38 ) 2180 LBSR CHECK 2190 PL1 BSR PROG -2200 LDB PMODE +2200 LDB AMODE 2210 CMPB #1 2220 BNE *+5 2230 LBSR RETP @@ -224,7 +224,7 @@ 3250 ** 3260 SS3 CMPA #$51 3270 BNE SS4 -3280 LDB PMODE +3280 LDB AMODE 3290 LBEQ ERR4 3300 PSHS B 3310 BSR WORD1 @@ -246,7 +246,7 @@ 3470 LBRA PFCALL 3480 ** 3490 * ASS I GMENT STATEMENT -3500** +3500 ** 3510 SS5 CMPA #7 3520 BCS ASSIGN 3530 LBRA SS6 @@ -273,14 +273,14 @@ 3740 LBSR DSUBSC 3750 LDA #2 3760 BRA AS2 -3770 CMPA #4 +3770 ASS2 CMPA #4 3780 BEQ *+5 3790 LBRA ERROR 3800 LBSR WORD 3810 AS1 CLRA 3820 AS2 PSHS A 3830 LDA SY -3840 CMPA #S3C +3840 CMPA #$3C 3850 BNE *+9 3860 LBSR WORD 3870 BSR ASSIGN @@ -375,7 +375,7 @@ 4760 STA GLL 4770 STB OPER 4780 LDA #$A1 -4790 LBSR PUTABSX +4790 LBSR PUTABX 4800 LBSR PUTHS 4610 FCB 2 4020 FDB $2305 @@ -441,7 +441,7 @@ 5420 STB ACC 5430 LBSR LEXPR 5440 LDA #$81 -5450 LBSR ROPER +5450 LBSR AOPER 5460 LBSR PUTHS 5470 FCB 2 5480 FDB $2703 @@ -492,9 +492,9 @@ 5950 WR01 CMPA #""" 5960 BEQ WR02 5970 LBSR PUTA -5980 LBSR GFTCH -5390 BRA WRO1 -6000 WRO2 CLRA +5980 LBSR GETCH +5390 BRA WR01 +6000 WR02 CLRA 6010 STA INDEX 6020 LBSR PUTA 6030 LBSR GETCH @@ -535,7 +535,7 @@ 6390 WR5 CMPA #$26 6400 BNE WR6 6410 LBSR DSUBSC -5420 LBSR PUTPLB +6420 LBSR PUTPLB 6430 LBSR PUTHS 6440 FDB $03BD 6450 FDB PUTDA+1 @@ -572,7 +572,7 @@ 6760 * PUT ACCA RS AN OBJECT 6770 ** 6780 PUTA STX RNDH -6790 LBSR ROUT +6790 LBSR AOUT 6800 LDX RNDH 6810 RTS 6820 •* @@ -645,7 +645,7 @@ 7490 STA CH 7500 PULS X,PC 7510 * HEX CONSTANT -75221 WD4 CMPA #"$" +7520 WD4 CMPA #"$" 7530 BNE WD5 7540 WD40 BSR GETCH 7560 BEQ WD41 @@ -679,7 +679,7 @@ 7840 NT CLRB 7350 RTS 7860 ** DECIMAL CONSTANT -7870 W5 BSR TSTNA +7870 WD5 BSR TSTNA 7883 BNE WD6 7890 WD50 SUBA #"0" 7900 PSHS A @@ -693,7 +693,7 @@ 7980 BEQ WD50 7990 RTS 8000 * THE OTHER WORDS -8010 LDX TEND +8010 WD6 LDX TEND 8020 PSHS A 8030 NEGA 8040 LEAX 1,X @@ -705,8 +705,8 @@ 8100 BSR TSTNA 8110 BCS *+4 8120 BNE TLOOK1 -8130 BSR STRONE -8140 BRA W061 +8130 BSR STAONE +8140 BRA WD61 8150 STAONE STA ,X+ 8160 STX WEND 8170 BRA GETCH @@ -717,7 +717,7 @@ 8220 ** 8230 * WORD TABLE SEARCH 8240 ** -8250 TLOOK LDA TCOUNG +8250 TLOOK LDA TCOUNT 8260 STA SY 8270 LDX TEND 8280 S01 LDU WEND @@ -734,7 +734,7 @@ 8390 S05 DEC SY 8400 BNE S01 8410 LBRA ERROR -8420 S6 TSTA +8420 S06 TSTA 8430 BPL S02 8440 LDB ,-X 8450 STB VAL @@ -746,7 +746,7 @@ 8510 CMPA #4 8520 BCS RTSS 8530 LDB #1 -8540 TST PMODE +8540 TST AMODE 8550 BEQ *+6 8560 CMPA #6 8570 BCS *+3 @@ -767,7 +767,7 @@ 8620 ** 8730 * LOGICAL EXPRESSION 8640 ** -8750 LEXPR BSR REEXPR +8750 LEXPR BSR REXPR 8760 LE1 LDY SY 8770 CMPA #$82 8780 BCS RTE @@ -810,7 +810,7 @@ 9150 FCB $3,$4F,$20,$02,$86,$FF 9160 BRA RE1 9170 ** ADDING OPERATFR -9180 ROPER LDB LSW +9180 AOPER LDB LSW 9190 BNE OCORD 9200 PSHS A 9210 CMPA #$80 @@ -847,7 +847,7 @@ 9520 PUTPUL LBSR PUTHS 9530 FCB 2 9540 FDB $1632 -9550 RTS +9550 RTE1 RTS 9560 9570 9580 BRA PUTA1 @@ -864,7 +864,7 @@ 9690 LBSR WORD 9700 BSR MEXPR 9710 PULS A -9720 BSR ROPER +9720 BSR AOPER 9730 BRA AE1 9740 ** 9750 * MUTIPLYING EXPRESSION @@ -910,11 +910,11 @@ 10150 LDA GL 10160 STA GLL 10170 PULS A -10180 STA PMODE +10180 STA AMODE 10190 COM LSW 10200 LBRA WORD 10210 * CONSTfTRUE & FALSE -10220 +10220 TM1 10230 BEQ TM01 10240 CMPA #$A1 10250 BNE TM2 @@ -949,7 +949,7 @@ 10540 TM5 CMPA #3 10550 BMI *+6 10560 CMPA #$E0 -10570 BCS TMG +10570 BCS TM6 10580 BSR OLP 10590 PFCALL LDA VAL 10600 PSHS A @@ -976,7 +976,7 @@ 10810 LDA #$3B 10820 LBSR CHECK 10830 PFC1 LDB #-1 -10840 STB RCC +10840 STB ACC 10850 STB INDEX 10860 LDA #$86 10870 LDB LSIZE @@ -996,7 +996,7 @@ 11010 LDD ,X 11020 LBRA PUTAB 11030 ** -11040 OLP LBSR OLORD +11040 OLP LBSR OLOAD 11050 LDB ACC 11060 BEQ RTS4 11070 LDA #$36 @@ -1005,7 +1005,7 @@ 11100 RTS4 RTS 11110 ** FUNCTION RND 11120 TM6 CMPA #$70 -11130 BNE T161 +11130 BNE TM61 11140 BSR SUBSC 11150 LBSR PUTHS 11160 FCB $03BD @@ -1040,7 +1040,7 @@ 11450 PULS A 11450 LBRA PUTA 11470 * ARRAY -11480 TMS CMPA #$5 +11480 TM8 CMPA #$5 11490 BNE TM9 11500 LDB VAL 11510 PSHS B @@ -1055,23 +1055,23 @@ 11600 ADDB OPER 11610 STB OPER 11620 LDA #$20 -11630 STA ANODE +11630 STA AMODE 11640 RTS 11650 ARY1 LDA #$8B 11660 LBSR PUTABX 11670 LBRA LDAAX 11680 ** 11690 DSUBSC LDA #$3C -11700 BSR SIUBS1 +11700 BSR SUBS1 11710 LDA #$3B 11720 PSHS A 11730 BRA SUBS2 11740 SUBSC LDA #$3E -11750 SUBC1 PSHS A +11750 SUBS1 PSHS A 11760 LBSR WORD 11770 LDA #$37 11780 LBSR CHECK -11790 LBSR EXPR +11790 SUBS2 LBSR EXPR 11800 PULS A 11810 LBRA CHECK 11820 SUBSC1 LBSR WORD @@ -1083,7 +1083,7 @@ 11880 LDB AMODE 11890 BEQ SBS5 11900 LBSR OLOAD -11910 SB35 LDA #$3A +11910 SBS5 LDA #$3A 11920 LBRA CHECK 11930 * MEM FUNCTION 11940 TM9 CMPA #6 @@ -1098,7 +1098,7 @@ 12030 CLR INDEX 12040 RTS 12050 ** FOR EXPANTION -12060 TMI0 BRA ERROR +12060 TM10 BRA ERROR 12070 ** 12080 * LIBRARY ADDRESSS TABLE 12090 ** @@ -1142,9 +1142,9 @@ 17480 STX YR 12490 BRA DP1 12500 ** -12510 * CALL POR0-FUNC +12510 * CALL PORC-FUNC 12520 ** -12530 CRLPF BSR SETPFT +12530 CALPF BSR SETPFT 12540 INCA 12550 CMPA PFMAX 12560 BCS *+4 @@ -1178,7 +1178,7 @@ 12840 PT10 RTS 12850 ** 12860 JMPOUT LDA #$7E -12870 ROUT LDX PC +12870 AOUT LDX PC 12880 STA ,X 12890 BRA INCPC1 12900 ** @@ -1209,12 +1209,12 @@ 13150 ** 13160 * PUSH STRCK & DEFINE 13170 ** -13189 TSHDEF LDX SP +13189 PSHDEF LDX SP 13190 BSR PCST 13200 LEAX -2,X 13210 STX SP 13220 RTS -13240 OUTPC3 BSR ROUT +13240 OUTPC3 BSR AOUT 13250 LDD PC 13260 ADDD #3 13270 BRA PCST2 @@ -1223,7 +1223,7 @@ 13300 LDAAX LDA #$B7 13310 BSR OUTPC3 13320 LDA #$A6 -13730 LA1 BSR ROUT +13730 LA1 BSR AOUT 13340 BRA INCPC1 13350 ** 13360 * STA B,X @@ -1274,7 +1274,7 @@ 13820 LDA ,X+ 13830 BEQ LEND 13840 MEM1 STX SREG -13850 MEM2 LBRA PUTCR +13850 MEM2 LBRA PUTCA 13860 LEND LDA #$D 13870 BSR MEM2 13860 LDA #$A @@ -1394,7 +1394,7 @@ 15020 ** OBJECT START 15030 C LDS #STACK 15040 VARPTR LDX #0 -15050 STX G8 +15050 STX GB 15060 STX LB 15070 OBJMP JMP >0 15080 ** @@ -1459,7 +1459,7 @@ 15680 TSTA 15690 RTS 15700 ** -15710 ERDIV STB COUTDN +15710 ERDIV STB OUTDN 17720 LBSR CRLF 15730 LBSR PUTSTR 15740 FCC "ERR DIV 0" @@ -1499,7 +1499,7 @@ 16080 PSHS B 16090 SUBA ,S+ 16100 BCS PRX -16110 BSR SPACER +16110 BSR SPACEA 16120 PRX LDB ,X 16130 BEQ P4 16140 BSR PUTCA @@ -1534,13 +1534,13 @@ 16430 ** 16445 * SPACE A TIMES 16455 ** -16460 SPFICEA BEQ CL1 +16460 SPACEA BEQ CL1 16470 PSHS A 16485 LDA #" " 16490 BSR PUTCA 16500 PULS A 16310 DECA -16520 BRA SPACER +16520 BRA SPACEA 16530 ** 16540 * STR OUT 16550 ** @@ -1557,7 +1557,7 @@ 16660 ** 16670 CRLF LDA #$0D 16680 BSR PUTCA -16690 LDA LDA #$0A +16690 LDA #$0A 16755 BRA PUTCA 16710 ** 16725 * CRLF A TIMES @@ -1593,7 +1593,7 @@ 17020 RMB 4 17030 RMB 14 17040 ** -17050 * OUTPUT ROUTINE ADDRESS +17050 * OUTPUT AOUTINE ADDRESS 17060 ** 17070 OUTAT FDB OUTEEE 17080 RMB 6 diff -r f8f44153f8c1 -r 8f2154d95a04 TL1/toasm.pl --- a/TL1/toasm.pl Fri Jan 04 07:39:19 2019 +0900 +++ b/TL1/toasm.pl Fri Jan 04 10:47:39 2019 +0900 @@ -1,7 +1,16 @@ #!/usr/bin/perl +my $indent = 7; while(<>) { s/\r\n$//; s/^\d+ //; + s/^ /" "x$indent/e; + if (/^([a-zA-Z0-9]+) /) { + my $w = $1; + if (length $w < $indent) { + my $s = " "x($indent-length $w); + s/ /$s/e; + } + } print $_,"\n" } diff -r f8f44153f8c1 -r 8f2154d95a04 src/a09.c --- a/src/a09.c Fri Jan 04 07:39:19 2019 +0900 +++ b/src/a09.c Fri Jan 04 10:47:39 2019 +0900 @@ -659,7 +659,7 @@ short operand; unsigned char postbyte; -int dpsetting; +int dpsetting = 0; int scanindexreg() @@ -824,8 +824,8 @@ scanindexed(); } else { if(opsize==0) { - if(unknown||!certain||dpsetting==-1|| - (unsigned short)(operand-dpsetting*256)>=256) + if(unknown||dpsetting==-1|| // omit !certain + ((((operand&0xff00)>>8))!=dpsetting)) opsize=3; else opsize=2; } if(opsize==1)opsize=2;