Digital PDFs
Documents
Guest
Register
Log In
EK-RX01-MM-PRE2
September 1975
112 pages
Original
8.9MB
view
download
Document:
RX8/RX11 Floppy Disk System Maintenance Manual
Order Number:
EK-RX01-MM-PRE2
Revision:
000
Pages:
112
Original Filename:
OCR Text
RX8/RXIl floppy disk system maintenance manual EK-RXO1 -MM-PREZ, digital equipment corporation maynard.massachusetts 1st Edition, May 1975 2nd Printing (Rev), September 1975 h _Copyright 0 1975 by Digital Equipment Corporation The material in this manual is for informational purposes and is subject to change without notice. Digital Equipment Corporation assumes no responsibility for any errors which may appear in this manual. Printed in U.S.A. The following are trademarks of Digital Equipment Corporation, Maynard, Massachusetts: DEC FLIP CHIP DIGITAL PDP FOCAL COMPUTER LAB 1/76-15 CONTENTS Page .. .... h ----. CHAPTER 1 GENERAL INFORMATION 1.1 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3 1.3.1 1.3.2 1.3.3 1.3.3.1 1.3.3.2 1.3.3.3 1.3.3.4 1.4 1.5 1.6 INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PHYSICAL DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RX8E/RX11Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Microprogrammed Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read/Write Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Electro-Mechanical Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Power Supply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SYSTEMS COMPATIBILITY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Media ......................................... Recording Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logical Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Header Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data Field Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Track Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CRC Capability ................................. APPLICABLE INSTRUCTION MANUALS . . . . . . . . . . . . . . . . . . . . . . . . . CONFIGURATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SPECIFICATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 2 INSTALLATION AND OPERATION 2.1 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4 2.4.1 2.4.2 2.4.3 2.4.3.1 2.4.3.2 2.4.4 2.5 2.5.1 2.5.2 2.5.3 2.5.3.1 2.5.3.2 2.5.4 PURPOSE AND ORGANIZATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SITE PREPARATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cabling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ACPower ....................................... Fire and Safety Precautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ENVIRONMENTAL CONSIDERATIONS . . . . . . . . . . . . . . . . . . . . . . . . . . General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Temperature, Relative Humidity . . . . . . . . . . . . . . . . . . . . . . . . . . . . Heat Dissipation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Radiated Emissions .................................. Cleanliness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INSTALLATION ...................................... General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Unpacking and Inspection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cabinet-Mounted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Separate Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . OPERATION ........................................ Operator Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diskette Handling Practices and Precautions . . . . . . . . . . . . . . . . . . . . . . Diskette Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Short Term (Available for Immediate Use) . . . . . . . . . . . . . . . . . . . . Long Term . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Shipping Diskettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ... 111 1-1 1-1 1-2 1-2 1-2 1-2 1-3 1-3 1-3 1.10 1-10 1-10 1-11 1.11 1-12 1.12 1-12 1-13 2-1 2-1 2-1 2-1 2-1 2-2 2-2 2-2 2-3 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-6 2-6 2-8 2-8 2-8 2-12 2-12 2-12 2-12 . CONTENTS (Cont) Page CHAPTER 3 RX11 INTERFACE PROGRAMMING INFORMATION 3.1 3.2 3.2.1 3.2.2 3.2.2.1 3.2.2.2 3.2.2.3 3.2.2.4 3.3 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 3.3.7 3.3.8 3.4 3.4.1 3.4.2 3.4.3 3.5 3.6 REGISTER AND VECTOR ADDRESSES . . . . . . . . . . . . . . . . . . . . . . . . . . REGISTER DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXCS . Command and Status (1 771 70) ....................... RXDB . Data Buffer Register (1 771 72) . . . . . . . . . . . . . . . . . . . . . . . . RXTA . RX Track Address . . . . . . . . . . . . . . . . . . . . . . . . . . RXSA . RX Sector Address . . . . . . . . . . . . . . . . . . . . . . . . . . . RXDB . RX Data Buffer ............................ RXES . RX Error and Status . . . . . . . . . . . . . . . . . . . . . . . . . . FUNCTION CODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fill Buffer (000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Empty Buffer (001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write Sector (010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read Sector (01 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read Status (101) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write Sector with Deleted Data (1 IO) . . . . . . . . . . . . . . . . . . . . . . . . . Read Error Register Function (1 1 1 ) . . . . . . . . . . . . . . . . . . . . . . . . . . Power Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROGRAMMING EXAMPLES ............................... Read Data/Write Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Empty Buffer Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fill Buffer Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RESTRICTIONS AND PROGRAMMING PITFALLS . . . . . . . . . . . . . . . . . . . . ERROR RECOVERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 4 RX8E INTERFACE PROGRAMMING INFORMATION 4.1 4.2 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 4.3 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.4 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 DEVICE CODES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INSTRUCTION SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Load Command (LCD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transfer Data Register (XDR) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . STR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SDN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . INIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REGISTER DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Error Code Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXTA - RX Track Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXSA - RX Sector Address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXDB - RX Data Buffer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RX Error and Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FUNCTION CODE DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fill Buffer (000) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Empty Buffer (001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Write Sector (010) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read Sector (01 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read Status (101) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv 3-1 3-2 3-2 3-3 3-3 3-3 3-4 3-4 3-5 3-5 3-5 3-6 3-6 3-7 3-7 3-7 3-7 3-8 3-8 3-8 3-11 3-11 3-11 4-1 4-2 4-2 4-2 4-3 4-3 4-3 4-3 4-3 4-3 4-3 4-4 4-5 4-5 4-6 4-6 4-7 4-7 4-8 4-8 4-9 4-9 . . CONTENTS (Cont) Page . - 4.4.6 4.4.7 4.4.8 4.5 4.5.1 4.5.2 4.5.3 4.6 4.7 Write Deleted Data Sector (1 10) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Read Error Register Function (1 1 1) . . . . . . . . . . . . . . . . . . . . . . . . . . Power Fail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . PROGRAMMING EXAMPLES ............................... Write/Write Deleted Data/Read Functions . . . . . . . . . . . . . . . . . . . . . . . Empty Buffer Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fill Buffer Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RESTRICTIONS AND PROGRAMMING PITFALLS . . . . . . . . . . . . . . . . . . . . ERROR RECOVERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 5 THEORY OF OPERATION 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.2 5.2.1 5.2.1.1 5.2.1.2 5.2.1.3 5.2.1.4 5.2.1.5 5.2.2 5.2.2.1 5.2.2.2 5.2.2.3 5.2.2.4 5.2.2.5 5.2.2.6 5.2.3 5.2.3.1 5.2.3.2 5.2.3.3 5.2.3.4 5.2.3.5 5.2.3.6 5.2.3.7 5.2.3.8 5.2.3.9 5.2.3.10 5.2.3.1 1 5.2.3.12 5.2.4 5.2.4.1 5.2.4.2 5.2.4.3 OVERALL SYSTEM BLOCK DIAGRAM . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1 Omnibus to RX8E Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Unibus to R X l l Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Interface to pCPU Controller Signals . . . . . . . . . . . . . . . . . . . . . . . . . . 5-4 pCPU Controller to Read/Write Electronics Signals . . . . . . . . . . . . . . . . . . . 5-6 Read/Write Electronics to Drive Signals . . . . . . . . . . . . . . . . . . . . . . . . 5-7 DETAILED BLOCK DIAGRAM AND LOGIC DISCUSSION . . . . . . . . . . . . . . . . 5-8 RX8E Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-8 Device Select and IOT Decoder ......................... 5-8 Interrupt Control and Skip Logic . . . . . . . . . . . . . . . . . . . . . . . . 5-8 C Line Select Logic ............................... 5-8 Interface Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-10 Sequence and Function Control Logic . . . . . . . . . . . . . . . . . . . . . . 5-10 R X l l Interface .................................... 5-11 Address Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 .11 Data Path Selection ............................... 5-13 Interface Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Sequence and Function Control Logic . . . . . . . . . . . . . . . . . . . . . . 5-13 Interrupt Control Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Vector Address Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Microprogrammed Controller (KPU) Hardware . . . . . . . . . . . . . . . . . . . . 5-14 Control ROM and Memory Buffer . . . . . . . . . . . . . . . . . . . . . . . . 5-14 Program Counter and Field Counter . . . . . . . . . . . . . . . . . . . . . . . 5-16 Instruction Decode Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Do Pulse Generator ............................... 5-17 Branch Condition Selector and Control . . . . . . . . . . . . . . . . . . . . . 5-17 Scratch Pad Address Register and Scratch Pad . . . . . . . . . . . . . . . . . . 5-17 Counter Input Selector. Counter. and Shift Register . . . . . . . . . . . . . . . 5-17 pCPU Timing Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Sector Buffer and Address Register . . . . . . . . . . . . . . . . . . . . . . . 5-18 CRC Generator and Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18 Data Synchronizer and Separator . . . . . . . . . . . . . . . . . . . . . . . . 5-19 Output Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Microprogram Instruction Repertoire . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 DO Instruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-21 Conditional Branch ............................... 5-22 Wait Branch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 V 4-9 4-9 4-9 4-10 4-10 4-10 4-10 4-15 4-16 CONTENTS (Cont) Page 5.2.4.4 5.2.4.5 5.2.5 5.2.6 5.2.6.1 5.2.6.2 5.2.6.3 5.2.6.4 5.2.7 5.2.7.1 5.2.7.2 5.2.7.3 5.2.7.4 Open Scratch Pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Microprogram Flowchart Description . . . . . . . . . . . . . . . . . . . . . . . . . Read/Write Electronics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diskette Position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Head Read/Write Circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . Head Load Control and Solenoid Drivers .................... Stepper Motor Control and Motor Drivers . . . . . . . . . . . . . . . . . . . . Mechanical Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Drive Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spindle Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Positioning Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Head Load Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CHAPTER 6 MAINTENANCE 6.1 6.2 6.3 6.3.1 6.3.2 6.4 6.4.1 6.4.1.1 6.4.1.2 6.4.2 RECOMMENDED TOOLS AND TEST EQUIPMENT . . . . . . . . . . . . . . . . . . . . CUSTOMER CARE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . REMOVAL AND REPLACEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Module Replacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Drive Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CORRECTIVE MAINTENANCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Initialize Errors .................................... Interface Diagnostic in Memory . . . . . . . . . . . . . . . . . . . . . . . . . Diagnostics Not in Memory ........................... KM11Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22 5-23 5-23 5-36 5-36 5-36 5-36 5-36 5-38 5-39 5-39 5-39 541 . 6-1 6-1 6-2 6-2 64 64 6-4 64 6-9 6-9 ILLUSTRATIONS Figure No . Title Page . 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1-11 2- 1 2-2 2-3 24 2-5 2-6 Floppy Disk System Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Front View of the Floppy Disk System . . . . . . . . . . . . . . . . . . . . . . . . . . . M8357 Module (RX8E Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M7846 Module (RXI 1 Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Top View of the RXOl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Underside View of Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Top View of Drive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Diskette Media . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Flux Reversal Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Track Format (Each Track) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sector Format (Each Sector) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXOl ............................................ Cabinet Layout Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXOl Shipping Restraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RX8/RX11 Unpacking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . RXOl Cabinet Mounting Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cable Routing. BC05L-15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 1.10 1-11 2-2 2-3 2-5 2-7 2-8 2-9 ... . ILLUSTRATIONS (Cont) Figure No . .. . . 2-7 3- 1 3-2 3-3 3-4 3-5 3-6 3-7 3-8 4- 1 4-2 4-3 4-4 4-5 4-6 4-7 4-8 4-9 4-10 5- 1 5-2 5-3 5-4 5-5 5-6 5 -7 5 -8 5 -9 5-10 5-1 1 5-12 5-13 5-14 5-15 5-16 5-17 5-18 5-19 5-20 5-2 1 5-22 5-23 5-24 5-25 5-26 6- 1 6-2 6-3 Title Page Flexible Diskette Insertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-11 RXCS Format (RX11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 RXTA Format ( R X l l ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 RXSA Format (RX11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-3 RXDB Format (RX11) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 RXES Format ( R X l l ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 RX11 Write/Write Deleted Data/Read Example . . . . . . . . . . . . . . . . . . . . . . . 3-9 RXl 1 Empty Buffer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-10 RX11 Fill Buffer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-13 LCD Word Format (RX8E) ................................. 4-2 Command Register Format (RX8E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Error Code Register Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 RXTA Format (RX8E) ................................... 4-5 RXSA Format (RX8E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-5 RXDB Format (RX8E) ................................... 4-6 RXES Format (RX8E) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-6 RX8E Write/Write Deleted Data/Read Example . . . . . . . . . . . . . . . . . . . . . . . 4-11 RX8E Empty Buffer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-13 Fill Buffer Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-14 Bus Structure ........................................ 5-1 Omnibus to RX8E Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Unibus to R X l l Interface Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 Interface to pCPU Controller Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 pCPU Controller to Read/Write Electronics Signals . . . . . . . . . . . . . . . . . . . . . 5-6 Read/Write Electronics to Drive Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-7 RX8E Interface Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 R X l l Interface Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-12 pCPU Controller Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-15 Data and Clock Separation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-19 ID Address Mark Data Separation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-20 Initialize and Function Decode Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24 Empty and Fill Buffer Functions Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 Read Sector and Read Status Functions Flowchart . . . . . . . . . . . . . . . . . . . . . 5-26 Write Sector Function Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-28 FINDTR Subroutine Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29 FINDHD and GETDAM Subroutines Flowchart . . . . . . . . . . . . . . . . . . . . . . . 5-30 HDRCOM. BDSRT. BADHDR Routines Flowchart . . . . . . . . . . . . . . . . . . . . . 5-32 . . . . . . . . . . . . . . . 5-33 DELAY. FINDSE. WRTOS. GETWRD Subroutines Flowchart STEPHD. WAITRN. MAGCOM Subroutines Flowchart . . . . . . . . . . . . . . . . . . . 5-34 DIF and CHKRDY Subroutine Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . . 5-35 Read/Write Electronics Block Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-37 Disk Drive Mechanical System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-38 Drive Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-39 Centering Cone and Drive Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 Positioning Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-40 RXO1. Rear View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Troubleshooting Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-5 BC05L-15 Cable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-7 vii ILLUSTRATIONS (Cont) Figure No. 6-4 6-5 6-6 6-7 Title RX8 Status Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R X l l Status Routine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KM1 1 Maintenance Module Inserted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . KM11 Light and Switch Definitions for RX01 . . . . . . . . . . . . . . . . . . . . . . . . Page 6-10 6-10 6-1 1 6-12 TABLES Table No. 2- 1 4- 1 5-1 6-1 6-2 Title Interface Code/Jumper Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . Device Code Switch Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C Line Transfer Control Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Recommended Tools and Test Equipment . . . . . . . . . . . . . . . . . . . . . . . . . . M7727 Connectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Page 2-10 4-1 5-10 6-1 6-3 CHAPTER 1 G E N E R A L INFORMATION This manual presents information on the installation, operation, programming, theory of operation, and maintenance of the RX8 or R X l l Floppy Disk System. Chapter 2 (Installation and Operation) should be consulted for unpacking and installation information. Chapter 2 also provides information on the proper care of the media and should be read carefully. 1.1 INTRODUCTION The RX8 and RXI 1 Floppy Disk Systems consist of an RXOl subsystem and either an RX8E interface for a PDP-8 system or an RX11 interface for a PDP-1 1 system. The RXOl is a low cost, random access, mass memory device that stores data in fixed length blocks on a preforniatted, IBM-compatible, flexible diskette. Each drive can store and retrieve up to 256K 8-bit bytes of data (PDP-11 or PDP-8) or 128K 12-bit words (PDP-8). The RXOl consists of one or two flexible disk drives, a single read/write electronics module, a microprogrammed controller module, and a power supply, enclosed in a rack-mountable, 10-1/2 inch, self-cooled chassis. A cable is included for connection to either a PDP-8 interface module for use on the PDP-8 Omnibus or a PDP-1 1 interface for use on the PDP-1 1 Unibus. The RXOl performs implied seeks. Given an absolute sector address, the RXOl locates the desired sector and performs the indicated function, including automatic head position verification and hardware calculation and verification of the Cyclic Redundancy Check (CRC) character. The CRC character that is read and generated is compatible with IBM 3740 equipment. The RXOl connects to the M8357 Omnibus interface module, which converts the RXOl I/O bus to a PDP-8 family Omnibus structure. It controls interrupts to the CPU initiated by the RXO1, controls data interchange between the RXOl and the host CPU, and handles I/O transfers used to test status conditions. The RXOl connects to the M7846 Unibus interface module, which converts the RXOl I/O bus to a PDP-1 1 Unibus structure. It controls interrupts to the CPU initiated by the RXO1, decodes Unibus addresses for register selection, and handles data interchange between the RXOl and the host CPU. The interface modules are dc powered by their host processor. 1.2 PHYSICAL DESCRIPTION A complete system consists of the following components: M7726 controller module M7727 read/write electronics module H771 A or B power supply RXO1-CA floppy disk drive (60 Hz, max of 2) M o l - C C floppy disk drive (50 Hz, max of 2) M8357 (RX8E) or M7846 (RX11) interfaces 1-1 All components except the interface are housed in a 10-1/2 in. rack-mountable box. The power supply, M7726 module, and M7727 module are mounted above the drives. Interconnection from the RXO1 to the interface is with a 40-conductor BC05L-15 cable of standard length (15 ft). Figure 1-1 is a configuration drawing of the system, and Figure 1-2 is a front view of a dual drive system. 0 M MB357 OMNIBUS INTERFACE N I B U S ELECTRONICS CONTROLLER 1 M7846 UNIBUS INTER FAC E U N I B U S CP-1505 Figure 1-1 Floppy Disk System Configuration 1.2.1 RX8E/RXll Interfaces Interface modules M8357 (RX8E) and M7846 (RXl 1) are both quad modules. The M8357 plugs into an Omnibus slot and allows the RXOl to be used on the PDP-8 processors. The M7846 plugs into an SPC (small peripheral controller) slot with any PDP-1 1 processor. Figure 1-3 shows the M8357 module and its major sections. Figure 14 shows the M7846 module and its major sections. 1.2.2 Microprogrammed Controller The M7726 microprogrammed controller module is located in the RXOl cabinet as shown in Figure 1-5. The M7726 is hinged on the left side and lifts up for access to the M7727 read/write electronics module. 1.2.3 Read/Write Electronics The M7727 read/write electronics module is located in the RXOl cabinet as shown in Figure 1-5. 1.2.4 Electro-Mechanical Drive A maximum of two drives can be attached to the read/write electronics. The electro-mechanical drives are mounted side by side under the read/write electronics board (M7727). Figure 1-6, which is an underside view of the drive, shows the drive motor connected to the spindle by a belt. (This belt and the small pulley are different on the 50 Hz and 60 Hz units; see Paragraph 2.2.3.2 for complete input power modification requirements.) Figure 1-7 is the top view showing the electro-mechanical components of the drive. 1-2 - 7408-1 Figure 1-2 Front View of the Floppy Disk System 1.2.5 Power Supply The H771 power supply is mounted at the rear of the RXOl cabinet as shown in Figure 1-5. The H771A is rated at 60 Hz f. 1/2 Hz over a voltage range of 90-132 Vac. The H771C and Dare rated at 50 Hz f 1/2 Hz over four voltage ranges: _- } 3.5 A circuit breaker; H771C } 1.75 A circuit breaker; H771D 200-264 Vac 90-120 ‘ac 100-132 Vac Two power harnesses are provided to adapt the H771C or D to each voltage range. This is not applicable to the H771A. See Paragraph 2.2.3.2 for complete input power modification requirements. 1.3 SYSTEMS COMPATIBILITY This section describes the physical, electrical, and logical aspects of IBM compatibility as defined for data interchange with IBM system 3740 devices. 1.3.1 Media The media used on the RX8 or R X l l Floppy Disk System is compatible with the IBM 3740 family of equipment and is shown in Figure 1-8. -. The “diskette” media was designed by applying tape technology to disk architecture. This resulted in a flexible oxide-on-mylar surface encased in a plastic envelope with a hole for the read/write head, a hole for the drive spindle hub, and a hole for the hard index mark. The envelope is lined with a fiber material that cleans the diskette surface. The media is supplied to the customer preformatted and pretested. 1-3 BCO5L-15 INTERFACE CABLE CONNECTOR DEVICE CODE SWITCHES 7408-3 Figure 1-3 M8357 Module (RX8E Interface) 1-4 CONNECTOR FOR THE BCOSL-15 INTER FACE CABLE PR IOR IT Y PLUG RXll INTER FACE REGISTER Figure 1 4 M7846 Module (Rxll Interface) 1-5 _- RE EL€ 7408-8 Figure 1-5 Top View of the R x O l DRIVE MOTOR BELT I DRIVE SPINDLE PULLEY I -. 7408-5 Figure 1-6 Underside View of Drive 1-7 R EADIWR ITE HEAD HEAD LOAD ARM HELIX DRIVE 7408-7 Figure 1-7 Top View of Drive 1-8 INDEX HOLE RE GlSTRATl ON HOLE READlWRlTE HEAD APERTURE 7408-2 Figure 1-8 Diskette Media 1-9 1.3.2 Recording Scheme The recording scheme used is “double frequency.” In this method, data is recorded between bits of a constant clock stream. The clock stream consists of a continuous pattern of 1 flux reversal every 4 ps (Figure 1-9). A data “one” is indicated by an additional reversal between clocks (i.e., doubling the bit stream frequency; hence the name). A data “zero” is indicated by no flux reversal between clocks. A continuous stream of ones, shown in the bottom waveform in Figure 1-9,would appear as a “2F” bit stream, and a continuous stream of zeros, shown in the top waveform in Figure 1-9, would appear as a “1F” or fundamental frequency bit stream. o 1 o ; l 1 o l , I I o l I I I 1 o ~ o l o l oI o 1 I o l I o l , A L L ZEROS PATTERN I 0 1 0 : I I CHANGING PATTERN A L L ONES PATTERN I i l I I l l I i l 1 l ~ l l I I l l I i j l I ~ I i l i / i l l j I 4 4psec CP-1506 Figure 1-9 Flux Reversal Patterns 1.3.3 Logical Format The logical format of the Rx8 and RX11 Floppy Disk Systems is the same as that used in the IBM 3740. Data is recorded on only one side of the diskette. This surface is divided into 77 concentric circles or “tracks” numbered 0-76. Each track is divided into 26 sectors numbered 1-26 (Figure 1-10). Each sector contains two major fields: the header field and the data field (Figure 1-11). HARD INDEX CP-1507 SOFT INDEX MARK 1 BYTE c-- ROTATION Figure 1-10 Track Format (Each Track) 1.3.3.1 Header Description - The header field is broken into seven bytes (eight bits/byte) of information and is preceded by a field of zeros for synchronization. 1. Byte No. 1: ID Address Mark - This is a unique stream of flux reversals (not a string of data bits) that is decoded by the controller to identify the beginning of the header field. 2. Byte No. 2: Track Address - This is the absolute (0-1 14*) binary track address. Each sector contains track address information to identify its location on 1 of the 77 tracks. 1-10 i;: ADDRESS MARK SYNC FIELD ALL "0's" 33 BYTES HEADER FIELD DATA FIELD A m x 17 BYTES I I DATA CRC 2 BYTES 12810 BYTES OF DATA I m 61 I m ul I. 4 i-1 BYTE WRITE GATE TURN OFF FOR WRITE OF PRECEEDING DATA F I E L D LFOR WRITE OF NEXT DATA F I E L D CP-1508 C- ROTATION Figure 1-1 1 Sector Format (Each Sector) 3. Byte No. 3 - Zeros (one byte) 4. Byte No. 4: Sector Address - This is the absolute binary sector address (1-328). Each sector contains sector address information to identify its circumferential position on a track. 5. Byte No. 5 - Zeros (one byte) 6. Bytes No. 6 and 7: CRC - This is the Cyclic Redundancy Check character that is calculated for each sector from the first five header bytes using a polynomial division algorithm designed to detect the types of failures most likely to occur with "double frequency" recorded data and the floppy media. The CRC is compatible with IBM 3740 series equipment. 1.3.3.2 Data Field Description - The data field is broken into 131 bytes of information and is preceded by a field of zeros for synchronization and the header field (Figure 1-11). 1. Byte No. 1: Data or Deleted Data Address Mark - This is a unique string of flux reversals (not a string of data bits) that is decoded by the controller to identify the beginning of the data field. The deleted data mark is not used during normal operation but the RXOl can identify and write deleted data marks under program control, as required. The deleted data mark is only included in the RX8/RXl1 system to be IBM compatible. One or the other data address marks precedes each data field. 2. Bytes No. 2-1 29 - These bytes comprise the data field used to store 128 8-bit bytes of information. NOTE Partial data fields are not recorded. 3. Bytes No. 130 and 131 - These bytes comprise the CRC character that is calculated for each sector from the first 129 data field bytes using the industry standard polynomial division algorithm designed to detect the types of failures most likely to occur in double frequency recording on the floppy media. 1.3.3.3 Track Usage - In the IBM 3740 system, some tracks are commonly designated for special purposes such as error information, directories, spares, or unused tracks. The RXOl is capable of recreating any system structure through the use of special systems programs, but normal operation will make use of all the available tracks as data tracks. Any special file structures must be accomplished through user software. 1-11 1.3.3.4 CRC Capability - Each sector has a two-byte header CRC character and a two-byte data CRC character to ensure data integrity. The CRC characters are generated by the hardware during a write operation and checked to ensure all bits were read,correctly during a read operation. The CRC character is the same as that used in the IBM 3740 series of equipment. A complete description of CRC generation and checking is presented in Paragraph 5.2.3. 1.4 APPLICABLE INSTRUCTION MANUALS This manual is designed to be used in conjunction with the RXS/RXll Engineering Drawings. Other documents useful in operating and understanding the RX8/RX11 system are: PDP-I I * Processor Handbook PDP-I I Peripherals and Interfacing Handbook PDP-8 Small Computer Handbook PDP-8A UserManual 1.5 CONFIGURATION Option number designations are as follows: PDP-8 Systems RX8-AA RX8-AD RX8-BA RX8-BD Single drive system, 115 V, 60 Hz Single drive system, 50 Hz Dual drive system, 1 15 V/60 Hz Dual drive system, 50 Hz PDP- 11 Systems RXI I-AA RXl I-AC FX11-BA RXII-BD Single drive system, 115 V/60 Hz Single drive system, 50 Hz Dual drive system, 115 V/60 Hz Dual drive system, 50 Hz NOTE 50 Hz versions are available in voltages of 105,115,220,240 Vac by field pluggable conversion. See Paragraph 2.2.3.2 for complete input power modification requirements. *Appropriate handbook for the particular processor used with the system. 1-12 1.6 SPECIFICATIONS System Reliability Minimum number of revolutions per track 1 million/media (head loaded) Seek error rate 1 in l o 6 seeks Soft read error rate 1 in lo9 bits read Hard read error rate 1 in 10’’ bits read NOTE The above error rates only apply to media that is properly cared for. Seek error and soft read errors are usually attributable to random effects in the head/media interface, such as electrical noise, dirt, or dust. Both are called “soft” errors if the error is recoverable in ten additional tries or less. “Hard” errors cannot be recovered. Seek error retries should be preceded by an Initialize. Drive Performance Capacity 8-bit bytes Per diskette Per track Per sector 256,256 bytes 3,328 bytes 128 bytes Data transfer rate Diskette to controller buffer Buffer to CPU interface CPU interface to I/O bus I I I 12-bit words ~ 128,128 words 1,664 words 64 words 4 ps/data bit (250K bps) 2 ps/bit (500K bps) 18 ps/&bit byte (>50K bytes/sec) NOTE PDP-8 interface can operate in 8- or 12-bit modes under software control. The transfer rate is 23 ps per 12-bit word (>40K bytes/sec). Track-to-track move Head settle time Rotational speed Recording surfaces per disk Tracks per disk Sectors per track Recording technique Bit density Track density Average access 10 ms/track maximum 20 ms maximum 360 rpm f 2.5%; 166 ms/rev nominal 1 77 (0-76) or (0-1 148) 26 (1-26) or (0-328) Double frequency 3200 bpi at inner track 48 tracks/in. 488 ms, computed as follows: Seek Settle Rotate (77 tks/2) X 10 ms t 20 ms t (166 ms/2) = 488 ms 1-13 Environmental Characteristics Temperature RXOl, operating 15" to 32" C (59" to 90" F) ambient; maximum temperature gradient = 20" F/hr (-6.7" C/hr) RXOl, nonoperating -35" to t60" C (-30" to t140" F) Media, nonoperating -35" to +52" C ("0" to t125" F) NOTE Media temperature must be within operating temperature range before use. Relative humidity Mol, operating 25" C (77" F) maximum wet bulb 2" C (36" F) minimum dew point 20% to 80% relative humidity RXO1, nonoperating 5% to 98% relative humidity (no condensation) Media, nonoperating 10%to 80% relative humidity Magnetic field Media exposed to a magnetic field strength of 50 oersteds or greater may lose data. Interface modules Operating temperature Relative humidity Maximum wet bulb Minimum dew point 5" to 50" C (41" to 122" F) 10% to 90% 32" C (90" F) 2" C (36" F) Electrical Power consumption RXOl PDP-1 1 interface (M7846) PDP-8 interface (M8357) AC power input 3 A at 24 V (dual), 75W; 5 A at 5 V, 25 W Not more than 1.5 A at 5 Vdc Not more than 1.5 A at 5 Vdc 4 A at 115 Vac 2 A at 230 Vac __. 1-14 CHAPTER 2 INSTALLATION A N D O P E R A T I O N 2.1 PURPOSE AND ORGANIZATION This chapter provides information on installing and operating the RX8lRXll Floppy Disk System. This information is organized into four sections as outlined below. 1. Site Preparation - The planning required to make the installation site suitable for operation of the floppy disk system, including space, cabling, and power requirements, and fire and safety precautions. 2. Environmental Considerations - The specific environmental characteristics of the floppy disk systems, Le., temperature, relative humidity, air conditioning and/or heat dissipation, and cleanliness. 3. Installation - The actual step-by-step process of installing the floppy disk system from unpacking through the preliminary installation checks, power conversion techniques, and acceptance testing. 4. Operation Practices - The recommended practices for using the floppy disk system, handling the media, and shipping and storing the diskettes. 2.2 SITE PREPARATION 2.2.1 Space The RXOl is a cabinet-mountable unit that may be installed in a standard Digital Equipment Corporation cabinet. This rack-mountable version is approximately 10-1/2 in. (28 cm) high, 19 in. (48 cm) wide, and 16-1/2 in. (42 cm) deep (Figure 2-1). Provision should be made for service clearances of approximately 22 in. (56 cm) at the front and rear of the cabinet (Figure 2-2). 2.2.2 Cabling The standard interface cable provided with an RX8/RX11 (BCOSL-15) is 15 ft (4.6 m) in length, and the positioning of the RXOl in relation to the central processor should be planned to take this into consideration. The RXOl should be placed near the control console or keyboard so that the operator will have easy access to load or unload disks. The position immediately above the CPU is preferred. The ac power cord will be about 9 ft (2.7 m) long. 2.2.3 AC Power _- 2.2.3.1 Power Requirements - The RXOl is designed to use either a 60 Hz or a 50 Hz power source. The 60 Hz version (RXO1-A) will operate from 90 to 132 Vac, without modifications, and will use less than 4 A operating. The 50 Hz version (RXO1-D) will operate within four voltage ratings and will require field verification/modification to ensure that the correct voltage option is selected. The voltage ranges of 9 0 to 120 Vac and 180 to 240 Vac will use less than 4 A operating. The voltage ranges of 100-132 Vac and 200-264 Vac will use less than 2 A. Both versions of the RXOl will be required to receive the input power from an ac source (e.g., 861 power control) that is controlled by the system’s power switch. 2- 1 7 10.5" (26.7cm) 19" (48.3 cm) ( F R O N T VIEW) -(FRONT) 0 0 8 26.5" Q S E E NOTE - I N S I D E TRACK 1 c Figure 2- 1 RXO 1 2.2.3.2 Input Power Modification Requirements - The 60 Hz version of the RXO1 uses the H771 A power supply and will operate on 90 to 132 Vac, without modification. To convert to operate on a 50 Hz power source in the field, the H771A supply must be replaced with an H771C or D (Figure 1-5) and the drive motor belt and drive motor pulley must be replaced (Figure 1-6). The 50 Hz version of the R X O l uses either the H771C or D power supply. The H771C operates on a 90-120 Vac or 100-132 Vac power source. The H771D operates on a 180-240 Vac or 200-264 Vac power source. To convert the H771C to the higher voltage ranges or the H771D to the lower voltage ranges, the power harness and circuit breaker must be changed. See Figure 2-3 for appropriate power harness and circuit breaker. 2.2.4 Fire and Safety Precautions The RX8lRXl1 Floppy Disk System presents no additional fire or safety hazards to an existing computer system. Wiring should be carefully checked, however, to ensure that the capacity is adequate for the added load and for any contemplated expansion. 2.3 ENVIRONMENTAL CONSIDERATIONS 2.3.1 General The RX8lRXll is capable of efficient operation in computer environments; however, the parameters of the operating environment must be determined by the most restrictive facets of the system, which in this case are the diskettes. 2-2 h SWINGING DOOR R.H. OR L.H. \SWINGING MOUNT1N G FRAME DOOR R.H OR L.H. 18 y3; (46.35cm) R EM 0 VA BLE END P A N E L \* C A B L E ACCESS CASTER SWIVEL RADIUC RADIUS 2'3/32" (6.122 ccr n ) ( 4 ) CASTERS -'' I (54.87 cm) I I I I I I I R X O l EXTENDED FROM CABINET I I 19" (48.26 cm ) I I L - - - -. - -1- - - I CABINET 7 I 7 / , ~ ( 1 8 2 . 2 8 c m ) high ( f l o o r line t o c a b i n e t t o p ) CP-1612 Figure 2-2 Cabinet Layout Dimensions 2.3.2 Temperature, Relative Humidity The operating ambient temperature range of the diskette is 59" to 90" F (15" to 32" C) with a maximum temperature gradient of 20" F/hr (-6.7" C/hr). - The media nonoperating temperature range (storage) is increased to -30" to 125" F (-34.4" to 51.6" C), but care must be taken to ensure that the media has stabilized within the operating temperature range before use. This range will ensure that the media will not be operated above its absolute temperature limit of 125" F. 2-3 Humidity control is important in any system because static electricity can cause errors in any CPU with memory. The M o l is designed to operate efficiently within a relative humidity range of 20 to 80 percent, with a maximum wet bulb temperature of 77" F (25" C) and a maximum dew point of 36" F (2" C). 2.3.3 Heat Dissipation The heat dissipation factor for the RXOl Floppy Disk System is less than 225 Btu/hr. By adding this figure to the total heat dissipation for the other system components and then adjusting the result to compensate for such factors as the number of personnel, the heat radiation from adjoining areas, and sun exposure through windows, the approximate cooling requirements for the system can be determined. It is advisable to allow a safety margin of at least 25 percent above the maximum estimated requirements. 2.3.4 Radiated Emissions Sources of radiation, such as FM, vehicle ignitions, and radar transmitters located close to the computer system, may affect the performance of the RX8lRXll Floppy Disk System because of the possible adverse effects magnetic fields can have on diskettes. A magnetic field with an intensity of 50 oersteds or greater might destroy all or some of the information recorded on the diskette. 2.3.5 Cleanliness Although cleanliness is important in all facets of a computer system, it is particularly important in the case of moving magnetic media, such as the RXO1. Diskettes are not sealed units and are vulnerable to dirt. Such minute obstructions as dust specks or fingerprint smudges may cause data errors. Therefore, the RXO1 should not be subjected to unusually contaminated atmospheres, especially one with abrasive airborne particles. (Refer to Paragraph 2.5.2.) NOTE Removable media involve use, handling, and maintenance which are beyond DEC's direct control. DEC disclaims responsibility for performance of the equipment when operated with media not meeting DEC specifications or with media not maintained in accordance with procedures approved by DEC. DEC shall not be liable for damages to the equipment or to media resulting from such operation. 2.4 INSTALLATION 2.4. I General The RX8lRXll Floppy Disk System can be shipped in a cabinet as an integral part of a system or in a separate container. If the RXOl is shipped in a cabinet, the cabinet should be positioned in the final installation location before proceeding with the installation. 2.4.2 Tools Installation of an RX8lRXll Floppy Disk System requires no special tools or equipment. Normal hand tools are all that are necessary. However, a forklift truck or pallet handling equipment may be needed for receiving and installing a cabinet-mounted system. 2.4.3 Unpacking and Inspection 2.4.3.1 Cabinet-Mounted 1. Remove the protective covering over the cabinet. 2. Remove the restraint on the rear door latch and open the door. 2-4 3. Remove the two bolts on the cabinet’s lower side rails that attach the cabinet to the pallet. 4. Raise the four levelers at the corners of the cabinet, allowing the cabinet to roll on the casters. 5. Carefully roll the cabinet off the pallet; if a forklift is available, it should be used to lift and move the cabinet. 6. Remove the shipping restraint from the RXOl and save it for possible reuse (Figure 2-3). 7. Slide the RXOl out on the chassis slides and visually inspect for any damage, loose screws, loose wiring, etc. NOTE If any shipping damage is found, the customer should be notified at this time so he can contact the carrier, and record the information on the acceptance form. JUMPER P I SHIPPING FILTER POWER PLUGS FILTER RESTRAINT (RED) 7436-12 VOLTAGE (Vac) POWER HARNESS CIRCUIT BREAKER 90-120 100-132 180-240 200-264 70-1 0696-02 70-10696-01 70-1 0696-04 70-1 0696-03 3.5 A , 12-12301-01 3.5 A, 12-12301-01 1.75 A, 12-12301-00 1.75 A, 12-12301-00 Figure 2-3 RXOl Shipping Restraints 2-5 2.4.3.2 Separate Container 1. Open the carton (Figure 2-4) and remove the corrugated packing pieces. 2. Lift the RXOl out of the carton and remove the plastic shipping bag. 3. Remove the shipping fixtures from both sides of the RXOl and inspect for shipping damage. 4. Attach the inside tracks of the chassis slides provided in the carton to the R X O l (Figure 2-1). 5. Locating the proper holes in the cabinet rails (Figure 2-5), attach the outside tracks to the cabinet. 6. Place the tracks attached to the R X O l inside the extended cabinet tracks and slide the unit in until the tracks lock in the extended position. 7. Locate the RXOl cover in the cabinet above the unit and secure it to the cabinet rails (Figure 2-3). h 2.4.4 Installation 1. Loosen the screws securing the upper module 0117726) and swing it up on the hinge. 2. Inspect the wiring and connectors for proper routing and ensure that they are seated correctly. 3. This step is for 50 Hz versions only. Check the power configuration to ensure that the proper power harness and the correct circuit breaker are installed (Figure 2-3). 4. Connect the BCO5L15 cable to the M7726 module and route it through the back of the R X O l (Figure 2-6) to the CPU, then connect it to the interface module (RX8E, M8357; RXl1, M7846). 5. Refer to Table 2-1 for correct device code or addressing jumpers. 6. Ensure that power for the system is off. 7. Insert the interface module into the Omnibus (RX8E) or available SPC slot (RXI 1). (Refer to PDP-11 Processor Handbook, Specifications, Chapter 9.) 8. Connect the RXOl ac power cord into a switched power source. 9. Turn the power on, watching for head movement on the drive(s) during the power up, initialize phase. The head(s) shculd move ten tracks toward the center and back to track 0. 10. Perform the diagnostic in the sequence listed below for the number of passes (time) indicated. If any errors occur, refer to Chapter 6 for corrective action. RX8 or RX11 Diagnostic - 2 passes Data Reliability/Exerciser - 3 passes DECX-8 or DECX-11 - 10 minutes 2-6 h CP-1596 Figure 2-4 RX8lRXll Unpacking , COVER SCREWS, 7 C H A S S I S SLIDES , - CP-I594 Figure 2-5 R X O l Cabinet Mounting Information 2.5 OPERATION 2.5.1 Operator Control The simplicity of the RXOl precludes the necessity of operator controls and indicators. A convenient method of opening the unit for diskette insertion and removal is provided. On each drive is a simple pushbutton, which is compressed to allow the spring-loaded front cover to open. The diskette may be inserted or removed, as shown in Figure 2-7, with the label up. The front cover will automatically lock when the bar is pushed down. CAUTION The drive(s) should not be opened while they are being accessed because data may be incorrectly recorded, resulting in a CRC error when the sector is read. 2.5.2 Diskette Handling Practices and Precautions To prolong the diskette life and prevent errors when recording or reading, reasonable care should be taken when handling the media. The following handling recommendations should be followed to prevent unnecessary loss of data or interruptions of system operation. 1. Do not write on the envelope containing the diskette. Write any information on a label prior to affixing it to the diskette. 2. Paper clips should not be used on the diskette. 3. Do not use writing instruments that leave flakes, such as lead or grease pencils, on the jacket of the media. 2-8 M7727 7436-18 Figure 2-6 Cable Routing, BCOSL-15 2-9 Table 2-1 Interface Code/Jumper Configuration R X l l (M7846) BR Priority BR7 - 54-08782 BR6 - 54-08780 *BR5 - 54-08778 BR4 - 57-08776 RX8E (M8357) Device Codes 674X 677X SWl I sw2 sw3 ON ON ON ON ON ON ON OFF OFF ON ON OFF OFF OFF OFF ON OFF OFF OFF OFF ON OFF ON OFF SW4 OFF OFF OFF OFF ON ON ON ON SW5 OFF OFF ON ON OFF OFF ON ON SW6 OFF ON OFF ON OFF ON OFF ON I *Unibus Address 1771 7X A12/W18 - Removed A1 1/W17 - Removed A10/W16 -Removed A9/W15 - Removed A8/W14 - Installed A7/W13 - Installed A6/W12 - Removed A5/WIl - Removed A4/W10 - Removed A3/W9 - Removed *Vector Address (264s) V2/W1 - Installed V3/W2 - Installed V4/W3 - Removed VS/W4 - Installed V6/W5 - Removed V7/W6 - Installed V8/W7 - Removed *Standard 2-10 Figure 2-7 Flexible Diskette Insertion 4. Do not touch the disk surface exposed in the diskette slot or index hole. 5. Do not clean the disk in any manner. 6. Keep the diskette away from magnets or tools that may have become magnetized. Any disk exposed to a magnetic field may lose information. 7. Do not expose the diskette to a heat source or sunlight. 8. Always return the diskette to the envelope supplied with it to protect the disk from dust and dirt. Diskettes not being used should be stored in the file box if possible. 9. When the diskette is in use, protect the empty envelope from liquids, dust, and metallic materials. 10. Do not place heavy items on the diskette. 11. Do not store diskettes on top of computer cabinets or in places where dirt can be blown by fans into the diskette interior. 12. If a diskette has been exposed to temperatures outside of the operating range, allow 5 minutes for thermal stabilization before use. The diskette should be removed from its packaging during this time. 2-1 1 2.5.3 Diskette Storage 2.5.3.1 Short Term (Available for Immediate Use) 1. Store diskettes in their envelopes. 2. Store horizontally, in piles of ten or less. If vertical storage is necessary, the diskettes should be supported so that they do not lean or sag, but should not be subjected to compressive forces. Permanent deformation may result from improper storage. 3. Store in an environment similar to that of the operating system; at a minimum, store within the operating environment range. 2.5.3.2 Long Term - When diskettes do not need to be available for immediate use, they should be stored in their original shipping containers within the nonoperating range of the media. _- 2.5.4 Shipping Diskettes Data recorded on disks may be degraded by exposure to any sort of small magnet brought into close contact with the disk surface. If diskettes are to be shipped in the cargo hold of an aircraft, take precautions against possible exposure to magnetic sources. Because physical separation from the magnetic source is the best protection against accidental erasure of a diskette, diskettes should be packed at least 3 in. within the outer box. This separation should be adequate to protect against any magnetic sources likely to be encountered during transportation, making it generally unnecessary to ship diskettes in specially shielded boxes. When shipping, be sure to label the package: , - DO NOT EXPOSE TO PROLONGED HEAT OR SUNLIGHT. When received, the carton should be examined for damage. Deformation of the carton should alert the receiver to possible damage of the diskette. The carton should be retained, if it is intact, for storage of the diskette or for future shipping. 2-12 CHAPTER 3 R X l l INTERFACE PROGRAMMING INFORMATION This chapter describes device registers, register and vector address assignments, programming specifications, and programming examples for the RXl 1 interface. _-- All software control of the RXl 1 is performed by means of two device registers: the RXI 1 Command and Status register (RXCS) and a multipurpose R X l l Data Buffer register (RXDB). These registers have been assigned bus addresses and can be read or loaded, with certain exceptions, using any instruction referring to their addresses. The RXOl, which includes the mechanical drive(s), read/write electronics, and pCPU controller, contains all the control circuitry required for implied seeks, automatic head position verification, and calculation and verification of the CRC; it has a buffer large enough to hold one full sector of diskette data (128 8-bit bytes). Information is serially passed between the interface and the RXOI. A typical diskette write sequence, which is initiated by a user program, would occur in two steps: 1. Fill Buffer - A command to fill the buffer is moved into the RXCS. The Go bit (Paragraph 3.2.1) must be set. The program tests for Transfer Request (TR). When TR is detected, the program moves the first of 128 bytes of data to the RXDB. TR goes false while the byte is moved into the Mol. The program retests TR and moves another byte of data when TR is true. When the RXOl sector buffer is full, the Done bit will set, and an interrupt will occur if the program has enabled interrupts. 2. Write Sector - A command to write the contents of the buffer onto the disk is issued to the RXCS. Again the Go bit must be set. The program tests TR, and when TR is true, the program moves the desired sector address to the RXDB. TR goes false while the RXOl handles the sector address. The program again waits for TR and moves the desired track address to the RXDB, and again TR is negated. The RXOl locates the desired track and sector, verifies its location, and writes the contents of the sector buffer onto the diskette. When this is done, an interrupt will occur if the program has enabled interrupts. A typical diskette read occurs in just the reverse way: first locating and reading a sector into the buffer (Read Sector) and then unloading the buffer into core (Empty Buffer). In either case, the content of the buffer is not valid if Power Fail or Initialize follows a Fill Buffer or Read Sector function. 3.1 REGISTER AND VECTOR ADDRESSES The RXCS register is normally assigned Unibus address 177170, and the RXDB register is assigned Unibus address 177172. The normal BR priority level is 5, but it can be changed by insertion of a different priority plug located on the interface module. The vector address is 264. 3-1 3.2 REGISTER DESCRIPTION 3.2.1 RXCS - Command and Status (177170) Loading this register while the RXOl is not busy and with bit 0 = 1 will initiate a function as described below and indicated in Figure 3-1. Bits 0 4 write-only bits. NOT USED ERROR TR DONE F U N C T IO N GO Figure 3-1 RXCS Format ( R X l l ) Bit No. Description 0 Go - Initiates a command to R X O l . This is a write-only bit. 1-3 Function Select - These bits code one of the eight possible functions described in Paragraph 3.3 and listed below. These are write-only bits. Function Code 000 00 1 010 01 1 100 101 110 111 Fill Buffer Empty Buffer Write Sector Read Sector Not used Read Status Write Deleted Data Sector Read Error Register Unit select - This bit selects one of the two possible disks for execution of the desired function. This is a write-only bit. Done - This bit indicates the completion of a function. Done will generate an interrupt when asserted if Interrupt Enable (RXCS bit 6) is set. This is a read-only bit. Interrupt Enable - This bit is set by the program to enable an interrupt when the RXO1 has completed an operation (Done). The condition of this bit is normally determined at the time a function is initiated. This bit is cleared by Initialize and is a read/write bit. 7 Transfer Request - This bit signifies that the RX11 needs data or has data available. This is a read-only bit. 8-13 Unused 3-2 _ L . Description Bit No. R X l l Initialize This bit is set by the program to initialize the RX11 without initializing all of the devices on the Unibus. This is a write-only bit. 14 ~ CAUTION Loading the lower byte of the RXCS will also load the upper byte of the RXCS. Upon setting this bit in the RXCS, the RX11 will negate Done and move the head position mechanism of drive 1 (if two are available) to track 0. Upon completion of a successful Initialize, the RXOl will zero the Error and Status register, set Initialize Done, and set RXES bit 7 (DRV RDY) if unit 0 is ready. It will also read sector 1 of track 1 on drive 0. Error - This bit is set by the R X O l to indicate that an error has occurred during an attempt to execute a command. This read-only bit is cleared by the initiation of a new command or an Initialize (Paragraph 3 . 6 ) . 15 3.2.2 RXDB - Data Buffer Register (177 172) This register serves as a general purpose data path between the RXOl and the interface. l t may represent one of four R X O l registers according to the protocol of the function in progress (Paragraph 3 . 3 ) . This register is read/write if the R X O l is not in the process of executing a command; that is, it may be manipulated without affecting the RXOl subsystem. If the RXO1 is actively executing a command, this register will only accept data if RXCS bit 7 (TR) is set. In addition, valid data can only be read when TR is set. CAUTION Violation of protocol in manipulation of this register may cause permanent data loss. 3.2.2.1 RXTA - RX Track Address (Figure 3 - 2 ) - This register is loaded to indicate on which of the 1 148 tracks a given function is to operate. It can be addressed only under the protocol of the function in progress (Paragraph 3 . 3 ) . Bits 8 through 15 are unused and are ignored by the control. /- 15 14 13 11 12 10 09 07 08 06 05 04 0 3 02 01 00 0 L v L J J v N O T USED 0-1148 CP-1510 Figure 3 - 2 RXTA Format (RX11) 3.2.2.2 RXSA - RX Sector Address (Figure 3 - 3 ) - This register is loaded to indicate on which of the 3 2 8 sectors a given function is to operate. It can be addressed only under the protocol of the function in progress (Paragraph 3.3). Bits 8 through 15 are unused and are ignored by the control. 0 NOT 0 0 - USED 1-328 CP-1511 Figure 3-3 RXSA Format (RXI 1) 3 -3 3.2.2.3 RXDB - RX Data Buffer (Figure 3-4) - All information transferred to and from the floppy media passes through this register and is addressable only under the protocol of the function in progress (Paragraph 3.3). 15 14 13 11 12 10 09 08 07 06 05 04 03 02 01 00 v N O T USED CP-1512 Figure 3 4 RXDB Format (RX11) 3.2.2.4 RXES - RX Error and Status (Figure 3-5) - This register contains the current error and status conditions of the drive selected by bit 4 (Unit Select) of the RXCS. This read-only register can be addressed only under the protocol of the function in progress (Paragraph 3.3). The RXES is located in the RXDB upon completion of a function. iF: L Y I N O T USED DD ID PAR CRC N O T USED CP -1513 Figure 3-5 RXES Format (RX11) RXES bit assignments are: Description Bit No. 0 CRC Error - A cyclic redundancy check error was detected as information was retrieved from a data field of the diskette. The RXES is moved to the RXDB, and Error and Done are asserted. Parity Error - A parity error was detected on command or address information being transferred to the RXOl from the Unibus interface. A parity error indication means that there is a problem in the interface cable between the RXOl and the interface. Upon detection of a parity error, the current function is terminated; the RXES is moved to the RXDB, and Error and Done are asserted. 2 Initialize Done - This bit is asserted in the RXES to indicate completion of the Initialize routine which can be caused by RXOl power failure, system power failure, or programmable or Unibus Initialize. 3-5 Unused 6 Deleted Data Detected - During data recovery, the identification mark preceding the data field was decoded as a deleted data mark (Paragraph 1.3.3). .- 3 -4 Description Bit No. 7 Drive Ready - This bit is asserted if the unit currently selected exists, is properly supplied with power, has a diskette installed correctly, has its door closed, and has a diskette up to speed. NOTE 1 The Drive Ready bit is only valid when retrieved via a Read Status function or at completion of Initialize when it indicates status of drive 0. NOTE 2 If the Error bit was set in the RXCS but Error bits are not set in the RXES, then specific error conditions can be accessed via a Read Error Register function (Paragraph 3.3.7). 3.3 FUNCTION CODES Following the strict protocol of the individual function, data storage and recovery on the RXI 1 occur with careful manipulation of the RXCS and RXDB registers. The penalty for violation of protocol can be permanent data loss. A summary of the function codes is presented below: 000 00 1 010 01 1 100 101 110 111 Fill Buffer Empty Buffer Write Sector Read Sector Not used Read Status Write Deleted Data Sector Read Error Register The following paragraphs describe in detail the programming protocol associated with each function encoded and written into RXCS bits 1-3 if Done is set. _-. 3.3.1 Fill Buffer (000) This function is used to fill the RXOl buffer with 128 8-bit bytes of data from the host processor. Fill Buffer is a complete function in itself; the function ends when the buffer has been filled. The contents of the buffer can be written onto the diskette by means of a subsequent Write Sector function, or the contents can be returned to the host processor by an Empty Buffer function. RXCS bit 4 (Unit Select) does not affect this function, since no diskette drive is involved. When the command has been loaded, RXCS bit 5 (Done) is negated. When the TR bit is asserted, the first byte of the data may be loaded into the data buffer. The same TR cycle will occur as each byte of data is loaded. The RXO1 counts the bytes transferred; it will not accept less than 128 bytes and will ignore those in excess. Any read of the RXDB during the cycle of 128 transfers is ignored by the RX11. 3.3.2 Empty Buffer (001) This function is used to empty the internal buffer of the 128 data bytes loaded from a previous Read Sector or Fill Buffer command. This function will ignore RXCS bit 4 (Unit Select) and negate Done. When TR sets, the program may unload the first of 128 data bytes from the RXDB. Then the R X l l again negates TR. When TR resets, the second byte of data may be unloaded from the RXDB, which again negates TR. Alternate checks on TR and data transfers from the RXDB continue until 128 bytes of data have been moved from the RXDB. Done sets, ending the operation and initiating an interrupt if RXCS bit 6 (Interrupt Enable) is set. NOTE The Empty Buffer function does not destroy the contents of the sector buffer. 3.3.3 Write Sector (010) This function is used to locate a desired track and sector and write the sector with the contents of the internal sector buffer. The initiation of this function clears bits 0, 1, and 6 of RXES (CRC Error, Parity Error, and Deleted Data Detected) and negates Done. When TR is asserted, the program must move the desired sector address into the RXDB, which will negate TR. When TR is again asserted, the program must load the desired track address into the RXDB, which will negate TR. If the desired track is not found, the R X l l will abort the operation, move the contents of the RXES to the RXDB, set RXCS bit 15 (Error), assert Done, and initiate an interrupt if RXCS bit 6 (Interrupt Enable) is set. TR will remain negated while the RXOl attempts to locatc the desired sector. If the R X O l is unable to locate the desired sector within two diskette revolutions, the R X l l will abort the operation, move the contents of the RXES to the R D B , set RXCS bit 15 (Error), assert Done, and initiate an interrupt if RXCS bit 6 (Interrupt Enable) is set. If the desired sector is successfully located, the RX11 will write the 128 bytes stored in the internal buffer followed by a 16-bit CRC character that is automatically calculated by the RXOI. The R X l l ends the function by asserting Done and initiating an interrupt if RXCS bit 6 (Interrupt Enable) is set. NOTE 1 The contents of the sector buffer are not valid data after a power loss has been detected by the M o l . The Write Sector function, however, will be accepted as a valid function, and the random contents of the buffer will be written, followed by a valid CRC. NOTE 2 The Write Sector function does not destroy the contents of the sector buffer. 3.3.4 Read Sector (01 1) This function is used to locate a desired track and sector and transfer the contents of the data field to the pCPU controller sector buffer. The initiation of this function clears bits 0, 1, and 6 of RXES (CRC Error, Parity Error, Deleted Data Detected) and negates Done. When TR is asserted, the program must load the desired sector address into the RXDB, which will negate TR. When TR is again asserted, the program must load the desired track address into the RXDB, which will negate TR. If the desired track is not found, the R X l l will abort the operation, move the contents of the RXES to the RXDB, set RXCS bit 15 (Error), assert Done, and initiate an interrupt if RXCS bit 6 (Interrupt Enable) is set. 3 -6 - TR and Done will remain negated while the RXOl attempts to locate the desired track and sector. If the RXO1 is unable to locate the desired sector within two diskette revolutions after locating the presumably correct track, the RX11 will abort the operation, move the contents of the RXES to the RXDB, set RXCS bit 15 (Error), assert Done, and initiate an interrupt if RXCS bit 6 (Interrupt Enable) is set. If the desired sector is successfully located, the control will attempt to locate a standard data address mark or a deleted data address mark. If either mark is properly located, the control will read data from the sector into the sector buffer. If the deleted data address mark was detected, the control will assert RXES bit 6 (DD). As data enters the sector buffer, a CRC is computed, based on the data field and CRC bytes previously recorded. A non-zero residue indicates that a read error has occurred. The control sets RXES bit 0 (CRC Error) and RXCS bit 15 (Error). The RX11 ends the operation by moving the contents of the RXES to the RXDB, sets Done, and initiates an interrupt if RXCS bit 6 (Interrupt Enable) is set. 3.3.5 Read Status ( 1 01) The RXI 1 will negate RXCS bit 5 (Done) and begin to assemble the current contents of the RXES into the RXDB. RXES bit 7 (Drive Ready) will reflect the status of the drive selected by RXCS bit 4 (Unit Select) at the time the function was given. All other RXES bits will reflect the conditions created by the last command. RXES may be sampled when RXCS bit 5 (Done) is again asserted. An interrupt will occur if RXCS bit 6 (Interrupt Enable) is set. RXES bits are defined in Paragraph 3.2.2. NOTE The average time for this function is 250 ms. Excessive use of this function will result in substantially reduced throughput. 3.3.6 Write Sector with Deleted Data (1 10) This operation is identical to function 010 (Write Sector) with the exception that a deleted data address mark precedes the data field instead of a standard data address mark (Paragraph 1.3.3.2). 3.3.7 Read Error Register Function (1 11) ..-- The Read Error Register function can be used to retrieve explicit error information provided by the pCPU controller upon detection of the general error bit. The function is initiated, and bits 0-6 of the RXES are cleared. Out is asserted and Done is negated. The controller then generates the appropriate number of shift pulses to transfer the specific error code to the Interface register and completes the function by asserting Done. The Interface register can now be read and the error code interrogated to determine the type of failure that occurred (Paragraph 3.6). NOTE Care should be exercised in use of this function since, under certain conditions, erroneous error information may result (Paragraph 3.5). 3.3.8 Power Fail There is no actual function code associated with Power Fail. When the R X O l senses a loss of power, it will unload the head and abort all controller action. All status signals are invalid while power is low. When the RXOl senses the return of power, it will remove Done and begin a sequence to: 1. Move drive 1 head position mechanism to track 0. 2. Clear any active error bits. 3-7 3. Read sector 1 of track 1 of drive 0 into the sector buffer. 4. Set RXES bit 21 (Initialize Done) (Paragraph 3.2.2) after which Done is again asserted. 5. Set Drive Ready of the RXES according to the status of drive 0. There is no guarantee that information being written at the time of a power failure will be retrievable. However, all other information on the diskette will remain unaltered. A method of aborting a function is through the use of RXCS bit 14 (RX11 Initialize). Another method is through the use of the system Initialize signal that is generated by the PDP-1 1 RESET instruction, the console START key, or system power failure. 3.4 PROGRAMMING EXAMPLES 3.4.1 Read Data/Write Data Figure 3-6 presents a program for implementing a Write, Write Deleted Data, or a Read function, depending on the function code that is used. The first instructions set up the error retry counters, PTRY, CTRY, and STRY. The instruction RETRY moves the command word for a Write, Write Deleted Data, or Read into the RXCS. The set of three instructions beginning at the label I $ moves the sector address to the RX11 after Transfer Request (TR), which is bit 7, has been set. The three instructions beginning at the label 2$ move the track address to the RX11 after TR has been set. The group of instructions beginning at the label 3$ looks for the Done flag to set and checks for errors. An error condition, indicated by bit I 5 setting, is checked beginning at ERFLAG. If bit 0 is set, a CRC error has occurred, and a branch is made to CRCER. If bit 1 is set, a parity error has occurred, and a branch is made to PARER. If neither of the above bits is set, a seek error is assumed to have occurred and a branch is made to SEEKER, where the system is initialized. In the case of a Write function, the sector buffer is refilled by a JMP to FILLBUF. In the case of a Read function, a JMP is made to EMPBUFF. In each of the PAR, CRC, and SEEK routines, the command sequence is retried ten times by decrementing the respective retry counter. If an error persists after ten tries, it is a hard error. The retry counters can be set up to retry as many times as desired. NOTE A Fill Buffer function is performed before a Write function, and an Empty Buffer function is performed after a Read function. 3.4.2 Empty Buffer Function Figure 3-7 shows a program for implementing an Empty Buffer function. The first instruction sets the number of error retries to ten. The address of the memory buffer is placed in register RO, and the Empty Buffer command is placed in the RXCS. Existence of a parity error is checked starting at instruction 3$. If a parity error is detected, the Empty Buffer command is loaded again. If an error persists for ten retries, the error is considered hard. 3-8 _- .ABS 1 2 ;PROGRAMMING EXAMPLES F O R THE R X l l / R X 0 1 T L E X l B L E DISKETTE 3 I ; T H E FOLLOWING IS THE R X l l STANDARD DEVICE ADDRESS AND VECTOR ADDRESS 4 5 6 7 I kXCS.177170 RXOBsl77172 RYSA.177171 RXTA8177172 RXES.177172 177170 177172 177172 177172 177172 8 9 10 CDMHANO STATUS REGISTER D A T A BUFFER REGISTER ; SECTOR ADDRESS i REGISTER TRACU ADORLSS R E O I S T L R (TATUS REGISTER i ERRDR I 11 12 13 '1 13 16 17 18 19 20 21 22 23 24 25 26 27 28 29 i i 000000 008006 000014 012767 a12767 012767 177770 177770 ivm ;THE ~ O L L O W I N C IS A PROGRAHHING EYAMPLC OF T Y E PROTOCOL REEUIRED ; T O Y R I T C , WRITE DELETCD D A T A , O R READ A T SECTOR "8" ( T H E CONTCNTS OF ?ROGRAM ;LOCATlON IECTOR) O F TRACK " 7 " ( T H E CONTCNTS OF PROGRAM LOCATION TRACK) ; 0 0 0 3 2 0 S T A R T I rtoV 1 - 1 8 , PTRY i P A R I T Y RETRY COUNTER i CRC R C T R Y COUNTCR 000314 MOV #-10. CTRY I SEEK R E T R Y COUNTlR 0003i~ HOV 1-18, STRY ; W R I T E DELETED D A T A , OR RLAD ;WRITE, I T H R U 1 OF PROOHAH LoCATIDN COMMANO DoNTAIN THE l U N C T I o N ; BITS 4 ; ! BIT 4 1 008022 816767 JOB306 177140 1 MEANS U N I T 1 I 8 0 MEANS U N I T E ) B I T S 3 THRU 1 ; RETRY: ; 30 ;WAIT IS THE COMMAND ( 4 * W R I T E , MDV COMMAND, R X C S FOR i UNIT 14 8 IYRITE, W R I T E DELETED D A T A , 6 RLAOI W R I T E DELETED D A T A , OR R E A D ) THE TRANSFER REQUEST FLAG THEN TRANSFER THE 8ECTOR ADDRESS r-- .. 36 37 38 39 40 41 42 43 44 ;HAIT FOR THE TRANSFER REQUEST FLAG THEN T R A N S F E R THE TRACK ADDRCSI 000044 101767 008050 0 0 1 7 7 1 0 ~ 0 ~1 1 657 6~7 ; 177120 000262 211: ; i I i T E S T F R T Y E TRANSFER REQUEST LAG K O U N P l L THE TRANSFCR REOUEET fLAG SETS LOAD TRACK ADDRESS SECTOR AND TRACK ADDRESSES H A V E BCEN TRANSFERRE0 T o THE R X B l ITHE ; I W S A I T FOR THE DONE FLAG AND CYECK FOR ANY E R R O R S 45 46 47 48 49 50 51 52 54 55 56 TSTB RYCS BEE 2S novB TRACK. R X T A 177112 I IIF THE FUNCTION HAS COMPLETED SUCCESSVJLLY I N 0 E R R O R TLAG) THEN HALT I 000060 000866 000070 000074 000076 032767 a01774 00Y767 001001 080000 000040 177102 B I T I O O N E E I T ~RXCS 3Sl BEQ 3S TST RXCS BNE ERFLAG HALT ;THE ERROR FLAG IS SET 177074 ;THE CONTENTS OF THE i TEST F R T Y E OONC FLAG ; @Ea i i UNPIL THE DONE FLAG SETS TEST F O R T Y E ERROR FLAG ONE I F AN ERROR HAS DCCURED i OK COHPLCTEO nxEs I S THE ERROR STATU^ E a7 , 58 59 60 61 62 63 64 65 66 67 68 76 091 ; I F THE R X E S BITS 1 AND 0 1 0 THCN SOHE TYPE OF SECK ERROR OCCURCD 1 THEN A CRC ERROR HA8 OCCUREO ; I F THE RXES B I T 0 ; I F THE RXES B I T 1 a 1 THEN A P A R I T Y ERROR HAS OCCURED 000100 008106 0&70110 000116 052767 001414 852767 001404 000003 177064 000002 177054 LRFLAGI B I T 15, R X E S BEa SEEK B I T L2, RXES B E a CRC i i i i TEST F O R CRC AND PARITY ERRORS NDT A PARITY OR C R C C M U S T I B C A SEEK TEST F O R PARITY ERROR NOT A P A R I T Y E R R O R I H U E T 1 BE A CRC ! A PARITY ERROR HAS OCCURED ;INCREMENT AND TEST THE PARITY E R R O R RETRY COUNTER PRODRAM LOCATION ?TRY I -- IAND RETRY THE " COMMAND " U N T I L T Y E PARITY E R R O R RCCDVERS 72 73 I ;OR U N T I L THE PTRY COUNTER OVERrLOYS T O 0 ,A ;i 76 77 .- 7n 000120 000124 000126 005267 001336 000000 a00202 I N C PTRY BNC R E T R Y HALT 79 80 81 82 :A ; RETRY THE CDMHANO i H A R D P I R I T V ERROR C R C ERROR H A S DCCUHLO ;INCREMENT AND T E S T THL CRC E R R O R R E T R Y COUNTER PROGRAM LOCATION " CTRY " ~~ I 83 ;AND RETRY THE CONHAND U N T I L TWE CRC ERROR RCCOVERI 84 85 I ;OR e? U N T I L THE CTRY COUNTER OVElFLOYS T O I LIL 88 89 000130 008134 000136 005267 001332 000000 000174 CRC1 I N C CTRY BNE RETRY HALT ; T H E ERRDR FLAG IS SET 91 92 93 945 i HAEC R E T R Y CRC THE E RODMMANO ROR ;THE ERROR IS I N o T I A P A R I T Y E R R O R A M D I ITHEREFORE IT M U S T BE A SEEK E R R O R ._ I8 [ N O T I A CRC E R R O R Ob 97 on 9; 100 101 102 ; (STATE OF RXCS BITS 0 AND 1 A R C 0 ) 000140 012767 040000 A SEEK: MoV X I N I T , ;INCREMENT RXCS i INITlALlZE AND TEST THL SEEK ERROR R C T R Y C O U N T E R P R O G R A M LOCATION I ;AND RETRY THE COMMANU U N T I L THE SEEK E R R O R RECOVER8 103 104 105 106 107 108 109 177022 ; ;OR ; 000146 008152 000154 00Y267 001323 000000 000160 U N T I L THE CTRY COUNTER OVERFLOYS T O 0 I N C STRY BNE RETRY HALT i RETRY i HARD THE COHNANO SCEK C R R O R Figure 3-6 RXI 1 Writemrite Deleted Data/Read Example 3-9 STRY 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 ; T H E F O L L O W I N G IS A P H O G R A W i l N G E X A M P L E OF P R O T O C O L R E Q U I R E D T O 212767 a12700 a16767 177770 080342 000054 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 000056 176706 S E C T O R BUFFER OF 1211 11-811 B Y T E S I EENTRYI HoV r - 1 0 , PTRY E S E T U P I HOV #BUFFER, R 0 HOV COMMAND, R X C S 8 TRYS T o E M P T Y T H E $ E C T o R B U F F C R PROHGRAMS D A T A BUFFER I S S U E THE COMMAND i ;WAIT FOR A T R A N S F E R R E Q U E S T F L A G BECORE T R A N S F E R R I N G D A T A T o THE PROGRAMS ] D A T A B U F F E R F R O N THE R X 0 1 SECTOR B U I P L R ;WAIT FOR A OoNE F L A G T o I N D I C A T P THE COMPLETION I ; P R I O R T o T E S T I N G T H E ERROR F L A G Or THE EMPTY BUFFER COMMAND I 000262 000266 000270 000276 105767 001014 032767 001771 176702 030040 ELOOPI T E S T FOR T R A N S F E R R E D U E S T ILAC BNC IF T R A N S F E R R E Q U C S T F L A G 16 SET TEST FOR D O N E F L A G BEP UNTIL THE DONE F L A G SETS TSTB RXCS BNC E M P T Y B I T IDONEBIT, BEQ ELOOP 176672 RXCS I 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 THE ;EMPTY 000242 000250 000254 I T H E DONE F L A G IS SET IS A P A R I T Y L R R o R ) : T E S T FOR ANY E R R O R S ( O N L Y ERROR P O S S I B L E i 000300 000304 000306 005767 001001 000000 176664 TST R X C S ; NO E R R O R S . OK COMPLETE i I N C F E M E N T AND T E S T T H E P A R I T Y ERROR R E T R Y PRDGRAM L O C A T I O N " r T R Y R E T R Y T H E COMMAND U N T I L THE ERROR R C C o V C R S i ; O R U N T I L T H E P T R Y CUNTER OVERFLOWS T O 0 ;AND 000310 o m 1 4 a00316 005267 l00012 00135s 0~0000 IS: I N C PTRY ONE E S E T U P HALT ; RETRY T O E M P T Y THE SCCTOR i H A R D P A R I T Y ERROR BUFFER i ;THE T R A N S F E R R E D U E S T F L A G IS S E T I I T R A N S F E R D A T A T O THE PHOGRAH D A T A W F L R F R o H T H E R X 0 l SECTOR B U F F E R 000320 000324 116730 000756 176646 ITHE 0 ~ 0 ~ 2 60 0 0 0 0 0 a.70000 a00330 410000 a00332 FOLLOWING 3 P R O C H A M L O C A T I O N S A R E TUE E R R O R R E T R Y COUNTERS PTRY: CTRY: STRY: i P A R I T Y ERROR R E T R Y C O U N T E R i CRC LRROR R E T R Y COUNTER 0 0 0 i I 8 E E K ERROR RETRY C O U N T t R " COMMAND CONTAINS THE C O M M A N D T O BE ISSUED VIA THE LCD IOT ~ P R Q C R A HLOCATION i ; W R I T E 1 4 1 , W R I T E D E L E T E D D A T A ( 1 4 ) , D l READ ( 6 1 1 OR E M P T Y B U F F E R ( 2 ) I 000334 000000 COMMAND1 0 i 4, I 000340 000000 6, OR 2 (GO B I T 1 1 1 ) SECTOR " C O N T A I N S THE SECTOR ADDREOS (1 T O 3 2 O C T A L ) SECTOR! 0 i i P R o G R A H L O C A T I O N 'I TRACK " C O N T A I N S T H E TRACK ADDRESS 1 0 T O 1 1 4 O C T A L ) !PROGRAM L O C A T I O N 000336 14, " i 1 T O 32 O C T A L i B T O 1 1 4 OCTAL 000000 TRACK1 0 880040 040000 000342 a00542 000001 DONEBITn40 INITn40000 BUFFER., ,nBUFFER+200 ,END ;PROGRAM E Q U I V A L E N T S Figure 3-7 a 1 1 Empty Buffer Example 3-10 If no error is indicated, the program looks for the Transfer Request (TR) flag to set. The Error flag is retested if TR is not set. Once TR sets, a byte is moved from the R X l l sector buffer to the core locations of BUFFER. The process continues until the sector buffer is empty and the Done bit is set. 3.4.3 Fill Buffer Function Figure 3-8 presents a program to implement a Fill Buffer function. It is very similar to the Empty Buffer example. 3.5 RESTRICTIONS AND PROGRAMMING PITFALLS A set of restrictions and programming pitfalls for the FX11 is presented below. --- 1. Depending on how much data handling is done by the program between sectors, the minimum interleave of two sectors may be used, but to be safe a three-sector interleave is recommended. 2. If an error occurs and the program executes a Read Error Register function (1 1 l), a parity error may occur for that command. The error status would not be for the error in which the Read Error Register function was originally required. 3. The DRV SEL RDY bit is present only at the time of a Read Status function (101) for both drives, and after an Initialize, depending on the status of drive 0. 4. It is not required to load the Drive Select bit into the RXCS when the command is Fill Buffer (000) or Empty Buffer (010). 5. Sector Addressing: 1-26 (No sector 0) Track Addressing: 0-76 6. A power failure causing the recalibration of the drives will result in a Done condition, the same as frnishing reading a sector. However, during a power failure, RXES bit 2 (Initialize Done) will set. Checking this bit will indicate a power fail condition. 7. Excessive usage of the Read Status function (101) will result in drastically decreased throughput, because a Read Status function requires between one and two diskette revolutions or about 250 ms to complete. 3.6 ERROR RECOVERY There are two error indications given by the RXl 1 system. The Read Status function (Paragraph 3.3.5) will assemble the current contents of the RXES (Paragraph 3.2.2), which can be sampled to determine errors. The Read Error Register function (Paragraph 3.3.7) can also be used to retrieve explicit error information. The R X l l Interface register can be interrogated to determine the type of failure that occurred. A list of error codes is presented on the following page. NOTE A Read Status function is not necessary if the DRV RDY bit is not going to be interrogated, because the RXES is in the Interface register at the completion of every function. 3-1 1 octal Code 0010 0020 0030 0040 0050 0060 0070 01 10 0120 0130 0140 01 50 0160 01 70 0200 0210 Error Code Meaning Drive 0 failed to see home on Initialize. Drive 1 failed to see home on Initialize. Found home when stepping out 10 tracks for INIT. Tried to access a track greater than 77. Home was found before desired track was reached. Self-diagnostic error. Desired sector could not be found after looking at 5 2 headers (2 revolutions). More than 4 0 p s and no SEP clock seen. A preamble could not be found. Preamble found but no I/O mark found within allowable time span. CRC error on what we thought was a header. The header track address of a good header does not compare with the desired track. Too many tries for an IDAM (identifies header). Data AM not found in allotted time. CRC error on reading the sector from the disk. No code appears in the ERREG. All parity errors. 3-12 ; T H E F O L L O U I N G IS A PHOGRAMMING EXAMPLE OF THE PROTOCOL R E D U I R E D TO ; ; F I L L THE SECTOR B U F F E R W I T H 128 8 - 8 1 1 B Y T E S 111 112 113 -. 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 ; THE O A T A T O F I L L THE SECTOR B U l F C R CAN BE ASSEMBLED I N CORE I N THE E V E N AODRESSEY B Y T E S OF 128 WORDS O R I N B O T H B Y T E S OF 64 WORDS FENTRY: SETUP1 M o V 1-10, PTRY MOV # B U F F E R , HE i NOTE: 000156 000164 000170 812767 012700 816767 11777(1 000142 000342 oa0i40 176712 H O V COMMAND, I ;WAIT I ;DATA HXCS 8 TRYS T O r I L L THE SECTOR B U f F E R ; PROGRAMS DATA B U V F E R ; I S S U E T H E COMMAND i FOR A TRANSFER H E Q U E J f F L A G BETORE T R A N S F E R R I N G DATA FROM THE PROGRAMS BUFFER T O THE RX0l SECTOR B U V F L R ; W A I T FOR A DONE F L A T T O I N D I C A T E i ; P R I O R T o T E S T I N G T H E ERROR F L A G 000176 000202 000204 000212 105767 001414 052767 001771 176766 0110040 134 135 136 137 LOOP: 176756 T S T B RXCS BEO F I L L B I T L O O N E B I T , RXCS BEQ LOOP T M E C O M P L E T I O N OV THE F I L L B U F F E R COMMANO ; T E S T F O R TRANSFER REDUEST f L A G ; DEO I F TRANSFER REDUCST F L A G SET T E S T FOR THE DONE F L A G ; BED U N T I L THE OONE F L A G SETS i i ;THE OONE F L A G IS SET 1 ! T E S T F O R ANY E R R O R S ( O N L Y E R R O R P o S S I I L C 138 -. 139 140 141 142 143 144 a00214 000220 000222 005767 001001 000000 176750 146 147 " PTRY " ; O R U N T I L THE PTRY COUNTER OVERTLOWS T O 0 148 158 - ; NO C R R O R S OK COMPLETE I ;INCREMENT AN0 TEST THE P A R l T Y E R R O R R E T R Y P R O G R A M L O C A T I O N I ; A N 0 RETRY THE COMMANU U N T I L THE ERROR R E C o V K R S 145 149 150 151 152 153 154 155 156 157 T S T RXCS BNE IS HALT Is A PARITY ERROR) i 000224 000230 000232 000234 000240 005267 001355 000000 113067 000756 000076 IS: I N C PTRY BNE S E T U P HALT I I T H E TRANSFER R E Q U E S T F L A G 176732 ; R E T R Y T O F I L L THL ; WARD P A R I T Y ERROR SECTOR BUFFER IS S E T ; ;TRANSFER OATA FROM THE PROGRAMS O A T A E U r F E R T O THC R X B l SECTOR B U F F E R i FILL: MOVE @ ( R B I + , HXDB 9 P R O G R A M S D I T A B U V F E R IS 64 WORD8 I N L E N G T H BR LOOP Figure 3-8 RX11 Fill Buffer Example CHAPTER 4 RX8E I N T E R F A C E PROGRAMMING I N F O R M A T I O N -. The RX8E interface allows two modes of data transfer: 8-bit word length and 12-bit word length. In the 12-bit mode, 64 words are written in a diskette sector, thus requiring two sectors to store one page of information. The diskette capacity in this mode is 128,128 12-bit words (1,001 pages). In the 8-bit transfer mode, 128 8-bit words are written in each sector. Disk capacity is 256,256 8-bit words, which is a 33 percent increase in disk capacity over the 12-bit mode. Eight-bit mode must be used for generating IBM-compatible diskettes, since 12-bit mode does not fully pack the sectors with data. The hardware puts in the extra Os. Data transfer requests occur 23 ps after the previous request was serviced for 12-bit mode (18 ps for 8-bit mode). There is no maximum time between the transfer request from the RXOl and servicing of that request by the host processor. This allows the data transfer to and from the RXOl to be interrupted without loss of data. 4.1 DEVICE CODES The eight possible device codes that can be assigned to the interface are 70-77. These device codes define address locations of a specific device and allow up to eight RX8E interfaces to be used on a single PDP-8. These multiple device codes are also shared with other devices. Depending on what other devices are on the system, the RX8E device code can be selected to avoid conflicts. (Refer to the PDP-8 Small Computer Handbook for specific device codes.) The device codes are selected by switches according to Table 4-1. These switches control AC bits 6-8, while AC bits 3--5 are fixed at 1s. The device code is initially selected to be 70. Switches 7 and 8 are not connected and will not affect the device selection code. The switches are all located on a single DIP switch package that is located on the M8357 RX8E interface board. Table 4-1 Device Code Switch Selection - Device Code 77 76 75 74 73 72 71 70 s1 s2 s3 s4 0 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 --- - ~ ~ 1 0 0 0 1 0 4-1 x x x x x x 4.2 INSTRUCTION SET The RX8E instruction set is listed below and described in the following paragraphs. IOT Mnemonic 67x0 67x 1 67x2 6 7x3 67x4 67x5 6 7x6 67x7 LCD XDR STR SER SDN INTR INIT Description No Operation Load Command, Clear AC Transfer Data Register Skip on Transfer Request Flag, Clear Flag Skip on Error Flag, Clear Flag Skip on Done Flag, Clear Flag Enable or Disable Disk Interrupts Initialize Controller and Interface -. L Y NOT U S E D MAlNT NOT USED FUNCTION NOT USED Figure 4-1 LCD Word Format (RX8E) The command word is described in greater detail in Paragraph 4.3.1. 4.2.2 Transfer Data Register (XDR)- 67x2 With the Maintenance flip-flop cleared, this instruction operates as follows. A word is transferred between the AC and the Interface register. The direction of the transfer is governed by the RXO1, and the length of the word transferred is governed by the mode selected (8-bit or 12-bit). When Done is negated, executing this instruction indicates to the RXOl: 1. That the last data word supplied by the R X O l has been accepted by the PDP-8, and the RXOl can proceed, or 2. That the data or address word requested by the RXO1 has been provided by the PDP-8, and the R X O l can proceed. A data transfer (XDR) from the AC always leaves the AC unchanged. If operation is in 8-bit mode, AC 0-3 are transferred to the Interface register but are ignored by the RXOl. Transfers into the AC are 12-bit jam transfers when in 12-bit mode. When in 8-bit mode, the 8-bit word is ORed into AC 4-1 1, and AC 0-3 remain unchanged. When the RXOl is done, this instruction can be used to transfer the RXES status word from the Interface register to the AC. The selected mode controls this transfer as indicated above. 4-2 1 4.2.3 STR - 67x3 This instruction causes the next instruction to be skipped if the Transfer Request (TR) flag has been set by R X O l and clears the flag. The TR flag should be tested prior to transferring data or address words with the XDR instruction to ensure the data or address has been received or transferred, or after an LCD instruction to ensure the command is in the Interface register. In cases where an XDR follows an LCD, the TR flag needs to be tested only once between the two instructions. (See programming example in Paragraph 4.5.1 ,) 4.2.4 SER - 67x4 This instruction causes the next instruction to be skipped if the Error flag has been set by an error condition in the R X O l and clears the flag. An error also causes the Done flag to be set (Paragraph 4.3.6). 4.2.5 SDN - 67x5 h This instruction causes the next instruction to be skipped if the Done flag has been set by the R X O I indicating the completion of a function or detection of an error condition. If the Done flag is set, it is cleared by the SDN instruction. This flag will interrupt if interrupts are enabled. 4.2.6 INTR - 67x6 This instruction enables interrupts by the Done flag if AC 11 = 1. It disables interrupts if AC 11 = 0. 4.2.7 INIT - 67x7 The instruction initializes the R X O l by moving the head position mechanism of drive 1 (if drive 1 is available) to track 0. It reads track 1, sector 1 of drive 0. It zeros the Error and Status register and sets Done upon successful completion of Initialize. Up to 1.8 seconds may elapse before the R X O l returns to the Done state. Initialize can be generated programmably or by the Omnibus Initialize. 4.3 REGISTER DESCRIPTION Only one physical register (the Interface register) exists in the RX8E, but it may represent one of the six R X O 1 registers described in the following paragraphs, according to the protocol of the function in progress. 4.3.1 Command Register (Figure 4-2) The command is loaded into the Interface register by the LCD instruction (Paragraph 4.2.1). N O T USED MAlNT NOT FUNCTION USE0 Figure 4-2 Command Register Format (RX8E) 4-3 NOT USED The function codes (bits 8, 9, 10) are summarized below and described in Paragraph 4.4. Function Code Fill Buffer Empty Buffer Write Sector Read Sector Not used Read Status Write Deleted Data Sector Read Error Register 000 00 1 010 01 1 100 101 110 111 The DRV SEL bit (bit 7) selects one of the two drives upon which the function will be performed: AC7=O AC7=1 Select drive 0 Select drive 1 The 8/12 bit (bit 5) selects the length of the data word. AC5=0 AC5=1 Twelve-bit mode selected Eight-bit mode selected The RX8E will initialize into 12-bit mode. 4.3.2 Error Code Register (Figure 4-3) Specific error codes can be accessed by use of the Rear Error Register function (1 11) (Paragraph 4.4.7). The specific octal error codes are given in Paragraph 4.7. 00 01 02 03 04 05 06 07 00 09 10 11 ERROR CODE NOT U S E D CP-1515 Figure 4-3 Error Code Register Format The Maintenance bit @ bit)Ican be used to diagnose the RX8E interface under off-line and on-line conditions. The off-line condition exists when the BC05L-15 cable is disconnected from the RXO1; the on-line condition exists when the cable is connected to the RXOl. If an LCD IOT (I/O Transfer) is issued with AC 4 = 1, the Maintenance flip-flop is set. When the Maintenance flip-flop is set, the assertion of RUN on following XDR instructions is inhibited, and all data register transfers (XDR) are forced into the AC. The Maintenance bit allows the Interface register to be written and read for maintenance checks. The Maintenance flip-flop is cleared by Initialize or by an LCD IOT with AC 4 = 0. The following paragraphs describe more explicitly how to use the Maintenance bit in an off-line mode. The contents of the interface buffer cannot be guaranteed immediately following the first LCD IOT, which sets the Maintenance flip-flop. However, successive LCD IOTs will guarantee the contents of the Interface register. The contents of the Interface register can then be verified by using the XDR IOT to transfer those contents into the AC. 4-4 - In addition, the Maintenance flip-flop directly sets the Skip flags, which will remain set as long as the Maintenance flip-flop is set. Slupping in these flags as long as the Maintenance flip-flop is set will not clear the flags. Setting and then clearing the Maintenance flip-flop will leave the Skip flags in a set condition. The skip IOTs can then be issued to determine whether or not a large portion of the interface skip logic is working correctly. The Maintenance flip-flop can also be used to determine if the interface is capable of generating an interrupt on the Omnibus. The Maintenance flip-flop is set, thus causing the Done flag to set. The Interrupt Enable flip-flop can be set by issuing an INTR IOT with AC bit 11 = 1. The combination of Done and Interrupt Enable should generate an interrupt. The Maintenance flip-flop can also be used to test the INIT IOT. The Maintenance flip-flop is set and cleared to generate the flags, and INIT IOT is then executed. If execution of INIT IOT is internally successful, all of the flags and the Interrupt Enable flip-flop should be cleared if they were previously set. _c- In the on-line mode, use of the Maintenance bit should be restricted to writing and reading the Interface register. The same procedure described to write and read the Interface register in the off-line mode should be implemented in the on-line mode. Additional testing of the RX8E in the on-line mode should reference the appropriate circuit schematics. Exiting from the on-line Maintenance bit mode should be finalized by an initialize to the RXOl. 4.3.3 RXTA - RX Track Address (Figure 4-4) This register is loaded to indicate on which of the 77 tracks a given function i s to operate. It can be addressed only under the protocol of the function in progress (Paragraph 4.4). Bits 0 through 3 are unused and are ignored by the control. _L. 00 01 02 04 03 05 06 07 08 09 10 11 0 NOT USED 0-1148 CP-1516 Figure 4 4 RXTA Format (RX8E) --. 4.3.4 RXSA - RX Sector Address (Figure 4-5) This register is loaded to indicate on which of the 26 sectors a given function is to operate. It can be addressed only under the protocol of the function in progress (Paragraph 4.4). Bits 0 through 3 are unused and are ignored by the control. 00 < 01 02 " NOT USED 03 04 05 06 0 0 0 07 08 L I 09 - IO 11 J 1-328 CP-1517 Figure 4-5 RXSA Format (RX8E) 4-5 4.3.5 RXDB - RX Data Buffer (Figure 4-6) All information transferred to and from the floppy media passes through this register and is addressable only under the protocol of the function in progress. The length of data transfer is either 8 or 12 bits, depending on the state of bit 5 of the Command register when the LCD IOT is issued (Paragraph 4.3.1). 00 02 01 03 04 06 05 - 07 08 09 10 I1 - I A 12 B I T J 8 or 12 B I T MODE MODE ONLY CP-151.9 Figure 4-6 RXDB Format (RX8E) 4.3.6 RX Error and Status (Figure 4-7) The RXES contains the current error and status conditions of the selected drive. This read-only register can be accessed by the Read Status function (101). The RXES is also available in the Interface register upon completion of any function. The RXES is accessed by the XDR instruction. The meaning of the error bits is given below. 00 01 02 03 04 05 E: DD 06 07 08 09 IO 11 I D PAR CRC - NOT U S E D NOT USED CP-I519 Figure 4-7 RXES Format (RX8E) Bit No. 11 Description CRC Error - The cyclic redundancy check at the end of the header or data field has indicated an error. The header or data must be considered invalid; it is suggested that the data transfer be retried up to ten times, as most data errors are recoverable (soft). (See Chapter 6). 10 Parity Error - When status bit 10 = 1, a parity error has been detected on command and address information being transferred to the RXOl pCPU controller from the RX8E interface. Upon detection of a parity error, the current function is terminated, the RXES status word is moved to the Interface register, and the Error and Done flags are set. The function can be retried to determine if the parity error is a soft or hard error. A parity error indication means that there is a problem in the interface cable between the R X O l and the interface. 9 Initialize Done - This bit indicates completion of the Initialize routine. It can be asserted due to R X O l power failure, system power failure, or programmable or bus Initialize. This bit is not available within the RXES from a Read Status function. 4-6 - Description Bit No. 5 Deleted Data (DD) - In the course of reading data, a deleted data mark was detected in the identification field. The data following will be collected and transferred normally, as the deleted data mark has no further significance within the RXO1. Any alteration of files or actual deletion of data due to this mark must be accomplished by user software. This bit will be set if a successful or unsuccessful Write Deleted Data function is performed. 4 Drive Ready - This bit is asserted if the unit currently selected exists, is properly supplied with power, has a diskette installed properly, has its door closed, and has a diskette up to speed. NOTE 1 This bit is only valid for either drive when retrieved via a Read Status function or for drive 0 upon completion of an Initialize. NOTE 2 If the Error bit was set in the RXCS but Error bits are not set in the RXES, then specific error conditions can be accessed via a Read Error Register function. 4.4 FUNCTION CODE DESCRIPTION RX8E functions are initiated by means of the Load Command IOT (LCD). The Done flag should be tested and cleared with the SDN instruction in order to verify that the RX8E is in the Done state prior to issuing the LCD instruction. Upon receiving an LCD instruction while in the Done state, the RX8E enters the Not Done state while the command is decoded. Each of the eight functions summarized below requires that a strict protocol be followed for the successful transfer of data, status, and address information. The protocol for each function is described in the following sections, and a summary table is presented below. Octal 8 AC 9 10 Function 0 2 4 6 10 12 14 16 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Fill Buffer Empty Buffer Write Sector Read Sector Not Used Read Status Write Deleted Data Sector Read Error Register NOTE AC bit 11 is assumed to be 0 in the above octal codes, since ACbit 1 1 c a n b e O o r 1. 4.4.1 Fill Buffer (000) This function is used to load the RXOl sector buffer from the host processor with 64 12-bit words if in 12-bit mode or 128 8-bit words if in 8-bit mode. This instruction only loads the sector buffer. In order to complete the transfer to the diskette, another function, Write Sector, must be performed. The buffer may also be read back by means of the Empty Buffer function in order to verify the data. 4-7 Upon decoding the Fill Buffer function, the RXOl will set the Transfer Request (TR) flag, signaling a request for the first data word. The TR flag must be tested and cleared by the host processor with the STR instructions prior to each successive XDR IOT (Paragraph 4.2.3). The data word can then be transferred to the Interface register by means of the XDR IOT. The RXOl next moves the data word from the Interface register to the sector buffer and sets the TR flag as a request for the next data word. The sequence above is repeated until the sector buffer has been loaded (64 data transfers for 12-bit mode or 128 data transfers for 8-bit mode). After the 64th (or 128th) word has been loaded into the sector buffer, the RXES is moved to the Interface register, and the RXOl sets the Done flag to indicate the completion of the function. It is, therefore, unnecessary for the host processor to keep a count of the data transfers. Any XDR commands after Done is set will result in the RXES status word being loaded in the AC. The sector buffer must be completely loaded before the RX8E will set Done and recognize a new command. An interrupt would now occur if Interrupt Enable were set. 4.4.2 Empty Buffer (001) This function moves the contents of the sector buffer to the host processor. Upon decoding this function, RXES bits 10 and 11 (Parity Error and CRC Error) are cleared, and the TR flag is set with the first data word in the Interface register. This TR flag signifies the request for a data transfer from the RX8E to the host processor. The flag must be tested and cleared, then the word can be moved to the AC by an XDR command. The direction of the transfer for an XDR command is controlled by the mol. The TR flag is set again with the next word in the Interface register. The above sequence is repeated until 6 4 words (128 bytes if 8-bit mode) have been transferred, thus emptying the sector buffer. The Done flag is then set after the RXES is moved in the Interface register to indicate the end of the function. An interrupt would now occur if Interrupt Enable were set. NOTE The Empty Buffer function does not destroy the contents of the sector buffer. 4.4.3 Write Sector (010) This function transfers the contents of the sector buffer to a specific track and sector on the diskette. Upon decoding this function, the RX8E clears bits 10 and 11 (Parity Error and CRC Error) of the RXES and sets the TR flag, signifying a request for the sector address. The TR flag must be tested and cleared before the binary sector address can be loaded into the Interface register by means of the XDR command. The sector address must be within the limits 1-328. The TR flag is set, signifying a request for the track address. The TR flag must be tested and cleared, then the binary track address may be loaded into the Interface register by means of the XDR command. The track address must be within the limits 0-1 148. The RXOl tests the supplied track address to determine if it is within the allowable limits. If it is not, the RXES is moved to the Interface register, the Error and Done flags are set, and the function is terminated. If the track address is legal, the RXOl moves the head of the selected drive to the selected track, locates the requested sector, transfers the contents of the sector buffer and a CRC character to that sector, and sets Done. Any errors encountered in the seek operation will cause the function to cease, the RXES to be loaded into the Interface register, and the Error and Done flags to be set. If no errors are encountered, the RXES is loaded into the Interface register and only the Done flag is set. NOTE The Write Sector function does not destroy the contents of the sector buffer. 4-8 I 4.4.4 Read Sector (01 1) This function moves a sector of data from a specified track and sector to the sector buffer. Upon decoding this function, the RXSE clears RXES bits 5, 10, 11 (Deleted Data, Parity Error, CRC Error) and sets the TR flag, signifying the request for the sector address. The flag must be tested and cleared. The sector address is then loaded into the Interface register by means of the XDR command. The TR flag is set, signifying a request for the track address. The flag is tested and cleared by the host processor, and the track address is then loaded into the Interface register by an XDR command. The legality of the track address is checked by the RXO1. If illegal, the Error and Done flags are set with the RXES moved to the Interface register, and the function is terminated. Otherwise, the RXOl moves the head to the specified track, locates the specified sector, transfers the data to the sector buffer, computes and checks CRC for the data. If no errors occur, the Done flag is set with the RXES in the Interface register. If an error occurs anytime during the execution of the function, the function is terminated by setting the Error and Done flags with RXES in the Interface register. A detection of CRC error results in RXES bit 11 being set. If a deleted data mark was encountered at the beginning of the desired data field, RXES bit 5 is set. 4.4.5 Read Status (101) Upon decoding this function, the RXOl moves the RXES to the RXSE Interface register and sets the Done flag. The RXES can then be read by the Transfer Data Register command (XDR). The bits are defined in Paragraph 4.3.6. NOTE The average time for this function is 250 ms. Excessive use of this function will result in substantially reduced throughput. 4.4.6 Write Deleted Data Sector (1 10) This function is identical to the Write Data function except that a deleted data mark is written prior to the data field rather than the normal data mark (Paragraph 1.3.3.2). RXES bit 5 (Deleted Data) will be set in the RXSE Interface register upon completion of the function. 4.4.7 Read Error Register Function (1 11) The Read Error Register function can be used to retrieve explicit error information upon detection of the Error flag. Upon receiving this function, the RXOl moves an error code to the Interface register and sets Done. The Interface register can then be read via an XDR command and the code interrogated to determine which type of failure occurred (Paragraph 4.7). NOTE Care should be exercised in use of this function because, under certain conditions, erroneous error information may result (Paragraph 4.6). 4.4.8 Power Fail There is no actual function code associated with Power Fail. When the RXOl senses a loss of power, it will unload the head and abort all controller action. All status signals are invalid while power is low. When the RXOl senses the return of power, it will remove Done and begin a sequence to: 1. Move drive 1 head position mechanism to track 0. 2. Clear any active error bits. 3. Read sector 1 of track 1 of drive 0. 4. Set Initialize Done bit of the RXES, after which Done is again asserted. 4-9 There is no guarantee that information being written at the time of a power failure will be retrievable. However, all other information on the diskette will remain unaltered. A method of aborting an incomplete function is with the INIT IOT (Paragraph 4.2.7). 4.5 PROGRAMMING EXAMPLES 4.5.1 Writewrite Deleted Data/Read Functions Figure 4-8 presents a program for implementing a Write, Write Deleted Data, or a Read function with interrupts turned off (IOF). The first three steps preset the PTRY, CTRY, and STRY retry counters, which are set at ten retries but can be changed to any number. Starting at RETRY, the program tests for 8- or 12-bit mode, type of function, and drive. Once the command is loaded, the program waits in a loop for the controller to respond with Transfer Request (TR). When TR is set, the sector address is loaded and the AC is cleared. The program loops while waiting for the controller to respond with another TR. When TR is reset, the track address is loaded, and the AC is cleared again. The program loops to wait for the Done condition. When the Done flag is set, the program checks for an error condition, indicated by the Error flag being set. If the AC = 0000, then the error is a seek error; if bit 10 of the AC is set, the error is a parity error; and if bit 11 of the AC is set, the error is a CRC error. Error status from the RXES is saved and tested to determine the error (Paragraph 4.3.6). The RXES will not include the Select Drive Ready bit. If a parity error is detected, the program increments and tests the PTRY retry counter. If a parity error persists after ten tries, it is considered a hard error. If ten retries have not occurred, a branch is made to RETRY and the sequence repeated. If the Parity Error bit of the RXES is not set, then the program tests to see if the CRC Error bit is set. If a CRC error is detected, the program increments and tests the CTRY retry counter. If a CRC error persists after ten retries, it is considered a hard error. If ten retries have not occurred, a branch is made to RETRY and the sequence repeated. A seek error is assumed if neither a CRC nor a parity error is detected. An Initialize (INIT) instruction is performed (Paragraph 4.2.7). During a Write or Write Deleted Data function, the sector buffer must be refilled, because INIT will cause sector 1 of track 1 of drive 0 to be read, which will destroy the previous contents of the sector buffer. The instruction sequence for a Fill Buffer function is not included in Figure 4-8, but is presented in Figure 4-10. After the system has been initialized, the program increments and tests the STRY retry counter. If a seek error persists after ten tries, it is considered a hard error. If ten retries have not occurred, a branch is made to RETRY and the sequence repeated. 4.5.2 Empty Buffer Function Figure 4-9 shows a program for implementing an Empty Buffer function with interrupts turned off (IOF). The first instruction sets the number of retries at ten. A 2 is set in the AC to indicate an Empty Buffer command, and the command is loaded. When TR is set, the program jumps to EMPTY to transfer a word to the BUFFER location. A jump is made back to loop to wait for another TR. This process continues until either 6 4 words or 128 bytes have been emptied from the sector buffer. When Done is set, the program tests to see if the Error bit is set. If the Error bit is set, the program retries ten times. If the error persists, a hard parity error is assumed, indicating a problem in the interface cable. 4.5.3 Fill Buffer Function Figure 4-10 presents a program to implement a Fill Buffer function. It is very similar to the Empty Buffer example. 4-10 /PROGRAMMING EXAMPLES FOR THE R X B l R X 0 1 F L E X I B L E D I S K E T T E / FOLLOWING ARE R X O l IOT CODE D E F I N I T I O N S / / T H E STANDARD I O T D E V I C E CODE IS 6 7 0 /THE 6 7 8 9 10 / 6701 6702 6703 6704 6705 6706 6707 11 12 13 14 15 16 ;THE = 0 INTCRRUPT ENABLE OFF/ ( A C 1 1 MEANS ON / I O T T O l N l T l Z L I A E THE R X 8 / R X 0 1 SUBSYSTEM WRITE DELETED DATA, OR R E A U AT SECTOR " S " SECTOR) OF TRACK "1" ( T H E CONTENTS O f ( T H C CONTENTS OF P R O G R A M PROGRAM LOCATION TRACK) / I N 8 O R 1 2 B I T MODE I 0200 0201 0202 0203 0204 8205 1254 329s 1254 3256 1234 3297 ;TART, TAD K f l l 0 DCA PTRY TAD Kfl10 DCA CTRY TAD KM10 DCA STRY / .I0 / P A R I T Y RETRY COUNTER /CRC R E T R Y COUNTER /SEEK RETRY COUNTER / /WRITE, Y R I T E DELETED DATA, OR REA0 I 0206 02117 1260 1261 0218 0211 1262 6701 RETRY, TAD MODE TAD COMMANO 1 0 IC lP-BIT, 1 0 0 IC @ - B I T I 4 I F WRITE, 1 4 IC WRITE DELETED /DATA, OR 6 I F READ I 0 i t UNIT 0. 2 0 I F UNIT I TAD U N I T LCD / I O T 6 7 x 1 T O LOAD THE COMMANO 37 / 38 39 40 41 42 43 44 45 46 /WAIT FOR T H E TRANSFER REQUEST FLAG THEN TRANSFER T H E SECTOR ADDRESS 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 1 (AC) / 0212 0213 0214 0213 0216 6703 5212 1263 6702 7200 STR JUP / I O T 67x3 TO / W A I T T O R TRANSFER REOUEST FLAG / 1 T O 3i?(OCTAL) / I O T T O LOAD SECTOR /CLA BECAUSE I O T XDR DOESN'T ,-1 TAD SECTOR XDR CLA ;WAIT 47 h / FOLLOWING IS A PROGRAMMING EXAflPLC OF T H E PROTOCOL REPUIRED /LOCATION 22 55 36 T O S K I P ON AN E R R O R - F L A i /io1 T O S K i P ON THE DONE F i A E WRITE, /TO / 18 19 20 21 33 34 /IOT / 17 23 24 25 26 27 28 29 30 31 32 / I O T T O LOA0 THE COMMAND, ( A C ) IS THC COMMAND /IOT T O LOAD OR R E A D THE TRANSFER REGISTER / I O T T O S K I P ON A TRANSFER RCPUEST FLAG LC0.6701 XDR16702 STR.6703 SERa6704 SONS6705 1NTRn6706 INlT;r6707 FOR THE TRANSFER REDUEST FLAG THEN TRANSFER T H E TRACK ADDRESS / / I O T 6 7 x 3 TO / W A I T FOR TRANSFER REQUEST I 0 TD 114(0CTALI / I O T T O LOAU TRACK /CLA BECAUSE I O T X D R D O E S N ' T STR JMP ,-I 0221 0222 0223 TAO TRACK 1264 6702 7200 XDR CLA / T H E SECTOR AND TRACK ADDRESSES HAVE BEEN W N S F E R R L D T O THE R X 0 1 V I A THE X D R I O T / / W A I T FOR THE DONE FLAG AND CHECK FOR ANY ERRORS / /IF , 0224 0225 0226 0227 THE FUNCTION HAS COMPLETED SUCCESSFULLY ( N O ERROR TLAG) THEN HALT 6705 3224 6704 7402 SDN / I O T 67x3 TU /WAIT r O R DONE F L A Q / I O T 6 7 x 4 SANPLES E R R O R FLAG I OK COHPLLTED JMP ,-I SER HLT I I t SET /THE ERROR FLAG / /THE CONTENTS OF THE TRAYSFER REGISTER IS THE ERROR S T A T U S 67 I 68 69 70 71 72 73 74 75 76 77 78 79 80 ;IF /IF /IF . TRANSFER R E G I S T E R B I T S 1 0 , AND 11 0 THEN SOME T Y P E OF EEEK ERROR HAS OCCURED, TRANSFER R E G I S T E R B I T 11 1 THEN A CRC E R R O R H A S OCCURED, TRANSFER REGISTER B I T 1 0 = 1 THEN A P A R I T Y E R R O R H A S OCCUREO / 0230 0231 0232 0233 0234 0235 6702 3265 7305 0265 7690 5241 XDR / G E T CONTENTI OF T R ( E R R O R STATUS) /AND S A V L D i A ASTATUS C L L CLA I A C RAL AND ASTATUS SNA CLA J M P TCRC 1 2 / T E S T roll P A R I T Y ERROR / S K I ? I F P I R l T Y ERROR /NOT A P A R I T Y E R R O R / - MAYBE CRC / A P A R I T Y E R R O R HAS OCCURED / 81 /INCREMENT AND TEST T H E P A R I T Y ERROR RETRY COUNTER PROGRAM LOCATION 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 / /AND R E T R Y THE 'I w CTRY * COMMAND " U N T I L THE P A H I T Y ERROR RECOVERS I ;OR 0236 0237 0240 U N T I L THE PTRY COUNTER OVERFLOWS T O 0 ISZ PTRY JMP RETRY HLT 2295 9206 7402 /RETRY THE COflMAND /HARD P A R I T Y ERROR / ;THE E R R O R FLAG IS SET BUT THE ERROR IS NOT A P A R I T Y ERROR / /TEST FOR A CRC E R R O R / 8241 0242 0243 0244 7301 UiG 7650 5250 TCRC, C L L CLA I A C AND ASTATUS SNA CLA JMP SEEK / 1 / T E S T FOR A CRC E R R O R / S K I P I F A CRC E R R O R /NOT A CRC MUST B E A SEEK - Figure 4-8 RX8E Writemrite Deleted Data/Read Example (Sheet 1 of 2) 4-11 99 100 10i 102 103 104 105 106 107 108 169 iim 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 / A CRC ERROR HAS OCCUREO /AND RETRY THE COMMAND U N T I L THE CRC ERROR RECOVERS / / O R U N T I L THE C T R Y COUNTER OVERFLOWS T O 0 1 0245 0246 0247 ISZ C T R Y 2256 5206 7402 JM? RETRY HLT /RETRY THE COMMAND /YARD CRC ERROR / / T H E ERROR FLAG IS S E T / /THE ERROR IS C N O T l A P A R I T Y ERROR AND IS C N O T J A CRC ERROR / /THEREFORE / / / 0250 6707 IS M U S T BE A SEEK ERROR ICONTENTS OF THE TRANSFER REGISTER B I T S 1 0 , AN0 11 I 0 ) SEEK. INlT /IOT 67x7 TO I N I T I I L I A L / /INCREMENT AND TEST THE SEEK ERROR RETRY COUNTER PROGRAM LOCATION " STRY " / /AN0 RETRY THE COMMAND U N T I L THE SEEK ERROR RECOVERS /OR U N T I L THE CTRY COUNTER O V E R F L O W S T O 0 / 1251 0252 0253 22~7 5206 7402 0254 7770 ISZ S T R V JMP RETRY /RETRY THE COMMAND / H A R D SECK ERROR HLT /THE FOLLOWING PROGRAM LOCATIONS ARE HLFERENCED W I T H I N THIS EXAMPLC ism 131 132 133 134 135 136 137 138 AN0 T E S T THE CRC ERROR RETHY COUNTER P R O G R A M LOCATION It CTRY 1 ;INCREMENT / KMlBi 910 / /THE FOLLOWING 3 PROGRAM LOCATIONS ARE THE ERROR RETRY COUNTLRS 8251 0256 0257 0a00 0080 0000 / PTRY, 0 CTRY, 0 STRY, 0 / P A R I T Y L R R O R RETRY COUNTER /CRC ERROR R C T R Y COUNTER /SEEK E R R O R RETRY COUNTER 139 I 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 /PROGRAM LOCATION " MODE 'I CONTAINS A 0 I F 1 2 - 8 1 1 3 0 0 E ~ OR /CONTAINS A 10R I F 8-BIT MODE I 0260 0000 MODE. / 0 OR 100 0 / /PROGRAM LOCATION " COMMAND " CONTAINS THE COMMAND T O BE ISSUED V I A THC LCD IOT / / W R I T E I 4 1 1 W R I T E DELETED D A T A ( 1 4 ) ~OR REA0 ( 6 ) t O R EHPTY BUFFER 1 2 ) / 0261 0000 COMMANJ, 0 / /PROGRAM L O C A T l O N " UNIT I 4, '' CONTAINS THE UNIT 14, O R *, O R a DESIGNATION / /UNIT 0262 0000 0 101, OR U N I T 1 120) / UNIT, / 0 I 0, /PROGRAM LOCATION " SECTOR OR 20 CONTAINS THE SECTOR ADDRESS ( 1 T O 32 OCTAL) " / 026s 02100 SECTOR, 0 / 1 T O 3 2 OCTAL / /PROGRAM LOCATION " T R A C K " CONTAINS THE TRACK AOORLSS ( 8 T O 1 1 4 O C T A L 1 / 0264 0000 TRACK, e / 0 TO / /PROGRAM LOCATION " ASTATUS " 114 OCTAL CONTAINS THE CONTENTS O r TllE TRANSFER R E G I S T E R / /AT THE OETECTION OF AN ERROR I E R R O H FLAG 1) WHICH CORIESPDNDS TO THC / /ERROR STATUS , ; = 0 I F S L E K ERROR, 1 I F CRC ERROR, 2 I F P A R I T Y E R R O R I S T A T U S AT ERROR / 0265 0000 ASTATUS, 0 Figure 4-8 RX8E Writemrite Deleted Data/Read Example (Sheet 2 of 2) 4-12 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 204 285 /THE F O L L O W I N G IS A P R O G R A M M I N G E X A M P L E O F PROTOCOL R E Q U I R E D TO / /EMPTY / /EMPTY T H E SECTOR B U F F E R OF 6 4 1 2 - B I T UOROS (12 9 1 1 M O D E ) , O R THE SECTOR B U F F E R OF 1 2 8 I-BIT B Y T E S ( 8 B I T M O D E ) / 0312 0313 0314 0315 0316 0317 a320 1254 3255 1377 3010 1260 1261 6701 E E N T R Y i TAD DCA ESETUP, TAD OCA TAD TAD LCD I 8 T R Y S TO EMPTY THE SECTOR B U F F E R / P A R I T Y L R R O R R E T R Y COUNTER /PROGRAM8 D A T A B U F C E R /AUTO INOEX R E G I S T C R 1 0 / 0 IT 1 2 - 8 1 1 , 1 0 0 I F 8 B I T / 2 MEANS E M P T Y B U P F E R / I O T T O !SSUC T H E COMMAND KMl0 PTRY (BUFFER-1) A10 MOO€ COMMAND / / W A I T FOR A T R A N S F E R REQUEST F L A G B E F O R E T R A N S F E R R I N G D A T A T O T H E PROGRAMS / / D A T A B U F F E R F R O M THE R X 0 l SECTOR B U F F E R / /WAIT FOR A OONE F L A G T O INDICATE THE COMPLETION OF THE E M P T Y B U F F E R COMMAND PRIOR / / T E S T I N G THE ERROR F L A G I 0321 0322 0323 0324 0325 67a3 7410 5335 6701 / T E S T FOR T R F L A G / T R NOT IET, T E S T )'OR DONE F L A G / T R F L A G SET / T E S T FOR DONE FLAQ / N O T T R # O R OONE YCT JMP E M P T Y SON JMP LOOP 5214 I LAG IS SET ;THE / DONC /TEST FOR ANY E R R O R S ( O N L Y E R R O R P O S S I B L E IS A P A R I T Y L R R O R ) I 0326 0327 6704 7402 0330 2255 0331 5314 0532 7102 0333 0334 0339 0377 6702 3410 5322 - / T E S T roR THL E R R O R F L A G /NO CRRORS OK / / I N C R E M E N T A N 0 TEST THE P A R I T Y ERROR R C T R Y PROGRAM L O C A T I O N It P T R Y " / / A N 0 R E T R Y T H E COMMAND U N T I L THE E R R O H R E C O V E R 8 I / O R U N T I L THE P T R Y COUNTER OVERFLOWS TO 0 / PTRY JMP E S E T U P / R E T R Y T O EMPTY THC SECTOR B U F C E R HLT /HARD P A R I T Y E R R O R / /THE T R A N S r E R R E Q U E S T F L A G IS S E T / / T R A N S F E R D A T A T O THE PROGRAMS D A T A B U F F E R F R O M THE R X B l SECTOR B U P F E R / EMPTY, XDR /FROM THC R X U l SECTOR B U F F E R OCA I A10 / T O T H C PROGRAMS O A T A B U F F E R JMP E L O O P /LOOP U N T I L THE OONE F L A G SETS SER HLT isa 0377 0400 PAGE /THE F O L L O W I N G PROGRAM L O C A T I O N S ARE R E S E R V E D FOR THE PROGRAMS O A T A BUFFER I 0400 0000 0600 BUF.FER, 0 eBUFrERI200 I Figure 4-9 FW3E Empty Buffer Example 4-13 TO 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 /THE / FOLLOWING IS A PROGRAMMING E X A M P L E OF PROTOCOL R E Q U I R E D TO / F I L L THE SECTOR B U F F E R W I T H 6 4 1 2 - B I T WORDS ( 1 2 E I T M0OL)o OR 0010 :FILL THE SECTOR B U F F E R W I T H 128 W I T B Y T E S ( 8 B I T / A10IllB MOOEI I 0266 0267 0270 0271 0272 0273 0274 0275 0276 0277 0300 1254 3255 1377 3010 1260 6701 6703 7418 5506 6705 5274 ;ENTRY', SETUP, TAD DCA TAD OCA TAD LCD I 0 T R V S T O ILL T H E S L C T O R B U F F L R / P A R I T Y C R R O R R E T R Y COUNTER /PROGRAMS D A T A B U F F E R KM10 PTRY (BUFFER-1) A10 / A U T O INOEX REGISTER i n I 0 I r li-DlT, 1 0 0 I f 8 B I T / I O T T O I S S U C T H E OOMMAND MODE I / W A I T FOR A T R A N S F E R R E Q U E S T F L A G B E F O R E T R A N S f E R R I N G D A T A FROM T H E PROCRAMS / / D A T A BUrrER TO T H E R X 0 1 SECTOR B U F F E R / / W A I T FOR A DONE f L A G T O I N D I C A T E T H E C O M P L E T I O N OF T H E F I L L B U F F E R COMMAND P R I O R T O / / T E S T I N G THE ERROR F L A G / LOOP, STR / T E S T FOR TR F L A G SKP t i n NOT a E T , T E S T FOR DONE F L A G JMP F I L L / T R V L A G SET SON / ? E S T 101) D O N E F L A G J M P LOOP / N O T I R , O R DONE Y E T / / T H E DONE V L A C IS S E T / /TEST F O R ANY ERRORS ( O N L Y ERROR P O S S I B L E IS A P A R I T Y E R R O R ) / 0301 0302 6704 7402 /TEST SER - r O R THC E R R O R FLAG OK HLT /NO ERRORS / / I N C R E M E N T AND T E S T THE PARITY ERROR R E T R Y P R O G R A M LOCATION / / A N 0 R E T R Y T H E COMMANO U N T I L THE E R R O R RECOVERS / /OR U N T I L THE P T R Y COUNTER OVERFLOWS T O 0 PTRY n / 218 0303 0304 0305 2259 5270 7402 219 220 221 222 223 224 225 226 227 0306 0307 0310 0311 1410 6702 7200 5274 ~~ 1-38 P T R Y JMP S E T U P HLT / R E T R Y TO T I L L T H E SECTOR O U F F E R / H A R D P A R I T Y ERROR / / T H E T R A N S F E R R E Q U E S T F L A G IS SET / / T R A N S F E R D A T A FROM THE PROGRAMS D A T A BUFFER TO THE R X 0 1 SECTOR B U r r E R / FILL, TAD I A U T O I N D E X REGISTER 1 0 110 TWC R X B l SECTOR B U r F L R BECAUSE IOT XOR D O E I N ' T A10 /VIA XDR /CLA CLA Figure 4- 10 Fill Buffer Example 4-14 4.6 RESTRICTIONS AND PROGRAMMING PITFALLS A set of 11 restrictions and programming pitfalls for the RX8E is presented below. 1. When performing the following sequence of instructions, interrupts must be off. (done) (fill or empty buffer) If interrupts are not off, the following sequence of events will occur. Assume interrupts are enabled and the RX8E issues an interrupt request just before the SDN instruction. The SDN instruction will be executed as the last legal instruction before the processor takes over. However, since the Done flag is cleared by the SDN instruction, the processor will not find the device that issued the interrupt. 2. The program must issue an SER instruction t o test for errors following an SDN instruction. 3. For maximum data throughput for consecutive writes or reads in 8-bit mode, interleave every three sectors; in 12-bit mode, interleave every two sectors. (This of course depends on program overhead.) 4. When issuing the IOT XDR at the end of a function to test the status, the instruction AND 377 must be given, because the most significant bits (0-3) contain part of the previous command word. 5. If an error occurs and the program executes a Read Error Register function (1 11) (Paragraph 4.4.7), a parity error may occur for that command. The error code coming back would not be for the original error in which the Read Error Register function was issued, but for the parity error resulting from the Read Error Register function. Therefore, check for parity error with the Read Status function (101) before checking for errors with the Read Error Register function (1 11). 6. The SEL DRV RDY bit is present only at the time of the Read Status function (101) for either drive, or at completion of an Initialize for drive 0. 7. It is not necessary to load the Drive Select bit into the command word when the command is Fill Buffer (000) or Empty Buffer (001). 8. Sector Addressing: 1-26 or 1-328 (No sector 0) Track Addressing: 0-76 or 1-1 148 9. If a Read Error Register function (1 11) is desired, the program must perform this function before a Read Status function (101), because the content of the Error register is always modified by a Read Status function. 10. The instructions STR, SDN, SER also clear the respective flags after testing, so that the software must store these flags if future reference to them is needed after performing one of these instructions. 11. Excessive use of the Read Status function (101) will result in drastically decreased throughput, because a Read Status function requires between one and two diskette revolutions or about 250 ms to complete. /---- 4-15 4.7 ERROR RECOVERY There are two error indications given by the RX8E system. The Read Status function (Paragraph 4.4.5) will assemble the current contents of the RXES (Paragraph 4.3.6), which can be sampled to determine errors. The Read Error Register function (Paragraph 4.4.7) can also be used to retrieve explicit error information. The results of the Read Status function or the Read Error Register function are in the Interface register when Done sets, indicating the completion of the function. The XDR IOT must be issued to transfer the contents of the Interface register to the PDP-8’s AC. NOTE A Read Status function is not necessary if the DRV RDY bit is not going to be interrogated, because the RXES is in the Interface register at the completion of every function. The error codes for the Read Error Register function are presented below. octal Code 0010 0020 0030 0040 0050 0060 0070 01 10 01 20 0130 0140 01 50 016 0 01 70 0200 0210 Error Code Meaning Drive 0 failed to see home on Initialize. Drive 1 failed to see home on Initialize. Found home when stepping out 10 tracks for INIT. Tried to access a track greater than 77. Home was found before desired track was reached. Self-diagnostic error. Desired sector could not be found after looking at 52 headers (2 revolutions). More than 40 ps and no SEP clock seen. A preamble could not be found. Preamble found but no I/O mark found within allowable time span. CRC error on what we thought was a header. The header track address of a good header does not compare with the desired track. Too many tries for an IDAM (identifies header). Data AM not found in allotted time. CRC error on reading the sector from the disk. No code appears in the ERREG. All parity errors. 4-16 CHAPTER 5 T H E O R Y O F OPERATION h This chapter presents a discussion of the hardware and pCPU firmware of the RXl 1 and RX8 Floppy Disk Systems. This information, combined with the programming information and functional descriptions contained in Chapters 3 and 4, should give the reader a complete knowledge of the theory of operation of the R X l 1 and RX8 Floppy Disk Systems. The first section of this chapter describes the overall system block diagram and the signals that interconnect each of the blocks. The second section presents a detailed block diagram and logic discussion of each of the system blocks. The pCPU microprogram is discussed in Paragraphs 5.2.4 and 5.2.5. 5.1 OVERALL SYSTEM BLOCK DIAGRAM The floppy disk system consists of four elements (Figure 5-1): 1. Drive mechanics, which includes actuators and transducers (up to two per controller) 2. Read/Write electronics, which translates power levels between drive mechanics and control logic 3. Microprogrammed controller, which includes all control logic. 4. Bus interface, which translates between host processor bus protocol (Unibus or Omnibus) and R X O l data bus DATA BUS INTERFACE D I S K DRIVE INTERFACE DRIVE U 7 R E A D / WRITE ELECTRONICS S pCPU CONTROLLER OR CP-1520 Figure 5-1 Bus Structure 5-1 There are three levels of data transmission in the floppy disk system (Figure 5-1): 1. Unibus for PDP-11 or Omnibus for PDP-8 for data transmission between bus interface and host processor 2. RXOl data bus for data transmission between the RXOl pCPU controller and the bus interface 3. The disk drive interface for data and control information transmission between the read/write electronics and the RXOl pCPU controller. Signals between the read/write electronics and mechanical drive are analog signals used to control head motion and sense diskette motion and position. The sections which follow describe the signals used in the three levels of data transmission and the analog signals between the read/write electronics and mechanical drive. 5.1.1 Omnibus to RXSE Interface Signals The RX8E interface communicates with the PDP-8 Omnibus via the signals shown in Figure 5-2 and described below. These signals are further explained in the PDP-8 Small Computer Handbook. RXBE INTERFACE * * TP3 H SKIP L I N T ROST L C0,CI * 4 M 0 TP4 H INTERNAL I / O L _ N I - B D U S D * INIT ti I / O PAUSE DATA BUS - Twelve parallel bits of data are transferred along a bidirectional bus for both input and output data between the AC register in the processor and the Interface register in the RX8E interface. MEMORY DATA BUS - This signal provides I/O transfer (IOT) instructions from memory to the RX8E interface. 7'P3 H , TP4 H - These signals are used to clear the flag and clock the Interface register of the RX8E interface in transferring data along the data bus. INTERNAL I/O L - This signal is grounded by the RX8E interface selector decoder to inhibit decoding any internal Omnibus I/O transfer (IOT) instructions. Failure to ground this line will result in long IOT timing. SKIP L - An IOT checks the flag for a ONE state. If the flag is set, S K P L is asserted and the address of the program counter (PC) plus one is loaded into the Central Processor Memory Address (CPMA) register to implement a skip. 5-2 - INT RQST L - This signal is part of the interrupt structure of the Omnibus. It is the method by which the RX8E interface signals the processor that it has data to be serviced. CO, CI - Signals CO and C1 determine the type of transfer between the RX8E interface and the processor. These signals control the data path within the processor and determine if data is to be placed on the data bus or received from the data bus. They are also used to develop the necessary load control signals required to load either the accumulator (AC) or the program counter (PC) in the processor. ZNZTH - INIT H is a signal used to clear all flags in the RX8E interface and initialize the RXO1. I/O PAUSE L - This signal is used to gate the RX8E select and operation codes into the programmed I/O interface of the PDP-8 decoders. 5.1.2 Unibus to R X l l Interface Signals The R X l l interface communicates with the PDP-11 Unibus via the signals shown in Figure 5-3 and described below. These signals are further explained in the PDP-11 Peripherals Handbook. ADDRESS SIGNAL (18) DATA SIGNAL (16) MSYN L SSYN L U N RXll INTERFACE INTR L BBSY L t 7 CP-I522 Figure 5-3 Unibus to R X l l Interface Signals ADDRESS ( A Lines) - The 18 address lines are used by the CPU to select the device register addresses of the RX11, which are 177170 (RXCS) and 177172 (RXDB). DATA ( D Lines) - The 16 parallel data lines are used to transfer information in and out of the RX11 interface. MSYN L - This signal is the master synchronization control signal that is initiated by the RX11 when it has control of the Unibus for data transmission. SSYN L - This signal is the slave synchronization control signal that is initiated by the R x l l in response to an MSYN L signal from the processor or another device that has control of the Unibus and is about to send data to the Rxll. 5-3 NPR L - This signal from the processor will inhibit the RX11 interface from issuing a bus grant. NOTE The R X l 1 is not an NPR device. C1 L - This bus signal is coded by the master device to control the slave in Data In mode (passing data to the Unibus) if it is negated and Data Out mode (passing data from the Unibus) if it is asserted. INIT L - This is the signal asserted by the processor when the START key on the console is depressed, when a RESET instruction is executed, or when the power fail sequence occurs. This signal will initialize the RX11 system. INTR L - This signal is asserted by the RX11 when it has bus control during an interrupt sequence. It directs the processor to go to interrupt service routine. SACK L - This signal is sent by the R X l l to the processor in acknowledgment of Unibus control being transferred to it. This signal inhibits further bus grants by the processor. - BBSY I, - This is the signal sent by the R X l l when asserting master control of the Unibus. This signal follows the SACK L signal. BR (7:4) - These four priority bus request lines are used by the RXI 1 to request bus mastership. Each device of the same priority level passes a grant signal to the next device on the line, unless it has requested bus control; in this case, the requesting device blocks the signal from the following devices and assumes bus control. BG (7:4) - These are four priority bus grant lines corresponding to the four request lines. The processor uses them to respond to a specific bus request. - 5.1.3 Interface to pCPU Controller Signals The pCPU controller and RX8E or RXI 1 interface communicate via the signals shown in Figure 5-4 and described below. DATA L 4- DONE L TRANSFER REQUEST L SHIFT L pCPU OUT L CONTROLLER ERROR L * * ?-(RXBE c D RX8E h OR RXll INTERFACE RUN L INlT L 12 B I T L ONLY) Figure 5 4 Interface to pCPU Controller Signals INITL - The RXOl will negate DONE L and move the head position mechanism of drive 1 (if it exists) t o track 0. The RXOl will also read sector 1 of track 1 of drive 0 and then assert DONE L without error upon successful completion of the function. DONE I, - Asserted low, DONE L indicates that there is no RXO1 function in progress. Initiating any function will cause DONE L to go false for the duration of that function. Attempting to initiate any function other than Initialize while DONE L i s false is illegal and may result in an error. I RUN L - RUN L initiates communication between interface and controller. RUN L, asserted while DONE L is true, passes a command from interface to controller serially. DONE L will go false until the command has been executed (or until Initialize is asserted). RUN L, asserted while DONE L is false, signals transfer of data t o or from the controller. All control lines to the controller must be stable 75 ns before RUN L is asserted. OUT L - OUT L signals the direction in which the R X O l is prepared to transfer data. When OUT L is asserted, the direction of transfer is from controller to interface. When OUT L is negated, the direction is from interface to controller. OUT L is never asserted while DONE L is true, and OUT L is negated by Initialize. TRANSFER REQUEST L (TR L ) - The TR L line, with RUN L and OUT L, forms a bidirectional handshake set. On transfers from controller to interface (OUT L asserted), TR L going true indicates that the next data element has been transferred to the Interface register. The transfer of the following data element will be initiated by asserting RUN L. This will negate TR L until the new data element has been assembled in the interface. h On transfers from interface to controller (OUT L negated), TR asserted indicates that the controller is prepared to accept the next element of data. The arrival of the new data element will be signaled by assertion of RUN L. Assertion of RUN L while TR L is negated is an error. DATA L - DATA L is a bidirectional line for transfer of data to and from the control1er:A parity bit is appended to the serial data stream by the interface when the direction of the data transfer is into the controller. The controller will interrogate the parity bit for validity. SHIFTL - The SHIFT L pulse strobes information to or from the controller bit-by-bit. 1. Interface to Controller Transfer - The transfer of either commands or data words begins with assertion of RUN L. Following the assertion of RUN L, DONE L or TR L will be negated and a number of SHIFT L pulses will occur. The number depends on the length of the data element to be passed. The first bit of data (or command) must be stable when RUN L is asserted. The SHIFT L pulse width is 200 ns nominal. SHIFT L pulses will not occur more often than every 400 ns. Subsequent bits of data may be brought up on the trailing edge of SHIFT L. DONE L or TR L will be reasserted following the last SHIFT L pulse. 2. Controller to Interface Transfer - The assertion of TR L indicates the controllers readiness to transfer data. Assertion of RUN L will negate TR L and initiate a train of SHIFT L pulses. The data is to be sampled on the leading edge of SHIFT L and is valid only while SHIFT L is asserted. TR L will be reasserted at the end of each element of data. DONE L will be asserted following transfer of the last element of data in a block. 1 12 BIT L - This signal is asserted by the interface to controller and determines the number of shift pulses generated by the controller for each byte transferred. Signal 12 BIT L asserted will produce 12 SHIFT L pulses for data transfer between the interface and controller upon the assertion of RUN L. Signal 12 BIT L negated will produce eight SHIFT L pulses for data transfer between the interface and controller upon the assertion of RUN L. This line must remain asserted throughout the entire data transfer. When data is transferred, the most significant bit is transferred first. NOTE Signal 12 BIT L is onZy asserted by the RX8E interface for PDP-8 12-bit words. It is never asserted by the RXI I interface. - ERROR L - This is an error summary bit generated by the controller that sets when any error is detected (Paragraphs 3.2.1 and 4.3.6). The detection of ERROR L stops all controller action and asserts DONE L and the Error flag. This line is cleared by INIT L or the initiation of a new function. 5-5 5.1.4 pCPU Controller to Read/Write Electronics Signals The pCPU controller and read/write electronics communicate via the signals shown in Figure 5-5 and described below. W R I T E GATE H R/W 1- t ELECTRONICS H D STEP H CONTROLLER HD D I R OUT H SEL TRK 0 H + SEL INDEX H C R A W DATA L 4 4 C SEL 1 H D C LO L Figure 5-5 pCPU Controller to Read/Write Electronics Signals LOW CUR H - This signal is asserted by the controller to select the lower of two write current levels when operating on a track above 43. As the head moves closer to the center of the disk, the bit density increases as linear velocity decreases, necessitating a reduction in write current. 1 WRITE DATA H - This signal conveys the complete data stream to the read/write electronics at TTL logic levels. Each transition on this line results in a flux reversal on the disk. In general, the pattern will be one clock transition every 4 p s with an intervening transition between two successive clocks to represent a data one and no intervening transition to represent a data zero. It should be noted that the data content of this stream cannot be inferred from its instantaneous logic level, but only from the pattern of its transitions (Paragraph 1.3.2). R A W DATA L - This signal conveys the complete data stream recovered from the diskette at TTL logic levels. It includes a regular pattern of clock transitions which the controller will separate from the data transitions. As above, the data content is in the pattern of transitions rather than the absolute level at any instant of time (Paragraph 1.3.2). SEL I H - This signal uniquely selects one of the two possible diskette drives. The assertion of this line will select logical drive 1 for use. Unit 0 is physically the left-hand unit in the rack. WRITE GATE H - This signal is asserted by the controller to enable the selected write drivers. This level must be asserted prior to the beginning of the data field to be written and is negated after the last bit of the data field. This timing is completely under microprogram control. ERASE GATE H - This signal is used in conjunction with WRITE GATE H to enable the tunnel erase drivers. It is asserted and negated after the assertion of WRITE GATE H, with timing determined by the microprogrammed controller. LD HD H - This signal is asserted by the controller to hold the media against the selected head. 5-6 1 HD STEP L - This signal is asserted twice by the controller to change head position by one track in a direction determined by signal HD DIR OUT H. The maximum step rate is 10 ms per step. Minimum pulse width is 200 ns. HD DIR OUT H - This signal determines the direction in which the head will move in response to an HD STEP L signal. If HD DIR OUT H is unasserted, the heads will travel toward the center of the disk (IN), increasing the track address. If HD STEP L is asserted when HD DIR OUT H is asserted, the heads will travel toward the outside edge of the disk (OUT), decreasing the track address. SEI, TRK 0 H - T h s signal is asserted by the selected drive to indicate that its head is positioned over track 0. SEL INDEX H - This signal is asserted by the selected drive to indicate that the hard index hole has been detected. This occurs once per revolution and is used by the control to time operations and detect “up to speed.” This pulse is 400 ps minimum width. DC LO L - This signal is asserted by an Initialize signal from the controller to the drives. .- 5.1.5 Read/Write Electronics to Drive Signals The read/write electronics and drive(s) communicate through five sets of signals per drive as shown in Figure 5-6 and described below. The plug designations for the cabling are also shown in Figure 5-6. - HEAD P3 INDEX P6 TRACK 0 0 P7 H E A D STEPPER P4 H E A D LOAD S O L E N O I D P5 . I DRIVE 0 c c c READ / WRITE ELECTRON ICs INDEX DRIVE TRACK 0 0 I- H E A D STEPPER P4 HEAD LOAD S O L E N O I D P5 CP-1525 Figure 5-6 Read/Write Electronics to Drive Signals HEAD - This is an analog signal to and from the drive head. INDEX - This is a set of signals connected to a LED-phototransistor pair which locates the index hole for determination of diskette rotational position and speed. TRACK 00 - This is a set of signals connected to a LED-phototransistor pair, which indicates positioning at track 0. HEAD STEPPER - This signal is output from the read/write electronics, which moves the head from track to track. - HEAD LOAD SOLENOID - These signals activate a solenoid to load the head onto the diskette during a read/write operation. The head is unloaded from the diskette to reduce diskette wear when not performing a read/write operation. 5-7 5.2 DETAILED BLOCK DIAGRAM AND LOGIC DISCUSSION This section presents a detailed block diagram and logic discussion of each of the system blocks of Paragraph 5.1 and a discussion of the pCPU instruction set and microprogram. The logic discussion makes references to the engineering drawings included in the RX11 and RX8 Print Sets, which are separate documents. 5.2.1 RX8E Interface Figure 5-7 presents a block diagram of the RX8E interface. The page references in the following discussion are from the RX8 Print Set, which is a separate document. 5.2.1.1 Device Select and IOT Decoder - The Device Select and IOT Decoder Logic, shown on page D2, decodes RX8E instructions from the memory data bus and generates signals to the Interrupt Control and Skip Logic, the C Line Control Logic, and the Sequence and Function Control Logic. Device selection codes are determined by the switch configuration with relation to the state of MD6, MD7, and MD8. When the correct code for the RX8E is input to the Device Select Logic on MD03 L to MD08 L and I/O PAUSE L is asserted, MD09 L to MD1 1 L are decoded by the 7442 decoder, and signal INTERNAL I/O L is asserted on the Omnibus. I/O PAUSE L is present anytime an IOT instruction is being executed by the program. INTERNAL I/O L prevents the processor from executing other I/O transfers (IOTs) while this instruction is being executed. The 7442 is a BCD to decimal decoder. All Os applied to inputs A, B, and C (C is MSB) will cause pin 1, which is unused, to be asserted low. An input of 001 (C is MSB) will cause signal LCD IOT L to be asserted. An input of 010 (decimal 2) will cause XFER IOT L to be asserted. Therefore, for each function code input on MD09 L to MD1 1 L, only one of the output lines of the 7442 will be asserted. The function codes are further explained in Paragraph 4.4. 5.2.1.2 Interrupt Control and Skip Logic - The Interrupt Control Logic, shown on page D2, asserts the BUS INT RQST L signal on the Omnibus. Bit 11 of the data bus must be set and an INTERRUPT IOT L must be decoded by the RX8E to set the Interrupt Enable flip-flop. The combination of the Interrupt Enable and Buffered Done flip-flops will assert BUS INT RQST L. Setting the Buffered Done flip-flop indicates that no RXOl function is currently in progress. The Skip Logic implements the three IOT commands Skip on Transfer Request Flag (STR), Skip on Error Flag (SER), and Skip on Done Flag (SDN) as described in Paragraph 4.2. NOTE When using these instructions, the respective flags are cleared after they are tested (Paragraph 4.6). Signal SKIP L will be asserted if any of the above instructions are decoded by the IOT decoder and the respective flag has been asserted by the RXO1. The RX8E asserts the RX8E flags by causing a positive transition on the clock inputs of flip-flops XFER REQ, ERR, and DONE. The signal MAINT (1) L will directly set the Skip flags to allow the Skip IOTs to assert the BUS SKIP L signal when decoded by the IOT decoder. 5.2.1.3 C Line Select Logic - The C Line Select Logic (page D3) controls the direction of data flow between the processor AC and the data bus and determines whether or not the AC is cleared upon completion of the transfer. CO L will be asserted during an LCD (Load Command) instruction when signal LCD IOT L is asserted. Assertion of C1 L requires XFER IOT H to be asserted and either MAINT (1) L or B DONE L to be asserted or WRT H to be negated. Data transfers occur under the control of the C bits according to Table 5-1. 5-8 1 i IJ J I- f X a r t-- I I- h J O I- H H O I- LL 3 n I- a n I- Y U -I- I- J K W I I- z - a - W lL X 2 E S L m m z z l- i m n I- ? 5-9 - ~ Table 5-1 C Line Transfer Control Signals co c1 - Action Required by RXSE Interface Output AC to data bus; AC unchanged. H Load data bus into buffer Transfers AC to data bus. AC remains unchanged . Output AC to data bus; AC cleared. L Load data bus into buffer. Ground co. Transfers AC to data bus and clears AC. Input AC ORed with peripheral data H Gate peripheral data to data bus. Ground C 1. AC ORed with peripheral data. Jam input data bus to AC. L Gate peripheral data to data bus. Ground CO and C 1. Transfers data bus to AC register. Type of Transfer ~~ Action by Processor ~~~ 5.2.1.4 Interface Register - The Interface register shown on page D3 is made up of three 8271 4-bit shift registers. This register temporarily stores data during transfers from the Omnibus to the RXOl pCPU controller or during transfers from the R X O l pCPU controller to the Omnibus. During a data transfer from the Omnibus (Fill Buffer), the 12 parallel data lines to the register are enabled by signal RX8 SEL L from the Device Select Logic. Data is parallel loaded into the register when signals ENB BUFF LOAD L and CLK BUFF L are asserted. In shifting data out of the register serially for transmission to the pCPU controller, ENB BUFF LOAD L must be negated. Signal CLK BUFF L from the Sequence and Function Control Logic clocks data out of the buffer (Paragraph 5.2.1.5). During data transfer to the Omnibus (Empty Buffer), serial data from the pCPU controller is shifted into the buffer. ENB BUFF LOAD L must be negated while CLK BUFF L supplies the clock pulses. The parallel data is enabled from the outputs of the register when MAINT (1) H, RD H, or B DONE H is asserted, and when XFER IOT L is asserted as decoded by the IOT decoder. Only eight bits of data will be output if signal 8/12 (0) H is low; otherwise, 12 bits will be transmitted. 5.2.1.5 Sequence and Function Control Logic - The Sequence and Function Control Logic shown on pages D2 and D3 performs six distinct functions: 1. Controls loading and shifting of the Interface register to and from the pCPU controller. 2. Senses 8- or 12-bit mode and outputs RX 12 BIT L. 3. Senses maintenance conditions. 4. Generates INIT L signal to the pCPU controller. 5. Generates RUN L signal to the pCPU controller. 6. Generates a parity bit for the serial bit stream to the RXO1. Interface register operation is controlled by signals ENB BUFF LOAD L and CLK BUFF L generated by the Sequence and Function Control Logic. To assert ENB BUFF LOAD L, signal RX OUT L cannot be asserted and either FZ TRANSFER REQUEST L or FZ DONE L must be asserted. 5-10 In parallel data entry to the buffer, CLK BUFF L will be asserted if any of the following conditions hold: 1. ENB BUFF LOAD L is asserted. 2. Either LCD or XDR instructions are being performed. 3. Signal BUS TP3 H is asserted. In serial data entry to the buffer, the CLK BUFF L pulses are derived from the RX SHIFT L pulses from the pCPU controller. The 8/12 flip-flop will set and signal 8/12 (1) H will be asserted if BUS DATA 5 L is asserted during a Load Command (LCD) operation. Signal 8/12 (1) H is used to control whether 8 or 12 bits of data are transferred to or from the Omnibus and whether 8 or 12 bits of data are transferred between the RX8E and the pCPU controller. The MAINT flip-flop will set, and signal MAINT (1) H will be asserted if BUS DATA 4 L is asserted during a LCD operation. Signal MAINT (1) H is used to allow parallel writing and reading of the Interface register from the Omnibus. It is also used to assert signal RUN L and C Line Control signals. An Initialize signal t o the pCPU controller (RX INIT L) is generated either by a BUS INIT H signal from the Omnibus or an INIT IOT L decoded from the IOT decoder. The RUN L signal, which is used to initiate communication between the interface and pCPU controller, is asserted by setting the Run flip-flop. This flip-flop is clocked either in Command Transfer mode when LCD IOT H is asserted or Data Transfer mode to or from the pCPU controller when XFER IOT H is asserted. (RUN L cannot be asserted if DONE L is asserted.) RX BUSY L and INIT L must both be high for a RUN L signal to be asserted. Assertion of either RX BUSY L or INIT L will clear the Run flip-flop. 5.2.2 R X l l Interface A block diagram of the a 1 1 interface is shown in Figure 5-8. In the following discussion, it is assumed that the reader is familiar with Unibus operations as described in the PDP-I1 Peripherals and Interfacing Handbook. Page references are to the RX11 Print Set, which is a separate document. 5.2.2.1 Address Decoder - The address decoder determines whether its associated RXl 1 is being addressed and whether control information or data is being transferred. I The hardware on page D2 is a combinational logic network that decodes two discrete addresses assigned to the RX11. Address bits (17:13) must always be asserted to satisfy the decoder. The state of address bits A (12:03) is determined by the placement of jumpers A12 through A3 on the board. For each of these bits, one 8242 exclusive-NOR gate is used. Insertion of a jumper for a particular bit position stores a 0 on one leg of the 8242, so that a 1 appearing on the other leg causes the output to go low. This is a mismatch condition which is met when the associated address bit is a 1. When both legs match (Is or Os on both), the output is high. The output of these 12 gates are wire-ORed and applied to pin 9 of the 7400 NAND gate. Pin 10 of this gate receives the NANDed signal of A (1 7: 13) and BUS MSYN. Pin 8, the output of this gate, is signal REG SELECT L and is asserted when the proper Unibus addresses are decoded. - The states of address bits A02 and A01 and REG SELECT L are used to produce signals D2 SELECT 00 H or D2 SELECT 02 H. The state of A01 determines which of the mutually exclusive signals, D2 SELECT 00 H or D2 SELECT 02 H, is generated. If BUS A01 L is asserted, D2 SELECT 02 H is asserted. If BUS A01 L is negated, D2 SELECT 00 H is asserted. These signals, in turn, allow access to the RXCS register as in the case of D2 SELECT 00 H asserted, or to the RXDB register as in the case of D2 SELECT 02 H asserted. (Refer to Paragraph 3.2 for register descriptions.) 5-11 N c z i zI J J I 7 7 - - j - -ma 3 I- a n IO W I do v)O ___. I-= ON w o W _I v) 5-12 5.2.2.2 Data Path Selection - Data Path Selection Logic is shown on pages D2 and D3. Signal BUS C1 L from the Unibus controls whether Data Out or Data In operation is to be executed. Assertion of BUS C1 L indicates Data Out (from Unibus), and negation of BUS C 1 L indicates Data In (to Unibus). Signals D2 OUT H and its complement D2 IN H from page D2 are derived from BUS C1 L and are input to the rest of the Data Path Selection Logic on page D3. With BUS C 1 L negated and D2 SELECT 0 2 H asserted, all eight bits from the data buffer are enabled through the 8838 bus transceivers. With BUS C1 L negated and D2 SELECT 00 H asserted, only lines BUS DO4 through BUS D07, providing control and status information (RXCS), are enabled. With BUS C 1 L asserted, none of the 8838s are enabled, and data is being input from the Unibus on lines BUS DO0 through BUS D07. The 74157 multiplexer controls passage of status and control information (RXCS) in the form of signals D3 DONE H, D3 INT ENB ( 1 ) H, and D3 TRANSFER REQUEST H from the Sequence and Function Control Logic or passage of data from the Read/Write Data Buffer register (RXDB). If D2 SELECT 02 H is asserted, then data is output from the 74157. If D2 SELECT 02 H is negated, then control information (RXCS) is output from the 74157. h 5.2.2.3 Interface Register - The Interface register is a 74199 eight-bit, parallel load, shift register shown on page D3. Data transfer through the register can take place from the Unibus to the pCPU controller or from the pCPU controller to the Unibus. In data transfer to the R X l l from the Unibus, parallel data is loaded into the register when D3 RX BUSY H is negated and D3 LOAD H is asserted. Data is serially shifted in the register from QA to QH by the D3 B SHIFT H signal derived from the pCPU controller when D3 RX BUSY H is asserted. Serial data is shifted to the Sequence and Function Control Logic, which transmits data to the pCPU controller (Paragraph 5.2.2.4). Data is assembled in a serial fashion for parallel transfer on the Unibus. Serial data is input at D3 B SER DATA H and shifted by D3 B SHIFT H when D3 RX BUSY H is asserted and D3 LOAD H is negated. The eight bits of parallel data appearing at the output of the buffer are input to the Data Path Selection Logic for transmission to the Unibus. 5.2.2.4 Sequence and Function Control Logic - The Sequence and Function Control Logic schematics are shown on page D3 and in the lower left-hand corner of page D2. This portion of the RXl 1 interface provides key signals to control the Interface register and the Interrupt Control Logic as shown in Figure 5-8. Operation of this circuitry is controlled by signals from the pCPU controller and D2 SELECT 00 H and D2 SELECT 02 H from the address decoder. h Signals RX TRANSFER REQUEST L, RX OUT L, RX DONE L, and RX RUN L control data transfer between the interface and the pCPU controller. The RX RUN L signal from the RXl 1 interface initiates communication between the RX11 interface and the pCPU controller. The Run flip-flop is set in passing either a command from interface to controller or data between interface and controller. Run asserted while Done is true passes a command from interface to controller. Run asserted while Done is false signals transfer of data to or from the controller. Once a particular function has been decoded by the pCPU controller, it requests a data transfer by assertion of RX TRANSFER REQUEST L. The access of the RXDB in the RXl1 interface sets the Run flip-flop and thereby asserts RX RUN L. The Run flip-flop is cleared either by assertion of D2 B INIT H or RX BUSY H. RX BUSY H is asserted when both RX TRANSFER REQUEST L and RX DONE L are negated. Assertion of RX BUSY H also allows the Interface register to shift serially in communicating between pCPU controller and interface. RX OUT L from the pCPU controller determines in which direction the data transfer is about to take place. When RX OUT L is asserted, the direction of data transfer is from controller to interface. When RX OUT Lis negated, the direction of data transfer is from interface to controller. h On transfers from controller to interface, assertion of RX TRANSFER REQUEST L indicates that the next data element has been assembled in the RXDB. Transfer of the next data element is initiated by RX RUN L. On transfers from interface to controller, assertion of RX TRANSFER REQUEST L indicates that the controller is prepared to accept the next element of data. Arrival of the next data element will be signaled by assertion of RX RUN L. 5-13 The three signals D3 DONE H, D3 INT ENB (1) H, and D3 TRANSFER REQUEST H from the Sequence and Function Control Logic to the Data Path Selection Logic represent the three bits that may be read in the Control and Status (RXCS) register. A functional programming description of this register is given in Paragraph 3.3. During serial data transfer from the RXDB, a 8281 binary counter and a 74H106 JK flip-flop are used to count eight bits of data and to append the parity bit to the data element. An error indication from the pCPU controller results in assertion of RX ERROR L. This indication is passed to the Unibus when a read from the RXCS to the Unibus is performed. When this occurs, signal BUS D15 L i s asserted. 5.2.2.5 Interrupt Control Logic - The Interrupt Control Logic, shown on page D2, is a combinational logic network that receives and generates the control signals required for the RX11 to become bus master. With signals D3 DONE H and D3 INT ENB H both asserted, D2 BUS REQUEST L will be generated if the SACK and BBSY flip-flops are not set. The D2 BUS REQUEST L signal is routed to the appropriate bus request line (normally BR5) through the priority plug shown on page D3. Etch on the plug selects both request and grant lines. When the bus grant signal is generated by the processor, it is routed via the priority plug and becomes signal D3 BG IN H. This signal clocks the GRANT flip-flop and the SACK flip-flop. The SACK flip-flop is set because the R X l l had requested bus mastership. The SACK flip-flop is cleared and the BBSY flip-flop set when BUS BBSY L, BUS SSYN L, and D3 BG IN H are negated on the Unibus. Thus the BUS BBSY L signal will be asserted again by the RXI 1, which is now bus master. The BBSY signal is inverted and applied to the vector address generator, generating the BUS INTR L signal and the vector address of 264. 5.2.2.6 Vector Address Generator - The vector address generator, shown on page D2, consists of eight bus drivers that are used to generate a vector address and the BUS INTR L signals. When BUS BBSY L is asserted by the RX11, the inputs to the bus drivers are active. Seven drivers are connected to the Unibus data lines D (08:02) via jumpers. The placement of these jumpers determines the vector address. - - 5.2.3 Microprogrammed Controller @CPU) Hardware - A block diagram of the pCPU controller is shown in Figure 5-9. The controller is a hardware microprocessor controlled by a ROM with 1536 eight-bit words; the ROM contains the microprogram. This section discusses the various parts of the hardware while Paragraph 5.2.5 discusses the microprogram. 5.2.3.1 Control ROM and Memory Buffer - The heart of the controller is the ROM, which contains the microprogram shown on page D6. AU control and processing activities executed by the RXOl are controlled by the microcode sequences stored within the ROM. The ROM is divided into six fields, each with a storage capacity of 256 eight-bit words. Sequencing through the ROM microcode is accomplished by updating the contents of the program counter (PC) every 200 ns. The eight bits from the PC indicate the address of the next instruction to be executed. h The eight-bit instruction addressed by the PC is loaded into the memory buffer on assertion of LD MB -t CLK PC L. Each instruction consists of three fields that are sampled by the pCPU logic circuits to allow processing action appropriate to the instruction to be taken. The three fields can be defined as follows: INST 1 INST 0 INSTRUCTION CODE FIELD SEL 3 SEL 2 SEL 1 SELECT FIELD SEL 0 c, co CONTROL FIELD CP-1531 . 5-14 --.. The high-order two bits of the control word are the instruction code bits, INST 0 and INST 1. There are five types of instructions, which are determined by these two bits and the C1 bit: INST 0 INST 1 0 0 1 0 1 0 1 1 Instruction Do Pulse (DO) Conditional Branch (CBR) Open Scratch Pad (OSP) if C1 = 0 Jump (JMP) if C 1 = 1 Wait Branch (WBR) A more detailed explanation of the instruction set is given in Paragraph 5.2.4. The function select field, consisting of the four bits designated SEL 0, SEL 1, SEL 2, and SEL 3 , is used for either subfunction selection or addressing. For example, DO instructions controlling the interface lines differentiate between the Interface Buffer flip-flops based on the contents of the function select field. One select code sets the Done flip-flop, another sets the Error flip-flop, etc. During an Open Scratch Pad instruction, the select lines convey address information that is applied to the Scratch Pad Address register to address 1 of 16 Scratch Pad locations. During a Jump instruction, the select lines specify which of the six ROM fields is to be selected. Control field bits C1 and CO are the two low-order bits of the instruction. These bits are used not only to initiate subfunctions of an instruction, but also to route data bits and addressing information within the pCPU controller. For example, certain DO instructions that have the C 1 bit asserted can be used to set an appropriate flip-flop in the Interface register; when the C1 bit is negated, the same DO instruction clears the related flip-flop. Therefore, the microprogram controls information flow between the interface and the read/write electronics. 5.2.3.2 Program Counter and Field Counter - The program counter and field counter, shown on page D6, determine the next instruction word to be placed in the memory buffer. The contents of the program counter are updated in one of two ways: 1. Incrementing the present count by one when processing an uninterrupted series of DO instructions, Open Scratch Pad instructions, and Branch instructions when the branch condition is not met. 2. Loading a completely new eight-bit address into the program counter. Signal PC LOAD EN L from the Branch Control Logic initiates such an operation during execution of either Branch instructions or the Jump instruction. The new address originates from the ROM itself or from Scratch Pad memory. When the ROM supplies the new address, it is contained in the location following that of the Branch or Jump instruction. The decision to increment the program counter or load a new eight-bit address is governed by the signals LD MB + CLK PC L and PC LOAD EN L. When LD MB + CLK PC L is asserted, the counter is incremented, and when PC LOAD EN L is asserted, a new address is loaded into the program counter. The field counter selects which of the six ROM fields contains the next instruction to load into the memory buffer. This counter can be incremented (e.g., when the firmware routine being executed spans two ROM fields) or parallel loaded (e.g., in execution of all Jump instructions). The field address (0 through 5) is conveyed over the four function select lines SEL 0 to SEL 3. 5.2.3.3 Instruction Decode Logic - The Instruction Decode Logic (page D8) is a combinational logic circuit that uses the two instruction field bits, INST 0 and INST 1, to generate the six signals (shown on Figure 5-9) that are asserted when one of the five instructions is loaded into the memory buffer. The DO signal is input t o the Do pulse generator; WBR, CBR, and JMP signals are input to the Branch Control Logic; and the LD SP ADDR REG signal goes to the Scratch Pad Address register. Instruction decoding is inhibited by setting the INST DIS flip-flop, which occurs when the ROM word is an address word as opposed to an instruction. Assertion of signal INST DIS H always occurs during a Branch or Jump instruction and a counter load operation. 5-1 6 h 5.2.3.4 Do Pulse Generator - Detection of a Do instruction by the instruction decoder and assertion of signal TP3 L will enable the Do pulse generator (page D5), which is a 74154 decoder. The function select bits determine which of the outputs is asserted. All outputs supply clocking to various flip-flops, counters, and shift registers, depending on the function select bits. If the select field is 0000, signal CLK IOB 0 is asserted; if the select field is 0001, signal CLK IOB 1 is asserted; etc. 5.2.3.5 Branch Condition Selector and Control The 74150 branch condition selector (page D8) is always enabled during a Branch instruction. The function select field determines which data line is selected for input to the Branch Control Logic. The output signals from the Branch Control Logic, PC LOAD EN L and LD MB + CLK PC L, are used to either increment the program counter or load in a new address. LD MB + CLK PC L is also used t o load the memory buffer. - The C 1 bit, which the firmware has converted t o data, is compared with the output of the branch condition selector. If the conditions match, the PC LOAD EN L and LD MB + CLK PC L signals are enabled. The WBR CLK CNTR L signal is asserted when a WBR instruction is decoded by the instruction decoder. 5.2.3.6 Scratch Pad Address Register and Scratch Pad - During execution of an Open Scratch Pad instruction, the function select field contains an address in the Scratch Pad. The four-bit function select field is input to the Scratch Pad Address register (page D3), which consists of four D-type flip-flops. The function select field appears at tlie output of this register upon assertion of the CLK SP ADDR REG L signal generated by the instruction decoder. The Scratch Pad (page D3) itself consists of two 7489s (64-bit read/write memory), capable of storing 16 eight-bit words. Data from the shift register is written into the address indicated by the Scratch Pad Address register when LD SCRATCH PAD L is asserted. Reading occurs when this signal is negated. Data read out is input to the Counter Input Selector Logic. 5.2.3.7 Counter Input Selector, Counter, and Shift Register - The counter input selector, counter, and shift register (page D3) act as buffering circuitry for information flow in and out of the Scratch Pad. Signals CO and C1 control operation of this logic. The counter input selector consists of two 8266 multiplexers that select eight parallel bits from either the ROM or the Scratch Pad, depending on the state of CO(1) H. If CO(1) H is asserted, the Scratch Pad data is selected; if CO(1) H is negated, the ROM data is selected. The state of CO is determined by the low order bit of the instruction code from the memory buffer. The outputs of the counter input selector are presented to both the program counter and the counter. During execution of a Jump instruction and Branch instruction when the branch conditions are met, a new address is loaded into the program counter. The control field of the instruction will determine the source of the new address. If the source is the ROM, the address is in the location following tlie instruction. If the source is the Scratch Pad, some previous calculation was performed t o determine the new address. The counter is made up of two 74161 synchronous four-bit counters. The output of the counter input selector is loaded in the counter if signal Cl(1) H is negated. If Cl(1) H is asserted, the counter increments upon detection of signal CLK CNTR L. During execution of a DO instruction, the Do pulse generator supplies the clocking signal if the select field is correct. An overflow condition, indicated by all 1s in the counter, is detected by assertion of signal CNTR OVFLW H, which is input to the branch condition selector. Data output from the Scratch Pad counter is loaded into the shift regsiter if CO(1) L is asserted and C l ( 1 ) H is negated. Data appears at the outputs after the positive transition of the clock input CLK SR L. When CO(1) L and Cl(1) H are asserted, data from the data separator is serially shifted into the shift register by signal CLK SR L. Therefore, input t o the Scratch Pad is either by way of serial data from the data separator or parallel data from the counter. The data from the data separator originates from the read/write electronics during access from the diskette. SRMSB, the MSB of the shift register, is exclusive-ORed with data [SEP DATA (1) L] and a missing clock indication [MIS CLK ( I ) L] from the data separator for input to the branch condition selector. SRMSB (1) H alone is also presented to the branch condition selector. 5-17 Bits can be shifted into the shift register via CLK SR L, CO, and C1. Signal SR LOAD H is asserted when CO(1) L is asserted and Cl(1) H is negated, allowing the shift register to be parallel loaded from the counter. With CO(1) H and Cl(1) H both asserted, SEP DATA from the data synchronizer and separator is serially input to the shift register. If CO(1) L is negated, I s and Os from the Cl(1) H bit stream are loaded into the shift register. In summary, CO determines shift or load of the shift register; C1 and SEP DATA are two serial bit streams. c1 co 0 0 1 1 0 1 0 1 Shift Zero Load Shift Register Shift One Shift SEPDATA 5.2.3.8 pCPU Timing Generator - The yCPU timing generator, shown on page D7, produces signals TP3 and TP4, which are used as timing signals for the rest of the pCPU controller. The 74H74 flip-flops are used as a wraparound shift register to derive TP3 and TP4 from the 20 MHz oscillator. TP3 and TP4 are 5 MHz signals with a pulse width of 50 ns. In normal operation, a recirculating 1 bit in this shift register causes TP3 to occur before TP4. Inputs to the maintenance module connector and signal INlT t PC L control operation of this shift register. 5.2.3.9 Sector Buffer and Address Register - The 2102 sector buffer, which is a 1024-bit MOS RAM, and the address register, composed of three 74161 synchronous four-bit counters, is shown on page D4. The address register is used as a loop counter for the microprogram as well as an address register for the sector buffer. The ten LSB inputs to the register are grounded, and the upper two MSB inputs are connected to signal CO(1) L. When used as a loop counter or an address register, Cl(1) H is negated and the ten LSB bits of the register are zero. With Cl(1) H asserted, the count i s incremented by signal CLK BAR L, which occurs once per disk data bit. If CO(1) L is asserted, the two MSB bits are also zero, enabling the counter to count 4096 clocks before the SEC BUF OVFLW H signal is asserted. If CO(1) L is negated, the two MSB bits are one, enabling the counter to count only 1024 clocks before the SEC BUF OVFLW H signal is asserted. Reading or writing is controlled by a flip-flop. If CO(1) H is asserted and CLK SEC BUF L is asserted, the write enable line to the 2102 is asserted by setting the flip-flop. The CLK SEC BUF L signal is asserted twice per bit, once to set the flip-flop and once again to clear it. It is cleared when CO(1) H is negated and the second CLK SEC BUF L pulse is asserted. Data to be written in the sector buffer is contained in signal SEP DATA (1) L from the read/write electronics while reading from the diskette; the data is contained in signal DATA I L from the interface while writing on the diskette. In reading data out of the sector buffer, the write enable line is negated, and the serial data stream appears at SEC BUF OUT (1) H as the Buffer Address register is incremented. 5.2.3.10 CRC Generator and Checker - Each sector has a two-byte CRC character for the header field and another two-byte CRC character for the data field (Figure 1-11). The CRC generator and checker shown on page D7 produces the CRC character to be written on the diskette and checks the CRC character read from the diskette. A 16-bit shift register with properly placed exclusive-OR gates implements the polynomial divide algorithm. The CLK CRC L signal clocks the shift register so that the entire header field or data field is divided by a selected CRC divisor which is 2' + 2' + 25 t 1. The mathematical expression for this operation is: ' an2n t . . . t a,23 + a,22 + a,2l + a020 where a = coefficient of the bit position n = number of bit positions in the data block 5-18 In writing data on the diskette, each bit is shifted through the CRC generator. This data stream appears on signal Cl(1) L and is produced by the firmware. Signal CO(1) L negated will enable this data stream to the CRC register. After the data field has been written, the CRC register contains the remainder of the division, which is the two-byte CRC character that is written after the data field. During a read operation, the data stream from the data synchronizer and separator, SEP DATA (1) L, is enabled to the CRC register. This data stream is manipulated in the same way as in the write operation. When the CRC character on the diskette is encountered, it is shifted into the CRC generator as if it is part of the data stream. If all the data and CRC bits that were previously written on the diskette are retrieved, the CRC register, which contains the remainder of the division, should be zero. The contents of this register are input to the condition selector, where the firmware checks to see that the register contents are all zero. -. 5.2.3.1 1 Data Synchronizer and Separator -- The data synchronizer and separator (page D4) separates clocking information from data, identifies missing clocks, and synchronizes the clock to the data. Clocking and data are mixed in the output data stream (Paragraph 1.3.2). In the read/write electronics, one-shots set to produce 200 ns pulses for each transition convert the flux reversal signals to a series of pulses as shown in Figure 5-10. The clock pulses can be separated from the 1 data pulses as shown. If no data pulse occurs between two clock pulses, a 0 bit is indicated. Notice that there is a clock pulse every 4 ps. FLUX REVERSAL STREAM SEPCLoCK E M I S CLK CP-l5?9 Figure 5-10 Data and Clock Separation The data synchronizer and separator produces three outputs: separated clock (SEP CLK), separated data (SEP DATA), and missing clock (MIS CLK). SEP DATA is one bit position delayed from the flux reversal stream. In the example shown in Figure 5-10, there are no missing clock indications because the RAW DATA stream does have a clock pulse every 4 ps. The MIS CLK indication is used in locating the ID address mark of the sector header field and the data or deleted data mark of the sector data field. (See Figure 1-9.) Each of these data marks is a unique sequence of data and missing clocks that the microprogram identifies by examining the data synchronizer and separator circuit. Figure 5-1 1 is the ID address mark which contains missing clocks. Since clocks must occur every 4 ps, the missing clocks can be identified as SEP CLK output will include clock pulses that are separated by 6 ps and will be out of synchronization with the real clock pulses. SEP DATA will indicate a 1 bit when a data pulse exists between SEP CLK pulses; it will indicate a 0 where there is no data pulse. As in the first case, SEP DATA is delayed by one clock period. MIS CLK is also delayed by one clock period and occurs when SEP CLK pulses occur more than 5 ps apart. 5-19 FLUX REVERSAL STREAM II I IcIIIIII I I RAW DATA > c oc 1 c 1 E l E l I C 1 c 1 C O C oc SEP CLK L SEP DATA M I S CLK + P-4psec CP-1530 Figure 5-1 1 ID Address Mark Data Separation The data synchronizer and separator uses two timing windows to separate data from clocks. If a pulse occurs within 3 p s from a valid clock pulse, it is a data 1 bit. If it occurs between 3 and 5 p s from a valid clock pulse, it is the next clock pulse. If it occurs after 5 p s , there was a MIS CLK. The logic is shown on page D4. The timing windows are produced by two pairs of 74193 counters, which are preset to a given count and clocked by the 20 MHz clock after it has been divided down to 10MHz. The carry of these counters is used to clear flip-flops to provide timing indications. The END WIND L signal from the 3 p s timer clears the 74H103 flip-flop. The two following 74S74s synchronize the data to the 20 MHz clock. The SEP DATA output delayed by one SEP CLK clock period appears at the output of the 74H103. MIS CLK is produced when the 5 p s timer issues a carry to clear the 74H103. SEP CLK is produced by the 74H103 flip-flop, which is cleared by a state of the 3 p s timer. The following flip-flop synchronizes the SEP CLK signal with BTP3H. 5.2.3.12 Output Circuit - The output circuit shown on page D5 consists of the interface/drive output buffer, drive output buffer, interface bus drivers, disk bus gating, and index synchronizer. Signals CLK IOBO to CLK IOB6 from the Do pulse generator are used to clock the flip-flops in the interface/drive output buffer. The interface bus drivers and the disk bus gating outputs are appropriate combinations of signals from the interface/drive output buffer that are output to the interface or to the read/write electronics. IOBO selects the output bus to which the rest of the IOB signals are to be assembled. A further explanation of these signals is given in Paragraphs 5.1.3 and 5.1.4. The drive output buffer consists of three flip-flops, FLAG, UNIT, and HD LD, which respectively produce signals DRV WRT DATA, DRV SEL 1 H, and DRV HD LD H to the read/write electronics. The index synchronizer consists of two flip-flops used to synchronize the SEL INDEX H signal from the read/write electronics. The flip-flops are cleared and SYN INDEX (1) H is negated by the Do pulse generator. SYN INDEX (1) H will be asserted by the first TP3 after the SEL INDEX H assertion and input to the branch condition selector. 5-20 <- -. , , , 5.2.4 Microprogram Instruction Repertoire - The firmware within the R X O l Read-only Memory (ROM) employs five different instruction types to implement the various control sequences used to process each function code. Regardless of type, an instruction is made up of eight bits and contains three fields as shown below: 07 \ I 05 06 I I 0,4 L v 03 02 I I 01 A v INSTRUCTION SELECT CODE FIELD 00 J " CONTROL FI €LD FIELD CP-I532 The RXOl pCPU controller distinguishes between the different instruction types by the content of the instruction code field. The select field is used to define subfunctions of a single instruction type. This field is also used for addressing locations in the pCPU Scratch Pad memory. The control field allows for still further definition of the instruction purpose and, in one case, serves to distinguish between two instructions having the same instruction field code. The five basic instructions executable by the pCPU controller are: I. DO instruction 2. Conditional Branch 3. Wait Branch 4. Open Scratch Pad 5. Jump 5.2.4.1 DO Instruction format is: - The most frequently execu :d pCPU firmware in: ruction is the DO in> ruction. Its \ 07 06 0 0 v INSTRUCTION CODE FI € L D 05 A 03 04 " SELECT FIELD 00 01 02 A " J CONTROL FIELD CP-I533 Through use of different function select codes, the DO instruction is used to assert/negate many of the interface lines going to both the interface and the read/write electronics. The DO instruction is also used in shifting data bits to/from the interface for the Empty/Fill Buffer function and writing data bits onto the disk for the Write Sector function. Furthermore, the DO instruction is used for function decoding, parity checking, CRC field generation/detection, and numerous housekeeping functions inherent in the various pCPU controller sequences. A complete breakdown of all DO instruction subfunctions is given in the RXS/RXll Print Sets. 5-21 5.2.4.2 Conditional Branch - The Conditional Branch instruction is used to sample status conditions within the RXO1. On detection of a given condition, a branch to another area of the ROM occurs. The format of the Conditional Branch instruction is given below: 07 06 0 1 05 04 02 03 00 01 0- I I N S T R U C T I O N CODE FIELD I I I DEFINES C O N D I T I O N BEING SAMPLED 1 - 1 BRANCH A D D R E S S T A K E N FROM ROM B R A N C H ADDRESS TAKEN FROM OPEN SCRATCH PAD - BRANCH W H E N CONDITION IS T R U E - CP I534 Many conditions are sampled by the Conditional Branch instruction; examples are 12-bit mode, drive ready, read/write head located at track zero, and two index pulses have occurred. A complete breakdown of all Conditional Branch subfunctions is given in the RX8lRXll Print Sets. 5.2.4.3 Wait Branch - The Wait Branch instruction is similar to the Conditional Branch instruction; the difference is that the Wait Branch instruction is used to stall pCPU controller operations until a given condition becomes true. The format of the Wait Branch instruction is given below: 02 04 00 01 -T- I FIELD DEFINES COND IT ION BE1 NG SAMPLED BRANCH ADDRESS T A K E N FROM ROM I - BRANCH ADDRESS TAKEN FROM O P E N S C R A T C H PAD 0- 1 - BRANCH W H E N CONDITION IS T R U E CP-I535 A breakdown of all Wait Branch subfunctions is given in the RX8/RX11 Print Sets. 5.2.4.4 Open Scratch Pad - The Open Scratch Pad instruction is used to address (select) any of 16 locations in the pCPU controller prior to executing a read/write operation. The format of the Open Scratch Pad instruction is given below: 07 06 INSTRUCTION CODE F I ELD 05 04 03 SCRATCH PAD ADDRESS 02 01 00 MUST BE USED ZERO CP-1536 5-22 Some of the Scratch Pad memory locations are dedicated as fixed storage locations. For example, the first two locations store the current track address for units 0 and 1, respectively. Error and Status register information is also stored in fixed Scratch Pad locations. A breakdown of all Scratch Pad locations and their uses is given in the RX8/RXll Print Sets. 5.2.4.5 Jump - The Jump instruction has the same instruction code as the Open Scratch Pad instruction, but is distinguished from the latter by the presence of a one in the bit 1 location. The Jump instruction format is shown below: 1 1 0 L INSTRUCT I O N CODE FIELD SELECT ANY OF S I X ROM FIELDS - 0 - JUMP ADDRESS TAKEN 'L FROM R O M I - JUMP ADDRESS TAKEN FROM OPEN SCRATCH PAD MUST BE A 1 . D I F F E R E N T I A L BETWEEN JUMP A N D OPEN SCRATCH PAD INSTRUCTION CP-IS37 5.2.5 Microprogram Flowchart Description Since the microprogram controls the operation of the R X I l and RX8 Floppy Disk Systems, it is possible to understand the hardware operation and not know how the system operates. This section gives an explanation of pCPU controller operation as implemented by the microprogram. The flowcharts presented in Figures 5-12 to 5-21 serve to guide the reader through the rather complex microprogram which is listed in its entirety, along with a complete instruction set and error code listing, in the RX1 l/RXS Print Sets. Figure 5-12 shows the operation of the system in response to an Initialize or Power Low signal, which clears the system. Sector 1 of track 1 of drive 0 is located and read. The programmer can put anything he wants in this sector to aid him in programming. Bus direction is established as being from drive to CPU and eight bits of status information are moved to the interface. The Done flag is set and the controller waits for the RUN signal from the interface. If this signal is not detected within 46 ms, the head is unloaded. Once the RUN signal is detected, the Done flag is cleared and either %bit or 12-bit mode is detected. Parity is checked and, if found to be incorrect, an error condition is indicated. Function decoding of bits 1-3 of the RXCS results in entering one of the seven function flowchart branches. The Empty and Fill Buffer functions (Figure 5-13) are similar except that the Empty Buffer function occurs when the bus direction is OUT and data moves from the drive to the CPU. The Fill Buffer function occurs when the bus direction in IN and data moves from the CPU to the drive. In IN mode, the TR (Transfer Request) signal is set and cleared after the interface responds with a RUN signal. Twelve- or eight-bit mode is checked, and either nine or thirteen bits are moved from the interface to the buffer. The extra parity bit is checked. In OUT mode, no parity bits are moved. The byte count is incremented and checked to see if the buffer is full for a Fill Buffer function or empty for an Empty Buffer function. If not, the cycle repeats until the condition is met, at which time status is checked and DONE is asserted. Now another function can be decoded. Decoding a Read Sector function (Figure 5-14) will cause a branch to a subroutine to get the diskette address and find the track and sector. Three tries are allowed to find the data mark or a format error will be indicated. Once it is found, the Data Mark bit will be set to either a 0 or a 1, depending on whether the Deleted Data Mark bit is set. A CRC character is generated as 1024 bits are loaded into the sector buffer. If the CRC is correct, status is checked by a branch back to the DONE condition; otherwise, an error will be indicated. 5-23 The Read Status function (Figure 5-14) checks to see if the Drive Ready conditions are met by calling the CHKRDY subroutine. If they are, the Drive Ready bit of the Status register is set, and the system status is checked. If not, the Drive Ready bit is not set, and the system status is checked by a branch to the DONE condition. - The functions Write Sector and Write Deleted Data Sector (Figure 5-15) are similar except that the Deleted Data flag is set in the Write Deleted Data Sector function. The diskette address and sector are found and WRITE GATE and ERASE GATE signals are sent to the read/write electronics. The sector must be correctly formatted with proper header, header CRC, 1024 bits of data, and data CRC. After the WRITE GATE and ERASE GATE signals are negated and the next header is located, a branch is made back to the DONE condition to check status. The FINDTR subroutine (Figure 5-16) locates the track as specified by the diskette address. Status and Error Scratch Pad locations are cleared. The Drive Select bit is interrogated to determine which drive is being used. The sector address is moved from the interface to the controller shift register by the subroutine GETWRD, and its parity is checked. Then the eight-bit track address is moved from the interface to the target track register, and parity and track legality are checked. The current track address of the drive selected is compared with the target track address by the subroutine MAGCOM to determine if the head must step in or out to reach the target track. Head stepping is accomplished by the subroutine STEPHD once the proper track is located and the head is loaded. If the track address is greater than 44, the low write current level is selected. If the track address is less than 44, the high write current level is selected. Subroutine FINDSE locates the target sector. The FINDHD and GETDAM subroutines (Figure 5-17) locate the header field and identify the data address mark. The data address mark is a unique combination of data, clocks, and missing clocks for which the microcode searches. Figure 5-18 contains the routines HDRCOM, BDSRT, and BADHDR, which are continuations of the FINDHD subroutine. The routine HDRCOM is used in comparing a located header with a desired header. A sector address compare and a track compare are made. The BDSRT and BADHDR routines count the number of retries for finding a data mark or an ID address mark. If too many tries are made, the appropriate error codes are set. Figure 5-19 contains the four subroutines, DELAY, FINDSE, WRTOS, and GETWRD. The DELAY subroutine produces a delay period as set by the delay multiplier that resides in the shift register. The DELAY subroutine is called throughout the microcode to establish waiting times, such as a head load wait of 20ms. The FINDSE subroutine uses the sector address to locate the correct sector by calling the subroutine FINDHD to find the correct header. The subroutine WRTOS writes the specified number of zeros indicated in the shift register. The GETCMD and GETWRD subroutines differ in that a Transfer Request must be set for a GETWRD. The microcode calls the subroutine WAITRN to wait for a RUN signal from the interface. Error and Done flags are cleared, and either 12 bits or 8 bits are transferred. Parity is checked and the appropriate error code results if a parity error is detected. Figure 5-20 shows the flowchart for the STEPHD, WAITRN, and MAGCOM subroutine. The STEPHD subroutine moves the head in or out a certain number of tracks as indicated by the counter. When the head is positioned over the desired track, the head is loaded, and a 20 ms delay occurs before the microcode exits from the subroutine. The WAITRN subroutine waits for the RUN signal from the interface. If RUN does not come within 45.87 ms, the head is unloaded, Transfer Request is cleared, and an exit is made out of the subroutine. If RUN does occur within 45.87 ms, Transfer Request is cleared and an exit is made out of the subroutine. The MAGCOM subroutine compares track addresses and is called by the FINDTR subroutine. Figure 5-21 shows flowcharts for the DIF and CHKRDY subroutines. The DIF subroutine determines the difference between target track and desired track, so that the STEPHD routine can move to the right track. The CHKRDY subroutine checks for a Drive Ready condition during an Initialize sequence or during a Read Status function. 5-27 5.2.6 Read/Write Electronics A detailed block diagram of the read/write electronics is shown in Figure 5-22. The read/write electronics can be separated into four functions: 1. Diskette position 2. Head read/write circuitry 3. Head load control and solenoid drivers 4. Stepper motor control and motor drivers 5.2.6.1 Diskette Position - Track 0 and index hole detection are accomplished by an LED-phototransistor pair. There are separate circuits for drive 0 and drive 1 for a total of four sensing circuits. A schematic diagram of the circuitry appears on page D4 of the RXS/RXI 1 Print Sets. The six sensor indicator lines are input to a 74157 data selector shown on page D6, which outputs track 0 and index hole sensing information to the pCPU controller. The 74157 is data-selected by the SEL 1 H signal from the pCPU controller, indicating which drive is being used. 5.2.6.2 Head Read/Write Circuitry - The head read/write circuitry is shown on page D3 and is composed of a write section and a read section. Head writing is controlled by six signals from the pCPU controller as shown in Figure 5-22. Each of these signals is further explained in Paragraph 5.1.4. During a write operation, D6 WT GATE H initiates a Write command, and D6 ERASE H activates the tunnel erase drivers. The data stream D6 WT DATA H is amplified by the head write current amplifiers and directed to the proper drive by D6 SEL DKO H and D6 SEL DKI H signals. Head writing is inhibited by D6 SEL WT PROT L or D6 DC LO L signals. The signal ABOVE TK 43 H controls proper write current to the heads. Head reading is accomplished by the circuitry shown on page D3. The diode and resistor circuitry on the R/W BUS + and R/W BUS - protect the 733 preamplifier during a write operation. The filter following the preamplifier eliminates unwanted head noise. The next 733 amplifier stage drives the peak detection circuitry, composed of a differentiator and crossover detector (1414). The output of the 1414 is fed to 74123s (monostables), which are used as pulse shapers. RAW DATA L, which represents digitized data from the diskette, is sent to the pCPU controller. 5.2.6.3 Head Load Control and Solenoid Drivers - Head load control and solenoid driver circuitry is shown on page D6. A D6 LOAD HEAD H signal from the pCPU controller causes either head load solenoid to be activated, depending on whether signal D6 SEL DKI H is high or low. D5 INIT L, an initialize signal from the stepper motor control, will reset the drive and cause the head to unload. 5.2.6.4 Stepper Motor Control and Motor Drivers - Stepper motor control and motor driver circuitry is shown on page D5. A separate and identical control section and motor driver section exists for each drive. Signals D6 SEL DKI H and D6 SEL DKO H determine which drivers to activate. D6 OUT H determines the direction of movement of the head in response to the pulse D6 STEP L from the pCPU controller. If D6 OUT H is asserted, the head moves outward toward track 0; if it is negated the head moves inward toward track 77. The two 7473s and the 7450 in the two control sections are connected as upldown counters to control the four motor driver transistors. In moving OUT, the counter counts up to turn on the driver transistors to move the head outward. In moving IN, the counter counts down to turn on the driver transistors to move the head inward. Each track position requires two phases of the counter. Therefore, two step pulses are required for each track moved. 5-36 N m ‘D ” P I 0 Y 0 -1 W v) I 7 1 1 LL 0 r- aii-u a w E v) 7- f fl 0 Y 0 Y 0 0 Y 0 x n 1 m J I n a w s r 0 I n a - 0 g:: 5-37 W a a o w XInv) a w a a nv) 5.2.7 Mechanical Drive The mechanical drive consists of four major parts: 1. Drive mechanism 2. Spindle mechanism 3. Positioning mechanism 4. Head load mechanism The complete mechanical structure of the drive is shown in Figure 5-23, and each section is described in the following paragraphs. CP-1138 Figure 5-23 Disk Drive Mechanical System 5-38 5.2.7.1 Drive Mechanism - The drive system provides rotational diskette movement using a single-phase motor selected to match primary power of the controller system (Figure 5-24). The diskette drive attains ready status within 2 seconds of primary power application. A cooling fan is mounted on one end of the drive motor shaft. Rotation of the diskette is provided by a belt and pulley connected to the other end of the motor shaft. The drive pulley and belt are selected for either 50 or 60 Hz power t o achieve a diskette rotational speed of 360 rpm. See Paragraph 2.2.3.2 for complete input power modification requirements. SPINDLE D R I V E PULLEY IMPELLER DRIVE MOTOR DRIVE BELT , D R I V E MOTOR PULLEY CP-1595 Figure 5-24 Drive Mechanism - 5.2.7.2 Spindle Mechanism - The spindle mechanism consists of a centering cone and a load plate. In the unload position, the load plate is pivoted upward, creating an aperture through which the floppy diskette is inserted. In this position, the centering cone disengages the diskette from the drive mechanism. To load a diskette, the operator inserts the floppy diskette and presses down on the load handle, which latches the load plate in the operating mode. The centering cone is mechanically linked to the load plate and is activated at the same time. (Figure 5-25). The centering cone is an open splined nylon device that performs two functions: 1. Engages the diskette media and drive mechanism. 2. Positions the diskette media in the correct track alignment. As the load plate is pivoted to the load position, the centering cone enters the floppy diskette center. At approximately 80 mils from the fully down position, a centering cone expander is automatically activated. This device then expands the centering cone, which grips the inner diameter of the diskette media in the correct track alignment. The track 0 position serves as the diskette drive reference track. This position is sensed by a phototransducer, which generates track 0 status. This status is sent to the controller for initial track positioning. The controller generates step pulses to position the carriage from the current track to a new track. 5.2.7.3 Positioning Mechanism - The positioning mechanism comprises a carriage assembly and a bidirectional stepper motor (Figure 5-26). The stepper motor rotational movements are converted to linear motion by the rotor helix drive. ,---- The read/write head mount rides in the grooved helix shaft and is held in horizontal alignment by the way. When the stepper motor is pulsed, the helix drive rotates clockwise or counterclockwise, moving the mount in or out. 5-39 EXPANDER SPRING CENTERING CONE I CENTERING CONE EXPANDER CENTERING CONE -SPINDLE nuB DRIVE SPINDLE DRIVE PULLEY CP - 1575 Figure 5-25 Centering Cone and Drive Hub READ/WRITE HEAD Figure 5-26 Positioning Mechanism 5-40 ,- The stepper motor includes four pairs of quadrature windings. In detent, current flows in one winding and maintains the rotor in electro-magnetic detent. For positioning, one or more step pulses are sequentially applied to quadrature windings, causing an imbalance in the electromagnetic field. Consequently, the stepper motor rotor revolves through detent positions until the step pulses are halted. The rotor then locks in that position. The sequence in which the stepper motor quadrature windings are pulsed dictates rotational direction and, subsequently, higher or lower track addressing from a relative position. 5.2.7.4 Head Load Mechanism - The head load mechanism is basically a relay driver and a solenoid. When activated by signal LD HD from the controller, the spring-loaded head load pad is released and rests in parallel alignment with the floppy diskette surface. Part of the casting provides the lower alignment dimensional surface, while the head load solenoid bar provides the upper alignment surface. In the load position, the read/write head tang rides between these two alignment surfaces and keeps the read/write head in contact with the diskette surface. The load pad is located behind the read/write head and holds the floppy diskette flat against the lower alignment block. To minimize diskette surface and head wear, the head is automatically disabled by the controller if no new command has been issued within 48 ms. Head settling time is 20 ms. 5-4 I CHAPTER 6 MAINTENANCE 6.1 RECOMMENDED TOOLS AND TEST EQUIPMENT Table 6-1 lists the recommended tools and test equipment for maintenance of the RX8/RX1 1 Floppy Disk System. -Table 6-1 Recommended Tools and Test Equipment Equipment h I Manufacturer and Modelpart No. Multimeter Triplett 310 or Simpson 360 Oscilloscope Tektronix 453 Oscilloscope Probes, Voltage (X10, two required) Tektronix P6010 Field Service Tool Kit DEC 29-18303 Head Cleaning Kit (includes TEX pads and wand) DEC 22-00007 DEC 29-19557 DEC 29-19558 RX8/RXll Service Kit DEC-0-LOG DEC ECO log and computer on-line synopsis 6.2 CUSTOMER CARE Although there is no scheduled preventive maintenance, there are two tasks that should be performed on an as-needed basis. 1. Clean the exterior of the RXOl with a damp cloth, using either a solution of nonabrasive cleaner or mild soap. 2. Examine the air filter (Figure 6-1) and clean the element as necessary. Use water and a mild soap, drying thoroughly before reinstalling. 6-1 JUMPER P1 SHlPPl N G FILTER POWER PLUGS FILTER RESTRAINT (RED) 7436-12 Figure 6- 1 EX0 1, Rear View 6.3 REMOVAL AND REPLACEMENT The following steps define the procedures for replacing the subassemblies of the RX8lRXll Floppy Disk System. 6.3.1 Module Replacement Floppy Disk Controller, M7726 (Figure 6-6) 1. Remove power from the RXO1. 2. Unscrew the two captive screws on the right side of the module and raise the module to the servicing position. 3. Remove the plugs in connectors J1, J2, and J4. 4. Lower the module and remove the three screws holding the module onto the hinge. 5. Remove the module and remove the two captive screws. 6. To install a module, insert the two captive screws removed from the original module and perform the reverse of the steps 1-5. 6-2 Read/Write Control, M7727 (Figure 6-6) 1. Remove power from the RXO1. 2. Raise the floppy disk control module to the servicing position. 3. Remove the plugs from connectors on the module, ensuring that they do not drop into the drive. 4. Remove the six screws holding the module to the frame and remove the module. 5. To install a M7727, replace the screws and plugs removed in steps 3 and 4, ensuring that they are reinstalled into the correct connector (Table 6-2). Table 6-2 M7727 Connectors ~~ Connector J1 52 DKO(P3) DKO(P4) DKO(P5) DKO(P6) DKO(P7) DKO(P8) DK 1(P3) DKl(P4) DK l(P5) DKl(P6) DKl(P7) DK1 (P8) I 1 ~ 1 Description Disk drive interface cable Power from H77 1 power supply Head cable Stepper motor Head load solenoid Index signal Track 0 signal Write protect* Head cable Stepper motor Head load solenoid Index signal Track 0 signal Write protect* I *Not used. H771 Power Supply Regulator, 70-10718 (Figure 6-6) 1. With the power off, remove the plug from the regulator. 2. Unscrew the leads going to the capacitors, checking with the H771 prints to ensure that the wiring matches the prints. 3. Remove the plugs from the M7726 and M7727. 4. Remove the six screws holding the regulator to the power supply chassis. 5. Replace the regulator by performing the reverse of steps 1 4 , 6-3 6.3.2 Drive Placement (Figure 6-6) 1. With the power removed, remove the power plug in the rear of the drive (Figure 6-1). 2. Remove the plugs for this drive (Table 6-2). 3. Loosen the six screws holding the drive to the chassis. 4. While holding the drive, remove the screws from the four corners. 5. Carefully remove the two remaining screws without allowing the drive to drop down. 6. Slowly lower the drive, guiding the wiring as the drive is lowered. 7. To install a drive, place the two center screws in the holes in the chassis. 8. Raise the drive, guiding the wiring through the hole. 9. With the drive centered, start the two screws carefully so as not to cross-thread them. Do not tighten these screws all the way. 10. Start the remaining screws, being careful not to cross-thread them. 1 1. Tighten all screws. 12. Insert the plugs listed in Table 6-2. 13. Insert the power plug. 6.4 CORRECTIVE MAINTENANCE Figure 6-2, Sheet 1, illustrates the method to be used when correcting a fault in the RX8/RXl I system. The proper use of the KM1 1 module is described in Paragraph 6.4.2. 6.4.1 Errors 6.4.1.1 Interface Diagnostic in Memory - Use Figure 6-2, Sheet 2. 6-4 7436-1 Figure 6-3 BC05L-15 Cable (Reversed) (Sheet 1 of 2) ,-. 6-7 7436-16 Figure 6-3 BCOSL-I 5 Cable (Correctly Inserted) (Sheet 2 of 2) 6-8 6.4.1.2 Diagnostics Not in Memory - Since the RXS/RXlI may be the only input device for a system, there may not be a way to input the diagnostics into the system. In that event, the following routines (Figures 6-4 and 6-5) and the use of the Initialize Diagnostic Routine residing in the controller’s firmware may aid in the repair of the floppy disk system. 1. Load the following routines (Figures 6-4 and 6-5) into main memory. 2. Starting at location 200 (RX8) or 1000 (RX1 l), initiate the program. 3. Examine the status locations for failure information. ESTAT,RI DSTAT,RO EREG,R2 DRSTAT 4. A good pass with a media installed in drive 0 will be: EST AT/Os DSTAT/48 or 1048 EREG/Os DRSTAT/lDI8 or 3048 5. Neither the read/write controller module nor the drives will cause the program to continuously loop on the first check of the Done flip-flop. 6. If the program halts at any location other than the halt at the end of the program, the controller or interface module could be at fault. 7. If the program halts at the end of the program with the following status, the controller is most likely at fault. ESTAT/48 DSTAT/Os E REG /6 08 DRSTAT/X 8. All other valid error status will probably be caused by the read/write controller module, the drive, or the floppy disk controller module. It should be noted that a Read Sector is not performed on drive 1; therefore, it is possible for a fault t o inhibit reading on both drives without reporting that information. 6.4.2 KM1 1 Usage The KM1 I maintenance module may be used to single-step through a routine in the floppy controller’s firmware. It should be noted that at times the controller will be accessing a signal produced from the media; in this case, the KM1 1 cannot single-step the microprogram. For the correct method of inserting the KM1 1, refer to Figure 6-6. The representation of the lights and use of the switches is shown in Figure 6-7. To start a functional routine, the command must be issued from the central processor. 6-9 0200 0201 0202 0203 0204 0205 0206 0207 0210 0211 0212 0213 0214 0215 0216 0217 0220 0221 0222 0223 0224 0225 0226 0227 0230 6771 6772 6774 6775 6777 0200 6775 5200 6774 5207 6772 3227 5211 6772 3226 1225 6771 6775 5213 6774 7410 7402 6772 3230 7402 6777 5200 0016 0000 0000 0000 /RX8 STATUS ROUTINC LCD-677 1 XDR26772 SER-6774 SDN-6775 INIT-6777 *0200 SDk JMP .-1 SER JMP .t4 XDR DCA ERSTAT JMP .t3 XDR [)CA DNSTAT TAD RDEREG LC D SDN JMP .-1 SFR SKP HLT XDR DCA EREG HLT INIT JMP 200 RDEREG, 0016 UNSTAT. 0 FHSTAT, 0 EHEG, 0 /SKIP ON DONE FLAG /WAIT F(1R FLAG /SKIP ON ERROR FLAG /BRANCH I1N NO E R R O R /TRANSFER DATA HXOl STATUS TO AC /SAVE I N LOCATION ERROR STATUS IHRANCH IJVER THIS HASH RXOl STATUS TO AC /TRANSFER DATA /SAVE I N LOCATION D O N E STATUS /GET HFAD ERROR REGISTER COMMAND /LOAD THE COMMAND REGISTER /SKIP O N DONE FLAG /WAIT F O R DONE FLAG /SKIP ON ERROR / I1NC I1N D I TI ON AL S K I P /FATAL ERROR FAILURE TO EXECUTE / A "READ ERRClR REG" COMMAND RXOl ERROR REG TO AC /TRANSFER DATA /SAVE I N LOCATION ERROR REG IREPLACE NITH NOP (7000) TO LOOP / I N I TI AL I ZE RXO 1 /LOOP - - - - S Figure 6-4 RX8 Status Routine :PXll STATUS ROUTINE : R O = STATUS R E G I F DONE COMES UP 6 NO ERROR FLAG :R1 = STATUS REG IF DONE. COMES UP 6 ERROR FLAG :R2 = RXOl C:RROR RLGISTEH CONTENTS (SPECIFIC t R R O R CODE) RXCS=177170 RXDHr177172 001000 001006 001010 001014 001016 001022 001030 001036 001040 001044 001 046 177170 177172 000000 000001 000002 001000 032767 001774 005767 100424 010067 012767 032767 001774 005767 100001 000000 001050 001054 016702 000000 176116 001056 001064 OOl06b 001072 012767 000745 016701 000753 000001 040001 Ro=%o 000040 176162 START: 176140 17b132 READ: READl: 176154 176150 000017 000040 176124 176100 READ2: 176104 Rl=%l R2:%2 .=loo0 BIT X40,RXCS HE0 START TST RXCS B M I INITEH VOV R0,RXDR MOV X17,RXCS BIT I40,RXCS HE0 READl TST RXCS BPL READ2 HALT MOV RXDH,R2 HALT :TEST DONE BIT :WAIT F O R DONE :TEST ERROR BIT ( M S B ) ;RRANCH TO INITER ON INITIALIZE ERROR ;PUT DONE STATUS I N R O ;ISSUE READ ERROR REG COMMAND S GO BIT :TEST DONE BIT :WAIT F O R DONE :TEST ERROR BIT (MSH) :RRANCH TO READ2 IF NO ERROR ERROR OCCURED :FATAL ERROR :IN "RFAD ERROR REG" COMMAND :PIIT SPECIFIC ERROR CODE IN R2 REPLACE WITH NOP (240) TO LOOP :NORMAL HALT - MOV X40001,RXCS :ISSUE R X O 1 INITIALIZE h GO BIT BR START :START OVER INITER: MIIV HXDB,Rl :PUT E R R I I S STATUS I N R 1 R R READ :GO READ ERROR REGISTER .END Figure 6-5 RX11 Status Routine 6-10 ,-- Figure 6-6 KM1 1 Maintenance Module Inserted 6-1 1 I HALT RUN ENAB INSTI CONTINUE co CI ERROR HLT INSTO - I PC7 FIELD I PC0 -- PROGRAM COUNTER UNUSED D SELECT F I E L D I COUNTER I I CP-1543 Switch RUN ENAB CONTINUE ERROR HLT Function ON: M7726 Clock OFF: Maint. Clock Pulses (Continue) ON: Advance Controller Firmware Once OFF: ON: Halt Controller When Error Detected OFF: Do Not Halt On Error Condition Lights Function HALT INST 1 and 0 SELECT FLD CO and C1 FIELD PROGRAM COUNTER (0-7) COUNTER (0-7) Firmware Halted Instruction Bits Selects 1 of 16 Conditions (Depends on Instruction) Control Functions (Depends on Instruction) ROM Field (Halted) Address + I of Instruction Displayed Displays Contents of Counter Register Figure 6-7 KM1 1 Light and Switch Definitions for RXO1 6-12 Table 6-3 Power Supply Output Voltages Voltage Tolerance Measured At +5 Vdc 2 +4.75 Vdc P1-4 P2-4 +9.5 Vdc 2 +9.0 Vdc P2-7 +24 Vdc >, +23.6 Vdc < +28.0 Vdc Ripple < 1.2 V (p-p) P1-1 -5 Vdc 2 -4.6 Vdc P1-6 <+ s . xv a c Ripple < 200 mV (p-p) < +10.3 Vdc Ripple < 2.0 V (p-p) < -5.6 Vdc Ripple < 200 mV (p-p) + I O Vac J1-1,3 +24 Vac 51-2.4 NOTE This table should be used in conjunction with the DC Power Checks performed with Figure 6-2, Sheet 1 . 6-13 I I I I I I I Reader's C o m m e n t s R X 8 / R X l l FLOPPY DISK SYSTEM MAINTENANCE MANUAL EK-RXO1-MM-PRE2 Your comments and suggestions will help us in our continuous effort to improve the quality and usefulness of our publications. What is your general reaction to this manual? In your judgment is it complete, accurate, well organized, well written, etc.? Is it easy t o use'? What features are most useful? Iw 15 il0 What faults d o you find with the tnanual? !- I! 0 b I? 'E Does this manual satisfy the need you think it was intended to satisfy? Docs it satisfy yorrr nccds? I ! I I I ,---- I I Why? Would you please indicate any factual errors you lime found. Pleasc dcscribc your position. N;I iilc Organization Stscct Departmcn t City State Zip or Country -------- Do Not Tear - F o l d Hereand Staple - - - - - - -- . FIRST CLASS PERMIT NO. 33 MAYNARD, MASS. BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILED IN THE UNITED STATES Digital Eqiiipiiirnt Corporation Technicnl Dociiinciitatioii Drpirtnieiit 146 M a i i i Strccl Maynard. Mnswchusetts 01754
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies