summaryrefslogtreecommitdiff
path: root/jefs.fs
diff options
context:
space:
mode:
authorkitty <nepeta@canaglie.net>2026-02-27 13:48:18 +1100
committerkitty <nepeta@canaglie.net>2026-02-27 13:48:18 +1100
commitfcd9ad7b2af1668edb83f8b5a59974acc0505f4c (patch)
tree4de1bf0600e3d8becc0a2b326e71e28620cd28a6 /jefs.fs
parent18223b231d698ebe293b0018ed0bdad34961afa4 (diff)
allot -> allot>, allot
allot> returns an address. allot doesn't
Diffstat (limited to 'jefs.fs')
-rw-r--r--jefs.fs11
1 files changed, 7 insertions, 4 deletions
diff --git a/jefs.fs b/jefs.fs
index 9f74791..4551250 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -23,7 +23,8 @@
hex : ret, c3 c, ; decimal
: cells 8 * ;
-: allot here @ swap here +! ;
+: allot> here @ swap here +! ;
+: allot allot> drop ;
: [compile] parse find drop >cfa compile, ; immediate
: ' parse find drop >cfa [compile] lit ; immediate \ note: no error handling (yet)
@@ -32,7 +33,7 @@ hex : ret, c3 c, ; decimal
: literal [compile] lit ; immediate
: constant create [compile] lit ret, ;
-: variable 1 cells allot create [compile] lit ret, ;
+: variable 1 cells allot> create [compile] lit ret, ;
\ maybe i made bad design decisions, this is CREATE but it pushes a pointer to just after its definition. for arrays and the like
\ does not use LIT because we want to fill it in After
: make create here @ 18 + [compile] lit ret, ;
@@ -160,7 +161,7 @@ decimal
\ PNO {{{
\ mostly from pforth
-255 allot variable pad drop
+255 allot variable pad
variable hld
: <# pad hld ! ;
: hold 1 hld -! ( chr ) hld @ c! ;
@@ -210,7 +211,7 @@ variable hld
: words latest @ begin ?dup 0<> while dup (words) @ repeat cr ;
: (evaluate) ( c-addr u -- ) 0 >in ! ( u ) #tib ! ( c-addr ) tib ! interpret ;
-: evaluate ( c-addr u -- ) tib @ >r #tib @ >r >in @ >r (evaluate) r> >in ! r> #tib ! r> tib ! ;
+: evaluate ( c-addr u -- ) tib @ >r #tib @ >r >in @ >r (evaluate) r> >in ! r> #tib ! r> tib ! ;
\ SYSCALL ERRORS {{{
: errno ( rax -- ?val err|0 ) dup 0< if negate else 0 then ;
@@ -249,4 +250,6 @@ variable hld
: read-file ( c-addr u fd -- ?u flag ) >r swap r> sysread errno ;
\ }}}
+make buf 8192 allot
+
.free bye