7.6
CONTROLLER BOOTSTRAP OPERATION
The bootstrap of the controller occurs after the system is
reset.
At reset time a flag is set indicating that the
controller is awaiting bootstrap: any request from the
host system prior to controller bootstrap is answered by
returning with a device not ready (Error C2) completion
code.
All control variables and control ports are initialized.
At this time, if drive 1 is ready, the reading of the
bootstrap starts.
If it is not ready, the STATUS PIO is
set up to give an interrupt when drive 1 becomes ready,
and transfer is made up to the wait-for-request loop.
When the interrupt signals that drive 1 has entered the
ready state, the reading of the bootstrap starts.
When reading the bootstrap, interrupts from the SIO are
disabled to prevent any interference with the disk operation.
Any request messages received
du~ing
this time are ignored,
causing them to be repeated until they are acknowledged.
The first step in reading the bootstrap is tQ read sector 0
of drive 1 (the removable cartridge) into a buffer.
(If an
error occurs at any point in reading the bootstrap from
drive 1, the process is repeated on drive 0.)
A variable
in block 0, BTPTR, gives a pointer to the descriptor record
of the bootstrap file.
If this pointer is null, the
bootstrap fails on drive 1, and bootstrap from drive 0 is
initiated.
This descriptor record is read into the buffer.
For each
segment listed in the descriptor record, successive data
records are read into a buffer and transferred to the
correct address in the controller memory.
As each data
record is read in, its back pointer is checked against
the address of the previous record.
Any failure to compare
causes failure of the bootstrap read on that drive.
When the last segment has been completely read, the flag
is cleared indicating that the bootstrap has completed.
The
starting address from the descriptor is placed in a variable
for indirect jumping on receipt of a DFS request.
- 177 -
Need help?
Do you have a question about the Z80-RIO and is the answer not in the manual?
Questions and answers