Sfoglia il codice sorgente

zasm: remove JUMP_ prefixes

They serve no purpose and make the code less flexible.
pull/10/head
Virgil Dupras 5 anni fa
parent
commit
7083116379
10 ha cambiato i file con 76 aggiunte e 77 eliminazioni
  1. +3
    -3
      apps/zasm/directive.asm
  2. +2
    -2
      apps/zasm/expr.asm
  3. +10
    -10
      apps/zasm/instr.asm
  4. +5
    -5
      apps/zasm/io.asm
  5. +20
    -20
      apps/zasm/main.asm
  6. +4
    -4
      apps/zasm/parse_z.asm
  7. +10
    -11
      apps/zasm/symbol.asm
  8. +3
    -3
      apps/zasm/tok.asm
  9. +4
    -4
      apps/zasm/util.asm
  10. +15
    -15
      tools/emul/zasm/user.asm

+ 3
- 3
apps/zasm/directive.asm Vedi File

@@ -98,7 +98,7 @@ handleINC:
; We have opening quote ; We have opening quote
inc hl inc hl
xor a xor a
call JUMP_FINDCHAR ; go to end of string
call findchar ; go to end of string
dec hl dec hl
ld a, (hl) ld a, (hl)
cp '"' cp '"'
@@ -135,8 +135,8 @@ parseDirective:
; double A to have a proper offset in directiveHandlers ; double A to have a proper offset in directiveHandlers
add a, a add a, a
ld de, directiveHandlers ld de, directiveHandlers
call JUMP_ADDDE
call JUMP_INTODE
call addDE
call intoDE
ld ixh, d ld ixh, d
ld ixl, e ld ixl, e
pop de pop de


+ 2
- 2
apps/zasm/expr.asm Vedi File

@@ -6,12 +6,12 @@ parseExpr:
push de push de
push hl push hl
ld a, '+' ld a, '+'
call JUMP_FINDCHAR
call findchar
jr z, .hasExpr jr z, .hasExpr
pop hl pop hl
push hl push hl
ld a, '-' ld a, '-'
call JUMP_FINDCHAR
call findchar
jr nz, .noExpr jr nz, .noExpr
ld c, '-' ld c, '-'
jr .hasExpr jr .hasExpr


+ 10
- 10
apps/zasm/instr.asm Vedi File

@@ -146,7 +146,7 @@ parseArg:
call strncmpI call strncmpI
jr z, .found ; got it! jr z, .found ; got it!
ld a, 5 ld a, 5
call JUMP_ADDDE
call addDE
djnz .loop1 djnz .loop1


; We exhausted the argspecs. Let's see if we're inside parens. ; We exhausted the argspecs. Let's see if we're inside parens.
@@ -206,7 +206,7 @@ isGroupId:
cp a cp a
ret ret
.notgroup: .notgroup:
call JUMP_UNSETZ
call unsetZ
ret ret


; Find argspec A in group id H. ; Find argspec A in group id H.
@@ -237,7 +237,7 @@ findInGroup:
ld a, h ld a, h
rla rla
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 pop af
ex hl, de ; And now, HL points to the group ex hl, de ; And now, HL points to the group
pop de pop de
@@ -276,7 +276,7 @@ findInGroup:
jr .end jr .end
.notfound: .notfound:
pop bc ; from the push bc in .find pop bc ; from the push bc in .find
call JUMP_UNSETZ
call unsetZ
.end: .end:
pop hl pop hl
pop bc pop bc
@@ -297,11 +297,11 @@ matchArg:
cp 0 cp 0
jr nz, .checkIfNumber ; not a zero, we can continue jr nz, .checkIfNumber ; not a zero, we can continue
; zero, stop here ; zero, stop here
call JUMP_UNSETZ
call unsetZ
ret ret
.checkIfNumber: .checkIfNumber:
; not an exact match, let's check for numerical constants. ; not an exact match, let's check for numerical constants.
call JUMP_UPCASE
call upcase
call checkNOrM call checkNOrM
jr z, .expectsNumber jr z, .expectsNumber
jr .notNumber jr .notNumber
@@ -393,7 +393,7 @@ handleBIT:
ret ret
.error: .error:
xor c xor c
call JUMP_UNSETZ
call unsetZ
ret ret


