Digital PDFs
Documents
Guest
Register
Log In
AA-H352B-TK
May 1981
342 pages
Original
12MB
view
download
Document:
RSX-20F Nov81
Order Number:
AA-H352B-TK
Revision:
0
Pages:
342
Original Filename:
AA-H352B-TK_RSX-20F_Nov81.pdf
OCR Text
TOPS-10/TOPS-20 RSX-20F System Reference Manual AA-H352B-TK Novem ber 1981 This reference manual describes RSX-20F, the operating system that runs on the PDP-11 140 front-end processor of KL-based computers. RSX-20F loads the KL microcode, configures main and cache memory, loads the boot program, and performs diagnostics. For systems that are running TOPS-20, as well as for 1091 systems, RSX-20F also provides device handling for unit record equipment. This manual is a revision and replaces the RSX-20F System Reference Manual, order number AA-H352A-TK. OPERATING SYSTEM: TOPS-10 TOPS-10 TOPS-20 ReI. 7.01 ReI. 7.01 ReI. 4.0 (1080/90) (1091 ) (2040/50/60) SOFTWARE: R8X-20F R8X-20F RSX-20F VA14-45 VE14-45 VB14-45 (1080/90) (1091 ) (2040/50/60) Software and manuals should be ordered by title and order number. In the United States. send orders to the nearest distribution center. Outside the United States. orders should be directed \0 the nearest DIGITAL Field Sales Office or representative. Western Region Northeast/Mid-Atlantic Region Central Region Digital Equipment Corporation PO Box CS2008 Nashua, New Hampshire 03061 Telephone:(603)884-6660 Digital Equipment Corporation Digital Equipment Corporation Accessories and Supplies Center Accessories and Supplies Center 1050 East Remington Road 632 Caribbean Drive Schaumburg, Illinois 60195 Sunnyvale, California 94086 Telephone:(312)640-5612 Telephone:(408)734-4915 digital equipment corporation. marlboro. massachusetts First Printing, January 1980 Revised, November 1981 'rhe information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. 'rhe software described in this document is furnished under a license and may only be used or copied in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by DIGITAL or its affiliated companies. Copyright (S), 1980, 1981, Digital Equipment Corporation. All Rights Reserved. 'rhe postage-prepaid READER'S COMMENTS form on the last page of this document requests the us~r's critical evaluation to assist us in preparing future documentation. 'rhe following are trademarks of Digital Equipment Corporation: DEC DECUS Digital Logo PDP UNIBUS VAX DECnet DECsystem-lO DECSYSTEM-20 DECwriter DIBOL EduSystem lAS MASSBUS PDT RSTS RSX VMS VT CONTENTS PREFACE CHAPTER 1 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1. 7 1.1.8 1.1.9 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.3 1.4 1.5 CHAPTER 2 2.1 2.2 2.2.1 2.3 2.4 2.5 INTRODUCTION THE PDP-II . ••••• The UNIBUS . ..•.• The I/O Page . • • • • Vector Interrupts . Priorities • . . Traps . • . . . . Data Transfers . . General Registers . • Stacks . . • . . . . Instruction Set . RSX-11M OPERATING SYSTEM . . . Directives • . . • • • Device Drivers. . • • Significant Events . . . . . Mapped and Unmapped Systems TASKS . • . . . . . . • . . . RSX-20F REQUIREMENTS . • • • . THE DERIVATION OF RSX-20F FROM •••••.• ••. . • • • • • • . . . . • . . . . • . . . . . •• .. . .••.... . . . . . . . . . . . . . . . . . . . . . . . . . . • • . • . . . . . . . . . . . . . . . • . . . •••• . • • . . . . . . . .. . . . . . . . • . . • . . . • . . . . . RSX-11M .... 1-3 1-3 1-3 1-3 1-3 1-3 1-4 1-4 1-4 1-4 1-4 1-4 1-5 1-5 1-5 1-5 1-6 1-6 GENERAL DEFINITIONS . . . . . . . . . . . . . . . FILES-II FILE SPECIFICATION • . . . . . . . . . . Files-II File Structure . . . . . . • . . FILES-II DIRECTORIES . ......•..... FIXED FILE ID'S . . • . . . . . . . . . . . . • . FCS FILE STRUCTURE . . . • .....•. . 2-1 2-1 2-2 2-3 2-4 2-4 FILES-II SYSTEM CHAPTER 3 RSX-20F GLOSSARY OF TERMS CHAPTER 4 PARSER 4.1 4.2 4.3 4.3.1 4.4 4.5 ENTERING AND EXITING THE PARSER . . . . . . . . . 4-1 PARSER COMMAND SYNTAX . . . . . . . . . . . 4-2 PARSER CONSOLE MODES . . 4-4 PARSER Help Facility . . . . • . . . . . . . . . 4-4 PARSER COMMANDS . . . . . . . . . . . . . . 4-6 PARSER ERROR MESSAGES . . . . . . . . 4-29 iii CONTENTS (Cont.) CHAPTER 5 5.1 5.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.4 5.4.1 5.4.2 5.4.3 5.4.3.1 5.4.3.2 5.5 CHAPTER 6 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 KLINIT KLINIT LOAD AND START . . . . . . . . • . · . 5-6 KLINIT OPERATOR DIALOG • . . . . . . . . . • • 5-- 7 KLINIT MESSAGES . . . . • 5-17 Informational Messages . • • • • •• 5 -1 7 Warning Messages . . . . · . . . .. 5-;18 Dialog Error Messages · . . . .. 5-120 5-20 System Error Messages REPORTS RELATING TO THE KLINIT DIALOG 5-32 External Memory Maps . . . . . 5-32 Internal Memory Maps . . . . . 5-33 Microcode Verification Error Reports . . . • . 5-35 CRAM Error Report . . . . . . • . . . . • 5-35 DRAM Error Report ..... . 5-36 KLINIT DIALOG EXAMPLES . 5-36 RSX-20F UTILITIES COP UTILITY . • • . . . . Function . · . . • • . . . Format . . . • • • • • Examples . • • • • • • Error Messages . INI UTILITY Function . Format . . . Examples • . • • Error Messages . • • • • • • • • MOU AND DMO · Func t ion . . . . · . Format • • . . · • Examples . • . . . • . • . • • Error Messages . . ••..... PIP - PERIPHERAL INTERCHANGE PROGRAM . Function • . . • • • • • . Initiating PIP . . . • . . PIP Command String Format PIP Switches and Subswitches . PIP Error Messages . RED . . . . Function . Format. Examples . Error Messages . • SAV Function . . . • . . • . Format . . . . . . . • . Example . . . . • . • . Error Messages • UFD - USER FILE DIRECTORY Function . Format. • • • • • Examples Error Messages . ZAP . . • • . Function • • . . . • . . . Invoking and Terminating ZAP . ZAP Switches . . • • • iv . . . . . . 6-1 . . . . . . 6-1 • • • • • • 6- 2 • • • • 6- 2 · • . . . 6-3 · . 6-4 . . . 6-4 . 6-5 • • • • • • 6- 6 • • • • • • 6- 6 . • .• 6-9 •. . . 6-9 • • • 6-10 6-10 • • • •• 6 -11 6-12 · . .. 6-12 6-12 · . .. 6-12 · . . .. 6-13 · . •. 6-19 6-23 6-23 6-23 · . .. 6-24 • • • •• 6 -2 4 6-24 . . . •. 6 - 24 6-25 · . .. 6-26 6-26 6-29 · . .. 6-29 • • • •• 6- 29 • • • •• 6 -3 0 • • • •• 6 -3 0 6-31 6-31 . • .. 6-31 . . . .. 6-32 CONTENTS (Cont.) 6.8.4 6.8.4.1 6.8.4.2 6.8.5 6.8.5.1 6.8.5.2 6.8.5.3 6.8.5.4 6.8.5.5 6.8.5.6 6.8.5.7 6.8.5.8 6.8.6 6.8.6.1 6.8.6.2 6.8.6.3 6.8.7 6.8.7.1 6.8.7.2 6.8.7.3 6.8.8 CHAPTER 7 7.1 7.2 7.3 7.4 7.4.1 7.4.1.1 7.4.1.2 7.4.1.3 7.4.1.4 7.4.2 7.4.2.1 7.4.2.2 7.4.2.3 CHAPTER 8 8.1 8.2 8.2.1 8.2.2 8.2.3 8.3 8.3.1 8.3.2 8.3.3 8.3.4 8.4 8.4.1 8.4.2 8.5 Addressing Locations in a Task Image • • . . . ZAP Addressing Modes: Absolute and Task Image Addressing Locations in Task Image Mode The ZAP Command Line . . • • . Open/Close Location Commands • General Purpose Commands . . . • . Using the Carriage Return ZAP Internal Registers • . . . . • . ZAP Arithmetic Operators.. . .•. ZAP Command Line Element Separators The Current Location Symbol . . .• Formats for Specifying Locations in ZAP Command Lines . . . . . . . . . • . . . . . . Using ZAP Open/Close Commands . . . . . . . . Opening Locations in a Task Image File . Changing the Contents of a Location Closing Task Image Locations . . . . . . Using Zap General Purpose Commands . . . The K Command: Compute Offset and Store it in the Quantity Register . . • . . . . . . The 0 Command: Display Branch and Jump Displacement from the Current Location . The = Command: Display the Value of an Expression . . • . ZAP Error Messages 6-32 6-33 6-33 6-34 6-35 6-36 6-36 6-36 6-37 6-37 6-38 6-38 6-39 6-39 6-39 6-40 6-42 6-42 6-43 6-43 6-43 RSX-20F MONITOR RSX-20F EXECUTIVE . . . . · . . . . 7-1 TASKS AND SCHEDULING . . . . . • • • • • 7- 5 SYSTEM TRAPS . . .....•. . 7-8 TERMINAL SERVICE ROUTINES • . . . . 7-10 Modem Handling . • . . . · . . . .. 7 -10 Modem Handling Concepts • . . . . • • • • • • 7 -10 Terminal Driver Routine • . • . . 7-11 Modem Timeout Routine • • • • •• 7 -13 The CTY and DL-IIE Timeout Routine . 17-15 Terminal Handling . • . • 7-16 Character Input Routine • • . . . . . . . . . 7-16 Terminal Timeout Routine . . . . . . . . 7-20 Character Output Routine • ....... . 7-23 DTE-20 OPERATION DTE-20 COMMUNICATIONS REGION • DTE REGISTERS . . . . . DTE-20 Status Word . . • . . . Diagnostic Words . . . . . DTE-20 Data Transfer Registers • USING THE DTE-20 REGISTERS . Deposit and Examine Transfer Operations . . . . . Doorbell Function Diagnostic Functions . PROTOCOLS . . . . . Secondary Protocol . Primary Protocol. QUEUED PROTOCOL • • v · . . . • 8-1 • . .. 8-10 • • • •• 8 -10 · . . . 8-15 · . •. 8-19 8-22 · . .. 8-22 • • • •• · . .. • • • •• • • • •• 8 -2 3 8-29 8-29 8-29 8-29 8 -30 8 -30 CONTENTS (Con t. ) 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.6. 5 8.6.6 8.6.7 CHAPTER 9 9.1 9.2 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.4 CHAPTER 10 10.1 10.2 10.2.1 10.2.2 10.2.3 8-33 8-33 8-34 8-34 8-35 8-36 8-36 8-36 DTE-20 DRIVER LOGIC . . . . . . . TO-I0 Direct Packets . . . . . . TO-II Direct Packets . . . . . . TO-I0 Extended Direct Packets TO-I0 Indirect Packets . TO-II Indirect Packets . . . . . Register Conventions . . . . . DTE-20 Device Driver Functions. ERROR DETECTION AND LOGGING THE KEEP ALIVE COUNT . KLERR . . . . . . . . ERROR LOGGING . . . . • • KL Error Logging . PDP-II Error Logging . TKTN MESSAGES KLERR MESSAGES . LOGXFR . . . . . . · . . . . . • • . . . . . . . . • • . . . . . . . · . . . . . . • • • • • • • . . . • . 9-1 . . 9-1 • • • • • 9- 2 • 9-2 9-7 9-7 9- 8 9 -10 USING FEDDT INTERPRETING AN RSX-20F DUMP . ..•. Useful Data in Dump Files . . . • . Sample Dump Analysis . .....•. Front End Status Block . ....•. · 10-1 10-4 10-5 10-7 . 10-10 • • • • • • . • . . •. . . . . • • • • • . . . • ERROR DEBUGGING . APPENDIX A RSX-20F STOP CODES AND I/O ERROR CODES APPENDIX B FILE TRANSFERS BETWEEN TOPS-I0/TOPS-20 AND RSX-20F B.l B.l.l B.l.2 B.2 B.2.1 B.2.2 B.2.3 B.2.4 REFORMATTING FILES . . . · B-1 Restrictions . . . . . . . . • · . . . B-2 RSXTI0/RSXFMT Commands • .... · . B-2 TRANSFERRING FILES . . . • . · B-4 Running FE . . . . • . ...• · . B-4 • • • • • • • B- 5 The FE: Device . . . . . • . • • • • • • B- 5 RSX-20F Tasks File Transfer Dialog . • B-5 APPENDIX C FRONT-END TASKS APPENDIX D KLINIK ACCESS DIALOG D.l D.2 D.2.1 D.2.2 D.2.3 D.2.4 D.3 D.3.1 D.3.2 SIGNIFICANT KLINIK EVENTS . . • . . KLINIK ACCESS PARAMETERS . . • . . • · Usage of the Remote Terminal . . Access Password for Remote CTY's . • KLINIK Access Window . . • . . . • Console Mode of the Remote Terminal OPERATOR DIALOG WITH KLINIK • . . . . . • Setting Access Parameters . . • . . . Examining the Current KLINIK Parameters vi . • D-l . • . D-l • D-2 • • • · • D- 2 • D-2 · D-3 • • • • D- 4 · • D-5 · . . • D-8 CONTENTS (Con t. ) D.3.3 D.4 D.4.l D.4.2 D.5 Terminating the KLINIK Link REMOTE USER DIALOG wITH KLINIK Logging In as a Remote Operator Logging In as a Timesharing User . KLINIK INTEGRITY OVER A REBOOT . . . APPENDIX E GETTING HELP ON RSX-20F APPENDIX F EIA PIN DEFINITIONS • · . • •• · . . . . . D-8 · . D-9 D-ll D-ll • D- 9 . . INDEX FIGURES FIGURE 1-1 5-1 5-2 5-3 7-1 7-2 7-3 7-4 7-5 7-6 7-7 7-8 7-9 7-10 8-1 8-2 8-3 8-4 8-5 The Front End for a KL-based Computer System Load Switches and Switch Register for KL with Floppy Disks Load Switches and Switch Register for KL wi th DECtapes KLINIT Operator Dialog RSX-20F Executive RSX-20F Memory Layout System Task Directory (S'l'D) Node Active Task List (ATL) Node Modem-Handling Hardware Modem Control Algorithm Modem Timeout Algorithm Character Input Algorithm Terminal Output Algorithm Character Output Algorithm KL Communications Region DTE-20 Registers DTE-20 Status Word in Read State DTE-20 Status Word in Write State DTE Interrupt Handler · · · 1-2 ··· · ···· · · · · 5-3 5-4 · · · · 5-13 ·· · · ···· ·· · · · · · · · · · · · · · · · 7-2 7-5 · ···· ···· · · · · 7-6 7-7 · · · · ·7-11 · · · · · · · · · · · · · · 7-12 · 7-14 · · · · · · · 7-17 · · · · · · 7-21 · · 7-24 ·· 8-2 · · · ·8-10 ···· ···· 8-11 · · · · · · 8-13 8-24 ····· ··· TABLES TABLE 5-1 Switch Register Bit Definitions . . . . . . . . . . 5-5 vii PREFACE 'rhe RSX-20F System Reference Manual contains information describing the RSX-20F front-end operating system. RSX-20F runs on a PDP-II/40 front-end processor and communicates with either a TOPS-IO or TOPS-20 operating system running on a KL main processor. The audience for this manual comprises Software Support Specialists, Field Service personnel, systems programmers, and system operators. It is assumed that the reader is familiar with PDP-II hardware, RSX-II operating systems, and either TOrS-IO or TOPS-20. 'rhis manual does not contain everything anyone would like to know about RSX-20F. The information contained here was included because it seemed to be especially important and useful to the largest part of the audience. Hopefully, this information will prevent some users from having to place calls to a central DIGITAL installation when they need help. The information in the manual is organized into five parts, as follows: Part I, SYSTEM OVERVIEW, introduces the PDP-II hardware, the RSX-Il-based operating system, and the Files-II file structure. A short glossary of RSX-20F terms and acronyms is also included. Part II, SYSTEM SOFTWARE, contains a description of the PARSER (the front-end command processor) and of KLINIT (the KL initialization software), as well as operating instructions for the front-end utility programs. Part III, SYSTEM INTERNALS, contains information about the resident RSX-20F monitor and the nonresident system tasks. Communications between the KL and the PDP-II using the DTE-20 are discussed in detailo The handling of terminals, both direct lines and dial-up lines, is also described. Part V, APPENDIXES, contains a list of system error messages. The procedure for transferring files between the KL and the PDP-II is described, and the front-end system tasks are listed. The dialog Involved in setting up a KLINIK window for remote diagnostics is discussed. There is also a list of information to include with RSX-20F Software Performance Reports and hot line calls, as well as a table of EIA pin definitions. The following TOPS-IO and TOPS-20 manuals also contain information about RSX-20F. ix TOPS-IO Operator's Guide AA-H283A-TB TOPS-IO Monitor Installation Guide AA-5056B-TB TOPS-20 Operator's Guide AA-4176D-TM TOPS-20 Software Installation Guide AA-4195G-TM Readers who wish to become more familiar with PDP-II hardware and software can find additional material in the following handbooks, which contain both tutorial and reference information. PDP-II Processor Handbook EB 05138 76 PDP-II Software Handbook EB 09798 78 PDP-II Peripherals Handbook EB 05961 76 Terminals and Communications Handbook EB 15486 79 x CHAPTER 1 INTRODUCTION Two PDP-II operating systems, RSX-llM and RSX-llD, provided the base upon which RSX-20F was built. These operating systems wer~ chosen because they offered the best base for building the required front end. The KL requires a front end that: • Is small and efficient • Can handle special cases such as diagnosing and recovering KL errors • Can handle the TOPS-lO/109l unit record booting devices of the KL and TOPS-20 and The purpose of the KL front end is to reduce the load on the KL. Specifically, the front end handles booting, configuring and loading the KL, and drives the unit-record and terminal hardware. Figure 1-1 shows a diagram of a KL-based computer system with a PDP-II front end, including the connections that are present between the front end and the various peripherals that it drives. This chapter contains important concepts of PDP-II software, explains the needs of RSX-20F, and describes how RSX-llM and RSX-llD were modified to produce RSX-20F. 1-1 INTRODUCTION RH11 ] MASSBUSCTL LA36 CTY SWITCH PANEL RK01 DUAL DRIVE3 DL11W CTYINTERFACE BM 873YF ROM RX11 FLOPPY CTL 2 Kl10 MF11 MEMORY KD11 CPU MEMORY PARITY ~w KY11·D CONSOLE LINE CLOCK DL 11·E MODEM INTERFACE TO REMOTE DIAGNOSTIC TERMINAL (KLINIK) • ,---- -----, I I I I DC20 MULTIPLEXER. • • I MAX I DC20 MULTIPLEXER LP20 LINE PRINTER CONTROL COlO CARD READER CONTROL I II I I I I I I I I I 01 15 01 15 [ LINE PRINTER I CARD READER I I I I I IL FOR TOPS·20 SYSTEMS __ ___ _ _ _ONLY _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ .-JI 1 BMB73YH ROM ON 10BO/90 2 TC11 DECtape CTL ON 1080/90 3 TU56 DUAL DRIVE ON 1080/90 Figure 1-1 MR.S.187.79 The Front End for a KL-based Computer System 1-2 INTRODUCTION 1.1 THE PDP-II 'rhe PDP-II has several unique features that make it an easy machine to program and use. This section describes some of the most important of these features. 1.1.1 The UNIBUS The UNIBUS is a 56-line bus used to send addresses, data, and control information to the system components and peripherals. The method of communication is the same for every device on the UNIBUS, including memory and the central processor. Each device, including memory locations, processor registers, and peripheral-device registers, is assigned an address on the UNIBUS. Thus, peripheral-device registers can be manipulated as easily as main memory by the central processor. The UNIBUS is both bidirectional and asynchronous; this allows devices of varying speeds to be connected to it. 1.1.2 The I/O Page The I/O page is an area at the high end of memory in which all the physical device registers are assigned an address. The UNIBUS concept makes this I/O page easy to access and easy to keep current, thus making it useful to those who wish to find out about the physical state of the system. 1.1.3 Vector Interrupts Vector interrupts allow the user to control interrupt handling as easily as depositing data into memory locations. Each device on the UNIBUS has two words assigned to it ln low memory to handle its interrupts. The first word is the address of the routine to which control is to be relinquished in the event of an interrupt. The second word contains the processor status word to be installed when control is transferred to the interrupt routine. 1.1.4 Priorities Interrupt priorities can be set individually for devices on the UNIBUS. Each device has a priority level on which it can interrupt. In the processor status word, the priority level field (bits 5-7) can be set to a value of 0 through 7. Only devices with a priority higher than the priority in the status word can interrupt. The user, therefore, can control interrupt priorities by depositing data into memory. 1.1.5 Traps Both synchronous and asynchronous traps can be handled by the PDP-II. Synchronous traps occur immediately upon the issuance of an illegal instruction or general trap. They are dealt with by means of the vectors in low memory and provide user flexibility. Asynchronous traps occur independently of user instructions, usually as the result of I/O completion. 1-3 INTRODUCTION 1.1.6 Data Transfers Data can be transferred in two ways via the UNIBUS: a BR (Bus Request) or an NPR (Non-Processor Request). The method normally used is the BR, in which the device wanting to use the UNIBUS must first request the use of the bus from the bus master. An NPR parallels DMA (Direct Memory Access) on the KL. An NPR steals UNIBUS cycles without directly gaining control of the processor. Since it does not need to access the processor, an NPR is much faster than a BR. 1.1.7 General Registers The central processor has eight registers (0-7) for general use. The registers can be used as accumulators, index registers, or stack pointers. Register 6is used as the system stack pointer (SP), and Register 7 is used as the hardware program counter (PC). These last two registers can be manipulated in exactiy the same'way as the other registers, but depositing data in them destroys the state of the PDP-II, because the PDP-II is not able to find the next instruction or the hardware stack. 1.1.8 Stacks The PDP-II is a stack-oriented machine. It contains built-in addressing modes designed to manipulate stacks of data. The PDP-II also has its own system stack, and it uses R6 as the hardware stack pointer. 1.1.9 Instruction Set The PDP-II instruction set operates on single- or double-byte operands. Addressing on the PDP-II is by eight-bit bytes. The word size is sixteen bits. Addressing includes a variety of addressing modes which, when combined with the instruction set, allow the programmer great flexibility in programming. 1.2 RSX-IIM OPERATING SYSTEM RSX-IIM is a PDP-II operating system. It controls I/O, sChedules tasks to be run, and provides common subroutines. The resident operating system is referred to as the Executive. 1.2.1 Directives A directive is a request to the Executive to perform a function. Directives can perform I/O functions, obtain task and system information, suspend and resume task execution, and cause a task to exit. Directives are called EMT's (EMulator Traps), and are equivalent to JSYS's in TOPS-20 and UUO's in TOPS-IO. 1-4 INTRODUCTION 1.2.2 Device Drivers A device driver is a program that ,controls physical hardware activities on a peripheral device. The device driver is generally the device-dependent interface between a device and the common device-independent I/O code in an operating system. 1.2.3 Significant Events A significant event is an event or condition that indicates a change in the system status of an event-driven system. A significant event is declared, for example, when an I/O operation completes. A declaration of a significant event indicates that the Executive should review the eligibility of task execution, because the event might have unblocked the execution of a higher priority task. The following are considered to be significant events: • Queueing of I/O requests • Completing of I/O requests • Requesting a task • Scheduling a task • Waking up a task • Exiting a task There are 64 significant event flags, most of them directly related to servicing directives. These flags can also be used by tasks to communicate with other tasks. 1.2.4 Mapped and Unmapped Systems A mapped system uses hardware memory management to relocate virtual memory addresses. An unmapped system has no hardware to relocate virtual addresses into physical addresses. An unmapped system must therefore be assembled with the correct physical addresses. RSX-20F is an unmapped system. 1.3 TASKS A task is the fundamental executable unit in PDP-II operating systems. Some tasks are self-sufficient and can be thought of in much the same way as programs in TOPS-IO or TOPS-20. Some tasks must call other tasks to complete their function. Some tasks are considered subroutines to be called by still other tasks. Tasks can reside in one of three places: the resident Executive (EXEC) partition, the general (GEN) partition, or the Files-II partition (FIITPD). A partitiqn is an area of memory reserved for the execution of tasks. In th~ simplest case, a task uses all of the partition. If the task is smaller than the partition, the unused space is- unavailable to other tasks. If a task is larger than the partition, it must be written to use overlays. Overlays are sections of code that are brought into memory as needed and are written over existing code that is no longer required. 1-5 INTRODUCTION Most tasks that run in the EXEC partition handle specific devices and system functions. These tasks are called resident tasks; that is, they are always core resident and are not swapped out. This is important because system functions and devices demand instantaneous service and should not have to wait for code to be read in from a peripheral device. Occasionally a task is larger than the partition into which it must fit. This situation can be handled by overlaying code. Overla~ing consists of replacing unneeded sections of code in core with sections that are needed but are not currently in main memory. There are two general classes of tasks: privileged and nonprivileged. A privileged task can access its own partition, the Executive partition, and the I/O page. A nonprivileged task can access only its own partition and shared regions. When a task has been compiled, it is still not ready to be loaded and executed. It must be put through the Task Builder. A compiler produces an output file called an object module. The Task Builder accepts object modules as input, links them together, resolves references to global symbols and library files, and produces an output file called a task image. In the task image file, all relocatable expressions and external references have been converted to absolute addresses. The task image file can then be loaded into a partition and executed. The Task Builder can also produce a memory map file. A memory map describes the allocation of. storage, itemizes the separate modules that the task comprises, and lists all global-symbol values. 1~4 RSX-20F REQUIREMENTS The PDP-ll/40 fulfills the normal functions of a front-end computer. It acts as a peripheral handler and data concentrator/router in its relation with the KL. The devices that it handles are the slower, unit record devices (TTY, CDR, and LPT). This allows the KL to concentrate on computing rather than servicing interrupts from the slower devices. The front end can also be used for other special functions. For example, it can perform all the following steps necessary to get the KL up and running: • Load the microcode • Configure memory • Configure cache • Load a bootstrap program The front end can also perform diagnostics on problems develop. 1.5 the KL when hardware THE DERIVATION OF RSX-20F FROM RSX-llM RSX-IlM is geared toward multiprogramming and quick response to real-time events. The multiprogramming capability allows the development and use of utility programs that can perform special tasks. The real-time response allows any attached devices to be servic€d quickly. For these reasons, RSX-IIM was chosen as the basis for RSX·-20F. 1-6 INTRODUCTION RSX-20F utility programs can be run only in the GEN partition. Nonresident Exec routines (for example, Fi1es-11, KLRING, KLDISC, SETSPD, TKTN, and MIDNIT) run in the F11TPD partition. Only one utility task can run at anyone time in the GEN partition and that task runs until completion. Some tasks use overlays. These tasks must control their own overlaying, however, since the Executive makes no attempt to do so. 'The significant event scheme of RSX-11M was kept in RSX-20F to handle changes in system states and to provide directives with information. The directives that were kept provide I/O service, task information and' task control. The scheduling algorithm used to decide which task runs next is round robin within priority value. Specific programs are brought into core to do special tasks. Some of the RSX-20F utility programs are MOUNT and DISMOUNT to control access to Fi1es-11 devices, PIP to transfer files from one Fi1es-11 device to another, UFD to create User File Directories on Fi1es-11 devices, and PARSER to provide communication and diagnostic functions. All these tasks run in the GEN partition. The biggest change in the structure of RSX-11M had to do with driving the DTE-20 interface. The DTE-20 is the only link between the front end and the KL, and provides the interface between the KL and the terminals, printers, and so forth. In order to deal with all the purposes to which the DTE-20 would be put, the operating system needed a device driver. A queue mechanism had to be set up to handle all the requests for the devices that the KL receives and transmits to the front end. Consequently, the queued protocol task was added to handle the communication between TOPS-20 and the device drivers in the front end. Although no inter-CPU communication can take place over the disk, the PDP-11 and the KL can access the dual-ported RP04/06 drive independent of each other. However, RSX-20F does not have access to the entire dual-ported disk; RSX-20F is limited to 950 pages by default (the value can be made larger by reinitia1izing the disk) . Logical block number 400 is the home block for the Fi1es-11 system. TOPS-20 views the front-end file system as one big file, <ROOT-DIRECTORY>FRONT-END-FILE-SYSTEM.BIN. TOPS-10 also views the front-end file system as one big file, SYS:FE.SYS. System access to front-end files is usually done with file ID's. Because the front-end file system contains relatively few files, this access method can find the files quickly. The directory structure is kept for those few situations when users must interact with a Fi1es-11 area on floppy disk, DECtape, or dual-ported RP04/06. No protection checking is enforced with the file systems. Real PDP-11 formatted disks have 16-bit words, and disk addressing and accessing is consistent with this scheme. However, disks supported by TOPS-10 and TOPS-20 must be formatted in 18-bit words to make them compatible with the 36-bit word size expected by the KL processor. Therefore, the RSX-20F disk driver is a modified RSX-11M routine. Each PDP-11 word of data in the Fi1es-11 area is written right-justified in the 18-bit space available. The two left-hand (high-order) bits are ignored by RSX-20F's disk driver. 1-7 CHAPTER 2 FILES-II SYSTEM All RSX-based operating systems have a standard file system called Files-II. Users who access files in an RSX-20F Files-II system use a syntax that is similar to TOPS-20 and TOPS-IO. This chapter defines some terms used by Files-II, and describes the file structure and directory structure used by the system. 2.1 GENERAL DEFINITIONS The Files-II system imposes a structure on a medium. The medium Files-II uses is any block-addressable storage device. This includes such media as disks and DECtapes. Since the method of access to all Files-II media is similar, all types of Files-II media are referred to as disks. A Files-II volume is a logical file structure that includes one or more devices of the same type. A Files-II volume can be compared to a file structure under TOPS-IO and TOPS-20. When Files-II devices are used by a task, each device is assigned a number called a Logical Unit Number (LUN). LUNs are associated with physical devices during a task's I/O operations. The Executive can also assign LUNs for its own use. 2.2 FILES-II FILE SPECIFICATION The file specification for Files-II is: dev: [g,m]filename.ext;version where: dev: is the name of a physical which the desired file name consists of two ASCII an optional one-digit unit [g,m] is the group number and member number associated with the User File Directory (UFD). These numbers are octal and are in the range of I to 777. This section of the file specification is also referred to as the User Identification Code (UIC). filename is the name of the file which can be from I alphanumeric characters. 2-1 or logical device on is located. The device characters followed by number and a colon. to 9 FILES-II SYSTEM ext is the extension of the file which can be to 3 alphanumeric characters or null. version is the version number of the file which can range from I to 77777. If no version number is specified, the number defaults to the most recent version on a read operation and the next version number on a write operation. from I By comparison, the TOPS-20 file specification format is: dev:<directory>filename.type.gen The TOPS-IO file specification format is: dev:filename.ext[p,pn] The quantity [g,m] is the directory number and corresponds to the directory name in TOPS-20 and the project-programmer number in TOPS-l O. Two examples of valid RSX-20F Files-II file specifications are: OBO: [5,5]KLINIK.TSK OXl: [5,5]MIONIT.TSK;1 2.2.1 Files-II File Structure Any data of interest on a Files-II volume is contained in a file. A file is an ordered set of virtual blocks, a virtual block being an array of 512 eight-bit bytes. A file's virtual blocks are numbered from 1 to n, where n blocks have been allocated to the file. The number assigned to a virtual block is, of course, called a Virtual Block Number, or VBN. Each virtual block is mapped to a unique logical block on the volume. Virtual blocks can be processed in the same manner as logical blocks. Any array of bytes that is less than 65K in length can be read or written, provided that the transfer starts on a virtual block boundary and that its length is a multiple of four. Each file in a volume is uniquely identified by a file 10. A file 10 is a binary value consisting of three PDP-II words (48 bits). It is supplied by Files-II when the file is created and used whenever the file is referenced. The three words contain: 1. File number - This number uniquely identifies the file on the volume. 2. File sequence number - This number identifies the current use of an individual file number on a volume. The file numbers are reused. Since the file number of a deleted file is available to be used again, the file sequence number is attached to distinguish the uses of the file number. 3. Relative Volume Number - This number must be zero. The location is reserved for the implementation of volume sets. 2-2 FILES-II SYSTEM Each file on a Files-II volume is described by a file header. The file header is a block that contains all the information necessary to access the file. The file header is contained in the volume's index file, not in the file itself. The file header is divided into four distinct areas: 1. Header Area - This area contains the file nu~ber and the file sequence number as well as the file's ownership and This area also contains offsets to the protection codes. other areas of the file header, thereby defining their size. Finally, the header area contains a user attribute area, in which the user can store a limited amount of data describing the file. 2. Ident Area - This area contains identification and accounting data about the tile, including the primary name of the file, its creation date and time, its expiration date, and its revision count, date and time. 3. Map Area - This area describes the mapping of virtual blocks of the file to logical blocks of the volume. The area contains a list of retrieval pointers, each of which describes one logically contiguous segment of the file. The map area also contains the linkage to the next extension header of the file, if one exists. 4. End Checksum - This area, the last two bytes of the file header, contain a sixteen-bit additive checksum of the preceding 255 words of the file header. The checksum is used in the process of verifying that this block is a file header. Since the file header has a fixed size while the file itself does not, a large file could require more space for its mapping information than is available. To provide for this contingency, Files-II uses extension headers. An extension header is used to chain together file headers to provide enough space for the mapping information. The map areas link the headers together in order of ascending virtual block numbers. 2.3 FILES-II DIRECTORIES Directories are Files-II files whose sole function is to associate file-name strings with file IO's. Since the file IO is unique to the file, the file IO can be used to locate the file directly in the Files-II ~ystem. However, most users find it easier to deal with a qroup of files if the files can be named. This ease of use is the ~Joal of the directory file. A directory file is an FCS (File Control Services) file consisting of fixed sixteen-byte recor~s (see Section 2.5 for a description of FCS files). Each record is a directory entry describing a single file. Each entry contains the following data: • File IO - The three-word binary IO of the file this entry represents (The file number portion of the file IO is zero when the entry is empty.) • Name - The name of the file, stored as three words Radix-50 characters 2-3 of three FILES-II SYSTEM 2.4 • Type - The file type (known also as the extension), stored aB one word of three Radix-50 characters • Version - The file version number, stored in word binary in one FIXED FILE ID'S As with any file system, Files-II maintains a data structure that it. uses to control the file organization. The information that Files-II needs are kept in files called known filei because the system always knows about them.. These files are created when a new volume is initialized. The files have fixed file ID numbers so that Files-II can always find its own data. The files and their uses are described below. 2.5 1. Index File - The index file is file ID 1,1,0. It is listed in the Master File Directory (MFD) as INDEXF.SYS;l. ThE~ index file provides the means for identification of and initial access to a files-II volume. It also contains the access data for all files on the volume, including itself. 2. Storage Bitmap File - The storage bitmap file is file ID 2,2,0. It is listed in the MFD as BITMAP.SYS;l. This file is used to control the available space on a volume. It contains a storage control block with summary information about the volume, and the bitmap itself, which lists the availability of individual blocks. 3. Bad Block File - The bad block file is file ID 3,3,0. It iB listed in the MFD as BADBLK.SYS;l. The bad block file is simply a file containing a list of all the known bad blockB on the volume. 4. Master File Directory - The master file directory is file ID 4,4,0. It is listed in the MFD (itself) as OOOOOO.DIR;l. It lists the five known files, and all the user file directories for the volume. 5. Core Image File - The core image file is file ID 5,5,0. It is listed in the MFD as CORIMG.SYS;l. This file is the bootable system image file. FCS FILE STRUCTURE interfacE~ FCS stands for File Control Services, which is a user-level to Files-II. Its principal feature is a record control facility that allows sequential processing of variable-length records as well aBo sequential and random processing of fixed-length records. FCS use~: the virtual block system provided by the basic Files-II structure. FCS treats every disk file as a sequentially numbered array of bytes. Records are given ordinal numbers starting with 1 for the first record in the file. A file consisting of fixed-length records can havE~ records crossing block boundaries or not, depending on the setting of a flag in the file header area. If records do cross block boundaries, the records are simply packed end to end. Records of an odd length are padded with a byte of indeterminate contents. If records do not cross block boundaries, their size is limited to 512 bytes. 2-4 FILES-II SYSTEM Variable-length records can be 32,767 bytes, unless records do not cross block boundaries, in which case the limit is 510 bytes. Each record is preceded by a two-byte binary count of the bytes in the record (the count does not include these two bytes). This byte count is always word-aligned, and padded with a null byte if necessary. A byte count of -1 signals the end of live data in a particular block. The next record in the file begins at the next block. 2-5 CHAPTER 3 RSX-20F GLOSSARY OF TERMS This chapter includes definitions and expansions phrases, and acronyms used in the manual. of several words, ACL Access Control List ACP Ancillary Control Processor ACK Affirmative ACKnowledgement - the reply that indicates that the receiver accepted the previous data block and that the receiver is ready to accept the next block of the transmission. APR Arithmetic PRocessor AST Asynchronous System Trap ATL Active Task List Auto-bauding The process by which the terminal line speed on a dial-up line. software determines the Carrier The analog signal that carries data over telephone lines. Carrier Transition A transition in the state of the carrier signal, either from "On" to "Off", or vice versa. CC Condition Code CKL ClocK List Communications Region An area in KL memory that is used for coordinating status, preparing for byte transfer operations, and passing limited amounts of data. Both the KL and the PDP-II have an Owned Communications Region in which they alone can write. 3-1 RSX-20F GLOSSARY OF TERMS CUSP Commonly Used System Program DEQUE Double Ended QUEue DIC Directive Identification Code (0-127) Deposit Region A region in KL memory that is accessed by the Protected Deposits. PDP-II using DH-Il Communications interface between the PDP-II front end and up to sixteen terminals and sixteen modems. Specifically a DH-IIAD. DM-IIBB Communications interface between the PDP-II front end and the EIA modem control lines. The DM-IIBB is used in the DH-IIAD to handle asynchronous terminal lines connected to common carrier facilities. DPB Directive Parameter Block DSW Directive Status Word DTE-20 The hardware interface between the PDP-II and the stands for Data Ten to Eleven. KL. DTE DTL DTE-20 List DTR The signal used by a computer system to answer the phone ring from a remote user. DTR stands for Data Terminal Ready. EBOX Part of the KL hardware that performs arithmetic and logical operations. EMT EMulator Trap Instruction EPT The area in KL memory that transmission of data between Executive Process Table. is reserved for use in processors. EPT stands for Examine Region A region in KL memory that is accessed by the Protected Examines. PDP-II using External Page An area (4K) of real memory space (760000-777777) containing CPU and peripheral device control and status registers (also known as the I/O page) . 3-2 RSX-20F GLOSSARY OF TERMS PCP File Control Primitives IRQ I/O Request Queue ISR Interrupt Service Routine KTII Hardware Memory Management Optioh LBN Logical Block Number Login The process of getting a KL to recognize (see also Logon) a potential user Logon The process of getting a PDP-II user to recognize a potential LUN Logical Unit Number MCB The software resident in a DN20 that supports stands for Multifunction Communications Base. DECnet. MCB MCR Monitor Console Routines MFD Master File Directory MRL Memory Request List Normal Termination The term Done is An error-free completion of a given task. not used because, unlike a Done flag, a Normal Termination flag is not set if an error occurs. An error causes the Error Termination flag to be set. NXM Non-eXistent Memory Owned Area An area in the Communications Region that is for the use of the related processor. The related processor can read and write to and from this area. Packet A group of bytes including data and control elements that is switched and transmitted as a composite whole. Privileged Front End A PDP-II attached to a KL by means of a DTE-20 that can use the diagnostic bus and do unprotected deposits. A privileged front end can crash the KL. 3-3 RSX-20F GLOSSARY OF TERMS Protected Examines/Deposits An Examine or Deposit that is range-checked by the KL. ThE~ relocation and protection for the Examine operation i~: separate from that for the Deposit operation. A privileged front end can override the protection checks; a restricted front end cannot override the protection checks. (See also Relative Address) PUD Physical Unit Device Table Relative Address An address specified by the PDP-II software on a Protected Examine or Deposit. The address specified by the PDP-II is relative to the Examine or Deposit Region, and runs from 0 to the maximum relative address (which is kept by the KL in the EPT). (See also Examine Region, Deposit Region, EPT) Restricted Front End A PDP-II that is attached to a KL by means of a DTE-20 and cannot crash the KL if the KL hardware and software an~ working correctly. A restricted front end cannot use the diagnostic bus, and cahnot read KL memory unless the KL has first set up the interrupt system to allow it. RTS A signal sent from the Data Terminal Equipment (in this case the DTE-20) to the Data Communications Equipment (DeE) to condition the DCE for transmission. Since all terminal communication is full-duplex, the local modem should always be ready to transmit when a user is dialed in. Thus, RTS should always be asserted by the PDP-II for active dial-up lines. RTS stands for Request to Send. Send-All Data that is sent to every active line on the system that has not refused it. An obvious example is a system message. SPR Software Performance Report SST Synchronous System Traps STD System Task Directory Thread The link word in a node. ~rpD Task Partition Directory UIC User Identification Code UFD User File Directory VCB Volume Control Block VBN Virtual Block Number 3-4 CHAPTER 4 PARSER The command language processor for the front-end operating system is called the PARSER. It is a nonresident system task and executes in the GEN partition when it is invoked. The PARSER is the primary means of communications between the system operator and the front-end programs. It also provides access to the KL's memory and diagnostic registers. The PARSER accepts input in the form of ASCII strings entered at the console terminal (CTY). 4.1 ENTERING AND EXITING THE PARSER If you are currently communicating monitor v or a TOPS-IO or TOPS-20 (CTRL/\) to enter the PARSER. with job, the TOPS-IO or TOPS-20 type a control backslash If you are currently communicating with another RSX-20F task or utility such as KLINIT or PIP, type a CTRL/Z to exit the current task and then a CTRL/\ to enter the PARSER. When you enter the PARSER, you receive one of the following prompts: PAR) This indicates that the PARSER is ready to accept commands and the KL is running (that is, the KL clock is running and the KL run flop is on). PAR% This indicates that the PARSER is ready to accept commands but the KL microcode is in the HALT loop. (The KL clock is running but the KL run flop is off.) PAR# This indicates that the PARSER is ready to accept commands but the KL clock is stopped and the KL is not running. NOTE If you see the PAR# prompt displayed during timesharing, you should reload the system. If the PARSER encounters an error during its initialization, an message precede the prompt. error In order to exit the PARSER, type QUIT or a CTRL/Z to return to the TOPS-IO or TOPS-20 monitor or use the PARSER command, MCR, to load and start another program. 4-1 PARSER 4.2 PARSER COMMAND SYNTAX Commands to the PARSER are typed one or more to a line in response to a PAR>, PAR%, or PAR# prompt. The rules that follow apply to all commands you wish to type unless you are explicitly told otherwise in the description of the command. 1. Multiple commands can be entered on a single line. To do this, separate each command from the following one by a semicolon. For example: PAR>EXAMINE PCiEXAMINE 20iSHUTDOWN<RET> 2. Command lines can be continued on the following line. To continue a command line on the next line, end the line to be continued with a hyphen (-) and a carriage return. The PARSER will prompt you for the continuation line with another hyphen. For example: PAR>EXAMINE PCiEXAMINE 20;-<RET> -EXAMINE NEXT<RET> The maximum number of characters in a command line is 280. 3. A comment can be added to the end of a command line or can be an entry in itself. To insert a comment, begin the text with an exclamation mark (and end it with a carriage return). For example: PAR>CLEAR CONSOLE!RESET TO OPERATOR MODE<RET> PAR>!THIS IS A COMMENT LINE<RET> 4. Terminal output can be suppressed. To do this, type CTRL/O. 5. Keywords in a command can be truncated unique abbreviation. For example: to their shortest PAR>H!HALT THE KL CPU<RET> If the truncation is message. For example: not unique, you receive an error PAR>RE 5<RET> PAR -- [PARSER] AMB - AMBIGUOUS KEYWORD "RE" In this example, the PARSER found two commands with RE: REPEAT and RESET. that started 6. The default radix of integers 36-bit value is expected; decimal. 7. Numbers can be shifted a specified number of binary places in either direction. To shift to the left, use an underscore ( ) between the number you wish to shift and the number of bInary places you wish it to be shifted. This causes the left-hand number to be shifted to the left by the number of binary bits indicated by the right-hand number, assuming that the right-hand number is positive. If the right-hand number is negative, the left-hand number is shifted to the right that many binary places. Thus, in order to specify a number in octal that ends in several zeros, you could write the 4-2 is octal if an address or otherwise the default radix is PARSER nonzero part, then an underscore, then the number of trailing (binary) zeros in the number. For example: PAR>EXAMINE 2 3<RET> results in 20/ xxx xxx xxxxxx Note that rule #6 applies to both the numbers. 8. and right-hand Negative numbers can be specified through the use of a minus (-) preceding the number. For example: PAR>DEPOSIT TEN 30=-1<RET> 30/ xxxxxx xxxxxx PAR>EXAMINE TEN 30<RET> 30/ 777777 777777 9. left- unary (deposit -1 in loc. 30) (previous contents) (examine loc. 30) (new contents) Numeric values can be entered as arithmetic expressions using addition (+), subtraction (-), multiplication (*), and division (/). For example: PAR>EXAMINE 123654+32<RET> 123706/ xxxxxx xxxxxx PAR>DEPOSIT TEN 408-6=100<RET> PAR>SET INCREMENT 2*3<RET> KL INCREMENT: 6 PAR>REPEAT 8/4; EXAMINE PC<RET> PC/ xxx xxx xxx xxx PC/ xxxxxx xxxxxx Note that in the evaluation of arithmetic expressions, multiplication, division, and binary shifts take preGedence over addition and subtraction. 10. Relocation factors can be added or subtracted from a number. To do this, use a single quote (') following a number to add the PDP-II relocation factor (offset) to the number. Use a double quote (") to subtract the PDP-II relocation factor. For example: PAR>SET OFFSET 101204<RET> PDP-II OFFSET: 101204 PAR>EXAMINE ELEVEN 32'<RET> 101236\ xxxxxx PAR>EXAMINE ELEVEN 101236"<RET> 32\ xxxxxx You can use the PDP-II relocation factor to modify KL addresses as well as PDP-II memory addresses. memory When you close a command line (carriage return without a preceding hypheh), the PARSgR first scans the command line buffer for illegal 4-3 PARSER characters. If it finds any, the entire command line is discarded and the following message is issued: PAR -- [PARSER] ILC - ILLEGAL CHARACTER "c" where "c" is the first illegal character found. If the command line passes the character scan, the PARSER begins to execute the individual commands. If the PARSER encounters an invalid command, that command and any others remaining in the command line are not executed. The invalid command also generates an error message (refer to Section 4.5, PARSER Error Messages). I 4.3 PARSER CONSOLE MODES rrhe PARSER command set differs according to the current console There are three basic console modes: mode. OPERATOR MODE This mode allows only those commands that will not crash the TOPS-IO or TOPS-20 monitor. PROGRAMMER MODE This mode allows all PARSER diagnostic functions. commands except MAINTENANCE MODE This mode commands. set PARSER allows the full of In addition, there is a mode called USER MODE. Entering this mode has the effect of exiting the PARSER and is equivalent to a QUIT command. When RSX-20F is initially loaded, the console mode is the mode that was in effect in the PARSER when the RSX-20F front-end module was saved. (refer to Chapter 6 for a description of the SAV utility.) There is a SET CONSOLE command to change the console mode, a CLEAR CONSOLE command to reset the mode to OPERATOR, and a WHAT CONSOLE command to determine the current mode. These commands are explained in detail in Section 4.4. 4.3.1 PARSER Help Facility The PARSER has a built-in help facility that prints out the list of commands for the console mode you are in. For an example, assume you are in OPERATOR mode and type: PAR)?<RET) The PARSER responds: PARSER COMMANDS ARE: ABORT CLEAR DISCONNECT EXAMINE JUMP MCR REPEAT RUN 4-4 available PARSER SET SHOW SHUTDOWN TAKE QUIT WHAT If, on the other hand, you are in PROGRAMMER mode, the response is: PARSER COMMANDS ARE: ABORT CLEAR CONTINUE DEPOSIT DISCONNECT EXAMINE HALT INITIALIZE JUMP MCR REPEAT RESET RUN SET SHOW SHUTDOWN START TAKE QUIT WHAT XCT ZERO This help facility extends to the argument level. If you are not sure of the arguments for a particular command, type the command followed by a space and a question mark. For instance, assume you are in OPERATOR mode and type: PAR>CLEAR ?<RET> The PARSER responds: CLEAR COMMANDS ARE: AUTO-TAKE CONSOLE INCREMENT KLINIK MEMORY NOT OUTPUT REPEAT If instead you are in PROGRAMMER mode, the response is: CLEAR COMMANDS ARE: AUTO-TAKE CONSOLE DATE FAULT-CONTINUATION INCREMENT 4-5 PARSER KLINIK MEMORY NOT OFFSET OUTPUT RELOAD REPEAT RETRY TRACKS Subarguments can also be determined in this manner. example, if you type: For PAR>SET CONSOLE ?<RET> The PARSER responds: SET COMMANDS ARE: MAINTENANCE OPERATOR PROGRAMMER USER 4.4 PARSER COMMANDS This section lists all PARSER commands. The console mode associated with each command specifies the minimal console mode at which the command is available. The following notational conventions apply to the command format: • Any single argument not in brackets must be specified. • Uppercase arguments are keywords and must be entered as shown or truncated according to rule 5 in Section 4.2. • A multiple choice list enclosed in square brackets [ ] means that an entry is optional. If there is a default entry, it is specified. • A multiple choice list enclosed in braces { } means that of the entries must be specified. one In the following list of commands, those specified as requiring MAINTENANCE console mode should be restricted to Field Service personnel. Also, some commands require that the KL be stopped: this can be done with a HALT or ABORT command. ABORT OPERATOR The ABORT command stops the KL by trying to force it into the HALT loop. If this fails after a reasonable number of EBOX clock ticks, the command tries to START MICROCODE, which implies a MASTER RESET of the KL processor. This is one way to get the KL into a known state when a previous state left it in a hung condition. 4-6 PARSER CLEAR AUTO-TAKE OPERATOR The CLEAR AUTO-TAKE command disables the automatic PARSER.CMD during a SNAPSHOT. CLEAR CLOCK NORMAL CRAM DATA-PATH CONTROL EXTERNAL INTERNAL MARGIN FULL HALF QUARTER SLOW execution of MAINTENANCE The CLEAR CLOCK command selectively resets the KL clock parameters. The CLEAR CLOCK arguments function as follows: CLEAR CLOCK NORMAL SET CLOCK NORMAL CLEAR CLOCK CRAM Disables the control-RAM clock CLEAR CLOCK DATA-PATH Disables the data-path clock CLEAR CLOCK CONTROL Disables the control logic clock CLEAR CLOCK SET CLOCK NORMAL EXTERNAL INTERNAL MARGIN FULL HALF QUARTER SLOW CLEAR CONSOLE OPERATOR The CLEAR CONSOLE command forces the PARSER into OPERATOR console mode. It is the equivalent of S~T CONSOLE OPERATOR. CLEAR DATE PROGRAMMER The CLEAR DATE command clears the validity bit, and prompts you for a new date and time (see SET DATE command). This command is not valid if RSX-20F is in primary protocol. 4-7 PARSER PROGRAMMElR CLEAR FAULT-CONTINUATION The CLEAR FAULT-CONTINUATION command disables the automatic KL fault continuation reload. This command prevents the host from recovering from errors detected by the front-end. MAINTENANCE: CLEAR FS-STOP The CLEAR facility. FS-STOP command disables the Field Service CLEAR INCREMENT stop OPERATOlR The CLEAR INCREMENT command resets the KL zero. (See EXAMINE INCREMENT command.) increment CLEAR KLINIK factor to OPERATOR The CLEAR KLINIK command closes terminates the KLINIK link. discussion on KLINIK access.) the KLINIK (refer to access window and Appendix D for a CLEAR MEMORY OPERATOlR The CLEAR MEMORY command forces all subsequent EXAMINEs and DEPOSITs to reference KL memory. This command is the equivalent of the SET MEMORY TEN command. Note that this command does not set memory to zeros, or in fact to anything at all; it simply specifies which memory, the KL or the PDP-II, is being referenced. OPERATOlR CLEAR NOT The CLEAR NOT command is the equivalent of the SET command. PROGRAMMER CLEAR OFFSET The CLEAR OFFSET command sets the relocation (refer to rule ten in Section 4.2.) 4-8 ------------------ factor to zero. PARSER OPERATOR CLEAR OUTPUT[LOGJ LPT TTY This command stops the CTY output from going to the specified device. When the CLEAR OUTPUT [device] command is given, the PARSER checks for an active recording device. If as a result of the command, no recording device is active, then the console terminal is made the active recording device. The default devices for the CLEAR OUTPUT command are LOG and LPT. If the default command is used the active recording device becomes TTY. CLEAR PARITY STOP ALL AR CRAM DRAM ENABLE FM FS-STOP MAINTENANCE The CLEAR PARITY-STOP command selectively disables parity for AR, CRAM, DRAM, Fast Memory, and Field Service. CLEAR RELOAD stops PROGRAMMER The CLEAR RELOAD command disables the automatic reload of the following a fatal error. CLEAR REPEAT KL OPERATOR The CLEAR REPEAT command resets the command line repeat factor to zero. A repeat factor of zero is the same as a repeat factor of one; subsequent command lines are executed once. CLEAR RETRY The CLEAR RETRY When this flag routine to take a system reload PROGRAMMER command resets the RETRY flag in the PARSER. is off, a Keep-Alive-Cease error causes the KLERR a system snapshot and then call KLINIT to perform of the KL. (See SET RETRY.) CLEAR TRACKS PROGRAMMER The CLEAR TRACKS command stops RSX-20F from typing operations and results on the controlling terminal. 4-9 all KL PARSER PROGRAMMER CONTINUE The CONTINUE command takes the KL out of the HALT loop and starts execution at the instruction pointed to by the PC. PROGRAMMER DEPOSIT AR=newdata NOTE The DEPOSIT AR command is now separated from the new data by an equal sign (=). The DEPOSIT AR command register to new d~ta. DEPOSIT rELEVENl LTEN J I sets the contents of the I arithmetic PROGRAMMER =newdata DECREMENT addr INCREMENT NEXT PREVIOUS THIS The DEPOSIT memory address command displays the contents of specified or implied memory address and then replaces contents with newdata. the the ELEVEN specifies that the command address in the PDP-II memory. is referencing an TEN specifies that the command address in the KL memory. is referencing an If neither ELEVEN or TEN is specified, the memory to be referenced is determined by the most recent SET MEMORY command. If no SET referenced. MEMORY command has been issued, KL memory is The following six arguments determine the specific memory addres~; into which you wish to deposit the data; one of them must bE~ entered. addr is the actual memory a~dress in octal notation. When referencing PDP-II memory, this must be an even number. INCREMENT means add the KL increment factor to the address last referenced to arrive at the deposit address. If PDP-II memory is being referenced, this command is the equivalent of DEPOSIT NEXT. 4-10 PARSER DECREMENT means subtract the KL increment factor from the address last referenced to arrive at the deposit address. If PDP-II memory is being referenced, this command is the equivalent of DEPOSIT PREVIOUS. NEXT means add one (for a KL) or two (for a PDP-II) to the address last referenced to arrive at the deposit address. PREVIOUS means subtract one (for a KL) or two (for a PDP-II) from the address last referenced to arrive at the deposit address. THIS means use the address last referenced as deposit address. the OPERATOR DISCONNECT The DISCONNECT command disconnects the KLINIK link by running the KLDISC task. This command does not clear any KLINIK parameters. (refer to Appendix D for a discussion of KLINIK.) OPERATOR EXAMINE PC The EXAMINE PC command prints the contents counter (PC) in octal, on the CTY. of the KL program OPERATOR EXAMINE KL The EXAMINE KL command performs the EXAMINE PC, EXAMINE EXAMINE PI, and the EXAMINE FLAGS commands, in. that order. EXAMINE ELEVEN] [ TEN VMA, OPERATOR addr addrl:addr2 DECREMENT INCREMENT NEXT PREVIOUS THIS The EXAMINE memory address command displays the contents of specified or implied memory address in octal, on the CTY. the ELEVEN specifies that the command is referencing address in the PDP-II memory. an TEN specifies that the command is referencing address in the KL memory. an 4-11 PARSER If neither ELEVEN or TEN is specified, the memory to be referenced is determined by the most recent SET MEMORY command. If no SET MEMORY command has been issued, KL memory is referenced. The following six arguments determine the specific memory address to be examined; one of them must be entered. addr is the actual memory address in notation. If you are referencing memory, this must be an even number. octal PDP-II addrl:addr2 examines the memory addresses through and including addr2. addrl INCREMENT means add the KL increment factor to the address last referenced to arrive at the examine address. If PDP-II memory is being referenced, this command is the equivalent of EXAMINE NEXT. DECREMENT means subtract the KL increment factor from the address last referenced to arrive at the examine address. If PDP-II memory is being referenced, this command is the equivalent of EXAMINE PREVIOUS. NEXT means add one (for a KL) or two (for a PDP-II) to the address last referenced to arrive at the examine address. PREVIOUS means subtract one (for a KL) or two (for a PDP-II) from the address last referenced to arrive at the examine address. THIS means use the address last referenced as examine address. EXAMINE AB from the PROGRAMMER The EXAMINE AB command displays the contents of break register. the KL address PROGRAMMER EXAMINE AD The EXAMINE AD command displays the register. contents of the EXAMINE ADX KL adder PROGRAMMER The EXAMINE ADX command displays the contents extension. 4-12 of the KL adder PARSER PROGRAMMER EXAMINE AR The EXAMINE AR command displays the contents of the KL arithmetic register. EXAMINE ARX PROGRAMMER The EXAMINE ARX command displays arithmetic register extension. the contents of the KL PROGRAMMER EXAMINE BR The EXAMINE BR command displays the contents register. of the KL buffer PROGRAMMER EXAMINE BRX The EXAMINE BRX command displays the contents of register extension. the KL buffet PROGRAMMER EXAMINE CRADDR The EXAMINE CRADDR command displays the contents of the address register. KL CRAM PROGRAMMER EXAMINE CRLOC The EXAMINE CRLOC command displays the contents of location register. the KL CRAM PROGRAMMER EXAMINE DRADDR The EXAMINE DRADDR command displays the contents of the address register. 4-13 KL DRAM PARSER EXAMINE DTE-20 PROGRAMMER The EXAMINE DTE-20 command displays the contents of the DTE-20 registers. These registers are displayed as in the following example: DLYCNT: 000000 DEXWD3: 000447 DEXWD2: 000000 DEXWDl: 000000 KLIO DATA=000000,,000447 TENADl: 000000 TENAD2: 000007 ADDRESS SPACE=EPT OPERATION=EXAMINE PROTECTION-RELOCATION IS ON KLIO ADDRESS=7 TOIOBC: 010000 TOIIBC: 130000 TOIOAD: 066652 TOIIAD: 066075 TOIODT: 000000 TOIIDT: 000012 DIAGI : 002400 KL IN RUN MODE MAJOR STATE IS DEPOSIT-EXAMINE DIAG2 : 040000 STATUS: 012104 RAM IS ZEROS DEX WORD 1 E BUFFER SELECT DEPOSIT-EXAMINE DONE DIAG3 : 000000 PROGRAMMER EXAMINE EBUS The EXAMINE EBUS command displays the contents register. of the EXAMINE FE KL EBUS PROGRAMMER The EXAMINE FE command displays the contents of the Exponent register. KL EXAMINE FLAGS Floating PROGRAMMER The EXAMINE FLAGS command displays the current state of the flag bits (0-12) in the left half of the PC word. Those flags are OVF, CYO, CYl, FOV, BIS, USR, UIO, LIP, AFI, ATl, ATO, FUF 1 and NDV. EXAMINE FM PROGRAMMER The EXAMINE FM command displays Memory register. 4-14 ------------------------ the contents of the KL Fast PARSER EXAMINE MQ PROGRAMMER The EXAMINE MQ command displays the contents of the KL Multiplier Quotient ,register. EXAMINE PI PROGRAMMER The EXAMINE PI command displays Priority Interrupt system. the current state of the KL PROGRAMMER EXAMINE REGISTERS The EXAMINE REGISTERS command displays the following registers (see also the EXAMINE individual registers): contents of command for AD, ADX, AR, ARX, BR, BRX, EBUS, FM, MQ, and the the pc. EXAMINE SBR PROGRAMMER The EXAMINE SBa command displays Subroutine Return register. the contents of EXAMINE SC the KL PROGRAMMER The EXAMINE SC command displays the Count register. contents of the EXAMINE VMA KL Shift PROGRAMMER The EXAMINE VMA command displays the contents of the Memory Address register. EXAMINE VMAH KL virtual PROGRAMMER The EXAMINE VMAH command displays the contents of the KL Memory Address Held register. Io'READ nnn nnn:nnn Virtual MAINTENANCE The FREAD command performs a diagnostic function read of the KL CPU. The valid range of function codes (nnn) is 100 through 177 octal. 4-15 PARSER FWRITE nn=data MAINTENANCE The FWRITE command performs a diagnostic function write to the KL CPU. The valid range of function codes (nn) is 40 through 77 octal. The data must be a 36-bit integer. FXCT nn MAINTENANCE The FXCT command performs a diagnostic function execute on the KL CPU. The valid range of function codes (nn) is 0 through 37 octal. HALT PROGRAMMER The HALT command tries to put the KL into the HALT loop by clearing the RUN flop (FXCT 10) and waiting. If the KL refuses to go into the HALT loop, the front end tries to force it in by using BURST mode. If this does not work, the following error message is issued: PAR -- [HALT] CFH - CAN1T FIND KL HALT LOOP INITIALIZE PROGRAMMER The INITIALIZE command sets up the KL state flag word default values and restarts the KL based on those values. with OPERATOR JUMP addr The JUMP command starts the KL at the specified address and exits from the PARSER. At this point, the CTY is connected to the TOPS-IO or TOPS-20 operating system. The argument addr must be an octal, positive, nonzero address with a maximum value of 17777777. MARK-MICROCODE n MAINTENANCE The MARK-MICROCODE command sets the mark bit in the specified CRAM location. The n is the CRAM address in the range of 0 to 2377. The bit can be cleared by using the UNMARK-MICROCODE command. MeR taskname OPERATOR The MCR command loads and starts the specified task file. 4-16 PARSER QUIT OPERATOR The QUIT command causes the PARSER to be exited. At this point, the CTY is connected to the TOPS-IO or TOPS-20 operating system. This command is equivalent to SET CONSOLE USER or CTRL/Z. REPEAT nnn; [commandl;command2; ••• ] OPERATOR The REPEAT command causes the subsequent commands in the current command line to be repeated the number of times specified by nnn. The argument nnn must be a positive, decimal, nonzero integer. The command line can contain as many commands as will fit within the 280 character buffer limitation. You can nest REPEATs within the command line. Also, if a SET REPEAT command is in effect, the two repeat factors are multiplied to arrive at the actual number of times commands are repeated. For example, the following command examines the PC ten times: REPEAT 10;EXAMINE PC A more complex example is shown below, along with the sequence of single commands that would duplicate the action of the single command line. REPEAT 3;EXAMINE PC:REPEAT 2:EXAMINE NEXT EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE PC NEXT NEXT PC NEXT NEXT PC NEXT NEXT If SET REPEAT 4 had been previously entered, the would be repeated four times. If no commands are specified, command. the RESET effect is above that sequence of a null PROGRAMMER The RESET command performs a MASTER RE$ET of the KL and retains the clock and parity-stop enables that existed before the reset. This command is not allowed while the KL is running. RESET ALL PROGRAMMER The RESET ALL command executes the RESET APR, RESET DTE-20, RESET PAG, and RESET PI commands. This command is not allowed while the KL is running. 4-17 PARSER PROGRAMMER RESET APR The RESET APR command executes a eONO APR,,267760 instruction to clear the KL arithmetic processor. This command is not allowed while the KL is running. PROGRAMMER RESET DTE-20 The RESET DTE-20 command resets the DTE-20 by depositing a I in bit 6 of the DTE-20 diagnostic word 2. Bit 0 in diagnostic word 3 is set to I to indicate word-mode transfers. PROGRAMMER RESET ERROR The RESET ERROR command executes a eONO APR,,27760 instruction to reset the KL error flags. PROGRAMMER RESET INITIALIZE The RESET INITIALIZE command performs a MASTER RESET of the KL and sets up normal clock and parity-stop enables. This command is not allowed while the KL is running. PROGRAMMER RESET 10 The RESET 10 command executes a eONO APR,,200000 perform an I/O reset of the KL. instruction to PROGRAMMEF: RESET PAG The RESET PAG command executes a eONO PAG"Q instruction followed by a DATAO PAG"IOO instruction to reset the KL PAGing box. This command requires that the KL clock be running. PROGRAMMEF~ RESET PI The RESET PI command executes a eONO PI"IOOOO reset the KL Priority Interrupt system. instruction OPERATOFt RUN taskname The RUN command loads and starts the specified task command is an alias for the MeR command. 4-18 ------------,---------------------------, to file. ThiH PARSER SET AC-BLOCK n PROGRAMMER The SET AC-BLOCK command changes the current KL block to the one specified by the argument n in the command. This argument can have a value in the range a to 7. SET AUTO-TAKE OPERATOR The SET AUTO-TAKE command enables the automatic execution of PARSER.CMD whenever a SNAPSHOT is requested, either by the operator or by the front end when it detects a KL crash. SET CLOCK NORMAL MAINTENANCE The SET CLOCK NORMAL command sets the KL's clock parameters to internal source, full rate, and en~bles the CRAM, data path, and control logic clocks. SET CLOCK MAINTENANCE CRAM } . DATA-PATH {.CO~TROL This SET CLOCK command enables the specified clock as follows: CRAM enables the control-RAM clock. DATA-PATH enables the data-path clock. CONTROL SET CLOCK { enabl~s the control logic clock. MAINT~NANCE EX'l'ERNAL} INTERNAL MARGIN This SET CLOCK command sets the source of the clock pulses: external, internal, or margin. The margin clock is slightly faster than the normal internal clock and is used for diagnosing rate-sensitive problems. There may not be an external clock attached to the KL. Therefore, after you type the SET CLOCK EXTERNAL command, the PARSER will print: CONFIRM EXTERNAL CLOCK SOURCE (YES OR NO)? If you answer YES, the operation is performed. If you answer YES and there is no external clock attached, the KL hangs and has to be reset. 4-19 PARSER SET CLOCK MAINTENANCE FULL } HALF { QUARTER SLOW This SET CLOCK command determines the speed of the KL clock: full speed, one half speed, one quarter speed, or slow speed which is equivalent to one eighth speed. SET CONSOLE OPERATOR MAINTENANCE] OPERATOR PROGRAMMER [ USER The SET CONSOLE command sets the console mode of operation therefore, the allowable subset of PARSER commands. MAINTENANCE allows the full set of PARSER commands. PROGRAMMER allows all functions. OPERATOR allows only those PARSER commands that crash the TOPS-IO or TOPS-20 monitor. USER exits the PARSER. PARSER commands If no subargument is entered, the console is mode. except set to and, diagnostic will not PROGRAMMER NOTE ,,' If KLINIK is enabled and active, the PARSER does not let you set the console mode any higher than that specified when the KLINIK window was defined. PROGRAMME:R SET DATE The SET DATE command sets RSX-20F's internal date. This date is used in setting up and accessing KLINIK. This command is not available if RSX-20F thinks that it already has a valid date (validity flag is ON). In response to the SET DATE command, the PARSER prompts you as follows: PAR>SET DATE<RET> DATE: 19 FEB 79 TIME: 1211 CURRENT SYSTEM DATE: MONDAY, 19-FEB-79 12:11 VALIDITY FLAG IS:ON PAR> 4-20 ----------.........--.........------------------------------------------ ................................. PARSER SET FAULT-CONTINUATION PROGRAMMER The SET FAULT-CONTINUATION command enables the KL's automatic fault continuation reload mechanism. This allows the host to recover from errors detected by the front-end. SET FS-STOP MAINTENANCE The SET FS-STOP command enables the Field Service stop facility. SET INCREMENT n OPERATOR The SET INCREMENT command sets the KL increment counter to the value specified by the octal integer, n. The increment counter is used by the INCREMENT and DECREMENT arguments of the EXAMINE and DEPOSIT commands. Also, only KL memory addresses are modified by the increment counter. PDP-II addresses that are incremented or decremented default to NEXT and PREVIOUS, respectively. SET KLINIK OPERATOR The SET KLINIK command is usea to enable access to the KLINIK link. The command initiates a dialog in which a KLINIK access window and security parameters are established. (refer to Appendix D for the KLINIK dialog.) SET MEMORY OPERATOR ELEVENl [ TEN J The SET MEMORY command EXAMINEs and DEPOSITs. establishes the ELEVEN means default to the PDP-II memory. TEN means default to the KL memory. default memory for The command itself has no default; an argument must be entered. When RSX-20F is first loaded, the default memory is TEN. SET NOT argument OPERATOR The SET NOT command is the equivalent of the CLEAR requires an argument. (See the CLEAR commands.) 4-21 command and PARSER SET NOT OUTPUT [device] OPERATOR The SET NOT OUTPUT command is equivalent command. (See CLEAR OUTPUT command.) to The default devices for the SET NO OUTPUT LPT. command SET OFFSET nnnnnn the CLEAR are OUTPUT LOG and PROGRAMMER The SET OFFSET command sets the PDP-II relocation factor to the value specified by nnnnnn, an octal number in the range 77777 (+32,767) through 100000 (-32,768). The relocation factor when RSX-20F is first loaded is the address of the PARSER root overlay. SET OUTPUT OPERATOR LOG] LPT [ TTY This command directs the CTY output to the specified device. The available devices are the log file PARSER.LOG, the lineprinter, and the console terminal. The output is directed to all activated devices If the output is directed to a log file and the file PARSER. LOG does not exist, the file is created and the data written to the new file. If the file already exists, the new data is appended to the file. In either case a header line is output to all active output devices when a logging file is opened or closed. The default argument is TTY. SET PARITY-STOP ALL AR CRAM DRAM ENABLE FM FS-STOP MAINTENANCH The SET PARITY-STOP command allows you to selectively enable parity stops for the Arithmetic Register and extension, CRAM, DRAM, Fast Memory, and Field Service. The parity stops when RSX-20F is first loaded are AR, CRAM, DRAM, and FM with ENABLE ON. SET RELOAD PROGRAMM1E:R The SET RELOAD command enables the automatic reload of the KL by the PDP-II front end in situations such as Keep-Alive-Cease or CPU errors. 4-22 PARSER SET REPEAT n OPERATOR The SET REPEAT command sets the command line repeat factor to n. The value n must be specified as a positive decimal number. Each subsequent command line is repeated n number of times. SET RETRY PROGRAMMER The SET RETRY command sets the RETRY flag in RSX-20F. When this flag is set, the first occurrence of a Keep-Alive-Cease error results in the execution of the instruction in location 71. This instruction usually branches to a routine that causes the KL monitor to dump memory and request a reload (BUGHLT in TOPS-20, STOPCD in TOPS-IO). If the KL cannot accomplish this task before the end of the Keep-Alive period (5 seconds), RSX-20F assumes that the KL is incapacitated. In this case, KLERR is called to take a KL hardware snapshot and then reload the KL. If the RETRY flag is reset (see CLEAR RETRY), every occurrence of a Keep-Alive-Cease error results in a KLERR snapshot/reload of the KL. SET TRACKS PROGRAMMER The SET TRACKS command causes RSX-20F to type out, on the console terminal, all KL operations and their results. OPE~TOR, SHOW [parameter] PROGRAMMER The SHOW command is the same as the WHAT command, and accepts the same values as parameters. OPERATOR SHUTDOWN The SHUTDOWN command DEPOSITs a minus one into the KL EXEC, virtual location 30 (octal). This comm~nd is used to bring down a running sy~tem gracefully. Example: PAR>SHUTDOWN **HALTED** %DECSYSTEM~20 NOT RUNNING 4-23 PARSER SNAPSHOT MAINTENANCE The SNAPSHOT command forces a snapshot of the KL executes PARSER.CMD. See command SET AUTO-TAKE. and optionally PROGRAMMER START TEN addr The START TEN command starts the KL at the address specified. Control then returns to the PARSER. The starting address, addr, is a required argument and must not be zero. PROGRAMMER START MICROCODE [addr] The START MICROCODE command performs a MASTER RESET of the KL and then starts the microcode at the specified address. If addr is omitted, the default address is zero. Starting the microcode at an address other than zero is not recommended. SWEEP [n] MAINTENANCE The SWEEP command performs a sweep of the specified KL AC block or, if no argument is given, all 8 AC blocks are swept. The argument can be 0 to 7. The sweep consists of reading the contents of all the registers in a block and checking for a parity error after each read. The SWEEP command first executes a SET AC-BLOCK for the specified block, then examines each location. If an FM parity error is detected, a message is output and the KL parity is reset. Then the next location is examined. When no argument is specified and a Clock Error Stop (CES) exists then all eight blocks are swept. When the sweep is complete, the block is reset to the original AC block. If an error is detected, an attempt is made to write the contents of the registers with good parity. If this fails an er.ror is generated. Each time an FM parity error is detected, a message This message is of the form: is printed. SWEEP PASS number> n:aa/dddddd dddddd where n is the AC block number, aa is the AC address, and dddddd is the AC contents. dddddd If this command is issued during a KL clock error stop caused by an FM error, then the current content of the FM output register is output in the form: FM PARITY ERROR-(BLOCK:ADDR/DAT) n:aa/dddddd dddddd where n is the AC block number, aa is the AC address, and dddddd is the AC contents. 4-24 dddddCl PARSER OPERATOR TAKE [file] The TAKE command executes the specified file as an indirect command file. All legal PARSER commands, except another TAKE command, are allowed in the command file. During execution of the file, errors are handled exactly as if the commands were input from the CTY. The 'commands in the file are executed until an end-of-file condition is reached. At that point the message <EOF> is printed on the CTY and input is accepted from the CTY. The file specified can be any 6 character alphanumeric file name. The system device should have a file of the form 'file'.CMD, where 'file' is the filename that appeared in the command. If no filename is specified for the TAKE command, the default filename PARSER.CMD is used. NOTE Only the filename can be used with the TAKE command. The file extention cannot be entered on the command line. The file is assumed to have the extent ion .CMD. Example: Executing the default command file PARSER.CMD. PAR>TAKE PAR>!THIS IS AN INDIRECT COMMAND FILE PAR>!ALL PARSER COMMANDS ARE COMING FROM IT PAR>WH VER!FIRST COMMAND PARSER VERSION: V06-00 RSX20F VERSION: VBl341 PAR>WH DAT! SECOND COMMAND CURRENT SYSTEM DATE: THURSDAY, 27-DECEMBER-79 14:10 VALIDITY FLAG IS: OFF PAR>! THIS IS THE END OF THE FILE PAR> <EOF> Attempting to TAKE a nonexistent command file. PAR>TAKE TEST2 PAR> -- [TAKE] NSF - NO SUCH FILE UNMARK-MICROCODE n MAINTENANCE The UNMARK-MICROCODE command clears the mark bit in the specified CRAM location. The n is the CRAM address in the range 0 to 2377. The bit is marked with the MARK-MICROCODE command. 4-25 PARSER WHAT AUTO-TAKE OPERATOR The WHAT AUTO-TAKE reports the status of AUTO-TAKE. either of the following: AUTO-TAKE: or AUTO-TAKE: It displays ON OFF WHAT CLOCK PROGRAMMER The WHAT CLOCK command displays the control of the KL's clocks. current source, rate, and OPERATOR WHAT CONSOLE The WHAT CONSOLE command displays the OPERATOR, PROGRAMMER, or MAINTENANCE. current console WHAT DATE mode: OPERATOR The WHAT DATE command displays the day, date, and time that are currently stored in RSX-20F. The status of the date validity flag is also displayed. WHAT FAULT-CONTINUATION PROGRAMMER The WHAT FAULT-CONTINUATION command reports the status FAULT-CONTINUATION. It displays either of the following: FAULT-CONTINUATION: or FAULT-CONTINUATION: of ON OFF WHAT HARDWARE OPERATOR The WHAT HARDWARE command displays the environmental report that KLINIT generates. The report contains the KL serial number, model type, line frequency, and hardware options. (refer to section 5.3.1) WHAT INCREMENT OPERATOR The WHAT INCREMENT command displays the current value of increment counter used in EXAMINEs and DEPOSITs. 4-26 the KL PARSER WHAT KLINIK OPERATOR The WHAT KLINIK command displays the current access status of the KLINIK link (refer to the SET KLINIK command in Appendix D). If no access window has been set up the reply is: KLINIK DISABLED If an access window has been set up and the link is in reply is: use, the in use, KLINIK ACTIVE or KLINIK ACTIVE AFTER REBOOT If an access window has been set up and the link is not the reply is: KLINIK INACTIVE In either of the last two instances, the status is followed by display of the KLINIK window parameters. 'WHAT MEMORY a OPERATOR The WHAT MEMORY command displays the default memory for and EXAMINEs. WHAT OFFSET DEPOSITs PROGRAMMER The WHAT OFFSET command displays the factor. current PDP-II relocation OPERATOR WHAT OUTPUT The WHAT OUTPUT command displays the logging output. current devices that are PROGRAMMER WHAT PARITY-STOP The WHAT PARITY-STOP command displays the current status of the parity stop enable bit, as well as the parity stops that are currently enabled. PROGRAMMER WHAT RELOAD The WHAT RELOAD command displays automatic reload function. 4-27 the current status of the PARSER WHAT REPEAT OPERATOR The WHAT REPEAT command displays the current value of the repeat factor. PARSER PROGRAMMER WHAT RETRY The WHAT RETRY command displays the current status of flag in the front end. the RETRY PROGRAMMER WHAT TRACKS The WHAT TRACKS command displays the current KL tracking status. WHAT VERSION OPERATOR The WHAT VERSION command displays the current versions of RSX-20F and the PARSER. XCT argument PROGRAMMER The XCT command takes a 36-bit numerical expression as argument and executes this expression as a KL instruction.. also accepts input in the form: an It func dev, addr where: func is one of the following: CONI CONO DATAl DATAO BLKI BLKO CONSO CONSZO dev is the octal device code. addr is the I/O instruction right half. This input is decoded to create a 36-bit KL I/O instruction that is then executed. This form allows the user to execute I/O instructions to obtain device status information without knowing the opcodes. The user need only know the device code of a few standard devices. 4-28 PARSER Note that executing an instruction with an opcode (bits 0 through 8) of zero is not allowed. If you attempt to do this, you will receive an ILLEGAL KL OPCODE error message. ZERO loaddr>hiaddr PROGRAMMER The ZERO command zeroes a specified area of KL memory. ZERO accepts as an argument the boundary addresses of the area to be zeroed: loaddr and hiaddr. 4.5 PARSER ERROR MESSAGES The following list contains all the error messages that can be issued by the PARSER while in any of the three console modes. The format of each message is: PAR -- [command name] code - message The command name is the name of the command that caused the error. However, this command name can be PARSER if you typed a string that caused an error in the command parser rather than in a specific command routine. For example, assume that you type an invalid command such as: PAR>KLEAR CONSOLE You will receive the error message: PAR -- [PARSER] NSK - NO SUCH KEYWORD "KLEAR" On the other hand, assume that you type in an invalid argument: PAR>CLEAR KONSOLE You will receive the error message: PAR [CLEAR] NSK - NO SUCH KEYWORD "KONSOLE" The various error codes, messages, and explanations are given below. AMB AMBIGUOUS KEYWORD "xxx" where "xxx" is the ambiguous keyword. The PARSER found more than one keyword that matched the abbreviation you typed. NOTE The PARSER matches your abbreviation against the complete set of commands and arguments, regardless of the subset allowed by the console mode. APE KL APR ERROR The PARSER encountered a CPU error (nonexistent memory, parity error, or a similar condition) • Call your Field Service Representative. 4-29 PARSER BAE BURST ARGUMENT ERROR This is an internal programming failure. Support Specialist. CAE Call your Software KL CRAM ADDRESS ERROR Call either your This is an internal programming failure. Field Service Representative or your Software Support Specialist. CAL CAN'T ASSIGN LUN RSX-20F is unable to assign a Logical Unit Number. The problem is in the file structure. Retry the operation. If the error continues, call your Field Service Representative. CAP CAN'T ATTACH LINEPRINTER The PARSER is unable to attach the line printer. Check tQ make sure that the line printer is available to the systet and that the command format is correct. If the error persists, call your Field Service Representative. CBO COMMAND BUFFER OVERFLOW You typed a command line that was more than 280 characters in length. Reenter the command as two or more lines. CDI CLEAR DATE ILLEGAL You tried to clear the internal date primary protocol. CES while the KL was in CLOCK ERROR STOP - code ERROR STOP The variable, code, is either CRAM, DRAM, FM, or FS-STOP. This message is displayed when the CPU encounters a fatal internal hardware error. Note the code received and call your Field Service Representative. Also, try to reload the system using DISK, DECtape, floppy or switch register. If you ~se the switch register, make sure that you reload the microcode. CFH CAN'T FIND KL HALT LOOP The PARSER tried to halt the KL but failed. Service Representative. CLE Call your Field CONSOLE LIMIT EXCEEDED You tried to set a console mode that was higher than the console mode specified in the SET KLINIK command dialog. This is not allowed while the KLINIK link is active in remote mode. 4-30 PARSER CNR COMMAND IS NOT REPEATABLE You tried to repeat a command that cannot However, the command has been executed once. CRH hardware options. the validity DATE ALREADY VALID You tried to set a new internal date and flag was on. DBT repeated. CAN'T READ HARDWARE OPTIONS The PARSER is unable to read the system Call your Field Service Representative. DAV be date DATE BEFORE TODAY While in the SET KLINIK command dialog, you tried to specify an open or close date that was prior to the current date. DCK DIVIDE CHECK This is an internal programming error. Support Specialist. DMF your Software DEPOSIT KL MEMORY FAILED This is an internal programming accept a deposit directive. Specialist. DNF Call failure. RSX-20F did not Call your Software Support DIRECTORY ?ILE NOT FOUND The directory file cannot be found. The problem is in the file structure. Retry the operation, .and if the error continues, call your Field Service Representative. DNP DTE-20 IS NOT PRIVILEGED This is a fatal error. The DTE-20 mode switch is wrong position. Call either your Field Representative or your Software Support Specialist. DOR DAY OUT OF RANGE You specified a day that does not entered. DSF in the Service exist in the month you DTE-20 STATUS FAILURE A read or write to one of the DTE-20 status registers failed. Call your Software Support Specialist. 4-31 PARSER DTC DTE-20 CONFUSED - RUN AND HALT LOOP This is a fatal error. The run and halt loop flags were set simultaneously, an impossible situation. Call your Field Service Representative. ECT EBOX CLOCK TIMEOUT While the PARSER was doing an execute function, the KL failed to reenter the halt loop within the allotted time. Call your Software Specialist. EMF EXAMINE KL MEMORY FAILED This is an internal programming accept an examine directive. Specialist. EOC failure. R5X-20F did not Call your Software Support END OF COMMAND REQUIRED The command was ended with a? and no additional arguments are required. Retype the command and press the RETURN key. EPE EBUS PARITY ERROR This is a fatal error. The PARSER encountered an EBUS parity error. Call your Field Service Representative. ESD EBOX STOPPED - DEPOSIT The PARSER executed a deposit directive and found that the KL clock was stopped. ESE EBOX STOPPED - EXAMINE The PARSER exscuted an examine directive and found KL clock was stopped. FCF that the FILE CLOSE FAILURE The PARSER is unable to close the file. Retry the operation. If the error continues, call your Field Service Representative. FEF FILE EXTEND FAILURE The PARSER failed to extend the file. Retry the command. If the error persists, call your Field Service Representative. FEN FILE ENTER FAILURE The PARSER is unable to enter the specified file. Retry the command. If the error persists, call your Field Service Representative. 4-32 PARSER FLF FILE LOOKUP FAILURE The PARSER failed in its attempt to look up the specified file. Retry the operation. If the error continues, call your Field Service Representative. FOF FILE OPEN FAILURE The PARSER failed to open the specified file. Retry the operation. If the error persists, call your Field Service Representative. FRD FILE READ FAILURE The PARSER is unable to read the file. Retry the command. If the error persists call your Software Support Specialist. FRF FUNCTION READ nnn FAILED A diagnostic function read with function code nnn has failed. This 1S a fatal error. Call your Fiel& Service Representative and your Software Support Specialist. If the system crashes, try to reload it. FSW FM SWEEP FAILED The FM sweep failed. Retry the sweep. If the persists, call your Field Service Representative. FWF problem FUNCTION WRITE nn FAILED A diagnostic function write with function code nn has failed. This is a fatal errOr. Call your Field Service Representative and your Software Support Specialist. If the system crashes, try to reload it. FWT FILE WRITE FAILURE The PARSER is unable to write to the specified file. Retry the command. If the error persists call your Field Service Representative. FXF FUNCTION XCT nn FAILED A diagnostic function execute with function code nn has failed. This is a fatal error. Call your Field Service Representative and your Software Support Specialist. If the system crashes, try to reload it. 4-33 PARSER IDF ILLEGAL DATE FORMAT You entered a date in the wrong format. is: The correct format dd-mmm-yy where the hyphens can be replaced by spaces and the year can be entered as four digits. The day and year must be numeric and the month must be alphabetic. The month can be abbreviated as long as it remains unique. IFC ILLEGAL FUNCTION CODE This is either an internal programming error or the result of entering a diagnostic command with an invalid function code. The valid function codes are as follows: FREAD command takes codes 100-177 FWRITE command takes codes 40-77 FXCT command takes codes 0-37 If the message is not a result of entering a command, call your Software Support Specialist. IFN ILLEGAL FILE NAME The PARSER cannot accept the filename as specified. the command, making sure the filename is correct. ILC diagnostic Reissue ILLEGAL CHARACTER "c" The PARSER found an illegal character in the command line and "c" is the character's printing equivalent. Nonprinting characters are preceded by a circumflex (A) and converted to their printing equivalent for output. ILl ILLEGAL INSTRUCTION CLEAR AC-BLOCK is not allowed. ILS ILLEGAL SEPARATOR CHARACTER "s" The PARSER found an illegal separator character in the command line and "s" is the illegal character. Nonprinting characters are preceded by a circumflex (A) and converted to their printing equivalent for output. Note that a tab is converted to one space. IOC ILLEGAL KL OPCODE Either you or the PARSER tried to execute a KL instruction with an illegal op-code. If this is not the result, of an XCT command, call your Software Support Specialist. 4-34 PARSER IPC ILLEGAL PASSWORD CHARACTER "c" During the SET KLINIK dialog, you typed a password containing "c," an illegal character. You must use only numeric or uppercase alphabetic characters in the password. IRC ILLEGAL REPEAT COUNT You typed a zero or negative argument to either the REPEAT or SET REPEAT command. IRE ILLEGAL RECURSION A TAKE command cannot be used in an indirect command file. ITF ILLEGAL TIME FORMAT You entered a time of day that was not in the proper format. The PARSER expects a numeric value of the form hh:mm or hhmm. ITN ILLEGAL TASK NAME The RUN or MCR command was entered with no task name. KCN KL CLOCK IS OFF The KL clock is off and you tried to execute a requires the clock to be on. KLA of range (over 22 KL was ILLEGAL WHILE KL RUNNING You tried to execute an illegal running. KNC that KL ADDRESS ERROR You specified a KL address that was out bits), negative, or not in octal radix. KLR command command while the KL IS NOT CONTINUABLE You tried to resume processing with the CONTINUE command, but the KL was not in a continuable state. For example, you cannot CONTINUE after a RESET command. KWE KLINIK WINDOW ERROR During the SET KLINIK dialog, you specified a window close date and time that is prior to the window open date and time. MRA MISSING REQUIRED ARGUMENT You did not specify command. all the 4-35 necessary arguments for the PARSER MRH HARDWARE OPTIONS MUST YET BE READ KLINIT has not yet read and stored the hardware options because the KL is not running. Retry the command when the KL is running. NDI NULL DATE ILLEGAL prompt During the SET DATE dialog, you answered the DATE: with a carriage return. You must supply a date. NER NUMERIC EXPRESSION REQUIRED You entered a command that expects a numeric expression as an argument and something else was entered. NOR INPUT NUMBER OUT OF RANGE You specified a number that was out of range or in the radix. NPl NULL PASSWORD ILLEGAL During the SET KLINIK dialog, prompt with a carriage return. one is requested. NSF you answered the PASSWORD: You must supply a password if NO SUCH FILE The file as specified does not exist. reenter the command if necessary. NSK wrong Check the filename and NO SUCH KEYWORD "xxx" You entered a command containing the invalid keyword "xxx". NST NO SUCH TASK You specified a nonexistent task in an MCR or RUN command. NTI NULL TIME ILLEGAL During the SET DATE dialog, you answered the TIME: with a carriage return. You must specify a time. OAl prompt ODD ADDRESS ILLEGAL You tried to examine an odd-numbered PDP-II address. OFC ODD FUNCTION CODE This is an internal programming error. Support Specialist. 4-36 Call your Software PARSER PTL PASSWORD TOO LONG During the SET KLINIK dialog, you specified a was more than six characters in length. RPM password that RIGHT PARENTHESIS MISSING You omitted a right parenthesis in a numeric expression. SCF SET CLOCK FAILED The PARSER cannot validate the clock enable parameters it has just set. This is a hardware error. Call your Field Service Representative. SKI SET KLINIK ILLEGAL WHILE KLINIK ACTIVE You tried to set new KLINIK parameters while the KLINIK link was active. If you want to change the parameters, you must first disconnect the KLINIK link by typing DISCONNECT or CLEAR KLINIK. SPF SET PARITY FAILED The PARSER cannot validate the parity stop parameters it has just set. This is a hardware error. Call your Field Service Representative. SZI START AT ZERO ILLEGAL You tried to start the KL at location zero; TAA this is illegal. TASK ALREADY ACTIVE You issued a RUN or MCR command for a task that active. TOR was already TIME OUT OF RANGE You specified a time in which the hours were greater than or the minutes were greater than 59. UNL 23 KL MICROCODE NOT LOADED The system tried to start the KL microcode and found that it was not loaded or was not functioning. Use DISK, DECtape, FLOPPY, or the switch register to reload the microcode and the system. VFY VERIFY FAILED The PARSER cannot verify the correct execution of command. Call your Software Support Specialist. 4-37 a DEPOSIT PARSER ~vRM COMMAND NOT AVAILABLE IN THIS CONSOLE MODE You entered a command that is not available in the current console mode. Use the SET CONSOLE command to change mode. XTO KL EXECUTE TIMED OUT The KL failed to reenter the halt loop within the allotted time while performing a fast internal execute function. YOR YEAR OUT OF RANGE You specified the year incorrectly. 4-38 CHAPTER 5 KLINIT KLINIT is the KL initialization program. You can run KLINIT in default mode where it performs a fixed series of operations or you can run it in dialog mode and specify selected operations. When you load the system using the DISK, DECTAPE, or FLOPPY load switch, (Figures 5-1 and 5-2), KLINIT performs the following steps automatically without operator intervention. 1. Loads the KL processor microcode from the appropriate microcode file on the front-end load device. (Users of TOPS-IO with a KL model A load from UA.MCB; users of TOPS-IO with a model B load from UB.MCB. Users of TOPS-20 with a model A load from KLA.MCB, and TOPS-20 users with a model B load from KLX.MCB.) 2. Configures and enables cache memory according to the KLINIT configuration file, KL.CFG. If this file is not present on the front-end load device, all cache is enabled. 3. Configures and interleaves KL memory according to the KLINIT configuration file, KL.CFG. If this file is not present on the front-end load device, all available memory is configured with the highest possible interleaving. 4. If the KL.CFG file does not exist, KLINIT creates a file by that name and stores it on the front-end load device. The file contains the cache and memory configuration in effect at the time. 5. Loads and starts the default KL bootstrap program from the file BOOT.EXB located on the disk, DECtape, or floppy disk device. The bootstrap program then loads and starts the default monitor. The default monitor is found in: SYS:SYSTEM.EXE for TOPS-IO PS:<SYSTEM>MONITR.EXE for TOPS-20 If you do not want KLINIT to perform the above series of operations, you must enter the dialog mode of KLINIT. Then, you can do anyone or more of the following: • Load -and/or verify the KL microcode. • Configure cache memory as you want it. • Configure KL memory as you want it. 5-1 KLINIT • Load and start any bootstrap program. • Specify switches to the bootstrap program. • Load and start any monitor from disk or magnetic tape. NOTE The default bootstrap program BOOT.EXB does not understand TOPS-20 subdirectories. Thus, although you can load and start any monitor from disk, you cannot load the monitor from any disk area. Specifically, you can load <EXTRA-SYSTEM>OUR-MONITOR.EXE, but you cannot load <EXTRA. SYSTEM>OUR-MONITOR. EXE. 5-2 KLINIT r LOAD SWITCHES DISK ENABLE I FAULT LIGHT POWER LIGHT POWER SWITCH EMERGENCY POWER OFF SWITCH REGISTER Figure 5-1 Load Switches and Switch Register for KL with Floppy Disks 5-3 KLINIT LOAD SWITCHES DISK SW REG ENABLE 1 DECTAPE POWER LIGHT FAULT LIGHT POWE SWITC EMERGENCY POWER OFF o 17 SWITCH REGISTER Figure 5-2 ENABLE/HALT SWITCH Load Switches and Switch Register for KL with DECtapes 5-4 KLINIT Table 5-1 Switch Register Bit Definitions 111 10 1711611514 Bit Meaning o If this bit is set, the remaining bits are interpreted. You must set this to load the system using the switch register. 2,1 If both bits 1 and 2 are set, RSX-20F is loaded and the KL initialization operator dialog (KLINIT) is loaded and started. This is what you usually want to do if you are loading the system from the switch register. If bit 1 is set and bit 2 is not set, the RSX-20F monitor is loaded and started; no communication is initiated between the KL and PDP-II processors at this time. If bit 1 is not set and bit 2 is set, RSX-20F is loaded and started. However, the front end tries to communicate with the KL uSlng secondary and then primary protocol. If the KL is not running, a TBT II-halt occurs. If both 1 and 2 are not set, the system is loaded much like it is using the DISK, DECtape, or FLOPPY load switch. However, before KLINIT is run, a diagnostic program that checks out the front end CPU and front-end devices is executed. 6-3 Used to set the speed of a DH-ll CTY (bits 14-11). 7 If this bit is set, the bootstrap device pack on a dual-ported drive. If the bit is not set, the DECtape drive or floppy processor. is a disk bootstrap device is a disk on the front-end 10-8 These three bits allow you to specify the unit number of the bootstrap device in binary. No bits set indicate unit 0; bits 9 and 8 set indicate unit 3. 14-11 These four bits allow you to specify to RSX-20F the DH-ll line number to which you wish to redirect the CTY. 15 This bit indicates the action taken when an I/O error occurs during the bootstrapping. If the bit is set, the operation is retried indefinitely if an error occurs. If it is not set (the normal case), a halt occurs after ten unsuccessful retries. 17,16 Currently not used, and must not be set. A bit is set when position. the corresponding 5-5 switch is in the upward KLINIT 5.1 KLINIT LOAD AND START When you load and start the KL using the SW REG load switch, usually enter the KLINIT dialog. (See Figures 5-1 and 5-2.) Set switch register bits 0, 1, and 2 on (in the up position). Refer Table 5-1 to determine if bits 7 through 10 should be set. Press load switches SW REG and ENABLE simultaneously. RSX-20F loads starts and, in turn, loads and starts KLINIT. KLINIT then prompts with the first question: you the to the and you KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? You may also enter the KLINIT dialog from the PARSER. RSX-20F is running, type the following: Assuming that CTRL/\ (does not echo) ;to enter the PARSER PAR)MCR KLINIT ;to load KLINIT KLI -- ENTER DIALOG [NO, YES, EXIT, BOOT]? During the dialog, the following conventions hold: • A carriage return terminates the answer to a question. • A RUB OUT or DELETE deletes a character. • A carriage return by itself in answer to a question selects the default answer to the question. The default answer is the first answer listed. • CTRL/Z terminates the operator dialog and exits to the PARSER without rewriting the KL.CFG file. If the KLINIT dialog is terminated in this manner, the KL hardware may not be fully or completely initialized. • CTRL/U deletes the current input line. • An answer of NO to the ENTER DIALOG question skips of the dialog and assumes all the default answers. • An answer of BACK to any question returns you to the previous question unless stated otherwise. • An answer of RESTART to the EXIT question returns you to first question in the dialog. • An ESCape typed at any point in a reply before the carriage return restarts the dialog. Note that ESCape does not echo on your terminal. • An unacceptable answer results in an error message and causes the question to be repeated. • The minimum size of an abbreviation for any answer other than' filename is the first two characters. 5-6 the rest the KLINIT 5.2 KLINIT OPERATOR DIALOG The following KLINIT dialog includes all the possible questions and all the acceptable answers. The questions are presented in the order in which KLINIT asks them, unless it is specifically stated otherwise in the description of the particular question. In p~actice, however, only a subset of the dialog is encountered on anyone system. The KLINIT program automatically bypasses any questions that are not applicable to the system configuration. In addition, a particular response to one question can result in the bypassing of subsequent questions. This behavior is documented wherever it occurs. There are two commands that are not used in response to any particular question, but can be used at almost any time. One of these is BACK, which causes the dialog to return to the previous question. This command can be used at any time except on the first question of the dialog, when of course there is no previous question. The other command has four forms that are used to toggle on and off the tracking capability. These forms are T+, T-, and L+, L-. If you wish to see a report on each operation of the initialization procedure, you can give the L+ command, and the complete listing is printed on the line printer. The T+ command prints the listings on the CTY. You should be aware that the T+ command causes a great deal of information to be dumped to the CTY, and uses a lot of time and paper. The L- and Tcommands turn off this reporting. Each of the following questions is KLI>. followed by the KLINIT prompt, KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? An answer of YES or NO to the question above causes KLINIT to print a hardware environment r~port containing the KL serial number, machine type, power line frequency, and the system's hardware options. (Refer to Section 5.3.1, Informational Messages.) NO displays the hardware environment and assumes the default answers for all the remaining questions. This is the last chance to bypass the dialog and take the default path. YES displays the hardware environment, continues the dialog asks the next question. EXIT discontinues the dialog and returns to the RSX-20F monitor. BOOT skips the rest of the dialog, enables cache memory as directed by KL.CFG, and immediately loads and starts the KL bootstrap program whose name is found in the configuration file. If none is found, the standard KL bootstrap program found in BOOT.EXB is loaded. No defaults are taken when this option is selected. 5-7 and KLINIT KLI RELOAD MICROCODE [YES,VERIFY,FIX,NO]? YES loads the KL microcode from the bootstrap device into the KL processor. Should you wish to load the microcode from a file that does not have the default file name,' you can respond with YES and, before typing the carriage return, include the actual file name. VERIFY verifies that the microcode in the KL processor matches the microcode on the bootstrap device. An error report is printed for each location found in error and an error count is incremented. (Refer to Section 5.4.3 for the format and contents of this error report.) Whenever the error count exceeds five, verification is discontinued and the message VERIFY FAILED is issued. If verification continues through all the microcode and the final error count is greater than zero, the VERIFY FATLED message is issued. In both cases, KLINIT returns to the beginning of the dialog. You can then reload the microcode and try again. FIX verifies the microcode as in the VERIFY option. In addition, whenever an error is detected, KLINIK attempts to reload that location. If the reload operation is successful, the error count is decremented. If the reload fails, the MICROCODE FIX FAILED message is issued. In either case verification continues with the next location. Whenever the error count exceeds five, verification is discontinued and the VERIFY FAILED message is issued. If verification continues through all the microcode and the final error count is greater than zero, the VERIFY FAILED message is issued. In both cases, KLINIT returns to the beginning of the dialog. You can then reload the microcode and try again. NO neither loads nor verifies the microcode. KLI RECONFIGURE CACHE [FILE,ALL,YES,NO]? FILE configures cache memory as specified in the configuration file, KL.CFG. If this file does not exist, all cache memory is enabled. The dialog continues with the CONFIGURE KL MEMORY question. ALL enables all cache memory. The CONFIGURE KL MEMORY question. YES configures cache memory under dialog control. NO does not reconfigure cache configuration is left unchanged. the CONFIGURE KL MEMORY question. KLI dialog continues with the memory; the existing The dialog continues with ENABLE WHICH CACHES [ALL,NONE,0-3] ALL enables all cache memory. NONE disables all cache memory. 0-3 enables only the caches specified. caches 0, 1, and 3 reply with: KLI>0,1,3<cr> 5-8 For example, to enable KLINIT KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? NOTE I A reply of BACK to this question returns you to the RECONFIGURE CACHE question. NOTE 2 The FORCE option appears only in systems that have MOS memory. In systems that do not have MOS memory the FORCE option does not appear in the CONFIGURE KL MEMORY question. FILE configures KL memory as specified in the configuration file, KL.CFG. If this file does not exist, ALL is assumed. KLINIT then prints the logical memory map and the dialog continues with the LOAD KL BOOTSTRAP question. If the configuration in the KL.CFG file is not consistent with the actual con~iguration an error message is issued and the dialog restarts from the beginning. ALL configures KL memory in the normal (forward) direction with as much memory as possible. KLINIT then prints the logical memory map and the dialog continues with the LOAD KL BOOTSTRAP question. REVERSE configures,memory under dialog control; however, the memory configuration is reversed. Before the next question is asked, KLINIT examines memory and prints a physical memory map. This feature has been included for maintenance purposes. FORCE appears ONLY in systems in which KLINIT can detect the presence of a KW-20 MOS Master Oscillator. The FORCE memory configuration option allows the operator -to force KLINIT into a Double-Bit-Error (DBE) scan of the MF-20 MOS memory controllers. This enables KLINIT to attempt to recover "lost" MF-20 blocks. The scan requires approximately twenty-five seconds for each 256K of memory to be scanned. YES configures memory under dialog control, in the normal (forward) direction. Before the next question is asked, KLINIT examines memory and prints out a physical memory map. NO does not configure memory at all. The previous memory configuration remains, and the dialog continues with the LOAD KL BOOTSTRAP question. NOTE The forward/reverse configuration indicator is saved in the KL.CFG file to allow restoration of the reverse configuration over reloads. If the KL.CFG file does not exist, the default is normal (forward) configuration. 5-9 KLINIT KLI CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]? ALL configures all internal core memory. The dialog continues with the INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT question. YES configures internal core memory under dialog control. NO deletes all internal core memory. The dialog continues with 'questions on other types of memory, if any. See Figure 5-3. KLI -- MODULES/BLOCKS WITHIN CONTROLLER n [ALL,NONE,SPECIFY]? NOTE This question is repeated for each the controller. In each iteration, number n is the current controller number~ ALL configures all the memory modules for controller n. NONE deletes all the memory modules for controller n. SPECIFY configures the modules specified. DO NOT TYPE SPECIFY! Valid module numbers are 0 through 3 and the entries are separated by commas. For example, to configure modules 0 and 1, type the following: KLI>O,l<CR> KLI INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]? 4 allows up to 4-way interleaving. 2 allows up to 2-way interleaving. 1 allows no interleaving The dialog continues with questions on other types of memory, if any. (See Figure 5-3.) If none, KLINIT prints the logical memory map and the dialog continues with the LOAD KL BOOTSTRAP question. KLI CONFIGURE EXTERNAL CORE MEMORY [YES,NO]? YES allows you to set the bus-mode for external memory. NO deletes all external core memory. The dialog continues with questions on other types of memory, if any. (See Figure 5-3.) KLI -- EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]? OPTIMAL sets the bus-mode for optimal performance. 1 sets the bus-mode to 1. 2 sets the bus-mode to 2. 4 sets the bus-mode to 4. 5-10 KLINIT The dialog continues with questions on other types of memory, if any. (See Figure 5-3.) If none, KLINIT prints the logical memory map and the dialog continues with the LOAD KL BOOTSTRAP question. KLI CONFIGURE MOS MEMORY [ALL,YES,NO]? ALL configures all MOS memory. The dialog continues with the printing of the logical memory map and the LOAD KL BOOTSTRAP question. YES configures MOS memory under dialog control. NO deletes a~l MOS memory. The dialog continues with the printing of the logical memory map and the LOAD KL BOOTSTRAP question. KLI -- MODULES/BLOCKS WITHIN CONTROLLER n [ALL,NONE,SPECIFY]? NOTE This question is repeated as many times as there are controllers. In each iteration, the n is the current controller number. ALL configures all memory blocks for controller n. NONE deletes all memory blocks for controller n. SPECIFY configures the blocks specified. DO NOT TYPE SPECIFY! Type a list of block numbers (0 through 13 octal) separated by commas. For example, to configure blocks 0, 1, 2, 7, 10 and 11 reply with: KLI>0,1,2,7,10,11<CR> KLI -- LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]? FILE notifies KLINIT to load the bootstrap specified in the KL.CFG file. If no KL.CFG file exists, KLINIT will use the default bootstrap. YES notifies KLINIT to load the default bootstrap. NO notifies KLINIT not to load a bootstrap. FILENAME notifies KLINIT to load the specified file as the bootstrap. KLI WRITE CONFIGURATION FILE [YES,NO]? YES notifies KLINIT to write a new KL.CFG file current configuration and load parameters. NO notifies KLINIT not to change the existing KL.CFG file. 5-11 containing the KLINIT At this point if a bootstrap was requested, the bootstrap program is loaded into the KL and started. If the answer to the LOAD KL BOOTSTRAP question was NO, the following question is asked: KLI EXIT [YES,RESTART]? YES exits KLINIT after optionally writing a new KL.CFG file previous question). RESTART restarts the dialog with the ENTER DIALOG question. 5-12 (see KLINIT LOAD SWITCHES r---------------------------J~~---------------------------~ K SW REG (SW REG BIT o MUST BE ON) ( TEST SW REG BITS 1 & 2 I I I I 00 11 01 10 --11 1--_ _ _ _ _ _ _ _ _ _ _ _ _ ) SEE'TABLE 5-1 IS CACHE PRESENT? ENABLE CACHE PER KL.CFG (NOTE 1) ENABLE ALL CACHE DISABLE ALL CACHE ENABLE ALL CACHE ENABLE THE SPECIFIED CACHE A D MR-S-172-79 NOTE 1: If there is no KL.CFG file, enable all cache. Figure 5-3 E KLINIT Operator Dialog 5-13 KLINIT 7 A CONFIGURE MEMORY PER KL. CFG (NOTE 2) FILE , ALL REVERSE *FORCE CONFIG. MEMORY PER KL.CFG (NOTE 2) CONFIG. ALL MEMORY SET REVERSE CONFIG. *DBE SCAN ANY MOS MEMORY CONFIGURE KL MEMORY? • YES • SET FORWARD CONFIG. t ~ T I NO PRINT MAP OF PHYSICAL MEMORY t ) e IS INTERNAL CORE MEMORY PRESENT? $ CONFIGURE INTERNAL CORE MEMORY? ALL YES NO t • CONFIGURE ALL INTERNAL CORE MEMORY DELETE ALL INTERNAL CORE MEMORY I I f.4----------- -----, MODULES/BLOCKS WITHIN CONTROLLER n? ALL t CONFIGURE ALL MODULES I I NONE SPECIFY l CONFIGURE THE MODULES SPECIFIED DELETE ALL MODULES I J (N~~~ _ _ _ _ _ _ _ -1 INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT? 4 2 t t ALLOW UP TO 4·WAY INTERLEAVING ALLOW UP TO 2·WAY INTERLEAVING I F 6 G *For MOS memory only. I 1 t ALLOW NO INTERLEAVING I NOTE 2: If there is no KL.CFG file, configure all memory. NOTE 3: This question is repeated as many times al there are controllers. The controller currently being configured is denoted by n. Figure 5-3 KLINIT Operator Dialog (Cant.) 5-14 .H MR-S-168-79 KLINIT 9 IS EXTERNAL CORE MEMORY PRESENT? e ~ CONFIGURE EXTERNAL CORE MEMORY? YES NO ! I EXTERNAL CORE MEMORY BUS·MODE? OPTIMAL • SET BUS MODE FOR OPTIMAL PERFORMANCE I r 1 • r I 4 • SET BUS MODE TO: I 1 I I I 2 2 I • 4 I I IS MOS MEMORY PRESENT? ~ ~ CONFIGURE MOS MEMORY? YES ALL NO • + CONFIGURE ALL MOS MEMORY DELETE ALL MOS MEMORY I l ~-------------I I MODULES/BLOCKS WITHIN CONTROLLER n? ALL • SPECIFY NONE • CONFIGURE ALL MODULES + DELETE ALL MODULES I CONFIGURE THE BLOCKS SPECIFIED I ~ II I I I I I I I I I I ____~~~~ ____ -1 M R-S·169·79 G NOTE 3: This question is repeated as many times as there are controllers. The controller currently being configured is denoted by n. Figure 5-3 KLINIT Operator Dialog (Cont.) 5-15 KLINIT E F D PRINT LOGICAL MEMORY MAP SET SWITCH TO USE KL.CFG BOOTSTRAP (NOTE 4) SET SWITCH TO USE KL.CFG BOOTSTRAP (NOTE 4) SET SWITCH TO USE DEFAULT BOOTSTRAP SET SWITCH TO NOT LOAD BOOTSTRAP SET SWITCH TO USE Filename BOOTSTRAP SET THE WRITE FILE SWITCH LOAD DEFAULT BOOTSTRAP LOAD THE APPROPRIATE BOOTSTRAP MR-S·170·79 NOTE 4: If there i. no KL.CFG file, set switch to use the default bootstrap program in BOOT.EXB. Figure 5-3 KLINIT Operator Dialog (Cant.) 5-16 KLINIT 5.3 KLINIT MESSAGES KLINIT issues four classes of messages: informational, warning, di.alog error, and system error messages. These messages are listed in sections 5.3.1 through 5.3.4 according to class. 5.3.1 Informational Messages KLINIT prints a hardware environment message for each invocation of the program. If KLINIT is activated using the ENABLE and DISK switches, the environment report appears immediately after KLINIT prints its heading and version number. If KLINIT is activated using the ENABLE and SW/REGISTER switches and if the question KLI ENTER DIALOG [NO,YES,EXIT,BOOT]? is answered with YES or NO, the hardware environment report follows immediately. If this question is answered with EXIT or BOOT, the hardware environment does not appear. The hardware environment report contains the following information: • The KL processor serial number • The KL processor model type • The power line frequency • The hardware options available on the system The serial number is that of the KL processor. The model type can be either A or B. The power line frequency can be either 50 or 60 Hz. The hardware options can include the following: • MOS Master Oscillator • Extended Addressing • Internal Channels • Cache Example: KLI KLI KLI VERSION VB12-27 RUNNING KL10 SIN: 2136., MODEL B, 60 HERTZ KL10 HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE NOTE The hardware environment report is not displayed during automatic reloads or during Keep-Alive-Cease processing. KLINIT also prints informational messages to indicate the normal completion of a KLINIT function. The message text is preceded by "KLI --". 5-17 KLINIT The informational messages include: KLI ALL CACHES ENABLED All four of the KL processor caches have been enabled. KLI -- BOOTSTRAP LOADED AND STARTED A KL bootstrap program has been loaded into started. Any messages that follow are a particular bootstrap program being used. KL memory and function of the KLI -- CACHES DISABLED All cache memory has been disabled. KLI -- CACHES n,n ... ENABLED The specified caches have been enabled. KLI -- CONFIGURATION FILE WRITTEN The KL.CFG file has been updated with a new cache and/or memory configuration. This message is issued whenever you set up a nondefault configuration or if the KL.CFG file did not previously exist. KLI -- KL RESTARTED The KL processor has been restarted following a or a hardware or software crash. power failure KLI -- MICROCODE VERSION xxx LOADED The KL microcode, version xxx, has been loaded into the KL system from the appropriate microcode file on the front-end bootstrap device. KLI -- MICROCODE VERSION xxx VERIFIED The KL microcode, version xxx, currently residing in the system has been compared correctly with the code in the appropriate microcode file on the front-end bootstrap device. 5.3.2 Warning Messages Warning messages inform the operator of some unusual condition. After the message is printed, the KLINIT dialog continues. These messages are preceded by "KLI -- % ". The warning messages include: KLI -- % EXTERNAL CORE MEMORY IS OFFLINE KLINIT found offline. that a DMA20 external memory controller was SYSTEM ACTION: KLINIT attempts to configure the system without the in question. 5-18 controller KLINIT KLI -- % EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE The external memory resources found by KLINIT do not match the KL.CFG file. The KL.CFG file contains more resources than KLINIT can find on the current system. This usually means a controller has dropped off line. SYSTEM ACTION: KLINIT attempts to configure the memory it can find in the closest to that specified in the KL.CFG file. way KLI -- % INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE The internal memory resources found by KLINIT do not match the KL.CFG file. The KL.CFG file contains more resources than KLINIT can find on the current system. This usually means a controller has dropped off line. SYSTEM ACTION: KLINIT attempts to configure the memory it can find in the closest to that specified in the KL.CFG file. way KLI -- % MOS MEMORY IS ALREADY CONFIGURED KLINIT found that the MOS memory was already configured. It does not attempt to reconfigure MaS memory unless specifically told to do so. SYSTEM ACTION: KLINIT proceeds with the initialization. KLI -- % MOS MEMORY RESOURCES DO NOT MATCH FILE The MOS memory resources found by KLINIT do not match the KL.CFG file. The KL.CFG file contains more resources than KLINIT can find on the current system. This usually means a controller has dropped off line or some MOS blocks have been deallocated by TGHA. SYSTEM ACTION: KLINIT attempts to configure the memory it can find in the closest to that specified in the KL.CFG file. way KLI -- % NO FILE - ALL CACHE BEING CONFIGURED The default to the RECONFIGURE CACHE question was taken, KLINIT could not find the KL.CFG file in the directory. SYSTEM ACTION: KLINIT enables all caches. 5-19 and KLINIT KLI -- % NO FILE - ALL MEMORY BEING CONFIGURED The default to the CONFIGURE KL MEMORY question was taken, KLINIT could not find the KL.CFG file in the directory. and SYSTEM ACTION: KLINIT confiqures all available memory and sets the interleaving -at the highest level consistent with the setting of the interleave switches on the memory units. KLI -- % NO FILE - LOADING BOOTSTRAP KLINIT could not find -the KL.CFG file or bootstrap record in the KL.CFG file. could not find the SYSTEM ACTION: KLINIT loads the default bootstrap. KLI -- % PHYSICAL MEMORY SUPPRESSED CONFIGURATION ALTERED DUMP OR RESTAR'1' During an automatic reload, KLINIT found that the physical configuration of the system does not match the configuration d€scribed in the KL.CFG file. SYSTEM ACTION: KLINIT suppresses the dump or restart, and proceeds the KL monitor. 5.3.3 to reload Dialog Error Messages Dialog error messages indicate that your answer to the current KLINrr II question is unacceptable. The message text is preceded by "KLI The system action for dialog error messages is to repeat the and the prompt. question Currently, the only dialog error message is: KLI -- COMMAND SYNTAX ERROR Your reply is not one of the acceptable answers as specified in the question. OPERATOR ACTION: Reply with one of the acceptable answers, correctly spelled, or use carriage return to take the default answer. 5.3.4 System Error Messages System error messages indicate conditions in which KLINIT cannot continue. These conditions can be brought about by software, hardware, or environmental failures. Sometimes are try is successful; 5-20 KLINIT other times you may require the assistance of your Field Service Representative or Software Support Specialist. For any system error, it is important to save all console log data and memory dump listings~ this material is of prime importance when attempting to determine the cause of the error. System error messages are preceded by IIKLI -- ? ". Unless noted otherwise, the system action for all system error messages is to restart the KLINIT dialog and repeat the prompt. Whenever a file is specified in a message text, the file is identified in the following format. "dev:filename.ext~ver" The system messages include: KLI ? BOOTSTRAP LOAD FAILED A software or hardware error occurred while the KL bootstrap program was being loaded. (See accompanying messages for additional information.) OPERATOR ACTION: Reload the bootstrap program by replying: KLI)BOOT If the trouble Representative. KLI KLI KLI KLI persists, call your Field Service ? C-RAM DIFFERS AT xxxxxx BAD xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xx GOOD xxxxxx xxxxxx xxxxxx xxxxxx xxxxxx xx XOR xxxxxx xxxxxx xxxxxx xxxxxx xxx xxx xx During the microcode verify operation; the contents of octal location xxxxxx in the KL Control RAM did not match the corresponding code in the appropriate microcode file. The actual contents of the location are printed, followed by the expected contents, and the last line is the result of a bit-by-bit exclusive or (XOR) of the actual and expected values. OPERATOR ACTION: Reload the KL microcode and reverify it by means of the KLINIT dialog. If the trouble persists, call your Field Service Representative. KLI -- ? CACHE ENABLE FAILED A hardware error has probably occurred while KLINIT was trying to configure the cache memory. (See accompanying messages for additional information.) OPERATOR ACTION: Retry the operation; if the trouble persists, call your Field Service Representative. You can also temporarily reconfigure with no cache memory. 5-21 KLINIT KLI -- ? CANNOT FIND [5,5] DIRECTORY KLINIT cannot locate the PDP-II system software error may have overlaid it. file directory; a OPERATOR ACTION: Reload the system; if the trouble persists, call your Software Support Specialist. KLI -- ? CANNOT FIND HALT LOOP KLINIT tried to start the properly. microcode, but it failed to run OPERATOR ACTION: Reload the microcode; if the trouble persists, call your Field Service Representative. KLI -- ? CANNOT GET DEVICES KLINIT cannot open a system device for communications. probably a software error in RSX-20F. This is OPERATOR ACTION: Reload the system; if the trouble persists, call your Software Support Specialist. KLI -- ? CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL An attempt was made to run the KLINIT program while the KL processor was runnlng. This condition can arlse only if KLINIT is loaded by means of the PARSER command language instruction: PAR>RUN KLINIT OPERATOR ACTION: If the intent was to rerun KLINIT, follow the appropriate procedures to shut down TOPS-IO or TOPS-20; then reload the system and enter the KLINIT program. If TOPS-IO or TOPS-20 does not shut down properly, set the console mode to PROGRAMMER and reload KLINIT. KLI -- ? CANNOT START KL A hardware or software failure occured while trying to restart from a power failure or system crash during memory determination. (See accompanying messages for additional information.) OPERATOR ACTION: Reload the microcode and retry the operation. If persists, call your Field Service Representative. 5-22 the trouble KLINIT KLI -- ? CAN'T DETERMINE KLIO HARDWARE ENVIRONMENT This message is followed immediately by one of the following messages. If the error occurred in the KLINIT dialog, you will get KLI -- % PROCEED AT YOUR OWN RISK while if the error occurred during will get an automatic reload, you KLI -- % AUTOMATIC RELOAD ABORTED OPERATOR ACTION: Contact your Field Service Representative. KLI -- ? CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU KLINIT has conflicting information on the hardware available to it. OPERATOR ACTION: Contact your Field Service Representative. KLI -- ? CLOCK ERROR STOP DURING KL RESTART The KL processor clock stopped while KLINIT was monitoring a restart operation. (See accompanying messages for additional information.) OPERATOR ACTION: Retry loading the KL bootstrap and monitor. If persists, call your Software Support Specialist. the trouble KLI -- ? CONFIGURATION FILE NOT CHANGED The KL.CFG configuration file cannot be updated because the old file cannot be read, the new file cannot be written, or some other error has occurred. (See accompanying messages for additional information.) OPERATOR ACTION: Delete the old configuration file and retry the operation. If the trouble persists, call your Software Support Specialist. KLI KLI KLI KLI ? D-RAM DIFFERS AT xxxxxx BAD A:x B:x P:x J:xxxx A:x B:x P:x J:xxxx GOOD A:x B:x P:x J:xxxx A:x B:x P:x J:xxxx XOR A:x B:x P:x J:xxxx A:x B:x P:x J:xxxx During the microcode verify operation, the contents of octal location xxxxxx in the KL Dispatch RAM did not match the corresponding code in the appropriate microcode file. 5-23 KLINIT the even The actual contents of the locations are printed, This line is location first, and the odd location next. The followed by the expected contents of the two locations. last line is the result of a bit-by-bit exclusive or (XOR) of the actual and expected values. OPERATOR ACTION: Reload the KL microcode and reverify it by means of the KLINI1' dialog. If the trouble persists, call your Field Service Representative. KLI -- ? DEPOSIT FAILED KLINIT could not store information into KL memory. OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. the trouble KLINIT cannot find room on the specified front-end load for an updated copy of the configuration file KL.CFG. device KLI -- ? DEVICE "device" FULL OPERATOR ACTION: Exit from KLINIT and use a front-end system program such as PIP to delete some files and make room for the updated KL.CFG file. (Make sure that you do not delete any files that contain RSX-20F software. You may wish to consult a system programmer or the system administrator to determine which files can be deleted.) Then reenter KLINIT and retry the operation. KLI -- ? DF EXECUTE FAILED A diagnostic function execute initializing the KL processor. failed while KLINIT was OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. the trouble KLI -- ? DF READ FAILED A diagnostic function read failed while KLINIT was initializing the KL processor. OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representativeo the trouble KLI -- ? DF WRITE FAILED A diagnostic function write initializing the KL processor. failed while KLINIT was OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. 5-24 the trouble KLINIT KLI -- ? DIRECTIVE ERROR -n ON FILE "filename" A system error occurred while KLINIT was trying to access the file "filename." The "n" is an octal error code for use by software support. OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Software Support Specialist. the trouble the trouble KLI -- ? EXAMINE FAILED KLINIT could not examine contents of KL memory. OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. KLI -- ? FATAL MEMORY CONFIGURATION ERROR - CODE "xxx" KLINIT encountered an error in attempting to configure memory. The type of error encountered is specified by the code xxx. Most of these errors are hardware problems or software bugs. The possible codes are listed below, along with the corrective action that can be tried, if any exists. Code Corrective Action 3BB No corrective action is possible. This error code was inserted as a debugging aid, and is not expected to occur in normal operation. A CPU fault could 'be responsible. Run diagnostics on the CPU and call Field Service. ABS No corrective action is possible. The CPU has made error. Run diagnostics on it and call Field Service. APL Make sure the microcode is problem recurs, the CPU Field Service. B4M No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. BCM No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. BTL This is a pure No corrective action is possible. software bug. Contact a Software Support Specialist. CES This is almost No corrective action is possible. certainly a hardware fault. Contact Field Service. 5-25 an loaded and retry. If the has most likely failed. Call KLINIT Code Corrective Action CFT No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. CTF Set all MF20 controllers to software state 0 and retry. If the problem persists, call Field Service. This condition could not be created by MF20 software. It could happen as a result of user setting of the function I software state bits. DCB No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. EDE Make sure the microcode is loaded and failure recurs, call Field Service. FOE No corrective action is Support Specialist. GOO No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. HOV No corrective action is possible. This is a pure Contact a Software Support Specialist. software bug. lEE Make sure the microcode is loaded and failure recurs, call Field Service. LDE This is a pure No corrective action is possible. software bug. Contact a Software Support Specialist. MAB This is a pure No corrective action is possible. software bug. Contact a Software Support Specialist. MFE No corrective action is possible. This halt often indicates a memory controller failure, especially if the hardware environment has not changed and you have been able to boot memory in the past. You may also have uncovered a software bug. If Field Service cannot find the problem, contact a Software Support Specialist. MMR No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. MNA No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. 5-26 possible. retry. Contact a retry. If the Software If the KLINIT Code Corrective Action NBS No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. NHA No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. NMS No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. OOL No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. 002 No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. POH Make sure the microcode is loaded and failure recurs, call Field Service. SB4 No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. SIH No corrective action is possible. This is most likely to be a hardware f~ilure. Contact Field Service. SNR No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. ssa No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. TMO No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. UMB No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. XOO No corrective action is possible. If the hardware environment has not changed, and you have been able to boot memory successfully in the past, the' problem is likely to be in the hardware. If, on the other hand, you have an odd hardware configuration, you may have come across a software bug. If Field Service is unable to find the problem, contact a Software Support Specialist. 5-27 retry. If the KLINIT KLI -- ? FILE "filename" NOT FOUND KLINIT cannot find BOOT.EXB, the appropriate microcode file, or the alternate KL bootstrap file in the PDP-II file directory [ 5 ,5] on SYO:. OPERATOR ACTION: Ensure that the file being requested resides on load device and retry the operation. the front-end KLI -- ? I/O ERROR -n ON FILE "filename" An I/O error occurred while KLINIT was trying to access the file "filename." The "n" is an RSX-II octal error code for use by software support. Refer to Appendix A for a list of these error codes and their meanings. OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Software Support Specialist. the trouble current DMA20 KLI -- ? ILLEGAL BUS-MODE You specified a bus-mode under configuration cannot operate. which the OPERATOR ACTION: Retry the operation without the illegal bus-mode setting. If you still have problems, or if you believe that you did not specify an illegal bus-mode, contact your Software Support specialist. KLI -- ? ILLEGAL MF20 TIMING FILE FORMAT KLINIT found the MF20 timing correct format. file, but it was not in the OPERATOR ACTION: Obtain a new copy of the timing file and retry the The current MF20 timing file name is "BFI6NI.AII". operation. KLI -- ? INPUT RECORD LENGTH ERROR An ~rror occurred while KLINIT was trying to read KL.CFG, the appropriate microcode file, or the KL bootstrap file. This error could be caused by software or hardware failure. OPERATOR ACTION: If possible, try other copies of the files. If the trouble persists, call your Software Support Specialist. If the file in question is KL.CFG, you can get around the error by renaming or deleting the file. KLINIT will then write a new KL.CFG file by default. 5-28 KLINIT KLI -- ? INSUFFICIENT MEMORY FOR BOOTSTRAP KLINIT was unable to find enough memory in the area where it wished to load the bootstrap program. (See any accompanying messages for additional information.) Memory selection switches on the memory units may be set in error. OPERATOR ACTION: Check memory selection switches on the memory units and retry the operation. If trouble persists, call your Field Service Representative. KLI -- ? KL HALT DURING RESTART The KL processor stopped on a HALT instruction while KLINIT was monitoring a restart operation. (This message occurs only on TOPS-IO systems.) OPERATOR ACTION: Reboot and load the KL monitor; if the trouble persists, your Software Support Specialist. call KLI -- ? MASTER RESET FAILED A MASTER RESET function to the KL failed. error. This is a hardware Reload the system and retry the operation. If persists, call your Field Service Representative. the trouble OPERATOR ACTION: KLI -- ? MEMORY CONFIGURATION FAILED was A hardware or software error occurred while KLINIT configuring memory. (See accompanying messages for additional information.) OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. the trouble MF20 timing KLI -- ? MF20 TIMING FILE CHECKSUM ERROR KLINIT got a checksum error while file during memory configuration. accessing the OPERATOR ACTION: Retry the operation. If this still fails, obtain a new copy of the timing file from the distribution media and retry again. The current MF20 timing file name is "BFI6NI.AII". 5-29 KLINIT KLI -- ? MF20 TIMING FILE READ ERROR KLINIT got a read error while accessing the MF20 timing file. OPERATOR ACTION: Retry the operation. If you still get the read error, obtain a new copy of the timing file and retry. The current MF20 timing file name is "BFI6NI.AII". If this does not solve the problem, contact your Software Support specialist. KLI -- ? MICROCODE FIX FAILED KLINIT found more than five hard trying to fix the microcode. (irreparpble) errors while persists, call OPERATOR ACTION: Retry loading the microcode; if the your Field Service Representative. trouble KLI -- ? MICROCODE LOAD FAILED A hardware or software error occurred while KLINIT was loading the KL microcode. (See accompanying messages for additional information.) OPERATOR ACTION: Retry loading the microcode; if the your Field Service Representative. trouble persists, call KLI -- ? MICROCODE VERIFY FAILED The verification of the KL microcode discovered errors that are itemized in preceding error messages. OPERATOR ACTION: Reload the microcode and verify it. If the call your Field Service Representative. trouble persists, KLI -- ? NO MEMORY AT LOCATION ZERO When KLINIT was configuring memory it could not memory unit with address switches set at zero. locate any OPERATOR ACTION: Check the memory units and ensure that one of the units has its address switches set at zero: then retry loading. KLI -- ? NO MF20 TIMING FILE KLINIT did not find an MF20 timing file. OPERATOR ACTION: Obtain a timing file from the release media and retry the operation. The current MF20 timing file name is "BFI6NI.AII". 5-30 KLINIT KLI -- ? NONEXISTENT CONTROLLER KLINIT attempted to configure a controller and was not there. found that it OPERATOR ACTION: Retry the operation; if the problem persists, call your Service Representative. Field KLI -- 1 NONEXISTENT MODULE/BLOCK KLINIT attempted to configure a module or block that exist in the controller. does not OPERATOR ACTION: Retry the operation; if the problem persists, call your Service Representative. Field KLI -- ? OUTPUT RECORD LENGTH ERROR An error occurred while KLINIT was trying to write configuration file, KL.CFG. an updated OPERATOR ACTION: Retry the operation and if the Software Support Specialist. problem persists, call your KLI -- ? POWER-FAIL RESTART FAILED KLINIT could not restart the KL processor during a recovery. (See accompanying message for information.) power-fail additional OPERATOR ACTION: Reload the system using one of the load switch procedures. If the system still does not corne up, call your Field Service Representative. KLI -- ? READ ERROR A hardware or software error occurred while KLINIT was accessing KL.CFG, the appropriate microcode file, or the KL bootstrap file. (See any accompanying messages for additional information.) OPERATOR ACTION: Retry the operation; if the trouble persists, call your Software Support Specialist. If the file in question is KL.CFG, you can get around the read operation by renaming or deleting the file. KLINIT writes a new KL.CFG file by default. KLI -- ? READ PC FAILED KLINIT could not read the KL's PC during memory configuration. OPERATOR ACTION: Try the operation again. If Software Support specialist. 5-31 it still fails, contact your KLINIT KLI -- ? SYSTEM ERROR DURING KL RESTART A KLINIT software error occurred during a KL restart operation. (This message occurs on TOPS-IO systems only.) OPERATOR ACTION: Reload the system using one of the load switch procedures. If you still have problems bringing up the system, call your Software Support Specialist. KLI -- ? TIMEOUT DURING KL RESTART While KLINIT was monitoring a KL restart, the 30-second allowable time limit was exceeded. (This message occurs on TOPS-IO systems only.) OPERATOR ACTION: Try reloading the KL processor using the dialog default. If you still cannot bring the system up, call your Software Support Specialist. KLI -- ? WRITE ERROR A hardware or software error occurred while KLINIT was an updated copy of the configuration file, KL.CFG. accompanying messages for additional information.) writing (See any OPERATOR ACTION: Retry the write operation; if the trouble persists, call Software Support Specialist. 5.4 your REPORTS RELATING TO THE KLINIT DIALOG KLINIT prints logical memory configuration maps and physical memory configuration maps for external memory (DMA20) and internal memory (MA20, MB20, and MF20). KLINIT also prints error reports whenever failures occur during microcode verification. Sections 5.4.1 through 5.4.3.2 describes the information contained in these maps and reports. 5~4.l External Memory Maps If you answer YES to the CONFIGURE KL MEMORY question in the KLINIT dialog, KLINIT prints a physical memory configuration map, as shown below: MEMORY RESOURCES: CONTROLLER ADDRESS TYPE MODULES/GROUPS 7 654 321 0 4 DMA20 1024K 4 BUS MODE EXTERNAL MEMORY RESPONSE SIZE ADDRESS 00000000 1024K 5-32 KLINIT This map represents the physical memory allocation, where: CONTROLLER ADDRESS memory controller number; this is always 4 for a DMA20 TYPE memory controller type MODULES/GROUPS memory storage module Under EXTERNAL MEMORY RESPONSE, the total storage is broken contiguous blocks and their beginning addresses, where: ADDRESS beginning address of memory block SIZE size of the memory block down by Whenever KLINIT configures KL memory, either by default or through the dialog, it prints a logical memory configuration map on your console terminal. If you answer NO to the CONFIGURE KL MEMORY question, the map is not printed. The format of the map is as follows: LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE 00000000 1024K 4 DMA20 CONTROLLER 4 This map tells you how KL memory has been configured, where: 5.4.2 ADDRESS KL memory address SIZE KL memory size in K INT KL memory interleave mode TYPE memory controller type CONTROLLER memory controller number Internal Memory Maps If you attempt to configure memory yourself using the dialog, KLINIT prints a physical memory configuration map after you answer YES to CONFIGURE KL MEMORY. The map looks like the following example: MEMORY RESOURCES: CONTROLLER ADDRESS TYPE MODULES/GROUPS 7 654 321 0 0 1 11 MA20 MA20 MF20 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 4 4 3 5-33 KLINIT NOTE For the MF20 map each group can contain four possible modules. Group 0 can contain modules 0,1,2,3 or any subset of those modules. Group 1 can contain the modules 4,5,6,7 or any subset of those modules and so on for the remaining groups. The number shown in the map indicates the number of modules in that group but does not indicate which modules are present. The number 3 in the example above shows that 3 modules of the set containing modules 0,1,2,3 are present. It does not, however, show which three modules are present. This map represents the physical memory allocation, where: CONTROLLER ADDRESS memory controller number TYPE memory type MODULES/GROUPS memory storage module Some of the rules that the memory configuration algorithm follows are: 1. 2-way or 4-way interleaving can only be done controllers 0 and 1 or between controllers 2 and 3. between 2. To use any memory, available. must module 0 of some controller be Whenever KLINIT configures KL memory, either by default or through the dialog, KLINIT prints a logical memory configuration map on your console terminal. If you answer NO to the CONFIGURE KL MEMORY question, the map is not printed. The format of the map is as follows: LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE 00000000 l28K 2 MA20 00400000 768K 4 MF20 CONTROLLER 0&1 11 This map tells you how KL memory has been configured, where: ADDRESS KL memory address SIZE KL memory size in K INT KL memory interleave mode TYPE memory controller type CONTROLLER memory controller number 5-34 KLINIT 5.4.3 Microcode Verification Error Reports Whenever you reply VERIFY or FIX to the RELOAD MICROCODE question in the KLINIT dialog, the contents of the control and dispatch storage (CRAM and DRAM, respectively) are compared to the corresponding ,files on disk. Whenever a mismatch is detected, an error report is typed on the CTY. NOTE The MARK bit is ignored. The general format of the error report is: KLI KLI KLI KLI ? x-RAM DIFFERS AT location BAD (contents of n-RAM) GOOD (contents of disk file) XOR (bit positions that differ) where: x is C for control storage or D for dispatch storage location is the RAM address of the error The XOR line is the result of an exclusive OR of the lines and represents the bit positions that differed. BAD and GOOD 5.4.3.1 CRAM Error Report - The CRAM error report displays the 86 bits of information from left to right for each CRAM location in error. Each line consists of six groups of octal numbers. Each of the first five groups represents a 16-bit quantity; the sixth group represents a six-bit quantity. The bit correspondence is shown below. Group 1 2 3 4 5 6 Bit positions 0-15 16-31 32-47 48-63 64-79 80-85 (SPEC field) The following is an example of a CRAM error report: KLI KLI KLI KLI ? C-RAM DIFFERS AT BAD 002556 012600 GOOD 002575 012700 XOR 000023 000100 43 002000 002640 100002 10 002000 002640 100002 10 000000 000000 000000 00 5-35 KLINIT 5.4.3.2 DRAM Error Report - The DRAM error report displays the contents of a pair of DRAM locations as two sets of labeled fields. The first set represents the even DRAM location and the second set represents the following odd DRAM location. Each set consists of four fields, as shown below. Field A Size 3 3 1 10 B P J bits bits bit bits (See Note) NOTE Although the J field is a 10 bit quantity, bits 5 and 6 are always zero and bits 1 through 4 are common to the even and odd locations. Bits 7 through 10 vary by location. The following is an example of a DRAM error report: vKLI -- ? D-RAM DIFFERS KLI BAD A:2 B:O P:O KLI GOOD A:4 B:O P:O KLI XOR A:6 B:O P:O Contents of location 106 AT 106 J:1002 A:2 B:O P:O J:1002 J:14l2 A:2 B:O P:l J:14l2 J:04l0 A:O B:O P:l J:04l0 Contents of location 107 5.5 KLINIT DIALOG EXAMPLES 1. This example shows the output at your console terminal when you load a TOPS-IO system using the DISK load switch. KLINIT automatically takes the default values without asking you any questions. However, KLINIT tells you that the RAMs (random access memories) have been loaded with the microcode. KLINIT prints the logical memory map and then loads and starts the KL bootstrap program. RSX-20F VE14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI VERSION VA12-27 RUNNING KLI KLIO SIN: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI KLI KLI MICROCODE VERSION 231 LOADED ALL CACHES ENABLED % MOS MEMORY IS ALREADY CONFIGURED 5-36 KLINIT LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 128K 4 MA20 0 & 1 00400000 768K 4 MF20 11 KLI -- CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOT V23(114) BTS> 2. This example shows the output at your console terminal when you load a TOPS-20 system using the switch register with switches 0, 1 and 2 set. The KLINIT dialog is entered only to load and start the KL bootstrap. This allows you to leave the microcode and memory configuration as they were. RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DB 0 : MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>BOOT KLI -- ALL CACHES ENABLED KLI -- BOOTSTRAP LOADED AND STARTED BOOT> 3. This example shows the KLINIT dialog being used to reconfigure TOPS-20 memory. KLINIT prints both the physical memory configuration and the logical memory map. These maps indicate that 128K of memory is 2-way interleaved, and 768K is 4-way interleaved. RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO: MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -- KLIO SIN: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>YES KLI -- MICROCODE VERSION 231 LOADED KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>ALL KLI -- ALL CACHES ENABLED KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? KLI>YES MEMORY RESOURCES: CONTROLLER ADDRESS TYPE MODULES/GROUPS 7 654 321 0 o 1 11 MA20 0 0 0 0 1 1 1 1 MA20 0 0 0 0 1 1 1 1 MF20 0 0 0 0 0 4 4 4 5-37 KLINIT KLI -- CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]? KLI>ALL KLI -- INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]? KLI>2 KLI -- CONFIGURE MOS MEMORY [ALL,YES,NO]? KLI>ALL LOGICAL MEMORY CONFIGURATLON. ADDRESS SIZE INT TYPE CONTROLLER 00000000 l28K 2 MA20 0 & 1 00400000 768K 4 MF2D 11 KLI -- LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]? KLI>YES KLI -- WRITE CONFIGURATION FILE [YES,NO]? KLI>YES KLI CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOT> 4. This example shows the dialog being used to enable all caches and to reconfigure MB20 memory on a 1091 system. Controllers 0 and 1 are specified with modules 0, 1, and 2 on each controller. KLINIT prints both physical and logical memory maps. The maps indicate that there is 256K of memory, 2-way interleaved. RSX-20F VE14-44 8:00 6-JAN-80 [SYO: REDIRECTED TO DBO:] [DBO: MOUNTED] KLI -- VERSION VA12-27 KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLIO SIN: 2136., MODEL B, 60 HERTZ KLI KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>NO KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>ALL KLI -- ALL CACHES ENABLED KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? KLI>YES MEMORY RESOURCES: CONTROLLER ADDRESS o 1 TYPE MODULES/GROUPS 7 654 321 0 MB20 MB20 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 KLI -- CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]? KLI>YES KLI -- MODULES/BLOCKS WITHIN CONTROLLER 0 [ALL,NONE,SPECIFY]? KLI>0,1,2 KLI -- MO~ULES/BLOCKS WITHIN CONTROLLER 1 [ALL,NONE,SPECIFY]? KLI>0,1,2 KLI -- INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]? KLI>2 5-38 KLINIT LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 256K 2 MB20 0 & 1 KLI -- LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAMEJ? KLI>YES KLI -- CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOT V23(114) BTS> 5. This example shows the console terminal output when the system is loaded using the DECtape load switch. KLINIT did not find a KL.CFG file on the DECtape (%NO FILE messages); therefore, it configured all cache and all available memory. Note that KLINIT informs you whenever it writes a new KL.CFG file; it does so whenever you answer ALL or YES to the CONFIGURE KL MEMORY question or if no previous KL.CFG file exists. RSX-20F VA14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DTO:] [DTO:MOUNTED] KLI VERSION VA12-27 RUNNING KLI -- KLIO SIN: 1026., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI KLI KLI KLI MICROCODE VERSION 231 LOADED % NO FILE - ALL CACHE BEING CONFIGURED ALL CACHES ENABLED % NO FILE - ALL MEMORY BEING CONFIGURED LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 1024K 4 DMA20 4 KLI -- CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOT V23(114) BTS> 6. This example shows that the specified bootstrap file XXBOOT.EXB was not found. Therefore, after the fatal error messages, the KLINIT dialog restarts. RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -~ KLIO SIN: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE 5-39 KLINIT KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>NO KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>NO KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? KLI>NO KLI -- LOAD KL BOOTSTRAP [YES,NO,FILENAME]? KLI>XXBOOT KLI -- WRITE CONFIGURATION FILE [YES,NO]? KLI>YES KLI ALL CACHES ENABLED KLI ? FILE "SYO:XXBOOT.EXB;O" NOT FOUND KLI -- ? BOOTSTRAP LOAD FAILED KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI> 7. This example shows that a <CR> defaults to the first reply listed. (NO to ENTER DIALOG) In this case the default signals KLINIT to bypass any further dialog and assume the default answers to all the remaining questions. RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI> (carriage return was pressed here) KLI -- KLIO SIN: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI MICROCODE VERSION 231 LOADED KLI -- ALL CACHES ENABLED KLI -- % MOS MEMORY IS ALREADY CONFIGURED LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 l28K 2 MA20 0 & 1 00400000 768K 4 MF20 11 KLI KLI CONFIGURATION FILE WRITTEN BOOTSTRAP LOADED AND STARTED BOOT> 5-40 KLINIT s. This example shows the dialog first being used to load and verify the microcode. Then it shows the cache memory being configured. The TOPS-IO monitor is to be loaded from a magnetic tape so the program BOOTM must be loaded in place of the default program, BOOT., BOOTM is contained in the file MTBOOT.EXB. KLINIT accepts the file name, appends the default file type of .EXB, and loads and starts the magnetic tape bootstrap program. RSX-20F VA14-44 8:00 6-JAN-SO [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VA12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -- KLIO SIN: 1026., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>YES KLI -- MICROCODE VERSION 231 LOADED KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>BACK KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>VERIFY KLI -- MICROCODE VERSION 231 VERIFIED KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>YES KLI -- ENABLE WHICH CACHES [ALL,NONE,0-3]? KLI>0,1,3 KLI -- CACHES 0,1,3 ENABLED KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? KLI>YES MEMORY RESOURCES: CONTROLLER ADDRESS 4 TYPE MODULES/GROUPS 7 6 5 4 321 0 DMA20 1024K 4 BUS MODE KLI -- CONFIGURE EXTERNAL CORE MEMORY [YES,NO]? KLI>YES KLI -- EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]? KLI>4 LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 256K 4 DMA20 4 KLI -- LOAD KL BOOTSTRAP [YES,NO,FILENAME]? KLI>MTBOOT KLI -- WRITE CONFIGURATION FILE [YES,NO]? KLI>YES KLI -- CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOTM V5(25) BTM> 5-41 KLINIT 9. This example shows that an error occurred in verifying the existing microcode. Because the dialog is restarted after a fatal error, the solution you should try is answering YES to the RELOAD MICROCODE question the next time. RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -- KLIO S/N: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>VERIFY KLI ? C-RAM DIFFERS AT 1 BAD 002556 012600 002000 002640 100002 10 KLI KLI GOOD 002575 012700 002000 002640 100002 10 KLI XOR 000023 000100 000000 000000 000000 00 KLI ? MICROCODE VERIFY FAILED ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI KLI> 10. This example shows ESCape being used during the reply to the RELOAD MICROCODE question in order to restart the dialog. It also shows unacceptable answers causing questions to be repeated. Finally, a CTRL/Z causes the dialog to exit to the console processor command language (the PARSER). RSX-20F VB14-44 8:00 6-JAN-80 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-27 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -- KLIO S/N: 2136., MODEL B, 60 HERTZ KLI -- KLIO HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE 5-42 KLINIT KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>VER<ESC> KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YNOT KLI -- COMMAND SYNTAX ERROR KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES KLI -- RELOAD MICROCODE [YES,VERIFY,FIX,NO]? KLI>NO KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>MAYBE KLI -- COMMAND SYNTAX ERROR KLI -- RECONFIGURE CACHE [FILE,ALL,YES,NO]? KLI>NO KLI -- CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]? KLI>NO KLI -- LOAD KL BOOTSTRAP [YES,NO,FILENAME]? KLI>"'Z 5-43 CHAPTER 6 RSX-20F UTILITIES RSX-20F is designed to run with a minimum amQunt of human interaction. However, occasions arise when some flexibility is needed, for example when the front-end file system must be used or a failing KL must be diagnosed. RSX-20F provides a set of utility programs that gives the operator, system programmer, or Field Service Representative this needed flexibility. Since RSX-20F was derived from the RSX-IIM operating system, many of the RSX-IIM utilities were adapted to run on RSX-20F. This chapter describes the following RSX-20F utilities: 6.1 COP Copies the contents of one floppy disk on to another floppy disk. DMO Dismounts a device. INI Initializes a volume. MOU Mounts a device. PIP Manipulates files. It is used to copy, rename, append, and delete files. RED Redirects I/O requests from one device to another. SAV Saves the system task image. UFD Builds a User File Directory (UFD). ZAP Patches task images. COP UTILITY Sections 6.1.1 through 6.1.4 describe the function and format COP utility, provide examples and show error messages. 6.1.1 of the Function The COP utility copies and verifies the contents of one floppy disk to another floppy disk, error-checks a single floppy disk, or zeroes a floppy disk. The COP utility is frequently used to make backup copies 6-1 RSX-20F UTILITIES of the installation floppies. following: To use the COP utility, type the CTRL/\ (control backslash) PAR> MCR COP COP> 6.1.2 Format The format of the COP command line is as follows: COP>DXn:=DXm:/switch The following switches can be used with COP: 6.1.3 /BL:n,m Copies starting at (extended) block n,m until the last block on the device. If COP is interrupted (by a CTRL/C for example), it will print out the last block copied. /CP Copies the contents of one floppy to another. /HE Prints a list of the available switches. /RD Reads the device and checks for errors. /VF Verifies that First Device = Second Device. /ZE Writes zeros onto a device (deleting all files). Examples The following command copies the contents of the floppy disk to the floppy disk in DXO:. in DXI: files are COP>DXO:=DXl: The following command zeroes deleted. the floppy in DXO:~ all COP>DXO:/ZE The following command reads the floppy in DXO: and checks for errors. COP>DXO:/RD ~rhe following command copies the contents of the floppy in DXO: the floppy in DXI: and verifies the copy. COP>DXl:=DXO:/VF 6-2 onto RSX-20F UTILITIES The following command prints the format of the COP lists the available switches. command line and COP>/HE COP>DEST-DEV:=SRC-DEV:/SW-- SWITCHES: /BL:N,M /CP /HE /RD /VF /ZE 6.1.4 Error Messages COP -- *DIAG* -- ABORTED BY ~C AT BLOCK xxx,xxxxxx COP was interrupted by a CTRL/C at block number xxx,xxxxxx. COP -- *DIAG* -- I/O ERROR ON Dxx AT BLOCK xXX,xxxxxx An I/O error was detected on number xxx,xxxxxx. the specified device at block at block number The device Dxx specified in the command string is system or is off-line. not in COP -- *DIAG* -- VERIFY ERROR AT BLOCK xxx,xxxxxx An error was xxx,xxxxxx. detected during verification COP -- *FATAL* -- CONFLICTING SWITCHES A /CP or /VF was used with a /RE or /ZE. COP -- *FATAL* -- DEVICE Dxx NOT IN SYSTEM the COP -- *FATAL* -- DEVICE Dxx IS WRITE LOCKED The user does not have access to device Dxx. COP -- *FATAL* -- DESTINATION DEVICE SPECIFIED FOR /RD You specified a destination device with the /RD is an illegal combination of commands. switch. This COP -- *FATAL* -- FATAL I/O ERROR xxx ON Dxx AT BLOCK xXX,xxxxxx An I/O error xxx (refer to Appendix A) device Dxx at block number xxx,xxxxxx. has COP -- *FATAL* -- ILLEGAL SWITCH /xx The switch /xx is not a legal COP switch. 6-3 been detected on RSX-20F UTILITIES COP -- *FATAL* -- NO DESTINATION DEVICE SPECIFIED FOR /CP /ZE OR /VF OR This message is self-explanatory. COP -- *FATAL* -- NO SOURCE DEVICE SPECIFIED FOR /CP OR /VF OR /RD This message is self-explanatory. COP -- *FATAL* -- SOURCE DEVICE SPECIFIED FOR /ZE You specified a source device with the /ZE switch. illegal combination of commands. COP -- *FATAL* -- SYNTAX ERROR: This is an xxxxx ... A syntax error was detected in the command string xxxxxx ... Perhaps the switch was not preceded by a slash (/) or the input string was too long, or the block number was not separated from the switch by a colon (:). 6.2 INI UTILITY Sections 6.2.1 through 6.2.4 describe the function and format INI utility, provide examples and show error messages. 6.2.1 of the Function The INI utility produces a Files-II volume. The utility initializes the volume (destroys all existing files), writes a dummy bootstrap and a home block, and builds the directory structure. INI must first perform the following steps: 1. Read the TOPS-20 home block (if dual-ported RP04/RP06) 2. Process bad blocks 3. Allocate space for system files 4. Write out the storage bit map file 5. Mark the bit map for RP04/RP06) 6. Build the boot and home blocks 7. Write the index and file headers 8. Write the Master File Directory (MFD) TOPS-20 file system To initiate the INI utility, type the following: CTRL/\ (control backslash) PAR>MCR INI IN!> 6-4 (if dual-ported RSX-20F UTILITIES 6.2.2 Format INI>dev:/switch /switch •.•. where: dev: is the device initialized. of the volume to be The INI utility accepts a string of switches. A hyphen (-) can be used as a line terminator to extend the INI comm9nd line when the selected switches cause the command line to exceed the buffer size that has been specified for the entering terminal. Any number of continuous lines is permitted, but the total command line cannot exceed 512 characters. Switches can be used with the INI utility to modify the home parameters and the INI execution. The following switch can be used to modify INI execution. /FULL Declares that the volume being initialized is to be used only as a Files-II structure (no TOPS-IO/TOPS-20 files allowed). The following switch can be used to modify the home block parameters. /INDX=index-file-position The INDX switch specifies the index file logical block number. This switch can be used to force the Master File Directory (MFD) , the index file, and the storage allocation file to a specific volume location, usually for minimizing access time. Four possibilities are available. Places the index file beginning of the volume. MID Places the index file at the middle of the volume. This option must be used for DECtape. END Places the index file at the end of the volume. BLK:nnn Places the index file specified block number. Default: /INDX=BEG NOTES The INI utility does not indicate when the initialization process is complete. wait 10 seconds after issuing the command, then type control backslash to return to the PARSER. Any error that occurs while you are using the INI utility causes an exit from the program. The INI utility must then be reentered from the PARSER. 6-5 at the BEG at the RSX-20F UTILITIES 6.2.3 Examples The following command sets the location of middle of the volume. the index block in the INI)DBO:/INDX:MID The following command declares the structure to be entirely Files-II. INI)DBO:/FULL 6.2.4 Error Messages INI -- ALLOCATION FOR SYS FILE EXCEEDS VOLUME LIMIT The system is unable to allocate a system file from the specified block because of intermediate bad blocks or the end of the volume. INI -- BAD BLOCK FILE FULL The disk has more than 102 bad regions on it. INI -- BAD BLOCK HEADER I/O ERROR INI detected an error while header. writing out the bad-block file INI -- BLOCKS EXCEED VOLUME LIMIT The specified block or blocks exceeded the physical size of the volume. INI -- BOOT BLOCK WRLTE ERROR INI detected an error while writing out the volume boot block. INI -- CHECKING DDnn This is not an error message. An automatic bad block specification was proceedlng, using the bad block file provided by the Bad Block Locator utility program. INI -- CHECKPOINT FILE HEADER I/O ERROR An error was header. detected in writing out the checkpoint fil~ INI -- COMMAND I/O ERROR INI encountered an I/O error while attempting command. 6-6 to execute the RSX-20F UTILITIES INI -- COMMAND TOO LONG The command, including continuation lines, exceeded the maximum length of 512 characters. INI -- DATA ERROR The command specified a bad block number or that is too large. contiguous region INI -- DEVICE NOT IN SYSTEM INI was unable to find the device on which it was act. supposed to INI -- DEVICE NOT READY The device on which INI expects to operate is not in the state. ready INI -- DEVICE WRITE-LOCKED INI attempted to operate on write-locked4 INI could, device. a device and therefore, do found the device nothing with the INI -- DUPLICATE BLOCK(S) FOUND A block that was defined as bad second time. is being defined as bad a INI -- FILE CORRUPT - DATA IGNORED Although automatic bad block recognition was selected, the bad block data on the disk was not in the correct format and was ignored. INI -- HANDLER NOT RESIDENT You should never get this message. If it appears, contact your Software Support Specialist~ you may have corrupted software. INI -- HOME BLOCK ALLOCATE WRITE ERROR INI detected an error while overwriting a bad home block area. INI -- HOME BLOCK WRITE ERROR INI detected an error while overwriting a bad home block area. INI -- ILLEGAL KEYWORD The command string contained an illegal keyword. 6-7 RSX-20F UTILITIES INI -- ILLEGAL UIC You should never get this message. If it appears, contact your Software Support Specialist: you may have corrupted software. INI -- INDEX FILE BITMAP I/O ERROR INI encountered an I/O error while attempting to read the index file bitmap. INI -- INDEX FILE HEADER I/O ERROR INI encountered an I/O error while attempting to read the index file header. INI -- MFD FILE HEADER I/O ERROR INI encountered an I/O error while attempting to read file header. the MFD INI -- MFD WRITE ERROR INI encountered an I/O error while making an entry in the MFD. INI -- NO BAD BLOCK DATA FOUND INI is unable to read the bad block information from track of the disk. tNT -- RSX-20F FILE SYSTEM ALLOCATED LESS THAN 256. INI allocated less than 256 blocks of space to file system. the last front end BLOCKS the INI -- RSX-20F FILE SYSTEM OUTSIDE OF VOLUME RANGE When INI went to the home block to find out where the front-end file system is located, it was given an address that is not within the bounds of the volume in question. In other words, INI could not find the front-end file system. INI -- STORAGE BITMAP FILE HEADER I/O ERROR INI got an I/O error while attempting to read the for the storage bitmap. file INI -- STORAGE BITMAP I/O ERROR INI got an I/O error while reading the storage bitmap. INI -- SYNTAX ERROR There was a syntax error in the command string to INI. 6-8 header RSX-20F UTILITIES INI -- TOPS HOME BLOCK I/O ERROR INI received an I/O error while trying to read block. the TOPS home INI -- TOPS HOME BLOCK NOT FOUND INI was unable to find the TOPS copy of the home block. INI -- WRONG PACK - NO RSX-20F FILE SYSTEM ALLOCATED INI was not able to find specified pack. on the Sections 6.3.1 through 6.3.4 describe the function and format of MOU and DMOU utilities, provide examples and show error messages. the 6.3 6.3.1 any front-end file system MOU AND DMO Function The MOU and DMO utilities give information to RSX-20F that makes a device available to another user utility or takes away a device. RSX-20F then allocates or deal locates buffer space and Logical Unit Number (LUN) information as required. The MOU utility creates the Volume Control Block (VCB) and declares that the volume is logically on-line for access by the file system. The VCB is allocated in the dynamic memory and controls access to the volume. No switches are available to either the MOU or DMO utility. devices available that can be mounted are as follows: DBO: disk drive 0 (RP04/06) DBn: disk drive n (RP04/06) DXO: DXl: DTO: DTl: floppy drive 0 floppy drive 1 DECtape drive 0 DECtape drive 1 FEG: pseudodevice FEO: to talk to the KL FEn: pseudodevice FEn: to talk to the KL To initiate the MOU utility, type the following: CTRL/\ (control backslash) PAR)MOU MOU) 6-9 The only RSX-20F UTILITIES 6.3.2 Format MOU>dev: where: is the device on which the volume is to be mounted. devices that have an Ancillary Control Processor can be mounted. Devices that meet this criterion are rigid disk, floppy disk, DECtape, and the FE: device. dev: On~y The DMO utility declares that the volume or communication channel specified is logically off-line. After a DMO op~ration, the device cannot be accessed by the associated Ancillary Control Processor. A request is placed in the file system queue to delete the Volume Control Block, and the volume is marked for dismount so that no additional files can be accessed on the volume. The command is completed when the VCB is deleted~ the VCB deletion does not occur until all accessed files on the volume have been deaccessed. The system indicates that the process is completed by issuing the following message: dev: DISMOUNT COMPLETE A delay can occur between the issuance of the command and the printing of this message if a number of I/O requests are pending or a number of files are accessed on the volume. Format DMO>dev: where: dev: 6.3.3 ~he The device that holds the volume to be dismounted. Examples following command mounts the volume on device DKI:. MOU>DKI: The following command dismounts the volume on device DKI:. DMO>DKI: The following command deletes the volume control block (VCB) for DKI:. DMO>DKI: 6-10 RSX-20F UTILITIES 6.3.4 Error Messages This section lists the error messages that can arise during the execution of MOU and DMO command strings. Since they are presented in alphabetic order, the messages that come only from DMO are listed first, followed by those that come only from MOU. Finally, there are a few messages that can come from either utility. These are listed with the string "xxx" substituted for one of the strings "DMO" or "MOU" . DMO -- DEVICE CANNOT BE DISMOUNTED The device dismount command could not be executed. DMO was unable to determine the specific reason for the problem. You should never get this message from DMO; if you do, contact your Software Support Specialist. DMO -- DEVICE NOT MOUNTED The specified device is not mounted. DMO -- DISMOUNT ERROR xx The attempt to dismount a device failed because an I/O error was received. Refer to Appendix A for a list of the I/O error codes. MOU -- DEVICE ALREADY MOUNTED The specified device is already mounted. MOU -- MOUNT ERROR xx The attempt to mount a device failed because an I/O error was received. Refer to Appendix A for a list of the I/O error codes. MOU -- NO ACP FOR DEVICE The task specified as ACP or the default ACP is in the system. not installed xxx -- ACP REQUEST ERROR The ACP for the specified device could not be removed. xxx -- DEVICE NOT IN SYSTEM ~rhe device specified in the command to MOU or DMO was not found to be in the system resources. xxx -- SYNTAX ERROR The command you typed contained a error in syntax. 6-11 RSX-20F UTILITIES 6.4 PIP - PERIPHERAL INTERCHANGE PROGRAM Sections 6.4.1 through 6.4.5 describe the function, format, switches and subswitches of PIP, present examples, and show error messages. 6.4.1 Function The Peripheral Interchange Program (PIP) is an RSX-20F utility for the manipulation of files. PIP performs the following major functions: 6.4.2 • Copying files from one device or area to another • Deleting files • Renaming files • Listing file directories • Concatenating or appending files Initiating PIP PIP can be initiated by typing the following: CTRL/\ (Control Backslash) PAR)MCR PIP PIP) 6.4.3 PIP Command String Format The general PIP command string is: PIP)outfile=infilel[,infile2,infile3, .•. infileN] [/switch] [/subswitch] where: outfile The output file specifier in the form device: [UIC]filename.filetypeiversion. If the output filename, file type, and version are the null set or *.*,*, the input filename, file type, and version are preserved. If any part of the output file specifier (filename, file type, or version) is entered, wildcards cannot be used for the remaining file specifiers. infile The input file specifier in the form device: [UIC]filename.file typeiversion. If the filename, file type, and version are null, then *.*i* is the default. switch Anyone of the switches that can be entered. subswitch Anyone of the subswitches that immediately after a switch. 6-12 can be entered RSX-20F UTILITIES 6.4.4 PIP Switches and Subswitches A switch consists of a slash (I) followed by a two-character switch name and optionally followed by a subswitch name separated from the switch by a slash. The subswitch can have arguments, which are separated from the subswitch by a colon (:). Switches are global; that is, they can be specified once for an entire list of file specifiers. Subswitches are local; that is, they apply only to the file specifier that immediately precedes them. NOTE If a subswitch is applied to the first file specifier in a collection of file specifiers, and no command switch has been specified, PIP assumes that the command associated with the subswitch is the one requested. This switch is then applied to the entire collection. PIP switches and their functions are listed below. Switch Name Function lAP APPEND Adds files to the end of an existing file. No Switch COpy Copies a file. IDE DELETE Deletes one or more files. IFR FREE Prints out available space on specified volume. ILl LIST Lists a directory file. IME MERGE Concatenates two or more files. IPU PURGE Deletes obsolete version(s) of a file. IRE RENAME Changes the name of a file. APPEND Switch (lAP) Function The lAP switch opens an existing file(s) to the end of it. file and appends Format PIP>outfile=infile[ [,infile2, ... ,infileN]/AP 6-13 the input RSX-20F UTILITIES Examples The following command opens FILE.DATil on DKI: and appends the contents of files TEST.DAT;2, FILE2.TXT;3, and PRACT.DAT;1 to it. PIP>DKI:FILEI.DAT;1=TEST.DAT;2,FILE2.TXT;3,PRECT.DAT;1JAP COpy (no switch) Function The COpy switch is used to create a copy of a file on the same or another device. COpy is the PIP default switch when only one output file specifier and one input file specifier are contained in a command line. Format PIP>outfile=infile NOTE If the output filename, file type, and version are either null or *.*;*, the input filename, file type, and version are preserved. The following subswitch can be used with the COpy switch: jNV New Version - This switch allows the user to force the output version number of the file being copied to be one greater than the greatest version of the file already in the output directory. Examples DK2: to DKI: as The following command copies all versions of all .OAT from DKO: to DKI:. files of type The following command copies TEST.DAT;1 SAMP.DAT;I. on PIP>DKI:SAMP. DAT il=DK2:TEST.DAT;1 PIP>DKI:=DKO:*.DAT;* DELETE Switch (jDE) Function The JDE switch allows the user to delete files from a directory. Format PIP>infile1[, infile2, •.. infileN]jDE 6-14 RSX-20F UTILITIES NOTES 1. A version number must always be /DE switch. specified with the 2. A version number of -1 can be used to delete the oldest version of a file. An explicit version of ;0 or; can be used to delete the most recent version of a file. Examples The following command deletes version one of the file TEST.DAT in the default directory on the default device. PIP>TEST.DAT;l/DE The following command deletes all files of type DAT or the default directory on the default device. TMP from PIP>*.DAT;*,*.TMP;*/DE FREE Switch (/FR) The /FR switch allows the user to print the available space on specific device. a Format PIP>dev:/FR The output from the /FR switch is shown below. dev: HAS nnnn. BLOCKS FREE, nnnn BLOCKS USED OUT OF nnnn. Example PIP>DKO:/FR DKO: HAS 21081. 171798. BLOCKS FREE, 150717 BLOCKS USED OUT OF LIST Switch (/LI) Function The /LI switch allows the user to list one or more directories. PIP also provides the following three alternate mode switches, which allow the user to specify different directory formats. /BR /FU /TB /LI lists the following information: Filename.file type;version Number of blocks used (decimal) 6-15 RSX-20F UTILITIES File code: null = noncontiguous C = contiguous L = locked Creation date and time Example PIP)DBl:/LI DIRECTORY DBl: [5,5] 25-JUL-79 10:50 BAD.TSK;7 9. BOO.TSK;7 19. EBOOT.EXB;15 36. DMP.TSK;7 47. LKDISC.TSK;7 5. EDDT.EXB;l 52. MTBOOT.EXB:l 35. KLA213.MCB;213 36. MOU.TSK:6 5. C C C C C 19-Jl1L-79 19-JUL-79 20-JUN-79 19-JUL-79 19-JUL-79 13-JUN-79 19-JUN-79 12-JUL-79 29-JUN-79 10:58 10:58 09:17 15: 02 15:02 14:46 07:47 10:22 15:02 TOTAL OF 244. BLOCKS IN 9. FILES /BR displays the following brief form of the directory listing: Filename. file type; version Example PIP)DBl:/BR DIRECTORY DBl: [5,5] PARSER.TSK;l KLE.TSK;5 BAD.TSK;7 BOO.TSK;7 EBOOT.EXB;15 KL213.MCB;213 MAC.TSK;7 DMP.TSK;7 KLRING.TSK;6 /FU displays the full directory listing containing the information: Filename. file type; following version File identification number in the format (file number, file sequence number) Number of blocks used/allocated File code null = noncontiguous C contiguous L = locked 6-16 (decimal) RSX-20F UTILITIES Creation date and time Owner UIC and file protection in the format: [group, memberJ [system, owner, group, worldJ These protection fields can contain the values R,W,E,D, where: R W E D read access permitted write access permitted extend privilege delete privilege permitted Date and time of the last update plus the number of revisions. Summary line containing the following: Number of blocks used Number of blocks allocated Number of files printed Example (If you have a l32-column terminal, the complete each file will be printed on one line.) information PIP)DBl:/FU DIRECTORY DBl: [5,5J 25-JUL-79 10:53 BAD. TSK i 7 (7,1 7) 9. /9. C [5,5J [RWED,RWED,RWE,RJ BOO.TSKi7 (10,33) 19./19. C [5,5J [RWED,RWED,RWE,RJ EBOOT.EXBi15 (15,24) 36.36. [5 , 5J [ RWE D , RWE D , RWE , R J RED. TSK i 7 ( 3 6, 1021) 6. /6. C [5,5J [RWED,RWED,RWE,RJ KLI.TSKi5 (40,20) 64./64. C [5,5J [RWED,RWED,RWE,R] SLP.TSKi7 (45,121) 41./41. C [5 , 5J [ RWE D , RWE D , RWE , R J 19-JUL-79 10:58 19-JUL-79 10:58 20-JUN-79 09:17 19-JUL-79 19-JUL-79 29-JUN-79 l2-JUL-79 19-JUL-79 10:58 11:04(5.) 15: 02 10: 20 (74.) 10:58 /TB displays only the summary line in the following format: TOTAL OF nnnn./mmmm. BLOCKS IN xxxx. where: nnnn blocks used mmmm blocks allocated xxxx number of files 6-17 FILES on RSX-20F UTILITIES Example PIP)DBl:/TB TOTAL OF 2789. BLOCKS IN 85. FILES MERGE Switch (/ME) Function The /ME switch is used to create a new file from two or more existing files. If an explicit output file specifier is used and more than one input file is named without an appended switch, the /ME switch becomes the default switch. Format PIP)outfile infilel, infile2, ... infileN[/ME] Example The following command concatenates version 1 of the file TEST.DAT and version 2 of NEW.DAT from DK2: and generates the file SAMP.DAT on DKl:. PIP)DKl:SAMP.DAT=DK2:TEST.DAT;1,NEW.DAT;2/ME PURGE Switch (/PU) The /PU switch allows you to delete obsolete versions of a file. Format PIP)infilel[,infile2, ... ,infileN]/PU The /PU switch provides you with a convenient way to delete old versions of files. The /PU switch deletes all but the latest version of a file. Example Before issuing the /PU directory. switch the following files are in a TEST.DAT;1,TEST.DAT;2,TEST.DAT;5 Then the following command and switch are issued: PIP)TEST.DAT/PU After PIP has completed the contains the following file. purging action, the directory TEST.DAT;5 RENAME Switch (/RE) Function The /RE switch allows you to change the name of a file. The subswitch /NV allows you to force the version number of the renamed file to be one greater than the latest version number of the previously existing file. 6-18 RSX-20F UTILITIES Format PIP)outfile infile/RE[/NV] Example PIP)TEST.DAT;1=TRIAL.DAT;5/RE File TRIAL.DAT;5 is renamed TEST.DATil. NOTE Renaming files across devices is not allowed. However, renaming across directories on the same device is allowed. 6.4.5 PIP Error Messages PIP -- ALLOCATION FAILURE -- NO CONTIGUOUS SPACE The contiguous space available on the insufficient for the file being copied .. output volume is PIP -- ALLOCATION FAILURE ON OUTPUT FILE Space available on the output volume is file being copied. insufficient for the insufficient for the PIP -- ALLOCATION FAILURE - NO SPACE AVAILABLE Space available on the output volume is file being copied. PIP -- BAD USE OF WILD CARDS IN DESTINATION FILE NAME The user specified a wildcard "*" for an output filename the use of a wildcard is explicitly disallowed. where PIP -- CANNOT FIND DIRECTORY FILE You specified a UFD volume. that does not exist on the command was not found specified PIP -- CANNOT FIND FILE(S) The file(s) specified in the specified directory. PIP -- CANNOT RENAME FROM ONE DEVICE TO ANOTHER You attempted to rename a file across devices. 6-19 in the RSX-20F UTILITIES PIP -- CLOSE FAILURE ON INPUT FILE The input file cannot be properly closed. to indicate possible corruption. The file is locked The file is locked PIP -- CLOSE FAILURE ON OUTPUT FILE The output file cannot be properly closed. to indicate possible corruption. PIP -- COMMAND SYNTAX ERROR You entered a command that rules. does not conform to the syntax PIP -- DEVICE NOT MOUNTED The specified device is not mounted. PIP -- DIRECTORY WRITE PROTECTED PIP cannot directory violation. remove an entry from a directory is write-protected or because of because the a privilege PIP -- ERROR FROM PARSE The specified directory file does not exist. PIP -- FAILED TO ATTACH OUTPUT DEVICE An attempt to attach a record-oriented output device failed. This is usually caused by the device being off line or not being resident. PIP -- FAILED TO DETACH OUTPUT DEVICE An attempt to detach a record-oriented device failed. PIP -- FAILED TO DELETE FILE You attempted to delete a protected file. PIP -- FAILED TO ENTER NEW FILE NAME You specified a file that already exists in the directory file, or you do not have the necessary privileges to make entries in the specified directory file. PIP -- FAILED TO FIND FILE(S) The file(s) specified in the command line was not found in specified directory. 6-20 the RSX-20F UTILITIES PIP -- FAILED TO GET TIME PARAMETERS An internal system failure occurred while obtain the current date and time. PIP was trying to PIP -- FAILED TO OPEN STORAGE BITMAP FILE PIP cannot read the specified volume's storage bit map, usually because of a privilege violation. PIP -- FAILED TO READ ATTRIBUTES Your volume is corrupted or you privileges to access the file. do not have the necessary PIP -- FAILED TO REMOVE DIRECTORY ENTRY PIP cannot remove an entry from a directory because the entry is write-protected, or a privilege violation was detected. PIP -- FILE IS LOST PIP removed a file from its directory, failed to delete it, and failed to restore the directory entry. PIP -- FAILED TO WRITE ATTRIBUTES Your volume is corrupted or you do not privileges to write the file attributes. have the necessary PIP -- ILLEGAL COMMAND You entered a command not recognized by PIP. PIP -- ILLEGAL SWITCH You specified an illegal PIP switch or used a legal an illegal manner. switch in PIP -- ILLEGAL "*" COpy TO SAME DEVICE AND DIRECTORY You attempted to copy all versions of a file into the same directory that is being scanned for input files. This results in an infinite number of copies of the same file. PIP -- ILLEGAL USE OF WILD CARD VERSION The use of a wildcard version number in the attempted operation results in inconsistent or unpredictable output. 6-21 RSX-20F UTILITIES PIP -- I/O ERROR ON INPUT FILE: or PIP -- I/O ERROR ON OUTPUT FILE One of the following conditions exist: • The device is off-line. • The device is not mounted. • The hardware failed. • The volume is full (output only) . • The input file is corrupted. PIP -- EXPLICIT OUTPUT FILENAME REQUIRED You failed to specify the output filename. PIP -- NO DIRECTORY DEVICE You issued a directory-oriented command to a device not have directories. that does PIP -- NOT ENOUGH BUFFER SPACE AVAILABLE PIP has insufficient I/O buffer space to perform the command. requested PIP -- NO SUCH FILE(S) The file{s) directory. specified in the command are not in the designated PIP -- ONLY [*,*] IS LEGAL AS DESTINATION UIC You specified a UIC other than [*,*] as the output file UIC for a copy. PIP -- OPEN FAILURE ON INPUT FILE or PIP -- OPEN FAILURE ON OUTPUT FILE· The specified file cannot be opened. following conditions can exist: On EOF one or more of the • The file is protected against access. • A problem exists on the physical device. 6-22 RSX-20F UTILITIES • The volume is not mounted. • The specified file directory does not exist. • The named file does not exist in the specified directory. PIP -- OUTPUT FILE ALREADY EXISTS - NOT SUPERSEDED An output file of the same name, specified file already exists. type, and version as the PIP -- TOO MANY COMMAND SWITCHES - AMBIGUOUS You specified too many switches or conflicting switches. PIP -- VERSION MUST BE EXPLICIT OR n*n The version number of the specified explicitly or as a wildcard. 6.5 file must be expressed RED Sections 6.5.1 through 6.5.4 describe the function and format of provide examples and show error messages. 6.5.1 RED, Function The RED utility allows the operator to redirect all I/O requests previously directed to one system device to another system device. The utility does not affect any I/O requests already in the I/O queue. To initiate the RED utility, type the following: CTRL/\ (Control backslash) PAR>MCR RED RED> 6.5.2 Format RED>nud:=SY: where: nud the new device to which subsequent requests are redirected. SY the system directed. device from which requests NOTE The device nud must be mounted the RED command is given 6-23 before have to be been RSX-20F UTILITIES 6.5.3 Examples The following command redirects all I/O requests for SY: to DBI:. RED)DBI:=SY: 6.5.4 Error Messages RED -- DEVICE NOT KNOWN TO SYSTEM An attempt was made to redirect a device that does not exist in the device tables. RED -- FIIACP NOT FOUND ON SYSTEM SYSTEM MUST BE RELOADED RED could not find the Files-II ACP on the new This situation forces the front end to crash. system device. while primary RED -- PRIMARY PROTOCOL RUNNING You attempted to redirect the system device protocol was running. This is not allowed. RED -- NEW SYSTEM NOT MOUNTED FIIACP NOT FOUND ON SYSTEM SYSTEM MUST BE RELOADED RED -- SYNTAX ERROR The command string contained a syntax error. 6.6 SAV Sections 6.6.1 through 6.6.5 describe the function and format SAV utility, provide examples, and show error messages. 6.6.1 of the Function The SAV utility writes into a task image file the image of an RSX-20F system that has been resident in main memory. The utility effectively saves the image so that a hardware bootstrap or the BOOT command can later be used to reload and restart the system. The saved system is written into the file from which it was originally booted. This utility provides a way to build development systems that have tasks already installed, and thus eliminates the need for repetitive task installation following each system bootstrap. 6-24 RSX-20F UTILITIES The SAV utility removes any installed tasks that were not loaded from LB: and verifies that the system is inactive by making the following checks: • No tasks have outstanding I/O. • No devices are mounted. • No checkpoint files are active. • Error logging has been turned off. An error is reported if any of these checks fail. All RSX-20F system images reside on a file structure volume as a special format of task image. This special image is a task image without a task header. A system can either be booted by using the hardware bootstrap, or by using the BOOT command. A system saved on one controller cannot be booted from another controller. When a user installs a task, the system stores the task's file identification in the task header. When a system is saved, it places the file identification rather than the files's logical block number in the task control block. When the system is rebooted, it reopens the task file and stores the new logical block number of the task in the task control block. If a task has been deleted, the system cannot open the task file when the system is rebooted. In this case the system automatically removes the task's control block from the system task directory. A saved system does not retain the physical disk addresses of installed tasks. However, the task control block entries contain task file identifications, rather than logical block numbers after a system save. Thus, the system can function normally when it is rebooted. When the bootstrap block is written, the physical disk-block address of the system-image file is stored with it. However, the file can be deleted. If file system activity occurs, the blocks previously allocated to the system image can be reallocated to another file. A subsequent bootstrap that uses the boot block can cause random data to be loaded. Since SAV is active when the memory-resident system image is copied to disk, SAV appears in this image. In fact, SAV is the program that starts up the saved system after a disk boot. 6.6.2 Format SAV> [/switchl/switch2 ... /switchN] where: switch is one of the following: /DM:dev causes the specified device to be dismounted when the save file has been written. This switch is not widely used. /EX causes SAV to exit after writing the save switch is the default condition. 6-25 file. This RSX-20F UTILITIES 6.6.3 /MO:dev tells SAY that the specified device must be mounted before the save file is written. This switch is not widely used. /RH indicates that SAY should read the home block to find the front-end file system. This switch is the default condition. /WB indicates that a boot block pointing to the system image is to be written out to the system device. The new boot block points to the file that is saved by the execution of this command. Thus, on the next hardware bootstrap, this saved file will be loaded. If the command omits the /WB switch, the file previously pointed to by the boot block remains in effect; that is, the file is not overwritten. /WS causes SAY to write a save file. default condition. This switch is the Example SAY> The current status of the system is saved on the system disk (because /WS is the default switch). System changes made by the RED utility or another utility are also saved with the system image that is resident in main memory. 6.6.4 Error Messages SAV -- *DIAG* -- CANNOT FIND SECOND DX: In attempting to boot the system from floppy disks you must have both floppies mounted. SAY was unable to find the second floppy disk it expected. SAY -- *DIAG* -- DBn: NOT IN PROGRAMMABLE (A/B) MODE SAY attempted to access disk DBn: the correct mode. and found that it was not in SAY -- *DIAG* -- DEVICE ALREADY MOUNTED You have used the /MO switch in the command string to the device you requested is already mounted. SAY and SAY -- *DIAG* -- dey NOT READY SAY attempted to use the specified device and found that it was not ready. 6-26 RSX-20F UTILITIES SAV -- *DIAG* -- KLINIK LINE ACTIVE IN REMOTE MODE SAV discovered an active KLINIK line. You may receive this message when the KLINIK line was actually in REMOTE mode previous to the system load. You may also receive it when the KLINIK parameters were not saved due to some condition at the time of the crash. In this case, SAV resets the KLINIK line to REMOTE mode by default, since it has no way to know what mode the KLINIK line was in without the parameters. SAV -- *DIAG* -~ KLINIK LINE ACTIVE IN USER MODE SAV discovered an active KLINIK line during the initialization procedure. SAV checked for saved KLINIK parameters, and found that the KLINIK line had been in USER mode before the crash. SAV -- *DIAG* -- KLINIK LINE CONNECTED TO SYSTEM CONSOLE SAV found an active KLINIK line while bringing up the system. Either the KLINIK line was in REMOTE mode when the system went down, or the KLINIK parameters were lost during the crash and SAV has restored the KLINIK line to REMOTE mode by default. REMOTE mode means that the KLINIK line user has the use of a remote CTY (refer to Appendix D for more information on KLINIK). This message will immediately follow the KLINIK LINE ACTIVE IN REMOTE MODE message. SAV -- *DIAG* -- MOUNT dev ERROR nn SAV got an I/O error when attempting to mount the specified device. Refer to Appendix A for a list of the I/O error codes. SAV -- *DIAG* -- NO TOPS FILE SYSTEM ON dev SAV could not find the file system owned by the KL's system on the specified boot device. operating SAV -- *DIAG* -- TOPS HOM BLOCK CONSISTENCY ERROR OR DBn: The two home blocks which are read and compared by SAV are consistent with each other. not SAV -- *DIAG* -- TOPS HOM BLOCK READ ERROR nn ON DBm: SAV got a read error while attempting to read and compare the home blocks. Refer to Appendix A for a list of the I/O error codes. SAV -- *FATAL* -- ACP FOR devl NOT ON dev2 You have used the /DM switch, and SAV was not able to find ACP it expected for device devl on device dev2. 6-27 the RSX-20F UTILITIES SAV -- *FATAL* -- CREATE SAVE FILE (5,5) ERROR xx SAV attempted to create a system image file and received an I/O error. Refer to Appendix A for a list of I/O error codes. SAV -- *FATAL* -- dev CANNOT BE DISMOUNTED You gave SAV the /DM svlitch and SAV was unable to dismount specified device. SAV -- *FATAL* the dev DISMOUNT ERROR xx SAV got an I/O error while attempting to dismount the specified device. Refer to Appendix A for a list of I/O error codes. SAV -- *FATAL* -- DEVICE dev NOT IN SYSTEM The specified device does not resources. exist as part of the system SAV -- *FATAL* -- DTE-20 #n NOT AT PRIORITY LEVEL 6 SAV accessed DTE-20 #n and found that it was not at the correct priority level. All DTE-20's should be at level 6. SAV -- *FATAL* -- DTE-20 PROTOCOL RUNNING Some type of DTE-20 protocol is running. protocol of any type is in force. SAV cannot run while SAV -- *FATAL* -- ILLEGAL DEVICE dev SAV does not recognize the device identifier. SAV -- *FATAL* -- ILLEGAL MODIFIER /xx SAV discovered an illegal switch value: /xx. SAV -- *FATAL* -- KLI TASK REQUEST ERROR nn There was an I/O error on the request for KLINIT to run. to Appendix A for a list of the I/O error codes. Refer SAV -- *FATAL* -- MOUNT ERROR You specified the /MO switch in the SAV command string and was unable to mount the specified device. SAV -- *FATAL* -- NO DTE-20 SAV could not find the DTE-20 it expected. 6-28 SAV RSX-20F UTILITIES SAV -- *FATAL* -- PROTOCOLS NOT RUNNING SAV expected to find one of the protocols running, but none were there. No KLINIK parameters can be passed to the KL if there is no protocol running. SAV -- *FATAL* -- SAVE FILE (5,5) NOT CONTIGUOUS SAV was unable to find enough contiguous requested save file. space to write the SAV -- *FATAL* -- SYNTAX ERROR xx SAV discovered a syntax error in your xx. command string, namely SAV -- *FATAL* -- WRITE ERROR While you were trying to boot from the save file, discovered that the save file was not written correctly. 6.7 SAV UFD - USER rILE DIRECTORY Sections 6.7.1 through 6.7.4 describe the function and format UFO utility, provide examples and show error messages. 6.7.1 of the Function ~~he UFO utility creates a User File Directory on a Files-II volume and enters its name into the Master File Directory. Before the User File Directory can be defined, the volume must be mounted with the MOU utility and initialized with the INI utility. Once the volume has been mounted and initialized, User File Directories can be added at any time. 6.7.2 Format UFD>dev: [group,member] [/switch] [/switch] where: dev: The device containing the volume on which the UFO being created will reside. Default: none; must be specified. [group,member] The owning UIC for the UFO. required syntax. switch The UFD utility accepts the following switch. /ALL The /ALL switch allocates space for the UFD and takes as an argument the number of blocks to allocate. Default: /ALL:32 6-29 The brackets are RSX-20F UTILITIES 6.7.3 Examples PAR>MCR UFO UFD>DB2: [10,lO]/ALL:900 6.7.4 Error Messages UFO -- CAN'T READ MCR COMMAND BUFFER This message indicates command string. that UFO was unable to parse your UFD -- DEVICE NOT IN SYSTEM UFO was unable to find the specified device on the system. UFO -- DIRECTORY ALREADY EXISTS The requested UFO already exists on the volume. UFO -- FAILED TO CREATE DIRECTORY No space exists on the volume, or an I/O error occurred. UFO -- FAILED TO ENTER IN MFD No space exists in the MFD or on the volume, or occurred on the volume. an I/O error UFO -- NOT FILES-II DEVICE The device specified for the UFO was not a Files-II device, and therefore could not support a UFO. UFO -- SYNTAX ERROR UFO found a syntax error in your command string. UFO -- VOLUME NOT MOUNTED The volume was not mounted prior to the attempt to UFO. create the UFD -- WRITE ATTRIBUTES FAILURE UFO encountered an error while writing the attributes of either the MFD or the newly created UFO. 6-30 RSX-20F UTILITIES 6.8 ZAP Sections 6.8.1 through 6.8.8 in detail the ZAP utility. 6.8.1 Function The ZAP utility allows you to examine files on a Files-II volume and to patch task lmages and data files in an interactive environment without reassembling the files. ZAP provides the following features: • Command line switches that allow access to specific words and bytes in a file, modify locations in a task image, list the disk block and address boundaries for each overlay segment in a task image, and open a file in read-only mode. • A set of internal registers that registers. • Single character commands that, in combination with other command line elements, display, open, close, and manipulate the values in task images and data files. includes eight NOTES The results of ZAP are permanent. The most convenient way to use ZAP is with a hard-copy terminal. Hard copy provides a record of the changes made with ZAP commands. Although using the ZAP utility is relatively uncomplicated, patching locations into the task image requires that you know how to use the map generated by the task builder along with the listings generated by MACRO-II. These maps and listings provide the information needed to access the locations to be changed. 6.8.2 Invoking and Terminating ZAP The method for invoking ZAP is as follows: CTRL/\ (control backslash) PAR>MCR ZAP ZAP>filespec[/sw ... ] <cr> command line To exit from ZAP, type either of the following: x or CTRL/Z 6-31 relocation RSX-20F UTILITIES 6.8.3 ZAP Switches ZAP switches set the mode in which ZAP operates: task image mode, absolute mode, or read-only mode. For example, you can select task image mode by omitting the lAB switch. The three ZAP switches are presented below. lAB Processes the addresses entered in the ZAP command lines as absolute byte addresses within the file RS~20F.SYS (not within the program). You must add 2000 (octal) to the absolute address inside the code to compensate for the header information at the top of the file. If lAB is not specified, addresses in ZAP command lines refer to addresses in a task image file, as shown in the task-builder task image map for the file. ILl Displays the starting disk block and address boundaries for each overlay segment in the file in the following form: ssssss: aaaaaa-bbbbbb where: IRO 6.8.4 ssssss: specifies the starting block in octal aaaaaa specifies the lower address boundary octal in bbbbbb specifies the upper address boundary octal in Opens a file in read-only mode. When IRO is specified, ZAP functions that change the contents of locations can be executed but the changes are not permanent. When ZAP exits, the original values in the task image file are restored. Addressing Locations in a Task Image To make addressing a task image more convenient, ZAP provides two modes of addressing a task image and a set of internal relocation registers. The two modes of addressing are absolute mode and task mode. These two modes aid in the figuring of relocation biases. When MACRO-II generates a relocatable object module, the base address of each program section in the module is 000000. In the assembly listing, all locations in the program section are shown relative to this base address. The task builder links program sections to other program sections by mapping the relative addresses applied by the assembler to the physical addresses in memory (for unmapped systems), or to virtual memory locations (for mapped systems). Many values within the resulting task image are biased by a constant whose value is the absolute base address of the program section after it has been relocated. This bias is called the relocation bias for the program section. 6-32 RSX-20F UTILITIES ZAP's eight relocation registers, OR through 7R, are generally set to the relocation biases of the modules that will be examined. Thus, you can reference a location in a module by the :same relative address that appears in the MACRO-II listing. ZAP provides two addressing modes that simplify the calculation of relocation biases. 6.8.4.1 ZAP Addressing Modes: Absolute and Task Image - ZAP provides two modes of addressing locations in a task image: absolute mode and task image mode. To use ZAP in absolute mode, enter specifier when ZAP is invoked. the /AB switch with the file In absolute mode, ZAP interprets the first address in the file being changed as segment 1, location 000000. All other addresses entered are interpreted using this address as a base location. This mode allows access to all the bytes in a file, as well as the label and header blocks of the task image. However, to modify a task image in absolute mode, the layout of the task image on disk must be known. Generally, this is practical only for task image files that are not overlaid. In absolute mode the task header is 2000 bytes. Therefore, to access location a of a nonoverlaid task in absolute mode, open address 2000. In task image mode, zip uses the block number and relative offset listed in the task builder's memory allocation map to address locations. This mode is useful for changing locations in a file constructed of overlay segments, because the task builder and ZAP perform the calculations necessary to relate the task's disk structure to its run-time memory structure. The task builder adds blocks that contain system information to the beginning of the task image file. The memory allocation map generated by the task builder gives the starting block and byte offset of the file to be changed. ' Task image mode is the default mode for ZAP. You may also put ZAP in task image mode by entering the /LI switch to display block/segment information. This puts ZAP in task image mode after the information is displayed. Locations in a file can be examined in either absolute mode or task image mode by using the /RO switch. This switch allows locations to be opened and the contents temporarily changed. When ZAP exits, the original file remains intact. 6.8.4.2 Addressing Locations in Task Image Mode - In task image mode, ZAP uses the block number and byte offset listed in the task builder memory allocations map, and addresses that MACRO-II prints in an object module listing to access a location in a task image. The following excerpts from a MACRO-II listing and a task image memory allocation map generated by the task builder show how to use ZAP in task image mode. 6-33 RSX-20F UTILITIES The following lines represent assembled instructions from source listing: 71 72 73 74 75 76 000574 000602 000604 000610 000614 000620 032767 001002 000167 061700 016000 010067 OOOOOOG OOOOOOG 000406 OOOOOOG OOOOOOG 177534 2$ BIT BNE JMP MOV MOV MOV a MACRO-II #FE.MUP,$FMASK 2$ 30$ $TKTCB,RO T.UCB(RO) ,RO RO,UCB The following excerpt from the task builder memory allocation map gives the information needed to address locations in the task image file as they appear in the above MACRO-II listing: R/W MEM DISK BLK LIMITS: 120000 123023 003024 01556. LIMITS: 000002 000005 000004 00004. MEMORY ALLOCATION SYNOPSIS: SECTION . BLK.: (RW,I,LCL,REL,CONO 120232 002546 01382. 120232 002244 01188. (TITLE: MYFILE, IDENT: 01, FILE: $$RESL: (RE,I,LCL,REL,CON) MCR.OLD~l) 122476 000064 00052. 123000 000024 00020. (TITLE: FMTDV, IDNET: 01, FILE: MCR.OLB;l) With the information in the memory allocation map above, the user can determine the block number and byte offset for the beginning of the file to be changed. The disk-block-limits line lists block 2 as the block where the file begins. The memory allocation synopsis lists byte offset 120232 as the beginning of the file MYFILE. To address location 574 in the MACRO-ll listing in the task image mode, specify the command: 002:l20232+574/<cr) ZAP responds by opening the location and displaying its contents: 002:121026/032767 6.8.5 The ZAP Command Line ZAP commands allow you to examine and modify the contents of locations. in a task image file. Command lines comprise combinations of thE' following elements: • Commands • Internal registers • Arithmetic operators • Command line element separators • The current location symbol • Addresses of location in storage 6-34 RSX-20F UTILITIES These command elements can be combined to perform multiple functions. The functions of a given command line depend on the positional relationship of one command line element to the rest. In other words, the function specified on a ZAP command line depends on both the elements specified and on the form in which those elements are specified. ZAP commands take effect only after a carriage return is pressed. Corrections to the command line can be made prior to a carriage return by using the delete key. The line currently being typed can be deleted using the CTRL/U. ZAP commands are grouped into three categories, as follows: • Open/close location commands • General purpose commands • Carriage return command 6.8.5.1 Open/Close Location Commands - Open/close location commands are nonalphanumeric ASCII characters that direct ZAP to perform two general types of operations, as follows: • Open a location, display its contents, and store the contents in the quantity register. • Close the open location after optionally modifying the contents and open another location as specified by a command. ZAP Open/Close Commands / Open a location, display its contents in octal, and store the contents of the location in the quantity register (Q). If the location is odd, it is opened as a byte. " Open a location, display the contents of the location as two ASCII characters, and store the contents of the location in the quantity register (Q) • % Open a location, display the contents of the location in RADIX-50 format, and store the contents of the location in the quantity register (Q) • \ Open a location as a byte, display the contents of the location in octal, and store the contents of the location in the quantity register (Q). Open a location, display the contents as one ASCII character, and store the contents of the location in the quantity register (Q). Close the currently open location as modified, use the contents of the location as an offset from the current location value, and open that location. @ Close the currently open location as modified, use the contents of the location as an absolute address, and open that location. 6-35 RSX-20F UTILITIES ZAP Open/Close Commands > Close the currently open location as modified, interpret the low-order byte of the location as the relative branch offset, and open the target location of the branch. < Close the currently open location as modified, return to the location from which the last series of ,@, or > commands began, and open the next sequential location. 6.8.5.2 General Purpose Commands - ZAP provides six single-character general-purpose commands. Some can be entered on the command line with no other parameters; others must be entered with parameters. The following table summarizes the commands and their functions. x Exit from ZAP; K Compute the offset between the value of the nearest (less than or equal to) relocation register and the currently open location, display the offset value, and store it in the quantity register. o Display the jump and branch displacements from the current locations to a target location. return to MCR. Display in octal, the value of the the left of the equal sign. R expression to Set the value of a relocation register. 6.8.5.3 Using the Carriage Return - The carriage return causes ZAP to close the current location as modified. Two sequential carriage returns open the next sequential location in the file. 6.8.5.4 ZAP Internal Registers - ZAP internal registers are fixed storage locations that are used as registers. The internal registers contain values set by ZAP and the user to make it easier to modify locations in a task image. ZAP provides the following internal registers: OR - 7R Relocation registers 0 can be loaded with relocated by the task convenient means for change the contents of c The constant register. Set this register to contain a 16 bit value, which can be specified as an expression. 6-36 through 7. These registers the base address of modules builder. They provide a indexing into a module to locations in the modules. RSX-20F UTILITIES F The format register. This register controls the format of the displayed address. If the value of the F register is 0, ZAP displays the addresses relative to the largest value of any of relocation register whose value is less than or equal to the address to be displayed. If the value of the F register is nonzero, ZAP displays addresses in absolute format. Zero is the initial value of the F register. Q The quantity register. The value in the quantity register is set by ZAP to contain the last value displayed on the terminal. To access the contents of a register, specify a dollar sign ($) before the register when you enter a command, as shown below: $C/ This example directs ZAP to register. display the contents of the constant 6.8.5.5 ZAP Arithmetic Operators - The arithmetic operators are single-character command-line elements that define an arithmetic operation in the command-line expression. In general, ZAP evaluates such expressions as addresses. ZAP provides the following arithmetic operators: + Add a value to another value. Subtract a value from another value. * Multiply a value by 50 (octal) and add it value. Used to form a RADIX-50 string. to another A*B means A x 50 (base 8) + B. These operators are used in expressions on the command lines. For example, rather than adding by hand all the displacements listed in the task builder memory allocation map, the following notation could be used. 002:120000+170/ This method for calculating such a displacement accurate than calculating it by hand. is faster and more 6.8.5.6 ZAP Command Line Element Separators - ZAP provides separators to delimit one command line element from another. Different separators are required for the type of ZAP command being executed. ZAP uses the following separators: Separate a relocation register another command line element. specification from Separate an address from an internal register specification. (used in expressions that are values for relocation registers) 6-37 RSX-20F UTILITIES Separate a block number base value from an offset into the block. (used in most references to locations in a file) 6.8.5.7 The Current Location Symbol - In expressions that evaluate to an address on a ZAP command line, a period (.) represents the last open location. 6.8.5.8 Formats for Specifying Locations in ZAP Command Lines - There are three formats for specifying locations in a ZAP command line. Each provides a means of indexing into the task image file, but the methods of indexing differ. The three formats are: • Byte offset format • Block number/byte offset format • Relocation register, byte offset format Byte Offset Format The byte offset format specifies a location in the task image file follows: as location If ZAP is being used in absolute mode, ZAP interprets this specification as a byte offset from block 1, location 00000. If ZAP is being used in task image mode, ZAP interprets this specification as a byte offset from block 0, location 000000. This format is useful only when ZAP is being used in absolute mode. For example, the following ZAP command opens absolute location 664: 664/ Block Number/Byte Offset Format Block number/byte offset format allows you to specify from a specific block. Enter this format as follows: a byte offset This form for addressing locations can be used regardless /AB has been used with the ZAP file specification. of whether The tasK builder prints a map that gives information segments. For example: the overlay INDENT FILE blocknum:byteoffset R/W MEM DISK BLK LIMITS: LIMITS: on 120000 123023 033024 01556. 000002 000005 000004 00004. MEMORY ALLOCATION SYNOPSIS: SECTION TITLE . BLK.: (RW,I,LCL,REL,CON) 120232 002546 01382 . 120232 002244 01188. MYFILE FMTDV 122476 000064 00052. $$RESL: (RW,I,LCL,REL,CON) 123000 000024 00020. 6-38 01 01 MCR.OLBil MCR.OLBil RSX-20F UTILITIES In task image mode, ZAP allows you to enter the block number and byte offset displayed in the task builder memory allocation map. In this case, the disk-block-limits line shows MYFILE beginning on block 2; the memory allocation synopsis shows that MYFILE has an offset of 120232. Relocation Register, Byte Offset Format This format allows you to load a relocation register with the value of a location to be used as a relocation bias. This mode of addressing locations in a task image is as follows: relocreg,byteoffset Specify relocreg in the form nR, where n is the number of the relocation register. Byte offset can then be addressed from the value loaded in the relocation register as follows: 2:12032;3R 3,574/ 6.8.6 Set the value of relocation register 3. Open the location 574 bytes offset from (segment) 3, location 12032. block Using ZAP Open/Close Commands This section explains how to use ZAP open/close commands. It contains information on how to open locations in a task image file, modify those locations, and close the locations. 6.8.6.1 Opening Locations in a Task Image File - Any of the five ZAP commands (I, ", %, \, or ') can open a location in a task image file. Once the location is open, its contents can be changed. The value ZAP displays depends on the format in which the value was stored. For example, the word value 001002 takes the following binary form: 00000010000010 If the location is opened in byte format, the value contained in locations is 002. both Once a location is opened in a given format, ZAP continues to display any subsequently opened locations in that format until the format is changed by entering another special-character open command. For example, if the percent (%) command is used, the contents are displayed in RADIX-50 format. If consecutive carriage returns are entered, consecutive locations will be in RADIX-50 format. 6.8.6.2 Changing the Contents of a Location - When a location is opened using a special-character command, the contents can be changed by entering the new value and a carriage return. The example below shows how to open a location, change the location, and close the location. 002:120000/ 000000 Display the contents of a word location. 44444 Change the contents of the location by entering a value (44444) and,close the location by a carriage return. 6-39 ~SX-20F 1 UTILITIES Display the new contents of the location by entering a slash (I) and a carriage return. 002:1200001 44444 When ZAP displays the contents of the opened location, the format in which the value 1S displayed is indicated by the special command character immediately following the address portion of the location. In this example the slash (I) indicates that word locations are being opened and the contents displayed in octal. 6.8.6.3 Closing Task Image Locations - There are five ZAP special-character commands for closing a location in a task image. The carriage return also closes a location. All the ZAP close commands perform the following three functions: • Close the current location. • Direct ZAP to another location (such as the preceding location or a location referenced by the current location). • Open the new location. The examples below show how these commands work. Close a Location -- Open the Preceding Location The circumflex (ft) command is used to close the current location, direct ZAP to the preceding location, and to open that location. to 002:1201001 002:1201001 000000 002:1201021 000111 002:1201041 000222 202:1201061 000333 002:1201041 000222 The carriage return is used to close the first three open locations and open the next location. The circumflex (ft) closes location 120106 and directs ZAP to open the preceding location, 120104. Close a Location -- Open a Location at an Counter the Location • Closes the current location • Directs ZAP to use the contents of this just-closed as an offset location • Adds this offset to the next sequential location • Opens that location The underscore Offset from ( ) command is used as follows: 6-40 RSX-20F UTILITIES The following example illustrates the use of the underscore command: 002:120100/ 002:120100/ 000000 002:120102/ 000121 002:120104/ 000222 002:120106/ 000022 002:120132/ 234102 The first locations are closed by carriage returns. Location 120106 is closed using the underscore command, which directs ZAP to use the contents of the just-closed location (22) as an offset to the next sequential location (120110), and to open that location (120132). Close a Location -- Open a Location Just-Closed Location Offset from the Value of the The @ command is used to close a location, to direct ZAP to use the contents of the just-closed location as the absolute address of a location, and to open that location. The following example illustrates the use of the @ command: 002:120100/ 002:120100/ 005000 002:120102/ 005301 002:120104/ 120114 @ 002:120114/ 124104 The first locations are closed using the carriage return. Location 120104 is closed using the @ command, which directs ZAP to use the value in that location (120114) as the absolute address of the next location to open, and to open that location (8120114). Close a Location -- Open the Target Location of a Branch The greater-than (» command is used to close the current location, to direct ZAP to use the low-order byte of the just-closed location as a branch offset to the next sequential location, and to open that location. The example below illustrates the use of the> command: 002:120100/ 002:120100/ 005000 002:120100/ 005301 002:120104/ 001020 > 002:120146/ 052712 The first locations are closed using the carriage return. Location 120104 is closed using the> command. ZAP takes the low-order byte (020) of this just-closed location and uses it as a branch offset to the next sequential location, and opens that location. Since the low-order byte refers to a word, and the machine is byte-addressable, the offset value (020) is multiplied by 2 and added to the next sequential address (120106). This yields the new address (120146) that ZAP then opens. 6-41 RSX-20F UTILITIES Close a Location -- Open the Location Commands Began Where the Current Series of The less-than «) command is used to close the current location, direct ZAP to the next sequen 1cial location from the location where the series of , @, or > commands was first issued, and to open that location. The example below illustrates the use of the < command. 002:120002/LI 002:120002/000212 002:120004/000002 > 002:120012/004001 > 002:120016/120412 < 002:120006/140236 The < command closes location (120016), returns to the location where the sequence of > commands began (120004), and opens the next sequential location (120006). 6.8.7 Using Zap General Purpose Commands This section describes the functions of the three ZAP general commands K, 0, and -. purpose 6.8.7.1 The K Command: Compute Offset and Store it in the Quantity Register - The K command 1S used to compute the offset between the value of the nearest (less than or equal to) relocation register and the currently open location, to display the offset value, and to store it in the quantity register. K can be entered in the following formats: K computes the displacement in bytes from the address of the last open location and the value·of the relocation register whose contents are closest to but less than the value of that address. nK Calculates the displacement in bytes from the last open location and relocation register n. a;nK Calculates the displacement relocation register n. between address The following example illustrates the use of the K command: 2:1172,OR 2:1232;lR 2 :1202/ 002:000020/000111 K =0,000010 O,lOOjlK 01,000040 6-42 a and RSX-20F UTILITIES 6.8.7.2 The 0 Command: Display Branch and Jump Displacement from the Current Location - The 0 command is used to display the branch and jump displacements from the current location to a target location. A branch displacement is the low-order eight bits of a branch instruction which, when executed, would branch to the target location. A jump displacement is the offset between the open location and the target location. This displacement is used in the second word of a jump instruction when such an instruction uses relative addressing. The 0 command can be entered in the following formats: aO Displays the jump and branch displacements from current location to the target of the branch. the a;KO Displays the jump and branch location a to target location K. from displacements The following example illustrates the use of the 0 command: 2:1172;OR 0,101 002:000010/000005 0,200 00006>000003 0,30;2:12020 177756>17777767 6.8.7.3 The = Command: Display the Value of an Expression The equal sign (=) command is used to display (in octal) the value of an expression to the left of the equal sign. The format for specifying the equal sign command is as follows: expression= The following example illustrates the use of the equal sign command: 2:30/ 002:000030/000000 .+177756= 000006 6.8.8 ZAP Error Messages ZAP -- ADDRESS NOT WITHIN SEGMENT The address specified. specified was not within the overlay segment ZAP -- CANNOT BE USED IN BYTE MODE The commands @, i, and> cannot be used when a location is open as a byte. ZAP -- ERROR IN FILE SPECIFICATION The file specification was entered incorrectly. 6-43 RSX-20F UTILITIES ZAP -- ERROR ON COMMAND INPUT An I/O error occurred while a command could be a hardware error. was being read~ thil:i ZAP -- I/O ERROR ON TASK IMAGE FILE An I/O error occurred while reading or writing being modified; this could be a hardware error. to the file ZAP -- NO OPEN LOCATION An attempt was made to modify data in a closed location. ZAP -- NO SUCH INTERNAL REGISTER The character following the dollar sign specification for an internal register. was not a valid ZAP -- NO SUCH RELOCATION REGISTER An invalid number for a relocation register was specified. ZAP -- NO SUCH SEGMENT The starting disk block was not the start of any segment in the task image. ZAP -- NOT A TASK IMAGE OR NO TASK HEADER An error occurred during the construction of the segment description tables. The problem could be that the file is not a task image, /AB was not specified, or the task image is defective. ZAP -- NOT IMPLEMENTED The command entered is recognized but not implemented by ZAP. ZAP -- OPEN IMAGE FAILURE FOR TASK IMAGE FILE The file to be modified could not be opened. Possibly the file does not exist, the file is locked, the device is not mounted, or the file is protected from write access. ZAP -- SEGMENT TABLE OVERFLO~l ZAP does not have enough room in its partition to segment table. 6-44 construct a RSX-20F UTILITIES ZAP -- TOO MANY ARGUMENTS More arguments were entered on a command line than are allowed. ZAP -- UNRECOGNIZED COMMAND ZAP did not recognize the command as entered. 6-45 CHAPTER 7 RSX-20F MONITOR Before examlnlng the internals of the RSX-20F monitor, let us the functions of an operating system. These functions are: • To provide service to the I/O devices in the form drivers of • To control the scheduling of the monitor call and queue mechanism via • To control the scheduling of tasks • To provide common routines that any program can use device drivers recall device some With these functions in mind, we will proceed to discuss the structure of the RSX-2QF operating system. This chapter details the RSX-20F Executive. It then describes RSX-20F tasks and the scheduling of these tasks, along with the actions performed by system traps. Finally, the terminal service routines are presented. 7.1 RSX-20F EXECUTIVE RSX-20F differs from TOPS-IO and TOPS-20 in that it is not a paging or swapping system. All of the RSX-20F Executive is in memory all the time. RSX-20F also differs from TOPS-IO and TOPS-20 in that it uses the same location in memory all the time, instead of bringing in only part of the monitor and placing it wherever space can be found. RSX-20F does use overlays, but overlays are handled by the individual tasks, rather than by the Executive. The only tasks that use overlays are tasks such as the PARSER or KLINIT, that are too large to fit into the GEN partition. The components of the RSX-20F Executive are shown in Figure 7-1. The location .EXEND always points to the bottom of Lower Core, while the location .EXEND+2 points to the bottom of the Free Pool. Using this information you can find the boundaries of the Executive. The file RSX20F.MAP contains a current map of the Executive, along with the correct addresses at which to find selected portions of it. 7-1 RSX-20F MONITOR +-----------------------------------------------------+ 0000 LC - Lower Core Contains all vectors to handle interrupts and traps SCH - The Scheduler Handles trap instructions and scheduling of tasks BOOT - The Boot Protocol Handler Handles communications with the KL when RSX-20F is booting the KL PF - Power Fail Contains code to handle power-fail conditions DMDTE - DTE Directive Service Handles all directives concerned with the DTE DMASS - Assign LUN Directive Assigns system Logical Unit Numbers (LUNs) to devices DMGLI - LUN Information Directive Gives information about the Logical Unit Numbers that have been assigned DMGTP - Get Time Parameters Gets information about time DMSED - Significant Event Directive Handles the setting and clearing of significant event flags DMMKT - Mark Time Directive Contains code to mark time or to keep a program in a wait condition until a significant event occurs DMCMT - Cancel Mark Time Directive Contains code to cancel a mark time condition DMSUS - Suspend and Resume Directives Suspends or resumes execution of issuing task DMEXT - Exit Directive Terminates execution of issuing task DMQIO - QIO directive Places an I/O request for a device into the queue for that device DMSA~ - Send and Receive Directives Sends data to and receives data from a task Figure 7-1 RSX-20F Executive 7-2 RSX-20F MONITOR DMSDV - Specify SST Table Directive Records synchronous system trap entry points (for debugging purposes only) DMAST - Specify AST Service Directive Records the service routine to be executed on a power fail for a device DMREQ - Run a Task Directive Makes a task active and runnable DMGPP - Get Task Parameters Directive Gets information about a task and puts it into a 16-word block for a task to read DMGMP - Get Partition Parameters Directive Gets information about a partition and puts it into a 16-word block for a task to read RUN - Clock Tick Recognition Service Checks time dependent flags at each clock interrupt QPRDRV queued protocol DTEDRV DTE-20 device driver TTYDRR Terminal device driver SCOMM RSX-20F Executive Data Base ARITH Miscellaneous arithmetic functions (multiply, divide, etc) DBDRV Dual-ported disk device driver DTDRV DECtape device driver (TOPS-IO) DXDRV (or) Floppy disk device driver. (TOPS-20) FEDRV Pseudo FE: device driver LPDRV Line-printer device driver CRDRV Card-reader device driver INSTAL Task that installs a task into the GEN partition 1----------------------------------------------------Figure 7-1 RSX-20F Executive (Cont.) 7-3 RSX-20F MONITOR 70000(apprx} .FREPL Free pool 75777 76000 .BGBUF Big buffer 77777 100000 GEN General partition FIITPD Files-II area I/O Page I/O address area +-----------------------------------------------------+ 145377 145000 157777 160000 177777 Figure 7-1 RSX-20F Executive (Cont.) The bulk of the RSX-20F Executive is taken up by the directive service routines and the device drivers. The scheduler is small and not as involved as the scheduler in TOPS-20 or TOPS-IO, because there arE~ fewer tasks to schedule and they run quickly. (Scheduling is discussed in Section 7.2.) A representation of the entire memory is shown in Figure 7-2. The RSX-20F Executive takes up memory locations 000000 to 070000. The addresses below 070000 are not fixed; consult: the file RSX20F.MAP to find the actual addresses for the version of RSX-20F you have. Addresses above 070000 are fixed as pictured above. The area labeled .FREPL is a Free Pool of space for general use by the Executive. The TTY thread lists, task information, and LPT thread lists are stored in the Free Pool. The area labeled .BGBUF is a biq buffer used to store LPT RAM data or task information when a task i~; being installed. The GEN partition is where the RSX-20F utility programs are executed. It is sometimes referred to as the user area. The FIITPD partition is a system partition and usually hosts thE! Files-II Ancillary Control Processor (FIIACP). Other tasks that also use this partition are SETSPD, KLRING, KLDISC, and MIDNIT. The I/O page (also referred to as the external page) resides in upper memory and contains the input and output device registers. With the aid of the Task Builder map for RSX-20F and the PDP-II Peripherals Handbook it is possible to determine the contents of any location in memory. This data can be useful when using the switch registers to look at a crashed system. Not only are the locations of the hardware registers known, but also, many key software locations can be examined. 7-4 RSX-20F MONITOR +-----------------------------+ 177776 I/O PAGE ----------------------------- 160000 F11TPD ----------------------------- 145400 GEN PARTITION ----------------------------.BGBUF ----------------------------.FREPL ----------------------------- 100000 076000 070000 (approx) RSX-20F EXEC +-----------------------------+ 000000 Figure 7-2 7.2 RSX-20F Memory Layout TASKS AND SCHEDULING The tasks that run in the front end are either part of the RSX-20F Executive or are utility programs. Executive tasks are resident in memory while the utilities are brought in from auxiliaries storage as needed. The following parts of the Executive ~re considered tasks and must be scheduled: DTEDRV FEDRV DBDRV DXDRV DTDRV TTYDRV DTE device driver FE device driver RP04 device driver Floppy disk device driver DECtape driver Terminal device driver 7-5 RSX-20F MONITOR LPTDRV CDRDRV FIIACP QPRDTE INSTAL <optional> NULL LPT device driver Card-reader device driver Files-II Ancillary Control Processor Queued Protocol Installs task into GEN partition Task chosen to run in GEN partition Null task Notice that it is a task (INSTAL) that installs the task in the partition. The Executive has a system partition for its own use. GEN FIIACP stands for Files-II Ancillary Control Processor. An Ancillary Control Processor (ACP) is a privileged task that extends the function of the Executive. FIIACP receives and processes file-related I/O requests on behalf of the Executive. RSX-20F keeps several lists about tasks so that it knows what the tasks are doing. The System Task Directory (STD) is a list of all tasks installed into the system. Each task on the list has a IS-word block (referred to as an STD node) that contains the information shown in Figure 7-3. +--------------------------------------------------------+ Task Name 0 S.TN (6 char in RADIX-50) 1-------------------------------------------------------Default Task Partition Address 1-------------------------------------------------------I Flags Word Default Priority System Disk Indicator 4 S.TD 6 S.FW 10 S.DI/S.DP 1/64th of Base Address of Load Image 12 S.BA Size of Load Image 14 S.LZ Maximum Task Size 16 S.TZ Initial PC of Task 20 S.PC Initial Stack Pointer of Task 22 S.SP Send and Request Queue Forward Pointer 24 S.RF Send and Request Queue Backward Pointer 26 S.RB SST Vector Table Address 30 S.SS Load Image First Block Number (32 bits) 32 S.DL +--------------------------------------------------------+ Task Flags (Bytes 6 and 7) SF.TA==OOOOOI SF.FX==000002 SF.EX==000004 SF.IR==040000 SF.ST==lOOOOO Bit 0 Bit 1 Bit 2 Bit 14 Bit 15 Figure 7-3 Set when Set when Set when Set when Set when task is task is task to install task is active fixed in memory be removed on exit is requested system task System Task Directory (STD) Node 7-6 RSX-20F MONITOR The IS-word blocks in the STD are pointed to by entries in the table at location .STDTB. This table has an entry for every installed task in the system. RSX-20F keeps another list of those tasks wanting to run. This list is called the Active Task List (ATL). The ATL is a doubly linked list of nodes (entries) for active tasks that have memory allocated for their execution. The list is in priority order. Tasks with an entry in the ATL are either in memory or are being loaded into memory. A node in RSX-20F is a block of data that concerns a task. "Doubly linked" means that each node is linked to both the previous node and the following node. The ATL nodes have the format shown in Figure 7-4. +-------------------------------------------------------+ Forward Pointer 0 Backward Pointer 2 SP of running task when this task is not current task 4 A.SP The task's run partition (TPD address) 6 A.PD (null) Task's Run Priority 1/64th of real address of load image !------------------------------------------------------, Task Flags byte Task Status 10 12 A.HA 14 A.FB/A.TS System Task Directory (STD) entry address 16 A.TD Task's Significant Event Flags (32 bits) 20 A.EF Task's Event Flags Masks (64 bits) 24 A.FM Power Fail AST Trap Address 34 A.PF +-------------------------------------------------------+ Status Bits (Byte 14) TS.LRQ==02 TS.TKN==04 TS.LRF==06 TS.RUN==lO TS.SUS==12 TS.WFO==14 TS.WFl==16 TS.WF2==20 TS.WF3==22 TS.WF4==24 TS.EXT==26 Bit 1 - Task load request queued Bit 2 - Task waiting for termination notice Task load request failed Task is running Task is suspended Task is waiting for an event 1-14 Task is waiting for an event 17-32 Task is waiting for an event 33-48 Task is waiting for an event 49-64 Task is waiting for an event flag 1-64 Task exited Flag Bits (Byte 15) AF.PP==200 Bit 7 set when task is primary protocol task Figure 7-4 Active Task List (ATL) Node 7-7 /A.RP RSX-20F MONITOR When you look at dumps of RSX-20F, you can find the location of ATL node of the current task by examining the location .CRTSK. the Installing a task into the GEN partition consists of reading it into memory from the gystem file area, putting the task into the STD and ATL, and setting the appropriate flags. The STD and ATL entries are located in the Executive Data Base. One of the tasks in the Active Task List is the Null Task. The Null Task is the task. that runs when no other task wants to run (a very quiet system) or no other task can run (tasks are blocked waiting for pending I/O). Scheduling for all tasks is by a priority system. When a task is installed it has a priority that is reflected in its position in the ATL. The task with the highest priority goes first in the list, the next highest goes second, and so on. Scheduling occurs when a task has declared itself waiting for some significant event to occur, or when a directive service routine exits. Two separate entry points to the ATL scan routine provide for these two situations. Control is passed to the first, ASXEl, when a significant event is declared. The ATL is scanned from the beginning to the end to find the first runnable job. Control is passed to the second entry point, ASXE2, when a directive service routine exits. In this case, one of three things can happen: 7.3 • Control can directive. be returned to the task that issued the • The ATL can be scanned for the next runnable task beginning with the task that issued the directive down the ATL through the lower priority tasks. • The ATL can be scanned from the beginning. SYSTEM TRAPS A trap is a CPU-initiated interrupt that is automatically generated when a predetermined condition is detected. Two vector locations in low memory are dedicated for each trap type. The vector locations contain the PC and PS for the trap service routine. When the trap occurs, the current PC and PS are put on the stack and the contents of two vector locations are loadE~d as the new PC and PS. Traps can occur as the result of the following conditions: Location 004 010 014 020 024 030 034 114 Trap CPU errors Illegal and reserved instructions BPT lOT Power Fail EMT TRAP MPE Traps can be either asynchronous or synchronous. An asynchronous trap occurs as the result of an external event such as the completion of an I/O request. In this case, the task is doing other work or waiting for the I/O to be done. A synchronous trap occurs immediately upon the issue of the instruction that causes the trap. 7-8 RSX-20F MONITOR The PDP-II instruction set contains several instructions that cause traps. The EMT instruction, generally reserved for system software, causes a trap to an emulator routine. This instruction is used by RSX-20F to perform directives. Whenever a directive must be performed, the necessary information is loaded into the registers and an EMT is issued. The EMT instruction traps to a routine that decides which directive is to be performed. A TRAP instruction is like the EMT instruction, except that it is used by user tasks. The only difference between TRAP and EMT is a different vector location. lOT is used by RSX-20F for error reporting. When RSX-20F detects an error that is considered serious enough to crash the system, an lOT instruction is issued. Power fail conditions cause an automatic software operations mentioned above. trap There are two places in RSX-20F where traps following events cause a trap to location COMTRP: • lOT instruction • TRAP instruction • BPT (break point trap) • Trap to 10 (illegal instruction) • Trap to 4 (device or memory timeout) • Illegal Interrupts • Parity Error independent are of handled. the The COMTRP has to sort out the type of error it gets. If possible, only the offending task is terminated. If COMTRP concludes that this error is serious enough to crash the system, the COMTRP routine issues a This causes control to come right back to . CRASH macro itself. COMTRP. COMTRP sees that it was an lOT instruction that occurred and dispatches to IOTTRP. During this process, the COMTRP routine performs the following functions: 1. Tries to restore the user task that had the problem 2. Issues an lOT error instruction 3. Dispatches to the lOT handling routine When it is functions: called, the IOTTRP routine performs the 1. Sets up the emergency stack pointer 2. Sets up the emergency message pointer 3. SaveS the registers 4. Saves the crash code 5. Saves the parity-error data 6. Prints the II-Halt message on the CTY (and KLINIK) 7-9 following RSX-20F MONITOR 7. Requests the KL to reload the PDP-II via the DTE20 8. Rings the KL doorbell 9. Loops through the previous step until the PDP-II is reloaded The routine to handle EMT instructions is comparable in a way to JSYS's under TOPS-20. Since the PDP-II is a smaller system, it cannot have one instruction for every directive it wants to run. Therefore, that which is handled by hardware on the KL is handled by a combination of hardware and software on the PDP-II. The KL handles the instruction by dispatching to the right routine. The PDP-II issues the trap and then the software checks the stored argument to decide which routine is to be called. 7.4 TERMINAL SERVICE ROUTINES RSX-20F handles terminals that: access the system over dial-up lines in a different manner from local lines. The signals and algorithms used in determining line speeds and maintaining a stable link are described in Section 7.4.1. When RSX-20F receives a character from a terminal, it must determine a number of things about the character before deciding what to do with the character. For example, the character would probably have a special meaning if it came from the CTY. It could also be a special character used in the buffering of data by both the terminal and the computer system. The algorithm that RSX-20F uses to decide what to do with an input character is described in Section 7.4.2. 7.4.1 Modem Handling This section describes the RSX-20F algorithms for dealing with terminals that are accessing the system by way of dial-up lines and modems. A few concepts are made clear before the actual description is offered. The second part describes the line service that is provided when an event on a dial-up line requires some action by RSX-20F. Th€ third part, closely related to the second, describes the modem timeout routine, which keeps track of how long a given line has been in a certain state. 7.4.1.1 Modem Handling Concepts - In order for computer manufacturers and modem manufacturers to manufacture components that work with each other, the industry must have a set of standards. The conventions used for modem handling allow modems of various makes to be connected to computers of various makes. Note, however, that the conventions do not make it possible to connect every modem to every computer. Each computer system has its own ml~thod of handling modems. The modem's "strapping options" must be set up to deal with the computer system's modem~handling techniques to establish a clean link. Attempts to hook up a nonstandard modem without taking into account the system's modem-hand~ing techniques can cause significant problems for the computer system. 7-10 RSX-20F MONITOR Data Lines Phone Line Remote Terminal Local Modem Remote Modem Front End Modem Control Lines MR-S-165-79 Figure 7-5 Modem-Handling Hardware The DTR (Data Terminal Ready) signal is used by the host computer system to answer the phone ring. (Figure 7-5 shows the interactions caused by the use of the various signals.) DTR allows the modem to answer the phone. At this point, if all is going well, the remote modem returns a carrier pulse. The local modem receives this pulse, and the modem control asserts to the computer system that carrier is on. Finally, the computer system raises RTS (Request to Send), which allows the local modem to give data to the system. A "carrier transition" is a change in the state of the carrier signal. This change in state may be in either direction, from on to off or from off to on. The term "transition on" refers to the change from carrier off to carrier on, and the term "transition off" signifies the change in the other direction. 7.4.1.2 Terminal Driver Routine - This section describes the sequence of events when RSX-20F receives an interrupt requesting some type of modem handling on a certain line. Figure 7-6 depicts the logic flow of the algorithm used by RSX-20F to deal with dial-up lines. The code that provides this service is the terminal driver routine, called $DMINT. This routine is called every second to perform regular terminal-handling functions. 7-11 RSX-·20F MONITOR $DMINT RSX·20F RECEIVES INTERRUPT OFF NO (CARRIER TRANSITION) SET CARRIER WAIT SET RIP TURN OFF CARRIER WAIT DISMISS INTERRUPT RAISE DTR CLEAR RIP SET CARRIER WAIT RAISE RTS SET RIP YES DISMISS INTERRUPT YES SElf" AUTO·BAUD WAIT CLEAR UNE DISMISS INTERRUPT SEND CONNECT MESSAGE TO KL DISMI~ INTERR:J DISMISS INTERRUPT MR-S-424-79 Figure 7-6 Modem Control Algorithm 7-12 RSX-20F MONITOR When a remote user dials up the local computer system, the modem raises the Ring Indicate signal (RI) which causes the DM-llBB to generate an interrupt requesting line service. When $DMINT, the terminal service routine, receives the interrupt, it must find out what type of service is being requested, because the interrupt is not specific about this. Therefore, when the interrupt is received, $DMINT checks to see if the interrupt is a ring or a carrier transition. If the interrupt is a ring, $DMINT raises the DTR signal, telling the local modem to answer the phone. Then the Carrier Wait flag is set, showing that this line is in the process of establishing a clean link. $DMINT next raises the RTS signal, conditioning the local modem for transmission. $DMINT finally tells the KL to detach any process currently associated with this line. This prevents dialing into another user's job. Having set the relevant flags and raised the correct signals, the terminal service routine dismisses the interrupt. If the interrupt is a carrier transition, the terminal service routine first determines whether the transition was to the ON state or the OFF state. A transition to the OFF state means that carrier has been lost, at least for a moment. The loss of carrier may mean that the user has hung up the phone, or it may mean that atmospheric or other environmental conditions have caused a temporary signal loss. To determine if the user has hung up, $DMINT sets the Carrier Wait flag, which indicates that the line is waiting for a clean carrier signal to be re-established. Then the routine dismisses the interrupt. The modem timeout code, upon seeing the Carrier Wait flag, tests the state of carrier, and if the signal has returned, the timeout code returns the line to normal operation. (Refer to Section 7.4.1.3 for further information on the modem timeout code.) If, on the other hand, the interrupt is caused by a carrier transition to the ON state, $DMINT first clears the Carrier Wait flag. Then the routine checks to see if the line in question was previously connected to the computer system. If so, the interrupt is dismissed. These actions prevent a noisy carrier signal (one that comes and goes frequently) from detaching the user's job. If $DMINT finds that the line for which it received an interrupt was n6t previously connected to the system, it determines if the line needs to be checked for the correct baud rate (a software flag is set if the line is waiting to be checked). If the line needs to be auto-bauded, $DMINT sets the Auto-baud Wait flag (which is noticed by $DHINP, the character input routine - refer to Section 7.4.2 for an explanation of $DHINP). The routine then dismisses the interrupt. If the line does not need to be auto-bauded, $DMINT assumes that the carrier transition to the ON state is the result of the local modem receiving the carrier signal for the first time. This assumption is warranted because the line has already been checked to see if it is connected to the system before this point in the algorithm is reached. At this point, $DMINT notifies the KL that a new line has been connected to the system. The KL then sends the system banner to that line, and the connection is complete. The modem control routine therefore dismisses the interrupt.· 7.4.1.3 Modem Timeout Routine - This timeout routine, which is labeled flowchart of the algorithm. 7-13 section .DMTMO. describes the modem See Figure 7-7 for a RSX-20F MONITOR CALL FROM TTYDRR YES NO THIS LINE ISOK; PROCEED TO NEXT LINE HANG UP PHONE NO CLEAR RIP FLAG PROCEED TO NEXT LINE M R-S-425- 79 Figure 7-7 Modern Timeout Algorithm Every 22 seconds, the terminal task routine calls the OM-IIBB modern timeout routine, .OMTMO. .OMTMO is also called at startup time and after a power-fail. At startup time .OMTMO alters the nonexistent-device trap to handle a missing OM-IIBB. Since for each OM-IIBB device on the system there should be a corresponding DH-ll, .OMTMO first checks the OH-ll associated with a given OM-IIBB to see if it exists. If the OH-ll does not exist .OMTMO marks the OMII-BB as nonexistent and proceeds to the next OH-ll/ OM-IIBB pair. If the OH-ll does exist .OMTMO tries to initialize the associated DM-llBB. If the DM-IIBB does not exist it causes a nonexistent-device trap, and .DMTMO marks the OM-lIB as nonexistent and then proceeds to the next pair. If both the DH-il and the DM-IIBB exist, .DMTMO initializes the device. This process is repeated until all 16 possible pairs have been checked and initialized, or marked as nonexistent. When .OMTMO is called during normal operation it already knows which OHll's exist and which DM-IIBB's exist. It checks the first DH-ll and if it is nonexistent it checks the next OH-ll. When the routine finds a DH-ll that exists, it checks the associated DM-IIBB. If the OH-ll does not exist the routine proceeds to the next pair. If both the OH-ll and the OM-IBB exist, .DMTMO checks to see if any lines are in Carrier Wait. A line may be in the Carrier wait state as the result of either a ring or a carrier loss. There are two bits associated with Carrier Wait, TT.CRW (Carrier Wait) and TT.RIP (Remote in Progress). Both these bits are set when a line enters Carrier Wait. 7-14 RSX-20F MONITOR If these bits are set,as the result of a ring, they are both cleared when a carrier sign~l is asserted by the calling modem. If they are the result of a lost ¢arrier signal, then .DMTMO determines if the carrier wait is the result of a noisy carrier signal or if the line has been hung up. The first time that .DMTMO finds a line in carrier wait, that is with both the TT.CRW and TT.RIP bits set, it clears the TT.RIP bit and continues examining the other lines. The next time .DMTMO is called, it looks at the bits. If the TT.CRW is set and the TT.RIP bit is cleared, then the line has not reasserted carrier for at least twenty-two seconds. The connection is assumed to be lost and .DMTMO hangs up the line and clears the TT.CRW bit . . DMTMO then examines Interrupt Enable bit for each DM-IIBB. If .DMTMO does not find Interrupt Enable bit set for a given DM-IIBB, it logs this as an error to SYSERR and sets the Enable Interrupt bit. Then, on a line-by-line basis, it looks at the Line Enable Interrupt bit. If this bit is not set, an error is logged to SYSERR, the line is reset, and the Interrupt Enable bit is set to maintain the existing connection • . DMTMO examines the Request To Send bit for each line. set, .DMTMO sets the Set Data Terminal Ready bit. If the bit is 7.4.1.4 The CTY and DL-IIE Timeout Routine - The CTY and DL-IIE timeout routine, .DLTMO, is called every 22 seconds. It is also called at startup and after a power-fail. If .DLTMO is called at startup, it always assumes that the CTY exists. If the CTY does not exist the system crashes. Also, at startup .DLMTO alters the nonexistent-device trap to handle missing DL-IIE's. .DLTMO checks each possible DL-IIE to see if it exists. If it encounters a nonexistent DL-IIE, it marks it as nonexistent and checks the next DL-IIE. If the DL-IIE exists, .DMTMO enables the line and initializes the software state of the line. This is done for all four possible DL-IIE interfaces. When .DLTMO is called during normal operation, it already knows which lines exist. It checks existing DL-IIE's to see if the Hardware Carrier and Data Terminal Ready bits are set, and if the Interrupt Enable bits are set. If anyone of the Interrupt Enable bits is not set, this fact is logged to SYSERR and the bit is set. If both the Hardware Carrier and Data Terminal Ready bits are set, the line is actively connected. .DLTMO then asserts Data Terminal Ready and proceeds to the next DL-IIE interface. If neither of these bits are set the line is disconnected . . DLTMO checks the Carrier Wait bit (TT.CRW) and the Remote In Progress bit (TT.RIP). If the line has lost the carrier signal as a result of either a noisy line or the line being hung up, then both these bits are set. To determine which condition caused the loss of the carrier signal .DLTMO first clears the TT.RIP bit and then proceeds to the next line. The next time .DLTMO is called, if it still finds the TT.CRW bit set it hangs up the line. 7-15 R8X-20F MONITOR 794.2 Terminal Handling This section describes the $DHINP routine and the $DHOUT routine, which deal with input from and output to terminals, respectively (whether the terminals are remote or local). $DHINP is comprised of two routines: the character input routine and the terminal timeout routine. These are presented separately, while $DHOUT is described as a unit. 7.4.2.1 Character Input Routine - Figure 7-8 is a flowchart that depicts the algorithm used by R8X-20F to determine what to do with input characters. 7-16 RSX-20F MONITOR MODULE $DHINP DH11 SUPPLIES CHARACTER NO NO DISMISS CHARACTER YES SEND CONNECT MESSAGE TO KL TURN OFF AUTO-BAUD WAIT FLAG DISMISS CHARACTER NO INCREMENT ERROR COUNT -11 PERFORM RELEVANT OPERATION MR-S-1695-81 Figure 7-8 Character Input Algorithm 7-17 RSX-20F MONITOR YES SEND CHARACTER TO KL NO YES YES YES DISCARD CHARACTER HOLD CHARACTER IF BUFFER NOT FULL PROCESS XOFF NO SEND CHARACTER TO KL MR-S-472-79 Figure 7-8 Character Input Algorithm (Cont.) 7-18 RSX-20F MONITOR c CHECK FREE POOL LIMITS NO STOP THE LINE YES EXIT MR-S-472A-79 Figure 7-8 Character Input Algorithm (Cont.) When a DE-II communications interface causes an interrupt, the first action the $DHINP routine performs is to check the line in question to see if it is in the Auto-baud Wait state. If the Auto-baud Wait flag (TT.ABW) is on, $DHINP attempts to set the line speed. It does this by checking the character it has received against bit patterns for both CTRL/C and carriage return at all applicable baud rates (110, 150, 300, 1200). If a match is ~ound, $DHINP checks the current speed set for that line. If both speeds are the same then that speed is assumed to be the line speed. If the speed indicated by the bit pattern is not the same as the speed currently set for that line, $DHINP set the speed to the speed to that indicated by the bit pattern and waits for another character. There must be two consecutive characters that can be recognized at the same speed before $DHINP sets the line to that speed. $DHINP then sends a message to the KL informing it of the connection, and turns off the Auto-baud Wait flag. Then $DHINP dismisses the character. If there is no match, $DHINP simply dismisses the character without affecting the Auto-baud Wait flag. If the line in question is not in Auto-baud Wait, $DHINP checks the character to see if there is a framing error. Since each input character is "framed" by a mark before and two marks after the character, any character that is missing one or more framing marks can immediately be identified as garbage. Such garbage may simply be noise on the line, or it may be a character that was not sent at the proper speed. In any case, the front end cannot be expected to understand its meaning, because the front end cannot determine what character it is. However, to avoid completely shutting down a line that has a little noise on it, $DHINP does not act on framing errors until it gets four errors in a row. $DHINP keeps track of how many errors it has received, and upon getting the fourth error in a row it sets the line speed to zero, effectively shutting off input from that 7-19 RSX-20F MONITOR line. $DHINP also creates a SYSERR entry that notes the and the problem on that line. line number If $DHINP gets a character cleanly (without a framing error) it first clears the count of framing errors. $DHINP next looks to see if the character came from the CTY. If the character was typed on the CTY, $DHINP checks for a CTRL/\, the PARSER-calling character. Since the PARSER is completely under the control of RSX-20F, there is no need to pass the CTRL/\ to the KL. $DHINP therefore' issues a c~ll to the RSX-20F user interface. If the character is not meant for the PDP-II, the KL must be th~ intended recipient. In this case, $DHINP checks the state of protocol between the processors to determine the next action to be taken. If secondary protocol is running, the character is sent on to the KL, which should know how to handle characters at that time. If secondary protocol is not in force, $DHINP checks the line to see if it is in Carrier Wait. If the line is in Carrier Wait, $DHINP assumes that the character is noise on the line and discards it. Otherwise, $DHINP checks for protocol pause, the state between secondary and primary protocol. If this is the current state of protocol, $DHINP attempts to store the input character in its own buffer until primary protocol is initiated. Too many of these characters can, however, overflow the buffer, causing RSX-20F to crash (BOl). Finally, if primary protocol is currently in force, $DHINP checks the character to see if it is an XOFF character. XOFF is the only input character to which RSX-20F rE~acts. The XOFF character requests the front end to stop sending data temporarily because the requesting device's buffer is full. ThE~ timing of XOFF processing is therefore critical, because any data SE~nt by the front end after an XOFF will be lost. Thus, $DHINP checks for an XOFF before dispatching the character to the KL. If the character is indeed an XOFF, $DHINP calls the output XOFF processing code, thereby ending $DHINP's responsibility for the character. If the character is not an XOFF, $DHINP simply passes the character, whatever it is, to the KL. Finally $DHINP checks the number of bytes available in the free pool. If the number of bytes left is less than the INPUT-THRESHOLD-LOW value stored in .IBFLO and currently set at 1600 bytes, the line is sent an XOFF. If the line sends another character or on the next clock tick $DHINP sets the line speed to zero and echoes a bell to the line. A table of lines that have been shut down is stored in STSW2. If the line was shut down by RSX-20F bit 11 of this word is set. Each clock tick RSX-20F checks to see if the number of bytes in the free pool is greater than or equal to the value of .IBFOK, currently set at 2000. If the number of bytes in the free pool is greater than or equal to this threshold, RSX-20F scans the table to see if there are any lines that it has shut down. If it finds any such lines it resets the line speeds of these lines, one line per ,clock tick. 7.4.2.2 Terminal Timeout Routine - This section describes the terminal timeout routine, which is labeled .DHTMO. Figure 7-9 is a flowchart of the algorithm used by .DHTMO. NOTE The .DHTMO routine deals only with user terminals. Therefore, this section does not describe how the CTY is handled. 7-20 RSX-20F MONITOR .DHTMO YES SET TRAP VECTOR NO CLEAR RESET FLAG GETDH ADDRESS DONE SET LINE # YES COUNT LINES, SET UP DH TABLE FOR ACTUAL DH'S RETURN LOG ERROR, RESET DH, SET RESET FLAG YES SET UP SOFTWARE STATE OF LINE NO YES YES SET LINE SPEED GETDM ADDRESS SET LlNE# ENABLE DATA·SET INTERRUPT MR-S-428·79 Figure 7-9 Terminal Timeout Algorithm 7-21 RSX-20F MONITOR YES NO ENABLE LI N E ------- >----tl.... ] ENABLE HARDWARE INTERRUPTS YES NO NEXT LINE HARDWARE ENABLE DH NO NEXT [ ~ --.--DH MR-S-429-7!1 Figure 7-9 Terminal Timeout Algorithm (Cont.) Every 22 seconds, the terminal task routine calls the DB-II timeout routine, .DHTMO. .DHTMO is also called at startup, and on a power-fail restart. When .DHTMO is called at startup, it does not know how many communications interfaces exist on the system, therefore .DHTMO assumes that all sixteen possible interfaces exist. At startup it also alters the nonexistent-device trap vector,for initialization only. When .DHTMO finds an interface that does not exist, it marks the device as nonexistent and sets the external page pointer for that interface to O. It then proceeds to the next interface. This is repeated for all sixteen possible interfaces. If, on the other hand, .DHTMO is called at some time other than startup, its internal table will have recorded the actual interfaces in use by the system. .DHTMO therefore does not attempt to do anything with a nonexistent interface. Once .DHTMO knows whether it is startup, and has taken the appropriate action, the routine clears the reset flag. This flag allows .DHTMO to 7-22 RSX-20F MONITOR keep track of the hardware state of the communications interface . . DHTMO then gets the UNIBUS address of the DH-ll communications interface and checks all the possible lines from bottom to top (0-17). At this point in the startup execution of .DHTMO, it may attempt to reference a nonexistent DH-ll. If this happens 'it marks all sixteen lines in that controller as nonexistent and proceeds to the next Dil-ll. If it is not startup, the number of DH-lls connected to the system is already known. When the routine has scanned all possible Dil-ll's, it proceeds to the exit code. Control is then returned to the calling routine. Assuming that .DHTMO has not finished processing all the system's lines, it proceeds next to check for nonexistent memory locations and lost interrupt enabled conditions. If either of these hardware errors has occurred, .DHTMO logs the error in the SYSERR file and performs a master clear on the DH-ll. .DHTMO then sets the reset flag to show that this DH-ll has been cleared. If the call to .DHTMO comes at startup, .DHTMO next sets up the software state of the line. If it is not startup time, the software state of the line has already been set and does not require further attention. If it is startup, or if the DH-ll has been reset, .DHTMO's next action is to set the line speed for all sixteen lines. .DHTMO may also find that it needs to restart a single line. This occurs when a line has had four consecutive framing errors (Refer to Section 7.4.2.1 for a dE!scription of framing error processing). After four consecutive framing errors occur, the $DHINP routine sets the line speed to zero . . DHTMO finds this line, sees that the line is marked to be reenabled, and resets it to the correct speed. This series of checks is run on each line. When .DHTMO completes the checks for one line, it checks to see if it is finished with the DH-ll to which the line is connected. If not, .DHTMO increments its line-number counter and proceeds to check the next line on the DH-ll. If .DHTMO is finished with the DH-ll, it checks to see if the DH-ll was reset (by checking the reset flag). If the DH-ll was reset, .DHTMO hardware enables the DH-ll and increments the DH-ll counter. If it was not reset, .DHTMO simply steps to the next controller. In either case, .DHTMO returns to clear the reset flag, and proceeds to the next controller until all possible DH--ll's have been checked. 7.4.2.3 Character Output Routine - Figure 7-10 RSX-20F uses to process output to terminals. 7-23 shows the algorithm RSX-20F MONITOR MODULE $DHOUT INTERRUPT IS GENERATED SET UP FOR THIS DH CHOOSE NEW LINE NO NO A YES DISMISS INTERRUPT YES CALL-11 1/0 ROUTINES DO INPUT CONTROL CHECKS NO B MR-S-430-ao Figure 7-10 Character Output Algorithm 7-24 RSX-20F MONITOR YES NO COUNT S/A DONE FOR THIS LINE COMPUTE BYTES PENDING IN PACKET NO YES YES YES DEALLOC PACKET'S NODE NO START NO STNXT YES S/A YES NO .DHSTO NO START NEXT PACKET c MR-S-1668-81 Figure 7-10 Character Output Algorithm (Cont.) 7-25 RSX-20F MONITOR MARK LINE TO EXPECT OUTPUT INTERRUPT ACK LINE DISMISS INTERRUPT M R-S-432- 79 Figure 7-10 Character Output Algorithm {Cont.} RSX-20F allows output to thE~ terminals to take place independent of any intervention by the front end. The DH-ll's are capable of taking the address of the data to be sent and a line number to which to send it, and putting the data out to that line, without any prodding by RSX-20F. When output to a line is finished, an interrupt is generated. Since the interrupt may be generated by a variety of conditions~other than a DH-ll finishing output, RSX-20F must decide which type of interrupt occurred and determine what to do about it. To determine the condition that generated the interrupt, RSX-20F examines each line connected to the DH-ll, starting with line o. Having chosen the line to be examined, the $DHOUT routine checks to see if an output interrupt was expected from this line. If no interrupt was expected, the line was not considered to be active whE~n the interrupt was generated. Receiving an interrupt on an inactive line is not necessarily an error condition, but $DHOUT does not attempt to deal with the interrupt. If all lines on the DH-ll have been checked, the interrupt is dismissed. If there are still lines to be checked on this DH-ll, $DHOUT returns to check them. If an output interrupt was expected from the line being examined, $DHOUT checks to see if the current line generated the interrupt. If it did, the line has just completed its output. If not, $DHOUT returns to check for other lines in this DH-ll, with the same results as in the preceding paragraph. If the current line has completed output, $DHOUT first sees if the terminal concerned is the CTY. If it is, $DHOUT must decide whether the output was PDP-II I/O or KL I/O. PDP-II I/O is handled by RSX-20F's I/O routines, which $DHOUT calls. KL I/O, on the other hand, must be handled by $DHOUT. Assuming that the output is from the KL, the STTYDN routine checks to see if there is a Send-All in progress. {The term Send-All refers to data that is sent to all active lines that have not refused it.} If a Send-All is in progress, the interrupt was sent to notify $DHOUT that this line finished the Send-All transmission. In this case, $DHOUT 7-26 RSX-20F MONITOR counts the Send-All done for this line by decrementing the Send-All line counter. The Send-All is done for the ~ntiresystem, as far as the software is concerned, when the count goes to zero. If this counter ever goes negative, RSX-20F crashes, because it has received an interrupt when it has no reason to expect one. This can be due to either a hardware or a software error. If no Send-All is in progress, the interrupt was sent to notify $DHOUT that the line in question has completed the transmission of a normal output packet. Therefore, $DHOUT checks to see if the output queue for the line is empty. If so, all the data for the line has been sent. If not, $DHOUT computes the remaining bytes in the current packet. Should it find that the packet has been transmitted completely, $DHOUT deal locates the packet's node (so as to keep as much free space available as possible). $DHOUT next checks to see if there is a Send-All pending for this line. The routine that does this check is called STNXT. (Note that it is possible for a Send-All to have just finished and produced an interrupt, and to have another Send-All waiting to be transmitted.) If a Send-All is waiting, STNXT asks if the line is suppressing Send-AIls. If not, STNXT starts the Send-All transmission, and calls .DHSTO (for an description of .DHSTO see below). If the line is suppressing Send-AIls, the next check STNXT performs is to see if the output queue for this line is empty. If the queue is empty, STNXT calls the routine .TTACK to determine if an acknowledge signal (ACK) can be sent (refer to section 7.4.2.4). $DHOUT then dismisses the interrupt and returns to choose a new line to check. If the queue is not empty, $DHOUT checks if the line is XOFF'd. The terminal sends an XOFF signal if its input buffer is full and it has no more space to store characters. If the line is XOFF'd, $DHOUT proceeds to choose another line to check. If it is not XOFF'd, control is passed to .DHSTO . . DHSTO is a simple routine that starts the transmission of the next packet of data, and flags the line as one that will be generating an output interrupt sometime in the future. This is the flag that is checked immediately after choosing a new line. Thus, when this packet has: finished transmitting, the interrupt generated can be recognized because this line expects an interrupt. At this point, .DHSTO relinquishes control to $DHOUT so that $DHOUT can choose another line to be checked. 7-27 CHAPTER 8 DTE-20 OPERATION The DTE-20 (DTE stands for Data Ten-to-Eleven) is the hardware interface between the KL and the PDP-II processors. The DTE-20 is used for many different things in the operation of the computer system, since it is the only (nondiagnostic) method of communication between the KL and the front end. All the uses of the DTE-20 are extensions of its four basic hardware operations: B.l • Deposit/Examine • TO-II Transfer/TO-IO Transfer • Doorbell Function • Diagnostic Operations DTE-20 COMMUNICATIONS REGION The Communications Region is an area in KL memory that is readable by all processors. It is composed of sequential areas, one for each processor connected to the network. Both KL's and PDP-II's are represented, and each processor owns one area. This owned area is the only part of the Communications Region into which the processor can write. There is an exception to this rule, however, to cover the situation of Communications Region initialization. In this case, the KL processor that initializes the Communications Region is allowed access to the entire region. When the region has been initialized, the rules for access to areas hold until the region is initialized again. There is a negative extension to the Communications Region called the header. This header allows each PDP-II processor represented in the Communications Region to determine its protocol processor number, because each PDP-II has a space which it can examine in the header. By examining the first word of its relocated examine space, the PDP-II can determine its protocol processor number and thereby locate its area in the Communications Region. The PDP-II also knows that the first word of the Communications Region itself is at location N+l, where N is the PDP-II's protocol processor number. Thus, when the PDP-II wishes to communicate with anotner processor, the PDP-II can scan the areas in the Communications Region and find the areas owned by any other processors. Each processor has its own area in the Communications Region that is made up of a number of sections. A processor has one section in its area for itself, and one for each processor to which it will communicate. Thus, each pair of processors that communicate with each other uses four sections of the Communications Region, two in each of two different areas. 8-1 DTE-20 OPERATION Figure 8-1 illustrates the Communications Region. +------------------------------+ I Headers for Other Processors I Header Word for Processor 2 I Header Word for Processor 1 I Header Word for Processor 0 I PIDENT o CMLNK 1 2 3 4 CMKAC 5 6 CMPIWD 7 CMPGWD 10 CMPDWD 11 CMAPRW 12 CMDAPR 13 14 15 16 17 TOPID 20 CMPPT 21 STA'l'US 22 CMQCT 23 CMRLF 24 CMKAK 25 Other Sections for "To" Processors Other Communications Areas +------------------------------+ Figure 8-1 KL Communications Region 8-2 DTE-20 OPERATION The information contained in each word of the Communications Region is described below. Processor Header Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \ I \ I I \ _ _ _ __ Must be zero I I Processor number blank +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +---------------------------------_._------------------+ ---------------------------------------------------------1 Relative address of this processor's area This word is part of the negative extension to the Communications Region. It specifies the location of the PDP-II's owned area by means of an offset from word 0 of the Communications Region. PIDENT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ I I I \ CMVER I \ I \ blank I \ -----=C=P=V=E=R----- I \ __ ---=C=M=N=P=R---- CMTEN +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------~-----------------+ I \ ~C=M=S=I=Z I CMNAM The PIDENT word provides information about the owning processor its area. The separate fields in PIDENT are described below. and otherwise, it CMTEN This bit is one if this area belongs to a KL; is zero. CMVER This area contains the communications area version number. CPVER This area contains the protocol version number. CMNPR This area yontains the number of processors this area, including the owning processor. CMSIZ This area contains the size of the entire area in eight-word blocks. 8-3 represented owning in processor's DTE-20 OPERATION CMNAM This area contains the that owns this area. na~e (serial number) of the processor CMLNK Word: +---------------------------------------------------_.-+ I 01 11 21 31 41 51 61 71 81 911011111211311411511611.71 +-----------------------------------------------------+ \--------~~~-POlnter to next +---------------------------------------------------_.-+ 11811912012112212312412512612712812913013113213313413:5I +----------------------------------------------------.-+ Communications area / The CMLNK word contains a pointer to the next communications area, relative to word 0 of the entire Communications Region. All the CMLNK words in the entire Communications Region form a circular list. CMKAC Word: +~----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \-------=---r----. Owning processor's +---------------------_.-------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ / Keep-alive count The CMKAC word contains the owning processor's Keep-Alive count. This word is incremented periodically, and is also checked periodically to make sure that it has changed. The Keep-Alive count should be incremented at least once a second by the owning processor, and thE! monitoring processor should allow the count to remain unchanged for at least six seconds before declaring the owning processor to be dead. CMPIWD Word: +---------------------_._------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +---------------------_._------------------------------+ \_---------------------~--------------------------CONI PI, Word +---------------------_._------------------------------+ 118119120121122123124125126127128129130131132133134135I +---------------------_.-------------------------------+ CONI PI, Word (Cont.) 8-4 / DTE-20 OPERATION The CMPIWD word is the storage area provided for reading the Priority Interrupt system conditions. The CONI PI, instruction will place the PI status information here. (For more information on the Priority Interrupt system refer to the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) CMPGWD Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \--------~~~~~~~---------------------------CONI PAG, Word +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+j CONI PAG, Word (Cont.) The CMPGWD word is the storage area provided for reading the system status of the Pager. The CONI PAG, instruction puts the status information here. (For more information on the Pager refer to the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) CMPDWD Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \------------~~~~~~~~------------------------DATAl PAG Word +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ------------~~~~~-=--~~~~----------------j DATAl PAG Word (Cont.) The CMPDWD word is the storage area provided for reading the process status of the Pager. The DATAl PAG, instruction puts the status information here. (For more information on the Pager refer to the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) CMAPRW Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \------------~~~~~=-~-----------------------CONI APR, Word +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ --------------~~~~-=--~-----------------------j CONI APR, Word 8-5 DTE-20 OPERATION The CMAPRW word is the storage area provided for reading the Arithmetic Processor flags. The CONI APR, instruction puts the status of the error and sweep flags here. (For more information on the Arithmetic Processor, refer to the DECsystem-l0/DECSYSTEM-20 Processor Reference Manual.) CMDAPR Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \ DATAl APH, Word +---------------------------------------------------_.-+ 118119120121122123124125126127128129130131132133134135I +----------------------_._-----------------------------+ ------------~~~~=~~~~~--~~-------------/ DATAl APR, Word (Cont.) The CMDAPR word is the storage area provided for reading the current break conditions from the Arithmetic Processor. The DATAI APR, instruction puts the information here. (For more information on break conditions and the Arithmetic Processor, refer to the DECsystem-l0/DECSYSTEM-20 Processor Reference Manual.) TOPID Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ 11\ /\ /\ /\ CMPROI CMDTN I CMDTE blank CMVRR +-----------------------------------------------------+ 11811912012112212312412!;1261271281291301311321331341351 +------------------------------------------------------+ CMSZ / \ / CMPNM The TOPID word is the first location in each "To" processor area. This word contains information on the connections between the owning processor and the "To" processor. CMPRO This bit is one if this block is used to communicate with a KL. CMDTE This bit is one if a DTE-20 connection exists "To" processor and the owning processor. between this CMDTN If CMDTE is one, this area contains the number of that connects the two processors. the DTE-20 CMVRR This area designates the version of protocol the two processors. use between 8-6 in DTE-20 OPERATION CMSZ This area contains blocks. the size of this block in eight-word CMPNM This area contains the processor number of the "To" processor. CMPPT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ '\ ----------~P~o~i-n~t-e-r--t-o~"=T~o~'~·------------------------------- +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ------------------~----~-------------------------/ processor's owned area 'The CMPPT word contains a pointer to the area Region that is owned by the "To" -processor. in the Communications STATUS Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ I I I I \ / I \ / I CMPWFICMINII I I CML11 CMTST blank I I CMQP blank I I CMFWD +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +--------------------_._-------------------------------+ I I \ / \ / CMIP I CMOIC CMIIC I CMTOT The STATUS word is intended to be the only word a processor has to examine when it receives a doorbell interrupt. The STATUS word contains the following status bits and counters: CMPWF This bit is the power fail indicator. The PDP-II sets this bit to one (in its own area) to notify the KL that the PDP-II has lost power. CMLll This bit is one when the owning processor knows that it has crashed and wishes to be reloaded. The reload happens when the owning processor sets CMLll (in the "To" processor's section of the owned processor's area) and rings the "To" processor's doorbell. The "To" processor then examines the STATUS word, sees CMLll set, and performs a reload operation for the owning processor. CMINI This bit is the initializatiori bit for MCB protocol only. MCB protocol applies to front ends other than PDP-II's; it is therefore not discussed further in this manual. 8-7 DTE--20 OPERATION CMTST This bit provides the PDP-II with the ability to determine if the Deposit/Examine operation that just finished was a valid operation. This ability is useful when the examine protection word of the DTE-20 is zero, and PI 0 has been enabled, since in this situation any Examine done by the PDP-II appears to succeed and returns a value of zero. The CMTST bit provides a check on the operation because it is always guaranteed to be one. If the PDP-II finds this bit to be zero after an Examine or a Deposit, the PDP-II leaves primary protocol. CMQP This bit is one if queued protocol is in use. This bit is originally set in all areas by the KL that initializes the Communications Region. CMFWD This bit is a flag, set by the sending processor to that the transfer is to be done in full word mode. CMIP This bit is set if an indirect packet is being transferred. The bit is set in the sending processor's section of the receiving processor's area. If this bit is set by the sending processor, it should not increment the queue count. If the bit is set, the receiving processor reads it and realizes that the doorbell interrupt it received signals the beginning of the transfer of the indirect portion of an indirect message transfer. CMTOT This bit is set to one by the receiving processor in the sending processor's section of the receiving processor's area. The bit is set when the sending processor sets the CMIP bit or when the sender increments the queue count. The receiving processor clears this bit when it gets a To-receiver Done interrupt. The purpose of this procedure is to assure the sending processor that the receiver has not lost a Done interrupt. CMOIC This area contains a wrap-around counter that is incremented in the PDP-II's area each time a direct transfer request is initiated by the PDP-II. The KL keeps the last value of CMOIC in the TO-ll section of its own area. If the KL' s .saved value differs from the current copy in the PDP-II's area, the KL starts a TO-IO packet transfer. The difference between the KL's copy and the copy the PDP-II increments should be either zero or one. If the difference is greater than one, the PDP-II has tried to send a packet before the previous packet transfer was finished. This count is not incremented when the PDP-II sends a TO-IO indirect packet; the CMIP bit is used to indicate doorbells for indirect packets. This counter is also useful in the situation where a doorbell has been missed by the KL. The next doorbell causes the KL to check this counter, during which operation it discovers the missed doorbell because of the difference in the counter's value. CMIIC This counter has the same function for CMOIC area performs for the KL. 8-8 the PDP-II indicate that the DTE-20 OPERATION CMQCT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \----------------------~--~------------------------blank +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +---------------------------------------------~-------+ _ _ _I \ I Queue size 'rhis word contains the number of eight-bit bytes written into the current packet by the transmitting processor. The packet can contain more than one message; this word does not contain a count of the number of messages, only of the number of bytes. CMRLF Word: +-----------------------------------------------------+ I 01 11 2\ 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \--------------~~~~------~--~-------------------Reload parameter for +------------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +------------------------------------------~----------+ ------------------~~~--------------------------_I "To" processor This word contains a copy of the "To" processor's reload word. The copy is saved by the owning processor in case the "To" processor crashes. CMKAK Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \----------------~~~--~--~~--------------------Pointer to "To" +-----------------------------------------------------+ 1181191201211221231241251261271281291301311321331341351 +-----------------------------------------------------+ ------------------------~----~~----------------_I processor's owned area This word contains the owning processor's co~y of the "To" processor's Keep-Alive count for purposes of comparlson with the continuously updated copy kept by the "To" processor. 8-9 DTE-20 OPERATION 8~2 DTE REGISTERS The DTE-20 has sixteen registers, which are used in various types of Figure 8-2 shows the registers along with their transfer operations. addresses, and offers an explanation of the function of each register. DTEl, DTE2 and so on, use the The addresses shown are for DTEO; The precise location can be figured by adding succeeding locations. 40*N to the location of the register that you wish to access, where N stands for the DTE-20 number. +------------------------------+ 1 DLYCNT 1774400 DEXWD3 1774402 DEXWD2 1774404 DEXWDI 1774406 TENADI 1774410 TENAD2 1774412 TOIOBC 1774414* TOIIBC 1774416 TOIOAD 1774420 TOIIAD 1774422 TOIODT 1774424 TOIIDT 1774426 DIAGI 1774430 DIAG2 1774432 STATUS 1774434* DIAG3 1774436 +------------------------------+ Figure 8-2 DTE-20 Registers The registers which have asterisks beside their addresses, TOIOBC and STATUS, are the only two registers that are available to both processors. 8.2.1 DTE-20 Status Word The most important of these rE~gisters is STATUS, the Status Word. This register IS the only one read when the KL receives a doorbell interrupt, so it must store a good deal of information. The Status Word has two different states: one interpretation is valid if the PDP-II is writing into the Status Word, and another is valid if the PDP-II is reading the register. If you are examining the Status Word after a crash in an attempt to tell why the crash occurred, you should assume that the PDP-II was reading the Status Word. This is logical 8-10 DTE-20 OPERATION because the write state lasts only as long as the hardware takes to do the physical write, which of course is a very short time. Thus the chances are that the Status Word was in a read state. Figure 8-3 illustrates the form of the Status Word in the read state. +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ I I I I I I I I I I I I I I I I I Unusedl RAMISOI DXWRDII TOIODBI EBSEL I BPARERI DEXDONI INTSON I I I I I I I I TOlODN TOIOER TOllDB MPEll TOllDN NULSTP RM TOllER Figure 8-3 DTE-20 Status Word in Read State The bits in the read version of the Status names and functions: Word have the following Bit Symbol Function 15 TOlODN TO-IO NORMAL TERMINATION If this bit is set, the TO-IO byte count went to zero or the PDP-II program set the DONIOS bit in the write version of the status word. TOlODN is not set if an error termination occurred. See TOIOER if you believe an error has occurred. 14 UNUSED 13 TOIOER TO-IO ERROR TERMINATION If this bit is set, one of a number of errors has occurred. To determine which one, you must check a number of different bits in different words. If there was an NPR UNIBUS parity error, the NUPE bit of the DIAG3 word will be set. A PDP-II memory parity error is indicated by the MPEll bit of the Status Word being set. The PDP-II program may have set the error status bit in the write version of the Status Word. Or there may have, been a UNIBUS timeout, in which case no bit is set. If this bit (TOIOER) is set, TOlODN is not set. 12 RAMISO RAM IS ZEROS This bit is used in single-stepping the DTE-20, and has no meaning in other uses. It is set if the data read from a RAM location is all zeros. This bit is provided for diagnostic purposes only. 11 TOllDB KL REQUESTED PDP-II INTERRUPT When this pit is set, the KL processor has requested a PDP-II doorbell interrupt by means of a CONO DTEn, TOllDB instruction. 10 DXWRDI DEXWORD 1 This bit is provided on a read for diagnostic purposes only, and has no meaning except when the DTE-20 is being single-stepped. 8-11 DTE-20 OPERATION Bit Symbol Function 09 MPEll PDP-II MEMORY PARITY ERROR If this bit is set, the PDP-II memory had a parity error during a data fetch for a TO-IO byte transfer. Parity errors can be detected only if the PDP-II has one of the MFIIUP or MFIILP memory parity options. 08 TOIODB PDP-II REQUESTED KL INTERRUPT When this bit is set, the PDP-II has requested a KL doorbell interrupt by writing the INTIOS bit of the write version of the Status Word, and the KL has not yet cleared the bit. 07 TOIIDN TO-II TRANSFER DONE This bit is set when the TO-II byte count equals zero, when a transfer stops on a null character, or when a PDP-II program has set the error status bit in the write version of the Status Word (DONIIS). 06 EBSEL BUFFER SELECT This bit is provided on a read for diagnostic purposes only, and has no meaning except when the DTE-20 is being single-stepped. 05 NULSTP NULL STOP If this bit is on, the TO-II transfer stopped because the stop bit was set (the stop bit is the ZSTOP bit of the TOIIBC register). 04 BPARER EBUS PARITY ERROR This bit is set if the DTE-20 detects an EBUS parity error during a TO-II DTE-20 byte transfer or examine transfer. 03 RM RESTRICTED MODE If this bit is set, the attached PDP-II is in restricted mode. Otherwise, the PDP-II is in privileged mode. The value of this bit is determined by the setting of the privileged switch on the DTE-20. 02 DEXDON DEPOSIT/EXAMINE DONE This bit is set when the last deposit or examine operation is finished. No interrupt occurs when this operation finishes; the PDP-II must watch for this bit to be set after every deposit or examine operation. The DTE-20 clears this bit whenever a deposit or examine is started by writing into the TENAD2 register. 01 TOllER TO-II BYTE ERROR TERMINATION If this bit is set, an error occurred during a TO-II byte transfer, or the PDP-II program set the error bit ERRIIS in the write version of the Status Word. The TOIIDN bit in the read version is not set if there is actually an error termination. 8-12 DTE-20 OPERATION Bit Symbol Function 00 INTSON INTERRUPTS ON If this bit is set, the DTE-20 is enabled to generate PDP-II BR requests. If the bit is off, the DTE-20 does not have this capability. The bit can be set by writing a one into bit 5 (INTRON) of the read version of the Status Word, and cleared by writing a one into bit 3 (INTROF). Figure 8-4 illustrates the form of the Status Word in the write state. +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ I I I I I I I I I I I I I I I I I DONlOCI ERRlOCI INTllCI INTlOSI DONllCI EBUSPCI EBUSPSI ERRllC I I I I I I I I DONlOS ERRlOS INTllS PERCLR DONllS INTRON INTROF ERRllS Figure 8-4 DTE-20 Status Word in write State The bits in the write version of the Status Word names and functions: have the following Bit Symbol Function 15 DONI OS SET NORMAL TERMINATION STATUS This bit on a write is provided for diagnostic purposes only. Writing a one to this bit sets the TOlODN bit in the read version of the Status Word. Writing a one does not terminate a transfer in progress. 14 DONlOC CLEAR NORMAL TERMINATION STATUS Writing a one to this bit clears the TOlODN the read version of the Status Word. bit in 13 ERRlOS SET ERROR TERMINATION STATUS Writing a one to this bit sets the TOlOER bit in the read version of the Status Word. 12 ERRlOC CLEAR ERROR TERMINATION STATUS Writing a one to this bit clears the TOlOER the read version of the Status Word. bit in 11 INTllS SET PDP-II INTERRUPT STATUS writing a one to this bit sets the. TOllDB bit in the read version of the Status Word, resulting in a doorbell interrupt to the PDP-II. 10 INTllC CLEAR PDP-II INTERRUPT STATUS Writing a one to this bit clears the TOllDB bit in the read version of the Status Word. This action enables the next doorbell interrupt to be generated. 09 PERCLR CLEAR PARITY ERROR Writing a one to this bit clears the PDP-II memory parity error flag, the MPEll bit in the read version of the Status Word. 8-13 DTE-20 OPERATION Bit Symbol Function 08 INTIOS SET KL INTERRUPT STATUS Writing a one to this bit sets the TOIODB bit and does a CONI [TOIODB]. This results in a vectored interrupt to location 104+B*N in the KL EPT. 07 DONIIS SET TO-II TERMINATION STATUS writing a one to this bit sets the TO-II normal termination flag, which is the TOIIDN bit in the read version of the Status Word. This bit on a write operation is provided for diagnostic purposes only, since writing a one here does not terminate a transfer already in progress. 06 DONIIC CLEAR TO-II TERMINATION STATUS Writing a one to this bit clears termination status flag, TOIIDN. the TO-II normal 05 INTRON INTERRUPTS ON Writing a one to this bit enables the DTE-20 to generate PDP-II BR requests. Writing into this bit, whether a zero or a one, does not clear any interrupts that are waiting. The DTE-20 interrupt capability can be disabled by writing a one into bit 3, INTROF. The current setting of the interrupt capability can be checked by reading bit 0, INTSON. 04 EBUSPC CLEAR EBUS PARITY ERROR Writing a one to this bit clears the EBUS parity BPARER, which is bit 4 in the read error flag, version of the Status Word. 03 INTROF INTERRUPTS OFF Writing a one to this bit disables the DTE-20 interrupt capability. Writing a one or a zero to this bit does not clear any interrupts that are waiting. 02 EBUSPS SET EBUS PARITY ERROR Writing a one to this bit sets the EBUS parity error flag, BPARER, bit 4 in the read version of the Status Word. 01 ERRIIS SET TO-II ERROR TERMINATION STATUS Writing a one to this bit sets the TO-II error termination flag, which is bit 1, TOllER, in the read version of the Status Word. This bit on a write is provided for diagnostic purposes only. Writing a one does not terminate a transfer in progress. 00 ERRIIC CLEAR TO-II ERROR TERMINATION STATUS Writing a one to this bit clears the termination flag, TOllER. 8-14 TO-II error DTE-20 OPERATION 8.2.2 Diagnostic Words The three diagnostic words are used to communicate by way of the diagnostic bus, which is electronically isolated from the other EBUS communications. This means of communication is not normally used except for diagnostic checks, or when other means have broken down. For example, the PARSER can on occasion use the diagnostic bus, and of course the diagnostic programs use it when necessary. Diagnostic Word 1 has the following form when being written: Bit Symbol 15-09 DSOO-DS06 These bits specify the diagnostic selection code. (For the meanings of these bits see the read form of Diagnostic Word 1.) If DSOO and DSOI are both zero, write functions can be done while the system is running without being in diagnostic mode. Thus the PDP-II can sample KL status without danger of corrupting data on the EBUS. 08 DEX This bit must be zero. 07 DFUNC Setting this bit to a one causes the KL processor to stop sending basic status information on the DS lines. This allows a loop-back test to be performed on the DS lines. If any of the DS lines are set (by the DTE-20) the result is an "or" of the bits set in the DTE-20 and the KL status. 06 Function This bit must be zero. 05 DIOll Setting this bit to a one sets the DTE-20 to 10/11 diagnostic mode. This mode is used to diagnose the DTE-20 itself. 04 PULSE Writing a one to this bit generates a single clock cycle if 10/11 diagnostic mode is set (that is, the DIOll bit is on). 03 DIKLIO Writing a one to this bit puts the DTE-20 into diagnostic data transfer mode if the DTE-20 is privileged. Any subsequent examines and deposits become diagnostic functions instead of accessing KL memory. Writing a zero to this bit returns the DTE-20 to normal data transfer mode. All subsequent examines and deposits refer to KL memory. 02 DSEND Setting this bit to a one causes the data in a diagnostic bus transfer to.be sent (TO-IO). Setting the bit to a zero causes the data to be received (TO-II). 01 00 Unused DCOMST If this bit is set to a one while the DTE-20 is switched to privileged, the effect is to set diagnostic command start. Setting the bit to a zero clears diagnostic command start. 8-15 DTE-·20 OPERATION Diagnostic Word 1 has the following form when being read: Bit Symbol 15-12 DSOO-DS03 Unused 11 DS04 If this bit is a one, the KL internal clock has frozen because of one of the following hardware malfunctions: CRAM, DRAM, fast memory parity error, or Field Service test condition. 10 DS05 If this bit is a one, the KL is running. The microcode checks this flag between PDP-IO instructions, and enters the halt loop if the flag is off. This flag is under control of the PDP~ll using two diagnostic functions. The KL cannot affect it. 09 DS06 This bit is set to one when the microcode enters the halt loop and is cleared when the microcode leaves the halt loop. 08 DEX If this bit is set, the deposit or examine. 07 TOIO If this bit is set, the interface major state TO-IO transfer. is a 06 TOll If this bit is set, the interface major state TO-II transfer. is a 05 01011 If this bit is a one, the DTE-20 is in 10/11 diagnostic mode, that is, it diagnoses itself. 04 VEC04 This bit is set to vector interrupt address bit 4. 03-01 00 Function Unused or DCOMST interface major state is ZE~ro. If this bit is progress. set, a diagnostic command is in Diagnostic Words 2 and 3 have very similar forms in the read and the write state; thus, the two states are illustrated together, rather than separately as with Diagnostic Word 1. Diagnostic Word 2 has the following form when being read or written: Bit Symbol 15 RFMADO RFMADO 14 RFMADI EDONES Function RAM FILE MIXER (RFM) ADDRESS BIT 0 Read: This bit is set to the contents address bit o. Write: This bit must be zero. of RFM RFM ADDRESS BIT 1 Read: This bit is set to the contents of RFM address bit 1. Write: If a one is written to this bit, the EBUS done status is set. If a zero is written here, the EBUS done status is cleared. 8-16 DTE-20 OPERATION Bi.t Symbol Function RFMAD2 RFM ADDRESS BIT 2 Read: This bit is set to the address bit 2. write: This bit must be zero. 13 RFMAD2 12 RFMAD3 RFMAD3 11-07 RFM ADDRESS BIT 3 Read: This bit is set to the address bit 3. Write: This bit must be zero. contents of RFM contents of RFM Unused Read: These bits are always zeros. Write: These bits must be zeros. 06 DRESET DRESET DTE-20 RESET Read: This bit is zero. Write: If a one is written to this bit, the is reset. DTE-20 Unused Read: This bit is zero. Write: This bit must be zero. 0.5 04-01 Read: These bits are zero. write: Loads 04, 03, 02, 01 into minor state counter 8, 4, 12, 1 for diagnostic use only. During normal operation this bit must be zero. 00 Unused Diagnostic Word 3 has the following form when being read or written: Bit Symbol Function 15 SWSLLT SWAP SELECT LEFT Read: CNTl[N] SWAP DEL LT Write: This bit must be zero. 14 DPS4[N] PARITY (1) H Read: If this bit is set, the DPS4 [N] parity is on. This bit is for diagnostic use only. Write: This bit must be zero. 13-08 flop CAPTURED UNIBUS PARITY ERROR INFORMATION Read: When a UNIBUS parity error is detected, Ann means UNIBUS register address bit, and Dnn means UNIBUS data bit. UNIBUS Data Bits INITIAL 1st Shift 2nd Shift 3rd Shift 4th Shift Write: D15 D14 D13 D12 D11 AOO DI0 D09 D08 D07 D06 AOO D05 D04 D03 D02 DOl AOO DOO A04 A03 A02 AOI AOO D15 D14 D13 D12 Dll AOO This bit must be zero. 8-17 DTE-·20 OPERATION Bit Symbol 07-06 05 Function Unused Read: This bit is zero. write: This bit must be zero. SCD 04 DUPE CDD SHIFT CAPTURED DATA Read: This bit is zero. write: Writing a one to this bit shifts captured data so that the next read of DIAG3 changes bits 13-08. DATO UNIBUS PARITY ERROR Read: If this bit is a one, a DATO UNIBUS parity error has been detected by the DTE-20. Write: Writing a one to this bit clears the DUPE and DURE error flags. 03 WEP WRITE EVEN (BAD) PARITY Read: This bit specifies the read status of the write even UNIBUS parity flip-flop. Write: Writing a one to this bit causes the DTE-20 to generate even (bad) parity on all UNIBUS transfers that have parity. Writing a zero to this bit makes the DTE-20 generate odd (good) parity on all subsequent transfers that have parity. This bit is provided for diagnostic purposes to check the parity network. 02 DURE DATO UNIBUS RECEIVE ERROR Read: If this bit is set, a UNIBUS has occurred. Write: This bit must be zero. 01 NUPE CNUPE 00 TOIOBM receiver error NPR UNIBUS PARITY ERROR Read: If this bit is a one, a UNIBUS parity error has occurred on an NPR (byte) transfer. Write: Writing a one to this bit clears the NUPE flag. TO-IO BYTE TRANSFER MODE Read: This bit is zero. Write: Writing a one to this bit causes TO-IO byte transfers to be done in byte mode from PDP-II memory. Writing a zero to the bit causes the transfers to be in word mode. 8-18 DTE-20 OPERATION 8.2.3 DTE-20 Data Transfer Registers The remaining twelve DTE-20 registers are used in data transfer operations. This section briefly describes the function of each of these registers, and illustrates their format. TOIIDT +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ \ In Byte Mode: / \ In Byte Mode: / \ \ Data from KL bits 28-35 or 20-27 / \ / \ In Word Mode: Data from KL bits 20-27 TOllDT Data from KL bits 20-27 or 28-35 / / In Word Mode: Data from KL bits 28-35 This register contains the last byte or word transferred across the DTE-20 to the PDP-II. Since it is not clear from the data in this register which bits of the KL word are represented, the following method is used to resolve the ambiguity. If the address in TOllAD is even, the left byte of TOllDT will contain bits 28-35; if TOllAD is odd, the left byte of TOIIDT will contain bits 20-27. The right byte will contain the complementary set of bits. This register makes it possible to identify the last data that successfully transferred across the DTE-20. TOIODT +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +---~----------------------------------------------------------+ \ \ In Byte Mode: All O's / / \ \ Data for KL bits 28-35 / / In Word Mode: Data for KL bits 20-27 TOIODT This register contains the remainder of the data sent to the KL during a TOKLIO byte transfer. Its use is similar to that of TOllDT. 8-19 DTE-·20 OPERATION ']~OllAD +----------------------------_._--------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +----------------------------_._--------------------------------+ Byte address in PDP-II memory where next byte received will be stored T011AD This register is used by the PDP-II during byte transfers. T011AD contains the address of the area in PDP-II memory where the data from the KL is to be written. The DTE-20 keeps this register updated with the currently correct address as the TO-II byte transfer progresses. ,]1010AD +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ Byte address in PDP-II memory from which next byte t6 be transferred is to be taken TOIOAD This register is also used by the PDP-II during byte transfer operations. T010AD contains the address of the area in PDP-II memory where the data to be transferred resides. 'I'OllBC +--------------------------------------------------------------+ 11 5 11 4 11 3 11 2 III 11 0 I 0 9 I 08 I 07 I 06 I 0 5 I 0 4 I 0 3 I 02 I 01 I 00 I +- ------------------------------------------------------------+ \ bits 11-00 Negative Byte Count / I I I I I I I I 1_ _ __ I I I 0 \ / 1 Set byte mode in DTE-20 Set word mode in DTE-20 1 Stop transfer on null character from EBOX after storing in PDP-II memory; do not increment T011AD 1 Interrupt both processors on normal termination {ignored on error termination) Interrupt PDP-II only on normal termination (ignored on error termination) o o TOI1BC When the PDP-II loads this register (the TO-II byte count) with the number of bytes to be transferred, the DTE-20 begins the TO-II transfer operation. 8-20 DTE-20 OPERATION TOIOBC +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +_._------------------------------------------------------------+ I I I I \ bits 11-00 Negative Byte Count / lOp I I 0 \ 1 _ _ _- 1 Interrupt both processors at completion of current TO-IO transfer Interrupt KL only at completion of current TO-IO transfer o TOIOBC / When the KL loads this register the DTE-20 initiates the TO-IO transfer. The PDP-II never writes to this register. The register is set by the KL by means of writing into its EPT. The count may not include everything the PDP-II wishes to send (in the case of a "$catter write"). DLYCNT +-._------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ Negative Delay Count - number of 500 nanosecond / \ / \ \ / \ \ / T 1 _ _ _ _- DLYCNT units of delay between each byte transferred in either direction / / High order UNIBUS address bits (TO-II and TO-IO transfers must be in same 32K memory bank) Since the DTE-20 is clocked from the EBUS clock module, which runs at a different rate from the PDP-II clock, a compromise in timing must be effected in order to transfer data over the DTE-20. Therefore, the PDP-II sets this register to notify the DTE-20 of the speed at which to carry out byte transfer operations. The register contains the number of 500 nanosecond units of delay that should corne between two consecutive byte transfers. DEXWDl-3 +--------------------------------------------------------------+ I KL Data bits 20-35 IDEXWD3 +----------------------------------------------------~----------+ I KL Data bits 4-19 IDEXWD2 +---------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 100lDEXWDl +---------------------------------------------------------------+ \ / \ KL Data / \ Must be zero / \ DEXWDl-3 / \ bits 0-3 / \ / During a deposit or examine operation, the data being deposited or examined appear 1n these three registers. However, DEXWDI must always contain zeros in the high-order bits. 8-21 DTE·-20 OPERATION 'rENADl-2 o Address space I I I I I I I I 1 4 1 o Deposit Examine / /--\ / EPT Executive virtual Physical \ / I 1 = Protection and relocation off a = Protection and relocation on / / All zeros \ / High order KL address (13-19) \ / \ TENADl-2 The PDP-ll uses these two registers in examine and deposit operations to specify the KL address. When the PDP-II wr i tes TENAD2 the deposi t/examine operation I is ini tiated; thus, all necessary data must be written to DEXWDl-3 before TENAD2 is written. / \ / \ +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 100lTENADl +-----_._-------------------------------------------------------+ I Low order KL address (20-35) ITENAD2 +--------------------------------------------------------------+ 8.3 USING THE DTE-20 REGISTERS Each of the four DTE-20 operations (Deposit/Examine, TO-IO/TO-ll transfers, Doorbell functions, and Diagnostic operations) has a preliminary phase where control information and/or data is loaded into the DTE registers. This is always done before the interface begins any operation. Sections 8.3.1 through 8.3.4 describe, operation by operation, the information and data that must be loaded into the registers. 8.3.1 Deposit and Examine For the Deposit operation, the following information is always loaded into the indicated registers in the RAM by the PDP-II procE~ssor: Register Data Loaded DEXWD3 DEXWD2 DEXWDI TENADI TENAD2 Data Word 3 Data Word 2 Data Word 1 Address Word 1 Address Word 2 For an Examine operation, the KL address is loaded into TENAD1 and TENAD2. The result of the Examine is put into DEXWDI and DEXWD2. A Deposit operation loads the contents of the three data words into the KL address specified by the address words. Bit 12 of Address Word 1 (TENADl) specifies whether the operation is to be Examine or Deposit. If bit 12 is set (=1), the operation is a Deposit; if bit 12 is clear (=0), the operation is an Examine. For a privileged front end, the protection bit (bit 11 of TENADl) can be set to one by the software to 8-22 DTE-20 OPERATION perform an unprotected Deposit or Examine. For unprotected Deposits and Examines, the address space field (bits 15-13) specifies the type of address. Currently, three types of address space can be specified: Bits 15-13 Space addressed 0 1 Executive Process Table Executive Virtual Address Space Physical Address Space 4 When Address Word 2 is loaded, the operation begins. 8.3.2 Transfer Operations The TO-IO and TO-II transfer operations pass variable length data between the two processors. The sender of the data must specify the address of the source stringo The KL controls the address either to or from the KL by byte pointers in the Executive Process Table (EPT). The PDP-II controls the address to or from the PDP-II by two locations in the DTE (one word for each direction of transfer). It is the responsibility of the receiver to control scatter writes. The PDP-II specifies the transfer rate (with the delay count) and the type of transfer. Bit 13 in the TO-ll Byte Count word controls whether the DTE is in byte mode or word mode (l=byte mode, O=word mode). Byte mode transfers 8-bit bytes while word mode moves 16-bit bytes. When transferring string data from the KL to the PDP-II, the following DTE registers must be loaded by the PDP-II: Register Data Loaded TOIIBC TOIIAD TO-II Byte Count TO-II PDP-II Memory Address The TO-II Byte Count register holds a negative number whose absolute value is equal to the number of bytes to be transfered. As each byte is transferred, this register is incremented by one. When the byte count reaches zero, the transfer is over. A special provision in the byte count word allows for gather reads. This provision allows the receiver of data (and only the receiver) the option of being interrupted before the transfer is complete. At this point, another transfer can be started (without reloading all of the parameters) just by changing the address. The transfer in progress continues from the new address. On termination of the transfer, the PDP-II is interrupted. (See Figure 8-5.) The KL can be interrupted also if this is desired. The TO-IO transfer process is very similar to the TO-II process. PDP-II loads the following registers: Register Data loaded TOIOAD TO-IO PDP-II Address The The KL loads the following register: TOIOBC TO-IO Byte Count The transfer starts when the TOIOBC register is loaded. The TOIODT register is used in the same manner as TOIIDT; that is, TOIIDT is a temporary buffer used in conjunction with the delay count. The KL is interrupted when the transfer is finished~ (See Figure 8-5.) 8-23 DTE-20 OPERATION .DTINT SAVE REGISTERS -I. .__ IN_T_L_P_S, ~-..... SET UP OFFSET POINTERS YES .CRASH (TET) .TEND~ TO-lO DONE INTERRUPT YES .CRASH (ETE) YES .ELEDN TO-11 DONE INTERRUPT .DRBE~-L DOORBELL INTERRUPT NO DTEXIT RESTORE REGISTERS JUMP TO COMMON EXIT ••• INTX MR-·S-1670-B1 Figure 8-5 DTE Interrupt Handler 8-24 (part I of 5) DTE-20 OPERATION .TENDN CLEAR FLAG NO .CRASH (DTF) INDIRECT COMPLETE INDIRECT PART 2 SET EVENT FLAGS DECLARE EVENT CLEAR INDIRECT-INPROGRESS FLAG DIRECT COMPLETE RESET INDIRECTPENDING FLAG SET TRANSFER SIZE IN COMM. REGION REMOVE AND DEALLOCATE NODE FROM T010Q SEND STATUS T010 SET EVENT FLAGS .STTNQ RING DOORBELL NO START NEXT NODE YES INTLPS RETURN TO MAIN LOOP MR-S-1669-81 Figure 8-5 DTE Interrupt Handler (part 2 of 5) 8-25 D,]~E-:lO OPERATION .ELEDN CLEAR TOLL FLAG COMPUTE BYTE COUNT ~N_O ___________________ ~·I~ _ _ ~ ·C_R_A_S_H__ (DTB) NO NO .CRASH (PT1) NO .CRASH (PT2) YES ENTELQ POINT TO NEW NODE LINK NEW NODE SET EF.TED DECLARE SIG. EVENT RETURN ~--------4 Pf~E-ALLOCATED YES BUFFER TOITDN NO SET AND SEND STATUS TOlO ENTELQ YES INTLPS ADJUST BYTE COUNT SET FLAGS START TRANSFER • MR-S-1674-81 Figure 8-5 DTE Interrupt Handler 8-26 (part 3 of 5) DTE-20 OPERATION .DRBEL CLEAR DOORBELL BIT DBLEPX READ STATUS IN COMM REGION TO FIND REASON FOR DOORBELL ERROR EXIT DBLEPP NO START PROTOCOL PAUSE YES DBLRLD YES YES CLEAR PROTOCOLS SET FLAGS SET EVENT FLAG .CRASH (UIE) B C MR-S-1671-81 Figure 8-5 DTE Interrupt Handler 8-27 (part 4 of 5) DTE-20 OPERATION B .CRASH (PT3) START SECOND PART OF INDIRECT TRANSFER I.JPDATE LUECOUNT .CRASH (ILO) EADCOMM ~ REGION GET NODE SIZE .CRASH (PT4) ~ START TRANSFER OF DIRECT PACKET t L-_ _ _ _ _ _ _ _ _ _ . DBLDON aOUEUE STATUS SEND IT T010 INTLPS MR-S-1672-81 Figure 8-5 DTE Interrupt Handler (part 5 of 5) 8-28 DTE-20 OPERATION 8.3.3 Doorbell Function The doorbell function allows the KL to interrupt each PDP-II connected to it by a DTE-20, and vice versa. The doorbell consists of a programmable interrupt and a status bit. In order for the PDP-II to interrupt the KL, the PDP-II sets the Request-IO interrupt flip-flop (bit 8 in the DTE Status Word). When this bit is set, the DTE-20 generates an interrupt in the KL with a status bit set in the CONI word (bit 26 in TOIODB) to indicate that the PDP-II CPU has requested an interrupt of the KL. (See Figure 8-5.) This procedure works in a reversed but identical manner for the KL interrupting the PDP-II. The KL sets the Request-II interrupt by doing a CONO to the DTE-20. The PDP-II discovers the cause for the interrupt by looking at TOllDB (bit 11 in the DTE status word). Communication is then performed by loading one or more words in the Communications Region of KL memory. The Deposit and Examine features are used by the PDP-II to gain access to these words. 8.3.4 Diagnostic Functions The PDP-II front end can diagnose problems in the KL using the diagnostic functions of the DTE-20. The diagnostic functions are performed over an electronically isolated portion of the EBUS known as the diagnostic bus. This bus contains Diagnostic Select lines to tell the KL which diagnostic function the front end wishes to perform. The bus also has lines to carry data that helps the KL hardware interpret the Diagnostic Select lines. To perform the diagnostic functions, set the bits in register DIAGI that correspond to the code for the function you wish to perform. When you set bit 0 (DCOMST) in DIAGl, the function code is sent to the KL. When the DCOMST bit is zero, the DTE-20 has sent the diagnostic function to the KL. Bit 2 of DIAGI (DSEND) has no effect on the transfer of the function code; DSEND deals with diagnostic data transfer only. Diagnostic data transfer takes place only when bit 3 (DIKLlO) is set to one. 8.4 PROTOCOLS The protocol used between the KL and the PDP-II front end is a tightly coupled communications protocol designed for use in exactly this environment. Two levels are included in this protocol: Secondary Protocol and Primary Protocol. 8.4.1 Secondary Protocol Secondary Protocol uses the Doorbell and Deposit/Examine features of the DTE-20. This protocol is only used in special situations such as booting the KL, or in emergencies where normal communications with the KL are not available. The code to support Secondary Protocol is in module BOOT of RSX-20F. Only the privileged PDP-II can run Secondary requires privileged Deposits and Examines. 8-29 Protocol because it DTE-20 OPERATION 8.4.2 Primary Protocol Primary Protocol is the main protocol used for communications and uses the Deposit/Examine, Byte Transfer, and Doorbell features of the DTE-20. The switch to Primary Protocol is made just before the [PS MOUNTED] message appears at the CTY. Primary Protocol is a queued protocol because the DTE-20 is used by several tasks. Multiple tasks cannot be allowed to use the DTE-20 whenever they desire, or confusion would result. Therefore, tasks that want to use the DTE must line up the data in a queue and wait their turn. 8.5 QUEUED PROTOCOL The queued protocol driver is responsible for many things: controlling the exchange of data between the KL and the PDP-II, scheduling the transmission of information packets sent across the DTE, and interfacing bet~een the KL and the PDP-II device drivers that must communicate with it (terminals, line printers and card readers). The queued protocol driver places output data in the thread packets for terminals and line printers. The queued protocol driver also takes data from card readers and terminals, bundles them into packets and sends them off to the KL. When devi~e status information is needed, it is the queued protocol driver that gathers the information for those devices that must report to the KL. The following list includes all the functions of the queued protocol driver. Each function is listed along with its associated function code, which is used by both the KL and the front end to recognize the type of request just received. Code Function I Request for Initial Status 2 Here is CTY Alias 3 String Data This function is the general data-transferring mechanism of the protocol. 4 Line/Character Data This function allows the protocol to handle data transfers for several lines with a single function, which cuts down on overhead by reducing the number of messages transferred. 5 Return Device Status This function requests the status of the other processor. 6 device Set Device Status This function requests the device status to be set specified values. from the to the 7 Here is Device Status This function is the response to function 5 (Request Device Status) . 10 Unused 8-30 DTE-20 OPERATION Code Function 11 Return Time of Day This function is used to determine current system date and time. 12 the other Here is Time of Day This function is the response to function 11 of Day). processor's (Return Time 13 Flush Output Device Queue This function provides the ability to deal with CTRL/O by flushing all output waiting for output to the specified device. 14 Send All This function causes a specified string to be typed on TTy-type devices connected to the front end. 15 Unused 16 Device Hang-up This function causes the PDP-II to hang dataset line. up the all specified 17 Acknowledge Device Done This function is used to notify the other processor that a data transfer operation has been completed. The passing of this signal allows the buffer space that was taken up with the data just transferred to be freed. 20 X-OFF (TTY only) This function is used to produce the effect of CTRL/S. This causes the data transfer in progress to be suspended until further notice (the notice will be in the form of a CTRL/Q) • 21 X-ON (TTY only) This function is used to produce the effect of CTRL/Q. This causes the data transfer currently suspended (if there is one) to be continued. 22 Set TTY Speed This function is used to inform the other processor of the speed of a given TTY line. The front end will use this information to set the line speed. The KL will need the information when the KL has been reloaded and is reentering Primary Protocol. 23 Set Line Allocation This function sets the maximum amount of data that a device can accept between acks. 24 PDP-II Reboot Word This function provides the KL PDP-II switch register. with the settings of the 25 Acknowledge All This function is used to restart a data transfer operation. The KL, for example, may use it when the KL has temporarily left Primary Protocol. 26 Start/Stop Line This function is used to enable processing for the line specified. 8-31 and disable input DTE-20 OPERATION Code Function 27 Enable/Disable Remotes This function is used to enable and disable the modem control: when the current state is enabled, the telephone may be answered by the front end. 30 Load Line Printer RAM This function is used by the KL to notify the front end that -the line printer RAM needs reloading. The front end will, upon receipt of this message, proceed to load the RAM. 31 Load Line Printer VFU This function is used by the KL to notify the front end that the line printer VFU needs to be reloaded. Upon receipt of this message, the front end will load the RAM. 32 Suppress Send-All This function is used to suppress the system messages for a specified line. It is the equivalent of the TOPS-20 command REFUSE SYSTEM-MESSAGES. 33 Send KLINIK Parameters This function is used to notify the other processor the KLINIK parameters are about to be sent. that 34 Enable/Disable Local X-OFF This function is used to allow (or disallow) the front end to process the X-OFF character itself, rather than waiting for the KL to process the character 35 Break Through Write This function sends the associated packet to the the output queue. 36 37 front of Set Host Debug This function set the KL to debug mode. No message printed during a KL halt and no reloads are performed. is Clear Host Debug This function causes the KL to exit debug mode. If the KL halts the system message is sent and the KL is reloaded. When two processors communicate, they require an area that both can access to exchange information. This area is in KL memory because the KL can not access PDP-II memory through the DTE. The area where this. common data is stored is the Communications Region. Recall that the first part of the region is a header area. Following this, each processor that is connected to the KL has its own communications area. A minimal configuration has two communications areas, one for the KL and one for the PDP-II front end. If another PDP-II is attached for data communications, there will be three communications areas. Each communications area has one section of data about itself and one or more sections for the other processors to which it is connected. The KL and the PDP-II also use the Executive Process Table (EPT) to communicate. The EPT occupies a page in KL memory in which several words are reserved for DTE communications. The location of the EPT is always known because a hardware register points to it. 8-32 DTE-20 OPERATION The EPT stores the KL addresses for byte-transfer operations and tells the PDP-II where in KL memory it may Deposit and Examine. The relocation and protection words are set once by the KL. The PDP-II reads these words, and stores them so that it will not have to read them again. All PDP-II Deposits and Examines of KL memory are checked by the hardware using the relocation and protection words. 8.6 DTE-20 DRIVER LOGIC The DTE-20 driver is responsible for the exchange of data between the front end and the KL. It can transfer data in both directions simultaneously. There are three types of data packets transfered across the DTE-20: 8.6.1 • direct packets • extended direct packets • indirect packets. TO-IO Direct Packets A TO-IO direct packet always contains at least 12 (octal) contiguous bytes and consists of a Header and one or more words of data. A Header is always sent across the DTE-20 as a single transfer. +================================+ Forward Pointer Backward Pointer Over Head Node Size 1 1 Current Queue Size v Packet Size 01 Function Device Spare Data Unused +================================+ The first four words of the packet are not transfered to the KL. They contain information necessary to manage the queue in PDP-II memory. The packet that is actually transfered across the DTE-20 during a direct transfer is always 12 (octal) bytes and consists of words beginning with Packet Size and ending with the Data word. 8-33 DT'E-20 OPERATION 8.6.2 TO-II Direct Packets TO-II direct packets are essentially the same as TO-IO direct packets. However, during a TO-II direct transfer the spare word is discarded by the DTE-20 device driver when a packet is received by the front end, also the byte size and function code are compressed into one word. Direct transfers are used to transfer a single data word. The sender always considers the direct transfer to be a single transfer. The receiver may fragment the transfer and hide the TO-II Done interrupt from the sender until the entire transfer has been completed. +===================~============+ 1 Forward Pointer 1 1 Overhead 1--------------------------------1 1 Node Size 1 1 v 1--------------------------------1 E.FN+l 1 Bytes in Entry 1 Function 1 E.FN+O 1--------------------------------1 E.DV Device 1--------------------------------1 First Function Word E.FW 1--------------------------------1 Data 1 1 1 1 1 1 +================================+ 8.6.3 TO-IO Extended Direct Packets A TO-IO extended direct packet consists of a Header and more than one data word. The Header portion contains a count of the number of bytes in the extended portion of the packet. Direct packets can only be sent from a contiguous buffer. The extended ~irect data packet has the following format. +================================+ Forward Pointer 1 Backward Pointer Over Head 1 Node Size 1 1 Current Queue Size v Packet Size 01 1 Function Device 1-------------------------------Spare 1 1-------------------------------Data / / / / 1--------------------------------1 1 Data 1 +================================+ 8-34 DTE-20 OPERATION 8.6.4 TO-IO Indirect Packets A TO-IO indirect packet consists of a Header portion and a data portion. The header and data portions do not necessarily occupy contiguous locations in PDP-II memory. The header portion contains the total size of the entire transfer and a pointer to the indirect or data portion of the packet. The Header is always 12 octal bytes long. TO-IO Indirect packets have the following format: +================================+ 1 Forward Pointer 1 1--------------------------------1 1 1 Over Backward Pointer Head 1--------------------------------1 1 Node Size 1 1-------------------------------Current Queue Size (12) v 1-------------------------------Current Entry Size (12) 1-------------------------------1 Function 1-------------------------------Device ,1-------------------------------Spare Word 1-------------------------------Byte Count Line Number 1-------------------------------Data Address (ADDR:) -----------+ 1-------------------------------Spare 1-------------------------------Spare 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +================================+ 1 1 +--------------------------------------------+ 1 1 1 1 +--) ADDR: +================================+ 1 Byte Count 1 Line Number 1 1--------------------------------1 Data 1 1 1--------------------------------1/ / 1--------------------------------1 1 Data 1 1================================1 An indirect transfer takes place in two parts; first the header portion and then the data. Not all of the header shown above is transfered across the DTE-20. The Header transfer always consists of 12 (octal) byte starting with the function word and ending with the data address word. The Indirect Flag set in the function word indicates that the transfer is an indirect transfer. 8-35 DTE'-20 OPERATION 8.6.5 TO-II Indirect Packets The To-eleven Indirect packet is essentially the same as the TO-IO indirect packet. However the TO-II indirect packet occupies contiguous memory locations in PDP-II memory. +================================+ Forward Pointer 1 1-------------------------------Node Size 1-------------------------------E.FN+I Bytes in Entry Function 1-------------------------------Device 1-------------------------------First Function Word 1-------------------------------Data 1-------------------------------/ ... / 1 Overhead 1 1 1 1 v E.FN+O 1 E.DV 1 E.FW 1 1--------------------------------1 Data 1 1 +================================+ 8.6.6 Register Conventions The DTE-20 driver uses the following register conventions: RO Points to the base address of the DTE-20 in the I/O page. RI Points to the DTE-20 Status Register in the I/O page. R3 Points to the 8.6.7 Process~r Table in the data base. DTE-20 Device Driver Functions The DTE-20 Device driver performs the following f~nctions: • .DTINT - Interrupt Head and service dispatch • .TENDN - Services the IO-Done interrupt • .ELEDN - Services the II-Done interrupt • .DRBEL - Services the Doorbell interrupt • .STELD - Starts a TO-II Direct Transfer • .STELI - Starts a TO-II Indirect Transfer • .KPALV - Does Keep-Alive processing • .STTNQ - Starts a TO-IO Transfer 8-36 DTE-20 OPERATION Whenever a request for a transfer of data between the KL and the front end processor is made .DTINT handles the request. .DTINT is responsible for the following: • Saving all registers on the stack. • Restoring all registers from the stack. • Setting up register RO with a pointer DTE-20. to the base of the Setting up register Rl with a pointer to • Register. the DTE-20 Status • Setting up register R3 with a pointer to the Processor Table. • Checking for TO-IO or TO-II termination errors (TET) . • Checking for TO-II Memory Parity errors (ETE) • A TO-II transfer ytarts when the KL rings the doorbell indicating that a transfer is reaQy. The KL has already set up pointers to the packet to be transferred in the TO-II Communications Region. It has also set up its pointer in the DTE-20 hardware. RSX-20F reads the size of the transfer in .QSIZ~ word in the Communications Region. A .QSIZE word containing a count greater than 12 octal indicates that the transfer is an extended direct. The RSX-20F DTE-20 Driver then attempts to allocate a buffer from the Free Pool to accept the transfer. If the allocation fails RSX-20F blocks the DTE-20, inhibiting any further transfers until the buffer can be allocated. Each time a buffer is returned to the Free Pool an attempt is made to unblock the DTE-20. Once the buffer has been allocated. RSX-20F conditions the DTE-20 not to show the next TO-II Done interrupt to the sending processor (the KL). RSX-20F then reads the Header portion into its fixed bUffer in low core. A TO-II Done interrupt signals that the Header transfer is complete. This interrupt is not seen by the KL, but indicates that the DTE-20 has completed its transfer of the Header portion. The Header portion is then copied from the fixed buffer to the allocated buffer and the DTE-20 is set to point to the allocated buffer. The DTE-20 is then conditioned to show the next TO-II done interrupt to both processors. This decision is based on the the transfer size in the .QSIZE word. If the size of the transfer is exactly 12 octal bytes both processors are interrupted at the completion of the transfer. Otherwise, only the the PDP-II is interrupted. The Function Word in the fixed buffer is cleared to indicate that the packet may be entered into the TO-II Queue on the next TO-II done interrupt. The remainder of the message is transferred across the DTE-20 to the allocated buffer. When the extended portion has been transferred to the allocated buffer, a TO-II Done interrupt seen by both processors. In other words, the KL does not see a TO-II Done interrupt until the entire transfer is complete. RSX-20F, on tbe other hand, sees two TO-II Done interrupts. The first indicates that the Header portion of the transfer has been completed; the second inoicates that the entire transfer has be~n completed. At this point, t~e packet is entered into the TO-II Queue. If RSX-20F receives a Doorbell interrupt and the .QSIZE word indicates a transfer of exactly 12 octal bytes, it sets up for a direct transfer. First it attempts to allocate a buffer from the Free Pool to accept the transfer. If the allocation fails RSX-20F blocks the DTE-20 until a buffer is available. Once a buffer becomes available, RSX-20F transfers the Header into its fixed buffer in low core. Note 8-37 DTE-·20 OPERATION that since the transfer is exactly 12 octal bytes both processors are interrupted. The DTE-20 driver then examines the Indirect semaphore in the Function Word. If this semaphore is not set the transfer is a simple direct transfer and RSX-20F copies the Header into the allocated buffer and immediately enters that buffer into the TO-II Queue. If the Indirect semaphore is set in the Function Word the transfer is an indirect transfer and only the Header has been read. The size of the entire transfer is contained in this Header. Since the allocated buffer contains only enough space for the header portion, RSX-20F returns it to the Free Pool. The Header portion remains in the fixed buffer in low core in anticipation of the second part of the indirect transfer. The KL has seen the TO-II done interrupt indicating that the Header has been successfully transfered. The KL will later set the Indirect-in-Progress semaphore and ring the Doorbell to indicate that the indirect portion of the transfer is ready. RSX-20F answers the Doorbell and sees that the Indirect-in-Progress semaphore is set. It then checks to see if the Header in the fixed buffer contains an indirect Header (the Indirect semaphore in the function word is set). RSX-20F now attempts to allocate a buffer to accept the entire transfer. That is both the Header and the data portion of the transfer will be stored in contiguous locations in the PDP-II's memory. If the allocation fails, R8X-20F blocks the DTE-20 until the buffer becomes available. Once the buffer is allocated, RSX-20F copies the Header from the fixed buffer into the allocated buffer then starts the transfer of the indirect portion across the DTE-20 into the allocated buffer. When the transfer is complete, both processors see a TO-II Done interrupt signaling the completion of the transfer. An indirect transfer is essentially two separate transfers. First the Header portion (12 octal bytes) is transferred. This is treated like a direct transfer until R8X-20F reads the Indirect Flag in the Function word. It then expects that the next transfer will be the indirect portion of the message. The Header contains the byte count of the entire transfer. When the KL signals that the indirect portion is ready by ringing the Doorbell R8X-20F reads the indirect portion and stores the entire message in the contiguous buffer that has been allocated. 8-38 CHAPTER 9 ERROR DETECTION AND LOGGING 9.1 THE KEEP ALIVE COUNT The KL and the PDP-II watch each other to make sure that the other does not crash. The mechanism they use is called the "Keep-Alive Count." The Keep-Alive Count for each processor is a word in the Communications Region of KL memory. Both processors have clock interrupts regularly. During the servicing of those clock interrupts, the processors increment their own Keep-Alive Counts and check the other processor's Keep-Alive Count. RSX-20F also transmits its Keep-Alive count once every 256 DTE-20 transfers. If the count has not changed after a certain number of interrupts, then that processor is assumed to be hung or crashed and must be reloaded. If the KL goes down, RSX-20F schedules the TKTN task to run. TKTN shuts down the protocol, prints a message, and schedules the KLERR. Refer to Section 9.3.3 for TKTN messages. The front end must go through the DTE-20 in order to update and examine the Keep-Alive Counts, because both copies of the Keep-Alive Count are located in the Communications Region of KL memory. The KL's Keep-Alive Count is kept in CMKAC, the sixth word in the KL's area of the Communications Region~ The PDP-II's Keep Alive Count is stored in the sixth word of the PDP-II's area of the Communications Region. 9.2 KLERR When the front end notices that the KL has not responded by the Keep-Alive Count mechanism, KLERR checks the status of the Retry flag (refer to the SET RETRY command in Section 4.4 for more information). If the Retry flag is not set, KLERR checks the setting of the Reload flag. If the Reload flag is set,KLERR reloads the KL. If the Reload flag is not set, the front end ignores the fact that the KL is not running and continues its processing. If, on the oth~r hand, the Retry flag is set, the front end gives the KL a chance to save its context (if possible) by executing the instruction at location 71, which transfers control to a KL routine that attempts to save the context information. When the context has been saved, KLERR determines whether to reload the KL depending on the state of the Reload flag. (It is usual for the KL to request a reload during the execution of the context-saving subroutine.) KLERR has several important functions. When it realizes that the KL has not responded, KLERR tries to read as much information as it can from registers in ~he KL by performing function reads over the diagnostic portion of the EBUS. KLERR stores the information it retrieves in the PARSER. LOG file in the front-end file system. When KLERR has completed its function, TKTN schedules the KLINIT task to restart the KL. 9-1 ERROR DETECTION AND LOGGING 9~3 ERROR LOGGING There are two types of errors for which some information is logged on the CTY. KLERR logs information for KL errors and describes the state of the KL, as well as it could be determined by the front end. The EXECUTIVE logs information about PDP-II errors. These error types are described in Sections 9.3.1 through 9.3.5 9.3.1 KL Error Logging KLERR provides the operator with useful information about the state of the KL upon execution. Included in the KLERR printout are: • Contents of the DTE-20 registers • EBUS parity information • Fast memory parity information • Some textual information on the DTE-20 state of the KL and the The information is ,logged to the file PARSER. LOG and when the KL returns to a rurtning state, is transfered to SYS.ERR by the task LOGXER. The following examples show the compact format of the KLERR output. The first example shows the KLERR output from a CRAM error. The second example shows the output from a KL BUGHALT. Refer to Section S.2 for descriptions of the functions of the various DTE-20 registers. Example ******* LOGGING STARTED OUTPUT DEVICES: KLE>EXAMINE KL lS-FEBRUARY-Sl 15:27 ,RSX-20F YB14-44 T~Y,LOG PAR -- [EXAMINE] CFH - CAN'T FIND KL HALT LOOP KLE>CLEAR OUTPUT TTY OUTPUT DEVICES: LOG KLE>SET CONSOLE MAINTENANCE CONSOLE MODE: MAINTENANCE KLE>SHOW HARDWARE KLIO SIN: 2102., MODEL B, 60. HERTZ MOS ~ASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE KLE>EXAMINE DTE DLYCNT: 000000 DEXWD3: 000000 DEXWD2: 000000 DEXWDl: 000000 KLIO DATA=OOOOOO 000000 TENADl: 010000 TENAD2: 000022 ADDRESS SPACE=EPT OPERATION=DEPOSIT PROTECTION-RELOCATION IS ON 9-2 ERROR DETECTION AND LOGGING KL10 ADDRESS=22 T010BC: 010000 T011BC: 130000 T010AD: 070514 T011AD: 067663 T010DT: 000000 T011DT: 000000 DIAG1 : 006200 KL CLOCK ERROR STOP KL IN RUN MODE MAJOR STATE IS TO-10 TRANSFER DIAG2 : 000000 STATUS: 012504 RAM IS ZEROS DEX WORD 1 11 REQUESTED 10 INTERRUPT E BUFFER SELECT DEPOSIT-EXAMINE DONE DIAG3 : 002000 KLE)FREAD 100:177 FR 100/ 000377 612604 FR 101/ 000000 002600 FR 102/ 000042 410242 FR 103/ 000024 212420 FR 104/ 000000 023074 FR 105/ 000000 000021 FR 106/ 000000 601400 FR 107/ 000000 654602 FR 110/ 000003 055164 FR 111/ 000112 000000 FR 112/ 007740 025337 FR 113/ 000000 014626 FR 114/ 000121 000012 FR 115/ 001107 040144 FR 116/ 001400 012003 FR 117/ 001100 002000 FR 120/ 570651 767636 FR 121/ 000761 737216 FR 122/ 672274 324773 FR 123/ 000000 203044 FR 124/ 314631 463146 FR 125/ 000000 000000 FR 126/ 000000 000000 FR 127/ 000000 203044 FR 130/ 003271 000000 FR 131/ 060010 660000 FR 132/ 010072 360000 FR 133/ 020440 454000 FR 134/ 131274 444003 FR 135/ 120034 244003 FR 136/ 110051 604003 FR 137/ 002470 244003 FR 140/ 730405 130006 FR 141/ 100000 000000 FR 142/ 141210 000000 FR 143/ 640003 131510 FR 144/ 750405 130006 FR 145/ 560000 000000 FR 146/ 721210 000000 FR 147/ 160003 131510 FR 150/ 000101 002100 FR 151/ 000101 040004 FR 152/ 000001 002100 FR 153/ 000024 000100 FR 154/ 000001 202400 FR 155/ 000001 250125 FR 156/ 000001 202520 9-3 ERROR DETECTION AND LOGGING FR 157/ 000024 000120 FR 160/ 211003 017027 FR 161/ 211006 276703 FR 162/ 211004 204017 FR 163/ 211000 000523 FR 164/ 211003 017163 FR 165/ 211006 276763 FR 166/ 211004 204017 FR 167/ 211000 000237 FR 170/ 360000 026762 FR 171/ 000040 635722 FR 172/ 111600 037220 FR 173/ 200102 277322 FR 174/ 164000 177664 FR 175/ 237400 127345 FR 176/ 001200 335365 FR 177/ 760000 533305 KLE>WHAT AC AC-BLOCK: 0 KLE>SWEEP KLE>XCT CONI 0,15! CONI ~",PR,15 PAR -- [XCT] CES - CLOCK ERROR STOP - ERROR STOP, CRAM, KLE>EXAMINE TEN 15 PAR -- [EXAMINE] KCN - KL CLOCK IS OFF KLE>XCT BLKI 4,15! RDERA PAR -- [XCT] CES - CLOCK ERROR STOP - ERROR STOP, CRAM, KLE>EXAMINE TEN 15 PAR -- [EXAMINE] KCN - KL CLOCK IS OFF KLE>XCT CONI 4,151 CONI PI,15 PAR -- [XCT] CES - CLOCK ERROR STOP - ERROR STOP, CRAM, KLE>EXAMINE TEN 15 PAR -- [EXAMINE] KCN - KL CLOCK IS OFF KLE>XCT DATAl 10,15! DATAl PAG,15 PAR -- [XCT] CES - CLOCK ERROR STOP - ERROR STOP, CRAM, KLE>EXAMINE TEN 15 PAR -- [EXAMINE] KCN - KL CLOCK IS OFF KLE>XCT CONI 10,15! CONI PAG,15 PAR -- [XCT] CES - CLOCK ERROR STOP - ERROR STOP, CRAM, KLE>EXAMINE TEN 15 PAR -- [EXAMINE] KCN - KL CLOCK IS OFF KLE>SET OUTPUT TTY OUTPUT DEVICES: TTY,LOG KLE>CLEAR OUTPUT LOG ******* LOGGING FINISHED 18-FEBRUARY-81 15:27 KLI KLI KLI KLI 1672 000000 000000 005002 10 000000 000000 105002 10 000000 000000 100000 00 ? C-RAM DIFFERS AT BAD 001675 105200 GOOD 001675 105200 XOR 000000 000000 ****** END OF KLERR ENTRY ***.*** -------- 9-4 ERROR DETECTION AND LOGGING Example ******* LOGGING STARTED 23-FEBRUARY-81 15:11 ,RSX-20F YB14-44 OUTPUT DEVICES: TTY,LOG KLE>EXAMINE KL PC/ 5302 VMA/ 5302 PI ACTIVE: OFF, PION: 177, PI HOLD: 000, PI GEN: 000 OVF CYO CY1 FOV BIS USR UIO LIP AFI AT1 ATO X X KLE>CLEAR OUTPUT TTY OUTPUT DEVICES: LOG KLE>SET CONSOLE MAINTENANCE CONSOLE MODE: MAINTENANCE KLE>SHOW HARDWARE PAR -- [SHOW] MRH - HARDWARE OPTIONS MUST BE READ KLE>EXAMINE DTE DLYCNT: 000000 DEXWD3: 160000 DEXWD2: 060323 DEXWD1: 000000 KL10 DATA=014064 760000 TENAD1: 000000 TENAD2: 000024 ADDRESS SPACE=EPT OPERATION=EXAMINE PROTECTION-RELOCATION IS ON KL10 ADDRESS=24 T010BC: 010000 T011BC: 130000 T010AD: 067540 T011AD: 070012 T010DT: 000152 T011DT: 103400 DIAG1 : 001100 KL IN HALT LOOP MAJOR STATE IS TO-II TRANSFER DIAG2 : 040000 STATUS: 012504 RAM IS ZEROS DEX WORD 1 11 REQUESTED 10 INTERRUPT E BUFFER SELECT DEPOSIT-EXAMINE DONE DIAG3 : 026000 KLE>FREAD 100:177 FR 100/ 000177 602664 FR 101/ 000000 002600 FR 102/ 000013 410202 FR 103/ 000020 212024 FR 104/ 000000 032434 FR 105/ 000000 003421 FR 106/ 000000 642000 FR 107/ 000000 715642 FR 110/ 000003 043142 FR 111/ 000104 000000 FR 112/ 007740 002610 FR 113/ 000000 000514 FRl14/ 000043 000126 FR 115/ 001107 060144 FR 116/ 001400 012003 FR 117/ 001100 002000 FR 120/ 000000 000000 FR 121/ 000000 000000 FR 122/ 001100 002000 9-5 FUF NDV ERROR DETECTION AND LOGGING FR 123/ 000000 270164 FR 124/ 002000 020000 FR 125/ 000000 000000 FR 126/ 000000 000001 FR 127/ 000000 000001 FR 130/ 000072 000000 FR 131/ 070054 060000 FR 132/ 014064 760000 FR 133/ 000020 414000 FR 134/ 130066 404003 FR 135/ 120024 224003 FR 136/ 104052 604003 FR 137/ 002004 264003 FR 140/ 750505 050203 FR 141/ 100200 000000 FR 142/ 110000 001010 FR 143/ 600202 061407 FR 144/ 540001 050705 FR 145/ 510000 000000 FR 146/ 540000 001010 FR 147/ 111212 070407 FR 150/ 000000 000000 FR 151/ 000000 002004 FR 152/ 000000 000100 FR 153/ 000024 002100 FR 154/ 000000 000000 FR 155/ 000000 002405 FR 156/ 000000 000120 FR 157/ 000024 002520 FR 160/ 001003 017024 FR 161/ 001006 276700 FR 162/ 001006 206014 FR 163/ 001000 000520 FR 164/ 001003 017320 FR 165/ 001006 276764 FR 166/ 001006 206014 FR 167/ 001000 000670 FR 170/ 360000 126722 FR 171/ 000000 735722 FR 172/ 011600 137230 FR 173/ 200102 377322 FR 174/ 164010 177664 FR 175/ 265240 127375 FR 176/ 000200 337375 FR 177/ 760200 533305 KLE>WHAT AC AC-BLOCK: 0 KLE>SWEEP KLE>XCT CONI 0,151 KLE>EXAMINE TEN 15 15/ 007740 000003 KLE>XCT BLKI 4,151 KLE>EXAMINE TEN 15 15/ 402000 005302 KLE>XCT CONI 4,151 KLE>EXAMINE TEN 15 15/ 000000 000177 KLE>XC'I' DATAl 10,151 KLE>EXAMINE TEN 15 15/ 700100 003535 KLE>XCT CONI 10,15! KLE>EXAMINE TEN 15 15/ 000000 060137 CONI APR,15 RDERA CONI PI,15 DATAl PAG,15 CONI PAG,15 9-6 ERROR DETECTION AND LOGGING KLE>SET OUTPUT TTY OUTPUT·DEVICES: TTY,LOG KLE>CLEAR OUTPUT LOG ******* LOGGING FINISHED 23-FEBRUARY-81 15:12 ****** END OF KLERR ENTRY ****** 9.3.2 PDP-II Error Logging Upon encountering a serious PDP-II error, the front end stops and waits for the KL to reload it. Before the front end dies, however, it prints the following message on the CTY: II-HALT <code> where <code> is a 3-character error code indicating why the front crashed. Refer to Appendix A for a list of RSX-20F stop codes. end Whenever RSX-20F discovers. a condition that it considers serious enough to cause a crash, it executes an lOT instruction. The 3-character crash code following the lOT i~ picked up by the crash routine. For a disk-based PDP-II operating system, the lOT instruction is used for error reporting. The irystruction first executes a trap vector at location 20. From there it dispatches to COMTRP, then to IOTTRP which halts the PDP-II, trying to save as much information from the registers as it can. The lOT routine stores the crash code and parity-error registers in locations 0 to 3 of PDP-II memory. This information is readily available in a dump listing. For example, an lOT instruction followed by ASCIZ IDTBI would result in the following: +---------------------+ TOO 11---------------------1 Par.Errorl B 2 +---------------------+ When looking at the source listings of RSX-20F, notice that a macro is used instead of the lOT instruction. The macro is .CRASH and expands to the lOT plus ASCIZ crash code as stated above. 9.3.3 TKTN MESSAGES TKTN prints a message before scheduling the KLERR task. possible messages and their causes follows. A list of the CLOCK ERROR STOP This is a hardware error. It could be caused by error. If the error persists, call your Representative. 9-7 an FM parity Field Service ERROR DETECTION AND LOGGING E-BUS PARITY ERROR If This is a hardware error. Service Representative. it persists, call your Field KEEP ALIVE CEASED This can be either a hardware or software problem. Reload the system. If the problem persists, call your Software Support Specialist. KL HALTED The KL is in a halt loop. end reloads the KL. If the reload flag is set, the front your Field PI LEVEL 0 INTERRUPT FAILURE (DEX) This is a hardware problem. Service Representative. If it persists, call POWER-FAlL-RESTART TKTN prints this message on a reload following a power fail. PROTOCOL TIME OUT TKTN prints this message when the protocol being used switches from primary protocol to protocol pause. If primary protocol does not return within 30 seconds, the system crashes and is reloaded. RE-BOOT REQUESTED The TOPS-IO or TOPS-20 monitor has requested a reload. end reloads the system. 9.3.4 The front KLERR MESSAGES KLERR is designed to run automatically without operator intervention. However, KLERR does print some messages on the console that can be useful in diagnosing a system problem. A list of possible error messages and their causes follows. Argument Out of Range The number that was to be loaded into the burst was greater than the maximum number allowable. count register KL CRAM Address Error The CRAM address that was to be read is not a valid CRAM address. Can't Clear KL Clock The attempt to clear the KL clock failed. Can't Clear KL Run Flop An attempt to clear the Run Flop failed. 9-8 ERROR DETECTION AND LOGGING KL Clock Error Stop A check of diagnostic register I reveals that there is in the KL Clock. an error Can't Find KL Halt Loop The microcode would not go into its halt loop even when do so. told to Can't Sync KL Clock The function execute to synchronize the KL clock failed. Can't Set KL Run Flop KLERR was unable to set the Run flop. DTE-20 Not Privileged, No KL Operations are Legal This DTE is not the privileged DTE that is allowed complete access to the KL. The privilege switch on the outside of the cabinet of the DECSYSTEM-20 ~hould be checked. DTE-20 Status Failure An attempt to read or write the DTE status register failed. Run and Halt Loop Both On The KL thinks that the microcode is currently in the and also running normally, both at the same time. halt loop the EBOX EBOX Clock Timeout The EBOX clock timed out during an attempt to simulate clock via MBOX clocks. EBUS Parity Error Parity errors have been detected on the EBUS. Function Read Failed A Function Read operation failed. Function write Failed A Function Write operation failed. Function Execute Failed A Function Execute operation failed. Illegal Function Code The code in the argument of the Function Read, Function write, or Function Execute command does not match existing values. Internal Programming Error A problem exists in the system software. 9-9 ERROR DETECTION AND LOGGING Examine Deposit Mode Illegal The arguments for a Deposit or Examine of the KL were not set correctly. up Odd Function Code The number of the Function Read, Function Execute does not match existing values. Write, or Function Unmatched Error Code The error code reported does not match any on the list errors. of known KL in Halt Loop The PDP-II put the KL into the halt loop. KL not in Halt Loop The PDP-II could not put the KL into the halt loop. Version V03-02 Running This banner is printed when KLERR starts to run. Directory File Not Found KLERR could not find the directory file into which the error file would be placed. PARSER. LOG File Creation Failed Creation of the error file failed. Unable to Enter PARSER. LOG into Directory An error occurred when directory file. the file name was inserted into the Unable to Extend PARSER. LOG file. KLERR was denied access when it tried to append to PARSER. LOG. UNABLE TO WRITE PARSER. LOG file An error occurred when KLERR was writing the PARSER. LOG file. 9.4 LOGXFR LOGXFR is not run immediately after KLERR or KLINIT. The front end must wait until TOPS-IO/TOPS-20 has been loaded and is running so that it can transfer the PARSER. LOG file. LOGXFR runs after the SETSPD task in the front end runs. SETSPD runs when the KL has just been reloaded and wants information about line speeds from the front end. This SETSPD is not to be confused with the SETSPD that runs on 9-10 ERROR DETECTION AND LOGGING TOPS-10/TOPS-20. The last thing that SETSPD does is to make a request for LOGXFR to run. LOGXFR transfers the log file, if it exists, to TOPS-10/TOPS-20 through the DTE-20. TOPS-10 or TOPS-20 then appends the information to ERROR.SYS, the master error file. Finally. PARSER. LOG is deleted from the front-end file area. Any errors detected by LOGXFR will be preceded by XFR -and a one-line explanation of the error. 9-11 CHAPTER 10 ERROR DEBUGGING When the front end crashes, the bootstrap ROM passes a dump file to the KL (assuming the KL is running at the time). Much information can be extracted from this file, given the right tools. This chapter explains what data you can get from a dump file using FEDDT. Since FEDDT runs only on TOPS-20, this chapter is essentially useful only to those 'users who have access to a machine running TOPS-20. (Do not take this to mean that TOPS-IO front~end dumps cannot be read. They simply cannot be read with any symbolic debugger currently available to users of TOPS-IO.) Section 10.1 describes FEDDT. Once you are familiar with FEDDT, you can proceed to examine locations in the dump file and attempt to determine the cause of the crash. Although much of the data in a dump file is rather obscure, several locations contain data that is almost always useful in this attempt. These locations are identified, and the meaning of the data they contain is related. Finally, a complete list of all the information in the Front End Status Block is presented. 10.1 USING FEDDT FEDDT is a tool for symbolic debugging of dumps taken of front end crashes. FEDDT runs only on TOPS-20. (Unfortunately, no TOPS-IO analog currently exists.) FEDDT can also be used for symbolically depositing and examining data in the physical front-end memory, using the DTE-20 and the Primary Protocol deposit and examine functions. FEDDT can type PDP-II addresses as instructions, numbers in a given radix, or bytes of a given size. It has the capability for accepting user-defined symbols, either read from a .MAP or .CRF listing, or defined at the terminal. In addition, FEDDT has an initial symbol table of all PDP-ll/40 instructions. FEDDT reads a binary dump file of PDP-II core. This file normally comes across the DTE-20 under control of the PDP-II's bootstrap ROM, and TOPS-IO/TOPS-20 writes the file into its own area as <SYSTEM>ODUMPll.BIN. This implies that the KL must be running for the front end to produce a dump file. You need not transfer the dump file to some other directory to save it, because the directory PS:<SYSTEM) has an infinite generation-retention count; therefore, the system will never delete old copies of files in this directory without an E~xplicit command. FEDDT reads the file upon receiving an $Y (ESC-Y or Alt-mode-Y) command. FEDDT has the ability to write selected portions of this file in ASCII to any device (with a $$D command), or to compare selected portions of this file with any other file, and write the result in ASCII to any device (with a $$X command). 10-1 ERROR DEBUGGING In the following example, the user loads the RSX-20F symbol file and saves a copy of FEDDT that includes the symbols. This allows the user to start FEDDT later with the symbols already loaded. Lowercase letters denote information typed by the user. Example: @feddt [FEDDT] $$y SYMBOL FILE: exec.map READ 291 SYMBOLS iThis is the program prompt iEscape Escape Y iName of file iDone iAt this point, iRSX20F symbols ihave been read iBack to the exec iSave symbols copy iBack into FEDDT iEscape Y iRead latest crash iSize of dump iUser performs task "'c @save fesym @reenter $y INPUT FILE: <system>Odumpll.bin CORE SIZE IS 28K The following is,a brief description of the commands available in FEDDT. In examples, the expression [value] indicates an arbitrary PDP-II number (square brackets are not part of the command). Command Effect TAB Causes the current location to be closed. The current location is then set to the current value, and the new location is opened, as with a slash command. LF Examines the next location. CR Closes the current location. CTRL-U Same as rubout. SPACE Ends the current expression, and adds value. it to the current Ends the current expression, and sets the current value to the logical OR of the current value and the current expression. (Underscore) Ends the current expression, and sets the current value to the logical AND of the current value and the current expression. Ends the current expression, and sets the current value to the logical XOR of the current value and the current expression. * Ends the current current value. expression, + Ends the current expression, and adds value. 10-2 and multiplies it to it by the the current ERROR DEBUGGING Effect Command Ends the current expression, current value. and subtracts it from the Contains the value of the current location. / Makes the current location the current value, opens it, and prints the contents. Following an ASCII string of six or fewer characters, defines the ASCII string as a symbol whose value is to be made the current value. Ends the current expression, number in the current radix. and types its value as a \ Ends the current expression, and examines its value as a symbolic expression. The location counter is not changed. RUBOUT Aborts the current expression. ALT-MODE Commands Effect Command $A Sets address mode. $B Sets byte mode. $C Sets constant mode. $D Dumps PDP-II memory to output device. The correct format is [start-address] <[end address]>$D. Asks for the output file specification. $1 Sets output mode to EBCDIC text. $K Suppresses the previous symbol typed either by the user by FEDDT. $M Sets the mask word for searches. $N Searches memory for words which, when ANDed with the mask word, are not equal to the word specified. The format is [start-address]<[end-address]>[word]$N. $F Enables relocation on symbol table readin. A number typed before the escape is added to every relocatable symbol to determine its actual value. $R Sets radix (values can be 2 through 16). $S Sets output mode to symbolic. $T Sets output mode to bytes. The byte size is specified the number that precedes the escape (or Alt-mode). $W Searches memory for words which, when ANDed with the mask word, equal the word requested. The format is the same as that for the $N command. 10-3 or by ERROR DEBUGGING Command Effect $X Compares selected portions of memory with the file already selected with the $$X command (see below for the $$X command). The command requests an output filename. $Y Reads in a binary dump file. Requests the input file description. This command resets the job starting address~ so that FEDDT can be saved with a dump read in and then restarted. $$A Sets address mode permanently. $$B Sets byte mode permanently. $$C Sets constant mode permanently. $$K Complements the Suppress All Symbols switch. $$0 Opens physical PDP-II core. $$P Clears the relocation allowed flag. $$R Sets the radix permanently. $$S Sets symbolic mode permanently. $$T Sets byte mode permanently. $$X Reads another binary file, compares it with the present one, and writes the differences to a specified file. The correct format is: [low-limit]<[high-limit]>$$X. $$Y Reads a symbol table file. If the extension of the file is .MAP, it is assumed to be a map file produced by LNKXll or PDP-II TKB. Otherwise, it is assumed to be a CREF listing produced by MACYll. 10.2 INTERPRETING AN RSX-20F DUMP The RSX-20F dump file, <SYSTEM>ODUMPll.BIN, contains useful information for those investigating a front-end crash. Users of TOPS-20 can read this file with the symbolic debugger FEDDT. (There are, unfortunately, no tools for users of TOPS-IO that can be used for this purpose, at least at the present time.) By examining various locations in the dump file, and comparing them with expected values and with other locations, you can often determine why the front-end crash occurred. However, crashes occur for innumerable reasons and in many different environments. Thus, it is not possible to give a simple formula that will take the dump file as input and give as output the answer to thE~ question "Why did the front end crash?". You must examine all aspects of the situation, many of them not symbolized in the dump file. For example, some installations have had problems that, when investigated, were found to be caused by poor wiring schema - lines connecting vital pieces of hardware were longer than they should have been, and the noise on the line confused all concerned. This problem is just one of many that could cause RSX-20F to crash without having anything to do with the software itself. It emphasizes the fact that all aspects of the environment must be considered in attempting to determine the root of the problem. 10-4 ERRO~ The following points should be dumps from RSX-20F. DEBUGGING ~ept in mind while you If the problem was severe, random have been erased or overwritten. 2. Not all situations that are seen by humans as problems result in RSX-20F crashing. Therefore, RSX-20F may not produce the dump you need to determine the problem. 3. Because PDP-II stacks use autodecrement mode, the stack grows toward lower core, not higher. 4. The PDP-II low-order byte is the left-hand one. 5. Many times hardware problems masquerade as software problems. Something that seems to have been caused by software is often found to be a subtle manifestation of a hardware difficulty. right-hand in memory crash 1. 10.2.1 locations examine byte, not may the Useful Data in Dump Files Although each crash is different from another, if only because the environment is different, there are some data that you will always wish to have before attempting to fix blame for the crash. This includes such data as the crash code, the task that was running at the time of the crash, and the last instruction to execute before the crash. This section explains how to obtain this useful data. When you examine a dump file, you should first find out what the crash code was. The crash code is a three-letter code that identifies the type of error RSX-20F detected when it crashed. The code is always at locations 0 and 2 in the dump file. If no readable code is in these locations, RSX-20F did not have control over the crash; the PDP-II may have been halted with the HALT switch, or there may have been a Keep-Alive-Cease error, for example. At this point you may wish to make sure that the version of RSX-20F you are using is consistent with the version of the symbol file you loaded into FEDDT. You can verify this by checking the locations .VERNO, .VERNO+2, .VERNO+4, and .VERNO+6. These locations contain data of the form Vxyy-zz, where ,x is either A for 1080/1090's, E for 1091's, or B for .TOPS-20, and yy and zz are the version and edit numbers, respectively. You can find out which task was running at the time of the crash by examining the location .CRTSK. This location points to the ATL node of the current task. When you have opened .CRTSK, you can use the <TAB> command in FEDDT to open the location to which .CRTSK points. The response from FEDDT includes a symbolic address that is the symbol used internally by RSX-20F to name a task. You can determine the last instruction to execute before the crash by examining the location SPSAV. This location contains a copy of the stack pointer at the time of the crash. Since the PS (Processor Status word) and PC (Program Counter) are stored on the stack at the time of a crash, you can find out to which instruction the PC pointed. (Of course, the last instruction to execute would be the one previous to that pointed to by the stacked PC.) Once you have opened SPSAV, you can use the <TAB> command to open the address pointed to by SPSAV. This address will be the top word in the stack. If SPSAV is zero, the 10-5 ERROR DEBUGGING crash was caused by a Keep-Alive-Cease. If it is not zero, and the crash code is not a T04, FTA, RES, BPT, or DTO, the top three words on the stack will be R5, the PC, and the PS, in that order. If the crash code is a T04, FTA, RES, BPT or DTD, and SPSAV is not zero, the fourth, fifth, and sixth words will be R5, the PC, and the PS, respectively. Subtracting two from the address contained in the PC gives you the address of the last instruction to execute. You can also find other PSIS and PC's further down the stack that were saved earlier. This data can help you determine the environment prior to the crash~ you must be careful, however, in using the data, because random data can sometimes appear similar to a saved copy of the PS and PC. You may wish to examine the PDP-II registers and the DTE-20 registers. The PDP-II registers are stored in locations 40 through 56 (RO at 40, R7 at 56). Since R6 (at location 54) is the hardware stack pointer, it points to the top of the stack at all times. Note that R7 almost always contains the same address, because it is pointing to ROM code. The DTE-20 registers are stored in locations 130 through 156. One of the most frequent reasons for RSX-20F crashing is the lack of sufficient buffer space. This causes crashes of the B02/B03/BFl tYPE~. RSX-20F uses three areas for stoiage: the Free Pool, the Big Buffer, and the Node Pool. The Free Pool runs out of space the fastest because it is used the most frequently (it holds TPY thread lists and LPT thread lists). When looking at any of these areas, the questions you should try to answer are: 1. How much space is left in the buffer? 2. How fragmented is the space that is left? 3. Are all the pointers pointing to the correct places? 4. Is the count of free space an accurate representation of state of the buffer? the The initial pointers to each of these areas follows . Free Pool Big Buffer Node Pool . FREPL is the pointer to the first free chunk storage space • • FREPL+2 is the tally of the free space remaining this area . of . BGBUF is the pointer to the first free chunk storage space • • BGBUF+2 is the tally of the free space remaining this area • of in in . POLLH is the pointer to the first free node in the doubly-linked queue . • POLLH+2 is the pointer to the last node in the queue. The queues, both TO-IO and TO-II, can yield some hints on the cause of the crash, especially in cases such as buffer overflows where the queues may have used, up all the buffer space. The TO-IO queue pointer (TOIOQ) points to itself when the TO-IO queue is empty, whereas the TO-II queue pointer (TOllQ) contains zero if the queue is empty. Thus, in order to examine the entire TO-IO queue, you open the location TOIOQ and use the <TAB> command until the contents of the location you open is TOIOQ. To examine the entire TO-II queue, you open the location TOIIQ and use the (TAB> command until the contents of the location you open is zero. 10-6 ERROR DEBUGGING 10.2.2 Sample Dump Analysis In the following dump analysis, a sample RSX-20F dump is examined to determine what caused the crash. The dump has been produced by aggravating a known RSX-20F weakness, which is the lack of free space. A privileged program doing repeated Send-aIls can easily fill up all the available space and cause buffer overflows, because the Send-all message must be put into the thread list of every active terminal. The sample analysis belOw assumes that a copy of FEDDT (called FESYM) has been saved with the symbol file already loaded into it. The first thing to do after starting the FESYM program is to determine the crash code. @FESYM $Y INPUT FILE: PS:<SYSTEM>ODUMPII.BIN CORE SIZE IS 28K $T 2/ 0/ 2<0> BO The stopcode is B02, buffer overflow, which is produced by the DTE-20 device driver when it cannot find Free Pool space for a TO-II indirect transfer. Since we know this much about the cause of the crash, there is no reason to find out the task that was running or the last instruction executed. Therefore, the next step in the dump analysis is to examine the Free Pool. $$A .FREPL/ 65664 .FREPL+2/ .FREPL/ 65664 65664/ 70674 70674/ 72234 72234/ 72474 72474/ 73034 73034/ 75074 75074/ 0 65664/ 70674 65666/ PATSIZ 70676/ PATSIZ 7i236/ PATSIZ 72476/ PATSIZ 73036/ PATSIZ 75076/ PATSIZ QI.VER =300 =40 =40 =40 =40 =40 =40 Thus we can see that the Free Pool has only 300 remaining bytes in six sections, each section being forty bytes long (or 20 word~). Indirect transfers need more contiguous space than is available In the Free Pool. Since we now know that the Free Pool has run out of space while the system was attempting to do an indirect transfer, we can surmise that the indirect transfer may well have been a Send-all (especially since we know that Send-aIls can create problems for RSX-20F). Thus, we proceed to examine the Send-all buffers. The location .SNDLP points to the Send-all buffer in use~ .SNDBF is the Send-all ring buffer pointer, .SNDCN is the terminal count for a pending Send-all, and .CRSND is the pointer to the current Send-all node • • SNDLP/ DR.03 .SNDBF/ 66574 .SNDBF+4/ .SNDCN/ DR.03 .SNDCN+4/ .CRSND/ 0 =3 .SNDBF+2/ 66774 67074 .SNDBF+6/ 0 =3 .SNDCN+2/ DR.03 DR.03 =3 .SNDCN+6/ 10-7 =3 o ERROR DEBUGGING As we can tell from the three words of nonzero data at location .SNDBF, there are three ring buffers in use, which is the maximum . . SNDCN (and the following locations) tell us that three terminals have yet to empty the buffers. The queued protocol task is therefore unable to accept further Send-all messages from the KL. Thus, a logical next step would be to check the state of the TO-II queue. T011Q/ 67274/ 67374/ 67474/ 67574/ 67674/ 67774/ 70074/ 70174/ 70274/ 70374/ 70474/ 70734/ 66274/ 70574/ 71034/ 71134/ 71234/ 71334/ 66474/ 71434/ 71534/ 71634/ 71734/ 72034/ 66674/ 72274/ 72134/ 72534/ 72634/ 65464/ 73074/ 72734/ 73174/ 73274/ 72374/ 73374/ 73474/ 73574/ 73674/ 73774/ 74074/ 74174/ 74274/ 74374/ 74474/ 74574/ 65564/ 74674/ 67274 67374 67474 67574 67674 67774 70074 70174 70274 70374 70474 70734 66274 70574 71034 71134 71234 71334 66474 71434 71534 71634 71734 72034 66674 72274 72134 72534 72634 65464 73074 72734 73174 73274 72374 73374 73474 73574 73674 73774 74074 74174 74274 74374 74474 74574 65564 74674 66374 10-8 ERROR DEBUGGING 66374/ 75134/ 75234/ 75474/ 75574/ 74774/ 75674/ TOIOQ/ 75134 75234 75474 75574 74774 75674 o TOIOQ The TO-II queue is quite full (since all the Free Pool space is used for this queue). The TO-IO queue is empty. being We know that the Send-all service waits for a significant event when it has filled the ring buffer. While the Send-all service waited, the Free Pool ran out of space. However, the line printer and terminal thread lists may be contributing to the problem if they are also taking space from the Free Pool. Therefore, it would probably be a good idea to check the state of these thread lists. LPTBL/ AF.PP LPTBL+2/ LPTBL+4/ DHTBL/ 0 DHTBL+2/ DHTBL+4/ DHTBL+6/ DHTBL+IO/ DHTBL+12/ DHTBL+14/ DHTBL+16/ DHTBL+20/ DHTBL+22/ DHTBL+24/ DHTBL+26/ DHTBL+30/ DHTBL+32/ DHTBL+34/ DHTBL+36/ DHTBL+40/ DHTBL+42/ DHTBL+44/ DHTBL+46/ DHTBL+50/ DHTBL+52/ DHTBL+54/ DHTBL+56/ DHTBL+60/ DHTBL+62/ DHTBL+64/ DHTBL+66/ DHTBL+70/ DHTBL+72/ DHTBL+74/ DHTBL+76/ Etc. =200 175400 o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT. SND o 160020 TTYSP+161 TT.SND o 160020 TTYSP+161 TT.SND 10-9 EHROR DEBUGGING All the terminals and line printers have empty thread lists. Thus, the Send-all service alone must be the cause of the crash. The final step is to read the actual Send-all messages . . SNDBF/ 66574 66574/ o 66576/ CH.FOR =100 66600/ 66606 $$6T 66606/ THIS I 66614/ S A DA 66622/ TA COL 66630/ LECTIO 66636/ N TEST 66644/ PLE 66652/ ASE BE PATIE 66660/ 66666/ NT.<0><17><0> 67002/ 3<0><377>3TH 67010/ IS IS 67016/ A DATA COLLE 67024/ 67032/ CTION 67040/ TEST. 67046/ PLEAS 67054/ E BE P 67062/ ATIENT 67070/ .<0>D<15>\N 67076/ @<0>FN3<0> 67102/ 3<0><377>3TH 67110/ IS IS 67116/ A DATA COLLE 67124/ 67132/ CTION 67140/ TEST. 67146/ PLEAS 67154/ E BE P 67162/ ATIENT ./ <206>M3<0><377>3 66774/ <0><0>@<0><6>N 67074/ \N@<O>FN The message that caused the crash when sent to all users was "This a data collection test. Please be patient". 10.2.3 is Front End Status Block The Front End Status Block contains all the data and status information used by the Executive while operating. Thus, the block brings together most of the information you need to determine what the data in a crash dump file means. The following is a list of all the information contained in the Front End Status Block. 10-10 ERROR DEBUGGING FE STATUS BLOCK RSX-20F VERSION 14-44 COMMON GLOBAL DATA ADDRESS SIZE NAME USE 001000 2 .FESTB length of FE status block in words 001002 4 .EXEND limits of front-end word 1- base address of executive word 2- high address of executive 001006 2 .CRTSK pointer to ATL node of current task 001010 4 .COMEF global common event flags (FLAGS 33-64) word 2- flags 49 to 64 bit 9- (EF.FCP)fault continuation in progress bit 10- (EF.CRI)comm region is invalid bit 11- (EF.PFR)powerfai1 restart in progress bit 12- (EF.RKP)KLINIK parameters received bit 13- (EF.PR2)secondary protocol running bit 14- (EF.CTC)control C bit bit 15- (EF.PRl)primary protocol running 001014 2 .SERFG Significant event flag bit 0- (EV.SE)sig event to be recognized bit 1- (EV.AS)power fail is required bit 7- (EV.PF)power down has occured 001016 2 .SEWFL Significant event wait flag bit 0- (EV.SE)sig event to be recognized bit 1- (EV.AS)power fail is required bit 7- (EV.PF)power down has occured 001020 2 SPSAV Save area for stack pointer during crash 001022 4 PARSAV Save area for parity registers when parity error 001026 2 .PFAIL Indicates power fail in progress if non-zero 001030 2 .PFIOW Power fail recovery flag, set during power up 001032 2 PWRXSP Buffer for stack pointer during power up 001034 2 CROBAR Power-up crobar timer, power up attempts=6 001036 12 .VERNO RSX-20F ASCII version number 001050 2 .CKASS Clock AST address for current task 001052 2 .PFASS Power fail AST address for current task 001054 40 001114 2 .MSIZE Memory size in 64 byte blocks (1600) 10-11 FE status block COMMON GLOBAL DATA ADDRESS SIZE NAME USE 001116 2 EMTSTK SP saved during EMT execution 001120 2 TRPASV Saved PS during EMT/trap execution 001122 1 .NOERR Don't recognize KL errors if non-zero 001123 1 .NOHLT Don't recognize KL halts if non-zero 001124 2 .TKTN TKTN required if non-zero, checked by null task 001126 2 .KLITK KLI requested, read by TKTN bit 0- (KS.TSP)ten halted bit 1- (KS.CES)c10ck error stop bit 2- (KS.EPE)E box parity error bit 3- (KS.DEX)deposit/examine error bit 4- (KS.CST)keep alive stopped bit 5- (KS.~RR)ten request's re-boot bit 6- (KS.PFT)power fail restart bit 7- (KS.PTO)protoco1 timeout 001130 2 .KLERQ KL crash snapshot flag for PARSER l=take snapshot O=no snapshot 001132 2 .KLIWD KLI word to determine boot parameters bit 0- (KL.LRM)load RAMS bit 1- (KL.CFM)configure memory bit 2- (KL.LVB) load VBOOT bit 3- (KL.VBN)VBOOT start at START+1 bit 4- (KL.VBD)dump monitor bit 5- (KL.SPF)start at 10c 70 (power fail) bit 6- (KL.LCA)load cache bit 7- (KL.SSC)start at loc 407 (system crash) bit 8- (KL.CFL)if 0, configure from file bit 9- (KL.KAC)keep alive ceased error bit 10- (KL.DEF)operator reboot from switches bit 11- (KL.REQ)KLINIT requested bit 12- (KL.ABO)KLINIT canceled 001134 2 .TICKS Unrecognized clock tick counter 001136 2 .CLKSW Clock overflow switch 001140 2 .DATE Front-End date valid flag 001142 2 .YEAR Decimal year (1979) 001144 1 .DAY Day of month 001145 1 • MaN Month of year 001146 1 .DST Daylight savings time flag 001147 1 .DOW Day of week index 10-12 FE status block COMMON GLOBAL DATA ADDRESS SIZE NAME USE 001150 4 .SSM Elapsed time in seconds since midnight 001154 2 .TKPS Clock rate in jiffies 001156 2 .SYUIC System UIC ([5,5]) 001160 2 .BTPRM Boot parameter from switch register bit 0- (BP.SWR)switch register button pushed bit 1-2- (BP.LDO,BP.LDl)boot options O=auto deadstart entire system l=deadstart RSX-20F only 2=reboot RSX-20F only 3=operator controlled start bit 3-6- (BP.CSP)CTY speed if DH,l=DL,O=default bit 7- (BP.RP4)load from RP04/rp06 bit 8-10- (BP.UNT)boot unit or DH unit bit 11-14- (BP.CLN)CTY line no. (within DH/DL) bit 15- (BP.ERR) indefinite error load retry 001162 2 .BTSCH Character saved for secondary protocol 001164 2 .ACKAL Send acknowledge-all protocol message 001166 2 .KLERW KLI word for error reporting by SETSPD 001170 2 .FEMOD Front-End console mode flag for PARSER 1= (LG.OPR)operator 3= (LG.PRM)programmer 7= (LG.ALL)maintenance 001172 1 .KLRLD KL automatic reload flag 001173 1 .KLFCF KL Fault Continuation Flag 001174 2 .KLFLG Flag for PARSER to indicate state of KL bit 6- (KF.CES)clock error stop bit 7- (KF.CON)KL continuable bit 8- (KF.KLO) instruction mode bit 9- (KF.BRM)burst mode bit 10- (KF.SPM)single pulse EBOX mode bit 11- (KF.SMC)single pulse MBOX mode bit 12- (KF.SIM)single instruction mode bit 13- (KF.MRS)master reset flop set bit 14- (KF.RUN)run flop nn bit 15- (KF.CLK)clock running 10-13 FE status block KLI~IK ADDRESS SIZE DATA BASE NAME USE 0.0.1176 2 .KLNPB KLINIK parameter block length (26) 0.0.120.0. 2 .KLNBC Byte count for transfer (24) 0.0.120.2 2 .KLNFT KLINIK enable start time 0.0.120.4 4 .KL~FD KLINIK enable start date 0.0.1210. 2 .KLNTT KLINIK enable end time 0.0.1212 4 .KLNTD KLINIK enable end date 0.0.1216 2 .KLNMD KLINIK console mode byte 0.- console mode 1= (LG.OPR)operator 3= (LG.PRM)programmer 7= (LG.ALL)maintenance byte 1- status D=disabled l=remote -l=user 0.0.1220. 6 .KLNPW ASCII password for KLINIK 0.0.1226 2 .KLNSW KLINIK line status byte 0.- line use D=disabled l=remote -l=user byte 1- current status l=clear KLINIK, recall PARSER 2=report carrier loss 3=disconnect, recall PARSER 4=disconnect and exit 10.-14 FE status block QUEUED PROTOCOL DATA BASE ADDRESS SIZE USE NAME 001230 2 COMBSE Base of communication area 001232 2 PRMEMN My processor number 001234 2 DEPOF Deposit offset from examine 001236 12 PROTBL Processor word 1word 2word 3word 4word 5- 001250 2 .CRQZ Size of current TO-10 buffer 001252 2 .CPFN Function in current TO-10 buffer 001254 2 .CPDV Device in current TO-10 001256 2 .CRSZ Size left in current TO-10 buffer 001260 2 .CRPB Pointer to open word in current TO-10 buffer 001262 2 .CRHD Head of current TO-10 queue 001264 2 .CRSB Pointer to current function/size in TO-10 buffer 001266 2 DTEMSK DTE device event flag mask 001270 2 DTEADR DTE device indirect flag address 001272 2 T011NP Pointer to current received node 001274 2 T011HD Count of bytes in this queue 001276 2 T011FN Current received TO-II function code 001300 2 T011DV Current received 001302 2 TOl1SP Space 001304 2 T011FW First word of function 001306 2 T011GW Guard word for DTE20 (-1) 001310 2 T011AS Address save 001312 2 TOI1BS Byte count of TO-II transfer saved 001314 2 T010SZ Byte count of transfer 001316 2 T010AS TO-IO transfer address saved 001320 6 STSTT TO-10 status 001326 4 T010Q Listhead for TO-10 queue identification table (DTENM)DTE addr to access this proc (EMYN)addr to read from proc 0 (DMYN)addr to write to proc 0 (EHSG)addr from general (EHSM)addr from specific 10-15 TO~ll buffer device number FE status block Queued Protocol Data Base ADDRESS SIZE USE NAME 001332 2 EQSZ TO-II queue size 001334 2 TOIIQ Head of TO-II queue 001336 6 STATI Status/scratch word for examine/deposit 001344 2 DEXST DEX done timeout 001346 2 DEXTM3 Deposit/examine word 3 for retry 001350 2 DEXTM2 Deposit/examine word 2 for retry 001352 2 DEXTMI Deposit/examine word 1 for retry 001354 2 .PRADR Address of priviledged offset table entry 001356 2 .PRSTA Address of priviledged DTE20 status (174434) 001360 2 .PRDTE Address of priviledged DTE20 (174400) 001362 2 .PRDCT Doorbell counter for KLINIT 001364 1 .DXRTY DEX error processing flag l=no error O=retry succeeded -l=retry failed 001365 1 .EBRTY EBUS parity error processing flag l=no error O=retry succeeded -l=retry failed 001366 2 .EBPEQ Pointer to EBUS/DEX error snapshot queue 001370 2 .EBPEC Count of nodes in EBUS/DEX error queue 001372 1 .PRPSE Protocol pause flag -l=pause state O=no pause 001373 1 TOXQIP TO-IO queue in progress 001374 2 .DTBLK Holds re-entry point to start blocked DTE transfer 10-16 F'E suatus block KEEP A~IVE DATA BASE ADDRESS SIZE NAME USE 001376 6 KPALO Current KL10 keep alive value 001404 2 OKPALO KL10 saved keep alive value 001406 2 KPALl Current RSX-20F keep alive value 001410 2 .KPAC Counter of keep alive for XCT 71 byte 0- keep alive counter byte 1- XCT 71 counter 001412 2 .KACFL XCT 71 retry flag 10-17 FE status block CORE MANAGER DATA BASE ADDRESS SIZE NAME 001414 4 .BGBUF Big buffer space word 1- pointer to first node in free space word 2- current total size of space 001420 4 .FREPL Free pool list word 1- address of first node in free pool word 2- current total size of free pool 001424 4 .POLLH Pool header for ATL and send nodes word 1- pointer to start of list word 2- pointer to end of list 001430 700 .POLST Pool list (14 entries) 16 word entries word 1- pointer to next block word '2- pointer to previous block 002330 40 .POLND Pool end 16 word entry word 1- pointer to next block word 2- pointer to previous block U~ 10-18 FE status block CLOCK REQUEST LIST ADDRESS SIZE USE NAME 002370 204 .CLKBA Clock list 6 word entries word 1- {C.AT)ATL node address of requestor word 2- {C.AS)AST trap address of requestor word 3- {C.SD)schedule delta in ticks word 4- {C.RS)reschedule delta in ticks word 5- {C.FM)flag mask word 6- {C.FA)flags word address 002574 2 .CLKEA End of clock list guard word 10-19 FE status block TERMINAL SERVICE DATA BASE ADDRESS SIZE USE NAME 002576 2 .INHDM Inhibit/enable remote lines (O=enable) 002600 2 .ABCNT Count of auto bauded lines 002602 2 .ABFLG Interlock flag for SETSPD 002604 2 .SNDLP Pointer to send-all buffer in use 002606 10 .SNDBF Send-all ring buffer pointer 002616 10 .SNDCN Send-all TTY count for send-all pending 002626 2 .CRSND Current send-all node pointer 002630 2 .BRKeH Break character 002632 2 .TTPII TTY PDPII input in progress flag 002634 2 .CTYPT CTY line pointer 002636 2 .KLNPT KLINIK line pointer 002640 2 $UNIT DH unit number if CTY 002642 2 $BTMSK Mask to start CTY if DH 002644 2 DMTMP Saved DMII/BB controller number 002646 2 DHTMP Saved DBII controller number 002650 2 DLTMP Saved DLII controller number 002652 2 DHSTSV Saved DHII table pointer from PS 002654 2 .TTELQ Terminal error logging queue ptr 002656 2 .TTELC Count of nodes in error logging queue 002660 2 .TTELB Temp buffer ptr for error logging 002662 2 TMOCNT Timeout counter byte 0- terminal(lO) byte 1- modem(22) 002664 40 CTYSTS CTY status block word 1- (STATS)status word bit 0- (FLBT)unprocessed fill count bit bit 0-3- (FLCT)unprocessed fill count field bit 4- (RUBP)rubout sequence in progress bit 5- (CTLO)output disabled bit 8- (EOLS)end of line seen bit 9- (CRJT)CR typed just typed bit 10- (CRTY)carriage control at EOL bit 11- (LFBT)unprocessed LF add/sub bit bit 11-14- (LFCT)unprocessed LF count field bit 15- (MODE)terminal busy(l=output,O=input) 10-20 (control \) FE status block Terminal Service Data Base ADDRESS SIZE NAME USE word 2- {STRBF)current input buffer address word 3byte 0- {RMBYT)remaining bytes in buffer byte 1- {FNBYT)terminal byte word 4- {CURBF)starting buffer address word 5byte 0- {MECNT)multi-echo byte count byte 1- {FLBYT)fill byte word 6- {MEBUF)multi-echo buffer address word 7- {MBUFR)dynamic multi-echo buffer word 8- {HORPS)horizontal position of carriage word 9- {DHBUF)DH character buffer if CTY a DH 002724 2 CNT I/O packet size 002726 2 BYCNT I/O packet size 002730 2 CRADR Current I/O address 002732 2 TTPKT I/O packet address 10-21 FE status block TERMINAL DRIVER DATA BASE ADDRESS SIZE NAME USE 002734 40 DMTBL DMll/BB table 2 word entries (8 entries) word 1- DMll/BB base address word 2- pointer to DHll table entry 002774 2 DMTBE End of table marker(O) 002776 10 DLTBL DLll/C table 4 word entry for each DLll/C line (1 entry) word 1- (THRED)out~ut thread word pointer word 2- (TTYEXP)device base address word 3- (STSWO)status word 0 DLll- input flag DHll- line speed bit 6-9- (SO.ISP)input speed bit 10-13- (SO.OSP)output speed bit 14- (SO.CON)remote line connected bit 15- (SO.ABR)autobaud report pending word 4- (STSWl)status word 1 bit 0- (TT.OUT)TTY output flag bit 1- (TT.CTY)console CTY bit 2- (TT.CRW)waiting for carrier bit 3- (TT.ABW)auto-baud wait bit 4- (TT.XEN)XON/XOFF enabled bit 5- (TT.ABL)auto-baud line bit 6- (TT.RMT)remote line bit 7- (TT.XOF)line is XOFF'D bit 8- (TT.NSA)suppress send-aIls bit 9- (TT.SIP)send-all in progress bit 10- (TT.RIP)remote in progress bit 11-12- (TT.FEC)framing error count bit 13- (TT.RSI)restart tty on timeout bit 14- (TT.SNI) increment send-all index bit 14-15- (TT.SND) index of next send-all 003006 40 DLETBL DLll/E table 4 word entry for each DLll/E line (4 entries) see above 003046 2000 DHTBL DHll table 4 word entry for each DHll line (128 entries) see above 005046 2 .TTS2F Flag for clock service 005050 2 .S2IDC Current count of locally disabled lines 005052 2 .S2ITP Table position of last locally enabled line 005054 2 .IBFLO Input buffer low threshold 005056 2 .IBFOR Input buffer ok threshold 10-22 FE status block Terminal Driver Data Base ADDRESS SIZE 005060 412 NAME STSW2 USE Terminal input control table(133 entries) bit 0-7- (S2.CHR)deferred write char bit 8-9- (S2.CNT)wait count field bit 9- (S2.SSZ)set input speed to zero bit 10- (S2.ACK)owe this line an ack bit 11- (S2.LCL)input XOFF'd,local request bit 12- (S2.ENB)deferred input XON request bit 13- (S2.DIS)deferred input XOFF request bit 14- {S2.DIP)input XOFF in progress bit 15- (S2.DDN)input is XOFF'd 10-23 FE status block FLOPPY DRIVER DATA BASE (TOPS- 2 0 ONLY) ADDRESS SIZE NAME * USE 005472 2 DXRTC Error retry count (8) 005474 2 DXCNT Byte count of transfer 005476 2 DXBUF Address of buffer 005500 14 DXVCB word word word word word word 1- logical or physical sector number 2- bytes to transfer on current sector 3- current function code 4- physical sector number(1-26.) 5- physical track number(O-77.) 6- status register after interrupt 005514 2 DXUNIT Current unit number 005516 2 DXPKT I/O packet address * note: TOPS-20=2040,2050,2060,1091 10-24 FE status block DECTAPE DRIVER DATA BASE (TOPS-10 ONLY) ADDRESS SIZE NAME USE * 005472 2 DTRTC Error retry count and reset flag 005474 2 DTRNA Request node address 005476 4 DTBUF DECtape buffer 005502 2 DTCNT Buffer size 005504 2 DTCW2 005506 2 DTCW3 005510 10 Pad to floppy driver size * note: TOPS-10=1090 10-25 Fg status block DISC DRIVER DATA BASE ADDRESS SIZE NAME USE 005520 2 RPRTC Error retry count (8) 005522 2 RPRNA Address of request node 005524 4 RPBUF Address of buffer word 1- high order of address word 2- low order of address 005530 2 RPCNT Transfer size 005532 2 RPUNIT Current unit number 005534 2 RPCW2 005536 2 .RPELQ RH-ll error logging queue 005540 2 . RPELC Count of nodes in RH-ll error queue 10-26 FE status block FE DRIVER DATA BASE ADDRESS SIZE 005542 10 USE NAME FETBL Table of FE device states 1 word per FE device ( 4 ) bit 10- {FE.DET)more data bit 11- {FE.DTE)more data bit 13- {FE.SER)servicing bit 14- {FE.STR)servicing 11 10 11 10 005552 2 NODADR Current request node address 005554 2 ADRSAV Address saved 005556 2 BYTESA Byte count of transfer 005560 4 STSWD I/O status words 005564 22 T010PK 11 request to 10 packet address 005606 2 DNBLK Response to 10 request 005610 6 DNFCN Function 005616 6 DNSTS Status 005620 40 BLKTT Data buffer 005664 2 . RPUNT RP unit number 005666 2 .FEACT FE device available for DB access 005670 4 . RPADR 005674 4 .RPSIZ 10-27 to 10 to be sent to 11 expected transfer request transfer request FE status block CD-II DRIVER DATA BASE ADDRESS SIZE NAME USE 005700 2 CREVFG Address of CR task's event flags 005702 2 CRCEVF Current event flags 005704 2 CRHUNG Count of times CR found hung 005706 2 .CRPFL Power fail flag for card reader 005710 2 CRSTBH Header word of status block 005712 16 CRSTBK Status return block to 10 word 1- 1st status word bit 0- (DV.NXD)non-existent device bit 1- (DV.OFL)dovice off-line bit 2- (DV.OIR)hardware error, apr required bit 3- (DV.SCN)software error, ACK required bit 4- (DV.IOP)I/O in progress bit 5- (DV.EOF)end of file encountered bit 6- (DV.LOG)error logging required bit 7- (DV.URE)un-recoverable error bit 8- (DV.Fll)error on from 11 request bit 9- (DV.HNG)device hung word 2- 2nd status word, device dependent bit 0- (DD.RCK)read check bit 1- (DD.PCK)pick check bit 2- (DD.SCK)stack check bit 3- (DD.HEM)hopper empty bit 4- (DD.SFL)stacker full word 3- control and status register word 4- column count register word 5- bus address register word 6- data buffer register 005730 2 CRBUFH Header word of data buffer 005732 240 CRBUFF Data buffer from CDll 006172 2 006174 2 CRTHD Threaded list pointer 006176 2 CREXP Device external page address 006200 2 CRSTS Status bits bit 8- (CR.NSF)not stacker full bit 9- (CR.NXD)non-existent CD-II bit 10- (CR.RHN)reader hung during read bit 11- (CR.ACK)acknowledge received bit 12- (CR.IOD)I/O done bit 13- (CR.IOP)I/O in progress bit 14- (CR.SST)device status changed bit 15- (CR.HNG)CR hung 006202 2 Data buffer overrun area Unused 10-28 FE status block LP-20 DRIVER DATA BASE ADDRESS SIZE NAME 006204 2 LPUNIT LP unit number from PS on interrupt 006206 2 LPEVFG Address of where to set event flags for LP task 006210 2 LPCEVF Current event flags 006212 2 LPHUNG Count of times LP was hung 006214 2 .LPPFL Power fail flag 006216 2 LPSTBH Header word of status block 006220 30 LPSTBK Status return block to 10 word 1- 1st status word bit 0- (DV.NXD)non-existent device bit 1- (DV.OFL)device off-line bit 2- (DV.OIR)hardware error, opr required bit 3- (DV.SCN)software error, ACK required bit 4- (DV.IOP)I/O in progress bit 5- (DV.EOF)end of file encountered bit 6- (DV.LOG)error logging required bit 7- (DV.URE)un-recoverable error bit 8- (DV.Fll)error on from 11 request bit 9- (DV.HNG)device hung word 2- 2nd status word, device dependent bit 0- (DD.PGZ)page counter passed zero bit 1- (DD.CHI)character interrupt from RAM bit 2- (DD.VFE)VFU error bit 3- (DD.LER)error with VF/RAM file bit 4- (DD.OVF)printer has optical VFU bit 5- (DD.RME)RAM parity error word 3byte 0- no. bytes device dependent info (2.) byte 1- no. bytes device registers (16.) word 4byte 0- accumulated checksum byte 1- retry count word 5- control and status register A word 6- control and status register B word 7- bus address register word 8- byte count register(2's complement) word 9- page counter register word 10- RAM data register word 11byte 0- character buffer register byte 1- column count register word 12byte 0- printer data register byte 1- checksum register USE 10-29 FE status block LP-20 Driver Data Base ADDRESS SIZE NAME USE 006250 20 LPTBL LP first device table 4 word entry for unit 0 word 1- (LPSTS)status bits bit 0-1- (LP.UNT)unit number bit 7- (LP.EOF)end of file encountered bit 8- (LP.F10)from 10 request queued bit 9- (LP.LIP)load VFU in progress bit 10- (LP.CLR) clear RAM required bit 11- (LP.WAT)LP waiting for response bit 12- (LP.MCH)mu1ti-char printing bit 13- (LP.PZI)page zero interrupt enabled bit 14- (LP.SST)send status to 10 bit 15- (LP.HNG)device hung word 2- (LPCSA)externa1 page address word 3- (LPTHD)thread list pointer word 4- (LPITH)current buffer pointer 4 word entry for unit 1 006270 20 LPTBL2 LP second. device table 4 word entry for unit 0 word 1- (LPMCB)mu1ti-character buffer word 2- (LPCSM)accumu1ated checksum word 3- (LPRTY) retry counter word 44 word entry for unit 1 006310 20 LPTBL3 LP third device table 4 word entry for unit 0 word 1- (LPRMA)VFU data address word 2- (LPRMZ)VFU data buffer size word 3- (LPRMC)current ptr into VFU data word 44 word entry for unit 1 006330 4 LPUTBL Unit table pointer word 1- unit 0 pointer in LPTBL word 2- unit 1 pointer in LPTBL 10-30 FE status block SYSTEM TASK DIRECTORY ADDRESS SIZE NAME USE 006334 2 .STDTA Pointer to STD list 006336 2 .STDTC Maximum STD list size (18 entries) 006340 2 .STDTZ Current size of STD list 006342 44 .STDTB STD table 18 pointers to task's STD entries word 1- card reader driver word 2- DTE driver word 3- FE driver word 4- floppy(TOPS-20) *,DECtape(TOPS-lO) * word 5- FllACP task word 6- line printer driver word 7- queued protocol task word 8- disk driver word 9- terminal driver word 10- install task 006406 40 STDDTE DTE driver STD entry 16 word task STD entry word 1- (S.TN)task name .(lst 3 chars) word 2- task name (2nd 3 chars) word 3- (S.TD)default task partition word 4- (S.FW)flags word bit 0- (SF.TA)task active bit 1- (SF.FX)task fixed bit 2- (SF.EX)task to be removed bit 14- (SF.IR)install requested bit 15- (SF.ST)system task word 5byte 0- (S.DP)default prior~ty byte 1- (S.DI)system disk indicator word 6- (S.BA)1/64th of base address word 7- (S.LZ)size of load image word 8- (S.TZ)max task size word 9- (S.PC)initial PC word 10- (S.SP)initial SP word 11- (S.RF)send/req queue forward ptr word 12- (S.RB)send/req queue backward ptr word 13- (S.SS)SST vector table address' word 14- (S.DL)load image low disk address word 15- load image high disk address word 16- zero see above * note: TOPS-20=2040,2050,2060,109l TOPS-lO=1090 10-31 FE status block System Task Directory ADDRESS SIZE NAME USE 006446 40 STDFED FE driver STD entry see above 006506 006504 40 40 STDDX STDDTP Floppy driver STD entry (TOPS-20) * DECtape driver STD entry (TOPS-IO) * see above 006546 40 STDFII FIIACP STD entry see above 006606 40 STDRPT RP device STD entry see above 006646 40 STDINS Install STD entry see above 006706 40 STDLPT LP driver STD entry see above 006746 40 STDCDR CR driver STD entry see above 007006 40 STDTTY TTY driver STD entry see above 007046 40 STDQPR Queued protocol STD entry * note: TOPS-20=2040,2050,2060,1091 TOPS-IO=1090 10-32 FE status block ACTIVE TASK LIST ADDRESS SIZE NAME USE 007106 4 .ATLLH ATL header word 1- forward pointer (DTE) word 2- backward pointer (null task) 007112 40 DTETSK DTE task ATL entry 16 word ATL entry word 1- forward linkage word 2- backward linkage word 3- (A.SP)SP of running task word 4- (A.PD)run partition word 5- (A.RP)run priority word 6- (A.HA)1/64th of base address word 7byte 0- (A.TS)task status 2= (TS.LRQ)load request queued 4= (TS.TKN)waiting for TKTN 6= (TS.LRF)load request failed 10= (TS.RUN)task running 12= (TS.SUS)task suspended 14= (TS.WFO)waiting for flag 1-16 16= (TS.WFl)waiting for flag 17-32 20= (TS.WF2)waiting for flag 33-48 22= (TS.WF3)waiting for flag 49-64 24= (TS.WF4)waiting for flag 1-64 26= (TS.EXT)task exited byte 1- (A.FB)task flags byte bit 7- (AF.PP)primary protocol task word 8- (A.TD)STD entry address word 9- (A.EF)task event flags 1-16 word 10- task event flags 17-32 word 11- (A.FM)task event flags mask 1-16 word 12- task event flags mask 17-32 word 13- task event flags mask 33-48 word 14- task event flags mask 49-64 word 15- (A.PF)power fail AST trap address word 16- zero 10-33 FE status block Active Task List ADDRESS SIZE NAME USE 007152 40 TTYTSK TTY task ATL entry see above 007212 40 RPTSK RP task ATL entry see above 007252 40 LPTSK LP task ATL entry see above 007312 40 CDTSK CD task ATL entry see above 007352 007352 40 40 FETSK DTTSK FE task ATL entry (TOPS-20) * DECtape task ATL entry (TOPS-IO) see above 007412 40 DXTSK Floppy task ATL entry (TOPS-20) 007410 40 FETSK FE task ATL entry (TOPS-IO) see above 007452 40 QPRTSK Queued protocol task ATL entry see above 007512 40 NULTSK Null task ATL entry see above * note: TOPS-20=2040,2050,2060,1091 TOPS-IO=1090 10-34 * * * FE status block TASK PARTITION DIRECTORY ADDRESS SIZE NAME USE 007552 20 INSTPD Install TPD entry 8 word TPD entry word 1- (T.PN)partition name (1st 3 chars) word 2- partition name (2nd 3 chars) word 3- (T.BA)base address of partition word 4- (T.PZ)size of partition word 5- (T.FW)partition flags word bit 1- (TF.OU)partition occupied word 6- (T.HP)1/64th base addr of 1st hole word 7- (T.RF)MRL forward linkage word 8- (T.RB)MRL backward linkage 007572 20 DTETPD DTE TPD entry see above 007612 20 FETPD FE TPD entry see above 007632 20 TTYTPD TTY TPD entry see above 007652 20 LPTPD LP TPD entry see above 007672 20 CDRTPD CR TPD entry see above 007712 20 QPRTPD Queued protocol TPD entry see above 007732 007732 20 20 DXTPD DTTPD Floppy TPD entry (TOPS-20) * DECtape TPD entry (TOPS-IO) * see above 007752 20 RPDTE RP TPD entry see above 007772 20 F11TPD FI1ACP TPD entry see above 010012 20 GENTPD GEN partition TPD entry see above * note: TOPS-20=2040,2050,2060,1091 TOPS-IO=1090 10-35 FE status block DEVICE QUEUE POINTERS ADDRESS SIZE NAME USE 010032 40 .DQPBA CTY and DLll queue Entry for all terminals Entry for DLll lines 8 words per entry word 1- address of device table list word 2- size of entry in device table word 3- address of device start routine word 4- address of device stop routine word 5- spare word 6- address of acknowledge routine word 7- spare word 8- device count 010072 20 .DQDHO DHll queue Entry for DHll lines 010112 120 .DQDLS Data line scanner queue entry for all terminals entry for line printer entry for card reader entry for clock entry for FE device 10-36 FE status block LOGICAL UNIT TABLES ADDRESS SIZE 010232 50 USE NAME TTPEN Terminal PUD entry 20 word entry word 1- (U.DN)ASCII device name word 2byte 0- (U.UN)unit number byte 1- (U.FB)flags byte bit 5- (UF.OFL)device offline bit 6- (UF.TL)recognizes load/record bit 7- (UF.RH)handler resident word 3- (U.Cl)characteristics word bit 0- (UC.REC)record oriented device bit 1- (UC.CCL~carriage control device bit 2- (UC.TTY)TTY device bit 3- (UC.DIR)directory device bit 4- (UC.SDI)single directory device bit 5- (UC.SQD)sequential device bit 6- (UC.ETB)18 bit mode bit 8- (UC.NB) intermediate buffered bit 9- (UC.SWL)software write locked bit 10- (UC.ISP)input spooled bit 11- (UC.OSP)output spooled bit 12- (UC.PSE)pseudo device bit 13- (UC.COM)communications channel bit 14- (UC.Fll)files 11 device bit 15- (UC.MNT)mountable device word 4- (U.C2)characteristics word bit O-(CH.LAB)labeled tape bit 3-(CH.NDC)no control functions bit 4-(CH.NAT)no attaching bit 5-(CH.UNL)dismount pending bit 6-(CH.FOR)foreign volume bit 7-(CH.OFF)volume offline word 5- (U.C3)characteristics word word 6- (U.C4)characteristics word word 7- (U.AF)ATL node of task word 8- (U.RP)redirect pointer word 9- (U.HA)handler task ATL node word 10- (U.RF)request forward linkage word 11- (U.RB)request backward linkage word 12- (U.VA)address of control block word 13- (U.UI)owner UIC byte 0- (U.PC)programmer code byte 1- (U.GC)group code word 14- (U.VP)vo1ume protection word word 15- (U.AR)access rights word 16- (U.DACP)default ACP name word 17- (U.ACP)STD address of ACP word 18- (U.TF)terminal privilege word bit 0- (UT.PR)terminal privileged bit 1- (UT.SL)TTY slaved bit 2- (UT.LG)TTY logged on word 19- (U.LBH)high order no. of blocks word 20- (U.LBN)low order no. of blocks 10-37 F'E status block Logical Unit Tables ADDRESS SIZE NAME USE 010302 50 RPPEN 1st disk PUD entry see above 010352 50 .RPIPE 2nd disk PUD entry see above 010422 50 .RP2PE 3rd disk PUD entry see above 010472 50 .RP3PE 4th disk PUD entry see above 010542 50 .RP4PE 5th disk PUD entry see above 010612 50 .RP5PE 6th disk PUD entry see above 010662 50 .RP6PE 7th disk PUD entry see above 010732 50 .RP7PE 8th disk PUD entry see above 011002 011000 50 50 DXOPEN DTOPEN 1st floppy PUD entry (TOPS-20) * 1st DECtape PUD entry (TOPS-I0) * see above 011052 011052 50 50 DXIPEN DTIPEN 2nd floppy PUD entry (TOPS-20) * 2nd DECtape PUD entry (TOPS-I0) * see above 011122 50 LPOPUD Line printer PUD entry see above 011172 50 FEOPUD FE PUD entry see above 011242 50 SYOPUD System PUD entry see above * note: TOPS-20=2040,2050,2060,1091 TOPS-I0=1090 10-38 FE status block HARDWARE OPTIONS ADDRESS SIZE USE NAME 011312 2 .CPUSN KLIO CPU serial number O=not read <l=can't be read >l=valid serial number 011314 2 .HRDWR Hardware options bit 0- undefined bit 1- MOS master oscillator bit 2- extended addressing bit 3- internal channels bit 4- cache bit 5- line frequency 0=60 hertz 1=50 hertz 0011316 1 .MISC Miscellaneous bit bit 0- used by PARSER to see if it is time to do the TAKE command bit 1- PARSER has been requested 0011317 1 .ATOTA AUTO-take flag 10-39 FE status block EMERGENCY STACK ADDRESS SIZE NAME USE 011316 106 INITLM Once only initialization code 011424 o EMGSTK Emergency stack base address 10-40 FE status block I/O PAGE DUMP BLOCK ADDRESS UNIBUS ADDRESS SIZE DEVICE NAME USE 100020 760020 20 DHll DH terminal controller #1 100040 760040 20 DHll DH terminal controller #2 100060 760060 20 DHll DH terminal controller #3 100100 760100 20 DHll DH terminal controller #4 100120 760120 20 DHll DH terminal controller #5 100140 760140 20 DHll DH terminal controller #6 100160 760160 20 DHll . DH terminal controller #7 100200 760200 20 DHll DH terminal controller #8 110500 770500 10 DMll-BB Modem controller #1 110510 770510 10 DMll-BB Modem controller #2 110520 770520 10 DMll-BB Modem controller #3 110530 770530 10 DMll-BB Modem controller #4 110540 770540 10 DM.ll-BB Modem controller #5 110550 770550 10 DMll-BB Modem controller #6 110560 770560 10 DMll-BB Modem controller #7 110570 770570 10 DMll-BB Modem controller #8 113000 773000 1000 BM873-YH Bootstrap ROM 114400 774400 40 DTE-20 KLIO interface device 115400 775400 20 LP20 Line printer #1 interface 115420 775420 20 LP20 Line printer #2 interface 115610 775610 10 DLll-E DL terminal interface #1 115630 775630 10 DLll-C DL terminal interface #2 115640 775640 10 DLll-C DL terminal interface #3 115650 775650 10 DLll-C DL terminal interface #4 116700 776700 50 RHll RP04/06 disk interface 117160 777160 10 CDll Card reader interface 10-41 PE status block I/O Page Dump BLOCK ADDRESS UNIBUS ADDRESS SIZE NJ~ME 117170 777170 10 RXll Floppy disk interface (TOPS-20) 117340 777340 20 Tell DECtape interface (TOPS-I0) 117540 777540 2 DLII-W Line clock status register 117560 777560 10 DLll CTY interface 117570 777570 2 SW Switch register value 117760 777760 2 PSW Processor status word * note: TOPS-20=2040,2050,2060,1091 TOPS-I0=1090 DEVICE USE 10-42 * * APPENDIX A RSX-20F STOP CODES AND I/O ERROR CODES This appendix contains two lists of error codes. The first list contains RSX-20F stop codes. Associated with each code is the name of the module that issued the stop code, a short explanation of the error, and a possible cause of the error. The second is a list of I/O error codes that are produced by the device handlers and file control primitives. These error codes have associated messages that are listed along with them; however, due to the many different situations in which these errors can arise, no attempt is made to describe recovery algorithms for these errors. Code Module Meaning B03 SCOMM BUFFER OVERFLOW 3 The PDP-II was not able to obtain the buffer space necessary for data it wanted to send to the KL. possible Cause: Same as BFI above. B05 TTYDRR BUFFER OVERFLOW 5 The Front-End does not have the buffer space to to send an XON or an XOFF to a line. . CBR PF CROBAR ERROR DTE-20 power did;not restart. RSX-20F reappear. return allows after a power-fail it 30 seconds to possible Cause: Malfunctioning hardware in the KL. DTB QPRDTE TO-II DTE TRANSFER FAILURE A TO-II-done interrupt has occurred, but the TO-II address in the DTE TOIIAD register (register 22) did not have the expected value. Since TOIIAD is incremented for each byte transferred, it should point to the first word following the buffer into which the TO-II data was written. A-I RSX-20F STOP CODES AND I/O ERROR CODES Code Module Meaning possible Cause: The PDP-II received the wrong byte count or, more likely, the DTE has a hardware malfunction. TOIIBC contains the negative count of data that was actually trans~erred. TOIIAS contains address of data node. RI contains expected termination address and CR$DTB-2 contains the actual termination address for transfer. DTD COMTRP UNIBUS TIMEOUT Reference to the DTE-20 caused a UNIBUS timeout. possible Cause: Malfunction of the hardware in the KL. DTF QPRDTE TO-IO DTE TRANSFER FAILURE A TO-IO-done interrupt has occurred but the TO-IO address in the DTE TOIOAD register (register 20) did not have the expected value. Since TOIOAD gets incremented for each byte transferred, it should point to the first word following the packet that was sent to the KL. possible Cause: The PDP-II gave the KL the wrong byte count or, more likely, the DTE has a hardware malfunction. TOIOSZ contains the size of the transfer and TOIOAS the start address. The expected termination address is in R4. ETE QPRDTE TO-II TRANSFER ERROR A DTE interrupt occurred with the TOllER in the DTE status register bit set (register 34). possible Cause: Hardware malfunction along the data the KL and PDP-II (MBOX, EBOX, through to II-memory). FTA LC path between EBUS, DTE-20, FILES-II TASK ABORTED A task occupying FIITPD partition has aborted and the task termination notification task (TKTN) cannot be started since it too runs in the FIITPD partition. possible Cause: .TKTN may have aborted. the Active Task List task. A-2 R5 and .CRTSK point to (ATL) node of the aborted RSX-20F STOP CODES AND I/O ERROR CODES Code Module Meaning lAS SCH UNKNOWN SIGNIFICANT EVENT An unused bit in .SERFG has been set. possible Cause: PDP-II hardware malfunction or corrupted in PDP-II. .SERFG has the bit set. lLF QPRDTE software ILLEGAL PROTOCOL FUNCTION The function code in a TO-II protocol header specified a function that is outside the legal range or that is currently unimplemented. possible Cause: KL software is corrupted or hardware malfunction Rl along data path between KL and PDP-II. R4 contains contains the function code times two. the address of the protocol header. ILQ QPRDTE ILLEGAL QUEUE COUNT The KL and the PDP-II disagree on the number of direct transfers that have thus far taken place from the KL to the PDP-II. You should take into account that indirect headers are sent across the DTE-20 as direct packets. possible Cause: The PDP-II is missing TO-II doorbell interrupts, or the software of either the KL or the PDP-II is corrupted. STATI+O to STATI+2 contain the KL's TO-II status word as read by RSX-20F at the last examine. STATI+4 is the count the KL expects, and TOlOQC is the count the PDP-II expects. LRF SCH LOAD REQUEST FAILURE An attempt to load a nonresident monitor into the FllTPD partition failed. routine possible Cause: The Files-II system is incomplete or damaged. MPE LC MEMORY PARITY ERROR A memory parity error has occurred in the PDP-II· (trap to location l14). The memory status registers are stored starting at location PARSAVE. (Refer to the PDP-II Processor Handbook for details.) A-3 RSX-20F STOP CODES AND I/O ERROR CODES Code Module Meaning PTI QPRDTE PROTOCOL BROKEN An illegal protocol device number was specified in TO-II request. The number was found to be greater than the maximum allowed device number .DQPSZ (currently 10). possible Cause: KL software is corrupted or hardware malfunction along the data path between the KL and PDP-lIn The device number from the protocol header is in TOllDV. PT2 QPRDTE PROTOCOL ERROR 2 An illegal protocol function was specified in a TO-II request. The function was found to be greater than the allowed maximum BC.FNM (currently 34) . possible Cause: Same as PTI above. The function protocol header is in TOllFN. PT3 QPRDTE code from the PROTOCOL ERROR 3 The PDP-II has received a doorbell interrupt from the KL. The indirect bit in the KL's TO-II status word indicates that an indirect transfer is to be initiated. The function code, however, sent in the last protocol header, does not indicate that an indirect request is in progress (the most significant bit of the function code was not set). PossiblE~ Cause: Same as PTI above. TOllFN contains the function code and STATI contains the TO-II protocol status word. PT4 QPRDTE PROTOCOL ERROR 4 The KL \",ants to send a packet to the the packet size is greater than allowed size of 1 00. PDP-II, but the maximum possible Cause: Same as PTI above. RED RED The size is in EQSZ. REDIRECr ERROR A fatal error has occurred during an MCR REDIRECT command. The file control service is corrupted. Call your Software Support Specialist. A-4 RSX-20F STOP CODES AND I/O ERROR CODES Code Module Meaning RES LC RESERVED INSTRUCTION TRAP This is the PDP-II trap to location 10. An attempt was made to execute an illegal or reserved instruction. Refer to the PDP-II Processor Handbook for further details. possible Cause: PDP-II software is corrupted or a PDP-II malfunction occurred* TBT LC hardware T-BIT TRAP This PDP-II trap to location 14 occurs when the BPT instruction (not used by RSX-20F) is executed or when the T-bit is set. (See the PDP-ll Processor Handbook for further details.) possible Cause: Corrupted PDP-ll malfunction. TET QPRDTE software or PDP-II hardware TO-IO-TRANSFER ERROR A DTE-20 interrupt has occurred with either TOIOER (TO-lO error) or MPEll (PDP-II parity error) bit set in the DTE-20 status register ( register 34). possible Cause: DTE-20 hardware error, PDP-II memory parity error, or hardware malfunction along the data path between the PDP-II and KL. T04 LC TRAP AT LOCATION 4 The PDP-ll traps to location 4 when it makes a word reference to an odd address or when a bus timeout occurs. (See the PDP-II Processor Handbook for further details.) possible Cause: PDP-ll software is corrupted, or a PDP-II is malfunctioning or has gone peripheral device away. UIE QPRDTE UNIMPLEMENTED PROTOCOL FUNCTION The KL uses bits 0-2 of its TO-II status word in the communications region to inform the front end of any disaster occurring in the KL. These bits are read by the front end on receipt of a TO-ll doorbell. The currently implemented functions are KL-RELOAD REQUEST and KL POWER FAIL. Any other bits that are set cause this halt. A-5 RSX-20F STOP CODES AND I/O ERROR CODES Code Module Meaning possible Cause: Corrupted KL software, a KL hardware malfunction or any hardware malfunction along the data path between KL and PDP-II could be the cause of this error. The following is a list of possible I/O error codes that RSX-20F can produce. Since these codes are returned by the device handlers and file control primitives in RSX-ZOF, they are global in the sense that they can come from any utility in the system. That is, a code of -33 means the same thing when it comes from PIP that it means when it comes from SAVe Because of the global nature of the error codes, it is not possible to describe the exact problem~ the situation is different with different utilities. Therefore, the following list does not attempt to explain the error code other than to list the message associated with it. Note that there are two messages associated with the code -2. This is legitimate~ a message code of -2 is produced in two types of situations. Code Message -1 Bad parameters Invalid function code EBOX stopped Device not ready Parity error on device Hardware option not present Illegal user buffer Device not attached Device already attached Device not attachable End of file detected End of volume detected Write attempted to locked unit Data overrun Send/receive failure Request terminated Privilege violation Sharable resource in use Illegal overlay request Odd byte count or virtual address Logical block number too large Invalid UDC module UDC connect error Caller's nodes exhausted Device full Index file full No such file Locked from write access File header full Accessed for write File header checksum failure Attribute control list format error File processor device read error File processor device write error File already accessed on LUN File 1D, file number check -2 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 A-6 RSX-20F STOP CODES AND I/O ERROR CODES Code Message -36 -37 -38 -39 -40 File ID, sequence number check No file accessed on LUN File was not properly closed Open - no buffer space available for file Illegal record size File exceeds space allocated, no blocks Illegal operation on file descriptor block Bad record type Illegal record access bits set Illegal record attributes bits set Illegal record number - too large Multiple block read/write - not implemented Rename - two different devices Rename - new file name already in use Bad directory file Cannot rename old file system Bad directory syntax File already open Bad file name Bad device name Bad block on device Enter duplicate entry in directory Not enough stack space (FCS or FCP) Fatal hardware error on device File 10 was not specified Illegal sequential operation End of tape detected Bad version number Bad file header Device off-line File expiration date not reached Bad tape format Not ANSI "0" format byte count -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 A-7 APPENDIX B FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F Normally the KL and the PDP-II transfer any data that needs to be passed between them without any human intervention. However, occasionally, you may want to move a file from the front-end area to an area that is readable by the KL. This could happen if, for lexample, you could not find a KL-readable copy of the front-end map Eile, and wished to transfer a copy from the front-end release media. However, since the file systems for the two processors do not use the same format, the transfer must include a reformatting as well. The software that allows you to reformat the file and transfer it from the PDP-II's area to the KL's area (or vice versa) is described in this appendix. A TOPS-lO program called RSXTIO is used to make TOPS-IO files readable to the front-end file system. A TOPS-20 program called RSXFMT has a similar function. The programs that are used to transfer files between TOPS-IO/TOPS-20 and RSX-20F are FE (under both TOPS-IO and TOPS-20), and PIP (under RSX-20F). All of these programs execute in a normal timesharing environment, but some may be restricted to privileged users. B.l REFORMATTING FILES RSXTIO and RSXFMT, the reformatting programs, are available users and do not require any special privileges to execute. to all You can invoke RSXTIO by typing: .R RSXTlO<CR> RSXTIO responds with the prompt: RSXFMT> You can invoke RSXFMT by typing: @RSXFMT<CR> RSXFMT responds with the same prompt: RSXFMT> At this point, you can give commands to the reformatting program. A description of the available commands is presented in Section B.l.2. B-1 FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F B.l.l Restrictions Files that are to be transferred must be reformatted on the KL processor, regardless of which direction the transfer is to go. Thus, if you wish to transfer files from the front end to the KL, you must do the transfer before the reformatting. If, on the other hand, you wish to transfer files from the KL to the front end, you must reformat the files before the transfer. Some features are not available in one of the versions of the software. For exawple, temporary files are not supported by RSXTIO. Nor can RSXTIO write to a loq file when takinq commands from a command file. RSXFMT, on the other-hand, does not support MICRO-CODE or SAVE modes. Thus, you should check that the feature you wish to use is supported by the version of the program that you can access. B.l.2 RSXTIO/RSXFMT Commands The following list describes the commands available to users of RSXTIO and RSXFMT. The parts of the commands enclosed in parentheses do not appear in the dialog with RSXTIO~ they are part of the TOPS-20 version only. The word NO in square brackets - [NO] - indicates that the command can be negated by preceding the command with NO. [NO] ADDRESS (WORDS EXIST IN IMAGE FILES) When you are converting to IMAGE-BINARY files, the program ignores the first two bytes of each record. When you are converting from IMAGE-BINARY, the program inserts two bytes of address at the beginning of each record. The default is NO ADDRESS (WORDS EXIST IN IMAGE FILES). CONVERT (FILE) <input-file-spec> (OUTPUT AS) <output-file-spec> This command converts the specified input file group to the output file group, in the mode determined by the MODE command or the input file. The default output file specification is the same as the input file specification, with the next highest generation number. CRLF (IN ASCII FILES IS) CARRIAGE-RETURN-SINGLE-SPACE] [DEFAULT, IMBEDDED, IMPLIED, This command selects whether <CR><LF> should be inserted or removed at the end of formatted ASCII records. RSXTIO also converts <CR><LF> to <CR><DC3> if you specify the final option. This option is available only to users of RSXTIO. If you are using RSXTIO, the default for .MAp· and .DIR file types is IMBEDDED, whereas the default for .LST files is CARRIAGE-RETURN-SINGLE-SPACE. Other file types default to IMPLIED. If you are using RSXFMT, the default for all files is DEFAULT. EXIT (FROM RSXFMT) This command returns TOPS-20 Executive. control B-2 to the TOPS-IO Monitor or the FILE TRANSFERS BETWEEN TOPS-lO/TOPS-20 AND RSX-20F [NO] IGNORE (FILE FORMAT ERRORS) File format errors produce warning messages only if this has previously been issued. command HELP (WITH RSXFMT) This command types this text. INFORMATION (ABOUT) TEMPORARY] [ADDRESS, ALL, CRLF, IGNORE, MODE, RECORD-SIZE, This command displays the settings of the various status commands. INFORMATION TEMPORARY does not work under RSXTIO, since temporary files are not supported by the TOPS~lO version of the reformatting program. MODE (OF INPUT) <mode-type> (AND OUTPUT) <mode-type> This command selects input and output modes, where <mode-type> is one of the following: • 7-BIT-ASCII • DOS-BINARY • DEFAULT • IMAGE-BINARY • MICRO-CODE • RSX-ASCII • RSX-BINARY • SAVE DEFAULT input mode is selected by the file type and the first word of the current input file. DEFAULT output mode is selected by a mapping from the mode of the current input file. The MICRO-CODE and SAVE modes are available exclusively to users of RSXTIO. RECORD-SIZE (FOR IMAGE FILES IS) <decimal number> This command selects the record size for files being from IMAGE-BINARY format. Default is 256 bytes. TAKE (COMMANDS FROM FILE) <log-file-spec> <command-file-spec> (LOGGING converted OUTPUT This command takes RSXFMT commands from the specified RSXTIO does not support the output to a log file. ON) file. [NO] TEMPORARY (OUTPUT FILES) If you specify TEMPORARY, all output files (see CONVERT command) are written as temporary files. You might wish to use this command if you want to maintain a copy of the file in TOPS-20-readable format after the file is transferred to the front end. This feature is not supported in RSXTIO. B-3 FILE TRANSFERS BETWgEN TOPS-IO/TOPS-20 AND RSX-20F B.2 TRANSFERRING FILES The act of transferring files is logically separate from the reformatting process, since the reformatting can occur at different points depending on the direction of the transfer. To accomplish the actual transfer, the FE program must be running, the FE: device must be assigned, and the user must invoke several tasks with the PARSER. These actions are discussed more fully in the following sections. B.2.l Running FE The FE program must be executed by a privileged user. It can run detached if this is desirable. FE does not have any commands. It simply runs while the user transfers files. For users of TOPS-IO, FE can be invoked and detached by either of following two command sequences: the .R FE<CR> .. C .CCONT or .GET SYS:FE<CR> JOB SETUP .CSTART<CR> .DETACH<CR> Users of TOPS-20 can invoke and detach FE by typing: @ENABLE (CAPABILITIES) $FE<CR> "c @DETACH (AND) CONTINUE When running under TOPS-lO, FE requires access to the UIC/[p,pn] mapping file: SYS:FEUIC.TXT. Each invocation of FE causes this file to be read. FEUIC.TXT is an ASCII file that is created and maintained with standard TOPS-IO Text Editors (like TECO or SOS). The format of the UIC-to-PPN mapping descriptor is: [uic] =STR: [p ,pn] In this descriptor, [uic] must already system. STR: must be a valid TOPS-IO be a valid TOPS-IO directory. The FEUIC.TXT can contain as many UIC Furthermore, these mappings can be insertion of comments, which must exclamation mark. exist in the front-end file structure name, and [p,pn] must default for STR: is DSK:. to [p,pn] mappings as required. internally documented by the begin with a semicolon or an TOPS-20 uses a different approach to UIC/[p,pn] mapping. When running under TOPS-20, FE does not look for any file containing the mapping from directory to UIC. Instead, FE contains its own algorithm to find the UIC. The algorithm it uses is the following: UIC = [(340+(D/400»), (Dmod400)] B-4 FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F where D is the TOPS-20 directory number. (The directory number can be printed in response to an INFORMATION (ABOUT) DIRECTORY command.) Thus, if your TOPS-20 directory number is 164, your UIC would be [ (340+ (164/400) ), (164mod400) ] [340,164] since 164/400 is less than 1, the quantity is dropped. The quantity 164mod400 remains after 164 is divided by 400 as many times as will go evenly; in this case, since 400 does not go into 164, the remainder is 164. B.2.2 The FE: Device The FE: device exists under both TOPS-IO/TOPS-20 and RSX-20F. The FE: device is often referred to as a pseudodevice because it is not a physical device, but a logical one. You can think of the FE: device as the other file system, regardless of which system - the KL or the PDP-II - you are presently using. When you assign and use the FE: device, you n~tify the two processors of the link between the file systems. B.2.3 RSX-20F Tasks In order to transfer files between the file systems, three RSX-20F tasks must be invoked arid released. These tasks are MOU' (MOUNT), PIP (file transfer), and DMO (DMOUNT). These RSX-20F tasks are invoked from the PARSER which, in turn, is invoked by typing a CTRL/\ at the CTY. (The CTRL/\ is not echoed on the terminal.) Type: CTRL/\ The system responds with the PARSER prompt: PAR> The tasks the~selves are invoked by the MCR command. For example: PAR>MCR MOU<CR> This command invokes the MOU (MOUNT) task. All RSX-20F tasks prompt by typing their three-character task name and a right bracket. All RSX-20F tasks are released by typing a CTRL/Z. B.2.4 File Tr.ansfer Dialog The following sequence of steps is used to transfer files both to from the front-end file system: 1. Assign the FE: device to your job at monitor level. 2. Run (and detach) FE. 3. Use the MOUNT task to mount the RSX-20F FE: 4. Use PIP to transfer the file{s). B-5 device. and FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F 5. Dismount the RSX-20F FE: device using DMOUNT. 6. Go back to monitor level and stop FE. 7. Deassign the FE: device from your job. However, This basic sequence is used for all file transfers. reformatting always takes place on the KL, regardless of which operating system is running there, and regardless of which direction the transfer is going. To transfer files from TOPS-IO/TOPS-20 to RSX-20F, invoke the PIP task and type the following command string: RSX-20F PIP>[uic]filename.ext=FE: [uic]filename.ext<CR> To transfer files from RSX-20F to TOPS-IO/TOPS-20, invoke the PIP task and type the following command string: RSX-20F PIP>FE: [uic]filename.ext=[uic]filename.ext<CR> Refer to Section 6.4 for details on the RSX-20F utility, PIP. The following example shows an operator copying the file TEST. TXT from TOPS-20 to RSX-20F. The copy in the opposite direction can be effected by switching the file specifications to the opposi.te sides of the equal sign. @LOG OPERATOR (PASSWORD) Job 7 on TTY20S 2S-Jun-79 12:48:00 @RSXFMT RSXFMT>CONVERT (FILE) TEST.RNO.2 (OUTPUT AS) TEST.TXT TEST.RNO.2 [7-BIT-ASCII] ==> TEST.TXT.l [RSX-ASCII] RSXFMT>EXIT (FROM RSXFMT) @ENABLE (CAPABILITIES) $ASSIGN FEO: $FE "c $DETACH (AND) CONTINUE Detaching job #7 PAR>MCR MOU MOU>FE: MOU -- MOUNT COMPLETE MOU>"Z PAR>MCR PIP PIP>TEST.TXT/LI PIP -- NO SUCH FILE(S) PIP>SY:TEST.TXT=FE: [340,5]TEST.TXT PIP>TEST.TXT/LI DIRECTORY DBO: [5,5] 2S-JUN-79 12:50 TEST.TXT;l 1. TOTAL OF 1. 2S-JUN-79 12:49 BLOCKS IN 1. B-6 FILE FILE TRANSFERS BETWEEN TOPS-10/TOPS-20 AND RSX-20F PIP>"Z PAR>MCR DMO DMO>FE: DMO -- DISMOUNT COMPLETE DMO>"Z TOPS-20 BIG SYSTEM, T2 Monitor 4(3023) @ATT OPERATOR (JOB #) 7 Password "c $INFORMATION (ABOUT) FILE-STATUS (OF JFN) Connected to PS:<OPERATOR>. JFNS: 4 TEST.TXT.2 Not opened Read, EOF 3 FED: Read, Append, D. (16) 2 <SUBSYS>FE.EXE.2 Read, Execute 1 <SYSTEM>EXEC.EXE.51 Read, Execute Devices assigned to/Opened by this job: FED, TTY2D5 $CLOSE (JFN) 3,4 4 TEST.TXT.2 3 FED: [OK] $DEASSIGN FED: $LOGOUT [OK] B-7 APPENDIX C FRONT-END TASKS The tasks that are listed here are those tasks that exist separately from the RSX-20F Executive. These tasks reside in the front-end file area from which they can be loaded into core and executed in either the GEN uSer partition or the FIITPD system partition. FIlACP.TSK Files-II Ancillary Control Processor An Ancillary Control Processor (ACP) is an extension of the monitor. FIIACP handles the front~end disk files, and performs file access, management, and control functions. FIIACP runs in the FIITPD partition. PARSER.TSK The Command Parser PARSER is the primary means of access to the front-end programs. It also controls the KLINIK link and provides KL diagnostic tools. PARSER runs in the GEN partition. KLI.TSK KLINIT KLINIT initializes the KL processor by loading the microcode, configuring memory, configuring cache, and then loading and starting the KL bootstrap program. KLINIT runs in the GEN partition. LOGXFR.TSK LOGXFR LOGXFR transfers PARSER. LOG (the snapshot taken by KLERR) across the DTE to the KL, where it is placed In the ERROR.SYS file. LOGXFR runs in the GEN partition. MOU.TSK Mount a Device MOUNT makes a device known to FIIACP so that it can be accessed by a given user. MOUNT runs in the GEN partition. PIP.TSK Peripheral Interchange Program PIP perfcirms general file transfers and some maintenance functions between Files-II devices and other peripherals. PIP runs in the GEN partition. TKTN.TSK Task Termination Program TKTN outputs task termination notification and provides for the orderly termination of front-end tasks. It also acts as an interface between ~LINIT and KLERR. TKTN runs in the GEN partition. COP.TSK Copy from device to device COpy is a device copy utility that allows verification of the physical state of the device. COpy supports both floppy disks and DECtapes. COpy runs in the GEN partition. C-l FRONT-END TASKS RED.TSK Redirect the system device REDIRECT moves the front-end system device from one Files-II device to another and informs the system of its new location. REDIRECT runs in the GEN partition. INI.TSK Initialize volumes INI initializes Files-II devices to be recognizable Files-II volumes and sets up Master Directory space, index, home block, and so forth. INI runs in the GEN partition. UFD.TSK User File Directory UFD creates User File Directories on Files-II volumes. User File Directories are used to store file identifiers. UFD runs in the GEN pa~tition. T20ACP.TSK TOPS-20 Ancillary Control Processor T20ACP is the file handler for files to be transferred to and from the KL's disk file area. It interacts with the TOPS-IO and TOP~-20 device FE:. T20ACP provides access to the TOPS-IO and TOPS-20 disk file areas in terms compatible with Files-II operations. T20ACP runs in the GEN partition. SAV.TSK Save system image SAV creates a task-image file of the current RSX-20F monitor and saves it in the Files-II area. SAV runs in the GEN partition. DMO.TSK Dismount a Device DMOUNT declares a device off-line to FIIACP and therefore inaccessible to a user. DMOUNT runs in the GEN partition. SETSPD.TSK Set Line Speeds SETSPD sets the line-speed table in the KL after a restart. It also sets the time in the KL processor. SETSPD.TSK is a front-end task and is not to be confused with the TOPS-20 program, SETSPD.EXE. SETSPD runs in the FIITPD partition. KLRING. TSK . KLINIK Request KLRING checks the KLINIK time window If whenever the KLINIK line rings. KLINIK security checks are vorified, KLRING runs in the FIITPD partition. and the i c· .~ password time and enabled. KLDISC.TSK KLINIK Disconnect KLDISC performs system functions associated with disconnecting the KLINIK line. KLDISC also logs significant KLINIK events across the DTE into the KL ERROR.SYS file. KLDISC runs in the FIITPD partition. MIDNIT.TSK Update the clock Each time the clock passes midnight, MIDNIT updates the time and date on the PDP-II. Then, if the KL is running, MIDNIT obtains the KL's time and date and resets its own to match. MIDNIT runs in the FIITPD partition. C-2 FRONT-END TASKS The following two tasks are KL programs that are distributed as part of the front-end software and reside in the front-end file system. These tasks are read into the PDP-li by the KLINIT task and deposited over the DTE into KL memory where they perform their specific functions. BOOT.EXB BOOT.EXB TOPS-IO Bootstrap Program TOPS-20 Bootstrap Program BOOT loads the KL monitor system image file into memory from rigid disk (BOOT.EXB is an executable binary file). BOOTM.EXB MTBOOT.EXB TOPS-lO Magtape Boot Program TOPS-20 Magtape Boot Program BOOTM and MTBOOT load the KL monitor system image file into memory from a magnetic tape (BOOTM.EXB and MTBOOT.EXB are executable binary files). C-3 APPENDIX D KLINIK ACCESS DIALOG The RSX-20F KLINIK link allows DIGITAL Field Service or Software Support personnel at remote locations to access e KL-based computer as a timesharing user or as a remote operator. The computer mayor may not be up for timesharing, but the front end must have RSX-20F running. The link is controlled by the operator of the computer, who can allow or disallow access, and can also terminate the KLINIK link. If the KL monitor supports error logging, the RSX-20F Executive records significant events and errors by means of the SYSERR mechahism. This appendix lists the events that are loooeo by RSX-20F, and describes the KLINIK access parameters. It also documents the commands used in the access dialog from the point of view of both the computer operator and the Field Service or Software Support person who wishes to access a remote KL. D.l SIGNIFICANT KLINIK EVENTS The KLINIK events that RSX-20F considers significant are logged in the ERROR.SYS file, and can be read with SYSERR. The significant events are: D.2 • Each occurrence of a SET KLINIK command (the parameters given in the command are also saved) • Each occurrence of a CLEAR KLINIK command • Each occurrence of a DISCONNECT command or a DLIIE hang-up • Each occurrence of a successful LOGON (the mode also saved) • Each occurrence of an unsuccessful attempts is also saved) LOGON (the selected is number of KLINIK ACCESS PARAMETERS The computer operator and the person who wishes to access the computer from a remote location must agree on certain parameters regarding the D-l KLINIK ACCESS DIALOG time at which the link will take place and the type of remote user will have. Specifically, they must agree on: access • Whether the remote user of the link wishes to have CTY or simply a timesharing terminal • Which password will allow the remote user access system, if the user has requested a remote CTY to • The date and time the remote user will access by way of the KLINIK link request • The highest console mode the remote user will be allowed dial up a the to remote the Once this information has been verified, the computer operator must notify RSX-20F of the arrangements by using the SET KLINIK command, described in Section 0.3.1. D.2.1 Usage of the Remote Terminal The remote user can access the system in two ways: as a normal timeSharing user, or as a remote operator. If the remote terminal is set up for timesharing, the remote user can deal with the system just as any other timesharing user~ thus, the KLINIK link could be used as a special dial-up line. Alternatively, the remote terminal can be declared to be the system's CTY, thereby allowing the remote user to access the system as if the user were present at the local CTY. In this case, both the remote user and the system operator have the ability to enter commands to RSX-20F and to see all output,. In fact, it is possible to execute PARSER commands that are entered by two people typing alternate characters from the two consoles. The system operator declares the usage of the remote terminal when the PARSER requests the usage mode in the dialog following the SET KLINIK command. The legal replies are REMOTE and USER~ no defaults exist. D.2.2 Access Password for Remote CTY's The system operator must declare to RSX-20F that the remote user wishes to have a terminal of the agreed-upon type. If the remote user is to have a CTY, the operator must also give RSX-20F a password that the remote user must repeat to establish the KLINIK link. The operator declares the password when the PARSER requests it in the dialog following the SET KLINIK command. This password must be one to six numeric or uppercase alphabetic characters with no embedded or trailing blanks. D.2.3 KLINIK Access Window The date and time at which the remote user plans to establish the link is specified by opening a window, that is, defining two times between which the remote user can access the computer. This window has no effect once the remote user has gained access to the system: the KLINIK link is not terminated when the end of the window is reached. However, access to the system is not allowed unless it is requested between the specified times. D-2 KLINIK ACCESS DIALOG The operator specifies the access window dates and times in response to the PARSER's prompt in the SET KLINIK dialog. The access window dates are specified in the following format: DD-MMM-YY DD-MMM-YYYY DD MMM YY DD MMM YYYYY where DD is the day, MMM is the alphabetic representation of the month, and YY or YYYY is the year. The year can be specified either by using the entire Gregorian year, or by using only the last two digits of the year number. If only the last two digits are specified, the PARSER assumes that the first two digits should be 19. The access window times are specified in the following format: HHMM HH:MM where HH is the hour in 24-hour format and MM is the minute. HH be in the range 00 to 24, and MM must be in the range 00 to 60. must The default condition for both dates and times can be accepted by replying to the relevant prompts with a carriage return. The default date and time for the opening of the access window are the current system date and time. The default date for the closing of the access window is the current system date plus one day. The default time for the closing of the access window is the current system time. It is possible to specify the date on which the access window will open and still allow the time at which the window will open to default to the current time of day. It is also possible to allow the date to default while specifying the time. A similar situation exists for the closing of the access window. ]).2.4 Console Mode of the Remote Terminal If the remote terminal is being used for simple timesharing, the security systems of the operating system are assumed to be in control. However, when the remote user requests the use of a remote CTY, the computer operator must maintain the security of the system by declaring which type of access the remote user is to have. (Refer to Section 4.3, PARSER Console Modes, for a discussion of the capabilities of the various modes.) 'rhe operator specifies the console mode of the remote terminal in the dialog following the SET KLINIK command. The legal replies to the PARSER's request for the console mode are MAINTENANCE, PROGRAMMER, and OPERATOR. There are no default replies to this question. The local operator should make sure that sufficient capabilities are supplied to the remote user initially, since it is not possible for either the' operator or the remote user to raise the console mode while the KLINIK link is active. D.3 OPERATOR DIALOG WITH KLINIK The system operator, through dialog with the PARSER, sets parameters for establishing the KLINIK link, checks those parameters, terminates the KLINIK link, and disconnect~ the remote modem. The dialog that the operator uses to accomplish these tasks is presented below. D-3 KLINIK ACCESS DIALOG D.3.1 Setting Access Parameters The system operator must declare to RSX-20F that a remote user will be accessing the system before the remote user can actually attempt to establish the link. When the parameters discussed in Section D.I have been set using the SET KLINIK command, the remote user can dial up and attempt to establish the KLINIK link, assuming that the user does so during the agreed-upon time window. You should use the following dialog to set the access parameters. 1. Type CTRL/\ (Control-Backslash) to enter the PARSER. 2. When you receive the PARSER's prompt, enter the SET KLINIK command to tell the PARSER you wish to set KLINIK parameters. 3. Answer the PARSER's prompt (KLINIK MODE:) with the console mode you wish to allow the remote user: REMOTE to give the user a remote CTY, or USER to make the remote terminal into a normal timesharing terminal. If you respond with something other than REMOTE or USER, one of the following error messages appears: PAR PAR [SET] NSK - NO SUCH KEYWORD "xxx" [SET] ILC - ILLEGAL CHARACTER "c" where "xxx" and "c" are the offending keyword and respectively. character, After printing the relevant error message, the PARSER the SET KLINIK command. 4. aborts If you answered the previous prompt with REMOTE to allow a remote CTY, you must answer the PARSER's prompt (PASSWORD:) with the password that the remote user must give to be allowed access to the computer. If you do not provide a legal password, you receive one of the following error messages. If you specified no password, you get: PAR -- [SET] NPI - NULL PASSWORD ILLEGAL If you typed more than six characters, you get: PAR -- [SET] PTL - PASSWORD TOO LONG If you included a character that was not an alphanumeric, you get: PAR -- [SET] IPC - ILLEGAL PASSWORD CHARACTER "e" where "c" is the offending character. After printing the relevant error messags, the PARSER the SET KLINIK command. D-4 aborts KLINIK ACCESS DIALOG 5. Answer the PARSER's access window prompts (ACCESS WINDOW OPEN DATE:, ACCESS WINDOW OPEN TIME:, ACCESS WINDOW CLOSE DATE:, ACCESS WINDOW CLOSE TIME:) with dates and times in the format explained above (in Section D.l.3). If the PARSER cannot recognize the date in the format you have used, you receive one of the following error messages. If the day specified does not exist in the you get: month specified, PAR -- [SET] DOR - DATE OUT OF RANGE If the month you specified cannot be matched, you get: PAR -- [SET] NSK - NO SUCH KEYWORD "xxx" If the keyword you specified for the month is ambiguous, get: PAR you [SET] AMB - AMBIGUOUS KEYWORD "xxx" In both of keyword. the previous cases, "xxx" is the offending is prior If the year is not recognizable, you get: PAR -- [SET] YOR - YEAR OUT OF RANGE If the access window open or close current system date, you get: date to the conform to PAR -- [SET] DBT - DATE BEFORE TODAY If the access window open or close time does not the required format, you get: PAR -- [SET] TOR - TIME OUT OF RANGE If the open or close time is not numeric, you get: PAR -- [SET] ITF - ILLEGAL TIME FORMAT Finally, when you have answered all four prompts (or allowed the default condition to hold), the PARSER checks that the opening date and time you specified are before the closing date and time. If this is not the case, you get: PAR -- [SET] KWE - KLINIK WINDOW ERROR If you made an error in typing a command, the PARSER aborts the SET KLINIK command when it finishes printing the relevant error message. 6. If you specified REMOTE in response to the KLINIK MODE: prompt, you must now reply to the PARSER's prompt (HIGHEST CONSOLE MODE:) with the highest PARSER console mode you wish to allow the remote user. The legal replies are MAINTENANCE, PROGRAMMER, and OPERATOR. There is no default reply to this question. (Refer to Section 4.3, PARSER Console Modes, for a discussion of the capabilities of the various modes.) D-5 KLINIK ACCESS DIALOG If the PARSER does not recognize the console specify, you get the following error message: PAR mode you to the [SET] NSK - NO SUCH KEYWORD "xxx" where "xxx" is the offending keyword. If you enter only prompt, you get: a carriage return in response PAR -- [SET] MRA - MISSING REQUIRED ARGUMENT After printing the relevant error message, the PARSER the SET KLINIK command. 7. aborts If you have specified all of the parameters correctly, the PARSER returns to command level after displaying the KLINIK parameters in the following format: KLINIK [<state>] ACCESS WINDOW OPEN: DD-MMM-YY HH:MM ACCESS WINDOW CLOSED: DD-MMM-YY HH:MM KLINIK MODE: [<mode>] where <state> can be ACTIVE, <mode> may be REMOTE or USER. one more line is displayed: HIGHEST CONSOLE MODE: INACTIVE, or DISABLED, and If the KLINIK MODE is REMOTE, [<mode>] where <mode> can be MAINTENANCE, PROGRAMMER, or OPERATOR. The state of the KLINIK which tells whether DISABLED. ACTIVE means and the remote user INACTIVE means that the remote user is not DISABLED means that the The use of the SET KLINIK command example: link is described by the first line, the link 1S ACTIVE, INACTIVE, or the KLINIK parameters have been set is currently accessing the system. parameters have been set, but the currently accessing the computer. parameters have not been set. is illustrated PAR>SET KLINIK KLINIK MODE: REMOTE PASSWORD: ASDF ACCESS WINDOW OPEN DATE: ACCESS WINDOW OPEN TIME: ACCESS WINDOW CLOSE DATE: ACCESS WINDOW CLOSE TIME: HIGHEST CONSOLE MODE: OPERATOR KLINIK INACTIVE ACCESS WINDOW OPEN: 18-JUNE-1979 13:04 ACCESS WINDOW CLOSE: 19 -·JUNE-197 9 13: 04 KLINIK MODE: REMOTE HIGHEST CONSOLE MODE: OPERATOR PAR> D-6 by the following KLINIK ACCESS DIALOG D.3.2 Examining the Current KLINIK Parameters The KLINIK parameters that are displayed at the end of the SET KLINIK dialog can be displayed at will by the use of the WHAT KLINIK command. The format of the information is exactly the same as the display following the SET KLINIK dialog when the KLINIK parameters have been set. In two cases, however, the format is different. One is the time when no KLINIK parameters have been set. In this case, the following line (only) will be displayed in response to the WHAT KLINIK command: KLINIK DISABLED The other exceptional case is when the KLINIK link is active after a reboot of the system software. (This situation is described more fully in Section D.4.) In this case the response to the WHAT KLINIK command is in the form shown below: KLINIK ACTIVE FROM REBOOT KLINIK MODE: REMOTE HIGHEST CONSOLE MODE: MAINTENANCE Normal use of the WHAT KLINIK command is illustrated by the example: following PAR>WHAT KLINIK KLINIK INACTIVE ACCESS WINDOW OPEN: 20-JUNE-1979 13:49 ACCESS WINDOW CLOSED: 21-JUNE-1979 13:49 KLINIK MODE: REMOTE HIGHEST CONSOLE MODE: MAINTENANCE PAR> D.3.3 Terminating the KLINIK Link The system operator can terminate the KLINIK link at any time by the CLEAR KLINIK command. The CLEAR KLINIK command clears the KLINIK parameters, but does not hang up the modem. If the remote user has a remote CTY, the user can also terminate the link by the same method. In either case, the link is not completely cleared until the operator issues the DISCONNECT command. This command hangs up the modem, thus ending the link. Breaking up the termination into two commands has the advantage of allowing the link to be terminated (by use of the DISCONNECT command) without clearing the parameters. Thus, the remote user can try again to establish the link, but the operator does not need to reenter the parameters. When the operator issues the CLEAR KLINIK command during the time the link is in use, the following messages are printed on both terminals: KLINIK DISABLED KLD -- KLINIK ACCESS TERMINATED BY OPERATOR When the operator issues the DISCONNECT command, the following message is printed on both terminals: KLD -- KLINIK LINE DISCONNECTED This message signals the end of the link, since the modem is by the DISCONNECT command. D-7 hung up KLINIK ACCESS DIALOG If the remote user tries again to gain access to the system before the parameters are reset, access is denied, and the following messages appear on both the remote and local terminals: KLR KLINIK RING - WINDOW CLOSED KLD KLINIK LINE DISCONNECTED The termination dialog is illustrated by the following example: PAR>CLEAR KLINIK KLINIK DISABLED KLD -- KLINIK ACCESS TERMINATED BY OPERATOR PAR>DISCONNECT KLD -- KLINIK LINE DISCONNECTED PAR> D.4 REMOTE USER DIALOG wITH KLINIK The remote user of the KLINIK link can be accessing the computer system for a variety of reasons. For example, Software Support and Field Service personnel may wish to run software and hardware diagnostics. It can also be useful to watch some problem-causing event as it occurs. Other DIGITAL personnel may use the link to gather statistics on local system usage. The link can be set up in two different ways to accommodate this variety. As discussed in Section 0.1.1, the remote terminal can be either a normal timesharing user or a remote CTY. 0.4.1 Logging In as a Remote Operator RSX-20F answers the OLlIE when it rings and decides what to do based on the current setting of the KLINIK MODE parameter. If the KLINIK MODE is REMOTE, RSX-20F prints the following message on both the remote and local terminals: KLR -- KLINIK RING - VALIDATING ACCESS This message is followed on the remote terminal by: PASSWORD: At this time you should type in the password that was previously agreed upon. You have five tries to give the correct password. During the time the KLINIK link is being validated, the PARSER is unavailable to either the local or the remote terminals. If either the local operator or the remote user attempts to invoke the PARSER, the request is queued and the validation process is continued. If you give message: an incorrect password, KLR -- INCORRECT PASSWORD D-8 RSX-20F prints the following KLINIK ACCESS DIALOG RSX-20F then waits ten seconds before allowing any further attempt to enter the password. During this ten-second wait, anything you type is ignored. After ten seconds, the following prompt is printed again: PASSWORD: If after five tries you are unable to give the correct following messag~s are printed on both terminals: KLR KLR KLINIK LOGON TIMEOUT LOGON ABORTED KLD KLINIK LINE DISCONNECTED password, the At this time, RSX-20F hangs up the modem. The remote user can dial up and try again to gain access to the system if the local operator does not issue the CLEAR KLINIK command. When you type the correct password, message on the remote terminal: RSX-20F prints the following KLINIK MODE: If you wish to be In response, you must type either REMOTE or USER. You then receive the connected to RSX-20F, you must type REMOTE. following notification from RSX-20F: KLR KLINIK LINE CONNECTED TO RSX-20F KLR -- CONSOLE MODE LIMIT: [<mode>] where <mode> can be MAINTENANCE, PROGRAMMER, or OPERATOR. You can login to the local system as a timesharing user even though the KLINIK MODE was declared by the operator to be REMOTE. If you wish to do this, simply reply to the KLINIK MODE: prompt with USER. If you do this, you receive the following message before RSX-20F routes the line to the KL monitor: KLR -- KLINIK LINE CONNECTED TO TOPS-xx where "xx" is either 10 or 20. The next line printed is herald, just as a normal timesharing user would receive. The following remote user. KLINIK MODE: example shows a timesharing 1. [the password will not echo on the terminal] KLR -- INCORRECT PASSWORD PASSWORD: [this time it is correct] KLINIK MODE: KLR KLR system examples illustrate the dialog between RSX-20F and the The first example shows a remote user answering the prompt with REMOTE to get a remote CTY. The second how the same user could decide to login to the system as user. KLR -- KLINIK RING - VALIDATING ACCESS PASSWORD: the REMOTE KLINIK LINE CONNECTED TO RSX-20F CONSOLE MODE LIMIT: [MAINTENANCE] D-9 KLINIK ACCESS DIALOG 2. KLR -- KLINIK RING - VALIDATING ACCESS PASSWORD: [the password will not echo on the terminal] KLINIK MODE: USER KLR -- KLINIK LINE CONNECTED TO TOPS-20 SYSTEM 2116 THE BIG ORANGE, TOPS-20 MONITOR 4(3117) @ D.4.2 Logging In as a Timesharing User If the local system operator has declared the usage of the remote terminal to be USER, the link is routed to the KL monitor after RSX-20F prints KLR -- KLINIK LINE CONNECTED TO TOPS-xx where "xx" is either 10 or 20. The next line printed is the system message from the particular system, just as a normal timesharing user would receive. The following example shows the messages printed when logs in to the system as a timesharing user. a remote user Example D-6 KLR -- KLINIK LINE CONNECTED TO TOPS-20 SYSTEM 2116 THE BIG ORANGE, TOPS-20 MONITOR 3A(20l3) @ D.5 KLINIK INTEGRITY OVER A REBOOT The computer system attempts to maintain the integrity of a KLINIK link over a reload of system software. Both the KL processor and the front-end processor are aware of the KLINIK link, and both store the current KLINIK parameters. This allows one processor to remind the other of the current state of the KLINIK link should one of the two processors be reloaded. If the link was set up to be REMOTE MODE, the following messages are printed on both terminals: SAV *DIAG* SAV -- *DIAG* KLINIK LINE ACTIVE IN REMOTE MODE KLINIK LINE CONNECTED TO SYSTEM CONSOLE If the link was set up to bE~ printed on both terminals: SAV -- *DIAG* USER MODE, the following message is KLINIK LINE ACTIVE IN USER MODE The KLINIK link is also maintained over a reload of the entire system. That is, if both the KL and the front end are reloaded, RSX-20F detects the carrier signal when it comes up and realizes that a KLINIK link is in progress. At this point, RSX-20F waits 45 seconds for the D-IO KLINIK ACCESS DIALOG KL to provide the correct KLINIK parameters. Since in this situation there is no way for the KL to know the original KLINIK parameters, it is unable to supply the parameters. Thus, when the 45-second wait is over, RSX-20F sets up default parameters and continues the link. The parameters are set up for REMOTE MODE with the highest console mode being MAINTENANCE. The messages printed are the same as those printed on reloading only one of the processors. In the event that the KL monitor has difficulty starting or restarting the Primary or Secondary Protocols, the following message is printed on the local console: SAV -- *FATAL* -- PROTOCOLS NOT RUNNING This problem usually requires a system. reload D-ll of the TOPS-IO or TOPS-20 APPENDIX E GETTING HELP ON RSX-20F At times it becomes necessary for users of KL-based computers to get help on some aspect of RSX-20F. There may be some problem with the RSX-20F software, or the user may have some hardware problem that RSX-20F detects but cannot deal with. If you find that your installation is having a problem of this sort and you wish to submit a Software Performance Report or place a hot line call to Software Services, consult this appendix before calling for help. This appendix provides assistance in making sure you supply all the needed information to allow DIGITAL personnel to determine what the problem is. The items you should include with an SPR, or have ready when you make a hot line call, are listed below. Providing this information to the Software SJpport personnel speeds up the answering of your question and helps insure that you receive a complete and useful answer. 1. Dump File(s) - Include the dump file(s) that were taken at the time of the problem. The filename for every dump file is ODUMPll.BIN. One of these files is generated for every crash of RSX-20F, as long as the KL is running when RSX-20F dies. You can also produce a dump manually, if the situation calls for it. You should be aware, however, that the manual production of a dump file defeats any attempt by RSX-20F to save the state of the processor as RSX-2PF sees it. Specifically, the stack pointer (SPSAV) will not contain the address of the next instruction to be executed. If you feel that it would be helpful to produce a dump, press the HALT switch on the front end, then raise it again immediately. Make sure that you record the circumstances of the crash and correlate the particular circumstances with the particular dump, especially if you are submitting more than one dump file. Also, if you have produced the dump file by hand, be sure to make that fact known, because it will definitely influence the method of extracting information from the dump. 2. Console Log - Include the console log (or a copy of it) from the time of the crash (or other problem). The copy you include should cover any recent odd occurrences, as well as a runnIng commentary. This commentary is useful for determining, not only the sequence of events, but the tiroing of the events as well. Thus, if you try one method of recovering from the problem, then think about the problem for half an hour, then try another approach, make sure that your commentary notes the half-hour delay, since the delay cannot be inferred from reading the console log itself. E-l GETTING HELP ON RSX-20F 3. SYSERR Entries - Include any SYSERR entries generated by the problem. You can also include any entries generated around the time the problem occurred, since they may have a bearing on the problem that you do not realize at the time. 4. Description of Problem Include a description of the problem. Writing down exactly what seemed to be happening on the system, what signals tol~ you a problem existed, and what attempts you made to recover from the problem, can save a good deal of time in getting your answer. If the Software Support personnel do not have this information, they may have ~o try to get in touch with you to get it, thereby slowing down the answer process. 5. Device Descriptions - Include a description of any device involved in the problem. It would be wise, also, to include a description of any nonstandard device that you have hooked to your system, since these are often the cause of unusual problems. E-2 APPENDIX F EIA PIN DEFINITIONS The following table lists the pin definitions that are part of the EIA standards. DTE here refers not to the DTE-20 device, but to the Data Terminal Equipment - in other words, the terminal. DCE refers to Data Communications Equipment - in other words, whatever hardware interface you are using between the terminal and the host computer. Pin Name 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 FD TD RD RTS CTS DSR SG DCD SDCD SCTS STD TC SRD RC SRTS DTR SQ RI (TC) To To DTE DeE < < < > > < < < < < < < < < < > > > > > > > Function Circuit (CCITT) (EIA) Frame Ground Transmitted Data Received Data Request To Send Clear To Send Data Set Ready Signal Ground Data Carrier Detect positive Dc Test Volt Negative Dc Test Voltage Unassigned Sec. Data Carrier Detect Sec. Clear To Send Sec. Transmitted Data ,Transmitter Clock Sec. Received Data Receiver Clock Receiver Dibit Clock Sec. Request To Send Data Terminal Ready Signal Quality Detect Ring Indicator Data Rate Select External Transmitter Clock Busy F-l 101 103 104 105 106 107 102 109 (AA) (BA) (BB) (CA) (CB) (CC) (AB) (CF) 122 121 118 114 119 115 (SCF) (SCB) (SBA) (DB) (SBB) (DD) 120 108.2 110 125 111/112 113 (SCA) (CD) (CG) (CE) (CH/CI) (DA) INDEX $DHINP routine, 7-17, 7-18, $DHOUT routine, 7-24, 7-25, $DMINT routine, 7-13 7-13, 7-19, 7-16, 7-26, 7-11, 7-16, 7-20 7-23, 7-27 7-12, .BGBUF location, 10-6 .CRASH macro, 7-9 .CRTSK location, 7-8, 10-5, 10-11 .DHSTO routine, 7-27 .DHTMO routine, 7-20, 7-21, 7-22, 7-23 .DLMTO routine, 7-15 .DLMTO startup routine, 7-15 .DMTMO routine, 7-13, 7-14 .DMTMO system startup routine, 7-14 .FREPL location, 10-6 .POLLH location, 10-6 .STDTB table, 7-7 ODUMPll.BIN file, E-l, 10-1, 10-4 ABORT PARSER command, 4-6 Absolute mode, 6-32 ZAP, 6-33 AC block error check, 4-24 AC block parity check, 4-24 Access dialog, KLINIK, D-l Access parameters, KLINIK, D-l setting KLINIK, D-5, D-6, D-7 Access password, KLINIK, D-2, D-9 Access window, KLINIK, D-2, D-3 Access window password, KLINIK, 10-14 Access window start date, KLINIK, 10-14 Access window start time, KLINIK, 10-14 Ack line, 7-27 Acknowledge signal, 7-27 Active Task List, 7-7, 7-8, 10-33 Address, relative, 6-32 Address of Executive, base, 10-11 high, 10-11 Addressing modes, ZAP, 6-33 Allocation map, memory, 6-34 Ancillary Control Processor, 6-10, 7-6 Appending files, 6-13 APR, 8-5 APR break conditions, 8-6 APR flags in Comm Reg, 8-5 Area, pointer to next Comm Reg, 8-4 Area in Communications Region, 8-1 Arithmetic expressions, evaluation of, 4-3 Arithmetic operators, precedence of, 4-3 ZAP, 6-34, 6-37 Arithmetic Processor, 8-5 Asynchronous traps, 1-3, 7-8 ATL, 7-7 ATL entry for CD task, 10-34 ATL entry for DTE-20 task, 10-33 ATL entry for FE task, 10-34 ATL entry for floppy disk task, 10-34 Index-l INDEX ATL entry for LP task, 10-34 ATL entry for null task, 10-34 ATL entry for queued prt task, 10-34 ATL entry for RP task, 10-34 ATL entry for terminal task, 10-34 ATL node, 7-7 ATL node of current task, 7-8, 10-5 ATL scan routine, 7-8 Auto-baud reset, 7-15 Auto-baud Wait flag, 7-13, 7-19, 7-23 Auto-bauded lines, count of, 10-20 Auto-bauding, 7-19 AUTO-TAKE PARSER command, CLEAR, 4-7 Automatic baud rate determination, 7-19 Automatic reload flag, 10-13 Available space, listing, 6-13, 6-15 (CONT.) Blocking the dte-20, 8-37 Blocks, memory size in, 10-11 Boot parameter, switch register, 10-13 Boot program, magnetic tape, C-3 BOOT task, C-3 BOOT.EXB, default bootstrap program, 5-2 TOPS-20 subdirs with, 5-2 BOOT.EXB file, 5-1, 5-7 Booting the KL, 8-29 BOOTM program, 5-41 BOOTM task, C-3 BOOTS task, C-3 Bootstrap device, 5-8 Bootstrap device number, 5-5 Bootstrap program, C-3 KL, 5-1 loading, 5-1, 5-7 starting, 5-1, 5-7 Bootstrap program BOOT.EXB, default, 5-2 Bootstrapping errors, 5-5 BPARER DTE-20 bit, 8-12 BR ,requests, 1-4 PDP-II, 8-13 Branch displacement, 6-36, 6-43 Break conditions, APR, 8-6 Buffer, Big, 7-4, 10-6 CD-II data, 10-28 free space in Big, 10-6 Buffer pointer, Send-All, 10-20 Buffer space, 10-6 Buffer's current device, TO-lO, 10-15 Buffer-overflow crashes, 10-6 Bus, diagnostic, 8-15 Bus-mode, setting external core memory, 5-10 Byte offset format, 6-38, 6-39 Byte transfer, error termination of, 8-12 Byte transfer mode, 8-23 setting, 8-18 BACK KLINIT command, 5-7 Bad block file, 2-4 BADBLK.SYSil file, 2-4 Base address of Executive, 10-11 Basic DTE-20 operations, 8-1 Baud rate determination, automatic, 7-19 .BGBUF location, 10-6 Big Buffer, 7-4, 10-6 Big Buffer, free space in, 10-6 Bit definitions, switch register, 5-5 Bitmap file, storage, 2-4 BITMAP.SYSil file, 2-4 Block, starting disk, 6-32 vLrtual, 2-2 Volume Contro1, 6-9 Block file, bad, 2-4 Block Number, Virtual, 2-2 Block number/byte offset format, 6-38 Index-2 INDEX (CONT.) Cache memory, configuring, 5-1, 5-8, 5-41 enabling, 5-1, 5-8, 5-38 Calls, hot line, E-l Card reader data base, 10-28 Carrier, lost, 7-15 Carrier transition, 7-11 Carrier transition interrupt, 7-13 Carrier Wait, 7-14 Carrier wait, DH-IIE, 7-15 Carrier Wait flag, 7-13, 7-20 Causing a doorbell interrupt, 8-13 CD task, ATL entry for, 10-34 CD-II current event flags, 10-28 CD-II data buffer, 10-28 CD-II driver, STD entry for, 10-32 CD-II status bits, 10-28 CDD DTE-20 bit, 8-18 Character input routine, 7-13, 7-16, 7-17, 7-18, 7-19, 7-20 Character output routine, 7-16, 7-23, 7-24, 7-25, 7-26, 7-27 Checking queues after a crash, 10-6 Checksum, file header, 2-3 CLEAR AUTO-TAKE PARSER command, 4-7 CLEAR CONSOLE PARSER command, 4-4, 4-7 CLEAR DATE PARSER command, 4-7 CLEAR FAULT-CONTINUATION PARSER command, 4-8 CLEAR FS-STOP PARSER command, 4-8 CLEAR INCREMENT PARSER command, 4-8 CLEAR KLINIK command, D-8 CLEAR KLINIK PARSER command, 4-8 CLEAR MEMORY PARSER command, 4-8 CLEAR NOT PARSER command, 4-8 CLEAR OFFSET PARSER command, 4-8 CLEAR RELOAD PARSER command, 4-9 CLEAR REPEAT PARSER command, 4-9 CLEAR RETRY PARSER command, 4-9 CLEAR TRACKS PARSER command, 4-9 Clearing diagnostic command start, 8-15 Clock cycle, generating a, 8-15 Clock request list, 10-19 CMOIC bit, Comm Reg, 8-8 CMIIC bit, Comm Reg, 8-8 CMAPRW word, Comm Reg, 8-5 CMDAPR word, Comm Reg, 8-6 CMDTE bit, Comm Reg, 8-6 CMDTN bit, Comm Reg, 8-6 CMFWD bit, Comm Reg, 8-8 CMINI bit, Comm Reg, 8-7 CMIP bit, Comm Reg, 8-8 CMKAC DTE-20 word, 9-1 CMKAC word, Comm Reg, 8-4 CMKAK word, Comm Reg, 8-9 CMLll bit, Comm Reg, 8-7 CMLNK word, Comm Reg, 8-4 CMLRF word, Comm Reg, 8-9 CMNAM bit, Comm Reg, 8-4 CMNPR bit, Comm Reg, 8-3 CMPDWD word, Comm Reg, 8-5 CMPGWD word, Comm Reg, 8-5 CMPIWD word, Comm Reg, 8-4, 8-5 CMPNM bit, Comm Reg, 8-7 CMPPT word, Comm Reg, 8-7 Index-3 INDEX (CONT.) CMPRO bit, Comm Reg, 8-6 CMPWF bi t, Comm Reg, 8-7 CMQCT word, Comm Reg, 8-9 CMQP bit, Comm Reg, 8-8 CMSIZ bit, Comm Reg, 8-3 CMSZ bit, Comm Reg, 8-7 CMTEN bit, Comm Reg, 8-3 CMTOT bit, Comm Reg, 8-8 CMTST bit, Comm Reg, 8-8 CMVER bit, Comm Reg, 8-3 CMVRR bit, Comm Reg, 8-6 CNUPE DTE-20 bit, 8-18 Comm area, owning processor's, 8-3 Comm Reg, APR flags in, 8-5 Comm Reg area, pointer to next, 8-4 Comm Reg CMOIC bit, 8-8 Comm Reg CMIIC bit, 8-8 Comm Reg CMAPRW word, 8-5 Comm Reg CMDAPR word, 8-6 Comm Reg CMDTE bit, 8-6 Comm Reg CMDTN bit, 8-6 Comm Reg CMFWD bit, 8-8 Comm Reg CMINI bit, 8-7 Comm Reg CMIP bit, 8-8 Comm Reg CMKAC word, 8-4 Comm Reg CMKAK word, 8-9 Comm Reg CMLll bit, 8-7 Comm Reg CMLNK word, 8-4 Comm Reg CMLRF word, 8-9 Comm Reg CMNAM bit, 8-4 Comm Reg CMNPR bit, 8-3 Comm Reg CMPDWD word, 8-5 Comm Reg CMPGWD word, 8-5 Comm Reg CMPIWD word, 8-4, 8-5 Comm Reg CMPNM. bit, 8-7 Comm Reg CMPPT word, 8-7 Comm Reg CMPRO bit, 8-6 Comm Reg CMPWF bit, 8-7 Comm Reg CMQCT word, 8-9 Comm Reg CMQP bit, 8-8 Comm Reg CMSIZ bit, 8-3 Comm Reg CMSZ bit, 8-7 Comm Reg CMTEN bit, 8-3 Comm Reg CMTOT bit, 8-8 Comm Reg CMTST bit, 8-8 Comm Reg CMVER bit, 8-3 Comm Reg CMVRR bit, 8-6 Comm Reg CPVER bit, 8-3 Comm Reg PIDENT word, 8-3 Comm Reg Pre Header word, 8-3 Comm Reg protocol version number, 8-3 Comm Reg STATUS word, 8-7 Comm Reg TOPID word, 8-6 Comm Region version number, 8-3 Command, di~gnostic, 8-16 Command file, indirect, 4-25 Command lines, continuing PARSER, 4-2 Command start, clearing diagnostic, 8-15 setting diagnostic, 8-15 Commands, RSXFMT, B-2 RSXTlO, B-2 Comments, PARSER, 4-2 Common event flags, global, 10-11 Communication, device, 1-3 Communications area, PDP-II owned, 8-3 Communications interface, DH-ll, 7-22, 7-23 Communications Region, 8-1, 8-2, 8-3, 8-4, 8-5, 8-6, 8-7, 8-8, 8-9, 8-32, 9-1 Communications Region, area in, 8-1 initializing, 8-1 KL, 9-1 Communications Region header, 8-1 Communications Region section, 8-1 COMTRP location, 9-7 COMTRP routine, 7-9 Configuration, reversing memory, 5-9 Configuration file, 5-1, 5-6, 5-9 Configuration file, writing, 5-11 Configuration maps, external memory, 5-32 internal memory, 5-32, 5-33 Index-4 INDEX (CONT.) Configuration maps (Cont.) logical memory, 5-32, 5-33, 5-34 physical memory, 5-32 Configuring cache memory, 5-1, 5-8, 5-41 Configuring external core memory, 5-10 Configuring internal core memory, 5-10 Configuring KL memory, 5-1, 5-9 Configuring MOS memory, .5-11 Configuring specified memory blocks, 5-11 Configuring specified memory modules, 5-10 Console mode, KLINIK, 10-14 PARSER, 4-4 Console mode flag, 10-13 Console mode of remote terminal, D-3 Constant register, ZAP, 6-36 Contents of memory locations, finding, 7-4 CONTINUE PARSER command, 4-10 Continuing PARSER command lines, 4-2 Controlling TO-lO data transfers, 8-21 Controlling TO-II data transfers, 8-20 Conventions, DTE-20 register, 8-36 COP task, C-l COP utility, 6-1 /BL, 6-2 /CP, 6-2 /HE, 6-2 /RD, 6-2 /VF, 6-2 /ZE, 6-2 Copying a floppy disk, 6-1 Copying files, 6-12, 6-13, 6-14 Core image file, 2-4 Core manager data base, 10-18 Core memory, configuring external, 5-10 configuring internal, 5-10 Core memory bus-mode, setting external, 5-10 CORIMG.SYS;l file, 2-4 Count, file revision, 2-3 Keep-Alive, 8-4, 8-9, 9-1, 10-17 Send-All terminal, 10-20 TO-lO delay, 8-23 TO-II queue entry, 10-15 Count of auto-bauded lines, 10-20 Counter, hardware program, 1-4 timeout, 10-20 CPU serial number, KL, 10-39 CPVER bit, Comm Reg, 8-3 CR task, TPD entry for, 10-35 CRAM error report, 5-35 CRAM malfunction, 8-16 Crash, checking queues after a, 10-6 Crash codes, RSX-20F, 9-7, A-I, 10-5 .CRASH macro, 7-9, 9-7 Crashed system, examining a, 7-4 Crashes, buffer-overflow, 10-6 recovering from front-end, 10-1 Creation date, file, 2-3 Creation time, file, 2-3 .CRTSK location, 7-8, 10-5, 10-11 CTY, redirecting the, 5-5 remote, D-2, D-9, D-lO CTY line speed, 10-13 CTY queue, 10-36 CTY startup routine, 7-15 CTY status block, 10-20 CTY timeout routine, 7-15 Current event flags, CD-ll, 10-28 LP-20, 10-29 Current interrupt status, 8-14 Current task, ATL node of, 7-8, 10-5 Current task pointer, 10-11 Index-5 INDEX (CONT.) Cycle, generating a clock, 8-15 DIOll DTE-20 bit, 8-15, 8-16 Data, transferring string, 8-23 Data base, card reader, 10-28 core manager, 10-18 DECtape driver, 10-25 disk driver, 10-26 FE device driver, 10-27 floppy disk driver, 10-24 Keep-Alive, 10-17 KLINIK, 10-14 LP-20 driver, 10-29 queued protocol, 10-15 Data between processors, transferring, 8-8, 8-19, 8-20, 8-21, 8-22, 8-30 Data buffer, CD-II, 10-28 Data in front-end memory, depositing, 10-1 examining, 10-1 Data line scanner queue, 10-36 Data packets, 8-33 transferring indirect, 8-8 Data Terminal Ready signal, 7-11 Data transfer, 8-33 TO-IO, 8-16, 8-23 TO-II, 8-16, 8-23 Data transfer across DTE-20, TO-IO, 8-1 TO-II, 8-1 Data transfer mode, diagnostic, 8-15, 8-16 normal, 8-15 Data transfer rate, 8-21 Data transfers, 1-4 controlling TO-IO, 8-21 controlling TO-II, 8-20 Date, file creation, 2-3 file expiration, 2-3 file revision, 2-3 PDP-II, C-2 Date flag, valid, 10-12 Date storage area, 10-12 DCOMST DTE-20 bit, 8-15, 8-16 Debugger, FEDDT symbolic, 10-1, 10-2, 10-3, 10-4 DECtape driver, STD entry for, 10-32 DECtape driver data base, 10-25 DECtape load switches, 5-5 DECtape PUD entry, 10-38 DECtape switch register, 5-5 DECtape task, TPD entry for, 10-35 Default radix, 4-2 Delay count, TO-IO, 8-23 Deleting files, 6-12, 6-13, 6-14 DEPOSIT AR PARSER command, 4-10 Deposit DTE-20 operation, 8-12 Deposit operation, 8-33 DTE-20, 8-21, 8-22 Depositing data in front-end memory, 10-1 Deposits across DTE-20, memory, 8-1, 8-8 Determining the task that crashed, 10-5 Device, dismounting a, 6-9 Files-II, 6-10 mounting a, 6-9 TO-IO buffer'S current, 10-15 Device communication, 1-3 Device driver data base, FE, 10-27 Device drivers, 1-5, 7-4 Device drivers, interfacing, 8-30 Device number, bootstrap, 5-5 Device priority levels, 1-3 Device Queue Pointers, 10-36 Device tables, physical unit, 10-37 DEX DTE-20 bit, 8-15, 8-16 DEXDON DTE-20 bit, 8-12 DEXWDl-2 DTE-20 register, 8-22 DEXWDl-3 DTE-20 register, 8-21 DFUNC DTE-20 bit, 8-15 DH-ll communications interface, 7-22, 7-23 Index-6 INDEX (CONT.) DH-ll queue, 10-36 DH-ll table, 10-22 DH-llE carrier wait, 7-15 $DHINP routine, 7-13, 7-16, 7-17, 7-18, 7-19, 7-20 $DHOUT routine, 7-16, 7-23, 7-24, 7-25, 7-26, 7-27 .DHSTO routine, 7-27 .DHTMO routine, 7-21, 7-22, 7-23 Diagnostic bus, 8-15 Diagnostic command, 8-16 Diagnostic command start, clearing, 8-15 setting, 8-15 Diagnostic data transfer mode, 8-15, 8-16 Diagnostic mode, DTE-20, 8-15 Diagnostic operations, DTE-20, 8-1 Diagnostic selection code, 8-15 Diagnostic Word 1, DTE-20, 8-15, 8-16, 8-17 Diagnostic Word 2, DTE-20, 8-16 Diagnostic Word 3, DTE-20, 8-16 Diagnostic words, DTE-20, 8-15 Diagnostics, KL hardware, 1-6 Dialog, entering KLINIT, 5-6 exiting KLINIT, 5-42 file transfer, B-5 KLINIK access, D-l KLINIK operator, D-4 KLINIT operator, 5-7, 5-8, 5-9, 5-10, 5-11, 5-13, 5-14, 5-15, 5-16 remote user KLINIK, D-9 restarting KLINIT, 5-6, 5-42 terminating KLINIT, 5-6 Dialog error messages, KLINIT, 5-17, 5-20 Dialog examples, KLINIT, 5-36, 5-37, 5-38, 5-39, 5-40, 5-41, 5-42 Dialog mode, KLINIT, 5-1 Dialog reports, KLINIT, 5-32 Differences, RSX-20F/RSX-llM, 1-7 DIKLIO DTE-20 bit, 8-15 Direct packets, To-eleven, 8-34 To-ten, 8-33 To-ten extended, 8~34 Direct transfer, 8-33 extended, 8-37 to-II, 8-37 Directive service routine, 7-4, 7-8 Directives, 1-4, 1-7 Directives, performing, 7-9 Directories, listing file, 6-12 Directory, Master File, 2-4 System Task, 7-6, 10-31 Task Partition, 10-35 User File, 1-7, 2-1, 6-29 Directory file, Files-II, 2-3 listing a, 6-13, 6-15 Directory file entry, Files-II, 2-3 Disabling PDP-II interrupts, 8-14 DISCONNECT PARSER command, 4-11, D-8 Disk, copying a floppy, 6-1 Disk block, starting, 6-32 Disk driver, 1-7 STD entry for floppy, 10-32 Disk driver data base, 10-26 floppy, 10-24 Disk load switches, floppy, 5-3 Disk PUD entry, floppy, 10-38 Disk switch register, floppy, 5-3 Disk task, ATL entry for floppy, 10-34 TPD entry for floppy, 10-35 Dismounting a device, 6-9 Displacement, branch, 6-36, 6-43 jump, 6-36, 6-43 DL-llE startup routine, 7-15 DL-IlE timeout routine, 7-15 DLll queue, 10-36 Index-7 INDEX (CONT.) DLll/C table, 10-22 DLll/E table, 10-22 .DLMTO routine, 7-15 .DLMTO startup routine, 7-15 DLYCNT DTE-20 register, 8-21, 8-23 DM-IIBB, 7-14 DMII/BB table, 10-22 $DMINT routine, 7-11, 7-12, 7-13 DMO error messages, 6-11 DMO task, C-2 DMO utility, 6-9, 6-10 .DMTMO routine, 7-13, 7-14, 7-20 .DMTMO system startup routine, 7-14 DONIOC DTE-20 bit, 8-13 DONIOS DTE-20 bit, 8-13 DONIIC DTE-20 bit, 8-14 DONllS DTE-20 bit, 8-14 Done interrupt, 8-8 To-II, 8-37 Doorbell function, 8-29 DTE-20, 8-1 Doorbell interrupt, 8-7, 8-8, 8-10, 8-12 Doorbell interrupt, c a us i ng a, 8 -13 DPS4[N] DTE-20 bit, 8-17 DRAM error report, 5-36 DRAM malfunction, 8-16 DRESET DTE-20 bit, 8-17 Driver, disk, 1-7 DTE-20, 1-7 STD entry for CD-II, 10-32 STD entry for DECtape, 10-32 STD entry for DTE-20, 10-31 STD entry for FE, 10-32 STD entry for floppy disk, 10-32 STD entry for LP, 10-32 STD entry for terminal, 10-32 Driver data base, DECtape, 10-25 disk, 10-26 FE device, 10-27 floppy disk, 10-24 LP-20, 10-29 Driver logic, DTE-20, 8-33 Driver routine, terminal, 7-11, 7-12 1 Driver routine (Cont.) 7-13 Drivers, device, 1-5, 7-4 interfacing device, 8-30 Driving the DTE-20, 1-7 DSOO-DS03 DTE-20 bit, 8-16 DSOO-DS06 DTE-20 bit, 8-15 DS04 DTE-20 bit, 8-16 DS05 DTE-20 bit, 8-16 DS06 DTE-20 bit, 8-16 DSEND DTE-20 bit, 8-15 Dte-20, Blocking the, 8-37 DTE-20, driving the, 1-7 memory deposits across, 8-1, 8-8 memory examines across, 8-1, 8-8 privileged, 9-9, 10-16 single-stepping the, 8-11, 8-12 TO-10 data transfer across, 8-1 TO-II data transfer across, 8-1 DTE-20 bit, BPARER, 8-12 CDD, 8-18 CNUPE, 8-18 DIOll, 8-15, 8-16 DCOMST, 8-15, 8-16 DEX, 8-15, 8-16 DEXDON, 8-12 DFUNC, 8-15 DIKLIO, 8-15 DONI. OC, 8-13 DONI0S, 8-13 DONIIC, 8-14 DONllS, 8-14 DPS4[N],8-17 DRESET, 8-17 DSOO-DS03, 8-16 DSOO-DS06, 8-15 DS04, 8-16 DS05, 8-16 DS06, 8-16 DSEND, 8-15 DUPE, 8-18 DURE, 8-18 DXWFD1, 8-11 EBSEL, 8-12 EBUSPC, 8 -14 EBUSPS, 8-14 EDONES, 8-16 ERRIOC, 8-13 ERRI0S, 8-13 ERRIIC, 8-14 Index-8 INDEX (CONT.) DTE-20 bit (Cont.) ERRllS, 8-14 INTI0S, 8-14 INTI1C, 8-13 INTllS, 8-13 INTROF, 8-14 INTRON, 8-14 INTSON, 8-13 MPEll, 8-12 NULSTP, 8-12 NUPE, 8-18 PERCLR, 8-13 PULSE, 8-15 RAMISO, 8-11 RFAMDO, 8-16 RFMADl, 8-16 RFMAD2, 8-17 RFMAD3, 8-17 RM, 8-12 seD, 8-18 SWSLLT, 8-17 TOI0, 8-16 TOI0BM, 8-18 TOI0DB, 8-12 TOI0DN, 8-11 TOI0ER, 8-11 TOll, 8-16 TOIIDB, 8-11 TOIIDN, 8-12 TOllER, 3-12 VEC04, 8-16 WEP, 8-18 DTE-20 deposit operation, 8-21, 8-22 DTE-20 diagnostic mode, 8-15 DTE-20 diagnostic operations, 8-1 DTE-20 Diagnostic Word 1, 8-15, 8-16, 8-17 DTE-20 Diagnostic Word 2, 8-16 DTE-20 Diagnostic Word 3, 8-16 DTE-20 diagnostic words, 8-15 DTE-20 doorbell function, 8-1 DTE-20 driver, 1-7 STD entry for, 10-31 DTE-20 driver logic, 8-33 DTE-20 examine operation, 8-12, 8-21, 8-22 DTE-20 hardware operations, 8-1 DTE-20 loop-back test, 8-15 DTE-20 mode, privileged, 8-12 restricted, 8-12 DTE-20 operation, deposit, 8-12 DTE-20 operations, basic, 8-1 DTE-20 protocol, 8-29 DTE-20 register, 8-10 DEXWDl-2, 8-22 DEXWDl-3, 8-21 DLYCNT, 8-21, 8-23 STATUS, 8 -1 0 TENADl-2, 8-21, 8-22 TOI0AD, 8-20, 8-23 TOI0BC, 8-10, 8-20, 8-23 TOI ODT, 8-19 TOIIAD, 8-19, 8-23 TOIIBC, 8-20, 8-23 TOIIDT, 8-19 DTE-20 register conventions, 8-36 DTE-20 registers, examining, 10-6 locations of, 8-10 using the, 8-22 DTE-20 routines, 8-36 DTE-20 status register, 8-36 DTE-20 status word, 8-10 read state of, 8-11, 8-12 write state of, 8-13, 8-14 DTE-20 task, ATL entry for, 10-33 TPD entry for, 10-35 DTE-20 word, CMKAC, 9-1 .DTINT routine, 8-37 DTR signal, 7-11, 7-13 Dump analysis, sample RSX-20F, 10-7, 10-8, 10-9, 10-10 Dump file, examining locations in a, 10-1 producing, E-l reading a front-end, 10-1 Dumps, interpreting RSX-20F, 10-4, 10-5, 10-6, 10-7, 10-8, 10-9, 10-10 DUPE DTE-20 bit, 8-18 DURE DTE-20 bit, 8-18 DXWRDI DTE-20 bit, 8-11 EBSEL DTE-20 bit, 8-12 EBUS parity error, 8-12, 10-16 EBUSPC DTE-20 bit, 8-14 Index-9 INDEX (CONT.) EBUSPS DTE-20 bit, 8-14 EDONES DTE-20 bit, 8-16 EIA pin definitions, F-1 Emergency Stack, 10-40 EMT instruction, 7-9 Enabling cache memory, 5-1, 5-8, 5-38 Enabling PDP-II interrupts, 8-13, 8-14 Enabling remote lines, 10-20 Entering KLINIT dialog, 5-6 Entering KLINIT from PARSER, 5-6 Entry count, TO-II queue, 10-15 EPT, 8-32 ERR10C DTE-20 bit, 8-13 ERR10S DTE-20 bit, 8-13 ERR11C DTE-20 bit, 8-14 ERR11S DTE-20 bit, 8-14 Error codes, RSX-20F I/O, A-I, A-6 Error logging, KL, 9-2 PDP-II, 9-7 RSX-20F, 9-2 Error messages, DMO, 6-11 KLINIT dialog, 5-17, 5-20 KLINIT system, 5-17, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31, 5-32 MOU, 6-11 PARSER, 4-3, 4-29 PIP, 6-19, 6-20, 6-21, 6-22, 6-23 RED, 6-24 SAV, 6-26 UFD, 6-30 ZAP, 6-43, 6-44, 6-45 Error report, CRAM, 5-35 DRAM, 5-36 Error reports, microcode verification, 5-35 Error termination of byte transfer, 8-12 ERROR.SYS file, C-1, C-2, D-1, E-2 Errors, bootstrapping, 5-5 Evaluation of arithmetic expressions, 4-3 Event, significant, 1-5, 1-7 Event flags, CD-II current, 10-28 global common, 10-11 LP-20 current, 10-29 significant, 10-11 EXAMINE AB PARSER command, 4-12 EXAMINE AD PARSER command, 4-12 EXAMINE ADX PARSER command, 4-12 EXAMINE AR PARSER command, 4-13 EXAMINE ARX PARSER command, 4-13 EXAMINE BR PARSER command, 4-13 EXAMINE BRX PARSER command, 4-13 EXAMINE CRADDR PARSER command, 4-13 EXAMINE CRLOC PARSER command, 4-13 EXAMINE DRADDR PARSER command, 4-13 EXAMINE DTE-20 PARSER command, 4-14 EXAMINE EBUS PARSER command, 4-14 EXAMINE FE PARSER command, 4-14 EXAMINE FLAGS PARSER command, 4-14 EXAMINE FM PARSER command, 4-14 EXAMINE KL PARSER command, 4-11 EXAMINE MQ PARSER command, 4-15 Examine operation," 8-33 DTE-20, 8-12, 8-2111 8-22 EXAMINE PC PARSER command, 4-11 EXAMINE PI PARSER command, 4-15 EXAMINE REGISTERS PARSER command, 4-15 EXAMINE SBR PARSER command, 4-15 EXAMINE SECTION PARSER command, 4-15 EXAMINE VMA PARSER command, 4-15 EXAMINE VMAH PARSER command, 4-15 Examines, verifying memory, 8-8 Index-10 INDEX (CONT.) Fast Memory parity error, 8-16 FCS file structure, 2-4 FE device driver data base, 10-27 FE driver, STD entry for, 10-32 FE program, B-1, B-4 FE program, running, B-4 FE PPD entry, 10-38 FE task, ATL entry for, 10-34 TPD entry for, 10-35 FE: device, B-4, B-5, C-2 FEDDT, writing files with, 10-1 FEDDT commands, 10-2, 10-3, 10-4 FEDDT modes, setting, 10-3, 10-4 FEDDT output modes, setting, 10-3, 10-4 FEDDT symbolic debugger, 10-1, 10-2, 10-3, 10-4 FEDDT with symbols loaded, saving, 10-2 FEUIC.TXT file, B-4 Field Service test condition, 8-16 File, configuration, 5-6, 5-9 Files-II, 2-2 Files-II index, 2-4 File Control Services, 2-4 File creation date, 2-3 File creation time, 2-3 File Directory, Master, 2-4 User, 1-7, 2-1, 6-29 File expiration date, 2-3 File extension, 2-4 File extension header, 2-3 File header, 2-3 File header checksum, 2-3 File ID, 1-7, 2-2, 2-3 File name, 2-3 primary, 2-3 File number, 2-2 File ownership code, 2-3 File protection code, 2-3 File revision count, 2-3 File revision date, 2-3 File revision time, 2-3 File sequence number, 2-2 File structure, FCS, 2-4 Examines across DTE-20, memory, 8-1, 8-8 Examining a crashed system, 7-4 Examining current KLINIK parameters, D-7, D-8 Examining data in front-end memory, 10-1 Examining DTE-20 registers, 10-6 Examining front-end memory, 10-4 Examining locations in a dump file, 10-1 Examining PDP-II registers, 10-6 Executive, base address of, 10-11 high address of, 10-11 RSX-20F, 7-1, 7-2, 7-3, 7-4 Executive partition, 1-5 Executive Process Table, 8-32 Executive tasks, 7-5 Exiting KLINIT dialog, 5-42 Exiting PARSER, 4-1 Expiration date, file, 2-3 Expressions, evaluation of arithmetic, 4-3 Extended direct packets, To-ten, 8-34 Extended direct transfer, 8-37 Extension, file, 2-4 Extension header, file, 2-3 linkage to, 2-3 External core memory, configuring, 5-10 External core memory bus-mode, setting, 5-10 External memory configuration maps, 5-32 External page, 1-3, 7-4 FllACP, 7-4 STD entry for, 10-32 FllACP task, C-l TPD entry for, 10-35 FllTPD partition, 1-5, 7-4 Index-II INDEX (CONT.) File system, front-end, 1-7 File transfer dialog, B-5 File type, 2-4 File version number, 2-2, 2-4 Files, reformatting, B-1, B-2, B-3 transferring, B-4, B-5, B-6, B-7, C-2 Files between processors, transferring, B-1 Files-II, 1-7, 2-1 Files-II device, 6-10, C-2 Files-II directory file, 2-3 Files-II directory file entry, 2-3 Files-II file, 2-2 Filoq-ll index file, 2-4 Files-II medium, 2-1 Files-II partition, 1-5 FiLes-II tasks, 1-7 Files-II volume, 2-1, C-2 Finding contents of memory locations, 7-4 Finding last instruction executed, 10-5 Fixed-length records, 2-4 Floppy disk, copying a, 6-1 zeroing a, 6-2 Floppy disk driver, STD entry for, 10-32 Floppy disk driver data base, 10-24 Floppy disk load switches, 5-3 Floppy disk PUD entry, 10-38 Floppy disk switch register, 5-3 Floppy disk task, ATL entry for, 10-34 TPD entry for, 10-35 FM parity error check, 4-24 Format register, ZAP, 6-37 Framing error, 7-19, 7-23 FREAD PARSER command, 4-15 Free Pool, 7-4, 10-6, 10-18 Free Pool, free space in, 10-6 Free space in Big Buffer, 10-6 Free space in Free Pool, 10-6 .FREPL location, 10-6 Front end, privileged, 8-29 Front End Status Block, 10-10 Front-end crashes, recovering from, 10-1 Front-end dump file, reading a, 10-1 Front-end file system, 1-7 Front-end function, 1-6 Front-end memory, depositing data in, 10-1 examining, 10-4 examining data in, 10-1 Front-end tasks, C-l Function, front-end, 1-6 Functions of queued protocol driver, 8-30 FWRITE PARSER command, 4-16 FXCT PARSER command, 4-16 GEN partition, 1-5, 1-7, 4-1, 7-4 GEN partition, installing tasks in, 7-8 TPD entry for, 10-35 General partition, 1-5 General PDP-II registers, 1-4 Generating a clock cycle, 8-15 Generating parity, 8-18 Getting help on RSX-20F, E-l Global common event flags, 10-11 Index-12 HALT PARSER command, 4-16 Halting the KL, 8-16 Handling, trap, 7-9 Hardware, modern handling, 7-10 Hardware diagnostics, KL, 1- 6 Hardware interface, 8-1 Hardware operations, DTE-20, 8-1 Hardware options available, 10-39 Hardware program counter, 1-4 Hardware stack pointer, 1-4 INDEX (CONT.) Head, TO-lO queue current, 10-15 Header, Communications Region, 8-1 file, 2-3 file extension, 2-3 linkage to extension, 2-3 Header area, 2-3 Header checksum, file, 2-3 Header word, Comm Reg Pre, 8-3 Help facility, PARSER, 4-4 Help on RSX-20F, getting, E-l High address of Executive, 10-11 Hot line calls, E-l I/O, redirecting, 6-23 I/O error codes, RSX-20F, A-I, A-6 I/O page, 1-3, 7-4 I/O requests, 1-5 ID, file, 1-7, 2-2, 2-3 Ident area, 2-3 Identification table, processor, 10-15 Ignoring KL halts, 10-12 Image file, core, 2-4 Index file, Files-II, 2-4 Indexed file, positioning in an, 6-5 INDEXF.SYSil file, 2-4 Indirect command file, 4-25 Indirect data packets, transferring, 8-8 Indirect packets, To-II, 8-36 To-ten, 8 -35 Indirect transfer, To-II, 8-38 Indirect-in-progress semophore, 8-38 Informational messages, KLINIT, 5-17, 5-18 IN! task, C-2 INI utility, 6-4 /FULL, 6-5 /INDX, 6-5 INI utility (Cont.) /INF, 6-5 Initialization, KL, 1-6 INITIALIZE PARSER command, 4-16 Initializing a volume, 6-4 Initializing Communications Region, 8-1 Input routine, character, 7-13, 7-16, 7-17, 7-18, 7-19, 7-20 Install task, TPD entry for, 10-35 Installation, task, 6-24 Installing tasks in GEN partition, 7-8 Instruction executed, finding last, 10-5 Instruction set, PDP-II, 1-4 INTlOS DTE-20 bit, 8-14 INTllC DTE-20 bit, 8-13 INTllS DTE-20 bit, 8-13 Interface, DH-ll communications, 7-22, 7-23 Interfacing device drivers, 8-30 Interleaving KL memory, 5-1, 5-10 Internal core memory, configuring, 5-10 Internal memory configuration maps, 5-32, 5-33 Internal registers, ZAP, 6-34 Interpreting RSX-20F dumps, 10-4, 10-5, 10-6, 10-7, 10-8, 10-9, 10-10 Interrupt, doorbell, 8-7 To-II done, 8-37 Interrupt enable bit, 7-15 Interrupt priorities, 1-3 Interrupt status, current, 8-14 Interrupt system, Priority, 8-5 Interrupts, disabling PDP-II, 8-14 enabling PDP-II, 8-13, 8-14 vector, 1-3 INTROF DTE-20 bit, 8-14 INTRON DTE-20 bit, 8-14 INTSON DTE-20 bit, 8-13 Index-13 INOEX (CONT.) lOT instruction, 9-7 IOTTRP location, 9-7 IOTTRP routine, 7-9 JSYS's, TOPS-20, 1-4 Jump displacement, 6-36, 6-43 JUMP PARSER command, 4-16 Keep-Alive count, 8-4, 8-9, 9-1, 10-17 Keep-Alive data base, 10-17 Keep-Alive-Cease error, 9-1, 10-5, 10-6 KL, booting the, 8-29 halting the, 8-16 loading the, 5-1 KL bootstrap program, 5-1 KL Communications Region, 9-1 KL CPU serial number, 10-39 KL error logging, 9-2 KL halts, ignoring, 10-12 KL hardware diagnostics, 1-6 KL initialization, 1-6 KL memory, configuring, 5-1, 5-9 interleaving, 5-1, 5-10 KL microcode, loading, 5-1, 5-8 verifying, 5-1, 5-8, 5-42 KL state flag, 10-13 KL status, sampl ing, 8-15 KL. CFG file, 5-1, 5-8, 5-9, 5-11, 5-28, 5-32 KL/POP-ll interface, 8-1 KLA.MCB file, 5~1 KLOISC task, C-2 KLERR, 9-1 running, 9-1 KLERR functions, 9-1 KLERR messages, 9-8 KLERRO.SNP file, 9-1 KLI task, C-l KLINIK, C-2 KLINIK access dialog, 0-1 KLINIK access parameters, '0-1 KLINIK access parameters, setting, 0-5, 0-6, 0-7 KLINIK access password, 0-2, 0-9 KLINIK access window 1 0-2, 0-3 KLINIK access window password, 10-14 KLINIK access window start date, 10-14 KLINIK access window start time, 10-14 KLINIK console mode, 10-14 KLINIK data base, 10-14 KLINIK dialog, remote user, 0-9 KLINIK events, 0-1 KLINIK integrity over reboot, 0-11, 0-12 KLINIK line status flag, 10-14 KLINIK link, 4-8 terminating, 0-8 KLINIK operator dialog, 0-4 KLINIK parameters, examining current, 0-7, 0-8 KLINIK terminal, remote, 0-2 KLINIT, 5-1 loading, 5-6 starting, 5-6 KLINIT command, BACK, 5-7 KLINIT dialog, entering, 5-6 exiting, 5-42 restarting, 5-6, 5-42 terminating, 5-6 KLINIT dialog ~rror messages, 5-17, 5-20 KLINIT dialog examples, 5-36, 5-37, 5-38, 5-39, 5-40, 5-41, 5-42 KLINIT dialog mode, 5-1 KLINIT dialog reports, 5-32 KLINIT from PARSER, entering, 5-6 KLINIT informational messages, 5-17, 5-18 KLINIT messages, 5-17 KLINIT operator dialog, 5-7, 5-8, 5-9, 5-10, ~)-ll, 5-13, 5-14, 5-15, 5-16 KLINIT system error messages, 5-17, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31, 5-32 KLINIT tracking capability, 5-7 Index-14 INDEX (CONT.) KLINIT warning messages, 5-17, 5-18, 5-19, 5-20 KLRING task, C-2 KLX.MCB file, 5-1 Known files, 2-4 Last instruction executed, finding, 10-5 Line speed, CTY, 10-13 Line speed table, C-2 Line status flag, KLINIK, 10-14 Linkage to extension header, 2-3 Listing a directory file, 6-13, 6-15 Listing available space, 6-13, 6-15 Listing file directories, 6-12 Load switches, DECtape, 5-5 floppy disk, 5-3 Loading a specified file, 5-11 Loading bootstrap program, 5-1, 5-7 Loading KL microcode, 5-1, 5-8 Loading KLINIT, 5-6 Loading monitor from subdirectories, 5-2 Loading RSX-20F, 5-6 Loading the KL, 5-1 Loading the system, 5-6 Locations in a dump file, examining, 10-1 Locations of DTE-20 registers, 8-10 Log file, C-l Logging, KL error, 9-2 PDP-II error, 9-7 RSX-20F error, 9-2 Logical memory configuration maps, 5-32, 5-33, 5-34 Logical Unit Number, 2-1, 6-9 Logical Unit Tables, 10-37 LOGXFER, running, 9-11 LOGXFER task, 9-10 LOGXFR task, C-l Loop-back test, DTE-20, 8-15 Index-IS Lost carrier, 7-15 LP driver, STD entry for, 10-32 LP PUD entry, 10-38 LP task, ATL entry for, 10-34 TPD entry for, 10-35 LP-20 current event flags, 10-29 LP-20 driver data base, 10-29 LP-20 status block, 10-29 LPT thread lists, 7-4 LPTBL location, 10-30 LUN, 2-1 Magnetic tape boot program, C-3 Maintenance moae, 4-4 Manager data base, core, 10-18 Map area, 2-3 Map file, memory, 1-6 Mapped system, 1-5 Maps, external memory configuration, 5-32 internal memory configuration, 5-32, 5-33 logical memory configuration, 5-32, 5-33, 5-34 physical memory configuration, 5-32 MARK-MICROCODE PARSER command, 4-16 Master File Directory, 2-4 MB20 memory, reconfiguring, 5-38 MCR PARSER command, 4-16 Medium, Files-II, 2-1 Memory, configuring cache, 5-1, 5-8, 5-41 configuring external core, 5-10 configuring internal core, 5-10 configuring KL, 5-1, 5-9 configuring MOS, 5-11 depositing data in front-end, 10-1 enabling cache, 5-1, 5-8, 5-38 INDEX (CaNT.) Memory (Cont.) examining data in front-end, 10-1 examining front-end, 10-4 interleaving KL, 5-1, 5-10 reconfiguring MB20, 5-38 Memory addresses, virtual, 1-5 Memory allocation map, 6-34 Memory blocks, configuring specified, 5-11 Memory bus-mode, setting external core, 5-10 Memory configuration, reversing, 5-9 Memory configuration maps, external, 5-32 internal, 5-32, 5-33 logical, 5-32, 5-33, 5-34 physical, 5-32 Memory deposits across DTE-20, 8-1, 8-8 Memory examines, verifying, 8-8 Memory examines across DTE-20, 8-1, 8-8 Memory layout, RSX-20F, 7-5 Memory locations, finding contents of, 7-4 Memory map file, 1-6 Memory modules, configuring specified, 5-10 Memory parity error, Fast, 8-16 PDP-II, 8-11, 8-12, 8-13 Memory parity option, MFllLP, 8-12 MFllUP, 8-12 Memory size in blocks, 10-11 Merging files, 6-13, 6-18 MFllLP memory parity option, 8-12 MFllUP memory parity option, 8-12 MFD, 2-4 Microcode, loading KL, 5-1, 5-8 verifying KL, 5-1, 5-8, 5-42 Microcode file, 5-1 Microcode verification error reports, 5-35 MIDNIT task, C-2 Mode, maintenance, 4-4 operator, 4-4 PARSER console, 4-4 privileged DTE-20, 8-12 programmer, 4-4 restricted DTE-20, 8-12 user, 4-4 Modem handling, 7-10 Modem handling concepts, 7-10 Modem handling hardware, 7-10 Modem handling routine, 7-11, 7-12, 7-13 Modem strapping options, 7-10 Modem timeout routine, 7-13, 7-14 Monitor, TOPS-IO default, 5-1 TOPS-20 default, 5-1 Monitor from subdirectories, loading, 5-2 MaS memory, configuring, 5-11 MOU error messages, 6-11 MOU task, C-l MOU utility, 6-9, 6-10 Mounting a device, 6-9 MPEll DTE-20 bit, 8-12 MTBOOT task, C-3 MTBOOT.EXB file, 5-41 Name, file, 2-3 owning processor's, 8-4 primary file, 2-3 Node Pool, 10-6 Nonprivileged tasks, 1-6 Nonresident tasks, 1-6 Nonstandard devices, E-2 Normal data transfer mode, 8-15 NPR requests, 1-4 NPR UNIBUS parity error, 8-11 Null task, 7-8 ATL entry for, 10-34 NULSTP DTE-20 bit, 8-12 Number, processor, 10-15 NUPE DTE-20 bit, 8-18 Index-16 INDEX (CONT.) Obsolete files, purging, 6-13, 6-18 Offset, 4-3 relative, 6-33 Operation, deposit, 8-33 deposit DTE-20, 8-12 DTE-20 deposit, 8-21, 8-22 DTE-20 examine, 8-12, 8-21, 8-22 examine, 8-33 Operator dialog, KLINIK, D-4 KLINIT, 5-7, 5-8, 5-9, 5-10, 5-11, 5-13, 5-14, 5-15, 5-16 Operator mode, 4-4 Operators, precedence of arithmetic, 4-3 OUTPUT command, SET NO, 4-22 Output modes, setting FEDDT, 10-3, 10-4 Output routine, character, 7-16, 7-23, 7-24, 7-25, 7-26, 7-27 Overlays, 1-5 RSX-20F, 7-1 Owned area, 8-1 Owned communications area, PDP-II, 8-3 Ownership code, file, 2-3 Owning processor, 8-3 Owning processor's comm area, 8-3 Owning processor's name, 8-4 Owning processor's serial number, 8-4 PaGket address, 10-21, 10-24 Packet size, 10-21 Packets, data, 8-33 To-II indirect, 8-36 To-eleven direct, 8-34 To-ten direct, 8-33 To-ten extended direct, 8-34 To-ten indirect, 8-35 transferring indirect data, 8-8 Page, external, 1-3, 7-4 I/O, 1-3 Pager process status, 8-5 Pager system status, 8-5 Parity, generating, 8-18 Parity check, AC block, 4-24 Parity error, EBUS, 8-12, 10-16 Fast Memory, 8-16 NPR UNIBUS, 8-11 PDP-II memory, 8-11, 8-12, 8-13 UNIBUS, 8-17, 8-18 Parity error check, FM, 4-24 Parity flip-flop, UNIBUS, 8-18 Parity network, testing, 8-18 PClrity option, MF11LP memory, 8-12 MFIIUP memory, 8-12 Parity registers save area, 10-11 PARSER, 4-1 entering KLINIT from, 5-6 exiting, 4-1 starting, 4-1 PARSER command, ABORT, 4-6 CLEAR AUTO-TAKE, 4-7 CLEAR CONSOLE, 4-4, 4-7 CLEAR DATE, 4-7 CLEAR FAULT-CONTINUATION, 4-8 CLEAR FS-STOP, 4-8 CLEAR INCREMENT, 4-8 CLEAR KLINIK, 4-8 CLEAR MEMORY, 4-8 CLEAR NOT, 4-8 CLEAR OFFSET, 4-8 CLEAR RELOAD, 4-9 CLEAR REPEAT, 4-9 CLEAR RETRY, 4-9 CLEAR TRACKS, 4-9 CONTINUE, 4-10 DEPOSIT AR, 4-10 DISCONNECT, 4-11, D-8 EXAMINE AB, 4-12 EXAMINE AD, 4-12 EXAMINE ADX, 4-12 EXAMINE AR, 4-13 EXAMINE ARX, 4-13 EXAMINE BR, 4-13 EXAMINE BRX, 4-13 Index-17 INDEX (CONT.) PARSER command (Cont.) WHAT AUTO-TAKE, 4-26 WHAT CLOCK, 4-26 WHAT CONSOLE, 4-4, 4-26 WHAT DATE, 4-26 WHAT FAULT-CONTINUATION, 4-26 WHAT HARDWARE, 4-26 WHAT INCREMENT, 4-26 WHAT KLINIK, 4-27 WHAT MEMORY, 4-27 WHAT OFFSET, 4-27 WHAT OUTPUT, 4-27 WHAT PARITY-STOP, 4-27 WHAT RELOAD, 4-27 WHAT REPEAT, 4-28 WHAT RETRY, 4-28 WHAT TRACKS, 4-28 WHAT VERSION, 4-28 XCT, 4-28 ZERO, 4-29 PARSER command lines, continuing, 4-2 PARSER commands, 4-2, 4-6 PARSER comments, 4-2 PARSER console mode, 4-4 PARSER error messages, 4-3, 4-29 PARSER help facility, 4-4 PARSER prompts, 4-1 PARSER TAKE command, 4-25 PARSER task, C-1 PARSER. LOG file, 9-11, C-1 Partition, Executive, 1-5 F11TPD, 7-4 GEN, 1-5, 7-4 installing tasks in GEN, 7-8 Partition Directory, Task, 10-35 Password, KLINIK access window, 10-14 Patching a task image, 6-31 PDP-II BR requests, 8-13 PDP-II date, C-2 PDP-II error logging, 9-7 PDP-II features, 1-3 PDP-II instruction set, 1-4 PDP-II interrupts, disabling, 8-14 enabling, 8-13, 8-14 PDP-II memory parity error, 8-11, 8-12, 8-13 PDP-II owned communications area, 8-3 PDP-II registers, examining, 10-6 PARSER command (Cont.) EXAMINE CRADDR, 4-13 EXAMINE CRLOC, 4-13 EXAMINE DRADDR, 4-13 EXAMINE DTE-20, 4-14 EXAMINE EBUS, 4-14 EXAMINE FE, 4-14 EXAMINE FLAGS, 4-14 EXAMINE FM, 4-14 EXAMINE KL, 4-11 EXAMINE MQ, 4-15 EXAMINE PC, 4-11 EXAMINE PI, 4-15 EXAMINE REGISTERS, 4-15 EXAMINE SBR, 4-15 EXAMINE SECTION, 4-15 EXAMINE VMA, 4-15 EXAMINE VMAH, 4-15 FREAD, 4-15 FWRITE, 4-16 FXCT, 4-16 HALT, 4-16 INITIALIZE, 4-16 JUMP, 4-16 MARK-MICROCODE, 4-16 MCR, 4-16 QUIT, 4-17 REPEAT, 4-17 RESET, 4-17 RESET ALL, 4-17 RESET APR, 4-18 RESET DTE-20, 4-18 RESET ERROR, 4-18 RESET I/O, 4 -18 RESET INITIALIZE, 4-18 RESET PAG, 4-18 RESET PI, 4-18 RUN, 4-18 SET AC-BLOCK, 4-19 SET CONSOLE, 4-4 SET DATE, 4-20 SET FAULT-CONTINUATION, 4-21 SET FS-STOP, 4-21 SET INCREMENT, 4-21 SET KLINIK, 4-21 SET NOT, 4-21 SET OFFSET, 4~22 SET RELOAD, 4-22 SET REPEAT, 4-23 SET RETRY, 4-23 SET TRACKS, 4-23 SET UTO-TAKE, 4-19 SHOW, 4-23 SHUTDOWN, 4-23 START MICROCODE, 4-24 START TEN, 4-24 SWEEP, 4-24 UNMARK-MICROCODE, 4-25 Index-18 INDEX (CONT.) PDP-II registers (Cont.) general, 1-4 PDP-II stacks, 1-4 PDP-II time, C-2 PERCLR DTE-20 bit, 8-13 Performing directives, 7-9 Peripheral Interchange Program, 6-12 Phone ring interrupt, 7-13 Physical memory configuration maps, S-32 Physical unit device tables, 10-37 PIDENT word, Comm Reg, 8-3 Pin definitions, EIA, F-l PIP, B-1 PIP error messages, 6-19, 6-20, 6-21, 6-22, 6-23 PIP subswitches, 6-13 PIP switches, 6-13 PIP task, C-l PIP utility, 6-12 IFR, 6-lS lAP, 6-13 IDE, 6-14 ILl, 6-lS IME, 6-18 IPU, 6-18 IRE, 6-18 Pointer to next Comm Reg area, 8-4 .POLLH location, 10-6 Pool, Free, 7-4, 10-6, 10-18 free space in Free, 10-6 Node, 10-6 Positioning in an indexed file, 6-S Power-fail bit, 8-7 Power-fail restart, 7-22 Power-fail startup, 7-14 Power-fail trap, 7-9 Prc Header word, Comm Reg, 8-3 Precedence of arithmetic operators, 4-3 Primary file name, 2-3 Primary protocol, 7-20, 8-30 Primary protocol, switching to, 8-30 Primary Protocol functions, 10-1 Priorities, interrupt, 1-3 Priority Interrupt system, 8-S Priority levels, device, 1-3 Privileged DTE-20, 9-9, 10-16 Privileged DTE-20 mode, 8-12 Privileged front end, 8-29 Privileged tasks, 1-6 Process status, Pager, 8-S Processor, Arithmetic, 8-S owning, 8-3 Processor identification table, 10-lS Processor number, 8-7, 10-lS Processor number, protocol, 8-1 Processor reload word, 8-9 Processor Status save area, 10-12 Processor table, 8-36 Processor's comm area, owning, 8-3 Processor's name, owning, 8-4 Processor's serial number, owning, 8-4 Processors, transferring data between, 8-8, 8-19, 8-20, 8-21, 8-22, 8-30 transferring files between, B-1 Producing dump file, E-l Progra.m counter, hardware, 1-4 Programmer mode, 4-4 Prompts, PARSER, 4-1 Protection code, file, 2-3 Protocol, DTE-20, 8-29 primary, 7-20, 8-30 queued, 8-8, 8-30 secondary, 7-20, 8-29 STD entry for queued, 10-32 switching to primary, 8-30 Protocol data base, queued, 10-lS Protocol driver, functions of queued, 8-30 Index-19 INDEX (CONT.) Protocol driver (Cont.) queued, 8-30 Protocol functions, Primary, 10-1 Protocol pause, 7-20 Prutocol pause flag, 10-16 Protocol processor number, 8-1 Protocol task, queued, 1-7 Protocol version number, 8-6 Comm Reg, 8-3 Prs command, SET CLOCK NORMAL, 4-19 Prt task, ATL entry for queued, 10-34 TPD entry for queued, 10-35 PUD entry, DECtape, 10-38 FE, 10-38 floppy disk, 10-38 LP, 10-38 RP, 10-38 system, 10-38 terminal, 10-37 PUD tables, 10-37 PULSE DTE-20 bit, 8-15 Purging obsolete files, 6-13, 6-18 Queued protocol driver (Cont.) functions of, 8-30 Queued protocol task, 1-7 Queued prt task, ATL entry for, 10-34 TPD entry for, 10-35 Queues after a crash, checking, 10-6 QUIT PARSER command, 4-17 Radix, default, 4-2 RAMISO DTE-20 bit, 8-11 Rate, data transfer, 8-21 Read state of DTE-20 status word, 8-11, 8-12 Read-only mode, 6-32 ZAP, 6-32 Reading a front-end dump file, 10-1 Reading RSX-20F symbol files, 10-4 Reboot, KLINIK integrity over, D-ll, D-12 Receiver error, UNIBUS, 8-18 Reconfiguring MB20 memory, 5-38 Records, fixed-lenqth, 2-4 variable-length, 2-4 Recovering from front-end crashes, 10-1 RED error messages, 6-24 RED task, C-2 RED utility, 6-23 Redirecting I/O, 6-23 Redirecting the CTY, 5-5 Reformatting files, B-1, B-2,·B-3 Register, DTE-20 status, 8-36 Register conventions, DTE-20, 8-36 Registers, examining DTE-20, 10-6 examining PDP-II, 10-6 general PDP-II, 1-4 using the DTE-20, 8-22 Relative address, 6-32 Relative offset, 6-33 Relative volume number, 2-2 Reload bit, 8-7 Quantity register, ZAP, 6-37 Queue, CTY, 10-36 data line scanner, 10-36 DH-ll, 10-36 DLll, 10-36 TO-IO, 10-15 Queue current head, TO-IO, 10-15 Queue entry count, TO-II, 10-15 Queue pointer, TO-IO, 10-6 TO-II, 10-6 Queue Pointers, Device, 10-36 Queued protocol, 8-8, 8-30 Queued protocol, STD entry for, 10-32 Queued protocol data base, 10-15 Queued protocol driver, 8-30 Index-20 INDEX (CONT.) Reload flag, automatic, 10-13 Reload word, processor, 8-9 Relocation bias, 6-32, 6-39 Relocation factor, 4-3 Relocation register, 6-39 ZAP, 6-33, 6-36 Remote CTY, D-2, D-9, D-IO Remote in Progress, 7-14 Remote KLINIK terminal, D-2 Remote lines, enabling, 10-20 Remote terminal, console mode of, D-3 Remote user KLINIK dialog, D-9 Remote user terminal, D-ll Renaming files, 6-12, 6-13, 6-18 REPEAT PARSER command, 4-17 Request list, clock, 10-19 Request To Send signal, 7-11 Reset, auto-baud, 7-15 RESET ALL PARSER command, 4-17 RESET APR PARSER command, 4-18 RESET DTE-20 PARSER command, 4-18 RESET ERROR PARSER command, 4-18 RESET I/O PARSER command, 4-18 RESET INITIALIZE PARSER command, 4-18 RESET PAG PARSER command, 4-18 RESET PARSER command, 4-17 RESET PI PARSER command, 4-18 Resident tasks, 1-6 Restart, power-fail, 7-22 Restarting KLINIT dialog, 5-6, 5-42 Restricted DTE-20 mode, 8-12 Retry flag, 9-1, 10-17 Reversing memory configuration, 5-9 Revi.sion count, file, 2-3 Revision date, file, 2-3 Revision time, file, 2-3 RFAMDO DTE-20 bit, 8-16 RFMADI DTE-20 bit, 8-16 RFMAD2 DTE-20 bit, 8-17 RFMAD3 DTE-20 bit, 8-17 Ring interrupt, phone, 7-13 RIP flag, 7-13 RM DTE-20 bit, 8-12 Routine, .DTINT, 8-37 Routines, DTE-20, 8-36 RP PUD entry, 10-38 RP task, ATL entry for, 10-34 TPD entry for, 10-35 RSX-llD, 1-1 RSX-llM, 1-1, 1-4, 1-6 RSX-llM utility programs, 1-7 RSX-20F, getting help on, E-l loading, 5-6 starting, 5-6 RSX-20F crash codes, 9-7, A-I, 10-5 RSX-20F dump analysis, sample, 10-7, 10-8, 10-9, 10-10 RSX-20F dumps, interpreting, 10-4, 10-5, 10-6, 10-7, 10-8, 10-9, 10-10 RSX-20F error logging, 9-2 RSX-20F Executive, 7-1, 7-2, 7-3, 7-4 RSX-20F I/O error codes, A-I, A-6 RSX-20F memory layout, 7-5 RSX-20F overlays, 7-1 RSX-20F scheduler, 7-4 RSX-20F scheduling, 7-5 RSX-20F SPR's, E-l RSX-20F stop codes, 9-7, A-I, 10-5 RSX-20F symbol files, reading, 10-4 RSX-20F tasks, 7-5, C-l RSX-20F version number, 10-11 RSX-20F/RSX-llM differences, 1-7 RSXFMT, B-1 RSXFMT commands, B-2 RSXTlO, B-1 RSXTIO commands, 8-2 Index-2l INDEX (CONT.) RTS signal, 7-11, 7-13 RUN PARSER command, 4-18 Running FE program, B-4 Running KLERR, 9-1 Running LOGXFER, 9-11 Sample RSX-20F dump analysis, 10-7, 10-8, 10-9, 10-10 Sampling KL status, 8-15 SAV error messages, 6-26 SAV task, C-2 SAV utility, 6-24 /DM, 6-25 /EX, 6-25 /MO, 6-26 /RH, 6-26 /WB, 6-26 /WS, 6-26 Saving a task image, 6-24 Saving FEDDT with symbols loaded, 10-2 Scan routine, ATL, 7-8 Scanner queue, data line, 10-36 Scatter writes, 8-23 SCD DTE-20 bit, 8-18 Scheduler, RSX-20F, 7-4 Scheduling, RSX-20F, 7-5 task, 1-5, 7-8 Secondary protocol, 7-20, 8-29 Section, Communications Region, 8-1 Selection code, diagnostic, 8-15 Semophore, Indirect-in-progress, 8-38 Send-All buffer pointer, 10-20 Send-All terminal count, 10-20 Send-AIls, 7-27 Sequence number, file, 2-2 Serial number, KL CPU, 10-39 owning processor's, 8-4 Service routine, terminal, 7-13 SET AC-BLOCK PARSER command, 4-19 SET CLOCK NORMAL Prs command, 4-19 SET CONSOLE PARSER command, 4-4 SET DATE PARSER command, 4-20 SET FAULT-CONTINUATION PARSER command, 4-21 SET FS-STOP PARSER command, 4-21 SET INCREMENT PARSER command, 4-21 SET KLINIK command, D-5 SET KLINIK PARSER command, 4-21 SET NO OUTPUT command, 4-22 SET NOT PARSER command, 4-21 SET OFFSET PARSER command, 4-22 SET RELOAD PARSER command, 4-22 SET REPEAT PARSER command, 4-23 SET RETRY PARSER command, 4-23 SET TRACKS PARSER command, 4-23 SET UTO-TAKE PARSER command, 4-19 SETSPD task, C-2 Setting byte transfer mode, 8-18 Setting diagnostic command start, 8-15 Setting external core memory bus-mode, 5-10 Setting FEDDT modes, 10-3, 10-4 Setting FEDDT output modes, 10-3, 10-4 Setting KLINIK access parameters, D-5, D-6, D-7 Setting word transfer mode, 8-18 SHOW PARSER command, 4-23 SHUTDOWN PARSER command, 4-23 Signal, acknowledge, 7-27 Data Terminal Ready, 7-11 DTR, 7-11, 7-13 Request To Send, 7-11 RTS, 7-11, 7-13 Significant event, 1-5, 1-7 Significant event flags, 10-11 Index-22 INDEX (CONT.) Single-stepping the DTE-20, 8-11, 8-12 Space, buffer, 10-6 Space in Big Buffer, free, 10-6 Space in Free Pool, free, 10-6 Speed table, line, C-2 SPR's, RSX-20F, E-l SPSAV location, 10-5, 10-11 Stack pointer, hardware, 1-4 Stacks, PDP-II, 1-4 Start date, KLINIK access window, 10-14 START MICROCODE PARSER command, 4-24 START TEN PARSER command, 4-24 Start time, KLINIK access window, 10-14 Starting bootstrap program, 5-1, 5-7 Starting disk block, 6-32 Starting KLINIT, 5-6 Starting PARSER, 4-1 Starting RSX-20F, 5-6 Startup, power-fail, 7-14 Startup routine, . DLM TO , 7 -1 5 .DMTMO system, 7-14 CTY, 7-15 DL-IIE, 7-15 • D LM TO , 7 -1 5 .DMTMO system, 7-14 Startup time, system, 7-22 State flag, KL, 10-13 Status, Pager process, 8-5 Pager system, 8-5 sampling KL, 8-15 Status bits, CD-II, 10-28 Status block, CTY, 10-20 Status Block, Front End, 10-10 Status block, LP-20, 10-29 STATUS DTE-20 register, 8-10 Status register, DTE-20, 8-36 STATUS word, Comm Reg, 8-7 Status word, DTE-20, 8-10 read state of DTE-20, 8-11, 8-12 write state of DTE-20, 8-13, 8-14 STD, 7-6 STD entry for CD-II driver, 10-32 STD entry for DECtape driver, 10-32 STD entry for DTE-20 driver, 10-31 STD entry for FIIACP, 10-32 STD entry for FE driver, 10-32 STD entry for floppy disk driver, 10-32 STD entry for LP driver, 10-32 STD entry for queued protocol, 10-32 STD entry for terminal driver, 10-32 STD node, 7-6, 7-7 STD table, 10-31 .STDTB table, 7-7 STNXT routine, 7-27 Stop codes, RSX-20F, 9-7, A-I, 10-5 Storage bitmap file, 2-4 Strapping options, modem, 7-10 String data, transferring, 8-23 STTYDN routine, 7-27 Subdirectories, loading monitor from, 5-2 SWEEP PARSER command, 4-24 Switch register, DECtape, 5-5 floppy disk, 5-3 Switch register bit definitions, 5-5 Switch register boot parameter, 10-13 Switching to primary protocol, 8-30 SWSLLT DTE-20 bit, 8-17 Symbol files, reading RSX-20F, 10-4 Index-23 INDEX (CaNT.) Symbolic debugger, FEDDT, 10-1, 10-2, 10-3, 10-4 Symbols loaded, saving FEDDT with, 10-2 Synchronous traps, 1-3, 7-8 SYSERR program, 7-15, 7-23, D-l, E-2 System, front-end file, 1-7 loading the, 5-1, 5-6 mapped, 1-5 unmapped, 1-5 System error messages, KLINIT, 5-17, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31, 5-32 System PUD entry, 10-38 System startup routine, .DMTMO,7-14 System startup time, 7-22 System Task Directory, 7-6, 10-31 System traps, 7-8 T20ACP task, C-2 Table, Processor, 8-36 TAKE command, PARSER, 4-25 Tape boot program, magnetic, C-3 Task, ATL node of current, 7-8, 10-5 COP, C-l FIIACP, C-l INI, C-2 KLI, C-l LOGXFER, 9-10 LOGXFR, C-l MOU, C-l null, 7-8 PARSER, C-l PIP, C-l queued protocol, 1-7 RED, C-2 T20ACP, C-2 TKTN, 9-1, C-l UFD, C-2 Task Builder, 1-6 Task Directory, System, 7-6, 10-31 Task image, patching a, 6-31 saving a, 6-24 Task image file, 1-6 Task image mode, 6-32 ZAP, 6-33 Task information, 7-4 Task installation, 6-24 Task List, Active, 7-7, 7-8, 10-33 Task Partition Directory, 10-35 Task pointer, current, 10-11 Task scheduling, 1-5, 7-8 Task that crashed, determining the, 10-5 Tasks, 1-5 Executive, 7-5 Files-II, 1-7 nonprivileged, 1-6 nonresident, 1-6 pr ivileged, 1-6 resident, 1-6 RSX-20F, 7-5, C-l Tasks in GEN partition, installing, 7-8 TENADl-2 DTE-20 register, 8-21, 8-22 Terminal, remote KLINIK, D-2 Terminal count, Send-All, 10-20 Terminal driver, STD entry for, 10-32 Terminal driver routine, 7-11, 7-12, 7-13 Terminal PUD entry, 10-37 Terminal service routine, 7-10, 7-13 Terminal task, ATL entry for, 10-34 TPD entry for, 10-35 Terminal timeout routine, 7-20, 7-21, 7-22, 7-23 Terminating KLINIK link, D-8 Terminating KLINIT dialog, 5-6 Termination of byte transfer, error, 8-12 Test condition, Field Service, 8-16 Testing parity network, 8-18 Thread lists, LPT, 7-4 TTY, 7-4 Time, file creation, 2-3 file revision, 2-3 Index-24 INDEX (CaNT.) Time (Cont.) PDP-II, C-2 Timeout counter, 10-20 Timeout routine, CTY, 7-15 DL-llE, 7-15 modem, 7-13, 7-14 terminal, 7-20, 7-21, 7-22, 7-23 TKTN messages, 9-7 TKTN task, 9-1, C-l, 10-12 TO-IO buffer's current device, 10-15 TO-IO data transfer, 8-16, 8-23 TO-IO data transfer across DTE-20, 8-1 TO-IO data transfers, controlling, 8-21 TO-IO delay count, 8-23 TO-IO queue, 10-15 TO-IO queue current head, 10-15 TO-IO queue pointer, 10-6 TO-II data transfer, 8-16, 8-23 TO-II data transfer across DTE-20, 8-1 TO-II data transfers, controlling, 8-20 To-II direct transfer, 8-37 To-II done interrupt, 8-37 To-II indirect packets, 8-36 To-II indirect transfer, 8-38 TO-II queue entry count, 10-15 TO-II queue pointer, 10-6 To-II transfer, 8-37 To-eleven direct packets, 8-34 To-ten direct packets 7 8-33 To-ten extended direct packets, 8-34 To-ten indirect packets, 8-35 TOIO DTE-20 bit, 8-16 TOIOAD DTE-20 register, 8-20, 8-23 TOIOBC DTE-20 register, 8-10, 8-20, 8-23 TOIOBM DTE-20 bit, 8-18 TOIODB DTE-20 bit, 8-12 TOlODN DTE-20 bit, 8-11 TOIODT DTE-20 register, 8-19 TOIOER DTE-20 bit, 8-11 Tall DTE-20 bit, 8-16 TOllAD DTE-20 register, 8-19, 8-23 TOllBC DTE-20 register, 8-20, 8-23 TOIlDB DTE-20 bit, 8-11 TOllDN DTE-20 bit, 8-12 TOllDT DTE-20 register, 8-19 TOllER DTE-20 bit, 8-12 TOPID word, Comm Reg, 8-6 TOPS-IO default monitor, 5-1 TOPS-IO UUO's, 1-4 TOPS-20 default monitor, 5-1 TOPS-20 JSYS's, 1-4 TOPS-20 subdirs with BOOT.EXB, 5-2 TPD entry for CR task, 10-35 TPD entry for DECtape task, 10-35 TPD entry for DTE-20 task, 10-35 TPD entry for FllACP task, 10-35 TPD entry for FE task, 10-35 TPD entry for floppy disk task, 10-35 TPD entry for GEN partition, 10-35 TPD entry for install task, 10-35 TPD entry for LP task, 10-35 TPD entry for queued prt task, 10-35 TPD entry for RP task, 10-35 TPD entry for terminal task, 10-35 Tracking capability, KLINIT, 5-7 Transfer, data, 8-33 direct, 8-33 error termination of byte, 8-12 extended direct, 8-37 TO-IO data, 8-16, 8-23 To-II, 8-37 TO-II data, 8-16, 8-23 to-II direct, 8-37 To-II indirect, 8-38 Transfer across DTE-20, TO-lO data, 8-1 frO-II data, 8-1 Index-25 INDEX (CONT.) UNIBUS parity error, NPR, 8-11 UNIBUS parity flip-flop, 8-18 UNIBUS receiver error, 8-18 Unit device tables, physical, 10-37 Unit Tables, Logical, 10-37 Unmapped system, 1-5 UNMARK-MICROCODE PARSER command, 4-25 User File Directory, 1-7, 2-1, 6-29 User Identification Code, 2-1 User KLINIK dialog, remote, D-9 User mode, 4-4 User terminal, remote, D-ll Using the DTE-20 registers, 8-22 Utility programs, 7-5 RSX-IIM, 1-7 UUO's, TOPS-IO, 1-4 Transfer dialog, file, B-5 Transfer mode, byte, 8-23 diagnostic data, 8-15, 8-16 normal data, 8-15 setting byte, 8-18 setting word, 8-18 word, 8-23 Transfer rate, data, 8-21 Transferring data between processors, 8-8, 8-19, 8-20, 8-21, 8-22, 8-30 Transferring files, B-4, B-5, B-6, B-7, C-2 Transferring files between processors, B-1 Transferring indirect data packets, 8-8 Transferring string data, 8-23 Transfers, controlling TO-IO data, 8-21 controlling TO-II data, 8-20 data, 1-4 Transition, carrier, 7-11 Trap, power-fail, 7-9 Trap conditions, 7-8 Trap handling, 7-9 Trap vectors, 1-3, 7-8 Traps, 1-3 asynchronous, 1-3, 7-8 synchronous, 1-3, 7-8 system, 7-8 TT.CRW bit, 7-14, 7-15 TT.RIP bit, 7-14, 7-15 TTY thread lists, 7-4 Type, file, 2-4 Valid date flag, 10-12 Variable-length records, 2-4 VBN, 2-2 VEC04 DTE-20 bit, 8-16 Vector interrupts, 1-3 Vectors, trap, 1-3, 7-8 Verification error reports, microcode, 5-35 Verifying KL microcode, 5-1, 5-8, 5-42 Verifying memory examines, 8-8 Version number, Comm Reg protocol, 8-3 Comm Region, 8-3 file, 2-2, 2-4 protocol, 8-6 RSX-20F, 10-11 Version numbers, 10-5 Virtual block, 2-2 Virtual Block Number, 2-2 Virtual memory addresses, 1-5 Volume, Files-II, 2-1 initializing a, 6-4 Volume Control Block, 6-9 UA.MCB file, 5-1 UB.MCB file, 5-1 UFD, 2-1 UFD error messages, 6-30 UFD task, C-2 UFD utility, 6-29 /ALL, 6-29 UIC, 2-1 UNIBUS, 1-3 UNIBUS parity error, 8-17, 8-18 Index-26 INDEX (CONT.) Volume number, relative, 2-2 Wait, Carrier, 7-14 Warning messages, KLINIT, 5-17, 5-18, 5-19, 5-20 WEP DTE-20 bit, 8-18 WHAT AUTO-TAKE PARSER command, 4-26 WHAT CLOCK PARSER command, 4-26 WHAT CONSOLE PARSER command, 4-4, 4-26 WHAT DATE PARSER command, 4-26 WHAT FAULT-CONTINUATION PARSER command, 4-26 WHAT HARDWARE PARSER command, 4-26 WHAT INCREMENT PARSER command, 4-26 WHAT KLINIK command, D-8 WHAT KLINIK PARSER command, 4-27 WHAT MEMORY PARSER command, 4-27 WHAT OFFSET PARSER command, 4-27 WHAT OUTPUT PARSER command, 4-27 WHAT PARITY-STOP PARSER command, 4-27 WHAT RELOAD PARSER command, 4-27 WHAT REPEAT PARSER command, 4-28 WHAT RETRY PARSER command, 4-28 WHAT TRACKS PARSER command, 4-28 WHAT VERSION PARSER command, 4-28 Word transfer mode, 8-23 setting, 8-18 Write state of DTE-20 status word, 8-13, 8-14 Writing configuration file, 5-11 Writing files with FEDDT, 10-1 Index-27 XCT 71, 9-1 XCT PARSER command, 4-28 XOFF character, 7-20, 7-27 ZAP absolute mode, 6-33 ZAP addressing modes, 6-33 ZAP arithmetic operators, 6-34, 6-37 ZAP commands, 6-34 ZAP constant register, 6-36 ZAP error messages, 6-43, 6-44, 6-45 ZAP format register, 6-37 ZAP internal registers, 6-34 ZAP modes, 6-32 ZAP quantity register, 6-37 ZAP read-only mode, 6-32 ZAP registers, 6-36 ZAP relocation register, 6-33, 6-36 ZAP task image mode, 6-33 ZAP utility, 6-31 lAB, 6-32 ILl, 6-32 IRO, 6-32 ZERO PARSER command, 4-29 Zeroing a floppy disk, 6-2 TOPS-IO/TOPS-20 RSX-20F System Reference Manual AA-H352B-TK READER'S COMMENTS NOTE: This form is for document comments only. DIGITAL will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) service, submit your comments on an SPR form. Did you find this manual understandable, usable, and well-organized? Please make suggestions for improvement. Did you find errors in this manual? If so, specify the error and the page number. Please indicate the type of reader that you most nearly represent. [J Assembly language programmer [J Higher-level language programmer [J Occasional programmer (experienced) [J User with little programming experience [J Student programmer [J Other (please specify) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ Name ______________________________________ Date ________________________ Organiza tion _____________________________ Telephone ___________________ Street ____________________________________________________________________ City _______________________ State ____ Zip Code _____ or Country ,, I , , 1 1 - - - -00 Not Tear - Fold Here and Tape - - - - - ~DmDD .• • aI 1 - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - .- - -I IIIIII BUSINIESS REPLY MAIL FIRST CLASS PERMIT NO. 33 MAYNARD MASS. POSTAGE WILL BE PAID BY ADDRESSEE SOFTWARE IPUBLICATIONS 200 FOREST STREET MR1-2/E37 MARLBOROUGH, MASSACHUSETTS 01752 -- - - J No Postage Necessary if M~ilecl in the United States --_. --_. -----------------------..___-1_- Do Not Tear - Fold Here and Tape - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - - - - - - - - _. - - - i 1
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies