/FAQServer îò 2:5025/38.12@fidonet/Ðàçëè÷íàÿ òåõíèêà/Ìèêðîñõåìû/I8272

                               INTEL

                                8272

                   SINGLE/DOUBLE DENSITY FLOPPY DISK

                             CONTROLLER.

 ˜ IBM Compatible in Both Single and      ˜ Data Transfers in DMA or Non-DMA
   Double Density Recording Formats         Mode

 ˜ Programmable Data Record Lengths :     ˜ Parallel Seek Operations on Up to
   128,256,512, or 1024 Bytes/Sector        Four Drives

 ˜ Drive Up to 4 Floppy Disks             ˜ Compatible with Most
                                            Microprocessors Including 8080A,
 ˜ Data Scan Capability - Will Scan a       8085A,8086 and 8088
   Single Sector or an Entire Cylinder's
   Worth of Data Fields, Comparing on a   ˜ Single-Phase 8 MHz Clock
   Byte by Byte Basics, Data in the
   Processor's Memory with Data Read      ˜ Single +5 Volt Power Supply
   from the Diskette
                                          ˜ Available in 40-Pin Plastic Dual-in
                                            -line Package

    The 8272 is an LSI Floppy Disk Controller (FDC) Chip, WHICH contains  the
    circulty and control functions for interfacing a processor to 4 Floppy Disk
    Drives. It is capable of supporting either IBM 3740 single density format
    (FM),or IBM System 34 Double Density format (MFM) including double sided
    recording. The 8272 provides control signals which simlify the design of an
    external phase locked loop, and write precompensation circultry. The FDC
    simplifies and hanles most of the burdens associated with implementing
    a Floppy Disk Drive Interface.
