iSBC® 215 WINCHESTER DISK HARDWARE REFERENCE MANUAL

Copyright © 1980, 1981 Intel Corporation Intel Coporation, 3065 Bowers Avenue, Santa Clara, CA 95051 Order Nu mber: 121593-002 iSBC 21S™ WINCHESTER DISK CONTROLLER HARDWARE REFERENCE MANUAL

Order Number: 121593-002

Copyright (el 1980, 1981 Intel Corporation I Intel Corporation, 3065 Bowers Avenue, Santa Clara, California 95051 I REV. REVISION HISTORY PRINT DATE -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.

Intel 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:

BXP Intelevision Micromap CREDIT Intellec i iRMX Multimodule ICE iSBC Plug·kBubble iCS iSBX PROMPT im Library Manager Promware INSITE MCS RMXIRO Intel Megachassis System 2000 Intel Micromainframe UP! IlScope

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

ii PREFACE

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

Related documents include: • The 8086 Family User's Manual, Order No. 9800722 • Intel MULTIBUgrM Specifications, Order No. 9800683 • Intel 8080/8085 Assembly Language Reference Manual, Order No. 9800301 • MCS-86™ MACRO Assembly Language Reference Manual, Order No. 900640 • MCS-86/85TM Family User's Manual, Order No. 121506 • 8089 Assembler User's Guide, Order No. 9800938 • iSB)(fM Bus Specification, Order No. 142686 • iSBX 218™ Flexible Disk Controller Hardware Reference Manual, Order No. 121583

iii CONTENTS

CHAPTER 1 GENERAL INFORMATION Page Page Introduction ...... 1-1 Execute iSBX I/O Program ...... 3-16 Description ...... 1-2 I/O Transfer Through iSBX Bus ...... 3-16 Specifications ...... 1-3 Buffer I/O ...... 3-17 Diagnostic ...... 3-18 CHAPTER 2 Posting Status ...... 3-18 PREPARATION FOR USE Transfer Error Status ...... 3-19 Introduction ...... 2-1 Interrupts ...... 3-20 Unpacking and Inspection ...... 2-1 Controlling Data Transfer Board Installation Considerations ...... 2-1 Through the iSBX Bus ...... 3-20 Power Requirement ...... 2-2 I/O Transfers Using iSBC 215 Cooling Requirement ...... 2-2 Controller Resident Firmware ...... 3-20 Multibus Connector ...... 2-2 Data Transfer Using User Written Switch/Jumper Configurations ...... 2-2 I/O Transfer Programs ...... 3-20 Wake-Up Address Selection ...... 2-6 Example Controller I/O Program ...... 3-23 Wake-Up I/O Port Address Selection ...... 2-7 System Data Bus Selection ...... 2-7 CHAPTER 4 Interrupt Priority Level ...... 2-7 PRINCIPLES OF OPERATION Any Request Selection ...... 2-7 Introduction ...... 4-1 Common Bus Request ...... 2-7 Schematic Interpretation ...... 4-1 Winchester Drive Interface ...... 2-7 Functional Overview ...... 4-2 -5-Volt Selection Detailed Functional Description ...... 4-5 (8" Shugart/Quantum Drives Only) ...... 2-8 Controller to Host Communications ...... 4-6 Cabling Requirements ...... 2-8 Multibus Interface ...... 4-6 Drive Installation ...... 2-9 8089 I/O Processor (lOP) ...... 4-6 iSBX Multimodule Interface ...... 2-22 Clock Circuit ...... 4-6 iSBX 218 Board Installation ...... 2-23 Bus Arbiter ...... 4-7 Power Up/Down Considerations ...... 2-24 Bus Controller Logic ...... 4-8 Diagnostic Check ...... 2-24 Multibus Interface Data Transfer Logic ...... 4-8 CHAPTER 3 Controller Initialization ...... 4-8 PROGRAMMING INFORMATION Wake-Up Address Comparator ...... 4-9 Introduction ...... 3-1 Controller Reset and Clear ...... 4-10 Programming Options ...... 3-1 Establishing A Link With Disk Organization ...... 3-1 I/O Communications Blocks ...... 4-10 Track Sectoring Format ...... 3-2 Interrupt Priority Logic ...... 4-11 Controller I/O Communications Blocks ...... 3-2 Local Memory Map ...... 4-11 Host CPU-Controller-Disk Drive Interaction .... 3-4 ROM ...... 4-11 Wake-Up I/O Port ...... 3-4 RAM ...... 4-11 Wake-Up Block ...... 3-4 Local Memory Mapped I/O Ports Channel Control Block ...... 3-4 and iSBX I/O Ports ...... 4-11 Controller Invocation Block ...... 3-4 Controller to Disk Drive Communications ..... 4-12 I/O Parameter Block ...... 3-4 Controller to Winchester Typical Controller Operations ...... 3-6 Disk Drive Interface ...... 4-12 Initializing the Controller ...... 3-6 Control Cable Signals ...... 4-13 Track Formatting ...... 3-9 Read/Write Cable Signals ...... 4-14 Alternate and Defective Track Handling ..... 3-12 Controller to iSBX Connector Interface ...... 4-14 Data Transfer and Verification ...... 3-12 Controller to Disk Drive Interface Timing ..... 4-15 Read Sector ID ...... 3-13 DMA Mode ...... 4-15 Read Data ...... 3-13 ...... 4-16 Read Data Into Controller Buffer and Verify 3-14 Write Data Transfer ...... 4-18 Write Data ...... 3-15 Read Data Transfers ...... 4-20 Write Data from Controller Buffer to Disk '" 3-15 SER/DES Logic ...... 4-20 Initiate Track Seek ...... 3-15 Sync Byte Comparator Logic ...... 4-21

IV CONTENTS (Continued)

Page Page 32-Bit ID Comparator Logic ...... 4-21 Service and Repair Assistance ...... 5-1 ECC Generator Logic ...... 4-21 Self Diagnostic ...... 5-1 Status Ftegister Logic ...... 4-21 Replaceable Components ...... 5-1 Line Drivers and Fteceivers ...... 4-22

CHAPTER 5 APPENDIX A SERVICE INFORMATION HANDSHAKE SEQUENCES AND Introduction ...... 5-1 EXAMPLE HOST PROCESSOR Service Diagrams ...... 5-1 DISK CONTROL PROGRAM

TABLES

T~~ TI~ ~~ Table Title Page 1-1. Board Specifications ...... 1-3 3-4. iSBC 215 Controller RAM 1-2. Winchester Disk Drive Available for Program and Characteristics ...... 1-5 Parameter Storage ...... 3-22 2-1. Multibus Connector PI 3-5. 8089 Handshake and Control Lines Pin Assignment ...... 2-2 on the iSBX Bus ...... 3-22 2-2. iSBC 215 Controller/Multibus 3-6. Control and Status Lines Interface PI Signal Descriptions ..... 2-3- on the iSBX Interface ...... 3-23 2-3. iSBC 215 Controller/Multibus 3-7. Jumper Connections Allowing Option Interface Signal Characteristics ...... 2-6 Lines to be Driven ...... 3-23 2-4. Configuration Jumpers and Switches .. 2-7 4-1. 8089 Status Line Decodes ...... 4-8 2-5. Interrupt Priority Level Selection ...... 2-7 -4-2. Host Wake-Up Commands ...... 4-9 2-6. Winchester Drive 4-3. Local 110 Ports ...... 4-12 Manufacturer Selection ...... 2-8 4-4. iSBX Bus 110 Port Addresses ...... 4-12 2-7. -5-Volt Selection ...... 2-9 4-5. Control Cable Line Functions ...... 4-13 2-8. J3 and J4 Pin Assignments ...... 2-22 4-6. Read/Write Cable Line Functions ..... 4-14 2-9. iSBX Bus Control Jumper Pins ...... 2-24 4-7. iSBX Bus Mnemonics-to-Controller 3-1. Error Status Buffer ...... 3-20 Line Name ...... 4-15 3-2. Bit Functions in Hard and 4-8. Status Register Bits ...... 4-22 Soft Error Bytes ...... ; ...... 3-21 5-1. Code for Manufacturers ...... 5-2 3-3. iSBX Bus I/O Port Addresses ...... 3-22 5-2. Controller Board Electrical Parts List .. 5-2

v ILLUSTRATIONS

Figure Title Page Figure Title Page 1-1. Typical Multiple Drive System 3-12. Read Data ...... 3-14 Using Winchester Disk Drives 1-1 3-13. Read Data into Controller Buffer 1-2. Typical Multiple Drive System and Verify ...... 3-14 Using Flexible Disk Drives and 3-14. Write Data ...... 3-15 iSBX 218 Flexible Disk Controller 1-2 3-15. Write Data from Controller Buffer 1-3. Automatic Error Checking to Disk ...... 3-15 and Correction ...... 1-3 3-16. Initiate Track Seek ...... 3·16 2-1. Serial Priority Resolution ...... 2-1 3-17. Execute iSBX Interface 110 Program 3-16 2-2. Master Command Access Timing ..... _ 2-4 3-1B. 110 Transfers Through iSBX Interface 3·17 2-3. 8" Shugart/Quantum Drive Interconnecting 3-19. Buffer 110 ...... 3-18 Cable Requirements ...... 2-10 3-20. Diagnostic ...... 3-19 2-4. Fujitsu 2300/Memorex/14" Shugart Drive 3-21. Transfer Error Status ...... 3-19 Interconnecting Cable Requirements 2-12 3-22. Execution of iSBX Bus 2-5. Pertec Drive Interconnecting I/O Program from RAM ...... 3-23 Cable Requirements ...... 2-14 4-1. Logic Conventions ...... 4-1 2-6. Priam Drive Interconnecting 4-2. Simplified Block Diagram Cable Requirements ...... 2-16 of iSBC 215 Controller ...... 4-2 2-7. M~" RMS Drive Interconnecting 4-3. iSBC 215 Controller Functional Cable Requirements ...... 2-18 Block Diagram ...... 4-3 2-8. Control Data Corporation Drive Inter­ 4-4. Bus Arbitor and Bus Controller Logic 4-7 connecting Cable Requirements ..... 2-19 4-5. Data Transmission Between Multibus 2-9. Control Data Corporation Drive Inter- Interface and Controller Data connecting Cable Requirements ..... 2-20 Transceivers ...... 4-9 2-10. Controller to Drive Interfacing ...... 2-21 4-6 .. Wake-Up Address Logic ...... 4-10 2·11. Installing the iSBX 218 Board on 4-7. Address Fetches in the iSBC 215 Controller Board ... _.. 2-23 Initialization Sequence ...... 4·11 3·1. Disk Drive Organization and 4-8. Local Memory Map ...... 4-11 Terminology ...... 3-1 4-9. Timing Diagram for RDY Signal ..... 4-16 3-2. Sector Data Format ...... 3·2 4-10. Timing Diagram for Disk 3-3. Host CPU-Disk Controller· Formatting Sequence ...... 4-17 Interaction Through the 4-1l. Timing Diagram for Write Data ...... 4-19 110 Communications Block ...... 3-3 4-12. Timing Diagram for 3-4. Wake-Up Block ...... 3·5 Read Data Transfer ...... 4-20 3-5. Channel Control Block ...... 3-5 5-1. iSBC 215 Controller Jumpers 3-6. Controller Invocation Block ...... 3·6 and Switch Locations ...... 5·5 3-7. 110 Parameter Block Description ...... 3-7 5-2. iSBC 215 Winchester Disk 3-8. 110 Communications Blocks Linking 3-10 Contrt!lller Parts Location Diagram ... 5-7 3-9. Track Formatting ...... 3·11 5-2. iSBC 215 Winchester Disk 3-10. Alternate Track Formatting ...... 3-12 Controller Schematic Diagram ...... 5-9 3-11. Read Sector ID ...... 3-13

vi CHAPTER 1 GENERAL INFORMATION

1-1. INTRODUCTION size be set internally as shown in Chapter 2.) The single board assembly also features automatic error recovery and retry, transparent data error correction The Intel iSBC 215™ Winchester Disk Controller and multiple sector transfers. Seek operatipns on allows up to four Winchester technology disk drives multiple drives can be overlapped with a read/write (see Table 1-2 for disk specifications) to be interfaced operation on another drive. The iSBC 215 controller with any Intel Multibus™ interface compatible is fully compatible with Intel SOS6 CPU 20-bit computer system. It supports drives that use either addressing. open loop head positioning (Shugart SA600, SAIOOO and SA4000, Quantum Q2000 or Fujitsu 2300, RMS 500, CDC Finch or Memorex 101) or closed loop head A typical multiple drive system using four Winches­ positioning (Pertec DSOOO or Priam 3350 and 3450). ter disk drives and the iSBC 215 controller is shown It's design is based on the IntelSOS9 I/O Processor, in Figure 1-1. The controller also provides two Intel which allows Direct Memory Access (DMA) trans­ iSBXTM Bus connectors, J3 and J4, which allow other fers, error detection and correction, and data storage devices such as drives or magnetic management. The controller can operate in a multi­ tape cartridge drives to be interfaced with Multibus processor environment and is fully compatible with interface compatible systems_ The Intel iSBX 2ISTM all Intel S-bit and 16-bit computers. The number of Flexible Disk Controller, for example, attaches to one tracks per surface, sectors per track, bytes per sector iSBXTM Connector, J4, allowing the controller to be and alternate tracks per surface are software select­ interfaced with up to four double-density floppy disk able for each drive unit. (In addition, the Memorex, drives. Figure 1-2 shows a typical multiple drive sys­ 14" Shugart and Priam drives require that the sector tem using four 5%" or S" floppy disk drives, the iSBC

INTERNAL TERMINATOR

DRIVE 0 DRIVE 1 DRIVE 2 DRIVE 3

READIWRITE CABLE ,---­ -----1 I J1 I I ( ) ( ) I I J3 J4 I P2 I (Not used) I L ______J iSBC 215'· WINCHESTER DISK CONTROLLER

Multibus'· Interface

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

1-1 General Information iSBC 215

215 controller and the iSBX 218 Flexible Disk Con­ signals required to perform the entire disk drive troller. It should be noted that the controller can interfacing task. During a disk read operation, the interface concurrently with Winchester disk drives controller accepts serial data from the disk, inter­ through connectors Jl and J2, and with other prets synchronizing bit patterns, verifies validity of storage devices through the iSBXTM Connectors, J3 the data, performs a serial-to-parallel data conver­ and J4. sion, and passes parallel data or error condition indications to host memory. During a disk write 1-2. DESCRIPTION operation, the controller performs parallel-to-serial data conversion and transmits serial write data and The iSBC 215 Winchester Disk Controller is a single the write clock to the drive. As part of the disk board assembly. It may reside in any Intel backplane format and write function, the controller appends an or in a custom-designed configuration that is Error Checking Code (ECC) at the end of each ID physically and electrically compatible with the Intel and data field. Using this ECC, the controller Multibus interface. hardware can detect errors of up to 32 bits in length; controller firmware can correct errors of up to 11 bits The host (CPU) communi­ in length (see Figure 1-3). cates 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 Wake­ The Intel 8089 I/O Processor provides optimum Up Address initiates disk activities. The controller performance with minimum CPU overhead. An Intel accesses the four blocks in the host memory to 8288 Bus Controller and 8289 Bus Arbiter control determine the specific operation to be performed, access to the Multibus interface. Intel 2732 EPROMs fetches the required parameters and completes the provide on-board storage of the controller I/O specified operation without further CPU intervention. control program and a resident diagnostic exerciser, and 2114 Static RAMs provide local memory for data The controller board generates all drive, control and buffering and for temporary storage of read/write data signals and receives the drive status and data parameters.

INTERNAL TERMINATOR

DRIVE 0 DRIVE 1 DRIVE 2 DRIVE 3

,------­ --I I J1 J2 I iSBX 218'· FLEXIBLE I ( ) DISK CONTROLLER I (CONNECTS TO J4) I J3 I P2 I P1 (NOT USED) I L ____ _

MULTIBUS'· INTERFACE

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

1-2 iSBC 215 General Information

CONTROLLER FIRMWARE CORRECTS ERRORS WITHIN 11 CONSECUTIVE BITS

TRACK n

CONTROLLER FIRMWARE

DETECTS ERRORS WITHIN f-I...------< 32 BITS------4~ 32 CONSECUTIVE BITS.

TRACK n

Figure 1-3. Automatic Error Checking and Correction

1-3. SPECIFICATIONS Table 1-2 lists typical characteristics ofthe Winches­ ter disk drives that are compatible with the iSBC 215 Table 1-1 lists the physical and performance specifi­ controller. cations of the iSBC 215 Winchester Disk 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 (seeiSBX 218'· Flexible Disk Controller specifications)

1-3 General Information iSBC 215

Table 1-1. Board Specifications (Continued)

DATA ORGANIZATION AND CAPACITY Bytes per Sector Bytes/ SECTORS 1 and Sectors per Sector 5V.. • Rotating 14" Fujitsu 2300/ 8" 14" Track: Memory Systems Shugart Mernorex Pertec Priam Priam 128 54 96 64 69 70 104 256 31 57 38 42 42 62 512 17 31 21 24 23 34 1024 9 16 11 12 12 18

Formatted Disk Bytes FORMATTED CAPACITY/DRIVE' Capacity: Sector 5V.. • Rotating Control Data 8" Shugart/ 14" Memory Systems Corp Quantum Shugart

128 8.40 MBytes 29.25 MBytes 7.08 MBytes 19.86 MBytes 256 9.65 MBytes 28.03 MBytes 8.12 MBytes 23.58 MBytes 512 10.58 MBytes 24.98 MBytes 8.91 MBytes 25.65 MBytes 1024 11.21 MBytes 19.50 MBytes 9.43 MBytes 26.48 MBytes

Bytes FORMATTED CAPACITY/DRIVE' (Cont.) Sector Fujltsu/ 8" 14" Memorex Pertec Priam Priam

128 7.99 MBytes 12.35 MBytes 23.29 MBytes 22.40 MBytes 256 9.49 MBytes 15.03 MBytes 27.94 MBytes 26.71 MBytes 512 10.49 MBytes 17.17 MBytes 30.62 MBytes 29.29 MBytes 1024 10.98 MBytes 17.18 MBytes 31.95 MBytes 31.02 MBytes

Drives per Controller: Winchester Disk Drives - Up to four 8" Shugart, Quantum, Pertec or Priam drives through connectors Jl 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 iSBC 215 TO board's iSBXTO connector, J4. Error Detecting and Correction: 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: Occupies a card slot in iSBC 604/614 Modular Cardcage/Backplane or equiv- alent MultibusTO backplane connector. Physical Characteristics: Width: 17.2 cm (6.8 inches) Length: 30.5 cm (12.0 inches) Height: 1.3 cm (0.5 inches) Weight: 0.54 kg (19 ounces) Power Requirements: +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 MultibusTO connector to be used as voltage source for -5 Volt.

Environmental: Temperature: O°C to +55°C, operating (+32°F to +131°F). -55°C to +85°C, non-operating (-6rF to +185°F). Humidity: Up to 90%, non-condensing. 'Maximum allowable for corresponding selection of Bytes per Sector. 2Applies to the following drive models: 5%" RMS 512, Control Data Corp 9410-32, 8" Shugart SA 1004, Quantum Q2010, 14" Shugart SA4008, Memorex 101, Fujitsu 2301, Pertec D8000, 8" Priam 3450 and 14" Pram 3350.

1-4 iSBC 215 General Information

Table 1-2. Winchester Disk Drive Characteristics

Rotating Control Shugart Fujitsu Memory Data Corp IsA1004'/ Quan 2301' Pertec Priam Systems 512' 9410-32' tum Q2010 Memorex 101 08020' 3450' Capacity (Unformatted) 12.7 MBytes 131.89 MBytes 10.6 MBytes 11.7 MBytes 20.13 MBytes 34.94 MBytes Read/Write Surfaces 8 ~ 4/23 4 3 5 Tracks/Surface 153 595 256 244 466 520 ByteslTrack 10.4 KBytes 13.4 KBytes 10.4 KBytes 12 KBytes 14.4 KBytes 13.4 KBytes Transfer Rate 625 KBytes/sec 806 KBytes/sec 524 KBytes/sec 593 KBytes/sec 864 KBytes/sec 806 KBytes/sec Average Access Time 70 msec 50 msec 70 msec 70 msec 50 msec 50 msec Rotational Latency 8.33 msec 8.33 msec 9.6 msec 10.1 msec 8.34 msec 8.3 msec Track to Track 3 ms 10 ms 19 msec 20 msec 12 msec 10 msec 'Open loop step positioner. 'Closed loop servo voice coil technology. 3Quantum Q2010 has 2.

1-5

CHAPTER 2 PREPARATION FOR USE

2-1. INTRODUCTION Carefully unpack the shipping carton and verify that the following items are included: This chapter provides information for use in prepar­ ing and installing the iSBC 215 Winchester Disk • iSBC 215 Winchester Disk Controller Printed Controller. Included are instructions for unpacking Wired Assembly and inspection, installation, setting switches, • iSBC 215 Winchester Disk Controller Schematic installing jumpers, and interfacing the controller Diagram board with the Multibus connector and disk drives. 2-3. BOARD INSTALLATION 2-2. UNPACKING AND INSPECTION CONSIDERATIONS

On receipt of the iSBC 215 controller from the The iSBC 215 controller can be installed in any Intel carrier, immediately inspect the shipping carton for cardcage/backplane or any user-designed backplane evidence of damage. If the shipping carton is that is compatible with the Multibus interface and damaged or water-stained, request that the carrier's meets the controller's power and Multibus connector agent be present when the carton is opened; if the dimensional requirements. The controller occupies carrier's agent is not present at the time of opening, one backplane slot. keep the carton and packing materials for subse­ quent agent inspection. When installing the controller in a serial priority environment (e.g., within any of the Intel system For repairs or replacement of an Intel product chassis), wiring modifications are required to damaged during shipment, contact Intel Technical support serial priority; a daisy-chain technique, see Support Center (refer to Chapter 5) to obtain a Figure 2-1, establishes priority, The priority input Return Authorization Number and further instruc­ (BPRN I) of the highest priority master is tied to tions. A copy of the Purchase Order should be ground. The priority output (BPRO/) of the highest submitted to the carrier with the claim. priority master is then connected to the priority

HIGHEST LOWEST PRIORITY PRIORITY

r:: BPRNI rC BPRNI r

~. ---4 \

( -'- .i .i

Figure 2-1. Serial Priority Resolution

2-1 Preparation for Use iSBC 215 input (BPRN I) of the next lowest priority master, 2-6. MUlTIBUS™ CONNECTOR and so on. ("/" following the signal name indicates an active low). This technique can accommodate a The controller communicates with the CPU and limited number of masters due to gate delays other boards via the Multibus interface. Table 2-1 through the daisy-chain. lists the Multibus connector pin assignments; Table 2-2 describes the controller Multibus interface signals. Figure 2-2 provides a diagram of the 2-4. POWER REQUIREMENT controller/Multibus interface timing signals and a table of the timing requirements. Table 2-3 gives The board requires a +5 Volt ±5% power supply at a current requirements and other characteristics maximum current of 3.25 amperes, supplied through related to the controller/Multibus interface. the Multibus connector. When interfacing with 8" Shugart/Quantum drives, an additional-5 Volt ±5% source at 150 milliamperes maximum is required. The controller is connected to the Multibus interface This -5-Volt supply can be obtained directly from the through connector PI, an 86-pin, double-sided, Multibus connector or from an on-board regulator printed circuit edge connector with 3.96 mm (0.156 that uses either the -10 or -12-Volt source from the in) contact centers. Connector P2 is not used. 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 2-7. SWITCH/JUMPER CONFIGURATIONS Multibus connector. (See individual iSBX Board specifications for tolerances and current require­ A number of switches and jumpers (see Table 2-4) are ments of these supplies.) Before installing the provided on the controller board that allow the user controller in a system chassis, make certain that the to conveniently set the controller for the system associated power supplies can supply the additional environment in which it is to operate (8-bit or 16-bit current that the controller board requires. system data bus, 8-bit or 16-bit I/O addressing, etc.) and for the type of drive to which it is to be 2-5. COOLING REQUIREMENT interfaced (Shugart/Quantum, Memorex, etc., or iSBX board). Figure 5-1 shows the location of these When the controller is installed in a high tempera­ switches and jumpers on the board. They should be ture environment, make certain the ambient operat­ set, as described in the following paragraphs, prior ing temperature does not exceed +55°C. to installing the board in a cardcage or backplane.

Table 2-1. Multibus™ Connector PI Pin Assignment

P1 (Component Side) P1 (Circuit Side)

Pin Mnemonic· Description Pin Mnemonic· Description

1 GND Signal GND 2 GND Signal GND 3 +5V +5Vdc 4 +5V +5Vdc Power 5 +5V +5Vdc 6 +Sv +SVdc Supplies 7 +12V +12Vdc 8 +12V +12Vdc 9 -5V -5Vdc 10 -SV -5Vdc 11 GND Signal GND 12 GND Signal GND

13 BCLKI Bus Clock 14 INITI Initialize 15 BPRNI Bus Pri. In 16 BPROI Bus Pri. Out Bus 17 BUSYI Bus Busy 18 BREQI Bus Request Controls 19 MRDCI Mem Read Cmd 20 MWTCI Mem Write Cmd 21 10RCI I/O Read Cmd 22 10WCI 1/0 Write Cmd 23 XACKI XFER Acknowledge 24 INH11 Inhibit 1 disable RAM

25 Reserved Bus 26 INH21 Inhibit 2 disable PROM or ROM 27 Byte High Enable Controls BHENI 28 ADR101 29 CBRQI Common Bus Request ADR111 and 30 Address Address 31 CCLKI Constant Clk 32 ADR121 Bus 33 INTAI Intr Achknowledge 34 ADR13

2-2 iSBC 215 Preparation for Use

Table 2-1. Multibus™ Connector PI Pin Assignment (Continued)

P1 (Component Side) P1 (Circuit Side) Pin Mnemonic· Description Pin Mnemonic· Description

35 INT61 Parallel 36 INT71 Parallel INT41 Interrupts 37 Interrupt 38 INT51 Interrupt INT21 40 39 Requests INT31 Requests 41 INTOI 42 INT11

43 ADREI 44 ADRFI 45 ADRCI 46 ADRDI 47 ADRAI 48 ADRBI 49 ADR81 Address 50 ADR91 Address Address 51 ADR61 Bus 52 ADR71 Bus 53 ADR41 54 ADR51 55 ADR21 56 ADR31 57 ADROI 58 ADR11

59 DATEI 60 DATFI 61 DATCI 62 DATDI 63 DATAl 64 DATBI 65 DAT81 Data Data 66 DAT91 Data 67 DAT61 Bus 68 DAT?I Bus 69 DAT41 70 DAT51 71 DAT21 72 DAT31 73 DATOI 74 DAT11

75 GND Signal GND 76 GND Signal GND 77 Reserved 78 Reserved Power 79 -12V -12Vdc 80 -12V -12Vdc Supplies 81 +5V +5Vdc 82 +5V +5Vdc 83 +5V +5Vdc 84 +5V +5Vdc 85 GND Signal GND 86 GND Signal GND

• "I" follewing-tfle-signa~ name- indicates an active low.

Table 2-2. iSBC 215™ ControllerlMultibus™ Interface PI Signal Descriptions

Signal Functional Description

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

BCLKI Bus Clock. Used to synchronize the bus contention logic on all bus masters. BHENI Byte High Enable. When active low, enables the odd byte bank (DAT8/-DATF/) onto the Multibus'· connector. BPRNI Bus Priority In. When low indicates to a particular bus master that no higher priority bus master is requesting use of the bus. BPRNI is synchronized with BCLK/.

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

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

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

CBRQI 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. DA TOI -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-DAT? is the even byte and DAT8-DATF I is the odd byte.

2-3 Preparation for Use iSBC 215

Table 2-2. iSBC 215™ ControllerlMultibus™ Interface PI Signal Descriptions (Continued)

Signal Functional Description

INITI Initialize. Reset the entire system to a known internal state. INTO/-INT71 Interrupt Request. These eight lines transmit interrupt requests to the appropriate interrupt handler. INTOI has the highest priority. 10WCI I/O Write Command. Indicates that the address of an 1/0 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.

Master Command Access Timing

BUSYI ~ BUS ACCESS BUS RELEASE 'Y ~tDBj ADDREss ______~>E~:~~~~~~~~~~~~~~~~-A-D-D-R-E-SS--S-TA-B-L-E~~~~~~~~~~~~~~~~~~)(~ ______

WRITE DATA ------...,~~------DATA STABLE-----~--tA-H--*~------I ~tDHW~ READ DATA ______...,.... ______--'~lf-~-- DATA STABLE ?<~-.:...... ------

COMMAND (MRDCIOR MWTC/) r-'''~ '''"F'------~---t-D-sx-~I·--·~I·--tx-KC-O~ XACKI \~-----'/

Slave Command Timing

1/0 ADDRESS ~ ADDRESSSTABLE------~~ ~~ ~~~ liD WRITE DATA (FROM SYSTEM CPU) ~~~~~~~=)f~~------DATASTABLE------~;>,c~~----

t3=tSDS !+-tSDHW _! COMMAND (IOWC/) - ~~------~--~{~-- ______~I~r_~-_-_-_-_-_-_-_-_-_-_-_tA_C_C_-~_-_-_-_-_-_-~_-_-~_-_-~~ ~-tX-K-O---- XACKI

~ ______-J

Figure 2-2. Master Command Access Timing

2-4 iSBC 215 Preparation for Use

Bus Exchange Timing

14 'BcY_I_'BL_I_'BH_1 BCLKI \.f. '\ Y \.f. BREQI ~'D'Dl '}:---I~--IW-A-IT------'~I-----'------ID-B-P-N------+------BPRNI ------~~ \~~------~----~------IDBYF-t-141---_.1 q-IDBY BUSYI ______y~~)------~------~~HIGHZ~~------­ f--IDBPO-I )l BPROI (( ,,'------

Time in Nanoseconds Parameter Description Minimum Maximum

tSAS 50 Address Setup Time to 1/0 Command tsos 0 Data Setup Time to 1/0 Command tSAH 15 Address Hold Time from 1/0 Command tSOHW 30 Data Hold Time from 1/0 Command tACC 8000 1/0 Access Time tXKO 100 XACK/Hold Time from 1/0 Command

tBCY 125 Bus Clock Cycle Time tBL 65 Bus Clock Low tBH 35 Bus Clock High tORO 35 Bus Request Delay tOBY 60 Bus Busy Turn On Delay tOBYF 35 Bus Busy Turn Off Delay tDBPN 15 Priority Input Setup Time tOBPO 25 BPROISerial Delay from BPRNI tWA IT 00 Requesting Master Bus Access Time

tOB 50 Busy to Address/Data Delay tsc 50 Address/Data Setup to Command tXKCO 750 XACKI to Command Turn Off tAH 50 Address Hold Time tOHW 50 Data Hold Time tOHR 0 Read Data Hold Time tosx 0 Data Setup Time Before XACKI

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

2-5 Preparation for Use iSBC 215

Table 2-3. iSBC 215™ ControllerlMultibus™ Interface Signal Characteristics

Driver 1, 3 Receiver 2, 3

Bus Location Type IOL IOH Co Location IlL IIH CI Signals Minma Mln/Ja Minp1 Maxma Max/Ja Maxpl

·DATO/- Masters TRI 32 -5000 300 Masters -0.5 125 18 DATF/ and (16 lines) Slaves ADRO/- Masters TRI 32 -5000 300 Slaves -0.8 90 18 ADR13/. BHEN/ (21-lines) MRDC/. Masters TRI 32 -5000 300 Slaves -0.7 50 18 MWTC/

Slaves -0.4 20 5 IOWC/ XACK/ Slaves TRI 48 -2000 300 Masters -1.2 60 18 BCLK/ Master -0.5 60 18 BREQ/ Each TTL 10 -400 60 Master BPRO/ Each TTL 10 -400 60 Master

BPRN/ Master -0.5 60 18 BUSY/. All O.C. 20 - 250 All -0.5 60 18 CBRQ Masters Masters INIT/ All -0.5 60 18

INTO/- Slaves O.C. 40 ~ 300 INT7/ (8 lines)

Notes: 1. Driver Requirements: 3. Low and High Voltage Requirements: IOH = High Output Current Drive Receiver: IOL = Low Output Current Drive Co = Capacitance Drive Capability 0~VIL~0.8V TRI = 3-State Drive O.C.= Open Collector Driver 2.0V~VIH~5.5V TTL = Totem-pole Driver Driver: 2. Receiver Requirements: O~VOL ~0.5V IIH = High Input Current Load IlL = Low Input Current Load 2.4V ~ VOH ~ 5.5V CI = Cap Active Load

2-8. WAKE-UP ADDRESS SELECTION switches (81-1 through 81-8 and 82-3 through 82-10, see Figure 5-1) are provided on the controller board The controller communicates with the host CPU that allow the user to set the controller for the through four I/O communications blocks located in selected wake-up address. The function of each the host memory. When the controller is to receive switch is shown in the table in Figure 5-1. Any instructions. it goes to the beginning address of the switch set to ON represents a logical 1. first I/O communication block. This address is called the wake-up address (WUA). The WUA may The controller multiplies the settings of the WUA be at any address in host memory. 8ixteen WUA switches by 24 (shifts the number four places to the

2-6 iSBC 215 Preparation for Use left) to create a 20-bit WUA. Note that due to this 2-11. INTERRUPT PRIORITY LEVEL shift, the four least-significant bits of the selected WUA must be zeros. When accessing host memory, The controller's internal interrupt request signal can the controller transmits the entire 20-bit WUA be assigned to any of eight interrupt priority levels through the Multibus interface. If the host memory (INTOI to INT7 I) on the Multibus connector. To uses 16-bit addressing, the four most significant bits select the interrupt request priority level, place a ofthe 20-bit WUA must be zero. This is accomplished jumper link as shown in Table 2-5 and Figure 5-1. by setting the four most significant bits of the WUA switches (Sl-l through Sl-4) to zero. Table 2-5. Interrupt Priority Level Selection

Table 2-4. Configuration Jumpers Wire Wrap and Switches Priority Level Selected From Pin To Pin Pin or Switch Function 0 W19-C W19-0 Wake-Up Address S1-1 through S1-8 1 W19-C W19-1 S2-3 through S2-10 2 W19-C W19-2 8-Bit or 16-Bit System S2-1 3 W19-C W19-3 Data Bus Capability r W19-C W19-4 8-Bit or 16-Bit Host S2-2 Processor liD Port 5 W19-C W19-5 Addressing 6 W19-C W19-6 Interrupt Priority Level W19-C to W19-0 7 W19-C W19-7 through W19-7 Any Request W18 Common Bus Request W23 Voltage Selection W20- and W21 2-12. ANY REQUEST SELECTION Winchester Drive W1, W2, W5, W6 Manufacturer Selection through W10 The any request function allows the controller to be W13 through W17, W22 set to relinquish control of the Multibus interface iSB'X Bus Control W3, W4, W11 and W12, W24 following a request from: 1. A higher priority device only (jumper be­ tween pins W18-1 and W18-2 on the control­ 2-9. WAKE-UP 110 PORT ler board). ADDRESS SELECTION 2. Any device, lower or higher priority, (jumper The host processor communicates with the controller between pins W18-1 and W18-3). through an I/O port. The WUA switches also set the Figure 5-1 shows the location of the selection pins. address of this I/O port. For a host processor with 8-bit I/O port addressing, bits 0 through 7 of the unshifted WUA determine the wake-up I/O port 2-13. COMMON BUS REQUEST address; for a host processor with 16-bit I/O port addressing, bits 0 through F determine the address. The common bus request function allows the con­ troller to take advantage of higher bus transfer rates I/O Address Selection switch S2-2 on the controller by arbitrating for the use of the bus only when other board (see Figure 5-1) determines the type ofI/O port bus controllers have access requests pending. The addressing the host processor uses: ON for 16-bit controller will: addressing; OFF for 8-bit addressing. 1. Arbitrate for the bus on every access, (jumper between pins W23-1 and W23-2 on the controller). 2-10. SYSTEM DATA BUS SELECTION This mode is used when other bus controllers do not implement common bus request. System data bus selection switch S2-1 on the con­ troller board (see Figure 5-1) sets the controller for 2. Arbitrate for the bus to acquire the bus for the the type of system data bus with which the controller first access and rearbitrate only when another is to interface: ON for 16-bit bus, OFF for an 8-bit bus controller requests use of the bus. bus. This switch allows the controller to use its 16-bit data transfer mode to access the system bus (if the 2-14. WINCHESTER DRIVE INTERFACE system memory supports 16-bit accesses), even though the host processor only supports H-bit The iSBC 215 Winchester Disk Controller has been accesses. designed to communicate with any of four unique

2-7 Preparation for Use iSBC 215

Table 2-6. 8" Winchester Drive Manufacturer Selection

MANUFACTURER Jumper Function No. Memorex/ 8" Shugart/ 14" Shugart 5'1." RMS Quantum Fujitsu 2300 Pertee Priam CDC From To From To From To From To From To From To

W1 1 3 1 3 1 3 1 2 1 2 1 3 Open/Closed Head Positioning W2 - - -- 1 2 - - 1 2 1 2 Vendor Select W5 1 2 1 3 1 2 1 2 1 2 1 3 RD- } W6 1 2 1 3 1 2 1 2 1 2 1 3 RD + Level W7 1 2 1 3 1 2 1 2 1 2 1 3 RDCL + Select W8 1 2 1 3 1 2 1 2 1 2 1 3 RDCL- W9 -- 1 2 ------1 2 Shugart Tri-State Select W10 1 2 1 2 - - 1 2 1 2 1 2 Radial Select W13 1 2 1 2 1 3 1 2 1 3 1 3 Hard/Soft Sectoring W14 1 2 1 2 1 3 1 3 1 3 1 3 Shugart AM Control W15 - -- - 1 2 1 2 1 2 1 2 Shugart GAP Control W16 1 2 1 2 1 3 1 2 1 3 1" 3 Hard/Soft Sectoring W17 1 2 1 2 1 2 1 2 - - 1 2 INDEX Select W22 1 2 1 2 1 2 1 3 1 2 1 2 Pertec RD Clock Select NOTE - means not installed 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" drives come with closed-loop firmware and with Shugart/Quantum, Memorex/14" Shugart, Pertec jumpers preset for Pertec drives. Converting the and Priam.! The Shugart, Quantum and Memorex controller from the 8" Shugart/Quantum interface to drives use a stepper motor for head positioning a Memorex/14" Shugart interface or from Pertec to (called open-loop head positioning); the Pertec and Priam merely requires changing the connections of Priam drives use a linear positioner coupled with a some of the jumpers as shown in Table 2-6 and servo surface on one disk for position feedback Figure 5-1. Converting the controller from an open­ (closed-loop head positioning). loop interface to a closed-loop interface, and vice versa, requires the ROMs to be changed in addition 1 The manufacturer's models with which the control­ to changing jumpers. ler interfaces are: 8" Shugart (Models SAI002 and SA 1004), Quantum (Models Q2010, Q2020, Q2030 Interface cables must also be constructed and in­ and Q2040), Memorex (Models 101 and 102), 14" stalled according to the type of drive being used as Shugart (Models SA4004 and SA4008), Pertec (Model described in Paragraph 2-15. D8000), Rotating Memory Systems (Models 506 and 512) and Control Data Corporation (Models 9410 24 and 32), Priam (Models 570, 1070, 2050, 3350 and 2-15. -5-VOLT SELECTION (8" SHUGART/ 3450). QUANTUM CDC DRIVES ONLY) The controller can control up to four 8" Shugart, Figure 5-1 shows the location ofthe Voltage Selection Quantum, Pertec or Priam drives, or up to two pins for the -5 Volt power supply. Install jumpers as described in Table 2-7 to select -5 volts either from Memorex or 14" Shugart drives. It cannot control drives of different manufacturers concurrently. the Multibus connector or from the on-board regula­ tor and to select the voltage source for the regulator. The jumpers listed in Table 2-6 allow the controller to be set for the selected drive type. In addition, two 2-16. CABLING REQUIREMENTS versions of the controller firmware (located in ROMs U87 and U88) are available, one for use with open­ Interface cables between the controller and the disk loop type drives and one for closed-loop drives. drives must be fabricated according to the type of Boards configured for use with open-loop drives drive being used and the number of drives. Figures 2-3 come from the factory with open-loop firmware through 2-7 show the connector pin assignments for installed and with jumpers preset for 8" Shugartl the controller and for each type of drive. A 50-pin Quantum drives; boards configured for closed-loop mass-terminated socket connector 3M 3425/6050 or

2-8 iSBC 215 Preparation for Use equivalent, is recommended for mating with J1 of separate MFM read/write cable is then required to the controller board. A 40-pin 3M 3417-6040 or transmit read/write information between the data equivalent connector is recommended for mating separator and the drive. with J2. The mass-terminated sockets are easily attached to flat ribbon cable using the jig that the When controlling multiple drives, Drive 0 (which is connector manufacturer supplies. The Control Cable called the master and is equipped with the data that connects to J1 requires a 50-conductor ribbon separator) allows control and read/write data to be cable; the Read/Write cable that connects to J2 routed to and from up to three additional slave requires one or two 20-conductor ribbon cables, drives. The control cable for multiple drive configur­ depending on the drive configuration (refer to Para­ ations is daisy-chained from the master to the slave graph 2-16). Cable length for the control cable cannot drives. Physically, the cable consists of a ribbon exceed a total length of 10 feet; total length for any cable with an in-line connector for each drive. One Read/Write cable must not exceed 10 feet. See the MFM read/write cable is required from each slave respective service manual for the type of connectors drive to the master drive. required for the cable end that connects to the drives.

Each of the cables shown in Figures 2-3 through 2-7 Memorex 101 and 102 or Shugart SA4000. The require a number of wire cross-overs "scrambling" controller can drive one or two Memorex/14" Shugart between the controller connectors and the drives. It drives. When connecting the controller to a single is suggested that the scrambling be done at the drive drive, both a control and a read/write cable are interface connector. required. When controlling two drives, a single cable, such as the control cable described for the Shugart/Quantum drives, is required that daisy­ NOTE chains the control information to both drives as The cabling and drive interconnecting infor­ shown in Figure 2-10. A split (bifurcated) cable is mation given in Paragraphs 2-15 and 2-16 required to route NRZ read/write data to and from and in Figures 2-3 through 2-6, reflect the the two drives. 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 Pertec D8000 and Priam 570, 1070, 2050 and assignments and interface requirements. 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 bifur­ 2-17. DRIVE INSTALLATION cated (split) cable that combines the control lines and the read/write lines from the controller is The requirements for connecting the controller to the requires as shown in Figure 2-10. When controlling disk drive or drives varies between drive types. The multiple drives, a cable such as the control cable following discussion and Figure 2-10 describes the described for the Shugart drives is required that specific interconnection requirements for each drive daisy-chains the control and read/write information type. between the four drives.

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

Table 2-7. -5-Volt Selection

Jumper From To Function

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

2-9 Preparation for Use iSBC 215

8" Shugart/Quantum Drive Cable Wiring Diagrams

8" Shugart/Quantum Drive 0 iSeC 215 Controller· Shugart Data Separator iSeC 215 Controller Connectors· Mating Connector Mating Connector J1 Mating Connector J5 J1 Mating Connectors J2 50-Pin 0 50-Pin 0 20-Pin 0 50-Pin 0 40-Pin 0 -READ GATE (RDGATE/) 1 1 12 Ground (GND) .. 2 2 36 Ground (GND) -AMF (SECTOR/) .. 3 .. 30 3 .. 16 -Head Select 22 (-HS2/) Ground (GND) 4 27 4 37 .. -WRAM (ADMKEN/) .. 5 5 42 Ground (GND) .. 6 6 40 -RWC (RDWRCUR/) .. 7 7 27 -SEEK COMPLETE (SKCOM/) Ground (GND) .. 8 19 8 8 Ground (GND) .. +NRZ WRITE DATA (WRO+) .. 9 44 9 5 .. -NRZ WRiTE DATA (WRO-) .. 10 10 24 Ground (GND) .. 11 11 25 +WRITE CLOCK (WRCLO-) .. 12 12 26 Ground (GND) -WRITE CLOCK (WRCLO+) .. 13 .. 31 13 .. 6 -HEAD SELECT 2°(-HSO/) Ground (GND) 14 26 14 7 .. +READ CLOCK (RDCLO+) .. 15 15 3 -READ CLOCK (RDCLO-) .. 16 16 23 Ground (GND) Ground (GND) .. 17 32 17 4 -HEAD SELECT 2 (-HS1/) .. +NRZ READ DATA (RDO+) .. 18 2 18 21 Ground (GND) .. -NRZ READ DATA (RDO-) .. 19 39 19 2 -INDEX (INDEX/) .. Ground (GND) .. 20 15 20 22 Ground (GND) .. .. 21 35 -READY (READY I) .. 22 ,. 11 Shugart Data Separator 8" Shugart/Quantum Drive 0 Mating Connector Mating Connector 23 2o-Pin 20-Pin 24 0 0 25 -DRIVE SELECT 1 (USO/) -DRIVE SELECTEDI 26 22 1 1 .. Ground (GND) .. 27 2 .. 2 -DRIVE SELECT 2 (US1/) SPARE 28 ,. 23 3 3 Ground (GND) Ground (GND) .. 29 47 4 ,.. 4 -DRIVE SELECT 3 (US2/) .. SPARE 30 24 5 5 Ground (GND) .. Ground (GND) .. 31 48 6 ,.. 6 -DRIVE SELECT 4 (US3/) .. SPARE 32 25 7 7 Ground (GND) .. Ground (GND) .. 33 .. 49 8 .. 8 -DIRECTION IN (DIR/) +TIMING CLK 34 21 9 9 .. -TIMING CLK .. 35 10 10 -STEP (STEP/) Ground (GND) .. 36 .. 20 11 ,.. 11 Ground (GND) 37 12 .. 12 +MFM Write Clock 38 13 13 -MFM Write Clock .. 39 14 14 -WRITE GATE (WRGATE/) Ground (GND) .. 40 13 15 ,. 15 Ground (GND) .. Ground (GND) 41 .. 38 16 .. 16 -TRACK 000 (TRACK 0/) +MFM READ DATA 42 .. 17 17 17 Ground (GND) -MFM READ DATA .. 43 41 18 18 -WRiTE FAULT (FAULT/) .. Ground (GND) .. 44 .. 9 19 19 Ground (GND) Ground (GND) .. 45 .. 34 20 .. 20 46 through 50 - no connections 'iSBC 215'" Controller (signal name) in parentheses.

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

2-10 iSBC 215 Preparation for Use

.. 49/33 .. 25 ... 20 81 °1 °1 2 .. 50/34 26 .. 50 21 .. 40 .. 13 Shugart/Quantum 40·Pin 3M Female 0) 5O-Pln Card Connector °1 Edge Connector G RMS 2 20 20-Pin Card .. 34-Pln Card 84 Edge Connector 0) Edge Connector

S" Shugari/QuantumlAMS Drive 0 iSBC 215 Controller 0IIII(

50-Conductor Ribbon Cable

Scramble Wires at drive.

Ribbon Cable 1;:--:-=---=2~o-co~nduct:or:-=-=-:-:------;-;--11° 1 ------

Data Separator

Drive 0 Data Separator

~ ~

o ~~~~=-~2~O-co~nduct;;or~- Ribbon Cable -==-===~. -- 0) ~------

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

2-11 Preparation for Use iSBC 215

Fujitsu 2300/Memorex/14" Shugart Drive Cable Wiring Diagram

Memorex/14" Shugart Drive iSeC 215 Controller· Memorex/14" Shugart Drive iSec 215 Controller· Mating Connector Connector J1 Mating Connector Connector J2 50-Pin (2) 50-Pin 0 Drive 0 20-Pin 0 40-Pin 0

1 -Head Select 0 (-HSO/) 2 26 2 Ground (GND) .. 3 30 3 -Head Select 1 (-HS1/) .. 4 2 4 Ground (GND) .. 5 31 5 -Head Select 2 (-HS2/) .. 6 27 6 Ground (GND) ... Seek Complete (SKCOMOI) 7 32 7 29 ... Ground (GND) .. 8 8 ... 10 -Write Data (WRO-) 9 9 ... 5 -Index (INDEX/) +Write Data (WRO+) 10 15 10 24 Ground (GND) .. Ground (GND) .. 11 40 11 22 -Drive Ready (READY/) .. -Write Clock (WRCLO-) .. 12 11 12 ..- 26 Ground (GND) .. +Write Clock (WRCLO+) 13 ..- 36 13 6 -Sector/Byte Clock (SECTOR/) Ground (GND) ... 14 ..- 16 14 ..- 4 Ground (GND) 15** -PLO Clock (RDCLO-) 15 41 23 -Drive Select 1 (USO/) .. +PLO Clock (RDCLO+) .. 16 22 16 3 Ground (GND) • Ground (GND) .. 17 47 17 25 -Drive Select 2 (US1/) • +Read Data (RDO+) .. 18 ~ 23 18 21 Ground (GND) -Read Data (RDO-) ... 19 .. 48 19 .. 2 -Drive Select 3 (US2/) Ground (GND) 20 24 20 7 Ground (GND) .. .. 21 49 -Drive Select 4 (US3/) .. Memorex/14" Shugart Drive iSec 215 Controller· 22 .. 25 Mating Connector Connector J2 23 Drive 1 -Direction (DIR/) 24 21 20-Pin 40-Pin Ground (GND) .. 0 0 25 44 -Step (STEP/) .. 26 ..- 20 1 27 2 -Fault Clear (FL T CLR/) 28 .. 18 3 29 4 -Write Gate (WRGATE/) 30 ..- 13 5 Ground (GND) 31 38 6 - Track 0 (TRACK 01) .. -Seek Complete (SKCOM1/) 32 17 7 ..- 38 Ground (GND) .. Ground (GND) 33 .. 33 8 .. 13 -Write Fault (FAULTI) -Write Data (WR 1-) 34 9 9 14 Ground (GND) .. +Write Data (WR1+) ... 35 35 10 33 -Read Gate (RDGATE/) .. Ground (GND) .. 36 ..- 12 11 34 Ground (GND) -Write Clock (WRCL 1-) .. 37 37 12 35 Ground (GND) ... +Write Clock (WRCL 1+) .. 38 ..- 40 13 15 Ground (GND) • 14 31 -PLO Clock (RDCL 1-) .. 15 32 +PLO Clock (RDCL 1+) .. 16 .. 12 Ground (GND) 17 16 T +Read Data (RD1+) • *iSBC 215 • Controller (signal name) in parentheses. 18 30 **When interface with a 14" Shugart drive pins 15 and 16 on -Read Data (RD1-) .. 19 11 both radial connectors should be swapped: pin 15, +PLO Ground (GND) • Clock (RDCLO+); pin 16, -PLO Clock (RDCLO-). 20 • 36 Figure 2-4. Fujitsu 2300/Memorex/14" Shugart Drive Interconnecting Cable Requirements

2-12 iSBC 215 Preparation for Use

~ 49 ~ 25 ~ 20 I 01 I 0\ 2------:~~ 50 26 ~ 50 21 .. 40 50-Pin Card 40-Pin 3M Female ~ 19 (2) Edge Connector 8 Connector

50-Pin 3M Female 20-Pin Card (0 Connector Edge Connector 8 ,---I_----J 8

2 ~ 29

Memorex/14" Shugart Drive 0 iSBC 215 Controller

50-Conductor -Ribbon Cable------==

- -\--

Memorex/14" Shugart Drive 0 0lil('------F ----\

~ Memorex/14" Shugart \ ~ ____ ~===-==-~40~-Conductor r-8~----+~~~~~IGDrive 1 \ Ribbon Cable 8 "-\

- J2 MatingMemOr~ShUgart ~ Connectors Scramble Wires at drive.

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

2-13 Preparation for Use iSBC 215

Pertec Drive Cable Wiring Diagram Pertec Drive· Mating Connector iSBC 215 Controller Connector· 50-Pin Q) J1 50-Pin 0 J2 40-Pin 0 1 1 2 I/O Bus Bit a (BUS 0/) )_ 26 3 I/O Bus Bit 1 (BUS 1/) ~ 2 4 110 Bus Bit 2 (BUS 2/) 27 5 I/O Bus Bit 3 (BUS 3/) • )- 3 6 I/O Bus Bit 4 (BUS 4/) )- 28 7 I/O Bus Bit 5 (BUS 5/) ~ 4 8 110 Bus Bit 6 (BUS 6/) )- 29 9 I/O Bus Bit 7 (BUS 7/) 5 10 Ground (GND) .. 30 Ground (GND) .. 11 )- 31 Call Request (COMMAND/) 12 7 Ground (GND) • 13 )- 32 Drive Request 14 8 Ground (GND) .. 15 )- 33 16 Transfer Acknowledge (BUS ACK/) .. 14 17 18 Safe (GND)

19 Drive Ready 20 11 Ground (GND) .. 21 36 I/O Ready (SKCOM/) .. 22 19 Ground (GND) .. 23 )- 37 Write Gate 24 13 Ground (GND) • 25 38 Read Gate .. 26 12 Ground (GND) .. 27 ~ 39 24 Read/Write Data Plus (RDO- and WRO-) 28 ! : 2 29 Read/Write Data Minus (RDO+ and WRO+) 21 Ground (GND) 30 40 t 5 Unit Select a .. : 31 ~ 22 Unit Select 1 32 23 Unit Select 2 • 33 24 Unit Select 3 • 34 )- 25 Ground (GND) 35 41 36 Read/Write Clock Plus RDClO-) • .. 23 37 Read/Write Clock Minus (RDClO+) )_ 3 Ground (GND) 38 ------~~------~~~~------~Read/Write Address Mark (ADMKEN/) ..~ 44 39 ------~)_~ 42 40 Address Mark Detect (SECTOR/) 41 ------~------~------~..~ 16 Ground (GND) 42 .. 47 ------~~~------~Index ~ 43 ------~~~ 15 44 Ground (GND) 45 ------~~------~)_ 22 46 Ground (GND) 47 ------~~------~.. 4 48 'iSBC 215'· Controller (signal name) in parentheses. Ground (GND) 49 ------~~------~.. 25 Figure 2-5. Pertec Drive Interconnecting Cable Requirements

2-14 iSBC 215 Preparation for Use

~ 49 .. 25 ... 20 81 01 2 .. 50 26 .. 50 21 .. 40 8 0 50-Pin 3M Female Connector G 40-Pin 3M Female Connector

Pertec iSBC 215 Controller ... Drive

50-Conductor Ribbon Cable

Pertec Mating J1 Connector

Scramble Wires at drive. 40-Conductor Ribbon Cable

J2

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

2-15 Preparation for Use iSBC 215

Priam Drive Cable Wiring Diagram Priam Drive Mating Connector iSBC 215 Controller Connector 50-Pin (2) J1 50-Pin ® J2 40-Pin 0 ~ +DBUS 0 (BUS 0/) .. 2~ 3 _+D~B~U~S~1_(~B~U~S__ 1/~) ______~~.. 2 4 +DBUS 2 (BUS 2/) .. 27 5 +DBUS 3 (BUS 3/) .. 3 +DBUS 4 (BUS 4/) 6 28 +DBUS 5 (BUS 51) .. 7 4 8 +DBUS 6 (BUS 6/) .. 29 +DBUS 7 (BUS 7/) .. 9 5 10 Ground (GND) .. 30 -READ GATE .. 11 12 12 Ground (GND) .. .. 31 13 Ground (GND) 14 32 -WRITE GATE • 15 13 Ground (GND) .. 16 33 -RD .. 17 7 -WR .. 18 20 +AD1 .. 19 45 +ADO .. 20 21 Ground (GND) .. 21 35 -DRIVE SELECT 1 .. 22 22 -DRIVE SELECT 2 .. 23 23 -DRIVE SELECT 3 .. 24 24 -DRIVE SELECT 4 .. 25 25 Ground (GND) .. 38 26 ------~-=~------~Ground (GND) .. 27 .. 39 28 -HEAD SELECT 3 29 .. 43 _-~H~E~A~D_S~E~L~E~C~T_2______~~ 30 18 -HEAD SELECT 1 .. 31 10 Ground (GND) .. 32 41 -INDEX .. 33 15 Ground (GND) .. 34 19 -READY .. 35 11 Ground (GND) .. 36 .. 44 -SECTOR MARK 37 16 38 ------~..Ground (GND) .. 47 +WRITE DATA 39 5 -WRITE DATA .. 40 24 Ground (GND) .. 41 22 +WRITE CLOCK .. 42 26 -WRITE CLOCK .. 43 6 Ground (GND) .. 44 4 +READ/REFERENCE CLOCK .. 45 ~~------~-READ/REFERENCE CLOCK ..~ 23 46 ------~.. 3 47 _G~ro~u~n~d~(G~N~D~)------~..~ 25 +READ DATA 48 --~~~~------~..-READ DATA 21 49 2 Ground (GND) 'iSBC 215'· Controller (signal name) in parentheses. 50 .. 7 Figure 2-6. Priam Drive Interconnecting Cable Requirements

2-16 iSBC 215 Preparation for Use

~ 49 • 25 ----.... 20 81 °1 01...-1 _----I 2 • 50 26 • 50 21 .40 8 0) 50-Pin 3M Female Connector o 40-Pin 3M Female Connector

Priam Drive iSBC 215 Controller ......

50-Conductor Ribbon Cable

Priam Maling J1 Connector

...~==4~0_~c~on~du~c~to~r Ribbon Cable ~~~~ 0

J2

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

2-17 Preparation for Use iSBC 215

51ft" RMS Drive Cable Wiring Diagrams

51f.' RMS Drive 0 Isac 215 Controller* RMS Data Separator RMS Drive 0 Mating 0nector Mating Connector J1 Mating (;)nector Mating Connector 34-Pln 1 50-Pin 0 2o-Pln 4 2o-Pln 0

-DRIVE SELECTED/ ~ 1 Ground (GND) 2 2 2 SPARE .. 3 3 3 -Head Select 22 (-HS2!) Ground (GND) .. 4 ~ 27 4 4 Ground (GND) SPARE .. 5 ... 30 5 ~ 5 Write Gate (WRGATE) Ground (GND) 6 ~ 13 6 6 Ground (GND) SPARE .. 7 .. 38 7 ... 7 -SEEK COMPLETE (SKCOM!) Ground (GND) 8 ... 19 8 8 Ground (GND) +TIMING CLK .. 9 ~ 44 9 ~ 9 Track 000 (TRACK01) -TIMING CLK 10 ... 17 10 .. 10 Ground (GND) Ground (GND) 11 .. 41 11 ~ 11 Write Fault (FAULT/) Ground (GND) 12 ~ 9 12 12 Ground (GND) +MFM Write Clock ... 13 .. 34 13 13 -HEAD SELECT 2° (-HSO/) -MFM Write Clock .. 14 26 14 ~ 14 Ground (GND) .. Ground (GND) 15 31 15 15 .. Ground (GND) .. 16 16 16 +MFM READ DATA .. 17 17 17 -HEAD SELECT 2' (-HS1/) -MFM READ DATA .. 18 2 18 18 Ground (GND) .. Ground (GND) .. 19 ~ 32 19 ... 19 -INDEX (INDEX/) Ground (GND) 20 15 20 .. 20 Ground (GND) .. 21 .. 39 -READY (READY/) 22 11 RMS Data Separator iSaC 215 Controller Connectors· Ground (GND) .. 23 35 Mating Connector J5 J1 Mating Connectors J2 Step (STEP!) .. 24 .. 20 2o-Pin 0 50-Pin 0 4o-Pin 0 25 -DRIVE SELECT 1 (USO!) -READ GATE (RDGATE!) 26 ~ 22 12 Ground (GND) Ground (GNDJ .. 27 ... 47 2 36 -DRIVE SELECT 2 (US1!) -AMF (SECTOR!) .. 28 .. 23 3 .. 16 Ground (GND) Ground (GND) 29 .. 48 4 37 -DRIVE SELECT 3 (US2/) -WRAM (ADMKEN/) .. 30 .. 24 5 ... 42 Ground (GND) Ground (GND) 31 )0 49 6 .. 40 -DRIVE SELECT 4 (US3!) -RWC (RDWRCUR!) 32 .. 25 7 ... 27 Ground (GND) 33 8 .. 8 -DIRECTION IN (DIR/) +NRZ WRITE DATA (WRO+) 34 .. 21 9 5 -NRZ WRITE DATA (WRO-) .. 10 24 Ground (GND) ... 11 25 +WRITE CLOCK (WRCLO-) .. 12 26 -WRITE CLOCK (WRCLO+) .. 13 ... 6 Ground (GND) 14 ... 7 +READ CLOCK (RDCLO+) 15 3 -READ CLOCK (RDCLO-) .. 16 .. 23 Ground (GND) 17 ~ 4 +NRZ READ DATA (RDO+) 18 ~ 21 -NRZ READ DATA (RDD-) 19 2 Ground (GND) .. 20 ~ 22

*iSBC 215™ Controller (signal name) in parentheses.

Figure 2-7. 51ft" RMS Drive Interconnecting Cable Requirements

2-18 iSBC 215 Preparation for Use

Control Data Corp Drive Cable Wiring Diagrams

Drive Mating Isec 215 Controller* Connector Mating Connector J1 50-Pin 0 50-Pin 0 Step (STEP!) 1 36 • 20 2 37 3 Ground (GND) .. 37 38 Read______Enable (RDGATE!) ~.~12 4 39 Write Gate (WRGATE/) 5 40 .. 13 Fault Reset (FLTCLR1) Ground (GND) 6 ------~----~----~.~18 41 ~ 38 TRACK 0 (TRACK 0/) 7 42 • 17 8 _-H_e~a~d~Se_l_e_ct_2_'_(~H_S_4~) ______~.~ 2 43 9 Ground (GND) Vcc 31 44 10 45 11 T 46 Ground (GND) 12 47 35 Write Fault (FAULT/) • 13 Byte Clock* 48 9 Head Select 2° (HSO/) Ground (GND) • 14 26 to Sector 49 .. 33 Ground (GND) 15 • 30 Pulse Conversion 50 • (SECTOR!) 16 Logic 16 17 Drive Mating Connector Isec 215 C ontroller 18 2o-Pin Mating Con nector J2 19 -INDEX (INDEX!) 20 15 Ground (GND) 1 J1 - 15 21 .- 40 • Drive Ready (READY/) 2 J2 - 10 22 • 11 ------.....,._ To Sector Generator• Board 23 Ground (GND) • 36 • J2 - 29 (SKCMO) 3 24 Byte Block I 4 5 25 ....G_r_ou_n-:d-'-( G_N __ D.:..) ~:-:-: ______---,.~ 40 26 Drive Select 1 (USO!) • 22 6 7 )0 J 1 - 11 27 ..;;G_ro~u;"..n....;d--,-,(G:....N_D-,-)------i.~ 47 8 28 Drive Select 2 (US1/) • 23 Write Data + (WRO+) Ground (GND) 9 .. 5 29 .. 48 Write Data - (WRO-) Drive Select 3 (US2!) 10 .- 24 30 ..,,----,...... ,...,....,.=-:-~--:....------l.-~ 24 Ground (GND) 11 ~ 22 31 Ground (GND) Write Clock + (WRCLO+) .. 49 12 26 Drive Select 4 (US3!) Write Clock - (WRCLO-) .- 32 ------=----'------~.. ~ 25 13 6 Ground (GND) .. 33 14 4 34 _-D__ ire_c_t_io_n_('-D_I_R...;.!) ______-I.~ 21 .. Servo Clock + (RDCLO+) Ground (GND) 15 .. 3 Servo Clock - (RDCLO-) 35 ------~--~------_I..~ 44 16 23 Ground (GND) .. 17 38 Read Data + (RDO+) .- 18 21 Read Data - (RDO-) • 19 .. 2 Ground (GND) 20 .- 7

*Refer to Drive Manufacturer for Application Details

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

2-19 Preparation for Use iSBC 215

.. 49 .. 25 .. 20 01 I 01 I 01 2 .. 50 26 ... 50 21 • 40 40-Pin 3M Female 19 50-Pin Card .. (0 Edge Connector 0) Connector

50-Pin 3M Female 20-Pin 3M Female 81 0) Connector 8 Connector 2 .. 29

Memorexl14" Shugart Drive 0 iSSC 215 Controller

50-Conductor Ribbon Cable~-

J1

J2

Scramble Wires at drive.

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

2-20 iSBC 215 Preparation for Use

DRIVE DATA o SEPARATOR

DRIVE 1 DRIVE 2 DRIVE 3

11nternal Termination: 220/330 n, RPAK, DIP @ IC Location iSBC 215 Shugart - 8C CONTROLLER Quantum - J6 RMS -

INTERFACE WITH 8" SHUGART/QUANTUM OR 5'1," RMS DRIVES NOTE

Termination locations may change. Consult manufacturer's DRIVE 0 DRIVE 1 hardware reference manual for drive.

21nternal Termination: 220/330 n, RPAK, DIP @ IC Location Memorex - 18D Shugart - 3H

CONTROL

J1 J2 iSBC 215 CONTROLLER

INTERFACE WITH MEMOREXl14" SHUGART DRIVES

DRIVE 0 DRIVE 1 DRIVE 2 DRIVE 3

CONTROL AND READIWRITE

READIWRITE

CONTROL 'Internal Terminator: 220/330 nRPAK, DIP, located @ Pertee - U134 Priam - Near Interlace Connector

Isac 215 CONTROLLER

INTERFACE WITH PERTEC AND PRIAM DRIVES

Figure 2-10. Controller to Drive Interfacing

2-21 Preparation for Use

Table 2-8. J3 and J4 Pin Assignments

Pin Mnemonic Description Pin Mnemonic Description

43 MD8 MDATA Bit 8 44 MD9 MDATA Bit 9

41 MDA MDATA Bit A 42 MDB MDATA Bit B

39 MDC MDATA Bit C 40 MDD MDATA Bit D

37 MDE MDATA Bit 3 38 MDF MDATA Bit F

35 GND Signal Ground 36 +5V +5 Volts

33 MDO MDATA Bit 0 34 MDRQT M DMA Request

31 MD1 MDATA Bit 1 32 MDACK! M DMA Acknowledge*

29 MD2 MDATA Bit 2 30 OPTO Option 0

27 MD3 MDATA Bit 3 28 OPT1 Option 1

25 MD4 MDATA Bit 4 26 RDMA Terminate DMA

23 MD5 MDATA Bit 5 24 Reserved

21 MD6 MDATA Bit 6 22 MCSO! M Chip Select 0

19 MD7 MDATA Bit 7 20 MCS1I M Chip Select 1

17 CND Signal Gnd 18 +5V +5 Volts

15 lORD! 110 Read Cmd 16 MWAIT! M Wait

13 10WRT! 110 Write Cmd 14 MINTRO M Interrupt 0

11 MAO M Address 0 12 MINTR1 M Interrupt 1

9 MA1 M Address 1 10 Reserved

7 MA2 M Address 2 8 MPST! 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 pins are reserved for future use. *The iSBC 215 does not drive this signal.

2-18. iSBX MULTIMODULETM INTERFACE I/O modules that interface the iSBC 215 controller with other storage devices such as magnetic tape cartridge drives or bubble memories can also be Controller board connectors J3 and J4 have each designed and connected to J3, J4 or both, (see Table been designed to interface with Intel iSBX I/O 2-8). The device select function of the iSBC 215 soft­ controllers or other I/O modules designed to meet ware allows the controller to be interfaced with up to the Intel iSBX Bus Specifications. The Intel iSBX 256 devices through an iSBX connector, J3 and J4. 218 Flexible Disk Controller connects to the J 4 Note that DMA Acknowledge Pin 32 is not con­ connector and provides an interface between the nected on the iSBC 215. A more detailed description iSBC 215 controller board and up to four 511i" or 8" of the iSBX Bus is given in the Intel iSBX Bus Speci­ double density flexible (floppy) disk drives. The fication manual, Order No. l42686. iSBX 218 controller interfaces directly with the iSBC 215 software as described in Chapter 3. Instructions for installing the iSBX 218 controller on iSBC 215 The iSBX bus control pins, W3, W4, Wll, W12 and board are given in Paragraph 2-18. W24 (see Table 2-9), control the External Terminate,

2-22 iSBC 215 Preparation for Use

~ ft I I '~

Figure 2-11. Installing the iSBX 218™ Board on the iSBC 215™ Controller Board

and DMA request lines on the iSBX bus. (See Figure 2-19. iSBX 218™ BOARD INSTALLATION 5-1 for the location of these pins on the controller board.) The asterisks in Table 2-9 indicate the The iSBX 218 board connects to J4. Six screws and required jumper configuration for these pins when three threaded spacers secure the Multimodule board the iSBX bus is not to be used. Information on the to the controller board as shown in Figure 2-9. Before use of these pins for user designed iSBX bus inter­ installing the iSBX 218 board, install a jumper wire faces is given in Paragraph 3-32. between pins W12-1 and W12-3 and between pins W4- 1 and W4-2 on the iSBX 215 board. A single cable that transmits both control and read/write informa­ tion is required to connect the iSBX 218 controller to the flexible disk drives as shown in Figure 1-2. Refer Instructions for writing controller-to-drive interface to the iSBX 218™ Flexible Disk Controller Hardware software for I/O modules designed to the iSBX Bus Reference Manual, Intel Order No. 121583, for Specifications are given at the end of Chapter :l. further installation details and operating information.

2-23 Preparation for Use iSBC 215

Table 2-9. iSBXTM Bus Control Jumper Pins 2-20. POWER UP/DOWN CONSIDERATIONS Pin Pins Connection Function If power is applied to, or removed from, the system while a drive is READY, a spurious disk write W3 1-2' External Terminate (J3) terminated on controller board. operation could occur. To prevent this from happen­ - External Terminate (J3) driven by ing always ensure that the drives are not spinning iSBX I/O Controller when system power to the controller is switched on W4 1-2' External Terminate (J4) terminated or off. on controller board - External Terminate (J4) driven by iSBX I/O controller 2-21. DIAGNOSTIC CHECK W11 1-2 OPOO (J3) driven 1-3 OP01 (J4) driven A PROM-resident self-diagnostic may be used to - · OPOO and OP01 receiving verify the controller operation. Instructions for W12 1-2 OP10 (J3) driven execution of the diagnostic are given in Chapter 3. 1-3 OP11 (J4) driven - · OP10 and OP11 receiving W24 1-2 The iSBX I/O controller on J4 uses DMA request and the iSBX i/O con- troller on J3 does not use DMA re- quest or is not installed. 1-3 The iSBX I/O controller on J3 uses DMA request and the iSBX I/O con- troller on J4 does not use DMA re- quest 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 termi- nate function or when the iSBX™ Bus is not being used (factory wired).

2-24 CHAPTER 3 PROGRAMMING INFORMATION

3-1. INTRODUCTION In addition, the iSBC 215 controller can also execute programs that the user has written in 8089 assembler This chapter describes the programming conven­ code to control other I/O devices through the iSBX tions that must be followed to initiate and monitor bus on the board. Instructions for writing and using the transfer of data between the host memory and a these programs are provided in Paragraphs 3-31 and disk drive (or the iSBX connector). Included in this 3-32. section are a discussion of: disk organization, track sectoring format, disk controller communications protocol, interrupt handling, the use of disk control functions, and special instructions for programming I/O transfers through the iSBX interface. 3-3. DISK ORGANIZATION

In the following discussion, a head is assumed to be 3-2. PROGRAMMING OPTIONS associated with a single disk surface. Each surface can have up to 4096 tracks (circular data paths The iSBC 215 Winchester Disk Controller has been numbered 0 through 4095). The set of tracks on designed to interface with Winchester technology multiple recording surfaces at a given head position disk drives as specified in Chapters 1 and 2. The or location is referred to as a "cylinder" (see Figure board also has two iSBX connectors that allow it to 3-1). A drive that has 4096 tracks per surface thus communicate with other I/O devices through an has 4096 cylinders. iSBX I/O Controller such as the iSBX 218 Flexible Disk Controller. Each track is divided into equal-sized sectors. Each The iSBC 215 controller contains a ROM resident of these sectors includes a sector identification block I/O transfer program, designed to control data with error checking information and a data block, transfers between the controller and Winchester also with error checking information. The iSBC 215 drives as well as between the controller and flexible controller allows the user to select the size of the data disk drives connected to the iSBX 218 controller. block; the size of the data block then determines the Paragraphs 3-5 through 3-30 provide instructions for maximum number of sectors permitted per track (as using the iSBC 215 controller firmware. shown in Table 1-1).

TRACK

Figure 3-1. Disk Drive Organization and Terminology

3-1 Programming Information iSBC 215

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 The host processor and the disk controller use four checking fields of each sector of the disk, one track at blocks of host memory and one host I/O port to a time. Figure 3-2 shows how the controller organizes exchange instructions and status. The I/O commu­ this information for 8" Winchester drives. Refer to nkations blocks are titled: Wake-Up Block, Channel Paragraph 3-14 and 3-15 for further information on Control Block, Controller Invocation Block and I/O track formatting. Refer to the iSBX 218™ Flexible Parameter Block. Sixty-eight bytes of host memory Disk Controller Hardware Reference Manual for must be dedicated to the I/O communications information on flexible disk track formatting. blocks .

.n NDEX ______INDEX nL

DATA BYTES (128. 256, 512 or 1024)

4

GAP AND FIELD SIZES IN BYTES

FUJITSU 2300/ MEMOREX/ 8" SHUGART/RMS/ 14" SHUGART FIELD QUANTUM CDC 9410 - 32 PERTEC PRIAM

GAP 1 11 0 11 0 ADDRESS MARK 1 0' 3 0' OR SECTOR PULSE GAP 2 0 12 14 12 ID FIELD 9 9 9 9 GAP 3 12 14 20 20 ADDRESS MARK l' 0 0 0 (Beginning of Data Field) DATA FIELD Bytes/Sector 128 133 133 133 133 256 261 261 261 261 512 517 517 517 517 1024 1029 1029 1029 1029 GAP 4 17 8 22 8 '8" Shugart/Quantum drives only. 'Sector Pulse 3GAP 5 is of indeterminate length. It is residual unused space.

Figure 3-2. Sector Data Format

3-2 iSBC 215 Programming Information

r------, I ® DISK HOST INTEL I I 8089 DRIVE PROCESSOR lOP I UNIT I I r------, I RAM WAKE-UP I I BLOCK I " I , , l~S~'~5..:0~R~L~ J ,I , I I

1/0 I PARAMETER I t BLOCK

I ~ I I I DATA I MEMORY , I , l_~S2.:'~~~M~~ J

Figure 3-3. Host CPU-Disk Controller Interaction Through the 1/0 Communications Block

able 110 space is also required. The host uses this NOTE port, called the W ake-U p 110 Port, to initiate controller activity. Following the initialization of the controller, the Wake-Up Block, Channel Control Block The sequence in which the controller accesses these and Controller Invocation Block must be blocks varies with the type of operation being maintained at their assigned locations. The performed, but for general data transfers (reads or location of the I/O Parameter Block can be writes), the blocks are accessed as follows: changed providing that the 110 Parameter Block Pointer in the Controller Invocation The host loads the I/O Parameter block in Block is changed to correspond to the new system memory with a command and para­ location. meters for the function the controller is to perform (for example read data). See Figure 3-3. The controller uses these blocks to perform three The host then transmits a wake-up command basic functions: initialize the controller, check and (OlR) to wake-up 110 port, signaling the control­ transmit status, and obtain user selected disk access ler to go to I/O communications blocks for functions and parameters_ In addition to these r/0 instructions. communications blocks, certain controller functions The controller goes to the Channel Control (such as track formatting) also require data/para­ Block and links its way through the Controller meter buffers in host memory_ Dedicated locations in Invocation Block to the 110 Parameter Block. host memory, however, are not required for these (The Wake-Up Block is used only during control­ buffers. One 110 port in the host processor's address- ler initialization and by 8089 firmware.)

3-3 Programming Information iSBC 215

At the I/O Parameter Block, the controller reads 02H RESET CONTROLLER - Per­ the command and parameter data into its RAM forms hardware reset of control­ and begins the data transfer function. ler. A clear interrupt (OOH) must ® The controller reads data from the selected drive be initiated following this com­ into its RAM, then performs a DMA transfer of mand. (Each time the controller the data from RAM into system memory. is reset, the communications link between the controller and ® When the data transfer is complete, the control­ the host must be re-established ler posts the status in the Controller Invocation through the Initializing func­ Block, sends an interrupt to the host and awaits tion.) further instructions. 03H through FFH Reserved. These I/O communications blocks are accessed in a The sixteen wake-up address switches on the control­ similar manner when performing a write function. ler board determine the address of the wake-up I/O port as described in Paragraph 2-9. 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 3-8. WAKE-UP BLOCK for a discussion of selecting the wake-up address, wake-up I/O port address and 8-bit or 16-bit host. The Wake-Up Block is the first ofthe I/O communi­ cations blocks (see Figure 3-4). It is used to establish a link between the controller and the I/O communi­ cations blocks in host system memory. 3-6. HOST CPU-CONTROLLER-DISK DRIVE INTERACTION 3-9. CHANNEL CONTROL BLOCK Figure 4-2 shows a simplified block diagram of the major hardware sections of the host CPU, host The controller uses the Channel Control Block to memory, controller and disk drives. The host system indicate the status of the internal processor (the memory contains all the controller I/O communica­ Intel 8089 I/O Processor) and to invoke processor tions blocks, as well as the data buffers. The host program operations. The Channel Control Block initiates controller activity through the wake-up I/O requires 16 bytes (see Figure 3-5). Except for the port, which it addresses through the Multibus inter­ BUSY 1 flag (byte 1) and the Controller Invocation face. The Intel 8089 I/O processor (lOP) handles all Block address (bytes 2 through 5), the information communications between the host CPU, host mem­ contained in this block is used to invoke controller ory and disk drives, once the host has initiated con­ operations that are transparent to the host. troller activity. Controller operations software is contained in on-board PROM. RAM on the controller board facilitates intermediate data storage between 3-10. CONTROLLER INVOCATION BLOCK the host and the disk drive. The iSBX bus provides a second I/O transfer path between the controller and The controller uses the Controller Invocation Block an I/O controller such as the iSBX 218 Flexible Disk (CIB) to post status to the host CPU and to locate the Controller. 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 3-7. WAKE-UP 1/0 PORT current contents of the status byte and is ready for a status update. The Controller Invocation Block To invoke controller activity, the host CPU transmits requires 16 bytes (see Figure 3-6). a wake-up command byte to the controller through the wake-up I/O port. Three wake-up commands are allowed: 3-11. 1/0 PARAMETER BLOCK

OOH CLEAR INTERRUPT - Con­ The I/O Parameter Block (IOPB) contains the troller to host interrupt is reset; controller operating commands, which define the controller reset is cleared. function the controller is to perform (read, write, OlH START OPERATION - In­ etc.), and the parameters of the function (memory structs controller to start the address, disk head and cylinder, etc.). The I/O operation that the elements of Parameter Block requires 30 bytes of host memory the I/O parameter block define. space. Figure 3-7 describes the function of each byte.

3-4 iSBC 215 Programming Information

7 0 7 0 1 (Reserved)* I 01H 0 ~ Wake-Up Address 3 CCB Offset 2

5 CCB Segment 4

* Set to all zeros.

Byte Function 0 SYSTEM OPERATION COMMAND - Must be set to 01H. 1 Reserved. 2 through 5 CHANNEL CONTROL BLOCK (CCB) ADDRESS - Address of first byte of Channel Control Block. (Address = Offset + Segment X 24).

Figure 3-4* Wake-Up Block

7 0 7 0 1 BUSY 1 I CCW 1 0 3 CIB Offset 2

5 CIB Segment 4

7 (Reserved)* 6 9 BUSY 2 I CCW 2 8 11 CP Offset 10

13 CP Segment 12

15 CONTROL POINTER 14

* Set to all zeros.

Byte Function

0 CHANNEL CONTROL WORD 1 - Indicates location of Intel 8089 I/O Processor control store program: 01 H - Controller local memory (ROM) 03H - Host system memory. (Used only when executing user written I/O program from host memory. (Refer to paragraph 3-32.) 1 BUSY 1 FLAG - Indicates whether controller is busy or idle. OOH - Idle FFH - Busy 2 through 5 CONTROLLER INVOCATION BLOCK (CIB) ADDRESS - Address of fifth byte of Controller Invocation Block. 6 and 7 Reserved. 8 CHANNEL CONTROL WORD 2 - Must contain 01H. 9 BUSY 2 WORD - Not meaningful to host CPU. 10 through 13 CONTROL POINTER ADDRESS - Address must point to the Control Pointer in the next sequential word. 14 and 15 CONTROL POINTER - Must be set to 0004H.

Figure 3-5. Channel Control Block

3-5 Programming Information iSBC 215

7 0 7 0

1 Op. Status (Reserved) • 0

3 St. Sema. CMND Sema. 2

5 CSA Offset 4

7 CSA Segment 6

9 10PB Offset 8

11 10PB Segment 10

13 12 (Reserved)' 15 14

• Set to all zeros.

Byte Function

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). 17 16 1--5 41 3 1 2 11 1 0 1 I Operation Complete Seek Complete Media Change Detected Device: 0 = Winchester Disk Drive 1 = iSBX 218'· Flexible Disk Drive Unit 10 Hard Error Summary Error

2 COMMAND SEMAPHORE - Controller does not use this byte. It is provided for use as a multi- 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 CONTROL STORE PROGRAM ADDRESS - Starting address of controllers on-board disk interface program. Set to OOOOH. 12 through 15 I/O PARAMETER BLOCK ADDRESS - Address of first byte of I/O parameter block. Reserved

Figure 3-6. Controller Invocation Block

3-12. TYPICAL CONTROLLER 3-13. INITIALIZING THE CONTROLLER OPERATIONS The controller must be initialized before any data transfer activities between the host system memory The following section describes how to set up the I/O and the disk drives can be initiated. Initialization of communications blocks in the host memory, how to the controller involves: initialize the controller and how to perform the various data transfer operations. It is assumed that 1. Establishing a link between the 8089 and the the controller board has been properly installed as I/O communications blocks in host system described in Chapter 2. memory.

3-6 iSBC 215 Programming Information

7 0 7 0

1 (Reserved)* 0

3 (Reserved) * 2

5 4 Actual Transfer Count 7 6

9 Device Code 8

11 Function 1 Unit 10 13 Modifier 12

15 Cylinder 14 17 Sector I Head 16 19 DB Offset 18

21 DB Segment 20

23 22 Requested Transfer Count 25 24 General Address 27 Pointer Offset 26 General Address 28 29 Pointer Segment * Set to all zeros.

Byte Name and Function

o through 3 Reserved. 4 through 7 ACTUAL TRANSFER COUNT - Count of bytes actually transferred between the system and the disk or controller. Four-byte binary number, least Significant bits in first byte. Controller writes count to IOPB 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: 17161514131211101 T -c='L.------i::~ Revision Level - - Version Minus 1

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

.---~ Volume: 0 - Fixed J 1 - Removable 11 FUNCTION - Code for operation to bo performed. Refer to following discussion of typical controller operations for a detailed discussion of these operations: OOH INITIALIZE 01H TRANSFER STATUS 02H FORMAT

Figure 3-7. I/O Parameter Block Description

3-7 Programming Information i8BC 215

03H READ SECTOR 10 04H READ DATA 05H READ TO BUFFER AND VERIFY 06H WRITE DATA 07H WRITE BUFFER DATA 08H INITIATE TRACK SEEK 09H - OBH Reserved OCH iSBX EXECUTE ODH iSBX TRANSFER OEH BUFFER I/O OFH DIAGNOSTIC 12 and 13 MODIFIER - Code to modify function codes. Bit 0 Suppresses interrupt on command completion when set to 1. 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'· 110 controller: 0 = Normal Data; 1 = Deleted Data. Bits 3 through 15 Reserved. 14 and 15 CYLINDER - Binary number specifying logical cylinder code; bit 0 is least significant bit of number. 16 HEAD - Binary number speCifying logical head code; bit 0 is least significant bit of number. 17 SECTOR - Binary number specifying logical sector code; bit 0 is least significant bit of numeer. 18 through 21 DATA BUFFER ADDRESS - Address of first byte in host system memory data (parameter) buffer. 22 through 25 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. 26 through 29 GENERAL ADDRESS POINTER - General purpose address pointer.

Figure 3-7. 1/0 Parameter Block Description (Continued)

2. Reading the parameters that describe the disk drives with which the controller is to interface NOTE When the system is first powered-on, the into the c~_'ltroller's RAM buffer, using the Initialize function (FUNCTION = OOH). Pertec or Priam drives will not spin until each has received an initialize command. For each drive, the initialize command thus This initialization must be performed following a: cannot be completed until the drive has reached its operating speed and entered the 1. Power-on event. ready state. This spin-up time varies from 2. Controller reset (02H written to the wake-up 110 approximately 20 seconds for the Priam port). drives to 90 seconds for the Pertec drives. The Shugart and Memorex drives spin-up as After the controller has been initialized, any of the soon as power is applied. If an initialize data transfer functions described in Paragraphs 3-14 command is issued to a unit that has not yet through 3-25 can be performed in any sequence. reached operating speed, a not ready error is (Refer to Paragraphs 4-12 through 4-15 for a detailed posted. explanation of controller initialization.) To initialize the controller, the host CPU must perform the following steps: The following procedure gives the sequence in which l. Establish addresses for the four I/O com­ the controller initializing activities must be per­ munications blocks in host memory: formed. Prior to initializing the controller, check that the system data bus switch (82-1), the host system Wake-Up Block 6 Bytes I/O address switch (82-2), the wake-up address Channel Control Block 16 Bytes switches (81-1 through 81-8 and 82-3 through 82-10), Controller Invocation Block 16 Bytes and the interrupt level jumper have been set as I/O Parameter Block 30 Bytes described in the procedure titled 8witchl Jumper Remember that the address of the first byte of Configurations in Chapter 2. the Wake-Up Block must be equal to the wake-up

3-8 iSBC 215 Programming Information

address set in the controller's wake-up address 13. Reset 110 Parameter Block. Set the UNIT, switches times 24. For example, if the switches byte 10, for the next unit to be initialized and set are set to 0673H, the address of byte 0 of the the data buffer address, byte 18 through 21, for Wake-Up Block is: the beginning address of the unit's disk para­ 06730H 20-Bit Addressing meters. 6730H 16-Bit Addressing 14. Repeat steps 9 through 12 for each drive 2. Set up the shaded bytes in the Wake-Up unit. Note that the initialization procedure Block (see Figure 3-8). MUST BE PERFORMED FOR ALL FOUR DRIVE UNITS, starting with unit 0, even if one 3. Set BUSY 1 flag (Optional). Set the BUSY 1 or more of the drives do not exist. Initialize all flag (byte 1 of the Channel Control Block) to unattached drives with all zeros. non-zero (FFH). This allows the host to monitor 15. Initialize flexible disk drive units. If an the BUSY 1 flag to find out when the initializa­ iSBX 218 controller is installed on the iSBX 215 tion procedure is complete. controller board, repeat steps 9 through 14 for all 4. Reset the controller. Host writes a 02H to the four flexible disk drive units. wake-up I/O port. 5. Clear the reset. Host writes a OOH to the wake-up I/O port. NOTE 6. Establish the host-controller communica­ The Winchester disk drive units must be tions link. Write a 01H to the wake-up I/O initialized before initializing the flexible port. The controller goes to the Wake-Up Block disk drive units. in host memory and records the address of the Channel Control Block, then goes to the Channel The controller is now initialized. This procedure Control Block and clears the BUSY 1 FLAG. On need not be repeated except after a power-on or a all subsequent 01H commands to the wake-up controller reset. For all subsequent disk activities, I/O port, the controller will go to the Channel the host communicates with the controller through Control Block. the Channel Control Block, the Controller Invocation 7. Set up the shaded bytes in the Channel Block and the I/O Parameter Block. 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. 3-14. TRACK FORMATTING Be sure the STATUS SEMAPHORE, byte 3, is set to OOH. The Format Track function (FUNCTION = 02H) 9. Set up the shaded bytes in the 110 Para­ writes the gaps, sector headers and data fields (see meter Block as shown in Figure 3-8. Be sure Figure 3-2) on a track - one track per command. A the UNIT, byte 10, is set for the correct unit track can be designated as a normal, assigned number and the FUNCTION, byte 11, is set for alternate or defective track. A defective track always the Initialize function (FUNCTION = OOH). points to an assigned alternate track. Refer to the Initialize unit 0 first. discussion of alternate and defective track handling in Paragraph 3-15. 10. Establish parameter buffer. Set up a disk drive parameter data buffer with the parameters Use the following procedure to format a track. for the drive to be initialized as shown in Figure 3-8. Be sure the data buffer address in the I/O 1. Set up the liD Parameter Block as shown Parameter Block points to the first address of in Figure 3-9. this data buffer. 2. Set up a 6-byte data buffer for the type of 11. Start initialize function. Poll the BUSY 1 flag track to be formatted as shown in Figure 3- (Byte 1 of the CCB) and write a OlH to the wake­ 9. A track can be designated as a data track, up I/O port when the flag is zero. The controller assigned alternate track or defective track. The goes to the Channel Control Block, then linkH itH user pattern is repeated throughout the data way through the Controller Invocation Bloek field of every sector. In the case of a defective and I/O Parameter Block and reads the diHk track, the user pattern is a pointer to the drive parameters for the unit specified. alternate track. If the alternate track is defective, it can not be used to point to another alternate. 12. Respond to and process the resulting inter­ An interleave factor of 1 corresponds to consecu­ rupt or status or both. tive sectors.

3-9 Programming Information iSBC 215

3. Initiate the format operation. Write a OIH to the wake-up I/O port. NOTE Always format the last track on head 0 as a 4. Respond to and process the resulting inter­ data track. This track should then be re­ rupt or status or both. served for use by the on-board diagnostic.

Wake-Up Block I/O Parameter Btock

7 0 7 0 Wake-Up Address 7 o 7 o Switches must (Reserved) 0 paint to this byte. (Reserved) o

3 2 3 (Reserved) 2

5 4 5 4 Actual Transfer Count 7 6 Channel Control Block 9 8

0 11 10

3 2 13 12

5 4 15 14

7 (Reserved) 6 17 16

9 BUSY 2 8 19 18

11 10 21 20

13 12 23 22 Requested Transfer Count 15 14 25 24

27 General Address Pointer Offset 26 Controller Invocation Block 29 General Address Pointer Segment 28 Op. Status (Reserved) o Data Buffer 3 CMND Sema. 2 Starting address 7 o 7 o 5 4 for controllers on-board o 7 6 program. • 3 2 9 8 I 5 4 11 10 7 6 13 12 (Reserved) • Bytes 5 and 6 are a word, 5 being the low byte, 15 14 6 the high byte.

--This byte defines the bit encoding scheme when initializing a flexible disk unit connected to the iSBX 218'· controller: OOH for FM (single density) and 01H for MFM (double density). The Note: Set up the shaded bytes in each of the I/O iSBX 218" controller does not support 128 bytes communications blocks and in the data buffer. per sector in the MFM mode.

Figure 3-8. I/O Communications Blocks Linking

3-10 iSBC 215 Programming Information

1/0 Parameter Block 7 0 7 0

(Reserved) 0

3 (Reserved) 2

5 4 Actual Transfer Count 7 6 9 8 11 10 13 12

15 14

17 16

19 18 21 20

23 22 Requested Transfer Count 25 24 27 General Address Pointer Offset 26

29 General Address Pointer Segment 28

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

o Format Data Track 3 2

5 4

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 Programming Information iSBC 215

ALTERNATE TRACK AREA

TRACK ZERO

Figure 3-10. Alternate Track Formatting

3-15. ALTERNATE AND DEFECTIVE 3-16. DATA TRANSFER AND TRACK HANDLING VERIFICATION

It is suggested that each disk surface be divided into Nine data transfer and verification command two areas (see Figure 3-10), the data track area and functions are allowed, selected through the FUNC­ the alternate track area. The user assigns the TION byte in the I/O Parameter Block: Read Sector number of tracks in the alternate track area, ID, Read Data, Read Data to Buffer and Verify, typically 1 - 2% of the total number of available Write Data, Write Data from Buffer, Initiate Track tracks on the surface. If a disk surface has 512 Seek, Execute iSBX I/O Program, I/O Transfer tracks, tracks 0 through 500 would constitute the through iSBX Bus, and Buffer I/O. 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 NOTE program. All data transfers between the host system memory and a disk drive unit are buffered When a track within the data track area is deemed through the controller's on-board RAM defective, the host reformats the track, giving it a buffer. During a write, the controller per­ defective track code and entering the address of the forms a DMA transfer of a one-sector block next available alternate track in the data fields. The of data from the host system memory to the alternate track that is selected must be formatted as RAM buffer. It then transfers the sector an assigned alternate track. serially from the RAM buffer to the disk in two byte increments. When reading from the disk, the controller performs a serial transfer When the controller accesses a track that has been of a sector of data from the disk to the RAM previously marked defective, it will automatically buffer in two byte increments. When the invoke a seek to the assigned alternate track and use entire sector has been read into the RAM the alternate as if it were in the data track area. This and all error checking has been completed, operation is automatic and is invisible to the user, the controller then performs a DMA transfer except for the added time required to complete the of the one-sector block from the RAM to host operation. system memory.

3-12 iSBC 215 Programming Information

The controller contains a burst error checking code 3. Respond to and process the resulting inter­ (ECC) computing circuit that creates an error rupt or status or both. checking code for each sector ID and each data block written into disk memory. When reading data from 3-17. READ SECTOR ID the disk, the controller verifies the sector ID and the information in the data blocks using these error The Read Sector ID function (FUNCTION = 03R) checking codes. If errors are detected that can be searches for the first error free sector ID on the corrected (occur within an eleven-bit burst or less), selected track and writes the contents of the sector they are corrected and the remainder ofthe operation ID field into a 5-byte data buffer in host memory (see is completed. If the error cannot be corrected, the Figure 3-11). An implied seek, head select or volume sector is re-read. If after 3 retries the errors remain change, is not performed. The Read Sector ID is uncorrectable, the operation is terminated and a performed on the cylinder, volume and head that the Hard Error is indicated in the operation status byte previous function selected. One use of this function (byte 1) of the Controller Invocation Block. To obtain is to search the alternate track area for tracks that detailed information on the nature of the error, have not been assigned as alternates. perform the Transfer Error Status function (refer to Paragraph 3-28). To perform this function, set up the shaded bytes in the I/O parameter block as shown in Figure 3-11, Each of the data transfer and verification functions and reserve a 5-byte data buffer in host system is described in detail in the following paragraphs. To memory. use anyone of these functions, the host CPU must perform the following steps: 3-18. READ DATA 1. Set up the 1/0 parameter block as shown in the paragraph describing the function. The Read Data function (FUNCTION = 04H) reads 2. Initiate the operation. Write a 01H to the data from the disk into host system memory. It wake-up I/O port. begins reading with the first byte of the selected

I/O Parameter Block

(Reserved) o Data Buffer 3 (Reserved) 2 High Cylinder Low Cylinder o 5 4 Actual Transfer Count 3 Sector Head 2 7 6 Flags 4 9 8

11 10 Byte 4 13 12 Flags 15 14 -Czeros 17 16 .. Sector Size 00 - 128 Bytes 19 18 01 - 256 Bytes 10 - 512 Bytes 21 20 11 - 1024 Bytes '------~ Track Type 23 22 00 - Normal Requested Transfer Count 01 - Assigned Alternate 25 24 10 - Defective 11 - Invalid 27 General Address Pointer Offset 26

29 General Address Pointer Segment 28

Figure 3-11. Read Sector ID

3-13 Programming Information iSBC 215 sector and ends reading when the requested byte byte of the selected sector and ends reading when the count is reached, end of media is reached or a hard requested byte count is reached, end of media is failure is detected. If multi-sector data transfers are reached or a hard failure is detected. The multi­ requested the controller automatically seeks to the sector data verification is supported through the next sector, the next head and the next cylinder, in auto-sector, auto-head, auto-cylinder protocol de­ that order. Automatic head increments are supported scribed for Read Data function. End of media and only within the volume, fixed or removable, but not implied seek are also supported as described for the between volumes, for example, fixed across to Read Data functions. removable. The last sector, head and track address in the data track area defines the end of media. An The Read Data into Controller Buffer and Verify implied seek is invoked if the current head position is function has three applications: different from the specified track identification. The 1. Allows data to be verified after it has been DATA BUFFER address set in the I/O parameter written from host system memory to the disk. block is the address in host system memory where 2. Allows data to be transferred from one disk the first data byte read from the disk is to be location to another by coupling this function transferred. Since the data being transmitted from with the Write Data from Controller Buffer the disk drive is buffered in the controller's RAM, function. data overruns cannot occur. To perform this func­ 3. Allows data to be transferred from an Winches­ tion, set up the shaded bytes in the I/O parameter ter disk to a device connected to the iSBX bus. To block as shown in Figure 3-12. perform this operation, the Read to Buffer and Verify command is coupled with either the iSBX 1/0 Parameter Block Execute command or the Write Buffer Data 7 7 o o command (iSBX 218 controller is specified to (Reserved) o receive the data). To perform the Read Data into Controller Buffer and 3 (Reserved) 2 Verify function, set up the shaded bytes in the I/O 5 4 parameter block as shown in Figure 3-13. Actual Transfer Cou nt 7 6 1/0 Parameter Block 9 8 (Reserved) o 11 10 3 (Reserved) 2 13 12 5 4 15 14 Actual Transfer Count 7 6 17 16 9 8 19 18 11 10 21 20 13 12 23 22 15 14 25 24 17 16 27 General Address Pointer Offset 26 19 18 29 General Address Pointer Segment 28 21 20

Figure 3-12. Read Data 23 22

25 24 3-19. READ DATA INTO CONTROLLER BUFFER AND VERIFY 27 General Address Pointer Offset 26

The Read Data into Controller Buffer and Verify 29 General Address Pointer Segment 28 function (FUNCTION = 05H) reads data from the disk into the controller on-board RAM and checks Figure 3-13. Read Data into Controller the ECCs to verify the sector ID and data fields for Buffer and Verify all sectors affected. It begins reading with the first

3-14 iSBC 215 Programming Information

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

To perform this function, set up the shaded bytes in 1/0 Parameter Block the I/O parameter block as shown in Figure 3-14. (Reserved) o

I/O Parameter Block 3 (Reserved) 2

5 4 (Reserved) o Actual Transfer Count 7 6 3 (Reserved) 2 9 8 5 4 Actual Transfer Count 11 10 7 6 13 12 9 8 15 14 11 10 17 16 13 12 19 18 15 14 21 20 17 16 23 22 19 18 25 24 21 20 27 General Address Pointer Offset 26 23 22 29 General Address Pointer Segment 28 25 24

27 General Address Pointer Offset 26 Figure 3-15. Write Data From Controller 29 General Address Pointer Segment 28 Buffer to Disk

Figure 3-14. Write Data 3-22. INITIATE TRACK SEEK

The Initiate Track Seek function (FUNCTION = 3-21. WRITE DATA FROM CONTROLLER 08H) positions the read/write head on a specified BUFFER TO DISK track, if the head is not already on that track. When issued sequentially to several drives, this command The Write Data from Controller Buffer to Disk allows multiple disk drives to perform concurrent (FUNCTION = 07H) writes data from the controller (overlapping) seeks. If a seek to a cylinder beyond on-board RAM onto the disk. It begins reading from the end of media, including alternates, is initiated, the first address of the controller's data buffer the drive automatically performs a rezero operation

3-15 Programming Information iSBC 215 and posts invalid address error. If an operation To perform this function, set up the shaded bytes in complete interrupt is enabled, it is invoked when the the 110 parameter block as shown in Figure 3-17. seek command has been initiated and a seek com­ The outlined bytes are optional. Their use depends plete interrupt (which is always enabled) is invoked on the requirements of the user written 110 program. 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 1/0 Parameter Block first drive. (Reserved) o To perform this function, set up the shaded bytes in the 110 parameter block as shown in Figure 3-16. 3 (Reserved) 2 5 4 1/0 Parameter Block Actual Transfer Count 7 6

(Reserved) o 9 Device Code 8

3 (Reserved) 2 11 Unit 10

5 4 13 Modifier 12 Actual Transfer Count 7 6 15 Cylinder 14

9 8 17 Sector Head 16

11 ii) 10 19 Data Buffer Offset 18

13 12 21 Data Buffer Segment 20

15 14 23 22 Requested Transfer Count 17 Sector 16 25 24

19 Data Buffer Offset 18 27 26

21 Data Buffer Segment 20 29

23 22 Requested Transfer Count 25 24 General Address Segment must be set to OOOOH. 27 General Address Pointer Offset 26

29 General Address Pointer Segment 28 Figure 3-17. Execute iSBXTM Interface I/O Program Figure 3-16. Initiate Track Seek

3-23. EXECUTE iSBXTM I/O PROGRAM 3-24. liD TRANSFER THROUGH iSBXTM BUS

The Execute iSBX 110 Program function (FUNC­ The I/O Transfer Through iSBX Bus function TION = OCH) transfers program control to a pro­ (FUNCTION = ODH) transfers a block of data be­ gram stored in the controller on-board RAM memory. tween host system memory and the iSBX bus ports. This program must be coded in 8089 assembler code. The beginning address in host system memory and It is loaded into RAM using the Buffer 110 function the number of bytes to be transferred is specified in (FUNCTION 110 = OEH). Program control is trans­ the respective locations in the 110 parameter block. ferred to the RAM address specified in the General The iSBX bus port address, width of the port (8 bit or Address Pointer, bytes 26 through 29 in the 110 16 bit), direction of transfer and mode of transfer are parameter block. Upon completion of the program, specified in the cylinder and head locations of the the program must exit to ROM location OOC5H. The I/O parameter block (Refer to Paragraphs 3-31 programs, which this function activates, are written through 3-32 for more information concerning the to perform I/O transfers to peripheral devices use of this function.) through the iSBX bus (refer to Paragraphs 3-31 and 3-32 for more information concerning the use of this To perform this function, set up the shaded bytes in function). the 110 parameter block as shown in Figure 3-18.

3-16 iSBC 215 Programming Information

1/0 Parameter Block Byte 14 and 15 IiSBX'· Bus I/O Port Address I (Reserved) 0 Port iSBX Bus Port Address Assignments 3 (Reserved) 2 J3- J3- J4- J4- Channel 0 Channel 1 Channel 0 Channel 1 5 4 Actual Transfer Count 0 C070 COBO CODO COEO 7 6 1 C071 COB1 COD1 COE1 9 it 8 3 C073 COB3 BOD3 COE3 4 C074 COB4 COD4 COE4 11 II 10 5 C075 COB5 COOS COES 13 12 6 C076 COB6 COD6 COE6 7 C077 COB7 COD7 COE7 15 II 14 17 sector .. 16

19 18 Byte 16 21 II 20 23 22 ,0 - Unsynchronized DMA Mode 1 - Synchronized DMA Mode 25 24 t o - 8 Bit Transfer l- 1 - 16 Bit Transfer 27 General Address Pointer Offset 26 :Reserved 29 General Address Pointer Segment 28 o - From iSBX'· Interface to Host 1 - From Host to iSBX'· Interface

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

3-25. BUFFER 1/0 Bytes 14 and 15 Starting controller memory ad­ dress: The Buffer I/O function (FUNCTION = OEH) transfers data between the host system memory and Bytes 14 and 15 Starting controller memory ad­ controller on-board RAM. Beginning addresses in dress: the host system memory and controller buffer memory are specified. Data transfer begins at these Byte 15 - High Byte addresses and ends when the requested byte count is Byte 14 - Low Byte reached. Since the controller has only 64K bytes of Byte 16 Direction of data transfer: local memory address space, the most significant bytes of the REQUESTED TRANSFER COUNT OOH - From controller to host (bytes 24 and 25) are ignored. 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 Data transfers from the host system memory with a minimum of host overhead. In addition, it to the controller-buffer must be written to allows down-loading of user written, I/O transfer addresses within the range of 4000H to control programs from system memory to controller 4600H. memory. Such programs allow 8089 control of I/O transfers through the iSBX bus as discussed in Para­ graph 3-23. The beginning address in controller memory and the direction of data transfer are specified in the To perform this function, set up the shaded bytes in CYLINDER and HEAD fields, respectively: the I/O parameter block as shown in Figure 3-19.

3-17 Programming Information iSBC 215

1/0 Parameter Block

(Reserved) o

3 (Reserved) 2

5 4 Actual Transfer Count 7 6

9 Device Code 8 Unit address must be entered even 11 10~ though the specified unit is not ac­ cessed. 13 12 Starting Controller 15 14 Memory Address: Byte 15 - High Byte 17 Sector Byte 14 - Low Byte

19 Direction of Data Transfer: 21 20 Byte 16 - OOH (from controller to host) FFH (from host to controller) 23 22

25 24

27 General Address Pointer Offset 26

29 General Address Pointer Segment 28

Figure 3-19. Buffer 110

3-26. DIAGNOSTIC 55AAH data pattern and verifies that the data read matches the data The diagnostic function (FUNCTION = OFH) causes written. the controller to perform a go/no-go self-diagnostic OlH Controller performs a ROM check­ test that verifies internal data and status electronics sum test to verify the contents of and checks position and readlwrite electronics in ROM. the disk units. The diagnostic test program is con­ tained in the controller's on-board PROM. 02H to Controller recalibrates the drive. FFH

The diagnostic track is always located on a drive unit's last (highest number) track of head O. When Any errors in the reading or writing are posted in the allocating memory space for the disk unit, this track error status registers. must be dedicated to the diagnostic program. When To perform this function, set up the shaded bytes in initiating the diagnostic program, the head and the 1/0 parameter block as shown in Figure 3-20. 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: 3-27. POSTING STATUS

Byte 13 Function Executed When the controller has completed an operation OOH Controller seeks the designated diag­ (read data, seek track, etc.), it posts the operation nostic track, performs a read ID and status in byte 1, the OPERATION STATUS byte, of verifies the track position. It then the controller invocation block, using the following writes and reads sector 0 with a procedure:

3-18 iSBC 215 Programming Information

recorded in the error status buffer in the controller memory. To examine this error status the user I/O Parameter Block transfers the information in the error status buffer from the controller to host system memory using the (Reserved) o transfer error status function (FUNCTION = 01H) described in Paragraph 3-28. 3 (Reserved) 2 It should be noted that error status information is 5 4 Actual Transfer Count not cumulative. The error status buffers are cleared 7 6 at the beginning of each new command operation, except the Transfer Error Status Command. 9 8

11 10 3-28. TRANSFER ERROR STATUS 13 12

15 Cylinder 14 The Transfer Error Status function (FUNCTION = 01H) transfers error status from the 12-byte error 17 Sector I Head 16 status buffer in the controller memory to a data buffer in the host system memory. The user can then 19 Data Buffer Offset 18 examine the status bits to determine the cause ofthe 21 Data Buffer Segment 20 error. Table 3-1 shows the information stored in each byte of the error status buffer. Table 3-2 describes 23 22 which kind of errors are indicated by the setting of Requested Transfer Count 25 24 the hard (unretrievable) error and soft (retrievable) error bits in bytes 0 through 2. To perform the 27 General Address Pointer Offset 26 Transfer Error Status function, set up the shaded bytes in the I/O parameter block as shown in Figure 29 General Address Pointer Segment 28 3-21.

Figure 3-20. Diagnostic 1/0 Parameter Block

1. The controller checks the STATUS SEMA­ (Reserved) o PHORE byte (byte 3 of the controller invocation block) for OOH. 3 (Reserved) 2 2. If the STATUS SEMAPHORE byte is non-zero, 5 4 it indicates that the host CPU has not checked Actual Transfer Count 7 6 the OPERATION STATUS byte for the last status posted. When the host CPU does check 9 Device Code 8 the operation status, it sets the STATUS SEMA­ PHORE byte to OOH and clears the interrupt. 11 10 3. When the controller reads OOH in the STATUS 13 12 SEMAPHORE byte, it posts the current status in the OPERATING STATUS byte, sets the 15 Cylinder 14 STATUS SEMAPHORE byte back to non-zero 17 Sector Head 16 and sets an interrupt if enabled (see MODIFIER, I bytes 12 and 13, in Figure 3-7). 19 18 4. The host CPU in turn, either polls the STATUS 21 20 SEMAPHORE byte periodically for a non-zero or is interrupted, indicating that new statm; is 23 22 present. Requested Transfer Count 25 24 The status posted includes: operation complete, seek 27 General Address Pointer Offset 26 complete, media change detected and errors detected. If an error was detected, the unit on which the error 29 General Address Pointer Segment 28 occurred and an indication of whether the error was a hard error or a summary error is posted (see Figure Figure 3-21. Transfer Error Status 3-6). A more detailed description of the error is

3-19 Programming Information iSBC 215

Table 3-1. Error Status Buffer Two methods are available to control the transfer of data between the iSBC 215 controller and a device Byte Function connected to the iSBX interface: o and 1 HARD ERROR STATUS - See Table 3-2. 1. Commands from the iSBC 215 controller ROM 2 SOFT ERROR STATUS - See Table 3-2. based I/O program. 3 and 4 DESIRED CYLINDER 2. User written I/O program. 5 DESIRED HEAD AND VOLUME 6 DESIRED SECTOR The iSBX 218 Flexible Disk Controller uses the ROM 7 and 8 ACTUAL CYLINDER AND FLAGS' based I/O program to control data transfers to and 9 ACTUAL HEAD AND VOLUME from the flexible disk drives, as described in 10 ACTUAL SECTOR Paragraphs 3-5 through 3-29. The following para­ graphs describe how data can be transferred between NUMBER OF RETRIES ATTEMPTED 11 the iSBC 215 controller and a user designed I/O controller connected to the iSBX bus, using either *Flags located in bits 4 through 7 of byte 8. the ROM based I/O program or a user written I/O program.

3-29. INTERRUPTS 3-31. 110 TRANSFERS USING iSBC 215™ CONTROLLER RESIDENT FIRMWARE The controller normally posts interrupts to the host on three conditions: As has been described at the beginning of this 1. Command complete chapter, the controller has a ROM based I/O transfer program that is designed to control Win­ 2. Seek complete chester drives through the on-board drive interface 3. Media change (change disk pack) or flexible disk drives through an iSBX 218 board, which has been attached to iSBX connectors J4. The The interrupt on command complete can be disabled iSBX TRANSFER command in this program can by entering a one in bit 0 of the Modifier word in the also be used for general data transfer between the I/O parameter block (bytes 12 and 13). The seek host system memory and a user designed I/O complete and media change interrupts can not be controller, which has been connected to the iSBX disabled. To clear an interrupt, the host writes a OOH bus. to the Wake-Up I/O port. The iSBX TRANSFER command allows the transfer Pins on the controller board allow the interrupt of data between the host memory and the iSBX bus priority level of the controller to be set from 0 to 7. in the same manner as with the WRITE DATA or Refer to the discussion of interrupt priority level READ DATA commands. In this case, however, the selection in Chapter 2. 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 3-30. CONTROLLING DATA TRANSFER interface can be very simple, involving data buffers THROUGH THE iSBX™ BUS and limited handshaking capability, or as sophisti­ cated as the disk drive interface circuitry used in the Two iSBX connectors, J3 and J 4, are provided on the iSBX 218 and iSBC 215 controllers. The complexity iSBC 215 board, which allow access to the control­ of the interface will depend on the type of I/O device ler's iSBX bus. The iSBX bus is an Intel standard being interfaced with and the desired data transfer I/O interface (refer to the Intel iSB)(fM Bus Specifica­ rate. tion, Manual Order No. 142686 for detailed informa­ tion on this standard). It provides 16 data lines and three address lines, providing a total of eight 16-bit 3-32. DATA TRANSFER USING USER I/O ports per connector. Using both J3 and J4, the WRITTEN 1/0 TRANSFER PROGRAMS iSBC 215 controller can thus communicate through the iSBX bus with up to 16 separate peripheral ports. A second method of initiating and controlling data transfer between the host and the iSBX interface is The iSBX 218 Flexible Disk Controller connects to through a user designed program written in 8089 iSBX connector J4 and allows communication with assembler code. This method is more difficult to up to four flexible disk drives. In addition, users can implement, but also more flexible. Such programs design I/O controller devices that interface with the can be executed either from host memory or from the iSBX bus and use the 8089 to control data transfer. iSBC 215 controller on-board RAM.

3-20 iSBC 215 Programming Information

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

Byte Bit Function

0 o through 2 Reserved for future use. 3 RAM ERROR - Controller RAM error was detected. 4 ROM ERROR - Controller ROM error was detected. 5 SEEK IN PROGRESS - Indicates a seek was already in progress for a unit when another disk operation was requested. 6 ILLEGAL FORMAT TYPE - Both alternate track and defective alternate track flag set indi- cating 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. 7 END OF MEDIA - End of media was encountered before requested transfer count expired.

1 8 ILLEGAL SECTOR SIZE - Sector size read from the sector 10 field conflicts with sector size information that controller specified in initialization command. 9 DIAGNOSTIC FAULT - Micro-diagnostic fault detected. A NO INDEX - Controller did not detect index pulse. B INVALID COMMAND - Invalid function code detected. C SECTOR NOT FOUND - Desired sector could not be located on selected track. 0 INVALID ADDRESS - Invalid address was requested. E SELECTED UNIT NOT READY - Selected unit is not ready. not connected. or not respond- ing to unit connect request. F WRITE PROTECTION FAULT - An attempt has been made to write to a write protected unit.

2 o through 2 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 10 FIELD ECC ERROR - Error has been detected in the 10 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 - 10 field contains a cylinder address different from the expected cylinder address. 7 SEEK ERROR - Hardware seek error was detected.

Executing the program from host memory is inher­ 1. Byte 0 of the channel control block must be set to ently slower than executing the program from on­ 03H to indicate to the controller that the I/O board RAM, because it requires constant access of program is located in host memory. the Multibus interface. This method, however, 2. The controller invocation block becomes the I/O allows the size of the program to be virtually parameter block. Refer to the 8086 Family User's unlimited. The procedure for executing a program Manual, Manual Order No. 9800722 for detailed from host memory is much the same as for executing information on setting up an I/O parameter a program stored in controller local memory: block when the I/O program is to be executed 1. I/O communications blocks are established in from host system memory. host system memory. 2. The Wake-Up Address switches in the controller Executing the program from on-board RAM presents are set for the address of the first byte of the space limitations, but allows data transfers to be wake-up block. performed at the 8089's full program execution 3. The host initiates program execution with OIH speed. To overcome some of the limited RAM space written to the wake-up I/O port. problems, the program can be divided into shorter routines, which are stored in the host memory and There are two important differences in the set up of read into RAM as needed. Separate routines might the I/O communications blocks when executing I/O thus be written for disk formatting, checking status, programs from host system memory. writing and reading. The iSBX EXECUTE com-

3-21 Programming Information iSBC 215 mand, allows an I/O transfer routine or program PROGRAM STRUCTURE that is stored in iSBC 215 controller RAM to be started from a host program. When writing an I/O In writing a program in 8089 assembly code, refer­ transfer program, the following software and ence to the 8089 Assembler User's Guide, Manual hardware considerations should be noted. 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, 1/0 PORT ADDRESSING including the user of wait states and DMA transfers (essentially an interrupt driven mode) of whole The eight iSBX bus ports reside in the controller's blocks of data. These and other interfacing tech­ memory mapped 110 space, with each 110 port niques are discussed in this user's guide. 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 8089 merely executes a write or a HARDWARE CONSIDERATIONS read to the address of the selected port. There are two groups of interface control lines between the 8089 and the iSBX bus. The first group Table 3-3. iSBXTM Bus 110 Port Addresses includes handshake and control lines; the second group includes program lines. Port iSBX Bus Port Address Assignments J3- J3- J4- J4- Table 3-5 lists the first group oflines. The 8089 uses Channel 0 Channel 1 Channel 0 Channel 1 these lines directly to control data transfer through the iSBX bus. 0 C070 COBO CODO COEO 1 C071 COB1 COD1 COE1 3 C073 COB3 BOD3 COE3 4 C074 COB4 COD4 COE4 5 C075 COB5 COD5 COE5 Table 3-5. 8089 Handshake and Control Lines 6 C076 COB6 COD6 COE6 on the iSBXTM Bus 7 CO?? COB7 COD7 COE7

iSBX Bus J3 or J4 Pin Description Mnemonic

RAM SPACE ALLOCATION 34 Request DMA Transfer MDRQT 32 Acknowledge DMA Transfer MDACKI The controller RAM is used for a variety of purposes, 16 Initiate Wait State MWAITI and as such, only a portion of it is available for storage of an iSBX bus 110 program and its 6 Multibus Clock MCLK parameters. The available RAM space is shown in 15 1/0 Read 10RDI Table 3-4. Note that enough space has been reserved 13 I/O Write 10WRTI in the data buffer to store an entire 1024 byte disk 26 Terminate DMA Activity TDMA sector of data. If the sectors are to be smaller or iffor some other reason less data buffer space is needed, some of this space can be used for program storage. The second group of lines are used for control and status. The 8089 accesses these lines through a read Table 3-4. iSBC 215™ Controller RAM to memory mapped I/O address 8000H for connector A vail able for Program and Parameter Storage J3 and 8008H for connector J4. Table 3-6 lists these lines, their pin assignments and bit assignments. Description Address Range Jumpers can be connected on the iSBC 215 controller Data Buffer' 4000 to 440F to allow the 8089 to also write bits onto the Option Program Storage 4410 to 45FF lines (as shown in Table 3-7). The option lines on 46CO to 473A only one ofthe interface connectors may be driven at Scratch PAD' 4600 to 46BF a time. To drive the lines, the SOS9 writes to memory Variable Storage" 47BO to 47CF mapped 110 port 80lSH. Bit 1 drives OPOO or OPOl, 47EO to 47FF but not both at one time, bit 2 drives OPI0 and OPll, hut not both at one time. All other bit positions in 'May be modified by 215 command usage "Not available if iSBX 218 is installed the data word must be set to zero when driving the Option lines.

3-22 iSBC 215 Programming Information

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

Connector 1 Address Connector 2 Address Pin iSBX Bus J3 8000H J4 8008H No. Description Mnemonic

OPOO Bit B OP01 Bit 3 30 Option 0 OPTO OP10 Bit C OP11 Bit 4 28 Option 1 OPT1 INTROO Bit 9 INTR01 Bit 1 14 Interrupt 0 MINTRO INTR10 Bit A INTR11 Bit 2 12 Interrupt 1 MINTR1 MOPSTI Bit 8 M1PSTI Bit 0 8 iSBX Board Present MPSTI

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

iSBX I/O Line Connector Jumper Connection PARAMETER BLOCK OPOO J3, OPO W11, 1-2 OP1i J4, OPO W11,1-3

OPi0 J3, OPi W12, 1-2 GA POINTER OPi1 J4, OP1 W12, 1-3

NOTE RAM If an iSBX controller is not installed on the iSBC 215 board, or if an iSBX controller that ~ I iSBX INTERFACE has been installed on a particular iSBX con­ PROGRAM nector does not drive its respective Termi­ I nate DMA Activity line, the connector's J corresponding jumper (W3 1-2 or W4 1-2) must be installed.

I OOC5H ~ PROGRAM EXECUTION ROM When loading and executing a user written 110 transfer program or routine, the following procedure is used:

1. Load the program or routine into RAM using the BUFFER 110 command from the iSBC 215 Figure 3-22. Execution of iSBXTM Bus controller firmware. 1/0 Program From RAM 2. Execute the iSBX EXECUTE command to start the program. Note that the General Address Pointer in the 110 parameter block for this command must point to the address of the start 3-33. EXAMPLE CONTROLLER of the program in on-board RAM (see Figure 1/0 PROGRAM 3-22). Also, upon entering the program, the following 8089 registers are defined as: Appendix A provides an example of a host processor program to initiate data transfers between the host GA: 7EOOH Scratch Pad Stack system memory and disk drives through the iSBC IX: 0 to 3 Unit Number 215 controller. 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.

3-23

CHAPTER 4 PRINCIPLES OF OPERATION

4-1. INTRODUCTION within the schematic diagrams. The first digit of the code is the schematic sheet number, and the last two This chapter provides a functional description of the characters specify the zone defined by the horizontal iSBC 215 Winchester Disk Controller circuit opera­ and vertical grid coordinates, which are printed tion. The discussion assumes that the reader has a around the perimeter of each schematic sheet. For working knowledge of digital electronics and has example, the code "7B8" indicates that the origin or access to the individual component description of destination of the associated signal appears on sheet each integrated circuit used on the board. As a 7 of the schematic set within the zone defined by grid prerequisite, the reader should be familiar with the coordinates "B" and "8". programming conventions discussed in Chapter 3 of this manual, and the functional operation of the An "X" for one of the grid coordinates indicates an Intel 8089 I/O processor and the Multibus interface. entire vertical column or horizontal row on the Familiarity with the disk drive's operation and schematic sheet. For example, the code "7BX" interface specifications will also prove beneficial in indicates the entire "B" zone on sheet 7. understanding the controller operation.

The logic symbols used in this manual are drawn as 4-2. SCHEMATIC INTERPRETATION specified in ANSI Standards 14.15 and Y32.14. Standard definitions are used for symbols and active A set of schematic diagrams for the controller board line levels on inputs and outputs (see Figure 4-1). A (Figure 5-3) and a component location diagram small circle on the input of a logic element indicates (Figure 5-2) are included in Chapter 5 of this manual. that a relative low level is needed to activate the element. The absence of a circle indicates that a The schematics are drawn to standard drafting relative high level is needed to activate the element. conventions with input signals entering from the left Output levels are indicated in the same manner. and output signals exiting to the right. Input and Logic gating symbols are drawn according to their output signals between individual sheets of a circuit function rather than the manufacturer's schematic include a location coordinate code imme­ definition. For example, the gate, which the truth diately preceeding (input signals) or following table in Figure 4-1 defines, can be drawn in one of (output signals) the signal name. This code defines the two configurations shown, depending on its cir­ the location of the origin or destination of the signal cuit application.

ACTIVE INPUT ACTIVE ACTIVE INPUT ACTIVE RELATIVE OUTPUT RELATIVE OUTPUT HIGH A RELATIVE A B Y LOW A RELATIVE y L L H HIGH Y B SoLOW L H H BE) L H H H L

ACTIVE INPUT ACTIVE ACTIVE INPUT ACTIVE RELATIVE OUTPUT RELATIVE OUTPUT RELATIVE A B Y HIGH RELATIVE LOW A A Y L L H LOW Y B 8 HIGH H L L L B L ~ H H L ===jD EXCLUSIVE OR

Figure 4-1. Logic Conventions

4-1 Principles of Operation iSBC 215

In addition to the inversion symbol convention, 2. Logic that controls data transfer between the signal nomenclature also follows an active state con­ controller and the disk drive(s) through the disk vention. When a signal (or level) is active in its low interface, and between the controller and the state, the signal name is followed by a virgule or iSBX bus through the iSBX bus interface. "slash" (e.g., XACK/); when a signal is active in its high state, the slash is omitted from the signal The Intel 8089 I/O processor (lOP) controls the data name, (e.g., XACK). This convention corresponds to transfer process, using a program stored in on-board putting a bar over a signal name to indicate it is ROM. It receives instructions from the host processor active in its low state (e.g., XACK). 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, 4-3. FUNCTIONAL OVERVIEW independent of the host processor.

General. The function of the iSBC 215 Winchester 2K bytes of RAM are included on the board for inter­ Disk Controller board is to allow the host system to mediate storage of data and to allow on-board error access any location on a specific disk of a selected checking. This data buffer allows DMA transfer to disk drive and either: be made between the controller and host system 1. Transfer data to that disk location from system memory, which minimizes Multibus™ overhead and (host) memory (write operation), or eliminates disk drive overruns. 2. Transfer data from that disk location to system Communicating with the host. Figure 4-3 pro­ memory (read operation). vides a detailed block diagram of the controller. The To accomplish this task, the controller circuitry is Bus Arbiter and the Bus Controller manage the divided into two sections (see Figure 4-2): transfer of data between system memory and con­ troller through the Multibus interface. The Bus 1. Logic that controls communications and data Arbiter negotiates with the current bus master for transfer between the host processor and the control of the Multibus interface. The Bus Controller controller through the Multibus interface, and generates control signals that gate data transfers ,------, I J3 J4 I I I I I I I I I I 8089 iSBX BUS I I lOP INTERFACE I iSBC I lOP I MICROCOMPUTER I I I INTERFACE TO LOCAL DISK I MULTIBUS" BUS INTERFACE INTERFACE INTERFACE I I I I I I ROM RAM SYSTEM I MEMORY I 110 COMMUNICA· TIONS BLOCKS I

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

4-2 iSBC 215 Principles of Operation

+ SERIAL INPUT DATA 4 - 'CHNL 1~ CHIP SELECT SERIAL 32 BIT ECC FR OM WAKE-UP ADDRESS SERIAL ECC ~ ATTN INTEL f-- ECC DATA ERROR 01 SK ADDRESS r+ DECODER ECC ,---. 8089 SELECTOr;- DR IVE lOP GENERATOR [7 DETECTOR17 COMPARATOR Is r [2 i 14 0( SERIAL INPUT DATA SHEET 10 CSROMI- a: '"U 8089 16 r ~ + MULTIBUS'· 16 SERIAL ADDRS/DATA " LOCAL SERIAL INPUT DATA INTERFACE IADR 16 BIT OUTPUT DATA .. ADDRESS SELECTOR ADDRESS SER/DES ~RIV>DATA LATCHES LATCH ~ ~ [1 ~ MULTIBUS'· INTERFACE f7 /' ADDRESS f4 Is ROM RAM 8K 2t( f MULTIBUS'· LOCAL [6 Is MULT IBUS'· DATA INTER FACE ...... INTERFACE DATA TRANSCEIVER DATA TRANSCEIVER IDAT 16 .~ t f4 J4 / NC"'" MULTIBUS'· INTERFACE 10 NCMPRI ~'~"C CONTROL .1 COMP BUS ... - 1+-+ CONTROLLER 1 [3 MULTI BUS'· I INTER FACE + DISK CONTROL STATUS 16 BIT 32 BIT DISK 16 BIT CONTROL BUS WRITE READ 10 STATUS INTERFACE e CONTROL RECEIVED ! .... ARBITER ~ BUFFER BUFFER r+ COMPARATOR REGISTER DISK LOGIC .f1O STATUS I"""" 10 /9 '11 AND -FROM 17: f7 E1 [3 -DISK ~ CLOCK t t 1 _1 DRIVE J " l I , ~ o = SCHEMATIC SHEET NUMBER • • OUT 0 GAP DISK INTERFACE OUT 1 DISK CONTROL CONTROL iSBX BUS GAP CONTROL CONTROL =: INTERFACE COUNTER DRIVERS OUT 2 LOGIC TIMING LOGIC CONTROL ==: 8 is [12 [12 TO DISK t DISK STATUS AND CLOCK DR I\( E

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

4-3/4-4 iSBC 215 Principles of Operation between system memory and the on-board RAM. It for sector ID operation that precedes a write or read also controls the transfer of data from RAM to the function. When a write or read is initiated, the 32-bit disk communication circuitxy. sector identification (cylinder, head and sector number) is loaded in the 32-Bit ID Comparator. The MuJtibus interface Address Latches transmit 20- Sector IDs from the disk are then read and compared bit addresses to system memory via the Multibus with the selected sector ID. When the selected sector interface. The Multibus interface Data Transceiver is found, data transfer is initiated. transmits data either to or from system memory via the Multibus Interface. The controller data bus is 16- The 32-Bit ECC Generator creates an error checking bits. The Data Transceiver uses a byte-swap tech­ code (ECC) that is appended to the end of each sector nique to allow data transfer with either an 8-bit or ID field and to each data field (see Figure 3-2). This 16-bit system memory. ECC is used for error checking and correction of data errors. It allows all the errors in a burst of up to 11 The Wake-Up Address Comparator is used to assign bits to be corrected, and allows errors in a burst of 32 the controller a host system 1/0 port address and to bits to be detected. set up a communications link between the 8089 lOP and the I/O communications blocks in system The Gap Control Logic controls the spacing of data memory. (A detailed discussion of the controller within a sector. Three programmable Counters, initialization procedure is given in Chapter 3 and in which count disk clock pulses, provide timing for the Paragraphs 4-12 through 4-15 in this section.) Gap Control Logic. The ability to program the Counters allows the disk(s) to be formatted for a Communicating with the disk. The 8089 lOP number of different record sizes and gap lengths. treats the ROM, RAM, iSBX I/O ports and disk communications side of the controller circuitry as The Disk Control Logic transmits disk control local memory. The Local Address Latches transmit information to the disk drive units through the 16-bit addresses to local memory. The Local Data Control Line Drivers. The Input Control Logic Transceiver transmits data either to or from local receives status information from the disk drive units memory. Some of the addresses in local memory and controls the sequencing of the controller read provide access to local I/O ports (see Paragraph 4-20 and write operations. for a detailed discussion of local I/O ports). The Address Decoder decodes these addresses and The iSBX Interface provides the ability to connect generates chip select or enable signals that control Intel iSBX Multimodule devices to the controller the transfer of data to and from the disk. For board in order to control other 1/0 devices such as example, the address 8028H enables the 16-Bit Write flexible disk drives or magnetic tape cartridge Buffer to receive a data word from the local memory. drives. The iSBX interface is discussed in more The ROM and RAM are also assigned specific detail in Paragraph 4-25. ranges of addresses in local memory. A more detailed overview of the read and write The 16-Bit SER/DES (Serializer IDeserializer) per­ operations is given in Paragraph 4-29 through 4-33. forms 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 4-4. DETAILED FUNCTIONAL storage for a single I6-bit parallel word between the DESCRIPTION RAM and the SER/DES. On a write operation, a 16- bit word is transferred from RAM to the write buffer. The detailed functional description of the iSBC 215 The SER/DES then converts the word from parallel Winchester Disk Controller circuitry is divided into to serial and transmits it to the disk tJarough the two major sections: Controller to Host Communica­ write data driver. On a read operation, a I6-bit serial tions and Controller to Disk Communications. word is transmitted from the disk through the Read Within each of these sections, the following subjects Data Receivers to the SER/DES. The SER/DES are discussed: then performs a serial-to-parallel conversion and stores the resulting parallel word in the read buffer. Controller to Host Communications: The Write Data Driver and the Read Data Receivers • Multibus™ Interface are designed to generate and read the differential NRZ drive signals. • 8089 IOP • Bus Arbiter The 32-Bit ID Comparator determines when the • Bus Controller selected sector on the disk is found during the search • Multibus™ Data Transfer Logic -

4-5 Principles of Operation iSBC 215

• Controller Initialization and mass storage devices such as disk drives. Its ability to perform DMA data transfers independent • Wake-Up Address Comparator of the host processor allows it to carry out most • Controller Reset and Clear system memory-to-disk transfers of data simultane­ • Establishing a Link with I/O Communications ously with other host processor operations. Refer to Blocks The 8086 Family User's Manual, Manual Order Number 9800722 for a detailed explanation of the • Interrupt Priority 8089 and supporting IC devices. • Memory Map A number of 8089 control lines have important func­ • ROM tions in the controller design. The PWR-RST line • RAM (4D1), when pulled high, resets the 8089 to the • I/O Port Decode Logic beginning of its internal firmware control program. Channel Attention line CA (4B4) allows the host to Controller to Disk Communications gain the attention of the 8089. On the first channel Controller to Disk Drive Interface attention following a reset, the 8089 fetches the • contents of address FFFF6H and begins an internal • DMA Mode initialization procedure. On subsequent channel • Disk Formatting attentions, the 8089 looks to the I/O communications blocks in system m~mory for further instructions. Write Data Transfer • Refer to Paragraphs 4-12 through 4-15 for a detailed • Read Data Transfer discussion of the controller initialization procedure • SER/DES Logic and the use of the CA line. • Sync Byte Comparator Logic The Bus Interface Unit (BIU) in the 8089 controls • 32-Bit ID Comparator Logic the controller local data bus cycles, transferring ECC Generator Logic instructions and data between the 8089 lOP and • external memory or the disk. Every bus access is • Status Register Logic associated with a register tag bit that indicates to • Line Drivers and Receivers 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 SOl, S1/ and S2/. The 8288 Bus Controller decodes these lines and provides 4-5. CONTROLLER TO HOST signals that selectively enable one bus or the other. COMMUNICATIONS The 8089 is a 16-bit processor, but it is capable of The following discussion provides a detailed func­ making both single-byte fetches (8-bit system tional description of the section of the iSBC 215 memory) or two-byte fetches (16-bit system memory). Winchester Disk Controller that communicates with The address zero line, IADR-O (5B7), controls the the host through the Multibus interface. 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 The clock circuit consists of U55, an 8284A Clock/ and the system memory through the Multibus Driver (4C6), and a 15 MHz crystal. The 8284A interface. The Multibus interface signal description divides the crystal output by three to produce the 5 and pin configurations are explained in Chapter 2. A MHz CLK necessary to drive the 8089 lOP. The detailed description of the Multibus interface 8284A produces a reset signal (RST), which is used operation can be found in the Intel Multibus™ Speci­ on power-up to reset the 8089, Interrupt Latch U56 fication Manual Order Number 9800683. (3B5) 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 4-7. 8089 I/O PROCESSOR (lOP) (XACK/ from external memory or the iSBX interface, or RDY from the on-board read/write port), indicates The 8089 lOP, U84 (4X4), is a microprocessor device that the memory or read/write port has accepted that has been designed specifically to perform high data during a write operation or data is ready to be speed I/O transfers of data between system memory read during a read operation.

4-6 iSBC 215 Principles of Operation

ROY ROY 1 U55 RESET RESET FROM READY ROY 2 TRANSFER ACKNOWLEDGE WAKE-UP (XACK/) LOGIC (U39) ,-c AEN 1 AEN2 CLK[4

U90 BUS CLK ARBITER MULTIBUS .. CONTROL LOGIC

~ SO/-S21 CHNL ATTN CA CLK AEN [3 8089 CHANNEL U84 SELECT SEL (RDC18) o:--; END TIME EXT 1 AEN EXT MEMORY READ COMMAND TERM =D- SO/-S21 SO/-S21 MRDC. CLK MWTC 0-_ MEMORY WRITE COMMAND ADO-AD19 14 INTA 1/0 READ IORC <1=:~ U91 1/0 WRITE 10WC ALE BUS J CONTROLLER STB V STB OE PDEN DTIR DEN[3 / 20 LOCAL 16 MULTIBUS U8S/U86 ADO-AD19 U8l-U83 /20 ADDRESS ADDRESS IADR-O - IADR-F ~ / LINES (ADR-OI - ADR-13/, BHENI) Is [4

1 "/-; OE T V T OE / 16 16 US2-U53 U96-U98 LOCAL ADO-AD15 /_16 DATA ...... MUL TIBUS DATA LINES IDAT-O-IDAT-F ~ / (DAT-O - OAT-F) 14 f4

Figure 4-4. Bus Arbiter and Bus Controller Logic

4-9. BUS ARBITER In line BPRN /, gIVIng the 8089 access to the Multibus interface. Having received access to the Multibus interface, the 8289 activates its busy signal The 8289 Bus Arbiter, U90 (3D6), controls the 8089 (BUSY I), indicating to the other masters on the iop's access to the Multibus interface (see Figure 4- system that the Multibus interface is in use. The 4). The 8289 monitors the 8089's status lines (SOl, 8289 then activates the address enable signal S1I and S2/). When the lines indicate that the 8089 (AEN I), which is transmitted to the 8288 Bus needs a Multibus interface cycle, and the 8089 does Controller, U9I (3C4), to enable its command not presently control the bus, the 8289 activates a outputs, to the 8284A Clock Generator, U55 (4C6), to bus request (BREQ/). The low on BREQI is trans­ enable its bus ready logic, and to the System mitted to the bus priority resolving circuitry in the Address Latches, U8I, U82 and U83 (4X2), to allow host processor, which returns a low on Bus Priority an address to be gated on to the Multibus interface.

4-7 Principles of Operation iSBC 215

Jumper pinsWI8-1, 2 and 3 allow the user to select Data TransmitlReceive (DT IR), Data Enable (DEN), the Any Request option. A jumper installed between and Peripheral Data Enable (PDEN!) control the pins W18-1 and 2 causes the controller to relinquish data flow through the controller. DT/R controls the control of the Multibus interface following a request direction of data transmission through the Multibus from a higher priority device only. A jumper interface and local transceivers. If DT /R is high, installed between pins W18-1 and 3 causes the data is transmitted either on to the Multibus controller to relinquish control of the Multibus interface through transceivers U96, U97 and U98 interface following a request from any device, higher (4X7) or on to the local bus through transceivers U52 or lower priority. and U53 (4X6). If DTIR is low, the data transfer is in the opposite direction, into the 8089 through one of the two sets of transceivers. DEN and PDEN 4-10. BUS CONTROLLER LOGIC controls the selection of the transceivers. If DEN is high the Multibus interface transceivers U96, U97 The 8288 Bus Controller, U91 (3C4), decodes the and U98 are enabled, and if PDEN/ is low (indicat­ status line outputs (SO/, S1/ and S2/) from the 8089 ing a peripheral cycle) local transceivers U52 and lOP and generates the appropriate bus cycle signal. U53 are enabled. Table 4-1 shows the different signals generated for each configuration of the lOP's status lines. 4-11. MULTIBUS™ INTERFACE DATA TRANSFER LOGIC Table 4-1. 8089 Status Line Decodes The controller has three sets of Multibus interface Status Input CPU Cycle 8288 Command data transceivers: low-byte transceiver U97, which S2/ S1/ SOt buffers DAT-O/through DAT-7I, high-byte trans­ 0 0 0 Instruction Fetch, INTAI e.eiver U96, which buffers DAT-8/ through DAT-F/, Local and swap-byte transceiver U98, which takes the 0 0 1 Read Memory, IORCI data from DAT-O/ through DAT-7/ on the Multibus Local interface and switches it to high-byte data bus lines 0 1 0 Write Memory, IOWC/, AIOWCI Local AD8 through AD15 on the controller board (see Figure 4-5). This byte-swap is performed only when 0 1 1 Halt None the controller is interfacing with a 16-bit system 1 0 0 Instruction Fetch, MRDCI System memory in byte mode. In this case, every odd address read from system memory is transmitted to 1 0 1 Read Memory, MRDCI System the high-byte data lines of the controller. The procedure is reversed when writing to the 8-bit 1 1 0 Write Memory, MWTC/, AMWCI System system memory. Three signals control the trans­ 1 1 1 Passive None ceiver: ENBL HI BYTE/ (5Cl), which controls the high-byte transceiver; ENBL LO BYTE/ (5Cl), which controls the low-byte transceiver (derived These bus cycle signals can be divided into two from ADRO/); and ENBL SWAP BYTE/ (5Cl), groups: those which allow the 8089 to access system which controls the swap byte transceiver. Figure 4-5 memory (MWTC/ and MRDC/) and those which shows when each of the control signals is active. allow the 8089 to access local memory (I-AIOWC/ and I-IORC!). The 8089 uses the I/O Read (I-IORC/) and I/O Write (I-AIOWC/) signals to read informa­ 4-12. CONTROLLER INITIALIZATION tion from the local ROM, U87 and U88, (6X7), or to read from or write to the local RAM, U99 through Before data can be transferred between system UI02, (6X4). The 8089 also uses I-IORC/ and 1- memory and the controller, the controller must be AIOWC/ to gate on the Read and Write Function initialized. The initialization procedure, which is Decoders, U35 and U36 (5B2 and 5A2). The function described in Paragraph 3-12, involves: decoders are explained further in Paragraph 4-20. 1. Resetting the 8089 IOP. The 8288 Bus Controller also generates a group of 2. Clearing the reset. signals that control address and data flow through­ out the iSBC 215 controller. The Address Latch 3. Establishing a communication link between the Enable line (ALE) is used to strobe addresses from 8089 and the I/O communications blocks in the 8089 into both the system Address Latches, U81- system memory. U83 (4X2), and the Local Address Latches, U85-U86 4. Reading the disk drive parameters from system (5X7). memory to the controller on-board RAM.

4-8 iSBC 215 Principles of Operation

HIGH HIGH .... /B BYTE /8 8 HIGH, BYTE BUFFER BYTE ... 8 8089 SWAP ADDRESS/ MULTIBUS" DATA BUS BYTE INTERFACE ADO- BUFFER AD15

LOW LOW /8 8 .... BYTE .... LOW BYTE '/ BUFFER BYTE

iSBC 215'· CONTROLLER

8-BIT 16-BIT SYSTEM MEMORY SYSTEM MEMORY

I-ADRO/ c L I-ADROI H I-ADRO/ c L I-ADRO/ H ENBL LO BYTEI L H * L , ENBL SWAP BYTE/ H L H ENBL HI BYTEI H H * L 'NOT APPLICABLE

Figure 4-5. Data Transmission Between Multibus™ Interface and Controller Data Transceivers

The following paragraphs describe the hardware enabling the controller to decode the command on operations that take place during this initialization the Multibus interface data lines and determine the procedure. (8ee Figure 4-6.) action to be taken.

The host may use 8-bit or 16-bit 1/0 port addressing. The user sets switch 82-2 (2A 7) to indicate to the con­ 4-13. WAKE-UP ADDRESS COMPARATOR troller the type of addressing that is being used. When 82-2 is open (8-bit addressing), pin 9 of U75 is For the purpose of resetting the controller, clearing held high, creating a "don't care" situation for the the reset or getting the attention of the 8089 rop outputs of High-Byte Wake-Up Address Comparators (raising CA), the host addresses the controller as an U77 and U78. I/O port in its system I/O space, To perform one of these functions it writes a one byte command to the Table 4-2. Host Wake-Up Commands specified I/O port called the wake-up I/O port, Table 4-2 shows the three possible commands. The user Command Description determines the address of the I/O port at which the OOH Clear Interrupt and Clear Reset controller is to reside (called the "Wake-Up Address") 01H Channel Attention (Start 8089 lOP) and sets the address on the W ake-U p Address 02H Reset 8089 lOP switches 81-1 through 81-8 and 82-:3 through 82-10 (2X6), on the controller board. When the host issues a As it is discussed in Chapter 3, the controller also write command (lOWC/) to the Wake-Up Address in uses the setting ofthe Wake-Up Address switches to system I/O space, U77 through U80 (2X5) on the calculate the address of the first byte of the Wake-Up controller compare the address with the switch Block, which is the first I/O communications block settings. If they agree, WAKEUP I is pulled low, in system memory.

4-9 Principles of Operation iSBC 215

WAKE-UP ADDRESS MULTIBUS'· DAT-O- D~ INTERFACE / 16 DATA AD-O - AD-1S / TRANSCEIVER V / 16 V / 16

16 WAKE-UP MULTIBUS" /16 INTERFACE WAKE-UP BUFFERS ~ SWITCHES / U93 - U9S 8089 WAKE-UP U84 ADDRESS TO 16-BIT SYSTEM MEMORY SYSTEM TO BEGIN BUS COMMUNICATION 8/16 BIT S2-2 CA r-----' WAKE-UP L-----RESET WAKE-UP ADDRESS FROM HOST /16 .~ ___C~H~N=L~A~T~TN~ __~ r ADR-OI - ADR-FI / ADDRESS COMPARATOR WAKE-UP DECODER U6S RESET

WAKE-UP 1/0 PORT CLEAR ~:~2~ CNTLR RSTI MULTIBUS" DAT-OI and DAT-11 /16 RESET U63 ':rJJ~::;E ------r-/---~ OOH - CLEAR RESET 01H - INITIALIZE 02H - RESET 8089

Figure 4-6. Wake-Up Address Logic

4-14. CONTROLLER RESET AND CLEAR A TIN, which in turn raises the CA input to the 8089 IOP (4C4). The first operation that must be performed during the initialization of the controller is a reset of the Being the first Channel Attention following reset, 8089 IOP_ To reset the 8089, the host processor writes the 8089 begins an internal initialization process. an 02H to the wake-up address. The WAKE-UP/ The first step of this process is to do a fetch of line goes low and gates the 02H (DAT-9/ high and address FFFF6H. The address is transmitted on the DAT-lIlow) into the Wake-Up Decoder, U65 (3B7), 8089 Address/Data lines (ADO-ADI5) to latches U85 producing a low on the controller reset (CNTLR and U86 (5B7). Gates U66 and U72 through U76 RST/) line. A low on CNTLR RST / resets the 8089 (5D4) decode the output of these latches. The output (4X4), resets Read/Write Control Logic U42 (sheet 8) of U76 enables U89 (5D3), gating the status of the 16- and clears Control Register U3 (12B5). Once the bit SYS BUS switch (S2-1) through Data Bit 0 line controller has been reset, the host processor writes a (DAT-O/) to the 8089. Switch S2-1 on (16 Bit SYS OOH (Clear Interrupt) to the wake-up address, which BUS/ low) indicates that the host memory system clears the reset. The Wake-Up Decoder U65 decodes supports 16-bit data transfers and S2-1 off indicates the highs on DAT-O/ and DAT-ll to raise CNTLR 8-bit data transfers. Inverter U89 also generates RST/. Transfer Acknowledge (XACK/), which is sent to the 80S9 (through the 8284A) indicating that the operation has been completed. 4-15. ESTABLISHING A LINK WITH I/O COMMUNICATIONS BLOCKS After determining the width of the system bus (8-bit Following a power-up event or a software reset (02H or 16-bit) the 8089 fetches the addresses shown in written to the wake-up I/O port), the link between Figure 4-7 as part of the initialization sequence. the controller and the I/O communications blocks in system memory must be established. To establish Fetching addresses FFFFS/9H gates zeros into the this link, a clear reset (OOH) is written to the wake-up 80S9. Fetching addresses FFFF A/BH causes the I/O port followed by a channel attention (OlH). The GATE SWS/ line (5Cl) to go low. GATE SWS/ gates 01H is gated into U65, producing a high on CHNL the settings of the wake-up address switches, SI-1

4-10 iSBC 215 Principles of Operation through Sl-8 and S2-3 through S2-10 through buffers

U93, U94 and U95 (2X3) and into the 8089. The 8089 FFFFH multiplies the settings of the wake-up switch by 2\ to determine the 20-bit address of the wake-up block, the first 110 communications block in system C01EH memory. The 8089 then uses this address to fetch the COOOH wake-up block and establish a link with the I/O communications blocks. On subsequent channel 8038H attentions (host writes OlH to the wake-up I/O port), 8000H the 8089 skips the wake-up block and goes directly to the channel control block, the second I/O communi­ 47FFH cations block. The 8089 uses the channel control 4000H block to obtain the starting address of the controller's lFFFH ROM resident I/O transfer program (also called the channel control program). From this point on, this OOOOH '------' firmware program directs the controller activities. One of the first operations of the firmware is to SHADED AREA again fetch the starting address of the wake-up INDICATES UNUSED block. It then links its way through the channel ADDRESS SPACE control block and the controller invocation block to Figure 4-8. Local Memory Map the I/O parameter block where it obtains instruc­ tions and parameters for a specific I/O operation.

FFFF6 4-18. ROM FFFF8J The controller ROM, which contains the 8089 lOP's 8-BIT FFFF9 16-BIT disk control program, consists of two (4K x 8-bit) SYSTEM BUS ~ FFFFA SYSTEM BUS ROM devices, U87 and U88 (6X7). On any read from FFFFB local memory in the range of OOOOH to 1FFFH, chip select decoder U65 (5B4) decodes address lines Figure 4-7. Address Fetches In Initialization IADR-E and IADR-F and pulls ROM chip-select line Sequence. CSROMI low, enabling the ROM devices.

4-16. INTERRUPT PRIORITY LOGIC 4-19. RAM

Wire wrap pins W19-C and W19-0 through W19-7 The controller RAM consists of four (lK x 4-bit) (3B2) allow the user to select the interrupt priority of RAM devices, U99 through U102 (6X4). On any read the controller with respect to other peripherals in the or write to local memory in the range of 4000H to system. To issue an interrupt to the host, the 8089 47FFH, chip select decoder U65 (5B4) pulls RAM lOP writes an OlOOR to local 1/0 port 80l0H. A high chip-select line CSRAMI low, enabling the RAM on data line BDAT-8 and a low on write decoder line devices. WDC101 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 110 port wake-up address, 4-20. LOCAL MEMORY MAPPED 1/0 clears the interrupt (refer to Paragraph 4-14). PORTS AND iSBXTM 1/0 PORTS

The 8089 lOP views the controlling devices in the 4-17. LOCAL MEMORY MAP disk control circuitry (such as ID comparators, counters, write buffer, read buffer, etc.) and the iSBX As was discussed in the Functional Overview, the bus ports as local 1/0 ports, each with an address in 8089 lOP addresses the ROM, RAM, iSBX I/O ports local memory space. To enable one of the disk and the disk communications side of the controller control devices, the 8089 executes a read or a write to circuitry as local memory. Figure 4-8 shows a map of the devices respective address. On any read or write this local memory. The following paragraphs to local memory in the range 8000H through 8038H, discuss the ROM, RAM and I/O ports. chip select decoder U65 (5B4) pulls its pin 10 low.

4-11 Principles of Operation iSBC 215

Table 4-3. Local 1/0 Ports

Address Read (U33 Enabled) Write (U32 Enabled) Enable Line Function Enable Line Function SOOOH RDCOOI Read Disk Status WDCOOI Write control data to disk drive and en- able AM SEARCH/, RDGATE and WRT GATE. SOOSH WDCOSI Clear index and ID not compare latches S010H WDC101 Write to disk control register. S01SH RDC1S1 Raise S089 Ch 2 CA input. WDC1S1 Write to Unit Select and Control register 8020H RDC201 Read contents of counter 2 WDC201 Load counter 0 S022H RDC201 Read contents of counter 1 WDC201 Load counter 1 S024H RDC201 Read contents of counter 2 WDC201 Load counter 2 S026H WDC201 Write mode word S02SH RDC281 Read contents of read buffer WDC2S1 Write data to write buffer S030H WDC301 Write sector ID to high comparator, start track format operation. S03SH WDC381 Write sector ID to low comparator

When this low on pin 10 of U65 is accompanied by a 4-21. CONTROLLER TO DISK DRIVE low on I/O read line I-IORC/, read I/O port address COMMUNICATIONS decoder U36 (5B2) is enabled; when the low on pin 10 of U65 is accompanied by a low on I/O write line I­ The following discussion provides a detailed func­ AIOWC/, write I/O port address decoder U35 (5A2) tional description of the section of the iSBC 215 is enabled. When enabled, U35 or U36 decode local controller that communicates with the disk drive memory address lines IADR-3 through IADR-5 to through the Winchester drive interface, and a select the desired disk control device. Table 4-3 description of the controllers interface with the iSBX shows the address of each local I/O port and its bus through iSBX connectors, J3 and J 4. The function. discussion is broken into four areas: (1) description of the disk interface and iSBX bus signals; (2) The two iSBX bus connectors, J3 and J4, on the explanation of how the controller formats a disk iSBC 215 board provide access to the controller's prior to performing the read and write functions; (3) iSBX bus. The iSBX bus provides 16 data lines and explanation of how writes and reads are performed; three address lines, providing a total of sixteen 16-bit and (4) descriptions of the various circuits that I/O ports per connector. Each of these I/O ports has perform the data transfer. an address in local memory space (see Table 4-4).

Table 4-4. iSBXTM Bus 1/0 Port Addresses

Port iSBX Bus Port Address Assignments 4-22. CONTROLLER TO WINCHESTER J3- J3- J4- J4- DISK DRIVE INTERFACE Channel 0 Channel 1 Channel 0 Channel 1

0 C070 COBO CODO COEO All the signals that are transmitted between the 1 C071 COB1 COD1 COE1 controller board and the 8" Winchester disk drives are transmitted through either the Control Cable 3 C073 COB3 BOD3 COE3 (J1) or the Read/Write Cable (J2). The physical 4 C074 COB4 COD4 COE4 configuration of these cables is described and 5 C075 COB5 COD5 COE5 illustrated in Chapter 2. All the signals transmitted 6 C076 COB6 COD6 COE6 between the drives except for the read, write and 7 C077 COB7 COD7 COE7 clock signals are TTL level. The read, write and clock signals are transmitted as differential signals. When the 8089 executes a read or a write to one of these ports, chip select decoder U65-9 (5B4) activates The interface signals that the controller supports are the CSMMIO/ line. Gates U30 (I3C3) and inverter described in the following paragraphs. Each of the U31 (I3C4) decode the CSMMIO/ and IADR-4lines drive manufacturers, Shugart/Quantum, Memorex, to select either J3 or J4. Address lines IADR-I, Priam and Pertec, use the available lines differently. IADR-2 and IADR-3 are transmitted to connectors For the specific use of the lines being employed, J3 and J4, pins 11, 9 and 7, respectively (5CI), to consult Figure 2-3 through 2-6 and the drive manu­ select the I/O port on the selected connector. facturer's user manual.

4-12 iSBC 215 Principles of Operation

4-23. CONTROL CABLE SIGNALS 1. Device Select (Output) 2. Head Select (Output) Control and status information is exchanged be­ tween the controller and the drive through the 3. General Purpose Data Bus (Bidirectional - Control Cable. Output signals are defined as those Priam and Pertec Only) signals that the controller transmits and input 4. Control (Output) signals as those the controller receives. The Control 5. Status (Input) 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 Table 4-5 describes the function of each of the lines divided into five categories: 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. HEAD SELECT HSO!-HS3! Head Select Four binary coded lines select one of sixteen heads in selected drive. GENERAL PURPOSE DATA BUS (Priam and Pertec Only) BUSO!-BUS7 ! Data Bus Eight-bit, bi-directional data bus transmits command and status information between controller and drives. Data transmitted includes head and cylinder data. COMMAND DATA 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 = in, High = out) when stepping 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 Acknowledges a bus cycle; used in bus cycle handshaking with commands, Acknowledge parameters and status. AD MK EN/ Address Mark Enables writing or detecting of address marks (beginning of sectors) when used Enable in conjunction with WRGATE/ and RDGATE!, respectively. Refer to SECTOR! under status data. FL T CLR! Fault Clear Clears FAULT/ line in selected drive. Signal has no effect if fault condition has not been corrected. SAFE! Controller Indicates to drive that power condition of controller is safe. Power Condition BAO/ and BA1! Bus Address Two binary coded lines specify source or destination register in selected drive for bus data. STATUS DATA INDEX! Index Pulse received from selected disk drive once every disk revolution. SECTOR/ Beginning of Signal indicates beginning of a sector: address mark for soft sectored disks, Sector 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. ILL ADR/ Illegal Address 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 Principles of Operation iSBC 215

Table 4-5. Control Cable Line Functions (Continued) Line Name Function Description STATUS DATAJContinuedJ WR PROI Write Protected Indicates 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 4-25. CONTROLLER TO iSBX™ SIGNALS CONNECTOR INTERFACE

All the signal and control lines transmitted between Read Data, Write Data, Clocks, and two status lines the controller and the iSBX bus are transmitted both constitute the information exchanged over the through connectors J3 and J4. These lines are Read/Write cables. Output signals are defined as discussed only in general in this manual as they those signals that the controller transmits to the pertain to the remainder of the discussion of the disk drives, and input signals those that the controller interface with the Winchester drives. For a controller receives. For the Memorex or 14" Shugart more detailed discussion of these lines refer to the drives, the Read/Write cables are connected from the Intel iSBxrM Bus Specification, Manual Order No. controller to the disk drive in radial fashion, that is 142686. one cable from the controller to each of the drives. J2 provides read, write and clock signals for two drives, It should be noted that the controller does not sup­ for example, RDO (+ and -) and RDI (+ and -). One of port any parallel-to-serial or serial-to-parallel con­ these signals goes to physical address 0 and the version of data for transmission through the iSBX other to physical address 1. When using 8" Shugart, connectors. It interfaces with any device connected Quantum, Priam or Pertec drives, only the signals to these connectors through an 8 or 16-bit parallel associated with physical address 0 are used. These bus and a number of control and handshake lines. signals are then daisy chained between drive units The interface thus resembles the read/write port, allowing the controller to communicate with up to made up of the write buffer and the read buffer, that four drives. Chapter 1 describes the cabling require­ is used in the controller interface to the Winchester ments for the various drive manufacturers. The drives. physical configuration of these cables is explained The names in the schematic diagrams for the signal and illustrated in Chapter 2. Table 4-6 describes the and control lines from the iSBC 215 Controller that function of each of the lines transmitted through the are connected to iSBX connectors J3 and J4 often Read/Write Cables. Note that the read, write and differ from the respective line name from the iSBX clock signals are differential signals, requiring two bus specifications. Table 4-7 lists both the iSBX bus lines in the cable; the status lines are TTL level mnemonic and the controller line name for each line signals. in the iSBX bus that the controller supports.

Table 4-6. Read/Write Cable Line Functions

Line Name Function Description WRO and WR1 Write Data Write Data line pairs transmit serial NRZ data from the controller to the drive for (+ and -) recording on the disk surface. Write Clock synchronizes data transfer. WRClO and Write Clock Write Clock line pairs transmit clock signal to drive that is used to synchronize WRCl1 write data transmission. Write Clock is derived from Read Clock, which the con- (+ and -) troller receives from the selected drive. Since the Read Clock is obtained from the rotating disk, it reflects any speed variations and thus ensures the proper bit rate transmission when writing as well as when reading. ROO and RD1 Read Data Read Data line pairs transmit serial NRZ data from the disk drive to the controller. (+ and -) The controller converts the differential signal into TTL levels for transmission to the host memory. The Read Clock synchronizes Read Data transfer. RDClO and Read Clock Read Clock line pairs transmit clock signal to controller that is used to synchro- RDCl1 nize read data transmission and as a timing Signal for the controller disk interface (+ and -) circuitry. Read Clock is derived from rotating disk. SECTOI and Beginning of Same as SECTORI signal transmitted to controller through Control Cable, one SECT11 Sector signal from each physical address. SKCOMOI and Seek Complete Same as SKCOMI signal transmitted to controller through Control Cable, one SKCOM11 signal for each physical address. RD WR CURl Reduced Write Output signal used to control the write electronics for the inner tracks with higher Current bit densities.

4-14 iSBC 215 Principles of Operation

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

iSBX Bus iSBX Bus Pin Mnemonic J3 J4 Pin Mnemonic J3 J4 43 MDS IDAT-S IDAT-S 44 MD9 IDAT-9 IDAT-9 41 MDA IOAT-A I OAT-A 42 MOS IDAT-S IDAT-S 39 MOC IOAT-C IOAT-C 40 MOD IDAT-O IDAT-O 37 MOE IOAT-E IOAT-E 38 MOF IOAT-F IOAT-F 35 GNO GNO GNO 36 +5V +5V +5V 33 MOO IOAT-O IDAT-O 34 MDRQT OREQO DREQ1 31 M01 IOAT-1 IDAT-1 32 MDACKI N/C N/C 29 MD2 IOAT-2 IOAT-2 30 OPTO OPOO OP01 27 M03 IDAT-3 IDAT-3 28 OPT1 OP10 OP11 25 MD4 IOAT-4 IOAT-4 26 TOMA EXTRO EXTR1 23 M05 IDAT-5 IOAT-5 24 21 M06 IDAT-6 IOAT-6 22 MCSOI CSMMIOOI CSMMI021 19 M07 IOAT-7 IOAT-7 20 MCS11 CSMMI011 CSMMI031 17 GNO GNO GNO 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 IAOR-O IAOR-O 12 MINTR1 INTR10 INTR11 9 MA1 IAOR-1 IAOR-1 10 7 MA2 IAOR-2 IAOR-2 8 MPSTI MOPSTI M1PSTI 5 RESET PWR RST PWR RST 6 MCLK CCLK CCLK 3 GND GNO GNO 4 +5V +5V +5V 1 +12V +12V +12V 2 -12V -12V -12V All undefined pins are reserved for future use.

4-26. CONTROLLER TO DISK DRIVE The RDY (Ready) line (8Dl) is used for hand shaking INTERFACE TIMING between the 8089 and the data transfer circuitry. When RDY is low, the 8089 is quiescent; when RDY The following paragraphs provide a detailed discus­ is high, the 8089 performs a DMA transfer of data sion of the inter-circuit timing that occurs when either from local RAM to the write buffer (block-to­ formatting a disk, writing to a disk or reading from a port) or from the read buffer to local RAM (port-to­ disk. The discussion is provided to describe the inter­ block). Gates U40, U41 and U12 (8D3) control the action of the timing logic shown on Sheet 8 of the RDY line. Schematic Diagram, with the disk drive interface receivers and drives shown on sheets 9 through 12 To perform a write or a read, the 8089 executes firm­ and the other data transfer circuitry described in ware to set up data (write only) and condition the Paragraphs 4-31 through 4-36. 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 4-27. DMA MODE MWAITI line is high; the R/W GATE line (8D1) is high (see Figure 4-9); U21-8 (8D3) is high, held so by the low on the ENBL XFER line (8Dl); and the In general, when the controller is performing a read R/WDC 28 line, the output of Ull-ll (8D7), is low. or a write function it locates the area of the disk The low on R/WDC 28 is thus keeping RDY acti­ where the read or write is to be performed, then vated. On this first attempt to transfer data in the enters its DMA mode to perform the actual transfer. DMA mode, the 8089 activates either RDC 281 or (The process oflocating the area to be read or written WDC 281 (8D8), depending on whether a read or a to is discussed in the following paragraphs.) In the write is being performed, respectively (refer to DMA mode, the 8089 lOP (see Figure 4-2) controls Paragraph 4-31). When RDC 281 or WDC281 is the transfer of data between the local RAM block activated, the R/WDC 28 lines is activated, lowering and the write and read buffers (called theread/write RDY and putting the 8089 into its quiescent (wait) port). The data transfer circuitry on the controller state. When the controller's data transfer circuitry board controls the transfer of data between the readl has found the area on the disk where the read or write port and the disk. write is to begin, it activates ENBL XFER (8D1). On

4-15 Principles of Operation iSBC 215 the next occurance of a Bit Ring-O pulse, BR-O (8D1), MWAITI exercises the same control over the RDY following the activation of ENBL XFER, U21-8 line as U40 (8D3) and can thus be used to set up a (8D3) is activated, activating RDY. The 8089 then handshaking arrangement between an I/O control­ immediately performs the data transfer (writes a ler connected to one ofthe iSBX interface connectors word into the write buffer or reads a word from the (J3 or J4) and the 8089. Refer to the discussion of the read buffer) and lowers R/WDC 28. On the next 8089 in the 8086 Family User's Manual for a more clock into U21-11; U21-8 is raised. On the 8089's next detailed explanation of the various uses of the 8089 attempt to perform a data transfer, R/WDC 28 is wait states. 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 4-28. DISK FORMATTING word from the write buffer to the disk or reads another word from the disk into the read buffer. Before the surfaces of a disk can be used for the Then on the next BR-O pulse, RDY is again activated writing and reading of data, the disk must be and the next DMA data transfer occurs. The 8089 formatted. Formatting is the operation of writing all continues in this DMA mode until the R/W GATE the address fields, gaps, ID headers, etc. for the line is lowered. complete disk. The controller performs this operation under software control. The software routine that Note that two other lines have potential control over controls this disk formatting operation allows only a the RDY line. The TIME OUT line (8D8) is provided single track to be formatted for each Format to allow the 8089 to be activated if a sector cannot be command. The host thus issues a new Format found on a cylinder. While the drive is searching for command to the controller board for each track to be a sector, the RDY line is held low. If after two formatted until the formatting of the entire disk is revolutions, the drive does not locate a sync byte, the complete. time out line is raised. U41 (8D3) gates the TIME OUT signal through to U12 (8D1) and activates The implementation of the Format command is RDY. divided into two operations. During the first opera­ tion, address marks (soft sectored disks only), gaps The MWAIT I line (8D8) is an iSBX Interface control and ID fields are written during a single disk line, derived from MWAITOI and MWAITli (13D8). revolution. During the second operation, data fields

BR-O (SOl)

U21-S ----~S 5--1--..., (S03)

R/WOCUll-ll~ 28 (S07)

ROY (SOl)

R/W GATE (SOl)

ENBL XFER (801) I J\ CTRll ------11

Figure 4-9. Timing Diagram for RDY Signal

4-16 iSBC 215 Principles of Operation are written (using the write data sequence described When the heads are positioned over the selected in Paragraph 4-31) with user supplied data. The track, the 8089 writes a COH (for unit 0), a C8H (for second operation requires two disk revolutions, one unit 1), a DOH (for unit 2) and a D8H (for unit 3) to to write the odd physical data fields (1, 3, 5, ... ) and I/O port 8018 (decoded as WDC 18/). The activation one to write the even physical data fields (0, 2, 4, ... ). of WDCI81 enables U3 (I2A5) and activates the Three disk revolutions are thus required to format a WRT GAT-F and FORMAT lines (I2BI) and WRT single track. The hardware execution portion of the GATE (I2CI) (see Figure 4-10). WRT GAT-F and format operation is discussed in the following FORMAT enable the controller format control paragraphs. This discussion pertains to the format­ circuitry. The controller then writes all zeros to the ting of a soft sectored disk. The iSBC 215 controller drive while the 8089 waits for the receipt of the first supports both soft and hard sectored disks. I The INDEXI pulse (lID8). formatting procedure, however, is essentially the same. The differences are described at the end of this The receipt of INDEXI sets latch U34 (llD6), which section, along with the slight differences in the in turn sets bit F of the Status Register, U44 (lID5). sector format used with the Shugart/Quantum To monitor the Status Register, the 8089 polls (reads) drives. When the Format command is issued to the I/O port 8000H bit F (decoded as RDC 00/). Upon controller, the 8089 lOP performs a seek to the detecting Index, the 8089 writes a XXXXH to I/O desired track (cylinder) to begin the format operation. port 3030H (decoded as WDC 30), which triggers U63 (8B7), activating the WRT AMI line (8BI) and causing the first address mark to be written on the disk through the ADMKENI line (I2DI).

IA soft sectored disk (as used in Shugart/Quantum The time that the 8089 allows between the detecting and Pertec drives) requires an address mark to be of Index and the activating of U63 (8B7) is approxi­ written at the beginning of each sector during the mately 11 byte times, which is the time the controller formatting operation. Hard sectored disks (as used requires to perform a number of firmware steps in in Memorex and Priam drives) provide a sector pulse preparation for writing the first address mark and at the beginning of each sector, thus address marks ID field, (see Figure 3-2 for a pictorial representation do not need to be written. of the track format). During this time, the 8089

@] l~l 10 IEccl ~ 1~IID IEccl

~) ( )~ WRT GATE·F (

FORMAT~ ( I INDEXI ~

WRT GATE ,I WDC 301 ,1

WRT AMI ( I

CTR 01 ( I

CTR 1/ ( 1

CTR 21 ( 1

WRT XFERI ECC TIMEI L{ END TIME ~ : Figure 4-10. Timing Diagram for Disk Formatting Sequence

4-17 Principles of Operation iSBC 215 writes the sync byte (0019H) to the write buffer, U46 with no gap between the address mark and the sync and U 49 (7C7 and 7D7), by writing to I/O port 8028H byte. In addition, a D9H is used for the sync byte in (decoded as WDC 28/). It performs this operation in the data field rather than a 19H. When the controller preparation for writing the ID field on the track. sync byte detector circuit, U54, U68 and U73 (7B5), detects a sync byte (19 or D9) following an address The activation of WRT AMI also starts counter 1, mark and, the SR-6 (7B1) line is activated, (D9 only CTR 1 of U69 (8A 7). (The 8089 preset the counters in detected), the DATA SYNC and IDNCMPRL lines U69 at the beginning of the format operation.) When are activated through latch U37 (9A6). DATA SYNC CTR 1 times out at the end of 11 byte times, it and IDNCMPRL then set bits 3 and 6, respectively, activates the WRT XFER/line through U63-7 (8C3), of status register UI0 (l1C5) indicating to the and starts CTR 2. The activation of WRT XFERI controller the presence of the data field instead of an initiates the 8089's DMA mode (as discussed in ID field. In the Memorex, 14" Shugart, Pertec and Paragraph 4-27), during which time the sync byte Priam drives, a data field is assumed to follow an ID and the sector ID are written onto the disk. CTR 2 field without an intervening address mark. times out at the end of the ID field, starting CTR 0 and activating the ECC TIME line (8B1). During the A second difference between the 8" Shugart! ECC TIME, the ECC code from the ECC generator is Quantum drive and the other three drives is that written following the ID field (refer to Paragraph 4-34 with the 8" Shugart/Quantum drives, a 4EH pattern for a description of the operation of the ECC genera­ is written in the gaps rather than zeros. Inverters tor). At the end of ECC TIME, the END TIME line is U58 and U17 (8D6) and gates UI9 (8D5) creates the enabled, which lowers the WRT XFERI line and 4EH pattern. U40 and U60 (8A3) gate the pattern takes the 8089 out of the DMA mode. After the last through to the SER/DES when the SHUGART and ID field is written, the FORMAT line is deactivated, WRT GAT-F lines are activated during a format. which inhibits the writing of any additional address marks. 4-29. WRITE DATA TRANSFER CTR 0 is set for a time equal to the ECC+G3+DATA+ G4, which the 8089 sets according to the sector size The write operation is divided into two steps: (1) read selected for the drive. When CTR a times out, it sector ID and (2) write data. When a write is activates WRT AMI and CTR 1, which begins the formatting of the second sector. This procedure is initiated, the 8089 lOP writes 0006H to I/O port 8000H (decoded as WDCOO). Latch U24 (12C5) then: repeated until the 8089 determines that the last ID activates the AM SEARCH I, ADMKEN I and RD field has been formatted. The 8089 then begins GATEI lines, which enables the drive to search for searching for the Index pulse. Upon receipt ofIndex, the address mark and enables the controllers read the RST FRMTI line is activated, resetting WRITE circuitry (see Figure 4-11). GATE-F and FORMAT, and inhibiting the writing of the next address mark. The 8089 then continues The 8089 has previously written to I/O port 8020H through the Format routine to the second operation, (decoded as WDC20/) to load counters 0, 1 and 2 of which is the writing of the data fields with user U69 (SA 7). It also writes to I/O ports 8030H and supplied data. The write data function, discussed in 8038H (decoded as WDC301 and WDC3S/), loading Paragraphs 4-29, describes the write data operation. the ID of the sector to be written to, into the 32-bit ID comparator logic. For hard sectored disks, a jumper is connected between terminals W16 1-3 (8B8). The formatting of When the address mark (or sector pulse) is detected, the first sector thus begins when the first SECTORI SECTORI is activated, which activates the AMFND­ pulse from the disk following the INDEXI is SECTORI line (lIB 1). The low on AMFND­ received, rather than when WDC 301 is activated. SECTORI resets U34 (8C7) and deactivates the ID When the SECTORI line (l1B8) is activated, it FIELD line. The low on the ID FIELD line, deacti­ activates the INDEX-SECTORI line (lICl), which vates the AMMKENI line and activates the ALW starts CTR 1. Formatting then continues in the same SYNC SRCH, initiating the search for the sync byte. manner as with soft sectored disks, except that the (Note that with the Shugart drives, the sync byte beginning of the next sector occurs at the receipt of follows the address mark directly. The activating of the next SECTORI pulse rather than at the timing AM FND-SECTORI thus activates ALW SYNC out of CTR o. SRCH directly through jumper W14 1-2 (l2C3).)

The 8" Shugart/Quantum drive sector format differs In searching for the sync byte, serial data from the in two ways from that of the other three drive types. disk is read into the SER-DES. Sync byte comparator In the 8" Shugart/Quantum drives, an address mark U73 and U54 (7B5) monitors the outputs of the SER­ is placed before both the ID field and the data field, DES and pulls the SYNC BYTEI line (7Bl) low

4-18 iSBC 215 Principles of Operation

I~I DATA I~I DATA

AMENABLE~~~ ______~

RD GATE M' (BCS) ---1

AM FND-SECTOR/ ------, (SBS)

SYNC FND/ ------, (9C1)

ECC TIME/ ------+---, (SA1)

END TIME (SB1)

CTRO/-----~ (SB6)

CTR1/------~ (SA6)

CTR2/ ______-+--,

(SA6)

WRT GATE (SCS) ______....1

WRTXFER/------~I) (SC1)

Figure 4-11. Timing Diagram for Write Data

when 19H - the sync byte - is detected. The and the controller searches for the next address enabling of SYNC BYTE/, enables the SYNC FNDI mark. lines (9CI), which in turn activates the ID compara­ tor UI, U2, U22 and U23 (9DX) and word clock U20 To begin the second step of the write operation, the (8D7). (See the discussion of the Sync Byte Compara­ 8089 writes a OIH to I/O port 8000H (decoded tor Logic in Paragraph 4-32.) WDCOO/) and enables the write gate (WRT GATE), through U24 (12B5), enabling the drive's write circuitry. When counter times out, counter 1 is SYNC FNDI also raises the ENBL XFER line, (8CI), a started. Counter 1 is set for a time interval equivalent which enables the ECC Generator logic (7 AX) and to the ECC time plus GAP 2. When counter 1 times Ready Latch U21 (8D4), and gates on counter of a cut, counter 2 is started and the U63-7 (8C3) is set, U69 (8A7). activating WRT XFER/. WRT XFERI enables write buffers U46 and U49 (7C7) and the ECC comparator The 32-bit comparator (see Paragraph 4-33) com­ logic (7 AX), and raises the RDY line high indicating pares the ID read from the disk with the ID of the to the 8089 that the write buffer is ready to receive selected sector. At the end of the ID time, counter a data. times out, pulling the ECC TIMEI line (7 A8) low and initiating the ECC compare (see Paragraph 4-34). If The 8089 then enters its DMA mode to write data the ID and the ECC are valid, bit 6 of the controller from local RAM to the disk (see the discussion of the status register UIO (1IC5) is reset. At the end ofECC DMA mode in Paragraph 4-27). The controller con­ time, U42-10 (8B2) activates the END TIME line tinues transferring data to the disk in this manner which resets RD GATE. The 8089 then checks bit 6 until Counter 2 times out, indicating the end of the of control status register UIO (llC5). If the bit is data field, and raises the ECC TIME line. With the inactive, the 8089 continues with the write operation. ECC TIME line activated, the ECC generated during If the ID or ECC are not valid (bit 6 active), the AM the data transfer is written to the disk. END TIME ENABLE and RD GATE lines are then reasserted then terminates the write operation.

4-19 Principles of Operation iSBC 215

[~I DATA I~I DATA

AM ENABLE-.J ID DOES NOT /,10 DOES COMPARE / COMPARE RD GATE r------, (8CS)

FND SECTOR/------. (8BS)

SYNC FNDI ______-, (9C1)

END TIME ______----1,..--...... ;.,.-.---1 (8B1)

CTR2/ ______~

(8A6)

Figure 4-12. Timing Diagram for Read Data Transfer

4-30. READ DATA TRANSFERS During a write operation (WRT XFERI low), the 8089 lOP writes to I/O port address 8028H. Write The read operation is divided into two steps: (1) read I/O port address decoder U35 (5A2) decodes this sector ID and (2) read data. The reading of the sector address and pulls WDC281 low, clocking the data to ID is performed in the same manner as for the write be written to the disk (BDAT-O through BDAT-F) operation (see Figure 4-12). into write buffer U46 and U49 (7C7). A high on load serial register line LDSR (7C6), derived from word When the desired sector is located, the RD GATE is clock V20 (8C7) loads the contents ofthe write buffer again raised to search for the sync byte of the data (SR-O through SR-F) into the SER/DES (7C5). field. When SYNC FNDI is activated, counter 2 is Read/write clock R/W CLK-B (7B8) then clocks the started through U61-8 (8C4) and U59 (8B6), the ECC data bit by bit through the QH' output ofU50 (7D5), generator is enabled and the RDY line is activated, and through selector V70 (7A7) to the WRT DATA initiating the DMA read data transfer mode. Data is line. R/W CLK-A clocks the serial data string on then transferred from the disk to local RAM for the WRT DATA through Vl8 (IOC3) to the selected duration of counter 2. drive. When counter 2 times out, ECC TIME is activated. Following ECC TIME, END TIME is raised, termin­ ating the read operation. During a read operation, the R/W CLK-B (lOBI) gates the serial data string (RD DATA) from the disk 4-31. SER/DES LOGIC drive through Vl8 (lOB4) and selector U70 (7 A 7) and into the SI input of U 4 7 (7C5), creating a 16-bit The serial/deserialize logic performs two functions: parallel word. Bit ring-O line BRO (7B8) then clocks (1) converts parallel data words into a serial string of this word into read buffer U48 and U51 (7C4). BRO bits to be sent to the disk drive during a write is derived from word clock U20 (8C7). With the read operation, and (2) converts a serial string of bits into buffer loaded, the 8089 initiates a read to I/O port 16-bit words during a read operation. The SER/DES address 8028H. Read I/O port address decoder V36 logic is made up of Write Buffer U46 and U49 (7C7), (5B2) decodes this address and pulls RDC281 low, SERializer/DESerializer U47 and U50 (7C5), Read which clocks the data word from the read buffer onto Buffer U48 and U51 (7C4), and Selector U70 (7A7). internal data bus IDAT-O through IDAT-F.

4-20 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 The error checking code (ECC) logic performs two sync byte during a read operation and synchronizes functions: (1) during a write operation, it generates a word clock U20 (8C7) with the data. A sync byte is four byte ECC polynomial that is appended to the ID written preceding each sector ID and each data field field (format operation only) and the data field to indicate to the controller that data to be read is (normal write) of a record (see Figure 3-2), (2) during forthcoming (see Figure 3-2). The sync byte value is a read operation, it regenerates the ECC polynomial always I9H except for the Shugart/Quantum drives, and compares it to the ECC field read from the disk which use a OOH for data fields. 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 ofthe SER/DES, U47 and U50 (7C5). When a I9H is detected, SYNC During a write operation, serial data (either an ID BYTEI goes low indicating the presence of the sync field or a data field) is transmitted from the byte. SYNC BYTEI and the next output of R/W SER/DES (7C5) through selector U70 (7 A 7) and into CLK-B set the SYNC FND flip-flop, U57 (9C6). the ECC generator through pins 1 and 2 of UI03 SYNC FND activates word clock U20 (8C6), and (7A6), where the ECC polynomial is generated. At activates the read/write logic (sheet 8). A further the same time a high on the WRT XFER DL YD line explanation of the sync byte logic can be found in (7B8), transmitted through gate U68 (7B4), enables Paragraphs 4-29 through 4-31. the serial data to be transmitted through U7I (7A2) and selector U70 (7 A 7) to the WRT DATA line, where it is transmitted to the disk. At ECC time (end of 4-33. 32-BIT 10 COMPARATOR LOGIC data field), WRT XFER DLYD goes low, inhibiting write data from being transferred through gate U68 The 32-bit ID comparator logic compares the sector (7B4). The ECC TIME I line goes low, causing the ID of the record being searched for with the sector ID ECC polynomial to be written onto the disk through being read from the disk drive. The sector ID is made un (7A3), U70 (7A7) and the WRT DATA line. up of the flags, cylinder number, sector number and head address. During a read operation, serial data (again either a To load the sector ID of the record being searched for sector ID or a data field) is read into the ECC into 32-bit lD comparator UI, U2, U22 and U23 generator through selector U70 (7 A 7) and into the (9DX), the 8089 lOP writes to I/O ports 8030H, SER/DES through un (7 A3) and U70. At ECC enabling the WDC301 and WDC381 lines, respec­ time, U7I compares the ECC polynomial from the tively. WDC301 and WDC381 initiate the loading of ECC generator bit by bit with the ECC polynomial the sector ID into the ID comparator. This loading from the disk and transmits the difference through occurs prior to performing either a read or write data U70 to the SER/DES for storage in RAM. If the operation. The ID compare operation begins after difference is zero, the ID-ECC NCMPRI line is the sync byte of an ID field has been detected (SYNC pulled high indicating correct data or sector ID FND). R/W CLK-B clocks the ID information, which (Paragraph 4-33). If the result of the comparison is is stored in the ID comparator, out ofU22 (pins 7 and non-zero, the difference is called the error syndrome. 9) bit by bit. U26 (9D2) compares the serial string of The 8089 uses syndrome to correct errors in a sector bits with the sector ID from the disk drive (RD­ ID or data field (if correctable). DATA). 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 4-35. STATUS REGISTER LOGIC ID NCMPRI and the ECC NCMPRI lines (see Paragraph 4-37). The resulting ID-ECC NCMPRI Status register UIO and U44 (llX5) and U9 (llB3) lines is latched into U37 (9B6). The QI output ofU37, transmit status information from the selected disk ID NCMPR-L, is transmitted to bit 6 of status drive, the iSBX interface and various lines within register UIO (llC5). The 8089 LOP then reads the the controller disk interface circuitry to the control­ contents of the status register and checks the ler. When the 8089 lOP issues a Read Status condition of bit 6. Bit 6 being set high indicates that command, or checks status as an internal operation, the record read from the disk was either not the read decode enable lines RDC 001 and RDC 081 are record being searched for or had an ECC error; acticated, causing the contents of status registers conversely, bit 6 being set low indicates that the ID UIO and U4, and U9, respectively to be transferred field compared and that there was not an ECC error. onto the internal bus (IDAT-8 through IDAT-F). The The 8089 lOP can then read or write the data portion 8089 then analyzes the status information and either of the record. uses it for an internal operation or communicates the

4-21 Principles of Operation iSBC 215

Table 4-8. Status Register Bits

Function Bits 8000H (Upper Byte) 8000H (Lower Byte) 8008H (Lower Byte) U44 (1105) U10 (11C5) U9 (11B3)

F Index E Drive Request D Illegal Address C Option Bit 10* B Option Bit 00* A Interrupt 10* 9 Interrupt 00* B iSBX Board Present at J3* 7 Time Out Write Protected 6 ID No Compare Track Zero 5 Bus Acknowledge Vendor 4 Fault Option Bit 11* 3 Data Sync Option Bit 01* 2 Seek Complete Interrupt 11* 1 Ready Interrupt 01* 0 0 iSBX Board Present at J4* *iSBX Bus lines. status of the data transfer operation to the host pro­ The polarity on these lines is positive true logic i.e., cessor through system memory (Controller Invoca­ when the + side of the line is more positive than the - tion Block). Table 4-8 lists the status register bits. side of line, a positive logic "I" is being transmitted. Refer to Chapter 3 for information on the status information transmitted to the host. . The controller's differential drivers, UI6 (lOX3) are referenced to 0 volts and +5 volts. The controller's receivers that receive differential signals from the 4-36. LINE DRIVERS AND RECEIVERS Memorex, 14" Shugart, Pertec and Priam drives, UI3 (lOX6), are also referenced to 0 volts and +5 All the serial data and high speed clock signals volts. The receivers for the 8" Shugart and Quantum transmitted between the controller and the disk drives receive differential signals, UI5 (lOX5), are drive use differential pair line drivers and receivers. referenced to -5 volts and +5 volts.

4-22 CHAPTER 5 SERVICE INFORMATION

5-1. INTRODUCTION Use the following numbers for contacting the Intel Product Service Hotline: This chapter provides service and repair assistance Telephone: instructions, service diagrams, a complete electronic parts list for the printed circuit board assembly and All U.S. locations, a reference to the controller's self diagnostic. Except Alaska, Arizona, & Hawaii

(800) 528-0595 All other locations: (602) 869-4600 5-2. SERVICE DIAGRAMS TWX Number: The controller board jumper and component loca­ 910 - 951 - 1330 tions, and schematic diagrams (Figure 5-1 through 5-3) are included at the end ofthis chapter. Note that Always contact the Product Service Hotline before these diagrams are intended only for reference; they returning a product to Intel for repair. You will be reflect the iSBC 215 controller design at the time this given a repair authorization number, shipping manual was printed. The schematics and component instructions, and other important information location diagrams packaged with the controller which will help Intel provide you with fast, efficient reflect the design version shipped and thus super­ service. If you are returning the product because of cede the diagrams in this manual. 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 5-4. SELF DIAGNOSTIC repair assistance from Intel by contacting the Intel Product Service Hotline in Phoenix, Arizona. A self diagnostic is provided with the iSBC 215 Customers outside the United States should contact controller, stored in the on-board PROM. It performs their sales source (Intel Sales Office or Authorized a go/no-go test of the controller hardware and Distributor) for service information and repair firmware. If the controller passes the test, it assistance. indicates with a high degree of certainty that the controller is operating properly. See the discussion of Before calling the Product Service Hotline, you the diagnostic in Chapter 3 for a description of the should have the following information available: program and instructions for initiating the operation. a. Date you received the product. b. Complete part number of the product (including dash number). On boards, this number is usually 5-5. REPLACEABLE COMPONENTS silk-screened onto the board. On other MCSD products, it is usually stamped on a label. This section contains the information necessary to c. Serial number of product. On boards, this num­ procure replacement components directly from ber is usually stamped on the board. On other commercial sources. Component manufacturers MCSD products, the serial number is usually have been abbreviated in the parts list with a two to stamped on a label. five character code. Table 5-1 cross-references the d. Shipping and billing addresses. manufacturer's code with the name and location of the prime commercial source. Table 5-2 lists all the e. If your Intel Product warranty has expired, you replaceable components on the controller board. must provide a purchase order number for Note that the components that are available com­ billing purposes. mercially are listed in the "MFR CODE" column as f. If you have an extended warranty agreement, be "COML" and that they are ordered by description sure to advise the Hotline personnel of this (OBD). Procure commercially-available components agreement. from a local distributor whenever possible.

5-1 Service Information iSBC 215

Table 5-1. Code for Manufacturers

Mfr. Code Manufacturer Location

BECK Beckman Instruments Inc. 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 SPRG Sprague Electronic Co. Adams, MA 3M 3M Co. St. Paul, MN TI Texas Instruments Dallas, TX VIK Viking Industries, Inc. Chatsworth, CA COML Any Commerqial Source; Order By Description (OBO)

Table 5-2. Controller Board Electrical Parts List

Reference Designation Description Mfr. Part No. Mfr. Code aly.

C1, C2 Capacitor, 22/lF, Tan!. ±10%, 15V 1500226X9015B2 SPRG 2 C3 Capacitor, 2.2/lF, Tant, ±10%, 20V 1500225X9020A2 SPRG 1 C4 Capacitor, 0.33/lF, Cer. Z5U OBO COML 1 C5 Capacitor, 10/lF, Tant, ±10%, 20V 1500106X9020B SPRG 1 C6 Capacitor, 10pF, Mica, ±5%, 015-5C100J03 SNGMO 1 C7 through C12 Capacitor, 0.10/lF, Cer. Z5U OBO COML 37 C14 through C44 J1 Connector, Header 50 Pin 3433-1302 3M 1 J2 Connector, Header 40 Pin 3432-1302 3M 1 J3, J4 Connector, 44 Pin 68-369 VIK 2 RP1 Resistor Pack, 220/330 0, 10 Pin 765-5-R220/330 BECK 1 RP3 Resistor Pack, 1000,8 Pin 764-3-R100 BECK 1 RP4 Resistor Pack, 56 0, 6 Pin 763-1-R56 BECK 1 RP5, RP7 through Resistor Pack, 10 kO, 8 Pin 764-1-R10K BECK 8 RP13 RP6 Resistor Pack, 220/330 0, 8 Pin 764-5-R220/330 BECK 1 R1, R4, R7 Resistor, Carb., 10 KO, '14W, ±5% OBO COML 7 through R9, R13, R14 R2, R3, R6, R12, Resistor, Carb., 270 0, '/4W, ±5% OBO COML 6 R15, R16 R5 Resistor, Carb, 100 kO, %W, ±5% OBO COML 1 R10, R11 Resistor, Carb, 680 0, '/4W, ±5% OBO COML 2 81 Switch, 8 Position, DIP 206-08LPST CTSK 1 S2 Switch, 10 Position, DIP 206-10LPST CTSK 1 U1, U2, U22, U23 IC, 8 Bit Shift Reg. SN74LS165N TI 4 U3 IC, Octal, D Type, Flip-Flop SN74LS273N TI 1 U4 through U6, IC, Octal Latch, Inverting 8283 INTEL 6 U81 through U83 U7, U27 IC, Quad Driver, Inverting, OC 7438 2 U8 IC, Dual 4 to 1 Selector/MUX SN74LS153N TI 1 U9, U85, U86 IC, Octal D Type Latch SN74LS373N TI 3

5-2 iSBC 215 Service Information

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

Reference Designation Description Mfr. Part No. Mfr. Code ety.

U10, U44, U46, IC, Octal D Type Flip-Flop SN74LS74N TI 6 U48, U49, U51 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 1 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 Pas. Edge Trig. Flip-Flop SN74S4 1 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, IC, Dual Pas Edge Trip. Flip-Flop SN74LS74N TI 6 U57, U62 U24 IC, Quad D Type Flip-Flop SN74LS175N TI 2 U25. U28 IC. Hex Inverter SN74LS04N TI 2 U30. U32. U38. U41. IC, Quad Input OR SN74LS32N TI 7 U67. U76. U92 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 IC, Octal Three State Buffer SN74LS244N TI 5 through U95 U47. U50 IC, 8 Bit Shift/Storage Register SN74LS299N TI 2 U52. U53 IC, Octal Bus Transceiver 8286 INTEL 2 U54 IC. Dual 4 Input NAND SN74LS20N TI 1 U55 IC, Clock Generator 8284A INTEL 1 U58. U74 IC. Hex Inverting BuflDrvr SN74LS06N TI 2 U60 IC, Quad 2 Input NOR SN74S02N TI 1 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 2:1 MUX SN74LS257N TI 1 U71 IC, 9 Bit Parity 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 U88 IC. PROM Open Loop (High Byte) INTEL' 1 Closed Loop (High Byte) INTEL' 1 U90 IC. Bus Arbiter 8289 INTEL 1 U91 IC. Bus Controller 8288 INTEL 1 U96 through U98 IC. Octal Bus Transceiver, Invert. 8287 INTEL 3 U99 through U102 IC. Static RAM 2114-5 INTEL 4 U103 through U106 IC. 8 Bit Shift Register SN74LS164N TI 4 VR1 Voltage Regulator. -5V MC7905CT MOT 1 Y1 Crystal. 15.000 MHz Type 44 Miniature HC454 CRYST 1 Call Intel Product Service Hotline for current part number

5-3/5-4

iSBC 215 Service Information

7 6 5 4 3 ..... 110. IG2037 ZDIIE _ DUCRlPT10II A (CO 14-0re9 P12E- PILOT RELEASE

W9 D W14 D W13

WAKE-UP ADDRESS AND HOST 86 PROCESSOR SELECTION SWITCH <05 PLACES S1 AND S2 FUNCTIONS

SWITCH FUNCTION S1-1 WUA Bit F S1-2 WUA Bit E c S1-3 WUA Bit D c S1-4 WUA Bit C S1-5 WUA Bit B S1-6 WUA Bit A S1-7 WUA Bit 9 S1-8 WUA Bit 8 2-1 SYSTEM DATA BUS S2-2 I/O PORT S2-3 WUA Bit 7 S2-4 WUA Bit 6 S2-5 WUA Bit 5 S2-6 WUA Bit 4 S2-7 WUA Bit 3 S2-8 WUA Bit 2 S2-9 WUA Bit 1 • S2-10 WUA Bit 0 •

W20 SEE SEPARATE PARTS UST

DESCRIP110N PARTS UST

UNLESS cmtERWlS£ IP£CIAm 3IIi5 BOWERS AVE. A m INSTALL ,APE, ITEM "', UNDER CRYSTAL) ITEM 5'}. inteI~ .....ActMA A 4. WORKMANSHIP PER ENGRG SPEC 99-0007-001. L DIMENSIONS ARE IN INCHES. CALIF. t5051 d mu: mMARK WITH ASS,( VENDOR I.D. USING PERMANENT, NON-CONDUCTIVE Z. BREAK ALL SHARP EDGES. PRINIED WIRING ASSEMBLY, CONTRASTING COLOR AND .12 HIGH CHARACTERS, APPROX WHERE SHOWN. 3. DO NOT SCALE DRAWI_ cSBC-215 8" WINCHESTER DISK o MARK WITH ASS,( DASH NO. AND REV LEVIOL USING PERMANENT, NON-CON­ .,." CONTROLLER, W/O PROMS DUCTNE CONTRASTING COLOR AND .12 HIGI-\ CHARACTERS. .. AIIGI.E8"," .,." - ...... 110. xx", ..... I. ASSY PART NO. IS 162037-001. THIS DRAWING AND P/L ARE TRACKING COCUMENTS. 162037 A 162115 iSBC-215 xxx"' .... - NOTES: UNLESS OTHERWISE SPECIFIED Nm ASSY USED ON .URFACE"..... 1 SHEEr "I - • 7 6 5 4 3 2. 1

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

5-5/5-6 iSBC 215 Service Information

7 6

D 85

86 71 PLACES

c c

B B

SEE SEPARATE PARTS LIST

~ PLI>.(E l,EM 920'" SOLDER ~IOE. OF ?'NI>. 1>., LOCI>"ION ue<\ I>.?PRO)(IM""E.LY WHERE. ~\-\()'NN. It>.~E.L MU'OiT 1'101 'O\.lCI-\ "I.e. ?"D'0. A ~ INSTALL 'APE.) ITEM "1, UNDER CRYSTAL, ITEM ~. 4. WORKMANSHIP PER ENGRG SPEC 99-0007-001. @] MARK WITH ASS'I VENDOR I.D. USING PERMANENT, NON-CONDUCTIVE 2. BREAK ALL SHARP EDGES. CONTRASTING COLOR AND .12 HIGH CHARACTERS. APPRQX WHERE SHOWN. 1. DO NOT SCALE DRAWING. o MARK WITH ASSY DASH NO. AND REV LEVEL USING PERMANENT, NON-CON­ 4 1llL£RANCO> DUCTNE CONTRASTING COLOR AND .12. HIGH CHARACTERS. ANGlES ::t: 20 /. ASSY PART NO. IS IG2037-)(XX. THIS DRAWING AND P/L ARE TRACKING DOCUMENTS. lCX± .... XXX:t: .enO NOTES: UNLESS OTHERWISE SPECIFIED SURFACE FlHISH 8 7 6 5 4 3 2.

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

5-7/5-8 iSBC 215 Service Information

_-.0: 162038 • I 7 I 6 I 5 ~ 4 I 3 I ...... 1""1 Ito,'" R7 3ce ZIINE ... DESCRIPI10N lIfT CH. DATE .,. iMP 4Ce RI4 A 8:0 14-oreS ?1<- AI D ECO 14-0353 -~·lJt 'w", E l@l . J2-40 "- tCo '\4- 0'0'01. ~""I I~ Lit D ;: E.CO 1-'\-0:317 IY~ ·U D +5V PI-3 ...... ~J3-4 +5V ~-'" <3 ECC> 14-05'3D ~lIrSl I~ A. l,J:: -4~ ~J3-18 +1 CI,2 +Ic7 THPIU CII -s~ R7 RI4 1 ~J3-36 -6~ I CI"HHRU C44 10K 10K POWER€(.fROUNti LOCATOR CHART 122 0.1 POWEPI PINS -el~ ~J4-4 PlEl- DEVICE -82~ T ?J4-18 DESiG TYPE GND +SV --SV ~IOV -12V .,...J4-36 +SVI V84 8089 1,20 40 +SV -84-e~~ -SV I loce U87,8S l7110- '2. -5V 12 24 V56,74 7406 7 14 - -5V -10-9t:J W21 -12V - U7,27 743& 7 14 -IOV 26 W20 VPlI J32 V60 74502 7 14 -IOV -78-77: 1 20 -1211 _I °1 J4-2 74504 7 14 -12V , -7~Yl 3 79L05T 2 2 UI7 3 l 3 UIS 74574 7 14 -12V Pi-eo .... -L C4 lC3L2 JI- 30 GND -7 VGG 745133 8 16 ~ -31 J .:.<>vt 22 0•1 V71 745200 7 14 GND PI-I~ +1 1 ~ -32 l "":'" -= VII,GI,68 74LSOO 7 14 V33,73 74LS02 7 14 C r==; =~ U'25,28 74LS04 7 14 C -12-----? -16 1)47,50 74LS293 10 20 ~ -17 V9,85,82 J2-36 GNO U4, 5,10,81 82 83 8283 10 20 RPI3 RPZ us? 8284-A 9 Ie +llV J3 JI --c~3-1 U52,53 628<0 10 20 PI U9&,97,98 8287 10 20 J4-1 +12V EI U91 6288 10 20 W21. 10K RPS. 8.9,11 1,5,'2,2,1 090 82109 10 20 22o/33() RPI I VRI SUINATURE 1M1£ It. CRI 74LSI25 VIS, 89 i1teI- ...SNIT. _- CUM It. ~,I t-lOTe'O> C::Ot-..rn"-lUE'D 00..1 ~I-IEi_, .14- L ENSIONS ARE IN I ....'t!I(....u... 5ki.. tM.IF._ '1'1 ~ & s_ CHOi-.--d R2.1 74LSI0 U7S 2- 1DONOT WING. =Lk..LJ/,.;/ ~ mL£ kO~!C BI~GAAM Z- ~I~E' vAUJE:S AJ<:e' II,J MICROF~ C44 C/$ C/O 74LS08 U59.72 1,1 tSBC21 , WIN E TEP. • UIOIO UM 74 LS04 U26 ~ - DISK CONTP.OLLER 1 f:ESI5-rz:>,J.,JCE VAL.ue:.S ~ II\,) OI-4M$, l~ w, '5% 2 .. 2· -- SIZE CODE C 110. BY LAST USED NOT USEe TYPE REF ")FS TY xx .... I l.A%~ tDWI. j 1\JOTE~: (j~LE'O-e. ~wlse ~peGIF1Et::>. z .... -- D 1-4 0\ 1(,,'2006 b 11o-zrf»/.IIEXT_ ;sac..-215" SPARE . GATES SURF... FlNI"".T SCALE NONE SHEEr I OFI4 , USED ON .... 7 6 5 ~3 2- 1 • I r I t 4 T I

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

5-9/5-10 iSBC 215 Service Information

3

D + 5V D 51 74LSi:bb 0" PLACES) ADR-FI r-----..., ~161 ~j~ R'3 I )' I SW-F/ i ADR-E/ 10K. I I -(ADR-F/J 4CI,4BI Il~r151 RPll I '-' :~~ I 2 T I 'SW-E/ APR-PI 10K I I ~I'I I RPIZ ~~''--- I 3 ' Y I 5W-D/ APR-C/ 101<. I I I 4. ;:::::::::;: 13 I 12.JJU77 II RPIZ .'1- I '-- '~~ I T I ":>'oJ-C/ T ADR-BI 10K I I 74L5244 SW-FI 17 U~3 "3 DAT-FI 15.~lcl 2M Z'I4 RPlc I ',::,w-S/ SW-Ef 2. 16 DAT-E/ I 5 ~T ~~ IAI I'll APR-AI 10K I I 5'oJ-DI 15 5 PAT-PI 2A3 2'13 16 ..::::::::::: 1\ I SIN-C.I 4 16 OAT- C.I IAZ I'll RPIZ .;; I )' J~'"-- SW-B/ II 9 DAT-B/ c I I 'SIN-A/ T 2AI 2.'11 c ADR-c)/ 10K I I SW-A/ 6 14 DAT-AI IA3 1'13 12.IIU78 \I 5W-91 8 12. DAT-9 17~,..101 '~~ +5V 1A4 1'14 I RPlc I '-' T 7r...... - 5\J-81 \3 7 PAT-B/ 7 I 5W-9/ i 2.AZ Z'IZ APR-51 10K I I RIO 6130 2G, IG le~...... , ~ I ~~IO }'19 )'1 RPl2 s , J' I "::>W-B/ T ~J.::.:.:/ I ...J ADR-7! 10K '-- R\I 6BO ~~ -,52 ~-~ RPI3 :, ''-- 74LS244 I I IS T3 I ":>W-7/ APR-b} 10K I I SW-F/ 17 U94 '3 OAT-71 2M ZY4 DAT-61 I ~ I 'SW-E/ "- IAI I'll Ie RPI3 I 17'-' 5W-PI i5 ;5 OAT-51 _"- 14 I 5W-6/ T 4~ 2Ao, ZY3 ADR-5/ 10K SW-CI <\ DAT-'V I I IA2 IYZ 16 I '5 ______~ 16 IzIIU79 II 5VJ-S/ II ') CAT- 31 I 2AI 2YI RPI3 4 'lf~,,-- 5W-A/ 6 1"1 OAT-21 I ~I I 5W-5/T IA3 1'13 ADR-'1/ 10K I I 5W-9/ 8 Ie. CAT-II IA4 1'14 I' 6 ~ lSI 5VJ-e 13 7 PAT-(lI1 lA2 2YZ B R,P13 I I 5W-"I/ 1;~ I 5 l T 74L';>'3Z 2Ei lEi B ADR-31 10K I 10 119 '(I I 7~('141 ~s. (DAT-0!)- (DAT-F I) 488 RPI3 (, I '( I s\V-3rT ~ ADR-2/ 10K I 1 18~\31 74 LS244 RPI3 7 I I 5IN-71 17 U9'? 3 DAT-71 I T '-' 5W-2(T ~ ZA4 2'14 ADR-I/ 10K I 5W-6/ 2- 16 DAT-6/ I. IAI l'il I~\ e.J)\J80 I I 5VJ-51 1'5 DAT-51 ~<;,\al ZA3 -z.Y3 5 IlR?\3 _8 .:;'W-4/ "\ 16 DAT-"\/ I r I '5W-I/ T - IA2. 1'12 ADR-O! 10K. I I 5W-31 II '3 DAT- 31 ?AI -z.'il SW-2/ 6 1<\ DAT-2/ II.O~III IA3 1'13 RI3 S't,/-I./ 8 12 CAT-II ~ T I S'tJ-(/)/ ~ 1M 1'14 PAT- I I 3A8, 10K I I 7"1LSIO 5W-1lJ1 13 7 DAT- (11/ 2.AZ 2'12 DAT-QlI 3AB,5DI 10_ 16 88IT-I/0 '2.G. RPII <0 15U76 6 '{19 YI I ~~ IK I I ~II WAKE UP/ 3A6,5D8 I I ZOI 7"1L":> 32- 10 BIT "vs BUS I., BIT 5Y'5 BUS/ 5DB RPII _8 I I I r ';PII I A A IK L- --I IOWC/ PI-c? 9~B +SY IK WAKE UP AND ADDRESS DECODE "':- 7-'1 06 7' 'SC.I I ADR-Ql/ 74L'S32 o;:,C I IADR-tp 13 II IZJU76 '5 C I ~/ITE eMS/ • 7 6 5 4 3 2.

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

5-11/5-12 iSBC 215 Service Information

7 6 5 4 3 DWGNO. 110,2035

DESCRIPTlON SEE. SHEET \ COMMON .I:>USS RLGUE5, W2.3 ~ 2 I :, 0", CI:>\?Q! PI-c.9 ( 0 ...,ell D D Q) 1 '"d SCI ADR-FFFF xl Q) '" ~ Q) +Sv Q) AEN/ "'IC'O,5D8 ,.c I RP9 Q) IK PI- 1'0 BREQ/ ;> ell 8 4 PI-Ib BPRO/ ..c 2 5 q 5 bCI BDAT-8 D ;;>, USb ell 74QJ(o 3 74lS74 S • SAl WDe I~/ C R ~ q ~ 00 0 7 .) PI-3G INT 7/ I • S 0'" 3> -35 6/ ell 0 5 3> -313 4 5/ b!i'" 4 DI PI.JR RST/ 6 0 4 3> -37 <1/ ell 5 US~ Co 0", 0 2 3> -<\ (21 3/ '"d Wl9 74LSi;lB d~ 3> -39 2/ (.) 0'" 0 ::> -"l2 1/ ..., ' 1 ell Ub5 Ub3 0° ::> PI-"\I INT C)/ 7"1LS139 S I 74LS279 Q) cAl WAKE UPI 0~ ..c I ? 14 '-l G "" R 00 2AI DAT-~/ A Q) 3 2.P%- 15 13 00 2AI DAT-I/ B 3 7 S Q CNTLR R';>T/ L\OS Q) ..c Eo-< Z 0 5 ..... A 6 E-4 - 4 JUbS CHNLATTN 41:>6 A 5131 RDC Ie/ 0 7<\LS¢¢ < BUS CONTROL q AR-BITRATION U I NTE.RRIJPT CONTROL

REV DRAWN '/11. 6 ISSUED 8 7 6 5 4 3 2. 1

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

5-13/5-14 iSBC 215 Service Information

7 6 5 4 3 -NO·162.03B

+SV +5V + 5V RPI\ll IK I R?9 3"'1 CNTLR R'STi .------4------~7~--~!~JU61 ~6~~--~ I K ~J3-SPWRRSi D 301 INIT/ 10 L------+---~J~-5 366,8A6, D :;:;L '---____..:..J" U58I)o.:J4'--...... PWR R ":JT T 'S~¢ ~------J IICS ~ 7'1fl; b V U'36 />It> I AAD '; ..... DAT-F/ PI-1,O~-----..---l11==-98-d\3(1) DI l~iK ~ I~~\~eryl O~H:6 .-~------~------~5~------~5MHZ eLK DAT-E/ Sge 17 BISe:e? AI 2...,:3 ADI3 .,..• P 110oT I",pfrl .q OAT-DI ~---[,.---l~ BZ AZr-=--....,;;.'-'-'''-.J ~ ~U5~)~6~------~ADR-FXXXX/ SBe. DAT-Cj 161,1 16 93 A3 <\ ADI2 ~ XI X2. U8'\ DAT-BI b4 15 B4 A4 '5 AD II + (5 ~ RES RST IQ! 9 US8 B 808'3 I~S2(/J DAT-AI <'3 1"1 Be, A5 6 AD 10 1q).\2l U'55 74~ s-}DIGl 00",& DAT-~/ bb 13 80 N, 7 AD 9 8cS<\A 12 8 AD R""3 19 ~DII ool~ DAT- e/ PI- b'5 €-,,'----I.-...!.!::.aI 970 E T A7 e ~-..;vv---,-,I'-I F Ic CL K------.'...LKl K rd.DIZ U83 OOZ~ 1!70 I C SYNC S(O 35 AI"l 7 DIh 82e.3 D07p..:.1=:~----.,. F' l 13M EN/ SCI E~flL HI [)YTE/ _---4------....J?9 I I I ~----:..::15'-l TANK RD,{ 1-'5<--______-=2=12 RDY S5 36 AI~ 6 01" 00" 13 l-e:7 ADR-13/ AI7 EFt 54 37 5 wI- OOs 14 ~~i ADR-Ie: I ~ AI6 801 RDY .-______+-______~------I-_+------='1!...j RD'I I 25 RQ/GT S3 38 <\8 OI3 004 15 - 30 ADR-III U31 II ~10 OSC~ ~------'''-lor7 DD3 16 PI-cS ADR- Ir])/ XAC K/ P 1-23 ?----I------i>-----:..:-d U />-"-+__ -+- ______--=-+6 R D 'i e. AD(/) 12 13 Ot'. STB l I I j U33 .--__---.l'f 9 I SDI "XACK/ 7"1LSI<\ V PCLK~ +5V T 381 AEN/ 7 AEN2 7=-~--;>-Pll-4.<\ 5 ADR- EI ~II: ~3------d...-.!.A~0~1C::'3'------I--+---=-i3 ~~ U 81 ~~ I 7 ~ ~~ \"3DI ~~DRq __------+_------~_+--+--~------+_------23~' DROI ADR-DI DI2 "I AOl2 4 Dh 8<:B"3 DO. 16 -"IS ADR-C/ 88\ END TIME Ial __------+---~9~lu41}=S~------~-4--~--+------~------2323~E~,1 011 '5 ADI I '5 Dl4 D04 \5 -"IS ADR-B/ IIAI El\T TR.M 7-GLS"32 DI(/) b ADI<2J 6 DIs OOs 14 -<\7 ADR-A/ 1261 EHR C. 32 E1<'2. D9 7 A09 7 or, DO. 13 -50 APR-c)1 D8 8 ADS a Ie. 3AI CI1NLATTN 2. 3 CA ~------___d--':'=:!.------++_"""':==_iDl' OE ST6DO ,p..:..=--....l---;>- PI - "I q APR-8/

5BI RDC l'Oj __------+------~_+--+--~~I~ld~~I¢~------~------~2.~4~5EL e..-.l~ ___~'i'9 I' \ >---~ (ADR,0)-(ADIH) '2D8 V 740r;, D7~9~ __------~~A~D~7~------++_--~l DI~ OOa~\g~~__;>_PI 52 ADR- 7/ 3CI ALE IX, \1lI ADC, <;;. DII 001 Ie. ~I ADR- 6/ 05 I I ADS D12 US2 DOz \7 1-=5<\ (DAT-01)-(DAT-F/) -~D-A-T-.../7/ In 3 APR-51 1 2BI r--::::~~",---~"'~ B(p U9S )i0f,:-1 -',A,;::0:.:..15"+ __...I- _____--'-1 A¢J US2. ~f:-I~=---:I'::'p::.:.A_=T:-:-:...F"" D4 Ie. AD4 ~ Dh 8e:B3 DO~ Ib -53 ADR- 4./ B r--..D::::!A~1"':.;.-.!:6:!...1...... :1~8d BI 8e. 87 AI r.=c.:-:-"''''DI-=''I+-----.I--______::-1A2 1 8cSb B 11-1:,::5.-:1::.:D:.:..A:..:1"'::-,-E~ 03 13 AD3 '5 DI D04 \? -'5b ADR- 3/ B OAT-51 17 e,Z A2 3 ADI3 3 A'l BZ 17 lDA,-D D2. 14. AD2. 6 4 DO 1<\ -55 ADR-2/ DAT-"\/ 16 B3 A3'1 ADIe: 4 A3 6316 IDAT-C 01 15 AOI 7 DIs 00:P713~+--;;. APR-I/ PAT-31 15 B4 A4 5 "'011 5 A4 B4 15 LDAT-B 16 A '"'" BDl. I" -5S D<2I 0", DI70E STJ>D7'" PI- 57 ADR-(lI/ DAT-2.( l"l B5 A5 6 I\DI¢ bAS B? \'1 IDAT-A 7 AD 9 7 B'> 1"3 I DAT-'3 f'..!:D.:.cAc.:.T-...:I:!../__ :.::13: SQ!,I 3DS 2.7 51 51/ 3DS 1'3 IDAT-7 a6 DAT-?/ PI_&S,~ __-+ __ 1:.,::9~o B'il U97 AolI-=I __:.,.;"':::.D:..7 __H I--______-'-l1 A~ U53 sa 5~1 3DS BI II!> JDAT-6 PAT-bl ]-67 Ie \>1 '32'07 AI ADb AI. 8286 LOCK LOCK/ 3DS c. ~ El2 17 IDAT-? DAT-S/ -70 17 62 2 3 ADS J A1. 16 A ~ AD'\ ~ 1>3 16 IDAT-~ 'DAT-4j 153 A3 5 AD3 A3 -69~---+--1~5

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

5-15/5-16 iSBC 215 Service Information

7 6 5 4 3

SEE SHEET 1

DAT-¢/ ZAI D D XACK/ 4CS

J3-7 1"'DQ-3 1 --- J4-7 IADR-4 13C8

lADR-3 :3 U75'-'P--'b=------_+------~ATE' SINS/ 2-,0.'0 7"'1L'5~c 74LS32 VI~,o.~DR~-~I~S~I-/~ \ U76 .-:' 74L S I(/J (I AOR-C.)-(11\DR-I) bDB, 3CI bEN __ ------r---;------~~:7U7310 J3-" ~ P J"\-" 7"\ L"':' 2 ,-_~I~A~D~~~3~_~_,~ ______~ ______------~IADR_e BAS t----+--~:-=:::__::_----75_Oj 6 12 \"--_------! AD R-\ BAt; IcDS 1ADR-0 4 ::I U9c P----+L""'~\:.::-C! UU~~cc ~}::>'-I!.,.I ____--, ~J3-11 ___ A""D::..;I.:..5 __-=3:; D UB 5 Q r2.=-..oI..,..A::-,DR::---=F__ ...... ______-':-I 7 7"'1L':>"32 ~ + 5\1 ~J"I-l1 5 c v-A""D~I~"' __-:,4:-i D Qj-!Is~-=-rA7-D:::R::--£_';:_~.r------~6 I .- C I _A~OI~3 __--,Ic:1i D 7'\LS373r.'-'I~b-71A~0~R_:-D=--...... l_----_'=_l2 12 \"3 II 10 ~ RPII __..;.,S'-l D QI-''l.=-9--=-IA:.:.D::..R:..;.-...:;C.'---+ ______--'''-l3 '-----+--+--:.JJ..,:J""'I-OI UU7733)- U74 :>=-+--+-:-I(ll:-.q IK vV....;A-.:.;D:-..;'~c I--~~-q U9~ ~ 1. AD R.- ¢ cAe, bAS Ir-'Ac:,0o-:S=-----:-7:-J D Qr.0=-.:-I7A~DR~-_=8;-...... l_------_"'_iS -7~2 74¢0 V-'A~O~7~-"'"'"~~D Q~15~~IA~D~R~-~7--~------7'+_~ ~_+~---_~=---~------+~7~4~L~"'~3~2=----_+--4_------~~------~~ ADR-FFFFX/ 3CS Ir....;A~0o-:b::---,S~ D r.,-,'3::-:,1A~0~R:2---;:b'--+ ______--,4::::-l ,~ " Ir-'A~O:::..:5~---!13, DSTB OE q'l2. IADR-5 :: ~:~ +SV ~ U9C: '3 t:NBL HI 6YTE/ ~(S ENf3L SWAP BYTEI 'lEla 1\ y, 13 Iii RPII 74LS32 'lAB ENBL LO BYTE/ .-__~ I 12. ~--~3----I~K~------~r_------~ IADR-rpl cA8 (AOO)-(ADI5)'-< i~~~ ~ r-______'.:;Z>~ Ie 4A' :tADR-E 14 Ub5 74qJr. ~ 12. (5 ROMI bA8 -1' V IADR-F 1-' A I II I,.-=!=""'---'-~ B co:, RAMI 6A8 \"-A-,,O:;..I,-' -+-....;3"'1 D LJ S 6 Q i-=2=--I-"I.;..;Ac;;.O""R-..:;B---.j---J 74L<;; 2 D c?-- \,,-,A7c:-,',:,-IIl-+--,.4:Oi 0 q 1-"1?~t-:I;.:,A:,-:D:-,::R=--A'::'-or--' rc:,I~'3 3 9 co:, MMIOI r~cs \,,-A~D=-9~l---'la~ D 7<1 L'" 3 73 C) 1-'1:,,-'3-+-:=I;.:,A.;..:D:..:.I\,--,=-'3~ __~ I'--'A+D~"'::--1f--:'8:-1 D Q r.9~+-:I",A.:::D,,:::R:..,-"'=--.t-__--' ¢ IS RDC (/JqJ/ lice B I'--'A+D::-3~f---!'13~ D QJ-':IG=-t-:I;.:,A.:;:D-::R:,.;- 3~ l'-~lA~Do:R--=:3'----'-I1 A U3b I P-;:1'Ic------R. DC 06/ IIAB B \,,-,A~D~2~r-7~D Qi-=6=-t-:I;.:,A~D:-'::R=--2.~~ ______r_------_+------' 1'-;:1,o.,.:,D:.;R","--::4,-~2 B a p.;.;13;,-______-. RDC 1q;1 IcAB 15 I + c;'Y I'-I:.:.A.:.:D:..;R..:..--=S'-_-"-I3 C 3 p.;.:1c"- ______I'--'A+O~I:--Ir.14::i D 0 r.-7-+-:",",-:D:..:;R:--,::;1-1 +5v RPI~ R DC 1'0/ 3Ae)'1BS '--''':.:,:0::..:(11=--1--'1-'-17 D Ol-':'b"--+-'I:,.:.A.:,:D;.;,.R.:...-.:..(!i-<-______-' IK .i 74 LSI:' B "I P-,':I:-I ______--I~ R DC cOl 8A8 STB OE , 6 .-----1Tr-----+----ir------=~-OI ~ s ~I0::...------RDC a8/ 7B8,8D8 \\ Y\ '----1-_--..:::;5--01 (i b ~ I RPII !IQJ 'i b C, '-----. '----~ 7p-z-, IK 5 RP'3 4DI ADR-FX')(')()(/ __------+------;::------4-t------'1""--/2 D U% 9 ~ IK PUc: IG\C'O 5 f'...... II 74LS7~ S I':> 3C\ ALE ------....------=-jl U74';»6"'----4~-----:..:...pc. R Q p..:::'--~ ~c, ¢ WDC 00/ IcD8 1"1 74 ? Ci U3S ( WDC '/;S/ ~C8, liDS V (1'H/I 4 13 tSV RPI(! JI3 C, 2. WDC 10/ 3B8,12A8 7'1L"'13S 3 '2 WDC 181 12A8 t I IK 3 IADR-3 I II A 4 woe 2q,1 BAS 1ADR-4 a B s WDe 2.9/ SDS,7B8 IADR-5 3 C b 7 p....!7______WDe 31)/ Bas, ':lee 3CI [-rORC/ WDC3e; 9C8

A. 301 r-Arowc/ A. PUI IIC9

INTERNAL ADDRESS DECODE

R£Y 11/, Ibc.038 6 'Slum "'EEI' 5 - 8 7 6 5 4 3 2. 1

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

5-17/5-18 iSBC 215 Service Information

I 7 L 6 I 5 4 I 3 I I"" NO. 16Z03e IS~ ~I + REVISIONS • U99 ZONE REV DESCRIPTlON OFT CH" ""TE APPROVED IADR-A "S 21I"1A--r; AI IA3 IY3 IADR-8 I .TADR-/ 1OAT-1 BDAT-I A7 q,~ IDAT .5 16 AS 4 IA2 In 16 8 IADP. 7 2 cs 1OAT-0 BDAT"0 8 A6 ~4_.£_~_T -_~ ? IAI 1'11 18 IAOR-6 3 b I DAT -3 ___ ya 1(; 2G A5 cs /~ IAOR-.5 4 yl9 ALI- Oz 1/ IOAT 2 1 11 IAOR-4 .5 I) J OAT I A3 o J3- J4- IAOR-3 'r, IOAT ¢ 6 A2 ~O2 " RI5 33 ~33 10"1-0 IAOR-2 JADP,-A S 211 'A-.5 7 AI A0 1270 ~31 I IADR-I 9 --17 f----731 8 A)ii '----IAb""- A7 ~29 2. IADR-8 2 ~2.9 A5 r---'72.7 c?27 3 C£ OE .J.ADR-7 ;; 7[://T-S , A4- I/OI 14 ~25 ,.------725 4 20 IAPR-6 I .fLAT-:" - fa A6 I/041l r-?>23 ,-?2.3 5 r-- :l:ADP'-5 4 12 .l L// -{ S5i ,.,-_;,(,OM/ A~ I/03 r-?21 r--?'21 .IAPP,-4 7 ILAT .- ~' A2 1/~ 13 ,-719 r-?>19 '"7 74LS32. JA'OR-3 1/ 3Ci I-IOr; :/ 15 A9 rAllR-2 6 58i C5RAM/ I \)107 II AI TAPR / 110 3 9 A~E cs ~43 '--7 43 10! U72. B 107"1LS32 '---3:>44- '--744 9 3D1.. J-AIOWC/ '1/# 1'a ,-?41 ,-?41 A 74-LSQlS ~B SCl. IADP.-¢ ~ '-----3>42. ~42. B A 1 CONIROL ',TORE ,~ RAM c A ~~9 ~:940 D EO ~ UG7 10 '-----3>~ '--7 37 tJCi BI-I£/ .. ,._-----_._--" ~~ '---3>3S ~3B IDAT-F

SI2E ICODE IDWG NO. '~J~ D 14 162036 I~ IJlUED SCALE - SHEET 6 - • I 7 I 6 I 5 t ... I 3 2. I 1

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

5-19/5-20 iSBC 215 Service Information

• 7 6 5 4 3 .... NO. 1620:::6 ZONE REV DESCRIPTION '<>EE SHEET I

D +5V USO -'-'-,LLS299, 17 r---__ sR-L~ J4-z:g~7~ f-;2<-_--.,;I;,;D~A:;..:f-.:"F------'------.. (iDA,-8}-(ID,o;:\-F) R"I QII "'fi"'6--S=-P=--F=-I----, SR-£ II:> D QI-'19'-_---=I"'DAc.::f:...--=E_---1 10K OH ~'f---':S:C:R=--'_'--cE~ SR-D 17 D Q~ IDAT-O QG 15 SR 0 SR-C 4 D Q 5-~_-----oI~D~A',!,:f-:,;Co-----_--i 12 QF~5:--"':'S";'R'-----'C;..---j .---+------'7--l>ClK Q£-E-'-~'---E-----1 SR-B 7 0 Q J--'~,,-_---=I=DAc.:J:...-:::.B'------1 ~/9 ,-.-LR QDf--"6-;,4_S-:='=R,-----::;B.----1 5R-A 14 0 Q 1-'15~_~I~D7:AT,--~A'------1 1 17' SR-A SR 9 13 0 Q 1-'12=--_--=I:::::DACi":...-.:...9_---1 rlt---'--',ri S I QC t-:=:/3;-----=O.5"=Rc--_-'--;9~ SR-8 B D Q f"9~ __-=:ID:::A.:.:T_-~B __-" ~ 5¢ QB~~~~~ rl-+---=23:1 (;1 QAt-'--7_=S~R'_-_6~ II eLK ~ L------,;O",E,---' ~ 62 QA'~ . ,------1' ---%- j'~------.(:LDA\-0)CI-DI'\I-7) U4B U4,7 5R-7 3 07/fL::537$ F2.=c-_-=I::.=D::.,A",:f-...:,7 __ 8Cl LD SR I2.Cll RD GATE/ 74LS299/~ \--c..>R-6 15 D QFI9,'--_-=:1""DA:..:,Jc.:-IO"----_---1 QH 16 SR-7 \--""R-5 17 D Ql"lfo"-_~ID:::A,:,;:r-=-5~_---1 OH 4 SP-IO ~B=i.f-~ D QI-=S'---__...::1=DA"':T_- 4-'-_---1 QG 15 P c U40 QF 1----"''-----=5~----'5o.___.J ~2R-.3I_~ D Q I--'b'---_---"'ID:::A.:cT_-c3~_---1 c D74LS374 2. SP-7 ~BDAI-7 1_2 t------H--++---"'2~CLK Q£ h'5;,--,5~R~-_4~ __ 3K::; f-~-'l 0 G ~ ____---=I""D~AT~--='2. __ DI\T-b 15 Q 19 SR 6 e ~H CL R QD "'1,--o4;-----=5=R-=---=3~ _ 5R-1 I~ 0 Q 1:::-2. __.:;l=DI'i~:r~- 1"-----1 e DAT- <5 IT g ~ ~5R-5- L4-+~19~SI QC~6,--=S~R~-2~ 1---_ SR-¢ B D Q 9 lDAT-Ql BDA"-J.! 4 D Q '5 SR-4 1 13 SR I CLK £ BDAI-3 7 & SR-3 '------f--j:- syf QB~7--;5=R~--;yf,----l ~~ o 61 QAI---~~~ 1)1)Iq-2 i4 D Q 15 SR 2 ~~ G2 QA'~ ~I 'BDAT-I 13 0 QQ- SR~ ~~T-¢ 6 g ~~_ SR-¢ ~ ~:io S~I 51\:t WDC 26/ ....------>-- IJ CLK '----.,.--+----t------"--+---'-'-----+--I------.....~ SR-IO

'-_ 06: r----- ______'?I3-~Jf SR- 2 -L9Q,1:> Bei wm j.FER/ t SR-' 2 _ 5' ~>=-.--+-----++------.. SYNC 'OYTE/ 5R-yf 3I~~r'3 74LS21Zl 10B1. R/w ClV,B 74l'502 B lOBi RO DK'( '" B 5C::L VIIRT XFER DLYD .....----1-+------+------1 I bD:1. BP-O 5e:L RDC 26/

r------~------~+------r4------ID/£CCNCMPR/ 958 .------+------+4------~+_----_ WRT DATA lODe U70 II 3 74L5257 9Di 3D NCMPRj 8 Y ~ ,--~3 ~ A I ,------.-- 7 L~ '-.--~ ,----- 5 8 Y A UIO" 1 UIOS 10 ~~D74LS/6/t, /3 7Lf~5/6Lf 13 7ifL.-J/64 8 yf2--- N F---- Gil Of! 2--- T~ A QG~ QG ~ QG ~ ~ to QF~ OF ~ OF r)DD~ A Q£~ QE Q£ t7LI f- 5 ~ r- QD~ QD r%< Qo II Qc ~ Qc 5ERIAL - DESERIALIZER 8 -. K QC~ ~ ECC LOGIC A A BAi EC.C IIME/ 270 '/ CLK OB ~ f- ClK GB ~ I 9 '-- QBfT FI-::- RI6 I C;~R ~r rC~R gA r2 ~C~R ~A ~ IOAl R/WClK A I - 2 12 . 1 -_.- 11 12 II j 8Ci ~NBl XFER I _NO. b~~===-l-ICODE DAA""-A C/i':N£TTI D I 14 162036 'SIUfO SHEEr - 8 7 6 5 4 3 2. 1

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

5-21/5-22 iSBC 215 Service Information

7 6 5 3 _NO. Ibc.03e

RPI(ll DIE ... DESCRlPI10N DFT CHK DATE APPRCWED +5V 1 IK4 1"----1'-..15££ '5HE..El" ~ 1___...... 1 m5 I

D ~(" 't~~ D ,------, ,1,10 5 13DI 'MWAIT/ 16 As¢4 I 1,,\ ~U58" "~U19. ~6 RDY 4c.S ~AI TIMEOUT A QA Vll!~~ D U2.1 Q .!, 74LSI~ 2 U,,\I .:' r-?- 13 I 51 1 I ~B U2.\I>OB 7"lLC;7"l 561 Rt>C 28/ Ie. ~jJ'4 rL. ___ l~L~~J ~- II e 12- 7<\LSc,1lB ~+5V12 UII ~c GC 131 U'\¢ 7"'1L<;; 32. 5AI WDC 2.'0/ I RPS C R 9 21 ~ D QD ,!.!..- 74lS Co ~I 74lS3Z 7"llS7"1 ~2 9CI SYNC. fOND( :~ LD ENBL )(FER 7A8 74LS00 ~ T ....2: c Q R iJ I (" U63 7 l2.el IAJRT 4ATE s 9 WRT XFER! 7B8 9 Ubi S C ~"lL':>279 blQJ ~7<\l51{JQl 5 C 12 c - D Ube. 9 9 WRT XFER DLYD 1081 R/W elK B 7'1L':>7<\ +'5\1 78S ~ C R Q"JL JRPI¢ RP5 IQlK IK 7'1LSlcS ~~74(;rtJ YI3 +SV~-'I '~745)1"4 C I b 5 U17 2. U3~ 3 3 U6q! '" 74L':>279 CW 5 745164 R3 I Ub2 7-'1 S(2je ~I¢ K6 ~7'1LS32 3 5 U 3'\ q L\ ~D Q~ LD 5R e I 5 ~ no 7<1LSl'1 12C.1 AM SEARCH! '3 I 3 6 9 74S(,1)2. U32 R q e, AM FND SECTOR/ a C R l(ll :.J U Ie. WRT AMI 12 D8, IIBI 7"1lS32. YI RPI0 IOD8 74lSQ\S I I K 2 +5~ 19 T9 T9 T9 T9 19 74 LS279 c c. c C U~c. U42 u~e U~2 u<\? D U"I2 Q s Ub3 Q <\ 3 t:> q~ ..J.1. p ql2..... ~D q 5 " D r?---,~ D Q .!L-R/w GATE RST/I2CS ~3 q • 1'l81 FORMAT 5 74 LSI74 7<\L517<\ 74LS17<1 7'1 LSI 7<1 7"iLSI7"l ~~"'74(J1D 74L~174 I R ~ R ':>AI 'WDe 3rJ>/ 20 R R R. .. I '1'1 '.(1 '.(1 '.(1 '.(1 YI • liZ! U59 B I NDEX-SECTOP,/ .. 30 WI6 END TIME 4CB IICI 174L50'O I U61 3 U69 ,.. ;, -7) ---., ~ 7<1lSCllal 4AI (IDAT-0)-~D ~, 6253-5 ID FIELD 12ee IDAT-7 1 D7 IDAT-b 2. Db IDAi-S 3 D5 eLK Ql 9 I I..r-- IDAT-'" ~ 6 <\ D'I ~AT£ (1l -1JU 4 I DAr-3 5 D3 I<¥ <:l U3B 12 U61 II "S7-- 5 JU6C11 ECC TIME{ 7AS our ¢ 74LS¢¢ I DAT-2. 6 D2 IDAT-I 1'5 7"1 LS 32. 745(;52- 7 DI ClK. I 7~LS<,1l1,2j IDAT-0 ~ a Dill ~ATc I 13 ~ 9 Ie OUT I R q 9 13 2~ ~Ie II Ubr,ll SERIAL 'IE 788 SCI IAt>R.-2 AI 5 Ub3 19 ---mU'191~II /" 5CI IADR-I AiZ\ (LK2 --!!.c S 2e ~16 7<15(,ll2 581 RPC2t1J! RD (jATE 2 7"ll":>279 74L 5191 A 23 I? 13 U6'O SAl WDC2.I(J/ WR OUT2 ~ A 74lS~~ ~21 TIMING CONTROL 1'l81 'WRT GAT-F 13AI 'SHUG,ART 481 PWR RST/ SIZE 1

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

5-23/5-24 iSBC 215 Service Information

7 6 5 4 3 OWG NO.

ZONE REV DESCRIPTION APPROVED SEE SI-IEET I

--_ .. _.- ,.------~ D 1)2 I iii 2-:' 22 8DAT-7 b 7-'/-L5/G5 BDAT-F G 74L5/(;5 9 8DAT-7 G 74L5/G5 BDAT-F G 7LfLS/65 9 1-1 QH 2~ 'N Qi-/ 1-'7--, II QH ---t- 1-1 QIi B DAT-G BDAT-Ec;i Q JLDAT-E.5 _---.-.:2 G QIi p1-s c Fh r---e-DAT=G5 G QH N G 0/i BDAT-5 BDAT-D4' Ii BDAT-5 -4 8DAT-D ~l . .-!L F F "I. F I 8DAT-4- F reoAT-''13 B DAT--C_3 I I .-2 £: 8DAT-c:31 E £: r--.BDAT-3 BDAT-3 FI BDAT-? 14 ,- Ff D 4£Xr.:-8 -4 ; D D ,------r----.B oAT -2_ 13 .aDAT-A /31 C BlJAT -213 8DAT-;r/.~ -. - C C '--=C-----.- C I BoAT-I 12 8DAT-? (21 BDAT-i 12 fJ DAT--9 12 B B ~.-.. ------E TD NCMPR/1B ~DAT-¢ Ii 8DAT=S II:B BDAT=,2!11 B DAT-C! II I A -----1 A A A ____...lc. ~ I CLK. ~I ':'LV CLI< - .LK -I- I" -~ CLKINfI C~K INi-I C:"K TN II I ~tXKINfI LD 1--/ LO ,---.' LD , I I I i-l LD B rr : I i ':_h r1 5- --II J i l_5I I "1 ~/rr-.J J I 1 Iv l - -TW-- I -=- 1 IOf,.L R/WCLK-B 1 I .. ::;','NC FND/feB f------~--.----. ...J C S"'~ WOC-58/ c "5kl WOC-30/ --- .- IOol PO DATA/ .. . _.J I 105:1 PD DATA --- ._.- _..J

--~- ~ .. 5",1.. woe ;!fa/ ------~-----~------IZCi ALWC3YNC5RCII------.---- .... ~ ).4 ::, ,--- 2 7LfL5 7 4 7B.L SYN:' BVTE/ 0 Q 2._ U57 ,2':--' -/Lj'L55-2 llCS >----- p C Qf::,Lf------... TD NCJVIPP,l R 10 ~~3~>11 rl .' 7P:1. ID/Lee NCMPfJ 12 ZLfLS 7t c2. L;37 II c ap;or--- R -- :712_ I I

__ :..:L.....

~, 2o-74LS7"Q 5 fBI ":>R-0 i ~-",'''11_31 4 U-:'7 : ~c oy" -~--,.------1 ------i...... DATA cNN':'- IIC8 c-. R

BO 1 rz/w GAlE • I~ 1 10

2- D ~::761·.:.L---+----""2=-1IJ:~:;i~1 110l INDEX B/ ....~ ______.~--~3~C 0 0 II C is 2...... t------.. liME OUT 8Do,IICB A I • A 11 '113 lD COMPARATOR / ":>'INC DETECT INDEX WATCK DOG

REV DRAWN J';/VCT 162038 G, ISSUED SHEEt 8 7 6 5 4 3 2. 1

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

5-25/5-26 iSBC 215 Service Information

7 6 5 4 3 ...... 16 C 038

SEE SHEET!

~ ·8..., (l) D D "0 ,... .B I'2c. I 'WRT ~ATE:It ,...... ,(l) 791 WRTPATA p.. til ..c BCI \>JRT AMI u

136 I TRI POLARj 'I=: .:=:..., ID4 -SV • TOV til S,... RP4 '5 UI5 b R2.1 51;, Z 1 i ------10K .B 1 ]~~73 -1J I¢ I=: >-< I J+ I 4- s 2. Z: I ~7'1lSI2.5 Ule, Jc- 5 WR~+ 6 (l) 561 PUe 74lS125 -6 WRCLql+ .....00 ~' ;;. \"\C3"\87 Rle, 74SI7l"l (l) 10K. ,... I ~ RDI,/J- JC'- 2. <: OWo,2- ~ RP3 \ ~ (l) 2- I 3 (l) lUI3 +5\1 - 1'1 'WF\I- ,.0 2. 1- I(/)0 2V4 ~ 15 U16>1 (l) ~ RD¢+ J2 -e\ I OW6 RFS ~"+ H -33 ;;. <: WRI+ til 02-- MC3"\1';6 IO~ ~ 12 MC3467 ..c ;;.. til RPCLQS+- JC' -3 <: 101,./7 " S c- F\\>3 7cf.::'-.. "1 I t I - 35 WRCL I- I 00 5 :, 16 6}J13 9 S 2. 100 UI~+ I~ 1 + Jc-15 WRCLI + til RPCL\2I- J2-c3 <: lowe NlC3487 SiJ "3 MC3'186 til 4 ..... R/WCL'KB 7BB, BCIS, 9CS "0 1361 USC{! RPEN UIS u Q :;; e. t> S RDDATA 76\3,9CB til / RP3 15 RDI- J2.-11 3 74S71. S 4 13 1.6 (l) l 13 C R RD DATAl 'X" 1 100 1,,\ UI3 Q ..c RPI-\- .>2. -31/> u i:Y Ie Me 3"\~6 3 '6 i I 00 W2'l. (l) 1381 USI RPEN 00 R/W ClKA 7A6, . Ie 7 E- Te, I¢ 1UI3 II 1 100 RDCLI- J2 - 32. + SERIAL DATA Z fv\C3"\~b DIFFERENTIAL DRIVERS ~ RECEIVERS 0 A l'2el RD qATE if ..... A Eo-< ;:J -

162035 ISSUED SHEET \0 -- 8 7 6 5 4 3 2 1

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

5-27/5-28 iSBC 215 Service Information

.... NO. 7 6 5 4 3 102038

-'t'6V ..... R£Y DESCRIPnCN lIfT ClfK DO,...... , ~SEE S\-IEE! I I~J =s I 33Of;A3)~l RI' 12Be, D SAl WDCr/JBj -.INDEX 5/ 9p.s,12(5 RP0-iO r(IIA3) rn ROhi- f:> ILL ADRj 10 1 OPHj; 13-25 oPI/Xj; ~" :INIR1CZi 12( INIRI/XiJ H MCZiPSI/ e/

5'01 RDCrtxb!

4[4 ?WR RSI! ------+--~------_r------______-r______IO~ B 4~ _ ~~------~.RSI FRMI/ 12A~ SAl PUi 12'B1 FORMAl ~ ~ U3Z.l-=: 74L50B I 12 SIO 9 1,------z-t---R-p~'5~L/-~3-J5 [(iIA3) FAULI/ JI- 9 RP1--5 [(11113) 951 '0I'IA SYNC RDY/ "Ji-II --l

RPI-3 RPI-2 r('l11l3) r(liA-3) ~------r------r_------~crDAI-0~~DA~~ <\ SKCOM i 1<\ 13 PLACES A '4L~32 220 IYPICAL MiPSI/ 8 -\-5V~IIRP6 STATUS INPUT rW4:a~ 8/10 EXTRQ) 1'3- S:

10K ~ ~ D 1"'2035 e:. ISSUED SHEET 8 7 6 5 4 3 2. 1

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

5-29/5-30 iSBC 215 Service Information

IlWG NO. 7 6 5 4 3 102036

lONE REV DESCRIPnON ...... ,.." SEE SHEEi I

32-27 RDWR cm/ BDA,-A 10 "''1-53 1"\ I 07 Ji~3 PARAI 5DAT-9 13 7 ~: 06 I BDi\T-S 12- 1 D S D5 05 --45 CMND/BAil D BDi\T-7 19 (BDAT-VJ)-(BDAT-A')-.·------~W~:I;______W'M 04 ) ZI DIP-j- BA<;tJ1 6DAT-G 2 U(Q r 18 6DI D3 03 BDA1-S DZ ~~z J1-14 BACK/ l1C5 BDA1--4 ~ 17 02 74 i BACK/ BD",-3 5 DI 10 V f6io 5C11ADP-1 __------'-1-'--1 1 U25 ;vto',O~_~ DO 01 15 74LS¢4- ~9_d 00 " Ji-l0 SAFE/ 1'--__ DE I U33 10 J 1-15 FLT Clfl! SAl WDC<;tJ¢j __ ------~-~8~~ III 9 74L5(/JZ r 13 lOBi WK'iAM/ 10 4 B 12 un pccl'------'l :Jl-~Z- ADt-IIKE-N/ 86.1 1:D FIELD 10 ~U1i )------>---'-=-- 5 Ul1 7"\:',, ~ 74LS(/J¢ BDA,-2 -4 J4LSI75 2 '1L5G'l(/J ~~ At-II c£ARCH! 8B8 9 U24 Q Y'- R ~W14 "Bi~G.~ERSl/------~~----~'--YI -4 ALW S,{NC 'ORe\-! 'XB 2- "I <0 5 U29 - IS"------13 I AM FN,~B~ECTOR!.---.---'dS QF--%-~------jH-+------.-l '1L'Y/JB :J.1-12 I'\D G."'Ej c 3~ WI3 C I 7L13t\ 1 UZ5 ---- E~~r ~ ~ ';;(jl-2_--,~=c~c-4 -I ~ RD G"',E' loA8 BDA,-l 5 64LSI~ 7 : ~ 1'\0 G.A'E oce .---______.__---'C-----'-'.l-'C 4::-LS-'-O'--4-'---. I Ul __------<1S ~37-4LS32 1101- INDEX 'B/ - WRI GAIE* 100e. ~ * WR, 6A,E &8 10 5 9 U7 J1-Z5 US3/ 30 WI2 1lA1- OP11 .. I 743<; .11D1 OP.lQJ • 20 5 -4 U7 '" Jl-23 US.1! OPql.1 WII 7438 T loBB 11Al • 'b I 74 LS¢4- USll 11D1 OP¢¢ 20 ~' Z 3 - 4 I U7 Jl-22 us¢1 i~I. .3 U25 Z T US(/J! 13Be, B l 1Q 7'135 B 74LS¢4 13 BUS-7/ I B2-I',?, 19 IDI',,-7 1\ 07 12 U7 31-Z-,\ BUS-61 2D7 15 1D'>'T-CO " usz-! DT,---7,--~3 D7 74 L':> 273 07 2- WRi GAi-F BI>-B 5U5-41 4 \10 1DAT-,,\ 9 1>'1 U5 1'---'6:,:,D,-,-"::-T--=6,---,I~B D,1 -?, 03 03 i'--B",0,-,Ac::T~-5,----'j"\ D5 5 -EXTR2 -4C BU5-2/-1-\521 \"\ lDAT -2 02 USC :I- II BUS-I/-1-I51/ '" 2 13 1DAT -I i'--B~D~A~T_-4~~1704 ~,~I~"'~-t----_r------t~------.. 701 01 i'--B:::D:.=-A,-,-T_-3"---'-l7 D3 03 '" USC ¢ II BU5--W -1-\50/ 8 IZ :ID,>,,-a! DO I'--B",D:.:-A-=;-r_-",Z-_'-'l'-102 ozf'2-1- 9 I'--B",D,,-A,-,-T_--,-I--"1°01 9 10 U270=-6-----<_ 1:1- 20 STEP/ eLK OE t'--'b",D",I"\:>-"!--o BUSA/ BDAT-3 51>'1 U-4 IS 13~jZ 3 03 -3 BUS-3/- H':>3/ BD",T -2 6 1,,\ 02 02 -27 BUS-2!- HSZ! BOAT -\ 7 13 A 'OBi ROCI¢I nz 8 DI 01 - 2- BUS-l/- HS.1/ A BDAi-(/J 12 DIZi 0 )oP''''-----I------~J.1- ZrD BIYS¢/- HS ¢/ SAL WDC I!J)/ __------+------~13~U25 ~1~2------~------~~~II .v OE CONTROL OUTPUT 14-LS¢4 '(9

ISSUED - 8 7 6 5 4 3 2. 1

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

5-31/5-32 Service Information

DWG NO. 7 6 5 4 3 102035

mHE REV DESCRIf'11ON SE.!:. SHEEI 1

DREQO :13.3>4«-.....----- .....------.'..:1"3'....\. D r ______~\2~U30)~II------~ .. f'/\IIIDRQ + ",v 74 LS32

DREG. I J4-34·<:'----.....----- ....------...] RI-'7 10K 8 MWAIT(]J! 33- 11O<:'------____...... _____ -=2-

1",1'9 74LS

5B1 C5MM IO/ ___ ------______J."D~l .-~IO~9 1J30 )::r=B~ ______~) J:.-n C/ C (1. c 5C~ J.~D~~a------­ 5C~ I~DR-5a------~ SC~ I~D~4a------~ )Y'~------» J 3-20 C'.':>NlM lct>1 / +5V

RI='B RADIAL SELECT 5 10K 14L':>32 t5V ~WIOOI 74L514 j:>-",,------;» j4-2(6 C"'::MIM1f:/;>3/ RP9 IK 5 l261 USI! ___ ------~5------~------~------~0~1J3? ~4~------~~~----.------~.. ~ US1.ROEN IOAB 74L':>

8 W9 8 ~ 10BB RP7 ,RIPOLAR SELEC, 10K 7 1261 U5(]J! ___ ------...------~9~U2.B~B~------~~--~ 74L5<,Z\4

+5V

II RIO'S 2 WI5 I 8 10K ,---=0 Or--~------~.. SHU6AR, BAa J... GR:5V

2. W2. ~I ___~_~_IO~K ______. ______~ ______~ r--=o 0 .. VENOOR I I A A UNI, Sf-LEe,/ VENDOR SELEC.' se,X CONI~OL

R" \COZ038 G ISSUED SHEEr \ - 8 7 6 5 4 3 1

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

5-33/5-34 iSBC 215 Service Information

I.... NO. &'Z.O'!>6 8 I 7 I 6 I 5 ~ 4 I 3 I ' 1'!"41~1 REVISIONS ,.,.. R" DESCRIPnON OFT CH1< DATE ...... ,... ::---J" Se:e: SHe:ET I I.~· ------,ABLE I:

DelVE VEI-lDOJ<:: 5eL.ECTI~ D LOa.TED D W- ~er~ MENClZX PE~c. PIC:: I AM t\lO"TE.~ COI..JTII... .JU5t::> ~ ~f4Ee-r I OF 14- BY I C I I - 3 I - :3 1 - 2 I - Z. U Zs. W'-IEI-l TI-IE ~I-IUGAer DlC::IVE' 1'5 ~, A - '5 VCcrA~E Z. I 'Z. I - 'Z. U II ~ IlJEEDSoIt:> I!e. ~LEC'T"Et::> 1>6. 'NI::LL. "'T14E FOW-O'NI"-.lG - - - ...lU~~ ALLOWIl4E CQ'-ITeoL~ It> DEVELOP A -'=> .3 U 32. VOL..T 5L.IPPL..'r"_ ~E.FE.R ,0 zoN.E. \C.(P l>.NO ~C 7. 4 U3Z ]-[1] W'Z.I I - Z. - '5 VOL..T~ Frc:'OIv\ 1W..JL.."eu~ 1- '3. - IS VOL..~ pr<:oM ~U~1t.. 5 I - .3 I - Z I - 'Z. I - Z UIl! CE:E.Il?UI~ W'Z&>"I!) I!e. ~C> ) - CD I - ~ I - 2- I - Z. I - 'Z- UI~ - WZO I - 2- -ICVOL..T'5 IIJPUT TO IZEGULATolC 7 1- 3 I - Z I - 2- I - Z UI'!> I -3 -IZ' It.JPU;- "TO 1C:!rGUL..A.~ 5 I -3 1- Z I - Z 1- Z UI3 g] SBX e.oA.lii:D eot..J1'lI!:OL: ., I - Z. - - - U'Z.O F~-&MPeII:.~ o..;;s PIi!l:)VIDeD FOIC::. ~e.)<. l!OOoII:D~ Ie> I - 2- - I - 2- I - Z uzo SEE EII<::.. ~ve ~IFI=rro!...l~ r== U\s'E OF W~ AIoJD W4 I WI I o..u::> WI'Z._ IF A ~)<,""'-l1..leC'"l'Cll:. IS II UZ4 kIOT lJSeP, -"...e;!...l I~ COR:~DI"-JG W'!. r"R: W4 MI.J-:'T J-@] e.e 1~"T"Z>.u..e:D. 12. UZ4 )'3.-W'3.-I-Z. 13 I -'2.. 1-.3 I - Z. I - .3 uzs J4 - w4 -I-Z C 14 I - Z. I - .3 I -.3 I -~ Uz~ C 15 - I - f.. I - Z. I - 'Z. U4'Z. ~ P~IO~ITy OoLe.ITeO."OI-.I '!:>ELE!!:c..T: W IS IS USED TO 5ELEcr WI-IICI-I "TYF"E. OF M1..JL."~ lU- I -'Z. I -~ I -'Z. I - .3 uc.z. ~1""I2:ATIO"-J""O USE. WI'& -1-2 15 TI-lE "-lClE:MAL MODE: WH~ -;-I4E. Ct:>.\JT=-L..ee to..~I~'T"ES Ol\.l 0.. P!!:IOit.ITY 11 I -'l... I - 2. I -2- - us., !!!J>.SI5. WIS.-1-3 ~E~ to.. MC>DE.11\.l WI-\ICI-\ "TI-\e: 1& CO~L..I..E~ $(.. II~:R:a.lDE~ -,;.;e Ml.JI...""II3U~ "'011:. A"-l'-r"" u""o ~ R:~ la:.esf'e"CTiVE or b.~ ~I=I-ry. REr:E.R,. ,0 I~ U4 - f.EE~Jr ZO"-LE ~CT. u:;, u.,s ... ~ c..OM~ ~ ~EQUE"" 'O£i...ECT W2.O 1"0 U'5ED ,0 A.UD'N ,\-IE. "Z.I US4 ~ ~ c.o~L..LER. ,0 \'AAIN.'/>.II-\ CQ.tTRQL 01= 11-110 \-I\UL\\BU'O OR 22 I - 2. I - 2 I I \0 '.:>U~R.~PE.R 114E.. ~ U?OI-l CQ(/\\>t£110~ 0 .. ~KI-\ - 3 - 2 UI8 e\.l'Q I>-C.C£':£>. 'Nc.:,-\ .. 2. I'<:>I\-\E. NORMAL t-.\ODE., 'N"2:,-\-o "2.-=:' 1- 2 1- 2- I - 2 I - 2. LJ 92. PIRE'L.\1::> I\-Ie. c.oN.'ROL..I...E.R. ,0 ~N-OE..R. 114E. W'b 0"" ~ tAc.\-I ~~. roI<.. OTHER.. "Bll'<> tII.""'IER,.1::> '/.11-\1(..\-\ 00 ~ ~LE :IT DRIVE ce'R.Q /, 1M2-=:' M\Jb1 &. \!J\I<.E.O 'N2o-\-~. ><£l't.R. 10 l!...l~pr L.E.VEL.. -sEL-EcnOl'...l (WI'=') =r...lE. "507. .JUMPSC::~ ~leED , L..5VEL -::'ELECTED PIC:C>M 10 B 0 c 0 B I C I 'Z. C -z. 3- c 3 4 c 4 5 C. S (P C (p --, - I c -

A A

SIZE caJE c:~ .... NO. DIIAWN N''''' D I14 I 01 \ cP'Z.O"!:>& I~ ISSUED SCo\lE SHEEr 14 OF l"t - 8 I 7 I 6 I 5 t 4 I 3 2. I 1

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

5-35/5-36 APPENDIX A HANDSHAKE SEQUENCES AND EXAMPLE HOST PROCESSOR DISK CONTROL PROGRAM

INTRODUCTION SINGLE USER SEQUENCE WITH OVERLAPPING SEEKS The information contained in this appendix is provided to illustrate various methods of implement­ The flow chart in Figure A-2 shows the handshake ing data transfers between one or more host proces­ sequence between a single host processor and the sors and the iSBC 215 controller. The flow charts controller for data transfer operations that user over­ illustrate the handshake procedures required be­ lapping seeks. tween a host processor and the controller. User sequences are shown both for single and multi-user processing environments. A sequence for initiating MULTI-USER SEQUENCE overlapped seeks is also given. The flow chart in Figure A-3 shows the handshake The program listing provides an example program sequence between a host processor and the controller that a host processor would run to direct data trans­ when more than one processor is transferring data fer between the host and the iSBC 215 controller. between the disk drives through the same controller The program is written in MCS-86™ Macro Assem­ (multi-processor environment). Note that in this case bler language. It illustrates the data structures that the Command Semaphore byte in the Controller the iSBC 215 controller requires and shows a few Invocation Block is also used. Overlapping seeks in simple disk operations drivers. 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 EXAMPLE HOST PROCESSOR sequence between a single host processor and the DISK CONTROL PROGRAM controller for basic data transfer operations (with no overlapping seeks). Note that communication be­ The following program example is for a single user tween the host and the controller is through the environment. Some of the techniques illustrated in Status Semaphore and Operation Status bytes of the the flow charts in this appendix are implemented in Controller Invocation Block. this program, but not all.

A-I Appendix A iSBC 215

SET UP Set up command and parameters for desired data 1/0 PARAMETER } BLOCK transfer operation.

WRITE '01' TO WAKE-UP 1/0 } Initiate data '

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

NO SET Check OPERATION STATUS byte to see if operation ST. SEMA. = 0 Iwas completed without error.

YES

SET GO TO ERROR ST. SEMA. HANDLING } Check ErM Sta'us buffer and proces, result" c 0 ROUTINE

FINISH FINISH

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

A-2 iSBC 215 Appendix A

SET UP 1/0 PARAMETER } Set up command and parameters for seek operation. BLOCK

WRITE '01' TO WAKE-UP } Initiate data "an,fer operation. 1/0 PORT

BRANCH TO OTHER PROCESSING } Perform other proe""in, task,. TASKS

/ OP COMPLETE INTERRUPT

Respond to operation complete interrupt; Check NO SET ST. SEMA. } OPERATION STATUS byte to see if operation was c 0 completed without error.

YES

SET 1/0 PARA­ METER BLOCK FOR Set u~ command and parameters for next seek NEXT OPERATION; } operatIOn. SET ST. SEMA c 0

FINISH

WRITE '01' TO WAKE-UP 1/0 PORT } Initiate next data "an,fer operation.

BRANCH TO OTHER PRO­ } Perform other proees,i"" t.,ks. CESSING TASKS

/ OP COMPLETE INTERRUPT

Respond to operation complete interrupt; check NO SET ST, SEMA. }. OPERAnON STATUS byte to see if operation was c 0 completed without error.

YES

SET ST. SEMA. cO; BRANCH TO OTHER PRO­ } Continue with other proccsoring tash CESSING TASK

FINISH

Figure A-2. Flow Chart for Single User Handshake Sequence With Overlapping Seeks

A-3 Appendix A iSBC215

Respond to seek complete interrupt for first opera I tion; check status buffer to determine if seek opera tion was completed without error.

YES

SET ST. SEMA. = 0

GO TO SEEK Continue with oth'" proee,,,ing tasks. ERROR HANDLING I ROUTINE

BRANCH TO OTHER PRO· CESSING TASKS

/ SEEK COMPLETE INTERRUPT

Respond to seek complete interrupt for second opera NO SET ST. SEMA. tion; check status buffer to determine if seek opera­ = 0 I tion was completed without error.

YES

GO TO SEEK SET ERROR HANDLING ST. SEMA. ROUTINE = 0

FINISH FINISH

Figure A·2. Flow Chart for Single User Handshake Sequence With Overlapping Seeks (Continued)

A·4 iSBC21S Appendix A

LOCK THE MULTIBUS'· INTERFACE

Obtain control of disk controller. Test and set COM­ MAND SEMAPHORE byte. NO I

YES

SET COMM. SEMA. TO NON-ZERO AND UNLOCK MULTIBUS'· INTER.

B

SET UP Set up command and parameters for desired data 110 PARAMETER } BLOCK transfer operation.

WRITE '01' TO WAKE-UP 110 } Initiate data I.. nsf", ope.. tion. PORT

BRANCH TO OTHER PRO­ CESSING TASKS } Continue with oth'" processing tasks.

/ OP COMPLETE INTERRUPT

Respond to operation complete interrupt; check NO SET ST. SEMA. OPERATION STATUS byte to see if operation was = 0 I completed without error.

YES

SET ST. SEMA. } Relinquish conl,oll", of disk conlroll",. = 0

A

FINISH

Figure A-3. Flow Chart for Multi-User Handshake Sequence

A-5 Appendix A iSBC 215

YES

SET COMM. SEMA. o 0

FINISH

Figure A-3. Flow Chart for Multi-User Handshake Sequence (Continued)

A-6 iSBC 215 Appendix A

MCS-86 MACRO ASSEMBLER iSBC 215 8" WINCHESTER DISK CONTROLLER PROGRAMMING EXAMPLE 10/27/80 PAGE

ISIS-II MCS-86 MACRO ASSEMBLER V2.1 ASSEMBLY OF MODULE EXMPRG OBJECT MODULE PLACED IN :Fl:EXMPRG.OBJ ASSEMBLER INVOKED BY: ASM86 :Fl:EXMPRG.MMD DATE(10/27/80) XREF DEBUG

LOC OBJ LINE SOURCE

$PAGELENGTH(85) PAGEWIDTH(115) TITLE(iSBC 215 8" WINCHESTER DISK CONTROLLER PROG RAMMING EXAMPLE) XREF

"""""""""""""""""""""""""""""",##,,#,,#1111 1111 ## iSBC 215 DISK CONTROLLER PROGRAMMING EXAMPLE ## #11 I1I1 """""""""",#""""""""""""""""""""""", THIS PROGRAM ILLUSTRATES THE DATA STRUCTURES REQUIRED BY THE iSBC 215 10 DISK CONTROLLER. A FEW SIMPLE DISK OPERATION DRIVERS ARE ALSO SHOWN. 11 12 THE HARDWARE CONFIGURATION SUPPORTED IS: 13 14 1. iSBC 86/12A HOST CPU 15 2. 20 BIT SYSTEM MEMORY ADDRESS WIDTH 16 3. 16 BIT SYSTEM DATA BUS WIDTH 17 4. 16 8IT SYSTEM I/O ADDRESS WIDTH 18 5. iSHC 215 19 a. WAKE UP ADDRESS WUA) AT I/O PORT 0635H 20 b. INTERRUPT 5 21 c. -12 VOLTS INPUT 22 d. RELINQUISH BUS CONTROL ON ANY REQUEST 23 24 FOR (2), PROGRAMMING OF DATA TRANSFERS MUST TAKE THIS INTO ACCOUNT,e.g. THERE 25 IS NO WRAPAROUND IN SEGMENTS IF MORE THAN 64K BYTES ARE TRANSFERRED. 26 27 iSBC 215 SWITCH AND JUMPER SETTINGS: 28 29 FOR (3), SWITCH S2-1 IS CLOSED. 30 FOR (4), SWITCH S2-2 IS CLOSED. 31 FOR (5a), SWITCHES SI-6,SI-7,S2-5,S2-6,S2-8, AND S2-10 ARE CLOSED, THE 32 REMAINING ADDRESS SELECT SWITCHES ARE OPEN. 33 FOR (5b), WI9-C CONNECTS TO WI9-5; INTERRUPT VECTORS MUST BE SET UP PROPERLY. 34 FOR (5c), W21-1 CONNECTS TO W21-3 35 FOR (5d), W2-1 CONNECTS TO W2-2. 36 37 +1 $INCLUDE(:Fl:COMBLK.MMD) =1 38 +1 $EJECT TITLE(iSBC 215 COMMUNICATION BLOCKS)

A·7 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER iSBC 215 COMMUNICATION BLOCKS 10/27/80 PAGE

LOC OBJ LINE SOURCE

=1 39 =1 40 =1 41 COMMUNICATION BLOCKS =1 42 =1 43 =1 44 =1 45 =1 46 I. SCB =1 47 =1 48 =1 49 THE SCB TELLS THE 8089 ON THE iSBC 215 THE WIDTH OF THE 8089'. LOCAL =1 50 BUS AND POINTS TO THE CCB. =1 51 =1 52 *********************************************************************** =1 53 * THE MEMORY ADDRESS OF THE SCB IS EQUAL TO THE I/O WAKE-UP ADDRESS * =1 54 * ( WUA ) OF THE iSBC 215 MULTIPLIED BY 16. * =1 55 *********************************************************************** =1 56 0635 =1 57 WUA EQU 0635H WAKE-UP ADDRESS 1(0 PORT NUMBER =1 58 =1 59 SCBSEG SEGMENT AT WUA PUTS SCB AT ADDRESS 06350H =1 60 0000 =1 61 SCB LABEL FAR 0000 01 =1 62 SOC DB OIH TELL 8089 IT IS ON A 16 BIT LOCAL BUS 0001 00 =1 63 DB OOH RESERVED 0002 0000---- R =1 64 CCBPTR DD CCB POINTER (SEGMENT + OFFSET) TO CCB =1 65 =1 66 SCBSEG ENDS =1 67 =1 68 ""===_.=====""== =1 69 II. CCB =1 70 === .. ======;00===:;0 =1 7J =1 72 THIS BLOCK CONTAINS THE CONTROL BYTES, BUSY FLAGS, AND POINTERS TO THE =1 73 STARTING ADDRESSES OF THE CHANNEL PROGRAMS FOR THE 8089. =1 74 =1 75 CCBSEG SEGMENT CCB MUST BE CONTIGUOUS =1 76 , 0000 =1 77 CCB LABEL FAR 0000 01 =1 78 CCWI DB OIH START CH. I PROGRAM IN LOCAL MEMORY 0001 00 =1 79 BSYFLGI DB DOH CH. I BUSY FLAG 0002 0400---- R =1 80 CHIPTR DD CHIPC POINTER TO FIFTH BYTE OF CIB, WHICH =1 81 CONTAINS STARTING ADDRESS OF CH. I =1 82 FIRMWARE PROGRAM 0006 0000 =1 83 DW OOOOH RESERVED 0008 01 =1 84 CCW2 DB OIH START CH. 2 PROGRAM IN LOCAL MEMORY 0009 00 =1 85 BSYFLG2 DB DOH CH. 2 BUSY FLAG OOOA OEOO---- R =1 86 CH2PTR DD CH2PC POINTER TO LAST WORD OF CCB, WHICH =1 87 CONTAINS STARTING ADDRESS OF CH. 2 =1 88 FIRMWARE PROGRAM OOOE =1 89 CH2PC LABEL FAR OOOE 0400 =1 90 DW 0004H STARTING ADDRESS OF CH. 2 PROGRAM =1 91 , =1 92 CCBSEG ENDS =1 93 , =1 94 +1 $EJECT

A-8 iSBC 215 Appendix A

nCS-86 MACRO ASSEMBLER iSIC 2]5 COMMUNICATION BLOCKS 10/27/80 PAGE

LO C a BJ LINE SOURCE

-I 95 -I 96 III. CIB -I 97 -I 98 -I 99 THI~ BLOCK CONTAINS GENERAL PURPOSE COMMAND AND STATUS BYTES, SEMA­ -] 100 PHORES, AND POINTERS TO ALLOW THE USE OF THE iSBC 215 IN A MULTI­ -I 101 PROCESSOR/MULTI-PROCESSING SYSTEM. -] 102 -I 103 CIBSEG SEG~!ENT ; CIa MUST BE CONTIGUOUS -] 104 0000 -I 105 CII LABEL FAR 0000 00 -] 106 CIBCt!D DB OOH CIB COMMAND BYTE NOT USED BY iSBC 215 0001 00 -] 107 OPSTS DB OOH CIB STATUS BYTE IS USED BY iSBC 2]5 0002 00 -] 108 CHDSEH DB OOH COMMAND BYTE SEMAPHORE 0003 00 -I 109 STSSEM DB OOH STATUS BYTE SEMAPHORE 0004 -] 110 CH1PC LABEL FAR 0004 00000000 -] III DO OOOOH STARTING ADDRESS OF CH. I PROGRAM 0008 0000 -] 112 IOPBOFF ow OFFSET IOPB POINTER TO IOPB OOOA R -] 113 IOPBSG OW IOPBSEG OOOC 00000000 -] ]14 DO OOOOH RESERVED -] 115 -] 116 CIBSEG ENDS -] 117 -I 118 -I 119 IV. IOPB -] 120 -I 121 -I 122 THIS BLOCK CONTAINS THE DEVICE DEPENDENT CONTROL INFORMATION FOR THE -] 123 iSBC 215 CONTROLLER. -] 124 ; -] 125 IOPBSEG SEGMENT IOPB MUST BE CONTIGUOUS -] 126 ; 0000 -] 127 IOPB LABEL FAR 0000 00000000 -I ]28 DO OOOOH RESERVED 0004 00000000 -] 129 ACTCNT DO OOOOH ACTUAL TRANSFER COUNT (32 BIT INTEGER) 0008 0000 -] 130 DEVCOD DW OOOOR DEVICE CODE (OR-WINCHESTER aiR-FLOPPY) OOOA 00 -] 131 UNIT DB OOR UNIT NUMBER (0 <- UNIT <- 3) OOOB 00 -] 132 FUNC DB DOH FUNCTION CODE (0 <- FUNCTION <. OFH) OOOC 0000 -] 133 MODIFY DW OOOOH HODIF IER WORD DaDE 0000 -] 134 CYLNDR DW OOOOH CYLINDER NUHBER 0010 00 -I 135 READ DB DOH HE AD NUMB ER 0011 00 -I 136 SECTOR DB OOH SECTOR NUlIBER 0012 0000 -I 137 BUFOFF ow OOOOR POINTER TO DATA BUFFER 0014 0000 -I 138 BUFSEG DW OOOOH 0016 00000000 -I 139 REQCNT DD OOOOH REQUESTED TRANSFER COUNT (INTEGER) 001A 00000000 -I 140 DO OOOOH RESERVED -I 141 -I 142 IOPBSEG ENDS ]43 ]44 +1 $INCLUDE(:Fl:INITBL.MMD) -I 145 +1 $EJECT TITLE(DISK DRIVE INITIALIZATION TABLES)

A·9 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER DISK DRIVE INITIALIZATION TABLES 10/27/80 PAGE

LOC OBJ LINE SOURCE

=1 146 =1 147 =1 148 DISK DRIVE INITIALIZATION PARAMETER TABLES =1 149 =1 150 =1 151 =1 152 THIS SEGMENT CONTAINS THE DRIVE CONFIGURATION DATA TABLES THAT ARE USED =1 153 BY THE INITIALIZATION ROUTINE. THEY MUST BE MODIFIED TO REFLECT THE =1 154 PARTICULAR DRIVES BEING USED WITH THE iSBC 215 DISK CONTROLLER. =1 155 =1 156 - IF A DRIVE IS NOT PRESENT, ITS INITIALIZATION TABLE MUST BE ALL ZEROES. =1 157 =1 158 =1 159 8 " WINCHESTER HARD DISK DRIVES =1 160 =1 161 1 BYTES PER SECTOR 1 MAXIMUM SECTORS PER TRACK 1 =1 162 1------+------I =1 163 1 128 1 54 1 =1 164 1 256 1 31 1 =1 165 1 512 1 17 1 =1 166 1 1024 1 9 1 =1 167 =1 168 =1 169 =1 170 INITBLSEG SEGMENT =1 171 =1 172 DRIVE 110 ---SHUGART MODEL SAI004 (10.6 HEGABYTES STORAGE) =1 173 0000 0001 =1 174 DW 256 NUMBER OF CYLINDERS 0002 04 =1 175 DB 4 NUMBER OF FIXED READ/WRITE SURFACES 0003 00 =1 176 DB 0 NuaBER OF REMOVABLE R/W SURF AC ES 0004 IF =1 177 DB 31 NUMBER OF SE CTORS PER TRACK 0005 0001 =1 178 OW 256 NUMBER OF BYTES PER SE CTOR 0007 as =1 179 DB NUHBER OF ALTERNATE CYLINDERS =1 180 =1 181 DRIVE III ---SHUGART MODEL SAI002 (5.3 MEGABYTES STORAGE) =1 182 0008 0001 =1 183 DW 256 NuaBER OF CYLINDERS OOOA 02 =1 184 DB 2 NUMBER OF FIXED READ/I,RITE SURFACES OOOB 00 =1 185 DB 0 NU118 ER OF REMOVABLE R/W SURFACES OOOC 11 =1 186 DB 17 NUIIBER OF SE CTORS PER TRACK 0000 0002 =1 187 DW 512 NUMBER OF BYTES PER SECTOR OOOF 05 =1 188 DB NUIIBER OF ALTERNATE CYLINDERS =1 189 =1 190 DRIVE 112 NONEXISTENT =1 191 0010 0000 =1 192 ow OOOOH NUIIBER OF CYLINDERS 0012 00 =1 193 DB OOH NUIIBER OF FIXED READ/I,RITE SURFACES 0013 00 =1 194 DB OOH NUIIBER OF REIIOVABLE R/W SURFACES 0014 00 =1 195 DB OOH NUMBER OF SE CTORS PER TRACK 0015 0000 =1 196 OW OOOOH NUIIBER OF BYTES PER SE CTOR 0017 00 =1 197 DB DOH NUIIBER OF ALTERNATE CYLINDERS =1 198 =1 199 DRIVE 113 NONEXISTENT =1 200 0018 0000 =1 201 ow 00 DOH NUIIBER OF CYLINDERS 001A 00 =1 202 DB OOH NUIIBER OF FIXED READ/WRITE SURFACES 001B 00 =1 203 DB OOH NUIIBER OF REIIOVABLE R/W SURFACES 001C 00 =1 204 DB OOH NUMBER OF SECTORS PER TRACK 0010 0000 =1 205 DW OOOOH NUMBER OF BYTES PER SECTOR 001F 00 =1 206 DB OOH NUMBER OF ALTERNATE CYLINDERS =1 207 =1 208 +1 $EJECT

A-IO Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER DISK DRIVE INITIALIZATION TABLES 10/27/80 PAGE

LOC OBJ LINE SOURCE

=1 209 =1 210 =1 211 8" FLEXIBLE DISK DRIVES =1 212 = I 213 1 BYTES PER SECTOR 1 MAXIMUM SECTORS PER TRACK 1 =1 214 1------+------I =1 215 1 128 1 26 (FM) 1 =1 216 1 256 1 26 (MFM) 1 =1 217 1 512 1 15 (MFM) 1 ~1 218 1 1024 1 (MFH) =1 219 =1 220 =1 221 =1 222 DRIVE 110 ---SHUGART MODEL 850 (1.0 MEGABYTES STORAGE) =1 223 0020 4DOO =1 224 DW 77 NUHBER OF CYLINDERS 0022 00 ~I 225 DB a NUHBER OF FIXED READ/WRITE SURFACES 0023 02 ~I 226 DB 2 NUMBER OF REMOVABLE R/W SURF AC ES 0024 IA ~ I 227 DB 26 NUMBER OF SECTORS PER TRACK 0025 0001 =1 228 DW 256 NUHBER OF BYTES PER SECTOR 0027 01 =1 229 DB 01 MFH( I) OR FH(O) RECORDING MODE =1 230 =1 231 DRIVE III ---SHUGART HODEL 850 ( 1. 0) tlEGABYTES STORAGE) =1 232 0028 4DOO =1 233 DW 77 NUMBER OF CYLINDERS 002A 00 ~1 234 DB a NUHBER OF FIXED READ/liRITE SURFACES 002B 02 =1 235 DB 2 NUMBER OF REHOVABLE R/W SURFACES 002C IA =1 236 DB 26 NUHBER OF SECTORS PER TRACK 0020 8000 =1 237 DW 128 NUHBER OF BYTES PER SECTOR 002F 00 =1 238 DB 00 HFII( I) OR FH(O) RECORDING MODE =1 239 =1 240 DRIVE 112 NONEXISTENT =1 241 0030 0000 =1 242 ow OOOOH NUMBER OF CYLINDERS 0032 00 =1 243 DB OOH NUMBER OF FIXED READ/WRITE SURFACES 0033 00 =1 244 DB OOH NUHBER OF REI10VABLE R/W SURF AC ES 0034 00 ~1 245 DB DOH NUHBER OF SE CTORS PER TRACK 0035 0000 ~I 246 ow aaOOH NUMBER OF BYTES PER SECTOR 0037 00 ~I 247 DB DOH HFM(I) OR FH (0) RECORDING MODE ~I 248 =1 249 DRIVE 113 NONEXISTENT = I 250 0038 0000 =1 251 ow DOOOH NUMBER OF CYLINDERS 003A 00 =1 252 DB OOH NUMBER OF FIXED READ/WRITE SURFACES 003B 00 =1 253 DB DOH NUMBER OF REIIOVABLE R/W SURF ACES 003C 00 =1 254 DB DOH NUI1BER OF SE CTORS PER TRACK 0030 0000 ~ I 255 OW OOOOR NUtIBER OF BYTES PER SECTOR = I 256 DB DOH HFH( I) OR FH(O) RECORDING MODE = I 257 ~I 258 INITBLSEG ENDS 259 260 +1 $INCLUDE(:FI:DATSEG.HHD) = I 261 +1 $EJECT TITLE(DATA SEGHENT)

A-ll Appendix A iSBC 215

MCS~86 MACRO ASSEMBLER DATA SEGMENT 10/27/80 PAGE 6

LOC OBJ LINE SOURCE

=1 262 =1 263 =1 264 DATA SEGMENT =1 265 =1 266 =1 267 =1 268 DATASEG SEGMENT =1 269 =1 270 THIS SEGMENT CONTAINS VARIOUS DATA THAT ARE USED BY THE iSBC 215 DRIVER =1 271 SOFTWARE. =1 272 =1 273 - THE FLAGS ARE SET BY THE INTERRUPT SERVICE ROUTINE, AND ARE COPIES OF THE =1 274 CIS STATUS POSTED BY THE iSBC 215. THE ROUTINES THAT USE THE FLAGS ARE =1 275 RESPONSIBLE FOR CLEARING THEM AFTER USE. =1 276 ,.------~------.------~------=1 277 =1 278 PUBLIC OPCMP,SKCMP,PKCHG,ERRSTS =1 279 =1 280 OPERATION COMPLETE FLAGS =1 281 , 0000 =1 282 OPCMP LABEL BYTE 0000 00 =1 283 OPCMPO DB DOH OPERATION COMPLETE ON UNIT 0 0001 00 =1 284 OPC!1P I DB OOH OPERATION COMPLETE ON UNIT I 0002 00 =1 285 OPCMP2 DB 0011 OPERATION COMPLETE ON UNIT 0003 00 =1 286 OPCMP} DB OOH OPERATION COMPLETE ON UNIT =1 287 =1 288 SEEK COHPLETE FLAGS =1 289 , 0004 =1 290 SKCHP LABEL BYTE 0004 00 =1 291 SKCMPO DB OOH SEEK CO!1PLETE ON UNIT 0 0005 00 =1 292 SKCMPI DB DOH SEEK COMPLETE ON UNIT 0006 00 =1 293 SKCMP2 DB OOH SEEK COMPLETE ON UNIT 0007 00 =1 294 SKCtlP3 DB DOH SEEK Cm!PLETE ON UNIT =1 295 =1 296 PACK CHANGE FLAGS =1 297 0008 =1 298 PKCHG LABEL BYTE 0008 00 =1 299 PKCHGO DB OOH PACK CHANGE ON UNIT a 0009 00 =1 300 PKCHGI DB OOH PACK CHANGE ON UNIT 1 OOOA 00 =1 301 P KCHG2 DB OOH PACK CHANGE ON UNIT 2 OOOB 00 =1 302 PKCHG3 DB OOH PACK CHANGE ON UNIT 3 =1 303 =1 304 ERROR STATUS BLOCK =1 305 (LOADED FROM CONTROLLER BY ERROR HANDLER) =1 306 , oooe 0000 =1 307 ERRSTS ow DOOOH ERROR STATUS WORD OOOE 00 =1 308 SFERST DB DOH SOFT ERROR STATUS BYTE OOOF 0000 =1 309 DESCYL OW OOOOH DESIRED CYLINDER 0011 00 =1 310 DESHD DB 0011 DESIRED HEAD 0012 00 =1 311 DESSEe DB DOH DESIRED SECTOR 0013 0000 =1 312 ACTCYL OW OOOOH ACTUAL CYLINDER + FLAG BITS 0015 00 =1 3l'l ACTHD DB OOH ACTUAL HEAD 0016 00 =1 314 ACTSEC DB DOH ACTUAL SECTOR 0017 00 =1 315 NMRTRY DB 0011 NuaBER OF RETRIES MADE =1 316 =1 317 LAST OPERATION CO!1PLETE BYTE =1 318 (COPIED FROM CIB SY WAIT215) =1 319 ; 0018 00 =1 320 LSTSTS DB DOH =1 321 0019 90 =1 322 EVEN =1 323 , 001A =1 324 ENDDAT LABEL FAR END OF DATA SEGMENT =1 325 , =1 326 DATASEG ENDS 327 328 +1 $INCLUDE(:FI:USER.MMD) =1 329 +1 $EJECT TITLE(SYSTEM DEPENDENT INITIALIZATION)

A·12 iSBC 215 Appendix A

MCS-86 MACRO ASSEMBLER SYSTEM DEPENDENT INITIALI7.ATION 10/27/80 PAGE

LOC OBJ LINE SOURCE

=1 330 =1 331 =1 332 SYSTEM DEPENDENT INITIALI7.ATION =1 333 =1 334 =1 335 =1 336 THIS ROUTINE SETS UP THE INTERRUPT VECTOR FOR AN iSBC 86/12A CPU =1 337 RUNNING UNDER THE iSBC 957A INTERFACE/EXECUTION PACKAGE. =1 338 =1 339 - THE 8259 INTERRUPT CONTROLLER AND OTHER INITIAL7.ATIONS ARE PERFORMED =1 340 BY THE iSBC 957A FIRMWARE. =1 341 =1 342 =1 343 =1 344 INTERRUPT VECTOR DEFINITION =1 345 =1 346 0005 =1 347 INTRPT EQU iSBC 220 INTERRUPT NUHBER =1 348 =1 349 SEGOOOO SEGMENT AT OOOOH INTERRUPT VECTORS ARE FROH ABSOLUTE =1 350 ADDRESSES OOOOOH TO OOFFOH =1 351 0094 =1 352 ORG 80H + 4*INTRPT LOCATION OF INTERRUPT VECTOR WITH =1 353 iSBC 957A FIRHWARE 0094 0000 =1 354 IN TRIP DW OOOOH - INSTRUCTION POINTER 0096 0000 =1 355 INTRCS D\I OOOOH - CODE SEGHENT =1 356 ; =1 357 SEGOOOO ENDS =1 358 =1 359 =1 360 STACK ALLOCATION =1 361 =1 362 =1 363 STACK SEGMENT STACK SEGMENT =1 364 0000 (64 =1 365 DB 64 DUP(OOH) ALLOW 64 BYTES FOR STACK 00 ) =1 366 ; 0040 =1 367 ENDSTK LABEL FAR =1 368 =1 369 STACK ENDS =1 370 =1 371 =1 372 STACK AND INTERRUPT CONFIGURATION ROUTINE =1 373 =1 374 =1 375 USERSEG SEGMENT =1 376 =1 377 PUBLIC CONFIG =1 378 ASSUME DS:SEGOOOO =1 379 , 0000 =1 380 CONFIG PROC FAR =1 381 0000 FA =1 382 CLI ; DISABLE INTERRUPTS WHILE SETTING UP 0001.B8---- R =1 383 MOV AX,STACK '" SET UP STACK 0004 8EDO =1 384 nov 5S ,AX 0006 BC4000 =1 385 HOV SP,OFFSET ENDSTK 0009 B80000 =1 386 HOV AX,OOOOH GET POINTER TO SEGHENT OOOOH OOOC 8ED8 =1 387 HOV DS ,AX OOOE C70694003D02 =1 388 HOV INTRIP,OFFSET INT215 SET UP INTERRUPT VECTOR 0014 C7069600---­ R =1 389 HOV INTRCS,SEG INT215 OOlA E4C2 =1 390 IN AL,OC2H INPUT INTERRUPT MASK FROM 8259 OOlC 24DF =1 391 AND AL , 11011111 B ENABLE INTERRUPT 5 OOlE E6C2 =1 392 OUT OC2H,AL WRITE NEW HASK OUT TO 8259 0020 FB =1 393 STI ENABLE INTERRUPTS 0021 CC =1 394 INT GO TO MONITOR =1 395 =1 396 CONFIG ENDP =1 397 =1 398 USERSEG ENDS 399 400 SBC215DRIVER SEGI!ENT 401 402 ASSUME CS:SBC215DRIVER 403 404 +1 $INCLUDE(:Fl:RESET.MMD) =1 405 +1 $EJECT TITLE{CONTROLLER RESET ROUTINE)

A-13 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER CONTROLLER RESET ROUTINE 10/27/80 PAGE 8

LOC OBJ LINE SOURCE

31 406 -1 407 =1 408 CONTROLLER RESET ROUTINE -1 409 -1 410 =1 411 =1 412 RES215 SETS UP THE COMMUNICATION BLOCKS FOR THE iSBC 215, LINKS THEM ·-1 413 TOGETHER AND GIVES A RESET, CLEAR RESET, CHANNEL ATTENTION SEQUENCE TO -1 414 THE CONTROLLER. THIS CAUSES THE 8089 ON THE CONTROLLER TO SET UP ITS =1 415 INTERNAL POINTER TO THE CCB BY THREADING DOWN THE LINKS STARTING WITH -1 416 THE SWITCHES ON THE CONTROLLER. SUBSEQUENT CA's WILL CAUSE THE 8089 TO -I 417 FETCH ITS POINTERS STARTING AT THE CCB. -I 418 =1 419 - IF THE CR. 1 BUSY FLAG IS NOT CLEARED WITHIN A "REASONABLE" AMOUNT OF TIME, -I 420 THEN THE iSBC 215 IS PROBABLY NOT RESPONDING TO THE CHANNEL ATTENTION. -1 421 ON THE CONTROLLER: CHECK SWITCH SETTINGS; VOLTAGES; RESET, CLEAR RESET, =1 422 CHANNEL ATTENTION SIGNALS; READY INPUT TO 8089; 8089 STATUS LINES; R/W -I 423 STROBES. -I 424 -1 425 - THE SYSTEM INTERRUPT LOGIC AND VECTORS FOR THE CONTROLLER ARE ASSUMED TO BE -I 426 CONFIGURED BY AN EXTERNAL PROGRAM. =1 427 -I 428 INPUT DATA: -I 429 NONE -I 430 -I 431 OUTPUT DATA: -I 432 CARRY FLAG: = 0 IF RESET OKAY -I 433 - I IF CH. I BUSY FLAG NOT RESET (NOT RESPONDING) =1 434 -I 435 -I 436 PUBLIC RES215 -I 437 0000 =1 438 RES215 PROC FAR =1 439 0000 50 -I 440 PUSH AX SAVE REGISTERS 000 I 53 =1 441 PUSH BX 0002 51 -I 442 PUSH CX 0003 52 =1 443 PUSH DX 0004 IE -I 444 PUSH DS -I 445 -I 446 SET UP LINKS BETWEEN COMMUNICATION BLOCKS -I 447 =1 448 SCB -I 449 -I 450 ASSUME DS:SCBSEG 0005 B83506 =1 451 MOV AX,SCBSEG GET POINTER TO SCB 0008 8ED8 =1 452 MOV DS,AX OOOA C70600000100 -I 453 MOV WORD PTR SOC,OOOIH SET SOC BYTE AND CLEAR RESERVED BYTE 0010 C70602000000 =1 454 MOV WORD PTR CCBPTR,OFFSET CCB SET POINTER TO CCB 0016 C7060400---- R -I 455 MOV WORD PTR CCBPTR+2,SEG CCB =1 456 =1 457 CCB -I 458 OOIC C5060200 =1 459 LDS AX,CCBPTR GET POINTER TO CCB =1 460 ASSUME DS:CCBSEG 0020 C70600000lFF =1 461 MOV WORD PTR CCWI,OFFOIH SET CCWI AND CH. 1 BUSY FLAG 0026 C70602000400 =1 462 MOV WORD PTR CHIPTR,OFFSET CHIPC; SET POINTER TO FIFTH BYTE OF CIB 002C C7060400---- R =1 463 MOV WORD PTR CHIPTR+2,SEG CHIPC ; (HAS STARTING ADDRESS FOR CH. I) 0032 C70608000100 =1 464 MOV WORD PTR CCW2,0001H SET CCW2 AND CLEAR CH. 2 BUSY FLAG 0038 C7060AOOOEOO =1 465 MOV WORD PTR CH2PTR,OFFSET CH2PC; SET POINTER TO CH. 2 STARTING ADDRESS 003E C7060COO---- R =1 466 MOV WORD PTR CH2PTR+2,SEG CH2PC 0044 C7060E000400 =1 467 MOV WORD PTR CH2PC,0004H SET CH. 2 STARTING ADDRESS =1 468 =1 469 CIB -I 470 -I 471 ASSUME DS:CIBSEG 004A B8---- R =1 472 MOV AX,CIBSEG GET POINTER TO CIB 0040 8E08 -I 473 MOV OS, AX 004F C70600000000 =1 474 MOV WORD PTR CIBCMD,OOOOH CLEAR CIB COMMAND AND CIB STATUS BYTES 0055 C70602000000 =1 475 MOV WORD PTR CMDSEM,OOOOH ••• AND SEMAPHORES 005B C70604000000 -I 476 MOV WORD PTR CHIPC,OOOOH SET CH. 1 STARTING ADDRESS 0061 C70608000000 =1 477 MOV IOPBOFF,OFFSET IOPB SET IOPB POINTER 0067 C7060AOO---- R =1 478 MOV IOPBSG,SEG IOPB -I 479 =1 480 +1 $EJECT

(

A-14 iSBC 215 Appendix A

HCS-86 MACRO ASSEMBLER CONTROLLER RESET ROUTINE 10/27/80 PAGE 9

LOC OBJ LINE SOURCE

=1 481 CLEAR OUT DATA SEGMENT =1 482 =1 483 ASSUME DS:DATASEG 006D B8---- R =1 484 MOV AX,DATASEG GET POINTER TO DATA SEGMENT 0070 8ED8 =1 485 MOV DS,AX 0072 B90DOO =1 486 MOV CX,(OFFSET ENDDAT)/2 GET COUNT (# WORDS IN DATA SEGMENT) 0075 BBOOOO =1 487 MOV BX,OOOOH CLEAR INDEX REGISTER 0078 C7070000 =1 488 CLRLP: MOV WORD PTR [BX],OOOOH CLEAR NEXT WORD IN DATA SEGMENT 007C 43 =1 489 INC BX POINT TO NEXT WORD 007D 43 =1 490 INC BX oon EOF8 =1 491 LOOPNE CLRLP DONE? =1 492 NO--CLEAR ANOTHER WORD =1 493 YES--INITIALIZE COMMUNICATION LINKS =1 494 =1 495 OUTPUT RESET/CLEAR RESET/CHANNEL ATTENTION TO CONTROLLER =1 496 0080 BA3506 =1 497 110V DX, WUA GET WAKE-UP I/O PORT ADDRESS 0083 B002 =1 498 MOV AL,02H GET RESET COIIMAND BYTE 0085 EE =1 499 OUT UX,AL OUTPUT TO WAKE-UP I/O PORT 0086 BOOO =1 500 MOV AL,OOH GET CLEAR RESET COIIMAND BYTE 0088 EE =1 SOl OUT DX,AL OUTPUT TO WAKE-UP I/O PORT 0089 Baal =1 502 MOV AL,OIH GET CHANNEL ATTENTION COMMAND BYTE 008B EE =1 503 OUT DX,AL OUTPUT TO WAKE-UP I/O PORT =1 504 ASSUME DS:CCBSEG 008C B8---- R =1 505 110V AX,CCBSEG GET POINTER TO CCB 008F 8ED8 =1 506 1I0V DS,AX =1 507 (OTHER IMPLEMENTATIONS OF RES215 COULD =1 508 INITIALIZE OTHER DEVICES WHILE THE =1 509 iSBC 215 DOES ITS RESET SEQUENCE HERE) 0091 B90010 =1 510 MOV CX,1000H SET TIME-OUT COUNTER 0094 F8 =1 511 CLC CLEAR CARRY FLAG 0095 F6060100FF =1 512 RESLP: TEST BSYFLGI,OOFFH CHECK CH. I BUSY FLAG: =1 513 ZERO FLAG = BSYFLGI & FFH 009A 7403 =1 514 JZ RESDN BUSY FLAG CLEARED? =1 515 YES--RETURN CARRY CLEAR 009C EOF7 =1 516 LOOPNE RESLP NO--DECREMENT COUNTER =1 517 IF CX = 0, THEN BSYFLGI NEVER GOT 009E F9 =1 518 STC CLEARED, SO SET CARRY FLAG 009F IF =1 519 RESDN: POP US RESTORE REGISTERS OOAO SA =1 520 POP UX OOAI 59 =1 521 POP ex 00A2 5B =1 522 POP BX aOA3 58 =1 523 POP AX OOA4 CB =1 524 RET RETURN =1 525 =1 526 RE S 21.5 ENDP 527 528 +1 iINCLUDE(:FI:INITEX.IIMD) =1 529 +1 $EJECT TITLE(INITIALIZATION ROUTINE)

A-15 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER INITIALIZATION ROUTINE 10/27/80 PAGE 10

LOC OBJ LINE SOURCE

=1 530 =1 531 =1 532 INITIALIZATION ROUTINE =1 533 =1 534 =1 535 =1 536 INIT215 INITIALIZES THE iSBC 215 CONTROLLER BY LOADING PERTINENT INFOR­ =1 537 MATION ABOUT THE DISK DRIVE(S) ATTACHED. =1 538 =1 539 - IF A DRIVE THAT IS SPECIFIED AS PRESENT WILL NOT RESPOND, INIT215 RETURNS =1 540 IMMEDIATELY WITH THE CARRY FLAG SET. =1 541 -I 542 INPUT DATA: =1 543 DISK DRIVE INITIALIZATION TABLES, IN SEGMENT "INITBLSEG". =1 544 =1 545 OUTPUT DATA: =1 546 CARRY FLAG = 0 IF CONTROLLER INITIALIZED SUCCESSFULLY =1 547 = I IF INITIALIZATION ERROR =1 548 =1 549 =1 550 PUBLIC INIT215 =1 551 ASSUME DS:IOPBSEG =1 552 00A5 =1 553 INIT215 PROC FAR =1 554 00A5 50 =1 555 PUSH AX SAVE REGISTERS 00A6 IE =1 556 PUSH OS 00A7 B8---- R =1 557 110 V AX,IOPBSEG GET POINTER TO IOPB OOAA 8ED8 =1 558 MOV DS,AX PUT IN DS REGISTER OOAC C70608000000 =1 559 MOV DEVCOD,OOH WINCHESTER DRIVES INITIALIZED FIRST 00B2 C6060BOOOO =1 560 110V FUNC,OOH SET IOPB FUNCTION BYTE = INITIALIZE 00B7 C7060COOOOOO =1 561 MOV MODIFY,OOOOH CLEAR MODIFIER (ENABLE RETRIES AND =1 562 INTERRUPT ON COMPLETION) OOBD C7061400---- R =1 563 MOV BUFSEG,INITBLSEG PUT INITIALIZATION TABLES' SEGMENT IN =1 564 IOPB DATA BUFFER POINTER OOC3 C7061200F8FF =1 565 MOV BUFOFF,-8 START INITIALIZE WITH UNIT 0 00C9 BOOO =1 566 MOV AL,OOH CLEAR UNIT COUNTER OOCB 8306120008 =1 567 INITLP: ADD BUFOFF,8 POINT TO NEXT DRIVE's INITIALIZE TABLE 0000 A2DAOO =1 568 /lOV UNIT,AL PUT UNIT INTO IOPB 0003 E8ECOO =1 569 CALL G0215 DO INITIALIZE =1 570 (RETURNS CARRY FLAG SET OR CLEAR) 0006 7214 =1 571 JC INITDN . UNIT INITIALIZED? =1 572 NO--TERMINATE WITH CARRY BIT SET 0008 40 =1 573 INC AX YES--INCREMENT UNIT COUNTER 0009 3C04 =1 574 CMP AL,4 CHECK UNIT COUNTER (CLEARS CARRY) OODB 75EE =1 575 JNZ INITLP LAST DRIVE INITIALIZED? =1 576 NO--INITIALIZE NEXT DRIVE 0000 AID800 =1 577 MOV·" AX,DEveOD YES--FLOPPIES INITIALIZED YET? OOEO 3COO =1 578 CMP AL,O 00E2 7508 =1 579 JNZ INITDN YES--INITIALIZE FUNCTION FINISHED 00E4 C70608000100 =1 580 nov DEVCOD,OI NO---INITIALIZE FLOPPY DRIVES OOEA EBDF =1 581 JrlP INITLP OOEC IF =1 582 INITDN: POP OS RESTORE REGISTERS OOED 58 =1 583 POP AX OOBE CB =1 584 RET RETURN =1 585 =1 586 INIT215 ENDP 587 588 +1 iINCLUDE(:Fl:FORI1AT.MI1D) -I 589 +1 $EJECT TITLE(FORMAT TRACK ROUTINE)

( \

A-I6 iSBC 215 Appendix A

tlCS-86 HACRO ASSEHBLER FORHAT TRACK ROUTINE 10/27/80 PAGE II

LOC OBJ LINE SOURCE

=1 590 =1 591 =1 592 FORHAT TRACK ROUTINE =1 593 =1 594 = I 595 =1 596 FHTTRK SETS UP THE IOPB FOR A FORHAT TRACK FUNCTION, AND =1 597 INVOKES THE iSBC 215 CONTROLLER TO PERFORH THE OPERATION. =1 598 =1 599 INPUT DATA: =1 600 BP + 10 =) DEVICE CODE =1 601 BP + 9 =) INTERLEAVE FACTOR =1 602 BP + 8 =) USER DATA BYTE 3 =1 603 BP + 7 =) USER DATA BYTE =1 604 BP + 6 =) USER DATA BYTE =1 605 BP + 5 =) USER DATA BYTE =1 606 BP + 4 =) TYPE OF FORHAT =[ 607 BP + 3 =) HEAD =1 608 BP + =) CYLINDER =1 609 BP =) UNIT =1 610 =1 611 OUTPUT DATA: =1 612 CARRY FLAG 0 IF TRACK FORHATTED SUCCESSFULLY =1 613 I IF NON-RECOVERABLE ERROR OCCURRED =1 614 =1 615 - INTERLEAVE FACTOR OF I IHPLIES SEQUENTIAL SECTOR NUHBERING. =1 616 - USER DATA BYTES 0 - 3 ARE REPLICATED THROUGHOUT THE DATA FIELD. =1 617 - INTERLEAVE TYPES: =1 618 00 NORMAL TRACK (ONLY FORMAT FOR FLOPPY) =1 619 40 ALTERNATE TRACK (POINTED TO BY EXACTLY ONE DEFECTIVE TRACK, =1 620 CANNOT SUBSEQUENTLY BE FORHATTED DEFECTIVE) =1 621 80 DEFECTIVE TRACK (DATA FIELD POINTS TO ALTERNATE TRACK) =1 622 - TO SET UP A POINTER TO AN ALTERNATE TRACK, SET: =1 623 USER DATA BYTE 0 ALTERNATE CYLINDER LOW BYTE =1 624 USER DATA BYTE ALTERNATE CYLINDER HIGH BYTE =1 625 USER DATA BYTE ALTERNATE HEAD =1 626 USER DATA BYTE OOH =1 627 =1 628 =1 629 PUBLIC FHT215 =1 630 ASSUHE DS:IOPBSEG =1 631 OOEF =1 632 FHT215 PROC FAR =1 633 OOEF 50 =1 634 PUSH AX SAVE REGISTERS OOFO IE =1 635 PUSH DS OOFI BB---- R =1 636 HOV AX,IOPBSEG GET POINTER TO IOPB 00F4 8EDB =1 637 HOV DS, AX 00F6 BB460A =1 638 HOV AX, [BP+IO] GET DEVICE CODE INTO IOPB 00F9 A30800 =1 639 HOV DEVCOD,AX OOFC BA4600 =1 640 HOV AL, [BP] GET UNIT NUHBER INTO lOPS OOFF A20AOO =1 641 HOV UNIT,AL 0102 BB4601 =1 642 HOV AX,[BP+I] GET CYLINDER NUHBER INTO IOPB 0105 A30EOO =1 643 HOV CYLNDR,AX OIOB 8A4603 =1 644 HOV AL,[BP+3] GET HEAD INTO IOPB OIOB A21000 =1 645 HOV HEAD,AL OIOE B92E1200 =1 646 HOV BUFOFF,BP GET POINTER TO FORHAT ARGUHENT LIST 0112 8306120004 =1 647 ADD BUFOFF,4 INTO DATA BUFFER POINTER 0117 BCI61400 =1 648 HOV BUFSEG,SS 011B C6060BOO02 =1 649 HOV FUNC,02H SET FUNCTION = FORHAT 0120 C7060COOOOOO =1 650 HOV HODIFY,OOOOH CLEAR HODIFIER (ALLOW ERROR RECOVERY =1 651 AND INTERRUPT ON COHPLETION) 0126 EB9900 =1 652 CALL G02l5 START iSBC 215 AND WAIT FOR DONE =1 653 (RETURNS CARRY FLAG SET OR CLEAR) 0129 IF =1 654 FMTDN: POP DS RESTORE REGISTERS Ol2A 58 =1 655 POP AX Ol2B CAOAOO =1 656 RET 10 RETURN (AND POP INPUT DATA OFF STACK) =1 657 , =1 658 FMT215 ENDP 659 660 +1 $INCLUDE(:Fl:RDWRT.HMD) =1 661 +1 $EJECT TITLE(READ DATA ROUTINE)

A-17 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER READ DATA ROUTINE 10/27/80 PAGE 12

LOC OBJ LINE SOURCE =1 662 ------=1 663 =1 664 READ DATA =1 665 =1 666 ------=1 667 =1 668 RD215 SETS UP THE IOPB FOR A READ OPERATION, AND =1 669 INVOKES THE iSBC 215 TO PERFORM THE OPERATION. =1 670 =1 671 INPUT DATA: =1 672 BP + 13 =) DEVICE CODE =1 673 BP + 11 =) BYTE COUNT HIGH WORD =1 674 BP + 9 =) BYTE COUNT LOW WORD =1 675 BP + 7 =) DATA BUFFER SEGMENT =1 676 BP + 5 =) DATA BUFFER OFFSET =1 677 BP + 4 =) SECTOR =1 678 BP + 3 =) HEAD =1 679 BP + I =) CYLINDER =1 680 BP =) UNIT =1 681 =1 682 OUTPUT DATA: =1 683 CARRY FLAG = 0 IF TRANSFER OCCURRED WITH NO OR RECOVERABLE ERROR =1 684 = I IF UNRECOVERABLE ERROR OCCURRED =1 685 DATA BUFFER FILLED \IITH DATA FROM DISK IF NO UNRECOVERABLE ERROR =1 686 ------=1 687 =1 688 PUBLl C RD215 =1 689 ASSUME DS:IOPBSEG =1 690 , 012E =1 691 RD215 PROC FAR =1 692 012E 50 =1 693 PUSH AX SAVE REGISTERS 012F IE =1 694 PUSH OS 0130 B8---- R =1 695 }lOV AX,IOPBSEG GET POINTER TO IOPB 0133 8ED8 =1 696 110V DStAX 0135 8B460D =1 697 }lOV AX, [BP+13] GET DEVICE CODE INTO 10 PB 0138 A30800 =1 698 110V DEVCOD,AX 013B 8A4600 =1 699 110V AL, [8P] GET UNIT INTO IOPB 013E A20AOO =1 700 110V UNIT,AL 0141 8B4601 =1 701 110V AX,[BP+l] GET CYLINDER INTO IOPB 0144 A30EOO =1 702 110V CYLNDR,AX 0147 884603 =1 703 nov AX,[BP+3] GET HEAD AND SE CTOR INTO IOPB 014A A31000 =1 704 nov WORD PTR HEAD,AX 0140 8B4605 =1 705 110V AX,[8P+5] GET DATA BUFFER POINTER INTO IOPB 0150 A31200 =1 706 ,!QV BUFOFF,AX 0153 8B4607 =1 707 110V AX,[8P+7] 0156 A31400 =1 708 }lOV BUFSEG,AX 0159 8B4609 =1 709 }lOV AX, [BP+9] GET BYTE COUNT INTO IOPB DISC A31600 =1 710 MOV WORD PTR REQCNT, AX 015F 8B460B =1 711 MOV AX,[BP+ll] 0162 A31800 =1 712 MOV WORD PTR REQCNT+2,AX 0165 C7060COOOOOO =1 713 flO V MODIFY,OOOOH CLEAR }lODIFIER (ENABLE INTERRUPT ON =1 714 COHPLETION AND RETRIES) 016B C6060BOO04 =1 715 MOV FUNC,04H SET FUNCTION = READ DATA 0170 E84FOO =1 716 CALL G0215 START FUNCTION AND WAIT FOR COHPLETION =1 717 (RETURNS CARRY FLAG SET OR CLEAR) 0173 IF =1 718 POP OS RESTORE REGISTERS 0174 58 =1 719 POP AX 0175 CADDOO =1 720 RET 13 POP PARAHETERS OFF STACK AND RETURN =1 721 =1 722 RD215 ENDP =1 723 =1 724 +1 $EJECT TITLE(WRITE DATA ROUTINE)

A-18 iSBC 215 Appendix A

MCS-86 MACRO ASSEMBLER WRITE DATA ROUTINE 10/27/80 PAGE 13

LOC OBJ LINE SOURCE

=1 725 =1 726 =1 727 WRITE DATA =1 728 =1 729 =1 730 =1 731 WRT215 SETS UP THE IOPB FOR A WRITE OPERATION, AND =1 732 INVOKES THE lSBC 215 TO PERFORM THE OPERATION. =1 733 =1 734 INPUT DATA: =1 735 BP + 13 =) DEVICE CODE =1 736 BP + 11 =) BYTE COUNT HIGH WORD =1 737 BP + 9 =) BYTE COUNT LOW WORD =1 738 BP + 7 =) DATA BUFFER SEGMENT =1 739 BP + 5 =) DATA BUFFER OFFSET =1 740 BP + 4 =) SECTOR =1 741 BP + 3 =) HEAD =1 742 BP + 1 =) CYLINDER =1 743 BP =) UNIT =1 744 =1 745 DATA 8UFFER CONTAINS INFORMATION TO BE WRITTEN TO DISK =1 746 =1 747 OUTPUT DATA: =1 748 CARRY FLAG = 0 IF TRANSFER OCCURRED W~TH NO OR RECOVERABLE ERROR =1 749 = 1 IF UNRECOVERABLE ERROR OCCURRED =1 750 =1 751 =1 752 PUBLIC WRT215 =1 753 ASSUME DS:IOPBSEG =1 754 0178 =1 755 WRT215 PROC FAR =1 756 0178 50 =1 757 PUSH AX SAVE REGISTERS 0179 IE =1 758 PUSH OS 017A B8---- R =1 759 nov AX,IOPBSEG GET POINTER TO lOPS 017D 8ED8 =1 760 nov OS ,AX 017F 8B460D =1 761 MOV AX, [BP+13] PUT DEVICE CODE IN lOPS 0182 A30800 =1 762 MOV DEVCOD,AX 0185 8A4600 -1 763 aov AL, [BP] GET UNIT INTO IOPB 0188 A20AOO =1 764 MOV UNIT,AL 018B 8B4601 =1 765 MOV AX, [BP+I] GET CYLINDER INTO IOPB 018E A30EOO =1 766 MOV CYLNDR,AX 0191 8B4603 =1 767 MOV AX, [BP+3] GET HEAD AND SECTOR INTO IOPB 0194 A31000 =1 768 nov WORD PTR HEAD,AX 0197 8B4605 =1 769 MOV AX, [BP+5] GET DATA BUFFER POINTER INTO lOPS 019A A31200 =1 770 nov BUFOFF,AX 0190 8B4607 =1 771 MOV AX,[BP+7] 01AO A31400 =1 772 MOV BUFSEG,AX 01A3 8B4609 =1 773 MOV AX, [H+9] GET BYTE COUNT INTO IOPB 01A6 A31600 =1 774 MOV WORD PTR REQCNT,AX 01A9 88460B =1 775 MOV AX, [SP+ll] OIAC A31800 =1 776 nov WORD PTR REQCNT+2,AX OlAF C7060COOOOOO =1 777 MOV MODIFY,OOOOH CLEAR MODIFIER (ENABLE INTERRUPT ON =1 778 conPLETION AND RETRIES) 0185 C6060BOO06 =1 779 MOV FUNC,06H SET FUNCTION = WRITE DATA 01BA E80500 =1 780 CALL G0215 START iSBC 215 AND WAIT FOR DONE =1 781 (RETURNS WITH CARRY SET OR CLEAR) OIBD IF =1 782 POP OS RESTORE REGISTERS 018E 58 =1 783 POP AX 01BF CAODOO =1 784 RET 13 POP PARAMETERS OFF STACK AND RETURN =1 785 =1 786 WRT215 ENDP 787 ; 788 +l $INCLUDE(:Fl:CORE.MMD) =1 789 +1 $EJECT TITLE(START FUNCTION AND WAIT FOR COMPLETION)

A-19 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER START FUNCTION AND WAIT FOR COMPLETION 10/27/80 PAGE 14

LOC OBJ LINE SOURCE

=1 790 =1 791 =1 792 START FUNCTION AND WAIT FOR COMPLETION =1 793 =1 794 =1 795 =1 796 THIS ROUTINE GIVES A CHANNEL ATTENTION (WAKE-UP) TO THE iSBC 215 AND =1 797 WAITS FOR THE FUNCTION SPECIFIED (BY THE CALLING PROCEDURE) TO FINISH. =1 798 IF AN ERROR OCCURRED, THE ERROR HANDLER IS INVOKED. =1 799 =1 800 INPUTS: =1 801 NONE =1 802 =1 803 OUTPUTS: =1 804 CARRY FLAG: = 0 IF NO ERROR OR A RECOVERABLE ERROR OCCURRED =1 805 = 1 IF UNRECOVERABLE ERROR OCCURRED. =1 806 =1 807 01C2 =1 808 G021S PROC NEAR =1 809 01C2 50 =1 810 PUSH AX SAVE REGISTERS 01C3 52 =1 811 PUSH DX 01C4 BA3506 =1 812 MOV DX,lWA GET ADDRESS OF WAKE-UP I/O PORT 01C7 BOOI =1 813 MOV AL,OIH GET WAKE-UP COMMAND BYTE 01C9 EE =1 814 OUT DX,AL GIVE WAKE-UP TO iSBC 215 01CA BR0800 =1 815 CALL WAIT215 WAIT FOR FUNCTION COMPLETE 01CD 7303 =1 816 JNC DONE ERROR? =1 817 NO--RETURN 01CF E82900 =1 818 CALL ERROR YES--CALL ERROR HANDLER (RETURNS WITH =1 819 CARRY FLAG SET OR CLEAR) 01D2 SA =1 820 DONE: POP DX RESTORE REGISTERS 01D3 58 =1 821 POP AX 01D4 C3 =1 822 RET RETURN =1 823 =1 824 G02lS ENDP =1 825 =1 826 +1 $EJECT TITLE(WAIT FOR FUNCTION COMPLETE ROUTINE)

A·20 iSBC 215 Appendix A

MCS-86 MACRO ASSEMBLER WAIT FOR FUNCTION COMPLETE ROUTINE 10/27/80 PAGE IS

LOC OBJ LINE SOURCE

=1 827 =1 828 =1 829 WAIT FOR FUNCTION COMPLETE =1 830 =1 831 =1 832 =1 833 NORMALLY, THIS WAIT ROUTINE WOULD TRAP TO THE SYSTEM DISPATCHER/ =1 834 SCHEDULER TO ALLOW ANOTHER TASK TO EXECUTE WHILE THE iSBC 215 COMPLETED =1 835 ITS FUNCTION. HOWEVER, FOR THIS EXAMPLE, THE ROUTINE SIMPLY WAITS FOR =1 836 THE INTERRUPT SERVICE ROUTINE TO LOAD THE OPERATION COMPLETE STATUS =1 837 FROM THE CIB OPERATION STATUS INTO THE DATA SEGMENT. IF AN ERROR =1 838 OCCURRED, THE STATUS IS AVAILABLE THERE FOR SUBSEQUENT PROCESSING BY =1 839 AN ERROR HANDLER. =1 840 =1 841 INPUT DATA: =1 842 OPERATION COMPLETE STATUS FROM THE CIB, COPIED INTO THE DATA SEGMENT =1 843 BY THE INTERRUPT ROUTINE = I 844 =1 845 OUTPUT DATA: =1 846 OPERATION COMPLETE BYTE CLEARED =1 847 CARRY FLAG = 0 IF NO ERROR =1 848 = I IF ERROR OCCURRED =1 849 COPY OF CIS OPERATION STATUS IN "LSTSTS" IF ERROR OCCURRED =1 850 =1 851 ( OPERATION COMPLETE BYTE AND "LSTSTS" ARE IN SEGMENT "DATASEG" =1 852 ;------=1 853 =1 854 ASSUME OS:DATASEG =1 855 0105 =1 856 WAIT215 PROC NEAR =1 857 0105 50 =1 858 PUSH AX SAVE REGISTERS 0106 53 =1 859 PUSH BX 0107 IE =1 860 PUSH DS 0108 BB---- R =1 861 l10V BX,DATASEG GET POINTER TO DATA SEGMENT OIDB 8EDS = I 862 MOV OS,BX 0100 BBFFFF =1 863 llOV BX,-I INITIALIZE INDEX REGISTER OlEO FB =1 864 STI MAKE SURE INTERRUPT CAN GET THROUGH OIEI F4 =1 865 HLT ***** WAIT FOR INTERRUPT ***** 0lE2 43 =1 866 WAITLP: INC BX GET INDEX FOR NEXT UNIT OlE3 81E30300 =1 867 AND BX,0003H MASK UPPER BITS OlE7 F607FF =1 868 TEST BYTE PTR [Bxl,OFFH OPERATION COMPLETE STATUS = DOH? =1 869 (SIGN FLAG = BIT 7 OF OP. STATUS, =1 870 TEST INSTR. CLEARS CARRY FLAG) OlEA 74F6 =1 871 JZ WAITLP STATUS <> OOH (OPERATION COMPLETE)? =1 872 NO--CHECK NEXT UNIT OIEC 7906 = I 873 JNS WAlTON YES--ERROR OCCURRED DURING FUNCTION? =1 874 NO--RETURN WITH CARRY FLAG CLEAR OIEE 8A07 =1 875 MOV AL, [BX] YES--SAVE CIB OP. STATUS IN "LSTSTS" OIFO A21800 =1 876 MOV LSTSTS,AL 0lF3 F9 =1 877 STC SET CARRY FLAG TO INDICATE ERROR 0lF4 C60700 =1 878 WAlTDN: l10V BYTE PTR [BX] ,OOH CLEAR OPERATION COMPLETE BYTE 0lF7 IF = I 879 POP DS RESTORE REGISTERS OlF8 5B =1 880 POP BX 0lF9 58 =1 881 POP AX OIFA C3 =1 882 RET RETURN =1 883 =1 884 WAIT215 ENDP 885 886 +1 SINCLUDE(:FI:ERROR.Ml1D) =1 887 +1 SEJECT TITLE(ERROR HANDLER)

A·21 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER ERROR HANDLER 10/27/80 PAGE 16

LOC OBJ LINE SOURCE

=1 888 =1 889 =1 890 ERROR HANDLER =1 891 =1 892 =1 893 =1 894 THIS ROUTINE IS SYSTEM DEPENDENT. IN THIS EXAMPLE, THE ERROR INFOR­ =1 895 MATION FROM THE CONTROLLER IS READ INTO SOFTWARE REGISTERS IN DATASEG, =1 896 WHERE IT CAN BE EXAMINED. MORE SOPHISTICATED SYSTEMS MIGHT LOG THE =1 897 ERRORS TO DETERMINE WHEN A TRACK IS GOING BAD, FOR EXAMPLE. =1 898 =1 899 - THE TRANSFER STATUS FUNCTION WILL NOT RETURN AN ERROR. =1 900 - THE UNIT NUMBER IN THE IOPB IS NOT CHANGED, SO THAT THE OPERATION COMPLETE =1 901 STATUS FOR THE TRANSFER STATUS FUNCTION WILL BE POSTED AGAINST THE SAME =1 902 UNIT AS CAUSED THE ERROR. =1 903 =1 904 INPUT DATA: =1 905 CIB OPERATION STATUS IN "LSTSTS" IN DATA SEGMENT =1 906 =1 907 OUTPUT DATA: =1 908 ERROR STATUS FROM CONTROLLER IN DATA SEGMENT =1 909 CIB OPERATION STATUS IN "LSTSTS" IN DATA SEGMENT =1 910 CARRY FLAG = 0 IF SOFT (RECOVERABLE) ERROR =1 911 = I IF HARD (UNRECOVERABLE) ERROR =1 912 =1 913 =1 914 ASSUME DS:IOPBSEG =1 915 01FB =1 916 ERROR PROC NEAR =1 917 01FB 50 =1 918 PUSH AX SAVE REGISTERS 01FC IE =1 919 PUSH DS 01FD B8---- R =1 920 MOV AX,IOPBSEG GET POINTER TO IOPB 0200 8ED8 =1 921 MOV DS,AX 0202 A11200 =1 922 MOV AX,BUFOFF SAVE IOPB DATA BUFFER POINTER 0205 50 =1 923 PUSH AX 0206 A11400 =1 924 MOV AX,BUFSEG 0209 50 =1 925 PUSH AX 020A C70612000COO =1 926 MOV BUFOFF,OFFSET ERRSTS GET POINTER TO DATA SEGMENT ERROR 0210 C7061400---- R =1 927 MOV BUFSEG,DATASEG STATUS REGISTERS 0216 C6060BOOOI =1 928 MOV FUNC,OIH SET FUNCTION = TRANSFER STATUS 021B C7060COOOOOO =1 929 MOV MODIFY,OOOOH CLEAR MODIFIER (ENABLE INTERRUPT ON =1 930 COMPLETION AND RETRIES) 0221 E89EFF =1 931 CALL G0215 START FUNCTION AND WAIT FOR COMPLETE 0224 58 =1 932 POP AX RESTORE IOPB DATA BUFFER POINTER 0225 A31400 =1 933 tlOV BUFSEG,AX 0228 58 =1 934 POP AX 0229 A31200 =1 935 MOV BUFOFF,AX 022C B8---- R =1 936 MOV AX,DATASEG GET POINTER TO DATA SEGMENT 022F 8ED8 =1 937 MOV os ,AX 0231 F8 =1 938 CLC CLEAR CARRY FLAG 0232 A01800 =1 939 MOV AL,DS:LSTSTS GET OLD (ERROR) CIB OPERATION STATUS 0235 2440 =1 940 AND AL,401l CHECK HARD ERROR BIT 0237 7401 =1 941 JZ SFTERR HARD ERROR BIT SET? =1 942 NO--LEAVE CARRY FLAG CLEAR 0239 F9 =1 943 STC YES--SET CARRY FLAG 023A IF =1 944 SFTERR: POP OS RESTORE REGISTERS 023B 58 =1 945 POP AX 023C C3 =1 946 RET =1 947 =1 948 ERROR ENDP 949 ; 950 +1 $INCLUDE(:FI:INTRPT.MMD) =1 951 +1 $EJECT TITLE(INTERRUPT SERVICE ROUTINE)

A-22 iSBC 215 Appendix A

MCS-86 MACRO ASSEMBLER INTERRUPT SERVICE ROUTINE 10/27/80 PAGE 17

LOC OBJ LINE SOURCE

=1 952 =1 953 =1 954 INTERRUPT SERVICE ROUTINE =1 955 =1 956 =1 957 =1 958 THIS ROUTINE SERVICES THE INTERRUPT GENERATED BY THE iSBC 215 UPON =1 959 OPERATION COMPLETE, SEEK COMPLETE, OR DISK PACK CHANGE. IT COPIES THE 31 960 CIB OPERATION STATUS INTO ONE OF FOUR BYTES ASSOCIATED WITH EACH OF =1 961 THESE EVENTS. IT IS ASSUMED THAT SYSTEM PROGRAMS MAKE USE OF THE =1 962 INFORMATION TO RESUME TASKS, HANDLE ERROR LOGGING/RECOVERY, AND KEEP =1 963 TRACK OF DIRECTORY INFORMATION. FOR THIS PROGRAMMING EXAMPLE, ONLY =1 964 THE OPERATION COMPLETE BYTES ARE USED. =1 965 =1 966 - THE SYSTEM INTERRUPTS ARE CONFIGURED BY EXTERNAL PROGRAMS. =1 967 =1 968 =1 969 PUBLIC INT215 =1 970 0230 =1 971 INT215 PROC FAR =1 972 0230 FB =1 973 STI ENABLE HIGHER PRIORITY INTERRUPTS 023E 50 =1 974 PUSH AX SAVE REGISTERS 023F 53 =1 975 PUSH BX 0240 52 =1 976 PUSH OX 0241 IE =1 977 PUSH OS =1 978 ASSUME DS:CIBSEG 0242 B8---- R =1 979 MOV AX,CIBSEG GET POINTER TO CIB 0245 8ED8 =1 980 nov DS,AX 0247 AOOIOO =1 981 MOV AL,OPSTS GET CIB OPERATION STATUS 024A 8ADO =1 982 MOV DL,AL SAVE IT 024C C606030000 =1 983 nov STSSEM,OOH CLEAR CIB STATUS SEMAPHORE 0251 8AD8 =1 984 MOV BL,AL MOVE IT TO INDEX REGISTER 0253 81E33000 =1 985 AND BX,0030H nASK ALL BITS EXCEPT UNIT NUMBER 0257 DIEB =1 986 SHR BX, I SHIFT UNIT NUMBER TO BITS 0 AND I 0259 DIEB =1 987 SHR BX,l 025B DIEB =1 988 SHR BX, I 0250 DIEB =1 989 SHR BX,l 025F 250600 =1 990 AND AX,0006H MASK ALL BITS EXCEPT SEEK COMPLETE =1 991 AND PACK CHANGE 0262 OlEO =1 992 SHL AX, I SHIFT LEFT TO GET OFFSET INTO PROPER =1 993 BYTE IN DATA SEGMENT 0264 0308 =1 994 ADD BX,AX COMBINE WITH UNIT IN INDEX REGISTER =1 995 ASSUME DS:DATASEG 0266 B8---- R =1 996 HOV AX,DATASEG GET POINTER TO DATA SEGMENT 0269 8ED8 =1 997 nov DS,AX 026B 8817 =1 998 !lOV [BX],DL MOVE OPERATION STATUS TO DATA SEGMENT 0260 BA5063 =1 999 MOV DX,WUA*16 GET POINTER TO I/O WAKE-UP ADDRESS 0270 B002 =1 1000 MOV AL,02H GET CLEAR INTERRUPT COMMAND BYTE 0272 EE =1 1001 OUT DX,AL OUTPUT TO iSBC 215 =1 1002 0273 IF =1 1003 POP DS RESTORE REGISTERS 0274 5A =1 1004 POP DX 0275 5B =1 1005 POP BX 0276 FA =1 1006 CLI DISABLE INTERRUPTS FOR RESTORE =1 1007 (RESTORATION OF INTERRUPT LOGIC STATE =1 1008 IS SYSTEM DEPENDENT. THIS EXAMPLE USES =1 1009 THE iSBC 86/12A CPU.) 0277 B020 =1 1010 MOV AL,20H GET END-OF-INTERRUPT COMMAND 0279 E6CO =1 lOll OUT OCOH,AL OUTPUT EOI COMMAND TO 8259 027B 58 =1 1012 POP AX 027C CF =1 1013 IRET INTERRUPT RETURN ENABLES INTERRUPTS =1 1014 =1 1015 INT215 ENDP 1016 , 1017 SBC215DRIVER ENDS END OF iSBC 215 DRIVER CODE 1018 , 1019 +1 $TITLE(SYMBOL TABLE AND CROSS REFERENCE) 1020 1021 END END OF PROGRAMMING EXAMPLE

A·23 Appendix A iSBC 215

MCS-86 MACRO ASSEMBLER SYMBOL TABLE AND CROSS REFERENCE 10/27/80 PAGE 18

XREF SYMBOL TABLE LISTING

NAME TYPE VALUE ATTRIBUTES, XREFS

??SEG SEGMENT SIZE=OOOOR PARA PUBLIC ACTCNT. V DWORD 0004R IOPBSEG 12911 ACTCYL. V WORD 0013R DATASEG 31211 ACTRD V BYTE 0015R DATASEG 31311 ACTSEC. V BYTE 0016R DATASEG 31411 BSYFLGI V BYTE OOOIR CCBSEG 7911 512 BSYFLG2 V BYTE 0009R CCBSEG 8511 BUFOFF. V WORD 0012H IOPBSEG 13711 565 567 646 647 706 770 922 926 935 BUFSEG. V WORD 0014R IOPBSEG 13811 563 648 708 772 924 927 933 CCB L FAR OOOOR CCBSEG 64 7711 454 455 CCBPTR. V DWORD 0002R SCBSEG 6411 454 455 459 CCBSEG. SEGHENT SIZE=OOIOR PARA 7511 92 460 504 505 CCWI. V BYTE OOOOH CCBSEG 7811 461 CCW2. V BYTE 0008R CCBSEG 8411 464 CRIPC L FAR 0004R CIBSEG 80 11011 462 463 476 CHIPTR. V DWORD 0002R CCBSEG 8011 462 463 CR2PC L FAR OOOER CCBSEG 86 8911 465 466 467 CH2PTR. V DWORD OOOAR CCBSEG 8611 465 466 CIB L FAR OOOOH CIESEG 10511 CIBCMD. V BYTE OOOOH CIBSEG 10611 474 CIBSEG. SEGHENT SIZE=OOIOR PARA 10311 116 471 472 978 979 CLRLP L NEAR 0078R SBC215DRIVER 48811 491 CMDSEM. V BYTE 0002R CIBSEG 10811 475 CONFIG. L FAR OOOOH USERSEG PUBLIC 377 38011 396 CYLNDR. V WORD OOOER IOPBSEG 13411 643 702 766 DATASEG SEGMENT SIZE=OOIAH PARA 26811 326 483 484 854 861 927 936 995 996 DESCYL. V WORD OOOFR DATASEG 30911 DESRD V BYTE 00 II R DATASEG 31011 DESSEC. V BYTE 0012R DATASEG 31111 DEVCOD. V WORD 0008R IOPBSEG 13011 559 577 580 639 698 762 DONE. L NEAR 0lD2H SBC215DRIVER 816 8201! ENDDAT. L FAR OOIAR DATASEG 32411 486 ENDSTK. L FAR 0040R STACK 36711 385 ERROR L NEAR OIFBR SBC215DRIVER 818 91611 948 ERRSTS. V WORD OOOCH DATASEG PUBLIC 278 30711 926 FMT215. L FAR OOEFH SBC215DRIVER PUBLIC 629 63211 658 FMTDN L NEAR 0129H SBC21SDRIVER 6S411 FUNC. V BYTE OOOBR IOPBSEG 13211 560 649 715 779 928 G021S L NEAR 0lC2H SBC21SDRIVER 569 6S2 716 780 80811 824 931 HEAD. V BYTE OOIOH IOPBSEG 13511 645 704 768 INIT215 L FAR OOA5R SBC215DRIVER PUBLIC 550 55311 586 INITBLSEG SEGMENT SIZE=003FH PARA 17011 258 563 INITDN. L NEAR OOECR SBC215DRIVER 571 579 58211 INITLP. L NEAR OOCBH SBC215DRIVER 56711 575 581 INT215. L FAR 023DH SBC215DRIVER PUBLIC 388 389 969 97111 lOIS INTRCS. V WORD 0096H SEGOOOO 35511 389 INTRIP. V WORD 0094H SEGOOOO 35411 388 INTRP,. NUMBER OOOSR 34711 352 IOPB. L FAR OOOOH IOPBSEG 112 12711 477 478 IOPBOFF V WORD 0008R CIBSEG 11211 477 IOPBSEG SEGMENT SIZE=OOIER PARA 113 12511 142 551 557 630 636 689 695 753 759 914 920 IOPBSG. V WORD OOOAR CIBSEG 11311 478 LSTSTS. V BYTE 0018R DATASEG 32011 876 939 HODIFY. V WORD OOOCH IOPBSEG 13311 561 650 713 777 929 NMRTRY. V BYTE OOl7H DATASEG 31511 OPCMP V BYTE OOOOH DATASEG PUBLIC 278 28211 OPCMPO. V BYTE OOOOH DATASEG 28311 OPCHPI. V BYTE OOOIH DATASEG 28411 OPCMP2. V BYTE 0002H DATASEG 28511 OPCMP3. V BYTE 0003H DATASEG 28611 OPSTS V BYTE OOOIH CIBSEG 10711 981 PKCHG V BYTE 0008H DATASEG PUBLIC 278 29811 PKCHGO. V BYTE 000811 DATASEG 29911 PKCHGI. V BYTE 0009R DATASEG 30011 PKCIIG2. V BYTE OOOAII DATASEG 30111 PKCHG3. v BYTE OOOBII DATASEG 30211 RD215 L FAR OllEH SBC215DRIVER PUBLIC 688 69111 722 REQCNT. V DWORD 0016H IOPBSEG 13911 710 712 774 776 RES2IS. L FAR OOOOH SBC215DRIVER PUBLIC 436 43811 526 RESDN L NEAR 009FH SBC215DRIVER 514 51911 RESLP L NEAR 009511 SBC215DRIVER S1211 516 SBC215DRIVER. SEGMENT SIZE=027DH PARA 40011 402 1017 SCB L FAR OOOOH SCBSEG 6111 SCBSEG. SEGMENT SIZE=0006H PARA ABS 5911 66 450 451 SECTOR. V BYTE OOIIH IOPBSEG 13611 SEGOOOO SEGnENT SIZE=0098H PARA ABS 34911 357 378

A-24 iSBC 215 Appendix A

HCS-86 HACRO ASSEHBLER SYMBOL TABLE AND CROSS REFERENCE 10/27/80 PAGE 19

NAHE TYPE VALUE ATTRIBUTES, XREFS

SF ERST • V BYTE OOOEH DATASEG 30811 SFTERR. L NEAR 023AII SBC215DRIVER 941 94411 SKCMP • V BYTE 000411 DATASEG PUBLIC 278 2901/ SKCMPO. V BYTE 000411 DATASEG 29111 SKCMPI. V BYTE 000511 DATASEG 2921/ SKCMP2. V BYTE 000611 DATASEG 29311 SKCMP3. V BYTE 000711 DATASEG 29411 SOC •• V BYTE 000011 SCBSEG 6211 453 STACK • SEGMENT SIZE=004011 PARA STSSEH. V BYTE 000311 CIBSEG 10911 983 UNIT •• V BYTE OOOAII IOPBSEG 13111 568 641 700 764 USERSEG SEGMENT SIZE=002211 PARA 37511 398 WAIT215 L NEAR 010511 SBC215DRIVER 815 85611 884 liAITDN. L NEAR 01F411 SBC215DRIVER 873 8781/ WAITLP. L NEAR 01E211 SBC215DRIVER 86611 871 WRT215. L FAR 017811 SBC215DRIVER PUBLIC 752 75511 786 WUA •• NUMBER 063511 5711 59 497 812 999

ASSEMBLY COHPLETE, NO ERRORS FOUND

A-25/A·26 iSBC 21S T• Winchester Disk Controller Hardware Reference Manual Manual No. 121593-002 REQUEST FOR READER'S COMMENTS

Intel Corporation attempts to provide documents that meet the needs of all Intel product users. This form lets you participate directly in the documentation process. Please restrict your comments to the usability, accuracy, readability, organization, and completeness of this document.

1. Please specify by page any errors you found in this manual.

2. Does the document cover the information you expected or required? Please make suggestions for imp rovement.

3. Is this the right type of document for your needs? Is it at the right level? What other types of documents are needed?

4. Did you have any difficulty understanding descriptions or wording? Where?

5. Please rate this document on a scale of 1 to 10 with 10 being the best rating. ______

NAME ______DATE ______

TITLE COMPANY NAME/DEPARTMENT ______ADDRESS ______

CITY ______ST ATE ___ ZIP CODE ______

Please check here if you require a written reply. 0 WE'D LIKE YOUR COMMENTS ...

This document is one of a series describing Intel products. Your comments on the back of this form will help us produce better manuals. Each reply will be carefully reviewed by the responsible person. All comments and suggestions become the property of Intel Corporation.

NO POSTAGE 111111 NECESSARY IF MAILED IN THE UNITED STATES

BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 79 BEAVERTON, OR

POSTAGE WILL BE PAID BY ADDRESSEE

Intel Corporation 5200 N.E. Elam Young Parkway Hillsboro, Oregon 97123

O.M.S. Technical Publications INTEL CORPORATION, 3065 Bowers Avenue, Santa Clara, California 95051 (408) 987·8080

Printed in U.S.A.

OM-019/3K/03831MR