Difference between revisions of "M9301 ROM"

From Computer History Wiki
Jump to: navigation, search
m
m (External links: typos)
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
The '''M9301 [[Read-only memory|ROM]]''' card was a [[UNIBUS]] card for the [[PDP-11]] series of computers. It contained 512 words of memory, all readable direction from the UNIBUS (i.e. not windowed). The M9301 also provided [[termination]] for the UNIBUS.
+
[[Image:M9301.jpg|250px|thumb|right|M9301 card]]
  
It was a [[DEC card form factor|dual]] format card, intended for use in the two top (AB) sections of a [[Modified UNIBUS Device|MUD]] slot, or in a UNIBUS in/out slot.  
+
The '''M9301 ROM''' card was a [[UNIBUS]] [[Read-only memory|ROM]] card for the [[PDP-11]] series of computers. It contained 512 words of memory, all readable directly from the UNIBUS (i.e. not windowed). A [[Dual Inline Package|DIP]] switch bank provided configuration. The M9301 also provided [[terminator|termination]] for the UNIBUS.
  
Most versions were used for [[bootstrap|bootstrapping]] the machine, from [[disk]], paper and magnetic tape, etc, but it could be use for any purpose; most DEC-supplied pre-programmed versions included a console emulator, and basic diagnostics.
+
It was a [[DEC card form factor|dual]] format card, intended for use in the [[DEC edge connector contact identification|two top (AB) connectors]] of a [[Modified UNIBUS Device|MUD]] slot, or in a UNIBUS in/out slot.  
  
It used four 4-bit wide [[PROMs]] to hold the data. The board occupied addresses 773000-773776 and 765000-765776; a configuration switch allowed the lower block to be disabled.
+
Most versions were used for [[bootstrap|bootstrapping]] the machine, from [[disk]], [[paper tape]], [[magnetic tape]], etc, but it could be use for any purpose; most [[Digital Equipment Corporation|DEC]]-supplied pre-programmed versions included a console emulator, and basic [[diagnostic]]s. A command to boot the machine could be given in the emulator, using a symbolic [[DEC bootstrap device codes|device code]].
  
Other configuration switches controlled which address the CPU jumped to on power on (a clever kludge, controlled by one configuration switch, allowed the board to force the CPU to read its power-on PC and PS from the ROM, at a location set by other configuration switches, thereby allowing auto-boot on power-on).
+
It used four 4-bit wide [[PROM]]s to hold the data. The board occupied [[address]]es 773000-773776 and 765000-765776; a configuration switch allowed the lower block to be disabled.
 +
 
 +
Other configuration switches controlled which address the [[Central Processing Unit|CPU]] jumped to on power on (a clever kludge, controlled by another configuration switch, allowed the board to force the CPU to read its power-on [[Program Counter|PC]] and [[Processor Status Word|PS]] from the ROM, at a location set by still other configuration switches, thereby allowing auto-boot on power-on).
  
 
The board came in several main variants, designated M9301-Yx (where 'x' is a capital letter, starting with 'A') came pre-programmed from DEC to perform various functions.
 
The board came in several main variants, designated M9301-Yx (where 'x' is a capital letter, starting with 'A') came pre-programmed from DEC to perform various functions.
Line 15: Line 17:
 
==Configuration switches==
 
==Configuration switches==
  
The board contains a single 10-switch [[DIP]] switch, S1, which controls the board's behaviour.
+
The board contains a single 10-switch DIP switch, S1, which controls the board's behaviour.
  
 
If S1-1 is set to 'off' (open), the low bank of memory on the card (765000-765777) is disabled; when 'on' (closed) it is enabled.
 
If S1-1 is set to 'off' (open), the low bank of memory on the card (765000-765777) is disabled; when 'on' (closed) it is enabled.
  
If S1-2 is 'off', the system will power-up normally; if 'on', the CPU will obtain its new PC/PS pair from locations 173024 on the card, which contain a mixture of bits from the ROM (high bits) and the configuration switch (low bits), which can be used to force the CPU to start executing in the ROM on power-on.
+
If S1-2 is 'off', the system will power-up normally; if 'on', the CPU will obtain its new PC/PS pair from locations 173024 on the card, which contain a mixture of bits from the ROM (high bits) and the configuration switch (low bits), which can be used to force the CPU to start executing in the ROM on power-on. (This is done by asserting the appropriate high address lines on the UNIBUS for the first two bus cycles after power-up; a technique pioneered by the [[BM873 ROM]].)
  
 
Switches S1-3 through S1-10 contain bits 8 through 1 of the power-on PC (above); the exact meaning will depend on the board variant (below).
 