_______________________________________________________________________________

         PIN CONFIGURATION

            -----   ------
     RESET--|1  ----- 40 |--Vcc
       _RD--|2        39 |--_RW/SEEK
       _WR--|3        38 |--LCT/DIR
       _CS--|4        37 |--FR/STP
        A0--|5        36 |--MDL
       DB0--|6        35 |-RDY
       DB1--|7        34 |--WP/TS
       DB2--|8        33 |--FLT/TRK0
       DB3--|9        32 |--PS0
       DB4--|10       31 |--PS1
       DB5--|11       30 |--WR DATA
       DB6--|12       29 |--DS0
       DB7--|13       28 |--DS1
       DRQ--|14       27 |--HDSEL
     _DACK--|15       26 |--MFM
        TC--|16       25 |--WE
       IDX--|17       24 |--Vc0
       INT--|18       23 |--RD DATA
       CLR--|19       22 |--DW
       GND--|20       21 |--WR CLK
            --------------

       8272 INTERNAL BLOCK DIAGRAM

                           | |      ------------
            ---------      | |      |          |
       /__\ |       | /__\ | | /__\ |          |
 DB0-7<____>| DATA  |<___ >|8|<____>|          |
       \  / |  BUS  | \  / |2| \  / |REGISTERS |
            | BUFFER|      |7|      |          |
            |       |      |2|      |          |
            |       |      | |      |          |
            ---------      |I|      |          |
         ------            |N|      ------------
    TERMINAL  |            |T|
      COUNT  \| /          |E|      ------------
              \/           |R|      |  SERIAL  |<------- WR CLOCK
           ----------      |N|      | INTERFACE|-------> WR DATA
    DRQ<---|        |      |A| /__\ |CONTROLLER|-------> WR ENABLE
   DACK--->. READ   |      |L|<____>|          |-------> PRE-SHIFT0
    INT<---| WRITE  |      | | \  / |          |-------> PRE-SHIFT1
     ID--->. DMA    | /__\ |B|      |          |<------- READ DATA
     WR--->. CONTROL|<____>|U|      |          |<------- DATA WINDOW
     A0--->| LOGIC  | \  / |S|      -------------------> Vco SYNC
  RESET--->|        |      | |      ------------
           |        |      | |      |          |    -------
           ----.-----      | |      |          | /__|     |
              /|\          | |      |  DRIVE   |<___|INPUT|
               |           | | /__\ |INTERFACE | \  | PORT|
               |           | |<____>|CONTROLLER|    |     |
               |           | | \  / |          |    -------
       CS ------           | |      |          | /\ -------
                           | |      |          |<-->|     |-->DRIVE SEL0
                           | |      ------------ \/ | OUT |-->DRIVE SEL1
                           | |                      |     |-->MFM MODE
         CLK --->          | |                      | PORT|-->R/W SEEK
         Vcc --->                                   |     |-->HEAD LOAD
         GND --->                                   |     |-->HEAD SELECT
                                                    |     |-->LOW
                                                    |     |   CURRENT/DIRECTION
                                                    --------->FAULT RESET/STEP

     8272 SYSTEM BLOCK DIAGRAM

                     --------
                     |      |
                     | CPU  |
                     |      |
                     --------
                        ^
                       / \
                      /   \
                       | |
                      \   /
                       \ /
                        
    --------------------------------------------------------
                    SYSTEM BUS
    --------------------------------------------------------
           ^                    ^
          / \                  / \
         /   \                /   \
          | |                  | |
         \   /                \   /
          \ /                  \ /
                               
      ------------         ------------   DATA     -----   ------------
      |          |  DRQ    |          |   WINDOW   |   |   |        --|
      |          |<--------|          |<-----------|FLL|---|          |
      |          |         |          |            |   | | |          |
      |  8237    |         |  8272    |            ----- | | DRIVE    |
      |   DMA    | _DACK   |          |  RD DATA         | |          |
      |CONTROLLER|-------->|  FDC     |<------------------ |INTERFACE |
      |          |         |          |  WR DATA           |          |
      |          |         |          |------------------->|          |
      |          |         |          |  /                 |          |
      |          |-------->|          | / -----------------|          |
      ------------   TC    |          |<  INPUT CONTROL    |          |
                           |          | \ -----------------|          |
           (TERMINAL COUNT)|          |  \                 |          |
                           |          |                 \  |          |
                           |          |------------------\ |          |
                           |          |  OUTPUT CONTROL   >|          |
                           ------------------------------/ ------------
                                                        /

 DESCRIPTION

 Hand-shaking signals are provided in the 8272 which make DMA operation
 easy to incorporate with the aid of an external DMA Controller chip, such
 as the 8237. The FDC will operate in einther DMA or Non-DMA mode. In the
 Non-DMA mode,the FDC generates interrupts to the processor for every transfer
 of data byte between the CPU and 8272. In the DMA mode, the processor need
 only load command into the FDC  and all data transfers occur under control of
 the 8272 and DMA controller.

 There are 15 separate commands which the 8272 will execute. Each of these
 commands require multiple 8-bit bytes to fully specify the operation which
 the processor wishes the FDC to perform. The following commands are available:

    Read Data                         Write Data
    Read ID                           Format a Track
    Read Deleted Data                 Write Deleted Data
    Read a Track                      Seek
    Scan Equal                        Recalibrate (Restore to Track 0)
    Scan High or Equal                Sense Interrupt Status
    Scan Low or Equal
    Specify                           Sense Drive Status

  FEATURES

 Addres mark detection circultry is internal to the FDC which simlifies the
 phase locked loop and read electronics. The track stopping rate, head load
 time, and head unload time may be programmed by user. The 8272 offers many
 additional features such as multiple sector transfers in both read and write
 modes with a single command, and full IBM compatibillity in both single (FM)
 and double density (MFM) modes.

 8272 REGISTERS - CPU INTERFACE

 The 8272 contain two registers which may accessed by the main system
 processor: a Status Register and a Data Register. The 8-bit Main Status
 Register contains the status information of the FDC ,and may be accessed at
 any time. The 8-bit Data Register ( actually consists of several registers in
 a stack with only one register presented to the data bus at time), stores
 data ,commands,parameters, and FDD status information. Data bytes are read
 out of, or written into, the Data Register in order to program or obtain the
 results after execution of command. The Status Register may only be read and
 is used to facilitate the transfer of data between the processor and 8272.

 The relationship between the Status/Data registers and the signals _RD,_WR,
 and A0 is shown below.

   ----ò-----ò-----ò----------------------------
   |A0 | _RD | _WR |  FUNCTION                 |
   |===========================================|
   | 0 |  0  |  1  |  Read Main Status Register|
   |===========================================|
   | 0 |  1  |  0  |  illegal                  |
   |===========================================|
   | 0 |  0  |  0  |  illegal                  |
   |===========================================|
   | 1 |  0  |  0  |  illegal                  |
   |===========================================|
   | 1 |  0  |  1  |  Read from Data Register  |
   |===========================================|
   | 1 |  1  |  0  |  Write into Data Register |
   ---------------------------------------------

   The  bits in the Main Status Register are defined as follows:
 --------------ò------------ò----------ò--------------------------
 |  BIT NUMBER |    NAME    |   SYMBOL |  DESCRIPTION            |
 |-------------+------------+----------+-------------------------|
 |    DB0      | FDD0 Busy  |   D0B    |   FDD number 0 is in the|
 |             |            |          |   seek mode.            |
 |-------------+------------+----------+-------------------------|
 |    DB1      | FDD1 Busy  |   D1B    |   FDD number 1 is in the|
 |             |            |          |   seek mode.            |
 |-------------+------------+----------+-------------------------|
 |    DB2      | FDD2 Busy  |   D2B    |   FDD number 2 is in the|
 |             |            |          |   seek mode             |
 |-------------+------------+----------+-------------------------|
 |    DB3      | FDD3 Busy  |   D30    |   FDD number 3 is in the|
 |             |            |          |   seek mode             |
 |-------------+------------+----------+-------------------------|
 |    DB4      | FDD4 Busy  |   CB     |  A read or write command|
 |             |            |          |   is in progress        |
 |-------------+------------+----------+-------------------------|
 |    DB5      | Non - DMA  |   NDM    |  The FDC is in the non -|
 |             |   mode     |          |  DMA mode. This bit is  |
 |             |            |          |  set only during the    |
 |             |            |          |  execution phase in     |
 |             |            |          |  non-DMA mode.Transitien|
 |             |            |          |  ts 'G' state indicates |
 |             |            |          |  execution phase has    |
 |             |            |          |  ended                  |
 |-------------+------------+----------+-------------------------|
 |   DB6       | Data Input |   DIO    | Indicates direction of  |
 |             |  -Output   |          | data transfer between   |
 |             |            |          | FDC and Data Register.  |
 |             |            |          | If DIO is '1',then      |
 |             |            |          | transfer is from Data   |
 |             |            |          | Register to the         |
 |             |            |          | processor.If DIO is '0',|
 |             |            |          | then transfer is from   |
 |             |            |          | the Processor to Data   |
 |             |            |          | Register.               |
 |-------------+------------+----------+-------------------------|
 |  DB7        | Request for|  RQM     | Indicates Data Register |
 |             |            |          | is ready to send or     |
 |             | Master     |          | receive data to or from |
 |             |            |          | the Processor.Both bits |
 |             |            |          | DIO and RQM should be   |
 |             |            |          | used to perfom the      |
 |             |            |          | handshaking functios of |
 |             |            |          | 'ready' and 'direction' |
 |             |            |          | to the processor.       |
 -----------------------------------------------------------------

    PIN DESCRIPTION
 ---------------ò-------ò-----------------ò-----------------------------------
 |  PIN         |   I/O |    CONNECTION   |    DESCRIPTION                   |
 |-----ò--------|       |        TO       |                                  |
 | NO. | SYMBOL |       |                 |                                  |
 |-----+--------+-------+-----------------+----------------------------------|
 |  1  |   RST  |   I   |     mP          | Reset Places FDC in idts         |
 |     |        |       |                 | state Resets output lines to     |
 |     |        |       |                 | FDD is '0' (low)                 |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Read:Control signal for          |
 |  2  |  _RD   |   I*  |     mP          | transfer of data from FDC to     |
 |     |        |       |                 | Data Bus, when '0' (low)         |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Write: Control signal for        |
 |  3  |  _WR   |   I*  |     mP          | transfer of data to FDC via Data |
 |     |        |       |                 | Bus, when '0' (low)              |
 |-----+--------+-------+-----------------+----------------------------------|
 |  4  |  _CS   |   I   |     mP          | Chip Select: IC selected         |
 |     |        |       |                 | when '0' (low), allowing         |
 |     |        |       |                 | _RD and _WR to be enabled        |
 |-----+--------+-------+-----------------+----------------------------------|
 |  5  |   A0   |   I*  |     mP          | Data/Status Reg Select:          |
 |     |        |       |                 | Select Data Reg (A0=1) or        |
 |     |        |       |                 | Status Reg (A0=0)                |
 |     |        |       |                 | content be sent to Data Bus      |
 |-----+--------+-------+-----------------+----------------------------------|
 |6-13 |DB0-DB7 |  I/O* |     mP          | Data Bus: Bidirectional          |
 |     |        |       |                 | 8 - Bit Data Bus                 |
 |-----+--------+-------+-----------------+----------------------------------|
 | 14  |  DRQ   |   O   |     DMA         | Data DMA Request: DMA            |
 |     |        |       |                 | Request is being made by         |
 |     |        |       |                 | FDC when DRQ '1'                 |
 |-----+--------+-------+-----------------+----------------------------------|
 | 15  |_DACK   |   I   |     DMA         | DMA Acknowledge: DMA             |
 |     |        |       |                 | cycle is active when '0'         |
 |     |        |       |                 | (low) and Controller is          |
 |     |        |       |                 | performing DMA transfer          |
 |-----+--------+-------+-----------------+----------------------------------|
 | 16  |  TC    |   I   |     DMA         | Terminal Count: Indicates        |
 |     |        |       |                 | the termination of a DMA         |
 |     |        |       |                 | transfer when '1' (high)         |
 |-----+--------+-------+-----------------+----------------------------------|
 | 17  |  IDX   |   I   |     FDD         | Index: Indicates the beginning   |
 |     |        |       |                 | of a disk track                  |
 |-----+--------+-------+-----------------+----------------------------------|
 | 18  |  INT   |   O   |     mP          | Interrupt: Interrupt Request     |
 |     |        |       |                 | Generated by FDC                 |
 |-----+--------+-------+-----------------+----------------------------------|
 | 19  |  CLK   |   I   |                 | Check: Single Phase 6MHz         |
 |     |        |       |                 | Squarewave Check                 |
 |-----+--------+-------+-----------------+----------------------------------|
 | 20  |  CND   |       |                 | Ground: D.C. Power Return        |
 -----------------------------------------------------------------------------
  Note * :Disabled when _CS = 1.

 ---------------ò-------ò-----------------ò-----------------------------------
 |  PIN         |   I/O |    CONNECTION   |    DESCRIPTION                   |
 |-----ò--------|       |        TO       |                                  |
 | NO. | SYMBOL |       |                 |                                  |
 |-----+--------+-------+-----------------+----------------------------------|
 | 40  |  Vcc   |       |                 | POWER                            |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Read Write/SEEK. When '1'        |
 | 39  |_RWseek |   O   |     FDD         | (high) seek mods selected and    |
 |     |        |       |                 | when '0' (low) Read/Write        |
 |     |        |       |                 | mode selected                    |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |     FDD         | Low Current direction.Lawers     |
 | 38  | LGT/DIR|   O   |                 | Write current on inner tracks    |
 |     |        |       |                 | in Read/Write mode,determines    |
 |     |        |       |                 | direction head will step         |
 |     |        |       |                 | in Seek mode                     |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Fault Reset/Step: Resets fault   |
 | 37  | FR/STP |   O   |     FDD         | FF in FDD in Read/Write          |
 |     |        |       |                 | mode, provides step pulses to    |
 |     |        |       |                 | move head to  another cylinder   |
 |     |        |       |                 | in Seek mode                     |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Head Load: Command which         |
 | 36  |  HDL   |   O   |     FDD         | causes read/write head in FDD    |
 |     |        |       |                 | to contact diskette              |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Ready: Indicates FDD is ready    |
 | 35  |  RDY   |   I   |     FDD         | to send or receive data          |
 |-----+--------+-------+-----------------+----------------------------------|
 | 34  | WP/TS  |   I   |     FDD         | Write Protect/Two-Side:          |
 |     |        |       |                 | Senses Write Protect status in   |
 |     |        |       |                 | Read/Write mode,and Two          |
 |     |        |       |                 | Side Media in Seek mode          |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Fault/Track 0: Senses FDD        |
 | 33  |FLT/TRK0|   I   |     FDD         | fault condition in Read/Write    |
 |     |        |       |                 | mode and Track 0 condition       |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Precompensation (pre-shift):     |
 |31,32|PS1,PS2 |   O   |     FDD         | Write precompensation status     |
 |     |        |       |                 | during MFM mode, Determines      |
 |     |        |       |                 | early,late,and normal times.     |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Write Data: Serial clock and     |
 | 30  |WR DATA |   O   |     FDD         | data bits to FDD                 |
 |-----+--------+-------+-----------------+----------------------------------|
 |28,29|DS1,DS0 |   O   |     FDD         | Drive Select: Selects FDD until  |
 |-----+--------+-------+-----------------+----------------------------------|
 | 27  | HDSEL  |   O   |     FDD         | Head Select: Head 1 selected     |
 |     |        |       |                 | when '1' (high) Head 0           |
 |     |        |       |                 | selected when  '0' (low)         |
 |-----+--------+-------+-----------------+----------------------------------|
 | 26  |  MFM   |   O   |     FLL         |     MFM Mode. MFM mode when      |
 |     |        |       |                 | '1', FM mode when '0'            |
 -----------------------------------------------------------------------------

 ------ò--------ò-------ò-----------------ò-----------------------------------
 |     |        |       |                 | Write Enable: Enables write      |
 | 25  |  WE    |   O   |     FDD         | data  into FDD                   |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | VCO Sync:  Inhibits VCO in       |
 | 24  |  VCO   |   O   |     FLL         | FLL when '0' (low), enables      |
 |     |        |       |                 | VCO when '1'                     |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Read Data. Read data from        |
 | 23  |RD DATA |   I   |     FDD         | FDD. containing clock and        |
 |     |        |       |                 | data bits                        |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Data Window: Generated by FLL,   |
 | 22  |  DW    |   I   |     FLL         | and used     to   sample dats    |
 |     |        |       |                 | from FDD                         |
 |-----+--------+-------+-----------------+----------------------------------|
 |     |        |       |                 | Write Clock: Write dats rate to  |
 | 21  | WR CLK |   I   |                 | FDD  FM = 500 kHZ,MFM=1          |
 |     |        |       |                 | MHz,with a pulse witdh of  250 ms|
 |     |        |       |                 | for both FM and MFM              |
 |     |        |       |                 | Must be unabled for all          |
 |     |        |       |                 | operations, both Read and Write  |
 -----------------------------------------------------------------------------

   The DIO and RQM bits in the Status Register indicate:
   when Data is  eady and in which direction data will be transferred on the
   Data Bus.

   READY

  ======== NOT========  ===========    =======      =========
 REQUEST |    |      |  |         |    |     |      |       |
 FOR     | RDY|      |  |         |    |     |      |
 MASTER  =====|      |===         =====|     ========       |
 (RQM)        |      |                 |
         |              |                           |       |
  ====== =========== =======================================
 _WR   | |    |    | |  |              |            |       |
       ==|         ==|            |          |
         |    |      |  |              |            |       |
  =============================== ========== ===============
         |    |      |  |       | |    |   | |      |       |
 _RD                            ===        ===
         |    |      |  |              |            |       |
                     |            |          |
    -----ò----ò------ò--ò----ò----ò----ò-----ò----ò-+--------
    |  A | B  |   A  |B | A  | C  | D  |  C  | D  |B|    A  |
    ---------------------------------------------------------

   NOTE : (A) - DATA REGISTER READY TO BE WRITTEN INTO BY PROCESSOR
          (B) - DATA REGISTER NOT READY TO BE WRITTEN INTO AT PROCESSOR
          (C) - DATA REGISTER READY FOR NEXR DATA BYTE TO BE READ BY THE
                PROCESSOR.
          (D) - DATA REGISTER NOT READY FOR NEXT DATA BYTE TO BE READ BY
                PROCESSOR

    Pic. STATUS REGISTER TIMING

   The 8272 is capable of executing 15 different commands. Each command is
   initiated by a multi-byte transfer from the proaessor, and the result after
   execution of the command may also be a multi-byte transfer back to the
   processor. Because of this multi-byte interchange of information between
   the 8272 and the processor, it is convenient to consider each command as
   consisting of three phases:

         Command Phase: The FDC receives all information required to perform
                        a particular operation from the processor.

         Execution Phase: The FDC performs the operation it was instructed
                          to do.
         Result Phase:   After completion of the operation, status and other
                         housekeeping information are made available to the
                         processor.

 During Command or Result Phases the Main Status Register (described earlier)
 must be read by the processor before each byte of information is written into
 or read from the Data Register. Bits D6 and D7 in the Main Status Register
 must be in a 0 and 1 state, respectively,before each byte of the command word
 may be written into the 8272. Many of the commands require multiple bytes,
 and as a result the Main Status Register must be read prior to each byte
 transfer to the 8272. On the other hand, during the Result Phase, D6 and D7
 in the Main Status Register must both 1's (D6=1 and D7=1) before reading each
 byte from the Data Register. Note, this reading of the Main Status Register
 before each byte transfer to the 8272 is required in only the Command and
 Result Phases, and NOT during the Execution Phase.

 During the Execution Phase, the Main Status Register need not be read. If the
 8272 is in the NON-DMA Mode, then the receipt of each data byte (if 8272 is
 reading data from FDD) is indicated by an interrupt signal on pin 18 (INT=1).
 The generation of Read signal (_RD=0) will reset the interrupt as well as
 output the Data onto the Data Bus. For example, if the processor connot handle
 interrupts fast enough (every 13 ms for MFM mode) then it may poll the Main
 Status Register and then bit D7 (RQM) functions just like the interrupt signal.
 If a Write Command is in process then the _WR signal performs the reset to the
 interrupt signal.
 If the 8272 is in the DMA Mode, no interrupts are generated during the
 Execution Phase. The 8272 generated DRQ's (DMA Requests) when each byte of
 data is available. The DMA Controller responds to this request with both a
 _DACK =0 (DMA Acknowledge) and a _RD = 0 (Read signal).
 When the DMA Acknowlege signal goes low (_DACK=0) then the DMA Request is
 reset (DRQ=0). If a Write Command has been prorammed then a _WR signal will
 appear instead of _RD. After the Execution Phase has been completed (Terminal
 Count has occurred) then an interrupt will occur (INT=1). This signifies the
 beginning of the Result Phase. When the first byte of data is read during the
 Result Phase, the interrupt is automatically reset (INT=0).

 It is important to note that during the Result Phase all bytes shown in the
 Command Table must be read. The Read Data Command, for example, has seven
 bytes of data in the Result Phase. All seven bytes  must be read in order to
 succesfully complete the Read Data Command. The 8272 will not accept a new
 command until all seven bytes have been read. Other commands may require fewer
 bytes to be read during the Result Phase.

 The 8272 contains five Status Register. The Main Status Register mentioned
 above may be read by the processor at any time. The other four Status
 Registers (ST0,ST1,ST2, and ST3) are only available during the Result Phase,
 and may be read only after successfully completing command. The particular
 command which has been executed determines how many of the Status Register
 will be read.

 The bytes of data which are sent to the 8272 in the Result Phase, must occur
 in the order shown in the Command Table. That is ,the Command Code must be
 sent first and the other bytes sent in the prescribed sequence.
 No foreshortening of the Command of Result Phases are allowed. After the last
 byte of data in the Command Phase is sent to the 8272 the Execution Phase
 automatically starts. In a similar fashion, when the last byte of data is read
 out in the Result Phase, the command is automtically ended and the 8272 is
 ready for a new command. Acommand may be aborted by simply sending  a Terminal
 Count to pin 16 (TC=1). This is convenient means of ensuring that the
 processor may always get the 8272's attention even if the disk system hangs
 up in an abnormal manner.

  POLLING FEATURE OF THE 8272

  After the Specify command has been sent to the 8272, the Drive Select Lines
 DS0 and DS1 will automatically go into a polling mode. In between commands
 (and between step pulses in the SEEK command) the 8272 polls all four FDD
 looking for a change in the Ready line from any of the drives. If the Ready
 line changes state (usually due to a door opening of closing) then the 8272
 will generate an interrupt. When Status Register 0 (ST0) is read (after Sense
 interrupt Status is issued), Not Ready (NR) will be indicated. The polling of
 the Ready line by the 8272 occurs continuously between instructions, thus
 notifying the processor which drives are on or off line.

  TABLE 1. 8272 COMMAND SET

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                        READ DATA                                         |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM SK   0   0   1    1   0 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |Execution|     |                                 |Data transfer           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system   |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                    READ DELETED DATA                                     |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM SK   0   1   1    0   0 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |         |     |                                 |                        |
  |Execution|     |                                 |Data transfer           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system   |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                        WRITE DATA                                        |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM  0   0   0   1    0   1 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |Execution|     |                                 |Data transfer           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system   |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                  WRITE DELETED DATA                                      |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM  0   0   1   0    0   1 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |Execution|     |                                 |Data transfer           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system   |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                      READ TRACK                                          |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0  MFM SK   0   0   0    1   0 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |Execution|     |                                 |Data transfer           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system.  |
  |         |     |                                 |FDC read all of         |
  |         |     |                                 |cylinders contents      |
  |         |     |                                 |from index hole to      |
  |         |     |                                 |EOT                     |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                        READ ID                                           |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0  MFM  0   0   1   0    1   0 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |Execution|     |                                 |The first correct ID    |
  |         |     |                                 |information on the      |
  |         |     |                                 |Cylinder is stored in   |
  |         |     |                                 |Data Register           |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|during Execution        |
  |         |  R  |-------------N-------------------|Phase.                  |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                       FORMAT A TRACK                                     |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0  MFM  0   0   1   1    0   1 |Command Codes           |
  |         |  W  |  0   0   0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |-------------N-------------------|Bytes/Sector            |
  |         |  W  |------------SC-------------------|Sectors/Cylinder        |
  |         |  W  |------------GPL------------------|Gap 3                   |
  |         |  W  |-------------D-------------------|Filler byte             |
  |         |     |                                 |FDC formats an          |
  |         |     |                                 |entire cylinder         |
  |Execution|     |                                 |                        |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|In this case, the ID    |
  |         |  R  |-------------R-------------------|information has no      |
  |         |  R  |-------------N-------------------|meaning                 |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                       SCAN EQUAL                                         |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM SK   1   0   0    0   1 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------DTL------------------|                        |
  |Execution|     |                                 |Data compared           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system.  |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                  SCAN LOW OR EQUAL                                       |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM SK   1   1   0    0   1 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------STP------------------|                        |
  |Execution|     |                                 |Data compared           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system.  |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                  SCAN HIGH OR EQUAL                                      |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  | MT  MFM SK   1   1   1    0   1 |Command Codes           |
  |         |  W  |  0    0  0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |                                 |                        |
  |         |  W  |-------------C-------------------|Sector ID information   |
  |         |  W  |-------------H-------------------|prior to Command        |
  |         |  W  |-------------R-------------------|execution               |
  |         |  W  |-------------N-------------------|                        |
  |         |  W  |------------EOT------------------|                        |
  |         |  W  |------------GPL------------------|                        |
  |         |  W  |------------STP------------------|                        |
  |Execution|     |                                 |Data compared           |
  |         |     |                                 |between the FDD         |
  |         |     |                                 |and the main - system.  |
  |Result   |  R  |------------ST0------------------|Status information      |
  |         |  R  |------------ST1------------------|after Command           |
  |         |  R  |------------ST2------------------|execution               |
  |         |  R  |-------------C-------------------|                        |
  |         |  R  |-------------H-------------------|Sector ID information   |
  |         |  R  |-------------R-------------------|after command           |
  |         |  R  |-------------N-------------------|execution               |
  ----------------------------------------------------------------------------
  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                      RECALIBRATE                                         |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0   0   0   0   0   1    1   1 |Command Codes           |
  |         |  W  |  0   0   0   0   0   0   DS1 DS0|                        |
  |Execution|     |                                 |Head retracted to       |
  |         |     |                                 |Track 0                 |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                   SENSE INTERRUPT STATUS                                 |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0   0   0   0   1   0    0   0 |Command Codes           |
  |Result   |  R  |-------------ST0-----------------|Status information at   |
  |         |  R  |-------------PCN-----------------|the end of each seek    |
  |         |     |                                 |operation about the     |
  |         |     |                                 |FDC                     |
  ----------------------------------------------------------------------------
  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                         SPECIFY                                          |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0   0   0   0   0   0    1   1 |Command Codes           |
  |         |  W  |----SRT------------------HUT-----|                        |
  |         |  W  |----HLT------------------------ND|                        |
  ----------------------------------------------------------------------------
  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                     SENSE DRIVE STATUS                                   |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0   0   0   0   0   1    0   0 |Command Codes           |
  |         |  W  |  0   0   0   0   0  HDS  DS1 DS0|                        |
  |Result   |  R  |------------ST3------------------| Status information     |
  |         |     |                                 | about FDD              |
  ----------------------------------------------------------------------------

  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                         SEEK                                             |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  0   0   0   0   1   1    1   1 |Command Codes           |
  |         |  W  |  0   0   0   0   0  HDS  DS1 DS0|                        |
  |         |  W  |------------NCN------------------| Status information     |
  |         |     |                                 | about FDD              |
  |Execution|     |                                 |                        |
  |         |     |                                 |Head is positioned      |
  |         |     |                                 |over proper Cylinder    |
  |         |     |                                 |on Diskette             |
  ----------------------------------------------------------------------------
  ----------ò-----ò---------------------------------ò-------------------------
  |         |     |       DATA BUS                  |                        |
  |         |     |---------------------------------|                        |
  |PHASE    | R/W | D7  D6  D5  D4  D3  D2  D1  D0  |REMARKS                 |
  |--------------------------------------------------------------------------|
  |                        INVALID                                           |
  |---------ò-----ò---------------------------------ò------------------------|
  |Command  |  W  |  -------INVALID CODE------------|Invalid Command         |
  |         |     |                                 |Codes (NoOp - FDC       |
  |         |     |                                 |goes into Standby       |
  |         |     |                                 |State)                  |
  |Result   |  R  |------------ST0------------------|ST0=80 HEX.             |
  ----------------------------------------------------------------------------

  Note: 1. Symbols used in this table are described at the end of this section.
        2. A0 = 1 for all operations.
        3. X = Don't care, usually made to equal binary 0.

   TABLE 2. COMMAND MNEMONICS
 ----------ò-----------------ò------------------------------------------------
 | SYMBOL  |     NAME        | DESCRIPTION                                   |
 |---------+-----------------+-----------------------------------------------|
 | A0      |Addres line 0    |A0 controls selection of Main Status           |
 |         |                 |Register (A0=0) or Data Register (A0=1)        |
 |---------+-----------------+-----------------------------------------------|
 | C       |Cylinder Number  |C stands for the current selected Cylinder     |
 |         |                 |track number 0 trough 76 of the medium.        |
 |---------+-----------------+-----------------------------------------------|
 | D       |Date             |D stands for the data pattern which is         |
 |         |                 |going to be written into a Sector.             |
 |---------+-----------------+-----------------------------------------------|
 | D7-D0   |Data Bus         |8-bit Data where D7 is the most                |
 |         |                 |significant bit,and D0 is the least            |
 |         |                 |significant bit.                               |
 |---------+-----------------+-----------------------------------------------|
 | DS0,DS1 |Drive Select     |DS stands for a selected drive number 0 or 1.  |
 |---------+-----------------+-----------------------------------------------|
 | DTL     |Date Length      |When N is defined as 00,DTL stands for         |
 |         |                 |the data length which users are going to       |
 |         |                 |read out or write into the Sector.             |
 |---------+-----------------+-----------------------------------------------|
 | EOT     | End of Track    |EOT stands for the final Sector number of      |
 |         |                 |a Cylinder.                                    |
 |---------+-----------------+-----------------------------------------------|
 | GPL     | Gap Length      |GPL stands for the length of Gap 3             |
 |         |                 |(spacing between Sector excluding VCO          |
 |         |                 |Sync.Field).                                   |
 |---------+-----------------+-----------------------------------------------|
 |   H     | Head Addres     | H stands for head number 0 or 1,as            |
 |         |                 | specified in ID field.                        |
 |---------+-----------------+-----------------------------------------------|
 |  HDS    | Head Select     | HDS stands for a selected head number 0       |
 |         |                 | or 1 (H=HDS in all command words).            |
 |---------+-----------------+-----------------------------------------------|
 |  HLT    | Head Load Time  | HLT stands for the head load time in the      |
 |         |                 | FDD (2 to 254 ms in 2 ms increment).          |
 |---------+-----------------+-----------------------------------------------|
 |  HUT    | Head Unload Time| HUT stands for the head unload time after     |
 |         |                 | a read or write operation has occure (16      |
 |         |                 | to 240 ms in 16 ms increments).               |
 |---------+-----------------+-----------------------------------------------|
 |         |                 | If MF is low, FM mode is selected end if      |
 |  MFM    |FM or MFM Mode   | it is high, MFM mode is selected              |
 |---------+-----------------+-----------------------------------------------|
 |  MT     |Multi-Track      | If MT is high, a multi-track operation is to  |
 |         |                 | be performed (a cylinder under both HD0       |
 |         |                 | and HD1 will be read or written).             |
 |---------+-----------------+-----------------------------------------------|
 |  N      | Number          | N stands for the number of data bytes         |
 |         |                 | written in a Sector.                          |
 -----------------------------------------------------------------------------
 
 ----------ò-----------------ò------------------------------------------------
 | SYMBOL  |     NAME        | DESCRIPTION                                   |
 |---------+-----------------+-----------------------------------------------|
 | NCN     |New Cylinder     |NCN stands for a new Cylinder number,          |
 |         |    Number       |which is going to be reachad as a result       |
 |         |                 |of the Seek operation.Desired position of Head.|
 |---------+-----------------+-----------------------------------------------|
 | ND      |NON-DMA Mode     |ND stands for operation in the NON-DMA Mode    |
 |---------+-----------------+-----------------------------------------------|
 | PCN     |Present Cylinder |PCN stands for the Cylinder number at the      |
 |         |  Number.        |completion of SENSE INTERRUPT STATUS Command.  |
 |         |                 |Position of Head at present time.              |
 |---------+-----------------+-----------------------------------------------|
 |   R     |Record           |It stands for the Sector number, which will    |
 |         |                 |be read or writen                              |
 |---------+-----------------+-----------------------------------------------|
 | R/W     |Read/Write       |Read or Write signal                           |
 |         |                 |or 1.                                          |
 |---------+-----------------+-----------------------------------------------|
 | SC      |Sector           |SC indicates the number of Sectors per         |
 |         |                 |cylinder                                       |
 |---------+-----------------+-----------------------------------------------|
 | SK      | Skip            |SK stands for Skip Deleted Data Addres Mark    |
 |---------+-----------------+-----------------------------------------------|
 | SRT     | Step Rate Time  |SRT stands for the Stepping Rate for the       |
 |         |                 |FDD (1 to 16 ms in 1 ms increments).The same   |
 |         |                 |Stepping Rate applies to all drives (F=1ms     |
 |         |                 |E=2ms. etc)                                    |
 |---------+-----------------+-----------------------------------------------|
 | ST0     | Status 0        |ST0-3 stand for one of four registers which    |
 | ST1     | Status 1        | store the status information after a command  |
 | ST2     | Status 2        | has been executed. This information is        |
 | ST3     | Status 3        | availaible during the result phase after      |
 |         |                 | command execution. These registers should not |
 |         |                 | be cofused with the main status register      |
 |         |                 | (selected by A0 = 0). ST0-3 may be read only  |
 |         |                 | after a command has been executed and contain |
 |         |                 | information relevant to that particular       |
 |         |                 | command.                                      |
 |---------+-----------------+-----------------------------------------------|
 |         |                 | During a Scan operation, if STP=1, the data   |
 |  STP    |                 | in contiguous sectors is compared byte by byte|
 |         |                 | with data sent from the processor (or DMA),   |
 |         |                 | and if STP=2, then alternats sectors are read |
 |         |                 | and compared.                                 |
 -----------------------------------------------------------------------------
 
    COMMAND DESCRIPTIONS

  During the Commnd Phase, the Main Status Register must be polled by the CPU
 before each byte is written into the Data Register. The DIO (DB6) and RQM
 (DB7) bits in the Main Status Register must be in the '0' and '1' states
 respectivety, before each byte of the command may be written into the 8272.
 The beginning of the execution phase for any of these commands will chuse
 DIO and RQM to switch to '1' and '0' states respectively.

    READ DATA

 A set of nine (9) byte words are required to place the FDC into the Read Data
 Mode. After the Read Data commands has been issued the FDC loads the head
 (if it is in the unloaded state), waits the specified head setting time
 (defined in the Specify Command), and begins reading ID Address Mark and ID
 fields. When the current sector number ('R') stored in the ID Register (IDR)
 compares with the sector number read off the diskette, then FDC outputs data
 (from the data field) byte-byte to the main system via the data bus.

 After completion of the read operatipn from the current sector, the Sector
 Number is incremented by one , and the data from the next sector is read and
 output on the data bus. This continuous read function is called a 'Multi-
 Sector Read Operation'. The Read Data Command may be the receipt of a Terminal
 Count signal. Upon receipt of this signal, the FDC stops outputting data to
 the processor, but will continue to read data from the current sector, check
 CRC (Cyclic Redundancy Count) bytes, and then at the end of the sector
 terminate the Read Data Command.

 The amount of data wchich can be hanled with a single command to the FDC
 depends upon MT (multo-track), MFM (MFM/FM), and N (Number of Bytes/Sector).
 Table 3 below shows the Transfer Capacity.

   TABLE 3. TRANSFER CAPACITY

