diff options
| author | kitty <nepeta@canaglie.net> | 2026-02-08 21:10:12 +1100 |
|---|---|---|
| committer | kitty <nepeta@canaglie.net> | 2026-02-08 21:10:12 +1100 |
| commit | e307b0599a43ec086215d0873f75f60ff0750bac (patch) | |
| tree | a8d2a83154e153c9b0338a8abb3d1a7f80419db5 /jefs.s | |
| parent | b980b334870f27d9084889beab172ed13e0238d1 (diff) | |
expand brk and assign it as HERE
Diffstat (limited to 'jefs.s')
| -rw-r--r-- | jefs.s | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -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" |
