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 ! |