Selaa lähdekoodia

zasm: make the instruction table fixed

Looping is easier
pull/10/head
Virgil Dupras 5 vuotta sitten
vanhempi
commit
38e40bfc16
1 muutettua tiedostoa jossa 7 lisäystä ja 9 poistoa
  1. +7
    -9
      apps/zasm/zasm.asm

+ 7
- 9
apps/zasm/zasm.asm Näytä tiedosto

@@ -2,7 +2,8 @@

; *** Consts ***
ARGSPEC_SINGLE_CNT .equ 7
ARGSPEC_TBL_CNT .equ 12
ARGSPEC_TBL_CNT .equ 12
INSTR_TBL_PRIMARYC_CNT .equ 25

; *** Code ***
.org USER_CODE
@@ -229,18 +230,16 @@ matchPrimaryRow:
parseLine:
call readLine
push de
ld de, instTBlPrimary
ld de, instrTBlPrimaryC
ld b, INSTR_TBL_PRIMARYC_CNT
.loop:
ld a, (de)
cp 0
jr z, .nomatch ; we reached last entry
call matchPrimaryRow
jr z, .match
ld a, 7
call JUMP_ADDDE
jr .loop

.nomatch:
djnz .loop
; no match
xor a
pop de
ret
@@ -283,7 +282,7 @@ argspecTbl:
; 1 byte for arg constant
; 1 byte for 2nd arg constant
; 1 byte for upcode
instTBlPrimary:
instrTBlPrimaryC:
.db "ADD", 0, 'A', 'h', 0x86 ; ADD A, HL
.db "CCF", 0, 0, 0, 0x3f ; CCF
.db "CPL", 0, 0, 0, 0x2f ; CPL
@@ -309,7 +308,6 @@ instTBlPrimary:
.db "RRA", 0, 0, 0, 0x1f ; RRA
.db "RRCA", 0, 0, 0x0f ; RRCA
.db "SCF", 0, 0, 0, 0x37 ; SCF
.db 0

; *** Variables ***
; enough space for 4 chars and a null


Loading…
Peruuta
Tallenna