summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jefs.fs11
1 files changed, 7 insertions, 4 deletions
diff --git a/jefs.fs b/jefs.fs
index e1b4853..5c3b7d0 100644
--- a/jefs.fs
+++ b/jefs.fs
@@ -211,8 +211,8 @@ variable hld
\ }}}
: ? @ . ;
-: .s sp cell+ ( skip sp itself ) begin dup s0 @ > while dup @ .qword cell+ repeat drop cr ;
-: .rs rp cell+ ( skip rsp itself ) begin dup rs0 @ > while dup @ .qword cell+ repeat drop cr ;
+: .s sp cell+ ( skip sp itself ) begin dup s0 @ > while dup @ . cell+ repeat drop cr ;
+: .rs rp cell+ ( skip rsp itself ) begin dup rs0 @ > while dup @ . cell+ repeat drop cr ;
: bytes-allocated heremax @ herestart @ - ;
: bytes-used here @ herestart @ - ;
@@ -279,13 +279,16 @@ variable source-id
init-source source-id !
8192 constant file-buffer-length
-variable file-buffer-used
make file-buffer file-buffer-length allot
\ todo move remaining stuff back before read-file,
\ update tib stuff for new data
+\ what if word spans accross refills? maybe parse
+\ should be rewritten here to take this into account
+: move-back ( -- remaining ) tib @ >in @ + tib @ #tib @ >in @ - dup >r cmove
+ r> #tib ! 0 >in ! #tib @ ; \ maybe make this less shitty at sum pt
: (refill) ( fd -- flag ) >r file-buffer file-buffer-length r> read-file
- 0= if ?dup 0> if ( TODO > ) drop ( < TODO )
+ 0= if ?dup 0> if ( TODO > ) drop ( < TODO ) true
else false then else false then ;
: refill ( -- flag ) source-id @ dup 0>= if (refill) else drop false then ;
: refill ." UNIMPLEMENTED" cr ;