mirror of
https://github.com/simh/simh.git
synced 2026-01-25 19:56:25 +00:00
PDP11 & Unibus/Qbus VAXen: Document autoconfigure disabling
Historically, if a configuration file explicitly set either a DEVICE's ADDRESS or VECTOR, autoconfiguration was immediately disabled. This change defers disabling autoconfigure until an explicitly setting of a DEVICE address or VECTOR actually changes what had been previously configured by autoconfigure.
This commit is contained in:
@@ -3941,6 +3941,8 @@ return r;
|
||||
|
||||
t_stat cpu_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, const char *cptr)
|
||||
{
|
||||
DEVICE *bus = (find_dev ("QBA") != NULL) ? find_dev ("QBA") : find_dev ("UBA");
|
||||
|
||||
fprintf (st, "The ");cpu_print_model (st);fprintf (st, " CPU help\n\n");
|
||||
fprintf (st, "CPU options include the size of main memory.\n\n");
|
||||
if (dptr->modifiers) {
|
||||
@@ -4017,5 +4019,46 @@ fprintf (st, " sim> SHOW CPU INSTRUCTIONS display the instructoin groups t
|
||||
fprintf (st, " implemented and emulated\n");
|
||||
fprintf (st, " sim> SHOW CPU -V INSTRUCTIONS disable the list of instructions implemented\n");
|
||||
fprintf (st, " and emulated\n\n");
|
||||
fprintf (st, "I/O Device Addressing\n\n");
|
||||
if (bus) {
|
||||
fprintf (st, "%s I/O space and vector space are not large enough to allow all\n", (strcmp (bus->name, "QBA") == 0) ? "Qbus" : "Unibus");
|
||||
fprintf (st, "theoretically possible devices to be configured simultaneously at\n");
|
||||
fprintf (st, "fixed addresses. Instead, many devices have floating addresses and\n");
|
||||
fprintf (st, "vectors; that is, the assigned device address and vector depend on the\n");
|
||||
fprintf (st, "presence of other devices in the configuration:\n\n");
|
||||
fprintf (st, " DZ11 all instances have floating addresses\n");
|
||||
fprintf (st, " DHU11/DHQ11 all instances have floating addresses\n");
|
||||
fprintf (st, " RL11 first instance has fixed address, rest floating\n");
|
||||
fprintf (st, " RX11/RX211 first instance has fixed address, rest floating\n");
|
||||
fprintf (st, " DEUNA/DELUA first instance has fixed address, rest floating\n");
|
||||
fprintf (st, " MSCP disk first instance has fixed address, rest floating\n");
|
||||
fprintf (st, " TMSCP tape first instance has fixed address, rest floating\n\n");
|
||||
fprintf (st, "In addition, some devices with fixed I/O space addresses have floating\n");
|
||||
fprintf (st, "vector addresses. DCI/DCO and DLI/DLO have floating vector addresses.\n\n");
|
||||
fprintf (st, "To maintain addressing consistency as the configuration changes, the\n");
|
||||
fprintf (st, "simulator implements DEC's standard I/O address and vector autoconfiguration.\n");
|
||||
fprintf (st, "This allows the user to enable or disable devices without needing to\n");
|
||||
fprintf (st, "manage I/O addresses and vectors. For example, if RY is enabled while\n");
|
||||
fprintf (st, "RX is present, RY is assigned an I/O address in the floating I/O space\n");
|
||||
fprintf (st, "range; but if RX is disabled and then RY is enabled, RY is assigned the\n");
|
||||
fprintf (st, "fixed \"first instance\" I/O address for floppy disks.\n\n");
|
||||
fprintf (st, "Autoconfiguration cannot solve address conflicts between devices with\n");
|
||||
fprintf (st, "overlapping fixed addresses. For example, with default I/O page addressing,\n");
|
||||
fprintf (st, "the PDP-11 can support either a TM11 or a TS11, but not both, since they\n");
|
||||
fprintf (st, "use the same I/O addresses.\n\n");
|
||||
fprintf (st, "In addition to autoconfiguration, most devices support the SET <device>\n");
|
||||
fprintf (st, "ADDRESS command, which allows the I/O page address of the device to be\n");
|
||||
fprintf (st, "changed, and the SET <device> VECTOR command, which allows the vector of\n");
|
||||
fprintf (st, "the device to be changed. Explicitly setting the I/O address or vector of\n");
|
||||
fprintf (st, "any device DISABLES autoconfiguration for the entire system. As\n");
|
||||
fprintf (st, "a consequence, when autoconfiguration is disabled, the user may have to\n");
|
||||
fprintf (st, "manually configure all remaining devices in the system that are explicitly\n");
|
||||
fprintf (st, "enabled after autoconfiguration has been disabled. Autoconfiguration can\n");
|
||||
fprintf (st, "be restored for the entire system with the SET %s AUTOCONFIGURE command.\n\n", bus->name);
|
||||
fprintf (st, "The current I/O map can be displayed with the SHOW %s IOSPACE command.\n", bus->name);
|
||||
fprintf (st, "Addresses that have set by autoconfiguration are marked with an asterisk (*).\n");
|
||||
fprintf (st, "All devices support the SHOW <device> ADDRESS and SHOW <device> VECTOR\n");
|
||||
fprintf (st, "commands, which display the device address and vector, respectively.\n\n");
|
||||
}
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user