I tried this program tonight, after making up a new ribbon cable that
had some mechanical damage which I was *hoping* would fix things :P
A very interesting result - when I hit run, BOTH drives started
seeking and eventually Drive 1 faults. If I unload one of the drives,
the other one seeks when the test program is run. Doesn't matter if
unit 0 or 1 is the active drive!
Time to start chasing a hardware (drive select) problem I guess...
sigh. Nothing like 30-40 year old hardware...
-Charles
ps I think your "assembly listing" has a bug, at 0221 shouldn't that
read JMP 0204?
On Feb 6, 2013, at 5:21 AM, Rick Murphy wrote:
Here's something you can try to verify that your
disks are properly
hooked up. It's the oscillating seek toggle-in for the PDP-8
modified to allow the unit to be selected. You can toggle it in via
ODT and let it fly - it'll seek the drive back and forth. If this
works on drive 1, then you've got an OS/8 driver that isn't sending
out the select properly.
0200 7201 CAF (Reset)
0201 1230 TAD 0230 - Get drive select
0202 6604 Load command register b - select drive
0203 1231 Loop: TAD 0231 - get number of cylinders to seek
0204 4222 JMS 0222 - Wait for ready
0205 3226 DCA 0226 - Store cylinder number
0206 1226 ISZ 0226 - Increment it
0207 6603 Load command register A - seek
0210 7325 Seek command (0003)
0211 6604 Load command register B
0212 4222 JMS 0222 - Wait for ready
0213 7307 Read header command (0004)
0214 6604
0215 1226 TAD 0226 - Get seek value
0216 1227 Change direction
0217 7500 SZA CLA
0220 5203 JMP 0203 - Back to start
0221 5204 JMP 0205 - Loop
0222 0000 Wait subroutine
0223 6601 RLSD - skip if done
0224 5223 JMP .-1
0225 5622 JMP I 0221
0226 0000 Temp
0227 4000 Constant
0230 0100 Drive one
0231 0200 Number of cylinders to seek