Switches S1-3 through S1-10 contain bits 8 through 1 of the power-on PC (above); the exact meaning will depend on the board variant (below).
Line 31: Line 33:
 
==Variants==
 
==Variants==
  
* M9301-YA - [[PDP-11/04]] and [[PDP-11/34]] [[OEM]] version; had basic diagnostics, console emulator, booted from various devices ([[RK11]] and [[RP11]] disks, [[TC11]] [[DECtape]], [[TM11]] magnetic tape, serial line, high-speed paper-tape reader, [[TA11]] casette tape, [[RX11]] 8-inch floppy), supported auto-boot on power on, and also power-fail restart
+
* M9301-YA - (ROMs 034A9, 035A9, 036A9, 037A9) - [[PDP-11/04]] and [[PDP-11/34]] [[Original Equipment Manufacturer|OEM]] version; had basic diagnostics, console emulator, booted from various devices ([[RK11 disk controller|RK11]] and [[RP11 disk controller|RP11]] disks, [[TC11]] [[DECtape]], [[TM11]] magnetic tape, serial line, [[PC11]] high-speed paper-tape reader, [[TA11]] casette tape, [[RX11 floppy disk controller|RX11]] 8-inch [[floppy disk]]), supported auto-boot on power on, and also power-fail restart
  
* M9301-YB - /04 and /34 end user version; had basic diagnostics, console emulator, booted from various devices (RK11, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), also power-fail restart
+
* M9301-YB - (ROMs 038A9, 039A9, 040A9, 041A9) - /04 and /34 end user version; had basic diagnostics, console emulator, booted from various devices (RK11, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), also power-fail restart
  
* M9301-YC - [[PDP-11/70]] version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, [[RK06]], RJS, RJP, TJU, RX11)
+
* M9301-YC - [[PDP-11/70]] version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, [[RK611 disk controller|RK611]], RJS, RJP, TJU, RX11)
  
 
* M9301-YD - All models; contained code to allow a terminal attached to the machine to be a terminal on some other line; also had boot code for RX11 and [[DDCMP]]
 
* M9301-YD - All models; contained code to allow a terminal attached to the machine to be a terminal on some other line; also had boot code for RX11 and [[DDCMP]]
Line 41: Line 43:
 
* M9301-YE - All models; had basic diagnostics, console emulator; booted from low speed paper tape or [[DECnet]]; supported auto-boot on power on, and also power-fail restart
 
* M9301-YE - All models; had basic diagnostics, console emulator; booted from low speed paper tape or [[DECnet]]; supported auto-boot on power on, and also power-fail restart
  
* M9301-YF - All models (auto-start not available on [[PDP-11/45]], [[PDP-11/50]]); had basic diagnostics, console emulator, booted from various devices (RK11, RK06, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), supported auto-boot on power on, and also power-fail restart
+
* M9301-YF - (ROMs 480A9, 481A9, 482A9, 483A9) - All models (auto-start not available on [[PDP-11/45]], [[PDP-11/50]]); had basic diagnostics, console emulator, booted from various devices (RK11, RK06, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), supported auto-boot on power on, and also power-fail restart
  
* M9301-YH - /60 and /70 version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, RK06, RJS, RJP, TJU, RX11, high-speed paper-tape reader)
+
* M9301-YH - (ROMs 332A9, 333A9, 334A9, 335A9) - /60 and /70 version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, RK06, RJS, RJP, TJU, RX11, high-speed paper-tape reader)
  
 
* M9301-YJ - All models; had basic diagnostics, console emulator; booted from DECnet, and various devices (RX11, TU, serial line, DMC), also power-fail restart
 
* M9301-YJ - All models; had basic diagnostics, console emulator; booted from DECnet, and various devices (RX11, TU, serial line, DMC), also power-fail restart
 +
 +
==Entry points==
 +
 +
DEC ROM programs can be started manually, on machines with a front panel which allow that. Useful entry points (all in octal) are given here.
 +
 +