handleBITHL: handleBITHL:
@@ -644,7 +644,7 @@ getUpcode:
; We're on second pass ; We're on second pass
push de ; Don't let go of this, that's our dest push de ; Don't let go of this, that's our dest
ld de, (ZASM_PC) ld de, (ZASM_PC)
call JUMP_INTOHL
call intoHL
dec hl ; what we write is "e-2" dec hl ; what we write is "e-2"
dec hl dec hl
call subDEFromHL call subDEFromHL
@@ -733,7 +733,7 @@ processArg:
cp a ; ensure Z is set cp a ; ensure Z is set
ret ret
.error: .error:
call JUMP_UNSETZ
call unsetZ
ret ret
.noarg: .noarg:
xor a xor a
@@ -764,7 +764,7 @@ parseInstruction:
call matchPrimaryRow call matchPrimaryRow
jr z, .match jr z, .match
ld a, INSTR_TBL_ROWSIZE ld a, INSTR_TBL_ROWSIZE
call JUMP_ADDDE
call addDE
djnz .loop djnz .loop
; no match ; no match
xor a xor a


+ 5
- 5
apps/zasm/io.asm Vedi File

@@ -66,7 +66,7 @@ ioGetC:
; We're in "include mode", read from FS ; We're in "include mode", read from FS
push de push de
ld de, IO_INCLUDE_HDL ld de, IO_INCLUDE_HDL
call JUMP_FSGETC
call fsGetC
pop de pop de
or a ; cp 0 or a ; cp 0
ret nz ; not zero, all good ret nz ; not zero, all good
@@ -129,7 +129,7 @@ _ioSeek:
; We're in "include mode", seek in FS ; We're in "include mode", seek in FS
push de push de
ld de, IO_INCLUDE_HDL ld de, IO_INCLUDE_HDL
call JUMP_FSSEEK
call fsSeek
pop de pop de
ret ret


@@ -143,7 +143,7 @@ _ioTell:
; We're in "include mode", tell from FS ; We're in "include mode", tell from FS
push de push de
ld de, IO_INCLUDE_HDL ld de, IO_INCLUDE_HDL
call JUMP_FSTELL
call fsTell
pop de pop de
ret ret


@@ -156,10 +156,10 @@ ioInInclude:
; Open include file name specified in (HL). ; Open include file name specified in (HL).
; Sets Z on success, unset on error. ; Sets Z on success, unset on error.
ioOpenInclude: ioOpenInclude:
call JUMP_FSFINDFN
call fsFindFN
ret nz ret nz
ld hl, IO_INCLUDE_HDL ld hl, IO_INCLUDE_HDL
call JUMP_FSOPEN
call fsOpen
ld a, 1 ld a, 1
ld (IO_IN_INCLUDE), a ld (IO_IN_INCLUDE), a
cp a ; ensure Z cp a ; ensure Z


+ 20
- 20
apps/zasm/main.asm Vedi File

@@ -19,20 +19,20 @@
; ;
; *** Requirements *** ; *** Requirements ***
; blockdev ; 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) ; RAMSTART (where we put our variables in RAM)
; FS_HANDLE_SIZE ; FS_HANDLE_SIZE


