JSS Device ROMW8D8
This device simulates a Read Only Memory (ROM) with word size 8-bits and data bus connection 8-bits. This type of memory is probably the most widely used in 8-bit architectures (and newer), such as the Intel 8008 and the Intel 8080. It is similar to the MemoryW8D8 device, but does not allow data to be written under program control. It should be initialized from a HEX or BINARY file.
Options
- initialization_policy - Decides how this memory is initialized. Values:
- ZERO - All locations are initialized with zero.
- RANDOM - Locations are initialized with random values.
- FIXED - Locations are initialized with a fixed value, set by the "fixed_value" option.
- VALUES - Individual values are specified in the "initialization_values" option.
- fixed_value - Value used to initialize memory when the "initialization_policy" is set to "FIXED".
- initialization_values - List of values used to initialize the memory, separated by space or comma. Only the number of values present in the list are used (some memory locations may remain uninitialized if the list has less values than the memory size).
- load_hex - Specifies a HEX file that will be read in the memory.
- load_hex_offset - This value is subtracted from the address specified in the HEX file.
- load_bin - Specifies a BINARY file that will be read in the memory.
- load_bin_offset - Specifies the starting address for the BINARY file. Its use differs from the HEX file, since the BINARY file does not have any address specified internally.
- invert_nibbles - When loading either a HEX file or a BINARY file, it will invert the nibbles. This may be useful with 4-bit memory if the values were stored in the HEX file in reverse order.
Implementation
https://github.com/ComputingMongoose/JavaSystemSimulator/blob/main/src/jss/devices/memory/impl/ROMW8D8.javaExample configuration
{
"name":"ROM",
"type":"ROMW8D8",
"configuration":[
{"key":"size", "value":6144},
{"key":"initialization_policy", "value":"ZERO"},
{"key":"load_hex", "value":"monIIv13_diagIIv13_as.hex"},
{"key":"load_hex_offset", "value":59392}
]
}