1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-27 09:08:06 +11:00

zasm: make instr a bit more zasm-friendly

But we're still at a certain distance from assembling it with zasm:
we're busting the 0x100 symbol limit.
This commit is contained in:
Virgil Dupras 2019-05-18 21:07:35 -04:00
parent bccf933ea9
commit c01816b055

View File

@ -1,68 +1,68 @@
; *** Consts ***
; Number of rows in the argspec table
ARGSPEC_TBL_CNT .equ 31
.equ ARGSPEC_TBL_CNT 31
; Number of rows in the primary instructions table
INSTR_TBL_CNT .equ 150
.equ INSTR_TBL_CNT 150
; size in bytes of each row in the primary instructions table
INSTR_TBL_ROWSIZE .equ 6
.equ INSTR_TBL_ROWSIZE 6
; Instruction IDs They correspond to the index of the table in instrNames
I_ADC .equ 0x00
I_ADD .equ 0x01
I_AND .equ 0x02
I_BIT .equ 0x03
I_CALL .equ 0x04
I_CCF .equ 0x05
I_CP .equ 0x06
I_CPD .equ 0x07
I_CPDR .equ 0x08
I_CPI .equ 0x09
I_CPIR .equ 0x0a
I_CPL .equ 0x0b
I_DAA .equ 0x0c
I_DEC .equ 0x0d
I_DI .equ 0x0e
I_DJNZ .equ 0x0f
I_EI .equ 0x10
I_EX .equ 0x11
I_EXX .equ 0x12
I_HALT .equ 0x13
I_IM .equ 0x14
I_IN .equ 0x15
I_INC .equ 0x16
I_IND .equ 0x17
I_INDR .equ 0x18
I_INI .equ 0x19
I_INIR .equ 0x1a
I_JP .equ 0x1b
I_JR .equ 0x1c
I_LD .equ 0x1d
I_LDD .equ 0x1e
I_LDDR .equ 0x1f
I_LDI .equ 0x20
I_LDIR .equ 0x21
I_NEG .equ 0x22
I_NOP .equ 0x23
I_OR .equ 0x24
I_OTDR .equ 0x25
I_OTIR .equ 0x26
I_OUT .equ 0x27
I_POP .equ 0x28
I_PUSH .equ 0x29
I_RET .equ 0x2a
I_RETI .equ 0x2b
I_RETN .equ 0x2c
I_RL .equ 0x2d
I_RLA .equ 0x2e
I_RLC .equ 0x2f
I_RLCA .equ 0x30
I_RR .equ 0x31
I_RRA .equ 0x32
I_RRC .equ 0x33
I_RRCA .equ 0x34
I_SBC .equ 0x35
I_SCF .equ 0x36
I_SUB .equ 0x37
I_XOR .equ 0x38
.equ I_ADC 0x00
.equ I_ADD 0x01
.equ I_AND 0x02
.equ I_BIT 0x03
.equ I_CALL 0x04
.equ I_CCF 0x05
.equ I_CP 0x06
.equ I_CPD 0x07
.equ I_CPDR 0x08
.equ I_CPI 0x09
.equ I_CPIR 0x0a
.equ I_CPL 0x0b
.equ I_DAA 0x0c
.equ I_DEC 0x0d
.equ I_DI 0x0e
.equ I_DJNZ 0x0f
.equ I_EI 0x10
.equ I_EX 0x11
.equ I_EXX 0x12
.equ I_HALT 0x13
.equ I_IM 0x14
.equ I_IN 0x15
.equ I_INC 0x16
.equ I_IND 0x17
.equ I_INDR 0x18
.equ I_INI 0x19
.equ I_INIR 0x1a
.equ I_JP 0x1b
.equ I_JR 0x1c
.equ I_LD 0x1d
.equ I_LDD 0x1e
.equ I_LDDR 0x1f
.equ I_LDI 0x20
.equ I_LDIR 0x21
.equ I_NEG 0x22
.equ I_NOP 0x23
.equ I_OR 0x24
.equ I_OTDR 0x25
.equ I_OTIR 0x26
.equ I_OUT 0x27
.equ I_POP 0x28
.equ I_PUSH 0x29
.equ I_RET 0x2a
.equ I_RETI 0x2b
.equ I_RETN 0x2c
.equ I_RL 0x2d
.equ I_RLA 0x2e
.equ I_RLC 0x2f
.equ I_RLCA 0x30
.equ I_RR 0x31
.equ I_RRA 0x32
.equ I_RRC 0x33
.equ I_RRCA 0x34
.equ I_SBC 0x35
.equ I_SCF 0x36
.equ I_SUB 0x37
.equ I_XOR 0x38
; Checks whether A is 'N' or 'M'
checkNOrM: