Modules
DEC uses the generic term "module" for the software parts of their diagnostic system. A module can be
- a diagnostic test program,
- part of a monitor system: monitors core files or device drivers,
- even pure documentation got module numbers. example: "CXQAFD0" is the "DEC/X11 Module Programmer Guide".
Module identifiers
Modules are identified by module identifiers. The format of module numbers evolved a bit over times, but here is the general pattern (form an early MAINDEC-11-DZQXA-I-D_XXDP_User_Manual_Jul76):
The exact names for the last three letters differ from later documentations. For example, Turnbull_XXDP:Feb93.pdf says:
" The names of the diagnostic tests consist of 6 characters.
- The first character indicates the target platform it is intended for (for example the processor type)
- second and third character form a mnemonic for the type of device the diag test is for,
- the fourth letter is to identify a specific test program ("module specifier") and the
- last two characters are for revision and patch level, respectively. "
1st letter code
A = 11/05, 11/15, 11/20 B = 11/40 C = 11/45 D = GT40, general UNIBUS E = 11/70 F = 11/34 G =11/04 H = used for system files of run time environment J = 11/23,11/24 K = 11/44 |
M = MNC/11 N = System Industry 9400 controller,11/21 P = PDT-11, Plessey diagnostics Q = 11/60 R = LPA-11 V = 11/03 LSI11 X = X11 module Z = unspecified/ any platform |
2nd and 3rd letter
These letters are mnemonics for the device tested (they are not the same as the standard DEC device driver mnemonics)
AA = AA11,AAV11 AD = AD11,ADV11,AD01 AF = AFC11 AR = AR11 AX = AXV11 BB = KIT11 BM = BM873,BDV11 BT = Bus Tester CB = CB11 CD = CD11,CDS11 CL = CL11 CM = CM11 CP = DEC/X11 CPU CT = CT11 CR = CR11 DC = DC11 DF = DFC11 DH = DH11,DHV11 DJ = DJ11 DL = DL11,DLV11 DM = DM11,DMX11 DN = DN11 DP = DP11,DUP11,DPV11 DQ = DQ11,DQV11 DR = DR11,DRV11 DT = DT07,DTE20 DU = DU11,DUV11 DV = DV11,DLV11 DX = DX11 DZ = DZ11,DZV11 FP = FP11,FPF11 GT = GT40,GT44 IB = IBV11 IR = ICR11 IT = ITEP |
KA = LSI-11 = CPU KB = CPU KC = CPU KD = PDT11,11/23,11/24 CPU KE = CPU KG = CPU KH = KIT11 KL = KL11 KK = Cache Memory KM = KMC11,Memory KP = KPV11 KT = Memory = Management KU = KUV11 KX = KXT11 KW = KW11,KWV11 LA = LA11,LC11,DPrinters LC = LC11 LK = LK11 LP = LP11,LPx11 LQ = LQP LS = LS11 LV = LV11 M8 = BDV11 M9 = M9301,M9312,REV11,TEV11 MF = Memory MJ = Memory MK = Memory ML = Memory MM = Memory MN = MNC11 MR = MR11,MRV11-B MS = Memory MX = MXV11 NC = NC11,NCV11 PA = PA611,TYP11 |
PC = PC11,PCS11,IPV11/12 PL = PCL11 PM = PDM70 QE = CPU QM = Memory QK = CPU QU = DEC/X11 R6 = RK611,RK06/07 RC = RC11,KLESI-QA,RC25 RF = RF11 RH = RH70 RJ = RP04/05/06 RK = RK11,RKV11,RK05 RL = RL11,RLV11/12,RL01/02 RM = RH11,RH70,RM02/03 RP = RP11,RP02/03 RQ = MSCP disk controllers and drives RS = RH11,RS03/04 RT = RT01/02 RX = RX11,RXV11,RXV21,RX01/02 TA = TA11 TC = TC11 TE = TE16,TU77,TM03 TK = TKQ50,TK50/75 TM = TM11,TMA11,TE10 TR = TR79F TS = TS11,TS03,TSV05 TU = TM02,TU10,TU58 UD = UDC11,UDA50,KDA50-Q,RA60/80/81 VS = VS11,VSV11,VS60 VT = VT XY = XY11 |
This list is incomplete.
Often a diagnostic is not bound to the platform. Example: "VRLxxx" is coded for LS11, but can run on any machine.
Example:
The famous RL disk exerciser is named "ZRLKB3".
"Z" = not bound to a specific CPU.
"RL" = RL disk drive.
"K" = the "Kth" diagnostic for RL disk.
"B3" = 2nd revision, patch level 3.
This exerciser is also available for a different platform as "NRLKA0"
"N" = PDP-11/21
"RL" = RL disk drive.
"K" = the "Kth" diagnostic for RL disk.
"A0" = 1st revision, patch level 0
Format variant for papertape images
Ans sometimes there is a leading letter before the "platform" letter.
Lets look at the paper tape MAINDEC diagnostic program "maindec-11-dzrlc-a-pb1.bin".
Here the module idnetifier is "DZRLC-A".
- "D" is an unknown software identfier ... a media specifiier?
- "ZRLC" = again the module code for a RL disk drive test.
- "A" is the revision, there seems to be no patch level.
Format variant for X-11 modules
The exerciser modules for the DEC/X11 monitor system are named after the scheme
XWYTR0.OBJ,
with
- X = DEC/X11 software identifier
- WYZ = device + module specifier
- R = revision
- 0 = patch level must be always 0 for OBJ files.
See document AC-F055D-MC_X11crossRef.pdf.
Old 3-letter codes
Very old diagnostics on papertape images have a different format:
DNIR, with
- D = 1st letter seems to be always a "D" ... meaning "PDP-11 Diagnostic"?
- N = 2nd letter is a number. It seems to encode the type of hardware tested:
0 = CPU, 1 = memory, 2, serial, clock, paper tape, 3 = DECtape, 4 = other tape, 5 = disk, 6 = analog laboratory modules, 8 = UNIBUS, 9 = Communications. - I = 3rd letter is the identifier for the test.
- R is an optional single letter revision code.
Example: "D1AA" is a basic address test
- "D" = fixed
- "1" = memory
- "A" = this seems to be the first address test written ever.
- "A" = first version of this.
More on these old identifers can be found in PDP-8 documentations.
The most of these 3-letter identifiers were soon (1970?) renamed to 4 letter identifiers. So there are some modules with two names!
For example, "D1A" was renamed to "ZMMA".