Skip to content

MRV11-D — universal PROM module

The MRV11-D (M8578) is DEC’s universal PROM module for the QBUS: sixteen sockets of byte-wide ROM, an address decoder and a page control register, and nothing else. A machine whose processor has no boot ROM gets one by carrying it. QUniLator lists it as MRV11D, of type MRV11-D, with its sockets filled with the MXV11-B2 bootstrap set DEC supplied for it, which boots MSCP disks, the RL01/RL02, the RX01/RX02 and the TU58. The model follows EK-MRV1D-UG-001.

Bootstrap windowsWindow 0 at 773000 and window 1 at 765000, 512 bytes each, each showing one page of the array
Page control register777520: the low byte selects the page window 0 shows, the high byte window 1’s. Power-up and INIT clear it, so both windows show page 0
Direct addressingWith directmode, the whole array in memory space from startaddr
Array16 KB of MXV11-B2 code in 32 pages, or what romfile programs

A page beyond the installed array answers nothing, as on the real module. Page mode addressing, through a second page control register in memory space, and the DATO-inhibit jumper are not modelled.

  1. Enable MRV11D on the Configurations screen. As it comes, it answers the bootstrap windows with the MXV11-B2 set.
  2. Start the processor at 173000. A KDJ11-A whose power-up option starts it at 173000 runs the bootstrap by itself on every restart.

A processor that answers 773000 and 777520 itself needs bootstrap off and the array in memory space with directmode.

The sockets and the strapping can be changed only while the card is disabled.

  • On a KDJ11-A, which has no boot ROM of its own, the MXV11-B2 set boots the machine from an emulated MSCP disk with no console input.

What a configuration stores and an operator sets.

ParameterShortValueDefaultWhat it is
chipsizecsnumber, bytes8192size of each device: 2048 to 32768
chipsetscnnumber1populated chip sets, 1 to 8
romfilerfROM fileemptyROM image or MACRO-11 listing from roms/; empty = MXV11-B2 set
bootstrapbs0 or 11answer the bootstrap windows at 773000 and 765000
directmodedm0 or 10answer the whole array in memory space at startaddr
startaddrsaoctal0first address of the array in memory space

What the device reports as it runs. A configuration does not store these.

ParameterShortValueWhat it is
accesslampacl0 or 1machine is reading the module
contentscotextwhat the sockets hold
arraysizeastextsize of the array
windowswitextpages the bootstrap windows show
rangeratextaddresses the array answers in memory space

It also carries the parameters under parameters every card on the bus has.

The sockets: how large each device is, in bytes, and how many of the eight chip sets are populated. A chip set is a low-byte and a high-byte device, so it holds as many words as one device holds bytes, and the array is chipsize × chipsets words. The device size is 2048, 4096, 8192, 16384 or 32768. The default, one set of 8192-byte devices, is the MXV11-B2 set: 16 KB in 32 pages of 512 bytes.

What the sockets are programmed with: a file in the board’s image tree, usually in roms/. A .lst file is read as a MACRO-11 listing, and its lowest address becomes the first word of the array, so a bootstrap assembled at 173000 is page 0. Any other file is a dump of the array, low and high byte of each word in order, as the two devices of a chip set supply them; a short file leaves the rest unprogrammed, reading 177777. A file larger than the array is refused. Empty: the MXV11-B2 bootstrap set DEC supplied for this module, which boots MSCP disks, the RL01/RL02, the RX01/RX02 and the TU58.

Lit while the machine reads the module, through either window or in memory space: the bootstrap running.

The bootstrap: two 512-byte windows in the I/O page, window 0 at 773000 and window 1 at 765000, and the page control register at 777520 whose low byte selects the page of the array window 0 shows and whose high byte selects window 1’s. Power-up and INIT clear the register, so the machine comes up looking at page 0 through both, and starting it at 173000 runs the bootstrap. A page beyond the array answers nothing. Turn it off for a processor that answers 773000 and 777520 itself, and reach the array through directmode. The card refuses to be enabled with both off, since it would answer nothing.

Direct addressing: the whole array in memory space, from startaddr, which has to be on a 4 KB boundary, with the array ending below the I/O page. Enabling the card probes the range first and refuses when anything on the bus answers there. The array is served out of the board’s memory through the range a VCB01 framebuffer also takes, so a machine carries one of the two. The range answers writes too.

What the module carries: contents names what the sockets hold, the MXV11-B2 set or the file they were programmed from; arraysize the size of the array and how many bootstrap pages it makes; windows the pages the two bootstrap windows show, or off; range the addresses the array answers in memory space, or off.