• Please review our updated Terms and Rules here

RX01/RX02 Emulator Passes PDP-11 Diagnostics!

AK6DN

Veteran Member
Joined
Aug 23, 2010
Messages
1,293
Location
Silicon Valley USA
So, mega success. I was finally able to get my RX02 emulator passing all three DEC RX02/RX211 diagnostics:

(1) ZXRDC0 : RX02 SS PERF EXER (it has been doing this for a while)
(2) ZRXEA0 : RX02 FMTR PROG (just tonight!)
(3) ZRXFB0 : RX02 FUNCTION-LOGIC TEST (just tonight!)

ZXRF the RX02/RX211 hardware function/logic diagnostic is the big one. Fooling the DEC diagnostic with the RX02 emulator so that this test passes 100% turned out to be a non-trival debugging effort. Ultimately it came down to being able to set the appropriate bits in the RXES status register as the diagnostic expects them to be set by a real RX02.

Ultimately I found the correct solution after pouring thru the DEC RX02 microcode, the DEC RX02 Tech Manual, the DEC ZRXFB0 program listing, and the DSD 440 Tech Manual (a 3rd party RX01/02 compatible controller). One might think that all the bits in the RXES (returned after the completion of each function) might be set the same for each different controller function (ie, unit selected, selected unit density, etc). But one would be wrong. There is a lack of consistency in how these bits get set by an RX02 drive, and of course the DEC diagnostic (and some DEC software, like the ZRXExx Disk Formatter program) depend on this inconsistent behavior.

I tried doing some debugging using the RX02 simulation under PDP-11 SIMH, but alas it does not pass diagnostics either (and essentially has the same issues I discovered in how it handles the RXES status register). Maybe I'll go in and see if I can update the SIMH RX02 driver with the changes I discovered necessary to pass the diagnostic.

Following are the logs of running each of the three DEC diagnostic programs. Next I will move on to PDP11 O/S testing (RT11 at least, maybe 2.11BSD). And of course hardware debugging of the emulator on the RX8E/RX28 RX02 controller in my PDP-8m (should be lots more fun).

Don

*NEW* I built a bootable RT11 v5.7 RX02 image under SIMH, copied it to the Arduino MicroSD card, and booted in on my 11/44. So RT11 seems to be happy as well.

RT11 log:
Code:
>>>b dy1

(Program)

RT-11SB  V05.07

.R MSCPCK

.date
?KMON-W-No date

.da 21-jan-2000

.dir
 21-Jan-2000
SWAP  .SYS    28P 21-Jan-2000    RT11SB.SYS    97P 21-Jan-2000
RT11FB.SYS   106P 21-Jan-2000    DL    .SYS     4P 21-Jan-2000
DU    .SYS    10P 21-Jan-2000    DX    .SYS     4P 21-Jan-2000
DY    .SYS     4P 21-Jan-2000    DZ    .SYS     4P 21-Jan-2000
RK    .SYS     3P 21-Jan-2000    LD    .SYS    11P 21-Jan-2000
LP    .SYS     2P 21-Jan-2000    LS    .SYS     5P 21-Jan-2000
NL    .SYS     2P 21-Jan-2000    PI    .SYS    60P 21-Jan-2000
SL    .SYS    17P 21-Jan-2000    SP    .SYS     7P 21-Jan-2000
VM    .SYS     3P 21-Jan-2000    PIP   .SAV    30P 21-Jan-2000
DIR   .SAV    20P 21-Jan-2000    DUP   .SAV    52P 21-Jan-2000
RESORC.SAV    35P 21-Jan-2000    HELP  .SAV   161P 21-Jan-2000
FORMAT.SAV    28P 21-Jan-2000    DUMP  .SAV    10P 21-Jan-2000
DATIME.SAV     4P 21-Jan-2000    EDIT  .SAV    19P 21-Jan-2000
TECO  .SAV    50P 21-Jan-2000    STRTSB.COM     1P 21-Jan-2000
MSCPCK.SAV     4P 21-Jan-2000
 29 Files, 781 Blocks
 193 Free blocks

.sho all

RT-11SB  V05.07
Booted from DY1:RT11SB

