On Tue, Jan 21, 2014 at 05:04:10PM -0800, Marc Howard
wrote:
However when I execute the two word bootstrap
for
the RK8E I hear the drive seek once and then stop at location 0031.
Halting at 0031 looks like the code didn't read properly into memory.
Try this with diagpack2.rk05
1000 6743
1001 5201
Start at 1000. The disk should read and the processor stay looping at 1001.
Halt the processor and see what is in memory.
You should have at
30 6741
31 5030
32 0035
If those look ok start the computer running at 31. OS/8 should start.
Are you hitting the init button to clear the registers before trying to
start the bootstrap? The bootstrap just tells the controller to go. It depends
on the registers being set to the default values.
I've also tried a restore with the TC08 but
it never even gets to the point
that the drive gets selected (the SR is 0 on entry).
It has never been tested on real hardware, only with emulator. If your
willing I can work with you to get it running. You did start the PC
program before starting the PDP-8 running? Its the opposite of how you do
restrk05.
The RK8E bootstrap is a little strange.
The bootstrap is located in low memory and typically ends with a
jump-to-self instruction (5031) at address 0031.
The strange thing is that the bootstrap program stores the contents of
disk sector 0 beginning at address 0 - which is right on top of the
bootstrap program. Eventually the disk read operation changes the
instruction at address 0031 to something else while it is in this
jump-to-self loop. Not quite self-modifying - but -
I had some difficulties emulating this behavior in my PDP8 FPGA! The
disk controller would overwrite the instruction at 0031 and the CPU
would execute the next instruction at 0032 before the disk had stored
/that/ instruction.
The bootstrap program /assumes/ that the disk is faster than the CPU.
When I sped up my PDP8, I exposed this race condition.
If the code is still executing the instruction at address 0031 after the
disk read operation, the disk wasn't read...
Rob.