===M9301-YA===
 +
 +
{| class="wikitable"
 +
! Location !! Function
 +
|-
 +
| 173000 || Console emulator w/ CPU Diagnostics
 +
|-
 +
| 173002 || Diagnostics, then emulate power-fail restart trap through 24
 +
|-
 +
| 173030 || Console emulator (no diagnostics)
 +
|-
 +
| 173440 || RK11 Boot w/ Diagnostics
 +
|-
 +
| 173442 || RK11 Boot (no diagnostics)
 +
|-
 +
| 173466 || RP11 Boot w/ Diagnostics
 +
|-
 +
| 173470 || RP11 Boot (no diagnostics)
 +
|-
 +
| 173506 || TC11 Boot w/ Diagnostics
 +
|-
 +
| 173570 || TC11 Boot (no diagnostics)
 +
|-
 +
| 173524 || TM11 Boot w/ Diagnostics
 +
|-
 +
| 173526 || TM11 Boot (no diagnostics)
 +
|-
 +
| 173624 || TA11 Boot w/ Diagnostics
 +
|-
 +
| 173626 || TA11 Boot (no diagnostics)
 +
|-
 +
| 173636 || RX11 Boot w/ Diagnostics
 +
|-
 +
| 173640 || RX11 Boot (no diagnostics)
 +
|-
 +
| 173650 || DL11 Boot w/ Diagnostics
 +
|-
 +
| 173652 || DL11 Boot (no diagnostics)
 +
|-
 +
| 173660 || PC11 Boot w/ Diagnostics
 +
|-
 +
| 173662 || PC11 Boot (no diagnostics)
 +
|}
 +
 +
Note that switch S1-1 must be on for all the choices ''with'' diagnostics.
 +
 +
===M9301-YB===
 +
 +
{| class="wikitable"
 +
! Location !! Function
 +
|-
 +
| 173000 || Console emulator w/ CPU Diagnostics
 +
|-
 +
| 173002 || Diagnostics, then emulate power-fail restart trap through 24
 +
|-
 +
| 173226 || Console emulator (no diagnostics)
 +
|}
 +
 +
===M9301-YF===
 +
 +
{| class="wikitable"
 +
! Location !! Function
 +
|-
 +
| 165404/173000* || Console emulator w/ CPU Diagnostics
 +
|-
 +
| 165406/173002* || Console emulator (no diagnostics)
 +
|-
 +
| 173040 || RP11 Boot w/ Diagnostics
 +
|-
 +
| 173042 || RP11 Boot (no diagnostics)
 +
|-
 +
| 173054 || TU16 Boot w/ Diagnostics
 +
|-
 +
| 173056 || TU16 Boot (no diagnostics)
 +
|-
 +
| 173144 || RK11 Boot w/ Diagnostics
 +
|-
 +
| 173146 || RK11 Boot (no diagnostics)
 +
|-
 +
| 173174 || TC11 Boot w/ Diagnostics
 +
|-
 +
| 173176 || TC11 Boot (no diagnostics)
 +
|-
 +
| 173224 || RP04/5/6 w/ Diagnostics
 +
|-
 +
| 173226 || RP04/5/6 Boot (no diagnostics)
 +
|-
 +
| 173364 || DL11 Boot w/ Diagnostics
 +
|-
 +
| 173366 || DL11 Boot (no diagnostics)
 +
|-
 +
| 173440 || RS03/4 Boot w/ Diagnostics
 +
|-
 +
| 173442 || RS03/4 Boot (no diagnostics)
 +
|-
 +
| 173474 || TM11 Boot w/ Diagnostics
 +
|-
 +
| 173476 || TM11 Boot (no diagnostics)
 +
|-
 +
| 173544 || RX11 Boot w/ Diagnostics
 +
|-
 +
| 173546 || RX11 Boot (no diagnostics)
 +
|-
 +
| 173644 || Diagnostics, then emulate power-fail restart trap through 24
 +
|-
 +
| 173646 || Emulate power-fail restart trap through 24
 +
|-
 +
| 173662 || RK611 Boot w/ Diagnostics
 +
|-
 +
| 173664 || RK611 Boot (no diagnostics)
 +
|-
 +
| 173704 || PC11 Boot w/ Diagnostics
 +
|-
 +
| 173706 || PC11 Boot (no diagnostics)
 +
|}
 +
 +
Note that switch S1-1 must be on for all the choices ''with'' diagnostics, and also the console emulation and power-fail restart choices.
 +
 +