USR     is set SWAP
EXIT    is set SWAP
KMON    is set NOIND
MODE    is set NOSJ
TT      is set NOQUIET
ERROR   is set ERROR
SL      is set OFF
EDIT    is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3

CLI is set DCL, CCL, UCL, NO UCF

PDP 11/44 Processor
3840KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
Commercial Instruction Set (CIS)
Memory Management Unit
ECC Memory
Cache Memory
60 Hertz System Clock
KW11-P User Programmable Clock

FPU support

Device    Status                   CSR     Vector(s)
------    ------                   ---     ---------
  DL      Not installed           174400   160
  DU      Installed               172150   154
  DX      Not installed           177170   264
  DY      Resident                177170   264
  DZ      Not installed           000000
  RK      Not installed           177400   220
  LD      Installed               000000   000
  LP      Not installed           177514   200
  LS      Installed               176500   470 474 300 304
  NL      Installed               000000   000
  PI      Not installed           000000   000
  SL      Installed               000000   000
  SP      Installed               000000   110
  VM      Installed               177572   250

TT  (Resident)
DY  (Resident)
    DY1 = DK , SY
LD
SL
DU
VM
SP
LS
NL
13 free slots

Job  Name  Console Level State    Low    High  Impure
---  ----  ------- ----- -----    ---    ----  ------
 0   RESORC   0      0   Run     000000 137010 140514

No multi-terminal support

Address   Module    Words
-------   ------    -----
160000    IOPAGE     4096.
156542    DY          335.
137054    RMON       3995.
001000    ..BG..    24086.

No LD units mounted

.

ZRXF log:
Code:
>>>b dd3

(Program)

BOOTING UP XXDP-XM EXTENDED MONITOR

XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DD3
124KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZRXF??
ZRXFB0.BIC

DRSSM-G2
CZRXFB0-0-0
RX02 FUNCTION-LOGIC TEST
UNIT IS RX02
RSTRT ADR 145702
DR>STA

CHANGE HW (L)  ? Y

# UNITS (D)  ? 2

UNIT 0
RX BUS ADR (O)  177170 ?
VECTOR ADR (O)  264 ?
DRIVE #    (O)  0 ?
EXP WRD-CR (O)  0 ?
BR-LEVEL   (O)  5 ?

UNIT 1
RX BUS ADR (O)  177170 ?
VECTOR ADR (O)  264 ?
DRIVE #    (O)  0 ? 1
EXP WRD-CR (O)  0 ?
BR-LEVEL   (O)  5 ?

CHANGE SW (L)  ? Y

TEST HELP  (L) N ? Y
DIAGNOSTIC MODES ARE:
      LOGIC TEST, FUNCTION TEST, OR BOTH
   -FUNCTION TESTS (1-10)
      ACT AS QUICK VERIFY & REPORT FAILING FUNCTIONS
   -LOGIC TESTS (11-36)
      ANALYZE FAILURE & GIVE ERROR INFO
      REPORT FIELD REPLACEABLE UNITS "FRU'S"
       ->DEVICE FATAL THRESHOLD LEVEL (DVTL) IS SET = 1
        "DVTL" = NO. OF HARD ERRS THAT CAUSE DEVICE FATAL ERR
TYPE "CR" TO CONTINUE (L) N ?
LOGIC TEST MODE    (L) Y ? Y
FUNCTION TEST MODE (L) N ? Y
HARD ERR -> DEVICE FATAL THRESHOLD LVL (O)  1 ?
NON-EXISTANT MEM ADR (NXM TST) (O)  160000 ?
EXTENDED ADR BITS: 13 & 12 (NPR-NXM TST) (O)  0 ?
TEST CONTROL FLAGS  (L) N ?
EXPANSION WORD TYPE <CR>  (L) N ?

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

 IS FLOPPY SYSTEM CONTAINING UNIT #01
  POWERED DOWN (L) N ? N

CZRXFB0 EOP    1
    0 TOTAL ERRS

 IS FLOPPY SYSTEM CONTAINING UNIT #00
  POWERED DOWN (L) N ? N

 IS FLOPPY SYSTEM CONTAINING UNIT #01
  POWERED DOWN (L) N ? N

CZRXFB0 EOP    2
    0 TOTAL ERRS

