Memory
The HAL provides access to the memory-related features of the hardware (such as paging), and also some minimal memory management, mostly for the purpose of Init and initial UOS startup. Memory may consist of several segments of varying characteristics. For instance, most systems have some of their physical memory address range mapped to ROM (such as the BIOS on PCs), whereas other memory is read/write and available for general use. The HAL considers each contiguous segment of the memory address space that is of the same general type as a separate area, which is assigned a unique index.
The HAL passes information about memory back to UOS using the following structure:
type TMemory_Info = packed record
Memory_Type : word ;
Low : int64 ;
High : int64
end ;
This information is only provided on physical memory, and is described below:
Item |
Description |
Memory_Type |
Type of memory. See Memory types, below. |
Low |
Lowest address of this segment |
High |
Highest address of this segment |
Memory types have the following values:
Value |
Mnuemonic |
Description |
0 |
MT_Non_Existant |
Non-existant memory |
1 |
MT_RAM |
Random access read/write memory |
2 |
MT_ROM |
Read-only memory |
3 |
MT_WOM |
Write-only memory |