Diff for /gforth/blocks.fs between versions 1.25 and 1.27

version 1.25, 1999/05/21 20:35:35 version 1.27, 1999/11/08 22:01:07
Line 45  Variable last-block Line 45  Variable last-block
 $20 Value buffers  $20 Value buffers
   
 User block-fid  User block-fid
   User offset   0 offset !  \ store 1 here fore 0.4.0 compatibility
   
 : block-cold ( -- )  : block-cold ( -- )
     block-fid off  last-block off      block-fid off  last-block off
Line 87  Defer flush-blocks ( -- ) \ gforth Line 88  Defer flush-blocks ( -- ) \ gforth
   
 : block-position ( u -- ) \ block  : block-position ( u -- ) \ block
     \G Position the block file to the start of block @i{u}.      \G Position the block file to the start of block @i{u}.
     1- chars/block chars um* get-block-fid reposition-file throw ;      offset @ - chars/block chars um* get-block-fid reposition-file throw ;
   
 : update ( -- ) \ block  : update ( -- ) \ block
     \G Mark the current block buffer as dirty.      \G Mark the current block buffer as dirty.
Line 127  Defer flush-blocks ( -- ) \ gforth Line 128  Defer flush-blocks ( -- ) \ gforth
   
 ' flush IS flush-blocks  ' flush IS flush-blocks
   
 : get-buffer ( n -- a-addr ) \ gforth  : get-buffer ( u -- a-addr ) \ gforth
     buffers mod buffer-struct %size * block-buffers @ + ;      0 buffers um/mod drop buffer-struct %size * block-buffers @ + ;
   
 : block ( u -- a-addr ) \ block- block  : block ( u -- a-addr ) \ block- block
     \G If a block buffer is assigned for block @i{u}, return its      \G If a block buffer is assigned for block @i{u}, return its
Line 137  Defer flush-blocks ( -- ) \ gforth Line 138  Defer flush-blocks ( -- ) \ gforth
     \G @code{update}d, transfer the contents to mass storage), read      \G @code{update}d, transfer the contents to mass storage), read
     \G the block into the block buffer and return its start address,      \G the block into the block buffer and return its start address,
     \G @i{a-addr}.      \G @i{a-addr}.
     dup 0= -35 and throw      dup offset @ u< -35 and throw
     dup get-buffer >r      dup get-buffer >r
     dup r@ buffer-block @ <>      dup r@ buffer-block @ <>
     r@ buffer-fid @ block-fid @ <> or      r@ buffer-fid @ block-fid @ <> or
Line 168  Defer flush-blocks ( -- ) \ gforth Line 169  Defer flush-blocks ( -- ) \ gforth
     block ;      block ;
   
 User scr ( -- a-addr ) \ block-ext  User scr ( -- a-addr ) \ block-ext
     \G USER VARIABLE: @i{a-addr} is the address of a cell containing      \G @code{User} variable -- @i{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 !

Removed from v.1.25  
changed lines
  Added in v.1.27


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