(02-24-2024 02:09 AM)BitWiz Wrote: I'm a tad bit confused. What is the point of having the 32K hard addressed image and the 16K image?
FORTH is a low level language that was designed to over the hardware.
The 16K lex file mainly serve as a bridge between the BASIC system and the Forth system.
Excerpt from the Forth IMS
Quote:The functioning of FORTH in the HP-71 is based on absolute addresses.
The ROM dictionary is hard configured to always live at 0xE0000.
A problem arises when we examine the positioning of FORTH system variables and user definitions.
The entire RAM address space is managed by the BASIC O/S; this system works with entities called files.
The FORTH system had to respect the integrity of BASIC and therefore all FORTH system variables and user definitions have to exist within the franework of a file.
However, files move in RAM and, worse, their movement is unpredictable.
To solve these problems, FORTHRAM is always positioned at the beginning (lowest memory address) of the RAM file chain.
Directly beneath the beginning of file memory are the BASIC O/S configuration buffers (see the HP-71 IDS for a description of these buffers).
These buffers have a minimum and a maximum size.
Therefore it is possible to identify the lowest possible start address for a file in the file chain (2FA01) and the highest possible start address (2FAD3).
To this latter address we add 25 (hex) nibbles for file overhead (file name, time, creation date, etc.) plus 5 nibbles of storage for FORTH's purposes.
This gives us an address at which we can always count on being able to use for FORTH's variables, 2FAFD.
etc.
References: