The Fixed Disk Adapter attaches to one
units through
cable). Each system supports a maximum of one Fixed Disk
Adapter and two fixed disk drives.
The adapter
board's direct memory access (DMA) for record data transfers.
An interrupt level also
and status conditions
The Fixed Disk Adapter provides automatic 11-bit burst error
detection and correction in the form of 32-bit error checking and
correction
The device level control for the Fixed Disk Adapter
on a
ROM
control can be found in "BIOS Listing"
Warning: The last cylinder
for diagnostic use. The diagnostic write test
data on this cylinder.
Fixed
an
internal, daisy-chained, flat cable
is
buffered
(ECC).
module on the adapter. A listing
Disk
Controller
on
the
I/O
is
used to indicate operation completion
that
require microprocessor attention.
on
the fixed disk drive
or
two fixed disk drive
(data/control
bus and uses the system
is
contained
of
this device level
of
this section.
is
reserved
will
destroy any
The disk controller has two registers
system unit's microprocessor: a status register and a data register.
The 8-bit status register contains the status information
disk controller, and can be accessed at any time. The 8-bit data
register (actually consisting of several registers in a stack with
only one register presented to the data bus) stores data,
commands, and parameters, and provides the disk controller's
status information. Data bytes are read from, or written to the
data register in order to program or obtain the results after a
particular command. The status register
is
that
microprocessor and the disk controller. The controller-select
pulse
used to help the transfer
is
generated by writing to port address hex 322.
that
may be accessed by the
of
is
a read-only register
of
data between the system unit's
Fixed Disk Adapter 1
the
>-l
::r
(1)
......,
S-
~
CIl
2-
o
cr'
(")
Il:>
o
11';'"
0..
p;-
Il:>
~
S
o
......,
......
::r
~
td
(1)
>-<
'Tj
--
~
X-
r;;-
>
t:l
(1)
0..
11';'"
0..
Il:>
>1j
(1)
......
~
J2
1
Deserializer
Serializer
Drives
To
f
l
Data
Separator
SERDES
ECC
Sector
Bus
Data
DB7-DBO'
)
Buffer
)
Fixed Disk Adapter Block Diagram
Processor
8-Bit
.---
Control
1/0
Edge
Connector
>
o
~
~
~
N
Q.
!
~
.....
...
)
Programming Considerations
r"'\
~
Status Register
At
the end of all commands from the system board, the disk
controller sends a completion status byte to the system board.
an
This byte informs the system unit's microprocessor if
of
occurred during the execution
shows the format of this byte.
6 5
o d o 0
Bits 0,
Bit
BitS
If
when it is ready to transfer the status byte. Busy from
controller is un asserted when the byte is transferred
the command.
1,2,
1
the interrupts are enabled, the controller sends an interrupt
4 3
2
o
3, 4, 6, 7 These bits are set
the command. The following
e
~I
to
zero.
When
occurred during command execution.
This bit shows the logical unit number
of the drive.
set, this bit shows an error has
error
the
to
complete
disk
Fixed Disk Adapter 3
Sense Bytes
If
the status register receives an error (bit 1 set), the disk
of
controller requests four bytes
is
four bytes
as follows:
sense data. The format for the
Bits
Byte 0 Address
Byte 1 0 0
Byte
2
Byte 3
Remarks
d
= drive
7
Valid
I
Cylinder High
6 5 4 3 2 1 0
Error
d
Type
I
I
Cylinder
I
Head
Sector
Low
o I
Byte 0 Bits 0, 1, 2, 3 Error code.
Bits
Bit
4,5
6
Byte 0
Byte 0
Byte 0 Bit 7
Error type.
Set to 0 (spare)
The address-valid bit. Set only when
the previous command required a
disk address, in which case it
returned
as a 1;
Error Code
Number
Number
otherwise, it
is
is
O.
4 Fixed Disk Adapter
Disk
Controller Error Tables
The following disk controller error tables list the error types and
error codes found in byte 0:
Error
Type
Error Code
Bits
5 4
0
0 0 0 0 0
0 0
0
0
0
0 0 0 0 0
0 0 0 0 0
0
0
0 0
3 2
0
0
0 0
1
0 0
0
1
1
1
1
0 1 0 1 0
,
1 0
1 1
0
0
1
0
The
0
1
0
1
0
controller
the
during
operation.
controller
The
from
the
The
controller
signal
from
non-buffered
(for all
controller
The
the
drive during
After
the
drive did
Not
used.
After
stepping
cylinders,
track
00
Not
used.
The drive is still seeking.
reported
for
an overlap seek
drive has
time-out
the
seek
Description
did
execution
did
drive.
did
the
drive
detected a write
the
controller
not
respond
the
the
controller
signal
from
by
the
Test
not
completed
is
measured
to
complete.
not
detect
any error
of
the
previous
not
detect
an
index
not
get a seek-complete
after
a seek operation
step
seeks).
fault
last
operation.
selected
maximum
condition
the
with
a ready signal.
number
did
not
the
drive.
This
status
Drive Ready
when
the
seek. No
by
the
controller
drive, the
receive the
signal
from
of
is
command
the
for
Fixed Disk Adapter 5
Bits
Error
Type
Error Code
5 4 3 2
0
1 0 0 0 0 ID Read Error: The
0 1
0
0
0
0
0 1
0 1
0 1
0
0 0 0 1 Data Error: The
1
0 0
1
0 0
1
0
1
0
0
0
1
1
1 0 0
0 Description
1
ECC
error
uncorrectable
during a read operation.
1
0
Address
the
target
1 0
1
1 1
1 1
0
1 1
0 1
0 0
Not
used.
Sector
0
correct
target
Seek Error: The
(either
expected
seek.
Not
0
1
1 Bad
used.
Not
used.
Correctable
detected a correctable
ta
rget
Track:
track
retries are
in
the
ECC
Mark:
address
Not
Found:
cylinder
sector.
or
both)
target
Data Error:
field.
The
flag during
attempted
controller
target
controller
error in
The
controller
mark
The
and head,
cylinder
did
not
address as a result
controller
the
ID field on
detected
the
(AM)
controller
but
or
head address
compare
The
ECC error in
detected
last
operation.
on
this
detected
target
did
on
not
controller
error.
the
an
not
the
found
the
with
a bad
an
disk.
sector
detect
disk.
the
of
a
the
No
the
Error
Type Error Code
Bits
5 4
1 0 0
1 0
2 1
3
0
0 0 0
6 Fixed Disk Adapter
0 0
0
Invalid
Command:
received an invalid
system
unit.
Illegal Disk Address. The
1
detected
maximum
an address
range.
Description
The
controller
command
controller
that
is beyond
from
has
the
the
Bits
Error
Type
Error Code
5 4 3 2 1
1
1
1
1
1
1
0
0 0 0 1
0 0 1
0
0 0 0
Description
RAM
Error: The
error during
diagnostic
Program
this
internal
detected a program-memory
error.
ECC Polynominal Error: During
0
controller's
hardware
the
test.
Memory
diagnostic
internal
ECC
generator
controller
RAM
Checksum
detected
sector-buffer
Error: During
test,
the
checksum
diagnostic
failed
a data
controller
the
tests,
the
its
test.
Data Register
?."
The system unit's microprocessor specifies the operation by
sending the 6-byte device control block
The figure below shows the composition of the
5
d
I
Interleave
DeB.
4 3 2 1 0
Cylinder
or
Control
the bytes that make up the
Bit
Byte 0
Byte
Byte 2 Cylinder High
Byte 3
Byte 4
Byte 5
1
7 6
Command
Class
0
0
Sector
Low
Block
Field
(DeB)
Opcode
Head
Number
Number
Count
to the controller.
DeB,
and defines
Byte 0 Bits 7, 6, and 5 identify the class of the command.
Bits 4 through 0 contain the Opcode command.
Byte 1
Bit 5 identifies the drive number. Bits 4 through 0
contain the disk head number to be selected. Bits
6 and 7 are not used.
Fixed Disk Adapter 7
Byte 2
Bits 6 and 7 contain the two most significant bits
of the cylinder number. Bits 0 through 5 contain
the sector number.
Byte 3
Bits 0 through 7 are the eight least-significant bits
of the cylinder number.
Byte 4
Bits 0 through 7 specify the interleave or block
count.
Byte 5
Bits 0 through 7 contain the control field.
Control Byte
Byte 5
select options for several types of disk drives. The format of this
byte
Bit 7 Disables the four retries
is
the control field of the
is
as follows:
6 5 4 3 2
a
000
disk-access commands. Set this bit only during the
evaluation
DeB
and allows the user to
Remarks
s
s r =
~I
of
the performance of a disk drive.
retries
s =
step
option
a =
retry
option
error
by
the controller
on
data
ECC
on
all
Bit 6
If
set to 0 during read commands, a reread
attempted when an
occurs during reread, the command will finish
without an error status.
reread
Bits
5,4,3
8 Fixed Disk Adapter
Set to
is
attempted.
O.
Eee
If
error occurs.
this bit
is
set
is
If
no error
to
1, no
Bits
Bits
2,
1,0
2,
0 0
0
0
0
1
1 0 1
1 1
1 1 1
1,
0
1
1 1
0 0
These bits define the type
of
step option. See the following figure.
0
This
drive
is
not
0
1
0
0
step
N/A
N/A
N/A
200
microseconds
70
microseconds
milliseconds
3
milliseconds
3
specified and
per step.
per
per step.
per step.
step
defaults
(specified
drive and select the
to 3 milliseconds
by
BIOS).
per
Fixed Disk Adapter 9
Command
Summary
Command
Test
Drive Bit 7
Ready Byte 0 0 0
0,
(Class
OpcodeOO)
Recalibrate Bit
(Class
0,
01)
Opcode
Reserved This Opcode is
(Class
0,
02)
Opcode
Request Sense Bit 7
Status
0,
(Class
Opcode
03)
Format Drive Bit
(Class
0,
Opcode
04)
Data Control Block Remarks
6 5 4 3 2 1 0
0 0 0 0
0
01
Byte 1 0 0
7
Byte
0 0
Byte 1
Byte
Byte 0
Byte 1 0
0 0
5
r 0 0 0 0 s s s s
0 0
7
Byte
0
0 0
Byte
1
0 0 d
Byte
2
ch
Byte
3
Byte
4 0 0
Byte
5
r 0 0 0 0 s s
6 5 4 3
0
6 5 4 3 2
0
6 5 4 3 2 1 0
x
dlx
0 0 0 1 x
0
01
x x x x r
Ix
d
0 0 1 1
0
01
x x x x
Ix
d
0
0
01
IHead
0 0 0 0 0
10
Cylinder
Interleave
01
x x x
2 1 0
1 0
1 0 0 r
Number
Low
s
d
=
drive
(0 or 1 )
=
don't
x
Bytes
2, 3, 4, 5 =
care
d
=
drive
(0 or
=
don't
= retries
=
Step
Option
Bytes
2,
3,4 = don't
care
ch
=
cylinder
used.
d
=
drive
(0
x
=
don't
Bytes
2, 3, 4, 5 =
care
d
=
drive
(0
= retries
s =
step
option
ch
=
cylinder
Interleave 1
for
512-byte
care
care
or
care
or
to
don't
1)
high
not
1 )
don't
1 )
high
16
sectors.
Ready
(Class
Opcode
Verify
0,
05)
Bit 7 6 5 4 3 2 1 0
Byte 0
Byte 1 0 0
Byte
2 ch I Sector
Byte
3
Byte 4 Block
Byte
5 r a
10 Fixed Disk Adapter
0 0
0 1 0
010
IHead
d
Cylinder
Count
0 0 0 s
Number
Number
Low
s s
d
=
1 r
= retries
s =
a =
data
ch = cylinder high
drive
step
retry
ECC
(0 or 1 )
option
option
on
Command Data Control Block
Format
Track
(Class 0,
Opcode
06)
Format
Bad Bit 7
Track
(Class 0,
Opcode
07)
Bit 7 6 5 4 3 2 1 0
Byte
0 0 0
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte
Byte 3 Cylinder
Byte 4
Byte
0
1
0 d I Head
2
ch
3
4
0 0
5 r 0 0
6
0
0 0
1
0 0 d
2
ch
0 0
5
r
0 0
0 1 1 0
010
0 0
10
Cylinder
Low
Interleave Interleave 1
01
0 0
5 4 3 2
0
0
01
I Head
0 0 0 0 0
lO
Low
Interleave Interleave 1
01
0 0 s s s
Number
0 0 0
s s s
1 0
1 1 1
Number
Remarks
d
= drive (0
r
= retries
s =
step
option
ch = cylinder
for
51 2-byte
d
=
drive
(0
r
= retries
s =
step
option
ch = cylinder
for
51
2-byte
or
1 )
high
to
16
sectors.
or
1)
high
to
16
sectors.
Read Bit
(Class
0,
Opcode
08)
Reserved This
(Class 0, used.
(Class 0,
(Class
0,
09)
OA)
OB)
Opcode
Write
Opcode
Seek
Opcode
Byte
Byte
Byte
Byte
Byte
Bit
Byte 0
Byte
Byte 2
Byte
Byte
Byte
Bit 7
Byte
Byte
Byte
Byte
Byte
Byte
7 6 5 4 3 2 1 0
0 0
0
0
01
1
0 0
2
3
5
r a 0 0 0
7 6 5 4 3 2 1 0
0 0 0
1
3
4
5
r 0 0 0 0 s s s
0
0 0
1
0 0 d
2
3 Cylinder
4
x x x
5
r 0 0 0 0 s s s
ch
ch
ch
d
I
Cylinder
01
0
d
I
Cylinder
Block
6 5
010
10
I Head
Sector
0
l Head
Sector
Count
4
I Head
0 0
x x
1 0 0 0 r
Number
Number
Low
s s s
1 0 1 0
Number
Number
Low
1
3 2
1 0 1 1 r = retries
Number
0
0 0 x =
Low
x x x
d = drive (0
a =
data ECC error
s =
ch = cylinder
d = drive
r
s
ch = cylinder
d
0
s =
ch = cylinder
= retries
= retries
=
= drive (0
retry
option
step
option
Opcode
step
option
step
option
don't
or
(0
or
or
care
high
is
high
high
1)
on
not
1 )
1)
Fixed Disk Adapter 11
Command
Data Control Block
Remarks
Initialize
Drive
Characteristics'
(Class
0,
Opcode
Error Length
Opcode
Read Data
Sector
Opcode
Write
Sector
Opcode
Opcode
OC)
Read ECC
(Class
0,
OD)
Buffer
0,
(Class
OE)
Data
Buffer
(Class
0,
OF)
RAM
Diagnostic
(Class 7,
00)
Burst
from
to
IBit
IByte 0
I
Bit
I
Byte
0
I
Bit
l
Byte
0
IBit
IByte 0
lBit
I
Byte 0 11
10
17
10
17
JO
17
1
17
17
0
6 5 4 3
0
0
01
6
5 4 3
0
0
01
4 3 2 1
6 5
0
0
01
4
6
5
0
0
01
4
6 5
1
10
1
2 1
1 1
2 1
1 1
1 1 1
3
1 2 1 1 1
3 2
0 0
0
Bytes
1, 2,
3,4,5,
4,
=
5, =
=
=
01
don't
Bytes
don't
Bytes
don't
Bytes
don't
Bytes
don't
care
care
care
care
care
1, 2, 3,
1, 2, 3, 4, 5, =
1, 2, 3, 4, 5,
1,
2,3,4,5,
0
oj
01
0
j
1
01
01
oj
I
1
1
OJ
01
Reserved
(Class 7,
01)
Opcode
Reserved This Opcode is
(Class 7, used.
Opcode
02)
'Initialize
Drive Characteristics: The DBC
Maximum
Maximum
Start
Start
Maximum
number
number
reduced
write
write
precompensation
ECC data
of
cylinders
of
heads
current
burst
cylinder
cylinder
length
must
be
followed
(2
(1
(2
(2
(1
This
used.
by
eight
bytes)
byte)
bytes)
bytes)
byte)
Opcode is
additional
12 Fixed Disk Adapter
not
not
bytes.
Command Data Control Block
Drive
Diagnostic
(Class 7,
Opcode
03)
Controller
Internal
Diagnostics
(Class 7,
Opcode
04)
Read
Long*
(Class 7,
Opcode
Write
Opcode
05)
Long* * Bit
(Class 7,
06)
Bit
Byte
0 1
Byte
1
Byte
2
Byte
3
Byte
4 x
Byte 5 r
Bit 7
Byte
0
Bit
Byte
0 1 1
Byte
1
Byte
2
Byte
3
Byte
4
Byte
5
Byte
0
Byte
1
Byte
2
Byte
3
Byte
4
Byte
5 r
7 6 5 4 3 2 1 0
1
0 0
x x
x x
x
0 0 0
6 5 4 3
1 1
7 6 5 4 3 2 1 0
0 0 d
ch
r
0 0 0 0
7 6 5 4 3 2
1 1
0 0 d
ch
0 0 0 0 s s s
0 0
1
10
x x
d
Ix
x x x x x x x =
x x x x x x
x x x x x
x
0 s s
0
1
10
0 1 0
10
1
IHead Number
I
Sector
Cylinder
Block
Low
Count
0
1
10
IHead
I
Sector
Cylinder
Block
Low
Count
1
1
x x r = retries
s
2 1 0
1
0
0
1
Number
s s s
1 0 d
1 1 0 s
Number
Number
Remarks
d
= drive (0 or
= step
s
Bytes
don't
d
s
r
ch
option
don't
1,2,
care
= drive (0 or
= step
option
= retries
=
cylinder
= drive (0 or
= step
option
r = retries
ch
= cylinder high
1)
care
3, 4, 5, =
1)
high
1)
*Returns 512 bytes plus 4
bytes
* *Requires 512
plus 4
bytes
bytes
of
of
ECC
ECC
data per sector.
data per sector.
Fixed Disk Adapter 13
Programming
Summary
The two least-significant bits of the address bus are sent to the
system board's
section
the
read/
is
I/O
write signal (-lOW). The result
write ports assigned to the disk controller board.
I/O
port decoder, which has two sections. One
enabled by the
I/O
read signal (-lOR) and the other by
is
a total of four
1""""'\
The address enable signal (AEN)
when DMA
I/O
the
The following figure
R/W
Read
Write
Read
Write
Read
Write
Read
Write
is
controlling data transfer. When
port decoder
Port
is
Address
320
320
321
321
322
322
323
323
is
disabled.
a table of the read/write ports.
Read data
Write
Read
Controller
Reserved.
Generate
Not
used.
Write
register.
is
asserted by the system board
AEN
is
asserted,
Function
(from
data
(from
controller
reset.
controller·select
pattern
to
controller
system
hardware
DMA
unit
and
to
system
to
controller).
status.
pulse.
interrupt
mask
unit).
14 Fixed Disk Adapter
Interface
The following lines are used by the disk controller:
AO-A19
DO-D7
-lOR
-lOW
AEN
RESET
Positive true 20-bit address. The least-significant 10
II
bits contain the
320
to hex 323 when an
executed by the system unit. The full
to
decoded
between the addresses of hex
Positive 8-bit
information is passed between the system
the controller.
Negative true signal that is asserted when the system
board
either programmed
Negative true signal
board
under either programmed
Positive true signal
the system
or
I/O
address
Positive true signal
its initial power-up condition.
address the read-only memory
reads status
sends a command
board
Write
and
0 address within the range of hex
I/O
read or write
20
data
bus over which data
or
data from
I/O
that
that
is generating the
(-lOW)
data
signals
buses.
that
C8000
or
DMA
is asserted when
or
data
I/O
or
is asserted when the
and
forces
the
and
the
controller under
control.
to the controller
DMA
II
0
Read
has control of the
disk controller to
is
bits are
(ROM)
C9FFF.
and
status
board
the
system
control.
DMA
(-lOR)
and
in
IRQ
5
DRQ3
that
Positive true interrupt-request signal
the
by
system
the controller.
Positive true DMA-request signal that
the controller when data is available for transfer
or from
signal remains active until the system
channel activates the DMA-acknowledge signal
(-DACK
controller when enabled
board
on
the return ending status byte from
the
controller under
3) in response.
to
interrupt the
DMA
control. This
Fixed Disk Adapter 15
is asserted
is
asserted
board's
DMA
by
to
-DACK 3 This signal
the system board
DMA request (DRQ 3).
is
true when negative, and
DMA
channel in response to a
is
generated by
16
Fixed Disk Adapter
Specifications
The Fixed Disk Adapter connector and interface specifications
follow.
Fixed Disk Adapter 17
Disk
Drive
Connector
J1
Signal
Ground-Odd
Reserved
- Reduced
-
Write
Gate
- Seek
Complete
-
Track
00
Write
Fault
-
-
Head'Select
- Head
Select
-Index
- Ready
-
Step
-
Drive
Select
-
Drive
Select
-
Direction
Numbers
Write
Current
0
2
2'
1
2
In
Pin
Number
1-33
4,16,30,32
2
6
8
10
12
14
18
20
22
24
26
28
34
Disk
Adapter
Connector
J1
Disk
Drive
Connector
J2orJ3
Fixed Disk
18
Fixed Disk Adapter
Adapter
Signal Pin
Ground
Drive
Select
Reserved
Spare
Ground
MFM
Wire
Data
-
MTM
Write
Data
Ground
MFM
Read
Data
-
MFM
Read Data
Ground
Interface
Specifications
Number
2,4,6,8,12,16,20
1
3,7
9,10,5
(No
Pin)
11
13
14
15
17
18
19
Disk
Adapter
Connector
J2orJ3
Logic
~
:~
H
Diagrams
~:g
,;;t;l
"0
-
Fixed Disk Adapter 19
+
~JI
;:::=:...c
t t
-I
~
0_
o c ""
I! + +
I
CD
~
0
N
~
G)
G)
..r::.
~
..
r"\
G)
~
:=
[8
~
C.
CII
~
oct
JI:
II)
iii
i5
~
G)
><
i!
-in
....
00-' -GI
~
N
~
iIi:;J:=§~"
Pl1
n
1+
II
~~
20
Fixed Disk Adapter
!li
~
oC
;;;;:!;;
u
~
~
7
"
...
Q)
....
c.
CtI
"C
<t
~
III
Q
"C
Q)
)(
~
Fixed Disk Adapter 21
~
:
~
iii
"
'"
OJ
;: ;:
¥
'"
OJ
" ~ "
'" '"
oi oi
~
"'
~
"
CD
~
0
-.:t
..
Q)
Q)
r.
!!!
...
Q)
..
Q.
IV
"C
<t
~
I/)
is
"C
Q)
><
u:::
22 Fixed Disk Adapter
".-..."
CD
....
0
Il)
....
Q)
Q)
~
~
..
Q)
....
0.
CO
"C
«
.:.:
III
C
"C
Q)
>C
u::
Fixed Disk Adapter 23
__
~
Q)
...
c.
ca
"C
<C
~
III
is
"C
I
I
I
I
,.
i
I
I
J
Q)
><
u:::
24
Fixed Disk Adapter
BIOS Listing
The BIOS Listing for the IBM Fixed Disk Adapter follows.