- Proposals Process
- 200x Membership
- 1 Introduction
- 2 Terms, notation, and references
- 3 Usage requirements
- 4 Documentation requirements
- 5 Compliance and labeling
- 6 Glossary
- 7 The optional Block word set
- 8 The optional Double-Number word set
- 9 The optional Exception word set
- 10 The optional Facility word set
- 11 The optional File-Access word set
- 12 The optional Floating-Point word set
- 13 The optional Locals word set
- 14 The optional Memory-Allocation word set
- 15 The optional Programming-Tools word set
- 16 The optional Search-Order word set
- 17 The optional String word set
- 18 The optional Extended-Character word set
- Annex A: Rationale
- Annex B: Bibliography
- Annex C: Compatibility analysis
- Annex D: Portability guide
- Annex E: Reference Implementations
- Annex F: Test Suite
- Annex H: Alphabetic list of words
7 The optional Block word set
7.2 Additional terms
1024 characters of data on mass storage,
designated by a block number.
- block buffer:
- A block-sized region of data space where a block is made temporarily available for use. The current block buffer is the block buffer most recently accessed by BLOCK, BUFFER, LOAD, LIST, or THRU.
7.3 Additional usage requirements
7.3.1 Data spaceA program may access memory within a valid block buffer.
See: 3.3.3 Data space.
7.3.2 Block buffer regions
- displays characters on the user output device, such as TYPE or EMIT;
- controls the user output device, such as CR or AT-XY;
- receives or tests for the presence of characters from the user input device such as ACCEPT or KEY;
- waits for a condition or event, such as MS or EKEY;
- manages the block buffers, such as FLUSH, SAVE-BUFFERS, or EMPTY-BUFFERS;
- performs any operation on a file or file-name directory that implies I/O, such as REFILL or any word that returns an ior;
- implicitly performs I/O, such as text interpreter nesting and un-nesting when files are being used (including un-nesting implied by THROW).
If the input source is a block, these restrictions also apply to the address returned by SOURCE. Block buffers are uniquely assigned to blocks.
7.3.3 ParsingThe Block word set implements an alternative input source for the text interpreter. When the input source is a block, BLK shall contain the non-zero block number and the input buffer is the 1024-character buffer containing that block.
A block is conventionally displayed as 16 lines of 64 characters.
See: 3.4.1 Parsing.
7.3.4 Possible action on an ambiguous conditionSee: 3.4.4 Possible actions on an ambiguous condition.
- A system with the Block word set may set interpretation state and interpret a block.
7.4 Additional documentation requirements
7.4.1 System documentation
188.8.131.52 Implementation-defined options
- the format used for display by 184.108.40.2060 LIST (if implemented);
- the length of a line affected by 220.127.116.115 \ (if implemented).
18.104.22.168 Ambiguous conditions
- Correct block read was not possible;
- I/O exception in block transfer;
- Invalid block number (7.6.1.0800 BLOCK, 7.6.1.0820 BUFFER, 22.214.171.1240 LOAD);
- A program directly alters the contents of 7.6.1.0790 BLK;
- No current block buffer for 126.96.36.1990 UPDATE.
188.8.131.52 Other system documentation
- any restrictions a multiprogramming system places on the use of buffer addresses;
- the number of blocks available for source text and data.
7.4.2 Program documentation
- the number of blocks required by the program.
7.5 Compliance and labeling
7.5.1 Forth-2012 systemsThe phrase "Providing the Block word set" shall be appended to the label of any Standard System that provides all of the Block word set.
The phrase "Providing name(s) from the Block Extensions word set" shall be appended to the label of any Standard System that provides portions of the Block Extensions word set.
The phrase "Providing the Block Extensions word set" shall be appended to the label of any Standard System that provides all of the Block and Block Extensions word sets.
7.5.2 Forth-2012 programsThe phrase "Requiring the Block word set" shall be appended to the label of Standard Programs that require the system to provide the Block word set.
The phrase "Requiring name(s) from the Block Extensions word set" shall be appended to the label of Standard Programs that require the system to provide portions of the Block Extensions word set.
The phrase "Requiring the Block Extensions word set" shall be appended to the label of Standard Programs that require the system to provide all of the Block and Block Extensions word sets.
7.6.1 Block words
- 7.6.1.0790 BLK
- 7.6.1.0800 BLOCK
- 7.6.1.0820 BUFFER
- 184.108.40.2060 EVALUATE
- 220.127.116.119 FLUSH
- 18.104.22.1680 LOAD
- 22.214.171.1240 SAVE-BUFFERS
- 126.96.36.1990 UPDATE