home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilst / zidefs090 / ZIDEFS090 / ATBusDocs next >
Text File  |  1994-10-03  |  77KB  |  1,590 lines

  1.                       working draft of the             Rev 1
  2.            Committee for a Common Access Method (CAM)
  3.  
  4.                          draft proposed 
  5.                    DISK ATBUS DEFINITION (DAD)   
  6.  
  7.                           30 March 1989
  8.  
  9.  
  10.  
  11. Abstract:  This standard defines mechanical, electrical, and 
  12. functional requirements for attaching small computers employing 
  13. an ATBus with intelligent rigid disk drives. In addition to 
  14. documenting the defacto and baseline interface, this standard 
  15. also defines a downward compatible SCSI pass through mode. With 
  16. the physical protocol of the ATBus I/O, not all SCSI 
  17. functionality is required. Consequently this standard includes a 
  18. brief summary of SCSI functionality not included. The resulting 
  19. interface provides a common interface specification for systems 
  20. manufacturers, system integrators, controller manufacturers, and 
  21. suppliers of intelligent disk drives.
  22.  
  23.  
  24.  
  25. WARNING:  This is a preliminary draft of the proposed DAD 
  26. standard.  It is subject to change without notice, at the sole 
  27. discretion of the CAM Group.  It is likely that some sections may 
  28. change significantly, and most sections will change to some 
  29. extent in the course of further development of this draft 
  30. standard.  This draft is distributed solely for the purpose of 
  31. review and comment, and it should not be used as a design 
  32. document without assuming the risk of such an early 
  33. implementation.  
  34.  
  35.  
  36. COPYRIGHT NOTICE:  This draft standard is based upon product 
  37. specifications of contributing members, these documents are 
  38. copyrighted by the individual companies. This draft standard may 
  39. be reproduced, for the purpose of review and comment or for the 
  40. purpose of including in an appropriate product specification, 
  41. without further permission, provided the risk  of early 
  42. implementation is assumed. All other rights are reserved.
  43.  
  44.  
  45. POINTS OF CONTACT:
  46.  
  47. Gene E. Milligan (Technical Editor) I. Dal Allan (CAM Chair)
  48. Imprimis Technology Inc.            ENDL
  49. MS OKM151                           14426 Black Walnut Court
  50. Oklahoma City, OK 73157             Saratoga, CA   95070
  51. (405) 324-3070                      (408) 867-6630
  52.  
  53. Tom Treadway (SCSI Passthrough)     Jim McGrath (CAM ATBus Coordinator)
  54. DPT                                 Quantum
  55. (407) 830-5522                      (408) 432-1100
  56.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  57.  
  58.  
  59.  
  60.                              TABLE OF CONTENTS
  61.  
  62. 1.0        SCOPE
  63.  
  64. 2.0        REFERENCED STANDARDS AND ORGANIZATIONS
  65.  
  66. 3.0        GLOSSARY AND CONVENTIONS
  67.  
  68. 4.0       INTERFACE REQUIREMENTS.............................  
  69.            4.1    GENERAL DESCRIPTION........................  
  70.            4.2    PHYSICAL INTERFACE.........................  
  71.            4.3    DC CABLE AND CONNECTOR.....................  
  72.                    4.3.1   Device Grounding..................  
  73.            4.4    I/O CABLE AND CONNECTOR....................
  74.  
  75. 5.0       INTERFACE OPERATION AND REQUIREMENTS DESCRIPTION...  
  76.            5.1    GENERAL....................................  
  77.            5.2    INTERFACE SIGNAL DESCRIPTIONS..............  
  78.                    5.2.1   Signal Conventions................  
  79.                    5.2.2   Signal Descriptions...............  
  80.            5.3    PROGRAMMING REQUIREMENTS...................  
  81.                    5.3.1   General...........................  
  82.                    5.3.2   I/O Port Descriptions.............  
  83.                    5.3.3   Reset Response....................  
  84.                    5.3.4   Command Information...............  
  85.                    5.3.5   Translate Mode....................  
  86.                    5.3.6   Command Descriptions..............  
  87.  
  88. 6.0        SCSI PASS THROUGH MODE
  89.  
  90. 7.O        SCSI RESTRICTIONS USING ATBUS PASS THROUGH MODE
  91.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  92.  
  93.  
  94. 4.0       INTERFACE CABLING REQUIREMENTS
  95.  
  96. 4.1       GENERAL DESCRIPTION
  97.  
  98.            This standard  describes the interface requirements of 
  99.            a disk drive which is compatible with the requirements 
  100.            of the "ATBus". Data is transferred in parallel (16 
  101.            bits) from the Host bus to the drive's Buffer. Under 
  102.            direction of commands previously transferred from the 
  103.            Host. The drive's controller performs all of the 
  104.            operations necessary to properly write data on or read 
  105.            data from disk media. Data read from the media is 
  106.            stored in the Buffer and transferred to the Host. 
  107.            Section ?? of this standard describes how this 
  108.            interface is used, in a downward compatible manner to 
  109.            pass SCSI commands, data transfers, and status.
  110.  
  111.            This standard provides the capability of operating on the 
  112.            AT bus in a daisy chained configuration with a second 
  113.            drive|controller that operates in accordance with these 
  114.            standard s. One drive is designated as master and the 
  115.            other as the slave (see Figure 4.1-1).
  116.  
  117.            Selection of the Master drive is made by a jumper plug or 
  118.            switch. 
  119.  
  120. 4.2       PHYSICAL INTERFACE
  121.  
  122.            The physical interface consists of single ended TTL 
  123.            compatible receivers and drivers communicating through a 
  124.            40 conductor flat ribbon nonshielded cable with a maximum 
  125.            length 24 inches (0.61 metre) using asynchronous interface 
  126.            protocol. A diagram of the Host-drive interface showing 
  127.            pin numbers and signal names is shown in Figure 4.2-1. 
  128.            Detail descriptions of the signal functions are given in 
  129.            section 11 with interface timing protocol shown in the 
  130.            waveforms of Figures 5.2-1, 5.2-2 and 5.2-3. Details of 
  131.            the  DC  and Data cables and connectors are  given  in 
  132.            Sections 4.3 and 4.4.
  133.  
  134.  
  135.  
  136.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  137.  
  138.  
  139.  
  140. ---------------------------------                       -------------
  141. |          HOST I/O             |                       | DRIVE I/O |
  142. |                               |                       | CONNECTORS|
  143. |                               |                       |     J3    |
  144. | HOST RESET                 1  |--------RESET- ------->|  1        |
  145. |                            2  |--------GROUND---------|  2        |
  146. | HOST DATA BUS BIT 7        3  |<-------DD7   -------->|  3        |
  147. | HOST DATA BUS BIT 8        4  |<-------DD8   -------->|  4        |
  148. | HOST DATA BUS BIT 6        5  |<-------DD6   -------->|  5        |
  149. | HOST DATA BUS BIT 9        6  |<-------DD9   -------->|  6        |
  150. | HOST DATA BUS BIT 5        7  |<-------DD5   -------->|  7        |
  151. | HOST DATA BUS BIT 10       8  |<-------DD10  -------->|  8        |
  152. | HOST DATA BUS BIT 4        9  |<-------DD4   -------->|  9        |
  153. | HOST DATA BUS BIT 11      10  |<-------DD11  -------->|  10       |
  154. | HOST DATA BUS BIT 3       11  |<-------DD3   -------->|  11       |
  155. | HOST DATA BUS BIT 12      12  |<-------DD12  -------->|  12       |
  156. | HOST DATA BUS BIT 2       13  |<-------DD2   -------->|  13       |
  157. | HOST DATA BUS BIT 13      14  |<-------DD13  -------->|  14       |
  158. | HOST DATA BUS BIT 1       15  |<-------DD1   -------->|  15       |
  159. | HOST DATA BUS BIT 14      16  |<-------DD14  -------->|  16       |
  160. | HOST DATA BUS BIT 0       17  |<-------DD0   -------->|  17       |
  161. | HOST DATA BUS BIT 15      18  |<-------DD15  -------->|  18       |
  162. |                           19  |--------GROUND---------|  19       |
  163. |                           20  |--------(KEYPIN)-------|  20       |
  164. | RESERVED                  21  |--------RSVD  ---------|  21       |
  165. |                           22  |--------GROUND---------|  22       |
  166. | HOST I/O WRITE            23  |--------DIOW- -------->|  23       |
  167. |                           24  |--------GROUND---------|  24       |
  168. | HOST I/O READ             25  |--------DIOR- -------->|  25       |
  169. |                           26  |--------GROUND---------|  26       |
  170. | RESERVED                  27  |--------RSVD  ---------|  27       |
  171. | HOST ADDRESS LATCH ENABLE 28  |--------DALE  -------->|  28       |
  172. | RESERVED                  29  |--------RSVD  ---------|  29       |
  173. |                           30  |--------GROUND---------|  30       |
  174. | HOST INTERRUPT REQUEST    31  |<-------INTRQ ---------|  31       |
  175. | HOST 16 BIT I/O           32  |<-------IOCS16- -------|  32       |
  176. | HOST ADDRESS BUS          33  |--------DA1   -------->|  33       |
  177. | PASSED DIAGNOSTICS        34  |<-------PDIAG- ------->|  34       |
  178. | HOST ADDRESS BUS          35  |--------DAO   -------->|  35       |
  179. | HOST ADDRESS BUS          36  |--------DA2   -------->|  36       |
  180. | HOST CHIP SELECT 0        37  |--------CS1FX- ------->|  37       |
  181. | HOST CHIP SELECT 1        38  |--------CS3FX- ------->|  38       |
  182. |DRIVE ACTIVE|SLAVE PRESENT 39  |--------DASP-  ------->|  39       |
  183. |                           40  |--------GROUND---------|  40       |
  184. |-------------------------------|                       |-----------|
  185.  
  186.  
  187.   FIGURE 4.2-1. HOST TO DISK DRIVE INTERFACE DIAGRAM
  188.  
  189.  
  190.  
  191.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  192.  
  193.            +-----------------------------------------------------+
  194.            |                                                     |
  195.            |                       HOST                          |
  196.            |                                                     |
  197.            +--------+------------+-------------------------------+
  198.                     |            |
  199.                     | CONTROLLER |
  200.                     |            |          
  201.                     +-^----^---^-+
  202.                       |    |   |__________________
  203.                       | ___|_________________    |  ESDI
  204.                       |/   |                 |   |
  205.                     +-v----v-----+         +-v---v------+
  206.                     |            |         |            |
  207.                     | DISK DRIVE |         | DISK DRIVE |
  208.                     |            |         |            |
  209.                     +------------+         +------------+
  210.  
  211.            +-----------------------------------------------------+
  212.            |                                                     |
  213.            |                       HOST                          |
  214.            |                                                     |
  215.            +---------------^-------------------------------------+
  216.                            |       DAD
  217.                     +------v-----+
  218.                     |            |
  219.                     | CONTROLLER |
  220.                     |            |          
  221.                     +-^----^---^-+
  222.                       |    |   |__________________
  223.                       | ___|_________________    |  ESDI
  224.                       |/   |                 |   |
  225.                     +-v----v-----+         +-v---v------+
  226.                     |            |         |            |
  227.                     | DISK DRIVE |         | DISK DRIVE |
  228.                     |            |         |            |
  229.                     +------------+         +------------+
  230.  
  231.            +-----------------------------------------------------+
  232.            |                                                     |
  233.            |                       HOST                          |
  234.            |                                                     |
  235.            +---------------^-------------------------------------+
  236.                            |       DAD
  237.                            | ____________________    
  238.                            |/                    |
  239.                     +------v-----+         +-----v------+
  240.                     |            |         |            |
  241.                     | DISK DRIVE |         | DISK DRIVE |
  242.                     |            |         |            |
  243.                     +------------+         +------------+
  244.  
  245.                FIGURE 4.1-1. INTERFACE CABLING OPTIONS
  246.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  247.  
  248. 4.3       DC CABLE AND CONNECTOR
  249.  
  250.            The drive receives DC power through a 4 pin connector (see 
  251.            Table 4.3-1 for pin assignment). Recommended part numbers 
  252.            for the mating connector are included below, but 
  253.            equivalent parts may be used (See Table 4.3-2).
  254.  
  255.            Drive Connector Terminal      Cable Connector Terminal
  256.  
  257.                AMP P/N 61664-1               AMP P/N 62137-2
  258.  
  259.                       TABLE 4.3-1 DC INTERFACE
  260.                 ------------------------------------- 
  261.                | POWER LINE DESIGNATION | PIN NUMBER |
  262.                |------------------------|------------|
  263.                |      +12 V             |   J1-01    |
  264.                |      +12 V RETURN      |   J1-02    |
  265.                |      +5 V RETURN       |   J1-03    |
  266.                |      +5 V              |   J1-04    |
  267.                 ------------------------------------- 
  268.  
  269.                           TABLE 4.3-2. MATING PARTS
  270.             ---------------------------------------------------- 
  271.            | TYPE OF CABLE |    CONNECTOR     |    CONTACTS     |
  272.            |---------------|------------------|-----------------|
  273.            |    18 AWG     |  AMP 1-480424-0  |  AMP 60619-4    |
  274.            |               |                  |   (Loose Piece) |
  275.            |               |                  |  AMP 61117-4    |
  276.            |               |                  |   (Strip)       |
  277.             ---------------------------------------------------- 
  278.  
  279. 4.3.1     Device Grounding
  280.  
  281.            Provision for tying the DC Logic ground and the 
  282.            chassis ground together or for separating these two 
  283.            ground planes is vendor specific. 
  284.  
  285.  
  286. 4.4       I/O CABLE AND CONNECTOR
  287.  
  288.            The I/O connector is a 40 pin connector (Figure 4.4-1). 
  289.            The odd pins are located along the edge of the printed 
  290.            circuit board with pin 1 leftmost. The even pins are on 
  291.            the side away from the edge of the printed circuit board. 
  292.            A key is provided by the removal of Pin 20. The 
  293.            corresponding pin on the cable connector should be 
  294.            plugged. The connector should be keyed to prevent the 
  295.            possibility of installing it upside down. See Figure 4.2-
  296.            1 and Table 5.2-1 for a signal description summary.
  297.  
  298.            The maximum cumulative I/O cable length shall be 24 inches 
  299.            (.61 metres).  
  300.  
  301.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  302.  
  303.            Recommended part numbers for the mating connector are 
  304.            included below, but equivalent parts may be used.
  305.  
  306.            CONNECTOR (40 PIN)
  307.            3M-3417-7000 (Strain relief 3448-2040)
  308.  
  309.            CABLE
  310.            Flat Cable (Stranded AWG 28) 3M-3365-40
  311.            Flat Cable (Stranded AWG 28) 3M-3517-40 (Shielded Cable)
  312.  
  313. 5.0     INTERFACE OPERATION AND REQUIREMENTS DESCRIPTION
  314.  
  315. 5.1     GENERAL
  316.  
  317.            This  section  defines the details  of  the  interface 
  318.            operation in the AT Bus compatible mode. See  Sections 
  319.            6 AND 7 for details of the SCSI pass through mode.
  320.  
  321. 5.2     INTERFACE SIGNAL DESCRIPTIONS
  322.  
  323. 5.2.1   Signal Conventions
  324.  
  325.            Signal names are shown in all upper case letters. Signals 
  326.            can be asserted (active, true) in either a high (more 
  327.            positive voltage) or low (less positive voltage) state. A 
  328.            dash character (-) at the beginning or end of a signal 
  329.            name indicates it is asserted at the low level (active 
  330.            low). No dash or a plus character (+) at the beginning or 
  331.            end of a signal name indicates it is asserted high (active 
  332.            high). An asserted signal may be driven high or low by an 
  333.            active circuit, or it may be allowed to be pulled to the 
  334.            correct state by the bias circuitry. Control signals that 
  335.            are asserted for one function when high and asserted for 
  336.            another function when low are named with the asserted high 
  337.            function name followed by a slash character (/), and the 
  338.            asserted low function name followed with a dash (-). For 
  339.            example, BITENA/BITCLR- enables a bit when high and clears 
  340.            a bit when low. All signals are TTL compatible unless 
  341.            otherwise noted. Negated means that the signal is driven 
  342.            by an active circuit to the state opposite to the asserted 
  343.            state (inactive, or false) or may be simply released (in 
  344.            which case the bias circuitry pulls it inactive, or 
  345.            false), at the option of the implementor.
  346.  
  347. 5.2.2   Signal Descriptions
  348.  
  349.            Table 5.2-1 describes the interface signals and pins in 
  350.            more detail than given in Table 4.2-1. The signals are 
  351.            listed according to function, rather than in numerical 
  352.            connector pin order. The table lists signal name mnemonic, 
  353.            connector pin number, whether input to (I) or output from 
  354.            (0) the drive, signal full name and a brief signal 
  355.            description.
  356.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  357.  
  358.  
  359.           TABLE 5.2-1. INTERFACE SIGNAL DESCRIPTION SUMMARY
  360.  
  361.   PIN     PIN
  362.   NAME   NUMBER  I/O     SIGNAL NAME                SIGNAL DESCRIPTION              
  363.  
  364. RESET-      1     I   Drive reset      Reset signal from the host system which is 
  365.                                        asserted during power up and negated 
  366.                                        thereafter.
  367.  
  368. DD0         17   I/O  Drive data bus   16 bit bidirectional data bus between the
  369. DD1         15                         host and the drive. The lower 8 bits are
  370. DD2         13                         used for register and ECC byte access. All
  371. DD3         11                         bits are used for data word transfers.
  372. DD4          9
  373. DD5          7
  374. DD6          5
  375. DD7          3
  376. DD8          4
  377. DD9          6
  378. DD10         8
  379. DD11        10
  380. DD12        12
  381. DD13        14
  382. DD14        16
  383. DD15        18
  384.  
  385. DIOW-       23    I   Drive I/O write  Write strobe, the rising edge of which clocks 
  386.                                        data from the host data bus, DD0 through 
  387.                                        DD15, into a register or the data port of the 
  388.                                        drive.
  389.  
  390. DIOR-       25    I   Drive I/O read   Read strobe, the falling edge of which 
  391.                                        enables data from a register or the data port 
  392.                                        of the drive onto the host data bus, DD0 
  393.                                        through DD7 or DD0 through DD15. The rising 
  394.                                        edge of DIOR- latches data at the host.
  395.  
  396. DALE        28    I   Drive address    Address valid indication from the host
  397.                       latch enable     system. The host address and chip selects, 
  398.                                        DAO through DA2, CS1FX-, and CS3FX-, are 
  399.                                        guaranteed valid on the falling edge of this 
  400.                                        signal. The address and chip select signals 
  401.                                        are held valid by the host system after the 
  402.                                        DALE falling edge, therefore, the drive need 
  403.                                        not latch these signals with DALE.
  404.  
  405.  
  406.  
  407.  
  408.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  409.  
  410.  
  411.           TABLE 5.2-1. INTERFACE SIGNAL DESCRIPTION SUMMARY (CONT.)
  412.  
  413.   PIN     PIN
  414.   NAME   NUMBER  I/O     SIGNAL NAME                SIGNAL DESCRIPTION              
  415.  
  416. INTRQ       31   O    Drive interrupt  Interrupt to the host system, asserted only 
  417.                                        when the drive CPU has a pending interrupt, 
  418.                                        the drive is selected, and the host asserts 
  419.                                        the IEN- bit in the digital output register. 
  420.                                        When the IEN- bit is negated, or the drive is 
  421.                                        not selected, this output is in a high 
  422.                                        impedance state, regardless of the presence 
  423.                                        or absence of a pending interrupt.
  424.  
  425. IOCS16-     32   O    Drive 16 bit I/O Indication to the host system that the 16 bit 
  426.                                        data port has been addressed and that the 
  427.                                        drive is prepared to send or receive a 16 bit 
  428.                                        data word. This shall be an open collector 
  429.                                        output.
  430.  
  431. DAO         35   I    Drive address    3 bit binary coded address supplied by the
  432. DA1         33        bus              host when accessing a register or the data
  433. DA2         36                         port in the drive.
  434.  
  435. PDIAG       34   I/O  PDIAG-           This line will be an input, for the 
  436.                                        controller designated as the master, and will 
  437.                                        be used as an output by the slave to indicate 
  438.                                        that it has successfully passed the 
  439.                                        diagnostics command. Upon the receipt of a 
  440.                                        diagnostics command or a reset the slave 
  441.                                        controller will set this line high. If the 
  442.                                        command is terminated without error the slave 
  443.                                        will then set this line low. A "low" will 
  444.                                        indicate to the master controller (which has 
  445.                                        this pin programmed as an input) that the 
  446.                                        slave has passed the diagnostics or completed 
  447.                                        the reset. The master controller must wait a 
  448.                                        maximum of 5 seconds from the receipt the 
  449.                                        diagnostic command or 3 msec after a reset to 
  450.                                        allow the slave's report of status in the 
  451.                                        multi-controller mode (DASP- set low). In 
  452.                                        single controller applications, the master 
  453.                                        will report status immediately after 
  454.                                        completion, terminating the command.
  455.  
  456. CS1FX-      37   I    Drive chip       Chip select decoded from the host address bus
  457.                       select 0         used to select some of the host accessible 
  458.                                        registers.
  459.  
  460. CS3FX-      38   I    Drive chip       Chip select decoded from the host address bus
  461.                       select 1         used to select some of the host accessible 
  462.                                        registers.
  463.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  464.  
  465.  
  466.           TABLE 5.2-1. INTERFACE SIGNAL DESCRIPTION SUMMARY
  467.  
  468.   PIN     PIN
  469.   NAME   NUMBER  I/O     SIGNAL NAME                SIGNAL DESCRIPTION              
  470.  
  471. DASP-       39   I/O  Drive Active/    Time multiplexed signal which indicates drive
  472.                  Slave Present         active or slave present. During a power-up
  473.                                        and drive initialization, this line is an 
  474.                                        output from a slave drive, and an input to a 
  475.                                        master drive, indicating a slave drive is 
  476.                                        present. At all times other than during a 
  477.                                        power up and drive initialization, this line 
  478.                                        is an output from both master and slave 
  479.                                        drives which is asserted when the drive is 
  480.                                        selected and being accessed (BSY is 
  481.                                        asserted), and may be used to drive an 
  482.                                        activity LED. This shall be an open collector 
  483.                                        output.
  484.  
  485. GND         2    --   Ground           Signal ground returns for the interface lines
  486.             19
  487.             22
  488.             24
  489.             26
  490.             30
  491.             40
  492.  
  493. RSVD        21   --                    Reserved pins.
  494.             27
  495.             29
  496.  
  497. KEY         20   --                    Pin used for keying the interface connector.
  498.  
  499.  
  500.  
  501.  
  502.            Figure 5.2-1, and 5.2-2 show timing diagrams which 
  503.            define relationships between the interface signals. Timing 
  504.            standard s are given for both 16 bit and 8 bit data 
  505.            transfers in Table 5.2-2.
  506.  
  507.  
  508.  
  509.  
  510.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  511.  
  512.  
  513. Processor I/O Read, 16 Bit:
  514.                                                                      
  515. DRIVE ADDRESS      |ADDRESS VALID
  516.         [1]                                                          
  517.                     :<-t1->:<-----------t2----------->:
  518.  
  519. DIOR-                                                                
  520.                            :                          :
  521.                                              :<--t5-->:<-t6->:
  522.  
  523.                                                               
  524. DD0 ...DD15                |                |DATA VALID              
  525.                                                               |
  526.  
  527.  
  528. Processor I/O Write, 16 Bit:
  529.  
  530.                                                                      
  531. DRIVE ADDRESS      |ADDRESS VALID
  532.         [1]                                                          
  533.                     :<-t1->:<-----------t2----------->:
  534.  
  535. DIOW-                                                                
  536.                            :                          :
  537.                                          :<----t3---->:<-t4->:
  538.  
  539.                                                               
  540. DD0 ...DD15                |                |DATA VALID              
  541.                                                               |
  542.  
  543.  
  544.  
  545.  
  546.    [1]   Drive Address consists of signals CS1FX, CS3FX, DAO, DA1, 
  547.          DA2 "t" values given in Table 5.2-2.
  548.  
  549.      FIGURE 5.2-1. INTERFACE 16 BIT DATA TRANSFER TO|FROM DRIVE
  550.  
  551.  
  552.  
  553.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  554.  
  555.  
  556.                                
  557. DALE               :          :                                     
  558.                    :<---- t7---->:
  559.                                  
  560. IOCS16-                           :                                  
  561.                                                                     
  562. RESET-            :       :
  563.                   :<-t8 ->:
  564.  
  565.  
  566.             FIGURE 5.2-2. INTERFACE TIMING AFTER A RESET
  567.  
  568.  
  569.              TABLE 5.2-2. INTERFACE TIMING 
  570.  
  571. SYMBOL                         DESCRIPTION                           MIN   MAX
  572.        (16 bit)
  573. t1     Address valid prior to DIOW- or DIOR-                        90 nS  ---
  574. t2     DIOW- or DIOR- pulse width                                  165 nS  ---
  575. t3     Data valid prior to DIOW- rising edge                       140 nS  ---
  576. t4     Data hold time after DIOW- rising edge                        0 nS  ---
  577. t5     Required valid data prior to DIOR- rising edge               95 nS  ---
  578. t6     Required data hold time after DIOR- rising edge               5 nS  ---
  579.  
  580. t7     IOCS16- Asserted after rising edge of DALE, 16 bit          ---    95 nS
  581. t8     RESET- pulse width                                          300 nS  ---
  582.  
  583. Note that these are minimum acceptable interface timing requirements.
  584.  
  585.  
  586. 5.3     PROGRAMMING REQUIREMENTS
  587.  
  588. 5.3.1   General
  589.  
  590.            The drives using this interface shall be programmed by the 
  591.            host computer to perform commands and return status to the 
  592.            host at command completion. When two drives are daisy 
  593.            chained on the interface, commands are written in parallel 
  594.            to both drives, and for all except diagnostic commands, 
  595.            only the selected drive executes the command. With
  596.            diagnostic commands, both drives execute the command and 
  597.            the slave drive reports its status to the master drive via 
  598.            the PDIAG- signal.  
  599.  
  600.            Drives are selected by the DRV bit in the drive/head 
  601.            register (see section 5.3.2.8), and by a jumper or switch 
  602.            on the drive designating it as either a master or slave. 
  603.            Optionally some drives may provide provision to be 
  604.            jumpered to indicate the drive as a master with no slaves 
  605.            present. When the DRV bit is reset, the master drive is 
  606.            selected, and when the DRV bit is set, the slave drive is 
  607.            selected. When drives are daisy chained, one must be set 
  608.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  609.  
  610.            as the master and one as the slave. When a single drive is 
  611.            attached to the interface it must be set as the master.            
  612.  
  613.            Throughout this document, drive selection always refers to 
  614.            the state of the DRV bit, and the position of the 
  615.            master/slave jumper or switch.
  616.  
  617.  
  618. 5.3.2   I/O Port Descriptions
  619.  
  620.          Input and output to or from the drive is through an I/O Port 
  621.          that routes the input or output data to or from fourteen 
  622.          registers (selected) by a code on the CS1FX-, CS3FX-, DA2, 
  623.          DA1, DA0, DIOR- and DIOW- lines from the Host. Ten of the 
  624.          registers are used for commands to the drive or status, one 
  625.          is the Data Port and three are used for control and 
  626.          alternate status. These are referred to herein as the 
  627.          Command Block Registers and the Control Block Registers.
  628.          Table 5.3-1 lists these registers and the addresses that 
  629.          select them, together with the functions of addresses that 
  630.          don't select one of the registers. Logic conventions are 1 = 
  631.          signal asserted; 0 = signal negated; x = does not matter 
  632.          which it is.
  633.  
  634.  
  635.          TABLE 5.3-1. I/O PORT FUNCTIONS|SELECTION ADDRESSES
  636.  
  637.        ADDRESS                          FUNCTIONS                    
  638. CS1FX  CS3FX  DA2  DA1  DA0  READ (DIOR- = 1)    WRITE (DIOW- = 1)
  639.  
  640.  1      1      X    X    X   Invalid Address     Invalid Address
  641.  0      0      X    X    X   Invalid Address     Invalid Address
  642.  0      1      0    X    X   Data Bus High Imped Not used
  643.  0      1      1    0    X   Data Bus High Imped Not used
  644.  
  645. Command Block Registers
  646.  
  647.  1      0      0    0    0   Data Port           Data Port
  648.  1      0      0    0    1   Error Register      Precomp Cyl. Reg.
  649.  1      0      0    1    0   Sector Count Reg.   Sector Count Reg.
  650.  1      0      0    1    1   Sector Number Reg.  Sector Number Reg.
  651.  1      0      1    0    0   Cylinder Low Reg.   Cylinder Low Reg.
  652.  1      0      1    0    1   Cylinder High Reg.  Cylinder High Reg.
  653.  1      0      1    1    0   Drive|Head Reg.     Drive|Head Reg.
  654.  1      0      1    1    1   Status Register     Command Register
  655.  
  656. Control Block Registers
  657.  
  658.  0      1      1    1    0  Alternate Status Reg Digital Output Reg.
  659.  0      1      1    1    1   Drive Address Reg.  Not used
  660.  
  661.        The following paragraphs describe the operations of the 
  662.        registers listed in Table 5.3-1.
  663.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  664.  
  665.  
  666. 5.3.2.1 Data Port (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 0; read/write)
  667.  
  668.            The data port is the register through which all data is 
  669.            passed on read and write commands. It is also the port to 
  670.            which the sector table is transferred during format 
  671.            commands. All transfers are high speed 16 bit I/O 
  672.            operations except for ECC bytes transferred during 
  673.            read/write long commands, which are slower 8 bit 
  674.            operations.
  675.  
  676.  
  677. 5.3.2.2 Error Register (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 1; read 
  678.          only)
  679.  
  680.            This error register contains status from the last command          
  681.            executed by the drive. The contents of this register are          
  682.            valid only when the error bit (ER) is set in the status          
  683.            register, unless the drive has just powered up or 
  684.            completed execution of its internal diagnostic, in which 
  685.            case the register contains a status code (see section 
  686.            5.3.2.8). The error bits in the register are defined 
  687.            below:
  688.  
  689.    b7                                                          b0    
  690.  ------------------------------------------------------------------- 
  691. | BBK   |  UNC   |   --   |  IDNF  |  --   | ABRT  |  TKO  |  AMNF  |
  692.  ------------------------------------------------------------------- 
  693.  
  694. where    BBK  indicates a bad block mark was detected in the 
  695.               requested sector's ID field.
  696.  
  697.          UNC  indicates an uncorrectable data error has been 
  698.               encountered.
  699.  
  700.          IDNF indicates the requested sector's ID field could not be 
  701.               found.
  702.  
  703.          ABRT indicates the requested command has been aborted due to 
  704.               a drive status error (not ready, write fault, etc.) or 
  705.               because the command code is invalid.
  706.  
  707.          TKO  indicates track 0 has not been found during a 
  708.               recalibrate command.
  709.  
  710.          AMNF indicates the data address mark has not been found 
  711.               after finding the correct ID field.
  712.  
  713.          --   not used. These bits are reset to zero.
  714.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  715.  
  716. 5.3.2.3 Write Precompensation Cyl. (CS1FX- CS3FX- = 10; DA2 DA1 DA0
  717.                                      = 1; write only)
  718.  
  719.            The starting cylinder for write precompensation is 
  720.            controlled by the contents of this register. The starting 
  721.            physical cylinder is 4 times the value in this register. 
  722.            This register MAY BE ignored by some drives. In this case 
  723.            use of write precompensation is vendor specific.
  724.  
  725.  
  726. 5.3.2.4 Sector Count (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 2; 
  727. read/write)
  728.  
  729.            The sector count defines the number of sectors of data to 
  730.            be read or written. If the value in this register is zero, 
  731.            a count of 256 sectors is specified. This count is 
  732.            decremented as each sector is read so the register 
  733.            contains the number of sectors left to access in the event 
  734.            of an error in a multisector operation. The contents of 
  735.            this register define the number of sectors per track when 
  736.            executing an initialize drive parameters or format 
  737.            command.
  738.  
  739. 5.3.2.5 Sector Number (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 3;
  740.                         read/write)
  741.  
  742.            This register contains the starting sector number for any 
  743.            disk access. At the completion of each sector, and at the 
  744.            end of the command, this register is updated to reflect 
  745.            the last sector read correctly, or the sector on which an 
  746.            error occurred.
  747.  
  748. 5.3.2.6 Cylinder Low (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 4; 
  749. read/write)
  750.  
  751.            The cylinder low register contains the low order 8 bits of 
  752.            the starting cylinder address for any disk access. At the 
  753.            completion of each sector, and at the end of the command, 
  754.            this register is updated to reflect the current cylinder 
  755.            number.
  756.  
  757. 5.3.2.7 Cylinder High (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 5;
  758.                         read/write)
  759.  
  760.            The cylinder high register contains the high order bits of 
  761.            the starting cylinder address for any disk access. At the 
  762.            completion of each sector, and at the end of the command, 
  763.            this register is updated to reflect the current cylinder 
  764.            number. The most significant bits of the cylinder address 
  765.            should be loaded into the cylinder high register.
  766.  
  767.  
  768.  
  769.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  770.  
  771.  
  772. 5.3.2.8 Drive/Head (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 6; read/write)
  773.  
  774.            This register contains the drive and head numbers, as 
  775.            defined below:
  776.  
  777.                b7                               b3 - - b0    
  778.            --------------------------------------------------
  779.            |    1   |   0   |   1   |   DRV   |      HEAD   |
  780.            --------------------------------------------------
  781.  
  782.            DRV  is the binary encoded drive selected number. When 
  783.            this bit is negated, the master drive is selected, and 
  784.            when this bit is asserted, the slave drive is selected.  
  785.  
  786.            HEAD is the four bit binary encoded head select number.
  787.  
  788.            At the completion of each sector, and at the end of the 
  789.            command, this register is updated to reflect the currently 
  790.            selected head.
  791.  
  792. 5.3.2.9 Status Register (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 7; read
  793.                           only)
  794.  
  795.            This register contains the drive/controller status. The 
  796.            contents of this register are updated at the completion of 
  797.            each command. If the busy bit is asserted, no other bits 
  798.            are valid. The host reading this register when an 
  799.            interrupt is pending is considered to be the interrupt 
  800.            acknowledge, and any pending interrupt is therefore 
  801.            cleared whenever this register is read. The bits in this 
  802.            register are defined below:
  803.  
  804.    b7                                                          b0    
  805.  ------------------------------------------------------------------- 
  806. | BSY   |  DRDY  |  DWF   |   DSC  |  DRQ  | CORR  |  IDX  |   ERR  |
  807.  ------------------------------------------------------------------- 
  808.  
  809.          BSY  is the busy bit, which is asserted whenever the drive 
  810.               has access to the command block registers, and the host 
  811.               is locked out from accessing the command block. This 
  812.               bit is asserted under the following circumstances:
  813.  
  814.               1.   at assertion of the RESET- signal on the interface, 
  815.                    or at assertion of the SRST bit in the digital 
  816.                    output register.
  817.  
  818.               2.   immediately upon host write of the command 
  819.                    register with a read, read long, read buffer seek, 
  820.                    recal, initialize drive parameters, verify, 
  821.                    identify, or diagnostic command.
  822.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  823.  
  824.  
  825.               3.   within 5 microseconds following transfer of 512 
  826.                    bytes  of  data during execution of  a  write, 
  827.                    format track, or write buffer command, or 512 bytes 
  828.                    of  data  and the appropriate  number  of  ECC 
  829.                    bytes during the execution of a write long command.
  830.  
  831.               When BSY is asserted, any host read of a shared 
  832.               register is inhibited and the status register is read 
  833.               instead.
  834.  
  835.          DRDY is the drive ready indication. When there is an error, 
  836.               this bit is not changed until the status register is 
  837.               read by the host, at which time the bit again indicates 
  838.               the current readiness of the drive. This bit should be 
  839.               negated at power up and remain negated until the drive 
  840.               is up to speed and ready to accept a command.
  841.  
  842.          DWF  is the drive write fault bit. When there is an error, 
  843.               this bit is not changed until the status register is 
  844.               read by the host, at which time the bit again indicates 
  845.               the current write fault status.
  846.  
  847.          DSC  is the drive seek complete bit. This bit is asserted 
  848.               when the disk drive heads are settled over a track. 
  849.               When there is an error, this bit is not changed until 
  850.               the status register is read by the host, at which time 
  851.               the bit again indicates the current seek complete 
  852.               status.
  853.  
  854.          DRQ  is the data request bit, which indicates, when 
  855.               asserted, that the drive is ready for transfer of a 
  856.               word or byte of data between the host and the data port.
  857.  
  858.          CORR is the corrected data bit, which is asserted when a 
  859.               correctable data error has been encountered and the 
  860.               data has been corrected. This condition does not 
  861.               terminate a multisector read operation.
  862.  
  863.          IDX  is the index bit which is asserted once per disk 
  864.               revolution.
  865.  
  866.          ERR  is the error bit, which indicates when asserted that 
  867.               the previous command ended in some type of error. The 
  868.               other bits in the status register, and the bits in the 
  869.               error register have additional information as to the 
  870.               cause of the error.
  871.  
  872.  
  873.  
  874.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  875.  
  876. 5.3.2.10 Command Register (CS1FX- CS3FX- = 10; DA2 DA1 DA0 = 7, write
  877.                             only)
  878.  
  879.            The eight bit code written to this register transfers to 
  880.            the drive the command that the host is requesting. Command 
  881.            execution begins immediately after this register is 
  882.            written. A list of executable commands with the command 
  883.            codes and necessary parameters for each command follows.
  884.  
  885.                                COMMAND CODE       PARAMETERS USED         
  886. COMMAND NAME                 b7              b0  PC SC  SN  CY  DH        
  887.                            -------------------- -------------------
  888. recalibrate                | 0 0 0 1   x x x x  | n  n   n   n   D|
  889. read sector(s)             | 0 0 1 0   0 0 L R  | n  y   y   y   y|
  890. write sector(s)            | 0 0 1 1   0 0 L R  | n  y   y   y   y|
  891. read verify sector(s)      | 0 1 0 0   0 0 0 R  | n  y   y   y   y|
  892. format track               | 0 1 0 1   0 0 0 0  | n  y   n   y   y|
  893. seek                       | 0 1 1 1   x x x x  | n  n   n   y   y|
  894. execute drive diagnostic   | 1 0 0 1   0 0 0 0  | n  n   n   n   D|
  895. initialize drive           | 1 0 0 1   0 0 0 1  | n  y   n   n   y|
  896.   parameters               |                    |                 |
  897. read sector buffer         | 1 1 1 0   0 1 0 0  | n  n   n   n   D|
  898. write sector buffer        | 1 1 1 0   1 0 0 0  | n  n   n   n   D|
  899. identify drive             | 1 1 1 0   1 1 0 0  | n  n   n   n   D|
  900. set buffer mode            | 1 1 1 0   1 1 1 1  | n  n   n   n   n|
  901. read multiple              | 1 1 0 0   0 1 0 0  | n  y   y   y   y|
  902. write multiple             | 1 1 0 0   0 1 0 1  | n  y   y   y   y|
  903. set multiple mode          | 1 1 0 0   0 1 1 0  | n  y   n   n   D|
  904.                            |---------------------------------------
  905.  
  906.          L    is the long bit, if 1, read/write long commands are 
  907.               executed, if 0, normal read/write commands are 
  908.               performed.
  909.  
  910.          R    is the retry bit, if 0, retries are enabled, if 1, 
  911.               retries are disabled.
  912.  
  913.          PC   is the write precomp register.
  914.  
  915.          SC   is the sector count register.
  916.  
  917.          SN   is the sector number register.
  918.  
  919.          CY   is the cylinder registers.
  920.  
  921.          DH   is the drive/head register
  922.  
  923.  
  924.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  925.  
  926. 5.3.2.10 continued
  927.  
  928.           y   means the register contains a valid parameter for this 
  929.               command. For the drive|head register, y means that both 
  930.               the drive and head parameters are used.
  931.  
  932.           n   means the register does not contain a valid parameter 
  933.               for this command.
  934.  
  935.           D   means only the drive parameter is valid and not the 
  936.               head parameter.
  937.  
  938.           x   is a don't care.
  939.  
  940. 5.3.2.11 Alternate Status (CS1FX- CS3FX- = 01; DA2 DA1 DA0 = 6; read
  941.                             only)
  942.  
  943.            This register contains the same information as the status 
  944.            register in the command block. The only difference being 
  945.            that reading this register does not imply interrupt 
  946.            acknowledge or reset a pending interrupt.
  947.    b7                                                          b0    
  948.  ------------------------------------------------------------------- 
  949. | BSY   |  DRDY  |  DWF   |  DSC   |  DRQ  | CORR  |  IDX  |  ERR   |
  950.  ------------------------------------------------------------------- 
  951.  
  952.           See section 5.3.2.9 for definitions of the bits in this 
  953.           register.
  954.  
  955. 5.3.2.12 Digital Output (CS1FX- CS3FX- = 01; DA2 DA1 DA0 = 6; write
  956.                           only)
  957.  
  958.           This register contains two control bits as follows:
  959.    b7                                                          b0    
  960.  ------------------------------------------------------------------- 
  961. |  --   |   --   |   --   |   --   |  --   | SRST  |  IEN- |   --   |
  962.  ------------------------------------------------------------------- 
  963.  
  964.           IEN- is the enable bit for the disk drive interrupt to the 
  965.                host. When this bit is asserted, and the drive is 
  966.                selected, the host interrupt, INTRQ, is enabled, 
  967.                through a tri-state buffer, to the host. When this bit 
  968.                is negated, or the drive is not selected the INTRQ pin 
  969.                is in a high impedance state, regardless of the 
  970.                presence or absence of a pending interrupt.
  971.  
  972.           SRST is the host software reset bit. The drive is held 
  973.                reset when this bit is asserted, and enabled when this 
  974.                bit is negated. If two drives are daisy chained on the 
  975.                interface, this bit resets and enables both drives 
  976.                simultaneously.
  977.  
  978.           --   these bits are not used.
  979.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  980.  
  981. 5.3.2.13 Drive Address (CS1FX- CS3FX- = 01; DA2 DA1 DA0 = 7; read
  982.                          only)
  983.  
  984.            This port loops back the drive select and head select 
  985.            addresses of the currently selected drive. The bits in 
  986.            this port are as follows:
  987.  
  988.    b7                                                          b0    
  989.  ------------------------------------------------------------------- 
  990. | RSVD  |  WTG-  |  HS3-  |  HS2-  | HS1-  | HS0-  |  DS1- |  DS0-  |
  991.  ------------------------------------------------------------------- 
  992.           RSVD is reserved and undriven by the drive. When the host 
  993.                reads the drive address register, this bit must be in 
  994.                a high impedance state.
  995.           WTG- is the write gate bit, which is asserted when writing 
  996.                to the disk drive is in progress.
  997.           HS3- through HS0- are the one's complement of the binary 
  998.                coded address of the currently selected head. For 
  999.                example, if HS3- through HS0- are 1 1 0 0, 
  1000.                respectively, head 3 is selected. HS3- is the most 
  1001.                significant bit.
  1002.           DS1- is the drive select bit for drive 1, and should be 
  1003.                asserted when drive 1 is selected and active.
  1004.           DS0- is the drive select bit for drive 0, and should be 
  1005.                asserted when drive 0 is selected and active.
  1006.  
  1007.                                CAUTION
  1008.  
  1009.            Use care interpreting these bits, as they do not always 
  1010.            represent the expected status of drive operations at the 
  1011.            instant the status was put into this register. This is 
  1012.            because of the use of caching, translate mode and the 
  1013.            master/slave concept with each drive having its own 
  1014.            embedded controller.
  1015.  
  1016. 5.3.3    Reset Response
  1017.  
  1018.            When the drive is reset, either by the host reset 
  1019.            interface pin, RESET-, or by the host software reset bit, 
  1020.            SRST, in the digital output register, the drive asserts 
  1021.            BSY immediately. Once the reset has been removed and the 
  1022.            drive has been reenabled, with BSY still asserted, the 
  1023.            drive performs any necessary hardware initialization, 
  1024.            clears any previously programmed drive parameters and 
  1025.            reverts to the default condition, loads the command block 
  1026.            registers with their initial values, and then negates BSY. 
  1027.            No interrupt is generated when initialization is complete, 
  1028.            and no self test is performed. The initial values (hex) 
  1029.            for the command block registers are as follows:
  1030.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1031.  
  1032.           Error register       =   01
  1033.           Sector Count         =   01
  1034.           Sector Number        =   01
  1035.           Cylinder Low         =   00
  1036.           Cylinder High        =   00
  1037.           Drive|Head register  =   00
  1038.  
  1039. 5.3.4    Command Information
  1040.  
  1041.            Commands are issued to the drive by loading the pertinent 
  1042.            registers in the command block with the needed parameters, 
  1043.            asserting the interrupt enable bit, IEN- in the digital 
  1044.            output register, and then writing the command code to the 
  1045.            command register. Execution begins as soon as the command 
  1046.            register is written.
  1047.  
  1048. 5.3.4.1  Error Reporting
  1049.  
  1050.            The errors that are valid (although valid, it is not a 
  1051.            requirement that all valid conditions be  implimented) 
  1052.            for each command are defined in the matrix below:
  1053.  
  1054.                    BBK  UNC  IDNF  ABRT  TKO  AMNF  DRDY  DWF  DSC  CORR  ERR
  1055. RECALIBRATE                         V     V          V     V    V          V
  1056. READ SECT           V    V    V     V          V     V     V    V     V    V
  1057. READ LONG           V         V     V          V     V     V    V          V
  1058. WRITE SECT          V         V     V                V     V    V          V
  1059. WRITE LONG          V         V     V                V     V    V          V
  1060. READ VERIFY         V    V    V     V          V     V     V    V     V    V
  1061. FORMAT TRK                    V     V                V     V    V          V
  1062. SEEK                          V     V                V     V    V          V
  1063. DRIVE DIAG                                                                 V
  1064. INIT DRIVE PARMS
  1065. READ BUFFER
  1066. WRITE BUFFER
  1067. IDENTIFY DRIVE                      V                V     V    V          V
  1068. INVALID CMD CODE                    V                                      V
  1069. SET BUFFER MODE                     V                                      V
  1070. READ MULTIPLE       V    V    V     V          V     V     V    V     V    V
  1071. WRITE MULTIPLE      V         V     V                V     V    V          V
  1072. SET MULTIPLE MODE                   V                                      V
  1073.          BBK  is bad block detected
  1074.          UNC  is uncorrectable data error
  1075.          IDNF is requested ID not found
  1076.          ABRT is aborted command error
  1077.          TK0  is track 0 not found error
  1078.          AMNF is data address mark not found error
  1079.          DRDY is disk drive not ready detected
  1080.          DWF  is disk drive write fault detected
  1081.          DSC  is disk drive seek complete not detected
  1082.          CORR is corrected data error
  1083.          ERR  is the error bit in the status register
  1084.          V    means error type is valid for this command
  1085.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1086.  
  1087.  
  1088. 5.3.5   Translate Mode
  1089.  
  1090.            The  translate mode is optional and  device  specific. 
  1091.            The drive firmware translates logical sector  requests 
  1092.            from  the  host  into  corresponding  physical  sector 
  1093.            requests.  In  the  nontranslate mode,  the  drive  is 
  1094.            accessed based on its actual physical parameters.
  1095.  
  1096. 5.3.6   Command Descriptions
  1097.  
  1098.            The  drive  shall  implement  the   following 
  1099.            mandatory commands:
  1100.  
  1101.          Recalibrate
  1102.          Read Sector(s)
  1103.          Write Sector(s)
  1104.          Read Verify Sector(s)
  1105.          Format desired track
  1106.          Seek
  1107.          Execute Drive Diagnostic
  1108.          Initialize Drive Parameters
  1109.  
  1110.            The   drive  may  implement  the  following   optional 
  1111.            commands:
  1112.  
  1113.          Read Buffer
  1114.          Write Buffer
  1115.          Identify Drive
  1116.          Set Buffer Mode
  1117.          Read Multiple
  1118.          Write Multiple
  1119.          Set Multiple Mode
  1120.  
  1121.  
  1122. 5.3.6.1 Recalibrate (M)
  1123.  
  1124.            This command moves the read|write heads from anywhere on 
  1125.            the disk to cylinder 0. Upon receipt of the command, the 
  1126.            drive asserts BSY and issues a seek to cylinder zero. The 
  1127.            drive then waits for the seek to complete before updating 
  1128.            status, negating BSY and generating an interrupt. If the 
  1129.            drive cannot reach cylinder 0, the error bit is asserted 
  1130.            in the status register, and the track 0 bit asserted in 
  1131.            the error register.
  1132.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1133.  
  1134. 5.3.6.2 Read Sector(s). (M)
  1135.  
  1136.            This command reads from 1 to 256 sectors as specified in 
  1137.            the command block (sector count equal to 0 requests 256 
  1138.            sectors), beginning at the specified sector. As soon as 
  1139.            the command register is written, the drive asserts the BSY 
  1140.            bit and begins execution of the command. If the drive is 
  1141.            not already on the desired track, an implied seek is 
  1142.            performed. Once at the desired track, the drive searches 
  1143.            for the appropriate ID field. If retries are disabled and 
  1144.            two index pulses have occurred without error free reading 
  1145.            of the requested ID, an ID not found error is posted in 
  1146.            the error register. If retries are enabled, up to a vendor 
  1147.            specific number of attempts may be made to read the 
  1148.            requested ID before reporting an error. If the ID is read 
  1149.            correctly, the data address mark must be recognized within 
  1150.            a specified number of bytes, or the data address mark not 
  1151.            found error is reported. Once the data address mark is 
  1152.            found, the data field is read into the sector buffer, 
  1153.            error bits are asserted if an error was encountered, the 
  1154.            DRQ bit is asserted, and an interrupt is generated. The 
  1155.            DRQ bit is always asserted regardless of the presence or 
  1156.            absence of an error condition at the end of the sector. 
  1157.            Upon command completion, the command block registers 
  1158.            contain the cylinder, head, and sector number of the last 
  1159.            sector read.
  1160.  
  1161.            Multiple sector reads assert DRQ and generate an interrupt 
  1162.            when the sector buffer is filled at the completion of each 
  1163.            sector, and the drive is ready for the data to be read by 
  1164.            the host. DRQ is negated and BSY is asserted immediately 
  1165.            when the host empties the sector buffer. If an error 
  1166.            occurs during a multiple sector read, the read terminates 
  1167.            at the sector where the error occurs. The command block 
  1168.            registers contains the cylinder, head, and sector number 
  1169.            of the sector where the error occurred. The host may then 
  1170.            read the command block to determine what error has 
  1171.            occurred, and on which sector. If the error was either 
  1172.            a correctable data error or an uncorrectable data 
  1173.            error, the flawed data is loaded into the sector 
  1174.            buffer.
  1175.  
  1176.            A read long is executed by setting the long bit in the 
  1177.            command code. The read long command returns the data and 
  1178.            the ECC bytes contained in the data field of the desired 
  1179.            sector. During a read long, the drive does not check the 
  1180.            ECC bytes to determine if there has been any type of data 
  1181.            error. Only single sector read long operations are 
  1182.            supported.
  1183.  
  1184.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1185.  
  1186. 5.3.6.3 Write Sector(s) (M)
  1187.  
  1188.            This command writes from 1 to 256 sectors as specified in 
  1189.            the command block (sector count equal to 0 requests 256 
  1190.            sectors), beginning at the specified sector. As soon as 
  1191.            the command register is written, the drive asserts the DRQ 
  1192.            bit and waits for the host to fill the sector buffer with 
  1193.            the data to be written. No interrupt is generated to start 
  1194.            the first buffer fill operation. Once the buffer is full, 
  1195.            the drive negates DRQ, asserts BSY and begins command 
  1196.            execution. If the drive is not already on the desired 
  1197.            track, an implied seek is performed. Once at the desired 
  1198.            track, the drive searches for the appropriate ID field. If 
  1199.            retries are disabled and two index pulses have occurred 
  1200.            without error free reading of the requested ID, an ID not 
  1201.            found error is posted in the error register. If retries 
  1202.            are enabled, up to a vendor specific number of attempts 
  1203.            may be made to read the requested ID before reporting an 
  1204.            error. If the ID is read correctly, the data loaded in the 
  1205.            buffer is written to the data field of the sector, 
  1206.            followed by the ECC bytes. Upon command completion, the 
  1207.            command block registers contain the cylinder head, and 
  1208.            sector number of the last sector read.  
  1209.  
  1210.            Multiple sector writes assert DRQ and generate an 
  1211.            interrupt each time the buffer is ready to be filled. DRQ 
  1212.            is negated and BSY is asserted immediately when the host 
  1213.            fills the sector buffer. If an error occurs during a 
  1214.            multiple sector write, writing terminates at the sector 
  1215.            where the error occurs. The command block registers 
  1216.            contain the cylinder, head, and sector number of the 
  1217.            sector where the error occurred. The host may then read 
  1218.            the command block to determine what error has occurred, 
  1219.            and on which sector.
  1220.  
  1221.            A write long is executed by setting the long bit in the 
  1222.            command code. The write long command writes the data and 
  1223.            the ECC bytes directly from the sector buffer; the drive 
  1224.            does not generate the ECC bytes itself. Only single sector 
  1225.            write long operations are supported.
  1226.  
  1227. 5.3.6.4 Read Verify Sector(s) (M)
  1228.  
  1229.            This command is identical to the read sectors command, 
  1230.            except that DRQ is never asserted, no data is transferred 
  1231.            to the host and the long bit is not valid. The drive 
  1232.            asserts BSY as soon as the command register is written and 
  1233.            negates BSY and generates an interrupt when the requested 
  1234.            sectors have been verified. Upon command completion, the 
  1235.            command block registers contain the cylinder, head, and 
  1236.            sector number of the last sector verified.
  1237.  
  1238.  
  1239.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1240.  
  1241.  
  1242.            If an error occurs during a multiple sector verify, the 
  1243.            read terminates at the sector where the error occurs. The 
  1244.            command block registers contain the cylinder, head, and 
  1245.            sector number of the sector where the error occurred.
  1246.  
  1247. 5.3.6.5 Format Track (M)
  1248.  
  1249.            If a Format Track command is issued to the drive, it will 
  1250.            react differently depending on whether the logical or 
  1251.            physical mode had been previously indicated by the set 
  1252.            parameters command: 
  1253.  
  1254.            This command formats the track specified in the command 
  1255.            block, with the number of sectors specified in the sector 
  1256.            count register. As soon as the command register is 
  1257.            written, the drive sets the DRQ bit and waits for the host 
  1258.            to fill the sector buffer with the interleave table. When 
  1259.            the buffer is full, the drive negates DRQ, asserts BSY and 
  1260.            begins command execution. If the drive is not already on 
  1261.            the desired track, an implied seek is performed. Once at 
  1262.            the desired track, the ID'S are written using the 
  1263.            interleave table from the sector buffer and the data 
  1264.            fields are written with all zeroes. Formatting begins as 
  1265.            soon as the index pulse is detected, by writing the first 
  1266.            physical sector with the logical sector number in the 
  1267.            first entry of the interleave table. Subsequent physical 
  1268.            sectors are formatted in turn from the table. Media 
  1269.            defects are marked bad on a sector level, allowing the 
  1270.            remainder of the track to be used. When the specified 
  1271.            number of sectors have been formatted, the drive fills the 
  1272.            remainder of the track to index with gap bytes. At the 
  1273.            completion of the track, the drive negates BSY and 
  1274.            generates an interrupt.  
  1275.  
  1276.            The interleave table is made up of two bytes per sector on 
  1277.            the track. The first byte is 00 if the sector is to be 
  1278.            formatted normally, or 80h if the sector is to be 
  1279.            formatted bad. The second byte is the logical sector 
  1280.            number of the sector. After writing the interleave table, 
  1281.            additional bytes should be loaded into the buffer until it 
  1282.            is full (512 bytes). The contents of a typical interleave 
  1283.            table are shown below, for a 27 sector track with an 
  1284.            interleave of 1 and sector 3 marked bad.
  1285.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1286.  
  1287.  
  1288.     00  01  00  02  80  03  00  04  00  05  00  06  00  07  00  08
  1289.     00  09  00  0A  00  0B  00  0C  00  0D  00  0E  00  0F  00  10
  1290.     00  11  00  12  00  13  00  14  00  15  00  16  00  17  00  18
  1291.     00  19  00  1A  00  1B  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd
  1292.     dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd
  1293.     dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd
  1294.                                 .
  1295.                                 .
  1296.                                 .
  1297.                                 .
  1298.     dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd  dd
  1299.  
  1300.          dd   is a don't care byte used to make up a total of 512 
  1301.               bytes
  1302.  
  1303. 5.3.6.6 Seek (M)
  1304.  
  1305.            This command initiates a seek to the track and selects the 
  1306.            head specified in the command block. The drive need not be 
  1307.            formatted for a seek to execute properly. When the command 
  1308.            is issued, the drive asserts BSY in the status register, 
  1309.            initiates the seek, negates BSY, and generates an 
  1310.            interrupt. The seek is not completed before the drive 
  1311.            returns the interrupt. If a new command is issued to a 
  1312.            drive while a seek is being executed, the drive delays 
  1313.            with BSY asserted for the seek to complete before 
  1314.            executing the new command.
  1315.  
  1316. 5.3.6.7 Execute Drive Diagnostic (M)
  1317.  
  1318.            This command performs the internal diagnostic tests 
  1319.            implemented by the drive. The diagnostic tests shall be 
  1320.            executed only upon receipt of this command. They shall not 
  1321.            be executed automatically at power up or after a reset. 
  1322.            The drive asserts BSY immediately upon receipt of the 
  1323.            command. If the drive is a master, it does not drive the 
  1324.            disk active/slave present signal, DASP-, during 
  1325.            diagnostics  and  if the drive is a slave,  it  drives 
  1326.            DASP- to the asserted state. The drive then performs the 
  1327.            diagnostic tests and saves the results. If the drive is a 
  1328.            master  and  a slave is connected , it waits up  to  5 
  1329.            seconds for the slave to complete its diagnostics  and 
  1330.            then  reports the diagnostic results for  a  connected 
  1331.            slave drive. If the drive is a master and no slave  is 
  1332.            present,  it reports only its own diagnostic  results. 
  1333.            Once the slave reporting requirement, if any, is  met, 
  1334.            the drive negates BSY, and generates an interrupt. The 
  1335.            value  in  the error register should be  viewed  as  a 
  1336.            unique  8  bit code and not as the  single  bit  flags 
  1337.            defined in section 5.3.2.2. Table 5.3-3 below  details 
  1338.            the codes and the corresponding explanation:
  1339.  
  1340.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1341.  
  1342.                       TABLE 5.3-3. ERROR CODES
  1343.  
  1344.          Error
  1345.          Code     Description                                        
  1346.  
  1347.          01       no error detected
  1348.          02       formatter device error
  1349.          03       sector buffer error
  1350.          04       ECC circuitry error
  1351.          05       controller microprocessor error
  1352.          8x       slave drive failed (see note)
  1353.  
  1354. Note:    If the  slave drive fails diagnostics, the master  drive 
  1355.          "ORs"  gates 80 hex with its own status and  loads  that 
  1356.          code into the error register. If the slave drive  passes 
  1357.          diagnostics  or there is no slave drive  connected,  the 
  1358.          master drive "ORs" 00 with its own status and loads that 
  1359.          code into the error register.
  1360.  
  1361.  
  1362. 5.3.6.8  Initialize Drive Parameters (M)
  1363.  
  1364.            This command enables the host to control certain drive 
  1365.            parameters. Some parameters are standard while  others 
  1366.            are vendor specific. Table ?? enumerates the  register 
  1367.            values for this function.
  1368.  
  1369.  
  1370.                                 (TABLE TBD) 
  1371.  
  1372.  
  1373. 5.3.6.9  Read Buffer (O)
  1374.  
  1375.            The read buffer command enables the host to read the 
  1376.            current contents of the drive's sector buffer. When this 
  1377.            command is issued, the drive asserts BSY, sets up the 
  1378.            sector buffer for a read operation asserts DRQ, negates 
  1379.            BSY, and generates an interrupt. The host then reads up to 
  1380.            512 bytes of data from the buffer.
  1381.  
  1382. 5.3.6.10 Write Buffer (O)
  1383.  
  1384.            The write buffer command enables the host to overwrite the 
  1385.            contents of the drive's sector buffer with any data 
  1386.            pattern desired. When this command is issued, the drive 
  1387.            asserts BSY, sets up the sector buffer for a write 
  1388.            operation, asserts DRQ, negates BSY, and generates an 
  1389.            interrupt. The host then writes up to 512 bytes of data to 
  1390.            the buffer.
  1391.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1392.  
  1393. 5.3.6.11 Identify Drive (O)
  1394.  
  1395.            The identify command enables the host to receive parameter 
  1396.            information from the drive. When the command is issued, 
  1397.            the drive asserts BSY, stores the required parameter 
  1398.            information in the sector buffer, asserts the DRQ bit, and 
  1399.            generates an interrupt. The host then reads the 
  1400.            information out of the sector buffer. The parameter words 
  1401.            in the buffer have the following arrangement and meanings, 
  1402.            all reserved bits or words should be zeroes.
  1403.           Word 0   General configuration
  1404.           Word 1   Number of fixed cylinders
  1405.           Word 2   Reserved
  1406.           Word 3   Number of heads
  1407.           Word 4   Number of unformatted bytes per physical track
  1408.           Word 5   Number of unformatted bytes per sector
  1409.           Word 6   Number of physical sectors per track
  1410.           Word 7
  1411.             :      Reserved
  1412.             9
  1413.           Word 10
  1414.             :      Serial number (20 ASCII characters, Oh - not 
  1415.                    specified).
  1416.           Word 19
  1417.           Word 20  Controller type
  1418.                      0000  not specified
  1419.                      0001  single ported single sector buffer
  1420.                      0002  dual ported multiple sector buffer
  1421.                      0003  dual ported multiple sector buffer
  1422.                            with look-ahead read
  1423.                      0004
  1424.                       :    reserved
  1425.                      FFFF
  1426.           Word 21  Controller buffer size in 512 byte increments (Oh 
  1427.                    - not specified).
  1428.           Word 22  Number of ECC bytes passed on read|write long 
  1429.                    commands (Oh - not specified).
  1430.           Word 23
  1431.             :      Controller firmware revision (8 ASCII characters, 
  1432.                    Oh = not specified).
  1433.           Word 26
  1434.           Word 27
  1435.             :      Model number (40 ASCII characters, Oh = not 
  1436.                    specified).
  1437.           Word 46
  1438.           Word 47  Number of sectors that can be transferred per 
  1439.                    interrupt on read and write multiple commands (0 = 
  1440.                    read|write multiple commands not implemented).
  1441.           Word 48  Doubleword I/O capability, 0 = cannot perform 
  1442.                    doubleword I/O, 1 = can perform doubleword I/O.
  1443.           Word 49
  1444.             :      Reserved
  1445.           Word 255
  1446.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1447.  
  1448. 5.3.6.11 continued
  1449.  
  1450. The bits in the general configuration word have the 
  1451. following definitions:
  1452.  
  1453.           Bit 0    Reserved
  1454.           Bit 1    1=hard sectored
  1455.           Bit 2    1=soft sectored
  1456.           Bit 3    1=not MFM encoded
  1457.           Bit 4    1=head switch time greater than 15 us
  1458.           Bit 5    1=spindle motor control option implemented
  1459.           Bit 6    1=fixed drive
  1460.           Bit 7    1=removable cartridge drive
  1461.           Bit 8    1=transfer rate less than or equal to 5Mb|s
  1462.           Bit 9    1=transfer rate greater than 5Mb|s bus less than 
  1463.                    or equal to 10Mb|s
  1464.           Bit 10   1=transfer rate greater than 10Mb|s
  1465.           Bit 11   1=rotational speed tolerance is greater than .5%
  1466.           Bit 12   0
  1467.           Bit 13   0
  1468.           Bit 14   1
  1469.           Bit 15   0
  1470.  
  1471. 5.3.6.12 Set Buffer Mode Command (O)
  1472.  
  1473.            This command enables or disables the read look-ahead 
  1474.            feature. Prior to command issuance, the write 
  1475.            precompensation register should be loaded with either AAh, 
  1476.            to enable, or 55h, to disable read look-ahead operation. 
  1477.            Upon receipt of the command, the controller asserts and 
  1478.            checks at the write precompensation register contents. If 
  1479.            the register contents are either 55h or AAh, the 
  1480.            appropriate mode is selected. Any other value in the 
  1481.            register results in an aborted command. At command 
  1482.            completion, the controller negates BSY and generates an 
  1483.            interrupt. At power up, or after a software or hardware 
  1484.            reset, the default mode is read look-ahead enabled.  
  1485.  
  1486. 5.3.6.13 Read Multiple Command (O)
  1487.  
  1488.            The read multiple command performs similarly to the read 
  1489.            sectors command except that data transfers are multiple 
  1490.            sector blocks and the long bit is not valid. Command 
  1491.            execution is identical to the read sectors operation but 
  1492.            with several sectors transferred to the host as a block 
  1493.            without intervening interrupts and requiring only DRQ 
  1494.            qualification of the transfer at the start of the block, 
  1495.            not on each sector. The block count, which is the number 
  1496.            of sectors to be transferred as a block, is programmed by 
  1497.            the set multiple mode command, which must be executed 
  1498.            prior to the read multiple command. When the read multiple 
  1499.            command is issued, the sector count register contains the 
  1500.            number of sectors (not the number of blocks or the block 
  1501.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1502.  
  1503.            count) requested. If this sector count is not evenly 
  1504.            divisible by the block count, as many full blocks as 
  1505.            possible are transferred, followed by a final, partial 
  1506.            block transfer. The partial block transfer will be for N 
  1507.            sectors, where 
  1508.  
  1509.                      N = (sector count) modulo (block count).
  1510.  
  1511.            If the read multiple command is attempted before the set 
  1512.            multiple mode command has been executed or when read 
  1513.            multiple commands are disabled, the read multiple 
  1514.            operation will be rejected with an aborted command error.  
  1515.  
  1516.            Disk errors encountered during read multiple commands are 
  1517.            reported at the beginning of the block or partial block 
  1518.            transfer, but DRQ is still asserted and the transfer will 
  1519.            take place as it normally would, including transfer of 
  1520.            corrupted data, if any. Subsequent blocks or partial 
  1521.            blocks are transferred only if the error was a correctable 
  1522.            data error. All other errors cause the command to stop 
  1523.            after transfer of the block which contained the error. 
  1524.            Interrupts are generated when DRQ is asserted at the 
  1525.            beginning of each block or partial block.
  1526.  
  1527. 5.3.6.14 Write Multiple Command (O)
  1528.  
  1529.            The write multiple command performs similarly to the write 
  1530.            sectors command except that the controller asserts BSY 
  1531.            immediately upon receipt of the command, data transfers 
  1532.            are multiple sector blocks, and the long bit is not valid. 
  1533.            Command execution is identical to the write sectors 
  1534.            operation but with several sectors transferred to the host 
  1535.            as a block without intervening interrupts and only 
  1536.            requiring DRQ qualification of the transfer at the start 
  1537.            of the block, not on each sector. The block count, which 
  1538.            is the number of sectors to be transferred, is programmed 
  1539.            by the set multiple mode command, which must be executed 
  1540.            prior to the write multiple command. When the write 
  1541.            multiple command is issued, the sector count register 
  1542.            contains the number of sectors (not the number of blocks 
  1543.            or the block count) requested. If this sector count is not 
  1544.            evenly divisible by the block count, as many full blocks 
  1545.            as possible are transferred, followed by a final, partial 
  1546.            block transfer. The partial block transfer is for N 
  1547.            sectors, where
  1548.  
  1549.                     N = (sector count) modulo (block count).
  1550.  
  1551.            If the write multiple command is attempted before the set 
  1552.            multiple mode command has been executed or when write 
  1553.            multiple commands are disabled, the write multiple 
  1554.            operation shall be rejected with an aborted command error.  
  1555.  
  1556.            DRAFT PROPOSED DISK ATBUS DEFINITION (DAD)   25 March 1989
  1557.  
  1558.            All disk errors encountered during write multiple commands 
  1559.            are reported after the attempted disk write of the block 
  1560.            or partial block transferred. The write operation ends 
  1561.            with the sector in error, even if it was in the middle of 
  1562.            a block. Subsequent blocks are not transferred in the 
  1563.            event of an error. Interrupts are generated when DRQ is 
  1564.            asserted at the beginning of each block or partial block.
  1565.  
  1566. 5.3.6.15 Set Multiple Mode Command (O)
  1567.  
  1568.            This command enables the controller to perform read and 
  1569.            write multiple operations and establishes the block count 
  1570.            for these commands. Prior to command issuance, the sector 
  1571.            count register should be loaded with the number of sectors 
  1572.            per block. Controllers shall support block sizes of 2, 4, 
  1573.            8, and 16 sectors, if their buffer size is at least 8k 
  1574.            bytes, and may also support other block sizes. Upon 
  1575.            receipt of the command, the controller asserts BSY and 
  1576.            checks the sector count register contents. If the register 
  1577.            contents are a valid and the block count is supported, the 
  1578.            value is loaded for all subsequent read and write multiple 
  1579.            commands and execution of those commands is enabled. Any 
  1580.            unsupported block count in the register results in an 
  1581.            aborted command error and read and write multiple commands 
  1582.            being disabled. If the sector count register contains 0 
  1583.            when the command is issued, read and write multiple 
  1584.            commands are disabled. Once the appropriate action has 
  1585.            been taken, the controller negates BSY and generates an 
  1586.            interrupt. At power up, or after a hardware or software 
  1587.            reset, the default mode is read and write multiple 
  1588.            disabled.
  1589.             
  1590.