Reading the PROMs from the M8047 MXV11-A Multi Purpose Card
The M8047 MXV11-A Multi Purpose Card board has DEC Boot PROMs, two sockets for up to 2x4 KBytes. I tried to read the data on these >40 years old EEPROMs.
For the two PROMs on the board, I could find the DEC part numbers 23-03901-00 and 23-04001-00 on them, which are 6341 Chips with 512x8 Bytes each. These ROMs are MXV 11-A2 Boot ROMs for RX02, RX01, or TU58
With My Batronix Barlino II Eprommer I was able to read out both ROMs (more info on the Eprommer see here. I needed to create a small adapter. The PROMs contain LO and HI bytes and combine to a 16 bit PDP11 word.
The chip with pcb board number E67 (“outer” one) has HI bytes in.
After reading out both PROMs, the original boot code could be recreated by merging both data sets into one file.
Result is a 512 word file, with size of 1024 bytes of course.
This file can be disassembled by a PDP11 disassembler. The result is listed below.
I can not verify that the data is 100% valid. The PROMs were burned in 1981 or later, I suspect not much later than that, because newest date code on the board is from 1980.
So as of today, 2022, these PROMs keep their content for, ehm, 42 years. Wow.
That’s what a disassembler dumps out from my file. There are some “invalid opcode” lines:
;
; pdp11dasm version 0.0.3
; disassembly of output-lo-hi
;
000000: 012700 000340 mov #340,r0 ; @.`.
000004: 106400 mtps r0 ; ..
000006: 000005 reset ; ..
000010: 111701 movb (r7),r1 ; A.
000012: 005004 clr r4 ; ..
000014: 012721 173032 mov #173032,(r1)+ ; Q..v
000020: 010011 mov r0,(r1) ; ..
000022: 011706 mov (r7),r6 ; F.
000024: 011414 mov (r4),(r4) ; ..
000026: 005724 tst (r4)+ ; T.
000030: 000775 br 24 ; }.
;
000032: 005744 tst -(r4) ; d.
000034: 005003 clr r3 ; ..
000036: 005002 clr r2 ; ..
000040: 010212 mov r2,(r2) ; ..
000042: 005722 tst (r2)+ ; R.
000044: 020204 cmp r2,r4 ; .
000046: 101774 blos 40 ; |.
000050: 024202 cmp -(r2),r2 ; .(
000052: 001401 beq 56 ; ..
000054: 000000 halt ; ..
;
000056: 005702 tst r2 ; B.
000060: 001373 bne 50 ; {.
000062: 010322 mov r3,(r2)+ ; R.
000064: 020204 cmp r2,r4 ; .
000066: 101775 blos 62 ; }.
000070: 005103 com r3 ; C.
000072: 074342 xor -(r2),r3 ; bx
000074: 005112 com (r2) ; J.
000076: 001401 beq 102 ; ..
000100: 000000 halt ; ..
;
000102: 005103 com r3 ; C.
000104: 074312 xor (r2),r3 ; Jx
000106: 005702 tst r2 ; B.
000110: 001367 bne 70 ; w.
000112: 005103 com r3 ; C.
000114: 001362 bne 62 ; r.
000116: 010406 mov r4,r6 ; ..
000120: 004567 000574 jsr r5,720 ; w.|.
000124: 173300 subf f3,r0 ; @v
000126: 174400 divf f0,r0 ; .y
000130: 012702 000010 mov #10,r2 ; B...
000134: 012700 174404 mov #174404,r0 ; @..y
000140: 012720 000013 mov #13,(r0)+ ; P...
000144: 004567 000074 jsr r5,244 ; w.<.
000150: 000004 iot ; ..
000152: 032711 000001 bit #1,(r1) ; I5..
000156: 001011 bne 202 ; ..
000160: 016103 000006 mov 6(r1),r3 ; C...
000164: 042703 177730 bic #177730,r3 ; CEX.
000170: 001443 beq 300 ; #.
000172: 022703 000006 cmp #6,r3 ; C%..
000176: 101440 blos 300 ; .
000200: 000755 br 134 ; m.
;
000202: 004514 jsr r5,(r4) ; L.
000204: 000010 invalid opcode ; ..
000206: 011003 mov (r0),r3 ; ..
000210: 042703 000177 bic #177,r3 ; CE..
000214: 005203 inc r3 ; ..
000216: 010340 mov r3,-(r0) ; `.
000220: 004514 jsr r5,(r4) ; L.
000222: 000006 rtt ; ..
;
000224: 005037 174402 clr @#174402 ; ...y
000230: 005020 clr (r0)+ ; ..
000232: 012710 177400 mov #177400,(r0) ; H...
000236: 004514 jsr r5,(r4) ; L.
000240: 000014 invalid opcode ; ..
000242: 000413 br 272 ; ..
;
000244: 010704 mov r7,r4 ; D.
000246: 012511 mov (r5)+,(r1) ; I.
000250: 032711 100200 bit #100200,(r1) ; I5..
000254: 001775 beq 250 ; }.
000256: 100401 bmi 262 ; ..
000260: 000205 rts r5 ; ..
;
000262: 005726 tst (r6)+ ; V.
000264: 077255 sob r2,134 ; -~
000266: 000000 halt ; ..
;
000270: 000713 br 120 ; K.
;
000272: 005000 clr r0 ; ..
000274: 004567 000406 jsr r5,706 ; w...
000300: 004567 000414 jsr r5,720 ; w...
000304: 173442 cmpf f0,-(r2) ; "w
000306: 177412 ldcdf f0,(r2) ; ..
000310: 004567 000430 jsr r5,744 ; w...
000314: 005003 clr r3 ; ..
000316: 012701 177412 mov #177412,r1 ; A...
000322: 010311 mov r3,(r1) ; I.
000324: 005041 clr -(r1) ; !.
000326: 012741 177400 mov #177400,-(r1) ; a...
000332: 012741 000005 mov #5,-(r1) ; a...
000336: 032711 100200 bit #100200,(r1) ; I5..
000342: 001775 beq 336 ; }.
000344: 100010 bpl 366 ; ..
000346: 012711 000001 mov #1,(r1) ; I...
000352: 105711 tstb (r1) ; I.
000354: 100376 bpl 352 ; ~.
000356: 062703 020000 add #20000,r3 ; Ce.
000362: 103355 bcc 316 ; m.
000364: 000426 br 442 ; ..
;
000366: 010300 mov r3,r0 ; @.
000370: 006300 asl r0 ; @.
000372: 006100 rol r0 ; @.
000374: 006100 rol r0 ; @.
000376: 006100 rol r0 ; @.
000400: 004567 000302 jsr r5,706 ; w.B.
000404: 000764 br 356 ; t.
;
000406: 004567 000306 jsr r5,720 ; w.F.
000412: 173120 subf f1,(r0)+ ; Pv
000414: 177000 ldcif f0,r0 ; .~
000416: 005011 clr (r1) ; ..
000420: 012700 001000 mov #1000,r0 ; @...
000424: 016040 157776 mov 157776(r0),-(r0) ; .~_
000430: 005700 tst r0 ; @.
000432: 001374 bne 424 ; |.
000434: 004567 000246 jsr r5,706 ; w.&.
000440: 000627 br 120 ; ..
;
000442: 004567 000252 jsr r5,720 ; w.*.
000446: 173406 cmpf f0,r6 ; .w
000450: 177172 004567 ldcif f1,@4567(r2) ; z~w.
000454: 000272 invalid opcode ; :.
000456: 005046 clr -(r6) ; &.
000460: 000404 br 472 ; ..
;
000462: 012700 000020 mov #20,r0 ; @...
000466: 074016 xor (r6),r0 ; .x
000470: 001746 beq 406 ; f.
000472: 111600 movb (r6),r0 ; ..
000474: 004567 000154 jsr r5,654 ; w.l.
000500: 000013 invalid opcode ; ..
000502: 111102 movb (r1),r2 ; B.
000504: 100366 bpl 462 ; v.
000506: 012703 000100 mov #100,r3 ; C.@.
000512: 032702 000040 bit #40,r2 ; B5 .
000516: 001403 beq 526 ; ..
000520: 052700 000400 bis #400,r0 ; @U..
000524: 006303 asl r3 ; C.
000526: 005002 clr r2 ; ..
000530: 012705 000001 mov #1,r5 ; E...
000534: 004567 000114 jsr r5,654 ; w.L.
000540: 000007 mfpt ; ..
000542: 010511 mov r5,(r1) ; I.
000544: 004514 jsr r5,(r4) ; L.
000546: 012711 000001 mov #1,(r1) ; I...
000552: 004514 jsr r5,(r4) ; L.
000554: 100714 bmi 406 ; L.
000556: 004567 000072 jsr r5,654 ; w.:.
000562: 000003 bpt ; ..
000564: 032737 004000 177170 bit #4000,@#177170 ; _5..x~
000572: 001413 beq 622 ; ..
000574: 010311 mov r3,(r1) ; I.
000576: 004514 jsr r5,(r4) ; L.
000600: 010211 mov r2,(r1) ; ..
000602: 004514 jsr r5,(r4) ; L.
000604: 122525 cmpb (r5)+,(r5)+ ; U%
000606: 060302 add r3,r2 ; B`
000610: 060302 add r3,r2 ; B`
000612: 022702 001000 cmp #1000,r2 ; B%..
000616: 001346 bne 534 ; f.
000620: 000404 br 632 ; ..
;
000622: 006303 asl r3 ; C.
000624: 111122 movb (r1),(r2)+ ; R.
000626: 004514 jsr r5,(r4) ; L.
000630: 077303 sob r3,624 ; C~
000632: 005000 clr r0 ; ..
000634: 105716 tstb (r6) ; N.
000636: 001401 beq 642 ; ..
000640: 005200 inc r0 ; ..
000642: 005741 tst -(r1) ; a.
000644: 004567 000036 jsr r5,706 ; w...
000650: 005721 tst (r1)+ ; Q.
000652: 000703 br 462 ; C.
;
000654: 012504 mov (r5)+,r4 ; D.
000656: 050004 bis r0,r4 ; .P
000660: 010437 177170 mov r4,@#177170 ; ..x~
000664: 010704 mov r7,r4 ; D.
000666: 005741 tst -(r1) ; a.
000670: 032711 000240 bit #240,(r1) ; I5 .
000674: 001775 beq 670 ; }.
000676: 005721 tst (r1)+ ; Q.
000700: 000205 rts r5 ; ..
;
000702: 005737 170000 tst @#170000 ; _..p
000706: 022737 000240 000000 cmp #240,@#0 ; _% ...
000714: 001024 bne 766 ; ..
000716: 005007 clr r7 ; ..
000720: 012537 000004 mov (r5)+,@#4 ; _...
000724: 012737 000340 000006 mov #340,@#6 ; _.`...
000732: 012501 mov (r5)+,r1 ; A.
000734: 012706 004000 mov #4000,r6 ; F...
000740: 005711 tst (r1) ; I.
000742: 000115 jmp (r5) ; M.
;
000744: 004517 jsr r5,(r7) ; O.
000746: 004517 jsr r5,(r7) ; O.
000750: 012700 000004 mov #4,r0 ; @...
000754: 010604 mov r6,r4 ; ..
000756: 005003 clr r3 ; ..
000760: 010710 mov r7,(r0) ; H.
000762: 010406 mov r4,r6 ; ..
000764: 077332 sob r3,702 ; Z~
000766: 000205 rts r5 ; ..
;
000770: 000000 halt ; ..
000774: 000000 halt ; ..
...
001776: 000000 halt ; ..
End of document.