variable fid
create c 1 chars allot
: open ( c-addr u -- ) r/o open-file throw fid ! ;
: close ( -- ) fid @ close-file throw ;
: read ( -- u ) c 1 fid @ read-file throw ;
: display ( -- ) c c@ emit ;
: go-show ( c-addr u -- )
open begin read while display repeat close ;
: go-store ( c-addr1 u1 -- c-addr2 u2 )
here >r
open begin read while c c@ c, repeat close
r> here over - ;
\ produces:
include file.forth ok
s" file.forth" go-store ok
.s <2> 2243200 406 ok
type variable fid
create c 1 chars allot
: open ( c-addr u -- ) r/o open-file throw fid ! ;
: close ( -- ) fid @ close-file throw ;
: read ( -- u ) c 1 fid @ read-file throw ;
: display ( -- ) c c@ emit ;
: go-show ( c-addr u -- )
open begin read while display repeat close ;
: go-store ( c-addr1 u1 -- c-addr2 u2 )
here >r
open begin read while c c@ c, repeat close
r> here over - ; ok