AK6DN
Veteran Member
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:
ZRXF log:
ZRXE log:
ZRXD log:
(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