------------ò-------ò-------------ò---------------------------------ò----------
|Multi-Track| MFM/FM| Bytes/Sector| Maximum Transfer Capacity       | Final   |
|   MT      |   MFM |      N      | (Bytes/Sector)(Number of Sectors| Sector  |
|           |       |             |                                 | Read    |
|           |       |             |                                 | from    |
|           |       |             |                                 | Diskette|
|-----------+-------+-------------+---------------------------------+---------|
|    0      |   0   |     00      |      (128)(26)=3.325            |26 at    |
|    0      |   1   |     01      |      (256)(26)=6.656            |Side 0 or|
|           |       |             |                                 |Side 1   |
|-----------+-------+-------------+---------------------------------+---------|
|    1      |   0   |     00      |      (128)(52)=6.656            | 26      |
|    1      |   1   |     01      |      (256)(52)=13.312           | at Side1|
|-----------+-------+-------------+---------------------------------+---------|
|           |       |             |                                 |Side 1   |
|    0      |   0   |     01      |      (256)(15)=3.840            | or 0    |
|    0      |   1   |     02      |      (512)(15)=7.680            | 15      |
|-----------+-------+-------------+---------------------------------+---------|
|           |       |             |                                 |  15     |
|    1      |   0   |     01      |      (256)(30)=7.680            |  at     |
|    1      |   1   |     02      |      (512)(30)=15.360           |Side 1   |
|-----------+-------+-------------+---------------------------------+---------|
|           |       |             |                                 |8 at Side|
|    0      |   0   |     02      |      (512)(8)=4.095             |0 or 8 at|
|    0      |   1   |     03      |      (1024)(8)=8.192            |Side 1   |
|-----------+-------+-------------+---------------------------------+---------|
|    1      |   0   |     02      |      (512)(16)=8.192            |8 at     |
|    1      |   1   |     03      |      (1024)(16)=16.384          |Side 1   |
-------------------------------------------------------------------------------

 The 'multi-track' function (MT) allows the FDC to read data from sides of the
 diskette. For a particular cylinder, data will be transferred starting at
 Sector 1,Side 0 and completing at Sector L, Side 1 ( Sector L- last sector
 on the side). Note, this function pertains to only one cylinder (the same
 track ) on each side of the diskette.

 When N=0, then DTL defines the length which the FDC must treat as a sector.
 If DTL is smaller than the actual data length in a Sector, the data beyong DTL
 in the Sector, is not sent to the Data Bus. The FDC reads (internally) the
 complete Sector performing the CRC check, and depending upon the manner of
 command termination, may perform a Multi-Sector Read Operation. When N is
 no-zero, then DTL has no meaning and should be set to 0FFH.

 At the completion of the Read Data Command, the head is not unloaded until
 after Head Unload Time inteval (specified in the Specify Command) has elapsed.
 If the processor issues another command before the head unloads then the head
 setting time may be saved between subsequent reads. This time out is
 particulary valuable when a diskette is copied from one drive to another.

 If the FDC detects the Index Hole twice without finding the riht sector,
 (indicated in 'R'), then the FDC sets the ND (No Data) flag in Status Register
 1 to a 1 (high), and terminates the Read Data Command. (Status Register 0 also
 has bits 7 and 6 set to 0 and 1 respectively).

 After reading the ID and Data Fields in each sector, the FDC checks the CRC
 bytes . If a read error is detected (incorrect CRC in ID field), the FDC sets
 the DE (Data Error) flag in Status Register 1 to a 1 (high), and if a CRC
 error occurs in the Data Field the FDC also sets the DD(Data Error in Data
 Field) flag in Status Register 2 to a 1 (high), and terminates the Read Data
 Command. (Status Register 0 also has bits 7 and 6 set to 0 and 1 respectively)

 If the FDC reads a Deleted Data Address Mark off the diskette, and the SK bit
 (bit D5) in the first Command Word) is not set (SK=0), then the FDC sets the
 CM (Control Mark) flag in Status Register 2 to a 1 (high), and terminates the
 Read Data Command,after reading all the data in the Sector. If SK=1, the FDC
 skips the sector with the Deleted Data Address Mark and reads the next sector.

 During disk data transfers between the FDC and the processor, via data bus,
 FDC must be serviced by the processor every 27 ms in the FM Mode, and every
 13 ms in the MFM Mode, or the FDC sets the OR (Over Run) flag in Status
 Register 1 to a 1 (high), and terminates the Read Data Command.

 If the processor terminates a read (or write) operation in the FDC, then the
 ID information in the Result Phase is dependent upon the state of the MT bit
 and EOT byte. Table 4 shows the values for C,H,R, and N, when  the processor
 terminates the Command.

  TABLE 4. ID INFORMATION WHEN PROCESSOR TERMINATES COMMAND

