JSS Device DataBusNoError
This device simulates a basic data BUS. It sends data between different devices. Depending on the devices attached, it can be used as a memory BUS or an I/O BUS.
Options
- log_misses - Will record in the log file attempts to access (read or write) addresses for which there are no devices attached. This is particularly useful when developing new devices or running an unknown software.
- suspend_on_access - Comma separated list of addresses. Accessing one of these addresses will cause the simulation to become suspended (similar to a CPU breakpoint). Useful for debugging programs.
Device Connections
- attachDataDevice - Allows attaching a device that provides data, such as a RAM, ROM, PROM, port-mapped or memory mapped I/O device.
Supported attributes:
- start - Start address as seen by the bus
- end - End address as seen by the bus
- offset - This value will be subtracted from the value seen by the bus
- name - (optional) A name for this connection
- enabled - (optional) Boolean value indicating if this connection is enabled. This option can be toggled by a control device, if present, based on the connection name.
Example:
{"type":"attachDataDevice", "src":"MemoryBUS", "dev":"ROM", "start":59392,"end":61439,"offset":59392, "name":"bootrom", "enabled":true},
This example attaches a device called "ROM" (presumably a ROM device) starting at address 59392 (E800h) until address 61439 (EFFFh) with an offset of 59392. This means that devices accessing any address between E800h - EFFFh on this bus will connect to the ROM. Also, the ROM has addresses between 0-7FFh. The mapping between the two address spaces is performed by means of the "offset", which is subtracted from the specified address.
Implementation
https://github.com/ComputingMongoose/JavaSystemSimulator/blob/main/src/jss/devices/bus/impl/DataBusNoError.javaExample configuration
{
"name":"MemoryBUS",
"type":"DataBusNoError",
"configuration":[
{"key":"log_misses","value":1}
]
}