Return to BSD News archive
Newsgroups: comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!decwrl!netcomsv!netcom.com!jmonroy
From: jmonroy@netcom.com (Jesus Monroy Jr)
Subject: IMPROVEMENTS to the boot block -- idea
Message-ID: <jmonroyC5BGsM.IMB@netcom.com>
Keywords: boot block FDC
Organization: NETCOM On-line Communication Services (408 241-9760 guest)
Date: Sun, 11 Apr 1993 11:19:34 GMT
Lines: 57
IMPROVEMENTS TO THE BOOT BLOCK
------------------------------
I am about to add to /sys/i386/isa/stand/fdbootblk.c,
but first I need as many thoughts on this as I can get
from you. Don't be afraid to pass this on.
I also want to finish the QIC driver before the 0.2 release
of 386bsd.
This is the idea I have on how to boot the OS in a
single floppy disk load.
The way it works is this:
After the FDC does a transfer, it leaves the results
register pointing to the next logical sector. Said in a
different manner, what happens is that after it terminates
a read/write, the sector number gets incremented. If the
drive is at the end of the track, it sets the sector number
to 1 and the head to 1. If the drive is at the end of a
cylinder, then the cylinder count gets incremented by 1,
the head value gets complemented, and the sector number
goes to 1.
Here is a snip from the 1981 NEC data guide for the uPD765:
MT HD final sector transferred to processor C H R N
+---+---+---------------------------------------+----+----+----+----+
| 1 | 0 | less than EOT | NC | NC | R+1| NC |
| 1 | 0 | equal to EOT | NC |LSB | R=1| NC |
| 1 | 1 | less than EOT | NC | NC | R+1| NC |
| 1 | 1 | equal to EOT |C+1 |LSB | R=1| NC |
+---+---+---------------------------------------+----+----+----+----+
MT - Multi-Track Mode
HD - Head Requested
C - Cylinder Returned
H - Head Returned
R - Sector Returned
N - Number of Data Bytes
NC - No Change
LSB - Least Significant Bit of H Complemented
It is a trick, but I can almost guarantee that it will
work in all cases.
The trick now will be to store the results as the next
request in transfer. That is, the results will be the
parameters feed to the next read request of the FDC.
___________________________________________________________________________
Jesus Monroy Jr jmonroy@netcom.com
/386BSD/device-drivers /fd /qic /clock /documentation
___________________________________________________________________________