From f7174a6c09335d1c03d927594f7e7630364dac6d Mon Sep 17 00:00:00 2001 From: kitty Date: Sat, 14 Feb 2026 23:18:50 +1100 Subject: [compile] and ' --- jefs.fs | 10 +++++++--- jefs.s | 12 ++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/jefs.fs b/jefs.fs index dbd6da5..309f118 100644 --- a/jefs.fs +++ b/jefs.fs @@ -1,12 +1,16 @@ +: [compile] parse find drop >cfa compile, ; immediate +: ' parse find drop >cfa [compile] lit ; immediate \ note: no error handling (yet) + : begin here @ ; immediate -: again branch here @ 4 + - d, ; immediate +: again branch here @ 4 + - d, ; immediate \ add 4 to get to beginning of the next instruction +\ : if 0branch here @ 0 d, ; immediate ( I: -- a ) +\ : then dup here @ 4 + swap - swap d! ; immediate : / /mod swap drop ; : mod /mod drop ; : syswrite ( u c-addr fd -- n ) 1 syscall3 ; : say ( c-addr u -- ) swap 1 syswrite drop ; -\ : saying begin TESTSTR say again ; -\ HEREDUMP +\ : saying 0 if TESTSTR say then ; \ saying bye TESTSTR say bye diff --git a/jefs.s b/jefs.s index 6eb5a80..e0b0c70 100644 --- a/jefs.s +++ b/jefs.s @@ -103,6 +103,18 @@ defword "!", store, 0 mov qword [r11], r12 ret +defword "d!", dstore, 0 + pspop r11 + pspop r12 + mov dword [r11], r12d + ret + +defword "w!", wstore, 0 + pspop r11 + pspop r12 + mov word [r11], r12w + ret + defword "c!", cstore, 0 pspop r11 pspop r12 -- cgit v1.2.3