diff options
| author | kitty <nepeta@canaglie.net> | 2026-02-27 14:32:28 +1100 |
|---|---|---|
| committer | kitty <nepeta@canaglie.net> | 2026-02-27 14:32:28 +1100 |
| commit | a6601fef71e3c9711e21af680ef0b6ef26deb473 (patch) | |
| tree | c64280ec90ffca0470c00e963b0d0bc0878e8560 /jefs.fs | |
| parent | fcd9ad7b2af1668edb83f8b5a59974acc0505f4c (diff) | |
move syswrite to filehandle area
read-file does not work right now
Diffstat (limited to 'jefs.fs')
| -rw-r--r-- | jefs.fs | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -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 |
