Home
Dave

Blog
Archives
By Subject

Recent:

Forcefield Gnome
Multics versus Unix
Alignment
Insect Wing
Bug
Dani
Through A Bit
More Sabina
Earth is Safe
Art Concret
Coelacanth
ESG
Itch
Curves
Born in Flames
Aluminium
Khadak
Cray vi
John Whitney
Stella

Diode Matrix

A diode matrix is an extremely low-density form of read-only memory that was used in computers in the 50s through the 70s, before EEPROMs were invented. (They are actually still used, but only inside microchips, not using discrete diodes.) Each bit in the ROM is represented by the presence or absence of one diode. The ROM is easily user-writable using a soldering iron and pair of wire cutters.

This particular diode matrix board is a floppy disk boot ROM for a PDP-11, and consists of 32 16-bit words.

The entire board stores the following code:

0005002 Clear R2
0052702 Bit set (PC)+ -> R2
0100247 (Data for previous instruction)
0012701 Move (PC)+ -> R1
0177170 (Data)
0130211 Bit Test R2 & (R1)
0001776 Branch if Equal -176
0112703 Move Byte (PC)+ R3
0000007 (Data)
0010100 Move R1 R0
0010220 Move R2 (R0)
0000402 Branch +2
0012710 Move (PC)+ (R0)
0000001 (Data)
0006203 Shift Right R3
0103402 Branch if Carry set +2
0112711 Move Byte (PC)+ (R1)
0111023 (Data)
0030211 Bit Test R2 & (R1)
0001776 Branch if Equal -176
0100756 Branch if Minus -156
0103766 Branch if Carry set -166
0105711 Test Byte (R1)
0100771 Branch if Minus -171
0005000 Clear R0
0022710 Compare (PC)+ (R0)
0000240 (Data)
0001347 Branch if Not Equal -147
0122702 Compare Byte (PC)+ R2
0000247 (Data)
0005500 Add Carry R0
0005007 Clear (PC)