1
0
mirror of https://github.com/hsoft/collapseos.git synced 2024-11-06 03:40:54 +11:00
collapseos/tools/emul/zasm/user.asm
Virgil Dupras 98695f9912 zasm: de-index symRegister
Make symRegister's logic pointer-based so we can break through the 0x100
limit.
2019-05-19 09:06:24 -04:00

69 lines
946 B
NASM

; *** JUMP TABLE ***
strncmp .equ 0x03
addDE .equ 0x06
addHL .equ 0x09
upcase .equ 0x0c
unsetZ .equ 0x0f
intoDE .equ 0x12
intoHL .equ 0x15
writeHLinDE .equ 0x18
findchar .equ 0x1b
parseHex .equ 0x1e
parseHexPair .equ 0x21
blkSel .equ 0x24
fsFindFN .equ 0x27
fsOpen .equ 0x2a
fsGetC .equ 0x2d
fsSeek .equ 0x30
fsTell .equ 0x33
.equ FS_HANDLE_SIZE 8
.equ STDERR_PORT 0x04
.equ USER_CODE 0x4800
.equ RAMSTART 0x5800
.org USER_CODE
call zasmMain
;call dumpSymTable
ret
#include "zasm/main.asm"
; *** Debug ***
debugPrint:
push af
push hl
.loop:
ld a, (hl)
or a
jr z, .end
out (STDERR_PORT), a
inc hl
jr .loop
.end:
ld a, 0x0a
out (STDERR_PORT), a
pop hl
pop af
ret
dumpSymTable:
ld hl, SYM_NAMES
ld de, SYM_VALUES
.loop:
call debugPrint
ld a, (de)
out (12), a
inc de
ld a, (de)
out (12), a
inc de
xor a
call findchar
inc hl
ld a, (hl)
or a
ret z
jr .loop