Andrew Warkentin <andreww591 at gmail.com> writes:
I have at last gotten Unix to boot to multi-user mode
in FreeBee (Philip
Pemberton's 3B1/UNIX PC emulator).
Magnificent! This is excellent news. Since I've been diving deep into
3B1 stuff recently, I've been hoping that someone was working on the
emulator. I'm glad to know it's active.
Actually, since we're on the subject, I hope you won't mind if I pick
your brain about something 3B1 related...
This weekend I started working on a small daughterboard to replace the
socketed WD1010 and act as a hard drive emulator, somewhat similar to
the FreHD TRS-80 Hard Drive Emulator[1], but piggybacking on the
motherboard instead of sitting in a bus expansion slot.
Tonight, I realized that part of my understanding was wrong. I believed
that Drive Number and Head Number were selected by writing to the SDH
task file register of the WD1010 -- in fact, they CAN be, but I fear
that the 3B1 doesn't do it that way. The hardware reference manual
discusses the Disk Control Register (a 74LS373 seen in the schematics on
page 11/D4), which is directly addressed through location 4E0000, rather
than through the SDH task file register at E0000C. It handles generating
the ST-506 Disk Select and Head Select signals directly.
In fact, the Logic Board Test Procedures in the reference manual make it
clear that the SDH register is loaded from the disk's ID field after
performing a reset and a SEEK command. None of the procedures show
writing to the SDH register, only reading from it.
So, if my understanding is correct, simply replacing the WD1010 is not
enough to properly emulate a disk system, unless I'm pretending to be a
single disk with 1 head. Aiee!
IS my understanding correct? Do you (or anyone else) have any thoughts
on this?
(Copied to the list, in case anyone else is interested)
-Seth
[1]
http://www.vecoven.com/trs80/trs80.html