home *** CD-ROM | disk | FTP | other *** search
-
- Table 3 -- Command and Result Sequences for floppy commands
- -----------------------------------------------------------
- Byte r/w Read ID Format Recal Seek
- C-0 cmd+MT cmd+MFM cmd+MFM cmd cmd
- +MFM+SK
- C-1 HDS+DS HDS+DS HDS+DS DS HDS+DS
- C-2 C N NCN
- C-3 H SC
- C-4 R GPL
- C-5 N D
- C-6 EOT
- C-7 GPL
- C-8 DTL
- R-0 ST0 ST0 ST0
- R-1 ST1 ST1 ST1
- R-2 ST2 ST2 ST2
- R-3 C C C **
- R-4 H H H **
- R-5 R R R **
- R-6 N N N **
-
- ** For format, these have no meaning.
-
-
- Table 4 -- Command and Result Sequences for FDC commands
- --------------------------------------------------------
- Byte Specify Sense Intr Status Sense Drive Status
-
- C-0 cmd cmd cmd
- C-1 SRT+HUT HDS+DS
- C-2 HLT+ND
- R-0 ST0
- R-1 PCN ST3
-
-
- Table 5 -- What the symbols mean
- --------------------------------
- cmd - bit 0-4, command code: see table 6. Bit 4 only set for "scan"
- commands, which are not discussed here.
- SK - bit 5, Skip deleted address mark. This article does not cover
- deleted data.
- MFM - bit 6, Double Density (Modified Frequency Modulated).
- MT - bit 7, Multi-track. Really should be 'multi-head'. Allows a read
- data or read deleted data to continue at the end of track onto the
- other side of floppy. Do not use for writing.
- DS - bits 0 & 1, Drive select
- HDS - bit 2, Head select.
- C - Cylinder. A part of the sector ID, corresponding to (but not
- necessarily equal to) the position of the track.
- H - Head. A part of the sector ID, corresponding to the (but not
- necessarily equal to) the side of the disk.
- R - Record. A part of the sector ID, generally called the sector number.
- Definitely NOT the same as a CPM record. May or may not be ordered
- sequentially.
- N - Number of bytes code. Defines sector size: see table 7 for value.
- EOT - End of Track. The last possible sector number on the track. Can
- be larger than the number of physical sectors.
- GPL - Gap Length. Used by FDC when reading or writing.
- FGPL - Format Gap Length. Used by FDC in formatting. It is a different
- value than the GPL used in read/write. See Table 7 for value.
- DTL - Data Length. Number of bytes in sector if N == 0.
- SC - Sectors per cluster. Format uses to know how much to write
- D - Data Fill byte for format command. Initial data written to sectors.
- NCN - New Cylinder Number. This is the position to "SEEK" to.
- HUT - bits 0-3, Head Unload time. IBM XT specs 0xF (240 msec).
- SRT - bits 4-7, Step Rate time. (16-SRT) = # millisecond. IBM XT specs
- 0xC, which XT Tech Ref says is 6 ms track-to-track (I figure it to
- be 4 ms).
- ND - bit 0, Non-DMA mode. I don't recommend this: should remain clear.
- HLT - bits 1-7, Head Load Time. 2 ms increments. XT Tech Ref specs
- 0x1.
- ST0-ST3 - Status registers ST0, ST1, ST2, and ST3. See table 8 for
- detail.
- PCN - Present Cylinder Number. Where the FDC thinks the head is after a
- seek or recalibrate.
-
- Table 6 -- floppy disk command codes (except scan commands)
- -----------------------------------------------------------
- 0x00 Invalid
- 0x01 Invalid
- 0x02 Read Track (all sectors)
- 0x03 Specify drive parameters
- 0x04 Sense drive status (get Status Reg 3)
- 0x05 Write Data (1 or more sectors)
- 0x06 Read Data (1 or more sectors)
- 0x07 Recalibrate drive (move head to cylinder 0)
- 0x08 Sense interrupt status (MUST be issued immediately after Seek
- or Recalibrate)
- 0x09 Write deleted data - not recommended
- 0x0A Read ID fields (read ID fields off disk, wherever the head
- currently is).
- 0x0B Invalid
- 0x0C Read deleted data - not recommended
- 0x0D Format a track (the lowest level format)
- 0x0E Invalid
- 0X0F Seek (move head to desired cylinder)
-
-
- Table 7 -- Values for N, GPL, and EOT for 5 1/4" floppies
- ---------------------------------------------------------
- Density size N SC GPL FGPL
-
- single 128 0x00 0x12 0x07 0x09
- single 128 0x00 0x10 0x10 0x19
- single 256 0x01 0x08 0x18 0x30
- single 512 0x02 0x04 0x46 0x87
- single 1024 0x03 0x02 0xC8 0xFF
- single 2048 0x04 0x01 0xC8 0xFF
-
- double 256 0x01 0x12 0x0A 0x0C
- double 256 0x01 0x10 0x20 0x32
- double 512 0x02 0x08 0x2A 0x50
- double 1024 0x03 0x04 0x80 0xF0
- double 2048 0x04 0x02 0xC8 0xFF
- double 4096 0x05 0x01 0xC8 0xFF
-
- Note: In the IBM PC, the format is double, 512 bytes. Despite the
- information in this table, nine sectors are put on the disk
- successfully.
-
- Table 8 -- Status Register bit definitions
- ------------------------------------------
- Reg bit sym Description
-
- ST0 6&7 IC Interrupt Code: 00= normal, 01= Abnormal termination,
- 10= Invalid command, 11= Aborted: ready signal changed.
- 5 SE Seek End.
- 4 EC Equiptment check. Fault signal or could not recalibrate
- 3 NR Not Ready. Normally because door not closed.
- 2 HD Head Address. 0 or 1.
- 0&1 US Unit (drive) select. Only needed when doing overlapping
- seeks.
-
- ST1 7 EN End of cylinder. An attempt to read past the last sector
- on a track.
- 6 n/a (always zero)
- 5 DE Data Error. Bad data read from floppy.
- 4 OR Over run. The processor did not get data fast enough.
- 3 n/a (always zero)
- 2 ND No Data. Could not read ID field requested.
- 1 NW Not Writable. Write protected floppy.
- 0 MA Missing Address Mark. Could not find ID field requested.
- (This often occurs with DE with a unformatted or
- corrupted disk.
-
- ST2 7 n/a (always zero)
- 6 CM Control Mark. A deleted sector was detected.
- 5 DD Data error in Data field. Bad data on floppy.
- 4 WC Wrong Cylinder. "C" field in command doesn't match the
- corresponding field in the ID field on disk.
- 3 SH Scan Equal Hit.
- 2 SN Scan not Satisfied.
- 1 BC Bad Cylinder. same as WC, but "C" == 0xFF.
- 0 MD Missing Data address mark. Could not find Data address
- mark field.
-
- ST3 7 FT Fault. Signal from floppy disk drive (FDD).
- 6 WP Write Protected. Signal from FDD.
- 5 RDY Ready. Signal from FDD.
- 4 T0 Track 0. Signal from FDD.
- 3 TS Two Side. Signal from FDD.
- 2 HD Head address. Signal from FDD.
- 0&1 US Unit select. Signals from FDD.
-
- Note: The "sym" column is the mnemonic assigned in the Intel
- documentation.