8272

The "multi·track" function (MT) allows the FDC to read data from both sides of the diskette. For a particular cylinder, data will be transferred starting at Sector 0, 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 de.fines the data length which the FDC must treat as a sector. If DTL is smaller than the ac· tual data length in a Sector, the data beyond DTL in the Sector, is not sent to the Data Bus. The FDC reads (inter· nally) the complete Sector performing the CRC check, and depending upon the manner of command termina· tion, may perform a Multi,·SectorRead Operation. When N is non·zero, then DTL has no meaning and should be set to OFFH.

At the completion of the Read Data Command, the head is not unloaded until after Head Unload Time Interval (specified in the Specify Command) has elapsed. If the processor Issues another command before the head unloads then the head settling time may be saved be· tween subsequent reads. This time out is particularly valuable when a diskette is copied from one drive to another.

If the FOC detects the Index Hole twice without finding the right sector, (indicated in "R"), then the FDC sets the NO (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 respective· Iy.)

After reading the 10 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 Er- ror) flag in Status Register 1 to a 1 (high), and if a CRC er- ror occurs in the Data Field the FOG also sets the DO (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 respec- tively.)

If the FOC reads a Deleted Data Address Mark off the diskette, and the SK bit (bit 05 in the first Command Word) is not set (SK =0), then the FDC sets the CM (Con- trol Mark) flag in Status Register 2 to a 1 (high), and ter- minates 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 the data bus, the FDC must be serviced by the processor every 27 fls in the FM Mode, and every 13 fls in the MFM Mode, or the FDC sets the OR (Over Run) flag in Status Register 1 to a 1 (high), and ter- minates the Read Data Command.

If the processor terminates a read (or write) operation in the FDC, then the 10 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. 10 INFORMATION WHEN PROCESSOR TERMINATES COMMAND'

 

 

Final Sector Transferred to

10 Intormatlon at Relult Ph.l.

MT

EOT

 

 

 

 

Proce.sor

C

H

R

N

 

 

 

lA

Sector 1 to 25 at Side 0

 

 

 

 

 

OF

Sector 1 to 14 at Side 0

NC

NC

R+1

NC

 

08

Sector 1 to 7 at Side 0

 

 

 

 

 

lA

Sector 26 at Side 0

 

 

 

 

 

OF

Sector 15 at Side 0

C+l

NC

R=Ol

NC

0

08

Sector 8 at Side 0

 

 

 

 

lA

Sector 1 to 25 at Side 1

 

 

 

 

 

 

 

 

 

 

OF

Sector 1 to 14 at Side 1

NC

NC

R+l

NC

 

08

Sector 1 to 7 at Side 1

 

 

 

 

 

lA

Sector 26 at Side 1

 

 

 

 

 

OF

Sector 15 at Side 1

C+l

NC

R=Ol

NC

 

08

Sector 8 at Side 1

 

 

 

 

 

lA

Sector 1 to 25 at Side 0

 

 

 

 

 

OF

Sector 1 to 14 at Side 0

NC

NC

R+l

NC

 

08

Sector 1 to 7 at Side 0

 

 

 

 

 

lA

Sector 26 at Side 0

 

 

 

 

 

OF

Sector 15 at Side 0

NC

LSB

R=Ol

NC

1

08

Sector 8 at Side 0

 

 

 

 

lA

Sector 1 to 25 at Side 1

 

 

 

 

 

 

 

 

 

 

OF

Sector 1 to 14 at Side 1

NC

NC

R+l

NC

 

08

Sector 1 to 7 at Side 1

 

 

 

 

 

lA

Sector 26 at Side 1

 

 

 

 

 

OF

Sector 15 at Side 1

C+l

LSB

R=Ol

NC

 

08

Sector 8 at Side 1

 

 

 

 

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

2.LSB (Least Significant Bit): The least significant bit of H Is complemented.

WRITE DATA

A set of nine (9) bytes are required to set the FOG into the Write Data mode. After the Write Data command has been issued the FDC loads the head (if it is in the unloaded state), waits the specified head settling time (defined in the Specify Command), and begins reading 10 Fields. When the current sector number (UR"), stored in the 10 Register (lOR) 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 re- mainder of the data field is filled with 00 (zeros).

The FDC reads the 10 field of each sector and checks the CRC bytes. If the FDC detects a read error (incorrect CRC) in one of the 10 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 the Read Command. The following items are the same; refer to the Read Data Command for details:

Transfer Capacity

EN (End of Cylinder) Flag

NO (No Data) Flag

9-58

Page 373
Image 373
Intel mcs-48 manual Write Data, Transfer Capacity EN End of Cylinder Flag No No Data Flag