BLOCK-EXT Block + extensions

Historically Forth was implemented on small computers as an operating system in its own right. Mass storage was not organized in files but as a sequence of 1 KB blocks. A block was addressed with a block number. This way a diskette drive provided a few hundred blocks and if you had a fixed disk you simply had thousands of those blocks.

Both program text and arbitrary data can be stored in blocks. In order to hold source text the 1K block is treated as having 16 lines with 64 charactes each. This is often referred to as a 'screen'.

When loading (i.e. interpreting) a block with source text it is simply taking to be a single line of 1024 characters. The only exception to this is the word \ (begin comment to end of line) which skips text up to the end of a 64-char line in a block.

dict-variable ansi

no documentation available   (input.blk)

  • see the ANSI Documentation of this word : ansi

reference: input.blk in ../src/block.c:0135, export DV BLK

BLOCK ( u -- addr )  
load the specified block into a block buffer and return the address of that block buffer - see also BLOCK

reference: p4_block in ../src/block.c:0050, export CO BLOCK

BUFFER ( u -- addr )  
get the block buffer address for the specified block - if it had not been loaded already it is not filled with data from the disk unlike BLOCK does.

reference: p4_buffer in ../src/block.c:0061, export CO BUFFER

unassign all block buffers, does not even UPDATE

reference: p4_empty_buffers in ../src/block.c:0071, export CO EMPTY-BUFFERS

FLUSH ( -- )  
call SAVE-BUFFERS and then unassign all block buffers with EMPTY-BUFFERS

reference: p4_flush in ../src/block.c:0080, export CO FLUSH

LIST ( u -- )  
display the block

reference: p4_list in ../src/block.c:0089, export CO LIST

LOAD ( u -- )  
INTERPRET the specified BLOCK

reference: p4_load in ../src/block.c:0097, export CO LOAD

write all modified buffer to the disk, see UPDATE and FLUSH

reference: p4_save_buffers in ../src/block.c:0107, export CO SAVE-BUFFERS

dict-variable ansi

no documentation available   (scr)

  • see the ANSI Documentation of this word : ansi

reference: scr in ../src/block.c:0143, export DV SCR

THRU ( u1 u2 -- )  
LOAD a number of block in sequence.

reference: p4_thru in ../src/block.c:0115, export CO THRU

UPDATE ( -- )  
mark the current block buffer as modified, see FLUSH

reference: p4_update in ../src/block.c:0127, export CO UPDATE