AHDI README.DOC (July 21 1992 - ml.)
===============
AHDI is the hard disk driver for the Atari 680x0-line of computers.
It now supports the ACSI, the SCSI and the IDE interfaces.
The hardware dependent code of AHDI is also used by programs like
HDX, FHDX and TSTDRIVE. Those programs will need all the .H files,
and all the .S files except DRIVER.S and INSTALL.S
To build the driver, just run "make" with the MAKEFILE in this
directory.
Refer to AHDI 3.00 Release Notes for a detail explanation of the
patchable variables, the extended GEMDOS partition and the big
GEMDOS partition.
The main difference between version 5.00 and version 6.00 is the
support of Sparrow SCSI. The new files are SPSCSI.H and SPSCSI.S.
The driver code consists of :
ACSI.H BLITTER.H DEFS.H ERROR.H IDE.H
MACROS.H MFP.H SCSI.H SPSCSI.H SYSVAR.H
DEFS.H - Most of the conditional assembly and global equates
are here.
When compiling for programs like HDX and FHDX, set
the "DRIVER" conditional assembly flag to 0. This
will include routines (e.g. format) which are not
needed in the resident driver.
68030.S - Macros to access the cache registers when running on
the 68030.
ACSI.S - Set up the ACSI DMA channel to send commands, to send
and to receive data. The clean up code is also used by
the Sparrow SCSI code since Sparrow SCSI uses the same
channel.
When the standard _rcvacsi() and _wrtacsi() routines
(e.g. the format routine) are not used to do the I/O,
remember to set and clear "flock" appropiately. If
not, the floppy activities may interfere with the hard
disk activities.
CMDBLK.S - Stuff the command block for all SCSI and ACSI commands.
COOKIE.S - Allan Pratt's getcookie() code.
DOIT.S - Decide which interface (SCSI, ACSI, or Sparrow SCSI) to
use for a command, and send it on its way.
DRIVER.S - Most changes made to the driver are documented at the
beginning of this file.
This file contains the hardware independent file-system
level code, all the global variables, and the entry
points for the BIOS.
This file MUST be the FIRST file when linking, because
it contains the patchable variables which locations are
published.
IDE.S - Set up the IDE channel to do either programmed or
BLiTTER I/O.
DON'T do BLiTTER I/O on the STBOOK! To do BLiTTER I/O
on the Sparrow, the "badcombo" flag initialized in the
file DRIVER.S needs to be set to 0.
INSTALL.S - This file contains the code to look for devices and
initialize the globals.
This file MUST be the LAST file when linking, because
the Mshrink() or Pterm() done at the end of the driver
uses a label in this file to calculate how much of the
driver to keep.
SCSI.S - Set up the TT SCSI channel for either programmed or
DMA I/O.
The Falcon 040 SCSI should be able to use most of the
TT SCSI code. There are a couple of fixes that I know
of now. First, there is no need to use the residue
register anymore, the hardware will flush the FIFO.
I think the register will stay for compatibility.
Second, the TT SCSI now bus errors if you try to DMA
to the end of memory. That should be fixed in the
Falcon 040 SCSI. For the most up-to-date information
about these issues, contact John Hoenig.
SPSCSI.S - Set up the Sparrow SCSI channel for either programmed
or DMA I/O.
Sparrow SCSI is accessed by talking through the ACSI
DMA chip. Refer to the macros in SPSCSI.H to access
the SCSI registers.
When the standard _rcvspscsi() and _wrtspscsi() routines
(e.g. the format routine) are not used to do the I/O,
remember to set and clear "flock" appropiately. If
not, the floppy activities may intrefere with the hard
disk activities.
Refer to the comments in the source files for a detail explanation of
the different functions.