diff options
Diffstat (limited to 'sanctuary.s')
| -rw-r--r-- | sanctuary.s | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/sanctuary.s b/sanctuary.s index aa52ce3..74b9528 100644 --- a/sanctuary.s +++ b/sanctuary.s @@ -9,7 +9,7 @@ cmp r15, wstk_b jge %%ok - call abort + call q_overflow %%ok: %endmacro @@ -19,7 +19,7 @@ cmp r15, wstk jle %%ok - call abort + call q_underflow %%ok: %endmacro @@ -350,7 +350,7 @@ defcode "interpret", interpret, 0 jmp .loop .componly: - call abort + call q_notfound jmp .loop .intrpnum: @@ -386,7 +386,7 @@ defcode "interpret", interpret, 0 .notfound: ; error handling should go here - call abort + call q_notfound jmp .loop .eof: @@ -1125,6 +1125,16 @@ defcode "abort", abort, 0 mov r11, qword [handler] call r11 ret + +; todo doc? maybe? +defdefer "!underflow", q_underflow, 0 + call abort + +defdefer "!overflow", q_overflow, 0 + call abort + +defdefer "!notfound", q_notfound, 0 + call abort ; }}} ; these words are called from `create`d words, @@ -1205,11 +1215,11 @@ defvar "base", base, 0, 10 defvar "dp", dp, 0, 0 defvar "dp0", dp0, 0, 0 defvar "dp$", dp$, 0, 0 -defvar "tib", tib, 0, initfile -defvar "#tib", n_tib, 0, initlen -defvar ">in", to_in, 0, 0 +defdefervar "tib", tib, 0, initfile +defdefervar "#tib", n_tib, 0, initlen +defdefervar ">in", to_in, 0, 0 defvar "handler", handler, 0, do_0handler -defdefervar "latest", latest, 0, lfa_latest +defvar "latest", latest, 0, lfa_latest initfile: incbin "sanctuary.fs" initlen equ $ - initfile |
