• Please review our updated Terms and Rules here

OEM 11/73 Issues

Cool, though I wish they had a *nix version of PDP11GUI. I'll suffer through it on Windows, I guess. :)

Is there a way to step through a program without having a physical halt switch? I understand if the halt switch is active, you can run your program from ODT one step at a time, but without a switch, what would one do?
 
Cool, though I wish they had a *nix version of PDP11GUI. I'll suffer through it on Windows, I guess. :)

Is there a way to step through a program without having a physical halt switch? I understand if the halt switch is active, you can run your program from ODT one step at a time, but without a switch, what would one do?

Use the 'T'-bit in the PSW and run your program in trace-trap mode. Setting the T-bit forces a trap thru vector 14 at the completion of each instruction. Allows you to single instruction step your program under software control. It will require some custom software and a detailed understanding of the PDP-11 architecture to make this work, however.

Don
 
Last edited:
I disassembled the boot block with an online disassembler. I can't really make sense of PDP-11 assembly just yet. I've been in the MCS40, PDP-8, and ARM mindset lately and haven't had much of a chance to learn the -11 ISA.

http://www.onlinedisassembler.com/odaweb/20MVCp/0

Compare this to the RT-11 boot block:

http://www.onlinedisassembler.com/odaweb/ItrIJS/0

Does it look corrupt? Do you think it's worth downloading all ~700MB on the disk as a backup, and rebuild RT-11 or something else on the drive? It was used for medical applications, and I honestly don't ever see me (or anyone else) having the desire to restore its original functionality of saving EKGs.
 
Something is not quite right with that dissassembler. 0x00A0 is 000240 octal, which is the normal first word of a DEC boot block. However it is not disassembling as a NOP, but rather some form of CMPB instruction. Even playing with the endian setting makes no difference.

DEC boot blocks have a 240(8) in the first 16bit word, followed usually by an absolute branch to the start of the code. So if you do an octal dump of the bootblock, you will see 000240 000440 ... (where 440 can actually be anything in the range of 400-500 usually, it is a relative unconditional branch BR).

Don
 
Last edited:
Something is not quite right with that dissassembler. 0x00A0 is 000240 octal, which is the normal first word of a DEC boot block. However it is not disassembling as a NOP, but rather some form of CMPB instruction. Even playing with the endian setting makes no difference.

DEC boot blocks have a 240(8) in the first 16bit word, followed usually by an absolute branch to the start of the code. So if you do an octal dump of the bootblock, you will see 000240 000440 ... (where 440 can actually be anything in the range of 400-500 usually, it is a relative unconditional branch BR).

Don

Hmm, guess that helps explain the weird looking code. I took an RX02 image with RT-11 from bitsavers, took the first 512 bytes, parsed them into the format the disassembler wants, and copied them to the website. Guess I should track down a more accurate disassembler for the -11.
 
I've never seen that disassembler. It appears to be assuming high byte in low memory or reverse byte order?

Put in A0 00 and the first instruction becomes a NOP.

00 A0 is decoded as CMPB r0, r0 ( 120000 opcode in octal )

The Endian setting appears to effect only the output "data" displayed on the left column. It's not an ideal disassembler for DEC conventions, that's for sure. More of a general purpose one, that thinks in HEX, not OCTAL.
 
Last edited:
Hi All;
The Dis-assembler from PDP11GUI seems to be a good one, that is what I used to Dis-assemble the code for the Bootloader in XXDP, for my Dectape II, DD0..
THANK YOU Marty
 
Sorry for jumping in so late. . . .

Check the status lights on the QD32, starting at power-on.

Refer to page 4-27 of the QD32 manual -

The controller's initial self-test will turn on LED 3.

Once the boot process stars, the O/S will attempt to initialize the controller.

If it passes this test, ALL of the LED's will be OFF.

If it fails this test, then all the LED's will be ON.

Jump to page 5-5, and it will give you some troubleshooting steps,
including how to put the controller into diagnostic mode.

Alternately, as listed on page 5-6, you can check the SA register
for errors codes as well.

But -- before you do that, check the BACK of the Eagle,
and make sure that the drive is properly TERMINATED. ;-)




Tim
 
Last edited:
Back
Top