Atari Hard Disk Driver (AHDI)

Votes / Statistics
Hits: 1,448
Downloads: 646
Votes: 0
My Atarimania
Bookmark and Share
Comments (0)

Screenshots - Atari Hard Disk Driver (AHDI)

Atari Hard Disk Driver (AHDI) atari screenshot

Information - Atari Hard Disk Driver (AHDI)

GenreTape / Disk / Cartridge UtilityYear1993
LanguageMachine LanguagePublisherAtari Corp.
Box / InstructionsEnglishSoftwareEnglish

Lai, Minna [ml [Atari Corp.]]

SerialST TypeST, STe, TT, Falcon030 / 0.5MB
ResolutionLow / Medium / High / VGA / RGBNumber of Disks1 / Double-Sided / HD Installable
Dumpdownload atari Atari Hard Disk Driver (AHDI) Download / MSAMIDI

Additional Comments - Atari Hard Disk Driver (AHDI)

Other versions with the same title:

Atari Corp. (version 5.00 [WIP]) ()
Atari Corp. (version 5.00 [WIP]) ()
Atari Corp. (version 5.00a [factory]) ()
Atari Corp. (version 6.0x [WIP]) ()
Atari Corp. (version 5.0g Sparrow) ()
Atari Corp. (version 6.05 [WIP]) ()

Development version. Found from ex-Atari employee's hard disk. Assembler sources included.

Instructions - Atari Hard Disk Driver (AHDI)

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

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 :


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 

	      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

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.
About Us - Contact - Credits - Powered with Webdev - © Atarimania 2003-2022