ACSI
Jump to navigation
Jump to search
ACSI stands for Atari Computer System Interface. It is a proprietary hard disk protocol that was implemented in the Atari ST line of personal computers. It is an 8-bit protocol and is related to SCSI.
The following is an excerpt from Atari's official Engineering Hardware Specification which describes aspects of the ACSI protocol and hardware interface.
_5._6. _D_i_s_k _D_r_i_v_e _I_n_t_e_r_f_a_c_e
The ST floppy disk drive interface is provided through
the DMA controller to an on board WD1772 Floppy Disk Con-
troller. A total of two daisy chained floppy disk drives
(drive 0 or 1) can be supported. Commands are sent to the
FDC by first writing to the DMA Mode Control Register to
select the FDC internal command register and then writing
the desired one byte command to the Disk Controller Regis-
ter. The entire floppy disk DMA read or write sequence is
as follows:
o select floppy drive 0 or 1 (PSG I/O Port A).
o select floppy side 0 or 1 (PSG I/O Port A).
o load DMA Base Address and Counter Register.
o toggle Write/_Read to clear status (DMA Mode Control Register).
o select DMA read or write (DMA Mode Control Register).
o select DMA Sector Count Register (DMA Mode Control Register).
o load DMA Sector Count Register (DMA operation trigger).
o select FDC internal command register (DMA Mode Control Register).
o issue FDC read or write command (Disk Controller Register).
o DMA active until sector count is zero (DMA Status Register,
do not poll during DMA active).
o issue FDC force interrupt command on multi-sector transfers
except at track boundaries (Disk Controller Register).
o check DMA error status (DMA Status Register, nondestructive).
The detection of floppy disk removal is not supported
in hardware.
The ST hard disk drive interface is also provided
through the DMA controller, however the Atari Hard Disk Con-
troller is off board and is sent commands using an ANSI
X3T9.2 SCSI-like (Small Computer Systems Interface) command
descriptor block protocol. The Atari Hard Disk Interface
(AHDI) supports a minimal subset of SCSI commands (Class 0
OpCodes), which are dispatched using the following fixed six
byte Atari Computer System Interface (ACSI) command packet
format:
----- ACSI Command Descriptor Block ---------------
Byte 0 |xxxxxxxx|
||||||||
||| -------- Operation Code
----------- Controller Number
Byte 1 |xxxxxxxx|
||||||||
|||--------- Block Address High
----------- Device Number
Byte 2 |xxxxxxxx|
||||||||
----------- Block Address Mid
Byte 3 |xxxxxxxx|
||||||||
----------- Block Address Low
Byte 4 |xxxxxxxx|
||||||||
----------- Block Count
Byte 5 |xxxxxxxx|
||||||||
----------- Control Byte
The following is a summary of available command
OpCodes:
----- AHDI Command Summary Table ---------------
---------- --------------------
| OpCode | Command |
---------- --------------------
| 0x00 | Test Unit Ready |
| 0x05 | Verify Track | *
| 0x06 | Format Track | *
| 0x08 | Read | *
| 0x0a | Write | *
| 0x0b | Seek |
| 0x0d | Correction Pattern |
| 0x15 | Mode Select |
| 0x1a | Mode Sense |
---------- --------------------
* multisector transfer with implied seek
NOTE: subject to change.
Commands are issued to the Atari HDC in a manner simi-
lar to that of the FDC, with the major difference being the
handshaking of a multi-byte command descriptor block. The
entire hard disk DMA read or write sequence is as follows:
o load DMA Base Address and Counter Register.
o toggle Write/_Read to clear status (DMA Mode Control Register).
o select DMA read or write (DMA Mode Control Register).
o select DMA Sector Count Register (DMA Mode Control Register).
o load DMA Sector Count Register (DMA operation trigger).
o select HDC internal command register (DMA Mode Control Register).
o issue controller select byte while clearing A0.
o set A0 for remaining command bytes.
o after last command byte select controller (DMA Mode Control
Register).
o DMA active until sector count is zero (DMA Status Register,
do not poll during DMA active).
o check DMA error status (DMA Status Register, nondestructive).
o check HDC status byte and if necessary perform ECC correction
following a Verify Track or Read Sector command.
The format of both floppy and hard disks contain 512
byte data sectors.
----- Floppy Disk Port Pin Assignments ---------------
ST Circular DIN 14S
---- ----
1 |<--- Read Data -------------------|
PSG I/O A 2 |---- Side0 Select --------------->|
3 |---- Logic Ground ----------------|
4 |<--- Index Pulse -----------------|
PSG I/O A 5 |---- Drive0 Select -------------->|
PSG I/O A 6 |---- Drive1 Select -------------->|
7 |---- Logic Ground ----------------|
8 |---- Motor On ------------------->|
9 |---- Direction In --------------->|
10 |---- Step ----------------------->|
11 |---- Write Data ----------------->|
12 |---- Write Gate ----------------->|
13 |<--- Track 00 --------------------|
14 |<--- Write Protect ---------------|
---- ----
NOTE: shield ground must not be connected on the ST side,
the cable must have Read Data and Write Data paired
with Logic Grounds.
Signal Characteristics
pin 1 TTL levels, active low,
1 Kohm pullup resistor to +5 VDC.
pin 2 TTL levels, active high,
high at system reset.
pin 4 TTL levels, active low,
1 Kohm pullup resistor to +5 VDC.
pins 5-6 TTL levels, active low,
high at system reset.
pins 8-12 TTL levels, active low (inverted).
pins 13-14 TTL levels, active low,
1 Kohm pullup resistors to +5 VDC.
----- Hard Disk Port Pin Assignments ---------------
ST DB 19S
---- ----
1 |<--- Data 0 --------------------->|
2 |<--- Data 1 --------------------->|
3 |<--- Data 2 --------------------->|
4 |<--- Data 3 --------------------->|
5 |<--- Data 4 --------------------->|
6 |<--- Data 5 --------------------->|
7 |<--- Data 6 --------------------->|
8 |<--- Data 7 --------------------->|
9 |---- Chip Select ---------------->|
MFP 10 |<--- Interrupt Request -----------|
11 |---- Ground ----------------------|
12 |---- Reset ---------------------->|
13 |---- Ground ----------------------|
14 |---- Acknowledge ---------------->|
15 |---- Ground ----------------------|
16 |---- A1 ------------------------->|
17 |---- Ground ----------------------|
18 |---- Read/Write ----------------->|
19 |<--- Data Request ----------------|
---- ----
Signal Characteristics
pins 1-8 TTL levels.
pin 9 TTL levels, active low.
pin 10 TTL levels, active low,
1 Kohm pullup resistor to +5 VDC.
pin 12 TTL levels, active low,
system reset.
pin 14 TTL levels, active low.
pins 16,18 TTL levels.
pin 19 TTL levels, active low,
1 Kohm pullup resistor to +5 VDC.
Back to Peripherals for Atari computers