@@ -60,7 +60,7 @@ jp zasmMain
.equ IO_RAMSTART ZASM_RAMEND .equ IO_RAMSTART ZASM_RAMEND
#include "io.asm" #include "io.asm"
#include "tok.asm" #include "tok.asm"
#include "parse.asm"
#include "parse_z.asm"
#include "expr.asm" #include "expr.asm"
#include "instr.asm" #include "instr.asm"
.equ DIREC_RAMSTART IO_RAMEND .equ DIREC_RAMSTART IO_RAMEND
@@ -74,10 +74,10 @@ zasmMain:
; Init I/O ; Init I/O
ld a, h ld a, h
ld de, IO_IN_GETC ld de, IO_IN_GETC
call JUMP_BLKSEL
call blkSel
ld a, l ld a, l
ld de, IO_OUT_GETC ld de, IO_OUT_GETC
call JUMP_BLKSEL
call blkSel


; Init modules ; Init modules
xor a xor a
@@ -113,7 +113,7 @@ zasmIsLocalPass:
incOutputOffset: incOutputOffset:
push de push de
ld de, (ZASM_PC) ld de, (ZASM_PC)
call JUMP_ADDDE
call addDE
ld (ZASM_PC), de ld (ZASM_PC), de
pop de pop de
ret ret
@@ -180,7 +180,7 @@ _parseInstr:
xor a ; ensure Z xor a ; ensure Z
ret ret
.error: .error:
call JUMP_UNSETZ
call unsetZ
ret ret


_parseDirec: _parseDirec:
@@ -241,7 +241,7 @@ _parseLabel:
xor a ; ensure Z xor a ; ensure Z
ret ret
.error: .error:
call JUMP_UNSETZ
call unsetZ
ret ret


_beginLocalPass: _beginLocalPass:


apps/zasm/parse.asm → apps/zasm/parse_z.asm Vedi File

@@ -51,7 +51,7 @@ parseDecimal:
jr .loop jr .loop


.error: .error:
call JUMP_UNSETZ
call unsetZ
.end: .end:
pop bc pop bc
pop de pop de
@@ -77,18 +77,18 @@ parseHexadecimal:
; too long, error ; too long, error
jr .error jr .error
.double: .double:
call JUMP_PARSEHEXPAIR ; moves HL to last char of pair
call parseHexPair ; moves HL to last char of pair
jr c, .error jr c, .error
inc hl ; now HL is on first char of next pair inc hl ; now HL is on first char of next pair
ld ixh, a ld ixh, a
.single: .single:
call JUMP_PARSEHEXPAIR
call parseHexPair
jr c, .error jr c, .error
ld ixl, a ld ixl, a
cp a ; ensure Z cp a ; ensure Z
jr .end jr .end
.error: .error:
call JUMP_UNSETZ
call unsetZ
.end: .end:
pop hl pop hl
ret ret

+ 10
- 11
apps/zasm/symbol.asm Vedi File

@@ -57,11 +57,11 @@ _symNext:
cp (hl) cp (hl)
jr nz, .do ; (HL) is not zero? we can advance. jr nz, .do ; (HL) is not zero? we can advance.
; (HL) is zero? we're at the end of the chain. ; (HL) is zero? we're at the end of the chain.
call JUMP_UNSETZ
call unsetZ
ret ret
.do: .do:
; A is already 0 ; A is already 0
call JUMP_FINDCHAR ; find next null char
call findchar ; find next null char
; go to the char after it. ; go to the char after it.
inc hl inc hl
cp a ; ensure Z cp a ; ensure Z
@@ -126,7 +126,7 @@ symNamesEnd:
djnz .loop djnz .loop
; exhausted djnz? out of bounds ; exhausted djnz? out of bounds
.outOfBounds: .outOfBounds:
call JUMP_UNSETZ
call unsetZ
jr .end jr .end
.success: .success:
; Our index is 0 - B (if B is, for example 0xfd, A is 0x3) ; Our index is 0 - B (if B is, for example 0xfd, A is 0x3)
@@ -161,7 +161,7 @@ symRegister:
push de push de
ld de, (SYM_CTX_NAMESEND) ld de, (SYM_CTX_NAMESEND)
ld a, c ld a, c
call JUMP_ADDHL
call addHL
call cpHLDE call cpHLDE
pop de pop de
pop hl pop hl
@@ -189,8 +189,8 @@ symRegister:
pop de pop de
push de ; push it right back to avoid stack imbalance push de ; push it right back to avoid stack imbalance
ld hl, (SYM_CTX_VALUES) 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 ; Everything is set! DE is our value HL points to the proper index in
; (SYM_CTX_VALUES). Let's just write it (little endian). ; (SYM_CTX_VALUES). Let's just write it (little endian).
@@ -227,7 +227,7 @@ symFind:
ld hl, (SYM_CTX_NAMES) ld hl, (SYM_CTX_NAMES)
.loop: .loop:
ld a, c ; recall strlen ld a, c ; recall strlen
call JUMP_STRNCMP
call strncmp
jr z, .match jr z, .match
; ok, next! ; ok, next!
call _symNext call _symNext
@@ -235,8 +235,7 @@ symFind:
djnz .loop djnz .loop
; exhausted djnz? no match ; exhausted djnz? no match
.nomatch: .nomatch:
out (99), a
call JUMP_UNSETZ
call unsetZ
jr .end jr .end
.match: .match:
; Our index is 0 - B (if B is, for example 0xfd, A is 0x3) ; 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 ; our index is in A. Let's fetch the proper value
push hl push hl
ld hl, (SYM_CTX_VALUES) 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) ld e, (hl)
inc hl inc hl
ld d, (hl) ld d, (hl)


