From a6601fef71e3c9711e21af680ef0b6ef26deb473 Mon Sep 17 00:00:00 2001 From: kitty Date: Fri, 27 Feb 2026 14:32:28 +1100 Subject: move syswrite to filehandle area read-file does not work right now --- jefs.fs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/jefs.fs b/jefs.fs index 4551250..18ea7e1 100644 --- a/jefs.fs +++ b/jefs.fs @@ -9,9 +9,8 @@ \ interactive input : cell+ 8 + ; -: syswrite ( u c-addr fd -- n ) 1 syscall3 ; -: say ( c-addr u -- ) swap 1 syswrite drop ; -: emit ( chr -- ) sp cell+ 1 swap 1 syswrite 2drop ; +: say ( c-addr u -- ) swap 1 1 syscall3 drop ; +: emit ( chr -- ) sp cell+ 1 swap 1 1 syscall3 2drop ; : cr 10 emit ; : decimal 10 base ! ; @@ -230,12 +229,12 @@ variable hld \ }}} \ FILE I/O {{{ -\ for syswrite see the top of the file 0 constant stdin 1 constant stdout 2 constant stderr : sysread ( u c-addr fd -- ) 0 syscall3 ; +: syswrite ( u c-addr fd -- n ) 1 syscall3 ; : sysopen ( mode flags filename -- ) 2 syscall3 ; : sysclose ( fd -- ) 3 syscall1 ; @@ -243,13 +242,15 @@ variable hld 1 constant w/o 2 constant r/w +8192 constant file-buffer-length +make file-buffer file-buffer-length allot + \ TODO error handling (0< abs → errno i think) \ flags are zero on success : open-file ( mode zstr -- ?fd flag ) 0 -rot sysopen errno ; : close-file ( fd -- flag ) sysclose errno-flag ; -: read-file ( c-addr u fd -- ?u flag ) >r swap r> sysread errno ; +: read-file ( c-addr u fd -- ?u flag ) >r swap r> sysread errno ; +: write-file ( c-addr u fd -- ?u flag ) >r swap r> syswrite errno ; \ }}} -make buf 8192 allot - .free bye -- cgit v1.2.3