mirror of
https://github.com/hsoft/collapseos.git
synced 2024-11-06 03:40:54 +11:00
98695f9912
Make symRegister's logic pointer-based so we can break through the 0x100 limit.
69 lines
946 B
NASM
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
|
|
|