-----ò-----ò--------------------------ò-----------------------------------
| MT | EOT | Final Sector Transferred | ID information at Result Phase   |
|    |     |       Processor          |--------ò--------ò-------ò--------|
|    |     |                          |   C    |   H    |   R   |   N    |
|----+-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 1 to 25 at Side 0  |  NC    |  NC    | R+1   |  NC    |
|    |  0F |Sector 1 to 14 at Side 0  |        |        |       |        |
|    |  08 |Sector 1 to 7 at Side 0   |        |        |       |        |
|    |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 26 at Side 0       |        |        |       |        |
|    |  0F |Sector 15 at Side 0       |  C+1   |   NC   | R=01  |   NC   |
|    |  08 |Sector 8  at Side 0       |        |        |       |        |
| 0  |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 1 to 25 at Side 1  |        |        |       |        |
|    |  0F |Sector 1 to 14 at Side 1  |        |        |       |        |
|    |  08 |Sector 1 to  7 at Side 1  |  NC    |  NC    | R+1   |  NC    |
|    |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 26 at Side 1       |        |        |       |        |
|    |  0F |Sector 15 at Side 1       |  C+1   |  NC    | R=01  |  NC    |
|    |  08 |SEctor 8 at  Side 1       |        |        |       |        |
|----+-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 1 to 25 at Side 0  |  NC    |  NC    | R+1   |  NC    |
|    |  0F |Sector 1 to 14 at Side 0  |        |        |       |        |
|    |  08 |Sector 1 to 7 at Side 0   |        |        |       |        |
|    |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 26 at Side 0       |        |        |       |        |
|    |  0F |Sector 15 at Side 0       |  NC    |  LSB   | R=01  |   NC   |
|    |  08 |Sector 8  at Side 0       |        |        |       |        |
| 1  |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 1 to 25 at Side 1  |        |        |       |        |
|    |  0F |Sector 1 to 14 at Side 1  |        |        |       |        |
|    |  08 |Sector 1 to  7 at Side 1  |  NC    |  NC    | R+1   |  NC    |
|    |-----+--------------------------+--------+--------+-------+--------|
|    |  1A |Sector 26 at Side 1       |        |        |       |        |
|    |  0F |Sector 15 at Side 1       |  C+1   |  LSB   | R=01  |  NC    |
|    |  08 |SEctor 8 at  Side 1       |        |        |       |        |
--------------------------------------------------------------------------

   Note : 1. NC (No Change); The same valua as the one at the beginning of
             command execution.

          2. LSB (Least Significant Bit); The least significant bit of H is
             completed

    WRITE DATA

  A set of nine (9) bytes are required to set the FDC into the Write Data mode.
  After the Write Data command has been issued the FDC loads the head (if it
 is in the unloaded stste),waits the specified head setting time ( defined
 in the Specify Command), and begins reading ID Fields. When the current number
 ('R'), stored in the ID Register (IDR) compares with the sector number read
 off the diskette, then the FDC takes data from the processor byte-by-byte via
 the data bus, and outputs it to the FDD.

 After writing data into the current sector, the Sector Number stored in 'R' is
 incremented by one, and the next data field is written into. The FDC continues
 this 'Multi-Sector Write Operation' until the issuance of a Terminal Count
 signal. If a Terminal Count signal is sent to the FDC it continues writing
 into the current sector to complete the data field. If the Terminal Count
 signal is received while a data field is being written then the remainder of
 the data field is filled with 00 (zeros).

 The FDC reads the ID fields of each sector and checks the CRC bytes. If the
 FDC detects a read error (incorrect CRC) in one of the ID Fields, it sets the
 DE (Data Error) flag of Status Register 1 to a 1 (high), and terminates the
 Write Data Command. (Status Register 0 also has bits 7 and 6 set to 0  and 1
 respectively.)

 The Write Command operates in much the same manner as Read Command. The
 following items are the same; refer to the Read Data Command for details;

 [ Transfer Capacity

 [ EN (end of Cylinder) Flag

 [ ND (No Data) Flag

 [ Head Unload Time Interval

 [ ID Information when the processor terminates
   command (see Table 2)
 [ Definition of DTL when N=0 and when N!=0

  In the Write Data mode, data transfers between the processor and FDC must
 occur every 31 ms in the FM mode, and every 15 ms in the MFM mode. If the
 time interval between data transfers is longer than this then the FDC sets the
 OR (Over Run) flag in Status Register 1 to a 1 (high), and terminates the
 Write Data Command.

   WRITE DELETED DATA

  This command is the same as the Write Data Command except a Deleted Data
 Address Mark is written at the beginning of the Data Field instead of the
 normal Data Address Mark.

   READ DELETED DATA

  This command is the same as Read Data Command except that when the FDC
 detects a Data Address Mark at the beginnin of a Data Field ( and SK = 0
 (low)), it will read all the data in the sector and set the CM flag in Status
 Register 2 to a 1 (high), and then terminate the command . If SK=1, then the
 FDC skips the sector with the Data Address Mark and reads the next sector.

   READ A TRACK

  This command is similar to READ DATA Command except that the entire data
 field is read continuously from each of the sectors of a track. Immediately
 after encountering the INDEX HOLE, the FDC starts reading all data fields on
 the track as continuous blocks of data. If the FDC finds an error in the ID
 or DATA CRC check bytes, it continues to read data from the track. The FDC
 compares the ID information read from each sector with the valua stored in the
 IDR, and sets the ND flag of Status Register 1 to 1 (high) if there is no
 comparison. Multi-track or skip operations are not allowed with this command.

 This command terminates when EOT number of sectors have been read. If the FDC
 does not find an ID Address Mark on the diskette after it encountera the INDEX
 HOLE for the second time, then it sets the MA (missing address mark) flag in
 Status Register 1 to 1 (high), and terminates the command. (Status Register 0
 has bits 7 and 6 set to 0 and 1 respectively.)

    READ ID

  The Read ID Command is used to give the present position of the recording
 head. The FDC stores the values from the first ID Field it is able to read.
 If no proper ID Address Mark is found on the diskette, before the INDEX HOLE
 is encountered for the second time then the MA (Missing Address Mark) flag in
 Status Register 1 is set to 1 (high), and if no data is found then ND (No
 Data ) flag is also set in Status Register 1 to 1 (high) and the command is
 terminated.

    FORMAT TRACK

  The Format Command allows an entire track to be formatted. After the INDEX
 HOLE is detected, Data is written on the Diskette:Gaps,Address Marks,ID Fields
 and Data Fields, all per the IBM System 34 (Double Density) or System 3740
 (Single Density) Format are recorded. The particular format which will be
 written is controlled by the values programmed into N (number of bytes/sector),
 SC (sector/cylinder), GPL (Gap Length), and D (Data Pattern) which are
 supplied by the processor during the Command Phase. The Data Field is filled
 with the Command Phase. The Data Field is filled with the Byte of data stored
 in D. The ID Field for each sector is supplied by the processor; that is, four
 data requests per sector are made by the FDC for C (Cylinder Number), H (Head
 Number), R(Sector Number) and N (Number of Bytes/Sector). This allows the
 diskette to be formatted with nonsequential sector numbers, if desired.

 After formatting each sector, the processor must send new values for C,H,R,
 and N to the 8272 foe each sector on the track. The contents of the R register
 is incremented by one after each sector is formatted, thus, the R register
 contains a value of R+1 when it is read during the Result Phase. This
 incrementing and formatting continues for the whole track until the FDC
 encounters the INDEX HOLE for the second time , where-upon it terminates the
 command.

 If a FAULT signal is recelved from the FDD at the end of a write operation,
 then the FDC sts the EC flag of Status Register 0 to a 1 (high), and
 terminates the command after setting bits 7 and 6 of Status Register 0 to 0
 and 1 respectively. Also the loss of a READY signal at the beginnig of a
 command execution phase causes command termination.

 Table 5 shows the relationship between N,SC, and GPL for various sector sizes:

   TABLE 5. SECTOR SIZE RELATIONSHIPS

 -----------ò-----------------ò-----ò-----ò------ò--------ò-----------------
 |  FORMAT  |    SECTOR SIZE  |  N  | SC  |  GPL1|  GPL2  | REMARKS        |
 |----------+-----------------+-----+-----+------+--------+----------------|
 |          |128 bytes/Sector | 00  | 1A  |  07  |  1B    | IBM Diskette 1 |
 | FM Mode  |256              | 01  | 0F  |  0E  |  2A    | IBM Diskette 2 |
 |          |512              | 02  | 08  |  1B  |  3A    |                |
 |----------+-----------------+-----+-----+------+--------+----------------|
 |          |1024 bytes/Sector| 03  | 04  |  __  |  __    |                |
 | FM Mode  |2048             | 04  | 02  |  __  |  __    |                |
 |          |4096             | 05  | 01  |  __  |  __    |                |
 |----------+-----------------+-----+-----+------+--------+----------------|
 |          |256              | 01  | 1A  |  0E  |  36H   |IBM Diskette 2D |
 |          |512              | 02  | 0F  |  1B  |  54H   |                |
 | MFM Mode |1024             | 03  | 08  |  36H |  74H   |IBM Diskette 2D |
 |          |2048             | 04  | 04  |  __  |  __    |                |
 |          |4096             | 05  | 02  |  __  |  __    |                |
 |          |8192             | 06  | 01  |  __  |  __    |                |
 ---------------------------------------------------------------------------

      Note : 1. GPL1 Suggested values of GPL in Read or Write Commands to avoid
                splice point between data and ID field of contiguous sections.
             2  GPL2, Suggested values of GPL in format command.

          SCAN COMMANDS

   The SCAN Commands allow data which is being read from the diskette to be
 compared against data which is being supplied from the main system (Processor
 in NON-DMA mode, and DMA Controller in DMA mode). The FDC compares the data
 on a byte - by - byte basis, and looks for a sector of data which meets the
 conditions of D_FDD = D_Processor,D_FDD<=D_Processor,or D_FDD>=D_Processor.
 Ones complement arithmetic is used for comparison (FF=larget number,
 00=smallest number). After a whole sector of data is compared, if the
 conditions are not met, the sector number is incremented (R+STP -> R)
 and the scan operation is continued.The scan operation continues one of the
 following conditions occur: the conditions for scan are met (equal,low,or
 high),the last sector on the track is reached (EOT), or the terminal count
 signal is received.

 If the conditions for scan are met the FDC sets the SH (Scan Hit) flag of
 Status Register 2 to 1 (high), and terminates the Scan Command. If the
 conditions for scan are not met between the starting sector (as specified by
 R) and the last sector on the cylinder (EOT), then the FDC sets the SN (Scan
 Not Satisfied) flag of Status Register 2 to a 1 (high), and terminates the
 Scan Command. The receipt of a TERMINAL COUNT signal from the Processor or DMA
 Controller during the scan operation will cause the FDC to complete the
 comparison of the particular byte which is in process, and then to terminate
 the command. Table 6 shows the status of bits SH and SN under various
 conditions of SCAN.

   TABLE 6. SCAN STATUS CODES
  ------------------ò--------------------------ò------------------------
  |                 | STATUS REGISTER 2        |                       |
  |-----------------+-----------ò--------------|                       |
  | COMMAND         |BIT 2 = SN | BIT 3 = SH   | COMMENTS              |
  |-----------------+-----------+--------------+-----------------------|
  | Scan Equal      |     0     |      1       |D_FDD = D_Processor    |
  |                 |     1     |      0       |D_FDD != D_Processor   |
  |-----------------+-----------+--------------+-----------------------|
  |                 |     0     |      1       |D_FDD = D_Processor    |
  |Scan Low or Equal|     0     |      0       |D_FDD < D_Processor    |
  |                 |     1     |      0       |D_FDD !< D_Processor   |
  |-----------------+-----------+--------------+-----------------------|
  |                 |     0     |      1       |D_FDD = D_Processor    |
  |Scan High or Equ.|     0     |      0       |D_FDD > D_Processor    |
  |                 |     1     |      0       |D_FDD !> D_Processor   |
  ----------------------------------------------------------------------

   If the FDC encounters a Deleted Data Address Mark on one of the sectors
 (and SK = 0), then it regards the sector as the last sector on the cylinder,
 sets CM ( Control Mark) flag of Status Register 2 to a 1 (high) and terminates
 the command. If SK = 1, the FDC skips the sector with the Deleted Address
 Mark, and reads the next sector. In the second case (SK = 1), the FDC sets the
 CM (Contol Mark) flag of Status Register 2 to a 1 (high) in order to show that
 a Deleted Sector had been encountered.

 When either the STP (contiguous sectors STP = 01, or alternate sectors STP=02
 sectors are read) or the MT(Multi-Track) are programmed, it is necessary to
 remember that the last sector on the track must be read. For example, if
 STP = 02, MT = 0 ,the sectors are numbered sequentially 1 through 26, and we
 start the Scan Command at sector 21; the following will happen.
 Sectors 21,23, and 25 will be read, then the next sector (26) will be skipped
 and the Index Hole will be encountered befor the EOT value of 26 can be read.
 This will result in an abnormal termination of the command.If the EOT had been
 set at 25 or the scanning started at sector 20, then the Scan Command would be
 completed in a normal manner.

 During the Scan Command data is supplied by either the processor or DMA
 Controller for comparison against the data read from the diskette. In order to
 avoid having the OR (Over Run) flag set in Status Register 1, it is necessary
 to have the data available in less than 27 ms (FM Mode) or 13 ms (MFM Mode).
 If Overrun occurs the FDC terminates the command.

  SEEK

 The read/write head within the FDD is moved from cylinder under control of the
 Seek Command. The FDC compares the PCN (Present Cylinder Number) which is the
 current head position with the NCN (New Cylinder Number), and performs the
 following operation if there is difference:

     PCN < NCN: Direction signal to FDD set to a 1 (high), and Step Pulses are
 issued. (Step in.)

     PCN > NCN: Direction signal to FDD set to a 0 (low), and Step Pulses are
 issued. (Step Out.)

 The rate which Step Pulses are issued is controlled by SRT (Stepping Rate
 Time) in the SPECIFY Command. After each Step Pulse is issued NCN is compared
 against PCN, and when NCN = PCN, then the SE ( Seek End) flag is set in Status
 Register 0 to a 1 (high), and the command is terminated.

 During the Command Phase of the Seek operation the FDC in the FDC BUSY state,
 but during the Execution Phase it is in the NON BUSY state. While the FDC is
 in the NON BUSY state, another Seek Command may be issued, and in this manner
 parallel seek operation may be done on up to 4 Drives at once.

 If an FDD is in a NOT READY state at the beginnig of the command execution
 phase or during the seek operation, then the NR (NOT READY) flag is set in
 Status Register 0 to 1 (high), and the command is terminated.

   RECALIBRATE

  This command causes the read/write head within the FDD to retract to the
 Track 0 position. The FDC clears the contents of the PCN counter, and checks
 the status of the Track 0 signal from the FDD. As long as the Track 0 signal
 is low, the Direction signal remains 1 (high) and Step Pulses are issued.
 When the Track 0 signal goes high, the SE (SEEK END) flag in Status Register 0
 is set to 1 (high) and the command is terminated. If the Track 0 signal is
 still low after 77 Stop Pulses have been issued, the FDC sets the SE
 (SEEK END) and EC (EQUIPMENT CHECK) flags of Status Register 0 to both 1s
 (highs), and terminates the command.

 The abillity to overlap RECALIBRATE Commands to Multiple FDDs, and the loss
 of the READY signal, as described in the SEEK Command, also applies to the
 RECALIBRATE Command.

   SENSE INTERRUPT STATUS

 An interrupt signal is generated by the FDC for one of the following reasons:
   1. Upon entering the Result Phase of:
       a. Read Data Command
       b. Read a Track Command
       c. Read ID Command
       d. Read Deleted Data Command
       e. Write Data Command
       f. Format a Cylinder Command
       g. Write Deleted Data Command
       h. Scan Commands
   2. Ready Line of FDD changes state
   3. End of Seek or Recalibrate Command
   4. During Execution Phase in the NON-DMA Mode

 Interrupts causes by reasons 1 and 4 above occur during normal command
 operations and are easilly discernible by the processor. However, interrupts
 causes by reasons 2 and 3 above may be uniquely identified with the aid of the
 Sense Interrupt Status Command. This command when issued resets the interrupt
 signal and via bits 5,6, and 7 of Status Register 0 identifies the cause of
 the interrupt.

   TABLE 7. SEEK. INTERRUPT CODES

 --------------ò-------------------ò-------------------------
 | SEEK END    |  INTERRUPT CODE   |       CAUSE            |
 |             |---------ò---------|                        |
 |   BIT 5     |   BIT 6 | BIT 7   |                        |
 |-------------+---------+---------+------------------------|
 |     0       |    1    |    1    | Ready Line changed     |
 |             |         |         | state, either polarity |
 |-------------+---------+---------+------------------------|
 |             |         |         | Normal Termination     |
 |     1       |    0    |    0    | of Seek or Recalibrate |
 |             |         |         | Command                |
 |-------------+---------+---------+------------------------|
 |             |         |         | Abnormal Termination of|
 |             |         |         | Seek or Recalibrate    |
 |     1       |    1    |    0    | Command                |
 ------------------------------------------------------------

  Neither the Seek or Recalibrate Command have a Result Phase. Therefore, it
 is mandatory to use the Sense Interrupt Status Command after these commands
 to effectively terminate the and to provide verification of the head position
 (PCN).

    SPECIFY

  The Specify Command sets the initial values for each of the three internal
 timers. The  HUT (Head Unload-Time) defines from the end of the Execution
 Phase of one of the Read/Write Commands to the head unload state. This is
 programmable from 16 to 240 ms in increments of 16 ms (01 = 16 ms,02 = 32 ms..
 ...OF = 240 ms ). The SRT ( Step Rate Time) defines the time interval between
 adjacent step pulses. This timer is programmable from 1 to 16 ms in increments
 of 1 ms (F = 1 ms, E = 2ms, etc.). The HLT (Head Load Time) defines the time
 between when the Head Load signal goes high and when the Read/Write operation
 starts. This timer is programmable from 2 to 254 ms in increments of 2 ms
 (01 = 2 ms, 02 = 4 ms, 03 = 6 ms ...FE = 254 ms).

 The time intervals mentioned above are a direct function of the clock (CLK on
 pin 19). Times indicated above are for an 8 MHz clock, if the clock was
 reduced to 4 MHz (mini-floppy application) then all time intervals are
 increased by a factor of 2.


 The choice of DMA or NON-DMA operation is made by the ND (NON-DMA) bit.
 When this bit is high (ND = 1) the NON=DMA mode is selected, and when ND = 0
 the DMA mode is selected.

  SENSE DRIVE STATUS

 This command may be used by the processor whenever it wishes to obtain the
 status of the FDDs. Status Register 3 contains the Drive Status Information.

  INVALID

 If an invalid command is sent to the FDC ( a command not defined above), then
 the FDC will terminate the command. No interrupt is generated by the 8272
 during this condition. Bit 6 and bit 7 (DIO and RQM) in the Main Status
 Register are above both high ('1') indicating to the processor that the 8272
 is in the Result Phase and the contents of Status Register 0 (ST0) must be
 read. When the processor reads Status Register 0 it will find a 80h indicating
 an invalid command was received.

 A Sense Interrupt Status Command must be sent after a Seek or Recalibrate
 interrupt, otherwise the FDC will consider the next command to be an invalid
 Command.

 In some applications the user may wish to use this command as a No-Op command,
 to place the FDC in a standby or no operation state.

    TABLE 8. STATUS REGISTERS

  ------------------------------ò-----------------------------------------
  |        BIT                  |                                        |
  |---ò------------ò------------|     DESCRIPTION                        |
  |NO |  NAME      | SYMBOL     |                                        |
  |----------------------------------------------------------------------|
  |                 STATUS REGISTER 0                                    |
  |---ò------------ò------------ò----------------------------------------|
  |D7 |Interrupt   |    IC      |  D7 = 0 and D6 = 0                     |
  |   |Code        |            | Normal Termination of Command,         |
  |   |            |            | (NT) Command was completed and         |
  |   |            |            | properly executind.                    |
  |   |            |            |----------------------------------------|
  |   |            |            |D7=0 and D6 = 1                         |
  |D6 |            |            |Abnormal Tremination of Command,        |
  |   |            |            |(AT). Execution of Command              |
  |   |            |            |was started, but was not                |
  |   |            |            |successfully completed.                 |
  |   |            |            |----------------------------------------|
  |   |            |            | D7 = 1 and D6 = 0                      |
  |   |            |            | Invalid Command issued. (IC).          |
  |   |            |            | Command which was issued was           |
  |   |            |            | never started.                         |
  |   |            |            |----------------------------------------|
  |   |            |            | D7 = 1 and D6 = 1                      |
  |   |            |            | Abnormal Termination because           |
  |   |            |            | during command execution the           |
  |   |            |            | ready signal from FDD changed          |
  |   |            |            | state.                                 |
  |---+------------+------------+----------------------------------------|
  |   |            |            | When the FDC completes the             |
  |D5 | Seek End   |    SE      | SEEK Command, this flag is set to 1    |
  |   |            |            | (high).                                |
  |---+------------+------------+----------------------------------------|
  |D4 | Equipment  |    EC      | If fault Signal is received from the   |
  |   | Check      |            | FDD, or if the Track 0 Signal fails to |
  |   |            |            | occur after 77 Step Pulses (Recalibrate|
  |   |            |            | Command) then this flag is set.        |
  |---+------------+------------+----------------------------------------|
  |D3 | Not Ready  |    NR      | When the FDD is in the not-ready       |
  |   |            |            | state and a read or write command is   |
  |   |            |            | issued. This flag is set.If a read or  |
  |   |            |            | write command is issued to Side 1      |
  |   |            |            | of single sided drive,then this flag   |
  |   |            |            | is set.                                |
  |---+------------+------------+----------------------------------------|
  |D2 | Head       |            | This flag is used to indicate the      |
  |   | Address    |    HD      | state of the head at interrupt         |
  |---+------------+------------+----------------------------------------|
  |   | Unit       |            |                                        |
  |D1 | Select 1   |    US1     | These flags are used to indicate a     |
  |---+------------+------------| Drive Unit Number at interrupt         |
  |D0 | U.Select 0 |    US0     |                                        |
  ------------------------------------------------------------------------

  ------------------------------ò-----------------------------------------
  |        BIT                  |                                        |
  |---ò------------ò------------|     DESCRIPTION                        |
  |NO |  NAME      | SYMBOL     |                                        |
  |----------------------------------------------------------------------|
  |                 STATUS REGISTER 1                                    |
  |---ò------------ò------------ò----------------------------------------|
  |D7 |End of      |    EN      | When the FDC tries to access a         |
  |   |Cylinder    |            | Sector beyond the final Sector of a    |
  |   |            |            | Cylinder, this flag is set.            |
  |---+------------+------------+----------------------------------------|
  |D6 |            |            |Not used. This bit is always 0 (low).   |
  |---+------------+------------+----------------------------------------|
  |D5 |Data Error  |    DE      |When the FDC detects a CRC error        |
  |   |            |            |in either the ID field or the data field|
  |   |            |            |this flag is set.                       |
  |---+------------+------------+----------------------------------------|
  |D4 |Over Run    |    OR      |If the FDC is not serviced by the       |
  |   |            |            |main-systems during data transfers,     |
  |   |            |            |within a certain time interval, this    |
  |   |            |            |flag is set.                            |
  |---+------------+------------+----------------------------------------|
  |D3 |            |            |Not used. This bit is always 0 (low).   |
  |---+------------+------------+----------------------------------------|
  |   |            |            | During execution of READ DATA,         |
  |D2 | No Date    |    ND      | WRITE DELETED DATA or SCAN             |
  |   |            |            | Command, if the FDC cannot find the    |
  |   |            |            | Sector specified in the IDR Register,  |
  |   |            |            | this flag is set.                      |
  |   |            |            |----------------------------------------|
  |   |            |            | During execution the READ ID Command,  |
  |   |            |            | if the FDC cannot read the ID field    |
  |   |            |            | without an error, then this flag is    |
  |   |            |            | set.                                   |
  |   |            |            |----------------------------------------|
  |   |            |            | During the execution of the READ A     |
  |   |            |            | Cylinder Command, if the starting      |
  |   |            |            | sector cannot be found, then this      |
  |   |            |            | flag is set.                           |
  |---+------------+------------+----------------------------------------|
  |   |  Not       |            | During execution of WRITE DATA,        |
  |D1 | Writable   |    NW      | WRITE DELETED DATA or Format A         |
  |   |            |            | Cylinder Command, if the FDC detects   |
  |   |            |            | a write protect signal from the FDD,   |
  |   |            |            | then this flag is set.                 |
  |---+------------+------------+----------------------------------------|
  |D0 | Missing    |    MA      | If the FDC cannot detect the ID        |
  |   | Address    |            | Address Mark after encountering the    |
  |   | Mark       |            | index hole twice, then this flag is set|
  |   |            |            |----------------------------------------|
  |   |            |            | If the FDC cannot detect the Data      |
  |   |            |            | Address Mark or Deleted Data           |
  |   |            |            | Address Mark,this flag is set. Also at |
  |   |            |            | the same time, the MD (Missing Address |
  |   |            |            | Mark in Data Field) of Status Register |
  |   |            |            | 2 is set.                              |
  ------------------------------------------------------------------------

  ------------------------------ò-----------------------------------------
  |        BIT                  |                                        |
  |---ò------------ò------------|     DESCRIPTION                        |
  |NO |  NAME      | SYMBOL     |                                        |
  |----------------------------------------------------------------------|
  |                 STATUS REGISTER 2                                    |
  |---ò------------ò------------ò----------------------------------------|
  |D7 |            |            | Not used. This bit is always 0 (low).  |
  |---+------------+------------+----------------------------------------|
  |D6 | Control    |    CM      | During execution the READ DATA or      |
  |   | Mark       |            | SCAN Command, if the FDC encounters    |
  |   |            |            | a Sector which contains a Deleted Data |
  |   |            |            | Address Mark, this flag is set.        |
  |---+------------+------------+----------------------------------------|
  |D5 | Data Error |    DD      |If the FDC detects a CRC error in the   |
  |   | in Data    |            |data field then this flag is set.       |
  |---+------------+------------+----------------------------------------|
  |D4 | Wrong      |    WC      |This bit is related with the ND bit,    |
  |   | Cylinder   |            |and when the contents of C on the       |
  |   |            |            |medium is different from that stored    |
  |   |            |            |in the IDR, this flag is set.           |
  |---+------------+------------+----------------------------------------|
  |D3 | Scan Equel |    SH      | During execution, the SCAN Command,    |
  |   | Hit        |            | if the condition of 'equel' is         |
  |   |            |            | satisfied, this flag is set.           |
  |---+------------+------------+----------------------------------------|
  |   | Scan Not   |    SN      | During execution the SCAN Command, if  |
  |D2 | Satisfied  |            | the FDC cannot find a Sector on the    |
  |   |            |            | cylinder which meets the condition,    |
  |   |            |            | then this flag is set.                 |
  |---+------------+------------+----------------------------------------|
  |D1 | Bad        |    BC      | This bit is related with the ND bit,   |
  |   | Cylinder   |            | and when the content of C on the       |
  |   |            |            | medium is different from that stored   |
  |   |            |            | in the IDR and the content of C is     |
  |   |            |            | FF, then this flag is set.             |
  |---+------------+------------+----------------------------------------|
  |D0 | Missing    |            | When data is read from the medium,     |
  |   | Address    |    MD      | if the FDC cannot find a Data Address  |
  |   | Mark in    |            | Mark, then this flag is set.           |
  |   | Data Field |            |                                        |
  ------------------------------------------------------------------------

  ------------------------------ò-----------------------------------------
  |        BIT                  |                                        |
  |---ò------------ò------------|     DESCRIPTION                        |
  |NO |  NAME      | SYMBOL     |                                        |
  |----------------------------------------------------------------------|
  |                 STATUS REGISTER 3                                    |
  |---ò------------ò------------ò----------------------------------------|
  |D7 |  Fault     |    FT      | This bit is used to indicate the status|
  |   |            |            | of the Fault signal from the FDD       |
  |---+------------+------------+----------------------------------------|
  |D6 | Write      |            | This bit used to indicate the status   |
  |   | Protected  |    WP      | of the Write Protected signal from the |
  |   |            |            | FDD.                                   |
  |---+------------+------------+----------------------------------------|
  |D5 | Ready      |    RDY     | This bit used to indicate the status   |
  |   |            |            | of the Ready signal from the FDD       |
  |---+------------+------------+----------------------------------------|
  |D4 | Track 0    |    T0      | This bit used to indicate the status   |
  |   |            |            | of the Track 0 signal from the FDD     |
  |---+------------+------------+----------------------------------------|
  |D3 | Two Side   |    TS      | This bit used to indicate the status   |
  |   |            |            | of the Two Side signal from the FDD.   |
  |---+------------+------------+----------------------------------------|
  |D2 | Head       |    HD      | This bit used to indicate the status   |
  |   | Address    |            | of Side Select signal to the FDD.      |
  |---+------------+------------+----------------------------------------|
  |D1 | Unit       |    US1     | This bit used to indicate the status of|
  |   | Select 1   |            | the Unit Select 1 signal to the FDD.   |
  |---+------------+------------+----------------------------------------|
  |D0 | Unit       |    US0     | This bit used to indicate the status of|
  |   | Select 0   |            | the Unit Select 0 signal to the FDD.   |
  ------------------------------------------------------------------------


File created by Faq2Site converter. (C) 1998-2002 Edward Grebenyukov
Hosted by uCoz