commit 169c4b1402ee124b262e69f316bd1403c05e5f3e
parent da229d5a826b2a87838d43ff8497a4c1e3877a35
Author: Andrew Alderwick <andrew@alderwick.co.uk>
Date: Wed, 18 Aug 2021 07:33:53 +0100
Updated asma with new opcode use
Diffstat:
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/projects/software/asma.tal b/projects/software/asma.tal
@@ -252,9 +252,14 @@
;asma/state STA
#01 ( 0001 )
SWPk ( 0001 0100 ) ;asma/written-addr STA2
+ ;&preamble-end ;&preamble SUB2k ,asma-assemble-chunk JSR POP2 POP2
;asma/line STA2
JMP2r
+ &preamble
+ "%BRK 20 '{ 20 "00 20 '} 20
+ &preamble-end
+
(
Divide a file up into chunks, and pass each chunk to asma-assemble-chunk.
)
@@ -470,6 +475,8 @@
LDAkr STHr LIT2r 0001 ADD2r ( 00 byte char / end* )
DUP ,¬-end JCN
POP POP2r
+ DUP ,¬-zero JCN #80 NIP ( LIT by itself needs keep flag, to distinguish from BRK )
+ ¬-zero
SWP
JMP2r
@@ -918,20 +925,20 @@
&7d $2 $2 '} 00 :asma-ignore
@asma-opcodes
- &BRK :&AND :&DEI &_disasm "BRK 00
- &_entry :&EQU :&ROT "LIT 00
+ &_entry :>H :&ROT &_disasm "LIT 00
+ &INC $2 $2 "INC 00
&POP $2 $2 "POP 00
- &DUP :&DIV :&EOR "DUP 00
+ &DUP $2 $2 "DUP 00
&NIP :&MUL :&OVR "NIP 00
&SWP $2 $2 "SWP 00
&OVR :&ORA :&POP "OVR 00
&ROT :&NIP :&STR "ROT 00
- &EQU :&DEO :&JSR "EQU 00
+ &EQU $2 $2 "EQU 00
&NEQ $2 $2 "NEQ 00
- >H $2 $2 "GTH 00
+ >H :&DIV :&JSR "GTH 00
<H $2 $2 "LTH 00
&JMP $2 $2 "JMP 00
- &JCN :>H :&JMP "JCN 00
+ &JCN :&INC :&JMP "JCN 00
&JSR :&JCN :&LDR "JSR 00
&STH $2 $2 "STH 00
&LDZ $2 $2 "LDZ 00
@@ -940,15 +947,15 @@
&STR :&STA :&SUB "STR 00
&LDA $2 $2 "LDA 00
&STA :&SFT :&STH "STA 00
- &DEI $2 $2 "DEI 00
- &DEO :&BRK :&DUP "DEO 00
+ &DEI :&AND :&DEO "DEI 00
+ &DEO $2 $2 "DEO 00
&ADD $2 $2 "ADD 00
&SUB :&STZ :&SWP "SUB 00
&MUL :<H :&NEQ "MUL 00
- &DIV $2 $2 "DIV 00
+ &DIV :&DEI :&EOR "DIV 00
&AND :&ADD $2 "AND 00
&ORA $2 $2 "ORA 00
- &EOR $2 $2 "EOR 00
+ &EOR :&DUP :&EQU "EOR 00
&SFT $2 $2 "SFT 00
(