TOPS-10/TOPS-20 RSX-20F System Reference Manual AA-H352A-TK January 1980 This reference manual describes RSX-20F, the operating system that runs on the PDP-11/40 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. OPERATING SYSTEM: SOFTWARE: TOPS-10 TOPS-20 RSX-20F (TOPS-10) RSX-20F (TOPS-20) 1080/90 1091 REL. 7.00 REL. 7.00 2040/50/60 REL. 4 VA13-41 VE13-41 VB13-41 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 to the nearest DIGITAL Field Sales Office or representative. NORTHEAST/MID-ATLANTIC REGION CENTRAL REGION WESTERN'REGION Technical Documentation Center Cotton Road Nashua, N H 03060 Telephone: (800) 258-1710 New Hampshire residents: (603) 884-6660 Technical Documentation Center 1050 East Remington Road Schaumburg, Illinois 60195 Telephone: (312) 640-5612 Technical Documentation Center 2525 Augustine Drive Santa Clara, California 95051 Telephone: (408) 984-0200 digital equipment corporation • marlboro, massachusetts First Printing, Janu~ry 1980 The 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. The 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 ©, 1980, Digital Equipment Corporation. All Rights Reserved. The postage-prepaid READER'S COMMENTS form on the last page of this document requests the user's critical evaluation to assist us in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DEC DECUS Digital Logo PDP UNIBUS VAX DECnet DECsystem-10 DECSYSTEM-20 DECwriter DIBOL EduSystem lAS MASSBUS PDT RSTS RSX VMS VT CONTENTS Page PREFACE ix 1 INTRODUCTION 1-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 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-2 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 2 FILES-II SYSTEM 2-1 2.1 2.2 2.2.1 2.3 2.4 2.5 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 CHAPTER 3 RSX-20F GLOSSARY OF TERMS 3-1 CHAPTER 4 PARSER 4-1 4.1 4.2 4.3 4.3.1 4.4 4.5 ENTERING AND EXITING THE PARSER PARSER COMMAND SYNTAX PARSER CONSOLE MODES PARSER Help Facility PARSER COMMANDS PARSER ERROR MESSAGES 4-1 4-2 4-4 4-4 4-6 4-23 5 KLINIT 5-1 5.1 5.2 5.3 5.3.1 5.3.2 5.3.3 KLINIT LOAD AND START KLINIT OPERATOR DIALOG KLINIT MESSAGES Informational Messages Warning Messages Dialog Error Messages 5-6 5-6 5-16 5-16 5-17 5-19 CHAPTER CHAPTER CHAPTER iii CONTENTS (CONT.) Page CHAPTER 5.3.4 System Error Messages REPORTS RELATING TO THE KLINIT DIALOG 5.4 5.4.1 External Memory Maps 5.4.2 Internal Memory Maps 5.4.3 Microcode Verification Error Reports CRAM Error Report 5.4.3.1 DRAM 5.4.3.2 KLINIT DIALOG EXAMPLES 5.5 5-20 5-31 5-31 5-32 5-33 5-33 5-34 5-34 6 6-1 RSX-20F UTILITIES COP UTILITY Function Format Examples Error Messages INI UTILITY Function Format Examples Error Messages MOU AND DMO Function 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 USER FILE DIRECTORY Function Format Examples Error Messages ZAP Function Invoking and Terminating ZAP ZAP Switches Addressing Locations in a Task Image ZAP Addressing Modes: Absolute and Task Image 6.8.4.2 Addressing Locations in Task Image Mode The ZAP Command Line 6.8.5 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 6.8.4 6.8.4.1 iv 6-1 6-1 6-2 6-2 6-3 6-4 6-4 6-4 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-24 6-24 6-24 6-24 6-24 6-25 6-26 6-26 6-29 6-29 6-29 6-29 6-30 6-30 6-31 6-31 6-32 6-32 6-33 6-33 6-34 CONTENTS (CONT.) Page 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 CHAPTER CHAPTER CHAPTER 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 = Command: Display the Value of an Expression 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-43 7 RSX-20F MONITOR 7-1 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.2 7.4.2.1 7.4.2.2 7.4.2.3 RSX-20F EXECUTIVE TASKS AND SCHEDULING SYSTEM TRAPS TERMINAL SERVICE ROUTINES Modem Handling Modem Handling Concepts Terminal Driver Routine Modem Timeout Routine Terminal Handling Character Input Routine Terminal Timeout Routine Character Output Routine 7-1 7-6 7-9 7-11 7-11 7-11 7-12 7-15 7-16 7-16 7-20 7-23 8 DTE HARDWARE OPERATION 8-1 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 8.6 8.6.1 8.6.2 8.7 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 DIRECT AND INDIRECT TRANSFERS Direct Packets Indir~ct Packets DATA STRUCTURE OF PACKETS 8-1 8-10 8-10 8-14 8-18 8-22 8-22 8-22 8-23 8-24 8-24 8-24 8-24 8-25 8-27 8-28 8-28 8-29 9 ERROR DETECTION AND LOGGING 9-1 9.1 9.2 9.3 THE KEEP ALIVE COUNT KLERR TASK ERROR LOGGING 9-1 9-1 9-2 v CONTENTS (CONT.) Page CHAPTER 9.3.1 9.3.2 9.3.3 9.3.4 9.4 KL Error Logging PDP-II Error Logging KLERRO.SNP FILE KLERR MESSAGES KLXFER 10 ERROR DEBUGGING 10-1 10.1 10.2 10.2.1 10.2.2 10.2.3 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 9-2 9-5 9-6 9-7 9-9 APPENDIX A RSX-20F STOP CODES AND I/O ERROR CODES A-I APPENDIX B FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F B-1 REFORMATTING FILES Restrictions TRANSFERRING FILES Running FE The FE: Device RSX-20F Tasks File Transfer Dialogue B-1 B-2 B-4 B-4 B-5 B-5 B-6 APPENDIX C FRONT-END TASKS C-l APPENDIX D KLINIK ACCESS DIALOGUE D-l 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 DIALOGUE WITH KLINIK Setting Access Parameters Examining the Current KLINIK Parameters Terminating the KLINIK Link REMOTE USER DIALOGUE WITH KLINIK Logging In as a Remote Operator Logging In as a Timesharing User KLINIK INTEGRITY OVER A REBOOT D-l D-2 D-2 D-2 D-3 D-3 D-4 D-4 D-7 D-7 D-8 D-8 D-IO D-ll APPENDIX E GETTING HELP ON RSX-20F E-l APPENDIX F EIA PIN DEFINITIONS F-l B.l B.l.l B.2 B.2.1 B.2.2 B.2.3 B.2.4 D.l D.2 D.2.1 D.2.2 D.2.3 D.2.4 D.3 D.3.1 D.3.2 D.3.3 D.4 D.4.1 D.4.2 D.5 INDEX Index-l vi CONTENTS (CONT.) Page 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 8-6 9-1 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 with DEC tapes KLINIT Operator Dialog RSX-20F Executive RSX-20F Memory Layout System Task Directory (STD) Node Active Task List (ATL) Node Modem-Handling Hardware Modem Control Algorithm Modem Timeout Algorithm Character Input Algorithm Terminal Timeout Algorithm Character Output Algorithm KL Communications Region DTE-20 Registers DTE-20 Status Word in Read State DTE-20 Status Word in write State Direct Packet Indirect Packet and Data KLERRO.SNP File Contents 1-2 5-3 5-4 5-12 7-2 7-5 7-7 7-8 7-12 7-13 7-15 7-17 7-21 7-24 8-2 8-10 8-11 8-13 8-28 8-29 9-6 TABLES TABLE 5-1 F-l Switch Register Bit Definitions EIA Pin Definitions vii 5-5 F-l PREFACE The RSX-20F System Reference Manual contains reference 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 TOPS-IO or TOPS-20. This 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 detail. 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. ix The following TOPS-IO and TOPS-20 manuals also contain information about RSX-20F. You should be aware that the TOPS-IO manuals will not be released until May 1980, along with Release 7.01. TOPS-IO Operator's Guide AA-5104B-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. They 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-IIM and RSX-IID, provided the base upon which RSX-20F was built. These operating systems were chosen because they offered the best base for building the required front end. The KL requires a front end that: 1. Is small and efficient. 2. Can handle special cases such as diagnosing and recovering KL errors. 3. Can handle the TOPS-IO/I091. unit record booting devices of the KL and TOPS-20 and The purpose of the KL front end is to take some of the load off 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 presents important concepts of PDP-II software, explains the needs of RSX-20F, and describes how RSX-IIM and RSX-IID were modified to produce RSX-20F. 1-1 INTRODUCTION LA36 CTY SWITCH PANEL RK01 DUAL DRIVE 3 DL11W CTYINTERFACE BM 873YF ROM RX11 FLOPPY CTL 2 M : ~ DUALPORTED DISK ~S B U S RH11 MASSBUSCTL KL10 I U DTE20 ~ ~ ~----~~----~------~-----r------~~----~------~----~ U S I MM11 MEMORY PARITY MF11 MEMORY DL11W LINE CLOCK KY11-D CONSOLE KD11 CPU DL11-E MODEM INTERFACE TO REMOTE DIAGNOSTIC TERMINAL (KLINIK) i----+--------- ------- ---- __ ----..,-1 - - - 1.... I I I I I I I DC20 MULTIPLEXER· • • 8 LINES 18 DC20 MULTIPLEXER LINES 8 MAX 8 LINES 8 LINES It ... 1 It..· ':5 LP20 LINE PRINTER CONTROL ~---'--...., LINE PRINTER I CD20 CARD READER CONTROL I I I I I I CARD READER I I I I IL FOR TOPS-20 SYSTEMS __ ___ _ _ _ONLY __________________________ I ~ MR~-187-79 1 BM873YH ROM ON 1080/90 2TC11 DECtape CTL ON 1080/90 ~ TU56 DUAL DRIVE ON 1080/90 Figure 1-1 The Front End for a KL-based Computer System 1.1 THE PDP-II The 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-2 INTRODUCTION 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 very 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 in 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 6 is 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 exactly the same way as the other registers, but depositing data in them will destroy the state of the PDP-II, because the PDP-II will not be 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 and most of them are 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 (FllTPD). A partition is an area of memory reserved for the e~ecution of tasks. In the 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. Overlaying 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 non-privileged. A privileged task can access its own partition, the Executive partition, and the I/O page. A non-privileged task can only access its own partition and shared regi~ns. 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-11/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 It can also perform diagnostics develop. 1.5 on the KL when hardware problems THE DERIVATION OF RSX-20F FROM RSX-11M RSX-llM 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 serviced quickly. For these reasons, RSX-11M was chosen as the basis for RSX-20F. 1-6 INTRODUCTION RSX-IIM utility programs can be run only in the GEN partition. Nonresident Exec routines (for example, Files-II, KLRING, KLDISC, SETSPD, TKTN, and MIDNIT) run in the FIITPD 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-IIM was kept in RSX-20F in order 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 Files-II devices, PIP to transfer files from one Files-II device to another, UFD to create User File Directories on Files-II 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-IIM 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-II and the KL can access the dual-ported RP04/06 drive independently 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 reformatting the disk). Logical block number 400 is the home block for the Files-II system. TOPS-20 views the front-end file system as one big file, <ROOT-DIRECTORY)FRONT-END-FILE-SYSTEM.BIN. TOPS-IO 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 Files-II area on floppy disk, DECtape, or dual-ported RP04/06. No protection checking is enforced with the file systems. Real PDP-II formatted disks have 16-bit words, and disk addressing and accessing is consonant with this scheme. However, disks supported by TOPS-IO and TOPS-20 must be formatted in IS-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-IIM routine. Each PDP-II word of data in the Files-II area is written right-justified in the IS-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 which 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.extiversion 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 1 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 1 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. from I 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. 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-IO. Here are two examples of valid RSX-20F Files-II file specifications: DBO: [5,5]KLINIK.TSK DXI: [5,5]MIDNIT.TSKil 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 ID. A file ID 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-ll 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: I. Header Area - This area contains the file number and the file as well as the file's ownership and sequence number protection codes. This area also contains offsets to the 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 file, 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 which contains a list of retrieval pointers, each of 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-ll DIRECTORIES Directories are Files-II files whose sole function is to associate file-name strings with file ID's. Since the file ID is unique to the file, the file ID can be used to locate the file directly in the Files-II system. However, most users find it easier to deal with a group of files if the files can be named. This ease of use is the goal of the directory file. A directory file is an FCS (File Control Services) file consisting of fixed sixteen-byte records (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 ID - The three-word binary ID of the file this entry represents (The file number portion of the file ID is zero when the entry is empty.) • Name - The name of the file, stored as three words of Radix-50 characters • Type - The file type (known also as the extension), as one word of three Radix-50 characters G Version - The file version number, stored in binary word 2-3 three stored in one FILES-II SYSTEM 2.4 FIXED FILE lOIS 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 files because the system always knows about them. These files are created when a new volume is initialized. The files have fixed file 10 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 10 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 10 3,3,0. It is listed in the MFD as BADBLK.SYS;l. The bad block file is simply a file containing a list of all the known bad blocks on the volume. 4. Master File Directory - The master file directory is file 10 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 10 5,5,0. It is listed in the MFD as CORIMG.SYS;l. This file is the bootable system image file. FCS FILE STRUCTURE FCS stands for File Control Services, which is a user-level interface to Files-II. Its principal feature is a record control facility that allows sequential processing of variable-length records as well as sequential and random processing of fixed-length records. FCS uses 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. Variable-length records can be as long as 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·the two bytes in which it is stored itself). This byte count is always word-aligned, and padded with a single null byte if necessary. A byte count of -1 is used to signal the end of live data in a particular block. The next record in the file will begin at the next block. 2-4 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. hardware 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 statuses, 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. CUSP Commonly Used System Program 3-1 RSX-20F GLOSSARY OF TERMS 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-II Communications interface between the PDP-II front end and up to sixteen terminals. DM-IIBB Communications interface between the PDP-II front end and the EIA modem control lines. The DM-IIBB is used in conjunction with the DH-Il 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) • FCP File Control Primitives IRQ I/O Request Queue 3-2 RSX-20F GLOSSARY OF TERMS ISR Interrupt Service Routine KTII Hardware Memory Management Option 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 An error-free completion of a given task. The term Done is 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. Protected Examines/Deposits An Examine or Deposit that is range-checked by the KL. The relocation and protection for the Examine operation is 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) 3-3 RSX-20F GLOSSARY OF TERMS 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 cannot crash the KL if the KL hardware and software working correctly. A restricted front end cannot use diagnostic bus, and cannot read KL memory unless the KL first set up the interrupt system to allow it. and are the has RTS A signal sent from the Data Terminal Equipment (in this case the DTE-20) to the Data Communications Equipment (DCE) 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. TPD 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, 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 prompts: will receive one of the following 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 will 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. I. To do Multiple commands can be entered on a single line. this, separate each command from the following one by a semicolon. For example: PAR>EXAMINE PC;EXAMINE 20;SHUTDOWN<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 PC;EXAMINE 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 5. Keywords in a command can be truncated unique abbreviation. For example: to their CTRL/O. shortest PAR>H!HALT THE KL CPU<RET> If the truncation is not unique, you will message. For example: receive an error PAR>RE 5<RET> PAR -- [PARSER] AMB - AMBIGUOUS KEYWORD liRE" In this example, the PARSER found two commands with RE: REPEAT and RESET. that started 6. The default radix of integers is octal if an address or 36-bit value is expected; otherwise, the default radix is 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 tha t. many binary places. Thus, in order to spec i fy a number 4-2 PARSER in octal which ends in several zeros, you could write the non-zero 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:-l<RET> 301 xxxxxx xxxxxx PAR>EXAMINE TEN 30<RET> 30/ 777777 777777 9. left- unary (deposit -1 in loco 30) (previous contents) (examine loco 30) (new contents) Numeric values can be entered as arithmetic expressions using addition (+), subtraction (-), multiplication (*), and division (/). For example: PAR>EXAMINE l23654+32<RET> 123706/ xxxxxx xxxxxx PAR>DEPOSIT TEN 408-6:l00<RET> PAR>SET INCREMENT 2*3<RET> KL INCREMENT: 6 PAR>REPEAT 8/4; EXAMINE PC<RET> PCI xxxxxx xxxxxx PC/ xxxxxx xxxxxx Note that in the evaluation of arithmetic expressions, multiplication, division, and binary shifts take precedence over addition and subtraction. 10. Relocation factors can be added or subtracted from a number. To do this, use a single quote (I) 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 1 <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. 4-3 memory PARSER When you close a command line (carriage return without a preceding hyphen), the PARSER first scans the command line buffer for illegal 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 (see Section 4.5, PARSER Error Messages): 4.3 PARSER CONSOLE MODES The 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. MAINTENANCE MODE This mode commands. allows the full commands set of except PARSER 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. (See 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 SHUTDOWN 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 SHUTDOWN START 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: CONSOLE INCREMENT KLINIK MEMORY NOT REPEAT If instead you are in PROGRAMMER mode, the response will be: CLEAR COMMANDS ARE: CONSOLE DATE INCREMENT KLINIK MEMORY NOT OFFSET RELOAD REPEAT RETRY TRACKS 4-5 PARSER Subarguments can also be determined in this manner. you type: For example, if PAR)SET CONSOLE ?(RET) The PARSER responds: SET COMMANDS ARE: MAINTENANCE OPERATOR PROGRAMMER USER 4.4 PARSER COMMANDS All PARSER commands are listed in this section. 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 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 will be specified. as A multiple choice list enclosed in braces { } means that one of the entries must be specified. 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. CLEAR CLOCK NORMAL CAAM DATA-PATH CONTROL EXTERNAL INTERNAL MARGIN FULL HALF QUARTER SLOW MAINTENANCE 4-6 PARSER 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 EXTERNAL INTERNAL MARGIN FULL HALF QUARTER SLOW SET CLOCK NORMAL CLEAR CONSOLE OPERATOR The CLEAR CONSOLE command forces the PARSER into OPERATOR console mode. It is the equivalent of SET 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. CLEAR FS-STOP The CLEAR facility. MAINTENANCE FS-STOP command disables the Field Service CLEAR INCREMENT stop OPERATOR The CLEAR INCREMENT command resets the KL zero. (See EXAMINE INCREMENT command.) CLEAR KLINIK increment factor to OPERATOR The CLEAR KLINIK command closes the KLINIK access window and terminates the KLINIK link. (See Appendix D for a discussion on KLINIK access.) 4-7 PARSER OPERATOR CLEAR MEMORY 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. 'OPERATOR CLEAR NOT The CLEAR NOT command is the equivalent of the SET command. PROGRAMMER CLEAR OFFSET The CLEAR OFFSET command sets the (See rule ten in Section 4.2.) CLEAR PARITY STOP relocation factor to zero. MAINTENANCE ALL AR CRAM DRAM ENABLE FM FS-STOP The CLEAR PARITY-STOP command selectively disables parity for AR, CRAM, DRAM, Fast Memory, and Field Service. stops PROGRAMMER CLEAR RELOAD The CLEAR RELOAD command disables the automatic reload of the following a fatal error. KL OPERATOR CLEAR REPEAT 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. PROGRAMMER CLEAR RETRY The CLEAR RETRY When this flag routine to take a system reload 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.) 4-8 PARSER PROGRAMMER CLEAR TRACKS The CLEAR TRACKS command stops RSX-20F from typing operations and results on the controlling terminal. all KL PROGRAMMER CONTINUE The CONTINUE command takes the KL out of the HALT loop and starts execution at the instruction pointed to by the PC. DEPOSIT AR:newdata PROGRAMMER The DEPOSIT AR command register to newdata. DEPOSIT IELEVENl LTEN J sets addr } DECREMENT INCREMENT NEXT { PREVIOUS THIS the contents of the :newdata arithmetic PROGRAMMER 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 address into which you wish to deposit the data; one of them must be entered. addr is the actual memory address 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-9 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. (See 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 !ELEVENl LTEN J VMA, OPERATOR addr 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 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. 4-10 PARSER 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. 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. octal PDP-II the PROGRAMMER EXAMINE AB 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 KL adder PROGRAMMER EXAMINE ADX The EXAMINE ADX command displays the contents extension. of the KL adder PROGRAMMER EXAMINE AR The EXAMINE AR command displays the contents of the KL arithmetic register. 4-11 PARSER EXAMINE ARX PROGRAMMER The EXAMINE ARX command displays arithmetic register extension. the contents of EXAMINE BR the KL PROGRAMMER The EXAMINE BR command displays the contents register. of the EXAMINE BRX KL buffer PROGRAMMER The EXAMINE BRX command displays the contents of register extension. the KL buffer PROGRAMMER EXAMINE CRADDR The EXAMINE CRADDR command displays the contents of the address register. EXAMINE CRLOC KL CRAM PROGRAMMER The EXAMINE CRLOC command displays the contents of location register. the EXAMINE DRADDR KL CRAM PROGRAMMER The EXAMINE DRADDR command displays the contents of the address register. EXAMINE DTE-20 KL DRAM PROGRAMMER The EXAMINE DTE-20 command displays the diagnostic registers and the status DTE-20. contents of the three register for the console EXAMINE EBUS PROGRAMMER The EXAMINE EBUS command displays the contents register. 4-12 of the KL EBUS PARSER EXAMINE FE 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, CY1, FOV, BIS, USR, UIO, LIP, AFI, AT1, ATO, FUF, and NDV. EXAMINE FM PROGRAMMER The EXAMINE FM command displays Memory register. the contents of the KL Fast PROGRAMMER EXAMINE MQ The EXAMINE MQ command displays the contents of the KL Multiplier Quotient register. PROGRAMMER EXAMINE PI 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 the the AD, ADX, AR, ARX, BR, BRX, EBUS, FM, MQ, and PC. PROGRAMMER EXAMINE SBR The EXAMINE SBR command displays Subroutine Return register. 4-13 the contents of the KL PARSER EXAMINE SC PROGRAMMER The EXAMINE SC command displays the Count register. contents of the KL Shift PROGRAMMER EXAMINE VMA The EXAMINE VMA command displays the contents of the Memory Address register. KL Virtual PROGRAMMER EXAMINE VMAH The EXAMINE VMAH command displays the contents of the KL Memory Address Held register. Virtual MAINTENANCE FREAD nnn The FREAD command performs a diagnostic function read of the KL CPU. The valid range of function codes (nnn) is 100 through 177 octal. 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. MAINTENANCE FXCT nn The FXCT command performs a diagnostic function execute on the KL CPU. The valid range of function codes (nn) is a through 37 octal. PROGRAMMER HALT 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 - CAN'T F~ND 4-14 KL HALT LOOP PARSER PROGRAMMER INITIALIZE 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. OPERATOR MCR taskname The MCR command loads and starts the specified task file. OPERATOR QUIT The QUIT command causes the PARSER to be exited. At this point, the CTY is connected to the TOPS-I0 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 w{thin 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 10jEXAMINE 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 3jEXAMINE PCjREPEAT 2;EXAMINE NEXT EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE EXAMINE PC NEXT NEXT PC NEXT NEXT 4-15 PARSER EXAMINE PC EXAMINE NEXT EXAMINE 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 RESET 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. PROGRAMMER RESET ALL 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. PROGRAMMER RESET APR The RESET APR command executes a CONO 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 1 in bit 6 of the DTE-20 diagnostic word 2. Bit 0 in diagnostic word 3 is set to 1 to indicate word-mode transfers. RESET ERROR PROGRAMMER The RESET ERROR command executes a CONO APR,,27760 instruction to reset the KL error flags. RESET INITIALIZE PROGRAMMER 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. 4-16 PARSER PROGRAMMER RESET 10 The RESET 10 command executes a CONO APR,,200000 perform an I/O reset of the KL. instruction to PROGRAMMER RESET PAG The RESET PAG command executes a CONO PAG"O instruction followed by a DATAO PAG"lOO instruction to reset the KL PAGing box. This command requires that the KL clock be running. PROGRAMMER RESET PI The RESET PI command executes a CONO PI"lOOOO reset the KL Priority Interrupt system. instruction to OPERATOR RUN taskname The RUN command loads and starts the specified task command is an alias for the MCR command. file. This MAINTENANCE SET CLOCK NORMAL The SET CLOCK NORMAL command sets the KL's clock parameters to internal source, full rate, and enables the CRAM, data path, and control logic clocks. SET CLOCK MAINTENANCE CRAM } DATA-PATH { CONTROL 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 enables the control logic clock. MAINTENANCE EXTERNAL} INTERNAL { MARGIN This SET CLOCK command sets the source of the clock pulses: external, internal, or margin. The margin clock is slightly 4-17 PARSER 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. 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 will not let you set the console mode any higher than that specified when the KLINIK window was defined. PROGRAMMER 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 4-18 PARSER (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 I5:0N PAR> SET FS-STOP MAINTENANCE The SET FS-STOP command enables the Field Service stop facility. OPERATOR SET INCREMENT n 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 used to enable access to the KLINIK link. The command initiates a dialog in which a KLINIK access window and security parameters are established. (See Appendix D for the KLINIK dialog.) SET MEMORY OPERATOR ELEVEN} {TEN 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-19 command and PARSER SET OFFSET nnnnnn 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 PARITY-STOP MAINTENANCE ALL AR CMM DMM ENABLE FM FS-STOP 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. PROGRAMMER SET RELOAD 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. SET REPEAT n OPEMTOR 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 will be repeated n number of times. SET RETRY PROGMMMER 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 will usually branch to a routine that causes the KL monitor to dump memory and request a reload (BUGHLT in TOPS-20, STOPCD in TOPS-lO). 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. 4-20 PARSER SET TRACKS PROGRAMMER The SET TRACKS command causes RSX-20F to type out, on the console terminal, all KL operations and their results. SHUTDOWN OPERATOR The SHUTDOWN command DEPOSITs a minus one into the KL EXEC, virtual location 30 (octal). This command is used to bring down a runnIng system gracefully. Example: PAR>SHUTDOWN **HALTED** %DECSYSTEM-20 NOT RUNNING START TEN addr PROGRAMMER 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. 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 mode: OPERATOR WHAT DATE 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. 4-21 PARSER WHAT INCREMENT OPERATOR The WHAT INCREMENT command displays the current value of increment counter used in EXAMINEs and DEPOSITs. the KL OPERATOR WHAT KLINIK The WHAT KLINIK command displays the current access status of the KLINIK link (see 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 KLINIK ACTIVE If an access window has been set up and the link is not the reply is: in use, 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 WHAT PARITY-STOP relocation PROGRAMMER 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. WHAT RELOAD PROGRAMMER The WHAT RELOAD command displays automatic reload function. 4-22 the current status of the PARSER WHAT REPEAT OPERATOR The WHAT REPEAT command displays the current value of the repeat factor. WHAT RETRY PARSER PROGRAMMER The WHAT RETRY command displays the current status of flag in the front end. WHAT TRACKS the RETRY PROGRAMMER 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 an argument and executes it as a KL instruction. Note that executing an instruction with an opcode (bits 0 through 8) of zero is not allowed. If attempted, 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 4-23 PARSER 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 ln 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 you are in. APE KL APR ERROR The PARSER encountered a CPU error (nonexistent memory, parity error, or a similar condition) . Call your Field Service Representative. BAE BURST ARGUMENT ERROR This is an internal programming failure. Support Specialist. CAE Call your Software KL CRAM ADDRESS ERROR This is an internal programming failure. Call either your Field Service Representative or your Software Support Specialist. 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. 4-24 PARSER 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 use 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. CNR COMMAND IS NOT REPEATABLE You tried to repeat a command that cannot However, the command has been executed once. DAV repeated. DATE ALREADY VALID You tried to set a new internal date and flag was on. DBT be the date validity 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 Call your Software DEPOSIT KL MEMORY FAILED This is an internal programming accept a deposit directive. Specialist. 4-25 failure. RSX-20F did not Call your Software Support PARSER 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 DT~-20 status registers failed. Call your Software Support Specialist. 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. RSX-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 a fatal error. The PARSER encountered an error. Call your Field Service Representative. ESD EBUS parity EBOX STOPPED - DEPOSIT The PARSER executed a deposit directive and found that the KL clock was stopped. ESE EBOX STOPPED - EXAMINE The PARSER executed an examine directive and found KL clock was stopped. 4-26 that the PARSER FRF FUNCTION READ nnn FAILED A diagn~stic function read with function code nnn has failed. This 1S a fatal error. Call your Field Service Representative and your Software Support Specialist. If the system crashes, try to reload it. FWF 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. 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. 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 retains its uniqueness. 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 was not a result of entering a command, call your Software Support Specialist. ILC diagnostic 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 (~) and converted to their printing equivalent for output. 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 (~) and converted to their printing equivalent for output. Note that a tab is converted to one space. 4-27 PARSER IOC ILLEGAL KL OPCODE Either you or the PARSER tried to execute a KL instruction with an illegal op-code. If this was not the result of an XCT command, call your Software Support Specialist. 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. 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 the KL ILLEGAL WHILE KL RUNNING You tried to execute a command that is illegal while is running. KNC that KL ADDRESS ERROR You specified a KL address that was out bits), negative, or not in octal radix. KLR command 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. 4-28 PARSER MRA MISSING REQUIRED ARGUMENT You did not specify all of the necessary command. NDI arguments for NULL DATE ILLEGAL During the SET DATE dialog, you answered the DATE: with a carriage return. You must supply a date. NER the prompt 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. NPI NULL PASSWORD ILLEGAL During the SET KLINIK dialog, prompt with a carriage return. one is requested. NSK wrong you answered the PASSWORD: You must supply a password if 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. OAI 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. PTL Call your Software PASSWORD TOO LONG During the SET KLINIK dialog, you specified a was more than six characters in length. 4-29 password that PARSER RPM 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. WRM a DEPOSIT 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. 4-30 PARSER 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-31 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.MCBi 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 5-1 KLINIT 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. e 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 LOAD SWITCHES ENABLE DISK SW REG FLOPPY I FAULT LIGHT' POWER LIGHT POWER SWITCH EMERGENCY POWER OFF o 17 SWITCH REGISTER ENABLE/HALT SWITCH 9452-2 Figure 5-1 Load Switches and Switch Register for KL with Floppy Disks 5-3 KLINIT LOAD SWITCH ES DISK ENABLE o 17 SWITCH REGISTER ENABLE/HAL T SWITCH 7801·6 Figure 5-2 Load Switches and Switch Register for KL with DECtapes 5-4 KLINIT Table 5-1 Switch Register Bit Definitions 17 16 15 11 14 Bit 10 7 8 6 2 3 1 o 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 I 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 I is not set and bit 2 is set, RSX-20F is loaded and started. However, the front end tries to communicate with the KL using secondary and then primary protocol. If the KL is not running, a TBT II-halt occurs. If both I and 2 are not set, the much like it is using the DISK, load switch. However, since interpreted, you can specify the bootstrap device in bits 8-10. system is loaded DECtape, or FLOPPY other bits are unit number of the 6-3 Currently not used, and must not be set. 7 If this bit is set, the bootstrap device pack on a dual-ported drive. If the bit is not set, the DEC tape 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, you usually enter the KLINIT dialog. (Refer to Figures 5-1 and 5-2.) Set the switch register bits 0, 1, and 2 on (in the up position). Refer to Table 5-1 to determine if bits 7 through 10 should be set. Press the load switches SW REG and ENABLE simultaneously. RSX-20F loads and starts and, in turn, loads and starts KLINIT. KLINIT then prompts you with the first question: 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) ito enter the PARSER PAR)MCR KLINIT ito load KLINIT KLI -- ENTER DIALOG [NO, YES, EXIT, BOOT]? During the dialog, the following conventions hold: 5.2 • 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 the of the dialog and assumes all the default answers. • An answer of BACK to any question returns previous question unless stated otherwise. • An answer of RESTART to the EXIT question returns you to the 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 causes the question to be repeated. • The minimum size of an abbreviation for any than filename is the first two characters. an error you to message answer rest the and other 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 practice, however, 5-6 KLINIT 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 two forms that are used to toggle on and off the tracking capability. These forms are T+ and T-, respectively. If you wish to see a report on each operation of the initialization procedure, you can give the T+ command and the complete listing will be printed on the CTY. You should be aware that turning on the tracking capability will cause a great deal of information to be dumped to the CTY, using a lot of time and paper. 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 report containing the KL serial number, machine type, power line frequency, and the system's hardware options. (See Section 5.3.1, Informational Messages.) NO assumes the default answers for all the remalnlng questions. This is the last chance to bypass the dialog and take the default path. YES continues the dialog and 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 standard KL bootstrap program found in BOOT.EXB. No defaults are taken when this option is selected. 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. (See 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 FAILED message is issued. In both cases, KLINIT returns to the beginning of the dialog. You can then reload the microcode and try again. 5-7 KLINIT 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: For example, KLI>0,1,3<cr> 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. 5-8 to enable KLINIT 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 configuration 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. 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. 5-9 KLINIT KLI -- MODULES/BLOCKS WITHIN CONTROLLER n [ALL,NONE,SPECIFY]? NOTE This question is repeated for each controller. In each iteration, the 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. 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. 5-10 KLINIT NO deletes all 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 SPECIFYl 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. containing NO notifies KLINIT not to change the existing KL.CFG file. the 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-11 (see KLINIT LOAD SWITCHES r K SW REG (SW REG BIT .a MUST BE ON) ( TEST SW REG BITS' & 2 do 1~ 0" I ) "0 I SEE TABLE "·1 IS CACHE PRESENT? ENABLE CACHE PER KL.CFG (NOTE 1) ENABLE ALL CACHE DISABLE ALL CACHE ENABLE THE SPECIFIED CACHE A M R-S·172· 79 NOTE 1: If there is no KL.CFG file, enable all cache. Figure 5-3 KLINIT Operator Dialog 5-12 KLINIT ~ A , CONFIGURE MEMORY PER KL. CFG (NOTE 2) , , CONFIGURE KL MEMORY? FILE ALL REVERSE -FORCE YES CONFIG. MEMORY PER KL.CFG (NOTE 2) CONFIG. ALL MEMORY SET REVERSE CONFIG. -DBE SCAN ANY MOS MEMORY SET FORWARD CONFIG. • t ~ I I NO PRINT MAP OF PHYSICAL MEMORY t ) IS INTERNAL CORE MEMORY PRESENT? e $ CONFIGURE INTERNAL CORE MEMORY? ALL YES NO t t CONFIGURE ALL INTERNAL CORE MEMORY DELETE ALL INTERNAL CORE MEMORY I I f-4---------------, I I MODULES/BLOCKS WITHIN CONTROLLER n? ALL NONE 1 CONFIGURE ALL MODULES I t I CONFIGURE THE MODULES SPECIFIED DELETE ALL MODULES I I SPECIFY I I I I I I I I I I ~~~1-. _______ --1 , , INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT? 4 ALLOW UP TO 4·WAY INTERLEAVING 2 ALLOW UP TO 2·WAY INTERLEAVING I F I 1 • ALLOW NO INTERLEAVING I 8 G -For MOS memory only. NOTE 2: If there is no KL.CFG file, configure all memory. 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 (Cant.) 5-13 H MR-S-168-79 KLINIT YES DELETE ALL MOS MEMORY CONFIGURE ALLMOS MEMORY ---------------, I II I I CONFIGURE ALL MODULES DELETE ALL MODULES I I CONFIGURE THE BLOCKS SPECIFIED I I I I I I _ _ _ .J.NO~~ _ _ _ _ __I MR-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-14 KLINIT F E 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 APPROPR lATE BOOTSTRAP MRoS·170·79 NOTE 4: If there is no KL.CFG file, set switch to use the default bootstrap program in BOOT.EXB. Figure 5-3 KLINIT Operator Dialog (Cant.) 5-15 KLINIT 5.3 KLINIT MESSAGES KLINIT issues four classes of messages: informational, warning, dialog error, and system error messages. These messages are listed in the following sections 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 [NO,YES,EXIT,BOOT]? is answered with YES or NO, the hardware DIALOG 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 the serial number 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-l0 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 __ no 5-16 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 KL memory and started. Any messages that follow will be a function of the particular bootstrap program being used. 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-17 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 will not attempt to reconfigure MOS memory unless specifically told to do so. SYSTEM ACTION: KLINIT will proceed 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-18 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 configures 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 RESTART During an automatic reload, KLINIT found that the physical configuration of the system does not match the configuration described 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 KLINIT 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-19 KLINIT 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 a retry will be successful; other times you may require the assistance of your Field Service Representative of Software Support Specialist. For any system error, it is very 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 "KLI -- ? ". 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 will be 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 ? C-RAM DIFFERS AT BAD xxxxxx xxxxxx GOOD xxxxxx xxxxxx XOR xxxxxx xxxxxx persists, call your Field Service xxxxxx xxxxxx xxxxxx xxxxxx xx xxxxxx xxxxxx xxxxxx xx xxxxxx xxxxxx xxxxxx 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 Most likely a hardware error has occurred trying to configure the cache memory. messages for additional information.) 5-20 while KLINIT was (See accompanying KLINIT OPERATOR ACTION: Retry the operation; if the trouble persists, call your Field Service Representative. You can also temporarily reconfigure with no cache memory. 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-lO 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 has occurred 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-21 the trouble KLINIT KLI -- ? CAN'T DETERMINE KLIO HARDWARE ENVIRONMENT This message will be immediately followed 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 has 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 xxx xxx in the KL Dispatch RAM did not match the corresponding code in the appropriate microcode file. The actual contents of the locations are printed, the even location first, and the odd location next. This line is followed by the expected contents of the two locations. The last line is the result of a bit-by-bit exclusive or (XOR) of the actual and expected values. 5-22 KLINIT 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 -- ? 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 KLI -- ? DEVICE "device ll FULL KLINIT cannot find room on the specified front-end load for an updated copy of the configuration file KL.CFG. device 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 Representative. 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. the trouble KLI -- ? DIRECTIVE ERROR -n ON FILE IIfilename" A system error occurred while KLINIT was trying to access the file IIfilename. 1I The II nil is an octal error code for use by software support. 5-23 KLINIT 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 has 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. Contact a Software Support Specialist. software bug. CES This is almost No corrective action is possible. Contact Field Service. certainly a hardware fault. 5-24 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 This is a pure No corrective action is possible. 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 software bug. Contact a Software Support Specialist. 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 No corrective action is possible. This is a pure 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 This is a pure No corrective action is possible. 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. NBS This is a pure No corrective action is possible. software bug. Contact a Software Support Specialist. 5-25 possible. retry. Contact a retry. If the Software If the KLINIT Code Corrective Action 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. ODL 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. PDH 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 failure. Contact Field Service. SNR No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. SSO No corrective action is possible. This is a pure software bug. Contact a Software Support Specialist. TMD This is a pure No corrective action is possible. 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. retry. If the 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. 5-26 the front-end KLINIT KLI -- ? I/O ERROR -n ON FILE "filename" An I/O error occurred while KLINIT was trying to access the file "filename." The lin II is an RSX-II octal error code for use by software support. See 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 KLI -- ? ILLEGAL BUS-MODE You specified a bus-mode under configuration cannot operate. which the current DMA20 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 IBFI6NI.AII". operation. KLI -- ? INPUT RECORD LENGTH ERROR An error 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. 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. 5-27 KLINIT 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 OPERATOR ACTION: Reload the system and retry the operation. If persists, call your Field Service Representative. the trouble KLI -- ? MEMORY CONFIGURATION FAILED A hardware or software error occurred while KLINIT was 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 KLI -- ? MF20 TIMING FILE CHECKSUM ERROR KLINIT got a checksum error while file during memory configuration. accessing the MF20 timing 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". 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 IBFI6NI.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. 5-28 (irreparable) errors while KLINIT OPERATOR ACTION: Retry loading the microcode; if the your Field Service Representative. trouble persists, call KLI -- ? MICROCODE LOAD FAILED loading A hardware or software error occurred while KLINIT was 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". 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 -- ? NONEXISTENT MODULE/BLOCK KLINIT attempted to configure a module or block that exist in the controller. 5-29 does not KLINIT 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 will not come 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 If the file in question is Software Support Specialist. KL.CFG, you can get around the read operation by renaming or deleting the file. KLINIT will write 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. it still fails, contact your 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. 5-30 KLINIT 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. This section describes the information contained in these maps and reports. 5.4.1 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 4 TYPE DMA20 MODULES/GROUPS 7654321 0 1024K 4 BUS MODE EXTERNAL MEMORY RESPONSE ADDRESS SIZE 00000000 1024K 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 5-31 KLINIT 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: ADDRESS KL memory address SIZE KL memory size in K INT KL memory interleave mode TYPE memory controller type CONTROLLER memory controller number 5.4.2 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 6 5 4 3 210 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 4 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. 2. To use any memory, available. module 5-32 0 of some controller between must be KLINIT 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.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. 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 l6-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) 5-33 KLINIT 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.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 B P J Size 3 3 1 10 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 will vary by location. The following is an example of a DRAM error report: KLI KLI KLI KLI ? D-RAM DIFFERS AT 106 BAD A:2 B:O P:O J:I002 A: 2 B:O P: 0 J:I002 GOOD A:4 B:O P:O J:1412 A: 2 B:O P:l J:1412 XOR A:6 B:O P:O J:0410 A: 0 B:O P:l J:0410 Contents of location 106 5.5 1. Contents of location 107 KLINIT DIALOG EXAMPLES This example shows the output at your console terminal when you load the system using the DISK load switch. KLINIT automatically takes the default values without asking you any questions. However, KLINIT does tell 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 VE13-41 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI VERSION VA12-12 RUNNING KLI KL10 SIN: 2136., MODEL B, 60 HERTZ KLI -- KL10 HARDWARE ENVIRONMENT MOS MASTER OSCILLATOR EXTENDED ADDRESSING INTERNAL CHANNELS CACHE 5-34 KLINIT KLI KLI KLI MICROCODE VERSION 231 LOADED ALL CACHES ENABLED % MOS MEMORY IS ALREADY CONFIGURED 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 BOOTS V23(114) BTS> 2. This example shows the output at your console terminal when you load the 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 VB13-41 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-12 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 KL 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 VB13-41 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-12 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 6 5 4 3 210 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-35 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 CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 128K 2 MA20 0 & 1 00400000 768K 4 MF20 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 VE13-41 8:00 6-AUG-79 [SYO: REDIRECTED TO DBO:] [DBO: MOUNTED] KLI -- VERSION VA12-12 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>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 765 4 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 -- MODULES/BLOCKS WITHIN CONTROLLER 1 [ALL,NONE,SPECIFY]? KLI>0,1,2 KLI -- INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]? KLI>2 5-36 KLINIT LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 256K 2 MB20 0 & 1 KLI -- LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]? KLI>YES KLI -- CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOTS V23(114) BTS> 5. This example shows the console terminal output when the system is loaded using the DEC tape load switch. KLINIT did not find a therefore, it KL.CFG file on the DECtape (%NO FILE messages); 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 VA13-4l 8:00 6-AUG-79 [SYO:REDIRECTED TO DTO:] [DTO:MOUNTED] KLI -- VERSION VA12-12 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 BOOTS 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 VB13-4l 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-12 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-37 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 VB13-41 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-12 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 KLI KLI MICROCODE VERSION 231 LOADED ALL CACHES ENABLED % MOS MEMORY IS ALREADY CONFIGURED LOGICAL MEMORY CONFIGURATION. ADDRESS SIZE INT TYPE CONTROLLER 00000000 128K 2 MA20 0 & 1 00400000 768K 4 MF20 11 KLI CONFIGURATION FILE WRITTEN KLI -- BOOTSTRAP LOADED AND STARTED BOOT> 8. 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, BOOTS. 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 VA13-41 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VA12-12 RUNNING KLI -- ENTER DIALOG [NO,YES,EXIT,BOOT]? KLI>YES 5-38 KLINIT KLI -- KLIO KLI -- KLIO EXTENDED INTERNAL CACHE SIN: 1026., MODEL B, 60 HERTZ HARDWARE ENVIRONMENT ADDRESSING CHANNELS 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 3 210 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> 9. This fixample 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 VB13-4l 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-12 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>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 KLI ENTER DIALOG [NO,YES,EXIT,BOOT]? 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 VB13-4l 8:00 6-AUG-79 [SYO:REDIRECTED TO DBO:] [DBO:MOUNTED] KLI -- VERSION VB12-l2 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>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>A Z 5-40 CHAPTER 6 RSX-20F UTILITIES RSX-20F is designed to run with a minimum amount 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 6.1.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 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 of the installation floppies. To use the COP utility, type the following: CTRL/\ (control backslash) PAR) MCR COP COP) 6-1 RSX-20F UTILITIES 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 DXl: COP)DXO:=DXl: The following command zeroes deleted. the floppy in DXO:; all files are COP)DXO:/ZE The following command reads the floppy in DXO: and checks for errors. COP)DXO:/RD The following command copies the contents of the floppy in DXO: the floppy in DXI: and verifies the copy. onto COP)DXI:=DXO:/VF 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-2 RSX-20F UTILITIES 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 COP -- *DIAG* -- VERIFY ERROR AT BLOCK xxx,xxxxxx An error was xxx,xxxxxx. detected during verification at block number COP -- *FATAL* -- CONFLICTING SWITCHES A /CP or /VF was used with a /RE or /ZE. COP -- *FATAL* -- DEVICE Dxx NOT IN SYSTEM The device Dxx specified in the command string is system or is off-line. not in 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 (see Appendix A) has been detected Dxx at block number xxx,xxxxxx. on device COP -- *FATAL* -- ILLEGAL SWITCH /xx The switch /xx is not a legal COP switch. COP -- *FATAL* /ZE NO DESTINATION DEVICE SPECIFIED FOR /CP OR /VF This message is self-explanatory. COP -- *FATAL* -- NO SOURCE DEVICE SPECIFIED FOR /CP OR /VF OR /RD This message is self-explanatory. 6-3 OR RSX-20F UTILITIES COP -- *FATAL* -- SOURCE DEVICE SPECIFIED FOR IZE You specified a source device with the IZE 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 (I) or the input string was too long, or the block number was not separated from the switch by a colon (:). 6.2 INI UTILITY 6.2.1 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 (if dual-ported To initiate the INI utility, type the following: CTRL/\ (control backslash) PAR>MCR INI INI> 6.2.2 Format INI>dev:/switch Iswitch •.•• where: dev: is the device initialized. 6-4 of the volume to be RSX-20F UTILITIES The INI utility accepts a string of switches. A hyphen (-) can be used as a line terminator to extend the INI command 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 only to be used 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. BEG 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 which 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 at the 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 WRITE 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 proceeding, 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 file 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 a device and found the device write-locked. INI could therefore do nothing with the device. 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. INI -- RSX-20F FILE SYSTEM ALLOCATED LBSS THAN 256. INI allocated less than 256 blocks of space to file system. the last BLOCKS the front end 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 TO~S copy of the home block. INI -- WRONG PACK - NO RSX-20F FILE SYSTEM ALLOCATED INI was not able to find specified pack. 6.3 6.3.1 any front-end file system on the MOU AND DMO Function The MOU and DMO utilities give information to RSX-20F that makes available a device to another user utility or takes away a device. RSX-20F then allocates or deallocates 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 DXO: DX1: DTO: DT1: (RP04/06) floppy drive 0 floppy drive 1 DECtape drive 0 DECtape drive 1 FEO: 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: dev: is the device on which the volume is to be mounted. Only devices that have an Ancillary Control Processor can be mounted. Devices which meet this criterion are rigid disk, floppy disk, DECtape, and the FE: device. The DMO utility declares that the volume or communication channel specified is logically off-line. After a DMO operation, 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 The device that holds the volume to be dismounted. Examples The following command mounts the volume on device DKI:. MOU>DKI: The following command dismounts the volume on device DKI:. DMO>DKI: The following commaQd deletes the volume control block (VCB) for DKI:. DMO>DKI: 6-10 RSX-20F UTILITIES 6.3.4 Error Messages The following 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 DMOj 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. See 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. See 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 The 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 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: • Copying files from one device or area to another • Deleting files • Renaming files • Listing file directories • Concatenating or appending files 6.4.2 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.filetype;version. 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 form The input file specifier in the device: [UIC]filename.file type;version. If the filename, file type, and version are null, then *.*;* 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 DKl: and appends the contents of files TEST.DATi2, FILE2.TXTi3, and PRACT.DATil to it. PIP)DKl:FILEl.DATil=TEST.DATi2,FILE2.TXTi3,PRECT.DATilJAP 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 *.*i*, 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 The following command copies TEST.DATil SAMP.DATil. on DK2: to DKl: as PIP)DKl:SAMP. DAT i l =DK2:TEST.DAT;1 The following command copies all versions of all .DAT from DKO: to DKl:. files of type PIP)DKl:=DKO:*.DATi* DELETE Switch (jDE) Function The JDE switch allows the user to delete files from a directory. Format PIP)infilel[, 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 6-15 RSX-20F UTILITIES /LI lists the following information: Filename.file type;version Number of blocks used (decimal) 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.TSKi7 9. BOO.TSK;7 19. EBOOT.EXB;15 DMP.TSK;7 47. KLDISC.TSK;7 EDDT.EXB;l MTBOOT.EXB;l KLA213.MCB;213 MOU.TSK;6 5. C 19-JUL-79 10:58 C 19-JUL-79 10:58 36. 20-JUN-79 09:17 C 19-JUL-79 15:02 5. C 19-JUL-79 15:02 52. 13-JUN-79 14:46 35. 19-JUN-79 07:47 36. 12-JUL-79 10:22 C 29-JUN-79 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 fill 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 (decimal) 6-16 RSX-20F UTILITIES File code null = noncontiguous C = contiguous L = locked Creation date and time Owner UIC and file protection in the format: [group, member] [system, owner, group, world] 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 132-column terminal, the complete each file will be printed on one line.) information PIP>DBl:/FU DIRECTORY DBl: [5,5] 25-JUL-79 10:53 BAD.TSKi7 (7,17) 9./9. C 19-JUL-79 10:58 [5,5] [RWED,RWED,RWE,R] BOO.TSKi7 (10,33) 19./19. C 19-JUL-79 10:58 [5,5] [RWED,RWED,RWE,R] EBOOT. EXB i 15 (15,24) 36. /36. 20-JUN-79 09:17 [5,5] [RWED,RWED,RWE,R] RED.TSKi7 (36,1021) 6./6. C 19-JUL-79 10:58 [5,5] [RWED,RWED,RWE,R] 19-JUL-79 11:04(5.) KLI.TSKi5 (40,20) 64./64. C 29-JUN-79 15:02 [5,5] [RWED,RWED,RWE,R] 12-JUL-79 10:20(74.) SLP.TSKi7 (45,121) 41./41. C 19-JUL-79 10:58 [5,5] [RWED,RWED,RWE,R] /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>DBI:/TB TOTAL OF 2789. BLOCKS IN 8S. 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 I of the file TEST.DAT and version 2 of NEW.DAT from DK2: and generates the file SAMP.DAT on DKI:. PIP>DKI:SAMP.DAT=DK2:TEST.DAT il,NEW.DATi2/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.DATil,TEST.DATi2,TEST.DATiS Then the following command and switch are issued: PIP>TEST.DAT/PU After PIP has completed the contains the following file. TEST.DATi S 6-18 purging action, the directory RSX-20F UTILITIES RENAME Switch (IRE) Function The IRE switch allows you to change the name of a file. The 'subswitch INV 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. Format PIP>outfile infile/RE [/NV] Example PIP>TEST.DAT;1=TRIAL.DAT;5/RE File TRIAL.DAT;5 is renamed TEST.DAT;l. 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 UFO volume. that does 6-19 not exist on the specified RSX-20F UTILITIES PIP -- CANNOT FIND FILE(S) The file(s) specified in the specified directory. command was not found in the PIP -- CANNOT RENAME FROM ONE DEVICE TO ANOTHER You attempted to rename a file across devices. 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. 6-20 RSX-20F UTILITIES 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. the 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. PIP -- ILLEGAL 11*11 switch in 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. 6-21 RSX-20F UTILITIES PIP -- ILLEGAL USE OF WILD CARD VERSION The use of a wildcard version number in the attempted operation results in inconsistent or unpredictable output. 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 hardware failed. • The volume is full • The input file is corrupted. The device is not mounted. (output only) . 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) specified in the command are not in the directory. designated PIP -- ONLY [*,*] IS LEGAL AS DESTINATION UIC You specified a UIC other than [*,*] as the output file UIC for a copy. 6-22 RSX-20F UTILITIES 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. • 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 11*11 The version number of the specified explicitly or as a wildcard. 6.5 6.5.1 file must be expressed RED Function The RED utility allo~s 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-23 RSX-20F UTILITIES 6.5.2 Format RED)nud:=SY: where: 6.5.3 nud the new device to which subsequent requests are redirected. SY the system directed. device from which requests to have be been Examples The following command redirects all I/O requests for SY: to OBI:. RED)DBl:=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 -- FllACP 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 -- SYNTAX ERROR The command string contained a syntax error. 6.6 6.6.1 SAV 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 OTILITIES 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 This special image is a task image special format of 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, en~ries 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 does not see wide use. 6-25 RSX-20F UTILITIES 6.6.3 /EX causes SAV to exit after writing the save switch is the default condition. /MO:dev tells SAV that the specified device must be mounted before the save file is written. This switch does not see wide use. /RH indicates that SAV should read the horne 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 SAV to write a save file. default condition. This file. switch This is the Example SAV> 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. SAV was unable to find the second floppy disk it expected. SAV -- *DIAG* -- DBn: NOT IN PROGRAMMABLE (A/B) MODE SAV attempted to access disk DBn: the correct mode. and found that it was not in SAV -- *DIAG* -- DEVICE ALREADY MOUNTED You have used the /MO switch in the command string to the device you requested is already mounted. SAV and SAV -- *DIAG* -- dev NOT READY SAV 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 (see 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. See 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. See 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. the SAV -- *FATAL* -- CREATE SAVE FILE (5,5) ERROR xx SAV attempted to create a system image file and received an I/O error. See Appendix A for a list of I/O error codes. 6-27 RSX-20F UTILITIES SAV -- *FATAL* -- dev CANNOT BE DISMOUNTED You gave SAV the /DM switch 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. See 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 Appendix A for a list of the I/O error codes. run. See SAV -- *FATAL* -- MOUNT ERROR You specified the /MO switch in the SAV command string and was unable to mount the specified device. SAV SAV -- *FATAL* -- NO DTE-20 SAV could not find the DTE-20 it expected. 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. 6-28 RSX-20F UTILITIES 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 USER FILE DIRECTORY 6.7.1 Function The UFD 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 UFD being created will reside. Default: must be specified. [group,member] The owning UIC for the UFD. 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: 6.7.3 none; /ALL:32 Examples PAR>MCR UFD UFD>DB2:[lO,lO]/ALL:900 6-29 The brackets are RSX-20F UTILITIES 6.7.4 Error Messages UFD -- CAN'T READ MCR COMMAND BUFFER This message indicates command string. that UFD was unable to parse your UFD -- DEVICE NOT IN SYSTEM UFD was unable to find the specified device on the system. UFD -- DIRECTORY ALREADY EXISTS The requested UFD already exists on the volume. UFD -- FAILED TO CREATE DIRECTORY No space exists on the volume, or an I/O error occurred. UFD -- FAILED TO ENTER IN MFD No space exists in the MFD or on the volume, or occurred on the volume. an I/O error UFD -- NOT FILES-II DEVICE The device specified for the UFD was not a Files-II device, and therefore could not support a UFD. UFD -- SYNTAX ERROR UFD found a syntax error in your command string. UFD -- VOLUME NOT MOUNTED The volume was not mounted prior to the attempt to UFD. create the UFD -- WRITE ATTRIBUTES FAILURE UFD encountered an error while writing the attributes of either the MFD or the newly created UFD. 6-30 RSX-20F UTILITIES 6.8 ZAP 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: o 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. o A set of internal registers registers. o Single character commands that, in combination with other command line elements, display, open, close, and manipulate the values in task images and data files. that 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 RSX20F.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 0 of a nonoverlaid task in absolute mode open address 2000. In task image mode, ZAP 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: MCR.OLD;l) $$RESL: (RE,I,LCL,REL,CON) 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-II 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 with each other 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: o Open a location, display its contents, and store the in the quantity register. contents o 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 > 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. a Display the jump and branch displacements from the current locations to a target location. return to MCR. Display in octal the value of the left of the equal sign. R the 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 a 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. 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 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 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) Separate a block number base value from an offset into the block. (used in most references to locations in a file) 6-37 RSX-20F UTILITIES 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 blocknum:byteoffset This form for addressing locations can be used regardless /AB has been used with the ZAP file specification. The task builder prints a map that gives information segments. For example: R/W MEM DISK BLK LIMITS: LIMITS: on of whether the overlay INDENT FILE 120000 123023 033024 01556. 000002 000005 000004 00004. MEMORY ALLOCATION SYNOPSIS: TITLE SECTION . 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. 01 01 MCR.OLB;l MCR.OLB;l 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. 6-38 RSX-20F UTILITIES 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:12032i3R 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 (/,", %, \, 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 44444 / Display the contents of a word location. Change the contents of the location by entering a value (44444) and close the location by a carriage return. Display the new contents of the location by entering a slash (/) and a carriage return. 002:120000/ 44444 6-39 RSX-20F UTILITIES When ZAP displays the contents of the opened location, the format in which the value is displayed is indicated by the special command character immediately following the address portion of the location. In this example the slash (/) 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 of 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 (~) command is used to close the current location, direct ZAP to the preceding location, and to open that location. to 002:120100/ 002:120100/ 000000 002:120102/ 000111 002:120104/ 000222 002:120106/ 000333 ~ 002:120104/ 000222 The carriage return is used to close the first three open locations and open the next location. The circumflex (~) closes location 120106 and directs ZAP to open the preceding location, 120104. Close a Location -- Open a Location at an Counter Offset from the Location The underscore (_) command is used as follows: • Closes the current location • Directs ZAP to use the contents of this just-closed location as an offset • Adds this offset to the next sequential location • Opens that location 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 sequential 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 =. 6.8.7.1 The K Command: Compute Register - The K command is value of the nearest (less than the currently open location, to it in the quantity register. purpose Offset and Store It in the Quantity used to compute the offset between the or equal to) relocation register and display the offset value, and to store 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. ainK Calculates the displacement relocation register n. between address The following example illustrates the use of the K command: 2:1172,OR 2:1232ilR 2:1202/ 002:000020/000111 K =0,000010 O,lOOilK 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 locat10n. 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. a;KO Displays the jump and branch location a to target location K. displacements the from The following example illustrates the use of the 0 command: 2:ll72;OR 0,101 002:000010/000005 0,200 00006>000003 0,30;2:12020 177756>17777767 6.8.7.1 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 @, #, and> cannot be used when a location is open as a byte. 6-43 RSX-20F UTILITIES ZAP -- ERROR IN FILE SPECIFICATION The file specification was entered incorrectly. ZAP -- ERROR ON COMMAND INPUT An I/O error occurred while a command could be a hardware error. was being read; this 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. 6-44 RSX-20F UTILITIES ZAP -- SEGMENT TABLE OVERFLOW ZAP does not have enough room in its partition to segment table. construct a 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 examining the internals of the RSX-20F monitor, let us the functions of an operating system. These functions are: o To provide service to the I/O devices in the form of drivers o To control the scheduling of the monitor call and queue mechanism o To control the scheduling of tasks o To provide common routines that any program can use device drivers via recall device some With these functions in mind, we will proceed to discuss the structure of the RSX-20F operating system. This chapter will detail the RSX-20F Executive. It will then describe RSX-20F tasks and the scheduling of these tasks, along with the actions performed by system traps. Finally, the terminal service routines will be 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. 7-1 RSX-20F MONITOR 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. +-----------------------------------------------------+ 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 DMSAR - 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 l6-word block for a task to read DMGMP - Get Partition Parameters Directive Gets information about a partition and puts it into a l6-word block for a task to read RUN - Clock Tick Recognition Service Checks time dependent flags at each clock interrupt QPRDTE DTE-20 device driver and queued protocol TTYDRR Terminal device driver SCOMM RSX-20F Executive Data Base ARITH Miscellaneous arithmetic functions (multiply, divide, etc) DBDRV Dual-ported disk device driver DTDRV DEC tape device driver (TOPS-10) 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 Figure 7-1 RSX-20F Executive (Cont.) 7-3 RSX-20F MONITOR 70000 .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 big buffer used to store LPT RAM data or task information when a task is 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 100000 -----------------------------1 .FREPL 076000 ----------------------------- 070000 RSX-20F EXEC +-----------------------------+ Figure 7-2 000000 RSX-20F Memory Layout 7-5 RSX-20F MONITOR 7.2 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 are considered tasks and must be scheduled: DTEDRV FEDRV DBDRV DXDRV DTDRV TTYDRV LPTDRV CDRDRV FIIACP QPRDTE INSTAL <optional> NULL DTE device driver FE device driver RP04 device driver Floppy disk device driver DEC tape driver Terminal device driver 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. 7-6 RSX-20F MONITOR +-------------------------------------------------------+ Task Name o S.TN (6 char in RADIX-50) Default Task Partition Address 4 S.TD Flags Word 6 S.FW System Disk Indicator Default Priority 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 Set Bit 1 Set Bit 2 - Set Bit 14 - Set Bit 15 Set - Figure 7-3 when when when when 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 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. 7-7 RSX-20F MONITOR +-------------------------------------------------------+ 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) Task's Run Priority (null) 1/64th of real address of load image Task Flags byte Task Status System Task Directory (STD) entry address 6 A.PD 10 12 A.HA 14 A.FB/A.TS 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 +-------------------------------------------------------+ /A.RP 34 A.PF Status Bits (Byte 14) TS.LRQ==02 TS.TKN==04 TS.LRF==06 TS.RON==lO TS.SOS==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 When you are looking at dumps of RSX-20F, you can find the location of the ATL node of the current task by examining the location .CRTSK. Installing a task into the GEN partition consists of reading it into memory from the system 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. 7-8 RSX-20F MONITOR 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 o Control can directive. be returned to the task that issued the o 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. o 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 loaded 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 will be 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-9 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 will decide 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 will be terminated. If COMTRP concludes that this error is serious enough to crash the system, the COMTRP routine issues a .CRASH macro itself. This causes control to come right back to COMTRP. COMTRP sees that it was an IOT 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-10 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, what 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 the following section. 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, Terminal Handling. 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. The 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. You are cautioned, however, that the conventions do not make it possible to connect every modem to every computer. Each computer system has its own method 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-handling techniques can cause significant problems for the computer system. 7-11 RSX-20F MONITOR Phone line Remote terminal local Modem Remote Modem I I 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. (Refer to Figure 7-5 for a diagram showing 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 will describe the sequence of events that takes place 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-12 RSX-20F MONITOR $DMINT RSX-20F RECEIVES INTERRUPT NO (CARRIER TRANSITION) OFF SET CARRIER WAIT SET RIP ON YES TURN OFF CARRIER WAIT DISMISS INTERRUPT RAISE DTR CLEAR RIP SET CARRIER WAIT RAISE RTS YES SET RIP DISMISS INTERRUPT CLEAR LINE YES DISMISS INTERRUPT SEND CONNECT MESSAGE TO KL SET AUTO-BAUD WAIT DISMISS INTERRUPT DISMISS INTERRUPT MR-S-424-79 Figure 7-6 Modem Control Algorithm 7-13 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 phone ring or a carrier transition. If the interrupt is a phone 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 sets the Ring in Progress flag and, finally, tells the KL to detach any job currently on this line to prevent 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 the modem was merely bumped and the signal was lost for a short time. To determine if the user has hung up, $DMINT sets the Carrier wait flag, which says that the line is waiting for a clean carrier signal to be 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. (See 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 bouncy 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 not previously connected to the system, it will determine 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 does need to be auto-bauded, $DMINT sets the Auto-baud wait flag (which will be noticed by $DHINP, the character input routine - see 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 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 terminal service routine therefore dismisses the interrupt. 7-14 RSX-20F r·l0NITOR 7.4.1.3 Modem Timeout Routine - This section describes the modem timeout routine, which is labeled .DMTMO. Refer to Figure 7-7 for a flowchart of the algorithm. CALL FROM TTYDRR YES NO NO THIS LINE ISOK; PROCEED TO NEXT LINE HANG UP PHONE CLEAR RIP FLAG PROCEED TO NEXT LINE MR-S-425-79 Figure 7-7 Modem Timeout Algorithm 7-15 RSX-20F MONITOR Every twenty-two seconds, TTYDRR calls the modem timeout code, which is in routine .DMTMO. .DMTMO determines whether the line in question has been hung up or simply has a bouncy carrier signal. To do this, .DMTMO checks all the lines that are currently active. If it finds any lines in carrier wait (that is, if the Carrier Wait flag is set for any of the lines), it checks to see if the line was in carrier wait the last time .DMTMO was called. It does this by looking at the Ring in Progress (RIP) flag. If the flag is clear, the line has been in carrier wait since the last time .DMTMO checked it. This means that, for at least twenty-two seconds, the line has not had a good carrier signal. Therefore, .DMTMO hangs up the line and proceeds to check the next line. If the RIP flag is set, .DMTMO clears it, so that the next time through the timeout code, the line will be hung up if it is still waiting. Then .DMTMO proceeds to the next line to be checked. 7.4.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 will be presented separately, while $DHOUT will be described as a unit. 7.4.2.1 Character Input Routine - The following flowchart depicts the algorithm used by RSX-20F to determine what to do with input characters. 7-16 RSX-20F MONITOR MODULE $DHINP DH11 SUPPLIES CHARACTER NO NO YES SEND CONNECT MESSAGE TO KL TURN OFF AUTO·BAUD WAIT FLAG DISMISS CHARACTER NO NO CLEAR ERROR COUNT DISMISS CHARACTER INCREMENT ERROR COUNT DISMISS CHARACTER YES SET INPUT SPEED TO ZERO DISMISS CHARACTER CREATE SYSERR ENTRY ·11 PERFORM RELEVANT OPERATION M R-S·426· 79 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-427-79 Figure 7-8 Character Input Algorithm (Cont.) When a DH-ll 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 is on, $DHINP attempts to set the line speed. It does this by checking the character it has received against patterns for both CTRL/C and carriage return at all available baud rates. If a match is found, $DHINP sends a message to the KL informing it of the 7-18 RSX-20F MONITOR 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 properly. 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 line. $DHINP also creates a SYSERR entry that notes the line number and the problem on that line. If $DHINP gets a character cleanly (without a framing error) it first clears the count of framing errors in a row. $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 call to the RSX-20F user interface. If the character is not meant for the PDP-II to handle, the KL must be the 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 (which should only happen at boot time), 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 drops it. Otherwise, $DHINP checks for protocol pause, the state between secondary and primary protocol. If this is the current state of protocol, $DHINP will attempt 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. 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 reacts. 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 1S therefore critical, because any data sent 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 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. 7-19 RSX-20F MONITOR 7.4.2.2 Terminal Timeout Routine - This section describes the terminal timeout routine, which is labeled .DHTMO. Refer to Figure 7-9 for 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 SET LINE SPEED NO YES GETDM ADDRESS SET LlNE# ENABLE DATA·SET INTERRUPT M R-S-428· 79 Figure 7-9 Terminal Timeout Algorithm 7-21 RSX-20F MONITOR YES ENABLE LINE NO ENABLE HARDWARE INTERRUPTS YES NO NEXT LINE HARDWARE ENABLE DH NO NEXT DH MR-S-429-79 Figure 7-9 Terminal Timeout Algorithm (Cont.) Every ten seconds, the terminal service routine calls the terminal timeout routine, .DHTMO. .DHTMO is also called at startup time and on a power-fail restart. The only difference in the performance of the routine is in the manner of exit used. When .DHTMO is called at startup time, it does not know how many communications interfaces exist on the system. Therefore, .DHTMO attempts to go through its initialization procedures for each of the sixteen possible interfaces. When it attempts to initialize an interface that does not actually exist, a trap occurs to the exit routine. This procedure works because .DHTMO checks, upon being called, to see if it is startup time. If .DHTMO was called at startup time it sets up the trap vector to point to the exit routine. If, on the other hand, .DHTMO was called at some time other than startup, its internal table will have recorded the actual number of interfaces in use by that system • • DHTMO therefore does not attempt to do anything with a nonexistent interface. Instead, the exit code is reached in the normal course of execution. 7-22 RSX-20F MONITOR Once .DHTMO knows whether it is startup time and has taken the appropriate action, the routine will clear the reset flag. This flag allows .DHTMO to keep track of the hardware state of the communications interfaces. .DHTMO then gets the UNIBUS address of the DH-ll communications interface and chooses which line it wishes to check. At this point in the startup-time execution of .DHTMO, it may attempt to reference a nonexistent DH-ll. If this happens, a trap to the exit code occurs. If this is not startup time, the actual number of DH-ll's connected to the system is already known to .DHTMO. If the routine has scanned all existing DH-ll's, it proceeds to the exit code. The exit code counts the actual number of terminal lines connected to the system and records it, and makes sure that the actual number of DH-ll's is also recorded (so that the routine will exit normally rather than by trapping). 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 a variety of hardware error conditions. If any hardware errors have 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 came at startup time, .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 time, or if the DH-ll has been reset, .DHTMO's next action is to set the line speed. This is also done if, instead of a hardware error, .DHTMO finds that it needs to restart a line. This occurs when, for instance, a line has had four consecutive framing errors (see Section 7.4.2.1 for a description of framing errors). When this happens, 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. .DHTMO also clears the Auto-baud Wait flag. At this point, .DHTMO will check to see if it is dealing with a remote line. If it is, it proceeds to check the DM-llBB status by obtaining the DM-llBB address (as it obtained the DH-ll address) and specifying the line number. .DHTMO then enables data-set interrupts (so that data on the line generates an interrupt) and checks to see if the RTS signal has been raised. If so, it enables the line and enables hardware interrupts. If not, .DHTMO simply enables the hardware interrupts. 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 increments the DH-ll counter. In either case, .DHTMO returns to clear the reset flag, and proceeds to check the rest of the DH-ll's. 7.4.2.3 Character Output Routine - The following chart algorithm RSX-20F uses to process output to terminals. 7-23 shows the RSX-20F MONITOR MODULE $DHOUT INTERRUPT IS GENERATED SETUP FOR THIS DH CHOOSE NEW LINE NO YES DISMISS INTERRUPT YES CALL ·11 1/0 ROUTINES NO NO M R-S·430- 79 Figure 7-10 Character Output Algorithm 7-24 RSX-20F MONITOR YES COUNTS/A DONE FOR THIS LINE YES CRASH COMPUTE BYTES PENDING IN PACKET NO YES YES YES DEALLOC PACKET'S NODE NO NO NO START S/A YES .DHSTO NO START NEXT PACKET MR-5·431·79 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 independently 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 what 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 when the interrupt was generated. Receiving an interrupt on an inactive line is not necessarily an error condition, but $DHOUT will 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 looks 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 entire system, 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, $DHOUT sends the acknowledge signal ($DHOUT "acks" the line) to show that all data waiting has been transmitted. $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 will relinquish control to $DHOUT so that $DHOUT can choose another line to be checked. This completes the description of the $DHOUT algorithm. 7-27 CHAPTER 8 DTE HARDWARE 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: 8.1 • 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 another 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 HARDWARE OPERATION The following figure 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 I -------------------------------I 17 TOPID 20 CMPPT 21 STATUS 22 CMQCT 23 CMRLF 24 CMKAK 25 Other Sections for "To" Processors Other Communications Areas +------------------------------+ Figure 8-1 KL Communications Region 8-2 DTE HARDWARE 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 +-----------------------------------------------------+ \ Must be zero 1\ Processor number I I\ blank +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _- J 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. PI DENT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \ CMVER 1'---1\ /\ blank CPVER CMNPR I CMTEN +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ___~/\ 1 CMSIZ CMNAM The PIDENT word provides information about the owning processor its area. The separate fields in PI DENT are described below. otherwise, 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 contains the number of processors this area, including the owning processor. CMSIZ This area contains the size of the entire area in eight-word blocks. CMNAM This area contains the name (serial number) of that owns this area. 8-3 represented owning the and it in processor's processor DTE HARDWARE OPERATION CMLNK Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~----------~----~----~--------------------------Pointer to next +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ________________ ~--~~-------------------------------JI 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 9110111112113114115'1161171 +-----------------------------------------------------+ \~------------~----------~------------------------Owning processor's +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ------------------~--------------------------------~I 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 +-----------------------------------------------------+ 1181191201211221231241251261271281291301311321331341351 +-----------------------------------------------------+ ----------------------------------~------------------~I CONI PI, Word (Cont.) 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 see the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) 8-4 DTE HARDWARE OPERATION CMPGWD Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~--------~~~~=-~--~--------------------------CONI PAG, Word +-----------------------------------------------------+ 118119120121122123124125126127J28129130131132133134135I +-----------------------------------------------------+1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _- 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 see 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 see the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) CMAPRW Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~--------------------------~-------------------------CONI APR, Word +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ --------------------------~-----~----------------~I CONI APR, Word 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, see the DECsystem-10jDECSYSTEM-20 Processor Reference Manual.) 8-5 DTE HARDWARE OPERATION CMDAPR Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~------------~~~~=-~--~---------------------DATAl APR, Word +-----------------------------------------------------+ 1181191201211221231241251261?7128129130131132133134135I +-----------------------------------------------------+ ------------------~~----~--~--~------------~I DATAl APR, Word (Cont.) The CMDAPR word is the storage area provided for reading the current break conditions from the Arithmetic Processor. The DATAl APR, instruction puts the information here. (For more information on break conditions and the Arithmetic Processor, see the DECsystem-lOjDECSYSTEM-20 Processor Reference Manual.) TOPID Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ I CMPRO I '--../\ CMDTN 1\ blank 1"- CMVRR CMDTE +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ --1\ j 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. CMDTN If CMDTE is one, this area contains the number of that connects the two processors. CMVRR This area designates the version of protocol the two processors. CMSZ This area contains blocks. CMPNM This area contains the processor number of the "To" processor. the size 8-6 of this block between in the use in this DTE-20 between eight-word DTE HARDWARE OPERATION CMPPT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~-----------------------------------------------------Pointer to "To" +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ --------------------~------~--------------------------~I 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 +-----------------------------------------------------+ CMbwF CM~NI blank I blank I I I\ CML11 I\ CMTST CMQP I CMFWD +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ I CMIP I\ CMOIC 1\ CM1IC 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. CML11 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 CML11 (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 CML11 set, and performs a reload operation for the owning processor. CMINI This bit is the initialization 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 HARDWARE 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 iriitializes 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 recelvlng 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-II 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 the CMOIC area performs for the KL. 8-8 PDP-II indicate which the DTE HARDWARE OPERATION CMQCT Word: +-----------------------------------------------------+ I 01 11 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~--------------------~--~-----------------------blank +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ______ I ~A Queue size This 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 21 31 41 51 61 71 81 91101111121131141151161171 +-----------------------------------------------------+ \~------------~~~~------~--~-----------------Reload parameter for +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ ______________________~-------------------------------JI II To II processor This word contains a copy of the liTo" 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" +-----------------------------------------------------+ 118119120121122123124125126127128129130131132133134135I +-----------------------------------------------------+ --------------------------~----~--------------------~I processor's owned area .This word contains the owning processor's copy of the "To" processor's Keep-Alive count for purposes of comparison with the continuously updated copy kept by the "To" processor. 8-9 DTE HARDWARE OPERATION 8.2 DTE REGISTERS The DTE-20 has sixteen registers, which are used in various types of transfer operations. The following material lists the registers along with their addresses, and offers an explanation of the function of each register. The addresses shown are for DTEOi DTEl, DTE2 and so on, use the succeeding locations. The precise location can be figured by adding 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* TOllBC 1774416 TOIOAD 1774420 TOllAD 1774422 TOIODT 1774424 TOllDT 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 registers 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 HARDWARE 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. The following figure illustrates the form of the Status read state. Word in the +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ I un~sedl RA~ISOI DX~RDII ToioDBI EB~EL I BplRERI DE~DONI INtSON TOIODN TOIOER TOIIDB MPEl1 TOIIDN 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 TOIODN TO-I0 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. TOIODN will not be set if an error termination occurred. See TOIOER if you believe an error has occurred. UNUSED 14 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 will be set. If this bit (TOIOER) is set, TOIODN will not be 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 TOIIDB KL REQUESTED PDP-II INTERRUPT When this bit is set, the KL processor has requested a PDP-II doorbell interrupt by means of a eONO DTEn, TOIIDB 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 HARDWARE OPERATION 09 MPEll PDP-II MEMORY PARITY ERROR If this bit is setithe PDP-II memory had a parity error during a data fetch for a TO-IO byte transfer. Parity errors can only be detected if the PDP-II has one of the MFllUP or MFllLP 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 TOllDN 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 (DONllS). 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 TOllBC register). 04 BPARER EBUS PARITY ERROR This bit is set if the DTE-20 detects an EBUS parity error during a TO-ll DTE-20 byte transfer or examine transfer. 03 RM RESTRICTED MODE If this bit is set, the attached PDP-II is in mode. Otherwise, restricted the PDP-II is in this bit is The value of privileged mode. 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 ERRllS in the write version of the Status Word. The TOIlDN bit in the read version is not set if there is actually an error termination. 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). 8-12 DTE HARDWARE OPERATION The following figure illustrates the form of the Status write state. Word in the +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ I DO~lOCI ER~lOCI IN~llCI IN~lOSI DO~llCI EBbsPCI EBbsPSI ER~llC DONIOS ERRIOS 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 DONIOS SET NORMAL TERMINATION STATUS This bit on a write is provided for diagnostic purposes only. Writing a one to this bit sets the TOIODN bit in the read version of the Status Word. Writing a one does not terminate a transfer in progress. 14 DONIOC CLEAR NORMAL TERMINATION STATUS Writing a one to this bit clears the TOlODN the read version of the Status Word. bit in 13 ERRIOS SET ERROR TERMINATION STATUS Writing a one to this bit sets the TOIOER bit in the read version of the Status Word. 12 ERRIOC CLEAR ERROR TERMINATION STATUS Writing a one to this bit clears the TOIOER 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 TOIlDB 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. 08 INTIOS SET KL INTERRUPT STATUS Writing a one to this bit sets the TOIODB bit and does a CONI [TOlODB]. This results in a vectored interrupt to location 104+B*N in the KL EPT. 8-13 DTE HARDWARE OPERATION 07 DONllS SET TO-II TERMINATION STATUS Writing a one to this bit sets the TO-II normal termination flag, which is the TOllDN 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 DONllC CLEAR TO-II TERMINATION STATUS Writing a one to this bit clears termination status flag, TOllDN. 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 error flag, BPARER, which is bit 4 in the read 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 ERRllS SET TO-II ERROR TERMINATION STATUS Writing a one to this bit sets the TO-II error which is bit 1, TOllER, in the termination flag, 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 ERRllC CLEAR TO-II ERROR TERMINATION STATUS Writing a one to this bit clears the termination flag, TOllER. 8.2.2 TO-II error 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. 8-14 DTE HARDWARE OPERATION Diagnostic Word 1 has the following form when being written: Bit Symbol Function 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. This bit must be zero. 06 05 DlOll 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 DlOll 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-lO). Setting the bit to a zero causes the data to be received (TO-II) . Unused 01 00 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. Diagnostic Word 1 has the following form when being read: Function 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. 8-15 DTE HARDWARE OPERATION 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-II 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 DIOll 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. major state is Unused or zero. 03-01 00 interface DCOMST 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 Function RFMADO RAM FILE MIXER (RFM) ADDRESS BIT 0 Read: This bit is set to the contents address bit o. Write: This bit must be zero. 15 RFMADO 14 RFMADI EDONES 13 RFMAD2 RFMAD2 12 RFMAD3 RFMAD3 11-07 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. RFM ADDRESS BIT 2 Read: This bit is set to the address bit 2. Write: This bit must be zero. RFM ADDRESS BIT 3 Read: This bit is set to the address bit 3. write: This bit must be zero. Unused Read: These bits are always zeros. Write: These bits must be zeros. 8-16 contents of RFM contents of RFM DTE HARDWARE OPERATION 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. 05 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. Unused 00 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 unly. Write: This bit must be zero. 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. 13-08 UNIBUS Data Bits INITIAL 1st Shift 2nd Shift 3rd Shift 4th Shift write: 014 009 004 A04 014 013 008 003 A03 013 012 007 002 A02 012 011 006 001 AOI 011 AOO AOO AOO AOO AOO This bit must be zero. Unused Read: This bit is zero. Write: This bit must be zero. 07-06 05 015 010 005 000 015 SCD 04 DUPE COD 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. 8-17 DTE HARDWARE OPERATION 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 8.2.3 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. 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. TOIlDT +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ \ In Byte Mode: Data from KL bits 28-35 or 20-27 / \ In Word Mode: Data from KL bits 20-27 TOllDT In Byte Mode: 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 TOIIDT 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. 8-18 DTE HARDWARE OPERATION T010DT +-----------------------------------~--------------------------+ 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 T010DT This register contains the remainder of the data sent to the KL during a TOKL10 byte transfer. Its use is similar to that of T011DT. T011AD +--------------------------------------------------------------+ 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. T010AD +--------------------------------------------------------------+ 115114 113112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ Byte address in PDP-II memory from which next byte to be transferred is to be taken T010AD 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. 8-19 DTE HARDWARE OPERATION T011BC +---------------------------~----------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ L Oll" o= ~-----l bits 11-00 Negative Byte Count ~ Set byte mode in DTE-20 Set word mode in DTE-20 Stop transfer on null character from EBOX after storing in PDP-II memory; do not increment TOIIAD = I o Interrupt both processors on normal termination (ignored on error termination) Interrupt PDP-II only on normal termination (ignored on error termination) 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. T011BC T010BC +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ I b ball" ~ o bits 11-00 Negative Byte Count ~ Interrupt both processors at completion of current TO-10 transfer Interrupt KL only at completion of current TO-10 transfer When the KL loads this register the DTE-20 initiates the TO-10 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 "scatter write"). T010BC DLYCNT +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 1001 +--------------------------------------------------------------+ Negative Delay Count - number of 500 nanosecond/ \ units of delay between each byte of byte transfer in either direction \{ High order UNIBUS address bits (TO-II and TO-10 transfers must be in same 32K memory bank) 8-20 DTE HARDWARE OPERATION DLYCNT 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 come 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 bits 0-3 / \ DEXWDl-3 During a deposit or examine operation, the data being deposited or examined appear in these three registers. However, DEXWDI must always contain zeros in the high-order bits. TENADl-2 o Address space 1 4 1 o EPT Executive virtual Physical Deposit Examine I./ = ~ = Protection Protection and relocation off and relocation on ~---A--l-l--~\ / zeros High order KL address (13-19) \ +--------------------------------------------------------------+ 115 114 113 112 III 110 109 108 107 106 105 104 103 102 101 100lTENADl +--------------------------------------------------------------+ I Low order KL address (20-35) ITENAD2 +--------------------------------------------------------------+ TENADl-2 The PDP-II uses these two registers in examine and deposit operations to specify the KL address. When the PDP-II writes TENAD2 the deposit/examine operation is initiated; thus, all necessary data must be written to DEXWDl-3 before TENAD2 is written. 8-21 DTE HARDWARE OPERATION 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. The following sections 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 processor: 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 TENADI 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 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 string. The KL controls the address either to or from the KL via byte pointers in the Executive Process Table (EPT). The PDP-II controls the address to or from the PDP-II via 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 (via the delay count) and the type of transfer. Bit 13 in the TO-II 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 l6-bit bytes. 8-22 DTE HARDWARE OPERATION 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 DLYCNT TOllBC TOllAD Delay Count 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 scatter writes. 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. The KL can be interrupted also if this is desired. The TO-II Delay Count word is used to force the DTE to pause before starting each transfer, thus eliminating bursts of interrupts. The register is loaded with some negative number that is subsequently incremented by the DTE clock. The transfer cannot start until Bit 13 equals zero. During transfers, TOllDT is used as a temporary buffer for the data until it is sent to PDP-II memory via the NPR facility. The TO-IO transfer process is very similar to the TO-II process. PDP-II loads the following registers: Register Data loaded DLYCNT TOIOAD TO-IO Delay Count 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 TOllDT; that is, TOllDT is a temporary buffer used in conjunction with the delay count. The KL is interrupted when the transfer is finished. 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 ~his 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 programmed an interrupt of the KL. 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-23 DTE HARDWARE OPERATION 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 insulated portion of the EBUS known as the diagnostic bus. This bus contains Diagnostic Select lines to tell the KL what 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 (DIKLIO) 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 sub-protocols are included in this protocol: Secondary Protocol and Primary Protocol. 8.4.1 Secondary Protocol Secondary Protocol uses only the Deposit/Examine feature of the DTE-20. This protocol 1S 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 Protocol because it requires privileged Deposits and Examines. Secondary Protocol is not a real protocol because the two processors do not cooperate. The PDP-II decides what it wants to do and does all the work. 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 in a queue and wait their turn. 8-24 DTE HARDWARE OPERATION 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 between 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 device 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 1 Unused 2 Unused 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 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. 8-25 all DTE HARDWARE OPERATION Code Function 15 Unused 16 Device Hang-up This function causes the PDP-II to hang dataset line. up the 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. and disable input 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. 8-26 DTE HARDWARE OPERATION Code Function 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. 34 that 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 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 via 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 it is connected to. 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. 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 DIRECT AND INDIRECT TRANSFERS Two separate packet-transfer operations are used by the KL and the PDP-II to exchange messages across the DTE-20. One is called direct transfer and the other is called indirect transfer. The difference between the two is largely a matter of the size of the packet of information to be transmitted. Direct transfers are used to send relatively small, fixed-length packets where the data is included in the packet. Indirect transfers are used to send longer, variable-length packets where the data is separate from the packet. Both operations use Deposit/Examines and byte transfers. 8-27 DTE HARDWARE OPERATION 8.6.1 Direct Packets Direct packets are identified by a 0 in bit 15 of the second word. The packet shown in Figure 8-5 is the largest size direct packet that can be sent across the DTE. Direct packets can be as short as 5 words and as long as 10 words. The first four words of the packet are called the header for the packet. +-------------------------------------+ Count of bytes in packet -------------------------------------1 01 Function code 1 -------------------------------------1 Device code 1 1 -------------------------------------1 Spare (null) 1 2 4 6 Data 10 Data 12 Data 14 Data 16 Data 20 Data 22 +-------------------------------------+ Figure 8-5 8.6.2 0 Direct Packet Indirect Packets Indirect packets can handle more information than direct packets and can be written in noncontiguous areas of memory. The data that is sent is not a part of, nor necessarily contiguous to, the packet header itself. The indirect packet, shown in Figure 8-6, is identified by a one in bit 15 of the Function word. The size is 12 bytes and the last two words provide the size and location of the data to be transmitted across the DTE. This header information is transmitted as a direct packet. 8-28 DTE HARDWARE OPERATION +-------------------------------------+ I Count of bytes in packet I I (12 bytes) I 0 1-------------------------------------1 III Function code I 1-------------------------------------1 I Device code I 1-------------------------------------1 I spare (null) I 1-------------------------------------1 I Count of bytes in data I 10 +-------------------------------------+ I Pointer to data * I 12 2 4 6 +----------------------------1--------+ I +-------------+I I +-------------------------------------+<---+ I I I I I I I I I Data I I I I I I I I I I I +-------------------------------------+ Figure 8-6 8.7 Indirect Packet and Data DATA STRUCTURE OF PACKETS The information that is sent from the PDP-II to the KL via the DTE is stored in dynamically allocated buffers. The buffers are located in the Free Pool area of PDP-II memory. Each packet to be sent is stored in a buffer area called a node. Each node has two words of overhead referred to as the node header. The first word in each node contains a pointer to the next node in the list; the other word contains the size of the buffer. The remainder of the information is the actual packet that will be sent. The TO-IO queue is a singly-linked linear list that is maintained by the use of pointers. The location TOlOQ points to the first node in the queue. The TO-IO queue operates in a first in, first out manner. Location TOlOQ+2 contains a pointer to the last node in the collection of nodes. This pointer is used by the RSX-20F system when it adds nodes to the list. The TO-II queue handles the data received from the KL. This queue uses space from the Free Pool area of PDP-II memory to form buffers for nodes, much as the TO-IO queue. The TO-II queue uses the nodes in the same way as the TO-IO queue, except that a count of nodes replaces the pointer to the last node. 8-29 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. 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 requests the TKTN task to run. TKTN shuts down the protocol and schedules the KLERR task. ·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 TASK When the front end notices that the KLhas not responded by the Keep-Alive Count mechanism, KLERR checks the status of the Retry flag (see 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 other hand, the Retry flag is set, the front end will give 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 will determine 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.) 9-1 ERROR DETECTION AND LOGGING 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 the KL by performing function reads over the diagnostic portion of the EBUS. KLERR stores the information it retrieves in the KLERRO.SNP file in the front-end file system. When KLERR has completed its function, TKTN schedules the KLINIT task to restart the KL. The decision to run KLERR is usually automatic and not controlled by the operator. However, the operator can force KLERR to run by using the PARSER command: PAR)MCR KLE 9.3 ERROR LOGGING There are two types of errors for which KLERR logs some information on the CTY. One type is printed for KL errors and describes the state of the KL, as well as it could be determined by the front end. The other type is printed for PDP-II errors. Each type is described in the sections below. 9.3.1 KL Error Logging KLERR provides the operator with some very useful information about the state of the KL upon execution. Included in the KLERR printout are: • Contents of the DTE-20 registers • EBDS parity information • Fast memory parity information • Some textual information on the state DTE-20 of the KL and the The following examples show the compact format of the KLERR output. The first example shows the KLERR output from a Keep-Alive-Cease error. The second example shows what KLERR can tell you about Fast Memory in the event of an FM parity error. Refer to Section 8.2 for descriptions of the functions of the various DTE-20 registers. 9-2 ERROR DETECTION AND LOGGING Example 9-1 KEEP ALIVE CEASED KLERR -- VERSION V03-00 RUNNING DLYCNT: 0000·00 DEXWD3: 000447 DEXWD2: 000000 DEXWD1: 000000 KL10 DATA=000000,,000447 TENAD1: 000000 TENAD2: 000007 ADDRESS SPACE=EPT OPERATION=EXAMINE PROTECTION-RELOCATION IS ON KL10 ADDRESS=7 T010BC: 010000 T011BC: 130000 T010AD: 066652 T011AD: 066075 T010DT: 000000 T011DT: 000012 DIAG1 : 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 KLERR KLERR KLERR KLERR KLERR KL NOT IN HALT LOOP KL ERROR OTHER THAN CLOCK ERROR STOP KL VMA: 000000 420237 PC: 000000 420237 PI STATE: ON ,PION: 177 , PI HLD: 100 , PI GEN: 000 EXIT FROM KLERR 9-3 ERROR DETECTION AND LOGGING Example 9-2 KLERR -- VERSION V03-00 RUNNING DLYCNT: 000000 DEXWD3: 060626 DEXWD2: 000000 DEXWD1: 000001 KL10 DATA=040000,,060626 TENAD1: 000000 TENAD2: 000007 ADDRESS SPACE=EPT OPERATION=EXAMINE PROTECTION-RELOCATION IS ON KL10 ADDRESS=7 T010BC: 010000 T011BC: 130000 T010AD: 066452 T011AD: 066512 T010DT: 000000 T011DT: 050000 DIAG1 : 006400 KL CLOCK ERROR STOP KL IN RUN MODE MAJOR STATE IS DEPOSIT-EXAMINE DIAG2 : 050000 STATUS: 002100 DEX WORD 1 E BUFFER SELECT DIAG3 : 00000 KLERR KL NOT IN HALT LOOP KLERR CLOCK ERROR STOP KLERR KL VMA: 000000 000441 PC: 000000 000253 KLERR PI STATE: ON , PION: 177 , PI HLD: 000 , PI GEN: 000 KLERR FM PARITY ERROR-(BLOCK:ADDR/DATA) 1:5/ 252525,,252525 FM SWEEP -- 1:12/ 252525,,252525 FM SWEEP -- 1:11/ 252525,,252525 FM SWEEP -- 1:5/ 252525,,252525 KLERR -- EXIT FROM KLERR 9-4 ERROR DETECTION AND LOGGING 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 is picked up by the crash routine. For a disk-based PDP-II operating system, the lOT instruction is used for error reporting. The instruction 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 infoimation 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 /DTB/ would result in the following: +---------------------+ TOO 1---------------------1 1 Par.Error1 B 1 2 +---------------------+ When looking at the source listings of RSX-20F, you will notice that a macro is used instead of the lOT instruction. The macro is .CRASH and expands to the rOT plus Ascrz crash code as stated above. 9-5 ERROR DETECTION AND LOGGING 9.3.3 KLERRO.SNP FILE KLERRO.SNP is the output file from the KLERR task. The file is written in the front-end file area on the dual-ported RP04/06. When KLERRO.SNP is in this area, it is in Files-II format and TOPS-IO/TOPS-20 cannot access the data. The KLXFER task is required to transfer the data into the TOPS-IO/TOPS-20 file area. The bulk of the information in KLERRO.SNP comes from storing the contents of the diagnostic DTE-20 registers after execution of function reads. Every possible function read is performed (100 to 177) octal). In addition, version number, checksum, and the time of day are stored. Refer to Figure 9-1 for the format of the KLERRO.SNP file. +-------------------------------------------------------+ KLERR file type (version #) #0 Record length in words #2 Time of day #4 Reserved for future use (currently zero) 24 Reserved for future use (currently zero) 26 Reserved for future use (currently zero) 30 Reserved for future use (currently zero) 32 Reserved for future use (currently zero) '42 Error Code 46 DTE Diagnostic Word 1 50 1------------------------------------------------------DTE Diagnostic Word 2 52 DTE Status Word 54 DTE Diagnostic Word 3 56 ______________________________________________________ - I 60 This block contains the information obtained by executing every possible diagnostic function read. The function reads vary from 100 to 177 (octal). After each function read, the three diagnostic registers are stored here. KLERR RAD50 Error (if any) 660 662 Reserved for future expansion Checksum for above words +-------------------------------------------------------+ Figure 9-1 KLERRO.SNP File Contents 9-6 676 ERROR DETECTION AND LOGGING 9.3.4 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. KL Clock Error Stop A check of diagnostic register 1 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 should 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. 9-7 ERROR DETECTION AND LOGGING 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. 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. KLERRO.SNP File Creation Failed Creation of the error file failed. 9-8 ERROR DETECTION AND LOGGING Unable to Enter KLERRO.SNP into Directory An error occurred when directory file. the file name was inserted into the Unable to Extend KLERRO.SNP file KLERR was denied access when it tried to append to KLERRO.SNP. UNABLE TO WRITE KLERRO.SNP file An error occurred when KLERR was writing the KLERRO.SNP file. 9.4 KLXFER KLXFER 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 KLERRO.SNP file. KLXFER 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 TOPS-IO/TOPS-20. The last thing that SETSPD does is to make a request for KLXFER to run. KLXFER transfers the error file, if it exists, to TOPS-IO/TOPS-20 via the DTE-20. TOPS-IO or TOPS-20 then appends the information to ERROR.SYS, the master error file. Finally, KLERRO.SNP is deleted from the front-end file area. 9-9 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). A good deal of 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.) The first section of the chapter 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 d~ta 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 explicit 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. Lower case letters denote information typed by the user. Example: @feddt [FEDDT] 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 $$y SYMBOL FILE: exec.map READ 291 SYMBOLS "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 value. adds 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 value. 10-2 and multiplies adds it to it the by the current ERROR DEBUGGING Command Effect Ends the current current value. expression, and subtracts it from the Makes the current location the current value, opens it, prints the contents. and Contains the value of the current location. / 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, and types its value as a number in the current radix. \ 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 Command Effect $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 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. $P 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 user or by ERROR DEBUGGING Command Effect $X Compares selected portions of memory with the file selected with the $$X command (see below for 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 already the $$X 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 ERROR DEBUGGING The following points should be kept in mind while dumps from RSX-20F. 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 every crash is different from every other, 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/l090'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 what 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 what instruction the PC pointed to. (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 DTD, 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. These 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 look 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 at the top of the stack at all times. Note that R7 will almost always contain 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 will cause crashes of the B02/B03/BFl type. RSX-20F uses three areas for storage: 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 TTY 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 (TOlOQ) 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 TOlOQ and use the <TAB) command until the contents of the location you open is TOlOQ. To examine the entire TO-II queue, you open the location TOllQ 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>ODUMPll.BIN CORE SIZE IS 28K $T 0/ 2/ 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-Il 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 72236/ 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 rema1n1ng bytes in six sections, each section being forty bytes long (or 20 words). 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 ERROR DEBUGGING All the terminals and line printers hav~ 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/ 66576/ 66600/ 66606/ 66614/ 66622/ 66630/ 66636/ 66644/ 66652/ 66660/ 66666/ 67002/ 67010/ 67016/ 67024/ 67032/ 67040/ 67046/ 67054/ 67062/ 67070/ 67076/ 67102/ 67110/ 67116/ 67124/ 67132/ 67140/ 67146/ 67154/ 67162/ 66574 o CH.FOR =100 66606 $$6T THIS I S A DA TA COL LECTIO N TEST PLE ASE BE PATIE NT.<0><17><0> 3<0><377>3TH IS IS A DATA COLLE CTION TEST. PLEAS E BE P ATIENT .<0>D<15>\N @<0>FN3<0> 3<0><377>3TH IS IS A DATA COLLE CTION TEST. PLEAS E BE P ATIENT ./ <206>M3<0><377>3 66774/ <0><0>@<0><6>N 67074/ \[email protected]<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 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 10- (EF.CRI)Comm Region is invalid bit 11- (EF.PFR)powerfail restart in progress bit 12- (EF.RKP)KLINIK parameters received bit 13- (EF.PR2)secondary protocol running bit 14- (EF.PRl)primary protocol running bit 15- (EF.CTC)Control-C bit 001014 2 .BERFG Significant event flag bit 0- (EV.BE)sig event to be recognized bit 1- (EV.AS)power fail is required bit 7- (EV.PF)power down has occurred 001016 2 .BEWFL Significant event wait flag bit 0- (EV.BE)sig event to be recognized bit 1- (EV.AS)power fail is required bit 7- (EV.PF)power down has occurred 001020 2 SPSAV Save area for stack pointer during crash 001022 4 PARSAV Save area for parity registers when parity error occurs 001026 2 .PFAIL Indicates power fail in progress if nonzero 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) 001116 2 EMTSTK SP saved during EMT execution 10-11 ERROR DEBUGGING Address Size Name Use 001120 2 TRPSAV Saved PS during EMT/trap execution 001122 1 .NOERR Don't recognize KL errors if nonzero 001123 1 .NOHLT Don't recognize KL halts if nonzero 001124 2 .TKTN TKTN required if nonzero, checked by null task 001126 2 .KLITK KLI requested, read by TKTN bit 0- (KS.TSP)ten halted bit 1- (KS.CES)c1ock error stop bit 2- (KS.EPE)E box parity error bit 3- (KS.DEX)deposit/examine error bit 4- (KS.CST)Keep-a1ive stopped bit 5- (KS.TRR)ten request's re-boot bit 6- (KS.PFT)power fail restart bit 7- (KS.PTO)protoco1 timeout 001130 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.BPF)start at loc 70 (power fail) bit 6- (KL.LCA)load cache bit 7- (KL.BSC)start at loc 407 (system crash) bit 8- (KL.CFL)if 0, configure from file bit 9- (KL.KAC)Keep-a1ive ceased error bit 10- (KL.DEF)operator reboot from switches 001132 2 .TICKS Unrecognized clock tick counter 001134 2 .CLKSW Clock overflow switch 001136 2 .DATE Front-end date valid flag 001140 2 .YEAR Decimal year 001142 1 .DAY Day of month 001143 1 .MON Month of year 001144 1 .DST Day1ight-savings-time flag 001145 1 .DOW Day-of-week index 001146 4 .BSM Elapsed time in seconds since midnight 001152 2 .TKPS Clock rate in jiffies (1979) 10-12 ERROR DEBUGGING Address Size Name Use 001154 2 .BYUIC System UIC ([5,5]) 001156 2 .BTPRM Boot parameter from switch register bit 0- (BP.BWR)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-ll, l=DL, O=default bit 7- (BP.RP4)load from RP04/RP06 bit 8-10- (BP.UNT)boot unit or DH-ll unit bit 11-14- (BP.CLN)CTY line no. (within DH/DL) bit 15- (BP.ERR)indefinite error load retry 001160 2 .BTSCH Character saved for secondary protocol 001162 2 .ACKAL Send acknowledge-all protocol message 001164 2 .KLERW KLI word for error reporting by SETSPD 001166 2 .FEMOD Front-end console mode flag for PARSER 1= (LG.OPR)operator 3= (LG.PRM)programmer 7= (LG.ALL)maintenance 001170 2 .KLRLD KL automatic reload flag 001172 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.BPM)single pulse EBOX mode bit 11- (KF.BMC)single pulse MBOX mode bit 12- (KF.BIM)single instruction mode bit 13- (KF.MRS)master reset flop set bit 14- (KF.RUN)run flop on bit 15- (KF.CLK)clock running 10-13 ERROR DEBUGGING KLINIK DATA BASE Address Size Name Use 001174 2 .KLNPB KLINIK parameter block length (26) 001176 2 .KLNBC Byte count for transfer (24) 001200 2 .KLNFT KLINIK enable start time 001202 4 .KLNFD KLINIK enable start date 001206 2 .KLNTT KLINIK enable end time 001210 4 .KLNTD KLINIK enable end date 001214 2 .KLNMD KLINIK console mode byte 0- console mode 1= (LG.OPR)operator 3= (LG.PRM)programmer 7= (LG.ALL)maintenance byte 1- status O=disabled l=remote -l=user 001216 6 .KLNPW ASCII password for KLINIK 001224 2 .KLNSW KLINIK line status byte 0- line use O=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 ERROR DEBUGGING QUEUED PROTOCOL DATA BASE Address Size Name Use 001226 2 COMBSE Base of communication area 001230 2 PRMEMN My processor number 001232 2 DEPOF Deposit offset from examine 001234 12 PROTBL Processor identification table word 1- {DTENM)DTE-20 address to access this processor word 2- {EMYN)addr to read from proc 0 word 3- {DMYN)addr to write to proc 0 word 4- {EHSG)addr from general word 5- {EHSM)addr from specific 001246 2 .CRQZ Size of current TO-10 buffer 001250 2 .CPFN Function in current TO-10 buffer 001252 2 .CPDV Device in current TO-10 buffer 001254 2 .CRSZ Size left in current TO-10 buffer 001256 2 .CRPB Pointer to open word in current TO-10 buffer 001260 2 .CRHD Head of current TO-10 queue 001262 2 .CRSB Pointer to current function/size in TO-10 buffer 001264 2 DTEMSK DTE-20 device event flag mask 001266 2 DTEADR DTE-20 device indirect flag address 001270 2 T011NP Pointer to current received node 001272 2 T011HD Count of bytes in this queue 001274 2 T011FN Current received TO-II function code 001276 2 T011DV Current received TO-II device number 001300 2 T011SP Space 001302 2 T011FW First word of function 001304 2 T011GW Guard word for DTE-20 (-I) 001306 2 T011QP TO-II queue entry count 10-15 ERROR DEBUGGING Address Size Name Use 001310 2 T011AS Address save 001312 2 T011BS Byte count of TO-II transfer saved 001314 2 T010SZ Byte count of transfer 001316 2 T010AS TO-10 transfer address saved 001320 6 STSTT TO-10 status 001326 4 T010Q Listhead for TO-10 queue 001332 2 EQSZ TO-II queue size 001334 2 T011Q Head of TO-II queue 001336 6 STATI Status/scratch word for deposit/examine 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 DEXTM1 Deposit/examine word 1 for retry 001354 2 .PRADR Address of privileged offset table entry 001356 2 .PRSTA Address of privileged DTE-20 status (174434) 001360 2 .PRDTE Address of privileged DTE-20 (174400) 001362 2 .PRDCT Doorbell counter for KLINIT 001364 1 .EPFFL EBUS parity error snapshot interlock l=snapshot exists O=no snapshot exists 001365 1 .EPEFL EBUS parity error processing flag O=retry succeeded l=no EBUS parity error -l=retry failed 001366 2 .EBPEQ Pointer to EBUS error snapshot queue 001370 2 .PRPSE Protocol pause flag -l=pause state O=no pause 10-16 ERROR DEBUGGING KEEP-ALIVE DATA BASE Address Size Name Use 001372 6 KPALO Current KL Keep-alive value 001400 2 OKPALO KL saved Keep-alive value 001402 6 KPALI Current RSX20F 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 ERROR DEBUGGING CORE MANAGER DATA BASE Address Size Name Use 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 10-18 ERROR DEBUGGING CLOCK REQUEST LIST Address Size Name Use 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.BD)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 ERROR DEBUGGING TERMINAL SERVICE DATA BASE Address Size Name Use 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 .BRKCH Break character (control \) 002632 2 .TTPll TTY PDP-II input in progress flag 002634 2 .CTYPT CTY line pointer 002636 2 .KLNPT KLINIK line pointer 002640 2 $UNIT DH-ll unit number if CTY 002642 2 $BTMSK Mask to start CTY if DH-ll 002644 2 DMTMP Saved DMll/BB controller number 002646 2 DHTMP Saved DH-ll controller number 002650 2 DLTMP Saved DLll controller number 002652 2 DHSTSV Saved DH-ll table pointer from PS 002654 2 .TTELQ Terminal error logging queue pointer 002656 2 .TTELB Temp buffer pointer for error logging 002660 2 TMOCNT Timeout counter byte 0- terminal byte 1- modem 10-20 ERROR DEBUGGING Address Size Name Use 002662 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 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) 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)multiecho byte count byte 1- (FLBYT)fill byte word 6- (MEBUF)mu1tiecho buffer address word 7- (MBUFR)dynamic multiecho buffer word 8- (HORPS)horizontal position of carriage word 9- (DHBUF)DH-l1 character buffer if CTY is a DH-ll 002722 2 CNT I/O packet size 002724 2 BYCNT I/O packet size 002726 2 CRADR Current I/O address 002730 2 TTPKT I/O packet address 10-21 ERROR DEBUGGING TERMINAL DRIVER DATA BASE Address Size Name Use 002732 44 DMTBL DMll/BB table 2 word entries (9 entries) word 1- DMll/BB base address word 2- pointer to DH-ll table entry 002776 10 DLTBL DLll/C table 4 word entry for each DLll/C line (1 entry) word 1- (THRED)output thread word pointer word 2- (TTYEXP)device base address word 3- (STSWO)status word 0 DLll- input flag DH-ll 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.BIP)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.BNI)increment send-all index bit 14-15- (TT.BND)index of next send-all 003006 40 DLETBL DLll/E table 4-word entry for each DLll/E line (4 entries) see DLTBL (above) for structure 003046 2000 DHTBL 005046 4 TTYEND DH-ll table 4-word entry for each DH-ll line (128 entries) see DLTBL (above) for structure End of table guard words (2 zeros) 10-22 ERROR DEBUGGING FLOPPY DRIVER DATA BASE (TOPS-20 ONLY) Address Size Name Use 005052 2 DXRTC Error retry count (8) 005054 2 DXCNT Byte count of transfer 005056 2 DXBUF Address of buffer 005060 14 DXVCB word word word word word word 123456- logical or physical sector number bytes to transfer on current sector current function code physical sector number(1-26.) physical track number(0-77.) status register after interrupt 005074 2 DXUNIT Current unit number 005076 2 DXPKT I/O packet address 10-23 ERROR DEBUGGING DECTAPE DRIVER DATA BASE (TOPS-10 ONLY) Address Size Name Use 005052 2 DTRTC Error retry count and reset flag 005054 2 DTRNA Request node address 005056 4 DTBUF DEC tape buffer 005062 2 DTCNT Buffer size 005064 2 DTCW2 005066 2 DTCW3 005070 10 Pad to floppy driver size 10-24 ERROR DEBUGGING DISK DRIVER DATA BASE Address Size Name Use 005100 2 RPRTC Error retry count (8) 005102 2 RPRNA Address of request node 005104 4 RPBUF Address of buffer word 1- high order of address word 2- low order of address 005110 2 RPCNT Transfer size 005112 2 RPUNIT Current unit number 005114 2 RPCW2 10-25 ERROR DEBUGGING FE DRIVER DATA BASE Address Size 005116 10 Name FETBL Use Table of FE device states 1 word per FE device (4) bit 10- (FE.DET)more data sent bit 11- (FE.DTE)more data bit 13- (FE.BER)servicing request bit 14- (FE.BTR)servicing request 11 to 10 to be 10 to 11 expected 11 transfer 10 transfer 005126 2 NODADR Current request node address 005130 2 ADRSAV Address saved 005132 2 BYTESA Byte count of transfer 005134 4 STSWD I/O status words 005140 22 TOI0PK 11 request to 10 packet address 005162 2 DNBLK Response to 10 request 005164 6 DNFCN Function 005172 6 DNSTS Status 005200 40 BLKTT Data buffer 005240 2 • RPUNT RP unit number 005242 2 .FEACT FE device available for DB access 005244 4 • RPADR 005250 4 .RPSIZ 10-26 ERROR DEBUGGING CD-II DRIVER DATA BASE Address Size Name Use 005254 2 CREVFG Address of CR task's event flags 005256 2 CRCEVF Current event flags 005260 2 CRHUNG Count of times CR found hung 005262 2 .CRPFL Power fail flag for card reader 005264 2 CRSTBH Header word of status block 005266 16 CRSTBK Status return block to 10 word 1- 1st status word bit 0- {DV.NXD)nonexistent device bit 1- {DV.OFL)device off-line bit 2- {DV.OIR)hardware error, apr required bit 3- {DV.BCN)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)unrecoverable error bit 8- {DV.Fll)error on From-II 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.BCK)stack check bit 3- {DD.HEM)hopper empty bit 4- {DD.BFL)stacker full word 3- control and status register word 4- column count register word 5- bus address register word 6- data buffer register 005304 2 CRBUFH Header word of data buffer 005306 240 CRBUFF Data buffer from CDll 005546 2 005550 2 CRTHD Threaded list pointer 005552 2 CREXP Device external page address 005554 2 CRSTS Status bits bit 8- {CR.NSF)not stacker full bit 9- {CR.NXD)nonexistent 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.BST)device status changed bit 15- {CR.HNG)CR hung 005556 2 Data buffer overrun area Unused 10-27 ERROR DEBUGGING LP-20 DRIVER DATA BASE Address Size Name Use 005560 2 LPUNIT LP unit number from PS on interrupt 005562 2 LPEVFG Address of where to set event flags for LP task 005564 2 LPCEVF Current event flags 005566 2 LPHUNG Count of times LP was hung 005570 2 .LPPFL Power fail flag 005572 2 LPSTBH Header word of status block 005574 30 LPSTBK Status return block to 10 word 1- 1st status word bit 0- (DV.NXD)nonexistent device bit 1- (DV.OFL)device off-line bit 2- (DV.OIR)hardware error, operator required bit 3- (DV.BCN)software error, acknowledge signal 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)unrecoverable error bit 8- (DV.Fll)error on From-II 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. of bytes of device dependent info (2.) byte 1- no. of bytes of 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 10-28 ERROR DEBUGGING Address Size Name Use 005624 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-fi1e encountered bit 8- (LP.F10)From-10 request queued bit 9- (LP.LIP)load VFU in progress bit 10- (LP.CLR)c1ear RAM required bit 11- (LP.WAT)LP waiting for response bit 12- (LP.MCH)mu1ticharacter printing bit 13- (LP.PZI)page zero interrupt enabled bit 14- (LP.BST)send status to KL 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 005644 20 LPTBL2 LP second device table 4 word entry for unit 0 word 1- (LPMCB)mu1ticharacter buffer word 2- (LPCSM)accumu1ated checksum word 3- (LPRTY)retry counter word 44 word entry for unit 1 005664 20 LPTBL3 LP third 4 word word word word data word 4 word 005704 4 LPUTBL device table entry for unit 0 1- (LPRMA)VFU data address 2- (LPRMZ)VFU data buffer size 3- (LPRMC)current pointer into VFU 4entry for unit 1 unit table pointer word 1- unit 0 pointer in LPTBL word 2- unit 1 pointer in LPTBL 10-29 ERROR DEBUGGING SYSTEM TASK DIRECTORY Address Size Name Use 005710 2 .STDTA Pointer to STD list 005712 2 .STDTC Maximum STD list size (18 entries) 005714 2 .STDTZ Current size of STD list 005716 44 .STDTB STD table 18 pointers to task's STD entries word 1- card reader driver word 2- DTE-20 driver word 3- FE driver word 4- floppy (TOPS-20), DEC tape (TOPS-I0) word 5- FIIACP task word 6- line printer driver word 7- queued protocol task word 8- disk driver word 9- terminal driver word 10- install task 005762 40 STDDTE DTE-20 driver STD entry 16 word task STD entry word 1- (S.TN)task name (1st 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.BT)system task word 5byte 0- (S.DP)default priority 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.BP)initial SP word 11- (S.RF)send/request queue forward pointer word 12- (S.RB)send/request queue backward pointer word 13- (S.BS)SST vector table address word 14- (S.DL)load image low disk address word 15- load image high disk address word 16- zero 10-30 ERROR DEBUGGING Address Size 006022 40 Name STDFED Use FE driver STD entry see STDDTE (above) for structure 006062 006062 40 40 STDDX STDDTP Floppy driver STD entry (TOPS-20) DEC tape driver STD entry (TOPS-10) see STDDTE (above) for structure 006122 40 STDFll FllACP STD entry see STDDTE (above) for structure 006162 40 STDRPT RP device STD entry see STDDTE (above) for structure 006222 40 STDINS Install STD entry see STDDTE (above) for structure 006262 40 STDLPT LP driver STD entry see STDDTE (above) for structure 006322 40 STDCDR CR driver STD entry see STDDTE (above) for structure 006362 40 STDTTY TTY driver STD entry see STDDTE (above) for structure 006422 40 STDQPR Queued protocol STD entry see STDDTE (above) for structure 10-31 ERROR DEBUGGING ACTIVE TASK LIST Address Size Name Use 006462 4 .ATLLH ATL header word 1- forward pointer (DTE-20) word 2- backward pointer (null task) 006466 40 DTETSK DTE-20 task ATL entry 16 word ATL entry word 1- forward linkage word 2- backward linkage word 3- (A.BP}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.BUS}task suspended 14= (TS.WFO}waiting for flag 1-16 16= (TS.WF1}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-32 ERROR DEBUGGING Address Size 006526 006566 006626 006666 40 40 40 40 Name TTYTSK RPTSK LPTSK CDTSK Use TTY task ATL entry see DTETSK (above) for structure RP task ATL entry see DTETSK (above) for structure LP task ATL entry see DTETSK (above) for structure CD task ATL entry see DTETSK (above) for structure 006726 006726 40 40 FETSK DTTSK FE task ATL entry (TOPS-20) DECtape task ATL entry (TOPS-IO) see DTETSK (above) for structure 006766 006766 40 40 DXTSK FETSK Floppy task ATL entry (TOPS-20) FE task ATL entry (TOPS-IO) see DTETSK (above) for structure 007026 40 QPRTSK Queued protocol task ATL entry see DTETSK (above) for structure 007066 40 NULTSK Null task ATL entry see DTETSK (above) 10-33 for structure ERROR DEBUGGING TASK PARTITION DIRECTORY Address Size Name Use 007126 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 007146 20 DTETPD DTE-20 TPD entry see INSTPD (above) for structure 007166 20 FETPD FE TPD entry see INSTPD (above) for structure 007206 20 TTYTPD TTY TPD entry see INSTPD (above) for structure 007226 20 LPTPD LP TPD entry see INSTPD (above) for structure 007246 20 CDRTPD CR TPD entry see INSTPD (above) for structure 007266 20 QPRTPD Queued protocol TPD entry see INSTPD (above) for structure 007306 007306 20 20 DXTPD DTTPD Floppy TPD entry (TOPS-20) DECtape TPD entry (TOPS-IO) see INSTPD (above) for structure 007326 20 RPDTE RP TPD entry see INSTPD (above) for structure 007346 20 FIITPD FIIACP TPD entry see INSTPD (above) for structure 007366 20 GENTPD GEN partition TPD entry see INSTPD (above) for structure 10-34 ERROR DEBUGGING DEVICE QUEUE POINTERS Address Size Name Use 007406 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 007446 20 .DQDHO DH-ll queue Entry for DH-ll lines 007466 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-35 ERROR DEBUGGING LOGICAL UNIT TABLES Address Size 007606 50 Name TTPEN Use 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 off-line 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.BDI)single directory device bit 5- (UC.BQD)sequential device bit 6- (UC.ETB)18-bit mode bit 8- (UC.NB)intermediate buffered bit 9- (UC.BWL)software write-locked bit 10- (UC.ISP)input spooled bit 11- (UC.OSP)output spooled bit 12- (UC.PSE)pseudodevice bit 13- (UC.COM)communications channel bit 14- (UC.Fll)Files-ll 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 off-line 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)volume 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.BL)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-36 ERROR DEBUGGING Address Size Name Use 007656 50 RPPEN 1st disk PUD entry see TTPEN (above) for structure 007726 50 .RP1PE 2nd disk PUD entry see TTPEN (above) for structure 007776 50 .RP2PE 3rd disk PUD entry see TTPEN (above) for structure 010046 50 .RP3PE 4th disk PUD entry see TTPEN (above) for structure 010116 50 .RP4PE 5th disk PUD entry see TTPEN (above) for structure 010166 50 .RP5PE 6th disk PUD entry see TTPEN (above) for structure 010236 50 .RP6PE 7th disk PUD entry see TTPEN (above) for structure 010306 50 .RP7PE 8th disk PUD entry see TTPEN (above) for structure 010356 010356 50 50 DXOPEN DTOPEN 1st floppy PUD entry (TOPS-20) 1st DEC tape PUD entry (TOPS-10) see TTPEN (above) for structure 010426 010426 50 50 DX1PEN DT1PEN 2nd floppy PUD entry (TOPS-20) 2nd DECtape PUD entry (TOPS-10) see TTPEN (above) for structure 010476 50 LPOPUD Line printer PUD entry see TTPEN (above) for structure 010546 50 FEOPUD FE PUD entry see TTPEN (above) for structure 010616 50 SYOPUD System PUD entry see TTPEN (above) for structure 10-37 ERROR DEBUGGING HARDWARE OPTIONS Address Size Name Use 010666 2 .CPUSN KL CPU serial number O=not read <l=cannot be read >l=valid serial number 010670 2 .HRDWR Hardware bit 0bit 1bit 2bit 3bit 4bit 50=60 1=50 options undefined MOS master oscillator extended addressing internal channels cache line frequency hertz hertz 10-38 ERROR DEBUGGING EMERGENCY STACK Address Size Name Use 010672 106 INITLM Once only initialization code 011000 0 EMGSTK Emergency stack base address 10-39 ERROR DEBUGGING The I/O page contains control and status registers for all the devices that are attached to the PDP-II. If RSX-20F realizes that it is about to crash, it copies the I/O page into the GEN partition. This overwrites whatever was in the partition at the time, but it allows the reader of a crash dump to have easy access to the information contained in the I/O page. To find the address of a particular register in a crash dump file, you subtract 60000 (octal) from the address of the register in the I/O page. (Consult the PDP-II Processor Handbook or the PDP-II Peripherals Handbook for more information on the contents of these registers.) The following is a list of the registers that are in the I/O page. I/O PAGE DUMP Block Address UNIBUS Address Size Device Name 100020 760020 20 DH-ll DH-ll terminal controller #1 100040 760040 20 DH-ll DH-ll terminal controller #2 100060 760060 20 DH-ll DH-ll terminal controller #3 100100 760100 20 DH-ll DH-ll terminal controller #4 100120 760120 20 DH-ll DH-ll terminal controller #5 100140 760140 20 DH-ll DH-ll terminal controller #6 100160 760160 20 DH-ll DH-ll terminal controller #7 100200 760200 20 DH-ll DH-ll 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 113000 773000 1000 BM873-YH Bootstrap ROM 114400 774400 40 DTE-20 KL interface device 115400 775400 20 LP20 Line printer #1 interface 115420 775420 20 LP20 Line printer #2 interface Use 10-40 ERROR DEBUGGING Device Name BLOCK Address UNIBUS Address Size 115610 775610 10 DLII-E DL terminal interface #1 115630 775630 10 DLII-E DL terminal interface #2 115640 775640 10 DLII-E DL terminal interface #3 115650 775650 10 DLII-E DL terminal interface #4 116700 776700 50 RHll RP04/06 disk interface 117160 777160 10 CDll Card reader interface 117170 777170 10 RXll Floppy disk interface (TOPS-20) 117340 777340 20 TCll DEC tape 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 Use 10-41 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 BFl QPRDTE BUFFER FAILURE 1 Attempt to obtain buffer protocol header failed. space for the TO-II possible Cause: Buffer pool space has become exhausted or highly fragmented. Rl contains the node (buffer) size requested. .FREPL points to the list of free nodes. .FREPL+2 contains the number of free bytes in the pool. Nodes are linked together in the forward direction through the first word of the node. The second word of each node contains the node size. B02 QPRDTE BUFFER OVERFLOW 2 The PDP-II was not able to obtain the buffer space required to receive an indirect data transfer from the KL. possible Cause: Same as BFl above. BOI TTYDRR BUFFER OVERFLOW 1 The PDP-II was not able to obtain the buffer space necessary to transmit TTY characters to the KL during protocol pause. possible Cause: The KL enough. did not A-I resume primary protocol soon RSX-20F STOP CODES AND I/O ERROR CODES 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. CBR PF CROBAR ERROR DTE-20 power has not returned after a power-fail restart. RSX-20F allows it 30 seconds to reappear. 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. 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 transferred. 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. A-2 RSX-20F STOP CODES AND I/O ERROR CODES ETE QPRDTE TO-II TRANSFER ERROR A DTE interrupt occurred with the TOllER bit in the DTE status register (register 34). set 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. lAS SCH R5 and .CRTSK point to (ATL) node of the aborted 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. ILF 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 along data path between KL and PDP-II. RI contains the function code times two. R4 contains 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 TOIOQC is the count the PDP-II expects. A-3 RSX-20F STOP CODES AND I/O ERROR CODES 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 114). The memory status registers are stored starting at location PARSAVE. (See the PDP-II Processor Handbook for details.) 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-II. 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. A-4 RSX-20F STOP CODES AND I/O ERROR CODES PT4 QPRDTE PROTOCOL ERROR 4 The KL wants to send a packet to the than the packet size is greater allowed size of 100. PDP-II, but the maximum possible Cause: Same as PTI above. RED RED The size is in EQSZ. REDIRECT ERROR A fatal error has occurred during an MCR REDIRECT command. The file control service is corrupted. Call your Software Support Specialist. 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. See the PDP-II Processor Handbook for further details. possible Cause: PDP-II software is corrupted or a PDP-II malfunction occurred. SAl TTYDRR hardware SEND-ALL INTERRUPT The send-all count interrupt level. went negative at output possible Cause: A race condition in the malfunction. SAQ OPRDTE software or a hardware SEND-ALL QUEUE The send-all count went negative queueing of the send-all message. during the possible Cause: Corrupted PDP-II software. TBT LC 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-bi t is set. (See the PDP-II Processor Handbook for further details.) possible Cause: Corrupted PDP-II malfunction. A-5 software or PDP-II hardware RSX-20F STOP CODES AND I/O ERROR CODES TET QPRDTE TO-IO-TRANSFER ERROR A DTE-20 interrupt has occurred with either TOIOER (TO-IO 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-II 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-II 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-II doorbell. The currently implemented functions are KL-RELOAD REQUEST and KL POWER FAIL. Any other bits that are set cause this halt. 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. A-6 RSX-20F STOP CODES AND I/O ERROR CODES 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-20F, 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 overiun 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 ID, file number check 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 -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 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 A-7 RSX-20F STOP CODES AND I/O ERROR CODES -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 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 A-8 APPENDIX B FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F Normally the KL and the PDP-II will transfer any data that needs to be passed between them without any human intervention. Occasionally, though, 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 example, you could not find a KL-readable copy of the front-end map file, 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-IO 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 RSXTIO<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 software. For example, temporary files are not supported by Nor can RSXTIO write to a log file when taking commands from a file. RSXFMT, on the other hand, does not support MICRO-CODE modes. Thus, you should check that the feature you wish to supported by the version of the program that you can access. B.l.2 of the RSXTIO. command or SAVE use is 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 dialogue with RSXTIOi 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 RSXTlO, 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. [NO] control to the TOPS-IO Monitor or the IGNORE (FILE FORMAT ERRORS) File format errors produce warning messages only if this has previously been issued. B-2 command FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F . 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-IO 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: 0 7-BIT-ASCII 0 DOS-BINARY 0 DEFAULT 0 IMAGE-BINARY 0 MICRO-CODE 0 RSX-ASCII 0 RSX-BINARY 0 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 BETWEEN TOPS-IO/TOPS-20 AND RSX-20F B.2 TRANSFERRING FILES The act of transferring files is logically separate from the reformatting process, Slnce 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-lO, 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 (CAPABILITES) $FE<CR> "c @DETACH (AND) CONTINUE When running under TOPS-la, 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. B-4 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 FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F 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)] 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. 164mod400 is the quantity that 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 notify 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 and 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 themselves 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-5 FILE TRANSFERS BETWEEN TOPS-IO/TOPS-20 AND RSX-20F B.2.4 File Transfer Dialogue The following sequence of steps is used to transfer files both to from the front-end file system: 1. Assign the FE: 2. Run (and detach) FE. 3. Use the MOUNT task to mount the RSX-20F FE: 4. Use PIP to transfer the file(s). 5. Dismount the RSX-20F FE: 6. Go back to monitor level and stop FE. 7. Deassign the FE: and device to your job at monitor level. device. device using DMOUNT. device from your job. This basic sequence is used for all file transfers. However, reformatting always takes place on the KL, regardless of what 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 opposite sides of the equal sign. B-6 FILE TRANSFERS BETWEEN TOPS-I0/TOPS-20 AND RSX-20F @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,S]TEST.TXT PIP>TEST.TXT/LI DIRECTORY DBO: [S,S] 2S-JUN-79 12:S0 2S-JUN-79 12:49 TEST.TXT;1 1. TOTAL OF 1. BLOCKS IN 1. FILE 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 FEO: Read, Append, O. (16) 2 <SUBSYS>FE.EXE.2 Read, Execute 1 <SYSTEM>EXEC.EXE.Sl Read, Execute Devices assigned t%pened by this job: FEO, TTY20S $CLOSE (JFN) 3,4 4 TEST.TXT.2 3 FEO: [OK] $DEASSIGN FEO: $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. FIIACP.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. KLE.TSK KLERR KLERR processes KL errors using the diagnostic DTE functions. It takes a snapshot of KL error conditions and stores it as the file KLERRO.SNP in the front-end file system. It then calls KLINIT to restart the system. KLERR 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. KLXFER.TSK KLXFER KLXFER transfers KLERRO.SNP (the snapshot taken by KLERR) across the DTE to the KL, where it is placed in the ERROR.SYS file. KLXFER 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 performs general file transfers and some maintenance functions between Files-II devices and other peripherals. PIP runs in the GEN partition. TKTN.TSK Task TKTN for also TKTN Termination Program outputs task termination notification and provides the orderly termination of front-end tasks. It acts as an interface between KLINIT and KLERR. runs in the GEN partition. C-l FRONT-END TASKS 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. 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 partition. 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 TOPS-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. security checks are verified, KLINIK KLRING runs in the FIITPD partition. and the is 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-II by the KLINIT task and deposited over the DTE into KL memory where they perform their specific functions. BOOTS.EXB BOOT.EXB TOPS-IO Bootstrap Program TOPS-20 Bootstrap Program BOOTS and BOOT load the KL monitor system image file into memory from rigid disk (BOOTS.EXB and BOOT.EXB are executable binary files). BOOTM.EXB MTBOOT.EXB TOPS-IO 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 and MTBOOT.EXB are executable binary files). C-3 APPENDIX D KLINIK ACCESS DIALOGUE The RSX-20F KLINIK link allows DIGITAL Field Service or Software Support personnel at remote locations to access a 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 mechanism. This appendix lists the events that are logged by RSX-20F, and describes the KLINIK access parameters. It also documents the commands used in the access dialogue 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: o Each occurrence of a SET KLINIK command given in the command are also saved) o Each occurrence of a CLEAR KLINIK command o Each occurrence of a DISCONNECT command or a DLllE hang-up • Each occurrence of a successful LOGON (the mode selected also saved) is Each occurrence of an unsuccessful attempts is also saved) of D-1 LOGON (the (the parameters number KLINIK ACCESS DIALOGUE D.2 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 time at which the link will take place and the type of access the remote user will have. Specifically, they must agree on: o Whether the remote user of the link wishes to have a CTY or simply a timesharing terminal o What password will allow the remote user access system, if the user has requested a remote CTY to o The date and time the remote user will dial access by way of the KLINIK link request o The highest console mode the remote user will be allowed up 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 D.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 dialogue 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 dialogue 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 KLINIK ACCESS DIALOGUE D.2.3 KLINIK Access Window The date and time at which the remote user plans to establish the link is specified by the method of 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. The operator specifies the access window dates and times in response to the PARSER's prompt in the SET KLINIK dialogue. 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. D.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 what type of access the remote user is to have. (See Section 4.3, PARSER Console Modes, for a discussion of the capabilities of the various modes.) The operator specifies the console mode of the remote terminal in the dialogue 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 KLINIK ACCESS DIALOGUE 0.3 OPERATOR DIALOGUE WITH KLINIK The system operator, through dialogue with the PARSER, sets parameters for establishing the KLINIK link, checks those parameters, terminates the KLINIK link, and disconnects the remote modem. The dialogue that the operator uses to accomplish these tasks is presented below. D.3.l 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 0.1 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 dialogue 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 in order 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 "c" where "c" is the offending character. After printing the relevant error message, the PARSER the SET KLINIK command. D-4 aborts KLINIK ACCESS DIALOGUE 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 IIXXXII If the keyword you specified for the month is ambiguous, get: PAR you [SET] AMB - AMBIGUOUS KEYWORD IIXXXII In both of keyword. the previous cases, IIXXXII 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 PAR -- [SET] DBT - DATE BEFORE TODAY If the access window open or close time does not the required format, you get: conform to 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, D-5 KLINIK ACCESS DIALOGUE PROGRAMMER, and OPERATOR. There is no default reply to this question. (See Section 4.3, PARSER Console Modes, for a discussion of the capabilities of the various modes.) If the PARSER does not recognize the console mode you specify, you get the following error message: PAR -- [SET] NSK - NO SUCH KEYWORD "xxx" where "xxx" is the offending keyword. If you enter only prompt, you get: a carriage return in response to the 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 ACCESS ACCESS KLINIK [<state>] WINDOW OPEN: DD-MMM-YY HH:MM WINDOW CLOSED: DD-MMM-YY HH:MM 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 is 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: l8-JUNE-1979 13:04 ACCESS WINDOW CLOSE: 19-JUNE-1979 13:04 KLINIK MODE: REMOTE HIGHEST CONSOLE MODE: OPERATOR PAR> D-6 by the following KLINIK ACCESS DIALOGUE D.3.2 Examining the Current KLINIK Parameters The KLINIK parameters that are displayed at the end of the SET KLINIK dialogue 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 dialogue when the KLINIK parameters have been set. In two cases, however, the format is different. One is the t{me 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 20-JUNE-1979 13:49 ACCESS WINDOW OPEN: ACCESS WINDOW CLOSED: 2l-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 DIALOGUE If the remote user tries again to gain access to the system before the parameters are reset, the access is denied, and the following messages appears on both the remote and local terminals: KLR KLINIK RING - WINDOW CLOSED KLD KLINIK LINE DISCONNECTED The termination dialogue 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 DIALOGUE 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 D.l.l, the remote terminal can be either a normal timesharing user or a remote CTY. D.4.l Logging In as a Remote Operator RSX-20F answers the DLllE 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 DIALOGUE 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 messages 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: In response, you must type either REMOTE or USER. If you wish to be connected to RSX-20F, you must type REMOTE. You then receive the following notification from RSX-20F: KLR KLR KLINIK LINE CONNECTED TO RSX-20F 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. D-9 the system KLINIK ACCESS DIALOGUE The following remote user. KLINIK MODE: example shows a timesharing 1. examples illustrate the dialogue 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 password will not echo on the terminal] KLR -- INCORRECT PASSWORD PASSWORD: [this time it is correct] KLINIK MODE: 2. REMOTE KLR KLR KLINIK LINE CONNECTED TO RSX-20F CONSOLE MODE LIMIT: [MAINTENANCE] 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. Example D-6 KLR -- KLINIK LINE CONNECTED TO TOPS-20 SYSTEM 2116 THE BIG ORANGE, TOPS-20 MONITOR 3A(2013) @ D-10 a remote user KLINIK ACCESS DIALOGUE 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 SAV *DIAG* *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 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 probl~m usually requires a system. reload D-1l 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 will provide assistance in making sure you supply all the needed information to allbw 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 Support 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-20F 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 timing 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 told 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 to 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 DCE < < < > > < < < < < < < < < < > > > > > > > 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 Negitive 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) (DO) 120 108.2 110 125 111/112 113 (SCA) (CD) (CG) (CE) (CH/CI) (DA) INOEX $OHINP routine, 7-17, 7-18, $OHOUT routine, 7-24, 7-25, $OMINT routine, 7-14 7-14, 7-19 7-16, 7-26, 7-12, 7-16, 7-23, 7-27 7-13, .BGBUF location, 10-6, 10-18 .CRASH macro, 7-10 .CRTSK location, 7-8, 10-5, 10-11 .OHSTO routine, 7-27 .OHTMO routine, 7-20, 7-21, 7-22, 7-23 .OMTMO routine, 7-15, 7-16 .FREPL location, 10-6 .POLLH location, 10-6 .STOTB table, 7-7 OOUMPll.BIN file, E-l, 10-1, 10-4 ABORT PARSER command, 4-6 Absolute mode, 6-32 ZAP, 6-33 Access dialog, KLINIK, 0-1 Access parameters, KLINIK, 0-1, 0-2 setting KLINIK, 0-4, 0-5, 0-6 Access password, KLINIK, 0-2, 0-8 Access window, KLINIK, 0-2, 0-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-9, 10-32 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 Communications Reg ion, 8-5 Area, pointer to next Communications Region, 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-9 ATL, 7-7 ATL entry for CO task, 10-33 OECtape task, 10-33 OTE-20 task, 10-32 FE task, 10-33 floppy disk task, 10-33 LP task, 10-33 null task, 10-33 queued protocol task 10-33 RP task, 10-33 terminal task, 10-33 ATL node, 7-7, 7-8 of current task, 7-8, 10-5 ATL scan routine, 7-9 Auto-baud wait flag, 7-14, 7-18, 7-23 Auto-bauded lines, count of, 10-20 Auto-bauding, 7-19 Automatic baud rate determination, 7-19 Automatic reload flag, 10-13 Index-l INDEX ( CONT. ) Available space, listing. 6-13, 6-15 Bootstrap program BOOT.EXB, default, 5-2 Bootstrapping errors, 5-5 BPARER DTE-20 bit, 8-12 BR requests, 1-4 PDP-II, 8-12 Branch displacement, 6-36, 6-43 Break conditions, APR, 8-6 Buffer, Big, 7-4, 10-6 CD-II data, 10-27 free space in Big, 10-6 Buffer pointer, Send-All, 10-20 Buffer size, TO-IO, 10-15 Buffer space, 10-6 Buffer's current device, TO-lO, 10-15 Buffer's current function, TO-IO, 10-15 Buffer-overflow crashes, 10-6 Bus, diagnostic, 8-14 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-22 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, 10-18 Big Buffer, 7-4, 10-6 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 virtual, 2-2 Volume Controi, 6-9 Block file, bad, 2-4 Block Number, Virtual, 2-2 Block number/byte offset format, 6-38 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 subdirectorie with, 5-2 BOOT.EXB file, 5-1, 5-7 Booting the KL, 8-24 BOOTM program, 5-38 BOOTM task, C-3 BOOTS task, C-3 Bootstrap device, 5-7 Bootstrap device number, 5-5 Bootstrap program, C-3 KL, 5-1 loading, 5-2, 5-7 starting, 5-2, 5-7 Cache memory, configuring, 5-1, 5-2, 5-8, 5-38 enabling, 5-1, 5-2, 5-8, 5-36 Calls, hot line, E-l Card reader data base, 10-27 Carrier transition, 7-12 Carrier transition interrupt, 7-14 Carrier Wait flag, 7-14, 7-16, 7-19 Causing a doorbell interrupt, 8-13 Index-2 INDEX (CONT • ) CD task, ATL entry for, 10-33 CD-II current event flags, 10-27 CD-II data buffer, 10-27 CD-II driver, STD entry for, 10-31 CD-II driver data base, 10-27 CD-II I/O page address, 10-27 CD-II status bits, 10-27 COD DTE-20 bit, 8-17 Character input routine, 7-14, 7-16, 7-17, 7-18, 7-19 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 CLOCK PARSER command, , 4-6 CLEAR CONSOLE PARSER command, 4-4, 4-7 CLEAR DATE PARSER command, 4-7 CLEAR FS-STOP PARSER command, 4-7 CLEAR INCREMENT PARSER command, 4-7 CLEAR KLINIK command, 0-7 CLEAR KLINIK PARSER command, 4-7 CLEAR MEMORY PARSER command, 4-8 CLEAR NOT PARSER command, 4-8 CLEAR OFFSET PARSER command, 4-8 CLEAR PARITY STOP PARSER command, 4-8 CLEAR RELOAD PARSER command; 4-8 CLEAR REPEAT PARSER command, 4-8 CLEAR RETRY PARSER command, 4-8 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, Communications Region, CMIIC bit, Communications Region, CMAPRW word, Communications Region, CMDAPR word, Communications Region, CMDTE bit, Communications Region, CMDTN bit, Communications Region, CMFWD bit, Communications Region, CMINI bit, Communications Region, CMIP bit, Communications Region, CMKAC DTE-20 word, 9-1 CMKAC word, Communications Region, CMKAK word, Communications Region, CMLll bit, Communications Region, CMLNK word, Communications Region, CMLRF word, Communications Region, CMNAM bit, Communications Region, CMNPR bit, Communications Region, CMPDWD word, Communications Region, CMPGWD word, Communications Region, CMPIWD word, Communications Region, CMPNM bit, Communications Region, CMPPT word, Communications Region, CMPRO bit, Communications Region, CMPWF bit, Communications Region, CMQCT word, Communications Region, CMQP bit, Communications Region, CMSIZ bit, Communications Region, CMSZ bit, Communications Region, CMTEN bit, Communications Region, Index-3 88-8 8-5 8-6 8-6 8-6 8-8 8-7 8-8 8-4 8-9 8-7 8-4 8-9 8-3 8-3 8-5 8-5 8-4 8-6 8-7 8-6 8-7 8-9 8-8 8-3 8-6 8-3 INDEX (CONT • ) CMTOT bit, Communications Region, 8-8 CMTST bit, Communications Region, 8-8 CMVER bit, Communications Region, 8-3 CMVRR bit, Communications Region, 8-6 CNUPE DTE-20 bit, 8-18 Communications area, owning processor's, 8-3 Communications Region, APR flags in, 8-5 Communications Region area, pointer to next, 8-4 Communications Region CMOI bit, 8-8 CMIIC bit, 8-8 CMAPRW word, 8-5 CMDAPR word, 8-6 CMDTE bit, 8-6 CMDTN bit, 8-6 CMFWD bit, 8-8 CMINI bit, 8-7 CMIP bit, 8-8 CMKAC word, 8-4 CMKAK word, 8-9 CMLll bit, 8-7 CMLNK word, 8-4 CMLRF word, 8-9 CMNAM bit, 8-3 CMNPR bit, 8-3 CMPDWD word, 8-5 CMPGWD word, 8-5 CMPIWD word, 8-4 CMPNM bit, 8-6 CMPPT word, 8-7 CMPRO bi t, 8-6 CMPWF bit, 8-7 CMQCT word, 8-9 CMQP bit, 8-8 CMSIZ bit, 8-3 CMSZ bit, 8-6 CMTEN bit, 8-3 CMTOT bit, 8-8 CMTST bit, 8-8 CMVER bit, 8-3 CMVRR bit, 8-6 CPVER bit, 8-3 PIDENT word, 8-3 Communications Region Processor Header word, 8-3 Communications Region protocol version number, 8-3 Communications Region STATUS word, 8-7 Communications Region TOPID word, 8-6 Communications Region version number, 8-3 Command, diagnostic, 8-16 Command lines, continuing PARSER, 4-2 Command start, clearing diagnostic, 8-15 setting diagnostic, 8-15 Commands, RSXFMT, B-2 RSXTIO, 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-23 Communications Region, 8-1, 8-2, 8-3, 8-4, 8-5, 8-6, 8-7, 8-8, 8-9, 8-27, 9-1 area in, 8-1 header, 8-1 initializing, 8-1 KL, 9-1 section, 8-1 COMTRP location, 9-5 COMTRP routine, 7-10 Configuration, reversing memory, 5-9 Configuration file, 5-1, 5-6, 5-9 Configuration file, writing, 5-11 Configuration maps, external memory, 5-31 internal memory, 5-31, 5-32 logical memory, 5-31, 5-32, 5-33 physical memory, 5-31 Configuring cache memory, 5-1, 5-2, 5-8, 5-38 Configuring external core memory, 5-10 Configuring internal core memory, 5-9 Configuring KL memory, 5-1, 5-2, 5-9 Configuring MOS memory, 5-10 Index-4 INDEX (CONT • ) 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-9 Continuing PARSER command lines, 4-2 Controlling TO-IO data transfers, 8-20 Controlling TO-II data transfers, 8-20 COP task, C-2 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-9 Core memory bus-mode, setting external, 5-10 CORIMG.SYSil file, 2-4 Count, file revision, 2-3 Keep-Alive, 8-4, 8-9, 9-1, 10-17 Send-All terminal, 10-20 TO-IO delay, 8-23 TO-II delay, 8-23 TO-II queue entry, 10-15 Count of auto-bauded lines, 10-20 Counter, doorbell, 10-16 hardware program, 1-4 timeout, 10-20 CPU serial number, KL, 10-38 CPVER bit, Communications Region, 8-3 CR task, TPD entry for, 10-34 CRAM error report, 5-34 CRAM malfunction, 8-15 Crash, checking queues after a, 10-6 Crash codes, RSX-20F, 9-5, A-I, 10-5 .CRASH macro, 7-10, 9-5 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 CSR's, device, 10-40 CTY, redirecting the, 5-5 remote, 0-2, 0-8, 0-10 CTY line speed, 10-13 CTY queue, 10-35 CTY status block, 10-21 Current event flags, CD-II, 10-27 LP-20, 10-28 Current interrupt status, 8-14 Current task, ATL node of, 7-8, 10-5 Current task pointer, 10-11 Cycle, generating a clock, 8-15 01011 DTE-20 bit, 8-15, 8-16 Data, transferring string, 8-23 Data base, card reader, 10-27 CD-II driver, 10-27 core manager, 10-18 DEC tape driver, 10-24 disk driver, 10-25 FE device driver, 10-26 Index-5 INDEX (CONT • ) Data base (Cont.) floppy disk driver, 10-23 Keep-Alive, 10-17 KLINIK, 10-14 LP-20 driver, 10-28 queued protocol, 10-15 terminal driver, 10-22 terminal service, 10-20 Data between processors, transferring, 8-8, 8-18, 8-19, 8-20, 8-21, 8-22, 8-25, 8-27 Data buffer, CD-II, 10-27 Data in front-end memory, depositing, 10-1 examining, 10-1 Data line scanner queue, 10-35 Data packets, transferring indirect, 8-8 Data structure of packets, 8-29 Data Terminal Ready signal, 7-12 Data transfer, direct, 8-27 indirect, 8-27 TO-IO, 8-16, 8-22, 8-23 TO-II, 8-16, 8-22 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-20 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-31 DEC tape driver database,' 10-24 DECtape load switches, 5-4 DECtape PUD entry, 10-37 DEC tape switch register, 5-4 DEC tape task, ATL entry for, 10-33 TPD entry for, 10-34 Default radix, 4-2 Delay count, TO-IO, 8-23 TO-II, 8-23 Deleting files, 6-12, 6-13, 6-14 DEPOSIT AR PARSER command, 4-9 Deposit DTE-20 operation, 8-12 Deposit operation, 8-27 DTE-20, 8-21, 8-22 DEPOSIT PARSER command, 4-9 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 CSR's, 10-40 Device driver data base, FE, 10-26 Device drivers, 1-5, 7-4 Device drivers, interfacing, 8-25 Device number, bootstrap, 5-5 Device priority levels, 1-3 Device Queue Pointers, 10-35 Device status registers, 10-40 Device tables, LP-20, 10-29 physical unit, 10-36 DEX DTE-20 bit, 8-15, 8-16 DEXDON DTE-20 bit, 8-12 DEXWDl-2 DTE-20 registers, 8-22 DEXWDl-3 DTE-20 registers, 8-21 DFUNC DTE-20 bit, 8-15 DB-II communications interface, 7-23 Index-6 INDEX (CONT • ) DH-ll queue, 10-35 DH-ll table, 10-22 $DHINP routine, 7-14, 7-16, 7-17, 7-18, 7-19 $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-14 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 registers, DTE-20, 9-6 Diagnostic selection code, 8-15 Diagnostic Word 1, DTE-20, 8-15, 8-17 Diagnostic Word 2, DTE-20, 8-16 Diagnostic Word 3, DTE-20, 8-16 Diagnostic words, DTE-20, 8-14 Diagnostics, KL hardware, 1-6 Dialog, entering KLINIT, 5-6 exiting KLINIT, 5-40 file transfer, B-6 KLINIK access, D-l KLINIK operator, D-4 KLINIT operator, 5-6, 5-7, 5-8, 5-9, 5-10, 5-11, 5-12, 5-13, 5-14, 5-15 remote user KLINIK, D-8 restarting KLINIT, 5-6, 5-40 terminating KLINIT, 5-6 Dialog error messages, KLINIT, 5-16, 5-19 Dialog examples, KLINIT, 5-34, 5-35, 5-36, 5-37, 5-38, 5-39 Dialog mode, KLINIT, 5-2 Dialog reports, KLINIT, 5-31 Differences, RSX-20F/RSX-IIM, 1-7 DIKLIO DTE-20 bit, 8-15 Direct data transfer, 8-27 Direct packets, 8-28 Directive service routine, 7-4, 7-9 Directives, 1-4, 1-7 Directives, performing, 7-10 Directories, listing file, 6-12 Directory, Master File, 2-4 System Task, 7-6, 10-30 Task Partition, 10-34 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-10, D-7 Disk, copying a floppy, 6-1 Disk block, starting, 6-32 Disk driver, 1-7 STD entry for floppy, 10-31 Disk driver data base, 10-25 floppy, 10-23 Disk load switches, floppy, 5-3 Disk PUD entry, floppy, 10-37 Disk switch register, floppy, 5-3 Disk task, ATL entry for floppy, 10-33 TPD entry for floppy, 10-34 Dismounting a device, 6-9 Displacement, branch, 6-36, 6-43 jump, 6-36, 6-43 DLll queue, 10-35 DLll/C table, 10-22 DLll/E table, 10-22 DLYCNT DTE-20 register, 8-20, 8-21, 8-23 DM-IIBB modem interface, 7-23 DMl1/BB table, 10-22 Index-7 INDEX ( CONT • ) $DMINT routine, 7-12, 7-13, 7-14 DMO error messages, 6-11 DMO task, C-2 DMO utility, 6-9, 6-10 .DMTMO routine, 7-15, 7-16, 7-20 DON10C DTE-20 bit, 8-13 DON108 DTE-20 bit, 8-13 DON11C DTE-20 bit, 8-14 DONl18 DTE-20 bit, 8-14 Done interrupt, 8-8 Doorbell counter, 10-16 Doorbell function, 8-23 DTE-20, 8-1 Doorbell interrupt, 8-7, 8-8, 8-10, 8-12 causing a, 8-13 DP84[N] DTE-20 bit, 8-17 DRAM error report, 5-34 DRAM malfunction, 8-15 DRE8ET DTE-20 bit, 8-17 Driver, disk, 1-7 DTE-20, 1-7 8TD entry for CD-II, 10-31 8TD entry for DECtape, 10-31 8TD entry for DTE-20, 10-30 8TD entry for FE, 10-31 8TD entry for floppy disk, 10-31 8TD entry for LP, 10-31 8TD entry for terminal, 10-31 Driver data base, CD-II, 10-27 DECtape, 10-24 disk, 10-25 FE device, 10-26 floppy disk, 10-23 LP-20, 10-28 terminal, 10-22 Driver routine, terminal, 7-12, 7-13, 7-14 Drivers, device, 1-5, 7-4 interfacing device, 8-25 Driving the DTE-20, 1-7 D800-D803 DTE-20 bit, 8-15 D800-D806 DTE-20 bit, 8-15 D804 DTE-20 bit, 8-15 D805 DTE-20 bit, 8-16 D806 DTE-20 bit, 8-16 D8END DTE-20 bit, 8-15 DTE-20, driving the, 1-7 memory deposits across, 8-1, 8-8 memory examines across, 8-1, 8-8 privileged, 9-7, 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-17 CNUPE, 8-18 D1011, 8-15, 8-16 DCOM8T, 8-15, 8-16 DEX, 8-15, 8-16 DEXDON, 8-12 DFUNC, 8-15 DIKL10, 8-15 DON10C, 8-13 DON108, 8-13 DON11C, 8-14 DONl18, 8-14 DP84 [N], 8-17 DRE8ET, 8-17 D800-D803, 8-15 D800-D806, 8-15 D804, 8-15 D805, 8-16 D806, 8-16 D8END, 8-15 DUPE, 8-17 DURE, 8-18 DXWRD1, 8-11 EB8EL, 8-12 EBU8PC, 8-14 EBU8P8, 8-14 EDONE8, 8-16 ERR10C, 8-13 ERR1 08, 8-13 ERR11C, 8-14 ERRl18, 8-14 INT108, 8-13 INT11C, 8-13 INTl18, 8-13 INTROF, 8-14 INTRON, 8-14 INT80N, 8-12 MPE11, 8-12 NUL8TP, 8-12 NUPE, 8-18 PERCLR, 8-13 PULSE, 8-15 RAMI80, 8-11 Index-8 INDEX (CaNT.) DTE-20 bit (Cont.) RFAMDO, 8-16 RFMADl, 8-16 RFMAD2, 8-16 RFMAD3, 8-16 RM, 8-12 SCD, 8-17 SWSLLT, 8-17 TOIO, 8-16 TOIOBM, 8-18 TOIODB, 8-12 TOIODN, 8-11 TOIOER, 8-11 Tall, 8-16 TOIIDB, 8-11 TOIIDN, 8-12 TOllER, 8-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 registers, 9-6 DTE-20 Diagnostic Word 1, 8-15, 8-17 DTE-20 Diagnostic Word 2, 8-16 DTE-20 Diagnostic Word 3, 8-16 DTE-20 diagnostic words, 8-14 DTE-20 doorbell function, 8-1 DTE-20 driver, 1-7 STD entry for, 10-30 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-24 DTE-20 register, 8-10 DEXWDl-2, 8-22 DEXWDl-3, 8-21 DLYCNT, 8-20, 8-21, 8-23 examining, 10-6 locations of, 8-10 DTE-20 register (Cont.) STATUS, 8-10 TENADl-2, 8-21, 8-22 TOIOAD, 8-19, 8-23 TOIOBC, 8-10, 8-20, 8-23 TOIODT, 8-18 TOIIAD, 8-19, 8-23 TOIIBC, 8-20, 8-23 T011DT, 8-18 using the, 8-22 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-32 TPD entry for, 10-34 DTE-20 word, CMKAC, 9-1 DTR signal, 7-12, 7-14 Dump analysis, sample RSX-20F, 10-7, 10-8, 10-9, 10-10 Dump file, examining locations in a, 10-1 reading a front-end, 10-1 producing, E-l Dumps, interpreting RSX-20F, 10-4, 10-5, 10-6, 10-7, 10-8, 10-9, 10-10 DUPE DTE-20 bit, 8-17 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 EBUSPS DTE-20 bit, 8-14 EDONES DTE-20 bit, 8-16 EIA pin definitions, F-1 Emergency Stack, 10-39 EMT instruction, 7-10 Enabling cache memory, 5-1, 5-2, 5-8, 5-36 Enabling PDP-II interrupts, 8-12, 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 Index-9 INDEX (CONT . ) EPT, 8-27 ERRI0C DTE-20 bit, 8-13 ERRI0S DTE-20 bit, 8-13 ERRIIC DTE-20 bit, 8-14 ERRIIS DTE-20 bit, 8-14 Error codes, RSX-20F I/O, A-I, A-7 Error logging, KL, 9-2 PDP-II, 9-5 RSX-20F, 9-2 Error messages, DMO, 6-11 KLINIT dialog, 5-16, 5-19 KLINIT system, 5-16, 5-20, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31 MOU, 6-11 PARSER, 4-4, 4-23 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 termination of byte transfer, 8-12 ERROR.SYS file, C-l, C-2, D-l, E-2 Errors, bootstrapping, 5-5 Evaluation of arithmetic expressions, 4-3 Event, significant, 1-5, 1-7 Event flags, CD-II current, 10-27 global common, 10-11 LP-20 current, 10-28 significant, 10-11 EXAMINE AB PARSER command, 4-11 EXAMINE AD PARSER command, 4-11 EXAMINE ADX PARSER command, 4-11 EXAMINE AR PARSER command, 4-11 EXAMINE ARX PARSER command, 4-12 EXAMINE BR PARSER command, 4-12 EXAMINE BRX PARSER command, 4-12 EXAMINE CRADDR PARSER command, 4-12 Index,..10 EXAMINE CRLOC PARSER command, 4-12 EXAMINE DRADDR PARSER command, 4-12 EXAMINE DTE-20 PARSER command, 4-12 EXAMINE EBUS PARSER command, 4-12 EXAMINE FE PARSER command, 4-13 EXAMINE FLAGS PARSER command, 4-13 EXAMINE FM PARSER command, 4-13 EXAMINE KL PARSER command, 4-10 EXAMINE MQ PARSER command, 4-13 Examine operation, 8-27 DTE-20, 8-12, 8-21, 8-22 EXAMINE PARSER command, 4-10 EXAMINE PC PARSER command, 4-10 EXAMINE PI PARSER command, 4-13 EXAMINE REGISTERS PARSER command, 4-13 EXAMINE SBR PARSER command, 4-13 EXAMINE SECTION PARSER command, 4-14 EXAMINE VMA PARSER command, 4-14 EXAMINE VMAH PARSER command, 4-14 Examines, verifying memory, 8-8 Examines across DTE-20, memory, 8-1, 8-8 Examining a crashed system, 7-4 Examining current KLINIK parameters, D-6, D-7 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 INDEX (CONT.) Executive (Cont.) RSX-20F, 7-1, 7-2, 7-3, 7-4 Executive partition, 1-5 Executive Process Table, 8-27 Executive tasks, 7-6 Exiting KLINIT dialog, 5-40 Exiting PARSER, 4-1 Expiration date, file, 2-3 Expressions, evaluation of arithmetic, 4-3 Extension, file, 2-3 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-31 External page, 1-3, 7-4, 10-40, 10-41 External page address, CD-II, 10-27 FIIACP, 7-4 STD entry for, 10-31 FIIACP task, C-l TPD entry for, 10-34 FIITPD partition, 1-5, 7-4 Fail bit, power, 8-7 Fast Memory parity error, 8-15, 9-2, 9-4 FCS file structure, 2-4 FE device driver data base, 10-26 FE driver, STD entry for, 10-31 FE program, B-1, B-4 running, B-4, B-5 FE PUD entry, 10-37 FE task, ATL entry for, 10-33 TPD entry for, 10-34 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-15 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-3 File extension headers, 2-3 File header, 2-3 File header checksum, 2-3 File ID, 1-7, 2-2, 2-3 File name, 2-3 pr imary, 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 File system, front-end, 1-7 File transfer dialog, B-6 File type, 2-3 File version number, 2-2, 2-3 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 Index-II INDEX (CONT • ) Files-II directory file entry, 2-3 Files-II file, 2-2 Files-II index file, 2-4 Files-II medium, 2-1 Files-II partition, l-S Files-II tasks, 1-7 Files-II volume, 2-1, C-2 Finding contents of memory locations, 7-4 Finding last instruction executed, 10-S Fixed-length records, 2-4 Floppy disk, copying a, 6-1 zeroing a, 6-2 Floppy disk driver, STD entry for, 10-31 Floppy disk driver data base, 10-23 Floppy disk load switches, S-3 Floppy disk PUD entry, 10-37 Floppy disk switch register, S-3 Floppy disk task, ATL entry for, 10-33 TPD entry for, 10-34 Format of KLERRO.SNP file, 9-6 Format register, ZAP, 6-36 Framing error, 7-19, 7-23 FREAD PARSER command, 4-14 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-24 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 Index-12 Function, front-end, 1-6 TO-IO buffer's current, 10-lS Functions of queued protocol driver, 8-2S FWRITE PARSER command, 4-14 FXCT PARSER command, 4-14 GEN partition, 1-5, 1-7, 4-1, 7-4 GEN partition, installing tasks in, 7-8 TPD entry for, 10-34 General partition, l-S General PDP-II registers, 1-4 Generating a clock cycle, 8-lS Generating parity, 8-18 Getting help on RSX-20F, E-l Global common event flags, 10-11 HALT PARSER command, 4-14 Halting the KL, 8-16 Handling, trap, 7-10 Hardware, modem handling, 7-12 Hardware diagnostics, KL, 1-6 Hardware interface, 8-1 Hardware operations, DTE-20, 8-1 Hardware options available, 10-38 Hardware program counter, 1-4 Hardware stack pointer, 1-4 Head, TO-IO queue current, 10-lS Header, Communications Region, 8-1 file, 2-3 linkage to extension, 2-3 Header area, 2-3 Header checksum, file, 2-3 Header word, Communications Region Processor, 8-3 INDEX (CONT.) Headers, file extension, 2-3 Help facility, PARSER, 4-4 Help on RSX-20F, getting, E-l High address of Executive, 10-11 Hot line calls, E-l Install task, TPD entry for, 10-34 Installation, task, 6-24 Installing tasks in GEN partition, 7-8 Instruction executed, finding last, 10-S Instruction set, PDP-II, 1-4 INTIOS DTE-20 bit, 8-13 INTIIC DTE-20 bit, 8-13 INTllS DTE-20 bit, 8-13 Interface, DH-ll communications, 7-23 DM-IIBB modem, 7-23 Interfacing device drivers, 8-2S Interleaving KL memory, S-l, 5-2, S-IO Internal core memory, configuring, 5-9 Internal memory configuration maps, 5-31, S-32 Internal registers, ZAP, 6-34 Interpreting RSX-20F dumps, 10-4, 10-S, 10-6, 10-7, 10-8, 10-9, 10-10 Interrupt, doorbell, 8-7 Interrupt priorities, 1-3 Interrupt status, current, 8-14 Interrupt system, Prior i ty, 8-4 Interrupts, disabling PDP-II, 8-14 enabling PDP-II, 8-12, 8-14 vector, 1-3 INTROF DTE-20 bit, 8-14 INTRON DTE-20 bit, 8-14 INTSON DTE-20 bit, 8-12 IOT instruction, 9-S IOTTRP location, 9-S IOTTRP routine, 7-10 I/O, redirecting, 6-23 I/O error codes, RSX-20F, A-I, A-7 I/O page, 1-3, 7-4, 10-40, 10-41 I/O page address, CD-II, 10-27 I/O Page dump, 10-40 I/O requests, l-S ID, file, 1-7, 2-2, 2-3 Ident area, 2-3 Identification table, processor, 10-lS Ignoring KL errors, 10-12 Ignoring KL halts, 10-12 Image file, core, 2-4 Index file, Files-II, 2-4 Indexed file, positioning in an, 6-S INDEXF.SYSil file, 2-4 Indirect data packets, transferring, 8-8 Indirect data transfer, 8-27 Indirect packets, 8-28 Informational messages, KLINIT, S-16, S-17 INI task, C-2 INI utility, 6-4 /FULL, 6-S /INDX, 6-S /INF, 6-S Initialization, KL, 1-6 INITIALIZE PARSER command, 4-lS Initializing a volume, 6-4 Initializing Communications Region, 8-1 Input routine, character, 7-14, 7-16, 7-17, 7-18, 7-19 JSYS's, TOPS-20, 1-4 Jump displacement, 6-36, 6-43 JUMP PARSER command, 4-lS Index-13 INDEX (CONT • ) Keep-Alive count, 8-4, 8-9, 9-1, 10-17 Keep-Alive data base, 10-17 Keep-Alive-Cease error, 9-1, 9-2, 10-5, 10-6 KL, booting the, 8-24 halting the, 8-16 loading the, 5-1 KL bootstrap program, 5-1 KL Communications Region, 9-1 KL CPU serial number, 10-38 KL error logging, 9-2 KL errors, ignoring, 10-12 KL halts, ignoring, 10-12 KL hardware diagnostics, 1-6 KL initialization, 1-6 KL memory, configuring, 5-1, 5-2, 5-9 interleaving, 5-1, 5-2, 5-10 KL microcode, loading, 5-1, 5-2, 5-7 verifying, 5-2, 5-7, 5-39 KL state flag, 10-13 KL status, sampling, 8-15 KL.CFG file, 5-1, 5-8, 5-9, 5-11, 5-27, 5-31 KL/PDP-ll interface, 8-1 KLA.MCB file, 5-1 KLOISC task, C-2 KLE task, C-l KLERR, running, 9-1, 9-2 KLERR functions, 9-2 KLERR messages, 9-7 KLERR task, 9-1 KLERRO.SNP file, 9-2, 9-6, 9-10, C-l KLERRO.SNP file, format of, 9-6 KLI task, C-l KLINIK, C-2 KLINIK access dialog, 0-1 KLINIK access parameters, 0-1, 0-2 KLINIK access parameters, setting, 0-4, 0-5, 0-6 KLINIK access password, 0-2, 0-8 KLINIK access window, 0-2, 0-3 Index-14 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-8 KLINIK events, 0-1 KLINIK integrity over reboot, 0-11 KLINIK line status flag, 10-14 KLINIK link, 4-7 terminating, 0-7 KLINIK operator dialog, 0-4 KLINIK parameters, examining current, 0-6, 0-7 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-40 restarting, 5-6, 5-40 terminating, 5-6 KLINIT dialog error messages, 5-16, 5-19 KLINIT dialog examples, 5-34, 5-35, 5-36, 5-37, 5-38, 5-39 KLINIT dialog mode, 5-2 KLINIT dialog reports, 5-31 KLINIT from PARSER, entering, 5-6 KLINIT informational messages, 5-16, 5-17 KLINIT messages, 5-16 KLINIT operator dialog, 5-6, 5-7, 5-8, 5-9, 5-10, 5-11, 5-12, 5-13, 5-14, 5-15 KLINIT system error messages, 5-16, 5-20, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31 KLINIT tracking capability, 5-7 KLINIT warning messages, 5-16, 5-17, 5-18, 5-19 INDEX (CONT.) KLRING task, C-2 KLX.MCB file, 5-1 KLXFER, running, 9-10 KLXFER task, 9-6, 9-10, C-l 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-4 floppy disk, 5-3 Loading a specified file, 5-11 Loading bootstrap program, 5-2, 5-7 Loading KL microcode, 5-1, 5-2, 5-7 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 Logging, KL error, 9-2 PDP-II error, 9-5 RSX-20F error, 9-2 Logical memory configuration maps, 5-31, 5-32, 5-33 Logical Unit Number, 2-1, 6-9 Logical unit Tables, 10-36 Loop-back test, DTE-20, 8-15 LP driver, STD entry for, 10-31 LP PUD entry, 10-37 Index-15 LP task, ATL entry for, 10-33 TPD entry for, 10-34 LP-20 current event flags, 10-28 LP-20 device tables, 10-29 LP-20 driver data base, 10-28 LP-20 status block, 10-28 LPT thread lists, 7-4 LPTBL location, 10-29 LUN, 2-1 Magnetic tape boot program, C-3 Maintenance mode, 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-31 internal memory configuration, 5-31, 5-32 logical memory configuration, 5-31, 5-32, 5-33 physical memory configuration, 5-31 Master File Directory, 2-4 MB20 memory, reconfiguring, 5-36 MCR PARSER command, 4-15 Medium, Files-II, 2-1 Memory, configuring cache, 5-1, 5-2, 5-8, 5-38 configuring external core, 5-10 configuring internal core, 5-9 configuring KL, 5-1, 5-2, 5-9 configuring MOS, 5-10 depositing data in front-end, 10-1 enabling cache, 5-1, 5-2, 5-8, 5-36 examining data in front-end, 10-1 examining front-end, 10-4 INDEX (CaNT.) Memory (Cont.) interleaving KL, 5-1, 5-2, 5-10 reconfiguring MB20, 5-36 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-31 internal, 5-31, 5-32 logical, 5-31, 5-32, 5-33 physical, 5-31 Memory deposits across DTE-20, 8-1, 8-8 Memory examines, verifying, 8-8 Memory examines acrGSS 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-15, 9-2, 9-4 PDP-II, 8-11, 8-12, 8-13 Memory parity option, MFIILP, 8-12 MFI1UP, 8-12 Memory size in blocks, 10-11 Merging files, 6-13, 6-18 MFIILP memory parity option, 8-12 MFI1UP memory parity option, 8-12 MFD, 2-4 Microcode, loading KL, 5-1, 5-2, 5-7 verifying KL, 5-2, 5-7, 5-39 Microcode file, 5-1 Microcode verification error reports, 5-33 MIDNIT task, C-2 Mode, maintenance, 4-4 Index-16 Mode (Cont.) 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-11 concepts, 7-11 hardware, 7-12 routine, 7-12, 7-13, 7-14 Modem interface, DM-I1BB, 7-23 Modem strapping options, 7-11 Modem timeout routine, 7-14, 7-15, 7-16 Monitor, TOPS-IO default, 5-1 TOPS-20 default, 5-1 Monitor from subdirectories, loading, 5-2 MaS memory, configuring, 5-10 MOU error messages, 6-11 MOU task, C-l MOU utility, 6-9, 6-10 Mounting a device, 6-9 MPE11 DTE-20 bit, 8-12 MTBOOT task, C-3 MTBOOT.EXB file, 5-38 Name, file, 2-3 owning processor's, 8-3 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-9 ATL entry for, 10-33 NULSTP DTE-20 bit, 8-12 Number, processor, 10-15 NUPE DTE-20 bit, 8-18 Obsolete files, purging, 6-13, 6-18 INDEX (CONT.) Offset, 4-3 relative, 6-33 Operation, deposit, 8-27 deposit DTE-20, 8-12 DTE-20 deposit, 8-21, 8-22 DTE-20 examine, 8-12, 8-21, 8-22 examine, 8-27 Operator dialog, KLINIK, 0-4 KLINIT, 5-6, 5-7, 5-8, 5-9, 5-10, 5-11, 5-12, 5-13, 5-14, 5-15 Operator mode, 4-4 Operators, precedence of arithmetic, 4-3 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' communications area, 8-3 name, 8-3 serial number, 8-3 Packet address, 10-21, 10-23 Packet size, 10-21 Packets, data structure of, 8-29 direct, 8-28 indirect, 8-28 transferring indirect data, 8-8 Page, external, 1-3, 7-4, 10-40, 10-41 I/O, 1-3, 10-40, 10-41 Pager process status, 8-5 Pager system status, 8-5 Parity, generating, 8-18 Parity error, EBUS, 8-12, 10-16 Index-17 Parity error (Cont.) Fast Memory, 8-15, 9-2, 9-4 NPR UNIBUS, 8-11 PDP-II memory, 8-11, 8-12, 8-13 UNIBUS, 8-17 Parity flip-flop, UNIBUS, 8-18 Parity network, testing, 8-18 Parity option, MFl1LP memory, 8-12 MFl1UP 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 CLOCK, 4-6 CLEAR CONSOLE, 4-4, 4-7 CLEAR DATE, 4-7 CLEAR FS-STOP, 4-7 CLEAR INCREMENT, 4-7 CLEAR KLINIK, 4-7 CLEAR MEMORY, 4-8 CLEAR NOT, 4-8 CLEAR OFFSET, 4-8 CLEAR PARITY STOP, 4-8 CLEAR RELOAD, 4-8 CLEAR REPEAT, 4-8 CLEAR RETRY, 4-8 CLEAR TRACKS, 4-9 CONTINUE, 4-9 DEPOSIT, 4-9 DEPOSIT AR, 4-9 DISCONNECT, 4-10, D-7 EXAMINE, 4-10 EXAMINE AB, 4-11 EXAMINE AD, 4-11 EXAMINE ADX, 4-11 EXAMINE AR, 4-11 EXAMINE ARX, 4-12 EXAMINE BR, 4-12 EXAMINE BRX, 4-12 EXAMINE CRADDR, 4-12 EXAMINE CRLOC, 4-12 EXAMINE DRADDR, 4-12 EXAMINE DTE-20, 4-12 EXAMINE EBUS, 4-12 EXAMINE FE, 4-13 EXAMINE FLAGS, 4-13 EXAMINE FM, 4-13 EXAMINE KL, 4-10 EXAMINE MQ, 4-13 INDEX (CONT • ) PARSER command (Cont.) EXAMINE PC, 4-10 EXAMINE PI, 4-13 EXAMINE REGISTERS, 4-13 EXAMINE SBR, 4-13 EXAMINE SECTION, 4-14 EXAMINE VMA, 4-14 EXAMINE VMAH, 4-14 FREAD, 4-14 FWRITE, 4-14 FXCT, 4-14 HALT, 4-14 INITIALIZE, 4-15 JUMP, 4-15 MCR, 4-15 QUIT, 4-15 REPEAT, 4-15 RESET, 4-16 RESET ALL, 4-16 RESET APR, 4-16 RESET DTE-20, 4-16 RESET ERROR, 4-16 RESET I/O, 4-17 RESET INITIALIZE, 4-16 RESET PAG, 4-17 RESET PI, 4-17 RUN, 4-17 SET CLOCK, 4-17, 4-18 SET CONSOLE, 4-4, 4-18 SET DATE, 4-18 SET FS-STOP, 4-19 SET INCREMENT, 4-19 SET KLINIK, 4-19 SET MEMORY, 4-19 SET NOT, 4-19 SET OFFSET, 4-20 SET PARITY-STOP, 4-20 SET RELOAD, 4-20 SET REPEAT, 4-20 SET RETRY, 4-20 SET TRACKS, 4-21 SHUTDOWN, 4-21 START MICROCODE, 4-21 START TEN, 4-21 WHAT CLOCK, 4-21 WHAT CONSOLE, 4-4, 4-21 WHAT DATE, 4-21 WHAT INCREMENT, 4-22 WHAT KLINIK, 4-22 WHAT MEMORY, 4-22 WHAT OFFSET, 4-22 WHAT PARITY-STOP, 4-22 WHAT RELOAD, 4-22 WHAT REPEAT, 4-23 WHAT RETRY, 4-23 WHAT TRACKS, 4-23 WHAT VERSION, 4-23 XCT, 4-23 PARSER command (Cont.) ZERO, 4-23 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-4, 4-23 PARSER help facility, 4-4 PARSER prompts, 4-1 PARSER task, C-l Partition, Executive, 1-5 F11TPD, 7-4 GEN, 1-5, 7-4 installing tasks in GEN, 7-8 Partition Directory, Task, 10-34 Password, KLINIK access window, 10-14 Patching a task image, 6-30 PDP-II BR requests, 8-12 PDP-II date, C-2 PDP-II error logging, 9-5 PDP-II features, 1-2 PDP-II instruction set, 1-4 PDP-II interrupts, disabling, 8-14 enabling, 8-12, 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 general, 1-4 PDP-II stacks, 1-4 PDP-II time, C-2 PERCLR DTE-20 bit, 8-13 Performing directives, 7-10 Peripheral Interchange Program, 6-12 Phone ring interrupt, 7-14 Physical memory configuration maps, 5-31 Physical unit device tables, 10-36 PIDENT word, Communications Region, 8-3 Pin definitions, EIA, F-1 PIP, B-1 PIP error messages, 6-19, 6-20, 6-21, 6-22, 6-23 Index-18 INDEX (CaNT.) PIP PIP PIP PIP subswitches, 6-13 switches, 6-13 task, C-l utility, 6-12 IFR, 6-lS lAP, 6-13 IDE, 6-14 ILl, 6-lS IME, 6-18 IPU, 6-18 IRE, 6-19 Pointer to nex Communications Region 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 trap, 7-10 Power-fail bit, 8-7 Power-fail recovery flag, 10-11 Power-fail restart, 7-22 Processor Header word, Communications Region, 8-3 Precedence of arithmetic operators, 4-3 Primary file name, 2-3 Primary protocol, 7-19, 8-24 switching to, 8-24 Primary Protocol functions, 10-1 Priorities, interrupt, 1-3 Priority Interrupt system, 8-4 Priority levels, device, 1-3 Privileged DTE-20, 9-7, 10-16 Privileged DTE-20 mode, 8-12 Privileged front end, 8-24 Privileged tasks, 1-6 Process status, Pager, 8-S Processor, Arithmetic, 8-S owning, 8-3 Processor identification table, 10-lS Processor number, 8-6, 10-lS Index-19 Processor number, protocol, 8-1 Processor reload word, 8-9 Processor Status save area, 10-12 Processor's communications area, owning, 8-3 Processor's name, owning, 8-3 Processor's serial number, owning, 8-3 Processors, transferring data between, 8-8, 8-18, 8-19, 8-20, 8-21, 8-22, 8-2S, 8-27 transferring files between, B-1 Producing dump files, E-l Program counter, hardware, 1-4 Programmer mode, 4-4 Prompts, PARSER, 4-1 Protection code, file, 2-3 Protocol, DTE-20, 8-24 primary, 7-19, 8-24 queued, 8-8, 8-24 secondary, 7-19, 8-24 STD entry for queued, 10-31 switching to primary, 8-24 Protocol data base, queued, 10-lS Protocol driver, functions of queued, 8-2S queued, 8-2S Protocol functions, Primary, 10-1 Protocol pause, 7-19 Protocol pause flag, 10-16 Protocol processor number, 8-1 Protocol task, queued, 1-7 Protocol version number, 8-6 Communications Region, 8-3 PARSER command, SET CLOCK NORMAL, 4-17 Protocol task, ATL entry for queued, 10-33 TPD entry for queued, 10-34 INDEX ( CONT. ) RESET ALL PARSER command, 4-16 RESET APR PARSER command, 4-16 RESET DTE-20 PARSER command, 4-16 RESET ERROR PARSER command, 4-16 RESET I/O PARSER command, 4-17 RESET INITIALIZE PARSER command, 4-16 RESET PAG PARSER command, 4-17 RESET PARSER command, 4-16 RESET PI PARSER command, 4-17 Resident tasks, 1-6 Restart, power-fail, 7-22 Restarting KLINIT dialog, 5-6, 5-40 Restricted DTE-20 mode, 8-12 Retry flag, 9-1, 10-17 Reversing memory configuration, 5-9 Revision count, file, 2-3 Revision date, file, 2-3 Revision time, file, 2-3 RFAMDO DTE-20 bit, 8-16 RFMAD1 DTE-20 bit, 8-16 RFMAD2 DTE-20 bit, 8-16 RFMAD3 DTE-20 bit, 8-16 Ring In Progress flag, 7-14, 7-16 Ring interrupt, phone, 7-14 RIP flag, 7-14 RM DTE-20 bit, 8-12 RP PUD entry, 10-37 RP task, ATL entry for, 10-33 TPD entry for, 10-34 RSX-11D, 1-1 RSX-11M, 1-1, 1-4, 1-6 RSX-I1M utility programs, 1-7 RSX-20F, getting help on, E-1 load ing, 5-6 starting, 5-6 RSX-20F crash codes, 9-5, A-I, 10-5 Index-21 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-7 RSX-20F memory layout, 7-5 RSX-20F overlays, 7-1 RSX-20F scheduler, 7-4 RSX-20F scheduling, 7-6 RSX-20F SPR's, E-1 RSX-20F stop codes, 9-5, A-I, 10-5 RSX-20F symbol files, reading, 10-4 RSX-20F tasks, 7-6, C-1 RSX-20F version number, 10-11 RSX-20F/RSX-11M differences, 1-7 RSXFMT, B-1 RSXFMT commands, B-2 RSXT10, B-1 RSXT10 commands, B-2 RTS signal, 7-12, 7-14 RUN PARSER command, 4-17 Running FE program, B-4, B-5 Running KLERR, 9-1, 9-2 Running KLXFER, 9-10 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-26 /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-9 INDEX (CONT.) PUD entry, DECtape, 10-37 FE, 10-37 floppy disk, 10-37 LP, 10-37 RP, 10-37 system, 10-37 terminal, 10-36 PUD tables, 10-36 PULSE DTE-20 bit, 8-15 Purging obsolete files, 6-13, 6-18 Reading a front-end dump file, 10-1 Reading RSX-20F symbol files, 10-4 Reboot, KLINIK integrity over, D-ll Receiver error, UNIBUS, 8-18 Reconfiguring MB20 memory, 5-36 Records, fixed-length, 2-4 variable-length, 2-4 Recovering from front-end crashes, 10-1 Recovery flag, power-fail, 10-11 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 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 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-8, D-IO Remote KLINIK terminal, D-2 Remote lines, enabling, 10-20 Remote terminal, console mode of, D-3 Remote user KLINIK dialog, D-8 Remote user terminal, D-IO Renaming files, 6-12, 6-13, 6-19 REPEAT PARSER command, 4-15 Request list, clock, 10-19 Request To Send signal, 7-12 Quantity register, ZAP, 6-37 Queue, CTY, 10-35 data line scanner, 10-35 DH-ll, 10-35 DLll, 10-35 TO-lO, 8-29, 10-16 TO-II, 8-29, 10-16 Queue current head, TO-lO, 10-15 Queue entry count, TO-II, 10-15 Queue pointer, TO-lO, 10-6 TO-II, 10-6 Queue Pointers, Device, 10-35 Queued protocol, 8-8, 8-24 STD entry for, 10-31 Queued protocol data base, 10-15 Queued protocol driver, 8-25 functions of, 8-25 Queued protocol task, 1-7 ATL entry for, 10-33 TPD entry for, 10-34 Queues after a crash, checking, 10-6 QUIT PARSER command, 4-15 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 Index-20 INDEX (CONT.) Scanner queue, data line, 10-35 Scatter writes, 8-22, 8-23, 8-28 SCD DTE-20 bit, 8-17 Scheduler, RSX-20F, 7-4 Scheduling, RSX-20F, 7-6 task, 1-5, 7-9 Secondary protocol, 7-19, 8-24 Section, Communications Region, 8-1 Selection code, diagnostic, 8-15 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-38 owning processor's, 8-3 Service routine, terminal, 7-14 SET CLOCK NORMAL PARSER command, 4-17 SET CLOCK PARSER command, 4-17, 4-18 SET CONSOLE PARSER command, 4-4, 4-18 SET DATE PARSER command, 4-18 SET FS-STOP PARSER command, 4-19 SET INCREMENT PARSER command, 4-19 SET KLINIK command, D-4 SET KLINIK PARSER command, 4-19 SET MEMORY PARSER command, 4-19 SET NOT PARSER command, 4-19 SET OFFSET PARSER command, 4-20 SET PARITY-STOP PARSER command, 4-20 SET RELOAD PARSER command, 4-20 SET REPEAT PARSER command, 4-20 SET RETRY PARSER command, 4-20 SET TRACKS PARSER command, 4-21 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-4, D-5, D-6 Setting word transfer mode, 8-18 SHUTDOWN PARSER command, 4-21 Signal, acknowledge, 7-27 Data Terminal Ready, 7-12 DTR, 7-12, 7-14 Request To Send, 7-12 RTS, 7-12, 7-14 Significant event, 1-5, 1-7 Significant event flags, 10-11 Single-stepping the DTE-20, 8-11, 8-12 Snapshot file, C-l SNDLP location, 10-20 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 Stack pointer save area, 10-11 Stacks, PDP-II, 1-4 Start date, KLINIK access window, 10-14 START MICROCODE PARSER command, 4-21 START TEN PARSER command, 4-21 Index-22 INDEX (CaNT.) Start time, KLINIK access window, 10-14 Starting bootstrap program, 5-2, 5-7 Starting disk block, 6-32 Starting KLINIT, 5-6 Starting PARSER, 4-1 Starting RSX-20F, 5-6 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-27 Status block, CTY, 10-21 Front End, 10-10 LP-20, 10-28 STATUS DTE-20 register, 8-10 Status registers, device, 10-40 STATUS word, Communications Region, 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-31 DEC tape driver, 10-31 DTE-20 driver, 10-30 FIIACP, 10-31 FE driver, 10-31 floppy disk driver, 10-31 LP driver, 10-31 queued protocol, 10-31 terminal driver, 10-31 STD node, 7-6, 7-7 STD table, 10-30 .STDTB table, 7-7 STNXT routine, 7-27 Stop codes, RSX-20F, 9-5, A-I, 10-5 Storage bitmap file, 2-4 Strapping options, modem, 7-11 String data, transferring, 8-23 Index-23 Structure of packets, data, 8-29 STTYDN routine, 7-27 Subdirectories, loading monitor from, 5-2 Switch register, DECtape, 5-4 floppy disk, 5-3 Switch register bit definitions, 5-5 Switch register boot parameter, 10-13 Switching to primary protocol, 8-24 SWSLLT DTE-20 bit, 8-17 Symbol files, reading RSX-20F, 10-4 Symbolic debugger, FEDDT, 10-1, 10-2, 10-3, 10-4 Symbols loaded, saving FEDDT with, 10-2 Synchronous traps, 1-3, 7-9 SYSERR program, 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-16, 5-20, 5-21, 5-22, 5-23, 5-24, 5-25, 5-26, 5-27, 5-28, 5-29, 5-30, 5-31 System PUD entry, 10-37 System startup time, 7-22 System Task Directory, 7-6, 10-30 System traps, 7-9 T20ACP task, C-2 Tape boot program, magnetic, C-3 Task, ATL node of current, 7-8, 10-5 COP, C-2 FIIACP, C-l INI, C-2 KLE, C-l KLERR, 9-1 KLI, C-l KLXFER, 9-10, C-l MOU, C-l INDEX (CONT • ) Terminal task (Cont.) TPD entry for, 10-34 Terminal timeout routine, 7-20, 7-21, 7-22, 7-23 Terminating KLINIK link, D-7 Terminating KLINIT dialog, 5-6 Termination of byte transfer, error, 8-12 Test condition, field service, 8-15 Testing parity network, 8-18 Thread lists, LPT, 7-4 TTY, 7-4 Time, file creation, 2-3 file reVISIon, 2-3 PDP-II, C-2 Timeout counter, 10-20 Timeout routine, modem, 7-14, 7-15, 7-16 terminal, 7-20, 7-21, 7-22, 7-23 TKTN task, 9-1, C-l, 10-12 TO-IO buffer size, 10-15 TO-IO buffer's current device, 10-15 TO-IO buffer's current function, 10-15 TO-IO data transfer, 8-16, 8-22, 8-23 TO-IO data transfer across DTE-20, 8-1 TO-IO data transfers, controlling, 8-20 TO-IO delay count, 8-23 TO-IO queue, 8-29, 10-16 TO-IO queue current head, 10-15 TO-IO queue pointer, 10-6 TO-II data transfer, 8-16, 8-22 TO-II data transfer across DTE-20, 8-1 TO-II data transfers, controlling, 8-20 TO-II delay count, 8-23 TO-II queue, 8-29, 10-16 TO-II queue entry count, 10-15 TO-II queue pointer, 10-6 TOIO DTE-20 bit, 8-16 TOIOAD DTE-20 register, 8-19, 8-23 Task (Cont.) null, 7-9 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-30 Task image, patching a, 6-30 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-9, 10-32 Task Partition Directory, 10-34 Task pointer, current, 10-11 Task scheduling, 1-5, 7-9 Task that crashed, determining the, 10-5 Tasks, 1-5 Executive, 7-6 Files-II, 1-7 nonprivileged, 1-6 nonresident, 1-6 privileged, 1-6 resident, 1-6 RSX-20F, 7-6, C-l Tasks in GEN partition, installing, 7-8 TENADl-2 DTE-20 registers, 8-21, 8-22 Terminal, remote KLINIK, D-2 Terminal count, Send-All, 10-20 Terminal driver, STD entry for, 10-31 Terminal driver data base, 10-22 Terminal driver routine, 7-12, 7-13, 7-14 Terminal PUD entry, 10-36 Terminal service data base, 10-20 Terminal service routine, 7-11, 7-14 Terminal task, ATL entry for, 10-33 Index-24 INDEX (CONT • ) TOIOBC DTE-20 register, 8-10, 8-20, 8-23 TOIOBM DTE-20 bit, 8-18 TOIODB DTE-20 bit, 8-12 TOIODN DTE-20 bit, 8-11 TOIODT DTE-20 register, 8-18 TOIOER DTE-20 bit, 8-11 TOll DTE-20 bit, 8-16 TOIIAD DTE-20 register, 8-19, 8-23 TOIIBC DTE-20 register, 8-20, 8-23 TOIIDB DTE-20 bit, 8-11 TOIIDN DTE-20 bit, 8-12 TOIIDT DTE-20 register, 8-18 TOllER DTE-20 bit, 8-12 TOPID word, Communications Region, 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 subdirectories with BOOT.EXB, 5-2 TPD entry for CR task, 10-34 DECtape task, 10-34 DTE-20 task, 10-34 FIIACP task, 10-34 FE task, 10-34 floppy disk task, 10-34 GEN partition, 10-34 install task, 10-34 LP task, 10-34 queued protocol task, 10-34 RP task, 10-34 terminal task, 10-34 Tracking capability, KLINIT, 5-7 Transfer, direct data, 8-27 error termination of byte, 8-12 indirect data, 8-27 TO-IO data, 8-16, 8-22, 8-23 TO-II data, 8-16, 8-22 Transfer across DTE-20, TO-IO data, 8-1 TO-II data, 8-1 Transfer dialog, file, B-6 Transfer mode, byte, 8-22 Transfer mode (Cont.) diagnostic data, 8-15, 8-16 normal data, 8-15 setting byte, 8-18 setting word, 8-18 word, 8-22 Transfer rate, data, 8-21 Transferring data between processors, 8-8, 8-18, 8-19, 8-20, 8-21, 8-22, 8-25, 8-27 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-I0 data, 8-20 controlling TO-II data, 8-20 data, 1-4 Transition, carrier, 7-12 Trap, power-fail, 7-10 Trap conditions, 7-9 Trap handling, 7-10 Trap vectors, 1-3, 7-9 Traps, 1-3 asynchronous, 1-3, 7-9 synchronous, 1-3, 7-9 system, 7-9 TTY thread lists, 7-4 Type, file, 2-3 Index-25 UA.MCB file, 5-1 UB.MCB file, 5-1 UFD, 2-1 UFD error messages, 6-30 UFD task, C-2 UFD utility, JALL, 6-29 UFD utiltity, 6-29 UIC, 2-1 UNIBUS, 1-3 UNIBUS parity error, 8-17 NPR, 8-11 UNIBUS parity flip-flop, 8-18 INDEX UNIBUS receiver error, 8-18 Unit device tables, physical, 10-36 Unit Tables, Logical, 10-36 Unmapped system, 1-5 User File Directory, 1-7, 2-1, 6-29 User Identification Code, 2-1 User KLINIK dialog, remote, D-8 User mode, 4-4 User terminal, remote, D-IO Using the DTE-20 registers, 8-22 Utility programs, 7-6 RSX-IIM, 1-7 UUO's, TOPS-IO, 1-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-9 Verification error reports, microcode, 5-33 Verifying KL microcode, 5-2, 5-7, 5-39 Verifying memory examines, 8-8 Version number, Communications Region protocol, 8-3 Communications Region, 8-3 file, 2-2, 2-3 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 Volume number, relative, 2-2 (CONT • ) WEP DTE-20 bit, 8-18 WHAT CLOCK PARSER command, 4-21 WHAT CONSOLE PARSER command, 4-4, 4-21 WHAT DATE PARSER command, 4-21 WHAT INCREMENT PARSER command, 4-22 WHAT KLINIK command, D-7 WHAT KLINIK PARSER command, 4-22 WHAT MEMORY PARSER command, 4-22 WHAT OFFSET PARSER command, 4-22 WHAT PARITY-STOP PARSER command, 4-22 WHAT RELOAD PARSER command, 4-22 WHAT REPEAT PARSER command, 4-23 WHAT RETRY PARSER command, 4-23 WHAT TRACKS PARSER command, 4-23 WHAT VERSION PARSER command, 4-23 Word transfer mode, 8-22 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-26 XCT 71, 9-1 XCT PARSER command, 4-23 XOFF character, 7-19, 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-36 ZAP internal registers, 6-34 INDEX (CONT • ) ZAP utility, 6-30 lAB, 6-32 ILl, 6-32 IRO, 6-32 ZERO PARSER command, 4-23 Zeroing a floppy disk, 6-2 ZAP ZAP ZAP ZAP ZAP modes, 6-32 quantity register, 6-37 read-only mode, 6-32 registers, 6-36 relocation register, 6-33, 6-36 ZAP task image mode, 6-33 Index-27 TOPS-lO/TOPS-20 RSX-20F System Reference Manual AA-H352A-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. · ~ c m c o o Did you find errors in this manual? page number. If so, specify the error and the Please indicate the type of reader that you most nearly represent. [] Assembly language programmer [] Higher-level language programmer [] Occasional programmer (experienced) [] User with little programming experience [] Student programmer [] Other (please specify) ______________________________________ Name Date __________________________ Organization _________________________________ Telephone ___________________ Street ______________________________________________________________________ City____________________________ State _____________ Zip Code _____________ or Country 1 1 1 1 1 1 1 1 -----~.--BD;tBTea;~.ldHoere and Tape ----------------------f~ -111-------- ~~;,~;:;~~ ---:1 ~ ~ I.I~ if Mailed in the United States 1 1 1 1 1 1 1 1 1 BUSINESS REPLY MAIL FIRST CLASS PERMIT NO. 33 MAYNARD MASS. 1 1 1 1 1 POSTAGE WILL BE PAID BY ADDRESSEE 1 1 1 I SOFTWARE PUBLICATIONS 200 FOREST STREET MR1-2/E37 MARLBOROUGH, MASSACHUSETTS 01752 I 1 1 1 -- - - - - - Do Not Tear - Fold Here and Tape -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _I :3 U C) C: C'-_/ o digital equipment corporation Printed in U.S.A. /
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
advertisement