Diff for /gforth/blocks.fs between versions 1.21 and 1.23

version 1.21, 1999/02/03 00:10:19 version 1.23, 1999/03/29 22:52:27
Line 58  block-cold Line 58  block-cold
 Defer flush-blocks  Defer flush-blocks
   
 : open-blocks ( addr u -- ) \ gforth  : open-blocks ( addr u -- ) \ gforth
     \g use the file, whose name is given by @var{addr u}, as blocks file       \g Use the file, whose name is given by @var{addr u}, as the blocks file.
     2dup open-fpath-file 0<>      2dup open-fpath-file 0<>
     if      if
         r/w bin create-file throw          r/w bin create-file throw
Line 70  Defer flush-blocks Line 70  Defer flush-blocks
     block-fid ! ;      block-fid ! ;
   
 : use ( "file" -- ) \ gforth  : use ( "file" -- ) \ gforth
     \g use @var{file} as blocks file      \g Use @var{file} as the blocks file.
     name open-blocks ;      name open-blocks ;
   
 \ the file is opened as binary file, since it either will contain text  \ the file is opened as binary file, since it either will contain text
Line 83  Defer flush-blocks Line 83  Defer flush-blocks
     block-fid @ ;      block-fid @ ;
   
 : block-position ( u -- ) \ block  : block-position ( u -- ) \ block
     \G Position the block file to the start of block u.      \G Position the block file to the start of block @var{u}.
     1- chars/block chars um* get-block-fid reposition-file throw ;      1- chars/block chars um* get-block-fid reposition-file throw ;
   
 : update ( -- ) \ block  : update ( -- ) \ block
Line 120  Defer flush-blocks Line 120  Defer flush-blocks
     buffers mod buffer-struct %size * block-buffers @ + ;      buffers mod buffer-struct %size * block-buffers @ + ;
   
 : block ( u -- a-addr ) \ block- block  : block ( u -- a-addr ) \ block- block
   \G u identifies a block number. Assign a block buffer to u,    \G @var{u} identifies a block number. Assign a block buffer to @var{u},
   \G make it the current block buffer and return its start    \G make it the current block buffer and return its start
   \G address, a-addr.    \G address, @var{a-addr}.
     dup 0= -35 and throw      dup 0= -35 and throw
     dup get-buffer >r      dup get-buffer >r
     dup r@ buffer-block @ <>      dup r@ buffer-block @ <>
Line 145  Defer flush-blocks Line 145  Defer flush-blocks
     block ;      block ;
   
 User scr ( -- a-addr ) \ block-ext  User scr ( -- a-addr ) \ block-ext
     \G USER VARIABLE a-addr is the address of a cell containing      \G USER VARIABLE @var{a-addr} is the address of a cell containing
     \G the block number of the block most recently processed by      \G the block number of the block most recently processed by
     \G @code{LIST}.      \G @code{LIST}.
     0 scr !      0 scr !
Line 165  User scr ( -- a-addr ) \ block-ext Line 165  User scr ( -- a-addr ) \ block-ext
         i 2 .r space scr @ block i 64 * chars + 64 type cr          i 2 .r space scr @ block i 64 * chars + 64 type cr
     loop ;      loop ;
   
 : (source)  ( -- addr len )  : (source)  ( -- c-addr u )
   blk @ ?dup    blk @ ?dup
   IF    block chars/block    IF    block chars/block
   ELSE  tib #tib @    ELSE  tib #tib @
   THEN ;    THEN ;
   
 ' (source) IS source  ' (source) IS source ( -- c-addr u ) \ core
   \G @var{c-addr} is the address of the input buffer and @var{u} is the
   \G number of characters in it.
   
 : load ( i*x n -- j*x ) \ block  : load ( i*x n -- j*x ) \ block
   push-file    push-file

Removed from v.1.21  
changed lines
  Added in v.1.23


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>