summaryrefslogtreecommitdiff
path: root/jefs.fs
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-02-26 19:21:40 +1100
committerkitty <nepeta@canaglie.net>2026-02-26 19:21:40 +1100
commit68df791b4b1dd5f45dc4b957c9bfd0aa68ee39dc (patch)
tree200aee824380b56f770bc00c5b68d72e79999b17 /jefs.fs
parent59f9514eb8324926cc73e2ebc28f234afac1d4fd (diff)
fix string stack wonkery? i think?
i mean it works now afaict...
Diffstat (limited to 'jefs.fs')
-rw-r--r--jefs.fs14
1 files changed, 6 insertions, 8 deletions
diff --git a/jefs.fs b/jefs.fs
index ba2aae6..c3e70b7 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -54,8 +54,8 @@ hex : ret, c3 c, ; decimal
: ?dup dup 0<> if dup then ;
\ TODO interpret mode strings?
-\ : s" [ char " ] literal 1 >in +! ( skip spc ) [compile] litstring ; immediate
-: s" 1 >in +! [ char " ] literal cparse branch >mark >r 2dup cmove, r> >resolve swap [compile] lit [compile] lit drop ; immediate
+\ i think s" causes stack underflow
+: s" 1 >in +! [ char " ] literal cparse branch >mark >r 2dup cmove, r> >resolve swap [compile] lit [compile] lit ; immediate
: ." [compile] s" ' say compile, ; immediate \ lol this word breaks the highlighting, here have another "
\ https://wiki.osdev.org/X86-64_Instruction_Encoding
@@ -171,7 +171,7 @@ variable hld
: .qword (.qword) say space ;
: ? @ . ;
-: .s sp 8 + ( skip sp itself ) begin dup s0 @ >= while dup @ .qword 8 + repeat drop cr ;
+: .s sp 8 + ( skip sp itself ) begin dup s0 @ > while dup @ .qword 8 + repeat drop cr ;
: bytes-allocated hend @ h0 @ - ;
: bytes-used here @ h0 @ - ;
: bytes-free bytes-allocated bytes-used - ;
@@ -182,12 +182,10 @@ variable hld
: (words) ( lfa -- ) >nfa dup w@ swap 2 + swap say 2 spaces ;
: words latest @ begin ?dup 0<> while dup (words) @ repeat cr ;
-\ TODO fix/rewrite interpreter to respect #tib
-\ : (evaluate) ( c-addr u -- ) .s 0 >in ! ( u ) #tib ! ( c-addr ) tib ! interpret ;
-: (evaluate) ( c-addr u -- ) 2drop ;
+: (evaluate) ( c-addr u -- ) .s 0 >in ! ( u ) #tib ! ( c-addr ) tib ! interpret ;
: evaluate ( c-addr u -- ) >r >r tib @ #tib @ >in @ r> r> (evaluate) >in ! #tib ! tib ! ;
-.s
-TESTSTR evaluate
+: teststr3 s" 1 2 3 .s" .s ;
+
.free
bye