IBM32DSK.WS4 ------------ - Chapter 8 of the "IBM System/32 Functions Reference Manual" IBM Document GA21-9176-1 Second Edition: May 1975 (Retyped by Emmanuel ROCHE. Posted to comp.os.cpm.amethyst by Roche 07 May 2005.) Chapter 8. Diskette drive functions ----------------------------------- The IBM System/32 diskette drive has a single head for reading and writing. The diskette supports two primary system functions: - Data interchange, using the IBM diskette for standard data interchange. - Storing data from the disk to save it for future use, then loading it back into the system at a later time when needed for a job. Physical characteristics ======================== Only one side of the diskette is used. The diskette surface is divided into tracks. Each diskette surface contains 77 tracks; track 00 is the outside track and track 76 is the inside track. Figure 8-1. Standard interchange diskette surface recording arrangement (not "retyped") Of the 77 tracks, only 75 are normally used. Track 00 contains the volume label; tracks 1-74 are primary tracks used to contain data records. Tracks 75 and 76 are available for data storage in the event that one or two of the primary data tracks become defective. For standard data interchange, each track is divided into 26 sectors (Figure 8-1). Each sector is 128 bytes long, so it is possible to store 242,944 bytes of information on tracks 1-73. Data can be stored on track 74 of a diskette in the standard data interchange format, allowing for the storage of 246,272 bytes of data on the diskette, if the data on track 74 is to be read only by a System/32. On diskettes in the extended format, track 00 is divided into 26 sectors, but each remaining track is divided into eight 512-byte sectors, making it possible to store 303,104 bytes of information on tracks 1-74. The data stored in each sector is called a record. Therefore, because the diskette is formatted into tracks and sectors, each record on the diskette has a definite address consisting of a track number and sector number. This address is recorded at the record's physical location on the diskette. Diskettes that contain prerecorded record addresses are known as initialized diskettes; each record consists of an ID field and a data field. Rotational speed of the diskette drive is 360 +/- 2.5% RPM. The nominal data transfer rate of the diskette drive is 31,250 bytes per second. The diskette drive reads 128-byte records from a diskette and writes 128-byte records to a diskette at the following rates: Using diskettes in the Using diskettes in the Standard interchange format Extended format Reads Up to 3,400 records per minute Up to 4,100 records per minute Writes Up to 1,800 records per minute Up to 2,200 records per minute Record format ============= +------+------+-----+----+-----+------+------+-----+-----++-----+------+ | | | | | | | | AM2 | DATA \ ... | | | | GAP1 | SYNC | AM1 | ID | CRC | GAP2 | SYNC | or | or \ | CRC | GAP1 | | | | | | | | | AM3 | CONTROL\ | | | +------+------+-----+----+-----+------+------+-----+---------++-----+------+ Format: Field Description GAP1 The gap between the data field and the next record. It is variable length and contains all 1's. SYNC A 6-byte field of 0's which synchronizes the hardware circuits prior to reading the information from the diskette. AM1 A single-byte identifier field address mark which identifies the ID data and contains hex FE. ID A 4-byte associate sector address in the format CHRN, where: C = Cylinder address. Valid one-byte binary addresses are: Decimal = 00-76 Hex = 00-4C H = One-byte binary head address. The valid address is X'00'. R = One-byte binary record address. Valid addresses are: Standard interchange format Extended format Decimal 01-26 01-08 Hex X'01'-X'1A' X'01'-X'08' N = One-byte record length indicator used in the record length algorithm: 128 x 2 to the power of N. N is hex 00 for standard 128-byte records, or hex 02 for 512-byte records. CRC A 2-byte cyclic redundancy check field which verifies that the ID field and data field were read correctly. The system generates these bytes during a write operation and automatically performs a read-back check to verifytheir accuracy. GAP2 Interrecord gap between the ID field and the data field. It contains hex FF and is generated by the system during write operations. AM2 or AM3 A 1-byte field containing either X'FB' or X'F8'. X'FB' is a data field address marker (AM2) that identifies subsequent information as a data field. X'F8' is a control field address marker (AM3) that indicates that the following field contains control data. DATA or CONTROL The length of this field is specified by the record length indicator (N) contained in the ID field. The System/32 record length of 128 bytes (N=0) conforms to the specifications of the IBM diskette for standard data interchange. Figure 8-2. Diskette IOB format ------------------------------- Format: Displacement of leftmost byte in hex IBM program label Length in bytes Field description 0 IIOBCAN 2 This is the sector address of the last sector accessed. 2 IIOBCMP 1 This is the diskette completion code (in hex). 40 = Successful completion. 41 = Permanent I/O error. 42 = End of volume. 43 = Drawer is opened, but diskette has same volume-ID. 45 = Bad sector not fixed by user. 47 = Stand-alone version of |1IOS or drawer is opened but volume label is invalid or volume ID not the same. 49 = Unsupported control record. 3 IIOBQB 1 This is the Q-byte (in hex). D0 = Seek. D1 = Read data. D2 = Read ID. D4 = Read data/CAM. (D and F control records are not squeezed out as in |1PRD.) D5 = Write data. D6 = Write control address marks. D7 = Write ID. 4 IIOBRB 1 This is the R-byte (in hex). 80 = Seek after. 00 = Null. 5 IIOBSS 2 This is the sector address. 7 IIOBNB 1 This is the number of sectors, minus 1, involved in data transfer. 8 IIOBDAT 2 This is the data buffer address. A IIOBSNS1 2 Sense bytes 0 and 1. Byte 0 (in hex). 80 = Missing data address mark (two consecutive AMs found). 40 = CRC found in ID field. 20 = CRC found in data field. 10 = Cylinder byte in ID miscompare. 08 = Head byte in ID miscompare. 04 = Record byte in ID miscompare. 02 = Length byte in ID miscompare. 01 = First ID is found (no error). Byte 1 (in hex). 80 = Due to prior condition, no action attempted. 40 = Invalid control record found (not D or F). 20 = Lines to |1 were not set/read correctly. 10 = Control record(s) squeezed out. 08 = Physical cylinder number greater than 76. 04 = Reserved. 02 = Reserved. 01 = Reserved. C IIOBSNS2 2 Sense bytes 2 and 3. Byte 2 (in hex). 80 = |1 index pulses too close together. 40 = |1 index pulses too far apart. 20 = End-of-cylinder found (not tested). 10 = No IDs on track. 08 = Read overrun. 02 = Write overrun. 01 = Write parity check. Byte 3 (in hex). 80 = Head loaded. 40 = Low gate current set. 20 = Write gate on. 10 = Erase gate on. 08 = Seek to track 3 or 0 on. 04 = Seek to track 0 or 1 on. 02 = Seek to track 1 or 2 on. 01 = Seek to track 2 or 3 on. E IIOBERR 1 This is the error retry count. F IIOBFLG 1 This is the flag byte. Bit On Meaning ------ ------- 0 No ERPs attempted. 1 Automatic error display and correction allowed. 2 No error logging. 3 Allow seek past logical cylinder 74 (to 75 or 76). 4 Do not return to user program if ERP completion code is |1COMPER, |1NOTFIX, or |1INVCAM. 10 Reserved 1 Reserved. 11 IIOBEXP 1 This is the sector size. 12 IIOBXR2 2 This is a save area for XR2. 14 IIOBARR 2 This is a save area for the ARR. 16 IIOBDTF 2 This is the DTF address. Diskette drive operating characteristics ======================================== The program must build a diskette IOB (Figure 8-2) to control diskette operations. Diskettes perform most efficiently if programs use sequential data organization, which is normally used for data interchange and data file save/restore functions. The system performs seek, read, and write which are typical direct access storage device functions. Diskette input and output operations cannot be overlapped with any other system function. Diskette control fields and data fields --------------------------------------- Before issuing a seek, read, or write instruction, the program usually must initialize the diskette control fields and data fields. These fields, which can be located anywhere in main storage, are addressed by the control address register (CAR) and data address register (DAR), respectively. Control field The 5-byte control field (CHRNX) is used to specify: - For a seek operation, the destination track address (00-76 or hex FF); the cylinder address of hex FF specifies a recalibrate operation. H, R, N, and X are not used for a seek operation. - For a seek, read-data-and-control-record, write-data, or write- control-address-mark operation: C is the destination cylinder for the automatic seek. R is the starting record number. N is the number of bytes per record (128 x 2 to the power of N). X+1 is the number of records to be accessed. Before processing any data field, the system compares the CHRN portion of the control field and the corresponding portion of the identifier field of the record read. This process is called orientation. If orientation cannot be done, the system turns on the no-orient status bit (status byte 2, bit 3). As instruction execution proceeds, the system modifies the R- and X-bytes of the control field after each record is successfully processed; this maintains a log of instruction execution for error recovery procedures. The program must load the address of the leftmost byte of the control field into the control address register prior to instruction execution. The control field (CHRNX) has the following meaning: - C (cylinder number) is a 1-byte address; valid decimal addresses are 0 through 76. Cylinder addresses 77-254 set the invalid cylinder address (byte 1, bit 4); cylinder address 255 specifies recalibrate. This byte is not changed during execution unless a cylinder boundary is crossed during a read-data, write-data, or write-control address-mark operation. Note: For this device, the term cylinder and track are synonymous. - H (head number) is a 1-byte address; the only valid decimal address is 0. This byte remains unchanged during command execution. - R (record number) is a 1-byte binary address that specifies the first record to be processed in a single-record or multiple-record data operation. Decimal record numbers 1 through 26 are valid for standard interchange diskettes, 1 through 8 for extended format diskettes; invalid record numbers set the record-mismatch status bit (byte 0, bit 5). The system increments the record number by 1 after each record is processed if a not-ready/unit-check condition is not detected. - N (record length indicator) is a 1-byte binary number that indicates the physical record length. N must be 0 for 128-byte records, 2 for 512-byte records. This byte remains unchanged during command execution. - X (number of records) is a 1-byte binary number plus 1 that specifies the number of records to be processed; the system decrements this byte by 1 after each record is processed if a not-ready/unit-check condition is not detected. If the system does not find a control record during a read-data operation, this byte is not decremented. Data field The system transfers data to the data field during read operations, and from the data field during write operations. The data field is addressed by the leftmost byte and can be located arbitrarily in main storage. Prior to instruction execution, the program must load the data field address into the data address register. For a read-data, read-data-and-control-record, write- data, or write-control-address-mark operation, the record length indicator and the number of records to be processed determine the data field length as follows: Data field length = (X + 1) 128 X 2 to the power of N where X and N come from the control field CHRNX. Control address register ------------------------ This 2-byte field in control storage contains the address of the leftmost byte of the control field. The control address register must be initialized by load-diskette-control-field-address-register instruction, and is not modified during command execution. Data address register --------------------- This 2-byte field in control storage contains the address of the data byte following the last data field byte accessed. It is initialized to the address of the leftmost byte of the data field before the data field is used to execute an instruction. The data address register changes after a record is transferred and no errors are found. Diskette operations =================== Diskette seek ------------- During a control seek, the access mechanism is moved so that the read/write head is at the track address specified in the control field. The R-byte of the seek instruction has no significance. A recalibration to cylinder 00 is performed by specifying FF in the cylinder address bytes (CC) of the control field. The seek operation does not check for an invalid address prior to seek verification. Instead, the system detects an invalid address or a seek failure when it compares the control field and record ID field during the next read or write operation. A single-track seek has some unique functional characteristics that improve save/restore performance. A single-track seek command requires a maximum of 170.83 ms to execute and considerably decreases the time required to handle the following diskette read or write instruction. A seek beyond a single track seek requires a maximum of 106 + 53 ms SD. Where SD means seek displacement in tracks. Recalibrate time is 4.346 seconds maximum. Read data --------- This operation initiates an automatic seek to the logical track address specified in the control field and then, beginning at the record number specified in the control field, reads X+1 records into contiguous positions of the data field addressed by the data address register. When a flagged track is encountered, an automatic seek to the next record is executed. A maximum of three automatic seeks are attempted before the operation is terminated. If the end of a cylinder is encountered before X+1 records have been accessed, an automatic seek to record 1 of the next track occurs and execution continues. Read data and control record ---------------------------- This operation is very similar to the read-data operation. It initiates an automatic seek to the logical track address specified in the control field, and then reads X+1 records into contiguous positions of the data field addressed by the data address register. The system reads the records beginning at the record number specified within the control field. Whenever the system encounters a flagged track, it seeks the next record. The system tries a maximum of three automatic seeks before termination of the operation. If the system encounters the end of cylinder before X+1 records have been accessed, it executes an automatic seek to record 1 of the next track and continues with the operation. There is one difference between this operation and the read-data operation. In this command, if a control address mark is detected, the system sets control- address-mark status (byte 1, bit 3) (this bit cannot be tested by a TIO) and reads the control record data field into the data field in main storage regardless of the control character in the first position of the record data field. For multiple record operations, the system alters the control field when each record is read. The record number (R) is incremented by 1 and the number of records to be accessed (X) is decremented by 1. If a cylinder boundary is crossed, the cylinder number is increased by one and the record number is reset to 1. The record number (R) is incremented by 1 and number of records to be accessed (X) is decremented by 1 as each record is read. If a cylinder boundary is crossed, the cylinder number (C) also increases by 1 and the record number is reset to 1. The rest of the control field does not change. Note: If a control address mark (hex F8) is detected and the first character in the data field is not hex C4 or C6 (alpha D or F), the system posts invalid control record status (byte 1, bit 1) and control address mark (byte 1, bit 3) and ends the read operation. If an alphabetic D or F is in the first position of the data field, the system ignores that record and reads subsequent records. Read ID (Identifier) -------------------- This operation initiates the recovery of a single 4-byte identifier field, CHRN, from the current selected track. The system places the first identifier read without error in the data field at the address specified in the data address register. If no ID on the current track can be read successfully, the system posts the no-orient status (byte 2, bit 3). No automatic seek occurs, and the control field remains unchanged. Note: If a defect appears in an ID field, your program can delete the entire track by writing a defective track identifier in all records on that track. This ID is CHRN = hex FFFFFFFF. All track information, including ID fields, must be put on the next-higher-numbered track. Write/verify data ----------------- This operation initiates an automatic seek to the logical track adddress specified in the control field and writes X+1 records obtained from contiguous positions of the data field addressed by the data address register. Records are written beginning at the record number specified within the control field. Whenever the system encounters a flagged track, it automatically seeks the next track. A maximum of three automatic seeks are attempted before the operation is terminated. Each record is 128 or 512 bytes long and is written in accordance with the record format described in "Diskette control fields and data fields" in this chapter. At the same time, the system writes a data address mark (hex FB) in the byte immediately preceding the data field in the record. Data verification automatically occurs during the next diskette revolution. If the system encounters the end of cylinder before X+1 records have been accessed, an automatic seek to record 1 of the next track occurs and execution continues. The system increments by 1 and decrements the number of records to be accessed by 1 as each record is written. If a cylinder boundary is crossed, the system also increments the cylinder number by 1 and sets the record number to 01. The system does not change the rest of the control field. Write/verify control address mark --------------------------------- This operation is very similar to a write-data operation. It initiates an automatic seek to the logical track address specified in the control field and then writes X+1 records obtained from contiguous positions of the data field addressed by the data address register. Records are written, beginning at the record number specified within the control field. The only difference between this operation and the write-data operation is that a control address mark (hex F8) is written in the byte immediately preceding the data field in the record. The data field of each record written is 128 or 512 bytes long and is written in accordance with the record format reference. When the system encounters a flagged track, an automatic seek to the next track occurs. The system attempts a maximum of three automatic seeks before ending the operation. Data verification occurs during the next diskette revolution. If the end of a cylinder is encountered before X+1 records have been accessed, an automatic seek to record 1 of the next track occurs and execution continues. The control field remains unchanged except for the record number and number of records to be accessed during multiple record operations; these values are incremented by 1 and decremented by 1, respectively, as each record is written. If a cylinder boundary is crossed, the system adds 1 to both the cylinder number and sets the record number to 01. Write/verify ID (Identifier) ---------------------------- The write-ID/verify operation initiates the writing of a full track of data in accordance with the record format described in "Diskette control fields and data fields" in this chapter. The system forces the record number in the control field to 1 so that the first record written after the index point is record 1. The system generates subsequent record numbers by incrementing the record number byte by 1 as each record is written. Data for each record data field is obtained from the same 128-byte or 512-byte data field in main storage. The system writes an entire 128-byte or 512-byte data field from storage for each disk record written. Data verification automatically occurs during the next diskette revolution. The record number is the only byte in the control field that changes; it is decimal 26 or 8 at the end of the operation. Note: Write ID is intended to be used for track initialization procedures. If the cylinder portion of the CHRN field is specified as hex FF, the record number portion is not incremented during write-ID execution. This writes a defective track identifier field equal to hex FFFFFFFF. During automatic data verification, length-mismatch and no-orient status are set. ID verification should be performed by the read-ID instruction. Check condition and status information ====================================== Refer to Figure 8-3 for a summary of diskette operations, diskette indicators set, and suggested restart procedures. Format: Bit Description Status byte 0 ------------- 0 "Missing data address mark" indicates that a data address marker is not detected after an ID field. The next diskette operation or system reset operation resets this bit. 1 "ID CRC" indicates a cyclic redundancy check noncompare in an ID field: - When the searching for an ID field and orientation can not be achieved - After initial orientation, when a subsequent ID CRC is detected. The next diskette operation or system reset operation resets this bit. 2 "Data CRC" indicates a cyclic redundancy check noncompare in the data field after initial record orientation. The next diskette operation or system reset operation resets this bit. 3 "Cylinder mismatch" indicates a mismatch between the cylinder address portion of the ID field and the control field during an ID search. This bit is reset prior to diskette I/O instruction execution or by a system reset operation. 4 "Head mismatch" indicates a mismatch between the head address portion of the ID field and the control field during an ID search. This bit is reset prior to the next diskette operation or by the next system reset operation. 5 "Record mismatch" indicates that no match between the record address portion of any ID field and the control field occurred during an ID search. This bit is reset prior to the next diskette operation or by the next system reset operation. 6 "Length mismatch" indicates a mismatch between the record length portion of the ID field and the control field during an ID search. This bit is reset prior to the next diskette operation or by the next system reset operation. 7 This bit is reserved. Status byte 1 ------------- 0 "No operation" indicates that a diskette I/O instruction cannot be executed because of an outstanding not-ready status. This bit is reset by the next diskette I/O instruction or by a system reset operation. 1 "Invalid control record" indicates that the leftmost byte of a control record data field contains other than an F or D control graphic. This bit is reset by a diskette I/O instruction or by system reset. 2 "Control error" indicates that a low write current existed during a diskette write operation or write or erase gate selection was made during any diskette I/O operation except write. This bit is reset prior to a diskette I/O operation or by a system reset operation. 3 "Control address mark record found" indicates that a control address mark was found. This record was skipped and the next one was processed in its place if the operation was read-data and the leftmost byte of the data field contained hex D or F. This condition is not tested by a test instruction. The next diskette read, write, or seek operation resets the control-address-mark- record-found bit. 4 "Cylinder address invalid" indicates that the logical cylinder number in the control field exceeds 76. This bit is reset prior to a start diskette command or by a system reset operation. 5 "Write error" indicates that either a write overun (status byte 2, bit 6) or a write parity check (byte 2, bit 7) was detected during a write operation. This bit is reset by the next diskette I/O instruction or by a system reset operation. 6 This bit is used by the system. 7 This bit is used by the system. Status byte 2 ------------- 0 "Diskette fast" indicates that the diskette rotates faster than the maximum specified rate of 369 RPM, or 162.50 ms per revolution. This bit is reset prior to the next diskette operation or by a system reset operation. 1 "Not ready" indicates that: The diskette is not inserted, or The door is not closed, or The diskette is inserted backwards, or The diskette unit is malfunctioning. "Ready" is conditioned by a recalibrate operation if the diskette is up to proper speed. This is the only way this bit can be reset. 2 This bit is unassigned. 3 "No orient" indicates that a record specified by the record address in the control field of a data operation could not be found. This bit is reset prior to the next diskette operation or by a system reset operation. 4 "Read overrun" indicates that the minimum data transfer rate was not maintained during a data transfer operation from the diskette to main storage. This bit is reset prior to the next diskette operation or by a system reset operation. 5 This bit is unassigned. 6 "Write overrun" is similar to a read overrun except that the minimum data transfer rate is not maintained during data transfer from main storage to the diskette. The next diskette read, write, or seek operation or system reset operation resets this bit. Note: This status bit can be sensed by the program for a write-ID operation only. Write-error status (byte 1, bit 5) is set simultaneously; the program can sense this bit. 7 "Write parity check" indicates that a mismatch between data-bus-out parity and system generated serial-write-data parity was detected during a write operation. The next diskette read, write, or seek operation or system reset operation resets this bit. Note: This status bit can be sensed by the program for a write-ID operation only. Write-error status (byte 1, bit 5) is set simultaneously; the program can sense this bit. Status byte 3 ------------- The status bits in this byte cannot be sensed by your program. Bits 0 and 4-7 may be on if a 1-track seek preceded the I/O operation bits 1, 2, and 3 will be off. (ROCHE>? if a ... preceded the I/O operation. Then, bits... ?) 0 The head is loaded. 1 The low write current to diskette is set. 2 The write gate to diskette is on. 3 The erase gate to diskette is on. 4 Seek to track 3 or 0 is on. 5 Seek to track 0 or 1 is on. 6 Seek to track 1 or 2 is on. 7 Seek to track 2 or 3 is on. IMPL (Initial Microprogram Load) and IPL (Initial Program Load) --------------------------------------------------------------- IMPL and IPL are selected by toggle switches located on the CE panel and are initiated by pressing the LOAD key located on the operator's panel. A diskette IMPL initiates the transfer of the 4096-byte IMPL record located on track 00, record 01 into storage. This 4096-byte record is a special record used by the system; it is never used by the programmer. The IPL from the diskette is not the normal mode and is used primarily for installing a new supervisor. IPL from diskette is initiated by the system immediately following a successful IMPL if the DEVICE SELECT switch is set to select IPL from the diskette. Suggested diskette error recovery procedures -------------------------------------------- The recovery procedures presented in Figure 8-3 can be used to restore system operation. The type of action necessary is determined by performing a sense- diskette operation, then testing to determine which diskette status bits are on. Figure 8-3. Diskette operation ending conditions, status, and suggested restart Notes: a = No-op is set by all operations except recalibrate. b = This condition is not tested for error recovery procedure. Suggested action <-------------------------------+ | Condition set by: | Seek Q-Byte D0 <--------------------------+ | Read Data Q-Byte D1 <------------------------+ | | Read ID Q-Byte D2 <----------------------+ | | | Read Data and Control Data Q-Byte D4 <--------------------+ | | | | Write Data (Write Cycle) Q-Byte D5 <------------------+ | | | | | Write Data (Verify Cycle) Q-Byte D5 <----------------+ | | | | | | Write Control (Write Cycle) Q-Byte D6 <--------------+ | | | | | | | Write Control (Verify Cycle) Q-Byte D6 <------------+ | | | | | | | | Write ID (Write Cycle) Q-Byte D7 <----------+ | | | | | | | | | Write ID (Verify Cycle) Q-Byte D7 <--------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Status Byte 0 | | | | | | | | | | | ------------- | | | | | | | | | | | | | | | | | | | | | | Bit Name | | | | | | | | | | | --- ---- V V V V V V V V V V V 0 Missing data address mark |X|X| |X| |X| |X| |X| 3 | | | | | | | | | | | 1 ID CRC | |X|X|X|X|X|X|X| |X| 3 | | | | | | | | | | | 2 Data CRC | |X| |X| |X| |X| |X| 3 | | | | | | | | | | | 3 Cylinder mismatch | |X| |X|X|X|X|X| |X| 3 | | | | | | | | | | | 4 Head mismatch | |X| |X|X|X|X|X| |X| 3 | | | | | | | | | | | 5 Record mismatch | |X| |X|X|X|X|X| |X| 3 | | | | | | | | | | | 6 Length mismatch | |X| |X|X|X|X|X| |X| 3 | | | | | | | | | | | 7 Not used | | | | | | | | | | | 3 | | | | | | | | | | | | | | | | | | | | | | Status Byte 1 | | | | | | | | | | | ------------- | | | | | | | | | | | | | | | | | | | | | | Bit Name | | | | | | | | | | | --- ---- | | | | | | | | | | | 0 No op |a|X| |X| |X| |X| |X| 3 | | | | | | | | | | | 1 Invalid control record | |X| |X| | | | | | | 4 | | | | | | | | | | | 2 Control error |X|X|X|X|X|X|X|X|X|X| 3 | | | | | | | | | | | 3 Control address mark record found |b|b|b|b|b|b|b|b|b|b| | | | | | | | | | | | 4 Cylinder address invalid |X|X| |X|X|X|X|X| |X| 2 | | | | | | | | | | | 5 Write error | | | | |b|b|b|b|b|b| | | | | | | | | | | | 6 Not used | | | | | | | | | | | | | | | | | | | | | | 7 Not used | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Status Byte 2 | | | | | | | | | | | ------------- | | | | | | | | | | | | | | | | | | | | | | Bit Name | | | | | | | | | | | --- ---- | | | | | | | | | | | 0 Diskette fast |X|X|X|X|X|X|X|X|X|X| 3 | | | | | | | | | | | 1 Not ready |X|X|X|X|X|X|X|X|X|X| 1 | | | | | | | | | | | 2 Not used | | | | | | | | | | | | | | | | | | | | | | 3 No orient | |X|X|X| |X| |X| |X| 3 | | | | | | | | | | | 4 Read overrun | |X|X|X| |X| |X| |X| 3 | | | | | | | | | | | 5 Not used | | | | | | | | | | | | | | | | | | | | | | 6 Write overrun | | | | |X| |X| |X| | 3 | | | | | | | | | | | 7 Write parity check | | | | |X| |X| |X| | 3 Suggested action ---------------- Number Description ------ ----------- 1 1. Recalibrate. 2. Read volume label. 3. Check volume 1 standard and volume identification for validity. (If not valid issue message to insert correct diskette.) 4. Repeat until valid diskette is inserted or until job is canceled. 5. Post possible wrong-diskette-inserted return code. 6. Return. 2 1. Post end-of-volume return code. 2. Return. 3 1. Retry three times or until successful. a. If not successful, seek forward and backward one cylinder three times or until successful. b. If step 1a is not successful, and if the system is executing a read data operation, evoke an automatic sector rebuild. If the system is not executing a read data operation, post the permanent-error return. 2. Log the diskette error. 3. Return. 4 1. Post invalid-control-record-read return code. 2. Return. Initialization procedures ------------------------- Diskette initialization procedures described below guarantee a serviceable diskette. Basic initialization objectives are that: - Track 00 must be free of defects. - Diskettes are initialized in accordance with the basic interchange record format defined in this chapter under "Diskette control fields and data fields". - Defective tracks are flagged defective and the ERMAP is updated. To initialize the diskette: 1. Reinitialize track 00. a. Write ID/verify with 128 bytes of hex E5 in the data field. If unsuccessful, retry a maximum of two times, and if still unsuccessful, go to step 3. b. Write data/verify with 128 bytes of hex 40 in the data field. If unsuccessful, retry a maximum of two times, and if still unsuccessful, go to step 3. 2. Continue to sequentially reinitialize the remainder of the diskette by repeating step 1. (Be sure to reinitialize sectors of the appropriate length -- 128 bytes each or 512 bytes each.) 3. If track 00 cannot be successfully initialized, discard the diskette. If track 00 is successfully initialized and some other track is found defective, use the surface defect procedures, flag the defective track, and update the ERMAP. Surface defect procedures ------------------------- The track must be flagged as defective and the ERMAP label must be updated during a reformatting operation if less than two tracks have been previously flagged. The diskette must be discarded if track 00 is defective, or if two tracks have been flagged as defective and an additional track is found defective. EOF