121593 002_i SBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81 002 I SBC 215A B Winchester Disk Controller Hardware Reference Manual Sep81

121593-002_iSBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81 manual pdf -FilePursuit

121593-002_iSBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81 121593-002_iSBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81

User Manual: 121593-002_iSBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81

Open the PDF directly: View PDF PDF.
Page Count: 127

Download121593-002_i SBC_215A_B_Winchester_Disk_Controller_Hardware_Reference_Manual_Sep81 121593-002 I SBC 215A B Winchester Disk Controller Hardware Reference Manual Sep81
Open PDF In BrowserView PDF
•
iSBC 21S™
WINCHESTER
DISK CONTROLLER
HARDWARE REFERENCE MANUAL

•

Order Number: 121593-002

•
•
•
I

Copyright

©

1980, 1981 Intel Corporation

REV.

PRINT
DATE

REVISION HISTORY

-001

Original Issue

1181

-002

Manual updated for minor corrections.

9/81

•
•

Additional copies of this manual or other Intel literature may be obtained from:
Literature Department
Intel Corporation
3065 Bowers Avenue
Santa Clara, CA 95051

•

The information in this document is subject to change without notice.
Intel Corporation makes no warranty of any kind with regard to this material, including, but
not limited to, the implied warranties of merchantability and fitness for a particular purpose.
Intel Corporation assumes no responsibility for any errors that may appear in this document.
Intel Corporation makes no commitment to update nor to keep current the information
contained in this document.
Intel Corporation assumes no responsibility for the use of any circuitry other than circuitry
embodied in an Intel product. No other circuit patent licenses are implied.
In tel software products are copyrighted by and shall remain the property of Intel
Corporation. Use, duplication or disclosure is subject to restrictions stated in Intel's software
license, or as defined in ASPR 7-104.9(a)(9).

•

No part, of this document may be copied or reproduced in any form or by any means without
the prior written consent of Intel Corporation.
The following are trademarks of Intel Corporation and its affiliates and may be used only to
identify Intel products:
HXP
CREDIT
i
ICE
iCS
im
INSITE
Intel
Intel

Intelevision
Intellec
iRMX
iSHC
iSBX
Library Manager
MCS
Megachassis
Micromainframe

Micromap
Multibus
Multimodule
Plug·A·Bubble
PROMPT
Promware

RMXIRO
System 2000
UPI
IlScope

and the combination of ICE, iCS, iRMX, iSBC, iSBX, MCS, or RMX and a numerical suffix.

11

•

•

[ ______________.________

P_R_E_F_A_C_E~

This manual provides information regarding the installation, programming,
operation, and servicing of the iSBC 215™ Winchester Disk Controller.
Relateci documents include:

•

•

The SOS6 Family User's Manual, Order No. 9800722

•

Intel MULTIBUgrM Specifications, Order No. 9800683

•

Intel SOSO/S085 Assembly Language Reference Manual, Order No. 9800301

•

MCS-S6™ MACRO Assembly Language Reference Manual, Order No. 900640

•

MCS-86/SSTM Family User's Manual, Order No. 121506

•

S089 Assembler User's Guide, Order No. 9800938

•

iSB)(fM Bus Specification, Order No. 142686

•

iSBX 21S™ Flexible Disk Controller Hardware Reference Manual, Order No.
121583

•
•
•
111

CONTENTS

CHAPTER 1
GENERAL INFORMATION

CHAPTER 2
PREPARATION FOR USE
Introduction .................................... 2-1
Unpacking and Inspection ...................... 2-1
Board Installation Considerations .............. 2-1
Power Requirement ........................... 2-2
Cooling Requirement ......................... 2-2
Multibus Connector ............................. 2-2
Switch/Jumper Configurations ................. 2-2
Wake-Up Address Selection ................... 2-6
Wake-Up 110 Port Address Selection ......... 2-7
System Data Bus Selection ................... 2-7
Interrupt Priority Level ....................... 2-7
Any Request Selection ........................ 2-7
Common Bus Request .......................... 2-7
Winchester Drive Interface ..................... 2-7
-5- V olt Selection
(8" Shugart/Quantum Drives Only) ........... 2-8
Cabling Requirements ........................ 2-8
Drive Installation ............................. 2-9
iSBX Multimodule Interface ................... 2-22
iSBX 218 Board Installation ................... 2-23
Power Up/Down Considerations ............... 2-24
Diagnostic Check .............................. 2-24

CHAPTER 3
PROGRAMMING INFORMATION
Introduction .................................... :3-1
Programming Options .......................... 3-1
Disk Organization .............................. 3-1
Track Sectoring Format ........................ 3-2
Controller 110 Communications Blocks ......... :3-2
Host CPU-Controller-Disk Drive Interaction .... 3-4
Wake-Up 110 Port .............................. 3-4
Wake-Up Block ................................. 3-4
Channel Control Block ......................... 3-4
Controller Invocation Block ..................... 3-4
110 Parameter Block ........................... 3-4
Typical Controller Operations ........ . . . . . . . . .. 3-6
Initializing the Controller ..................... 3-6
Track Formatting ............................. 3-9
Alternate and Defective Track Handling ..... :3-12
Data Transfer and Verification .............. 3-12
Read Sector ID .............................. 3-1:3
Read Data ................................... 3-1:3
Read Data Into Controller Buffer and Verify :3-14
Write Data .................................. 3-15
Write Data from Controller Buffer to Disk ... 3-15
Initiate Track Seek .......................... :3-15

IV

Page

Page

Introduction .................................... I-I
Description ..................................... 1-2
Specifications ................................... 1-3

Execute iSBX 110 Program ..................
110 Transfer Through iSBX Bus ............
Buffer 110 ...................................
Diagnostic ...................................
Posting Status .................................
Transfer Error Status ..........................
Interrupts ......................................
Controlling Data Transfer
Through the iSBX Bus ....................
110 Transfers Using iSBC 215
Controller Resident Firmware ..............
Data Transfer Using User Written
110 Transfer Programs ....................
Example Controller 110 Program ..............

•

:3-16
:3-16
3-17
3-18
:3-18
3-19
3-20
:3-20
:3-20
:3-20
3-2:3

CHAPTER 4
PRINCIPLES OF OPERATION
Introduction .................................... 4-1
Schematic Interpretation ........................ 4-1
Functional Overview ............................ 4-2
Detailed Functional Description ................ 4-5
Controller to Host Communications ............. 4-6
Multibus Interface .............................. 4-6
8089 I/O Processor (lOP) ....................... 4-6
Clock Circuit ................................... 4-6
Bus Arbiter ..................................... 4-7
Bus Controller Logic ............................ 4-8
Multibus Interface
Data Transfer Logic ........................ 4-8
Controller Initialization ......................... 4-8
Wake-Up Address Comparator .................. 4-9
Controller Reset and Clear .................. 4-10
Establishing A Link With
110 Communications Blocks ............... 4-10
Interrupt Priority Logic ........................ 4-11
Local Memory Map ............................ 4-11
ROM .......................................... 4-11
RAM .......................................... 4-11
Local Memory Mapped 110 Ports
and iSBX 110 Ports ....................... 4-11
Controller to Disk Drive Communications ..... 4-12
Controller to Winchester
Disk Drive Interface ....................... 4-12
Control Cable Signals ......................... 4-1:3
Read/Write Cable Signals ..................... 4-14
Controller to iSBX Connector Interface ........ 4-14
Controller to Disk Drive Interface Timing ..... 4-15
DMA Mode .................................. 4-15
Disk Formatting ............................. 4-16
Write Data Transfer ......................... 4-18
Read Data Transfers ........................ 4-20
SER/DES Logic ............................... 4-20
Sync Byte Comparator Logic ................ 4-21

•
•
•
•

[

•

CONTENTS (Continued)

----Page

Page
32-Bit ID Comparator Logic ...................
ECC Generator Logic ..........................
Status Register Logic ..........................
Line Drivers and Receivers ....................

4-21
4-21
4-21
4-22

Service and Repair Assistance .................. 5-1
Self Diagnostic ................................. 5-1
Replaceable Components ........................ 5-1

CHAPTER 5
SERVICE INFORMATION

APPENDIX A

Introduction .................................... 5-1
Service Diagrams ............................... 5-1

EXAMPLE HOST PROCESSOR
DISK CONTROL PROGRAM

HANDSHAKE SEQUENCES AND

•
•

[ _______________________T_A_BLES
Table
1-1.
1-2.
2-1.

•

2-2.
2-3.
2-4.
2-5.
2-6.
2-7.
2-R.
2-9.
:1-l.

:3-2.

3-3.

•

Title

Page

Board Speciflcations ................... 1-:3
Winchester Disk Drive
Characteri,;tics ....................... 1-5
Multibus Connector PI
Pin Assignment ...................... 2-2
iSBC 215 COl1troller/Multibus
Interface PI Signal Descriptions ..... 2-3
iSBC 215 Controller/Multibus
Interface Signal Characteristics ...... 2-6
Configuration Jumpers and Switches .. 2-7
Interrupt Priority Level Selection ...... 2-7
Winchester Drive
Manufacturer Selection ............... 2-8
-5-Volt Selection ....................... 2-9
J3 and J4 Pin Assignments ........... 2-22
iSBX Bus Control Jumper Pins ....... 2-24
Error Status Buffer ................... 3-20
Bit Functions in Hard and
Soft Error Bytes .................... 3-21
iSBX Bus IIO Port Addresses ......... 3-22

Table
:'3-4.

3-5.
3-6.
3-7.
4-l.
4-2.
4-::3.
4-4.
4-5.
4-6.
4-7.
4-S.
5-l.
5-2 .

Title

I

Page

iSBC 215 Controller RAM
Available for Program and
Parameter Storage .................. 3-22
SOS9 Handshake and Control Lines
on the iSBX Bus .................... 3-22
Control and Status Lines
on the iSBX Interface ............... 3-23
J urn per Connections Allowing Option
Lines to be Driven .................. 3-23
80R9 Status Line Decodes .............. 4-R
Host Wake-Up Commands ............. 4-9
Local IIO Ports ....................... 4-12
iSBX Bus IIO Port Addresses ......... 4-12
Control Cable Line Functions ......... 4-13
Read/Write Cable Line Functions ..... 4-14
iSBX Bus Mnemonics-to-Controller
Line Name .......................... 4-15
Status Register Bits ................... 4-22
Code for Manufacturers ................ 5-2
Controller Board Electrical Parts List .. 5-2

v

ILLUSTRATIONS

Figure
1-l.
1-2_

1-3.
2-l.
2-2.
2-3.

2-4.
2-5.

2-6.
2-7.
2-8.

2-9.
2-10.

2-11.
3-1.

3-4.

3-5.
3-6.
3-7.
3-8.
3-9.
3-10.

3-11.

vi

Title

Page

Typical Multiple Drive System
Using Winchester Disk Drives
1-1
Typical Multiple Drive System
Using Flexible Disk Drives and
iSBX 218 Flexible Disk Controller
1-2
Automatic Error Checking
and Correction ... , ................... 1-3
Serial Priority Resolution .............. 2-1
Master Command Access Timing ...... 2-4
8" Shugart/Quantum Drive Interconnecting
Cable Requirements ................. 2-10
Fujitsu 2300/Memorex/14" Shugart Drive
Interconnecting Cable Requirements 2-12
Pertec Drive Interconnecting
Cable Requirements ................. 2-14
Priam Drive Interconnecting
Cable Requirements ................. 2-16
5 1/1" RMS Drive Interconnecting
Cable Requirements ................. 2-18
Control Data Corporation Drive Interconnecting Cable Requirements ..... 2-19
Control Data Corporation Drive Interconnecting Cable Requirements ..... 2-20
Controller to Drive Interfacing ........ 2-21
Installing the iSBX 218 Board on
the iSBC 2] 5 Controller Board
2-23
Disk Drive Organization and
Terminology ........................... 3-1
Sector Data Format .................... 3-2
Host CPU-Disk ControllerInteraction Through the
I/O Communications Block .......... 3-3
Wake-Up Block ......................... 3-5
Channel Control Block ................. 3-5
Controller Invocation Block . _.......... 3-6
I/O Parameter Block Description ...... 3-7
110 Communications Blocks Linking
3-10
Track Formatting ..................... 3-11
Alternate Track Formatting ........... 3-12
Read Sector ID ........................ 3-13

Figure
3-12.
3-13.
3-14.
3-15.

3-16.
3-17.
3-18.
3-19.
3-20.
3-21.
3-22.
4-1.
4-2.
4-3.
4-4.

4-5.

4-6.

4-7.
4-8.

4-9.
4-10.

4-11.
4-12.
5-1.
5-2.
5-2.

Title

Page

Read Data ............................ 3-14
Read Data into Controller Buffer
and Verify .. _....................... 3-14
Write Data ............................ 3-15
Write Data from Controller Buffer
to Disk .............................. 3-15
Initiate Track Seek ... _................ 3-16
Execute iSBX Interface 110 Program
3-16
I/O Transfers Through iSBX Interface 3-17
Buffer 110 ............................ 3-18
Diagnostic ............................ 3-19
Transfer Error Status ................. 3-19
Execution of iSBX Bus
110 Program from RAM ............ 3-23
Logic Conventions ..................... 4-1
Simplified Block Diagram
of iSBC 215 Controller ............... 4-2
iSBC 215 Controller Functional
Block Diagram ....................... 4-3
Bus Arbitor and Bus Controller Logic
4-7
Data Transmission Between Multibus
Interface and Controller Data
Transceivers ......................... 4-9
Wake-Up Address Logic ............... 4-10
Address Fetches in
Initialization Sequence .............. 4-11
Local Memory Map ................... 4-11
Timing Diagram for RDY Signal ..... 4-16
Timing Diagram for Disk
Formatting Sequence ................ 4-17
Timing Diagram for Write Data ...... 4-19
Timing Diagram for
Read Data Transfer ................. 4-20
iSBC 215 Controller Jumpers
and Switch Locations ................ 5-5
iSBC 215 Winchester Disk
Controller Parts Location Diagram ... 5-7
iSBC 215 Winchester Disk
Controller Schematic Diagram ....... 5-9

•
•
•
•
•

•
•

[

CHAPTER 1

.___________G_E_N_E_R_A_L_IN
__
FO_R_M
__A_T_IO_N~

1-1. INTRODUCTION
The Intel iSBC 215™ Winchester Disk Controller
allows up to four Winchester technology disk drives
(see Table 1-2 for disk specifications) to be interfaced
with any Intel Multibus ™ interface compatible
computer system. It supports drives that use either
open loop head positioning (Shugart SA600, SAlOOO
and SA4000, Quantum Q2000 or Fujitsu 2300, RMS
500, CDC Finch or Memorex 101) or closed loop head
positioning (Pertec D8000 or Priam 3350 and 3450).
It's design is based on the Intel 8089 I/O Processor,
which allows Direct Memory Access (DMA) transfers, error detection and correction, and data
management. The controller can operate in a multi·
processor environment and is fully compatible with
all Intel 8·bit and lEi-bit computers. The number of
tracks per surface, sectors per track, bytes per sector
and alternate tracks per surface are software selectable for each drive unit. (In addition, the Memorex,
14" Shugart and Priam drives require that the sector

•

size be set internally as shown in Chapter 2.) The
single board assembly also features automatic error
recovery and retry, transparent data error correction
and multiple sector transfers. Seek operatipns on
multiple drives can be overlapped with a read/write
operation on another drive. The iSBC 215 controller
is fully compatible with Intel 8086 CPU 20-bit
addressing.
A typical multiple drive system using four Winchester disk drives and the iSBC 215 controller is shown
in Figure 1-1. The controller also provides two Intel
iSBXTM Bus connectors, J3 and J4, which allow other
storage devices such as floppy disk drives or magnetic
tape eartridge drives to be interfaced with Multibus
interface compatible systems. The Intel iSBX 218™
Flexible Disk Controller, for example, attaches to one
iSBXTM Connector, J4, allowing the controller to be
interfaced with up to four double-density floppy disk
drives. Figure 1-2 shows a typical multiple drive system using four 5 1/ / ' or 8" floppy disk drives, the iSBC
INTERNAL
TERMINATOR

DRIVE 1

DRIVE 2

DRIVE!

READIWRITE CABLE

•

,--'-I
CONTROL CABLE

--I

I
----:":""-----)
I
I
L _____ _
,-(

J3

I

J1

I

)

(
J4

I
I
_ ____ J
P2
(Not used)

iSBC 215" WINCHESTER DISK CONTROLLER

•

Multlbus" Interface

Figure 1-1. Typical Multiple Drive System Using Winchester Disk Drives

1-1

iSBC 215

General Information

215 controller and the iSBX 218 Flexible Disk Controller_ It should be noted that the controller can
interface concurrently with Winchester disk drives
through connectors Jl and J2, and with other
storage devices through the iSBXTM Connectors, J3
and J4_

1-2. DESCRIPTION
The iSBC 215 Winchester Disk Controller is a single
board assembly_ It may reside in any Intel backplane
or in a custom-designed configuration that is
physically and electrically compatible with the Intel
Multibus interface_
The host Central Processing Unit (CPU) communicates with the Disk controller via four blocks of
information in host memory_ Once the controller is
initialized, a CPU I/O write to the controller WakeUp Address initiates disk activities. The controller
accesses the four blocks in the host memory to
determine the specific operation to be performed,
fetches the required parameters and completes the
specified operation without further CPU intervention.
The controller board generates all drive, control and
data signals and receives the drive status and data

signals required to perform the entire disk drive
interfacing task. During a disk read operation, the
controller accepts serial data from the disk, interprets synchronizing bit patterns, verifies validity of
the data, performs a serial-to-parallel data conversion, and passes parallel data or error condition
indications to host memory. During a disk write
operation, the controller performs parallel-to-serial
data conversion and transmits serial write data and
the write clock to the drive. As part of the disk
format and write function, the controller appends an
Error Checking Code (ECC) at the end of each ID
and data field. Using this ECC, the controller
hardware can detect errors of up to 32 bits in length;
controller firmware can correct errors of up to 11 bits
in length (see Figure 1-3).
The Intel 8089 I/O Processor provides optimum
performance with minimum CPU overhead. An Intel
8288 Bus Controller and 8289 Bus Arbiter control
access to the Multibus interface. Intel 2732 EPROMs
provide on-board storage of the controller I/O
control program and a resident diagnostic exerciser,
and 2114 Static RAMs provide local memory for data
buffering and for temporary storage of read/write
parameters.
INTERNAL
TERMINATOR

DRIVE 0

DRIVE 1

DRIVE 2

I

J1

I
(
)
I
I
L _____ _

--I
I

J2

ISBX 218'· FLEXIBLE
DISK CONTROLLER
(CONNECTS TO J4)

J3

P1

P2
(NOT USED)

•
•

DRIVE 3

1-------

•

•

I
I
I

MULTI BUS'· INTERFACE

Figure 1-2 Typical Multiple Drive System Using Flexible Disk Drives
and iSBX 218™ Flexible Disk Controller

1-2

•

General Information

iSBC 215

•

CONTROLLER FIRMWARE
CORRECTS ERRORS WITHIN
11 CON!IECUTIVE BITS

•

CONTROLLER FIRMWARE
DETECTS ERRORS WITHIN
32 CONSECUTIVE BITS.

•

Ifoolll(f------" 32

TRACK n

Figure 1-3. Automatic Error Checking and Correction

1-3. SPECIFICATIONS

•

BITS-----~

Table 1-1 lists the physical and performance specifications of the iSBC :215 Winchester Disk Controller;

Table 1-2 lists typical characteristics of the Winchester disk drives that are compatible with the iSBC 215
controller.

Table 1-1. Board Specifications
COMPATIBILITY
CPU:

Any Intel mainframe or any Multibus™ interface compatible CPU. The
controller can operate with either 16- or 20-bit addresses and with either 8- or
16-bit data bus widths.

Disk Drive:

Winchester disk drives (see Table 1-2); both open-loop and closed-loop head
positioning types.
Two versions of controller firmware (located in ROMs U87 and U88) are
available, one for use with open·-Ioop type drives and one for closed-loop
drives.

•

Flexible disk drives through on-board iSBX™ Connector (see iSBX 218™
Flexible Disk Controller specifications)

1-3

iSBC 215

General Information
Table 1-1. Board Specifications (Continued)
DATA ORGANIZATION AND CAPACITY
Bytes per Sector
and Sectors per
Track:

SECTORS'
5'/.. ' Rotating
14"
Fujitsu 23001
Memory Systems Shugart
Memorex
54
64
96
31
57
38
17
31
21
9
16
11

Bytesl
Sector
128
256
512
1024

Formatted Disk
Capacity:

Bytes
Sector
128
256
512
1024

5'/4' Rotating
Memory Systems
8.40
9.65
10.58
11.21

Bytes
Sector
128
256
512
1024

MBytes
MBytes
MBytes
MBytes

Pertec
69
42
24
12

FORMATTED CAPACITYIDRlVE2
Control Data
8" Shugartl
Corp
Quantum
29.25
28.03
24.98
19.50

MBytes
MBytes
MBytes
MBytes

7.08
8.12
8.91
9.43

MBytes
MBytes
MBytes
MBytes

8"
Priam
70
42
23
12

14"
Priam
104
62
34
18

14"
Shugart
19.86
23.58
25.65
26.48

MBytes
MBytes
MBytes
MBytes

FORMATTED CAPACITY/DRIVE2 (Cont.)
Fujltsul
Memorex
7.99
9.49
10.49
10.98

Drives per Controller:

Error Detecting and Correction:

Pertec

MBytes
MBytes
MBytes
MBytes

12.35
15.03
17.17
17.18

MBytes
MBytes
MBytes
MBytes

8"

14"

Priam

Priam

23.29
27.94
30.62
31.95

MBytes
MBytes
MBytes
MBytes

•

22.40
26.71
29.29
31.02

•

MBytes
MBytes
MBytes
MBytes

Winchester Disk Drives - Up to four 8" Shugart, Quantum, Pertec or Priam
drives through connectors J1 and J2 (see Table 1-2); up to two Memorex
drives or 14" Shugart drives.
Flexible Disk Drives - Up to four 5'.4" or 8" drives through the iSBX 218
Flexible Disk Controller connected to the iS8C 215 TO board's iS8X TO
connector, J4.
The controller hardware can detect errors of up to 32 bits in length; controller
firmware can correct errors of up to 11 bits in length (see figure 1-3).

•

CONTROLLER CHARACTERISTICS
Mounting:
Physical Characteristics:
Width:
Length:
Height:
Weight:
Power Requirements:

Occupies a card slot in iS8C 604/614 Modular Cardcage/8ackplane or equivalent Multibus™ backplane connector.
17.2 cm (6.8 inches)
30.5 cm (12.0 inches)
1.3 cm (0.5 inches)
0.54 kg (19 ounces)

•

+5 Volts ±5% @ 3.25 amperes maximum;
-5 Volts ±5% @ 0.15 amperes maximum.
NOTE
Jumper and on-board voltage regulator allow -5 Volts or -12 Volts
from Multibus TO connector to be used as voltage source for -5 Volt.

Environmental:
Temperature:
Humidity:

O°C to +55°C, operating (-'-32° F to +131°F).
-55°C to +85°C, non-operating (-67°F to +185°F).
Up to 90%, non-condensing.

'Maximum allowable for corresponding selection of Bytes per Sector.
'Applies to the following drive models: 5'.4" RMS 512, Control Data Corp 9410-32, 8" Shugart SA 1004, Quantum Q2010, 14"
Shugart SA4008, Memorex 101, Fujitsu 2301, Pertec 08000, 8" Priam 3450 and 14" Pram 3350.

1-4

•

General Information

iSBC 215

•

Table 1-2. Winchester Disk Drive Characteristics
Rotating
Memory
Systems 512'

Capacity (Unformatted)
Read/Write Surfaces
T racks/Su rface
ByteslTrack
Transfer Rate
Average Access Time

Control
Data Corp
9410-32 2

Fujitsu
Shugart
SA1004'/ Quan
2301'
tum Q2010
Memorex 101

Pertec
08020'

12.7 MBytes
~189 MBytes 10.6 MBytes
11.7 MBytes
20.13 MBytes
8
4
4/2 3
3
~
153
595
256
244
466
10.4 KBytes
13.4 KBytes
10.4 KBytes
12 KBytes
14.4 KBytes
625 KBytes/sec 806 KBytes/sec 524 KBytes/sec 593 KBytes/sec 864 KBytes/sec
70 msec
50 msec
70 msec
70 msec
50 msec

Rotational Latency
8.33 msec
3 ms
Track to Track
'Open loop step positioner.

8.33 msec
10 ms

9.6 msec
19 msec

10.1 msec
20 msec

8.34 msec
12 msec

Priam
34502

34.94 MBytes
5
520
13.4 KBytes
806 KBytes/sec
50 msec
8.3 msec
10 msec

'Closed loop servo voice coil technology.
'Quantum Q2010 has 2

•
•
•
•

1-5

•
•
•
•
•

•

CHAPTER 2

[

___________P_R_E_P_A_R_A_T_IO_N__F_O_R_U_S_E~
Carefully unpack the shipping carton and verify
that the following items are included:

2-1. INTRODUCTION
This chapter provides information for use in preparing and installing the iSBC 215 Winchester Disk
Controller. Included are instructions for unpacking
and inspection, installation, setting switches,
installing jumpers, and interfacing the controller
board with the Multibus connector and disk drives.

•

iSBC 215 Winchester Disk Controller Printed
Wired Assembly

•

iSBC 215 Winchester Disk Controller Schematic
Diagram

2-3. BOARD INSTALLATION
CONSIDERATIONS

2-2. UNPACKING AND INSPECTION

•
•

On receipt of the iSBC 215 controller from the
carrier, immediately ilnspect the shipping carton for
evidence of damage. If the shipping carton is
damaged or water-stained, request that the carrier's
agent be present when the carton is opened; if the
carrier's agent is not present at the time of opening,
keep the carton and packing materials for subsequent agent inspection.
For repairs or replacement of an Intel product
damaged during shipment, contact Intel Technical
Support Center (refer to Chapter 5) to obtain a
Return Authorization Number and further instructions. A copy of the Purchase Order should be
submitted to the carrier with the claim.

•

The iSBC 215 controller can be installed in any Intel
cardcage/backplane or any user-designed backplane
that is compatible with the Multibus interface and
meets the controller's power and Multibus connector
dimensional requirements. The controller occupies
one backplane slot.
When installing the controller in a serial priority
environment (e.g., within any of the Intel system
chassis), wiring modifications are required to
support serial priority; a daisy-chain technique, see
Figure 2-1, establishes priority, The priority input
(BPRN I) of the highest priority master is tied to
ground. The priority output (BPRO/) of the highest
priority master is then connected to the priority

HIGHEST
PRIORITY

r)

LOWEST
PRIORITY

BPRNI

rO

rO

BPRNI

BPRNI

(NOT INTERNALLY
CONNECTED)
BPROI

p-

BPROI

~~

P-

BPROI

H

~

~
(

--

•

l

l

Figure 2-1. Serial Priority Resolution

2-1

iSBC 215

Preparation for Use

input (BPRN I) of the next lowest priority master,
and so on. (" I" following the signal name indicates
an active low). This technique can accommodate a
limited number of masters due to gate delays
through the daisy-chain.

2-4. POWER REQUIREMENT
The board requires a +5 Volt ±5% power supply at a
maximum current of 3.25 amperes, supplied through
the Multibus connector. When interfacing with 8"
Shugart/Quantum drives, an additional-5 Volt ±5(),()
source at 150 milliamperes maximum is required.
This -5-Volt supply can be obtained directly from the
Multibus connector or from an on-board regulator
that uses either the -10 or -12-Volt source from the
Multibus connector (refer to Paragraph 2-14). When
interfacing with an iSBX Bus through J3 or J4,
additional voltage sources of +12 Volts, -12 Volts or
both may be required, also supplied through the
Multibus connector. (See individual iSBX Board
specifications for tolerances and current requirements of these supplies.) Before installing the
controller in a system chassis, make certain that the
associated power supplies can supply the additional
current that the controller board requires.

2-5. COOLING REQUIREMENT
When the controller is installed in a high temperature environment, make certain the ambient operating temperature does not exceed +55°C.

2-6. MULTIBUS™ CONNECTOR
The controller communicates with the CPU and
other boards via the Multibus interface. Table 2-1
lists the Multibus connector pin assignments; Table
2-2 describes the controller Multibus interface
signals. Figure 2-2 provides a diagram of the
controller/Multibus interface timing signals and a
table of the timing requirements. Table 2-3 gives
current requirements and other characteristics
related to the controller/Multibus interface.

•

The controller is connected to the Multibus interface
through connector P1, an 86-pin, double-sided,
printed circuit edge connector with 3.96 mm (0.156
in) contact centers. Connector P2 is not used.

2-7. SWITCH/JUMPER CONFIGURATIONS
A number of switches and jumpers (see Table 2-4) are
provided on the controller board that allow the user
to conveniently set the controller for the system
environment in which it is to operate (8-bit or 16-bit
system data bus, 8-bit or 16-bit 110 addressing, etc.)
and for the type of drive to which it is to be
interfaced (Shugart/Quantum, Memorex, etc., or
iSBX board). Figure 5-1 shows the location of these
switches and jumpers on the board. They should be
set, as described in the following paragraphs, prior
to installing the board in a card cage or backplane.

•
•

Table 2-1. Multibus™ Connector PI Pin Assignment

P1 (Component Side)
Pin

Mnemonic·

Description

P1 (Circuit Side)
Pin

Mnemonic·

Description

Power
Supplies

1
3
5
7
9
11

GND
+5V
+5V
+12V
-5V
GND

Signal GND
+5Vdc
+5Vdc
+12Vdc
-5Vdc
Signal GND

2
4
6
8
10
12

GND
+5V
+5v
+12V
-5V
GND

Signal GND
+5Vdc
+5Vdc
+12Vdc
-5Vdc
Signal GND

Bus
Controls

13
15
17
19
21
23

BCLKI
BPRNI
BUSYI
MRDCI
10RCI
XACKI

Bus Clock
Bus Pri. In
Bus Busy
Mem Read Cmd
1/0 Read Cmd
XFER Acknowledge

14
16
18
20
22
24

INITI
BPROI
BREQI
MWTCI
10WCI
INH11

Initialize
Bus Pri. Out
Bus Request
Mem Write Cmd
1/0 Write Cmd
Inhibit 1 disable RAM

Bus
Controls
and
Address

25
27
29
31
33

Reserved
Byte High Enable
Common Bus Request
Constant Clk
Intr Achknowledge

26
28
30
32
34

INH21

Inhibit 2 disable PROM or ROM

BHENI
CBRQI
CCLKI
INTAI

2-2

ADR101

ADR111
ADR121
ADR13

Address
Bus

•
•

Preparation for Use

iSBC 215

•
•
•

Table: 2-1. Multibus™ Connector PI Pin Assignment (Continued)
P1 (Circuit Side)

P1 (Component Side)
Pin

Mnemonic·

Interrupts

35
37
39
41

INT6/
INT4/
INT2/
INTO/

Address

43
45
47
49
51
53
55
57

ADRE/
ADRC/
ADRA/
ADR81
ADR61
ADR41
ADR2/
ADROI

Data

59
61
63
65
67
69
71
73

DATE/
DATC/
DATAl
DAT81
DAT6/
D}\T41
DAT2/
D,£\TOI
GND

Power
Supplies

75
77
79
81
83
85

• "r

-12V
+eiV
+~;V

GND

Description

Pin

Mnemonic·

Description

36
38
40
42

INT7/
INT5/
INT3/
INT1/

Parallel
Interrupt
Requests

44
48
50
52
54
56
58

ADRF/
ADRD/
ADRB/
ADR9/
ADR7/
ADR5/
ADR3/
ADR1/

Address
Bus

Data
Bus

60
62
64
66
68
70
72
74

DATF/
DATDI
DATB/
DAT9/
DAT7/
DAT51
DAT3/
DAT1/

Data
Bus

Signal GND
Reserved
-12Vdc
+5Vdc
+5Vdc
Signal GND

76
78
80
82
84
86

GND

Parallel
Interrupt
Requests

46
Address
Bus

-12V
+5V
+5V
GND

Signal GND
Reserved
-12Vdc
+5Vdc
+5Vdc
Signal GND

following the signal name indicates an active low.

Table 2-2, iSBC 2I5™ ControllerlMultibus™ Interface PI Signal Descriptions

Signal

•
•

Functional Description

ADRO/, ADRF/
ADR101-ADR131

Address. These 20 lines transmit the address of the memory location or I/O port to be accessed. For
memory access, ADROI (when active) enables the even byte bank (DATOI-DAT7/) on the Multibus'·
connector; i.e., ADRO/ is active for all even addresses. ADR13/ is the most significant address bit.

BCLKI

Bus Clock. Used to synchronize the bus contention logic on all bus masters.

BHENI

By'e High Enable. When active low, enables the odd byte banl< (DAT8/-DATF/) onto the Multibus'·
cOllnector.

BPRNI

Bus Priority In. When low indicates to a particular bus master that no higher priority bus master is
requesting use of the bus. BPRN/ is synchronized with BCLK/.

BPRO/

Bus Priority Out. In serial (daisy chain) priority resolution schemes, BPROI must be connected to the
BPRN/ input of the bus master with the next lower bus priority.

BREQ/

Bus Request. In parallel priority resolution schemes, BREQ/ indicates that a particular bus master
requires control of the bus for one or more data transfers. BREQ/ is synchronized with BCLKI.

BUSYI

Bus Busy. Indicates that the bus is in use and prevents all other bus masters from gaining control of
tile bus. BUSY/ is synchronized with BCLKI.

CBRQ/

Common Bus Request. Indicates that a bus master wishes control of the bus but does not presently
have control. As soon as control of the bus is obtained, the requesting bus controller raises the
CBRQI signal.

DATOI-DA TF I

Data. These 16 bidirectional data lines transmit and receive data to and from the addressed memory
location or 1/0 port. DATFI is the most-significant bit. For data byte operations, DATOI-DAT7 is the
even byte and DAT8-DATFI is the odd byte.

2-3

iSBC 215

Preparation for Use

Table 2-2. iSBC 2I5™ ControllerlMultibus™ Interface PI Signal Descriptions (Continued)
Functional Description

Signal
INITI

InWalize. Reset the entire system to a known internal state.

INTOI-INT71

Interrupt Request. These eight lines transmit interrupt requests to the appropriate interrupt handler.
INTOI has the highest priority.

IOWCI

liD Write Command. Indicates that the address of an liD port is on the Multibus™ connector address
lines and that the contents on the Multibus™ connector data lines are to be accepted by the addressed
port.

MRDCI

Memory Read Command. Indicates that the address of a memory location is on the Multibus™ connector
address lines and that the contents of that location are to be read (placed) on the Multibus™ connector
data lines.

MWTCI

Memory Write Command. Indicates that the address of a memory location is on the Multibus™ connector
address lines and that the contents on the Multibus™ connector data lines are to be written into that
location.

XACKI

Transfer Acknowledge. Indicates that the address memory location has completed the specified read or
write operation. That is, data has been placed onto or accepted from the Multibus™ connector data
lines.

BUSYI

X::

Master Command Access Timing
BUS ACCESS

BUS RELEASE

Y

•
•

~Io.j
ADDREss __________J)Er;~-------------------~-------~A-D-D-R-E-S-S-ST-A-B-L-E================~)(~___________

WRITE DATA

-------1

f\..---------DATA

r-'"=1'--

STABLE--------~A

r-IOHW~
READDATA __________~~------~----------J)E.----DATASTABLE
?Cr--~-----------I

r-'"~

COMMAND
(MRDC/OR MWTC/)

'----1
05-

'""P__

X--...:..I·-----.,I,....--IX-KCO~

X A C K / - - - - - - - -............._____\ _ _ _----'/~----

Slave Command Timing
ADDRESS

~~~-------------ADDRESSSTABLE-------------~~~

I/O WRITE DATA
(FROM SYSTEM CPU)

---~~~~~------------DATASTABLE------------~?>,C~r-------

1/0

~~

XACKI

------.;

l_tSDHW-1

1

~

II-~- - I A C C - -__

II

I_~IXKO

\~ ___----J)r--

Figure 2-2. Master Command Access Timing

2-4

•

~~~

t=:f=ISDS

COMMAND
(IOWC/)

•

•

iSBC 215

Preparation for Use

•

Bus Exchange Timing

~--.

BCLKI

.-J
BREQI

"" -r ", t-""1

~"I'

"--------I

I-''"°LI.

\"/
'

Y

'\

\"---'/

,~)--t-W-A-IT----------·~I-----~----tO-B-P-N--------+-------------------

BPRNI

'\

-------------~n

~~-------------------------------

•
•
•
•

tOBYF -+-10l-----1

BUSYI

q - tOBY

________________________~()I~()--------------~--------J)I~HIGHZ~'\~------____
r-toBPo-1

BPROI

\--------,

Time in Nanoseconds
Parameter

Description
Minimum

tSAS
tsos
tSAH
tSOHW
tACC
tXKO

Maximum

50
0
15
30
8000
100

tsCY
tSl
tSH
tORQ
tOSY
tOSYF
tDSPN
tosPO
tWAIT

125
65
35

tos
tsc
tXKCO
tAH
tOHW
tOHR
tosx

50
50

35
50
35
15
25
00

750
50
50
0
0

Address Setup Time to I/O Command
Data Setup Time to I/O Command
Address Hold Time from I/O Command
Data Hole Time from I/O Command
I/O Access Time
XACK/Hod Time from I/O Command
Bus Clock Cycle Time
Bus Clock Low
Bus Clock High
Bus Request Delay
Bus Busy Turn On Delay
Bus Busy Turn Off Delay
Priority Input Setup Time
BPRO/Serial Delay from BPRN/
Requesting Master Bus Access Time
Busy to Address/Data Delay
Address/Data Setup to Command
XACK/ to Command Turn Off
Address Hold Time
Data Hold Time
Read Data Hold Time
Data Setup Time Before XACK/

Figure 2-2. Master Command Access Timing (Continued)

2-5

iSBC 215

Preparation for Use

Table 2-3. iSBC 215™ ControllerlMultibus™ Interface Signal Characteristics
Driver 1, 3
Location

Bus
Signals

Type

Receiver 2, 3
Location

IOL

IOH

Co

Min ma

Minl'a

Min pt

IlL

IIH

CI

Max ma

Maxl'a

Max pt

DATO/DATF/
(16 lines)

Masters

TRi

32

-5000

300

Masters
and
Slaves

-0.5

125

18

ADRO/ADR13/,
BHEN/
(21 lines)

Masters

TRI

32

-5000

300

Slaves

-0.8

90

18

MRDC/,
MWTC/

Masters

TRI

32

-5000

300

Slaves

-0.7

50

18

Slaves

--{).4

20

5

Masters

-1.2

60

18

Master

-0.5

60

18

Master

-0.5

60

18

Ail
Masters

-0.5

60

18

All

-0.5

60

18

IOWC/
XACK/

Slaves

TRI

48

-2000

300

BCLK/
BREQ/

Each
Master

TTL

10

-400

60

BPRO/

Each
Master

TTL

10

-400

60

BPRN/
All
Masters

BUSY/,
CBRQ

O.C.

20

-

250

INIT/
INTO/INT7/
(8 lines)

Slaves

O.C.

40

-

Notes:
1.
Driver Requirements:
IOH =
IOL =
Co =
TRI =
O.C.=
TTL =
2.

High Output Current Drive
Low Output Current Drive
Capacitance Drive Capability
3-State Drive
Open Collector Driver
Totem-pole Driver

Receiver Requirements:
IIH
IlL
CI

= High Input Current Load
= Low Input Current Load
= Cap Active Load

2-8. WAKE-UP ADDRESS SELECTION
The controller communicates with the host CPU
through four I/O communications blocks located in
the host memory. When the controller is to receive
instructions, it goes to the beginning address of the
first I/O communieation block. This address is
called the wake-up address (WUA). The WUA may
be at any address in host memory. 8ixteen WUA

2-6

300

3.

•
•
•

Low and High Voltage Requirements:
Receiver:
0~VIL~0.8V

2.0V ~ VIH

~

5.5V

Driver:
O~VOL ~0.5V

2.4V ~ VOH

~

•

5.5V

switches (81-1 through 81-8 and 82-3 through 82-10,
see Figure 5-1) are provided on the controller board
that allow the user to set the controller for the
selected wake-up address. The function of each
switch is shown in the table in Figure 5-1. Any
switch set to ON represents a logical 1.
The controller multiplies the settings of the WUA
switches by 24 (shifts the number four places to the

•

{SBC 215

•

Preparation for Use

left) to create a 20-bit WUA. Note that due to this
shift, the four least-significant bits of the selected
WUA must be zeros. When accessing host memory,
the controller transmits the entire 20-bit WUA
through the Multibus interface. If the host memory
uses 16-bit addressing" the four most significant bits
ofthe 20-bit WUA must be zero. This is accomplished
by setting the four most significant bits of the WUA
switches (SI-1 through SI-4) to zero.

2-11. INTERRUPT PRIORITY LEVEL
The controller's internal interrupt request signal can
be assigned to any of eight interrupt priority levels
(INTO I to INT7 I) on the Multibus connector. To
select the interrupt request priority level, place a
jumper link as shown in Table 2-5 and Figure 5-1.
Table 2-5. Interrupt Priority Level Selection
Wire Wrap

Table 2-4. Configuration Jumpers
and Switches
Function
Wake-Up Address

•

8-Bit or 16-Bit System
Data Bus Capability
8-Bit or 16-Bit Host
Processor 1/0 Port
Addressing
I nterru pt Priority Level

Pin or Switch
S1-1 through S1-8
S2-3 through S2-10
S2-1
S2-2

W19-C to W19-0
through W19-7

Any Request
Common Bus Request
Voltage Selection

•
•

Winchester Drive
Manufacturer Selection
iSBX Bus Control

Priority
Level Selected

To Pin

0

W19-C

W19-0

1

W19-C

W19-1

2

W19-C

W19-2

3
r

W19-C

W19-3

W19-C

W19-4

5

W19-C

W19-5

6

W19-C

W19-6

7

W19-C

W19-7

W18
W23
W2D- and W21

W1, W2, W5, W6
through W10
W13 through W17, W22
W3, W4, W11 and W12, W24

2-12. ANY REQUEST SELECTION
The any request function allows the controller to be
set to relinquish control of the Multibus interface
following a request from:

2-9. WAKE-UP I/O PORT
ADDRESS SELECTION
The host processor communicates with the controller
through an 110 port. The WUA switches also set the
address of this 110 port. For a host processor with
8-bit 110 port addressing, bits 0 through 7 of the
un shifted WUA determine the wake-up 110 port
address; for a host processor with 16-bit I/O port
addressing, bits 0 through F determine the address.
I/O Address Selection switch S2-2 on the controller
board (see Figure 5-1) determines the type ofI/O port
addressing the host processor uses: ON for 16-bit
addressing; OFF for 8-bit addressing.

System data bus selection switch S2-1 on the controller board (see Figure 5-1) sets the controller for
the type of system data bus with which the controller
is to interface: ON for 16-bit bus, OFF for an 8-bit
bus. This switch allows the controller to use its 16-bit
data transfer mode to access the system bus (if the
system memory supports 16-bit accesses), even
though the host processor only supports 8-bit
accesses.

1.

A higher priority device only (jumper between pins W18-1 and W18-2 on the controller board).

2.

Any device, lower or higher priority, (jumper
between pins W18-1 and WI8-3).

Figure 5-1 shows the location of the selection pins.

2-13. COMMON BUS REQUEST
The common bus request function allows the controller to take advantage of higher bus transfer rates
by arbitrating for the use of the bus only when other
bus controllers have access requests pending. The
controller will:
1.

Arbitrate for the bus on every access, (jumper
between pins W23-1 and W23-2 on the controller).
This mode is used when other bus controllers do
not implement common bus request.

2.

Arbitrate for the bus to acquire the bus for the
first access and rearbitrate only when another
bus controller requests use of the bus.

2-10. SYSTEM DATA BUS SELECTION

•

From Pin

2-14. WINCHESTER DRIVE INTERFACE
The iSBC 215 Winchester Disk Controller has been
designed to communicate with any of four unique

2-7

iSBC 215

Preparation for Use

Table 2-6. 8" Winchester Drive Manufacturer Selection
MANUFACTURER
Jumper
No.

Function
Memorex/
8" Shugart! 14" Shugart
5 '/,' RMS
Pertec
Quantum Fujitsu 2300
From To From To From To From To
1

W1

1

3

W2

-

-

W5

1

2

1

W6

1

2

1

W7
W8

1
1

2
2

1

W9

-

W10

1

W13

1

2

1

W14

1

2

1

W15

--

-

2

-

-

1
1
1

.-

3

1

-

1

3
3
3
3
2
2
2
2

1

-

1

1

1

1

3

2

1

2

2
2

1

2

1

1

2

1

2

1

2
-

1

2
2

1
1

-

1
1

1
1

-

1

1

2

1

2

1
1
1

3
3
2

1

3
2
2
2
3

1

1
-

3
-

1

3

1

2

INDEX Select

1

2

1

2

Pertec RD Clock Select

1

3

1

1

3

1

1

2

1

3
2
2

1

1

2

1

2

1

-

1
1

Open/Closed Head Positioning
Vendor Select

3
3
3
3
2
2
3
3
2

2

1

1

2

1

1

2

1

W22

1

-

2

W17

2
-

-

1

2

1

-

2

1

CDC
From To

-

-

1

W16

3
2
2
2
2
2

Priam
From To

1

•

RDRD +
RDCL +
RDCL-

}

Level
Select

Shugart Tri-State Select
Radial Select
Hard/Soft Sectoring
Shugart AM Control
Shugart GAP Control
Hard/Soft Sectoring

NOTE

•

- means not instaliej
The iSBX bus control jumpers, W3, W4, W11 and W12, are factory wired for the configuration required when the
iSBX Bus is not being used. See Paragraph 2-17 and Table 2-9 for a description of the use of these jumpers.

Winchester technology disk drive interfaces: 8"
Shugart/Quantum, Memorex/14" Shugart, Pertec
and Priam. 1 The Shugart, Quantum and Memorex
drives use a stepper motor for head positioning
(called open-loop head positioning); the Pertec and
Priam drives use a linear positioner coupled with a
servo surface on one disk for position feedback
(closed-loop head positioning).
1 The manufacturer's models with which the controller interfaces are: 8" Shugart (Models SAlO02 and
SAI004). Quantum (Models Q201O. Q2020, Q2080
and Q2040), Memorex (Models 101 and 102), 14"
Shugart (Models SA4004 and SA4008), Pertec (Model
mWOO). Rotating Memory Systems (Models .506 and
512) and Control Data Corporation (Models 9410 24
and 82). Priam (Models .570, 1070, 20.50, 8350 and
;)4.50).

The controller can control up to four 8" Shugart,
Quantum, Pertec or Priam drives, or up to two
Memorex or 14" Shugart drives. It cannot control
drives of different manufacturers concurrently.
The jumpers listed in Table 2-6 allow the controller
to be set for the selected drive type. In addition, two
versions of the controller firmware (located in ROMs
U87 and U88) are available, one for use with openloop type drives and one for closed-loop drives.
Boards configured for use with open-loop drives
come from the factory with open-loop firmware
installed and with jumpers preset for 8" Shugart/
Quantum drives; boards configured for closed-loop

2-8

drives come with closed-loop firmware and with
jumpers preset for Pertec drives. Converting the
controller from the 8" Shugart/Quantum interface to
a Memorex/14" Shugart interface or from Pertec to
Priam merely requires changing the connections of
some of the jumpers as shown in Table 2-6 and
Figure 5-1. Converting the controller from an openloop interface to a closed-loop interface, and vice
versa, requires the ROMs to be changed in addition
to changing jumpers.

•

Interface cables must also be constructed and installed according to the type of drive being used as
described in Paragraph 2-15.

•

2-15. -5-VOLT SELECTION (8" SHUGART/
QUANTUM CDC DRIVES ONLY)
Figure 5-1 shows the location of the Voltage Selection
pins for the -5 Volt power supply. Install jumpers as
described in Table 2-7 to select -5 volts either from
the Multibus connector or from the on-board regulator and to select the voltage source for the regulator.

2-16. CABLING REQUIREMENTS
Interface cables between the controller and the disk
drives must be fabricated according to the type of
drive being used and the number of drives. Figures 2-3
through 2-7 show the connector pin assignments for
the controller and for each type of drive. A 50-pin
mass-terminated socket connector 3M 3425/6050 or

•

Preparation for Use

iSBC 215

•
•
•

equivalent, is recommended for mating with J1 of
the controller board. A 40-pin 3M :3417-6040 or
equivalent connector is recommended for mating
with J2. The mass-terminated sockets are easily
attached to flat ribbon cable using the jig that the
connector manufacturer supplies. The Control Cable
that connects to J1 requires a 50-conductor ribbon
cable; the Read/Write cable that connects to J2
requires one or two 20-conductor ribbon cables,
depending on the drive configuration (refer to Paragraph 2-16). Cable length for the control cable cannot
exceed a total length of 10 feet; total length for any
Read/Write cable must not exceed 10 feet. See the
respective service manual for the type of connectors
required for the cable end that connects to the drives.

separate MFM read/write cable is then required to
transmit read/write information between the data
separator and the drive.

Each of the cables shown in Figures 2-:1 through 2-7
require a number of wire cross-overs "scrambling"
between the controller connectors and the drives. It
is suggested that the scrambling be done at the drive
interface connector.

Memorex 101 and 102 or Shugart SA4000. The
controller can drive one or two Memorex/14" Shugart
drives. When connecting the controller to a single
drive, both a control and a read/write cable are
required. When controlling two drives, a single
cable, such as the control cable described for the
Shugart/Quantum drives, is required that daisychains the contro.! information to both drives as
shown in Figure 2-10. A split (bifurcated) cable is
required to route NRZ read/write data to and from
the two drives.

NOTE
The cabling and drive interconnecting information given in Paragraphs 2-15 and 2-16
and in Figures 2-3 through 2-6, reflect the
specifications at the time this manual was
printed. Before proceeding with construction
of interconnecting- cables, check the drive's
hardware reference manual for current pin
assignments and interface requirements.

The requirements for eonnecting the controller to the
disk drive or drives varies between drive types. The
following discussion and Figure 2-10 describes the
specific interconnection requirements for each drive
type.

Pertec D8000 and Priam 570, 1070, 2050 and
3450. The connector on the Pertec and Priam drives
transmit both control and read/write data. When
connecting the controller to a single drive, a bifurcated (split) cable that combines the control lines
and the read/write lines from the controller is
requires as shown in Figure 2-10. When controlling
multiple drives, a cable such as the control cable
described for the Shugart drives is required that
daisy-chains the control and read/write information
between the four drives.

Shugart SA1000 or Quantum Q2000. When
connecting the controller to a single 8" Shugart/
Quantum drive, a Shugart SA1200 Data Separator
and three interconnecting cables are required (see
Figure 2-10. One control cable and one NRZ read/
write cable are requiJred to interface the controller
with the drive and data separator, respectively. A

RMS 500. When connecting the controller to a
single RMS drive, an RMS Data Separator and three
interconnecting cables are required. See Figure 2-8
similar to Shugart SA1000 and Quantum Q2000
above.

2-17. DRIVE INSTALLATION

•

When controlling multiple drives, Drive 0 (which is
called the master and is equipped with the data
separator) allows control and read/write data to be
routed to and from up to three additional slave
drives. The control cable for multiple drive configurations is daisy-chained from the master to the slave
drives. Physically, the cable consists of a ribbon
cable with an in-line connector for each drive. One
MFM read/write cable is required from each slave
drive to the master drive.

Table 2-7. -5-Volt Selection

•

Jumper

From

To

W21

1

2
3
2
3

1
W20

1
1

Function
Select -5 volts from Multibus'· connector
Select -5 volts from regulator (requires jumper to be set on W20)
Select -10 volts from Multibus'· connector as source for -5 Volt regulator
Select -12 volts from Multibus'" connector as source for -5 Volt regulator

2-9

iSBC 215

Preparation for Use

8" Shugart/Quantum Drive Cable Wiring Diagrams
iSBC 215 Controller·
Mating Connector J1

8" Shugart/Quantum Drive 0
Mating Connector
50-Pin

(2)

50-Pin

0

Shugart Data Separator iSBC 215 Controller Connectors·
Mating Connector J5
J1 Mating Connectors J2
20-Pin
1

2
3
4

...

Ground (GND)
-Head Select 2' (-HS2/)

2
30

3

27

4

5

5

6

6

7

7

8
9

-SEEK COMPLETE (SKCOM/)

.

..

Ground (GND)

19

8

44

9

10

10

11

11

12

12

13
14

..

Ground (GND)

.

-HEAD SELECT 2°(-HSO!)

31

13

26

14

15

15

16

16

17
18
19
20
21
22

Ground (GND)
-HEAD SELECT 2 (-HS1/)
Ground (GND)
-INDEX (INDEX/)

..

..

..

....

Ground (GND)
-READY (READY!)

32

17

2

18

39

19

15

20

11

26
27
28
29
30
31
32
33
34
35
36

..

....

-DRIVE SELECT 2 (US1/)
Ground (GND)
-DRIVE SELECT 3 (US2/)
Ground (GND)
Ground (GND)

..

47

4

24

5

..
..

48

6

25

7

49

8

21

9

..

-STEP (STEP/)

20

38
40
41
42
43
44
45

-WRITE GATE (WF1GATE/)
-TRACK 000 (TRA::K 0/)
Ground (GND)

..

-WRITE FAULT (FAUlT/)
Ground (GND)
46 through 50 -

...

..
..
..

Ground (GND)

...
no connections

1
2
3

..

-DIRECTION IN (DIR/)

22

37
39

-AMF (SECTOR!)
Ground (GND)

..

-WRAM (ADMKEN/)

..

Ground (GND)
-RWC (RDWRCUR/)

0

40-Pin

16
37
42
40

+NRZ WRITE DATA (WRO+)
-NRZ WRITE DATA (WRO-)
Ground (GND)
+WRITE CLOCK (WRClO-)
-WRITE CLOCK (WRClO+)
Ground (GND)
+READ CLOCK (RDClO+)
-READ CLOCK (RDClO-)
Ground (GND)
+NRZ READ DATA (RDO+)
-NRZ READ DATA (RDO-)
Ground (GND)

13
38
17
41
9
34

0

•

12

..
.
....
....

27
8
5
24
25
26

..

6

•..
..

7
3
23

.
..
.

4

..

-DRIVE SElECTED/
Ground (GND)
SPARE
Ground (GND)
SPARE
Ground (GND)
SPARE
Ground (GND)
+TIMING ClK

20-Pin

2
22

0

....
..
....

.....
..
.
..

-TIMING ClK
10
Ground (GND)
11
Ground (GND)
12
+MFM Write Clock
13
-MFM Write Clock
14
Ground (GND)
15
Ground (GND)
16
+MFM READ DATA
17
-MFM READ DATA
18
Ground (GND)
19
Ground (GND)
~
20
'iSBC 215'· Controller (signal name) in parentheses.

..

.....
......
..
..

..

•

21

8" Shugart/Quantum Drive 0
Mating Connector

Figure 2-3. 8" Shugart/Quantum Drive Interconnecting Cable Requirements

2-10

CD

36

Ground (GND)

Shugart Data Separator
Mating Connector

23

...

-DRIVE SELECT 4 (US3/)

...
..
.

-READ GATE (RDGATE/)
Ground (GND)

20-Pin

24
-DRIVE SELECT 1 (USO/)

50-Pin

35

23
25

0

1

•

2
3
4
5
6
7
8
9
10
11

•

12
13
14
15
16
17
18
19
20

•

iSBC 215

Preparation for Use

•

--~~ 49/33

~

25

- - - - -.... 20

~ 50

21 -----il~~ 40

°1
. - -..
~~ 50/34

2

26

------i.~ 13

2

•

•

20

0)

Shugart/Quantum
50-Pin Card
Edge Connector

0

RMS
34-Pin Card
Edge Connector

40-Pln 3M Female
Connector

f:\

2o-Pln Card

~ Edge Connector

8" Shugart/Quantum/RMS
Drive 0

iSBC 215 Controller

50-Conductor
Ribbon Cable

•
•

>

J1

Scramble Wires
at drive.

Data Separator

Drive 0

Data Separator

~

~.

01~~~==~2~o-con~duct~or~~~~~0
Ribbon Cable

f---

1-------

•

--

-

~

---

.-

~-----_=------_

Figure 2-3. 8" Shugart/Quantum Drive Interconnecting Cable Requirements (Continued)

2-11

iSBC 215

Preparation for Use

Fujitsu 2300/Memorexll4" Shugart Drive Cable Wiring Diagram
Memorex/14" Shugart Drive
Mating Connector
50-Pin
1

(2)

-Head Select 0 (-HSO/)

2

Ground (GND)
3
-Head Select 1 (-HS1/)
4
Ground (GND)
5
-Head Select 2 (-HS2/)
6
Ground (GND)
7

iSBC 215 Controller>
Connector J1
50-Pin

0

..

..
.

23
24
25
26
27
28
29
30
31
32
33
34
35
36

-Direction (DIR/)
Ground (GND)
-Step (STEP/)
-Fault Clear (FL T CI_R/)
-Write Gate (WRGATE/)
Ground (GND)
-Track 0 (TRACK 0/)
Ground (GND)
-Write Fault (FAULT I)
Ground (GND)
-Read Gate (RDGA -rEI)

37
38

Ground (GND)
Ground (GND)

Drive 0 20-Pin

0

3

2

4

31

~

32

27

5
6
Seek Complete (SKCOMO/)
7

8 Ground (GND)

9 -Write Data (WRO-)

....
...

•.

...
....

~

.
..
.

15
40
11
36
16
41
22
47
23
48
24
49

10

+Write Data (WRO+)

Ground (GND)
11
12 -Write Clock (WRCLO-)
13 +Write Clock (WRCLO+)
14 Ground (GND)

0

29

....
..
....

10
5
24
22

....

26
6
4

..

....

Memorex/14" Shugart Drive
Mating Connector
Drive 1

21

20-Pin

44

0

iSBC 215 Controller·
Connector J2
40-Pln

CD

..

38

•

1
2

18

3

..
..

13

5

4
38

6

17

7

33

8

9

9

35

10

12

11

37

12

40

13
14
15
16

'iSBC 215'· Controller (signal name) in parentheses.
"When interface with a 14" Shugart drive pins 15 and 16 on
both radial connectors s.hould be swapped: pin 15, +PLO
Clock (RDCLO+); pin 16, -PLO Clock (RDCLO-).

-Seek Complete (SKCOM1/)
Ground (GND)
-Write Data (WR 1-)
+Write Data (WR1+)
Ground (GND)
-Write Clock (WRCL 1-)
+Write Clock (WRCL 1+)
Ground (GND)
-PLO Clock (RDCL 1-)
+PLO Clock (RDCL 1+)

Ground (GND)
17
+Read Data (RD1+)
18
-Read Data (RD1-)
19
Ground (GND)
20

..
..
..
..
..
..

....

....
..

..•

Figure 2-4. Fujitsu 2300/Memorexll4" Shugart Drive Interconnecting Cable Requirements

2-12

•

..
..
..

25

20

..

15 .. _-P_L_O_C_IO_C_k....;(:...R_D_C_L_O-...:.)_ _ _ _ _ _ _ _---l~
23
+PLO Clock (RDCLO+)
16
3
Ground (GND)
17
25
18 +Read Data (RDO+)
21
19 -Read Data (RDO-)
2
20 Ground (GND)
7

..

...
.
..
....

40-Pin

•

2

30

..

..
..

iSBC 215 Controller>
Connector J2

1
26

8
9
-Index (INDEX/)
10
Ground (GND)
11
-Drive Ready (READY/)
12
Ground (GND)
13
-Sector/Byte Clock ISECTOR/)
14
Ground (GND)
15
-Drive Select 1 (USO/)
16
Ground (GND)
17
-Drive Select 2 (US1/)
18
Ground (GND)
19
-Drive Select 3 (US~~/)
20
Ground (GND)
21
-Drive Select 4 (US3/)
22

Memorex/14" Shugart Drive
Mating Connector

13
14

•

33
34
35
15
31
32
12
16
30
11
36

•

iSBC 215

Preparation for U8e

•
~ 25

~ 49

0C
~ 50

1---~19

•

0C~
2

~

26

8
0

20

..

40

101

101

2

~

~ 50

21

0
8

50-Pin Card
Edge Connector
50-Pin 3M Female
Connector

40-Pin 3M Female
Connector

20-Pin Card
Edge Connector

29

Memorex/14" Shugart
Drive 0

iSBC 215 Controller

r--

0-

•
•

---==

50-Conductor
-- - Ribbon Cable-

-----

-----"r-~:::~i'.:u:g~a~rt~~ ~=-__________-=: : -~_~_~_:-: -:_:~ - -_- ~_~:4_R:~:b~=-~:~:":": ~:~ :_-_: ~:_:-: -:_~_~_~_-=: ~
________

Memorex/14" Shugart
Mating

~

___

___

__

J2

Connectors

Scramble Wires
at drive.

•

Figure 2-4. Fujitsu 2300/Memorex/14" Shugart Drive Interconnecting Cable Requirements
(Continued)

2-13

iSBC 215

Preparation for Use

Pertec Drive Cable Wiring Diagram
Pertec Drive Mating Connector
50-Pin

1

2

Q)

J1 50-Pin

1/0 Bus Bit 0 (BUS 0/)
1/0 Bus Bit 1 (BUS 1/)

3
1/0 Bus Bit 2 (BUS 2/)
4
110 Bus Bit 3 (BUS 31)
5
6 I/O Bus Bit 4 (BUS 4/)
1/0 Bus Bit 5 (BUS 51)
7
I/O Bus Bit 6 (BUS 6/)
8
9 I/O Bus Bit 7 (BUS 7/)
Ground (GND)
10
Ground (GND)
11
Call Request (COMMAND/)
12
13 Ground (GND)
Drive Request
14
Ground (GND)
15
Transfer Acknowledge (BUS ACK/)
16
17
18 Safe (GND)
19
20
21

Drive Ready
Ground (GND)

I/O Ready (SKCOM/)
22
23 Ground (GND)
Write Gate
24
Ground (GND)
25
Read Gate
26
Ground (GND)
27
28 ReadIWrite Data Plus (RDO- and WRO-)

CD

iSBC 215 Controller Connector-

..

26

..

27

.-

31
32

Ground (GND)
Unit Select a
Unit Select 1

Unit Select 2
33
Unit Select 3
34
Ground (GND)
35
36 ReadIWrite Clock Plus RDCLO-)
37 ReadIWrite Clock Minus (RDCLO+)
Ground (GND)
38
39 Read/Write Address Mark (ADMKEN/)
40

Address Mark Detect (SECTOR/)
41
42 Ground (GND)
Index
43

44
45
46
47
48
49

....
..

..
..
..
..
..
..
..
..
..

..
......

..

..

.........
.-

..
..

..
..
..
..
..

3
4
29
5
30
31
7

•

32
8
33
14

11
36
19
37
13
38
12
39

40
22

!
t

:

:

24
2
5

24
25
41

•

21

23

..
..

23

..

22

..

4

3

•

44
42
16
47
15

Ground (GND)

*iSBC 215'· Controller (signal name) in parentheses.

..

Figure 2-5. Pertec Drive Interconnecting Cable Requirements

2-14

•

28

Ground (GND)

Ground (GND)

0

2

29 ReadIWrite Data Minus (RDO+ and WRO+)
30

J2 40-Pin

1

25

•

Preparation for Use

iSBC 215

•
~

•

2

o

49

~ 50

iO~Pin

3M Female Connector

26

..

25

..

50

21

G

40

215

Ribbon Cable
~1C=======5~o_con~duet~or========~0
~

Pertee Mating

Connector

•

..

iSBC Controller

Pertec

•

20

40-Pin 3M Female Connector

Drive

•

~

\

J1

at drive.

Scramble Wires

40-Conduetor
Ribbon Cable

J2

Figure 2-5. Pertec Drive Interconnecting Cable Requirements (Continued)

2-15

iSBC 215

Preparation for Use

Priam Drive Mating Connector
50-Pin
1

Priam Drive Cable Wiring Diagram

CD

J1 50-Pin

2 +DBUS 0 (BUS 0/)
•
+DBUS 1 (BUS 1/)
3 ~~~~~~~-----------------------------------------~.~
+DBUS 2 (BUS 2/)
4 --~--~----~.----------------------------------------~.~
+DBUS 3 (BUS 3/)
5 __----~--~~-----------------------------------------~.~
6 +DBUS 4 (BUS 4/)
..
+DBUS 5 (BUS 5/)
7
8 +DBUS 6 (BUS 6/)
9 +DBUS 7 (BUS 7/)
Ground (GND)
10
-READ GATE
11
12 Ground (GND)

......
..
....

13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

34
35
36
37
38
39
40
41
42
43
44

45
46
47

_G_ro~u~n~d_(~G~N~D~)____.________________________________________~..~

-WRITE GATE
~--~~~----.----------------------------------------~..~
Ground (GND)
..
-RD
~=-----------.----------------------------------------~.~
-WR
--------------.----------------------------------------~.~
+AD1
--------------.----------------------------------------~.~
+ADO
~--~~~----.----------------------------------------~..
~
Ground (GND)
~-D~R~IV=E~S~E~L~E~C~T~1------------------------------------------~..
~
~-D~R~IV=E~S~E~L~E~C~T~2------------------------------------------~.~
--D~R~IV=E~S~E~L~E~C~T~3------------------------------------------~..~
--D~R~IV=E~S~E~L~E~C~T~4------------------------------------------~..
~

------__
~--------------------------------------------~..~
Ground (GND)
~--~~~----.----------------------------------------~.~
Ground (GND)

--------------.----------------------------------------~.~

-HEAD SELECT 3

~~~~~~~----------------------------------------~.~
-HEAD SELECT 2

~~~~~=-~.----------------------------------------~.~

-HEAD SELECT 1

------------------------------------------------------~.~
Ground (GND)

•
-INDEX
~--~~~----.----------------------------------------~..
~
Ground (GND)
--~RE~A~D~Y~--~--------------------------------------------~..
~
~--~~~----.----------------------------------------~..
~
Ground (GND)
--S~E~C~T~O~R~M7A~R~K~------------------------------------------~..
~
~--~~~----.----------------------------------------~..
~
Ground (GND)
~~~~~-------------------------------------------~..
+WRITE DATA

®

iSBC 215 Controller Connector
J240-Pin

0

1

26

2

27
3

28

4

29
5
30
12
31
32

•

13
33
7
20
45
21
35
22
23
24
25
38
39
43
18
10
41
15
19
11
44
16
47

-WRITE DATA
Ground (GND)
+WRITE CLOCK
-WRITE CLOCK
Ground (GND)
+READ/REFERENCE CLOCK
-READ/REFERENCE CLOCK
Ground (GND)
+READ DATA

•
..

•
..•
•
•..
..•

•
5
24
22
26
6
4
23
3

25
48 ~-R~E~A~D~D~A~T~A------------------------------------------------------------------~.. 21
49
.. 2
50 Ground (GND)
*iSBC 215 Controller (signal name) in parentheses .•
TO

7

Figure 2-6. Priam Drive Interconnecting Cable Requirements

2-16

•

•

iSBC 215

Preparation for Use

•
~ 49

•

o

. . 50

. . 25

26

..

21

50

(2)

50·Pin 3M Female Connector

..

20

..

40

40-Pin 3M Female Connector

Priam

iSBC 215 Controller

Drive

--~

•

5G-Conductor
Ribbon Cable

Priam Mating
Connector

\

J1
Scramble Wires
at drive.

•
•

40-Conduetor
Ribbon Cable

J2

Figure 2-6. Priam Drive Interconnecting Cable Requirements (Continued)

2-17

iSBC 215

Preparation for Use

51ft" RMS Drive Cable Wiring Diagrams
Isec 215 Controller'
Mating Connector J1

5'1'" RMS Drive 0
Mating Connector
34-Pin

(2)

0

50-Pin

1

1
2
3
-Head Select 22 (-HS21)
4
Ground (GND)
5
Write Gate (WRGATE)
6
Ground (GND)
7
-SEEK COMPLETE (SKCOM!)
8
Ground (GND)
9
Track 000 (TRACK01)
10
Ground (GND)
11
Write Fault (FAULT!)
12
Ground (GND)
13
-HEAD SELECT 2° (-HSO!)
14
Ground (GND)
15
16
17
-HEAD SELECT 2' (-HS1!)
18
Ground (GND)
19
-INDEX (INDEX!)
20
Ground (GND)
21
-READY (READY!)
22
Ground (GND)
23
Step (STEP!)
24
25
-DRIVE SELECT 1 (USO!)
26
Ground (GND)
27
-DRIVE SELECT 2 (US11)
28
Ground (GND)
29
-DRIVE SELECT 3 (US2!)
30
Ground (GND)
31
-DRIVE SELECT 4 (US3!)
32
33
-DIRECTION IN (DIR!)
34

.. 27
.. 30
~

13

•

.

38

..

19

44
.. 17
41

....
•

9
34

.. 26
.. 31

•.. 322

.
.•
....
•

15
39

11
35
.. 20
22

47
.. 23
.. 48

.··24
.. 49

..

•

25
21

RMS Drive 0
Mating Connector

RMS Data Separator
Mating ~nector
2o-Pin
4

..

-DRIVE SELECTED!
Ground (GND)

2o-Pin

1

0

3
4
5

•..

6
7

..•
...

8

9
.. 10
.. 11
.. 12
13
14
15

..

.

16
18

19
.. 20

0

•

....

•

iSeC 215 Controller Connectors'
J1 Mating Connectors J2

-READ GATE (RDGATE!)
Ground (GND)

50-Pin

2
-AMF (SECTOR!)
3
Ground (GND)
4
-WRAM (ADMKEN!)
5
Ground (GND)
6
-RWC (RDWRCURI)
7
Ground (GND)
8
+NRZ WRITE DATA (WRO+)
9
-NRZ WRITE DATA (WRO-)
10
Ground (GND)
11
+WRITE CLOCK (WRCLO-)
12
-WRITE CLOCK (WRCLO+)
13
Ground (GND)
14
+READ CLOCK (RDCLO+)
15
-READ CLOCK (RDCLo-)
16
Ground (GND)
17
+NRZ READ DATA (RDO+)
18
-NRZ READ DATA (RDQ-)
19
Ground (GND)
20

0

•

17

•
4o-Pin

•

12
.. 36
.. 16

.

~

37
42

• 40

*iSBC 215'· Controller (signal name) in parentheses .

Figure 2-7. 5W' RMS Drive Interconnecting Cable Requirements

2-1 R

2

..

....

•

1

..•.

2
SPARE
3
Ground (GND)
4
SPARE
5
Ground (GND)
6
SPARE
7
Ground (GND)
8
+TIMING CLK
9
-TIMING CLK
10
Ground (GND)
11
Ground (GND)
12
+MFM Write Clock
13
-MFM Write Clock
14
Ground (GND)
15
Ground (GND)
16
+MFM READ DATA
17
-MFM READ DATA
18
Ground (GND)
19
Ground (GND)
20
RMS Data Separator
Mating Connector J5

8

2o-Pin

27

8

..• 245
.

25
.. 26

..•
..

6
7

3
23
4
.. 21

....

2
22

•

iSBC 215

•

Preparation lor Use

Control Data Corp Drive Cable Wiring Diagrams
Isac 215 Controller*
Mating Connector J1

Drive Mating
Connector
50-Pin

(2)

50-Pin

0

1

•
•
•

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

Ground (GND)
Read Enable (RDGATE/)

..

.. 37
12

.

Fault Reset (FLTCLI~1)

.

-Head Select 2' (HS4)
Ground (GND)

....

Head Select 2° (HSO/)
Ground (GND)

18
2
31

Vcc

T
Byte Clock"

26
30

to Sector
Pulse Conversion
Logic

36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

Step (STEP/)

•

Write Gate (WRGATE/)
Ground (GND)
TRACK 0 (TRACK O/)

.. 13
.. 38
.. 17

...

Ground (GND)
Write Fault (FAULT/)
Ground (GND)

.

(SECTOR/)

-Direction (DIR/)
Ground (GND)

,

•

...

.....

..

9
33
16

215 Controller
Mating Connector J2

15
.. 40

1
2
~
~~ .. J2 - 29 (SKCMO) 3
4
5
.. 40
6
22
7
47
8
• 23
9
~ 48
10
24
11
49
12
25
13
14
21
15
44
16
17
18
19
20

35

Isac

Drive Mating Connector
2o-Pin
-INDEX (INDEX/)
Ground (GND)
Drive Ready (READY/)
Ground (GND)
Byte Block
Ground (GND)
Drive Select 1 (USO/)
Ground (GND)
Drive Select 2 (US1/)
Ground (GND)
Drive Select 3 (US~:/)
Ground (GND)
Drive Select 4 (US:::/)

20

~

--~..
~ J1 - 15
- - - - '..
~ J2 - 10
To Sec tor Generator Board

)-

J 1 - 11

Write Data + (WRO+)
Write Data - (WRO-)
Ground (GND)
Write Clock + (WRCLO+)
Write Clock - (WRCLO-)
Ground (GND)
Servo Clock + (RDCLO+)
Servo Clock - (RDCLO-)
Ground (GND)
Read Data + (RDO+)
Read Data - (RDO-)
Ground (GND)

...

5
24

..
.....
...

22
26
6
4
3
23
38
21
2
7

.....
.

"Refer to Drive Manufacturer for Application Details

•

Figure 2-8. Control Data Corporation Drive Interconnecting Cable Requirements

2-19

iSBC 215

Preparation for Use

•
..

81
2

81

..
..

..

49

01
I
..
50

19

...

26

... 20

25

I01
21

50

•

8

50-Pin Card
Edge Connector

0

40-Pin 3M Female
Connector

(0

50-Pin 3M Female
Connector

0)

2o-Pln 3M Female
Connector

40

29

Memorex/14" Shugart

iSBC 215 Controller

Drive 0

50-Conductor
Ribbon Cable

J1

•
•

Memorex/14" Shugart
Drive 0

~==;::_=~=-~---~~---IG

•

J2

Scramble Wires
at drive.

Figure 2-9. Control Data Corporation Drive Interconnecting Cable Requirements

2-20

•

iSBC 215

•

DRIVE

o

Preparation for Use

DATA
SEPARATOR
DRIVE 2

DRIVE 1

•

DRIVE 3

'Internal Termination:

Jl

220/330 n, RPAK,
DIP @ IC Location
Shugart - BC
Quantum - J6
RMS -

J2

iSSC 215
CONTROLLER

INTERFACE WITH 8" SHUGART/QUANTUM OR 5'1<" RMS DRIVES
NOTE
Termination locations

may change. Consult
DRIVE 0

DRIVE 1

manufacturer's
hardware reference
manual for drive.
'Internal Termination:

220/330 n, RPAK.
DIP @ IC Location
Memorex - 18D
Shugart - 3H

•

CONTROL

Jl

J2

iSSC 215
CONTROLLER

•

INTERFACE WITH MEMOREX/14" SHUGART DRIVES

DRIVE 1

DRIVE 0

DRIVE 2

DRIVE 3

CONTROL AND
RIOADIWRITE
READIWRITE
CONTROL

31nternal Terminator:

220/330 nRPAK,
DIP, located @
Pertec - U134

J1

Priam - Near Interface
Connector

J2

ISBC 215
CONTROLLER

•

INTERFACE WITH PERTEC AND PRIAM DRIVES

Figure 2-10. Controller to Drive Interfacing

2-21

Preparation for C se

Table 2-8. J3 and J4 Pin Assignments
Pin

Mnemonic

43

MD8

41

Description

Description

Pin

Mnemonic

MDATA Bit 8

44

MD9

MOATA Bit 9

MDA

MOATA Bit A

42

MDB

MOATA Bit B

39

MOC

MDATA Bit C

40

MOD

MOATA Bit D

37

MOE

MDATA Bit 3

38

MOF

MDATA Bit F

35

GNO

Signal Ground

36

+5V

+5 Volts

33

MDO

MOATA Bit 0

34

MORQT

M OMA Request

31

M01

MOATA Bit 1

32

MOACKI

M OMA Acknowledge*

29

M02

MOATA Bit 2

30

OPTO

Option 0

27

MD3

MDATA Bit 3

28

OPT1

Option 1

25

MD4

MOATA Bit 4

26

RDMA

Terminate DMA

23

MD5

MDATA Bit 5

24

21

MD6

MDATA Bit 6

22

MCSOI

M Chip Select 0

19

M07

MDATA Bit 7

20

MCS11

M Chip Select 1

17

CND

Signal Gnd

18

+5V

+5 Volts

15

10RDI

1/0 Read Cmd

16

MWAITI

M Wait

13

10WRT/

1/0 Write Cmd

14

MINTRO

M Interrupt 0

11

MAO

M Address 0

12

MINTR1

M Interrupt 1

9

MA1

M Address 1

10

7

MA2

M Address 2

8

MPSTI

iSBX Multimodule
Board Present

5

RESET

Reset

6

MCLK

M Clock

3

GND

Signal Gnd

4

+5V

+5 Volts

1

+12V

+12 Volts

2

-12V

-12 Volts

All undefined pi ns are reserved for future use.

2-18. iSBX MULTIMODULETM INTERFACE
Controller board connectors J3 and J4 have each
been designed to interface with Intel iSBX I/O
controllers or other I/O modules designed to meet
the Intel iSBX Bus Specifications. The Intel iSBX
218 Flexible Disk Controller connects to the J4
connector and provides an interface between the
iSBC 215 controller board and up to four 5W' or 8"
double density flexible (floppy) disk drives. The
iSRX 218 controller interfaces directly with the iSBC
21.5 software as described in Chapter:03. Instructions
for installing the iSBX 218 controller on iSBC 21.5
board are given in Paragraph 2-18.

Reserved

Reserved

"The iSBC 215 does not drive this signal.

•
•
•
•

1/0 modules that interface the iSBC 215 controller
with other storage devices such as magnetic tape
cartridge drives or bubble memories can also be
designed and connected to J3, J 4 or both, (see Table
2-8). The device select function of the iSBC 215 software allows the controller to be interfaced with up to
256 devices through an iSBX connector, J3 and J4.
Note that DMA Acknowledge Pin 32 is not connected on the iSBC 215. A more detailed description
of the iSBX Bus is given in the Intel iSBX Bus Specification manual, Order No. 142686.

The iSBX bus control pins, W3, W4, WH, W12 and
W24 (see Table 2-9), control the External Terminate,

•

iSBC 215

Preparation for Use

•
•

,SBG " 215 BOARD

•
•

Figure 2-D. Installing the iSBX 21WM Board on the iSBC 215™ Controller Board

and DMA request lines on the iSBX bus. (See Figure
5-1 for the location of these pins on the controller
board.) The asterisks in Table 2-9 indicate the
required jumper configuration for these pins when
the iSBX bus is not to be used. Information on the
USE' of these pins fOI" user designed iBBX bus interfaces is given in Paragraph ~l-32.

•

Instructions for writing controller-to-drive interface
software for I/O modules designed to the iSBX Bus
Specifications are given at the end of Chapter ;1.

2-19. iSBX 218™ BOARD INSTALLATION
The iSEX 218 board connects to J4. Six screws and
three threaded spacers secure the Multimodule board
to the controller board as shown in Figure 2-9. Before
installing the iSBX 218 board, install a jumper wire
between pins W12-1 and W12-3 and between pins W41 and W4-2 on the iSEX 215 board. A single cable
that transmits both control and read/write information is required to connect the iSEX 218 controller to
the flexible disk drives as shown in Figure 1-2. Refer
to the iSEX 21 grM Flexible Disk Controller Hardware
Reference Manual. In tel Order No. 121 fiH::l. for
further installation details and operating information.

2-2:)

iSBC 215

Preparation for Use

Table 2-9. iSBXTM Bus Control Jumper Pins
Pins
W3

Pin
Connection
1-2*
-

W4

W11

W12

External Terminate (J3) driven by
iSBX I/O Controller
External Terminate (J4) terminated
on controller board

-

External Terminate (J4) driven by
iSBX I/O controller

1-2

OPOO (J3) driven

1-3
- *

OP01 (J4) driven

1-2

OP10 (J3) driven
OP11 (J4) driven

1-2

1-3

- *

I

External Terminate (J3) terminated'
on controller board.

1-2*

1-3
- *
W24

f'unction

OPOO and OP01 receiving

OP10 and OP11 receiving
The iSBX I/O controller on J4 uses
DMA request and the iSBX i/O controller on J3 does not use DMA request or is not installed.
The iSBX I/O controller on J3 uses
DMA request and the iSBX I/O con·troller on J4 does not use DMA request or is not installed.
Either both iSBX I/O controllers are
not installed or both use the DMA
request or neither use the DMA
request.

*Required configuration when either the external terminate function or when the iSBX'· Bus is not being used
(factory wi red).

2-20. POWER UP/DOWN
CONSIDERATIONS
If power is applied to, or removed from, the system
while a drive is READY, a spurious disk write
operation could occur. To prevent this from happening always ensure that the drives are not spinning
when system power to the controller is switched on
or off.

•

2-21. DIAGNOSTIC CHECK
A PROM-resident self-diagnostic may be used to
verify the controller operation. Instructions for
execution of the diagnostic are given in Chapter 3.

•
•
•

2-24

•

•

[

CHAPTER 3
_ _ _ _P_R_O_G_R_A_M_M_IN_G_IN_F_O_R_M_A_T_IO_N_____

3-1. INTRODUCTION
This chapter describes the programming conventions that must be followed to initiate and monitor
the transfer of data between the host memory and a
disk drive (or the iSBX connector). Included in this
section are a discussion of: disk organization, track
sectoring format, diBk controller communications
protocol, interrupt handling, the use of disk control
functions, and special instructions for programming
I/O transfers through the iSBX interface.

•
•

3-2. PROGRAMMING OPTIONS
The iSBC 215 Winchester Disk Controller has been
designed to interface with Winchester technology
disk drives as specified in Chapters 1 and 2. The
board also has two iSBX connectors that allow it to
communicate with other I/O devices through an
iSBX I/O Controller such as the iSBX 218 Flexible
Disk Controller.
The iSBC 215 controller contains a ROM resident
I/O transfer program, designed to control data
transfers between the controller and Winchester
drives as well as between the controller and flexible
disk drives connected to the iSBX 218 controller.
Paragraphs 3-5 through 3-30 provide instructions for
using the iSBC 215 controller firmware.

In addition, the iSBC 215 controller can also execute
programs that the user has written in 8089 assembler
code to control other I/O devices through the iSBX
bus on the board. Instructions for writing and using
these programs are provided in Paragraphs 3-31 and
3-32.

3-3. DISK ORGANIZATION
In the following discussion, a head is assumed to be
associated with a single disk surface. Each surface
can have up to 4096 tracks (circular data paths
numbered 0 through 4095). The set of tracks on
multiple recording surfaces at a given head position
or location is referred to as a "cylinder" (see Figure
3-1). A drive that has 4096 tracks per surface thus
has 4096 cylinders.
Each track is divided into equal-sized sectors. Each
of these sectors includes a sector identification block
with error checking information and a data block,
also with error checking information. The iSBC 215
controller allows the user to select the size of the data
block; the size of the data block then determines the
maximum number of sectors permitted per track (as
shown in Table 1-1).

TRACK

•
•

HEAD

SURFACE

/

=
Figure 3-1. Disk Drive Organization and Terminology

3-1

iSBC 215

Programming Information

3-4. TRACK SECTORING FORMAT

3-5. CONTROLLER 1/0
COMMUNICATIONS BLOCKS

The controller generates the format of the sector
identification block, the data block and the error
checking fields of each sector of the disk, one track at
a time. Figure 3-2 shows how the controller organizes
this information for 8" Winchester drives. Refer to
Paragraph 3-14 and 3-15 for further information on
track formatting. Refer to the iSBX 218™ Flexible
Disk Controller Hardware Reference Manual for
information on flexible disk track formatting.

The host processor and the disk controller use four
blocks of host memory and one host I/O port to
exchange instructions and status. The I/O communications blocks are titled: Wake-Up Block, Channel
Control Block, Controller Invocation Block and I/O
Parameter Block. Sixty-eight bytes of host memory
must be dedicated to the I/O communications
blocks.

•

_________________________________________________________nL
INDEX

INDEX

-11~

_ __

•
DATA BYTES (128. 256. 512 or 1024)

•

GAP AND FIELD SIZES IN BYTES

FIELD
GAP 1
ADDRESS MARK
OR SECTOR PULSE
GAP 2
ID FIELD
GAP 3
ADDRESS MARK
(Beginning of
Data Field)

8" SHUGART/RMS/
QUANTUM

FUJITSU 2300/
MEMOREX/
14" SHUGART
CDC 9410 - 32

PERTEC

11
1

0

0
9

12

14

9

9

9

12

20
0

20

l'

14
0

133
261
517
1029
17

133
261
517
1029
8

133
261
517
1029
22

133
261
517
1029
8

0'

11
3

PRIAM

0
02

12

0

•

DATA FIELD
Bytes/Sector

128
256
512
1024
GAP 4
'8" Shugart/Quantum drives only.
'Sector Pulse

'GAP 5 is of indeterminate length. It is residual unused space.

Figure 3-2. Sector Data Format

3-2

•

Programming Information

iSBC 215

•

®

HOST
PROCESSOR

r---------,

II [

WAKE-UP
BLOCK

r--------,
I
I
INTEL
8089
I
lOP
'

DISK
DRIVE
UNIT

I
I
I

o

'I

I
I
I

•
•

I
I
I
I
I

[

CHANNEL
CONTROL
BLOCK

~ ONTROLLER
INVOCATION
BLOCK

([
1/0
)
PARAMETER
~
BLOCK

[

DATA
MEMORY

I
IL

HOST SYSTEM MEMORY

---------

I
I

J

Figure 3-3. Host CPU-Disk Controller Interaction Through the I/O Communications Block

•
•

NOTE
Following the initialization of the controller,
the Wake-Up Block, Channel Control Block
and Controller [nvocation Block must be
maintained at their assigned locations. The
location of the I/O Parameter Block can be
changed providirlg that the I/O Parameter
Block Pointer in the Controller Invocation
Block is changed to correspond to the new
location.
The controller uses these blocks to perform three
basic functions: initialize the controller, check and
transmit status, and obtain user selected disk access
functions and parameters. In addition to these I/O
communications blocks, certain controller functions
(such as track formatting) also require data/parameter buffers in host mem'ory. Dedicated locations in
host memory, however, are not required for these
buffers. One I/O port in the host processor's address-

able I/O space is also required. The host uses this
port, called the Wake-Up I/O Port, to initiate
controller activity.
The sequence in which the controller accesses these
blocks varies with the type of operation being
performed, but for general data transfers (reads or
writes), the blocks are accessed as follows:
The host loads the I/O Parameter block in
system memory with a command and parameters for the function the controller is to
perform (for example read data). See Figure 3-3.

®

The host then transmits a wake-up command
(OlH) to wake-up I/O port, signaling the controller to go to I/O communications blocks for
instructions.

®

The controller goes to the Channel Control
Block and links its way through the Controller
Invocation Block to the I/O Parameter Block.
(The Wake-Up Block is used only during controller initialization and by R089 firmware.)

3-3

iSBC 215

Programming Information

®

®

At the 110 Parameter Block, the controller reads
the command and parameter data into its RAM
and begins the data transfer function.
The controller reads data from the selected drive
into its RAM, then performs a DMA transfer of
the data from RAM into system memory.
When the data transfer is complete, the controller posts the status in the Controller Invocation
Block, sends an interrupt to the host and awaits
further instructions.

These 110 communications blocks are accessed in a
similar manner when performing a write function.
A detailed description of these blocks and the data
required in each is provided in Paragraphs 3-7
through 3-11. Refer to Paragraphs 2-7 through 2-10
for a discussion of selecting the wake-up address,
wake-up 110 port address and 8-bit or 16-bit host.

3-6. HOST CPU-CONTROLLER-DISK
DRIVE INTERACTION

RESET CONTROLLER - Performs hardware reset of controller. A clear interrupt (OOH) must
be initiated following this command. (Each time the controller
is reset, the communications
link between the controller and
the host must be re-established
through the Initializing function.)
03H through FFH Reserved.

02H

•

The sixteen wake-up address switches on the controller board determine the address of the wake-up 110
port as described in Paragraph 2-9.

3-8. WAKE-UP BLOCK
The Wake-Up Block is the first ofthe 110 communications blocks (see Figure 3-4). It is used to establish
a link between the controller and the 110 communications blocks in host system memory.

•

3-9. CHANNEL CONTROL BLOCK
Figure 4-2 shows a simplified block diagram of the
major hardware sections of the host CPU, host
memory, controller and disk drives. The host system
memory contains all the controller 110 communications blocks. as well as the data buffers. The host
initiates controller activity through the wake-up 110
port, which it addresses through the Multibus interface. The Intel 8089 I/O processor (lOP) handles all
communications between the host CPU, host memory and disk drives, once the host has initiated controller activity. Controller operations software is
contained in on-board PROM. RAM on the controller
board facilitates intermediate data storage between
the host and the disk drive. The iSBX bus provides a
second 110 transfer path between the controller and
an 1/0 controller such as the iSBX 218 Flexible Disk
Controller.

3-7. WAKE-UP I/O PORT
To invoke controller activity, the host CPU transmits
a wake-up command byte to the controller through
the wake-up 110 port. Three wake-up commands are
allowed:
OOH

OlH

3-4

CLEAR INTERRUPT - Controller to host interrupt is reset;
eontroller reset is cleared.
START OPERATION - Instructs controller to start the
operation that the elements of
the 110 parameter block define.

The controller uses the Channel Control Block to
indicate the status of the internal processor (the
Intel 8089 110 Processor) and to invoke processor
program operations. The Channel Control Block
requires 16 bytes (see Figure 3-5). Except for the
BUSY 1 flag (byte 1) and the Controller Invocation
Block address (bytes 2 through 5), the information
contained in this block is used to invoke controller
operations that are transparent to the host.

•

3-10. CONTROLLER INVOCATION BLOCK
The controller uses the Controller Invocation Block
(CIB) to post status to the host CPU and to locate the
starting address for the controller's on-board disk
interface program. The status semaphore byte (byte
3) has a special purpose. The host uses this byte to
indicate to the controller whether it has read the
current contents of the status byte and is ready for a
status update. The Controller Invocation Block
requires 16 bytes (see Figure 3-6).

•

3-11. I/O PARAMETER BLOCK
The 110 Parameter Block (IOPB) contains the
controller operating commands, which define the
function the controller is to perform (read, write,
etc.), and the parameters of the function (memory
address, disk head and cylinder, etc.). The 110
Parameter Block requires 30 bytes of host memory
space. Figure 3-7 describes the function of each byte.

•

iSBC 215

Programming Information

•

I

(Reserved) •

1

0

7

0

7

01H

0

3

CCB Offset

2

5

CCB Segment

4

~

Wake-Up Address

• Set to all zeros.

Function

Byte

0

SYSTEM OPERATION COMMAND -

1

Reserved.
CHANNEL CONTROL BLOCK (CCB) ADDRESS (Address = Offset + Segment X 24).

2 through 5

•

Must be set to 01 H.
Address of first byte of Channel Control Block.

Figure 3-4. Wake-Up Block

0

7

1

•

7

I

BUSY 1

0
CCW 1

0

3

CIB Offset

2

5

CIB Segment

4

7

(Reserved)'

6

9

I

BUSY 2

CCW 2

8

11

CP Offset

10

13

CP Segment

12

15

CONTROL POINTER

14

• Set to all zeros.

•

0

1

2 through 5
6 and 7
8
9
10 through 13
14 and 15

•

Function

Byte

CHANNEL CONTROL WORD 1 - Indicates location of Intel 8089 1/0 Processor control store program:
01 H - Controller local memory (ROM)
03H - Host system memory. (Used only when executing user written 1/0 program from host memory.
(Refer to paragraph 3-32.)
f3USY 1 FLAG - Indicates whether controller is busy or idle.
OOH - Idle
FFH - Busy
CONTROLLER INVOCATION BLOCK (CIB) ADDRESS Invocation Block.

Address of fifth byte of Controller

r~eserved.

CHANNEL CONTROL WORD 2 - Must contain 01H.
BUSY 2 WORD - Not meaningful to host CPU.
CONTROL POINTER ADDRESS - Address must point to the Control Pointer in the next sequential
word.
CONTROL POINTER - Must be set to 0004H.

Figure 3-5. Channel Control Block

3-5

iSBC 215

Programming Information

7

0

0

7

1

Op. Status

(Reserved) •

0

3

SI. Sema.

CMND Sema.

2

5

CSA Offset

4

7

CSA Segment

6

9

IOPB Offset

8

11

IOPB Segment

10

•

12

13
(Reserved )'
15

14

• Set to all zeros.

Function

Byte

0

Reserved.

1

CONTROLLER OPERATION STATUS - Bits 0 through 2 indicate event completed. Bit 3 indicates
the device that completed the event. Bits 4 and 5 indicate drive associated with event. Bit 6 indicates
error: soft (recoverable), 0, or hard, 1. Bit 7 indicates a summary error that can be checked through
the transfer error status function (refer to paragraph 3-28).

I 71 6 15

•

41 3 1 2 1 1 1 0 1

---

I

Operation Complete
Seek Complete
Media Change Detected
Device: 0 = Winchester Disk Drive
1 = iSBX 218'· Flexible Disk Drive
Unit ID

•

Hard Error

•

Summary Error

2

COMMAND SEMAPHORE processor interlock.

3

STATUS SEMAPHORE - Controller posts status only when this byte is OOH: when new status has
been posted, controller sets byte to FFH. When host CPU has read status, it sets this byte to OOH .

4 through 7
12 through 15
Reserved

Controller does not use this byte. It is provided for use as a multi-

CONTROL STORE PROGRAM ADDRESS program Set to OOOOH.
I/O PARAMETER BLOCK ADDRESS -

Starting address of controllers on-board disk interface

Address of first byte of I/O parameter block.

•

Figure 3-6. Controller Invocation Block

3-12. TYPICAL CONTROLLER
OPERATIONS
The following section describes how to set up the I/O
communications blocks in the host memory, how to
initialize the controller and how to perform the
various data transfer operations. It is assumed that
the controller board has been properly installed as
descrihed in Chapter 2.

3-6

3-13. INITIALIZING THE CONTROLLER
The controller must be initialized before any data
transfer activities between the host system memory
and the disk drives can be initiated, Initialization of
the controller involves:
1.

Establishing a link between the 8089 and the
I/O communications blocks in host system
memory.

•

Programming Information

iSBC 215

•

o

7

3

o

7

(Reserved)'

o

(Reserved),

2
4

5
Actual Transfer Count

6

7

11
13

Modifier

15

Cylinder

10
12

14
16

Head

19

DB Offset

18

21

DB Segment

20

22

23
Requested Transfer Count

25

24
26

General Address
Pointer Offset
General Address
Pointer Segment

29

•

Unit

I

Sector

27

•

I

Function

17

•

8

Device Code

9

28

, Set to all zeros.

Byte

o through

3
4 through 7

Name and Function
Fleserved.
ACTUAL TRANSFER COUNT - Count of bytes actually transferred between the system and the disk
Cor controller. Four-byte binary number, least significant bits in first byte. Controller writes count to
I OPB following termination or completion of an operation. If count does not match requested transfer
count, operation was prematurely terminated; check status. When performing the track formatting
function, a count of 6 is set in the Actual Transfer Count word. When performing the status transfer
function, the count is set to 12. When initializing drive 0, this word has a special function. It is used to dis-play the controller firmware's version number as shown below:

[7 16 151 4131211 I0I

'T

-y--'I...- _ _----..
:: Revision Level
- Version Minus 1

8 and 9

10

DEVICE CODE -

Code for type of device being accessed.
0003H - iSBX 218 5V.' Flexible Disk
OOOOH - 8" Winchester Drive
0001H - iSBX 218 8" Flexible Disk
UNIT - Code for drive unit being accessed: bits 0 and 1 address unit code; bits 2 through 7 are reserved.

[7 16 151 41 31 211 I 0I
-C-'-----l:~ Unit:

o through

11

•

.-----l~

3

I

Volume:
0 - Fixed
1 - Removable

FUNCTION - Code for operation to be performed. Refer to following discussion of typical controller
operations for a detailed discussion of these operations:
OOH
INITIALIZE
01 H
TRANSFER STATUS
02H
FORMAT

Figure 3-7. 1/0 Parameter Block Description

3-7

iSBC 215

Programming Information

12 and 13

14 and 15
16
17
18 through 21
22 through 25

26 through 29

READ SECTOR ID
03H
READ DATA
04H
READ TO BUFFER AND VERIFY
05H
WRITE DATA
06H
WRITE BUFFER DATA
07H
INITIATE TRACK SEEK
08H
Reserved
09H - OBH
iSBX EXECUTE
OCH
iSBX TRANSFER
ODH
BUFFER I/O
OEH
DIAGNOSTIC
OFH
MODIFIER - Code to modify function codes.
Suppresses interrupt on command completion when set to 1.
Bit 0
Bit 1
Automatic retries for error recovery are inhibited when set to 1.
Bit 2
Allows READ DATA, READ TO BUFFER AND VERIFY, WRITE DATA and
WRITE BUFFER DATA functions to be modified to read or write deleted
data, respectively, through the iSBX 218'· I/O controller: 0 = Normal Data;
1 = Deleted Data.
Reserved.
Bits 3 through 15
CYLINDER - Binary number specifying logical cylinder code; bit 0 is least significant bit of number.
HEAD - Binary number specifying logical head code; bit 0 is least significant bit of number.
SECTOR - Binary number specifying logical sector code; bit 0 is least significant bit of number.
DATA BUFFER ADDRESS - Address of first byte in host system memory data (parameter) buffer.
REQUESTED TRANSFER COUNT - Count of bytes requested to be transferred between the system
and the disk or controller. Four-byte binary number, least significant bits in first byte. See description
of ACTUAL TRANSFER COUNT, bytes 4 through 7 in 10PB.
GENERAL ADDRESS POINTER -

NOTE

Reading the parameters that describe the disk
drives with which the controller is to interface
into the controller's RAM buffer, using the
Initialize function (FUNCTION:: OOH).

When the system is first powered-on, the
Pertec or Priam drives will not spin until
each has received an initialize command.
For each drive, the initialize command thus
cannot be completed until the drive has
reached its operating speed and entered the
ready state. This spin-up time varies from
approximately 20 seconds for the Priam
drives to 90 seconds for the Pertec drives.

This initialization must be performed following a:
1.

Power-on event.

2.

Controller reset
port).

(O~~H

written to the wake-up I/O

After the controller has been initialized, any of the
data transfer functions described in Paragraphs 3-14
through 3-25 can be performed in any sequence.
(Refer to Paragraphs 4-12 through 4-15 for a detailed
explanation of controller initialization.)
The following procedure gives the sequence in which
the controller initializing activities must be performed. Prior to initializing the controller, check that
the system data bus switch (S2-1), the host system
I/O address switch {S2-2), the wake-up address
switches (Sl-l through Sl-8 and S2-3 through S2-1O),'
and the interrupt level jumper have been set as
described in the procedure titled Switch/Jumper
Configurations in Chapter 2.

3-8

•

General purpose address pointer.

Figure 3-7. I/O Parameter Block Description (Continued)

2.

•

The Shugart and Memorex drives spin-up as
soon as power is applied. If an initialize
command is issued to a unit that has not yet
reached operating speed, a not ready error is
posted.

•
•

To initialize the controller, the host CPU must
perform the following steps:
1.

Establish addresses for the four 110 communications blocks in host memory:
Wake-Up Block
Channel Control Block
Controller Invocation Block
I/O Parameter Block

6
16
16
30

Bytes
Bytes
Bytes
Bytes

Remember that the address of the first byte of
the Wake-Up Block must be equal to the wake-up

•

iSBC 215

•
•
•

address set in the controller's wake-up address
switches times ~: I. For example, if the switches
are set to 067:3H, the address of byte 0 of the
Wake-Up Block is:
06730H
67:30H

•

20-Bit Addressing
16-Bit Addressing

2.

Set up the shaded bytes in the Wake-Up
Block (see Figure 3-8).

:3.

Set BUSY 1 flag (Optional). Set the BUSY 1
flag (byte 1 of t:he Channel Control Block) to
non-zero (FFH). This allows the host to monitor
the BUSY 1 flag to find out when the initialization procedure i:, complete.

4.

Reset the controller. Host writes a 02H to the
wake-up I/O po:,t.

5.

Clear the reset. Host writes a OOH to the
wake-up I/O port.

6.

Establish the host-controller communications link. Write a 01 H to the wake-up I/O
port. The controJer goes to the Wake-Up Block
in host memory and records the address of the
Channel Control Block, then goes to the Channel
Control Block and clears the BUSY 1 FLAG. On
all subsequent 01H commands to the wake-up
I/O port, the controller will go to the Channel
Control Block.

7.

Set up the shaded bytes in the Channel
Control Block as shown in Figure 3-8.

8.

Set up the shaded bytes in the Controller
Invocation block as shown in Figure 3-8.
Be sure the STATUS SEMAPHORE, byte :3, is
set to DOH.

9.

•

Programming Information

Set up the shaded bytes in the 110 Parameter Block as shown in Figure 3-8. Be sure
the UNIT, byte 10, is set for the correct unit
number and the FUNCTION, byte 11, is set for
the Initialize function (FUNCTION = DOH).
Initialize unit () first.

10. Establish parameter buffer. Set up a disk
drive parameter data buffer with the parameters
for the drive to be initialized as shown in Figure
:3-8. Be sure the data buffer address in the I/O
Parameter Block points to the first address of
this data buffer.
II. Start initialize function. Poll the BUSY 1 flag
(Byte 1 of the CeB) and write a OlH to the wakeup 110 port when the flag is zero. The controller
goes to the Channel Control Block, then links its
way through the Controller Invocation Block
and 110 Parameter Block and reads the disk
drive parameters for the unit specified.

12. Respond to and process the resulting interrupt or status or both.

13. Reset 110 Parameter Block. Set the UNIT,
byte 10, for the next unit to be initialized and set
the data buffer address, byte 18 through 21, for
the beginning address of the unit's disk parameters.
14. Repeat steps 9 through 12 for each drive
unit. Note that the initialization procedure
MUST BE PERFORMED FOR ALL FOUR
IJRIVE UNITS. starting with unit 0, even if one
or more of the drives do not exist. Initialize all
unattached drives with all zeros.
15. Initialize flexible disk drive units. If an
iSBX 218 controller is installed on the iSBX 215
controller board, repeat steps 9 through 14 for all
four flexible disk drive units.

NOTE
The Winchester disk drive units must be
initialized before initializing the flexible
disk drive units.
The controller is now initialized. This procedure
need not be repeated except after a power-on or a
controller reset. For all subsequent disk activities,
the host communicates with the controller through
the Channel Control Block, the Controller Invocation
Block and the I/O Parameter Block.

3-14. TRACK FORMATTING
The Format Track function (FUNCTION = 02H)
writes the gaps, sector headers and data field~ (see
Figure 3-2) on a track - one track per command. A
track can be designated as a normal, assigned
alternate or defective track. A defective track always
points to an assigned alternate track. Refer to the
discussion of alternate and defective track handling
in Paragraph 3-15.
Use the following procedure to format a track.
1.

Set up the 110 Parameter Block as shown
in Figure 3-9.

2.

Set up a 6-byte data buffer for the type of
track to be formatted as shown in Figure 89. A track can be designated as a data track.
assigned alternate track or defective track. The
user pattern is repeated throughout the data
field of every sector. In the ease of a defective
track, the user pattern is a pointer to the
alternate track. If the alternate track is defective,
it can not be used to point to another alternate.
An interleave factor of 1 corresponds to consecutive sectors.

:1-9

iSBC 215

Programming Information

3.

Initiate the format operation. Write a OIH to
the wake-up I/O port.

NOTE

4.

Respond to and process the resulting interrupt or status or both.

Always format the last track on head 0 as a
data track. This track should then be reserved for use by the on-board diagnostic.

Wake-Up Block

~iiililillilliil
(Reserved)

3
5

I/O Parameter Block

o

707

•

Wake-Up Address

7

0 point to this byte.

2 Switches must

3

4

5

o 7

o

(Reserved)

o

(Reserved)

2

4
Actual Transfer Count

7

6

9

8

o

11

10

3

2

13

Modifier

12

5

4

15

Cylinder

14

6

17

16

8

19

18

21

20

Channel Conltrol Block

(Reserved)

7

9

BUSY 2

11
13

12

22

23
Requested Transfer Count

15

14

25

24

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

•
•

Controller Invocation Block
(Reserved)

o

CMND Sema.

2

Op. Status

3

5

4

7

6

9

8

Data Buffer
Starting address
for controllers
on-board
program.

11
13

12
(Reserved)

15

14

Note: Set up the shaded bytes in each of the I/O
communications blocks and in the data buffer.

7

o

o

o
3

2

5

4

7

6

•

• Bytes 5 and 6 are a word, 5 being the low byte,
6 the high byte.
"This byte defines the bit encoding scheme
when initializing a flexible disk unit connected
to the iSBX 218 T• controller: OOH for FM (single
density) and 01 H for MFM (double density). The
iSBX 218 T• controller does not support 128 bytes
per sector in the MFM mode.

Figure 3-8. 1/0 Communications Blocks Linking

3-10

7

•

Programming Information

iSBC 215

•

1/0 Parameter Block

o

7

3

o

7

(Reserved)

o

(Reserved)

2
4

5
Actual Transfer Count

•

7

6

9

8

11

10

13

12

15

14

17

16

19

18

21

20
22

23
Requested Transfer Count

24

25

•

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

NOTE
Select one of
the three depending
on the type of
track being formatted.

Data Buffer

o

•

3

2

5

4

Format Data Track

o
Format Assigned Alternate Track

3

2

5

4

o
Format Defective Track

3

2

5

4

'Byte 1 -

•

low byte; byte 2 -

high byte.

Figure 3-9. Track Formatting

3·11

iSBC 215

Programming Information

•
ALTERNATE
TRACK AREA

TRACK ZERO

•
Figure 3-10. Alternate Track Formatting
3-15. ALTERNATE AND DEFECTIVE
TRACK HANDLING

3-16. DATA TRANSFER AND
VERIFICATION

It is suggested that each disk surface be divided into
two areas (see Figure 3-10), the data track area and
the alternate track area. The user assigns the
number of tracks in the alternate track area,
typically 1 - 2(!1) of the total number of available
tracks on the surface. If a disk surface has 512
tracks, tracks 0 through 500 would constitute the
data track area and tracks 501 through 510 would
constitute the alternate track area. The last track
at Head 0 must be reserved for the diagnostic
program.

Nine data transfer and verification command
functions are allowed, selected through the FUNCTION byte in the I/O Parameter Block: Read Sector
ID, Read Data, Read Data to Buffer and Verify,
Write Data, Write Data from Buffer, Initiate Track
Seek, Execute iSBX 110 Program, 110 Transfer
through iSBX Bus, and Buffer I/O.

When a track within the data track area is deemed
defective, the host reformats the track, giving it a .
defective track code and entering the address of the
next available alternate track in the data fields. The
alternate track that is selected must be formatted as
an assigned alternate track.
When the controller accesses a track that has been
previously marked defective, it will automatically
invoke a seek to the assigned alternate track and use
the alternate as if it were in the data track area. This
operation is automatic and is invisible to the user,
except for the added time required to complete the
operation.

3-12

NOTE
All data transfers between the host system
memory and a disk drive unit are buffered
through the controller's on-board RAM
buffer. During a write, the controller performs a DMA transfer of a one-sector block
of data from the host system memory to the
RAM buffer. It then transfers the sector
serially from the RAM buffer to the disk in
two byte increments. When reading from the
disk, the controller performs a serial transfer
of a sector of data from the disk to the RAM
buffer in two byte increments. When the
entire sector has been read into the RAM
and all error checking has been completed,
the controller then performs a DMA transfer
of the one-sector block from the RAM to host
system memory.

•
•
•

Programming Information

iSBC 215

•
•

The controller contains a burst error checking code
(ECC) computing circuit that creates an error
checking code for each sector ID and each data block
written into disk memory. When reading data from
the disk, the controller verifies the sector ID and the
information in the data blocks using these error
checking codes. If e:rrors are detected that can be
corrected (occur within an eleven-bit burst or less),
they are corrected and the remainder of the operation
is completed. If the error cannot be corrected, the
sector is re-read. If after 3 retries the errors remain
un correctable, the operation is terminated and a
Hard Error is indicated in the operation status byte
(byte 1) of the Controller Invocation Block. To obtain
detailed information on the nature of the error,
perform the Transfer Error Status function (refer to
Paragraph 3-28).
Each of the data transfer and verification functions
is described in detail in the following paragraphs. To
use anyone of these functions, the host CPU must
perform the following steps:
1.

2.

•

Set up the I/O parameter block as shown
in the paragraph describing the function.
Initiate the operation. Write a 01H to the
wake-up I/O port.

Respond to and process the resulting interrupt or status or both.

3-17. READ SECTOR ID
The Read Sector ID function (FUNCTION = 03H)
searches for the first error free sector ID on the
selected track and writes the contents of the sector
ID field into a 5-byte data buffer in host memory (see
Figure 3-11). An implied seek, head select or volume
change, is not performed. The Read SE!ctor ID is
performed on the cylinder, volume and head that the
previous function selected. One use of this function
is to search the alternate track area for tracks that
have not been assigned as alternates.
To perform this function, set up the shaded bytes in
the I/O parameter block as shown in Figure 3-11,
and reserve a 5-byte data buffer in host system
memory.
3-1B. READ DATA

The Read Data function (FUNCTION = 04H) reads
data from the disk into host system memory. It
begins reading with the first byte of the selected

1/0 Parameter Block

3

(REtserved)

o

(Reserved)

2

5

Data Buffer

4
Actual Transfer Count

•

3.

7

6

9

8

11

10

13

12

15

14

17

16

19

18

21

20

23

3

High Cylinder

Low Cylinder

o

Sector

Head

2

Flags

4

Byte 4
Flags
-Czeros
• Sector Size
00 - 128 Bytes
01 - 256 Bytes
10 - 512 Bytes
11 - 1024 Bytes
'-------~ Track Type

22
Requested Transfer Count

25

•

24

27

General Addmss Pointer Offset

26

29

General Address Pointer Segment

28

00
01
10
11

-

Normal
Assigned Alternate
Defective
Invalid

Figure 3-11. Read Sector ID

3-13

Programming Information

iSBC 215

sector and ends reading when the requested byte
count is reached, end of media is reached or a hard
failure is detected. If multi·sector data transfers are
requested the controller automatically seeks to the
next sector, the next head and the next cylinder, in
that order. Automatic head increments are supported
only within the volume, fixed or removable, but not
between volumes, fm example, fixed across to
removable. The last sector, head and track address
in the data track area defines the end of media. An
implied seek is invoked ifthe current head position is
different from the specified track identification. The
DATA BUFFER address set in the I/O parameter
block is the address in host system memory where
the first data byte read from the disk is to be
transferred. Since the data being transmitted from
the disk drive is buffered in the controller's RAM,
data overruns cannot occur. To perform this function, set up the shadpd bytes in the I/O parameter
block as shown in Figure :3-12.
1/0 Parameter Block

o 7

7

o

(Reserved)

o

(Reserved)

2

byte of the selected sector and ends reading when the
requested byte count is reached, end of media is
reached or a hard failure is detected. The multisector data verification is supported through the
auto-sector, auto-head, auto-cylinder protocol described for Read Data function. End of media and
implied seek are also supported as described for the
Read Data functions.
The Read Data into Controller Buffer and Verify
function has three applications:
1.

2.

3.

Allows data to be verified after it has been
written from host system memory to the disk.
Allows data to be transferred from one disk
location to another by coupling this function
with the Write Data from Controller Buffer
function.
Allows data to be transferred from an Winchester disk to a device connected to the iSBX bus. To
perform this operation, the Read to Buffer and
Verify command is coupled with either the iSBX
Execute command or the Write Buffer Data
command (iSBX 218 controller is specified to
receive the data).

4

To perform the Read Data into Controller Buffer and
Verify function, set up the shaded bytes in the 1/0
parameter block as shown in Figure 3-1:3.

7

6

1/0 Parameter Block

9

8

11

10

13

12

15

14

17

16

19

18

21

20

23

22

25

24

3
5

Actual Transfer Count

3

(Reserved)

o

(Reserved)

2

5

27

General Address Pointer Offset

26

29

General Adclress Pointer Segment

28

Figure

:~-12.

Read Data

3-19. READ DATA INTO CONTROLLER

BUFFER AND VERIFY
The Read Data into Controller Buffer and Verify
function (FUNCTIOl\" = OilH) reads data from the
disk into the controller on-board RAM and checks
the ECCs to verify the sector ID and data fields for
all sectors affected. It begins reading with the first

:'3-14

•
•
•

4
Actual Transfer Count

7

6

9

8

11

10

13

12

15

14

17

16

19

18

21

20

23

22

25

24

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

Figure 3-13. Read Data into Controller
Buffer and Verify

•
•

iSBC 215

•
•

Programming Information

3-20. WRITE DATA
The Write Data function (FUNCTION = 06H) writes
data from host system memory onto the disk. It
begins reading from the specified host data buffer
address and writes to the first byte of the selected
sector. It ends writing when the requested byte count
is reached, end of media occurs or a hard failure is
detected. When writing to more than one sector, the
sector selection is automatic as described for the
Read Data function. Auto-head increments and
implied seek are also supported as described for the
Read Data function. If writing ends in the midst of a
sector, the remaining area of the sector is filled with
zeros.

(4010H) and writes to the first byte of the selected
disk sector. It ends writing when the requested byte
count is reached, end of media occurs or a hard
failure is detected. When writing to more than one
sector, the sector selection is automatic as described
for the Read Data function and the data in the buffer
is repeated for each sector written. Auto-head
increments, implied seek and end of media are also
supported as is described for the Read Data function.
If writing ends in the midst of a sector, the remaining
area of the sector is filled with zeros.

To perform this function, set up the shaded bytes in
the 110 parameter block as shown in Figure 3-15.

To perform this function, set up the shaded bytes in
the 110 parameter block as shown in Figure 3-14.

I/O Parameter Block

I/O Parameter Block

3

(Reserved)

o

(Reserved)

2

(Reserved)

o

(Reserved)

2
4

5
Actual Transfer Count

6

7

3

9

5

4
Actual Transfer Count

•

7
9
11
13
15
17

19

•

21

!gf~!~f

•

I

I1iJ

"'i",''''

11

•

'::/
ti

6

13

{""

i>

15

 «<', • "'<

'. " . i.

~~i~l~

14

16
18

20
22

24

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

Figure 3-15. Write Data From Controller
Buffer to Disk

Figure 3-14. Write Data

3-22. INITIATE TRACK SEEK
3-21. WRITE DATA FROM CONTROLLER
BUFFER TO DISK

•

The Write Data from Controller Buffer to Disk
(FUNCTION = 07H) writes data from the controller
on-board RAM onto the disk. It begins reading from
the first address of the controller's data buffer

The Initiate Track Seek function (FUNCTION =
08H) positions the read/write head on a specified
track, if the head is not already on that track. When
issued sequentially to several drives, this command
allows multiple disk drives to perform concurrent
(overlapping) seeks. If a seek to a cylinder beyond
the end of media, including alternates, is initiated,
the drive automatically performs a rezero operation

3-15

iSBC 215

Programming Information

and posts invalid address error. If an operation
complete interrupt is enabled, it is invoked when the
seek command has been initiated and a seek complete interrupt (which is always enabled) is invoked
when the seek is completed. The operation complete
interrupt allows a function to be initiated on a
second drive while the seek is being performed on the
first drive.
To perform this function, set up the shaded bytes in
the I/O parameter block as shown in Figure 3-16.

To perform this function, set up the shaded bytes in
the I/O parameter block as shown in Figure 3-17.
The outlined bytes are optional. Their use depends
on the requirements of the user written I/O program.
1/0 Parameter Block

3

(Reserved)

o

(Reserved)

2
4

5
Actual Transfer Count

1/0 Parameter Block

6

7

(Reserved)

o

9

(Reserved)

2

11

4

13

Modifier

12

7

6

15

Cylinder

14

9

8

17

10

19

Data Buffer Offset

18

13

12

21

Data Buffer Segment

20

15

14

23

16

25

3
5

17

I:i~
Sector

Unit

Data Buffer Offset

18

27

21

Data Buffer Segment

20

29

22
Requested Transfer Count

25

24

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

Sector

Head

10

16

24

:>
::::

::.:

::::: :::::

.,•.•,.,•. . .• ,' .,.,•. ,:. •,•.:..•..•..
,: .•·.H

i:.,,:.' . ,•....•••••...•.•. :' •......'" ...'
L

26

28:1

•

When accessing controller RAM,
General Address Segment must be
set to OOOOH.

Figure 3-17. Execute iSBXTM Interface
I/O Program

Figure 3-16. Initiate Track Seek
3-23. EXECUTE iSBXTM I/O PROGRAM

3-24. 110 TRANSFER THROUGH iSBXTM BUS

The Execute iSBX I/O Program function (FUNCTION = OCH) transfers program control to a program stored in the controller on-board RAM memory.
This program must be coded in 8089 assembler code.
It is loaded into RAM using the Buffer I/O function
(FUNCTION I/O =OEH). Program control is transferred to the RAM address specified in the General
Address Pointer, bytes 26 through 29 in the I/O
parameter block. Upon completion of the program,
the program must exit to ROM location OOC5H. The
programs, which this function activates, are written
to perform I/O transfers to peripheral devices
through the iSBX bus (refer to Paragraphs 3-31 and
3-32 for more information concerning the use of this
function).

The I/O Transfer Through iSBX Bus function
(FUNCTION = ODH) transfers a block of data between host system memory and the iSBX bus ports.
The beginning address in host system memory and
the number of bytes to be transferred is specified in
the respective locations in the 110 parameter block.
The iSBX bus port address, width of the port (8 bit or
16 bit), direction of transfer and mode of transfer are
specified in the cylinder and head locations of the
I/O parameter block (Refer to Paragraphs 3-31
through 3-32 for more information concerning the
use of this function.)

3-16

•

22
Requested Transfer Count

19

23

8

Device Code

Actual Transfer Count

11

•

To perform this function, set up the shaded bytes in
the 110 parameter block as shown in Figure 3-18.

•
•

Programming Information

iSBC 215

•

Byte 14 and 15

liD Parameter Block

IiSBX'· Bus 1/0 Port Address I
(Reserved)

0

(Reserved)

2

Port
3

ISBX Bus Port Address Assignments

J3Channel 0

5

6

0
1

C070
C071

COBO
COB1

CODO
COD1

COEO
COE1

9

8

3
4

C073
C074

COB3
COB4

BOD3
COD4

11

10

5

C075

COB5

COD5

COE3
COE4
COE5

13

12

6
7

C076

COB6

C077

COB7

COD6
COD7

15

14

17

16

19

18

21

20

23

22

25

24

29

General Address Pointer Offset
General Address Pointer Segment

•

COE6
COE7

Byte 16

:

o - Unsynchronized

DMA Mode
1 - Synchronized DMA Mode

o - 8 Bit

Transfer
1 - 16 Bit Transfer

26

Fleserved

a - From

iSBX'· Interface to Host
1 - From Host to iSBX'· Interface

28

Figure 8-18. 1/0 Transfers Through iSBXTM Interface

8-25. BUFFER I/O
The Buffer 110 function (FUNCTION = OEH)
transfers data between the host system memory and
controller on-board RAM. Beginning addresses in
the host system memory and controller buffer
memory are specified. Data transfer begins at these
addresses and ends when the requested byte count is
reached. Since the controller has only 64K bytes of
local memory address space, the most significant
bytes of the REQUESTED TRANSFER COUNT
(bytes 24 and 25) are ignored.

Data transfers from the host system memory
to the controller-buffer must be written to
addresses within the range of 4000H to
4600H.

•

J4Channel 1

7

27

•

J4-

4

Actual Transfer Count

•

J3-

Channel 1 Channel 0

The beginning address in controller memory and the
direction of data transfer are specified in the
CYLINDER and HEAD fields, respectively:

Bytes 14 and 15 Starting controller memory address:
Bytes 14 and 15 Starting controller memory address:
Byte 15 - High Byte
Byte 14 - Low Byte
Byte 16

Direction of data transfer:
OOH - From controller to host
FFH - From host to controller

The Buffer I/O function has three applications. Its
primary purpose is for use with the diagnostic
program. It also allows memory-to-memory transfers
with a minimum of host overhead. In addition, it
allows down-loading of user written, I/O transfer
control programs from system memory to controller
memory. Such programs allow 8089 control of I/O
transfers through the iSBX bus as discussed in Paragraph 3-23.
To perform this function, set up the shaded bytes in
the I/O parameter block as shown in Figure 3-19.

3-17

iSBC 215

Programming Information

•

1/0 Parameter Block

3

(Reserved)

o

(Reserved)

2
4

5
Actual Transfer Count

6

7

Device Code

9
11

13
15

l

8

iiiliililililill;~=

10+- though the specified unit is not accessed.
Unit address must be entered even
12
Starting Controller
Memory Address:
Byte 15 - High Byte
Byte 14 - Low Byte

17

Direction of
Data Transfer:
Byte 16 - OOH (from controller to host)
FFH (from host to controller)

19
21

23

22

25

24

27
29

General Address Pointer Offset
General Address Pointer Segment

26

28

•

Figure 3-19. Buffer 110

3-26. DIAGNOSTIC
The diagnostic function (FUNCTION =OFH) causes
the controller to perform a go/no-go self-diagnostic
test that verifies internal data and status electronics
and checks position and read/write electronics in
the disk units. The diagnostic test program is contained in the controller's on-board PROM.
The diagnostic track is always located on a drive
unit's last (highest number) track of head O. When
allocating memory space for the disk unit, this track
must be dedicated to the diagnostic program. When
initiating the diagnostic program, the head and
cylinder are selected automatically, the user selects
the drive unit. The diagnostic test is divided into
three parts. The upper byte of the MODIFIER field
(byte 13) determines the part of the diagnostic test
that is executed:
Byte 13
OOH

3-18

Function Executed
Controller seeks the designated diagnostic track, performs a read ID and
verifies the track position. It then
writes and reads sector 0 with a

•

55AAH data pattern and verifies
that the data read matches the data
written.

OlH

02H to
FFH

Controller performs a ROM checksum test to verify the contents of
ROM.
Controller recalibrates the drive.

Any errors in the reading or writing are posted in the
error status registers.

•

To perform this function, set up the shaded bytes in
the I/O parameter block as shown in Figure ::3-20.

3-27. POSTING STATUS
When the controller has completed an operation
(read data, seek track, etc.), it posts the operation
status in byte 1, the OPERATION STATUS byte, of
the controller invocation block, using the following
procedure:

•

iSBC 215

•

Programming Information

1/0 Parameter Block

3

(Reserved)

o

(Reserved)

2
4

5
Actual Transfer Count

6

7
9

b~~¢e 4Gb

11

i

10

'>t

12

13

•. ·. ·....I

ii

•

Sector

8

14

Head

Data Buffer Offset

18

21

Data Buffer Segment

20
22

23
Requested Transfer Count

24

1.

3.

4.

•

27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

3-28. TRANSFER ERROR STATUS
The Transfer Error Status function (FUNCTION =
OIH) transfers error status from the I2-byte error
status buffer in the controller memory to a data
buffer in the host system memory. The user can then
examine the status bits to determine the cause ofthe
error. Table 3-1 shows the information stored in each
byte of the error status buffer. Table 3-2 describes
which kind of errors are indicated by the setting of
the hard (unretrievable) error and soft (retrievable)
error bits in bytes 0 through 2. To perform the
Transfer Error Status function, set up the shaded
bytes in the 110 parameter block as shown in Figure
3-21.

Figure 3-20. Diagnostic

2.

•

16

19

25

•

It should be noted that error status information is
not cumulative. The error status buffers are cleared
at the beginning of each new command operation,
except the Transfer Error Status Command.

••••••••

Cylinder

15
17

I.· • i

recorded in the error status buffer in the controller
memory. To examine this error status the user
transfers the information in the error status buffer
from the controller to host system memory using the
transfer error status function (FUNCTION = OlH)
described in Paragraph 3-28.

The controller checks the STATUS SEMAPHORE byte (byte 3 of the controller invocation
block) for OOH.
If the STATUS SEMAPHORE byte is non-zero,
it indicates that the host CPU has not checked
the OPERATION STATUS byte for the last
status posted. When the host CPU does check
the operation status, it sets the STATUS SEMAPHORE byte to OOH and clears the interrupt.

1/0 Parameter Block

3

The status posted includes: operation complete, seek
complete, media change detected and errors detected.
If an error was detected, the unit on which the error
occurred and an indication of whether the error was
a hard error or a summary error is posted (see Figure
3-6). A more detailed description of the error is

o

(Reserved)

2

5

4
Actual Transfer Count

7

6
DeVice Code

8
10

When the controller reads OOH in the STATUS
SEMAPHORE byte, it posts the current status
in the OPERATING STATUS byte, sets the
STATUS SEMAPHORE byte back to non-zero
and sets an interrupt if enabled (see MODIFIER,
bytes 12 and 13, in Figure 3-7).
The host CPU in turn, either polls the STATUS
SEMAPHORE byte periodically for a non-zero
or is interrupted, indicating that new status is
present.

(Reserved)

12
Cylinder

14

Requested Transfer Count

24

25
27

General Address Pointer Offset

26

29

General Address Pointer Segment

28

Figure 3-21. Transfer Error Status

3-19

iSBC 215

Programming Information

Table 3-1. Error Status Buffer
Function

Byte

o and

1

2
3 and 4

5
6
7 and 8

HARD ERROR STATUS - See Table 3-2.
SOFT ERROR STATUS - See Table 3-2.

1.

Commands from the iSBC 215 controller ROM
based I/O program.

DESIRED CYLINDER

2.

User written I/O program.

•

DESIRED HEAD AND VOLUME
DESIRED SECTOR
ACTUAL CYLINDER AND FLAGS'

9

ACTUAL HEAD AND VOLUME

10

ACTUAL SECTOR

11

NUMBER OF RETRIES ATTEMPTED

'Flags located in bits 4 through 7 of byte 8.

3-29. INTERRUPTS
The controller normally posts interrupts to the host
on three conditions:
1.

Command complete

2.
3.

Seek complete
Media change (change disk pack)

The interrupt on command complete can be disabled
by entering a one in bit 0 of the Modifier word in the
I/O parameter block (bytes 12 and 13). The seek
complete and media change interrupts can not be
disabled. To clear an interrupt, the host writes a OOH
to the Wake·Up I/O port.
Pins on the controller board allow the interrupt
priority level of the controller to be set from 0 to 7.
Refer to the discussion of interrupt priority level
selection in Chapter 2.

3-30. CONTROLLING DATA TRANSFER
THROUGH THE iSBX™ BUS
Two iSBX connectors, J3 and J4, are provided on the
iSBC 215 board, which allow access to the controller's iSBX bus. The iSBX bus is an Intel standard
I/O interface (refer to the Intel iSBxr M Bus Specification, Manual Order No. 142686 for detailed information on this standard). It provides 16 data lines and
three address lines, providing a total of eight 16-bit
1/0 ports per connector. Using both J3 and J4, the
iSBC 215 controller can thus communicate through
the iSBX bus with up to 16 separate peripheral ports.
The iSBX 218 Flexible Disk Controller connects to
iSBX connector J4 and allows communication with
up to four flexible disk drives. In addition, users can
design I/O controller devices that interface with the
iSBX bus and use the 8089 to control data transfer.

3-20

Two methods are available to control the transfer of
data between the iSBC 215 controller and a device
connected to the iSBX interface:

The iSBX 218 Flexible Disk Controller uses the ROM
based I/O program to control data transfers to and
from the flexible disk drives, as described in
Paragraphs 3-5 through 3-29. The following paragraphs describe how data can be transferred between
the iSBC 215 controller and a user designed I/O
controller connected to the iSBX bus, using either
the ROM based I/O program or a user written I/O
program.

3-31. I/O TRANSFERS USING iSBC 215™

CONTROLLER RESIDENT FIRMWARE
As has been described at the beginning of this
chapter, the controller has a ROM based 110
transfer program that is designed to control Winchester drives through the on-board drive interface
or flexible disk drives through an iSBX 218 board,
which has been attached to iSBX connectors J4. The
iSBX TRANSFER command in this program can
also be used for general data transfer between the
host system memory and a user designed 110
controller, which has been connected to the iSBX
bus.
The iSBX TRANSFER command allows the transfer
of data between the host memory and the iSBX bus
in the same manner as with the WRITE DATA or
READ DATA commands. In this case, however, the
user must provide the necessary interface hardware
between the iSBX connector(s) and the I/O device
with which the controller is to communicate. This
interface can be very simple, involving data buffers
and limited handshaking capability, or as sophisticated as the disk drive interface circuitry used in the
iSBX 218 and iSBC 215 controllers. The complexity
of the interface will depend on the type of I/O device
being interfaced with and the desired data transfer
rate.

•
•
•

3-32. DATA TRANSFER USING USER

WRITTEN I/O TRANSFER PROGRAMS
A second method of initiating and controlling data
transfer between the host and the iSBX interface is
through a user designed program written in 8089
assembler code. This method is more difficult to
implement, but also more flexible. Such programs
can be executed either from host memory or from the
iSBC 215 controller on-board RAM.

•

Programming Information

iSBC 215

•

Table 3-2. Bit Functions in Hard and Soft Error Bytes

0

Function

Bit

Byte

o through

2

RAM ERROR -

Controller RAM error was detected.

4
5

ROM ERROR -

Controller ROM error was detected.

SEEK IN PROGRESS - Indicates a seek was already in progress for a unit when another
disk operation was requested.
ILLEGAL FORMAT TYPE - Both alternate track and defective alternate track flag set indicating an attempt to create an alternate track for a defective alternate track, which is not
allowed, or an attempt to access an unassigned alternate track.
END OF MEDIA - End of media was encountered before requested transfer count
expired.

6

7

1

•
2

•
•
•

Reserved for future use.

3

8

ILLEGAL SECTOR SIZE - Sector size read from the sector ID field conflicts with sector size
information that controller specified in initialization command.

9

DIAGNOSTIC FAULT -

A

NO INDEX -

Micro-diagnostic fault detected.

Controller did not detect index pulse.

B

INVALID COMMAND -

C

SECTOR NOT FOUND -

D

INVALID ADDRESS -

E

SELECTED UNIT NOT READY ing to unit connect request.

F

WRITE PROTECTION FAULT -

o through

2

Invalid function code detected.
Desired sector could not be located on selected track.

Invalid address was requested.
Selected unit is not ready, not connected, or not respondAn attempt has been made to write to a write protected unit.

Reserved for future use.

3

DATA FIELD ECC ERROR - Error has been detected in the data field of a sector. If bit 6
in Controller-Invocation status byte (byte 1) is set, error is hard and uncorrectable. If bit 6 is
not set, error is soft and correctable.

4

ID FIELD ECC ERROR - Error has been detected in the ID field of a sector. If bit 6 in
Controller-Invocation status byte (byte 1) is set, error is hard and uncorrectable. If bit 6 is
not set, error is soft and correctable.

5

DRIVE FAULT - Hardware fault detected in selected drive unit. Fault characterized by:
read/write fault, pOSitioner fault, power fault or speed fault.

6

CYLINDER ADDRESS MISCOMPARE the expected cylinder address.

7

SEEK ERROR -

ID field contains a cylinder address different from

Hardware seek error was detected

Executing the program from host memory is inherently slower than executing the program from onboard RAM, because it requires constant access of
the Multibus interface. This method, however,
allows the size of the program to be virtually
unlimited. The procedure for executing a program
from host memory is much the same as for executing
a program stored in controller local memory:
1.

I/O communications blocks are established in
host system memory.

2.

The Wake-Up Address switches in the controller
are set for the address of the first byte of the
wake-up block.

3.

The host initiates program execution with OlH
written to the wake-up I/O port.

There are two important differences in the set up of
the I/O communications blocks when executing I/O
programs from host system memory.

1.

Byte 0 of the channel control block must be set to
03H to indicate to the controller that the I/O
program is located in host memory.

2.

The controller invocation block becomes the I/O
parameter block. Refer to the 8086 Family User's
Manual, Manual Order No. 9800722 for detailed
information on setting up an I/O parameter
block when the I/O program is to be executed
from host system memory.

Executing the program from on-board RAM presents
space limitations, but allows data transfers to be
performed at the 8089's full program execution
speed. To overcome some of the limited RAM space
problems, the program can be divided into shorter
routines, which are stored in the host memory and
read into RAM as needed. Separate routines might
thus be written for disk formatting, checking status,
writing and reading. The iSBX EXECUTE com-

3-21

iSBC 215

Programming Information

mand, allows an I/O transfer routine or program
that is stored in iSBC 215 controller RAM to be
started from a host program. When writing an I/O
transfer program, the following software and
hardware considerations should be noted.

I/O PORT ADDRESSING
The eight iSBX bus ports reside in the controller's
memory mapped I/O space, with each I/O port
being given two addresses: one to connect it to
connector J3 and another for ,J4. Table 3-3 shows
these addresses. To access any of these ports for a
data transfer. the R089 merely executes a write or a
read to the address of the selected port.
Table 3-3. iSBXTM Bus I/O Port Addresses
Port

0
1
3
4
5
6
?

ISBX Bus Port Address Assignments
J4J3J3J4Channel 0 Channel 1 Channel 0 Channel 1
C070
C071
C073
C074
CO?5
CO?6
CO??

COBO
COB1
COB3
COB4
COB5
COB6
COB?

CODO
COD1
BOD3
COD4
COD5
COD6
COD?

COEO
COE1
COE3
COE4
COE5
COE6
COE?

PROGRAM STRUCTURE
In writing a program in 8089 assembly code, reference to the 8089 Assembler User's Guide, Manual
Order number 9800938 and the 8086 Family User's
Manual, Manual Order No. 9800722 is essential. The
8089 offers a number of techniques for implementing
handshaking between the 8089 and the iSBX bus,
including the user of wait states and DMA transfers
(essentially an interrupt driven mode) of whole
blocks of data. These and other interfacing techniques are discussed in this user's guide.

HARDWARE CONSIDERATIONS
There are two groups of interface control lines
between the 8089 and the iSBX bus. The first group
includes handshake and control lines; the second
group includes program lines.
Table 3-5 lists the first group of lines. The 8089 uses
these line~ directly to control data transfer through
the iSBX bus.

Table 3-5. 8089 Handshake and Control Lines
on the iSBXTM Bus

J3 or J4 Pin

RAM SPACE ALLOCATION
The controller RAM is used for a variety of purposes,
and as such. only a portion of it is available for
storage of an iSBX bus I/O program and its
parameters. The available RAM space is shown in
Table :3-4. Note that enough space has been reserved
in the data buffer to store an entire 1024 byte disk
sector of data. If the sectors are to be smaller or if for
some other reason less data buffer space is needed,
some of this space can be used for program storage.
Table 3-4. iSBC 2l5™ Controller RAM
A vail able for Program and Parameter Storage
Description

Address Range

Data Buffer'

4000 to 440F

Program Storage

4410 to 45FF
46CO to 4?3A

Scratch PAD'

4600 to 46BF

Variable Storage"

4?BO to 4?CF
4?EO to 4?FF

'May be modified by 215 command usage
"Not available if iSBX 218 is installed

3-22

•

Description

iSBX Bus
Mnemonic

34

Request DMA Transfer

MDRQT

32

Acknowledge DMA Transfer

MDACKI

16

Initiate Wait State

MWAITI

Multibus Clock

MCLK

6
15

I/O Read

10RDI

13

1/0 Write

10WRTI

26

Terminate DMA Activity

TDMA

The second group of lines are used for control and
status. The 8089 accesses these lines through a read
to memory mapped I/O address 8000H for connector
J3 and R008H for connector J4. Table 3-6 lists these
lines, their pin assignments and bit assignments.
Jumpers can be connected on the iSBC 215 controller
to allow the 8089 to also write bits onto the Option
lines (as shown in Table 3-7). The option lines on
only one of the interface connectors may be driven at
a time. To drive the lines, the 8089 writes to memory
mapped I/O port 80I8H. Bit 1 drives OPOO or OPOl,
but not both at onetime, bit 2 drives OPI0 and OPll,
but not both at one time. All other bit positions in
the data word must be set to zero when driving
the Option lines.

•
•
•
•

Programming Information

iSBC 215

•

Table 3-6. Control and Status Lines on the iSBXTM Interface
Connector 1
J3

Address
8000H

Connector 2
J4

OPOO
OP10
INTROO

Bit B

OP01

Bit C
Bit 9

INTR10

Bit A

OP11
INTR01
INTR11

MOPSTI

Bit 8

M1PSTI

Address
8008H

Pin
No.

Bit 3
Bit 4

30
28
14
12

Bit 1
Bit 2
Bit 0

ISBX Bus
Mnemonic

Description
Option 0

OPTO

Option 1
Interrupt 0
Interrupt 1

OPT1
MINTRO
MINTR1
MPSTI

iSBX Board Present

8

Table 3-7. Jumper Connections Allowing
Option Lines to be Driven
ISBX
Connector

Jumper Connection

OPOO

J3, OPO

W11, 1-2

OP11

J4,OPO

W11, 1-3

OP10

J3, OP1

W12, 1-2

OP11

J4, OP1

W12, 1-3

Line

•

I/O
PARAMETER
BLOCK

GA POINTER

NOTE

~

If an iSBX controller is not installed on the

•

iSBC 215 board, or if an iSBX controller that
has been installed on a particular iSBX connector does not drive its respective Terminate DMA Activity line, the connector's
corresponding jumper (W3 1-2 or W4 1-2)
must be installed.
I

I
ISBX INTERFACE
PROGRAM

OOC5H

I~

/

ROM

When loading and executing a user written I/O
transfer program or routine, the following procedure
is used:
1.

2.

•

RAM

I

PROGRAM EXECUTION

•

~

Load the program or routine into RAM using the
BUFFER I/O command from the iSBC 215
controller firmware.
Execute the iSBX EXECUTE command to start
the program. Note that the General Address
Pointer in the I/O parameter block for this
command must point to the address of the start
of the program in on-board RAM (see Figure
3-22). Also, upon entering the program, the
following 8089 registers are defined as:
GA: 7EOOH
Scratch Pad Stack
Unit Number
IX: 0 to 3
Exit from the program must always be to ROM
location 00C5H and the 8089 BC register must
be set to FFH and the 8089 GC register must be
set to 7F3BH.

Figure 3-22. Execution of iSBXTM Bus
1/0 Program From RAM

3-33. EXAMPLE CONTROLLER
I/O PROGRAM
Appendix A provides an example of a host processor
program to initiate data transfers between the host
system memory and disk drives through the iSBC
215 controller.

3-23

•
•
•
•
•

CHAPTER 4
PRINCIPLES OF OPERATION

•
4-1. INTRODUCTION

•

This chapter provides a functional description ofthe
iSBC 215 Winchester Disk Controller circuit operation. The discussion assumes that the reader has a
working knowledge of digital electronics and has
access to the individual component description of
each integrated circuit used on the board. As a
prerequisite, the reader should be familiar with the
programming conventions discussed in Chapter 3 of
this manual, and the functional operation of the
Intel 8089 I/O processor and the Multibus interface.
Familiarity with the disk drive's operation and
interface specifications will also prove beneficial in
understanding the controller operation.

4-2. SCHEMATIC INTERPRETATION
A set of schematic diagrams for the controller board
(Figure 5-3) and a component location diagram
(Figure 5-2) are included in Chapter 5 ofthis manual.

•
•

The schematics are drawn to standard drafting
conventions with input signals entering from the left
and output signals exiting to the right. Input and
output signals between individual sheets of a
schematic include a location coordinate code imme·
diately preceeding (input signals) or following
(output signals) the signal name. This code defines
the location of the origin or destination of the signal

ACTIVE INPUT
RELATIVE
HIGH
A

ACTIVE
OUTPUT
RELATIVE
---~LOW Y

ACTIVE INPUT
RELATIVE'
A
LOW

B

8

ACTIVE
OUTPUT
RELATIVE
HIGH

Y

within the schematic diagrams. The first digit of the
code is the schematic sheet number, and the last two
characters specify the zone defined by the horizontal
and vertical grid coordinates, which are printed
around the perimeter of each schematic sheet. For
example, the code "7B8" indicates that the origin or
destination of the associated signal appears on sheet
7 of the schematic set within the zone defined by grid
coordinates "B" and "8".
An "X" for one of the grid coordinates indicates an
entire vertical column or horizontal row on the
schematic sheet. For example, the code "7BX"
indicates the entire "B'" zone on sheet 7.
The logic symbols used in this manual are drawn as
specified in ANSI Standards 14.15 and Y32.14.
Standard definitions are used for symbols and active
line levels on inputs and outputs (see Figure 4-1). A
small circle on the input of a logic element indicates
that a relative low level is needed to activate the
element. The absence of a circle indicates that a
relative high level is needed to activate the element.
Output levels are indicated in the same manner.
Logic gating symbols are drawn according to their
circuit function rather than the manufacturer's
definition. For example, the gate, which the truth
table in Figure 4-1 defines, can be drawn in one of
the two configurations shown, depending on its circuit application.

B

Y
L H
L H
H H

ACTIVE INPUT
RELATIVE
LOW A

ACTIVE
OUTPUT
RELATIVE
HIGH
Y

ACTIVE INPUT
RELATIVE
HIGH A

ACTIVE
OUTPUT
RELATIVE
LOW
Y

BB
BE>

EXCLUSIVE
OR

•

Figure 4-1. Logic Conventions

4-1

Principles of Operation

iSBC 215

In addition to the inversion symbol convention,
signal nomenclature also follows an active state convention. When a signal (or level) is active in its low
state, the signal name is followed by a virgule or
"slash" (e.g., XACK/); when a signal is active in its
high state, the slash is omitted from the signal
name, (e.g., XACK). This convention corresponds to
putting a bar over a signal name to indicate it is
active in its low state (e.g., XACK).

4-3. FUNCTIONAL OVERVIEW
General. The function of the iSBC 215 Winchester
Disk Controller board is to allow the host system to
access any location on a specific disk of a selected
disk drive and either:
1.

Transfer data to that disk location from system
(host) memory (write operation), or

2.

Transfer data from that disk location to system
memory (read operation).

To accomplish this task, the controller circuitry is
divided into two sections (see Figure 4-2):
l.

Logic that controls communications and data
transfer between the host processor and the
controller through the Multibus interface, and

2.

Logic that controls data transfer between the
controller and the disk drive(s) through the disk
interface, and between the controller and the
iSBX bus through the iSBX bus interface.

The Intel 8089 I/O processor (lOP) controls the data
transfer process, using a program stored in on-board
ROM. It receives instructions from the host processor
through four I/O communications blocks in system
memory. Once the host instructs the controller to
begin a data transfer, the 8089's internal processor
makes a DMA transfer to or from system memory,
independent of the host processor.
2K bytes of RAM are included on the board for intermediate storage of data and to allow on-board error
checking. This data buffer allows DMA transfer to
be made between the controller and host system
memory, which minimizes Multibus™ overhead and
eliminates disk drive overruns.
Communicating with the host. Figure 4-3 provides a detailed block diagram of the controller. The
Bus Arbiter and the Bus Controller manage the
transfer of data between system memory and controller through the Multibus interface. The Bus
Arbiter negotiates with the current bus master for
control of the Multibus interface. The Bus Controller
generates control signals that gate data transfers

,-------------------------,
I
I

•
•
•

I
I

I
I
I
iSBC
MICROCOMPUTER

8089
lOP

I
I

iSBX BUS
INTERFACE
lOP

INTERFACE TO
MULTIBUS··
INTERFACE

LOCAL
BUS
INTERFACE

DISK
INTERFACE

ROM

SYSTEM
MEMORY

•

RAM

1/0 COMMUNICA-

TIONS BLOCKS

Figure 4-2. Simplified Block Diagram of iSBX 215™ Controller

4-2

•

1IIIC11.

r-I"

........
.
-

~

ATIII

ca .........

II

...........

......
.....

..-

..

~

~

==:;

!. . . .

unaIIS

f.i

............
_'WiIiICC

-

.........YA

~

I..-

~

~

-

.......

~

fi"
..a.

...... ....
l.OCM.

-

t ....

-

.,11
'

I

IT
...

LOCAL
MTA
'nil U PI CEI'IIEIIi

J4

..........

-,

a..-..ecT

I'

c
c

u

,

I

ECC
GlElllERAl'ORf7

~

.

l

~

.: !fER
1

4

~

~

~

~t

SCItEMI'TIC SHEET . - . .

Jco.

,

f7

_BUS
crnaFACE

1:

•

r+

BUFFER

f7

.-=-ttI

I

15arr
READ

IT

~

alE ARA11JR

fi

•

~

"

our.

IMP
~

OUT 1

GAP
CONTROL

OUT 2

I.OGIC

I

!

•

t

..

.Ii

STA'1US
1IEGISTER

Iti

t 1
I

...-- .
COIn'ROL

DISK crnaFACE

COIfI'ROL
LOGIC

I1z

DISK STA'lUS AM) CLOCK

FR

..,.

~-

!DAT

f7

V

.~~--

8FT

1 ~

,

!

SELECTOR

~

SEI!Ul.
OUTPUT DATA

--

STATUS

.,

r

I

ERROR

DETECTORl!

t

w'

~-

ECC

.1

.J

~

SERlALECc:

..:ET 1.

.,.

I

0=

-~

IERML""" MTA

• Is

...

13

OATA

a:RIIJES

~

+--

ax:

32 BIT

- -

Ii

~

SIERIAl.

SERIAL IIIPUT DATA

fi

-

r

••

ROIl

L.. I)AT .,15

~,

c::GIIna..

CGIII1MIUJ!II

I

IIECOOI!II

CI

LAn:::K

- - -fi
(+-t

14....

AIJDIIIE!IIS

n

~

•

.....c::+

SERIAL INIIIJT DATA

DISK

~

COIfI"HOL
~

LOGICJii

-'

I

DISI( CONTROl.

..
~

~

r---

CONTROL
RECENED

IXSK

14--

STATUS
AND
CLOCk

...

-

~

CONTROL
DRIVERS

f4--

DIS«

~

r----

~

TO
Ju r-----0tSIC
DRlYE

Figure 4-3. iSBC 215™ Controller Functional Block Diagram

4-3/4-4

Principles of Operation

iSBC 215

•
•
•
•
•

between system memory and the on-board RAM. It
also controls the transfer of data from RAM to the
disk communication circuitry.
The Multibus interface Address Latches transmit 20bit addresses to system memory via the Multibus
interface. The Multibus interface Data Transceiver
transmits data either to or from system memory via
the Multibus Interface. The controller data bus is 16bits. The Data Transceiver uses a byte-swap technique to allow data transfer with either an 8-bit or
16-bit system memory.
The Wake-Up Address Comparator is used to assign
the controller a host system 110 port address and to
set up a communications link between the 8089 lOP
and the 110 communications blocks in system
memory. (A detailed discussion of the controller
initialization procedure is given in Chapter 3 and in
Paragraphs 4-12 through 4-15 in this section.)
Communicating with the disk. The 8089 lOP
treats the ROM, RAM, iSBX 110 ports and disk
communications side of the controller circuitry as
local memory. The Local Address Latches transmit
16-bit addresses to local memory. The Local Data
Transceiver transmits data either to or from local
memory. Some of the addresses in local memory
provide access to local 110 ports (see Paragraph 4-20
for a detailed discussion of local 110 ports). The
Address Decoder decodes these addresses and
generates chip select or enable signals that control
the transfer of data to and from the disk. For
example, the address 8028H enables the 16-Bit Write
Buffer to receive a data word from the local memory.
The ROM and RAM are also assigned specific
ranges of addresses in local memory.
The 16-Bit SER/DES (SerializerlDeserializer) performs the serial-to-parallel and parallel-to-serial
conversion required to transfer data between the
disk and system memory. The I6-Bit Write Buffer
and the I6-Bit Read Buffer provide intermediate
storage for a single I6-bit parallel word between the
RAM and the SER/DES. On a write operation, a 16bit word is transferred from RAM to the write buffer.
The SER/DES then converts the word from parallel
to serial and transmits it to the disk through the
write data driver. On a read operation, a 16-bit serial
word is transmitted from the disk through the Read
Data Receivers to the SER/DES. The SER/DES
then performs a serial-to-parallel conversion and
stores the resulting parallel word in the read buffer.
The Write Data Driver and the Read Data Receivers
are designed to generate and read the differential
NRZ drive signals.
The 32-Bit ID Comparator determines when the
selected sector on the disk is found during the search

for sector ID operation that precedes a write or read
function. When a write or read is initiated, the 32-bit
sector identification (cylinder, head and sector
number) is loaded in the 32-Bit ID Comparator.
Sector IDs from the disk are then read and compared
with the selected sector ID. When the selected sector
is found, data transfer is initiated.
The 32-Bit ECC Generator creates an error checking
code (ECC) that is appended to the end of each sector
ID field and to each data field (see Figure 3-2). This
ECC is used for error checking and correction of data
errors. It allows all the errors in a burst of up to 11
bits to be corrected, and allows errors in a burst of 32
bits to be detected.
The Gap Control Logic controls the spacing of data
within a sector. Three programmable Counters,
which count disk clock pulses, provide timing for the
Gap Control Logic. The ability to program the
Counters allows the disk(s) to be formatted for a
number of different record sizes and gap lengths.
The Disk Control Logic transmits disk control
information to the disk drive units through the
Control Line Drivers. The Input Control Logic
receives status information from the disk drive units
and controls the sequencing of the controller read
and write operations.
The iSBX Interface provides the ability to connect
Intel iSBX Multimodule devices to the controller
board in order to control other 110 devices such as
flexible disk drives or magnetic tape cartridge
drives. The iSBX interface is discussed in more
detail in Paragraph 4-25.
A more detailed overview of the read and write
operations is given in Paragraph 4-29 through 4-33.

4-4. DETAILED FUNCTIONAL
DESCRIPTION
The detailed functional description of the iSBC 215
Winchester Disk Controller circuitry is divided into
two major sections: Controller to Host Communications and Controller to Disk Communications.
Within each of these sections, the following subjects
are discussed:
Controller to Host Communications:
•

Multibus™ Interface

•
•
•
•

8089 lOP
Bus Arbiter
Bus Controller
Multibus™ Data Transfer Logic

4-5

iSBC 215

Principles of Operation

•

Controller Initialization

•

Wake-Up Address Comparator

•

Controller Reset and Clear

•

Establishing a Link with I/O Communications
Blocks

•

Interrupt Priority

•

Memory Map

•

ROM

•
•

RAM
I/O Port Decode Logic

Controller to Disk Communications

•

Controller to Disk Drive Interface

•

DMA Mode
Disk Formatting

•
•

Write Data Transfer

•

Read Data Transfer

•
•

SERIDES Logie

•
•
•

32-Bit ID Comparator Logic
Status Register Logic

•

Line Drivers and Receivers

Sync Byte Comparator Logic
ECC Generator Logic

4-5. CONTROLLER TO HOST
COMMUNICATIONS

and mass storage devices such as disk drives. Its
ability to perform DMA data transfers independent
of the host processor allows it to carry out most
system memory-to-disk transfers of data simultaneously with other host processor operations. Refer to
The 8086 Family User's Manual, Manual Order
Number 9800722 for a detailed explanation of the
8089 and supporting IC devices.
A number of 8089 control lines have important functions in the controller design. The PWR-RST line
(4Dl), when pulled high, resets the 8089 to the
beginning of its internal firmware control program.
Channel Attention line CA (4B4) allows the host to
gain the attention of the 8089. On the first channel
attention following a reset, the 8089 fetches the
contents of address FFFF6H and begins an internal
initialization procedure. On subsequent channel
attentions, the 8089 looks to the I/O communications
blocks in system m~mory for further instructions.
Refer to Paragraphs 4-12 through 4-15 for a detailed
discussion of the controller initialization procedure
and the use of the CA line.

•

The Bus Interface Unit (BIU) in the 8089 controls
the controller local data bus cycles, transferring
instructions and data between the 8089 lOP and
external memory or the disk. Every bus access is
associated with a register tag bit that indicates to
the BIU whether the host system memory or local
memory is to be addressed. The BIU outputs the type
of bus cycle on status lines 80/, 81/ and 821. The
8288 Bus Controller decodes these lines and provides
signals that selectively enable one bus or the other.

•

The following discussion provides a detailed functional description of the section of the iSBC 215
Winchester Disk Controller that communicates with
the host through the Multibus interface.

The 8089 is a 16-bit processor, but it is capable of
making both single-byte fetches (8-bit system
memory) or two-byte fetches (l6-bit system memory).
The address zero line, lADR-O (5B7) .. controls the
byte swapping facility of the controller when
communicating with an 8-bit system memory.

4-6. MULTIBUS™ INTERFACE

4-8. CLOCK CIRCUIT

The 8089 lOP communicates with the host processor
and the system memory through the Multibus
interface. The Multibus interface signal description
and pin configurations are explained in Chapter 2. A
detailed description of the Multibus interface
operation can be found in the Intel Multibus™ Speci·
fication Manual Order Number 9800683.

The clock circuit consists of U55, an 8284A Clock/
Driver (4C6), and a 15 MHz crystal. The 8284A
dividE'S the crystal output by three to produce the 5
MHz CLK necessary to drive the 8089 lOP. The
8284A produces a reset signal mST), which is used
on power-up to reset the 8089, Interrupt Latch U56
(:m5) and the Read/Write Control logic. In addition
to the reset signal, the 8284A also produces a
synchronized ready (RDY) input to the 8089. A high
on the RDY line received from the addressed device
(XACK/ from external memory or the iSBX interface,
or RDY from the on-board read/write port), indicates
that the memory or read/write port has accepted
data during a write operation or data is ready to be
read during a read operation.

4-7. 8089 1/0 PROCESSOR (lOP)
The 8089 lOP, U84 (4X4), is a microprocessor device
that has been designed specifically to perform high
speed I/O transfers of data between system memory

4-6

•

•
•

Principles of Operation

iSBC 215

•

RDY 1

RDY

U55
RESET
RESET
FROM
WAKE-UP
LOGIC
(U39)

READY

,-----c

TRANSFER ACKNOWLEDGE
(XACK/)

RDY 2

AEN 1
AEN2

CLKI4

U90
BUS
CLK ARBITER

CHNL ATTN

•

=D--

EXT 1

AEN
SOl-52!

14

c:

1/0 READ of

1/0 WRITE

•

~

STB

/

/

U85/UB6

ADO-AD19

MWTC 0 - - - - _ MEMORY WRITE COMMAND

INTA
10RC
U91
10WC

OE

PDEN DT/R DENI3

UB1-U83

/20

14

T
/

U52-U53

MULTIBUS
ADDRESS
LINES
(ADR-OI - ADR-13/, BHEN/)

6.

V

T

OE

16
ADO-AD15

U96-U98

/16
/

14

MULTIBUS DATA LINES
(DAT-O - DAT-F)

14

Figure 4-4. Bus Arbiter and Bus Controller Logic

4-9. BUS ARBITER

•

CLK

/

1

~

MRDC. 0 - - - - _ MEMORY READ COMMAND

20

Is

16

50/-521

BUS
CONTROLLER

STB
16

OE

•

f3

ALE

~

LOCAL
DATA
IDAT-O-IDAT-F

AEN

SEL

ADO-AD19

LOCAL
ADDRESS
IADR-O - IADR-F

50/-521

BOB9
UB4

CHANNEL
SELECT
(RDC18)
END
TIME
EXT
TERM

.--

CLK

CA

MUL TlBUS
CONTROL
LOGIC

The 8289 Bus Arbiter, U90 (3D6). controls the 8089
lOP's access to the Multibus interface (see Figure 44). The 8289 monitors the 8089's status lines (SOl,
S1I and S2I). When the lines indicate that the 8089
needs a Multibus interface cycle, and the 8089 does
not presently control the bus, the 8289 activates a
bus request (BREQ/). The low on BREQI is transmitted to the bus priority resolving circuitry in the
host processor, which returns a low on Bus Priority

In line BPRN I, gIVmg the 8089 access to the
Multibus interface. Having received access to the
Multibus interface, the 8289 activates its busy signal
(BUSY I), indicating to the other masters on the
system that the Multibus interface is in use. The
8289 then activates the address enable signal
(AEN I), which is transmitted to the 8288 Bus
Controller, U91 (3C4), to enable its command
outputs, to the 8284A Clock Generator, U55 (4C6), to
enable its bus ready logic, and to the System
Address Latches, U8I, U82 and U83 (4X2), to allow
an address to be gated on to the Multibus interface.

4-7

iSBC 215

Principles of Operation

Jumper pins WI8-I, 2 and 3 allow the user to select
the Any Request option. A jumper installed between
pins WIS-l and 2 causes the controller to relinquish
control of the Multibus interface following a request
from a higher priority device only. A jumper
installed between pins WI8-1 and :3 causes the
controller to relinquish control of the Multibus
interface following a request from any device, higher
or lower priority.

4-10. BUS CONTROLLER LOGIC
The 8288 Bus Controller, U91 (3C4), decodes the
status line outputs (SO/, S1I and S2/) from the 8089
lOP and generates the appropriate bus cycle signal.
Table 4-1 shows the different signals generated for
each configuration of the lOP's status lines.
Table 4-1. 8089 Status Line Decodes
Status Input
521 51/
SOl

CPU Cycle

8288 Command

0

0

0

Instruction Fetch,
Local

INTAI

0

0

1

Read Memory,
Local

IORCI

0

1

0

Write Memory,
Local

IOWC/, AIOWCI

0

1

1

Halt

1

0

0

Instruction Fetch.
System

MRDCI

1

0

1

Read Memory,
System

MRDC/

1

1

0

Write Memory,
System

MWTCI, AMWC/

1

1

1

Passive

None

NOlle

These bus cycle signals can be divided into two
groups: those which allow the 8089 to access system
memory (MWTC/ and MRDC/) and those which
allow the 8089 to access local memory (l-AIOWC/
and I-IORC/). The 8089 uses the I/O Read (I-IORC/)
and I/O Write (I-AIOWC/) signals to read information from the local ROM, U87 and U88, (6X7), or to
read from or write to the local RAM, U99 through
UI02, (6X4). The 8089 also uses I-IORC/ and 1AIOWC/ to gate on the Read and Write Function
Decoders, U35 and U36 (5B2 and 5A2). The function
decoders are explained further in Paragraph 4-20.
The 8288 Bus Controller also generates a group of
signals that control address and data flow throughout the iSBC 215 controller. The Address Latch
Enable line (ALE) is used to strobe addresses from
the 8089 into both the system Address Latches, USlU83 (4X2), and the Local Address Latches, U85-U86
(5X7).

4-8

Data TransmitlReceive (DT /R), Data Enable (DEN),
and Peripheral Data Enable (PDEN/) control the
data flow through the controller. DT/R controls the
direction of data transmission through the Multibus
interface and local transceivers. If DT /R is high,
data is transmitted either on to the Multibus
interface through transceivers U96, U97 and U9S
(4X7) or on to the local bus through transceivers U52
and U53 (4X6). If DT IR is low, the data transfer is in
the opposite direction, into the 80S9 through one of
the two sets of transceivers. DEN and PDEN
controls the selection of the transceivers. If DEN is
high the Multibus interface transceivers U96, U97
and U98 are enabled, and if PDEN/ is low (indicating a peripheral cycle) local transceivers U52 and
U53 are enabled.

4-11. MULTIBUS™ INTERFACE DATA
TRANSFER LOGIC
The controller has three sets of Multibus interface
data transceivers: low-byte transceiver U97, which
buffers DAT-O/ through DAT-71, high-byte transceiver U96, which buffers DAT-8/ through DAT-F/,
and swap-byte transceiver U98, which takes the
data from DAT-O/ through DAT-71 on the Multibus
interface and switches it to high-byte data bus lines
AD8 through AD15 on the controller board (see
Figure 4-5). This byte-swap is performed only when
the controller is interfacing with a 16-bit system
memory in byte mode. In this case, every odd
address read from system memory is transmitted to
the high-byte data lines of the controller. The
procedure is reversed when writing to the 8-bit
system memory. Three signals control the transceiver: ENBL HI BYTE/ (5Cl), which controls the
high-byte transceiver; ENBL LO BYTE/ (5Cl),
which controls the low-byte transceiver (derived
from ADRO/); and ENBL SWAP BYTE/ (5CI),
which controls the swap byte transceiver. Figure 4-5
shows when each of the control signals is active.

•
•
•
•

4-12. CONTROLLER INITIALIZATION
Before data can be transferred between system
memory and the controller, the controller must be
initialized. The initialization procedure, which is
described in Paragraph 3-12, involves:
1.

Resetting the 8089 lOP.

2.

Clearing the reset.

3.

Establishing a communication link between the
8089 and the I/O communications blocks in
system memory.

4.

Reading the disk drive parameters from system
memory to the controller on-board RAM.

•

Principles of Operation

iSBC 215

•
HIGH
BYTE

"

MULTIBUS'·
INTERFACE

•

HIGH
BYTE
BUFFER

/8

LOW
BYTE

/8

8089
ADDRESS/
DATA BUS
ADOAD1S

SWAP
BYTE
BUFFER

/8

LOW
BYTE
BUFFER

-'"

•

,

8

LOW I
BYTE

iSBC 21S'" CONTROLLER

I-ADRO!

•

HIGH
BYTE \,

8

...

8-BIT
SYSTEM MEMORY

•

/8

L

I-ADRO!

ENBL LO BYTE!

L

H

ENBL SWAP BYTE!

H

L

ENBL HI BYTE!

H

H

16-BIT
SYSTEM MEMORY
H

I-ADRO!
,

L

I-ADRO!

H

L

,

H

,

L

'NOT APPLICABLE

Figure 4-5. Data Transmission Between Multibus™ Interface and Controller Data Transceivers
The following paragraphs describe the hardware
operations that take place during this initialization
procedure. (See Figure 4-6.)

4-13. WAKE-UP ADDRESS COMPARATOR
For the purpose of resetting the controller, clearing
the reset or getting the attention of the 8089 lOP
(raising CAl, the host addresses the controller as an
I/O port in its system I/O space. To perform one of
these functions it writes a one byte command to the
specified I/O port called the wake-up I/O port. Table
4-2 shows the three possible commands. The user
determines the address of the I/O port at which the
controller is to reside (called the "W ake-U p Address")
and sets the address on the Wake-Up Address
switches Sl-1 through Sl-8 and S2-3 through S2-1O
(2X6), on the controller board. When the host issues a
write command (lOWC/) to the Wake-Up Address in
system I/O space, U77 through UHO (2X5) on the
controller compare the address with the switch
settings. If they agree, WAKEUPI is pulled low,

enabling the controller to decode the command on
the Multibus interface data lines and determine the
action to be taken.
The host may use 8-bit or 16-bit I/O port addressing.
The user sets switch S2-2 (2A 7) to indicate to the controller the type of addressing that is being used.
When S2-2 is open (8-bit addressing), pin 9 of U75 is
held high, creating a "don't care" situation for the
outputs of High-Byte Wake-Up Address Comparators
U77 and U78.
Table 4-2. Host Wake-Up Commands
Command
OOH

Description

Clear Interrupt and Clear Reset

01H

Channel Attention (Start 8089 lOP)

02H

Reset 8089 lOP

As it is discussed in Chapter 3, the controller also
uses the setting of the Wake-Up Address switches to
calculate the address of the first byte of the Wake-U p
Block, which is the first I/O communications block
in system memory.

4-9

iSBC 215

Principles of Operation

WAKE-UP
ADDRESS
DAT-O-D~

MULTIBUS"
INTERFACE
DATA
TRANSCEIVER

AD-O - AD-15

V16

/
16
WAKE-UP

BUFFERS

/

SWITCHES

MULTIBUS'·
INTERFACE

WAKE-UP

/16

I--

U93 - U95

8089
U84

16-BIT
SYSTEM
BUS

CA

r----'

RESET

WAKE-UP
ADDRESS
- COMPARATOR

~____~CH~N=L~A~TT~N~____~

WAKE-UP
DECODER
U65
WAKE-UP 1/0 PORT

~~~~~~g~

WAKE-UP
ADDRESS TO
SYSTEM MEMORY
TO BEGIN
COMMUNICATION

r '- - - -:

8/16
BIT
S2-2
WAKE-UP
ADDRESS FROM HOST /16
ADR-OI - ADR-FI
/

•

/ 16

__D_A_T-_O/_a_"_d_D_AT_-_1/_--r/_1_6_ _~

RESET
CLEAR
RESET

RESET
LATCH
U63

CNTLR RST I

ADDRESS

•

OOH - CLEAR RESET
01H - INITIALIZE
02H - RESET 8089

Figure 4-6. Wake-Up Address Logic

4-14. CONTROLLER RESET AND CLEAR

The first operation that must be performed during
the initialization of the controller is a reset of the
8089 lOP. To reset the 8089, the host processor writes
an 02H to the wake-up address. The WAKE-UP/
line goes low and gates the 02H (DAT-9/ high and
DAT-II low) into the Wake-Up Decoder, U65 (3B7),
producing a low on the controller reset (CNTLR
RST /) line. A low on CNTLR RST / resets the 8089
(4X4), resets Read/Write Control Logic U42 (sheet 8)
and clears Control Register U3 (l2B5). Once the
controller has been reset, the host processor writes a
OOH (Clear Interrupt) to the wake-up address, which
clears the reset. The Wake-Up Decoder U65 decodes
the highs on DAT-O/ and DAT-II to raise CNTLR
RST/.

ATTN, which in turn raises the CA input to the 8089
lOP (4C4).
Being the first Channel Attention following reset,
the 8089 begins an internal initialization process.
The first step of this process is to do a fetch of
address FFFF6H. The address is transmitted on the
8089 Address/Data lines (ADO-ADI5) to latches U85
and U86 (5B7). Gates U66 and un through U76
(5D4) decode the output of these latches. The output
of U76 enables U89 (5D3), gating the status of the 16bit SYS BUS switch (S2-1) through Data Bit 0 line
(DAT-O/) to the 8089. Switch S2-1 on (16 Bit SYS
BUS/ low) indicates that the host memory system
supports 16-bit data transfers and S2-1 off indicates
8-bit data transfers. Inverter U89 also generates
Transfer Acknowledge (XACK/), which is sent to the
8089 (through the 8284A) indicating that the
operation has been completed.

•
•

4-15. ESTABLISHING A LINK WITH I/O

COMMUNICATIONS BLOCKS
Following a power-up event or a software reset (02H
written to the wake-up 110 port), the link between
the controller and the 110 communications blocks in
system memory must be established. To establish
this link, a clear reset (OOH) is written to the wake-up
110 port followed by a channel attention (01 H). The
OlH is gated into U65, producing a high on CHNL

4-10

After determining the width of the system bus (8-bit
or 16-bit) the 8089 fetches the addresses shown in
Figure 4-7 as part of the initialization sequence.
Fetching addresses FFFF8/9H gates zeros into the
8089. Fetching addresses FFFF A/BH causes the
GATE SWS/ line (RCI) to go low. GATE SWS/ gates
the settings of the wake-up address switches, Sl-1

•

iSBC 215

•
•

Principles of Operation

through Sl-8 and S2-3 through S2-1O through buffers
U93, U94 and U95 (2X3) and into the 8089. The 8089
multiplies the settings ofthe wake-up switch by 2\ to
determine the 20-bit address of the wake-up block,
the first 110 communications block in system
memory. The 8089 then uses this address to fetch the
wake-up block and establish a link with the I/O
communications blocks. On subsequent channel
attentions (host writes OlH to the wake-up I/O port),
the 8089 skips the wake-up block and goes directly to
the channel control block, the second I/O communications block. The 8089 uses the channel control
block to obtain the starting address ofthe controller's
ROM resident 1/0 transfer program (also called the
channel control program). From this point on, this
firmware program directs the controller activities.
One of the first operations of the firmware is to
again fetch the starting address of the wake-up
block. It then links its way through the channel
control block and the controller invocation block to
the I/O parameter block where it obtains instructions and parameters for a specific 110 operation.

•

8038H
8000H

47FFH
4000H
1FFFH
OOOOH

L..._ _ _ _ _ _ _ _ _ _ _ _ _- '

SHADED AREA
INDICATES UNUSED
ADDRESS SPACE

Figure 4-8. Local Memory Map

Figure 4-7. Address Fetches In Initialization
Sequence.

4-16. INTERRUPT PRIORITY LOGIC

4-19. RAM

Wire wrap pins W19-C and W19-0 through W19-7
(3B2) allow the user to select the interrupt priority of
the controller with respect to other peripherals in the
system. To issue an interrupt to the host, the 8089
lOP writes an OlOOH to local 110 port 80l0H. A high
on data line BDAT-8 and a low on write decoder line
WDClOI is then generated, causing interrupt latch
U56 (3B5) to pull its output high and pull the selected
interrupt line to the Multibus interface low. A OOH
written to the system I/O port wake-up address,
clears the interrupt (refer to Paragraph 4-14).

The controller RAM consists of four (lK x 4-bit)
RAM devices, U99 through Ul02 (6X4). On any read
or write to local memory in the range of 4000H to
47FFH, chip select decoder U65 (5B4) pulls RAM
chip-select line CSRAM/low, enabling the RAM
devices.

SYSTEM BUS

16-BIT
SYSTEM BUS

4-17. LOCAL MEMORY MAP

•

COOOH

The controller ROM, which contains the 8089 lOP's
disk control program, consists of two (4K x 8-bit)
ROM devices, U87 and U88 (6X7). On any read from
local memory in the range of OOOOH to lFFFH, chip
select decoder U65 (5B4) decodes address lines
IADR-E and IADR-F and pulls ROM chip-select line
CSROMI low, enabling the ROM devices.

8-BIT

•

~

C01EH

4-18. ROM

FFFF6
FFFF8J
FFFF9
FFFFA
FFFFB

FFFFH

As was discussed in the Functional Overview, the
8089 IOP addresses the ROM, RAM, iSBX I/O ports
and the disk communications side of the controller
circuitry as local memory. Figure 4-8 shows a map of
this local memory. The following paragraphs
discuss the ROM, RAM and 110 ports.

4-20. LOCAL MEMORY MAPPED 1/0
PORTS AND iSBX™ 1/0 PORTS
The 8089 lOP views the controlling devices in the
disk control circuitry (such as ID comparators,
counters, write buffer, read buffer, etc.) and theiSBX
bus ports as local 110 ports, each with an address in
local memory space. To enable one of the disk
control devices, the 8089 executes a read or a write to
the devices respective address. On any read or write
to local memory in the range 8000H through 8038H,
chip select decoder U65 (5B4) pulls its pin 10 low.

4-11

iSBC 215

Principles of Operation

Table 4-3. Local I/O Ports
Read (U33 Enabled)

Address

Write (U32 Enabled)

Enable Line

Function

Enable Line

Function

ROCOOI

Read Disk Status

WDCOOI

Write control data to disk drive and enable AM SEARCH/, RDGATE and WRT
GATE.

8008H

WDC081

Clear index and I D not compare latches

8010H

WDC101

Write to disk control register.

8000H

8018H

RDC181

Raise 8089 Ch 2 CA input.

WDC181

Write to Unit Select and Control register

8020H

RDC201

Read contents of counter 2

WDC201

Load counter 0

8022H

RDC201

Read contents of counter 1

WDC201

Load counter 1

8024H

RDC201

Read contents of counter 2

WDC201

Load counter 2

WDC201

Write mode word

8026H
Read contents of read buffer

WDC281

Write data to write buffer

8030H

WDC301

Write sector ID to high comparator,
start track format operation.

8038H

WDC381

Write sector I D to low comparator

8028H

RDC281

When this low on pin 10 ofU65 is accompanied by a
low on I/O read line I-IORC/, read I/O port address
decoder U36 (5B2) is enabled; when the low on pin 10
of U65 is accompanied by a low on I/O write line 1AIOWC/, write I/O port address decoder U35 (5A2)
is enabled, When enabled, U35 or U36 decode local
memory address lines IADR-3 through IADR-5 to
select the desired disk control device. Table 4-3
shows the address of each local I/O port and its
function.
The two iSBX bus connectors, J3 and J4, on the
iSBC 215 board provide access to the controller's
iSBX bus. The iSBX bus provides 16 data lines and
three address lines, providing a total of sixteen 16-bit
I/O ports per connector. Each of these I/O ports has
an address in local memory space (see Table 4-4).

4-21. CONTROLLER TO DISK DRIVE
COMMUNICATIONS
The following discussion provides a detailed functional description of the section of the iSBC 215
controller that communicates with the disk drive
through the Winchester drive interface, and a
description of the controllers interface with the iSBX
bus through iSBX connectors, J3 and J 4. The
discussion is broken into four areas: (1) description
of the disk interface and iSBX bus signals; (2)
explanation of how the controller formats a disk
prior to performing the read and write functions; (3)
explanation of how writes and reads are performed;
and (4) descriptions of the various circuits that
perform the data transfer.

Table 4-4. iSBXTM Bus I/O Port Addresses
Port

ISBX Bus Port Address Assignments

J3-

J3-

J4-

J4-

Channel 0

Channel 1

Channel 0

Channel 1

CODO
COD1

COEO

BOD3

COE3

0
1

C070

COBO

C071

3

C073

COB1
COB3

4

C074

COB4

COD4

COE4

S
6
7

C07S

COBS
COB6
COB7

CODS
COD6
COD7

COES
COE6
COE7

C076
C077

COE1

When the 8089 executes a read or a write to one of
these ports, chip select decoder U65-9 (5B4) activates
the CSMMIO/ line. Gates U30 (l3C3) and inverter
U3l (13C4) decode the CSMMIO/ and IADR-4 lines
to select either J3 or J4. Address lines IADR-1,
IADR-2 and IADR-3 are transmitted to connectors
J3 and J4, pins 11, 9 and 7, respectively (5Cl), to
select the I/O port on the selected connector.

4-12

4-22. CONTROLLER TO WINCHESTER
DISK DRIVE INTERFACE
All the signals that are transmitted between the
controller board and the 8" Winchester disk drives
are transmitted through either the Control Cable
(J1) or the Read/Write Cable (J2). The physical
configuration of these cables is described and
illustrated in Chapter 2. All the signals transmitted
between the drives except for the read, write and
clock signals are TTL level. The read, write and
clock signals are transmitted as differential signals.
The interface signals that the controller supports are
described in the following paragraphs. Each of the
drive manufacturers, Shugart/Quantum, Memorex,
Priam and Pertec, use the available lines differently.
For the specific use of the lines being employed,
consult Figure 2-3 through 2-6 and the drive manufacturer's user manual.

•
•
•
•
•

Principles of Operation

iSBC 215

•

4-23. CONTROL CABLE SIGNALS

1.

Control and status information is exchanged between the controller and the drive through the
Control Cable. Output signals are defined as those
signals that the controller transmits and input
signals as those the controller receives. The Control
Cable is connected to J1 on the iSBC 215 board and
goes to the first drive and up to three subsequent
drives in a daisy chain fashion as shown in Figure
2-7. The functions of the 37 Control Cable lines can be
divided into five categories:

2.
3.
4.
5.

Device Select (Output)
Head Select (Output)
General Purpose Data Bus (Bidirectional
Priam and Pertec Only)
Control (Output)
Status (Input)

Table 4-5 describes the function of each of the lines
transmitted through the Control Cable.

Table 4-5. Control Cable Line Functions
Line Name

•

Function

Description
DEVICE SELECT

USO/-US3/

Unit Select

Four lines; each selects one of four disk drive units.

HSO/-HS3/

Head Select

Four binary coded lines select one of sixteen heads in selected drive.

BUSO/-BUS7/

Data Bus

WRGATE/

Write Select

Enables the write circuitry in drive, permitting write data that is sent to the drive
through the Read/Write cable to be written on the selected disk surface. Used
with AD MK EN/ line to write address mark on soft sectored disk.

RDGATE/

Read Select

Enables the read circuitry in drive, permitting data to be read from the selected
sector of the disk. Used with AD MK EN/ to read address mark from soft sectored
disk.

DIR/

Direction

Controls direction in which head is moved (Low
head positioner.

STEP/

Step Head

Initiates movement of head in direction that DIR/ has specified.

COMMAND/

Command Data

Indicates command data is present; used in bus cycle handshaking.

PARAMETER/

Parameter Data

Indicates parameter data is present; used in bus cycle handshaking.

DRIVE REQ/

Status Data

Indicates status data is present; used in bus cycle handshaking.

BUS ACK/

Bus
Acknowledge

Acknowledges a bus cycle; used in bus cycle handshaking with commands,
parameters and status.

AD MK EN/

Address Mark
Enable

Enables writing or detecting of address marks (beginning of sectors) when used
in conjunction with WRGATE/ and RDGATE/, respectively. Refer to SECTOR/
under status data.

FL T CLR/

Fault Clear

Clears FAUL T/ line in selected drive. Signal has no effect if fault condition has
not been corrected.

SAFE/

Controller
Power Condition

Indicates to drive that power condition of controller is safe.

BAO/ and BA1/

Bus Address

Two binary coded lines specify source or destination register in selected drive
for bus data.

INDEX/

Index

Pulse received from selected disk drive once every disk revolution.

SECTOR/

Beginning of
Sector

Signal indicates beginning of a sector: address mark for soft sectored disks,
sector pulse for hard sectored disks.

FAULT/

Fault Condition

Indicates to controller that an unsafe condition has been detected in the selected
drive, which would make the reliability of read/write operation questionable.
Normally, logic in drive disables the read, write and positioning circuitry until
rezero operation, fault clear or operator intervention occurs.

HEAD SELECT
GENERAL PURPOSE DATA BUS (Priam and Pertec Onld
Eight-bit, bi-directional data bus transmits command and status information
between controller and drives. Data transmitted includes head and cylinder data.

COMMAND DATA

•
•

= in.

High = out) when stepping

STATUS DATA

•

ILL ADR/

Illegal Add ress

Indicates drive has received an illegal cylinder address.

SK COM/

Seek Complete

Indicates to controller that selected drive has successfully completed the initial
head load, seek operation, or rezero operation within drive specified time limits.

READY/

Drive Ready

Indicates that drive is powered up and is ready to receive or transmit data.

4-13

iSBC 215

Principles of Operation
Table 4-5. Control Cable Line Functions (Continued)
Line Name

Function

Description
STATUS DATA (Continued)

WR PRO!

Write Protected

I ndicates that the selected drive is set for write protected operation. Controller is
then inhibited from writing to the drive.

TRACK 01

Track Zero

Indicates that heads of selected drive have been positioned to cylinder (track)
zero.

4-24. READ/WRITE CABLE
SIGNALS

4-25. CONTROLLER TO iSBX™
CONNECTOR INTERFACE

Read Data, Write Data, Clocks, and two status lines
constitute the information exchanged over the
Read/Write cables. Output signals are defined as
those signals that the controller transmits to the
disk drives, and input signals those that the
controller receives. For the Memorex or 14" Shugart
drives, the Read/Write cables are connected from the
controller to the disk drive in radial fashion, that is
one cable from the controller to each of the drives. J2
provides read, write and clock signals for two drives,
for example, l:{DO (t and -) and RD1 (t and -). One of
these signals goes to physical address 0 and the
other to physical address 1. When using 8" Shugart,
Quantum, Priam or Pertec drives, only the signals
associated with physical address 0 are used. These
signals are then daisy chained between drive units
allowing the controller to communicate with up to
four drives. Chapter 1 describes the cabling requirements for the various drive manufacturers. The
physical configuration of these cables is explained
and illustrated in Chapter 2. Table 4-6 describes the
function of each of the lines transmitted through the
Read/Write Cables. Note that the read. write and
clock signals are differential signals, requiring two
lines in the cable; the status lines are TTL level
signals.

All the signal and control lines transmitted between
the controller and the iSBX bus are transmitted both
through connectors J3 and J 4. These lines are
discussed only in general in this manual as they
pertain to the remainder of the discussion of the
controller interface with the Winchester drives. For a
more detailed discussion of these lines refer to the
Intel iSB)(fM Bus Specification, Manual Order No.
142686.
It should be noted that the controller does not support any parallel-to-serial or serial-to-parallel conversion of data for transmission through the iSBX
connectors. It interfaces with any device connected
to these connectors through an 8 or 16-bit parallel
bus and a number of control and handshake lines.
The interface thus resembles the read/write port,
made up of the write buffer and the read buffer, that
is used in the controller interface to the Winchester
drives.
The names in the schematic diagrams for the signal
and control lines from the iSBC 215 Controller that
are connected to iSBX connectors J3 and J4 often
differ from the respective line name from the iSBX
bus specifications. Table 4-7 lists both the iSBX bus
mnemonic and the controller line name for each line
in the iSBX bus that the controller supports.

Table 4-6. Read/Write Cable Line Functions
Line Name

Function

Description

WRO and WR1
(+ and -)

Write Data

Write Data line pairs transmit serial NRZ data from the controller to the drive for
recording on the disk surface. Write Clock synchronizes data transfer.

WRClO and
WRCl1
(+ and -)

Write Clock

Write Clock line pairs transmit clock signal to drive that is used to synchronize
write data transmission. Write Clock is derived from Read Clock, which the controller receives from the selected drive. Since the Read Clock is obtained from
the rotating disk. it reflects any speed variations and thus ellsures the proper bit
rate transmission when writing as well as when reading.

ROO and RD1
(+ and -)

Read Data

Read Data line pairs transmit serial NRZ data from the disk drive to the controller.
The controller converts the differential signal into TTL levels for transmission to
the host memory. The Read Clock synchronizes Read Data transfer.

RDClO and
RDCl1
(+ and -)

Read Clock

Read Clock line pairs transmit clock signal to controller that is used to synchronize read data transmission and as a timing signal for the controller disk interface
circuitry. Read Clock is derived from rotating disk.

SECTO! and
SECT1!

Beginning of
Sector

Same as SECTORI signal transmitted to controller through Control Cable, one
signal from each physical address.

SKCOMO! and
SKCOM11

Seek Complete

Same as SKCOM! signal transmitted to controller through Control Cable, one
signal for each physical address

RD WR CURl

Reduced Write
Current

Output Signal used to control the write electronics for the inner tracks with higher
bit densities.

4-14

•
•
•
•
•

Principles of Operation

iSBC 215

•
•
•
•
•

Table 4-7. iSBXTM Bus Mnemonic-to-Controller Line Name
Pin

iSBX Bus
Mnemonic

J4

J3

Pin

iSBX Bus
Mnemonic

J3

J4

43

MD8

IDAT-8

IDAT-8

44

MD9

IDAT-9

IDAT-9

41

MDA

IDAT-A

IDAT-A

42

MOB

IDAT-B

IDAT-B

39

MDC

IDAT-C

IDAT-C

40

MOD

IDAT-D

IDAT-D

37

MOE

IDAT-E

IDAT-E

38

MDF

IDAT-F

IDAT-F

35

GND

GND

GND

36

+5V

+5V

+5V

33

MOO

IDAT-O

IDAT-O

34

MDRQT

DREQO

DREQ1

31

MD1

IDI\T-1

IDAT-1

32

MDACKI

N/C

N/C

29

MD2

IDAT-2

IDAT-2

30

OPTO

OPOO

OP01

27

MD3

IDAT-3

IDAT-3

28

OPT1

OP10

OP11

25

MD4

IDAT-4

IDAT-4

26

TDMA

EXTRO

EXTR1

23

MD5

IDAT-5

IDAT-5

24

21

MD6

IDAT-6

IDAT-6

22

MCSOI

CSMMIOOI

CSMMI021

19

MD7

IDAT-7

IDAT-7

20

MCS11

CSMMI011

CSMMI031

17

GND

GND

GND

18

+5V

+5V

+5V

15

IORDI

I-IORCI

I-IORCI

16

MWAITI

MWAITOI

MWAIT11

13

IOWRTI

I-AIOWCI

I-AIOWCI

14

MINTRO

INTROO

INTR01

11

MAO

IADR-O

IADR-O

12

MINTR1

INTR10

INTR11

9

MA1

IADR-1

IADR-1

10

7

MA2

IADR-2

IADR-2

8

MPSTI

MOPSTI

M1PSTI

5

RESET

PWR RST

PWR RST

6

MCLK

CCLK

CCLK

3

GND

GND

GND

4

+5V

+5V

+5V

1

+12V

+1:2V

+12V

2

-12V

-12V

-12V

All undefined pins are reserved for future use.

4-26. CONTROLLER TO DISK DRIVE
INTERFACE TIMING
The following paragraphs provide a detailed discussion of the inter-circuit timing that occurs when
formatting a disk, writing to a disk or reading from a
disk. The discussion is provided to describe the interaction of the timing logic shown on Sheet 8 of the
Schematic Diagram, with the disk drive interface
receivers and drives shown on sheets 9 through 12
and the other data transfer circuitry described in
Paragraphs 4-31 through 4-36.

4-27. DMA MODE
In general, when the controller is performing a read
or a write function it locates the area of the disk
where the read or write is to be performed, then
enters its DMA mode to perform the actual transfer.
(The process oflocating the area to be read or written
to is discussed in the following paragraphs.) In the
DMA mode, the 8089 IOP (see Figure 4-2) controls
the transfer of data between the local RAM block
and the write and read buffers (called the read/write
port). The data transfer circuitry on the controller
board controls the transfer of data between the read/
write port and the disk.

The RDY (Ready) line (8D1) is used for hand shaking
between the 8089 and the data transfer circuitry.
When RDY is low, the HOR9 is quiescent; when RDY
is high, the 80R9 performs a DMA transfer of data
either from local RAM to the write buffer (block-toport) or from the read buffer to local RAM (port-toblock). Gates U40, U41 and U12 (8D3) control the
RDY line.
To perform a write or a read, the 8089 executes firmware to set up data (write only) and condition the
hardware for the selected operation. It then enters
the DMA mode and attempts to transfer data. At
this time: the TIME OUT line (8D8) is low; the
MWAIT/ line is high; the R/W GATE line (RDl) is
high (see Figure 4-9); U21-R (8D3) is high, held so by
the low on the ENBL XFER line (8Dl); and the
R/WDC 28 line, the output of Ull-ll (8D7), is low.
The low on R/WDC 28 is thus keeping RDY activated. On this first attempt to transfer data in the
DMA mode, the 8089 activates either RDC 28/ or
WDC 28/ (RD8), depending on whether a read or a
write is being performed, respectively (refer to
Paragraph 4-31). When RDC 28/ or WDC28/ is
activated, the R/WDC 28 lines is activated, lowering
RDY and putting the 8089 into its quiescent (wait)
state. When the controller's data transfer circuitry
has found the area on the disk where the read or
write is to begin, it activates ENBL XFER (8Dl). On

4-15

iSBC 215

Principles of Operation
the next occurance of a Bit Ring-O pulse, BRO (8D1),
following the activation of ENBL XFER, U21-8
(8D3) is activated, activating RDY. The 8089 then
immediately performs the data transfer (writes a
word into the write buffer or reads a word from the
read buffer) and lowers R/WDC 28. On the next
clock into U21-11; U21-8 is raised. On the 8089's next
attempt to perform a data transfer, R/WDC 28 is
also raised, lowering RDY. The data transfer does
not occur and the 8089 goes into its wait state.
During this time, the SER/DES either transfers the
word from the write buffer to the disk or reads
another word from the disk into the read buffer.
Then on the next BR-O pulse, RDY is again activated
and the next DMA data transfer occurs. The 8089
continues in this DMA mode until the R/W GATE
line is lowered.
Note that two other lines have potential control over
the RDY line. The TIME OUT line (8D8) is provided
to allow the 8089 to be activated if a sector cannot be
found on a cylinder. While the drive is searching for
a sector, the RDY line is held low. If after two
revolutions, the drive does not locate a sync byte, the
time out line is raised. U41 (8D3) gates the TIME
OUT signal through to U12 (8D1) and activates
RDY.
The MWAITI line (8D8) is an iSBX Interface control
line, derived from MWAITOI and MWAITlI (13D8).

MWAITI exercises the same control over the RDY
line as U40 (8D3) and can thus be used to set up a
handshaking arrangement between an I/O controller connected to one of the iSBX interface connectors
(J3 or J4) and the 8089. Refer to the discussion ofthe
8089 in the 8086 Family User's Manual for a more
detailed explanation of the various uses of the 8089
wait states.

4-28. DISK FORMATTING
Before the surfaces of a disk can be used for the
writing and reading of data, the disk must be
formatted. Formatting is the operation of writing all
the address fields, gaps, ID headers, etc. for the
complete disk. The controller performs this operation
under software control. The software routine that
controls this disk formatting operation allows only a
single track to be formatted for each Format
command. The host thus issues a new Format
command to the controller board for each track to be
formatted until the formatting of the entire disk is
complete.
The implementation of the Format command is
divided into two operations. During the first operation, address marks (soft sectored disks only), gaps
and ID fields are written during a single disk
revolution. During the second operation, data fields

BR-O
(SOl)

U21-S ----~
(S03)

•
•
•

r---;---'

•

Ull-ll~

RIWOC 2S
(S07)

ROY
(SOl)

R/W GATE
(SOl)

ENBL XFER
(801)

CTR11

I

J~

-------J)
Figure 4-9. Timing Diagram for RDY Signal

4-16

•

iSBC 215

•
•
•

are written (using the write data sequence described
in Paragraph 4-31) with user supplied data. The
second operation requires two disk revolutions, one
to write the odd physical data fields (1, 3, 5, ... ) and
one to write the even physical data fields (0, 2, 4, ... ).
Three disk revolutions are thus required to format a
single track. The hardware execution portion of the
format operation is discussed in the following
paragraphs. This discussion pertains to the formatting of a soft sectored disk. The iSBC 215 controller
supports both soft and hard sectored disks. I The
formatting procedure, however, is essentially the
same. The differences are described at the end ofthis
section, along with the slight differences in the
sector format used with the Shugart/Quantum
drives. When the Format command is issued to the
controller, the 8089 lOP performs a seek to the
desired track (cylinder) to begin the format operation.

When the heads are positioned over the selected
track, the 8089 writes a COH (for unit 0), a C8H (for
unit 1), a DOH (for unit 2) and a D8H (for unit 3) to
110 port 8018 (decoded as WDC 18/). The activation
of WDC181 enables U3 (12A5) and activates the
WRT GAT-F and FORMAT lines (12Bl) and WRT
GATE (12Cl) (see Figure 4-10). WRT GAT-F and
FORMAT enable the controller format control
circuitry. The controller then writes all zeros to the
drive while the 8089 waits for the receipt of the first
INDEXI pulse (11D8).

'A soft sectored disk (as used in Shugart/Quantum
and Pertec drives) requires an address mark to be
written at the beginning of each sector during the
formatting operation. Hard sectored disks (as used
in Memorex and Priam drives) provide a sector pulse
at the beginning of each sector, thus address marks
do not need to be written.

The time that the 8089 allows between the detecting
of Index and the activating of U63 (8B7) is approximately 11 byte times, which is the time the controller
requires to perform a number of firmware steps in
preparation for writing the first address mark and
ID field, (see Figure 3-2 for a pictorial representation
of the track format). During this time, the 8089

WRT GATE-F

•

Principles of Operation

The receipt of INDEX I sets latch U34 (lID6), which
in turn sets bit F of the Status Register, U44 (lID5).
To monitor the Status Register, the 8089 polls (reads)
1/0 port 8000H bit F (decoded as RDC 00/). Upon
detecting Index, the 8089 writes a XXXXH to I/O
port 3030H (decoded as WDC 30), which triggers U63
(8B7), activating the WRT AMI line (8Bl) and
causing the first address mark to be written on the
disk through the ADMKENI line (12Dl).

--...J"'~--------------------------------~?~
(

FORMAT--...J'

(

,

INDEXI

WRT GATE
WDC 301
WRT AMI
CTR 01
CTR 11
CTR 21
WRT XFERI
ECC TIMEI

END TIME

•

Figure 4-10. Timing Diagram for Disk Formatting Sequence

4-17

Principles of Operation

writes the sync byte (0019H) to the write buffer, U46
and U49 (7C7 and 7D7), by writing to I/O port 8028H
(decoded as WDC 28/). It performs this operation in
preparation for writing the ID field on the track.
The activation of WRT AMI also starts counter I,
CTR 1 of U69 (8A 7). (The 8089 preset the counters in
U69 at the beginning of the format operation.) When
CTR 1 times out at the end of 11 byte times, it
activates the WRT XFERI line through U63-7 (8C3),
and starts CTR 2. The activation of WRT XFERI
initiates the 8089's DMA mode (as discussed in
Paragraph 4-27), during which time the sync byte
and the sector ID are written onto the disk. CTR 2
times out at the end of the ID field, starting CTR 0
and activating the ECC TIME line (8Bl). During the
ECC TIME, the ECC code from the ECC generator is
written following the ID field (refer to Paragraph 4-34
for a description of the operation of the ECC generator). At the end of ECC TIME, the END TIME line is
enabled, which lowers the WRT XFERI line and
takes the 8089 out of the DMA mode. After the last
ID field is written, the FORMAT line is deactivated,
which inhibits the writing of any additional address
marks.
CTR 0 is set for a time equal to the ECC+G3+DATA+
G4. which the 8089 sets according to the sector size
selected for the drive. When CTR 0 times out. it
activates WRT AMI and CTR 1, which begins the
formatting of the second sector. This procedure is
repeated until the 8089 determines that the last ID
field has been formatted. The 8089 then begins
searching for the Index pulse. Upon receipt ofIndex,
the RST FRMT I line is activated, resetting WRITE
GATE-F and FORMAT, and inhibiting the writing
of the next address mark. The 8089 then continues
through the Format routine to the second operation,
which is the writing of the data fields with user
supplied data. The write data function, discussed in
Paragraphs 4-29, describes the write data operation.
For hard sectored disks, a jumper is connected
between terminals WIG 1-3 (8B8). The formatting of
the first sector thus begins when the first SECTORI
pulse from the disk following the INDEXI is
received, rather than when WDC :301 is activated.
When the SECTORI line (llB8) is activated, it
activates the INDEX-SECTORI line (11Cl), which
starts CTR 1. Formatting then continues in the same
manner as with soft sectored disks, except that the
beginning of the next sector occurs at the receipt of
the next SECTORI pulse rather than at the timing
out of CTR O.
The 8" Shugart/Quantum drive seetor format differs
in two ways from that ofthe other three drive types.
In the 8" Shugart/Quantum drives, an address mark
is placed before both the In field and the data field,

4-18

iSBC 215

with no gap between the address mark and the sync
byte. In addition, a D9H is used for the sync byte in
the data field rather than a 19H. When the controller
sync byte detector circuit, U54, U68 and U73 (7B5),
detects a sync byte (19 or D9) following an address
mark and, the SR-6 (7Bl) line is activated, (D9 only
detected), the DATA SYNC and IDNCMPRL lines
are activated through latch U37 (9A6). DATA SYNC
and IDNCMPRL then set bits 3 and 6, respectively,
of status register UI0 (lIC5) indicating to the
controller the presence of the data field instead of an
ID field. In the Memorex, 14" Shugart, Pertec and
Priam drives, a data field is assumed to follow an ID
field without an intervening address mark.
A second difference between the 8" Shugart!
Quantum drive and the other three drives is that
with the 8" Shugart/Quantum drives, a 4EH pattern
is written in the gaps rather than zeros. Inverters
U58 and U17 (8D6) and gates U19 (8D5) creates the
4EH pattern. U40 and U60 (8A3) gate the pattern
through to the SER/DES when the SHUGART and
WRT GAT-F lines are activated during a format.

•
•

4-29. WRITE DATA TRANSFER
The write operation is divided into two steps: (1) read
sector ID and (2) write data. When a write is
initiated, the 8089 lOP writes 0006H to I/O port
8000H (decoded as WDCOO). Latch U24 (l2C5) then:
activates the AM SEARCH/, ADMKENI and RD
GATEI lines, which enables the drive to search for
the address mark and enables the controllers read
circuitry (see Figure 4-11).
The 8089 has previously written to I/O port 8020H
(decoded as WDC20/) to load counters 0, 1 and 2 of
U69 (8A 7). It also writes to I/O ports 8030H and
8038H (decoded as WDC301 and WDC38/), loading
the TD of the sector to be written to, into the ;32-bit ID
comparator logic.
When the address mark (or sector pulse) is detected,
SECTORI is acti vated, which activates the AMFNDSECTORI line (lIB 1). The low on AMFNDSECTORI resets U34 (8C7) and deactivates the ID
FIELD line. The low on the ID FIELD line, deactivates the AMMKENI line and activates the ALW
SYNC SRCH, initiating the search for the sync byte.
(Note that with the Shugart drives, the sync byte
follows the address mark directly. The activating of
AM FND-SECTORI thus activates ALW SYNC
SRCH directly through jumper W14 1-2 (12C3).)
In searching for the sync byte, serial data from the
disk is read into the SERDES. Sync byte comparator
U73 and U54 (7B5) monitors the outputs of the SERDES and pulls the SYNC BYTEI line (7B1) low

•
•
•

Principles of Operation

iSBC 215

•

I~I
AM ENABLE
RD(BC8)
GATE

J~L..

I~I

DATA

DATA

___________"'"
r-----------------..,
,H\._ _ _ _ _ _ _ _ __

---.Jrf

AM FND·SECTORI - - - . . . ,
(8B8)
SYNC FNDI - - - - - - - ,
(9Cl)
~_ _ ~

~--------------~~---..,

ECC TIMEI
(8Al)

END TIME
(8Bl)
_ _ _ _ _+-_~---I

•

CTR 01
(8B6)

CTR 11
(8A6)

------1a
--------\n

CTRU
(8A6) _ _ _ _ _ _ _~----------------------~~
I'L_ _ _ _- - l

WRT
GATE _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _-----'
(8C8)
WRTXFER/ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

•
•
•

~

t....._ _ _ _ _ _---l

(8Cl)

Figure 4-11. Timing Diagram for Write Data
when 19H - the sync byte - is detected. The
enabling of SYNC BYTE I, enables the SYNC FNDI
lines (9Cl), which in tum activates the ID comparawr Ul, U2, U22 and U23 (9DX) and word clock U20
(8D7). (See the discussion of the Sync Byte Comparator Logic in Paragraph 4-32.)
SYNC FNDI also raises the ENBL XFER line, (8Cl),
which enables the ECC Generator logic (7AX) and
Ready Latch U2l (8D4), and gates on counter 0 of
U69 (8A7).
The 32-bit comparator (see Paragraph 4-33) compares the ID read from the disk with the ID of the
selected sector. At the end of the ID time, counter 0
times out, pulling the ECC TIMEI line (7A8) low and
initiating the ECC compare (see Paragraph 4-34). If
the ID and the ECC are valid, bit 6 of the controller
status register UlO (l1C5) is reset. At the end ofECC
time, U42-10 (8B2) activates the END TIME line
which resets RD GATE. The 8089 then checks bit 6
of control status register UlO (11C5). If the bit is
inactive, the 8089 continues with the write operation.
If the ID or ECC are not valid (bit 6 active), the AM
ENABLE and RD GATE lines are then reasserted

and the controller searches for the next address
mark.
To begin the second step of the write operation, the
8089 writes a OlH to 110 port 8000H (decoded
WDCOO/) and enables the write gate (WRT GATE),
through U24 (12B5), enabling the drive's write
circuitry. When counter 0 times out, counter 1 is
started. Counter 1 is set for a time interval equivalent
to the ECC time plus GAP 2. When counter 1 times
out, counter 2 is started and the U63-7 (8C3) is set,
activating WRT XFER/. WRT XFERI enables write
buffers U46 and U49 (7C7) and the ECC comparator
logic (7 AX), and raises the RDY line high indicating
to the 8089 that the write buffer is ready to receive
data.
The 8089 then enters its DMA mode to write data
from local RAM to the disk (see the discussion of the
DMA mode in Paragraph 4-27). The controller continues transferring data to the disk in this manner
until Counter 2 times out, indicating the end of the
data field, and raises the ECC TIME line. With the
ECC TIME line activated, the ECC generated during
the data transfer is written to the disk. END TIME
then terminates the write operation.

4-19

Principles of Operation

iSBC 215

I~I

I~I

DATA

DATA

•

AM ENABLE..J

/
RD GATE
(8C8)

10 DOES NOT
COMPARE

/ 1 0 DOES COMPARE

~--------------------------,

AM FND SECTORI - - - - - ,
(8B8)

SY~;c~rDI - - - - - - - - - . . ,
L---l,F'

+-__--,

ECC TIME/ _________
(SA1)

+ __

END TIME _________
(881)

~--...J

CTR 01 _ _ _ _ _ _.........
(SB6)

CTR2/ ________________________________________________________
(8A6)

~

L..-_ _ _....I

•

Figure 4-12. Timing Diagram for Read Data Transfer

4-30. READ DATA TRANSFERS

The read operation is divided into two steps: (1) read
sector ID and (2) read data. The reading of the sector
ID is performed in the same manner as for the write
operation (see Figure 4-12).
When the desired sector is located, the RD GATE is
again raised to search for the sync byte of the data
field. When SYNC FND/ is activated, counter 2 is
started through U6I·8 (8C4) and U59 (8B6), the ECC
generator is enabled and the RDY line is activated,
initiating the DMA read data transfer mode. Data is
then transferred from the disk to local RAM for the
duration of counter 2.

During a write operation (WRT XFERI low), the
8089 IOP writes to I/O port address 8028H. Write
I/O port address decoder U35 (5A2) decodes this
address and pulls WDC281 low, clocking the data to
be written to the disk (BDAT-O through BDAT·F)
into write buffer U46 and U49 (7C7). A high on load
serial register line LDSR (7C6), derived from word
clock U20 (8C7) loads the contents of the write buffer
(SR·O through SR-F) into the SER/DES (7C5).
Read/write clock R/W CLK-B (7B8) then clocks the
data bit by bit through the QH' output of U50 (7D5),
and through selector U70 (7 A 7) to the WRT DATA
line. R/W CLK-A clocks the serial data string on
WRT DATA through UI8 (10C3) to the selected
drive.

•
•

When counter 2 times out, ECC TIME is activated.
Following ECC TIME, END TIME is raised, terminating the read operation.

4-31. SER/OES LOGIC
The serial/deserialize logic performs two functions:
(1) converts parallel data words into a serial string of
bits to be sent to the disk drive during a write
operation, and (2) converts a serial string of bits into
16-bit words during a read operation. The SER/DES
logic is made up of Write Buffer U46 and U49 (7C7),
SERializer/DESerializer U47 and U50 (7C5), Read
Buffer U48 and U51 (7C4), and Selector U70 (7A7).

4-20

During a read operation, the R/W CLK-B (lOBI)
gates the serial data string (RD DATA) from the disk
drive through U18 (10B4) and selector U70 (7A7) and
into the SI input of U47 (7C5), creating a 16-bit
parallel word. Bit ring-O line BRO (7B8) then clocks
this word into read buffer U48 and U51 (7C4). BR-O
is derived from word clock U20 (8C7). With the read
buffer loaded, the 8089 initiates a read to I/O port
address 8028H. Read I/O port address decoder U36
(5B2) decodes this address and pulls RDC281 low,
which clocks the data word from the read buffer onto
internal data bus IDAT-O through IDAT-F.

•

iSBC 215

•
•
•
•
•

Principles of Operation

4-32. SYNC BYTE COMPARATOR LOGIC

4-34. ECC GENERATOR LOGIC

The sync byte comparator detects the presence of a
sync byte during a read operation and synchronizes
word clock U20 (8C7) with the data. A sync byte is
written preceding each sector ID and each data field
to indicate to the controller that datil to be read is
forthcoming (see Figure 3-2). The sync byte value is
always 19H except for the Shugart/Quantum drives,
which use a D9H for data fields.

The error checking code (ECC) logic performs two
functions: (1) during a write operation, it generates a
four byte ECC polynomial that is appended to the ID
field (format operation only) and the data field
(normal write) of a record (see Figure 3-2), (2) during
a read operation, it regenerates the ECC polynomial
and compares it to the ECC field read from the disk
record to ensure that the correct data was read from
the drive.

During a read operation, sync byte decoder U54 and
U73 (7B5) monitors the output of the SER/DES, U47
and U50 (7C5). When a 19H is detected, SYNC
BYTEI goes low indicating the presence of the sync
byte. SYNC BYTEI and the next output of R/W
CLK-B set the SYNC FND flip-flop, U57 (9C6).
SYNC FND activates word clock U20 (8C6), and
activates the read/write logic (sheet 8). A further
explanation of the sync byte logic can be found in
Paragraphs 4-29 through 4-31.

4-33. 32-BIT 10 COMPARATOR LOGIC
The 32-bit ID comparator logic compares the sector
ID of the record being searched for with the sector ID
being read from the disk drive. The sector ID is made
up of the flags, cylinder number, sector number and
head address.
To load the sector ID of the record being searched for
into :32-bit In comparator Ul, U2, U22 and U23
(9DX), the 8089 lOP writes to I/O ports 80:)OH,
enabling the WDC301 and WDC381 lines, respectively. WDC:301 and WDC381 initiate the loading of
the sector ID into the ID comparator. This loading
occurs prior to performing either a read or write data
operation. The ID compare operation begins after
the sync byte of an ID field has been detected (SYNC
FND). R/W CLK-B clocks the ID information, which
is stored in the ID comparator, out ofU22 (pins 7 and
9) bit by bit. U26 (9D2) compares the serial string of
bits with the sector ID from the disk drive (RDDATA). If the two sector IDs differ, ID no-compare
line ID NCMPRI is activated; if they are the same,
ID NCMPRI is raised. Selector U70 (7 A 7) ORs the
ID NCMPRI and the ECC NCMPRI lines (see
Paragraph 4-37). The resulting ID-ECC NCMPRI
lines is latched into U37 (9B6). The QI output ofU37,
ID NCMPR-L, is transmitted to bit 6 of status
register UlO (lIC5). The 8089 lOP then reads the
contents of the status register and checks the
condition of bit 6. Bit 6 being set high indicates that
the record read from the disk was either not the
record being searched for or had an ECC error;
conversely, bit 6 being set low indicates that the ID
field compared and that there was not an ECC error.
The 8089 lOP can then read or write the data portion
of the record.

During a write operation, serial data (either an ID
field or a data field) is transmitted from the
SER/DES (7C5) through selector U70 (7 A 7) and into
the ECC generator through pins 1 and 2 of UI03
(7A6), where the ECC polynomial is generated. At
the same time a high on the WRT XFER DL YD line
(7B8), transmitted through gate U68 (7B4), enables
the serial data to be transmitted through U71 (7 A2)
and selector U70 (7 A 7) to the WRT DATA line, where
it is transmitted to the disk. At ECC time (end of
data field), WRT XFER DLYD goes low, inhibiting
write data from being transferred through gate U68
(7B4). The ECC TIMEI line goes low, causing the
ECC polynomial to be written onto the disk through
un (7A3), U70 (7A7) and the WRT DATA line.
During a read operation, serial data (again either a
sector ID or a data field) is read into the ECC
generator through selector U70 (7 A 7) and into the
SER/DES through U71 (7 A3) and U70. At ECC
time, U71 compares the ECC polynomial from the
ECC generator bit by bit with the ECC polynomial
from the disk and transmits the difference through
U70 to the SER/DES for storage in RAM. If the
difference is zero, the ID-ECC NCMPRI line is
pulled high indicating correct data or sector ID
(Paragraph 4-33). If the result of the comparison is
non-zero, the difference is called the error syndrome.
The 8089 uses syndrome to correct errors in a sector
ID or data field (if correctable),

4-35. STATUS REGISTER LOGIC
Status register UlO and U44 (llX5) and U9 (llB3)
transmit status information from the selected disk
drive, the iSBX interface and various lines within
the controller disk interface circuitry to the controller. When the 8089 lOP issues a Read Status
command, or checks status as an internal operation,
read decode enable lines RDC 001 and RDC 081 are
acticated, causing the contents of status registers
UlO and U4, and U9, respectively to be transferred
onto the internal bus (IDAT-8 through IDAT-F). The
8089 then analyzes the status information and either
uses it for an internal operation or communicates the

4-21

Principles of Operation

iSBC 215
Table 4-8. Status Register Bits

Bits

8000H (Upper Byte)
U44 (1105)

F

C

Index
Drive Request
Illegal Address
Option Bit 10'

B

Option Bit 00'

A
9
S

Interrupt 10'
Interrupt 00'
iSBX Board Present at J3'

E

0

Function
8000H (Lower Byte)
U10 (11C5)

8008H (Lower Byte)
U9 (11B3)

7

Time Out

6
5

10 No Compare
Bus Acknowledge

4

Fault

Option Bit ii'

3
2
1

Data Sync

Option Bit 01'

Seek Complete
Ready

a

a

Interrupt 11'
Interrupt 01'
iSBX Board Present at J4'

Write Protected
Track Zero
Vendor

'iSBX Bus lines.

status of the data transfer operation to the host processor through system memory (Controller Invocation Block). Table 4-8 lists the status register bits.
Refer to Chapter 3 for information on the status
information transmitted to the host.

4-36. LINE DRIVERS AND RECEIVERS
All the serial data and high speed clock signals
transmitted between the controller and the disk
drive use differential pair line drivers and receivers.

•

The polarity on these lines is positive true logic i.e.,
when the + side of the line is more positive than theside ofline, a positive logic" 1" is being transmitted.
The controller's differential drivers, U16 (lOX3) are
referenced to 0 volts and +5 volts. The controller's
receivers that receive differential signals from the
Memorex, 14" Shugart, Pertec and Priam drives,
V13 (lOX6), are also referenced to 0 volts and +5
volts. The receivers for the 8" Shugart and Quantum
drives receive differential signals, Vl5 (IOX5), are
referenced to -5 volts and +5 volts.

•
•
•

4-22

•

•

CHAPTER 5
SERVICE INFORMATION

5-1. INTRODUCTION
This chapter provides service and repair assistance
instructions, service diagrams, a complete electronic
parts list for the printed circuit board assembly and
a reference to the controller's self diagnostic.

Use the following numbers for contacting the Intel
Product Service Hotline:
Telephone:
All U.S. locations,
Except Alaska, Arizona, & Hawaii
(800) 528-0595
All other locations: (602) 869-4600

5-2. SERVICE DIAGRAMS

•
I.
•
•

The controller board jumper and component locations, and schematic diagrams (Figure 5-1 through
5-3) are included at the end of this chapter. Note that
these diagrams are intended only for reference; they
reflect the iSBC 215 controller design at the time this
manual was printed. The schematics and component
location diagrams packaged with the controller
reflect the design version shipped and thus supercede the diagrams in this manual.

TWX Number:
910 - 951 - 1330

Always contact the Product Service Hotline before
returning a product to Intel for repair. You will be
given a repair authorization number, shipping
instructions, and other important information
which will help Intel provide you with fast, efficient
service. If you are returning the product because of
damage sustained during shipment or if the product
is out of warranty, a purchase order is required
before Intel can initiate the repair.

5-3. SERVICE AND REPAIR ASSISTANCE
United States customers can obtain service and
repair assistance from Intel by contacting the Intel
Product Service Hotline in Phoenix. Arizona.
Customers outside the United States should contact
their sales source (Intel Sales Office or Authorized
Distributor) for service information and repair
assistance.
Before calling the Product Service Hotline, you
should have the following information available:
a.

Date you received the product.

b.

Complete part number of the product (including
dash number). On boards, this number is usually
silk-screened onto the board. On other MCSD
products, it is usually stamped on a label.

c.

Serial number of product. On boards, this number is usually stamped on the board. On other
MCSD products, the serial number is usually
stamped on a label.

d.

Shipping and billing addresses.

e.

If your Intel Product warranty has expired, you
must provide a purchase order number for
billing purposes.

f.

If you have an extended warranty agreement, be
sure to advise the Hotline personnel of this
agreement.

5-4. SELF DIAGNOSTIC
A self diagnostic is provided with the iSBC 215
controller, stored in the on-board PROM. It performs
a go/no-go test of the controller hardware and
firmware. If the controller passes the test, it
indicates with a high degree of certainty that the
controller is operating properly. See the discussion of
the diagnostic in Chapter 3 for a description of the
program and instructions for initiating the operation.

5-5. REPLACEABLE COMPONENTS
This section contains the information necessary to
procure replacement components directly from
commercial sources. Component manufacturers
have been abbreviated in the parts list with a two to
five character code. Table 5-1 cross-references the
manufacturer's code with the name and location of
the prime commercial source. Table 5-2 lists all the
replaceable components on the controller board.
Note that the components that are available commercially are listed in the "MFR CODE" column as
"COML" and that they are ordered by description
(OBD). Procure commercially-available components
from a local distributor whenever possible.

5-1

Service Information

iSBC 215

•

Table 5-1. Code for Manufacturers
Mfr.
Code
BECK

Manufacturer
Beckman Instruments Inc.

Location
Fullerton, CA

BOUR

Bourns, Inc.

Riverside. CA

CRYST

Crystek

Ft. Meyers. FL

CTSK

CTS Keene, Inc.

Paso Robles, CA

DALE

Dale Electronics

Columbus, NE

FAI

Fairchild Semiconductor

Mt. View, CA

INTEL

Intel

Santa Clara, CA

MOT

Motorola

Phoenix, AZ

SNGMO Sangamo-Weston, Inc.

Pickens, SC

SPEC

Spectrol Electronics Corp.

City of Industry, CA
Adams, MA

SPRG

Sprague Electronic Co.

3M

3M Co.

St. Paul, MN

TI
VIK

Texas Instruments
Viking Industries, Inc.

Dallas, TX
Chatsworth, CA

COML

Any Commercial Source; Order By Description
(OBO)

•

Table 5-2. Controller Board Electrical Parts List
Reference Designation

Description

Mfr. Part No.

Mfr. Code

Qly.

C1. C2

Capacitor. 22jJF, Tant, 110%.15V

1500226X901SB2

SPRG

2

C3

Capacitor, 2.2jJF. Tant, ±10%, 20V

1S0022SX9020A2

SPRG

1

C4

Capacitor. 0.33jJF. Cer. Z5U

OBO

COML

1

C5

Capacitor. 10jJF. Tant, :l10%, 20V

1500106X9020B

SPRG

1

C6
C7 through C12
C14 through C44

Capacitor, 10pF, Mica, ±S%.

01S-SC100J03

SNGMO

1

Capacitor. 0 10jJF, Cer. ZSU

OBO

COML

37
1

J1

Connector, Header SO Pin

3433-1302

3M

J2

Connector. Header 40 Pin

3432-1302

3M

1

J3 J4

Connector. 44 Pin

68-369

VIK

2

RP1
RP3

Resistor Pack. 220/330 O. 10 Pin
Resistor Pack, 100 O. 8 Pin

76S-5-R220/330
764-3-R100

BECK
BECK

1
1

RP4

Resistor Pack. 56 0, 6 Pin

763-1-R56

BECK

1

RP5, RP7 through
RP13

Resistor Pack, 10 kO. 8 Pin

764-1-R10K

BECK

8

RP6

Resistor Pack. 220/330 0, 8 Pin

764-5-R220/330

BECK

1

R1. R4, R7
through R9, R13, R14

Resistor. Carb .. 10 KO. "'W. +5%

OBO

COML

7

R2. R3. R6. R12.
R1S. R16

Resistor. Carb, 270 0, '/,W, +S%

OBO

COML

6

RS

Resistor, Carbo 100 kO, '/4W, ±5%

OBO

COML

1

R10, R11

Resistor, Carb. 680 O. '!4W, ±5%

OBO

COML

2
1

5-2

S1

Switch, 8 Position, DIP

206-08LPST

CTSK

S2

Switch. 10 Position, 01 P

206-10LPST

CTSK

1

U1, U2. U22, U23

IC, 8 Bit Shift Reg.

SN74LS16SN

TI

4

U3

IC. Octal, 0 Type. Flip-Flop

SN74LS273N

TI

1

U4 through U6.
U81 through U83

IC. Octal Latch. Inverting

8283

INTEL

6

U7, U27

IC, Quad Driver, Inverting, OC

U8

IC, Dual 4 to 1 Selector/MUX

SN74LS153N

TI

1

U9, U85, U86

IC, Octal 0 Type Latch

SN74LS373N

TI

3

7438

2

•
•
•

Service Information

iSBC 215

•
•
•
•

Table 5-2. Controller Board Electrical Parts List (Continued)
Reference Designation

Mfr. Part No.

Mfr. Code

Qly.

U 10, U44, U46,
U48. U49, U51

IC, Octal D Type Flip-Flop

SN74LS74N

TI

6

U11, U61, U68,

IC Quad 2 Input NAND

SN74LSOON

TI

3

U12, U29, U59. U72

IC, Quad 2 Input AND

SN74LS08N

TI

4

U13

IC, Quad Line Receiver

3486

U14

IC, Dual Line Receiver

75107A

TI

1

U15. U89

IC, Quad 3 State Buffer

SN74LS125N

TI

3

U16

IC, Quad Line Driver

3487

TI

1

U17

IC. Hex Inverter

SN74S04N

TI

1

U18

IC, Dual Pos. Edge Trig. Flip-Flop

SN74S4

U19, U26

IC, 2 Wide. 3 in, 2 in. AND-OR-INV

SN74LS51N

TI

2

U20

IC. 4 Bit Binary Counter

SN74LS161N

TI

1

U21. U37. U56,
U57 . U62

IC, Dual Pos Edge Trip. Flip-Flop

SN74LS74N

TI

6

1

1

U24

IC, Quad D Type Flip-Flop

SN74LS175N

TI

2

U25. U28

IC. Hex Inverter

SN74LS04N

TI

2

U30. U32. U38. U41.
U67. U76. U92

IC, Quad Input OR

SN74LS32N

TI

7

U31

IC. Hex Schmidt Trigger

SN74LS14N

TI

1

U33. U73

IC. Quad 2 Input NOR

SN74LS02N

TI

2

U34. U63

IC. Quad R-S Type Latch

SN74LS279N

TI

2

U35. U36

IC. 3 to 8 Decoder

SN74LS138N

TI

2

U40. U75

IC. Tri 3 Input NAND

SN74LS10N

TI

2

U42

IC. Hex Type Flip-Flop

SN74LS743N

TI

1

U43, U45. U93
through U95

IC, Octal Three State Buffer

SN74LS244N

TI

5

U47. U50

IC. 8 Bit Shift/Storage Register
IC, Octal Bus Transceiver

SN74LS299N

TI

2

U52. U53

8286

INTEL

2

U54

IC. Dual4 Input NAND

SN74LS20N

TI

1

U55

IC, Clock Generator

8284A

INTEL

1

SN74LS06N

TI

2

SN74S02N

TI

1

U58. U74

IC. Hex Inverting BuflDrvr

U60

IC. Quad 2 Input NOR

U65

IC. Dual 2 to 4 Line Decoder

SN74LS139N

TI

1

U66

IC. 13 Input NAND

SN74LS133N

TI

1

U69

IC. Programmable Counter/Timer

8253-5

INTEL

1

U70

IC. Quad 21 MUX

SN74LS257N

TI

1

U71

IC. 9 Elit Panty Generator

SN74LS280N

TI

1

U77 through U80

IC. Quad 2 Input XNOR OC

SN74LS266N

TI

4

U84

IC. Input/Output Processor

8089

INTEL

1

U87

IC. PROM

Open Loop (Low Byte)

INTEL'

1

Closed Loop (Low Byte)

INTEL'

1

Open Loop (High Byte)
Closed Loop (High Byte)

INTEL'
INTEL'

1
1
1

U88

•

Description

Ie. PROM

U90

IC. Bus Arbiter

8289

INTEL

U91

IC. Bus Controller

8288

INTEL

1

U96 through U98

8287

INTEL

3

U99 th rough U 102

IC. Octal Bus Transceiver. IllVert.
IC. Static RAM

2114-5

INTEL

4

U103 through U106

IC. 8 Bit Shift Register

SN74LS164N

TI

4

MC7905CT

MOT

1

Type 44 Miniature HC454

CRYST

1

VR1

Voltage Regulator, -5V

Y1

Crystal 15.000 MHz

Call Intel Product Service Hotline for current part number

5-3/5-4

•
•
•
•
•

1[-- ... --- .

~

~..

·r·~I··

f

r ..

. t ..•

.-...
.....

•

0
"lit'

.....

•

u

1..=
rs

.1
~
~

~

i

~
t

=
~

8

..

Q

I
..cI

.~

lvJ

I;

I~
~

•

~

H

ir i

~ ~
~::1 =
J :J J
N N
I

I

::1

J

tI tot

...

tJ

I

I

I

tJ
I

!O
I

I

I

I

j

,

I

-

~..,.

&m

It "
I

-

,,,
--

JIll') to
I

I

-

ft
~

I

N W1 'It It'!

~~

I

-

11'1
I I

~

p

n.

I

-

I

-

'"I NI I

I

,

I

= ~ !'! YJ

I

tn
I

N

I

I

--

~

~

o - (1.111\

i11
t
~i
iI~

I

--

I

I

~t ~~

S ;;

j
..

.,

'" "" vII'

~r-

I

~ ~

p ~e&dl3~p

21!:

j~ ~

t

~
~~Pi~

~ ~p.;1 ~ ~ I~;II ~ !I·~:!~~ ~Ih~~~~
~ fhi
Uhga ~ ~ hUi I p§iUa

•

[-1]

~~------~----------~----------~----~--~

•

.0

\J \J \J \J U \oJ U \J

o-

-

~

..-11' ~r-

~~

w N

J~

t
~

~

N

N-.J

q

r.

,--_.

tJ

~

H

::l

~

- -.

I

,~~

~

~

~.....

N N

en

-- -

,,9

A.

i~p~ ur

I I~p ~~

I

- - - -

a l"-iI

I

10 If) III
I

NN
I

I

III

--. - -

tJ ..J N tJ

I

N

§~~ ~ ;

N III N N-..
I I
I I
I

N

- - -- .... -I

fl

- - .. -

I
~

f-- -

-

I

J

I

I

I

~

S 2 Z$ ~ t
:l ::J ~ ::) :::J ::i ::J ~~ ~

~ ~ ~!l

-- --

tl\w

~

r-l

NN Ntol

N
I

~I ~ ~

[i1

n

it

•

I

~
~

........

•
1-5V

•

DREQO :J3..34>(

.14::

DREG ~

Jij3

'""~:

[~

RPB
tOK

W\WItd1'G!I/ J3- t

\38>

1 ....

1/

a::.U<.j

:J4-ll. (

----~~----------------------------------------------------------------------~.~

D

.~~

7<4LS32

~I~

~~~

~ r~5"
liIi~rr

1J3D\\

!2.

1-5'

"14LSK
II

RP9
It<.

USI/

•

)

5
S

.5V

tl

"

r

U33

...

7<4i..':;Q) 2.

W9

~I ••-----------R-~-K--.l-~------------~~:~LEC\-----------------------------------------~~
__/
~~

74L5i0

+5V

Ii
-'~
- ,w" O~--~~--------------------------------------~.~
S"
RP5

\~
o~--~--------------------------------~.

2. WI5 I

~

S

A

5H~

BAa

VENDOR

'-"lIT SELECT/ 'JENDO?. SELECT
SBX CON.~OL

-

•

7

6

5

•

J

A

2

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 13 of 14)

5-33/5-34

...... '-'-, p'f •

":::SII

•

7

iBDIIU-A
1JDiII;T-9

•

~a

BWtl-7

-A.

17 1125

-!i

JD

'ill

SJta3

f/JIN

•

'U~

7
6lin...
Z

~'f-'S

3~j

... --I
5

PI

..-.

1

,

:01

IC

CE

~

III

1i1

4-'
...

eDiU-Z

rt

.... ~f2

uu

--

LI21

9

..... R;
~

;:Gf:L

.,.,....,..,...

I

t4........ \.P..4

lr~.?

~

~

::;

I'

I

f
51

1O~9

12:

l~

41,

uzc,

l..

~9it

j

8nln-l

t

5~rr

:

....

•

BUS-7/
J5US-£1

21.:;

8I.».S1

3 ......

Ii.-

... ~

BUS-4/'

BlJ5- 3/-t4S'3./
eus-2/-~2.1

BIJS-II-HS U
8t.J!>.4I- HSftf

'5 _

19

::IlJIiT-7
l:O!'T.,.

IT
Ib

lIlI'T-S
:IflII,.T~

BOAT."

If)

IS

:mI'7 -3

~-"5

~

fSDIU--4
ImAT"3

~
7

~

,.,.
"'"

US

n.c

'"~

......

e:'

01

7~

to!

'IQjfJ -2

\3

~-I

..... 12

BOJIiT-7

~e:I ~

..
----vr-

'IDJIIT-tl

BI»o.' -z
81».. -1

cue CE
II

~o

9

~ 1"'774l-~273

...
0

13

fJ3 . .

I

:"""

, !

·Cft.

~

°t

2

3

T

_4
1 U7 L
_.~:>D
13

T

I

12 U7

•

7

6

.."

:I1-'U

~Z/

La:..l.

i&

usc¢

l5

at rL
IZ.

l.J'itJ.1
1.15(/1/

EIITR2

9

Ul7

f

R

12

r.lS,"

1!JDIIcr-7

I

1KlILJ\'~

2 ........
:I

62&3

8Dl'T--\

...

8OI\T--3

5

~

81»." -2
B.DttU -\

6

~

7

E!D''''-G

6

....

LI"\

~

...

16
04 l5

"

.....
.....

II _.

....~.IMT-GJ}{uw--7)

17

O.

...

\'1\

,"-

\3

\2

:J'1~t§~v
-ZT Blb2/-l-62I
-l..B~-~
'J1.-Zh Blhf/J/-I--f5fb/

A

CONl1I1 OUTI'UT

'(9'

•

:a-20 STEPj
1·

If.

~

~

\9

S

36

1

DE

5

U51./

,... J~-2A

•

I

I

-

,, :Jl.-23 l£,l./

19

I

CJZ5

"3B

5

j

"])/

"'tJ7

1'4R:'T 60'-'T- f'
f'ORto'\Al

BI»oT--5

13

!J ~5

5

l.

FR~

~

,....

~

fijI

lei

~

91 U7

,..- Ii>

,~j

WR.~J

~

~

t(

or e

,"" :h-e,

L

T

2:

62.e

ru;I G"''"lE-

RP f':#\1EJ

~

1

~

2 1lVi.3

,10

9

~

't1:t)~

,....--.j,~.

WU
O·

fIJI

~

~

;

~~l

n
?O

.

1

,

~

~r:!
j

r= ~l

II

101

-

9j~

~

~

'""~
~

~

,;;~

U25!

L::: _____ j

lB1

..z;::,
--...:,

I

..

U

IZ U27

-~

3,...WB

2,rr-----l

13

~a

~WM

,

6--:5

.... 11-1) SAFE!
,~ 11-1I!t FLT aN

.i. "

:",,6

11

BACK/

l

.""" e.

'lEU>

.. J1-14 BACKl

T

V~

Ur

d

i1~ •

)

L.!.~l

'41';

:rz.,zr RtMR t:.I.PI

:

]

f9

~

71l.S1b2

'Al!41

e.

..-

~

I
I

M

C5 12

I

!!IiI::lIM"-b
....... -"1
fItIIIIo:l-3

~

•

s

6

J

-

\~03c5

2

6.

1

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 12 of 14)

IN115-32

•

7

•

~ ~~'------~----__-1

s

,---------------------~----------t_--~----------------------------------------------~OP~

•

r---------------~--------~---------------------------------------------~
L-~--------------------~----------------------~~~

D 5M.~1

PR~~~&~'------~~~~--~~~--------------------~-r~~
WL~ ~'------~----------------------------~--r-~
~~ ~~'----~----------------------------------~~~~~
~
~
~

~/

WX,1/Ifb!
lO------_._.F5f

~I

~---------------.~~

:

lIS

.c

SICCOM fl/J2.-Z'J
~'l2

•

>..

as

e

~ :l1.-\?

Mrf lIfQ
1"RK~1

\H..I1)
IJS(.1.

\9.IDOR

J:tVIT -'1
']])III.T-"
UVoT-5

~

~T-4

3

~T-3

0PGI1

SECTtb/ 12
SEC1~ ""l2-:J7

•

INl'Rl1
"INmCl1

~1-2

M1.PSi

:t.tIfo,j-f)

~T-l

~:l1:ROC0f'.(
r-------------~ 0P.n
~--------------------------------~~----------~~

WRTfW:¥
~/
\IB.IXR

0Pl1.

A

0R:lI1.
I"fTRU.
I

1N~

M1P5T/

EX'TR(lI

"B

E1:TRt

J4;

En
i32

..L
RPBI

-

:::::L

loti:.

•

220

~Le

ehO
""'~"
"""

-:'

+5"

7

6

5

•

\RM

PLAC6

Sl1\TUS

11IIPUT

\b?036

J

1

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 11 of 14)

5-29/5-30

Service Information

iSBC215

7

6

4

5

- - 162.038

-

SEE SHEET:

D

D

12C1

~~T4~T£*c-----------------------------------------------------------------------------------------------------,

7Bl

ioI~T ':;A:A . _ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ,

~I

WRTAMI -------------------------------------------------------------------------------~

1381

TR'~~~/ ••--------------------------------------------------------------~T~--~il
II
~

'5 Ui5

II

6

R2.1
10K

WRIZH-

...
...

c

WR0-

-26
581

JC:-

e.

J2 -2.'

RDOI+

,

oL

I

Ul3 ~=-----------------...... i
1
:;o=2=---++-+-----4-'--=.co==-----..::c'-t""f!;/
4

4(''---''''';''''01015 2.
RP3 _
I
~~~-+~+-------~~~~T·,--~~

~(---O Wb

~

•

2

3

-Ioq

M(3~Sb

7~4

RP3

15 _

1b

U '3
6 +

I(
1ui£>lrI

i

1\

'>'?::-..+---------------......t..-i---..

....- -.....£f......

V

~1)CL9I- J2-~3 I+
USIRDeN

-

13 I~

Je- 12
J2-32

RP3

~

17

~ Te,

~

I'

"--

\Jla

--=:.ac

1 ___
, .........

1
...--_--=3:.0 0

12 MC3.q~b

•

RD

D"'TAI

~----~------------------------------------------~RANCLKA

I~

I~~ ~I.:.'_ _ _ _ _ _ _ _ _ _ _...---I

i
1'

V
MC.3~'Ob
!
~ ~ATE~~--------------------------------------------------------------------~I,------------------~

,

1J!'o------------------------------.

t

W2Z

E~=-----------------------~-==---~~I~·~

7

O~----------------------------------------.RDDATA

Q

It

r:J-

7Se.J SCS. 9CS

5

3 "?"S"7"l.~

UI3; /
~!~:::......-----------------'

._-------------------------------------------4

RDCLf-

12C.1

1_

~---+----------~~~

15..r-...

V

RDCll+

A

e.

USfRPEN ••------------------------------------------------~
RDI-

•

1'\(;3'1B6

0=-"3'--_--'

1361

W~Cl~-

-6

PUc

RDiJ-

1~81

c

SERIAL DATA
DIFF!;"REf'4TIA.L DRIVERS,

¢ RECEIVeRS
It..

162038

.-",

'0

5

4

J

2

1

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 10 of 14)

5-27/5-28

Service Infonaation

iSBC215

7

•

5

6

3

_e

SE= SWEET

I

D

I

i

'--------,-....,Ir------

~IIDC-38/

IOOi
C,B.l
5A...L
12C1.

!t-

~C~-3)/

• •
••----------------~------------------------------------------------------~

Rf) CAT""
Rr rATA

.....~-----------r_---...-----------+-----------------------------~

M".c,~ ~~'~,/
.. '--- ---~
":i..W ':';f"NC 5·ROI..----------+----

5~'N': E~'TE/-------------_+--_'"=1D

~
I E/L'.-

~ ,~ ~MP;'.I

'u

----_._----'

"~~J741~-1
Q"~

1 "S7

u1-c

;1

~I Q

i

r-------------____-j.-_____________..!--ji--------_______

l.....-_ _ _ _ _ _ _ _

~!_l~, C

9. :,.

Q

L

R

I

- =-B

•

•

I

..

(BI

,_----------*-----------------------------------------------------------__
ec'

ID I\r(MI"? L

PiN G>A\£

....- - - - - - - - - - -

1

'''i

DATA

e

"",,~

_._.._LC

! ...... - '7A

I

7.<

- 7A

I '

--,-~D "L~/Q:~---'12""'iD""'L~,Q~-1
11 Cl

INDEX

51

-=-

':-':~9'

...______________________________~--~3"_i~;:

A

QI~12s

"~_,_,.__i

p.t. c039 (5 .'
I

1--------------------------------------------------.--.
~1_3_~,
ID COMPARATOR /
I'

r.::.o'"1',"".

II'

INDEx

-

•

7

6

5

"TIN\E OUT

S""NC. DElECT

WATCH

IX>G

3

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 9 of 14)

5-25/5-26

Serrice Infonaaticnl

iSBC215

J

5

D

I;::;A,-F
1l),I\l"~E

IDAT-D
IDA"i-C
IDAl"-B
IDAT-PI
IDI'<"1- ~

~D

{
J

)

•
t
~

~

~

::n::~.:,-a

DC.l

ci:' ~

12.(..11

Fe;

c

c

•
i

;

r---------~f_------------------------------_t_-------_+-'------I_

IDI£cCNCMPR/
Wf..':T DATA..

SERIAL - DESERIAL/ZER
ECC LOGIC

-

•

7

6

5

700
,ODe.

A

4

Figure 5-3. iSBC

215n~

Winchester Disk ControUer Schematic Diagram fSheet 7 of 14)

5-21/5-22

iSBC21&

•

7

5

•

•

D

70£
:;;DS

3CS

c

c

1

•

•

2G
y(~

J3-

~

":>

J4-

IDI'-r-0

Rl='

~2lC

1Zl

E
as
~
.....as

"C

2.

3
5Bi

45
,:c,

I~3EI2~+-~J~L~'~~/~-r;-__r-1
1~~13~~~_~r~c_.__'_J~_ _; -_ _~

.. _". 1M.

7

3C1.. 1-"-01- /
SB1..
C5RAM/

yB

CONTROL STORE tRAM

43

B

44

9
A.

41
42
39
40

37

~Ci

-

~3B

B~£I ••------------------------------------------------------------~----------~--

B
C
D

A

t.
lDAT-F

-

162035

•

7

6

5

1

..
~

1

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 6 of 14)

5-19/5-20

•

•

7

•

s

a

-

D

.e.

,I.

f~25 11~

........

I

6.

'i:JU73 ..

,

c

3

"t>~

~

,AD:l:'i
AtHZ
Af;Uil
AD?

AIWit
ADS

U85

D
1)

a

~

2l1li I>

Q

l' I ) ' " "

'a" D
I)

[J

P

-

.."

0

•

3-

USb

1)

a-'II
t~

~'

AOZ.
ADI

AN

q

""

17

'§

Q. IJ

J>

0 a.

B 1)
l'

•
Q

D

Q

D
1> 'SoTB

at "

1I

!U&b}L
•

IS

16

III

Ii

'

::fA1M.3
iAUIH

'D

~
U7b

7AIllS~?
'12

pJ3-"
.M-"

'9

:r

lADR-£
YADR-fO

IA:01t-A

'3

+5N

'" a

l~

UfO

'\Z

(I

"ML'S

Z~
3 I)

1

11

I

V~

S

1,CII

RPtl

I

5

It<.

12 1) I.JI:'4

1 .... Plt-3
lA\)R-~

lAD1{-5

I

I

74l57~

~

Q

R

'1

3

.

c-

~

c,.

tit
~ G
U35

!

~

lADR·3

I

:IADR-4

i!

LtDR-5

.3

•
t
Z

3

7<4 loS 1"38 q
Ii

4

6

8

:

3D] I-AIO wc.!

~B

5
6.

~r~

3C..1 I-lOR (I

1 A \J3b

R.f'C.3
It(

9 ~,

IAbR-2
:t A,1)it-\

G

c

1'1\

13
IZ
II
I•

~~

~

«
2

..,"'L'S.13S 3
..q
A

a

lS

6

5

!

~&A8

C 5 fI.t:it'Y
LS

w.8

..

:;

I(~I

lIAS
leAf!.

RP~ ItCt

3Ae,~~~

JlDCZOI

BAB
"18B, BI>B

'9"

-,

7

...s:::
>.
lIS

;0

PUc
W[)C

'I.'

.B{

E
I»

..s::

'lPB

to)

C)U\ liDS

II)

•

3BS,1~AS

lID

IZA8

\/I)( 2~1

BAS

c:.SJ

808,"188

WDC, 3111

aB8,~S

W'DC~

'Ke

PUI

lies

WDe

as

ICJCe.

l»

..s::

r-

Z

A

4

3

.

e
e
UI
r.tIS

•

Co)

12.
11

&'I

>
IIIJ

:;::

'WDC .",
WDC. lSI

(,

s

lice

wpc.

13

=
I

,.;Q

(3(:8

lIt.OC(le.!

ROC~SI

f

'-'&

Rl>c.ef1i1
RDC

~

i

"'k:&

z,w

"'JI>"

m
'l:i
:cD

3£8

IADR-~

,..

IS

-;::

>

-

16c038

7

E

SABa

<

•

c
c

~

~tZ£e

INTER.NN.. AI)[)ilESS DEc.oDE

-

1:

,

¢3'

C.5 MMIO!

,

tK
I

C:A.~

-5

(lADIH.~l)loDB.

lit"'",

It

+"'.N

ftPICJ

111

BC8

£M!Il +4\ BVTE/

,

1~

...

.B
+:I.

£tI!IiL . . WlE./ 1M:
ENBl 1.;0 rJ'fTE/ "M&

A

.3
"'"
¢l

,)4-7

ADR-f'fTF~

,rql"3'9

'IA.l)a-9

D

!~-3

J3--7

1~-'

:

V ..

«:'8

C

?q1.:53Z

u-R

..",cxl

.14-11

1tPI[
ttt

~~
l

ZAt

~ATE 5'Wst

"7

t=:.J3-n

1-S'I RPHI
I
Ito:: 3

A

31l..r7S'\.'"

5)

14t..S32

H~.

...,-

""I

:IAI)R-3

5

l,~

1....,.3
lADflt:-c
IADlt-1
IAI>*-GI

I

'.
7<4LS.

3

.~l\

I

t~~tZ

~

'"

..

ti~

RP'II

3

~

5~£>

AL E

B

+5"

f3
2-

4

X'ICY."r£/
~\

If i!

III: D "11L~373 Q :19

•

,

IAPR--S.

7.qS'~3

AO",

l),

~
7I\-D
Hi lADR-t:.

5)--0

A.l>~

7

rt 1) 'M.5373~ 16

H

ADn

~

:r~-F

Q '~ ZAPIiH:
Q

, "
1"3

-=

i

!>Ai-9'l

~

74lS32

s. lI73

ADl'S

,lZ

-""

f.qLS"e

;

~-

"

I

~
~

~l~~

"'IZ.'S

~.~

-=

~II
utt

,jt6K>

UM

9

i

!.J¥:/

..

"3

-<
0
E-t
:J
C)

£3

1

Figure 5-3. iSBC 215lM Winchester Disk Controller Schematic Diagram (Sheet 5 of 14)

5-17/5-18

iSBC215

•

•

7

s

•

3

+sv

+S'J

-+sv

•
CNTlR ~TI

nUTI

D

DAT-F/

PA.T-E/

D"T-tli
DAT-r:..j
I)A,T-B/
/)AT-A.!

Do\T-91

w..T- .e.;

?tI,EN/
ADR-i3{
ADR-IZi

50

ADR-ll/

ADR-1tIl1
>tACK!

C.

SOl

'/.,AO:'/

361

AtN/

c

bAS
A.DR~

Ff

A~-EI

ADlit-W
A,DR:-c/

aSI

APR-e,'

jiAi

A'Oft.-AI

1281
3.A!

ADQ:-9/

ADlt-BI

ADR-7/
ADW- 61

"DR-50;
A1)R- "1/

•

•

.Ai>R- 3/

Al>R-2/
ADR-I/

ADR-"I
SINTR-l
51NTR-2

SCI
Et.JBL SWAP BYTE.

PAr71

PAT-51

A

SCI

19

_LO;

16

-7<> "'::;

10j

B2
B3

I)

Bb

12

B7~

l

-1~:::

OAT-II
DAT-W

-74<

PI-

n <:

-'iC)

N>7

I

rA,......2".--/>oD-(,--+-..t-------t A.~

14::

ENSllO 8mi'

,

Z

AI3

~~

5
Eo
•• 7

T

Ai e

ADS
AD.q
AD3

3 Al
AT-6
Il)Al'-S

SC

28_

SQiI
'511

lOCI(

2.9 1

su
LOO::/

3DB
3DS
31>ti
3DS

BiZ 16 I~T-4
IS 15 IMT-3
lDAT-l

:14

ADZ

(,

~

ADI

...,

G

ADIJ

8 -.7 T

1"

51

~

8~S6 81 IT

5 A3

.... 13 lDAl-1

Of 8112 IP ....T-il
bDB;7~"IlDI

III

bPS,'lC1,856,a Bl.Il."\

A

SBe

I

DT/R

CONTROL PROCESSOR

PDENI

-

~
Z.6

p 1- bs«o;:
....~---i--:-Ie=AT-4{
t>AT-3/
DAT-2/

.-t-_ _~'(9 /11

5"2.7
;-

PAT-Ell

~

-

ADDR.ESS ¢. DATA LATCH

G

•

7

6

5

3

2.

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 4 of 14)

5-15/5-16

'!~;-

';;1

•

•

s

J

~N't!IUSS

ieEB.UE5T

'IIi

wa,'
20 I

•

3-

•

Z

I...
,.""
¢a

"'4a1

~I

4.f!I.:t

51/

441\1

521'

~A.t

I

tt.

LOC~I

&CU(J
e¥RNI

Pf-i~

tNITI

Pt-r"\

8\JSV/

P'-{'=:t

PH7

s.e

~

.,.
~

~

C

zl:,

\oilS

3 .....

.....

,...

5MMZ ell<

2
15~

~
f.4.

~!

17

A£N

~

51

ac.u..

Al>R-fFFF

X

,f

s~

S-

'9",
$

S4!

.a . 251
i)~l

a

Alowe

lit

AM.WC

.~

1: N IT/

I

8

T

lowe ~
MWTC

7'

100..7.

'M\\OC

Bi!':6B

itE5 B

.lORe.

106
.ceQ I..ClC

I:t.JTA

l3

5

l4

~

JU7Z~ ....6

I

5YSB

6

"'NY~T

CUt

OT/R.

.Ioa

PI>£N

5

I

.

.q
So

, £. A;f.N
Cl.\(
i

CEN

T

ALE
DEN

I~A'I;OW{I

e

J3-1'S
., J+iS

2

BMT-B

3

~

PIoiR R.ST/

5

I

WAKE' UP/

lA!

!;)AT-II

C

~

"_~SAB

r:.

4A8
'::>CS

I7..l

"'AS

ALE
f>:t::£P,jJ
DEN

~

~ 5

5

I)

&I
III

G.
A

8

I

\..1

z~

I~

.3

67

(fo

C-o
WR

I

0~
5

7

(\)

SR£QI
e,PRO/

>lIS
.s::

tIS

1

I

j

~B~St16

>,

I

b

At",

~

I

~LS139

I

2
3

"" Pt-'\b

~~

I

"

?lil!)]oq
,o. fit Q ~

usq

. Pl-l2a

~

Ub5

DA.T-f,J/

;>

'tiT/I?

17
16

,

US(,.

'¥/DC Itl/

lAl

.§.

t

"MlS"e

ZAI

-

~,sAB

!-IOfl:C/

.,.

.

~

1
41)1

E
eC...

MR DCI

~

iJ~

SAl

:0

:a
11

: .J+13
?!-c.~'WTCI

6V

•

$:

5A&;6Ae

~

xl

RP9
It::.

bel

""DB

.. .J3-13
'" 1"\-

7<111t.sOllS

-::2::-

5[.1

u

i

I!-

'BU'5 PRiORITVl
!.£L£CT

c

,.c

:

.azS9

6". 15M"
tt.iIT
a"" (B'R-Q
u"
e.US'f

-

R7

i~

u~

. 1.{')(.:K

s-

-

L_

1

4DI

il.

U! ...
~
'9 ~ Sl

g!
oj

:1t

02-

0

1

o·

\)"'3

~ Pt-3b

~
:;II
;)

"
)

~3S

-3a
-37
-.qll!
-39

-12

7- PI-~i

•

INT 7/
61
5/

~

;a

3/

-:::
...

2/
1/

tIS

INT 'II

E
Q.J
..c
0

~LS27.9

R
So

II)

E
:as
:as

<1.1

1

E

III

Q

1"3-

C.NTLR. Pt.'5T I

Q.J
III

40S

II)

..c
E-

i

0

5
4 ]UbS

A
581

RDC IS/

6

CHNlATTN

i

•

7

6

5

~

::J
..(

BuS CONTROL ( AR.BITRATION
iNTER.RUPT CONTROL

-

4BS

A

0

3

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 3 of 14)

5-13/5-14

iSBC 215

Service Information

.... sv

D

,
R'3
\Ot(

ADR-E/

."V'I'i.c'-....r(AI>ft-F!)

\
"U

I

.....---~

T

!

___

,

Il.

4C1.~BI

ADR-D/

I

Rf'Tl:
10K.

Z

I

RPIl:

.3

R1'>IZ

I

....-:. '''' I

T

ADR-9/

I

-'"

fI..?IZ

'"

10K

RPIZ
IO\;.

AI>i!:-8.I

T

I

16
I

-----J

~

AOR-7/

~'P\"3

RP'I~

~

A!);t-'V

•

ADR-3/

ADR-2/

ADR-I/

ADR-O/

1Ir¥13
I01{
t\l='13

I

"--

:.

;

-,

I

-~

5

lOt<.

7

~

19 ___....

!

_8

t
11,0
I

,

12

IbBIT S'(SBUS
I

PI-c2

5C.1

I APR-!J/

~C I

I .... D~0

'5

C\

-

!iATE

L..

b

I

_8

I
f I
I

It<
RPlt
II(

I

L..

\~

T

~

S\\I-f/JII

7

a

~

12

!>AT-E./
DAT-DI
~T-C.I

c

DoII\T-EV
DAT-Ai
~T-9'f

DAT-B!

IG

'(I

"3

zv;
lV2

....4-

2'1'1
1'1'3
Ie:
1'1'.04-

2Kl.

l

S"I-ill

11 ~'I
b
1M

e

I.

1\2

lS

r3

2'(4

IAI
3

1'1'1

5

,

MT-71

CAT-.o/
~T-SI

IE> tJA.T-4/

""

!>AT-V
t>Ai-iU"

DAT-I/

:7

~i-al/

3

t>AT-7/
DA.,.-6/
~T '5/
DAT-4J

•

lEi

2G

7"'1L'::o3c

1'9 l'

~e.

74 LS'2.44

5'-1-71
SW-6/
5101-5/
.21N--4/
SW-3/
'S'W-2/
SW-f I
5W-1/J/

7"'lL'SIO
10_

U9'5

17

C. 1,-,,1

10j

q

.::.....3

2'1./1
16
1'1'1

t'(" 5

IA2
II
I

\'(2 'f.
9
Z't'l

6 fA?

1'(3

e

13

1M

\"1'4

2A2

2I'Z

~

2G.

\6

~\9

-'1'1

''''1

IZ
7

~T-3/

DAT-2/
CAT-I!
DAT- rI/

DA-r- \ /
D"T-01
WAKE up/
'" BIT 5VS

II

-~

9
7'"'106

6

1'1'4

r-

\0

~B

~?II I

E

+S>f

BuSI

3A8, '5DB
50B

A

WA,l(E UP A.'1D ADDRESS DECODE

IK
74L

ZY3

'3

D,r..T-FI

OeD

:~

5111·2/1

I

_ 20 I

JAl

"'I
IA2.
il
I
/:,

SW-9/

3

'2.'14
18
1'0

2M

ZG.
1'19

~
I
./

I

'"5
;;>

74L5Z44-

T

~W-l/'

I

..............-... 11

Roll

u'B

i7

650

T

I

,

T

~~_3

~~

5'wJ-3/

I

I

+5v
RIO

5'.;-"4., T ~

RPI3
10K

SW-"',

:~IO

!

I

S'I.t,K I
'SW-BI

l~
II

/ ' " 14 I

r

SIli-DI

12RU7 9

.....---. .. I'> !
T I
I

'"

..,

.-

5-.1-S/

1
I
IS """-,..\31
T
I
J

'Sw-EI

.-

t

6

RPII

SIN-oIl

....-: 16 I

T

!4L5244

Sw-+!

1

I

RP'l3
10K

I

IDNC./

1
I
I

1

8 BIT-I/O

'Sw-&)

I
--1

I
17
I

I tRt-'!3
101(.

5vr9f I

i

IT'-' --~
1.1{

I '5
i
I
t 6
I

4

J

~
~
'

k~
lz.JIU76 II

-,., -,52.
1"'3 1
5"WJ-7/ 1

\8-"'"

I
I

RI3
10f(.

A

-

.:--

lOt(

I

SVJ-Aj I

1

8

1011(

At>~-5!

I
!

....-: 9

.,

:~

T

1\ I

I

-

i!j~

~

10K

At>R.-6/

5W-Bf

I
17 ~"",---..... IO I
I
.J
I

18

RPIZ

1

~i¥

~~
I:. tlU78

I
!

I

7

5W-D1

'5o*'CI 1

I

I
__,... l2 I

I

i<;P'12
lOt:.

1

.....---.... \~ I

15

c

I

Sw.-Ej

I

~

10K.

ADR-A/

1
I

I

4

T

1

J

IOJ(.

Sow-Fj

1

r

I '""

ADR-Bl

I

,
15

I

I 3

A1)R·r:.;

lb

D

7"ILS~bb (I" P!.ACES)

5\
r-----,

ADR-f"/

5

•

II

I

I
3

J

2

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 2 of 14)

5-11/5-12

Service IDformation

iSBC 215

•

I

•

I

7

I

s

t

4

-- -

J
3CB

r-------------------------------------~q7

4C8

~-----------------Ri4

r=:Ji-50

D

-

c

- - - ......

c

aD

\q-

1o_~\

02.3\

f#. tJ'''''i'ic
!!. ~

.A

IIF

Y.Ao

'"J

ill

::.-

~

EI~@~----~1~------4~~~J~
+5V

PI- 3 "3

74LS27"J

B

'"

1J'lI, 85,1M)

741-'=>373

)0

ZO

014

75107..,,"1

14

UI"

MC3'11S7

8

If.

10

20

13

GND

+IlV
Llt.K., '37,96

+t2V

8287

z
o

r--

A

~

z..
I

~ ~ ~

~15~

l\.iCiTE"5: Ot...lLE5'50

•

I

VA.I..-l.JES bSI:S. 1!.J 0I-VV'6,

~I"'OE

7

<
~

lU M\CJi"DFI'-IIeb~

~ w,

15%

"'5f"EGIFler>.

I

6

I

s

,

J

I

1

I

1

Figure 5-3. iSBC 215™ Winchester Disk Controller Schematic Diagram (Sheet 1 of 14)

5-9/5-10

iSBC 215

3

D

c

c

•

•

SEE

~ PLKE ITEM 92 ON SOLDER ~\DE rn: ?'IN/I. ~\

A

ill

:r._IU. _ _

[IJ

.. - * 1 "

L

-

~IGH

CHARACTERS,

ApPROX

1 __

-

NHER£ SI-\ONN.

rMRl( WITH A.SS'( Pl'5H NO. AND REV LEVEL USING PERMANENT, NON-CON-

DUCTI\IE c:DNTRASl1NG CCLOP. AND .12. H!GI-I. O1A.AACTERS.
A5'i'1 PARr NO. IS 162037-)I(XlC. 11-115 DRAWING AND PfL ~ i14

t.PPROXIMto..''E.IY WHERE. ~. LIo,&L tJ\U'5r \>.IO'T IOOCI-I 1..c. ~.
H'lST1lLL "TAPE I ITEM "', UI'CER C~Y5TAL~ ITEM 5":).
CONTRASTING

SEPARATE

5

*"'--1
J

Figure 5-2. iSBC 215™ Winchester Disk Controller Parts Location Diagram

5-7/5-8

8t:s: . . . IIl...&..•. . . .CII__

W9

•

W14
/

,~i
CI

/
I

D

;---(e4',
'-""

W22

WAKE-lP ADDRESS AND HOST
PROCESSOR SElECTION SWITCH
51 .MID 52 FUNCTIONS
SWITCH

81-1
$1 ..2

c

51-3
51-4

FUNCTIOfrI
WUAUF
WUA BIlE
WUA BIt D
WUABilC
WUA Bil8
wuaBRA

51-5

MM_'

51-4

51 ..1

S1--8

2-1

st.;..J
&2-3

WUA . . .
SYStEil DATA BUS
'110 PORT

WUA.'7

WUA . . .
. . BItS

S2-4
S2-5
52-6

",,4
WUA _'3

S2-1
82...
52....

•

c

WUA8112
wua8ft1
WUA BiI D

52-10

•

W23

W20
SEE

A

~ tNSTIlt.LL tAPE liTEM " . UN)ER C~"'5TALJ lTEM

SEPARATE

PARTS

U ST

5'}.

4. WORK.MANSHIP PER ENGR'G SPEC 99-OC::07-00L
~ IMfU( WITH ASS'( VENOOR i.D. USING PERtN.NENT, NON-CJNDUCTI\IE
CClNTRASTlNS COLOR AND .12 I·UGH CHARAC'TERS, A~ WHERE SIoIDWN.
~ foMRK WITH ASS( Dl\S~ NO. AND REV LEVEL lJSlNG Pf:RMANENT, NON - CON0l..CTl\IE ~NG CCJU:)R AND .12 HIGH CHo\AA<:TfR5.
I. NiSY FNUNO. IS 1Ei2.037-OO1. THIS DRAWINS AND PfL /'tR£ ~ING ro:UMENiS.

-

NOTES,

UMlE$ OtHERWISE. SPECIFIeD

•

7

6

5

•
Figure 5-1. iSBC 215™ Controller Jumpers and Switch LocatiODB

5-5/5-6

•

APPENDIX A HANDSHAKE
SEQUENCES AND EXAMPLE HOST
PROCESSOR DISK CONTROL PROGRAM
INTRODUCTION
The information contained in this appendix is
provided to illustrate various methods of implementing data transfers between one or more host processors and the iSBC 215 controller. The flow charts
illustrate the handshake procedures required between a host processor and the controller. User
sequences are shown both for single and multi-user
processing environments. A sequence for initiating
overlapped seeks is also given.

•

The program listing provides an example program
that a host processor would run to direct data transfer between the host and the iSBC 215 controller.
The program is written in MCS-86™ Macro Assembler language. It illustrates the data structures that
the iSBC 215 controller requires and shows a few
simple disk operations drivers.

SINGLE USER SEQUENCE
WITH OVERLAPPING SEEKS
The flow chart in Figure A-2 shows the handshake
sequence between a single host processor and the
controller for data transfer operations that user overlapping seeks.

MULTI-USER SEQUENCE
The flow chart in Figure A-3 shows the handshake
sequence between a host processor and the controller
when more than one processor is transferring data
between the disk drives through the same controller
(multi-processor environment). Note that in this case
the Command Semaphore byte in the Controller
Invocation Block is also used. Overlapping seeks in
a multi-processor environment are implemented the
same as in single processor environments.

SINGLE USER SEQUENCE

•

The flow chart in Figure A-I shows the handshake
sequence between a single host processor and the
controller for basic data transfer operations (with no
overlapping seeks). Note that communication between the host and the controller is through the
Status Semaphore and Operation Status bytes of the
Controller Invocation Block.

EXAMPLE HOST PROCESSOR
DISK CONTROL PROGRAM
The following program example is for a single user
environment. Some of the techniques illustrated in
the flow charts in this appendix are implemented in
this program, but not all.

•
•

A-I

Appendix A

iSBC 215

•
SET UP

}

1/0 PARAMETER

BLOCK

WRITE '01' TO
WAKE-UP 1/0
PORT

Set up command and parameters for desired data
transfer operation.

} Iniliate data Iran,fer op.,.lion.

NO

NO

SET
ST. SEMA.
- 0

l

Check to see if controller has completed operation
(STATUS SEMAPHORE byte is non-zero).

}

Check OPERATION STATUS byte to see if operation
was completed without error.

•
•

YES

SET
ST. SEMA.
- 0

FINISH

} Chock E",,, Stalu, buffer and p,o,""" ,"",.Its.

FINISH

Figure A-I. Flow Chart for Single User Handshake Sequence Without Overlapping Seeks

A-2

•
•

Appendix A

iSBC 215

•

SET UP
110 PARAMETER
BLOCK

} Set Up comma nd and parameters f m seek operatio n .

} Initi.te d.ta tmnsf" op".tion.

BRANCH TO
OTHER
PROCESSING
TASKS

/

•

} Perlonn oth'" processing tasks.
OP COMPLETE INTERRUPT

NO

SET
ST. SEMA.
o 0

YES

Set u~ command and parameters for next seek
} operatIOn.

SET 1/0 PARAMETER BLOCK FOR
NEXT OPERATION;
SET ST. SEMA 0

•
•

Respond to operation complete interrupt; Check
} OPERATION STATUS byte to see if operation was
completed without error.

FINISH

WRITE '01' TO
WAKE-UP
1/0 PORT

} Initiate next data transf", o"",.tion.

BRANCH TO
OTHER PROCESSING TASKS

/

} Perlonn oth" pmcessing tasks.
OP COMPLETE INTERRUPT

NO

SET
ST. SEMA.
=0

Respond to operation complete interrupt; check
} OPERA nON STATUS byte to see if operation was
completed without error.

YES

SET ST. SEMA.
= 0; BRANCH
TO OTHER PROCESSING TASK

} Continue with oth" processing tasks.
FINISH

•

Figure A-2. Flow Chart for Single User Handshake Sequence With Overlapping Seeks

A-3

iSBC 215·

Appendix A

•
SEEK COMPLETE INTERRUPT

l

NO

Respond to seek complete interrupt for first opera
tion; check status buffer to determine if seek opera
tion was completed without error.

YES

•

SET
ST. SEMA.
" 0
GO TO SEEK
ERROR HANDLING
ROUTINE

BRANCH TO
OTHER PROCESSING TASKS

/

SEEK COMPLETE INTERRUPT

NO

SET
ST. SEMA.
" 0

l

Respond to seek complete interrupt for second opera
tion; check status buffer to determine if seek operation was completed without error.

•

YES

SET
ST. SEMA.
" 0

FINISH

GO TO SEEK
ERROR HANDLING
ROUTINE

FINISH

Figure A-2. Flow Chart for Single User Handshake Sequence With Overlapping Seeks (Continued)

A-4

•
•

Appendix A

iSBC 215

•

LOCK THE
MULTIBUS'·
INTERFACE

UNLOCK
MULTIBUS'·
INTERFACE

}
NO

Obtain control of disk controller. Test and set COM·
MAND SEMAPHORE byte.

YES

SET COMM. SEMA.
TO NON-ZERO
AND UNLOCK
MULTIBUS'· INTER.

•
•

B

Set up command and parameters for desired data
} transfer operation.

SET UP
I/O PARAMETER
BLOCK

WRITE '01' TO
WAKE-UP 1/0
PORT

} Initiat, data t,-an,f" opemtion,

BRANCH TO
OTHER PROCESSING TASKS

} Continu, with othe< proc""ing t.,ka,

/ ' OP COMPLETE INTERRUPT

•

NO

SET
ST. SEMA.
o 0

Respond to operation complete interrupt; check
} OPERATION STATUS byte to see if operation was
completed without error.

YES

SET
ST. SEMA.
o

} Relinquiah controll", of disk controll"',

0

A

FINISH

•

Figure A-3. Flow Chart for Multi-User Handshake Sequence

A·5

Appendix A

iSBC 215

•
YES

SET
COMM. SEMA.
= 0

•

FINISH

•
•
Figure A-3. Flow Chart for Multi-User Handshake Sequence (Continued)

A-6

•

Appendix A

iSBC 215

•

10/27/80

tSBC 215 8" WINCHESTER DISK CONTROLLER PROGRAMMING EXAMPLE

MCS-86 MACRO ASSEMBLER

PAGE

ISIS-II MCS-86 MACRO ASSEMBLER V2.1 ASSEMBLY OF MODULE EXMPRG
OBJECT MODULE PLACED IN :FI:EXMPRG.OBJ
ASSEMBLER INVOKED BY:
ASM8n :FI:EXMPRG.MMO DATR(IO/2l18D) XREF OEBUG
LOC

LINE

OBJ

SOURCr:
$PAGELENGTH(85) PAGEWIDTH(115) TITLE(iSBC 215 8" WINCHESTER DISK CONTROLLER PROG
RAMMING EXAMPLE) XREF

4

5
6
7
8
9
10
II
12
13
14
15
16
17
18
19
20
2I
22
23
24
25
26
27
28
29
30
31
32
33

•
•

34

=1

35
36
37 +1
38 +1

,.

.""""""""""."", •• ,."""."""""" ••••••• """,,##,#"
.,

iSBC 215

DISK CONTROLLER PROGRAMMING EXAMPLE

"

".""",.",#,#,###, •• ##.# •••• " •• """., •••• #.".",".# •• ".""""
THIS PROGRAM ILLUSTRATES THE DATA STRUCTURES REQUIRED BY THE llsc 215
DISK CONTROLLER. A FEW SIMPLE DISK OPERATION DRIVERS ARE ALSO SHOWN.
THE HARDWARE CONFIGURATION SUPPORTED IS:
I.
2.
3.
4.
5.

iSHC 86/12A HOST CPU
20 BIT SYSTEM MEMORY ADDRESS WIDTH
16 BIT SYSTEM DATA BUS WIDTH
16 HIT SYSTEM lID ADDRESS WIDTH
iSBC 215
a. WAKE UP ADDRESS ( WUA ) AT I/O PORT 0635H
b.
INTERRUPT 5
c.
-12 VOLTS INPUT
d.
RELINQUISH BUS CONTROL ON ANY REQUEST

FOR (2), PROGRAMMING OF DATA TRANSFERS MUST TAKE THIS INTO ACCOUNT,e.g. THERE
IS NO WRAPAROUND IN SEGMENTS IF MORE THAN 64K BYTES ARE TRANSFERRED.
iSSC 215 SWITCH AND

JU~PER

SETTINGS:

FOR (3), SWITCH 52-1 IS CLOSED.
FOR (4), SWITCH S2-2 IS CLOSED.
FOR (Sa), SWITCHES SI-6,SI-7,S2-5,S2-6,S2-8, AND S2-10 ARE CLOSED, THE
RE~AINING ADDRESS SELECT SWITCHES ARE OPEN.
FOR (5b), WI9-C CONNECTS TO WI9-5; INTERRUPT VECTORS MUST SE SET UP PROPERLY.
FOR (5c), W21-1 CONNECTS TO W21-3
FOR (5d), W2-1 CONNECTS TO W2-2.
$INCLUDE(:FI:COMBLK.~MD)

$EJECT TITLE(iSBC 215 COMMUNICATION BLOCKS)

•
•

A-7

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

iSBC 215 COMMUNICATION BLOCKS

LOC

LINE

OBJ

0635

0000
0000 01
0001 00
0002 0000----

0000
0000 01
0001 00
00112 0400----

0006
0008
0009
OOOA

0000
01
00
OEOO----

OOOE
OOOE 0400

A-8

=I
=1
=1
=I
=1
=1
=1
=1
=I
=1
=1
=I
=I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1

39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 +1

10/27/80

PAGE

SOURCE

COMMUNICATION BLOCKS

I.

•

S CB

THE SCB TELLS THE 8089 ON THE iSBC 215 THE WIDTH OF THE 8089's LOCAL
BUS AND POINTS TO THE CCB.

***********************************************************************

THE MEMORY ADDRESS OF THE SCB IS EQUAL TO THE 1/0 WAKE-UP ADDRESS
*
( WUA ) OF THE iSBC 215 MULTIPLIED BY 16.
*
***********************************************************************
WUA

EQU

0635H

WAKE-UP ADDRESS

I/O PORT NUMBER

SCBSEG

SEGMENT AT WUA

PUTS SCB AT ADDRESS 06350H

SCB
SOC
CCBPTR

LABEL
DB
DB
DO

TELL 8089 IT IS ON A 16 BIT LOCAL BUS
RESERVED
POINTER (SEGMENT + OFFSET) TO CCB

SCBSEG

ENDS

II.

FAR
01H
OOH
CCB

CCB

•

THIS BLOCK CONTAINS THE CONTROL BYTES, BUSY FLAGS, AND POINTERS TO THE
STARTING ADDRESSES OF THE CHANNEL PROGRAMS FOR THE 8089.
CCBSEG

SEGMENT

CCB
CCWI
BSYFLGI
CHIPTR

LABEL
DB
DB
DD

DW
CCW2
DB
BSYFLG2 DB
CH2PTR DD
CH2PC

LABEL
DW

CCBSEG

ENDS

$EJECT

CCB MUST BE CONTIGUOUS
FAR
01H
OOH
CHIPC
OOOOH
OIH
OOH
CH2PC
FAR
0004H

START CH. 1 PROGRAM IN LOCAL MEMORY
CH. 1 BUSY FLAG
POINTER TO FIFTH BYTE OF CIB, WHICH
CONTAINS STARTING ADDRESS OF CH. I
FIRMWARE PROGRAM
RESERVED
START CH. 2 PROGRAM IN LOCAL MEMORY
CH. 2 BUSY FLAG
POINTER TO LAST WORD OF CCB, WHICH
CONTAIN S ST ART ING ADD RESS OF CH. 2
FIRMWARE PROGRAM

•

STARTING ADDRESS OF CH. 2 PROGRAM

•
•

iSBC 215

•

Appendix A

HCS-86 MACRO ASSEMBLER

iSSC 215 COMMUNICATION BLOCKS

Loe

LINE

OSJ

=1
=1
=

=1
=1
=1
=

0000
0000
0001
0002
0003
0004
0004
0008
OOOA
OOOC

00
00
00
00
00000000
0000
00000000

•
•

1

0000
0000
0004
0008
OOOA
OOOB
OOOC
OOOE
0010
00 11
0012
0014
0016
001A

00000000
00000000
0000
00
00
0000
0000
00
00
0000
0000
00000000
00000000

1

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 +1
145 +1

10/27/80

PAGE

SOURCE
III.

CIB
THIS BLOCK CONTAINS GENERAL PURPOSE COMMAND AND STATUS BYTES, SEMAPHORES, AND POINTERS TO ALLOW THE USE OF THE iSBC 215 IN A MULTIPROCESSOR/MULTI-PROCESSING SYSTEM.

bIBSEG

SEGMENT

CIB
C lBCrlD
OPSTS
CMDSEfl
STSSEM
CH1PC

LABEL
DB
DB
DB
DB
LABEL
DO
IOPBOFF OW
IOPBSG
OW
DO

CIBSEG
IV.

; CIS MUST BE CONTIGUOUS
FAR
OOH
DOH
DOH
DOH
FAR
00 DOH
OFFSET IOPB
IOPBSEG
OOOOH

CIS COMMAND BYTE NOT USED BY iSBC 215
CIB STATUS BYTE IS USED BY iSBC 215
COMMAND BYTE SEMAPHORE
STATUS BYTE SEMAPHORE
STARTING ADDRESS OF CH.
POINTER TO IOP8

1 PROGRAM

RESERVED

ENDS
IOPB
THIS BLOCK CONTAINS THE DEVICE DEPENDENT CONTROL INFORMATION FOR THE
iSBC 215 CONTROLLER.

IOPBSEG SEGHENT

IOPB MUST BE CONTIGUOUS

,

IOPB
ACTCNT
DEVCOD
UNIT
FUNC
MODIFY
CILNDR
HEAD
SECTOR
BUFOFF
BUFSEG
REQCNT

LABEL
DO
DO
OW
DB
DB
OW
OW
DB
DB
OW
OW
DO
DO

FAR
OOOOH
OOOOH
OOOOH
DOH
DOH
OOOOH
00 DOH
DOH
DOH
OOOOH
00 DOH
OOOOH
00 DOH

RESERVED
ACTUAL TRANSFER COUNT (32 BIT INTEGER)
DEVICE CODE (OH-WINCHESTER 0IH-FLOPPY)
UNIT NUMBER (0 (= UNIT (= 3)
FUNCTION CODE (0 (= FUNCTION (= OFH)
MODIFIER WORD
CYLINDER NUMBER
HEAD NUMBER
SECTOR NUUBER
POINTER TO DATA BUFFER
REQUESTED TRANSFER COUNT (INTEGER)
RESERVED

IOPBSEG ENDS

,

$INCLUDE(:F1:INITBL.MMD)
$EJECT TITLE(DISK DRIVE INITIALIZATION TABLES)

•
•
A-9

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

DISK DRIVE INITIALIZATION TABLES

LOC

LINE

OBJ
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I

=1
= I

0000
0002
0003
0004
0005
0007

0001
04
00
IF
0001
05

0008
OOOA
OOOB
OOOC
0000
OOOF

0001
02
00
11

0002
05

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
-I

=1
=1
-I
-I

0010
0012
0013
0014
0015
0017

0000
00
00
00
0000
00

0018
OOIA
OOIB
ODIC
0010
OOIF

0000
00
00
00
0000
00

178
179
180
181
182
183
184
185
186
187

=1
=1
-I
-I
-I

-I
-I
=1

-I
-I
-I

- IF A DRIVE IS NOT PRESENT, ITS INITIALIZATION TABLE MUST BE ALL ZEROES.
8 " WINCHESTER HARD DISK DRIVES
1

BYTES PER SECTOR

1

MAXIMUM SECTORS PER TRACK

1

1---------------------+--------------------------------I
128
54
1

1

256
512
1024

1

1
1

INITBLSEG

1

1

31
17

1

9

1

SEGMENT

DRIVE #0 ---SHUGART MODEL SAI004 (10.6 MEGABYTES STORAGE)
DW
DB
DB
DB
OW
DB

256

NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER

4

o
31
256
5

OF
OF
OF
OF
OF
OF

CYLINDERS
FIXED READ/WRITE SURFACES
REMOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
ALTERNATE CYLINDERS

DRIVE #2

256
2

o
17
512
5

•

NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER

OF
OF
OF
OF
OF
OF

CYLINDERS
FIXED READ/WRITE SURFACES
REMOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
ALTERNATE CYLINDERS

NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER

OF
OF
OF
OF
OF
OF

CYLINDERS
FIXED READ/WRITE SURFACES
REMOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
ALTERNATE CYLINDERS

NUMBER
NUMBER
NUMBER
NUMBER
NUMBER
NUMBER

OF
OF
OF
OF
OF
OF

CYLINDERS
FIXED READ/WRITE SURFACES
REMOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
ALTERNATE CYLINDERS

NONEXISTENT

191

200
201
202
203
204
205
206
207
208 +1

•

DRIVE #1 ---SHUGART MODEL SAI002 (5.3 MEGABYTES STORAGE)

189
190
193
194
195
196
197
198
199

•

THIS SEGMENT CONTAINS THE DRIVE CONFIGURATION DATA TABLES THAT ARE USED
BY THE INITIALIZATION ROUTINE. THEY MUST BE MODIFIED TO REFLECT THE
PARTICULAR DRIVES BEING USED WITH THE iSBC 215 DISK CONTROLLER.

188

-I
-I

=1

DISK DRIVE INITIALIZATION PARAMETER TABLES

DW
DB
DB
DB
OW
DB

192

-I

PAGE

SOURCE

177

-I

-I

A-lO

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176

10/27/80

OW
DB
DB
DB
OW
DB
DRIVE #3
DW
DB
DB
DB
OW
DB
$EJECT

OOOOH
DOH
DOH
DOH
OOOOH
DOH

•

NONEXISTENT
00 DOH
DOH
DOH
DOH
OOOOH
DOH

•
•

Appendix A

•

iSBC 215

MCS-86 HACRO ASSEMBLER
LOC

DISK DItIVE INITIALIZATION TABLES

OBJ

LINE
~I
~I

~I

~I

I
=1

~

~I

=1
~I

0020
0022
0023
0024
0025
0027

•
•

0028
002A
002B
002C
0020
002F

0030
0032
0033
0034
0035
0037

0038
003A
003B
003C
0030

4000
00
02
IA
0001
01

4DOO
00

02
IA
8000
00

0000
00
00
00
0000
00

0000
00
00
00
0000

=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=I

209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238

239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260 +1
261 +1

10/27/80

PAGE

SOURCE

.............. '" .......................................
8"

'0

FLEXIBLE

••••••••••••••••••

0

••

DISK DRIVES
0

••••••••••••••••••••••••••••••••

MAXIMUM SECTORS PER TRACK
1 BYTES PER SECTOR
1
1
1---------------------+--------------------------------I
128
26 (FM)
1
1
1
256
26 (MFM)
1
1
1
512
15 (MFM)
1
1
1
1024
8
(MFH)
1
1
1
•••••••••••••••••••••••••••••••••••••••••••

0

••••••••••••

"-----------------------------------------------------------------------------DRIVE 110 ---SHUGART MODEL 850
DW
DB
DB
DB
DII

DB

77

a

2
26
256
01

DRIVE III ---SHUGART MODEL 850
DW
DB
DB
DB
OW
DB
DRIVE 112
DI,
DB
DB
DB
Oil
DB
DRIVS 113
OW
DB
DR
DB
Oil
DR
INITRLSEG

77

a

2
26
128
00

(1.0 MEGAByn;S STORAGE)
NUMBER
NUMBER
NUI1BER
NUMBER
NUMBER
IIFM( I)

OF CYLINDERS
OF FIXED READ/WRITE SURFACES
OF REMOVABLE R/W SURFACES
OF SE CTORS PER TRACK
OF BYTES PER SE CTOR
OR FM(O) RECORDING MODE

(1.0 ) IIEGABYTES STORAGE)
NUMBER
NmlBER
NUMBER
NUMBER
NUMBER
HFII (I)

OF
OF
OF
OF
OF
OR

CYLINDERS
FIXED READ/WRITE SURFACES
REMOVABLE R/II SURFACES
SE CTORS PER TRACK
BYTES PER SECTOR
FH(O) RECORDING MODE

NUMBER
NUMBER
NUIIBER
NU~IB ER
NUMBER
MFM( I)

OF
OF
OF
OF
OF
OR

CYLINDERS
FIXED READ /WRITE SURFACES
REMOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
FM(O) RECORDING MODE

NUMBER
NUMBER
NUMBER
NUilBER
NUI1BER
HFll( I)

OF
OF
OF
OF
OF
OR

CYLINDERS
FIXED READ/WRITE SURFACES
RE/IOVABLE R/W SURFACES
SECTORS PER TRACK
BYTES PER SECTOR
FM(O) RECORDING MODE

NONEXISTENT
OOOOH
DOH
DOH
DOH
OOOOH
OOH
NONEXISTENT
00 DOH
DOH
OOH
DOH
OOOOH
DOH
ENDS

$INCLUDE( :FI :DATSEG.IIMD)
$EJECT TITLE(DATA SEGMENT)

•
•

A-ll

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

DATA SEGMENT

LOC

LINE

OBJ

=1
~1

:1

=1
=1
=1
=1
=1
=1
:1

=1
=1
=

1

=1
=1
=1
=1
=1
=1
0000
0000
0001
0002
0003

:1
= 1

00
00
00
00

=1
=1
=1
= 1
=

1

:1

=1
0004

0004
0005
0006
00 () 7

=

00
00
00
00

1

=1

=1
=1
=1
= 1

0008
0008
0009
OOOA
0008

00
00
00
00

=1
=1
=1
=1
=1
=1
=1
=

I

=1
=1
OOOC
OOOE
DOOF
0011
0012
0013
0015
0016
0017

0000
00
0000
00
00
0000
DO
00
00

=1
=

1

=1
=1
=1
= 1

=1
=1
=1
=

1

= 1

=1
=1
=1
0018 00

=1

0019 90

=1
=1
=1

001A

A-12

262
263
264
265
266
267
268
269
270
271
272

10/27/80

SOURCE

DATA SEGMENT

•

;
DATASEG SEGMENT

THIS SEGMENT CONTAINS VARIOUS DATA THAT ARE USED BY THE iSBC 215 DRIVER
SOFTWARE_

273

- THE FLAGS ARE SET BY THE INTERRUPT SERVICE ROUTINE, AND ARE COPIES OF THE
CIB STATUS POSTED BY THE iSBC 215.
THE ROUTINES THAT USE THE FLAGS ARE
RESPONSIBLE FOR CLEARING THEM AFTER USE.

274
275
276

277
278
279
280
281
282
283
284
285
280
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316

PUBLIC

OPCMP,SKCMP,PKCHG,ERRSTS

OPERATION COMPLETE FLAGS
;
OPC;,!P
OPCMPO
OPCHP 1
OPCMP2
OPO!P3

LABEL
DB
DB
DB
DB

BYTE
DOH
DOH
DOl!
OOH

OPERATION
OPERATION
OPERATION
OPERATION

COMPLETE
COMPLETE
COMPLETE
COMPLETE

S KCt!P
SKC'IPO
SKCMPI
SKCMP2
SKCHP3

UNIT
UNIT
UNIT
UNIT

LAB EL
DB
DB
DB
DB

BYTE
OOH
OOH
DOH
OOH

SEEK
SEEK
SEEK
SEEK

COMPLETE
COMPLETE
COMPLETE
COMPLETE

PACK
PACK
PACK
PACK

CHANGE
CHANGE
CHANGE
CHANGE

ON
ON
ON
ON

UNIT
UNIT
UNIT
UNIT

a

•

PACK CHANGE FLAGS
PKCHG
PKCHGO
PKCHG 1
PKCHG2
PKCHG3

LABEL
DB
DB
DB
DB

BYTE
OOH
DOH
DOH
DOH

ON
ON
ON
ON

UNIT 0
UNIT
UNIT
UNIT

ERROR STATUS BLOCK
(LOADED FROM CONTROLLER BY ERROR HANDLER)
ERRSTS
SFERST
DESCYL
DESHD
DES SEC
ACTCYL
ACTHD
ACTSEC
NMRTRY

317

ow
DB
DW
DB
DB

Ol,
DB
DB
DB

OOOOH
OOH
OOOOH
DOH
DOH
OOOOH
OOH
OOH
0011

ERROR STATUS WORD
SOFT ERROR STATUS BYTE
DESIRED CYLINDER
DESIRED HEAD
DESIRED SECTOR
ACTUAL CYLINDER + FLAG BITS
ACTUAL HEAD
ACTUAL SECTOR
NUMBER OF RETRIES MADE

LAST OPERATION COHPLETE BYTE
(COPIED FROM CIB BY WAIT215)

318

319
320
321

ON
ON
ON
ON

SEEK COMPLETE FLAGS

LSTSTS

DR

DOH

1

322
323
324

ENDDAT

=1
=1

325
326

DATASEG ENDS

=1

327
328 +1
329 +1

$INCLUDE(:Fl:USER.MMD)
$EJECT TITLE(SYSTEM DEPENDENT INITIALIZATION)

=

PAGE

,

EVEN
LABEL

FAR

END OF DATA SEGMENT

•
•
•

iSBC 215

•

MCS-86 MACRO ASSEMBLER

SYSTEM DEPENDENT INITIALIZATION

LOC

LINE

OBJ

0005

•

Appendix A

0094
0094 0000
0096 0000

0000 (64
00

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365

10/27/80

PAGE

SOURCE

SYSTEM DEPENDENT INITIALIZATION

THIS ROUTINE SETS UP THE INTERRUPT VECTOR FOR AN iSBC 86/12A CPU
RUNNING UNDER THE iSBC 957A INTERFACE/EXECUTION PACKAGE.
- TRE 8259 INTERRUPT CONTROLLER AND OTHER INITIALZATIONS ARE PERFORMED
BY THE iSBC 957A FIRMWARE.

INTERRUPT VECTOR DEFINITION
INTRPT

EQU

SEGOOOO SEGMENT AT OOOOR

INTRIP
INTRCS

,

ORG

80H + 4*INTRPT

OW

OOOOR
OOOOH

Oil

iSBC 220 INTERRUPT NUMBER
INTERRUPT VECTORS ARE FROM ABSOLUTE
ADDRESSES OOOOOR TO OOFFOR
LOCATION OF INTERRUPT VECTOR WITH
iSBC 957A FIRMWARE
- INSTRUCTION POINTER
- CODE SEGMENT

SEGOOOO ENDS
STACK ALLOCATION
STACK

SEGMENT

STACK SEGMENT

DB

64 DUP(OOH)

ENDSTK

LABEL

FAR

STACK

ENDS

ALLOW 64 BYTES FOR STACK

)

•

0040

0000

•

0000
0001
0004
0006
0009
OOOC
OOOE
0014
001A
001C
001E
0020
0021

FA
B8---8EDO
BC4000
B80000
8ED8
C70694003D02
C7069600---E4C2
24DF
E6C2
FB
CC

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
-1

=1
=1

=1

•

366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404 +1
405 +1

,

,

STACK AND INTERRUPT CONFIGURATION ROUTINE
USERSEG SEGMENT
PUBLIC
ASSUME
CONFIG

CONFIG
DS:SEGOOOO

PROC FAR
CLI
MOV
MOV
MOV
MOV
MOV
MOV
1I0V
IN
AND
OUT

AX,STACK
SS,AX
SP,OFFSET ENDSTK
AX,OOOOR
DS,AX
INTRIP,OFFSET INT215
INTRCS,SEG INT215
AL,OC2R
AL,11011111B
OC2H,AL

STI

,
CONFIG

INT

; DISABLE INTERRUPTS WRILE SETTING UP
;;; SET UP STACK
GET POINTER TO SEGMENT OOOOR
SET UP INTERRUPT VECTOR
INPUT INTERRUPT MASK FROM 8259
ENABLE INTERRUPT 5
WRITE NEW MASK OUT TO 8259
ENABLE INTERRUPTS
GO TO MONITOR

ENDP

USERSEG ENDS
SBC215DRIVER

,

SEGMENT

ASSUME CS:SBC215DRIVER

$INCLUDE(:Fl:RESET.MMD)
$EJECT TITLE(CONTROLLER RESET ROUTINE)

A-13

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

CONTROLLER RESET ROUTIN!

LOC

LINE

OBJ

0000

so

0000
0001
0002
0003
0004

53
51
52
1E

0005
0008
OOOA
0010
0016

B83506
8ED8
C70600000100
C70602000000
C7060400----

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
-1

R =1
=1
=1
=1

001C C5060200
0020
0026
002C
0032
0038
003E
0044

C706000001FF
C70602000400
C7060400---C70608000100
C7060AOOOEOO
C7060COO---C7060E000400

=1
=1
=1
=1
R =1
=1
=1
R =1
=1
=1
=1
=

004A
004D
004F
0055
005B
0061
0067

B8---8EDS
C70600000000
C70602000000
C70604000000
C70608000000
C7060AOO----

1

=1
R =1
=1
=1
=1
=1
=1
R =1

-I
=1

A-14

10/27/80

PAGE

SOURCE

406
407
408
409
410

CONTROLLER RESET ROUTINE

•

411

412
413
414
415
416
4I7
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480 +1

RES215 SETS UP THE COM~UNICATION BLOCKS FOR THE iSBC 215, LINKS THEM
TOGETHER AND GIVES A RESET, CLEAR RESET, CHANNEL ATTENTION SEQUENCE TO
THE CONTROLLER. THIS CAUSES THE 8089 ON THE CONTROLLER TO SET UP ITS
INTERNAL POINTER TO THE CCB BY THREADING DOWN THE LINKS STARTING WITH
THE SWITCHES ON THE CONTROLLER.
SUBSEQUENT CA's WILL CAUSE THE 8089 TO
FETCH ITS POINTERS STARTING AT THE CCS.
-

IF THE CH. I BUSY FLAG IS NOT CLEARED WITHIN A "REASONABLE" AMOUNT OF TIME,
THEN THE iSSC 215 IS PROBABLY NOT RESPONDING TO THE CHANNEL ATTENTION.
ON THE CONTROLLER: CRECK SWITCH SETTINGS; VOLTAGES; RESET, CLEAR RESET,
CHANNEL ATTENTION SIGNALS; READY INPUT TO 8089; 8089 STATUS LINES; R/W
STROBES.

- THE SYSTEM INTERRUPT LOGIC AND VECTORS FOR THE CONTROLLER ARE ASSUMED TO BE
CONFIGURED BY AN EXTERNAL PROGRAM.
INPUT DATA:
NONE
OUTPUT DATA:
CARRY FLAG:

= 0 IF RESET OKAY
=

RES215

PUBLIC

RES215

PROC

FAR

PUSH
PUSH
PUSH
PUSH
PUSH

AX
BX
CX
DX
DS

I IF CH.

I BUSY FLAG NOT RESET

(NOT RESPONDING)

SAVE REGISTERS

SET UP LINKS BETWEEN COMMUNICATION BLOCKS
SCB
ASSUME
DS:SCBSEG
MOV
AX,SCBSEG
f!OV
DS,AX
MOV WORD PTR SOC,OOOIR
MOV WORD PTR CCBPTR,OFFSET CCB
MOV WORD PTR CCBPTR+2,SEG CCB

•

GET POINTER TO SCB
SET SOC BYTE AND CLEAR RESERVED BYTE
SET POINTER TO CCB

•

CCB
LDS
AX,CCBPTR
ASSUME
DS:CCBSEG
MOV WORD PTR CCWI,OFF01H
MOV WORD PTR CHIPTR,OFFSET CHI PC;
MOV WORD PTR CHIPTR+2,SEG CHI PC ;
MOV WORD PTR CCW2,OOOlH
,
MOV WORD PTR CH2PTR,OFFSET CH2PC;
MOV WORD PTR CH2PTR+2,SEG CH2PC
MOV WORD PTR CH2PC,0004H

GET POINTER TO CCB
SET CCWI AND CH. I BUSY FLAG
SET POINTER TO FIFTH BYTE OF CIB
(HAS STARTING ADDRESS FOR CH. 1)
SET CCW2 AND CLEAR CH. 2 BUSY FLAG
SET POINTER TO CH. 2 STARTING ADDRESS
SET CH. 2 STARTING ADDRESS

CIB
ASSUME DS:CIBSEG
MOV
AX,CIBSEG
MOV
OS, AX
MOV WORD PTR CIBCMD,OOOOH
MOV WORD PTR CMDSEM,OOOOH
MOV WORD PTR CHIPC,OOOOH
MOV
IOPBOFF,OFFSET IOPB
MOV
IOPBSG,SEG IOPB

•

GET POINTER TO CIB
CLEAR CIB COMMAND AND CIB STATUS BYTES
••• AND SEMAPHORES
SET CH. I STARTING ADDRESS
SET IOPB POINTER

$EJECT

•

iSBC 215

•
•

HCS-86 MACRO ASSEMBLER

CONTROLLER RESET ROUTINE

LOC

LINE

0060
0070
0072
0075
0078
007e
0070
DOlE

0080
0083
0085
0086
0088
0089
008B

OBJ

B8---8E08
B90DOO
BBDOOO
C7070000
43
43
EOF8

BA3506
B002
EE
BODO
EE
BOOI
EE

a08C B8---008F 8ED8

0091 890010
0094 F8
0095 F6060100FF
009A 7403

G09C EOF7

•

Appendix A

009E
009F
OOAO
OOAI
GOA2
GOA3
GOA4

F9
IF
5A
59
58
58
CB

=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
R =I
=1
=1
=1
=1
=1
=1
=1
=1
=1
"I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

481
482
483
484
485
486
487
488
489
490
491
492

10/27/80

9

SOURCE
CLEAR OUT DATA SEGMENT

CLRLP:

ASSUHE DS:DATASEG
HOV
AX,DATASEG
HOV
DS,AX
MOV
CX,(OFFSET ENDDAT)/2
HOV
BX,OOOOH
MOV WORD PTR [BX],OOOOH
INC
BX
INC
BX
LOOPNE
CLRLP

493

494
495
496
497
498
499
500
5 01
502
503
504
505
506
507
508
509
5 10
51 1
512
511
514
515
516
5I7
518
519
520
521
522
523
524
525

PAGE

GET POINTER TO DATA SEGMENT
GET COUNT (II WORDS IN DATA SEGMENT)
CLEAR INDEX REGISTER
CLEAR NEXT WORD IN DATA SEGHENT
POINT TO NEXT WORD
DONE?
NO--CLEAR ANOTHER WORD
YES--INITIALIZE COMMUNICATION LINKS

OUTPUT RESET/CLEAR RESET/CHANNEL ATTENTION TO CONTROLLER
!10V
NOV
OUT
~10V

OIJT
XOV

OUT
ASSUHE
110V
lIOV

RSSLP:

REsnN:

DX, WUA
AL,0211
DX,AL
AL,OOH
OX,AL
AL,Ol11
OX,AL
DS:CCBSEG
AX,CCBSEG
DS,AX

HOV
CLC
TEST

CX,IOOOH
BSYFLGI,OOFFH

JZ

RESDN

LGOPNE

Rl'SLP

STC
POP
POP
POP
POP
POP
RET

ns
DX
CX
EX
AX

526
527

RfS215

528 +1
529 +1

$ I NCL un E ( : F I : I NI TE X. IIMD )
SEJECT TITLE(INITIALIZATION ROUTINE)

GET WAKE-UP I/O PORT ADDRESS
GET RESET CO!IHAND BYTE
OUTPUT TO WAKE-UP I/O PORT
GET CLEAR RESET COMHAIIIl BYTE
OUTPUT TO WAKE-UP I/O PORT
GET CHANNEL ATTENTION COMMAND BYTE
OUTPUT TO WAKE-UP I/O PORT
GET POINTER TO CCB
(OTHER [MPLEMENTATIONS OF RES215 COULD
INITIALIZE OTHER DEV ICES WHILE THE
iSBC 21 '; DOES ITS RESET SEQUENCE HERE)
SET TIME-OUT COUNTER
CLEAR CARRY FLAG
CHECK CH. I BUSY FLAG:
ZERO FLAG = BSYFLGI
FFH
BUSY FLAG CLEARED?
YES--RETURN CARRY CLEAR
NO--DECREHENT COUNTER
IF ex = 0, THEN BSYFLGI NEVER GOT
CLEARED, SO SET CARRY FLAG
RESTORE REGISTERS

RETURN

ENDP

•
•

A-15

iSBC 215

Appendix A
~CS-86

LOC

MACRO ASSEMBLER

OBJ

00A5
ODA5
OOA6
OOA7
OOAA
OOAC
00B2
00S7

50
IE
B8---8ED8
C70608000000
C6060BOOOO
C7060COOOOOO

OOBO C7061400---00C3
00C9
OOCB
0000
0003

C7061200FBFF
BOOO
8306120008
A20AOO
E8ECOO

0006 7214
(JOD8 40
0009 3C04
OODS 75EE
0000
OOEO
00E2
{JOE4
OOEA
OGEC
OOED
OOP.E

A10800
3COO
7508
C70608000100
EBDF
IF
58
CB

LINE
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=I
=1
=1
R =1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
-I
=1
=1
=1
=1
=1
=1
=1
=1
=I
=I
=1
=1
=1
=I
=1

A-I6

10/27/80

INITIALIZATION ROUTINE

530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
503
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588 +1
589 +1

PAGE

10

SOURCE

INITIALIZATION ROUTINE

•

INIT215 INITIALIZES THE iSSC 215 CONTROLLER BY LOADING PERTINENT INFORMATION ABOUT THE DISK DRIVE(S) ATTACHED.
-

IF A DRIVE THAT IS SPECIFIED AS PRESENT WILL NOT RESPOND,
IMMEDIATELY WITH THE CARRY FLAG SET.

INIT215 RETURNS

INPUT DATA:
DISK DRIVE INITIALIZATION TABLES, IN SEGMENT "INITBLSEG".
OUTPUT DATA:
CARRY FLAG

PUBLIC
ASSU~E

INIT215 PROC
PUSH
PUSH

INIT215
DS:IOPBSEG
FAR

MOV

AX
DS
AX,IOPBSEG
DS,AX
DEVCOD,OOH
FUNC,OOH
MODIFY,OOOOH

MOV

BUFSEG,INITBLSEG

}10V

HOV

MOV
~10V

MOV
MOV
INITLP: ADD
1IOV
CALL

BUFOFF,-8
AL,OOH
BUFOFF ,8
UNIT,AL
G0215

JC

INITDN

INC
eMP
lNZ

AX
AL,4
UHTLP

MOV
CNP
JNZ
HOV
JIIP
INITDN: POP
POP
RET

= 0 IF CONTROLLER INITIALIZED SUCCESSFULLY
= 1 IF INITIALIZATION ERROR

AX,DEVCOD
AL,O
INITDN
DEvcon,ol
INITLP
OS
AX

INIT215 ENDP

,

$INCLUDE(:FI:FORMAT.M1ID)
$E1ECT TITLE(FORMAT TRACK ROUTINE)

SAVE REGISTERS
GET POINTER TO IOPB
PUT IN OS REGISTER
WINCHESTER DRIVES INITIALIZED FIRST
SET IOPB FUNCTION BYTE ~ INITIALIZE
CLEAR ~ODIFIER (ENABLE RETRIES AND
INTERRUPT ON COMPLETION)
PUT INITIALIZATION TABLES' SEGMENT IN
IOPB DATA BUFFER POINTER
START INITIALIZE WITH UNIT 0
CLEAR UNIT COUNTER
POINT TO NEXT DRIVE's INITIALIZE TABLE
PUT UNIT INTO IOPB
DO INITIALIZE
(RETURNS CARRY FLAG SET OR CLEAR)
UNIT INITIALIZED?
NO--TERMINATE WITH CARRY BIT SET
YES--INCREMENT UNIT COUNTER
CHECK UNIT COUNTER (CLEARS CARRY)
LAST DRIVE INITIALIZED?
NO--INITIALIZE NEXT DRIVE
YES--FLOPPIES INITIALIZED YET?

•
•

YES--INITIALIZE FUNCTION FINISHED
NO---INITIALIZE FLOPPY DRIVES
RESTORE REGISTERS
RETURN

•
•

Appendix A

iSBC 215

•

MCI-86 MACRO ASSEMBLER

FORMAT TRACK ROUTINE

LOC

LINE

OBJ
=1

=1
=1
=1
=1
=1

=1

•

=1
=

1

=1
-I
=1

=1
=1
=1
=1
-I

=1
- 1

=1
=1
=1

-I

•
•
•

=1
-I

=1

OOEF

-I

OOEF 50
OOFO IE
OOF! B8---00F4 8ED8
00F6 8B460A
00F9 A30800
OOFC 8A4600
OOFF A20AOO
0102 8B4601
0105 A30EOO
0108 8A4603
010B A21000
010E 892E1200
0112 8306120004
0117 8CI61400
OIIB C6060B0002
0120 C7060COOOOOO

-I

=1

0126 E89900

=I
R =1
-I
- 1

=1
=1

-I
=1
=1
=1
=1

598

659
660 +1
661 +1

-I
-I
-1
-1

-I
-1

-I

=)
=)
=)

=)
=)
=)
=)
=)
=)
=)

DEVICE CODE
INTERLEAVE FACTOR
USER DATA BYTE 3
USER DATA BYTE
USER DATA BYTE
USER DATA BYTE 0
TYPE OF FORMAT
HEAD
CYLINDER
UNIT

OUTPUT DATA:
CARRY FLAG

- 0 IF TRACK FORMATTED SUCCESSFULLY
1 IF NON-RECOVERABLE ERROR OCCURRED

=

- INTERLEAVE FACTOR OF 1 IMPLIES SEQUENTIAL SECTOR NUMBERING.
- USER DATA BYTES 0 - 3 ARE REPLICATED THROUGHOUT THE DATA FIELD.
- INTERLEAVE TYPES:
00
NORMAL TRACK (ONLY FORMAT FOR FLOPPY)
40 = ALTERNATE TRACK (POINTED TO BY EXACTLY ONE DEFECTIVE TRACK,
CANNOT SUBSEQUENTLY BE FORMATTED DEFECTIVE)
80 = DEFECTIVE TRACK (DATA FIELD POINTS TO ALTERNATE TRACK)
- TO SET UP A POINTER TO AN ALTERNATE TRACK, SET:
USER DATA BYTE 0
ALTERNATE CYLINDER LOW BYTE
USER DATA BYTE
ALTERNATE CYLINDER HIGH BYTE
USER DATA BYTE
ALTERNATE HEAD
USER DATA BYTE
OOH

FMT215

644

-I

- I
-1

INPUT DATA:
BP + 10
BP + 9
BP + 8
BP + 7
BP + 6
BP + 5
BP + 4
BP + 3
BP +
BP

599

601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643

-I
-I

-I

FMTTRK SETS UP THE IOPB FOR A FORMAT TRACK FUNCTION, AND
INVOKES THE iSBC 215 CONTROLLER TO PERFORM THE OPERATION.

597

645
646
647
648
649
650
651
652
653
654
655
656
657
658

=1

0129 IF
012A 58
0128 CAOAOO

595

600

= I

FORMAT TRACK ROUTINE

593
594

1
- 1
- 1

=1

SOURCE

592

596

=1
=1
=1
=1
=1
=1
=1

11

PAGE

590
591

=1
=1
=1
=1
=

10/27/80

FMTDN:

,
FMT215

,

PUBLIC
ASSUME

FMT215
DS:IOPBSEG

PROC

FAR

PUSH
PUSH
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
ADD
MOV
MOV
MOV

AX
AX,IOPBSEG
DS,AX
AX, [BP+I0J
DEVCOD,AX
AL, [BP J
UNIT,AL
AX,[BP+IJ
CYLNDR,AX
AL,[BP+3J
HEAD,AL
BUFOFF,BP
BUFOFF,4
BUFSEG,SS
FUNC,02H
MODIFY,OOOOH

CALL

G0215

POP
POP
RET

OS

SET FUNCTION = FORMAT
CLEAR MODIFIER (ALLOW ERROR RECOVERY
AND INTERRUPT ON COMPLETION)
START iSBC 215 AND WAIT FOR DONE
(RETURNS CARRY FLAG SET OR CLEAR)
RESTORE REGISTERS

AX
10

RETURN (AND POP INPUT DATA OFF STACK)

SAVE REGISTERS

OS

GET POINTER TO IOPB
GET DEVICE CODE INTO IOPB
GET UNIT NUMBER INTO IOPB
GET CYLINDER NUMBER INTO IOPB
GET HEAD INTO IOPB
GET POINTER TO FORMAT ARGUMENT LIST
INTO DATA BUFFER POINTER

ENDP

$INCLUDE(:Fl:RDWRT.MMD)
$EJECT TITLE(READ DATA ROUTINE)

A-17

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLF.R

READ DATA ROUTINE

LOC

LINE

OBJ

012E
012E
012F
0130
0133
0135
0138
013B
013E
0141
0144
0147
014A
0140
0150
0153
0156
0159
01SC
015 F
0162
0165

50
IE
B8---8ED8
8B460D
A30800
8A4600
A20AOO
8B4601
A30EOO
8B4603
A31000
8B4605
A31200
8B4607
A31400
8B4609
A31600
8B460B
A31800
C7060COOOOOO

0168 C6060BOO04
GI70 E84FOO
0173 IF
0174 58
0175 CAODOO

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=I
~I

=1
=1
=1
=1
=1
=1
=1
~1

=1
~1

=I
=1
~1

=1
=1
=1
=1
=1
=1
=1
=1
~I

A-18

662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724 +1

10/27/80

PAGE

12

SOURCE

--------------------READ DATA

---------------------

•

RD215 SETS UP THE IOPB FOR A READ OPERATION, AND
INVOKES THE iSBC 215 TO PERFORM THE OPERATION.
INPUT DATA:
BP + 13 =)
BP + II =)
BP +
9 =)
7 =>
BP +
5 =)
BP +
4 ,=)
BP +
BP +
3 =)
1 =)
BP +
=)
BP

DEVICE CODE
BYTE COUNT HIGH WORD
BYTE COUNT LOW WORD
DATA BUFFER SEGMENT
DATA BUFFER OFFSET
SECTOR
HEAD
CYLINDER
UNIT

OUTPUT DATA:
CARRY FLAG
DATA BUFFER

= 0 IF TRANSFER OCCURRE 0 WITH NO OR RECOVERABLE ERROR
= 1 IF UNRECOVERABLE ERROR OCCURRED
FILLED IIITH DATA FROM DISK IF NO UNRECOVERABLE ERROR

-----------------------------------------------------------------------------

RD21S

PUBLIC
ASSUME

RD215
DS:IOPBSEG

PROC

FAR

PUSH
AX
PUSH
OS
HOV
AX,IOPBSEG
HOV
DS ,AX
MOV
AX, [BP+13]
MOV
DEVCOD,AX
:.IOV
AL, [llP]
UNIT,AL
MOV
AX, [BP+I]
HOV
CYLNDR,AX
ti0V
110V
AX,iBP+3]
tlOV WORD PTR HEAD,AX
HOV
AX,iBP+5]
tlOV
BUFOFF,AX
MOV
AX, [llP+7]
tlDV
BUFSEG,AX
MOV
AX, [BP+9]
MOV WORD PTR REQCNT,AX
AX, [lIP+ll]
MOV
tlOV WORD PTR REQCNT+2,AX
[10 V
llODl FY, GOOOH

RD215

'10V
CALL

FUNC,04H
G0215

POP
POP
RET

OS
AX
13

ENDP

SEJECT TITLE(WRITE DATA ROUTINE)

SAVE REGISTERS

•

GET POINTER TO lOPS
GET DEVICE CODE INTO IOPB
GET UNIT INTO IOPB
GET CYLINDER INTO

[0

PB

GET HEAD AND SECTOR INTO

IOPB

GET DATA BU FF ER POINTER INTO 10 PB

GET BYTE COUNT INTO IOPB

CLEAR HODIFIER (ENABLE INTERRUPT ON
COtlPL ET ION AND RETRIES)
SET PUNCTION = READ DATA
START FUNCTION AND WAIT FOR COMPL ET ION
(RETURNS CARRY FLAG SET OR CLEAR)
RESTORE REGISTERS
POP PARAMETERS OFF STACK AND RETURN

•
•
•

iSBC 215

•

Appendix A

MCS-86 MACRO ASSEMBLER

WRITE DATA ROUTINE

LOC

LINE

OBJ

=1
=1
-I
-I
-I

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

=I

•
•
•
•

=1
=1
=1
=1
=1
=1
=1

=I

0178
0178
0179
017A
017D
Ol7F
0182
0185
0188
Ol8B
018E
0191
0194
0197
019A
0190
OIAO
OlA3
0lA6
OlA9
OIAC
OlAF

50
IE
B8---8EDS
8B460D
A30800
8A4600
A20AOO
8B4601
A30EOO
8B4603
A31000
8B4605
A31200
8B4607
A31400
8B4609
A31600
8B460B
A31800
C7060COOOOOO

0lB5 C6060B0006
OIBA E80500

01 BD IF
OIBE 58
OIBF CAODOO

=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788 +1
789 +1

10/27/80

PAGE

13

SOURCE

WRITE DATA

WRT215 SETS UP THE IOPB FOR A WRITE OPERATION, AND
INVOKES THE iSBC 215 TO PERFORM THE OPERATION.
INPUT DATA:
BP +
BP +
BP +
BP +
BP +
BP +
BP +
BP +
BP

->
=>
9->
7 =>
5 =>
4 =>
3 =>
I·>
=>

13
II

DEVICE CODE
BYTE COUNT HIGH WORD
BYTE COUNT LOW WORD
DATA BUFFER SEGMENT
DATA BUFFER OFFSET
SECTOR
HEAD
CYLINDER
UNIT

DATA BUFFER CONTAINS INFORMATION TO BE WRITTEN TO DISK
OUTPUT DATA:
CARRY FLAG

PUBLIC

,
WRT215

~SSUME

WRT215
DS:IOPSSEG

PROC

FAR

PUSH
PUSH
MOV
MOV
MOV
MOV
rIO V

MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV

WRT215

=
=

0 IF TRANSFER OCCURRED W~TH NO OR RECOVERABLE ERROR
I IF UNRECOVERABLE ERROR OCCURRED

AX
DS
AX,IOPBSEG
DS,AX
AX, [BP+13]
DEVCOD,AX
AL, [BP]
UNIT,AL
AX,[BP+I]
CYLNDR,AX
AX, [BP+3]
WORD PTR HEAD,AX
AX,[BP+5]
BUFOFF,AX
AX, [BP+7]
BUFSEG,AX
AX,[BP+9]
WORD PTR REQCNT,AX
AX, [BP+II]
WORD PTR REQCNT+2,AX
MODIFY,OOOOH

MOV
CALL

FUNC,06H
G0215

POP
POP
RET

OS
AX
13

SAVE REGISTERS
GET POINTER TO IOPB
PUT DEVICE CODE IN IOPB
GET UNIT INTO lOPS
GET CYLINDER INTO IOPB
GET HEAD AND SECTOR INTO IOPB
GET DATA BUFFER POINTER INTO IOPB

GET BYTE COUNT INTO IOPB

CLEAR MODIFIER (ENABLE INTERRUPT ON
COMPLETION AND RETRIES)
SET FUNCTION = WRITE DATA
START iSBC 215 AND WAIT FOR DONE
(RETURNS WITH CARRY SET OR CLEAR)
RESTORE REGISTERS
POP PARAMETERS OFF STACK AND RETURN

ENDP

$INCLUDE(:FI:CORE.MMD)
$EJECT TITLE(START FUNCTION AND WAIT FOR COMPLETION)

A-19

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

START FUNCTION AND WAIT FOR COMPLETION

LOC

LINE

OBJ

0le2
0lC2
OlC3
0lC4
0lC7
0lC9
OleA

50
52
BA3506
BOOI
EE
F80800
oleo 7303
OICF E82900
0102 SA
58
0104 C'l

o I·D3

=1
=1
=1
=1
=1
=1
=1
=1
=I
=I
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=I
=1
=1
=1
=1
=1
=1

790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826 +1

10/27/80

PAGE

14

SOURCE

START FUNCTION AND WAIT FOR COMPLETION

•

THIS ROUTINE GIVES A CHANNEL ATTENTION (WAKE-UP) TO THE iSBC 215 AND
WAITS FOR THE FUNCTION SPECIFIED (BY THE CALLING PROCEDURE) TO FINISH.
IF AN ERROR OCCURRED, THE ERROR HANDLER IS INVOKED.
INPUTS:
NONE
OUTPUTS:
CARRY FLAG:

G021S

PROC

NEAR

PUSH
PUSH
MOV

AX

OUT
CALL
JNC

AL,OIH
OX,AL
WAIT215
DONE

CALL

ERROR

POP
POP
RET

AX

HOV

DONE:

OX
OX, \,UA

ox

= 0 IF NO ERROR OR A RECOVERABLE ERROR OCCURRED
= I IF UNRECOVERABLE ERROR OCCURRED.

SAVE REGISTERS
GET ADDRESS OF WAKE-UP I/O PORT
GET WAKE-UP COMMAND BYTE
GIVE WAKE-UP TO iSBC 215
WAIT FOR FUNCTION COMPLETE
ERROR?
NO--RETURN
YES--CALL ERROR HANDLER (RETURNS WITH
CARRY FLAG SET OR CLEAR)
RESTORE REGISTERS

•

RETURN

;

GO 2 I 5

ENDP

SEJECT TITLE(WAIT FOR FUNCTION COMPLETE ROUTINE)

•
•

A-20

Appendix A

iSBC 215

•

LOC

LINE

OBJ
-1

-I
-I
-I

=1
=1
=1
=1

=1

-1
-I
-1

=1
=1
= I

=1
= I

=1
=1
=1
=1
-I

•
•
•
•

=1
=1
-I

=1
=1
-1

=1
=1

0lD5
0lD5
01 D6
0lD7
0108
OIDB
OIDD
OlEO
OIEI
0lE2
0lE3
0lE7

50
53
IE

BB---8EDB
BBFFFF
FB
F4
43
81E30300
F607FF

-1
-1

-I
=1
R =1
-I

=1
-I
-I
-I

=1
-I

=1
=1
OlEA 74F6

-I
-I

OIEC 7906

=1
-I

01EE
OIFO
OlF3
OlF4
OlF7
01F8
OlF9
01FA

-I
-I

8A07
A21800
F9
C60700
IF
5B
58
C3

10/27/80

WAIT FOR FUNCTION COMPLETE ROUTINE

MCS-86 MACRO ASSEMBLER

827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871

872
873
874
875
876

-1

877

-I

878
879
880
881
882
883
884
885
886 +1
887 +1

-I

=1
=1
=1
=1
=1
=1

PAGE

15

SOURCE

WAIT FOR FUNCTION COMPLETE

NORMALLY, THIS WAIT ROUTINE WOULD TRAP TO THE SYSTEM DISPATCHER/
SCHEDULER TO ALLOW ANOTHER TASK TO EXECUTE WHILE THE iSBC 215 COMPLETED
ITS FUNCTION.
HOWEVER, FOR THIS EXAMPLE, THE ROUTINE SIMPLY WAITS FOR
THE INTERRUPT SERVICE ROUTINE TO LOAD THE OPERATION COMPLETE STATUS
FROM THE CIB OPERATION STATUS INTO THE DATA SEGMENT.
IF AN ERROR
OCCURRED, THE STATUS IS AVAILABLE THERE FOR SUBSEQUENT PROCESSING BY
AN ERROR HANDLER.
INPUT DATA:
OPERATION COMPLETE STATUS FROM THE CIB, COPIED INTO THE DATA SEGMENT
BY THE INTERRUPT ROUTINE
OUTPUT DATA:
OPERATION COMPLETE BYTE
CARRY FLAG

CLEARE 0
0 IF NO ERROR

=

= 1 IF ERROR OCCURRED
COpy OF CIS OPERATION STATUS

IN "LSTST5" IF ERROR OCCURRED

( OPERATION COllPLETE BYTE AND "LSTSTS" ARE IN SEGMENT "DATASEG"

ASSUME
WAIT215 PROC
PUSH
PUSH
PUSH
MOV
HOV

HOV
STI
HLT
liAITLP: INC
AND
TEST

DS:DATASEG
NEAR
AX
BX
OS
BX,DATASEG
DS,BX
BX,-I
BX
BX,0003H
BYTE PTR [BX],OFFH

JZ

WAITLP

JNS

WAlTON

MOV
AL, [BX]
HOV
LSTSTS,AL
STC
WAlTON: MOV BYTE PTR [BX] ,OOH
DS
POP
POP
BX
POP
AX
RET

SAVE REGISTERS
GET POINTER TO DATA SEGHENT
INITIALIZE INDEX REGISTER
MAKE SURE INTERRUPT CAN GET THROUGH
***** WAIT FOR INTERRUPT *****
GET INDEX FOR NEXT UNIT
HASK UPPER BITS
OPERATION COMPLETE STATUS = OOH?
(SIGN FLAG - BIT 7 OF OP. STATUS,
TEST INSTR. CLEARS CARRY FLAG)
STATUS <> DOH (OPERATION COMPLETE)?
NO--CHECK NEXT UNIT
YES--ERROR OCCURRED DURING FUNCTION?
NO--RETURN WITH CARRY FLAG CLEAR
YES--SAVE CIB OP. STATUS IN "LSTSTS"
SET CARRY FLAG TO INDICATE ERROR
CLEAR OPERATION COMPLETE BYTE
RESTORE REGISToRS

RETURN

WAIT215 ENDP
$INCLUDE(:Fl:ERROR.MMD)
$EJECT TITLE(ERROR HANDLER)

A-21

iSBC 215

Appendix A

MCS-86 MACRO ASSEMBLER

ERROR HANDLER

LOC

LINE

OBJ
~1

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
-1

01FB
01FB
OlFC
OIFD
0200
0202
0205
0206
0209
020A
0210
0216
021B

50
IE
B8---8ED8
A11200
50
A11400
50
C70612000COO
C7061400---C6060BOOOI
C7060COOOOOO

0221
0224
0225
0228
0229
022C
022F
0231
0232
0235
0237

E89EFF
58
A31400
58
A31200
B8---8ED8
F8
A01800
2440
7401

0239
023A
023B
023C

F9
IF
58
C3

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

R -"1
=1

=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
= I

=1
=1
=1
=1
= I

=1
: I

=1
=1
=1
=1

A·22

888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919

PAGE

16

SOURCE

ERROR HANDLER

•

THIS ROUTINE IS SYSTEM DEPENDENT.
IN THIS EXAMPLE, THE ERROR INFORMATION FROM THE CONTROLLER IS READ INTO SOFTWARE REGISTERS IN DATASEG,
WHERE IT CAN BE EXAMINED. MORE SOPHISTICATED SYSTEMS MIGHT LOG THE
ERRORS TO DETERMINE WHEN A TRACK IS GOING BAD, FOR EXAMPLE.
- THE TRANSFER STATUS FUNCTION WILL NOT RETURN AN ERROR.
- THE UNIT NUMBER IN THE IOPB IS NOT CHANGED, SO THAT THE OPERATION COMPLETE
STATUS FOR THE TRANSFER STATUS FUNCTION WILL BE POSTED AGAINST THE SAME
UNIT AS CAUSED THE ERROR.
INPUT DATA:
CIB OPERATION STATUS

IN I'LSTSTS'! IN DATA SEGMENT

OUTPUT DATA:
ERROR STATUS FROM CONTROLLER
CIB OPERATION STATUS
CARRY FLAG

ASSUME
ERROR

920
921

922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950 +1
951 + 1

10/27/80

NEAR

PUSH
PUSH
MOV
MOV
MOV
PUSH
MOV
PUSH
MOV
MOV
MOV
MOV

AX
OS
AX,IOPBSEG
DS,AX
AX,BUFOFF
AX
AX,BUFSEG
AX
BUFOFF,OFFSET ERRSTS
BUFSEG,DATASEG
FUNe,GIH
MODIFY,GOOOH

CALL
POP
MOV
POP

G021S
AX
BUFSEG,AX
AX
BUFOFF,AX
AX,DATASEG
DS, AX

MOV
MOV
CLC
MOV
AND
JZ
STC
SFTERR: POP
POP
RET
ERROR

DS:IOPBSEG

PROC

flO V

IN DATA SEGMENT
IN "LSTSTS" IN DATA SEGMENT
= 0 IF SOFT (RECOVERABLE) ERROR
z
1 IF HARD (UNRECOVERABLE) ERROR

AL,DS:LSTSTS
AL,40H
SFTERR
DS
AX

ENDP

$INCLUDE(:FI:INTRPT.MMD)
$EJECT TITLE(INTERRUPT SERVICE ROUTINE)

SAVE REGISTERS

•

GET POINTER TO IOPB
SAVE IOPB DATA BUFFER POINTER

GET POINTER TO DATA SEGMENT ERROR
STATUS REGISTERS
SET FUNCTION = TRANSFER STATUS
CLEAR MODIFIER (ENABLE INTERRUPT ON
COMPLETION AND RETRIES)
START FUNCTION AND WAIT FOR COMPLETE
RESTORE IOPB DATA BUFFER POINTER

•

GET POINTER TO DATA SEGMENT
CLEAR CARRY FLAG
GET OLD (ERROR) CIB OPERATION STATUS
CHECK HARD ERROR BIT
HARD ERROR BIT SET?
NO--LEAVE CARRY FLAG CLEAR
YES--SET CARRY FLAG
RESTORE REGISTERS

•
•

iSBC 215

•

MCS-86 MACRO ASSEMBLER

INTERRUPT SERVICE ROUTINE

LOC

LINE

DB]

023D

•
•

023D
023E
023F
0240
0241

53

FE
50

0242
0245
0247
024A
024e
0251
0253
0257
0259
025B
025D
025F

R8---8ED8
AOOI00
BADO
C606030000
8AD8
81E33000
DIEB
DIEB
DIEB
DIEI
250600

0262

DIED

52
1E

0264 03D8
0266 88---0269 8ED8
026~ 8817
026D BA5063
0270 ROO2
0272 EF
0273 1 F
0274 SA
027\ 58
0276 FA

•
•

Appendix A

0277
0279
027B
027C

B020
E6CO
58
CF

=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
R =1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1
=1

952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019 +1
1020
1021

10/27/80

17

PAGE

SOURCE

INTERRUPT SERVICE ROUTINE

THIS ROUTINE SERVICES THE INTERRUPT GENERATED BY THE iSBC 215 UPON
OPERATION COMPLETE, SEEK COMPLETE, OR DISK PACK CHANGE.
IT COPIES THE
CIB OPERATION STATUS INTO ONE OF FOUR BYTES ASSOCIATED WITH EACH OF
THESE EVENTS.
IT IS ASSUMED THAT SYSTEM PROGRAMS MAKE USE OF THE
INFORMATION TO RESUME TASKS, HANDLE ERROR LOGGING/RECOVERY, AND KEEP
FOR THIS PROGRAMMING EXAMPLE, ONLY
TRACK OF DIRECTORY INFORMATION.
THE OPERATION COMPLETE BYTES ARE USED.
-

THE SYSTEM INTERRUPTS ARE CONFIGURED BY EXTERNAL PROGRAMS.

INTI15

PUBLIC

INT215

PROC

FAR

STI
PUSH
PUSH
PUSH
PUSH
ASSUME
MOV
:1OV

MOV
MOV
:IOV
110 V
AND
SHR
SHR
SHR
SHR
AND

US:CIBSEG
AX,CIBSEG
DS,AX
AL,OPSTS
DL,AL
5T5SFll,00H
BL,AL
BX,0030H
BX,I
BX ,I
BX ,I
BX,I
AX,0006H

SHL

AX,I
BX,AX
DS:DATASEG
AX,DATASEG

NOV

DS, AX

?10V

[BX],DL
DX,WUA*16

GET POINTER TO CIB
GET CIB OPERATION STATUS
SAVE IT
CLEAR eIR STATUS SEMAPHORE
MOVE IT TO INDEX REGISTER
MASK ALL BITS EXCEPT UNIT NUMBER
SHIFT UNIT NUMBER TO BITS 0 AND 1

MASK ALL BITS EXCEPT SEEK COMPLETE
AND PACK CHANGE
SHIFT LEFT TO GET OFFSET INTO PROPER
BYTE IN DATA SEGMENT
COMBINE WITH UNIT IN INDEX REGISTER
GET POINTER TO DATA SEGMENT

'10 V

AL,02H

nUT

DX,AL

MOVE OPERATION STATUS TO DATA SEGMENT
GET POINTER TO I/O WAKE-UP ADDRESS
GET CLEAR INTERRUPT COMMAND BYTE
OUTPUT TO iSBC 215

POP
POP
POP
eLI

os

RESTORE REGISTERS

DX
BX

MOV
OUT
POP
IRET

,

ENABLE HIGHER PRIORITY INTERRUPTS
SAVE REGISTERS

ox
os

ADD
ASSUME
,·10 V

~'10V

INT215

AX
BX

AL,20H
OCOH,AL
AX

DISABLE INTERRUPTS FOR RESTORE
(RESTORATION OF INTERRUPT LOGIC STATE
IS SYSTEM DEPENDENT. THIS EXAMPLE USES
THE iSBC 86/12A CPU.)
'"
GET END-OF-INTERRUPT COMMAND
" , OUTPUT EOI COMMAND TO 8259
INTERRUPT RETURN ENABLES

INTERRUPTS

ENDP

SBC215DRIVER

ENDS

END OF iSBC 215 DRIVER CODE

$TITLE(SYM80L TABLE AND CROSS REFERENCE)
END

END OF PROGRAMMING EXAMPLE

A-23

iSBC 215

Appendix A

SYMBOL TABLE AND CROSS REFERENCE

KCS-86 MACRO ASSEMBLER

10/27/80

XREF SYMBOL TABLE LISTING

NAME

TYPE

??SEG
ACTCNT.
ACTCYL •
ACTHD
ACTSEC.
BSYFLGI
BSYFLG2
BUFOFF.
BUFSEG.
CCB
CCBPTR.
CCBSEC.
CCWI.
CCW2.
CHIPC
CHIPTR.
CH2PC
CH2PTR.
CIB
CIBCMD.
CIBSEG.
CLRLP
CMDSEM.
CONFIG.
CYLNDR.
DATASEG
DESCYL •
DESHD
DESSEG.
DEVGOD.
DONE.
ENDOAT.
ENDSTK.
ERROR
ERRSTS.
FMT215.
FMTDN
FUNG.
G02D
HEAD.
INIT215
INITBLSEG
INITDN.
INITLP.
INT215.
INTRCS.
INTRIP.
INTRPT.
IOPB.
IOPBOFF
IOPBSEG
IOPBse.
LSTSTS.
UODlFY.
NMRTRY.
OPCMP
OPCMPO.
OPCMPI.
OPCMP2.
OPCMP3.
OPSTS
PKCHG
PKCHGO.
PKCHG 1.
PKCIIG2.
PKCIIG3.
RD2l5
REQCNT.
RES215.
RESDN
RESLP
SBG215DRIVER.
SCB
SCBSEG.
SECTOR.
SEGOOOO

S EG~! ENT
V DWORD
V WORD
v BYTE
V BYTE
v BYTE
v BYTE
v WORD
V WORD
L FAR
V DWORD
SEGHENT
V BYTE
V BYTE
L FAR
v DWORD
L FAR
V DWORD
L FAR
v BYTE
SEGMENT
L NEAR
V BYTE
L FAR
V WORD
SEG'IENT
V WORD
v BYTE
V BYTE
V WORD
L NEAR
L FAR
L FAR
L NEAR
V WORD
L FAR
L NEAR
V BYTE
L NEAR
V BYTE
L FAR
SEGMENT
L NEAR
L NEAR
L FAR
V WORD
v WORD
NUMBER
L FAR

A-24

V WORD

SEGMENT
v WORD
V BYTE
V WORD
V BYTE
V BYTE
v BYTE
v BYTE
v BYTE
v BYTE
V BYTE
v BYTE
V BYTE
V BYTE
v BYTE
v BYTE
L FAR
V DWORD
L FAR
L NEAR
L NEAR
SEGMENT
L FAR
SEGMENT
V BYTE
SEGIlENT

VALUE
0004H
0013H
0015H
0016H
0001H
0009H
0012H
0014H
OOOOH
0002H
OOOOH
0008H
0004H
0002H
OOOEH
OOOAH
OOOOH
OOOOH
0078H
n002H
OOOOH
OOOEH
OOOFH
00 II H
0012H
OOOSH
0lD2H
001AH
0040H
OIFBH
OOOCH
OOEFH
0129H
OOOBH
01C2H
OOIOH
00A5H
OOECH
OOCBH
023DH
0096H
0094H
G005H
OOOOH
OOOSH
OOOAH
0018H
OOOCH
0017H
OOOOH
OOOOH
0001H
0002H
0003H
0001H
000811
0008H
000911
OOOAH
OOOBII
012EH
OOII)H
OOOOH
009FH
0095!!
OOOOH
OOIIH

ATTRIBUTES, XRE FS
SIZE=OOOOH PARA PUBLIC
IOPBSEG 12911
DATASEG 31211
DATASEG 3 I 311
DATASEG 31411
CCBSEG 7911 512
CCBSEG 8511
IOPBSEG 13711 565 567 646 647 706 770 922 926 935
13811 563 648 708 772 924 927 933
IOPBSEG
CCBBEC 64 7711 454 455
SCBSEG 6411 454 455 459
7511 92 460 504 505
SIZE=OOI0H PARA
CCBSEG 7811 461
CCBSEG 8411 464
CIBSEG SO 11 01/ 462 463 476
CCBSEG 8011 462 463
CCBSEG 86 8911 465 466 467
CCBSEG 8611 465 466
10511
CIBSEG
CIB S EG 10611 474
1031/ 116 471 472 978 979
SIZE=0010H PARA
SBC215DRIVER 48811 491
CIBSEG 1081! 475
USERSEG PUBLIC 377 380/1 396
IOPBSEG
134/1 643 702 766
268 II 326 483 484 854 861 927 936 995 996
SEE=OOIAH PARA
30911
DATASEG
DATASEG 31011
DATASEG 31111
IOPBSEG 13011 559 577 580 639 698 762
SBC215DRIVER 816 82011
DATASEG 32411 486
STACK 36711 385
SBC215DRIVER 818 91611 948
DATASEG PUBLIC 278 30711 926
SBC2l5DRIVER PUBLIC 629 63211 658
SBC215DRIVER 654/1
IOPBSEG
13211 560 649 715 779 928
SBC2150RIVER 569 652 716 780 80811 824 931
IOPBSEG
13511 645 704 768
SBC215DRIVER PUBLIC 550 55311 586
SIZE=003FH PARA
17011 258 563
SBC215DRIVER 571 579 58211
SBC215DRIVER 56711 575 581
SBC215DRIVER PUBLIC 388 389 969 97111 1015
SEGOnOO 35511 389
SEGOaOO 354/1 3S8
34711 352
IOPBSEG 112 12711 477 478
CIBSEG 11211 477
SIZE=OOIEH PARA
113 12511 142 551 557 630 636 689 695 753 759 914 920
CIBSEG 11311 478
DATASEG 32011 876 939
IOPBSEG 13311 561 650 713 777 929
DATASEG 31511
DATASEG PUBLIC 278 28211
DATASEG 28311
DATASEG 28411
DATASEG 285 II
DATASEG 28611
CIBSEG
10711 981
DATASEG PUBLIC 278 29811
DATASEG 29911
DATASEG 30011
DATASEG 30111
DATASEG 302#
SBC215DRIVER PUBLIC 688 69tH 722
IOPBSEG 13911 710 712 774 776
SBC215DRIVER PUBLIC 436 43811 526
SBC215DRIVER 514 519 II
SBC21SDRIVER 512/1 516
SIZE=027DH PARA
400# 402 1017
SCBSEG 61#
SIZE=0006H PARA ABS
5911 66 450 451
IOPBSEG 13611
SIZE=0098H PARA ABS
34911 357 378

PAGE

18

•
•
•
•
•

Appendix A

iSBC 215

•

MCS-86 MACRO ASSEMBLER
NMIE
SFERST.
SFTERR.
SKCMP
SKCMPO.
SKCMPI.
SKCMP2.
SKCMP3.
SOC
STACK
STSSEH.
UNIT.
USERSEG
WAIT215
IlAITDN.
WAITLP.
WRT215.
WUA

SYMBOL TABLE AND CROSS REFERENCE

TYPE

VALUE

ATTRIBUTES, XREFS

V BYTE
NEAR
V BYTE
V BYTE
V BYTE
V BYTE
V BYTE
V BYTE
SEGMENT
V BYTE
V BYTE
SEGMENT
L NEAR
L NEAR
L NEAR
L FAR
NUMBER

OOOEH
023AH
0004H
0004H
0005H
0006H
0007H
OOOOH

DATASEG 30811
SBC215DRIVER 941 94411
DATASEG PUBLIC 278 29011
DATASEG 29111
DATASEG 29211
DATASEG 29311
DATASEG 29411
SCBS!:C 6211 453
SIZE~0040H PARA
CIBSEG 1091/ 983
IOPBSEG 131# 568 641 700 764
375# 398
SIZE=0022H PARA
SBC215DRIVER 815 856# 884
SBC215DRIVER 873 878#
SBC215DRIVER 866# 871
SBC215DRIVER PUBLIC 752 755# 786
5711 59 497 812 999

L

0003H
OOOAH
0lD5H
O1F4H
01E2H
0178H
06351l

10/27/80

PAGE

19

ASSEMBLY COMPLETE, NO ERRORS FOUND

•
•
•
•

A-25/A-26

•
•
•
•
•



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Create Date                     : 2012:12:14 09:49:33-07:00
Creator                         : Microtek ScanWizard 5
Modify Date                     : 2012:12:14 12:10:33-07:00
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:08:04
Creator Tool                    : Microtek ScanWizard 5
Metadata Date                   : 2012:12:14 12:10:33-07:00
Producer                        : Adobe Acrobat 9.52 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:f6324ea8-2bfc-4705-9b4b-9a656dc754cf
Instance ID                     : uuid:2c38d642-0eba-4c52-a1b3-56ef878babb7
Page Count                      : 127
EXIF Metadata provided by EXIF.tools

Navigation menu