mirror of
https://github.com/hsoft/collapseos.git
synced 2024-12-24 14:28:06 +11:00
zasm: remove JUMP_ prefixes
They serve no purpose and make the code less flexible.
This commit is contained in:
parent
013a3b74c8
commit
7083116379
@ -98,7 +98,7 @@ handleINC:
|
||||
; We have opening quote
|
||||
inc hl
|
||||
xor a
|
||||
call JUMP_FINDCHAR ; go to end of string
|
||||
call findchar ; go to end of string
|
||||
dec hl
|
||||
ld a, (hl)
|
||||
cp '"'
|
||||
@ -135,8 +135,8 @@ parseDirective:
|
||||
; double A to have a proper offset in directiveHandlers
|
||||
add a, a
|
||||
ld de, directiveHandlers
|
||||
call JUMP_ADDDE
|
||||
call JUMP_INTODE
|
||||
call addDE
|
||||
call intoDE
|
||||
ld ixh, d
|
||||
ld ixl, e
|
||||
pop de
|
||||
|
@ -6,12 +6,12 @@ parseExpr:
|
||||
push de
|
||||
push hl
|
||||
ld a, '+'
|
||||
call JUMP_FINDCHAR
|
||||
call findchar
|
||||
jr z, .hasExpr
|
||||
pop hl
|
||||
push hl
|
||||
ld a, '-'
|
||||
call JUMP_FINDCHAR
|
||||
call findchar
|
||||
jr nz, .noExpr
|
||||
ld c, '-'
|
||||
jr .hasExpr
|
||||
|
@ -146,7 +146,7 @@ parseArg:
|
||||
call strncmpI
|
||||
jr z, .found ; got it!
|
||||
ld a, 5
|
||||
call JUMP_ADDDE
|
||||
call addDE
|
||||
djnz .loop1
|
||||
|
||||
; We exhausted the argspecs. Let's see if we're inside parens.
|
||||
@ -206,7 +206,7 @@ isGroupId:
|
||||
cp a
|
||||
ret
|
||||
.notgroup:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
|
||||
; Find argspec A in group id H.
|
||||
@ -237,7 +237,7 @@ findInGroup:
|
||||
ld a, h
|
||||
rla
|
||||
rla
|
||||
call JUMP_ADDDE ; At this point, DE points to our group
|
||||
call addDE ; At this point, DE points to our group
|
||||
pop af
|
||||
ex hl, de ; And now, HL points to the group
|
||||
pop de
|
||||
@ -276,7 +276,7 @@ findInGroup:
|
||||
jr .end
|
||||
.notfound:
|
||||
pop bc ; from the push bc in .find
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
.end:
|
||||
pop hl
|
||||
pop bc
|
||||
@ -297,11 +297,11 @@ matchArg:
|
||||
cp 0
|
||||
jr nz, .checkIfNumber ; not a zero, we can continue
|
||||
; zero, stop here
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
.checkIfNumber:
|
||||
; not an exact match, let's check for numerical constants.
|
||||
call JUMP_UPCASE
|
||||
call upcase
|
||||
call checkNOrM
|
||||
jr z, .expectsNumber
|
||||
jr .notNumber
|
||||
@ -393,7 +393,7 @@ handleBIT:
|
||||
ret
|
||||
.error:
|
||||
xor c
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
|
||||
handleBITHL:
|
||||
@ -644,7 +644,7 @@ getUpcode:
|
||||
; We're on second pass
|
||||
push de ; Don't let go of this, that's our dest
|
||||
ld de, (ZASM_PC)
|
||||
call JUMP_INTOHL
|
||||
call intoHL
|
||||
dec hl ; what we write is "e-2"
|
||||
dec hl
|
||||
call subDEFromHL
|
||||
@ -733,7 +733,7 @@ processArg:
|
||||
cp a ; ensure Z is set
|
||||
ret
|
||||
.error:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
.noarg:
|
||||
xor a
|
||||
@ -764,7 +764,7 @@ parseInstruction:
|
||||
call matchPrimaryRow
|
||||
jr z, .match
|
||||
ld a, INSTR_TBL_ROWSIZE
|
||||
call JUMP_ADDDE
|
||||
call addDE
|
||||
djnz .loop
|
||||
; no match
|
||||
xor a
|
||||
|
@ -66,7 +66,7 @@ ioGetC:
|
||||
; We're in "include mode", read from FS
|
||||
push de
|
||||
ld de, IO_INCLUDE_HDL
|
||||
call JUMP_FSGETC
|
||||
call fsGetC
|
||||
pop de
|
||||
or a ; cp 0
|
||||
ret nz ; not zero, all good
|
||||
@ -129,7 +129,7 @@ _ioSeek:
|
||||
; We're in "include mode", seek in FS
|
||||
push de
|
||||
ld de, IO_INCLUDE_HDL
|
||||
call JUMP_FSSEEK
|
||||
call fsSeek
|
||||
pop de
|
||||
ret
|
||||
|
||||
@ -143,7 +143,7 @@ _ioTell:
|
||||
; We're in "include mode", tell from FS
|
||||
push de
|
||||
ld de, IO_INCLUDE_HDL
|
||||
call JUMP_FSTELL
|
||||
call fsTell
|
||||
pop de
|
||||
ret
|
||||
|
||||
@ -156,10 +156,10 @@ ioInInclude:
|
||||
; Open include file name specified in (HL).
|
||||
; Sets Z on success, unset on error.
|
||||
ioOpenInclude:
|
||||
call JUMP_FSFINDFN
|
||||
call fsFindFN
|
||||
ret nz
|
||||
ld hl, IO_INCLUDE_HDL
|
||||
call JUMP_FSOPEN
|
||||
call fsOpen
|
||||
ld a, 1
|
||||
ld (IO_IN_INCLUDE), a
|
||||
cp a ; ensure Z
|
||||
|
@ -19,20 +19,20 @@
|
||||
;
|
||||
; *** Requirements ***
|
||||
; blockdev
|
||||
; JUMP_STRNCMP
|
||||
; JUMP_ADDDE
|
||||
; JUMP_ADDHL
|
||||
; JUMP_UPCASE
|
||||
; JUMP_UNSETZ
|
||||
; JUMP_INTODE
|
||||
; JUMP_INTOHL
|
||||
; JUMP_FINDCHAR
|
||||
; JUMP_BLKSEL
|
||||
; JUMP_FSFINDFN
|
||||
; JUMP_FSOPEN
|
||||
; JUMP_FSGETC
|
||||
; JUMP_FSSEEK
|
||||
; JUMP_FSTELL
|
||||
; strncmp
|
||||
; addDE
|
||||
; addHL
|
||||
; upcase
|
||||
; unsetZ
|
||||
; intoDE
|
||||
; intoHL
|
||||
; findchar
|
||||
; blkSel
|
||||
; fsFindFN
|
||||
; fsOpen
|
||||
; fsGetC
|
||||
; fsSeek
|
||||
; fsTell
|
||||
; RAMSTART (where we put our variables in RAM)
|
||||
; FS_HANDLE_SIZE
|
||||
|
||||
@ -60,7 +60,7 @@ jp zasmMain
|
||||
.equ IO_RAMSTART ZASM_RAMEND
|
||||
#include "io.asm"
|
||||
#include "tok.asm"
|
||||
#include "parse.asm"
|
||||
#include "parse_z.asm"
|
||||
#include "expr.asm"
|
||||
#include "instr.asm"
|
||||
.equ DIREC_RAMSTART IO_RAMEND
|
||||
@ -74,10 +74,10 @@ zasmMain:
|
||||
; Init I/O
|
||||
ld a, h
|
||||
ld de, IO_IN_GETC
|
||||
call JUMP_BLKSEL
|
||||
call blkSel
|
||||
ld a, l
|
||||
ld de, IO_OUT_GETC
|
||||
call JUMP_BLKSEL
|
||||
call blkSel
|
||||
|
||||
; Init modules
|
||||
xor a
|
||||
@ -113,7 +113,7 @@ zasmIsLocalPass:
|
||||
incOutputOffset:
|
||||
push de
|
||||
ld de, (ZASM_PC)
|
||||
call JUMP_ADDDE
|
||||
call addDE
|
||||
ld (ZASM_PC), de
|
||||
pop de
|
||||
ret
|
||||
@ -180,7 +180,7 @@ _parseInstr:
|
||||
xor a ; ensure Z
|
||||
ret
|
||||
.error:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
|
||||
_parseDirec:
|
||||
@ -241,7 +241,7 @@ _parseLabel:
|
||||
xor a ; ensure Z
|
||||
ret
|
||||
.error:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
|
||||
_beginLocalPass:
|
||||
|
@ -51,7 +51,7 @@ parseDecimal:
|
||||
jr .loop
|
||||
|
||||
.error:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
.end:
|
||||
pop bc
|
||||
pop de
|
||||
@ -77,18 +77,18 @@ parseHexadecimal:
|
||||
; too long, error
|
||||
jr .error
|
||||
.double:
|
||||
call JUMP_PARSEHEXPAIR ; moves HL to last char of pair
|
||||
call parseHexPair ; moves HL to last char of pair
|
||||
jr c, .error
|
||||
inc hl ; now HL is on first char of next pair
|
||||
ld ixh, a
|
||||
.single:
|
||||
call JUMP_PARSEHEXPAIR
|
||||
call parseHexPair
|
||||
jr c, .error
|
||||
ld ixl, a
|
||||
cp a ; ensure Z
|
||||
jr .end
|
||||
.error:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
.end:
|
||||
pop hl
|
||||
ret
|
@ -57,11 +57,11 @@ _symNext:
|
||||
cp (hl)
|
||||
jr nz, .do ; (HL) is not zero? we can advance.
|
||||
; (HL) is zero? we're at the end of the chain.
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
.do:
|
||||
; A is already 0
|
||||
call JUMP_FINDCHAR ; find next null char
|
||||
call findchar ; find next null char
|
||||
; go to the char after it.
|
||||
inc hl
|
||||
cp a ; ensure Z
|
||||
@ -126,7 +126,7 @@ symNamesEnd:
|
||||
djnz .loop
|
||||
; exhausted djnz? out of bounds
|
||||
.outOfBounds:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
jr .end
|
||||
.success:
|
||||
; Our index is 0 - B (if B is, for example 0xfd, A is 0x3)
|
||||
@ -161,7 +161,7 @@ symRegister:
|
||||
push de
|
||||
ld de, (SYM_CTX_NAMESEND)
|
||||
ld a, c
|
||||
call JUMP_ADDHL
|
||||
call addHL
|
||||
call cpHLDE
|
||||
pop de
|
||||
pop hl
|
||||
@ -189,8 +189,8 @@ symRegister:
|
||||
pop de
|
||||
push de ; push it right back to avoid stack imbalance
|
||||
ld hl, (SYM_CTX_VALUES)
|
||||
call JUMP_ADDHL
|
||||
call JUMP_ADDHL ; twice because our values are words
|
||||
call addHL
|
||||
call addHL ; twice because our values are words
|
||||
|
||||
; Everything is set! DE is our value HL points to the proper index in
|
||||
; (SYM_CTX_VALUES). Let's just write it (little endian).
|
||||
@ -227,7 +227,7 @@ symFind:
|
||||
ld hl, (SYM_CTX_NAMES)
|
||||
.loop:
|
||||
ld a, c ; recall strlen
|
||||
call JUMP_STRNCMP
|
||||
call strncmp
|
||||
jr z, .match
|
||||
; ok, next!
|
||||
call _symNext
|
||||
@ -235,8 +235,7 @@ symFind:
|
||||
djnz .loop
|
||||
; exhausted djnz? no match
|
||||
.nomatch:
|
||||
out (99), a
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
jr .end
|
||||
.match:
|
||||
; Our index is 0 - B (if B is, for example 0xfd, A is 0x3)
|
||||
@ -254,8 +253,8 @@ symGetVal:
|
||||
; our index is in A. Let's fetch the proper value
|
||||
push hl
|
||||
ld hl, (SYM_CTX_VALUES)
|
||||
call JUMP_ADDHL
|
||||
call JUMP_ADDHL ; twice because our values are words
|
||||
call addHL
|
||||
call addHL ; twice because our values are words
|
||||
ld e, (hl)
|
||||
inc hl
|
||||
ld d, (hl)
|
||||
|
@ -52,7 +52,7 @@ isSepOrLineEnd:
|
||||
isLabel:
|
||||
push hl
|
||||
ld a, ':'
|
||||
call JUMP_FINDCHAR
|
||||
call findchar
|
||||
ld a, (hl)
|
||||
cp ':'
|
||||
jr nz, .nomatch
|
||||
@ -67,7 +67,7 @@ isLabel:
|
||||
ld (hl), a
|
||||
jr .end
|
||||
.nomatch:
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
.end:
|
||||
pop hl
|
||||
ret
|
||||
@ -105,7 +105,7 @@ readWord:
|
||||
; We need to put the last char we've read back so that gotoNextLine
|
||||
; behaves properly.
|
||||
call ioPutBack
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
jr .end
|
||||
.success:
|
||||
call ioPutBack
|
||||
|
@ -66,10 +66,10 @@ strncmpI:
|
||||
ld b, a
|
||||
.loop:
|
||||
ld a, (de)
|
||||
call JUMP_UPCASE
|
||||
call upcase
|
||||
ld c, a
|
||||
ld a, (hl)
|
||||
call JUMP_UPCASE
|
||||
call upcase
|
||||
cp c
|
||||
jr nz, .end ; not equal? break early. NZ is carried out
|
||||
; to the called
|
||||
@ -120,7 +120,7 @@ enterParens:
|
||||
ret ; we're good!
|
||||
.doNotEnter:
|
||||
pop hl
|
||||
call JUMP_UNSETZ
|
||||
call unsetZ
|
||||
ret
|
||||
|
||||
; Find string (HL) in string list (DE) of size B, in a case-insensitive manner.
|
||||
@ -133,7 +133,7 @@ findStringInList:
|
||||
ld a, c
|
||||
call strncmpI
|
||||
ld a, c
|
||||
call JUMP_ADDDE
|
||||
call addDE
|
||||
jr z, .match
|
||||
djnz .loop
|
||||
; no match, Z is unset
|
||||
|
@ -1,19 +1,19 @@
|
||||
; *** JUMP TABLE ***
|
||||
JUMP_STRNCMP .equ 0x03
|
||||
JUMP_ADDDE .equ 0x06
|
||||
JUMP_ADDHL .equ 0x09
|
||||
JUMP_UPCASE .equ 0x0c
|
||||
JUMP_UNSETZ .equ 0x0f
|
||||
JUMP_INTODE .equ 0x12
|
||||
JUMP_INTOHL .equ 0x15
|
||||
JUMP_FINDCHAR .equ 0x18
|
||||
JUMP_PARSEHEXPAIR .equ 0x1b
|
||||
JUMP_BLKSEL .equ 0x1e
|
||||
JUMP_FSFINDFN .equ 0x21
|
||||
JUMP_FSOPEN .equ 0x24
|
||||
JUMP_FSGETC .equ 0x27
|
||||
JUMP_FSSEEK .equ 0x2a
|
||||
JUMP_FSTELL .equ 0x2d
|
||||
strncmp .equ 0x03
|
||||
addDE .equ 0x06
|
||||
addHL .equ 0x09
|
||||
upcase .equ 0x0c
|
||||
unsetZ .equ 0x0f
|
||||
intoDE .equ 0x12
|
||||
intoHL .equ 0x15
|
||||
findchar .equ 0x18
|
||||
parseHexPair .equ 0x1b
|
||||
blkSel .equ 0x1e
|
||||
fsFindFN .equ 0x21
|
||||
fsOpen .equ 0x24
|
||||
fsGetC .equ 0x27
|
||||
fsSeek .equ 0x2a
|
||||
fsTell .equ 0x2d
|
||||
|
||||
.equ FS_HANDLE_SIZE 8
|
||||
.equ USER_CODE 0x4800
|
||||
|
Loading…
Reference in New Issue
Block a user