diff options
Diffstat (limited to 'jefs.fs')
| -rw-r--r-- | jefs.fs | 11 |
1 files changed, 7 insertions, 4 deletions
@@ -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 ; |
