From e307b0599a43ec086215d0873f75f60ff0750bac Mon Sep 17 00:00:00 2001 From: kitty Date: Sun, 8 Feb 2026 21:10:12 +1100 Subject: expand brk and assign it as HERE --- jefs.s | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/jefs.s b/jefs.s index 18e07f2..75ed89e 100644 --- a/jefs.s +++ b/jefs.s @@ -45,7 +45,7 @@ %endmacro %assign smudge_mask 0x1 -%assign immemdiate_mask 0x2 +%assign immediate_mask 0x2 %assign false 0x0 %assign true 0xffffffffffffffff @@ -71,6 +71,19 @@ _start: ; init mov r14, wstack ; point SP to top + ; EXPAND BRK + xor rdi, rdi ; brk syscall called with 0 gives the current brk + mov rax, __NR_brk + syscall + mov qword [here], rax + mov qword [h0], rax + + add rax, 0x9c400 ; 640kb, entirely arbitrary + mov rdi, rax + mov rax, __NR_brk + syscall ; if this fails, have fun + mov qword [hend], rax + call interpret mov rdi, 0 mov rax, __NR_exit @@ -212,9 +225,21 @@ defword ">cfa", to_cfa, 0 pspush r11 ret +defword "compile,", compile_comma, 0 + ret + +defword ":", colon, 0 + ret + +defword ";", semicolon, immediate_mask + ret + defvar ">in", to_in, 0, 0 -defvar "latest", latest, 0, lfa_latest defvar "state", state, 0, interpreting +defvar "here", here, 0, 0 +defvar "h0", h0, 0, 0 ; beginning of user memory area +defvar "hend", hend, 0, 0 ; ending of user memory area +defvar "latest", latest, 0, lfa_latest initfile: incbin "jefs.fs" -- cgit v1.2.3