(Console)
^P

>>>h
  Halted at 135642

ZRXE log:
Code:
>>>b dd3

(Program)

BOOTING UP XXDP-XM EXTENDED MONITOR

XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DD3
124KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZRXE??
ZRXEA2.BIC

CZRXEA0 RX02 FMTR PROG

HELP? (Y OR N) N  n
SET DISKETTE TO SINGLE DENSITY?   (Y OR N) N  n
VERIFY DISKETTE CRC (ALL TRACKS)?  (Y OR N) N  n
FLOPPY DISK SYSTEM: 0 ADDRESS CHANGE? (Y OR N) N n
IS ANOTHER FLOPPY DISK SYSTEM AVAILABLE? (Y OR N) N n

FORMAT DONE ON FOLLOWING
SYSTEM:0 DRIVE:0 DRIVE:1

FORMAT COMPLETED
DO YOU WANT TO FORMAT MORE DISKETTES? (Y OR N) N n
FORMATTER DONE-RESTART MONITOR OR UPDATE PROGRAM-->TYPE CTRL C TO
START THIS PROGRAM AGAIN
END OF PASS 0

(Console)
^P

>>>h
  Halted at 001442

ZRXD log:
Code:
>>>b dd3

(Program)

BOOTING UP XXDP-XM EXTENDED MONITOR

XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DD3
124KW OF MEMORY
UNIBUS SYSTEM

RESTART ADDRESS: 152000
TYPE "H" FOR HELP !

.R ZRXD??
ZRXDC0.BIC

DRSSM-G2
CZRXDC0-0-0
RX02 SS PERF EXER
UNIT IS RX02
RSTRT ADR 145702
DR>STA

CHANGE HW (L)  ? Y

# UNITS (D)  ? 2

UNIT 0
RX BUS ADR (O)  177170 ?
VECTOR ADR (O)  264 ?
DRIVE #    (O)  0 ?
EXP WRD-CR (O)  0 ?

UNIT 1
RX BUS ADR (O)  177170 ?
VECTOR ADR (O)  264 ?
DRIVE #    (O)  0 ? 1
EXP WRD-CR (O)  0 ?

CHANGE SW (L)  ? Y

HELP TEST SETUP  (L) N ? N
RUN TEST IN DOUBLE DENSITY    (L) Y ?
RUN TEST IN DELETED DATA MODE (L) N ? Y
ANY PROGRAM CONTROL FLAGS     (L) N ?
MODIFY TRACK ADDRESS LIMITS   (L) N ?
MODIFY SECTOR ADDRESS LIMITS  (L) N ?
RXXX EXPANSION TYPE <CR>  (L) N ?
 UNIT#1- WRONG DENSITY -SINGLE DENSITY DISKETTE
          ->REFORMAT DISKETTE - ARE YOU SURE? (L) N ? Y
 UNIT#1-REFORMATTING, DO NOT INTERRUPT

                      UNIT#0       UNIT#1
# SECTOR READS  (8)=  00000004037  00000004037
# SECTOR WRITES (8)=  00000004037  00000004037

                    UNIT#0  UNIT#1
CHECK SUM:               0       0
FILL-EMP BUFF LOG:       0       0
NO ERR BIT:              0       0
INTER-NO DONE ERR:       0       0
INTERRUPT ERR:           0       0
SEEK:                    0       0
CRC ERR:                 0       0
CRC BAD:                 0       0
READ ERR:                0       0
WRITE ERR:               0       0
DATA ERR:                0       0
DEL. DATA ERR:           0       0
HRD SEEK:                0       0
HRD CRC ERR:             0       0
HRD CRC BAD:             0       0
HRD READ:                0       0
HRD WRITE:               0       0
HRD DATA:                0       0
HRD DEL. DATA ERR:       0       0

ERR
CODE#   UNIT#0  UNIT#1
010          0       0
020          0       0
...
250          0       0
260          0       0

TRACK#  UNIT#0  UNIT#1
  0          0       0
  1          0       0
  2          0       0
  3          0       0
 ...
 75          0       0
 76          0       0
CZRXDC0 EOP    1
    0 TOTAL ERRS

^C
DR>EXIT
 
Back
Top