''*'' - The manual gives the 16540x locations for manual start locations, but the configuration DIP switch settings correspond to the 17300x locations.
  
 
==See also==
 
==See also==
Line 51: Line 177:
 
* [[UNIBUS boot ROMs]]
 
* [[UNIBUS boot ROMs]]
  
==Reference==
+
==External links==
 +
 
 +
* [http://www.bitsavers.org/pdf/dec/unibus/EK-M9301-TM-001_M9301_Bootstrap_Terminator_Module_Maintenance_and_Operators_Manual_Jun77.pdf M9301 bootstrap/terminator module maintenance and operator's manual]  (EK-M9301-TM-001)
 +
* [http://www.bitsavers.org/pdf/dec/unibus/M9301_RevV_Engineering_Drawings_Dec77.pdf UNIBUS Terminator/Bootstrap Engineering Drawings]
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/ROMs/M9301-YA.mac Disassembled and commented M9301-YA ROM code]
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/ROMs/M9301-YB.mac  Disassembled and partially commented M9301-YB ROM code] 
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/ROMs/M9301-YF.mac  Disassembled and partially commented M9301-YF ROM code] 
 +
* [http://ana-3.lcs.mit.edu/~jnc/tech/pdp11/ROMs/M9301-YH.mac  Disassembled but mostly un-commented M9301-YH ROM code]
  
* EK-M9301-TM-001, ''M9301 bootstrap/terminator module''
+
[[Category: UNIBUS ROMs]]

Latest revision as of 18:41, 7 December 2021

M9301 card

The M9301 ROM card was a UNIBUS ROM card for the PDP-11 series of computers. It contained 512 words of memory, all readable directly from the UNIBUS (i.e. not windowed). A DIP switch bank provided configuration. The M9301 also provided termination for the UNIBUS.

It was a dual format card, intended for use in the two top (AB) connectors of a MUD slot, or in a UNIBUS in/out slot.

Most versions were used for bootstrapping the machine, from disk, paper tape, magnetic tape, etc, but it could be use for any purpose; most DEC-supplied pre-programmed versions included a console emulator, and basic diagnostics. A command to boot the machine could be given in the emulator, using a symbolic device code.

It used four 4-bit wide PROMs to hold the data. The board occupied addresses 773000-773776 and 765000-765776; a configuration switch allowed the lower block to be disabled.

Other configuration switches controlled which address the CPU jumped to on power on (a clever kludge, controlled by another configuration switch, allowed the board to force the CPU to read its power-on PC and PS from the ROM, at a location set by still other configuration switches, thereby allowing auto-boot on power-on).

The board came in several main variants, designated M9301-Yx (where 'x' is a capital letter, starting with 'A') came pre-programmed from DEC to perform various functions.

There were two different etch revisions of the card itself, but they seem to be programming-wise identical.

Configuration switches

The board contains a single 10-switch DIP switch, S1, which controls the board's behaviour.

If S1-1 is set to 'off' (open), the low bank of memory on the card (765000-765777) is disabled; when 'on' (closed) it is enabled.

If S1-2 is 'off', the system will power-up normally; if 'on', the CPU will obtain its new PC/PS pair from locations 173024 on the card, which contain a mixture of bits from the ROM (high bits) and the configuration switch (low bits), which can be used to force the CPU to start executing in the ROM on power-on. (This is done by asserting the appropriate high address lines on the UNIBUS for the first two bus cycles after power-up; a technique pioneered by the BM873 ROM.)

Switches S1-3 through S1-10 contain bits 8 through 1 of the power-on PC (above); the exact meaning will depend on the board variant (below).

Connector tabs

The board contains three connector tabs, which may be used with external switches, to control the board's behaviour.

One, TP3, is a ground return. TP2, when momemtarily grounded, forces the machine to execute a power-fail/restart sequence (by asserting UNIBUS line ACLO). TP1, when grounded, forces the machine to execute the on-board ROM on power on, no matter what the position of S1-2 (above).

Variants

  • M9301-YA - (ROMs 034A9, 035A9, 036A9, 037A9) - PDP-11/04 and PDP-11/34 OEM version; had basic diagnostics, console emulator, booted from various devices (RK11 and RP11 disks, TC11 DECtape, TM11 magnetic tape, serial line, PC11 high-speed paper-tape reader, TA11 casette tape, RX11 8-inch floppy disk), supported auto-boot on power on, and also power-fail restart
  • M9301-YB - (ROMs 038A9, 039A9, 040A9, 041A9) - /04 and /34 end user version; had basic diagnostics, console emulator, booted from various devices (RK11, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), also power-fail restart
  • M9301-YC - PDP-11/70 version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, RK611, RJS, RJP, TJU, RX11)
  • M9301-YD - All models; contained code to allow a terminal attached to the machine to be a terminal on some other line; also had boot code for RX11 and DDCMP
  • M9301-YE - All models; had basic diagnostics, console emulator; booted from low speed paper tape or DECnet; supported auto-boot on power on, and also power-fail restart
  • M9301-YF - (ROMs 480A9, 481A9, 482A9, 483A9) - All models (auto-start not available on PDP-11/45, PDP-11/50); had basic diagnostics, console emulator, booted from various devices (RK11, RK06, RP11, TC11, TM11, TA11, RX11, serial line, high-speed paper-tape reader, RJS, RJP, TJU), supported auto-boot on power on, and also power-fail restart
  • M9301-YH - (ROMs 332A9, 333A9, 334A9, 335A9) - /60 and /70 version; contained basic CPU, cache and memory diagnostics, booted from various devices (TM11, TC11, RK11, RP11, RK06, RJS, RJP, TJU, RX11, high-speed paper-tape reader)
  • M9301-YJ - All models; had basic diagnostics, console emulator; booted from DECnet, and various devices (RX11, TU, serial line, DMC), also power-fail restart