+ 3
- 3
apps/zasm/tok.asm Vedi File

@@ -52,7 +52,7 @@ isSepOrLineEnd:
isLabel: isLabel:
push hl push hl
ld a, ':' ld a, ':'
call JUMP_FINDCHAR
call findchar
ld a, (hl) ld a, (hl)
cp ':' cp ':'
jr nz, .nomatch jr nz, .nomatch
@@ -67,7 +67,7 @@ isLabel:
ld (hl), a ld (hl), a
jr .end jr .end
.nomatch: .nomatch:
call JUMP_UNSETZ
call unsetZ
.end: .end:
pop hl pop hl
ret ret
@@ -105,7 +105,7 @@ readWord:
; We need to put the last char we've read back so that gotoNextLine ; We need to put the last char we've read back so that gotoNextLine
; behaves properly. ; behaves properly.
call ioPutBack call ioPutBack
call JUMP_UNSETZ
call unsetZ
jr .end jr .end
.success: .success:
call ioPutBack call ioPutBack


+ 4
- 4
apps/zasm/util.asm Vedi File

@@ -66,10 +66,10 @@ strncmpI:
ld b, a ld b, a
.loop: .loop:
ld a, (de) ld a, (de)
call JUMP_UPCASE
call upcase
ld c, a ld c, a
ld a, (hl) ld a, (hl)
call JUMP_UPCASE
call upcase
cp c cp c
jr nz, .end ; not equal? break early. NZ is carried out jr nz, .end ; not equal? break early. NZ is carried out
; to the called ; to the called
@@ -120,7 +120,7 @@ enterParens:
ret ; we're good! ret ; we're good!
.doNotEnter: .doNotEnter:
pop hl pop hl
call JUMP_UNSETZ
call unsetZ
ret ret


; Find string (HL) in string list (DE) of size B, in a case-insensitive manner. ; Find string (HL) in string list (DE) of size B, in a case-insensitive manner.
@@ -133,7 +133,7 @@ findStringInList:
ld a, c ld a, c
call strncmpI call strncmpI
ld a, c ld a, c
call JUMP_ADDDE
call addDE
jr z, .match jr z, .match
djnz .loop djnz .loop
; no match, Z is unset ; no match, Z is unset


+ 15
- 15
tools/emul/zasm/user.asm Vedi File

@@ -1,19 +1,19 @@
; *** JUMP TABLE *** ; *** 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 FS_HANDLE_SIZE 8
.equ USER_CODE 0x4800 .equ USER_CODE 0x4800


Loading…
Annulla
Salva