So here is the octal print routine in the M9312 console boot prom for the '34:
; print an octal number followed by one <SP>
;
; R0 = register value to print
; R1 = return address
; R2 = temp char
; R3 = temp addr
prtoct: mov #<'0/bit1>,r2 ; ascii 0 right 1b
sec ; shift a 1 into R0 lsb as done bit
1$: rol r0 ; msb out of R0
rolb r2 ; into lsb of R2
mov pc,r3 ; ret addr
br txchar ; print char in R2
mov #<BL*bit8>+200+<'0/bit3>,r2 ; ascii SP upper, ascii 0 right 3b lower
2$: asl r0 ; msb out of R0
beq 3$ ; when R0 has gone to zero we are done
rolb r2 ; into lsb of R2
bcs 2$ ; loop once more if flagbit was set
br 1$ ; go get last bit and print char
3$: swab r2 ; move the SP from upper byte to lower
mov pc,r3 ; ret addr
br txchar ; print the space char in R2
retR1: cmp (r1)+,(r1)+ ; bump return address ptr R1 by +4
jmp -2(r1) ; return to (R1)-2
So I would speculate either 'rol' or 'rolb' are always rotating in a 0 bit
instead of the
c-bit, or possibly the c-bit is stuck at zero.
-----Original Message-----
From: Jacob Ritorto <jacob.ritorto at gmail.com>
Sent: Jan 29, 2015 7:08 PM
To: "General Discussion: On-Topic and Off-Topic Posts" <cctalk at
classiccmp.org>
Subject: Re: strange number corruption on pdp11/34
So, pardon the large post, but here's the real comparison between my
'mysterious zero bug' KD11E-A cpu board M8266, and my good one: First is
the bad. Note that even at power on, I have to halt and restart the
console emulator at 165200. Look at the registers, all blanked to zeroes
and missing digits, too. It did manage to boot xxdp, but when I tried to
enter the correct address and vector to ZRLG??, it actually told me I was
wrong and couldn't even run the test on the device that way. Then I just
accepted the default (which was presented as zeroes) and it did run. Two
passes. Blinking lights and audible head movement. I let it run for two
passes, but it presented even that as zero passes and spit a bunch of
zeroes in the results. Just for kicks, I then booted (and very promptly
crashed) RSX. It crash-dumped, giving a whole lot of zeroes. Next post
will be same test with the good KD11E-A; stay tuned..
thx
jake
?@
000000 000 00000 000000
@
0 000 00000 00000
@
0 000 00000 00000
@
0 000 00000 00000
@
0 000 00000 00000
@
0 000 00000 00000
@DL?
BOOTING UP XXDP-XM EXTENDED MONITOR
XXDP-XM EXTENDED MONITOR - XXDP V2.5
REVISION: F0
BOOTED FROM DL0
124KW OF MEMORY
UNIBUS SYSTEM
RESTART ADDRESS: 152000
TYPE "H" FOR HELP !
.R ?RLG??
NRLGA0.BIC
DRSSM-G2
CNRLG-A-0
CNRLG TESTS CONTROLLER FUNCTIONS, INTERFACE LOGIC, REGISTER OPERATION
UNIT IS RL01,RL02
RSTRT ADR 000000
DR>START
CHANGE HW (L) ? Y
# UNITS (D) ? 1
UNIT 0
RL11=1, RLV11=2, RLV12=3 (O) 0 ? 1
BUS ADDRESS (O) 0 ? 174400
# TOO LARGE
BUS ADDRESS (O) 0 ? 174400
# TOO LARGE
BUS ADDRESS (O) 0 ?
VECTOR (O) 0 ? 160
# TOO LARGE
VECTOR (O) 0 ?
TOO MANY VALUES INPUT
VECTOR (O) 0 ?
DRIVE (O) 0 ?
DRIVE TYPE = RL01 (L) Y ? N
BR LEVEL (O) 0 ? 5
CHANGE SW (L) ? N
NXT TST MAY ZERO LD UNIT. DOIT ANYWAY?Y
ILL INTER 000
PC 000000 PS 000000
DR>START
CHANGE HW (L) ? Y
# UNITS (D) ?
NO DEFAULT
# UNITS (D) ? 1
UNIT 0
RL11=1, RLV11=2, RLV12=3 (O) 0 ? 1
BUS ADDRESS (O) 0 ?
VECTOR (O) 0 ?
DRIVE (O) 0 ?
DRIVE TYPE = RL01 (L) Y ? N
BR LEVEL (O) 0 ?
CHANGE SW (L) ? N
NXT TST MAY ZERO LD UNIT. DOIT ANYWAY?Y
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG EOP 0
0 TOTAL ERRS
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG DVC FTL ERR 00000 ON UNIT 00 TST 000 SUB 000 PC: 000000
BAD SEEK-TEST OF DIFFENCE WORD
CONTROLLER: 000000 DRIVE: 0
BEFORE COMMAND: CS: 000000 BA: 000000 DA: 000000 MP: 000000
TIME OF ERROR: CS: 000000 BA: 000000 DA: 000000 MP: 000000?
LAST: 000000 PRES: 000000 EXP'D: 000000
CNRLG EOP 0
0 TOTAL ERRS
^C
DR>^C^C
DR>
XIT^U
EXIT
?@
000000 000 00000 000000
@
0 000 00000 00000
@
0 000 00000 00000
@
0 000 00000 00000
@DL?
DEVICE DD000: NOT IN CONFIGURATION
DEVICE DD100: NOT IN CONFIGURATION
DEVICE DY002: NOT IN CONFIGURATION
DEVICE DY102: NOT IN CONFIGURATION
DEVICE NI002: NOT IN CONFIGURATION
RSX-11M V4.1 BL35 124.K MAPPED
SYSTEM CRASH AT LOCATION 000000
REGISTERS
R0=000000 R1=000000 R2=000000 R3=000000
R4=000000 R5=000000 SP=000000 PS=000000
SYSTEM STACK DUMP
LOCATION CONTENTS
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
000000 000000
CRASH -- CONT WITH SCRATCH MEDIA ON DY0
On Thu, Jan 29, 2015 at 9:30 PM, Jacob Ritorto <jacob.ritorto at gmail.com>
wrote:
> ok, now with my 'good' 11/34 board set (not the set with the mysterious
> zero bug) installed, I re-ran xxdp against the rl02. I'm getting proper
> prompts with the address and vectors supplied with non-zero numbers as
> defaults. I just hit return like I had been doing with the 'zero-bug' cpu
> boards and this time, the tests run, the drive blinks wildly like before,
> and I get real results with real numbers filled in. I think this pretty
> conclusively proves that there's something really weird (mysterious zero
> bug) going on with my other board set.
>
> On Thu, Jan 29, 2015 at 7:15 PM, Johnny Billquist <bqt at update.uu.se>
> wrote:
>
>> On 2015-01-29 20:14, Pete Turnbull wrote:
>>
>>> On 29/01/2015 18:32, Jacob Ritorto wrote:
>>>
>>>> Johnny, you're insisting that I put in the real numbers for address
>>>> and csr
>>>> for testing the drive (for instance). I'm going to do that next,
here.
>>>> But are you understanding that some of us think that the reason it
>>>> prompts
>>>> a zero default is that it's a manifestation of the zero bug and that
the
>>>> real value *is* actually safe but hidden in memory? Did you see the
>>>> RSX-11M crash dump I posted in the other thread?
>>>>
>>>
>>> I didn't see a crash dump, but did you see what I posted yesterday?
>>>
>>
>> I haven't seen any crash dumps either.
>>
>> The default in XXDP for CSRs is very often zero, and I'm pretty sure it
>>> is so in the RL02 diagnostics (I've ont checked the listing for that
>>> particular one, but I did look at some others that were more readily to
>>> hand). So when it asked you for input and you just hit "return",
you
>>> really did tell it zero. Applying the principle of Occam's Razor, and
>>> assuming the simplest solution is the correct one, you got a lot of
>>> zeros back because it was accessing memory instead of the controller you
>>> wanted.
>>>
>>> It's hard to believe you have a CPU fault that consistently prints
>>> numbers as zeros yet happily boots three different OSs. Still, I'll
>>> change the tune if you re-run XXDP with sensible inputs.
>>>
>>
>> Totally agree with that one.
>>
>>
>> Johnny
>>
>> --
>> Johnny Billquist || "I'm on a bus
>> || on a psychedelic trip
>> email: bqt at softjar.se || Reading murder books
>> pdp is alive! || tryin' to stay hip" - B. Idol
>>
>
>