Entry points

DEC ROM programs can be started manually, on machines with a front panel which allow that. Useful entry points (all in octal) are given here.

M9301-YA

Location Function
173000 Console emulator w/ CPU Diagnostics
173002 Diagnostics, then emulate power-fail restart trap through 24
173030 Console emulator (no diagnostics)
173440 RK11 Boot w/ Diagnostics
173442 RK11 Boot (no diagnostics)
173466 RP11 Boot w/ Diagnostics
173470 RP11 Boot (no diagnostics)
173506 TC11 Boot w/ Diagnostics
173570 TC11 Boot (no diagnostics)
173524 TM11 Boot w/ Diagnostics
173526 TM11 Boot (no diagnostics)
173624 TA11 Boot w/ Diagnostics
173626 TA11 Boot (no diagnostics)
173636 RX11 Boot w/ Diagnostics
173640 RX11 Boot (no diagnostics)
173650 DL11 Boot w/ Diagnostics
173652 DL11 Boot (no diagnostics)
173660 PC11 Boot w/ Diagnostics
173662 PC11 Boot (no diagnostics)

Note that switch S1-1 must be on for all the choices with diagnostics.

M9301-YB

Location Function
173000 Console emulator w/ CPU Diagnostics
173002 Diagnostics, then emulate power-fail restart trap through 24
173226 Console emulator (no diagnostics)

M9301-YF

Location Function
165404/173000* Console emulator w/ CPU Diagnostics
165406/173002* Console emulator (no diagnostics)
173040 RP11 Boot w/ Diagnostics
173042 RP11 Boot (no diagnostics)
173054 TU16 Boot w/ Diagnostics
173056 TU16 Boot (no diagnostics)
173144 RK11 Boot w/ Diagnostics
173146 RK11 Boot (no diagnostics)
173174 TC11 Boot w/ Diagnostics
173176 TC11 Boot (no diagnostics)
173224 RP04/5/6 w/ Diagnostics
173226 RP04/5/6 Boot (no diagnostics)
173364 DL11 Boot w/ Diagnostics
173366 DL11 Boot (no diagnostics)
173440 RS03/4 Boot w/ Diagnostics
173442 RS03/4 Boot (no diagnostics)
173474 TM11 Boot w/ Diagnostics
173476 TM11 Boot (no diagnostics)
173544 RX11 Boot w/ Diagnostics
173546 RX11 Boot (no diagnostics)
173644 Diagnostics, then emulate power-fail restart trap through 24
173646 Emulate power-fail restart trap through 24
173662 RK611 Boot w/ Diagnostics
173664 RK611 Boot (no diagnostics)
173704 PC11 Boot w/ Diagnostics
173706 PC11 Boot (no diagnostics)

Note that switch S1-1 must be on for all the choices with diagnostics, and also the console emulation and power-fail restart choices.

* - The manual gives the 16540x locations for manual start locations, but the configuration DIP switch settings correspond to the 17300x locations.

See also

External links