variable fid create c 1 chars allot : open ( c-addr u -- ) r/o open-file throw fid ! ; : close ( -- ) fid @ close-file throw ; : read-chars ( c-addr u1 -- u2 ) fid @ read-file throw ; : size ( -- u ) fid @ file-size throw drop ; : inhale ( -- c-addr u ) size dup allocate throw tuck swap read-chars ; : read-char ( -- u ) c 1 read-chars ; : display-char ( -- ) c c@ emit ; : go ( c-addr u -- ) open begin read-char while display-char repeat close ; : go1 ( c-addr u -- ) open inhale type close ;