Digital PDFs
Documents
Guest
Register
Log In
DEC-15-YWZA-D
October 1969
198 pages
Original
6.8MB
view
download
Document:
PDP-15 Utility Programs
Order Number:
DEC-15-YWZA-D
Revision:
Pages:
198
Original Filename:
http://bitsavers.org/pdf/dec/pdp15/DEC-15-YWZA-D_PDP-15_Utility_Programs_196910.pdf
OCR Text
Digital Equipment Corporation Maynard, Massachusetts mnmnnma Programmer's Reference Manual PDP-15 Utility Programs PDP-15 UTILITY PROGRAMS For additional copies, order No. DEC-15-YWZA-D from Program Library, Digital Equipment Corporation, Maynard, Massachusetts DIGITAL EQUIPMENT 07154 Price $6.00 CORPORATION • MAYNARD, MASSACHUSETTS 1st Printing October 1969 Copyright© 1969 by Digital Equipment Corporation The following are registered trademarks of Digital Equipment Corporation, Maynard, Massachusetts: DEC FLIP CHIP DIGITAL PDP FOCAL COMPUTER LAB CONTENTS Page CHAPTER l EDITOR SECTION l INTRODUCTION SECTION 2 FUNCTIONAL DESCRIPTION 2. l Control Modes 2-1 2.2 Data Modes 2-1 2. 2. l Line-By-Line Data Mode 2-1 2.2.2 Block Data Mode 2-1 2.3 Data Files 2-2 2.3. l Using Monitor 1/0 2-2 2.3.2 Input and Subsidiary Files 2-3 2.3.3 Output Files 2-4 2.4 Using the Break (CNTRL P) Character 2-5 2.5 Using the Erase and Kill Characters 2-5 SECTION 3 EDITING OPERATIONS 3. l Modifying an Existing File 3-1 3.2 Creating a New File 3-2 3.3 Input/Edit Modes 3-2 3.4 Block Mode 3-2 3.5 Closing the New File 3-3 3.6 Error-Handling Conventions 3-3 3.6. l Command String Errors 3-3 3.6.2 Premature End-Of-Fi le 3-4 3.6.3 Read Errors and Line Overflow 3-4 3.6.4 Block-Mode Buffer Overflow 3-5 3.6.5 File-Naming and Calling Errors 3-5 3.7 File Renaming and Deletion 3-7 SECTION 4 EDITOR COMMANDS 4. l OPEN 4-1 4.2 READ 4-2 4.3 WRITE 4-2 iii CONTENTS (Cont) Page 4.4 CLOSE 4-2 4.4. 1 IC LOSE 4-2 4.4.2 SC LOSE 4-2 4.5 NEXT [NJ 4-3 4.6 PRINT [pJ 4-3 4.7 FIND [F] 4-3 4.8 LOCATE [L] 4-3 4.9 DELETE [DJ 4-4 4. 10 BOTTOM [BJ 4-4 4. 11 RETYPE [RJ 4-4 4. 12 INSERT [I] 4-4 4. 13 INSERT [I] 4-4 4. 14 GET [GJ 4-4 4. 15 CHANGE [C] 4-5 4. 16 TOP [T] 4-5 4. 17 VERIFY [VJ 4-5 4. 18 OVERLAY [0] 4-6 4. 19 APPEND [AJ 4-6 4.20 BRIEF 4-6 4.21 BLOCK 4-7 4.22 SIZE [SJ 4-7 4.23 EXIT 4-7 4.24 OUTPUT 4-8 4.25 CALL RENAME 4-8 4.26 CALL DELETE 4-8 4.27 RENEW 4-8 4.28 KEEP 4-8 SECTION 5 RECOVERY PROCEDURES SECTION 6 EXAMPLES OF EDITING REQUESTS APPENDIX A SUMMARY OF EDITING COMMANDS APPENDIX B 339 DISPLAY EDITOR iv CONTENTS (Cont) Page CHAPTER 2 PATCH UTILITY PROGRAM SECTION l INTRODUCTION 1. l General Information 1-1 SECTION 2 CALLING PATCH 2. l . DAT SLOT Assignments 2-1 2.2 Colling PATCH 2-1 SECTION 3 COMMANDS 3. l Command Input Format 3-1 3.2 Commands 3-1 3.2. l Select Commands 3-1 3.2.2 The List Command 3-2 3.2.3 The READ Command 3-5 3.2.4 The EXIT Command 3-6 3.3 Error Recovery 3-6 3.3. l Error Messages 3-6 APPENDIX A PATCH PROGRAM FORMAT APPENDIX B EXAMPLE OF OPERATION CHAPTER 3 LIBRARY UPDATE UTILITY PROGRAM SECTION l INTRODUCTION SECTION 2 UPDATE COMMANDS 2.1 File Specification Commands 2-1 2. 1. l Options 2-1 2. 1.2 File Name 2-2 2. 1.3 Command Terminator 2-2 2. 2 Update Action Commands 2-2 2.2. l DELETE (D) Command 2-3 v CONTENTS (Cont) Page 2.2.2 REPLACE (R) Command 2-3 2.2.3 INSERT (I) Command 2-4 2.2.4 END (E) Command 2-4 2.3 UPDATE Termination Commands 2-5 2. 3. l CLOSE (C) Command 2-5 2.3.2 KILL (K) Command 2-5 SECTION 3 DEVICE (.DAT) SLOT ASSIGNMENTS SECTION 4 ERROR CONDITIONS AND RECOVERY PROCEDURES 4. 1 Recoverable Errors 4-1 4. 1. l Unintelligible Commands 4-1 4. 1.2 Command Function/Option Errors 4-1 4. 1.3 Improper Name in Action Command 4-2 4. 1.4 Incorrect Input Source 4-2 4. 2 Unrecoverable Errors 4-2 SECTION 5 UPDATE EXAMPLE 5. 1 Update FILEA 5-1 5.2 Update BCDIO 5-1 CHAPTER 4 LINKING LOADER SECTION 1 INTRODUCTION SECTION 2 DESCRIPTION 2. l Operation 2-1 2.2 FORTRAN COMMON Statements 2-1 SECTION 3 INFORMATION UNITS SECTION 4 IDENTIFICATION CODES CONTENTS (Cont) Page SECTION 5 PROGRAM UNIT ORGANIZATION 5. l Main Program and Subprogram Organization 5-1 5.2 Block Data Subprogram Organization 5-1 SECTION 6 DEFINITIONS SECTION 7 LINKING LOADER OPERATING PROCEDURES 7. l Basic 1/0 Monitor Environment 7-1 7. l. l Structure of System Library 7-2 7. l. 2 Loader Memory Map 7-2 7. 1.3 Error Messages 7-3 7.2 Advanced Monitor Environment 7-4 SECTION 8 MEMORY MAPS 8. l Introduction 8-1 8.2 1/0 Monitor Environment 8-2 8.3 Advanced Monitor Environment 8-4 APPENDIX A SYMBOL CONCATENATION - RADIX 508 FORMAT APPENDIX B LOADER SYMBOL TABLE CHAPTER 5 CHAIN AND EXECUTE SYSTEM PROGRAMS SECTION l INTRODUCTION l. l Program Description 1-1 1.2 Calling Sequence 1-1 SECTION 2 CHAIN SYSTEM PROGRAM 2. l Functional Description 2-1 2.2 Operating Procedures 2-2 2.3 Error Condition Typeouts 2-4 2.4 Memory Allocation Typeout 2-4 vii CONTENTS (Cont) Page 2.5 2-5 Memory Map at CHAIN Build Time SECTION 3 EXECUTE SYSTEM PROGRAM 3. 1 Functional Description 3-1 3.2 Operating Procedures 3-1 3.2. 1 Special Operational Characteristics 3-2 3.3 Memory Map at Execute Time 3-2 CHAPTER 6 PIP SECTION l INTRODUCTION SECTION 2 DEVICE ASSIGNMENTS 2. 1 Basic 1/0 Monitor System 2-1 2.2 Advanced Monitor 2-1 SECTION 3 PIP COMMAND STRING: GENERAL 3. 1 Operation Character 3-2 3.2 Device Name 3-2 3.3 Filename and Extension 3-3 3.4 3.4. 1 3.4.2 Switch Options 3-3 Data Modes 3-3 Subsidiary Operations 3-3 SECTION 4 PIP FUNCTIONAL DESCRIPTION 4-1 4. 1 Operations Under the Basic 1/0 Monitor 4-1 4.1. l Transfer Fi le (T) 4-1 4.1.2 Verify File (V) 4-1 4. 1.3 Segment File (S) 4-1 4.2 Switch Options Under the Basic 1/0 Monitor 4-2 4.2.1 Image Alphanumeric a) 4.2.2 IOPS Binary (B) 4.2.3 IOPS ASCII (A) 4-3 4-3 4-3 4.2.4 Bad Parity Correction (G) 4-3 viii CONTENTS (Cont) Page 4.2.5 Tab to Space Conversion (E) 4-4 4.2.6 Space to Tab Conversion (C) 4-4 4.2.7 Segment File (Y) 4-4 4.2.8 Combine Files \'N) 4-4 4.2.9 Insert Form Feed (F) 4-4 4.2.10 Delete Trailing Spaces (T) 4-4 4.2. 11 Delete Sequence Numbers (Q) 4-5 4.3 Operations Under the Advanced or Background/Foreground Monitor 4-5 4.3. l List Directory (L) 4-5 4.3.2 New Directory (N) 4-5 4.3.3 Delete File (D) 4-5 4.3.4 Rename Fi le (R) 4-5 4.3.5 Copy Mass Storage Unit (C) 4-6 4.3.6 Block Copy (B) 4-6 4.4 Switch Options Under the Keyboard Monitor 4-6 4.4. l Image Binary (H) 4-7 4.4.2 Dump Mode (D) 4-7 4.4.3 New Directory (N) 4-7 4.4.4 New Directory With t QAREA (S) 4-8 SECTION 5 PIP COMMAND STRING 5. 1 Transfer File (T) 5-1 5. 1. l Copying Files 5-1 5. 1.2 Creating Files 5-2 5. 1.3 Listing Files 5-2 5. 1.4 Using the G Switch 5-2 5. 1.5 Using the C or E Switches 5-3 5. 1.6 Using the N or S Switch 5-3 5. 1. 7 Using the W Switch 5-4 5. 1.8 Using the Y Switch 5-4 5.2 Verify File (V) 5-5 5.3 Segment File (S) 5-6 5.4 List Directory (L) 5-7 5.5 New Directory (N) 5-7 ix CONTENTS (Cont) Page 5.6 Delete File (D) 5-8 5.7 Rename Fi le (R) 5-8 5.8 Copy Mass Storage Unit (C) 5-8 5.9 Block Copy (B) 5-9 SECTION 6 CORRECTION PROCEDURES 6. l tP (CTRL Key P) 6-1 6.2 Rubout (RO) 6-1 6.3 tU (CTRL Key U) 6-1 6.4 PIP Error Detection and Correction 6-2 APPENDIX A SUMMARY OF PIP COMMANDS CHAPTER 7 DSKPTR/DSKSAV UTILITY PROGRAMS SECTION 1 INTRODUCTION SECTION 2 DSKPTR OPERATING PROCEDURE SECTION 3 DSKSAV UTILITY PROGRAM CHAPTER 8 PUNCH UTILITY PROGRAM SECTION 1 INTRODUCTION 1. 1 Equipment Requirements 1-1 1.2 Software Requirements 1-1 1. 2. 1 Resident Programs 1-2 1.3 Program Organization 1-2 SECTION 2 OPERATING PROCEDURES 2. 1 Load and Punch 2-1 2.2 Error Detection and Recovery 2-2 x CONTENTS (Cont) Page SECTION 3 EXAMPLES 3. 1 Producing an Executable User Program Tape 3-1 3. 2 System Program Changes 3-1 3.3 Modifying User . DAT (Device Assignment Table) Slots 3-2 3.3. 1 Using an Alternate I/O Library Handler 3-2 3.3.2 Using a Non-Standard 1/0 Handler 3-3 APPENDIX A I/O MONITOR SKIP CHAIN APPENDIX B LINKING LOADER IOC TABLE APPENDIX C RADIX 508 VALUES CHAPTER 9 DUMP UTILITY PROGRAM SECTION 1 INTRODUCTION 1. 1 Operating Procedures 1-1 1. 1. 1 Calling Procedure 1-1 1• 1• 2 Genera 1 Command Characters 1-1 1 • 1• 3 Command String 1-1 1.2 Error Conditions 1-2 1• 3 Restart Procedures 1-2 1.4 Example 1-2 CHAPTER 10 DDT SECTION 1 INTRODUCTION 1. 1 General Information 1-1 1.2 Terminology Used 1-1 SECTION 2 DEBUGGING WITH DDT 2. 1 Loading the Program 2-1 2.2 Using the Breakpoints 2-1 2.3 Examination and Modification 2-3 xi CONTENTS (Cont) Page 2.4 Type-Out Modes 2-4 2.4. l Address Modes 2-5 2.5 Starting and Restarting 2-6 2.6 Searching Operations 2-6 2.7 Special Locations Used by DDT 2-7 2.8 Symbol Definitions 2-7 2.9 Patch Fi le Output 2-8 2. 10 Patch Fi le Input 2-8 2. 11 Co-resident Subroutines 2-9 2. 12 Indirect Address References 2-9 2. 13 Miscellaneous Features 2-9 APPENDIX A SUMMARY OF COMMANDS APPENDIX B MNEMONIC INSTRUCTION TABLE APPENDIX C PATCH FILE FORMAT CHAPTER 11 SRCCOM, SOURCE COMPARE UTILITY PROGRAM SECTION 1 INTRODUCTION l. l General Description 1-1 1. 1. 1 Software Operating Environment 1-1 1. 1. 2 Minimum Equipment Configuration 1-1 1.2 Reference Material 1-2 1.3 Special Symbols 1-2 SECTION 2 OPERATION 2. 1 Loading Procedure 2-1 2.2 Device Assignments 2-1 2.3 Operating Sequence 2-1 2.4 Command String 2-2 2.5 Using Nonfi le-Oriented Input Device 2-3 2.6 File-Oriented SRCCOM Listing 2-3 xii CONTENTS (Cont) Page SECTION 3 OUTPUT FORMATS 3. l M Switch On 3-1 3. l. l Lines Inserted 3-1 3. 1.2 Lines Deleted 3-1 3. 1.3 Lines Changed 3-2 3.2 M Switch Off 3-3 3.2. l Lines Inserted 3-3 3.2.2 Lines Deleted 3-3 3.2.3 Lines Changed 3-4 SECTION 4 ERROR RECOVERY 4. l Operator Errors 4-1 4.2 Software Errors 4-1 4.3 Device Not Enabled 4-2 CHAPTER 12 SGEN SYSTEM GENERATOR SECTION l INTRODUCTION SECTION 2 GENERAL OPERATING PROCEDURES 2.1 Formation of Skip Chains 2-1 2. l. l DECtape or DECtape/Disk Systems 2-2 2. 1.2 Negative Skips 2-3 2.2 Formation of Device Assignment Table (.DAT) 2-3 APPENDIX A SYSTEM GENERATION, STEP-BY-STEP PROCEDURE APPENDIX B PIP ERROR MESSAGES xiii CONTENTS (Cont) Page ILLUSTRATIONS CHAPTER l SECTION 2 2-1 Schematic of Line Processing In Block and Normal Modes 2-2 SECTION 6 6-1 Sample Input File 6-2 6-2 Input Fi le Listing Marked for Correction 6-3 6-3 Hard-Copy Output of Editing Session (Sheet l) 6-4 6-3 Hard-Copy Output of Editing Session (Sheet 2) 6-5 6-4 Fi le Resulting From Editing Session 6-6 CHAPTER 7 SECTION l 1-1 1-1 Paper Tape Block Format CHAPTER 10 APPENDIX C C-1 C-1 TABLES CHAPTER l SECTION 2 2-1 Standard • DAT Assignments for Text Editor 2-3 2-2 Output File Conventions for the Text Editor 2-4 xiv CONTENTS (Cont) Page TABLES (Cont) CHAPTER 6 SECTION 2 2-1 I/O Monitor .DAT Slot Assignments 2-1 2-2 Initial .DAT Slot Assignments 2-2 SECTION 3 3-1 PIP Operation Characters 3-2 3-2 PIP Device Names 3-2 SECTION 4 4-1 Legal Operation/Switch Combinations 4-2 4-3 Legal Switch Combinations for Transfer File (T) 4-2 4-3 Legal Operation/Switch Combinations 4-6 4-4 Legal Switch Combinations for Transfer File 4-7 CHAPTER 8 SECTION 3 3-1 Standard Paper Tape . DAT Slot Assignments 3-2 3-2 Loader - 1/0 Correspondence Table 3-3 CHAPTER 12 APPENDIX A A-1 A-1 Query/Response Procedure xv PREFACE This manual contains individual descriptions of the PDP-15 Utility programs provided as standard software for the majority of PDP-15 Systems. Each utility program is described in a complete, self-contained chapter of this manual. A quick-reference locator is provided. OVERALL PDP-15 DOCUMENTATION STRUCTURE A block diagram of the overall PDP-15 Family of Manuals is illustrated on the following page, accompanied by a brief description of the contents and the order number of each manual. ORGANIZATION OF PDP-15 SOFTWARE MANUALS There are two basic categories of PDP-15 software manuals: a. Unique, single-system manuals, which contain information concerning only one of the four available PDP-15 Systems. This category consists of detailed software system descriptive manuals, each with an associated operational command summary. An example of this class of manual is the PD P-15/10 Software System manual and its associated PDP-15/10 User's Guide. b. Common, multisystem manuals that describe utility, language, application, and other PDP-15 programs which can be used in one or more of the four available PDP-15 Systems. Examples of this type of manual are the PDP-15 Utility, MACR0-15 Assembler, and STATPAC manuals. xvi PDP-15 FAMILY OF MANUALS SYSTEMS REFERENCE MANUAL HARDWARE ACCEPTANCE TE ST PROCEDURES INSTALLATION MANUAL MODULE MANUAL r SOFTWARE USER'S GUIDE VOL. 1 PROCESSOR v L. PERIPHERALS INTERFACE MANUAL OPERATORS GUIDE PDP·15/40 PDP-15/30 PDP-15/30 PDP-15/20 PDP-15/20 PDP-15 / 1 0 SYSTEM USER'S l-'----+----1 GUIDE PDP-15110 SOFTWARE SYSTEM L-------.-.1 x ~. UTILITY PROGRAMS MANUAL MAINTENANCE MANUAL VOL. 1 PROCESSOR VOL.2 PROCESSOR OPTIONS VOL. 3 PERIPHERALS MACRO -15 FORTRAN nz: FOCAL-15 8/ 15 TRANSLATOR MANUFACTURERS EQUIPMENT MANUALS 15-0040 SYSTEM REFERENCE MANUAL - Overview of PDP-15 hardware and software systems and options. instruction repertoire. expansion features and descriptions of system peripherals. (DEC-15-GRZA-D) USERS GUIDE VOLUME 1, PROCESSOR - Principle guide to system hardware includes system and subsystem features. functional descriptions. machine-language programming considerations. instruction repertoire and system expansion data. (DEC-l 5-H2DA-D) VOLUME 2 PERIPHERALS - Features functional descriptions and programming considerations for peripheral devices. (DEC-15-H2DA-D) OPERATOR'S GUIDE - Procedural data. including operator maintenance. for using the operator's console and the peripheral devices associated with PDP-15 Systems. (DEC-15-H2CA-D) PDP-15/10 SYSTEM USER'S GUIDE - COMPACT and BASIC 1/0 Monitor operating procedures. (DEC-15-GG IA-D) description including the associated language, utility and applications programs. (DEC-l 5-MR3A-D) PDP-15/40 Disk-Oriented BACKGROUND/ FOREGROUND Monitor Software System - Background/Foreground Monitor in a disk oriented environment is described; programs include language, utility, and application types. (DEC-15-MR4A-D) MAINTENANCE MANUAL VOLUME 1, PROCESSOR - Block diagram and functional theory of operation of the processor logic. Preventive and corrective maintenance data. (DEC-15-HB2A-D) VOLUME 2, PROCESSOR OPTIONS - Block diagram and functional theory of operation of the processor options. Preventive and corrective maintenance data. (DEC- I 5-HB2A-D) VOLUME 3, PERIPHERALS (Set of Manuals): Block diagram and functional theory of operation of the peripheral devices. Preventive and corrective maintenance data. (DEC-15-HB2A-D) PDP-15/20 SYSTEM USER'S GUIDE - Advanced monitor system operating procedures. (DEC-15-MG2A-D) INSTALLATION MANUAL - Power specifications, environmental considerations, cabling and other inform a ti on pertinent to installing PDP-15 Systems. (DEC-15-H2AA-D) PDP-15/30 SYSTEM USER'S GUIDE - Background/ Foreground monitor system operating procedures. <DEC-15-MG3A-D) ACCEPTANCE TEST PROCEDURES - Step by step procedures designed to insure optimum PDP-15 Systems operation. PDP-15/40 SYSTEM USER'S GUIDE - Disk-oriented background/foreground monitor system operating procedures. (DEC-15-MG4A-D) MODULE MANUAL - Characteristics, specifications, timin~ and functional descriptions of modules used in PDP-15 Systems. PDP-15/10 SOFTWARE SYSTEM - COMPACT software system and BASIC 1/0 Monitor system descriptions. <DEC-15-GRIA-DI INTERFACE MANUAL - Information for interfacing devices to a PDP-15 System. (DEC-15-HOAA-D) PDP-15/20 ADVANCED Monitor Software System ADVANCED Monitor System descriptions: programs in<.:lude system monitor and language. utility .and application types: operation. core organization and input/ output operations within the monitor environment are discussed. (DEC-l 5-MR2A-D) PDP-15/30 BACKGROUND/FOREGROUND Monitor Software System - Ba1.:kground/F oreground Monitor UTILITY PROGRAMS MANUAL - Utility programs common to PDP-15 Monitor systems. (DEC-15YWZA-D) MACR0-15 - MACRO assembly language for the PDP-15. (DEC:-15-AMZA-D) FORTRAN IV - PDP- I 5 version of the FORTRAN IV compiler language. (DEC-15-KFZA-DJ FOCAL-15 - An algebraic interactive compiler level language developed by Digital Equipment Corporation. (DEC-15-KJZA-D) CHAPTER 1 EDITOR SECTION 1 INTRODUCTION The Text Editor (EDIT) is c:i powerful context-editing program that allows the modification and creation of symbolic source programs and other ASCII text material. t By means of commands issued from the teletype, the Editor is directed to bring a line, or group of lines, from the input file to an internal buffer. The user can then, by means of additional commands, examine, delete, and change the contents of the buffer, and insert new text at any point in the buffer. When the line, or block of lines, has been edited, it is written into a new file an the output device. The Editor is most frequently used to modify MACRO and FORTRAN IV source programs, but it can also be used to edit any symbolic text. The Editor operates in the ADVANCED Software System with either the I/O or Keyboard Monitor and can be used with all standard peripheral devices. In systems with greater than BK, the additional memory (except that reserved for the Monitor and the required device handlers) is utilized for block mode buffers. tThe Editor reads and writes standard IOPS ASCII lines. The characteristics of IOPS ASCII text are described in the applicable Software System description manual (refer to Preface for a list of applicable manuals.) 1-1 SECTION 2 FUNCTIONAL DESCRIPTION 2. l CONTROL MODES The Editor operates in one of two control modes; in Edit (or Command) Mode the program accepts and acts upon control word and data strings to open and close files; to bring lines of text from an open file into the work area; to change, delete, or replace the Iine currently in the work area; and to insert single or multiple Iines after the line in the work area. In Input {or Text) Mode, lines from the teletype are interpreted as text to be added to the open file. Commands are available for conveniently changing control mode. 2.2 DATA MODES Data from the input file is made available for editing in two ways: in Line-By-Line Mode or in Block Mode. 2.2. l Line-By-Line Data Mode In Line-By-Line Data Mode, a single line is the unit of the input file available to the user for modification at any point. The line currently available is specified by a pointer, which can be thought of as moving sequentially through the file, starting at the first line, in response to typed editing commands. When a file is opened at the beginning of an editing session, the first line of that file is brought into the work area and is available for modification. This line remains in the work area until the user requests that a new line be brought in. The pointer then moves down the file until the line requested is encountered. That line is brought to the work area and, as the "current line," can be modified. Lines previously skipped over are no longer available for editing by the user, but are written in the output file. Thus, at any point in a single edit run in line-by-I ine mode, the user is able to modify only the portion of the input file consisting of the current line and all lines between the current line and the end of the file {i.e., the current line and all lines below it). 2. 2. 2 Block Data Mode In Block Data Mode, a user-specified portion of the input file is held in a core buffer for editing until the user requests that the contents of the buffer be added to the output file. A group of Editor commands is available for use in Block Mode only {see Section 4) in addition to the commands used in line-by-line editing. When the user is operating in Block Mode, commands to the Editor are honored only with respect to that portion of the input file currently occupying the buffer. The lines of text in the buffer are made available for modification through the use of normal locative requests and can be reaccessed until the buffer is emptied by the user· 2-1 Unless deleted, lines passed over in Block Mode are not lost to the user (as in Line-By-Line Mode) until the contents of the buffer are written in the output file. Consider, for example, the editing request to search for and bring in a specified line. In Line-By-Line Mode, the result is a scan of (possibly) the entire file below the pointer. The same request in Block Mode provides a search of the entire buffer below the pointer, but no further. Block Mode has another advantage: rapid correction of editing command errors. If the user finds that he has typed the wrong command, he can immediately correct it, because the buffer has not been added to the output file. In Line-By-Line Mode, a command error may cause the program to bypass a line in which a change is needed. The user must then output a new input Fi le and begin editing again. READ AND DECODE COMMAND NO PROCESS CURRENT LINE NO ADD CURRENT LINE TO OUTPUT FILE YES ADD CURRENT LI NE TO OUTPUT PAGE YES GET NEXT LINE FROM INPUT PAGE GET NEXT LINE FROM INPUT FILE ' - - - - - - - - - - - NO YES 150065 Figure 2-1 Schematic of Line Processing in Block and Normal Modes 2.3 2.3. l DATA FILES Using Monitor 1/0 The Editor makes use of the Monitor Input/Output Programming System for l/O transfers and communicates with !OPS by way of entries in the Device Assignment Table. Entries in DAT which are required by the Editor are given in Table 2-1. Methods of modifying DAT are described in the applicable Software System manual (refer to the Preface for a list of manuals). 2-2 Table 2-1 Standard . DAT Assignments for Text Editor . DAT Entry Number Used For -3 Teleprinter output; messages to user -2 Keyboard input; text and commands -14 File input -15 Scratch or edit file outputt -10 Subsidiary file input tThe use of the scratch device is described under Output Files. 2.3.2 Input and Subsidiary Files The Editor will accept file input from a maximum of two devices, in addition to input from the keyboard. The first device normally holds a previously prepared file upon which changes are to be carried out. The second, the subsidiary file device, is usually the medium through which additional, previously prepared, text is inserted in the object file. Either one, or both, of these devices may be ignored by the user, in which case the Editor assumes that al I data wi 11 come from the keyboard. Care must be taken in the specification of the subsidiary input device to ensure that the data of interest residing thereon was recorded in nonfile-structured fashion. This is the only recording mode for the paper tape and card reader. The user has the choice of writing data in either a file-structured, or a nonfile-structured, manner For other devices {e.g., DECtape). tt The characteristics of the subsidiary input device are determined when the Editor is first loaded. If that device can be file-structured, the comment SECONDARY INPUT DEVICE IS FILE-ORIENTED is printed on the teletype to warn the user that disastrous results will occur if the data to be read from the device is file-structured. Note, however, that if the data to be read was recorded in nonfile-structured fashion, then the requested device is a legal one for secondary input. Accordingly, the Editor then asks the question, DO YOU WISH TO CONTINUE? The user's answer indicates the nature of the data on the secondary input device. If the user's response is YES~ ttFor a discussion of data-handling conventions in file-structured and nonfile-structured input/output modes, see the applicable Software System manual {refer to Preface for a list of applicable manuals). 2-3 then the program reads data from the device in the normal (nonfile-structured) way. If the user's onswer is NO (or anything except YES) file-structured data is assumed, and return is made (via .EXIT) to the Monitor. 2.3.3 Output Files The Editor attempts to determine whether or not the input and scratch devices are file-structured immediately on receiving control after having been loaded. If either one of the devices is not file-structured, then the scratch device (DAT entry -15) is assigned as the final output device. If both devices are file-structured, the scratch device is assigned an intermediate function and the input device is used as the final output device. The intent, in all cases, is to allow replacement of the input file by the edited output file. This is possible only when the input and output devices can be both read and written. If replacement can be accomplished (both devices are file-structured), the following sequence of events takes place when the files are closed after editing. a. The intermediate output file is read from the scratch device and written on the input device under a temporary name. b. The old input file is deleted from the input device. c. The intermediate output file is deleted from the scratch device. d. The intermediate output file, temporarily named and now residing on the input device, is given the name previously assigned to the old (now deleted) input file. e. The output file is closed and immediately becomes available for use. If no replacement can be accomplished, no change is ever made to the input file. If the output device is file- oriented, the new edited file is properly entered in the file directory for that device under the name given in the OPEN or CLOSE command sequences. The possible destinations of the new edited file are summarized in Table 2-2. Note that in the process of file housekeeping, there is always at least one copy of the output file available on one, or both, of the devices. Further, the original input file is not deleted until the new file has been successfu 1ly written and closed. A system failure, therefore, can never resu It in total loss of data. Recovery procedures to be used in case of difficulty are outlined in Chapter 5. Table 2-2 Output File Conventions for the Text Editor Input Device Scratch or Output Device Edited File appears on: Input File is: File-oriented Fii e-or ie nted Input Device Deleted Fi Ie-ori ented Nonfi le-oriented Output Device Unchanged Nonfile-oriented Fi le-oriented Output Device Unchanged Nonfi le-oriented Nonfi le -oriented Output Device Unchanged 2-4 2. 4 USING THE BREAK (CNTRL P) CHARACTER Frequently the user, having made a mistake in his command Ii ne, wishes to stop processing and re-issue his request. The user, for example, may have asked erroneously for a line which is absent from the input file. When the Editor begins its search for the requested line, it will not give up until that line is found, or until the end of the input file is encountered. The user, meanwhile, has noticed his typing mistake. Control must now be transferred from the command processor to the command decoder. The Editor's break, or quit, character provides the mechanism for the orderly accomplishment of the transfer. When the user types the quit character (CNTRL P) during command processing, the normal instruction sequence is interrupted when processing of the current line has been completed, Edit Mode is reentered, and the program reads a new edit command from the keyboard. Nothing is lost from the output file. Depending on the command being serviced when CNTRL P was typed, the pointer is left in one of two positions. In the first (usual) case, the pointer indicates the line which was being processed when the break character appeared. This line is now the current line, and is dealt with in the normal way. In the second case, the pointer is left between two lines. The current-line area is empty, and some locative request (e.g., NEXT) must be issued to move a line into the work area. The break character results in program restart when the Editor is waiting for a command. In Input Mode, the break character resu Its in a control mode change. 2.5 USING THE ERASE AND KILL CHARACTERS The Monitor allows the use of two keyboard characters for correction of the line currently being typed by the user. The Rubout key (Erase character) results in the deletion of the immediately preceding character. The Monitor echoes a backslash(\) for each Rubout typed. CNTRL U (Kill Line character) results in the deletion of the entire line as typed to the CNTRL U. The Monitor echoes a commercial "at" sign(@) for each CNTRL U typed. CNTRL Uhas a second function when used during output from the Editor to the teletype. When the user types C NTRL U while a line is being printed, output is immediately terminated, and a carriage return is issued. CNTRL U functions in this case as the user's means of overriding his previous request for the output of tediously long lines. 2-5 SECTION 3 EDITING OPERATIONS The Editor always begins in Edit Mode and assumes that the user wishes to modify some (named or unnamed) file. When first loaded, or when restarted for a new file, the program types where n = version number x = modification level on the teleprinter and waits for the user's first command. EDITOR Vnx 3. l MODIFYING AN EXISTING FILE If the input device is file-structured (disk, drum, magnetic tape, or DECtape), the first command to the Editor must be 0 PEN file name ext~ where "filename" is the primary namet of the wanted file residing on the input device and "ext" is its extension.tt Ext can be omitted and, if so, is assumed to be SRC. If the file specified is not found in the directory, the program assumes that the user wishes to create a file named "filename ext." Accordingly, when it has been determined that the named file is absent from the input device, the Editor types FILE filename ext NOT FOUND. INPUT Input Mode is entered and subsequent lines from the teletype are inserted in a new temporarily named file on the output device. If the specified file is present on the input device, an intermediate temporarily named file is opened for writing on the output device, and the input file is opened for reading. The user may then proceed to make the necessary changes in the input file. If the input device is not file-structured (e.g., paper tape reader, card reader), the user's first command after program initialization can be any edit request. The OPEN command is not required for nonfile-structured devices. tMaximum of six characters permitted for "filename". tt Maximum of three characters permitted for "ext". 3.2 CREATING A NEW FILE When the user wishes to create a new file, he need only issue a carriage return, thereby entering Input Mode. If the output device is file-structured, a temporarily named file is opened for writing and text Iines from the teletype are added to it as they appear. If the output device is not file-structured, the file-naming conventions are bypassed. When both input and output devices are file-structured, the user can issue the OPEN command, followed by the name he wishes to assign to his new file. Since a file of the name given is guaranteed not to be found (if the user has properly chosen his new name), Input Mode is immediately entered, following the standard error message. The name specified is assigned to the final output file if no other name is given in the CLOSE command. 3.3 INPUT/EDIT MODES To enter text from the teletype, the Editor must be in Input Mode. To carry out an edit function on the current Iine, the Editor must be in Edit Mode. Control mode may be changed at any time by typing a line of zero length (a line consisting of a carriage return only). The Editor command INSERT (without arguments) also causes a mode change. After the user changes control modes, the Editor types INPUT or EDIT, indicating the control mode in effect. 3 .4 BLOCK MODE The Editor recognizes several commands which are designed to be useful in the Block, or Page, Mode. In Block Mode, a user-specified portion of the input file is held in a core buffer until the user indicates his satisfaction with the current state of that portion. Block Mode is entered via the control word BLOCK, followed by the parameter ON. When in Block Mode, the user can take advantage of all the locative and manipulative commands (FIND, LOCATE, CHANGE, etc.) and, in addition, can employ the TOP command to re-examine portions of the text buffer. Line-By-Line Mode is re-entered by use of the BLOCK OFF command. If the BLOCK OFF command is issued before the buffer is empty, the following comment is printed: BUFFER NON-EMPTY The user must empty the buffer to terminate Block Mode. 3-2 3. 5 CLOSING THE NEW FILE When the user, after modifying his input file, is satisfied that all needed changes have been carried out, he is required to close out the input and output files. The edit command CLOSE filename ext) initiates the sequence of events described above (Paragraph 2. 3. 3). Neither "filename" nor "ext" need be specified if previously given in the OPEN command. If filename and ext are present in the command string, they override the names given in the OPEN command. Both filename and ext are ignored if the output device is nonfile-oriented. 3.6 3. 6. l ERROR-HANDLING CONVENTIONS Command String Errors All mistakes in the use of Edit Mode control words result in a common complaint by the Editor. Although the possible errors in usage fall into a number of distinct categories, the program makes no attempt to differentiate among error types. The reasons for this common treatment lie in the requirement that the Editor take some cognizance of its memory allocation (relatively obscure error types need as much memory for recognition and response as do the more usual mistakes) and in the fact that the treatment rendered makes the error self-explanatory. Command string errors, then, all result in the single typed comment, NOT A REQUEST: followed, on the next line, by the request line with which the Editor had trouble. Usual types of command string errors include the following: a. The edit control word issued was not among those in the program's repertoire. b. A SIZE command was issued with a missing argument or an argument of "l." When the BRIEF Mode (see Paragraph 4.20} is ON, the Editor comment and the command line in error are replaced by a single typed question mark: 3-3 3. 6. 2 Premature End-Of-Fi le During the processing of some commands, it occasionally happens that a read is attempted which moves the pointer below the last line of a logical (or physical) group. Consider, for example, the effect of a numeric argument in the GET n command line. The program reads successive lines from the subsidiary input device until exactly n I ines have been read. If, in the process of reading, it is discovered that fewer than n lines are physically present on the secondary input medium (paper tape, say), then a premature end-of-file condition is said to exist. An improperly formulated FIND request (the character string typed is absent from the file) results in a similar condition. Depending on the character of the incoming group of lines (block buffer, secondary input medium, or input file), the appearance of an unexpected end-of-file causes a comment to be typed to inform the user of the difficulty. The form of the message is: BUFFER} END OF { MEDIUM REACHED BY: FILE followed, on the next line, by the edit request which caused the problem. A premature end-of-file causes the pointer to be left below the final line of the group being read. 3 . 6. 3 Read Errors and Line Overflow The Editor recognizes two types of errors which may occur during the processing of the input file. Bath errors result in an appropriate printed comment and immediate transfer of control to the command decoder. The line in error is printed and left in the work area for modification by the user. The first type of error occurs when the input file device handler detects either incorrect parity or a faulty checksum in the incoming line. The printed comment is: READ ERROR: followed by the line in which the error was encountered. The second difficulty results from the appearance of a line which is too long to be contained in the program's internal buffers. Any line of more than 90 10 characters (not including terminator) results in the comment: TRUNCATED: followed by the first (leftmost) 90 characters of the long line. The remaining right-end characters are discarded. 3-4 The user has the choice, after either type of error, of modifying the line which caused the complaint (via any manipulative request) or of allowing the line to stand as is in the output file (via any locative request). 3. 6. 4 Block-Mode Buffer Overflow When Block Mode is in effect, it is possible for an attempted addition of a line to the Block-Mode Buffer to exceed the buffer's capacity. This might occur, for example, during the processing of a READ request if the buffer length (previously defined by a SIZE command) is too great to be accommodated by the memory available. When the capacity of the buffer is exceeded, the program types the comment: BUFFER CAPACITY EXCEEDED BY: (offending I ine) To eliminate this error condition, the operator must delete the excess (offending) line. The user should control carefully the size specification of the buffer and lines entered to ensure that this error condition is avoided. 3.6.5 File-Naming and Calling Errors Errors in filename usage can be classified in three general groups. Either the named file cannot be found, or a name has not been given to the file at a point where one is needed, or a name has been given which cannot be used. 3.6.5.1 Absent File - If the file named in the OPEN request line cannot be found on the device associated with DAT slot-14, the assumption is made that the user wishes to create a new file with the name given. The program prints the comment: FILE [filename ext] NOT FOUND. and changes to Input Mode. 3.6.5.2 Absent File Name - If no filename is given either in an OPEN request line or as an argument to the CLOSE command, the program, after attempting to process the CLOSE request, prints: NO FILE NAME GIVEN. The next edit request must be another CLOSE naming the file. 3-5 If no OPEN command is issued (a new file is being created), any locative request (FI ND, NEXT) wil I result in the comment: NO INPUT FILE PRESENT. 3. 6. 5. 3 Identically-Named Files - The problem of duplicate file names is apparent on two levels. In the first case, it is possible for a previous edit run to have been aborted with one of the Editor's temporary files (normally . TFIL l EDT) closed on the output device. The closing of the temporary file created during the current edit run results in the deletion of the like-named file from the previous run. To enable the retrieval of prior work, the Editor types the comments: FILE . TF!Ll EDT IS PRESENT ON OUTPUT DEVICE. PLEASE RENAME IT OR IT WILL BE DELETED. If the user wishes to preserve the contents of . TFIL l EDT, he must rename it using the CALL request (see Paragraph 3. 7). At the second level, it may happen that the file name given in a CLOSE sequence is identical to that of another file on the (current) output device. In most cases, the program types: PLEASE USE ANOTHER NAME. A second CLOSE request (with a unique name) can then be issued. If file processing has proceeded to a point at which recovery, as described above, is impossible, the Editor recognizes a priority scheme when file-name difficulties are encountered. An attempt is made, first, to ensure that the new (modified) version of the file being edited is left on . DAT slot -14 and properly named. If that is impossible, the program tries to leave the new file (again, properly named) on .DAT slot -15. If that cannot be done either, then the new file is left on . DAT slot -15 and is named . TFIL l EDT. The Editor then reports the nature of the difficulty, the final destination of the file, and its current name, thus: FILE [filename ext] IS PRESENT ON OUTPUT DEVICE. YOUR EDITED FILE IS ON .DAT-14 (OR -15) AS [newfile ext] ORIGINAL FILE DELETED. The user now knows the residence of his edited file (. DAT-14 or . DAT-15) and the name under which it can be accessed. 3-6 3.6.5.4 Nothing in File - The following error message can result from issuing CLOSE command prior to WRITE command when Block Mode is ON, or by having OUTPUT turned off when a WRITE or CLOSE command is issued: NOTHING IN FILE In any event, the control returns to the Editor. The contents of the buffer remain unchanged. In the case of file-oriented input and output, the input file is left unchanged. 3.7 FILE RENAMING AND DELETION The CALL function allows user access to the file renaming and deletion facilities in the Editor. cannot be issued while any file (either input or output) is open. This command That is, it can only be used immediately after the Editor is loaded or restarted. Format: CALL RENAME { INPUTJ FILE 1 EXl FILE2 (EX2) OUTPUT The file FIL El EXl on . DAT-14 (if INPUT is specified) or .DAT-15 (if OUTPUT is specified) is given the new name FILE2. EX2 need not be given. If it is not, EXl is used; if it is given, EX2 is used. CALL DELETE { INPUTJ FILNAM EXT OUTPUT The file named FILNAM EXT is deleted from the device specified (INPUT or OUTPUT). and, if it is not, SRC is used. 3-7 EXT need not be given SECTION 4 EDITOR COMMANDS When Edit Mode is in effact, the following commands result in the specified activity. Abbreviations for most commands consist of the initial characters of those commands. Legal abbreviations are given in square brackets. Optional arguments are given in parentheses. Certain commands (e.g., FIND, RETYPE) require the presence of arguments. Others (DELETE, NEXT) can take explicit arguments at the option of the user. Each command must be separated from its argument string by a single blank character. This blank delimiter is considered by the Editor to be a part of the command itself, not part of the argument string which follows the command. Thus, the command RETYPE u /COMMENT) results in the following line: /COMMENT If more than one blank appears between the command and its argument string, all blanks except the first are taken as part of the argument. Thus, FIND w w w /COMMENT' results in a search for the line which begins with the character string w 4. 1 w /COMMENT OPEN (filename (ext))) The file, the name of which is "file name" and the extension of which is "ext", is searched for on the input device. If a file of this name is not found, a message is printed on the teletype and the mode is changed to Input Mode. An intermediate write file is opened on the output device, and lines from the keyboard are written into it as they are completed. "Ext", if not given, is assumed to be SRC. If the file specified is found on the input device, it is opened for reading. Subsequent typed lines are interpreted as Editor commands. Neither file name nor extension need be given if the input device is nonfile-oriented. 4-1 4. 2 READ~ Read sequential lines from the input file, inserting them in the buffer as they are encountered, until the number of lines in the buffer is equal to the argument specified in the SIZE request. The pointer is set to the first line of the buffer when the operation is complete. The READ request will not be accepted if any lines remain in the current buffer. The buffer must have been cleared by DELETE requests or a WRITE command. The READ request is treated as illegal if Block Mode is off. The READ request must be used if input device is not file-structured. 4.3 WRITE~ Add the current contents of the block buffer to the output file regardless of the position of the pointer within the buffer, and clear the buffer. Nothing is output if the buffer is empty. This command is illegal if Block Mode is OFF. 4.4 CLOSE (filename (ext))) If an input file is present, all lines in that file falling below the current line are appended to the output file, and the output file is closed. output file is closed. If no input file is present, the current line is added to the output file, and the No further editing is permitted. If the extension is omitted, and none was assigned in the OPEN command line, the extension is assumed to be SRC. If no filename is given, the name assigned in the OPEN command line is used. Neither filename nor ext need be given for nonfile-oriented output devices. 4.4. I !CLOSE) The !CLOSE command effects the closing of the current input file only. The output file remains open. A new input file can be referenced after the !CLOSE request by issuing an OPEN command. !CLOSE provides a facility for combining source files during an editing run. 4.4.2 SCLOSE) Th is command permits the placement of an edited file onto the current output device without the . DAT-14 to .DAT-15 recopy process. It is particularly useful in closing long files which have only minor changes. 4-2 In employing the command SC LOSE, always use a filename different from that used with the OPEN command given for the file. Files closed in this manner are normally left on .DAT-15. 4. 5 NEXT [ NJ ( w nD The pointer is moved past the next n lines, beginning with the line currently in the work area. brought into the work area for modification. Linen+ l is Lines skipped over are added to the output file. If omitted, n is assumed to be 1. If the command results in the pointer moving past the last line of the file (or buffer, if Block Mode is on), the following error message is printed: END OF (:~:FER} REACHED BY: NEXT n 4.6 PRINT [p] ( w n)) This command causes n lines from the input file {or buffer, in Block Mode), including the current line, to be printed on the teletype. The pointer is left at the last line printed; n is assumed to be l if omitted. If, as a result of the command, the pointer moves past the last line of the file, the error message is printed. END OF (:~~FER} REACHED BY: PRINT n 4.7 FIND [FJ '-' string) The input file or buffer is searched, beginning with the line following the current line, for the next occurrence of a line which begins with the character group "string." If the search is successful, the line beginning with "string" is brought into the work area. If the search is unsuccessful {pointer moves past end of file), the end-offi le error message is printed. "String" may contain any number of characters. 4. 8 LOCATE [ LJ w string) The input file is searched, beginning with the line following the current line, for the next occurre.nce of a line which contains the character group "string." If the search is successful, the line which satisfies the search is brought to the work area. If the search is unsuccessful, the end-of-file message is printed, and the pointer is moved to the top of the file. "String" may contain any number of characters. 4-3 4.9 DELETE [DJ ( w n)) This command causes n lines, including the current line, to be deleted From the input file. The line following the last line deleted becomes the current line. If n is omitted, only the current line is deleted. If n is large enough ta cause the pointer to move past the end of the file, the end-of-file error message is printed. 4.10 BOTTOM[BJ) The pointer is moved to the final line in the input file (or buffer) which then becomes the current line. Lines skipped over in the process of moving the pointer are added to the output file. 4.11 RETYPE [R] w line) The character string "line" replaces the current line. The new line is left in the work area and can be subsequently modified. 4. 12 INSERT [I] w line) The current line is added to the output file and the character string "line" is taken as the current line. Note that insertions are always made below the current line. The program remains in Edit Mode when command processing is completed. 4. 13 INSERT [ID The current line is added to the output file and the mode is changed from Edit to Input. Subsequent lines are interpreted as text to be added to the output file. 4.14 GET [GJ ( w n)) This command causes n lines from the subsidiary input device to be added to the output file. New lines are added below the current line. When command processing is complete, the nth line read is left in the work area as the current line. If n is omitted, it is assumed to be 1. If an end-of-medium condition is encountered on the subsidiary input device before n lines are read, the error message END OF MEDIUM REACHED BY: GET n is printed. The pointer remains at the last line read. 4-4 4.15 CHANGE [CJ w q stringlq string2q) In the current line, the first character group (string l) which matches that occurring between the first pair of quote characters (q's, in this case) is replaced by the character group (string2) appearing between the second pair of quote characters. The quote character chosen by the user may be any graphic (including blank) which does not appear in either of the character strings quoted. Both string] and string2 can contain any number of characters, including zero. If Verify Mode is in effect, the program prints the new current line on the teletype when the requested change has been accomplished. Examples of change requests: Current Ii ne : a. b. c. 4.16 NXTLIN JMS TYPOUT /PRNT THE LINE. JMS TYPOUT /PRINT THE LINE. JMP* TYPOUT /PRINT THE LINE. JMP* TYPOUT /PRINT THE LINE. In the comment, spell "PRINT" properly. Request: CHANGE w /RN/RIN/) New line: NXTLIN Make the "JMS" a "JMP*" Request: CHANGE w XSXP*X) New line: NXTLIN Delete the "T" in the tag. Request: c /T//) New line: NXLIN L..J TOP [Tl) Move the pointer to the beginning of the edited file or buffer. The first I ine of the file becomes the current line. Set Verify Mode according to the parameter. When Verify Mode is on, text lines are printed in response to certain editing commands, for example: a. The line brought into the work area as a result of a FIND or LOCATE request is printed. b. The last line of the file, brought in by the BOTTOM request, is printed. c. The new line resulting from a CHANGE request is printed. When Verify Mode is off, only error messages are printed. After the Editor is loaded initially, Verify Mode is on. 4-5 The command VERIFY [V]' (without arguments) is equivalent to VERIFY [VJ w ON) 4.18 OVERLAY[OJ(wn)) Starting with the current line, n lines (or the current line only, if n is omitted) ore deleted from the input file. Control mode is changed to Input with the normal typed program response, INPUT Subsequent typed lines are interpreted as text intended to replace the lines so OVERLAYed. 4. 19 APPEND [A] w string) "String" is added to the current line following the last data character and preceding the terminating carriage return. Thus, to add a comment to the current line JMS GETNUM the command might be APPEND w -I /GET DECIMAL ARGUMENT.) The new current line would be JMS GETNUM -I /GET DECIMAL ARGUMENT. If "string" is absent, the current Iine is unchanged. 4. 20 BRIEF w ( g~F} Set Brief Mode according to the ON/OFF parameter. Brief Mode results in the abbreviated printing of the current line during the servicing of some commands. An attempt is mode to print only the tag, operation code, and address fields of lines brought in as a result of the FIND, LOCATE, and BOTTOM commands. In addition, the printing of the new line resulting from a CHANGE request is terminated at the lost newly-inserted character. Brief Mode is set to OFF initially. The setting of the brief mode indicator is of no consequence when Verify Mode is off. 4-6 The command BRIEF~ (without arguments) is equivalent to BRIEF w ON~ 4. 21 ON BLOCK w ( OFF ~ Set Block Mode according to the parameter. When Block Mode is ON, the editing commands READ, WRITE, and MOVE are accepted by the program; these commands are treated as illegal if Block Mode is off. When Block Mode is in effect, the program treats several lines as a subfile, retaining them internally in a block buffer. In Block Mode, editing commands which move the pointer reference only those lines currently residing in the buffer. The contents of the buffer are saved unti I a WRITE command is encountered or unti I, by way of the DELETE command, it is emptied. A buffer emptied by deletions can be filled by a READ request. When Block Mode is OFF, sequential lines in the input file are moved singly to the word area and are not available for re-examination after the pointer has been moved to a later line. When the Editor is initially loaded, Block Mode is set to ON if either the input or the scratch device is nonfileoriented. If both devices are file-oriented, Block Mode is set OFF. The command BLOCK~ (without arguments) is equivalent to BLOCK w ON) 4.22 SIZE [SJ w n~ Set the total number of lines which will occupy a buffer (in Block Mode) ton. The SIZE command can be issued at any time and takes effect when the next group of lines is inserted in the buffer via a READ command. The value of n is initially set to 55 10; it must always be greater than l. 4.23 EXIT) Control is transferred from the Editor to the Monitor. This command is illegal if any file is open for reading or writing when it is issued, i e., it may only be given as the first command after Editor initialization and the message EDITOR > A 7 After the Editor is loaded into core, in either I/O or Keyboard Monitor environments, OUTPUT is initially set to ON. If OUTPUT is set OFF, the user is allowed to examine any part of his program. No output will result after a WRITE or CLOSE command is issued and the NOTHING l N FILE message is typed out. If the input is file-oriented, the input remains unchanged. 4.25 INPUT } CALL w RENAME w { OUTPUT w OLD NAM w EXT w NEWNAM w EXT) This command can only be used before any other commands are issued. No abbreviation is allowed in the command string. Example: EDITOR V6A >CALL w RENAME w INPUT w OLD NAM w SRC w NEWNAM w SRC ;l wi II change the name of the file on the input device (.DAT slot-14) from OLD NAM SRC to NEWNAM SRC. 4. 26 CALL w DELETE w l fiNPUT OUTPUT} w FILNAM w EXT) This command can only be used before any other commands are issued. No abbreviation is allowed in the com- mand string. Example: EDITOR V6A >CALL w DELETE w OUTPUT w FILNAM w SRC) will delete the file FILNAM SRC from the directory on the output device (.DAT SLOT-15). 4.27 RENEW ;l This command initiates the same operations as those performed by a WRITE command followed immediately by a READ command. The use of this command is permitted only in Block Mode. 4. 28 KEEP ;l This command causes the original file appearing on .DAT-14 to be preserved for back-up purposes. The form of this command is: 4-8 KEEP w savnam (ext) ~ where "savnam" is a unique name to be assigned to the file to be preserved and "ext" is its extension. If ext is not given, SRC is assumed. As many KEEP requests as are needed can be issued. Each savnam, however, must be different from any other filename appearing on -14. If a unique name is not given to the file to be saved, the name SAVFIL EDT is assigned. The KEEP command can be issued only while the input file is on .DAT-14, i.e., the number of TOPs issued must be even (0,2,4 ... ). Example of Usage: EDITOR V6A >OPEN THSFIL EDIT >KEEP BKUPOl >TOP >NEXT >TOP >KEEP BKUP02 /Normal TOP /Some locative request must be issued here to allow physical file transfer at second TOP. /To return file to -14. >CLOSE Resulting Directory on -14: THSFIL SRC BKUPOl SRC BKUP02 SRC /New edited file /First copy--original /Second copy--after TOPs 4-9 SECTION 5 RECOVERY PROCEDURES In case of a hardware or system failure, the user can recover at the point at which the last complete version of the edited output file was closed. The Editor, in preparing intermediate files, assigns them temporary names. Thus, in the event of disaster, one (or both) of the following files may be found . . TFIL1 EDT and . TFIL2 EDT both contain the version of the edited file extant at the point at which the crash occurred. No editing is lost. If neither of these files is present, the file specified in the OPEN command con- tains the version of the file extant at the time the latest TOP command was issued. All editing taking place after the TOP command is lost. If neither . TFIL 1 EDT nor . TFIL2 EDT is found and if no file name was given in the OPEN command, no recovery is possible. 5-1 SECTION 6 EXAMPLES OF EDITING REQUESTS This section contains illustrations of one complete iteration through the modification process using the Editor. Figure 6-1 shows the assembly listing of a sample input file. Figure 6-2 shows the same I isting marked for correction. Figure 6-3 (Sheet 1, Sheet 2) shows the hard-copy output of the editing session. The sequence numbers at the right margin are not program generated, but were added later for reference. Figure 6-4 is the assembly listing of the new, edited file showing the results of the editing run. 6-1 ,) u J Ll 0~010 J LU :ill'011 vH 012 "''013 M014 ?.~ "1 5 i<lr016 '1?11'1 7 1.W0?0 0V0?1 ""'"'?2 d J u •J °'"-> I 0r ;ic;i0 0170()11 0~ 0"12 .Jnl'1'3 0~ 11Jli"4 Mli:ll"5 .?V01ll6 0V0t>17 u u J J u u u u J u J R R iHl01"01ll 2"10~011' R J400\44 P 2?0~0"' R ltl40?.5? 041!'114 7 R R R R 440~0t>I 777773 040'145 220V.44 011'01'0"' 74117 01ll 6(1101>33 44M'44 44i'l'1144 0401"55 H1011'51 4401'46 64'10tll43 2'1101'54 74i'l"1lll 0'!4011'54 20011153 74411'1111 060'1'5? 440:>!5? 64'10'1'50' 777773 A R R R R R R A R p 540~45 ~Hl35 R l!IV036 R R p 600n0 7'jl!lf'01 34011147 R R A R R R R R R R R A R R A R R R A R R A R 741!1~01 A 3400:52 6?0"101'1 "1111111110'1' 777777 R R A A •LIT ~~"'?3 ;lt-0?4 0>0?5 '1170?6 0170?7 llH/'030 it!V031 Mil32 0H!33 M034 vH'rll~7 Vlf'040 i.lV041 111r042 ;II~ 0'i7 R R R R R p R R p p p R R R R p R R R R R p /SUBROUTINE PACK, 7-RIT CHARS TO !OPS ASCII. /CALL: JMS PACK I rRnM I TO PACK Ill /GET FROM ADRESS. LAC PACK DAC PFROM /GIVE TO FROM POINTER. /GET ADDRESS or TO ARRAY • LAC• PACK /GIVE TO OUTPUT POINTER, DAC PTO /SAVE AS START ADDRESS, IJAC PL«H /BUMP TO RETURN, I Si' PACK /SET UP PLOOP1 LAW 17773 IJAC PK'iCHR /GET NEXT WORD IN INPUT ARRAY, PLOOP2 LAC• PF ROM tT!'RMINATOR? SAC c-1 /NO, SKIP. SKP /YES, GO CLOSE OUTPUT ARRAY. JMP PC LOS [Si' PFPOM /POINT TO NEXT WORD, /POINT TO NEXT WORD. I Si' PPIOM /SET UP TO ROTATE, OAC PWR03 PLOOP7 JMS PRAL7 I Si' PK'iCR /5 CHARS [N,O JMP LPOOP2 /NO, GET ANOTHfR, /WORD PAIR COMPLETE. LAC PWRO;> RAL /CLEAR PAIR BIT 35. IJAC PWRO:? /.GET FIRST WD or PAR •• LAC PWR01 RAL!CLL /BIT 0 or WO 2. /INSfRT FIRST WO JN OUT ARRAY, OAC• PTO I Si' PT'1 /RUMP OUT ADDRESS, JMP PL910P1 /GO SET UP NEXT PAIR, /MAKf SURE PAIR IS COMPLETE. PCLOS LA" 1777'!. SAD -PK'iCHR JMP PL'10P7 /INCOMPLETE PAIR, /FORM WORD PAIR COUNT CLA !CMA TAD PLl<H /START ADDRESS, CMA /LESS END ADDRESS, TAD PT'1 JMP• PACK /RETURN TO CALLER. ,END Figure 6-1 Sample Input File 1-EFT-,,bJ"~Teb °' I (..) NON-Hi!f"lf~Rfi;, /SUBROUTINE PACK, 7-BIT~CHARS TO~!OPS ASCII . • (Juat... 'i'/te..K, P2/IK. 7, />wl!IJ~1ICALL: JHS PArK ~'/{ IMiu-12111, fk, K<Jz-1>$ TorAL WtJetH Ot::.Cu.P•rv Pwl!t)'Z., PwLl)3 1 FROM /'6rM!ro1' ""'PuFAel!AY. IW PllGtt:~,;te~v. A wolM ~Au. .L:S Ml.L4T I TO /STJJteI'tJtL<lu.Tl'tlTAteetW. 'i~M11..ufrj; rM-t?INPt.iTCu.NMG,:etJ)Attli!Av. fM'0fll0 R 000000 A PACK 111 ~ 0V0Pl1 R 211!0ril00 R LA<..* _..i...trC' PACK /GET FROM A ESS. u 0V002 R 04lllV.44 R /~ ~-OAC Pf"'loH /GIVE" To FRO POINTER. 0V'lll03 P 22011!00 R LAC• PACK /GET ADDRESS OE TO ARRAY, 017004 R 040"'5? R OAC PTO /GIVE TO OUTPUT POINTER. u 141711105 R 0414047 R RA!'.: PLl'Jll /SAVE AS START ADDRESS, 01701'16 ~ 44011!0P R !Sl PA6K /BUMP TO RETURN, 00007 R 777773 A PLOOP1 LAW 17773 /S[T UP 017010 R i!4011!45 R OAC PK'>CHR A • /¢-_ t!lltfltelk..T&=e ~ 1--6£. u u 00011 R 2201744 R PLOOP2 LAC• P>ROH /GET NEXT WORO JN INPUT ARRAY, LU 017012 R 01t"01700 R .S,1,}) , ~ ~---{t:Nil'-H~ /TfRl'llNATOR? 0HH3 R 741Cll0P A Y ~t<P· /NO, SKJP. 1417014 R 61'101733 R JHP PCLOS /YES, GO CLOSE OUTPUT ARRAY. u 017015 R 4401?44 R JS2 PEROM /POINT TO NEXT WORO, u 017016 R 440044 R !Sil' PFROH /P8JNT TB N[~T WRRB, u 017017 R 04011155 R DAC PWR03 /SET UP TO ROTATE, u 01?020 fl HH'H-'51 R PLOOP7 JMS PRAL7 ~ 7 u 0V021 R 440C/146 R I Sil' ~Poc:Sc.He 15 CHARS IN, Q • u 0170?2 R 6Ql011!43 R JMP~PLOC>P2 /NO, GET AN HER, u 017023 R 2001754 R J?lrl....!C~L LAC PWRQ2 /WORO PAIR COMPLETE. 017024 R 7401710 A ~ /CLEAR PAIR BIT 35€1· n u 017025 R 0401754 R !JAG PWRQ2 1~ u 017026 R 2001753 R LAC PWRQ1 /GET FIRST WO or p R,, 0170?7 R 7441111'11 A f?.AL. ~ /BIT 0 or WO 2. u 017030 R 060052 R fJAC• PTO /INSERT rIRST WO IN OUT ARRAY, u 017031 R 440C/15? R IS2 PTO /BUMP OUT ADDRESS, u 01?032 R 60ll11Co5'11 R JHP ~P.LOe>P.:t. /GO SET UP NF:XT PA IR. 0V033 R 777773 A PCLOS LAW 17773 /MAKE SURE PAIR IS COMPLETE, u 1'!17034 R 540045 R iJ'Z:M PN.eu.3YSAO PK'>CHR /INCOMPLETE PAIR, 0Vi'!35 R 600V20 R JMP PLOOP7 /!'"ORM WORD PAIR COUNT& 0V036 R 7'501701 AENi>C~ LAW -.J ~ u /START ADDRESS, 0V037 R 340047 R 711-i>*~ ~ 0V040 R 7401701 A CHA u /LESS ENO ADDRESS, 0Ct.041 R 340052 R t.SZ ~ \. _J A[l PTO /RfTURN TO CALLER, 0V042 R 6?0000 R ~JMP• PACK 0V0'>7 R 0001'10'11 777777 A A •LIT ?~#'! P/o P,::st~ u (.ENO ¢ ¢ Figure 6-2 Input File Listing Marked for Correction EDITOi-1 >OPEN PACK Sii.C >FIND /SUBi~OUT /SUBnOUTINE PACX, 7-BIT CHAnS TO IOPS ASCI Io >OVEhLAY 1 INPUf /SUBnOUTINE PACX. 7-Bn Ll:.FT-AD,JUSn;v CHAhS ro NON-Hl:.ADEhED !OPS /ASCI Io ON itl:.TU.i'\N, AC HOLDS TOTAL WOnlJS OCCi.JPED BY .t'ACKl:.D Al\hAYo IA wOlul 01'' ALL 1 'S l'iliST O,H.itMI'.llATJ:; THE I~JPuT CUN?ACi\EIJ) AhhAYo F riO!'. >At't'l::ND /STAhT Of !Nl-'Ul AhhAYo >NEx·r >APENV /SlAnl OF Oi.Jl'?Ui' Ahi\AYo NOT A hEQUES T: APEND /STAhT OF' OUTPUT AHhAYo >AP.t'END ISTAhT Of OUTPUT AkhAYo >PkINT 1 I "l'O /SlAhT OF OUTPUT AitkAYo >INSl!:tl"f oGLOl!L l"ACK, PHAL7• PWhl..ll1 PWHU21 Pk'ED3 >L LAC /Gl::T I-HOM ADhESSo LAC PACK >CHANGE LAC/LAC*/ LAC PACI< /GET FH0t'; ADHESSo .~CHANGE /LAC/LAC*/ /Gl:.T FkOM ALhESSo LAC* PACX >i'1EXT I >INSEhT INPUf ISZ PACK I BUMP TO "TO" ALDi\ESSo 4 5 6 ~ 9 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 20 29 30 31 32 33 34 EDlf >Phi NJ" ISZ PACI\ I bUM.t' lO "fO" AIJilhESSo 35 36 37 >BhIEF ON >C o/ olo ISZ PACI< I I SI. PACK /BUMP >PH INT ·ro "TO" ADPhi::SSo 38 39 40 41 42 >L PU:lH UAC PLBH >BiilEF OF'F >PhDIJ UAC PLBH >l..lt:LETE 2 >.t'rl INT PLOOPI >N 1 >A >L C 2 3 10 11 12 l::i.lIT >LOCATI:. F"HOM I 1 I SAVJ:; AS STAh T ADIJHl:.SSo 43 44 45 46 47 LAW 17773 48 49 I Si':'f Ui-' 50 51 15-CHArlACTEk COi.JN'fi:;f,o SAC C-1 >Vl::hlFY on· >C /SAC/SAD/ >C /C-1/ENIJCHH/ >V 01'1 >P SAD ENDCHx >N I Tl.;hM I NA TOR? 52 53 54 55 56 57 /TEHMINA'i"Oh? 58 59 60 »D 61 >N >P 62 63 ISZ PFhOM Figure 6-3 (Sheet 1) /PO [NT TO NEXT WOhD• Hard-Copy Output of Editing Session 6-4 64 >D >P ISZ Pr-ROM >F PL PLOOP7 JMS PkAL7 >N >RETYPE ISZ PK SC Hit >N >C .LP.PL, JMP PLOOP2 >N 2 >CHANGE /L/L!CLL RALICLL >L kAL rtALICLL >C /ICLL// 65 66 /POINT TO NEXT WOHD• 67 68 69 70 71 72 73 /5 CHAHS IN? /NO• 74 ANOTHEk· G~T 75 76 /CL!::Ah PAik BIT 35. /BIT fl OF 77 78 79 WD 2. 80 OF 1.•u 2. .HAL /BIT 0 Jro:P PL0'0P 1 /GO SET UP NEXT PAIR· 81 82 >L JMP 83 >CHANGE /"0/00/ PLOOPl JMP 84 /GO SET UP Nl::XT PAIR· 85 >N 86 87 > INt>UT DZM /FILL PAIH WIIH Pl~hi.l3 88 l~riO~S. EDIT >L CLA!CMA LAW -I >h ENDCHh >N >h >L PTO lrlOidJ PAih COUNT wOhD PAlrt COUNT• /FOhM /FOHM /STAhT AJJUhl::SS. TAU* PACK TAD PTO ISZ PACK >INSl::xT >BOTTOM /LESS END AUUh~ss. 90 91 92 93 94 95 96 §~ 99 100 101 102 •END >OVEhLAY INPUT PFROM PkOOPTO PKSCHH 89 103 104 105 106 107 108 109 0 0 Iii oEND EDIT >TOt> >L AJJl1.ESS LAC* PACK >C /AIJk/ AlJDR/ LAC• ?ACK >LOCATE • • LAC Pi1hll 1 /GET FROM ADRESS· /GET FHOM ADUhESS· /GE~ rlhST Wll OF PAh•• >v or•r- llO lll ll2 ll3 ll4 ll5 ll6 117 >C /n./lh/ >PRINT ll8 LAC POll"{l.)1 /GET FlkST WD Of PAIR· >CLOSE 119 120 121 122 123 EDI TOH >EXIT 124 125 126 127 128 MONlfO.R $ Figure 6-3 (Sheet 2) Hard-Copy Output of Editing Session 6-5 0~0A0 "' 01'll '"''011'2 i!lri111'13 .!!'01'14 i'Jfl01'15 i!lf 01"6 iOHlP7 i'lv·0i 0 lilVi!lll .HIH2 0v 1'113 0Hl14 0~015 (). I (). 0H!16 0V r.11 7 0~0?0 i!V VJ ?1 "'~'022 0?1!?3 0Q'<li'-01'1 2?017'011' R o!4il04? fi 44QWrll"' p 220<'01'1 p l'J411l'l43 p 777773 R 040'1:44 R 2?iP4;> R 540034 R 6!;00i0'31" R 44,W4? R J4!/1'~5"' R 1V'0"14'5 R 44i.l-'44 R p R p "R 6'i'IF11'1 2f'0'?4 7 744V'lli' "'40('14 7 R 211!01•4~ R 740'-'lll 01i0-'43 44..if;ln A R R R R R A R R R R R v v R R v A v v A R R R A 0H!:>4 11W0?5 IH'r.!?6 16Hll'7 0V030 111' 1!131 l<il7032 "'' 033 111nn4 ;"1035 R 777 777 R 36Vl'~lll'! fllr 036 IOH137 R I' 74"117'11 340•'41 'll'-" i-14~ R 4411.~0'1 R IC< !041 '1P042 •H'043 1w0.04 R R R 62111!'.'IVJQI il17i1''f11Vl 1117 fll ·'f/117 R R l<ll7·,Wi!" A A R R R R R R 77777-:1 14..i0'5f/I 540"44 ~· M10~1'> 6P1H'0~ 0"'11"'QIOI v R R A R A R A A /SUBROUT!NF PACK, 7-RIT LffT-ADJl:JSTED CHARS TO NON-HFADERED !OPS IASCI I. 0111 RtTUR'J, AC f!OLDS TOTAL WORDS 0CCUPI£0 BY PACKED ARRAY, IA WORD OF ALL 1•s MUST TERM I NA H: THE INPUT !UNPACKED) ARRAY, /CALL: JMS PACK I FROM IS TART OF INPUT ARRAY. I /START or OUTPUT ARRAY, TO ,GLORL PACK, PRAL7, PWR01. PWRIJ2, PWRD3 PACK "'LAC• PACK /GH FROM ADDRESS, /GIVE TO FROM POINTER. OAC PF ROM /BUMP TO "TO" ADDRESS, JS< PACK /GET ADDRESS or TO ARRAY, LAC• PACK /GIVE TO OUTPUT POINTER. OAC PTO LAI- 17773 /SFT UP PLOOP1 PK<;CHR /5-CHARACTER COUNTER. IJAC PLOOP2 IGrT NEXT WORD IN INPUT ARRAY. LAC* PF ROM /TFRMINATOR? SAO F NflCHR /H:S, GO CLOSE OUTPUT ARRAY. JMP PC LOS /POJNT TO NEXT WORD, JS? PrPOf" /SET lJP TO ROTATE. OAC PWRD3 JMS PR4L7 PLOOP7 /5 CHARS IN? !Si' PK'>CHR /NO, GET ANOTHER, JMP PLOOP2 /WORD PAIR COMPLETE, LAC PrWO? RAL!CLl. /CLEAR PAIR R IT 35. DAC PwRO:> /GET FIRST WO OF PAIR, LAC P,.RDl /BIT 0 OF WO 2. RAL /[NSFRT FIRST WO IN OUT ARRAY, DAC• PTO /RUMP OUT ADORESS, !Si' PTO Jl'\P PlflOPl /GO SE.T UP NF:XT PAIR. /MAKE SURE PAIR IS COMPLETE, PCLOS LA" 17773 IF ILL PAIR WITH i'EROfS, ni!" PWR03 SAn PK5CHR JMP PUJOP 7 /JNCOMPLflE Pf.IR, LAW -1 /FOR~ WORO PAIR COUNT. fNOC'iR TAfl• PACK /START ADDRESS. Cl'IA TA fl PTl"l /LESS ENl'1 ADORE"SS. I Si' PACK JM Po PACI< /RE: TURN TO CALLER. PFRO"I f/I PTO Q' PK5C'lR ,ENO "' Figure 6-4 File Resulting From Editing Session APPENDIX A SUMMARY OF EDITING COMMANDS Command Abbreviation Activity Line Number t Section 124 4.23 IEditor-Monitor Communication I EXIT n/a Transfer control to Monitor I Fi le Housekeeping I OPEN nm ext n/a Prepare input file (named "nm ext") for editing. 2 4. l CLOSE !CLOSE SC LOSE n/a n/a n/a Terminate editing on input file. Close input file. Close file and leave on output device. 121 4.4 ILocative Requests I FIND string F Bring first line beginning with "string" to work area. 3,68 4.7 LOCATE string L Bring first line containing "string" to work area. 12,52 4.8 NEXT N Bring next consecutive line to work area. 15,70 4.5 BOTTOM B Bring lost line of file to work area. 100 4.10 TOP T Reset pointer to beginning of file. 110 4.6 PRINT p Print the current line on the Teletype. 20,58 4.6 \ ,...~) •f_. --.1...J f''; I.. lli•IE.\ IManipulative Requests I DELETE D Discard the current line. 47,61 4.9 RETYPE string R Replace current line with "string". 71,94 4. 11 INSERT string I Add "string", as a complete line, to the file after (below) the current line. 99 4.12 I-CHANGE /stringl/ string2/ c Replace, in the current line, the first occurrence of "string!" with "string2". 25,27,38 4.15 5, 102 4.18 14, 16, 19 4.19 OVERLAY 0 Replace multiple lines. APPEND string A Add "string" at the rightmost end of the current line. tEntries under "Line Number" refer to I ine sequence numbers (in Figure 6-3) where examples of command usage are to be found. A-1 Command Activity Abbreviation Line Numbert Section 54,57 4.17 I Mode Control I g~ v Set verify mode to print (ON) or ignore printing (OFF) lines after processing CHANGE, LOCATE, and FIND requests. BLOCK (ON OFF n/a Set program to operate in block mode (ON) or in line-by-line mode (OFF). BRIEF (ON OFF n/a Set brief mode to print truncated (ON) or full (OFF) lines. VERIFY( I Input/Output Requests 4.21 37,44 4.20 I !.- READ n/a Fill block buffer from input file. 4.2 WRITE n/a Add block buffer to output file. 4.3 GET G Add lines from subsidiary input device after (below) current line. 4.14 IMiscellaneous Requests I SIZE s Set total lines to occupy block buffer. INSERT I Change mode to input. 4.22 30 4.13 tEntries under "Line Number" refer to line sequence numbers (in Figure 6-3) where examples of command usage are to be found. A-2 J APPENDIX B 339 DISPLAY EDITOR This Appendix describes a •:ersion of the Text Editor which uses the 339 Display to show the text being edited. The Display Editor is a relocatable user program (as opposed to a system program) which is loaded and used according to the directions contained. It is distributed by DEC's Program Library as a binary paper tape and should be PI Ped to the system DEC tape before use. SYSTEM REQUIREMENTS This program requires a 339 Display equipped with either the VA39 or the VC38 optional character generator. If the VC38 (software) is used, the Monitor switch VC38 must be 0 N. In any case, the Monitor switch 339 must be ON. Both switches can be set normally ON at System Generation. The 339 device handler DYA. must be assigned to . DAT slot+ 10. All other device assignments are the same as for the System Editor. Loading Procedure $ GLOAD LOADER Vxx > EDITDY EDITDY xxxxx DYA. xxxxx other device handlers >EDITDY V6A (User types underscored text.) PROGRAM OPERATION The Display Editor consists of the System Editor (EDIT6A) with the additional ability of displaying the text being edited on the 339 Display assigned to . DAT slot + 10. Display is controlled through use of the TV switch. The TV switch is initially off, and the Display Editor operates exactly like the System Editor. If> TV ON is typed, the text file is displayed as follows, from top to bottom: a. a group of the lines most recently added to the output file or block; b. spaces; c. the current line, to which modifications apply; d. spaces; e. a group of the lines about to be brought in from the input file or block. B-1 TV can be turned on or off at any time to start or stop the display. Turning TV on implies VERIFY OFF, but turning it off does not turn VERIFY ON automatically. If, at the top of a file or block (i.e., OPEN filename or TOP was just typed), TV ON is typed, a file movement command (e.g., NEXT, FIND, LOCATE, etc.) must be given before any lines are displayed. In Block Mode, the block buffer must be at least as large as the read-ahead buffer used for displaying lines below the current line. Thus, if a SIZE command is given with too small a number of lines, the error message BUFFER SIZE TOO SMALL. is typed, and the SIZE command is disregarded. In all other respects, operation of the Display Editor is the same as the System Editor. B-2 CHAPTER 2 PATCH UTILITY PROGRAM SECTION l INTRODUCTION l. l GENERAL INFORMATION The PATCH utility programt provides the user with a convenient means of examining and modifying system programs which are stored in binary form on a bulk storage device (DECtape or disk). Relocatable programs (I ink-loadable programs), XCT programs (executable files bui It by the system program CHAIN), and any other binary program which is not in system program format cannot readily be corrected by using PATCH. System program format means that the binary is a straight core dump onto contiguous blocks of 400 {octal) words each on the bulk storage I/O device. Normally, commands to PATCH are issued at the teletype keyboard. In BATCH processing, commands are taken from the batch input device under supervision of the BATCH processor. Binary corrections can be specified by the input commands or read in from an auxiliary input device. The latter facility provides a way to transfer new binaries of system programs to a system tape. tThe PATCH program in PDP-9 Systems replaces the stand-alone programs SYSTEM and MONITOR. 1-1 SECTION 2 CALLING PATCH 2. l .DAT SLOT ASSIGNMENTS Before requesting the Monitor to load PATCH into core, check that the proper device assignments have been made to the .DAT slots which PATCH uses. . DAT SLOT Used to -14 Input from and output to the bulk storage device on which patches are to be made. The device handler is required only to perform .TRAN. -10 Input from the auxiliary device, which may be a bulk storage device. The device handler must handle Dump Mode input and, if it is for a nonfile-oriented device, must handle image alpha mode. -3 Output to the teletype. -2 Input from the teletype or batch processing device. .DAT slot-JO can be assigned no device handler (NONE) if auxiliary input is not required . . DAT slots -3 and -2 cannot be changed. 2.2 CALLING PATCH PATCH is loaded and started by the System Loader after the user issues the following command (underscored) to the Monitor: MONITOR $PATCH) When PATCH is running it prints: PATCH xxx > where xxx is a three-character program version designation, and the right angle bracket (>) indicates that the program is ready to accept a command input. 2-1 SECTION 3 COMMANDS 3. l COMMAND INPUT FORMAT All teletype and batch processing input commands are standard IOPS ASCII lines, that is, lines of text terminated by either a carriage return ( ) ) or an ALTMODE character. While typing in a command, but prior to terminating with a carriage return or ALTMODE, the user can modify his input by typing control U (echoed as@) to cancel the entire line or typing N rubout characters (each echoed as\) to delete the last N characters in the line. In all cases, PATCH is idle after it has printed a right angle bracket(>) and is waiting for typed input. 3.2 COMMANDS PATCH commands are divided into four categories: a. A select command to indicate which program or section of the tape is to be patched b. A list command that allows examination and modification of specified program locations c. A read command to input patches from the auxiliary input device d. An exit command which returns control to the Monitor. 3. 2. l Select Commands Before the user can issue a list or read command, he must indicate the program or block he wishes to patch. This is accomplished by giving either the name of the program or the number of a logical block on the 1/0 device to be made "current." 3.2. 1.1 Select Command Format Examples - Three basic select command formats are shown below. Format l: >NAME) Format 2: > B .__. n) Format 3: >B-.__, n) or > B+ .__, n) Format 1 - In this format, NAME stands for the name of the system program to be selected. PATCH contains a table of system program names and, for each, the load address in core, the program's size, and the logical 3-1 block number where the program begins on the system tape. The following program names are recognized by PATCH (DDT, CHAIN and the Linking Loader are excluded because they are relocatable binary files): CONV DUMP EDIT EXECUTE F4 F4A KM9 MACRO MAC ROA PATCH PIP .SGENl .SGEN2 . SYSLD UPDATE Formats 2 and 3 - In these formats, the character n stands for an octal number (in the range 0 ~ n ~ 1101 8 ) which identifies a logical block on the patch I/O device, for example, DECtape block 100. The two forms shown for Format 2 are equivalent and indicate that the block is to be read and written in the forward direction. Format 3, which is used only for DECtape, means that the block is to be read and written in the reverse direction. Selecting a single block is similar (in effect) to selecting a system program. The load address is set equal to 0, the size is set to 400 octal, and the block number is as specified. If the NAME in Format 1 or the block number n in Formats 2 and 3 is fol lowed by a space, the remainder of the input line is treated as a comment and is ignored. Until another select command is issued, all patches made with list and read commands are made to the currently selected program or block. 3. 2. 2 The List Command The list command allows the user to list, selectively, the locations within a program or block along with their contents and, optionally, to modify their contents. The command format is: > L ...... OCTADR~ where OCTADR must be an octal number within the core range specified by the load address and size of the current program or block to be patched. For block patching the range must be 0 ~ OCTADR ~ 377 8 . For system programs, the range is load address~ OCTADR ~load address + size -1. The octal address may be followed by a space and a comment (which is ignored). 3-2 PATCH detennines in which block on the tape the given address is located; and, if that block is not currently in core, it reads in the block. PATCH then prints the address and its contents and waits for command input. Example: >L w 132) 00132/777435 > L...J The user can now modify the contents of this register and then either list another address or terminate the list command sequence. 3. 2. 2. l Modification of Open Location Register - To modify the contents of the open register, type in an ex- pression (defined below) and terminate the expression with any of the following characters: ... or/ or ) or ALT MODE Use of Terminators - The value of the expression is stored in the opened location, and subsequent action is determined by the above listed terminators. If no expression is typed, the contents of the open register are not changed, but the terminators sti II take effect. The manner in which each terminator is interpreted is as follows: Meaning Terminator Treat the remainder of the line as a comment. Take the 13-bit address part of the contents of the current register (as possibly modified) and Iist that address and its contents. Example > L w 100) 00100/600200> +-) L...J 00200/213775 > L...J Terminator I /NOTE: LOCATION 100 UNCHANGED Meaning Treat the remainder of the line as a comment. Subsequent action depends on whether the line is terminated by carriage return or by ALTMODE. Open the next sequentia I register. Example > L w 1266) 01266/000000 > ) w01267/ll 1215>) wOJ270/403620> L...J Terminator Meaning ALTMODE Terminate the list command sequence. Example >Lw3) w00003/000110> ALT MODE > NOTE A list command sequence must be terminated by ALT MODE; otherwise, select, list, read, or exit commands cannot be given. When PATCH prints an address and its contents, the first character in the line is either a space ( w) or a right angle bracket (>). The> is used whenever a new block is read into core. If the old block was modified, it is written out on the patch output device before the new block is read in. The device must be WRITE ENABLED. Definition of Expression - An expression consists of octal numbers (one to six digits) and alphanumeric symbols (one to three characters, the first of which cannot be an octal digit) separated by one operator or a string of operators. An expression is terminated by one of the following characters: +-I) , I I ALTMODE. Leading and trailing operators are legal, but the latter are ignored. Whenever a string of consecutive operators is encountered, only the last one is saved. PATCH contains a symbol table of all the basic system opcodes plus all the operate group instructions and the octal values of each. The expression is evaluated from left to right assuming an initial value of zero followed by the operator+, that is, 0 +user's expression. The following characters are operators which combine the values to their left and right as indicated: two's complement subtract inclusive or + L.J two's complement add (TAB) * 3-4 The character *, in addition to its use as an operator, causes 200008 (the indirect bit) to be XORed into the value of the expression whenever* is encountered. Thus, the expression ** = 20000 XOR 20000 = 0. The value of the expression is null (no modification to the open register) unless a number, a symbol, or the character * is in the expression. The symbol "LAW" is a special case. It should be used only in one of the following two ways: /Equivalent to 760000 + n LAW w n or LAW w -n /Equivalent to -n Use of LAW in other than the prescribed manner often yields an erroneous value. 3. 2. 3 The READ Command The READ command is used to input a patch file from the auxiliary device and to make those patches to the currently selected program or block. An example of a typical patch file source listing is given in Appendix A. The formats for the READ command are: a. >READ ;l b. >READ w FNAME ;l c. >READ w FNAME w EXT ;i A filename must be given for input from a file-oriented device. The extension is optional. If missing, the extension is assumed to be ABS since the MACRO assembler outputs .ABS programs onto DECtape, disk, etc., with an extension of ABS. The filename is not needed for paper-tape input. A space plus a comment can be used only when both the filename and extension have been typed in the READ command. When input is from the paper-tape reader, the user must press the tape feed button to c Iear the NO-TAPE-IN-READER flag . . ABS patch program on paper tape can be optionally headed by the ABS binary loader (which is ignored by PATCH). The patch file can be either a completely new version of a system program or it can contain patches to specific locations in the program. Both are handled identically. PATCH reads one data block at a time from the auxiliary input file. For each data word in the block, PATCH calculates the address within the currently selected program or block. If the address is within the current block 3-5 in core, the data word patch is made to the current core block; if not, the current block is written out on the tape, and then the block containing the contents of the specified address is brought into core and is patched accordingly. 3. 2. 4 The EXIT Command The EXIT command returns control to the Monitor (CTRL C works equally well). The format is: >EXIT~ A space and a comment can follow the command. 3.3 ERROR RECOVERY If an .IOPS error occurs, causing control to return to the Monitor, the user types, CTRL P (tP) to restart PATCH. CTRL Pis also useful in terminating a READ command if the paper-tape reader jams. Errors detected by PATCH cause the current command to be terminated and an appropriate error message to be printed. All errors detected by PATCH cause the block in core to be written out onto the output tape provided that modifications were made to that block. 3. 3. l Error Messages The fol lowing is a I ist of error messages printed by PATCH: Message Cause of Error ILLEGAL COMMAND Not a legal command name, first command was a list or a read before a select command was issued. NOT OCT AL DIGIT PATCH expected an octal number and found a character other than 0-7. TOO MANY DIGITS The user-typed octal number contained more than 6 digits. ADDRESS OUT OF RANGE The address to be listed is not within the legal range of the currently selected program or block. CHECKSUM ERROR Bad data read in from auxiliary device. FILE NOT FOUND The file, as specified in a READ command, does not exist on the auxiliary input device. ILLEGAL BLOCK # The block number specified in the block select command was outside the range 0 ~ BLKNUM:::. 1101 8 . APPENDIX A PATCH PROGRAM FORMAT The following is an example of the proper format for a PATCH assembly source program to be assembled and output by MACRO 9: . TITLE .ABS anything .LOC 234 NLD 734777 600261 .LOC 350 -3 .LOC 371 040674 .END A-1 APPENDIX B EXAMPLE OF OPERATION The fol lowing, excluding the comments on the right, is a sample listing of what would appear on the teletype after a session using PATCH. Characters typed by the user have been underlined for clarity. G) stands for ALTMODE. MONITOR $PATCH) /CALL IN PATCH. PATCH V4A >MACRO) /SELECT MACRO. >L u /LIST LOCATION 100. 100) ADDRESS u OUT u OF u RANGE > L u 14366) /LIST LOCATION 14366. > 14366/000000 > 777776) /MODIFY. LIST 14367. u 14367/231604> DAC* u 11604) /CHANGE LAC* TO DAC*. LIST 14370. u 14370/777777 > SNA ICLA) /MODIFY. LIST 14371. u 14271/615422 > JMP u 16777 ... ) /MODIFY. LIST 16777. > 167771703112 > L /NEW BLOCK READ IN. NO CHANGE. L..J 17000/452735>@ >READ) /NO CHANGE. TERMINATE SEQUENCE. /READ AUXILIARY INPUT (PAPE RT APE). CHECKSUM u ERROR >READ) /TRY AGAIN. >B- u 357) /SELECT BLOCK 357 IN REVERSE DIRECTION. >L u400) /LIST LOCATION 400. ADDRESS u OUT u OF u RANGE >Lu 40.) NOT u OCTAL u DIGIT /PERIOD I THAT IS. >Lu 40) /LIST LOCATION 40. >00040/317754>@ /NO CHANGE. END SEQUENCE. >EXIT) /GO BACK TO MONITOR. MONITOR $ B-1 CHAPTER 3 LIBRARY UPDATE UTILITY PROGRAM SECTION l INTRODUCTION The ADVANCED Monitor Library Update Uti I ity program (UPDATE) permits the contents of binary I ibrary files stored on a file-oriented media to be examined and updated. A binary library file is defined as any file which contains one or more relocatable binary programs. Some examples of binary library files ore: a. the ADVANCED Monitor's . LIBR BIN file, which contains the standard 1/0 handlers and FORTRAN IV Object Time System (OTS) b. the BACKGROUND/FOREGROUND Monitor system's .IOLIB BIN (I/O Library) and the . F4LIB BIN (OTS routines) files. UPDATE alters files by replacement, deletion or insertion operations; it can also be used in the creation/modification of user library files (refer to Linking Loader section of this manual). The UPDATE functions of this utility program ore carried out by the generation of a new file from information copied, on command, from either a primary (origino I file) or secondary (new information) data sources. As shown in the following diagram, the file to be modified is considered the primary data source; the information to be added or inserted into the file is contained by a secondary source. The final modified file is produced on an assigned output device. PRIMARY SOURCE (File to be modified) SECONDARY SOURCE {Data for insertion or replacement) (Dato flow, control led by UPDATE commands) OUTPUT DEVICE (New File) 1-1 SECTION 2 UPDATE COMMANDS The UPDATE program is called into memory by the following command to the Monitor: $UPDATE) (command can also be terminated with ALTMODE) When loaded, UPDATE outputs the following response on the teleprinter: (Vnn indicates version number) UPDATE Vnn > The user keyboard commands to UPDATE are divided into three categories, arranged in the following operational sequence: 2. l a. File specification commands b. UPDATE action commands c. Termination commands. FILE SPECIFICATION COMMANDS The first command issued to UPDATE must be a file specification command to indicate the UPDATE operation desired and the name of the file to be modified or created. The general form of the file specification command is: > 2.1. l OPTION DESIGNATORS lffiEl ~ TERMINATOR () orALTMODE) Options The following three UPDATE options are available: Designator Operation L List the named library file by element and element size (octal). u Update the named library file by the insertion, deletion/ replacement of elements. N New I ibrary file {named) is to be created. 2-1 The options U and N are mutually exclusive. Option L can be used alone to obtain a clean listing or in combination with either U or N to observe updating results on the file. The use of the L option provides a library file listing of the following form: LIBRARY FILE LISTING FOR FILENM PAGE l PROGRAM NAME PROGRAM SIZE 0 2 . l .2 NAME 2 477g NAME4 352g NAME3 517 ACTION DELETE NAME REPLACE NAME l, NAME 2 INSERT NAME 3, NAME 4 Fi le Name The command file name consists of any combination of from 1 to 6 alphanumeric characters. If no file name is specified by the user, the name . LIBR BIN is assumed by the program. In all cases, the name BIN is assumed to be the command file name extension. 2. l . 3 Command Terminator Either a carriage return ())or an ALTMODE keyboard entry is used to terminate the file specification command. If a ) terminator is used, control is returned to the UPDATE program when work on the named file is complete. If an ALTMODE terminator is used, control is returned to the Monitor when updating of the named file is complete. 2.2 UPDATE ACTION COMMANDS After acceptance of the file specifications command, UPDATE is ready to accept commands for the manipulation of the contents of the named file, indicated by the printout: > When the symbol> is printed, the named file is positioned immediately before the first element of the file, thus permitting the insertion of new elements at the very beginning of the file. (Insertion is described under the Insert (I) command, 2. 2. 3. ) 2-2 There are four action commands (i.e., DELETE, REPLACE, INSERT and END) each of which is described in detail in the following paragraphs. All action commands are terminated by a ) . It must be noted that the UPDATE program operates on a file in a sequential routine-by-routine manner. When a routine is passed, any action command made to that routine results in an error message. Because the preceding is a common operator error, it is recommended that the user have a listing of the library file being worked upon. 2.2. 1 DELETE (D) Command The D command causes the deletion from the specified file of a named routine or a range of routines; this is specified by the names of the first and last routines of the range. The deletion is carried out by copying al I the routine or file elements in the file up to the deleted routines onto an output file media. The delete command can take either of the following two forms; as shown, the term DELETE or the letter Dis used. Command String Operation >DELETE NAME) (or D) Delete the named routine. >DELETE NAME1 I NAME2) (or D) Delete routines NAME1 through NAME2, inclusive The DELETE command may be used only when an update (U) option has been specified in the file specification command. After the delete operation, the file being worked on is positioned at a point immediately after the last routine deleted. 2. 2. 2 REPLACE (R) Command The R command causes information in the original file to be replaced by new information by copying all of the elements of the original file onto the output file device or media up to the element or routine to be replaced. The new information (replacement) is then copied onto the output file from a secondary input service. After the replace operation, the output file is positioned at a point immediately after the replaced routine. The replace command can take either of the following two forms; as shown, the letter R or the word REPLACE is used. 2-3 Command String Operation >REPLACE w (or R) NAMO NAME is replaced by a new routine of the same name. >REPLACE w (or R) NAME l, NAME2 ~ NAMEl is replaced by a new routine having the name NAME2 The REPLACE (R) command may be used only when an update (U) option has been specified in the file specificati on command. 2.2.3 INSERT (I) Command The I command causes information contained on the secondary input source to be inserted, at any point, into the origina I file as it is copied onto the output file device media. On completion of the insert operation, the output file is positioned at a point immediately after the inserted material. The I command can take either of the following two forms; as in the previous commands, the letter I or the term INSERT may be used. Operation Command String >INSERT w NAMO (or I) The routine NAME is inserted into the output file starting at the current position of the file. >INSERT w NAMEl ,NAME2 ~ (or I) The routine NAMEl is inserted into the specified file immediately after routine NAME2. The I command is used only when an update (U) option has been previously specified in the file specification command. 2. 2. 4 END (E) Command The use of E command causes the output file to be positioned at the end of the final routine of the original file. This is accomplished by copying all the information from the original file, from its current position, onto the output file. The END command is a convenient method of positioning the file to be modified in order that new routines from the secondary input may be appended to the file via the INSERT (I) command. The form of the END command is as follows; as shown, the letter E or the term END may be used. Command String Operation >END~ All of the information on the original file from its current position is copied onto the output file. (or E) 2-4 The End (E) command is used only when an update (U) option has been previously specified in the file specification command. 2.3 UPDATE TERMINATION COMMANDS The UPDATE operation (U option) is terminated by either the CLOSE (C) or the KILL (K) commands. 2.3. l CLOSE (C) Command The CLOSE (C) command can take either of the following two forms; Operation Command String >CLOSE) (or C) (or ALTMODE) The fife is closed and the name given in the file specification command is assigned to the file. >CLOSE FILE NM~ (or C) (or ALTMODE) The file is closed and the name FILE NM BIN is assigned to the file. NOTE Terminating the C command with ~ restarts the UPDATE program; terminating it with ALTMODE returns control to the Monitor. The C command is normally used to terminate UPDATE operations. The use of this command causes all of the remaining elements on the original (primary input) file to be copied from its current position onto the output file. All optional operations (e.g., listing (L)) are also completed on the initiation of this command. 2.3.2 KILL (K) Command The use of the K command aborts the current UPDATE operations and returns control to UPDATE. The form of this command is: > KILU (or K) 2-.'i SECTION 3 DEVICE (.DAT) SLOT ASSIGNMENTS The UPDATE utility program uses six negative .DAT slots, which are assigned (according to use and option) in the following manner: .DAT Slot File Options Specified -15 Library-File Output U,N -14 Library File Input U,L -12 Library Listing L -10 Secondary (new) Input U,N -3 Teletype Command Output U,L, N -2 Teletype Command Inputs U,L,N 3-1 SECTION 4 ERROR CONDITIONS AND RECOVERY PROCEDURES The UPDATE program outputs either recoverable or unrecoverable error messages. In either case, the user always has the option of restarting UPDATE by typing CTRL P ( f P) or returning control to the Monitor by typingCTRL C (t c ). 4. l RECOVERABLE ERRORS When a recoverable error message is printed, the user must retype his command for recovery. This procedure works unless the specified program name cannot be found (see Improper Name in Action Command). 4. l. l Unintelligible Commands If UPDATE cannot understand a command, it prints out the following: >? > The user should then check his previously entered command to ensure that it complies in sequence and form with the requirements of UPDATE. 4. l. 2 Command Function/Option Errors Error messages printed during recoverable error conditions caused by improper function commands are listed below: a. If a two-argument D, R, or I action command is used with any option other than U, the UPDATE program outputs: VALID ONLY IN U MODE - COMMAND IGNORED > b. If a single-argument D, R, or I action command is used in any but the U and N option modes, the program outputs: VALID ONLY IN U ORN MODE - COMMAND IGNORED > c. If no name is given in the I, D, or R command siring, the program outputs: ILLEGAL COMMAND STRUCTURE - COMMAND IGNORED > 4-1 4. l. 3 Improper Name in Action Command If the name given in any UPDATE action command cannot be found, UPDATE outputs: EOF REACHED BY SEARCH - COMMAND IGNORED > If this error condition is indicated, the library file is positioned at a point immediately after its last routine and the file can be accessed only by the INSERT (I), CLOSE (C) or KILL (K) commands. 4. l. 4 Incorrect Input Source Named data for insertion/replacement functions (i.e., inputs from devices assigned to .DAT slot-10) which cannot be found on the input device causes the following error printout: WRONG PROGRAM AS INPUT - CORRECT INPUT AND tP In most cases, this error printout indicates that the wrong program (e.g., paper tape) was placed in the reader. If this is the case, the user need only place the proper tape in the reader, clear the reader, and type tP to continue. For file oriented devices, the fife name and the program name (the name given at assembly or compile time) must both agree with the name in the UPDATE command. 4.2 UNRECOVERABLE ERRORS The following errors are terminal; they require the user to restart with a file specification command. a. If an end code is detected before the program name on binary input, the fol lowing is printed: PROGRAM NAME MISSING - DYNAMIC KILL UPDATE > b. If there is not enough room in core for the program, the following is printed: BUFFER OVERFLOW - DYNAMIC KILL UPDATE > c. If a read error occurs in the input buffer, the following is printed: UNRECOVERABLE READ ERROR ON . DAT N - DYNAMIC KILL UPDATE > 4-2 SECTION 5 UPDATE EXAMPLE 5. 1 UPDATE FILEA To update FI LEA: (user responses are underscored). UPDATE > U<-FILEA) > I NAME2 I NAME3 ) > R NAME4 I NAMES >D NAMEl) /File specifying command must be first /Insert routine NAME2 after NAME3 /Replace routine NAME4 with NAMES /Delete routine NAMEl from file /Close FILEA /Returns to UPDATE since /file specifying command above /was terminated with a) t >C) >UPDATE > > S.2 UPDATE BCDIO To update BCD IO on the Monitor Systems . LIBR file (user responses are underscored) $A DTA0-14/DTAl-15/PRA-10) $UPDATE) UPDATE >U ... ) /Scratch tape on .DAT slot-lS /Call Update /Specify Update function (note: . LIBR BIN assumed) /Replace BCDIO with new version from paper tape reader /Close the file /New . LIBR on . DAT slot-15 > R BCD IO) >ct UPDATE To complete the update of the MONITOR System's . LIBR BIN file, it is necessary to call in PIP to delete the old . LIBR from unit 0 and to transfer the new . LIBR from unit 1 to unit 0. S-1 CHAPTER 4 LINKING LOADER SECTION l INTRODUCTION This chapter describes the operation of the Linking Loader and the composition of the binary information which comprises a loadable program unit. Operating procedures for the BASIC 1/0 and ADVANCED Monitor environments are included along with memory maps of the various phases of loading by the Linking Loader. 1-1 SECTION 2 DESCRIPTION 2. l OPERATION The Linking Loader loads and links relocatable or absolutet binary program units as produced by the FORTRAN IV Compiler and the MACRO Assembler. Absolute and relocatable coding should not be intermixed in one unit, and care should be taken in linking relocatable and absolute units. For FORTRAN generated program units, the Loader also assigns the common data storage area. Any input device that will input binary code can be used. Initially, the loader loads all the program units the names of which appear in the command string (see Operating Procedures, Section 7). Then, the Loader automatica Ily loads and Iinks a II requested and unresolved library subprograms. The requested library subprograms are loaded from the external (user) library (if one exists) and the system Iibrary (in that order). After both Iibraries have been examined for requested subprograms, the Loader prints the names of all subprograms which have not been found. If the user requires I/O handlers that are already in core for Linking Loader purposes, the resident handlers are used. Individual program units cannot be executed if the program flows across a 4K (SK for PDP-9) memory bank; the Loader prevents this type of loading. The Loader will, however, load (and link) the program in the next memory bank. No overlap checking of any kind is made with absolute binary program units. Optionally, symbols and their absolute definitions are loaded into a program dictionary (symbol table) for use by the dynamic debugging technique (DDT). The loader also sets up for DDT the start execution address of the main program (in the system communication table) and the initial relocation value of all the program units (in the symbol table). 2.2 FORTRAN COMMON STATEMENTS The Linking Loader permits FORTRAN COMMON blocks and block-data subprograms to overlap memory banks. For PDP-9 Systems, FORTRAN allows COMMON block sizes greater than 8192 10 , provided that each element in COMMON does not exceed 8192 10 . For example, tA MACRO assembled program headed by an absolute .LOC statement, e.g., .LOC 100, is an absolute binary program and the binary is output in link loadable format. A program headed by a .ABS statement is output as absolute block binary and cannot be loaded by the Linking Loader. 2-1 COMMON /I/L (100 I 100) is illegal because the size of array l is 10000 10 . COMMON is acceptable. /I/L 1(100,50) ,L2(100,50) Each array size is 5000 10 and the size of the common block is 10000 10 . For a PDP-15, FORTRAN allows COMMON block sizes greater than 4096 10 , provided that each element in COMMON does not exceed 4096 10 . For example, COMMON /J/K(80 ,80) is illegal because the size of array K is 6400 10 . COMMON /J/KI (80,40),K2(80,40) is legal. Each array size is 3200 10 , and the size of the common block is 6400 10 . Non-COMMON arrays and variables are initialized to zero (O) by the loader. MACRO programs can be linked to COMMON areas defined by FORTRAN IV. If any virtual globals remain after the loader has searched the user and system libraries and has defined COMMON blocks, an attempt is made to match those global names to COMMON block names. If a match is made, the global becomes defined as the COMMON block. An example fol lows: FORTRAN IV PROGRAM INTEGER A,B,C COMMON /NAME/C COMMON A,B MACRO PROGRAM .GLOBL NAME, .XX DZM* ISZ DZM* DZM* .XX .XX .XX NAME /.XX is name given to blank COMMON /by the F4 Compiler /CLEAR A - NOTE INDIRECT REFERENCE /BUMP COUNTER /CLEAR B /CLEAR C Note that if the values are REAL (2 words) or DOUBLE PRECISION (3 words), the MACRO program must account for the number of words when accessing specific variables. 2-2 SECTION 3 INFORMATION UNITS The binary output from the FORTRAN compiler and the MACRO Assembler consists of blocks of information units. Each information unit consists of an identification code (6 bits) and a data word (18 bits). The form of the object program at run time is determined by the content and the ordering of the information units. Several infor- mation units may be grouped to convey a single run-time instruction to the Loader. A block of information units consists of four 18-bit machine words arranged in the following manner: 5 6 0 Word I Code 1 I 17 11 12 Code 2 Word 2 Data Word 1 Word 3 Data Word 2 Word 4 Data Word 3 l Code 3 Standard !OPS binary line sizes (48 information words and a 2-word header) are input by the Loader. 3-1 SECTION 4 IDENTIFICATION CODES The identification code instructs the Loader on how to handle the associated data word. There is an implied order in which codes appear within a binary file (described in general under Program Unit Organization, Section 5). Cade 01 Loader Action Program Unit Size The data word specifies the number of machine words required by this program unit. This number does not include the required number of machine words for common storage. The program size is used by the Loader to determine whether or not the program will fit within the unused locations of any available 4K (BK for PDP-9) memory bank. Loading terminates with an appropriate error message if the program cannot be loaded. Th is information unit appears only once per program unit and is the first information unit of the binary output. In absolute loads, no checking is made for overlays; this is left to the discretion of the user. The program size is also used to determine where to begin loading as loading proceeds from the top of core down (see Memory Maps). 0 3 Data Word 17 Program Size t_ fl if absolute load \.O if relocatable load 02 Program Load Address The data word is an unrelocated memory address. This address specifies either an absolute or a relative storage address for program data words and is incremented by one for each data word stored (codes 03, 04, and 05). If the address is relative, it is initially incremented by the current relocation factor (modulo 15 bits). Bit 0 of the data word is used to indicate an absolute address (bit 0 = 1) or a relative address (bit 0 = O). 0 Data Word 3 Load Address xIo t_ [o, relative load address U, absolute load address 4-1 17 Code 03 Loader Action Relocatable Instruction The data word is a memory referencing instruction. The address portion of the instruction is incremented by the current relocation factor (modulo 12 bits for the PDP-15 and 13 bits for the PDP-9). The instruction is stored in the location specified by the load address which is incremented by one after the word is stored. or 0 Data Word 04 4 5 5 (PDP-9) 6 (PDP-15) 17 Unrelocated Memory Address Op Code Absolute Instruction/Constant/Address The data word is either a non-memory referencing instruction, a non-relocatable memory referencing instruction, an absolute address, or a constant. The word is stored in the location specified by the load address which is incremented by one after the word is stored. 17 0 Data Word 05 Non-Relocatable Word Relocatable Vector The data word contains a relocatable program address (vector). The word is incremented by the current relocation factor (modulo 15 bits). The data word is stored in the location specified by the load address which is incremented by one after the word is stored. 0 2 3 17 Data Word Vector 1, if FORTRAN indirect vector 06 Non-Common Storage Al location The data word specifies the number of machine words required for non-common variable and array storage. Storage allocation begins at the address specified by the load address. The load address is incremented by this number. This block of memory is cleared. 0 Data Word or 0--- 0 4-2 4 5 (PDP-9} 5 6 (PDP-15) I Storage Size 17 Code 07 Loader Action Symbo! - First Three Characters The data word contains the first 3-characters of a symbol in radix 508 format (see Appendix A). The data word is saved by the loader for future reference. 0 Data Word 08 2 17 IX I0 I Symbol L {O, 1- to 3-character symbol 1, 4- to 6-character symbol Symbol - Last Three Characters The data word contains the last 3 characters of a symbol in radix 50 8 format. The data word is saved by the loader for future reference. Th is word is used only if in the code 07 data word bit 0 = 1. 0 2 Data Word 09 17 Symbol External Symbol Definition The data word contains the unrelocated address of the transfer vector for the subprogram named by the last symbol loaded (codes 07 and 08). If the external subprogram has already been loaded, the address (definition) of the symbol is stored into the specified vector address {relocated modulo 15 bits). If the subprogram has not been loaded and this is the initial request, the symbol and the relocated (modulo 15 bits) transfer vector address are entered into the Loader symbol dictionary as a request for subprogram loading. Th is action automatically forces the Loader into a Library Search Mode when the end of the command string is encountered. If the Loader is already in the Library Search Mode, it remains there until all virtual globals have been resolved. If the subprogram has been previously requested (symbol in dictionary) but not loaded, the Loader chains the reference locations. This chain, generated exclusively by the Loader, is followed when the external definition is encountered. (Unchained transfer vector locations must initially contain a reference address (code 04 or 05) to themselves.) For example, .GLOBL SUB where SUB is virtual should cause the output of the following: 4-3 Loader Action Code 09 (Cont) 0 2 07 oj 09 0 17 SUB (radix 503) 0 l3 0 3 05 TVA DD 17 17 TV ADD 0 TV ADD and SUB defined internally as TVADD. Subroutine calls are made via JMS* SUB 3 Data Word 10 17 Transfer Vector Address I Internal Global Symbol Definition The data word contains the unrelocated or absolute address (definition) of the last symbol loaded (codes 07 and 08). The last symbol loaded is a global symbol internal to the program unit which follows. In the Library Search Mode, if a request for subprogram loading exists (code 09) in the Loader dictionary, the relocated (modulo 15 bits) or absolute definition is stored in the specified transfer vectors and the program unit is loaded. The definition also replaces the transfer vector address in the Loader dictionary. If no request for loading exists, the program unit is not loaded and the Loader continues to examine information units unti I the next internal globa I symbol definition is found (Library Search Mode). If the program unit is to be loaded, all internal global symbols following the one causing loading are automatically entered into the Loader dictionary as defined global symbols. If the symbol already exists in the dictionary and is defined (indicating that a program unit with the same name is already loaded) the current program unit is ignored. 0 3 17 Data Word 11 Symbol Definition Block Data Declaration This information unit instructs the Loader that the common blocks and data constants following are part of a block data subprogram. 0 3 17 Data Word Block Size 4-4 Code 12 Loader Action Common Block Definition The data word specifies the number of machine words required for the common block named by the last symbol loaded (codes 07 and 08). In general, the assignment of memory space for the common block is deferred until all requested library subprograms have been loaded. The exception to this rule occurs when the block data declaration (code 11) has been encountered. In this case, the common block name is treated as an internal global symbol, and the block is assigned to memory. After the block is assigned to memory, the starting address is entered into the Loader dictionary, and the starting address is saved by the Loader for future use (code 13). All symbols in the dictionary associated with the block are assigned addresses with respect to this starting address. All symbols which are yet to be loaded (via code 13 and 14) will also be assigned as they are encountered. When the block data flag is not set, the Loader enters the name and the size into the dictionary (if it is not already there) and also enters the word containing the next available dictionary entry address. This entry will contain the first symbol in this common block and will be used as the head of the chain of all symbols in this common block. The address of the head of chain is saved by the Loader so that the new set of symbols in the common block may be added to the chain. The larger of the two block sizes is retained as the block size. When the common block has already been assigned memory locations, the respective lengths are compared. Loading terminates, with an appropriate error message, if the assigned block is smaller. When the assigned block is larger or both are equal, loading continues. 0 3 17 Data Word 13 Block Size Common Symbol Definition The data word specifies the relative location of the last symbol loaded (codes 07 and 08) in the last common block (code 12). If the associated common block has been defined (block data), the absolute address of the symbol is calculated (block address plus relative position) and placed in TV location (code 14). When the common block has not been assigned, the relative address is entered into the Loader dictionary and chained to the symbols associated with the common block. 0 3 17 Data Word Relative Address 4-5 Code 14 Loader Action Common Symbol Reference Definition The data word contains the unrelocated address of the transfer vector for references to the common symbol named by the last symbol loaded (codes 07 and 08). The symbol definition (code 13) is stored in the relocated (modulo 15 bits) address specified when the associated common block has been assigned {code 12). When the block has not been assigned, the relocated (modulo 15 bits) address is entered into the Loader dictionary along with the relative address (code 13) of the symbol. 5 (PDP-9) or 6 (PDP-15) 0 Data Word 15 I I 17 Address of Vector 0 Data Initialization Constant - First Word The data word contains the first machine word of a data initialization constant. It is saved by the Loader for future use (code 18). 0 17 Data Word 16 Data Constant Data Initialization Constant - Second Word The data word contains the second machine word of a data initialization constant. It is saved by the Loader for future use (code 18). 0 17 Data Word 17 Data Constant Data Initialization Constant - Third Word The data word contains the third machine word of a data initialization constant. It is saved by the Loader for future use (code 18). 0 17 Data Word 18 Data Constant Data Initialization Constant Definition The data word contains the relative load address of the last data initialization constant loaded (codes 15, 16, and 17) and a mode code identifying the constant (real, integer, double, logical). The load address is incremented by the current relocation factor (modulo 15 bits) if the constant initializes a non-common storage element. When the constant 4-6 Code 18 (Cont) Loader Action initializes a common storage element (indicated by the presence of the block data flag, code 11), the load address is incremented by the address of the last common block loaded (code 12). The constant is stored according to mode and the relocated load address. 0 l 2 3 Data Word 17 I0 I I t{ Load Address XX I oo' mode= integer (1 word) 0 l , mode = rea I (2 words) 19 10, mode= double (3 words) 11, mode= logical (1 word) Internal Symbol Definition The data word contains the unrelocated or absolute address (definition) of the last symbol loaded (codes 07 and 08). The symbol is strictly internal to the program being loaded and is entered conditionally (if a DDT Load) along with its relocated (modulo 15 bits) or absolute address into the DDT symbol dictionary. The program unit name is indicated by bit 0=1 of the data word. 0 l 3 Data Word 17 Symbol Definition l {o, internal symbol lJ, program name -- from FORTRAN IV or MACR0-9 command string All symbols fol I into th is category. 20 String Code - First Half The data word contains the unrelocated address of a data word whose address portion is to be replaced by another value. The relocated (modulo 15 bits) address is saved by the Loader for future use (code 21). 5 (PDP-9) or 6 (PDP-15) 0 Data Word I o I 4-7 String Address 17 Code 21 Loader Action String Code - Second Half The data word contains an unre located address. The address port ion of the data word specified by the first half-string code (code 20) is replaced with this address (relocated modulo 12 bits (13 bits for a PDP-9). 0 Data Word 22 I 0- 0 I 5 (PDP-9) or 6 (PDP-15) 17 Replacement Address Input/Output Device Routine Request The data word specifies the unit number (.DAT slot number) associated with a device level 1/0 routine. The Loader defers loading of any 1/0 routines until all other subprogram loading has been completed; when subprogram loading is complete, the system library is searched for all requested 1/0 device routines not already residing in memory (see Operating Procedures). The 1/0 routines are then loaded. 0 Data Word 17 9 II 0 t fo =single unit ll =all units Unit Number L 2's complement when negative (.!ODEY ALL) all positive . DAT slots with non-zero contents 23 End of Program Unit This information unit is the last unit of a program unit. The data word contains the unrelocated or absolute start execution address of the program. The relocated (modulo 15 bits) or absolute start address is entered into the system communication tables to be used when control is given to the user. Only the first start address encountered is entered into the com- munication tables. (It is assumed that the first program unit specified in the command string is the main program.) The first address of the main program is used if the . END pseudo-op did not have a start address. When Ioad i ng from either the system or externa I Iibrari es, the end unit causes the Loader to examine the next line buffer for the end-of-file (EOF) condition. When the EOF for the external library is obtained, the Loader automatically begins searching the system library to resolve any remaining globals. Upon encountering the EOF of the system library, the Loader announces any unresolved global names. When loading is complete, control goes to the user program, DDT, or to the keyboard listener in the Monitor as a function of the load command (GLOAD, LOAD, DDT, or DDT NS) (see Operating Procedures). 4-8 Code Loader Action 0 3 Data Word 24 17 Start Address 18-Bit Parameter Assignment The data word is ignored by the Linking Loader. It was to have been passed on to DDT in the symbol table, however DDT was not implemented to recognize it. 4-9 SECTION 5 PROGRAM UNIT ORGANIZATION 5.1 MAIN PROGRAM AND SUBPROGRAM ORGANIZATION PROGRAM SIZE (code 01) for absolute or relocatable program, does not include COMMON size INTERNAL GLOBAL DEFINITIONS (code 10) PROGRAM NAME (code 19) PROGRAM LOAD ADDRESS (code 02) absolute or relative COMMON STORAGE (codes 12, 13 and 14) NON-COMMON STORAGE (code 06) Array Declaration Information Equivalenced Arrays and Variables Non-Equivalenced Arrays PROGRAM BODY Codes Codes 03) 04 05 ~~} Instructions & Literals Non-COMMON Variables and Arrays (06) Transfer Vectors (code 05) EXTERNAL GLOBAL SYMBOL DEFINITIONS (code 09) END (code 23) 5.2 BLOCK DATA SUBPROGRAM ORGANIZATION BLOCK DATA INDICATOR (code 11) PROGRAM NAME (code 19) COMMON STORAGE (codes 12, 13, and 14) DATA INITIALIZATION CONSTANTS (codes 15, 16, 17, and 18) END (code 23) 5-1 Symbol SECTION 6 DEFINITIONS Term Definition Loadable Program Unit A main program, subprogram, or a block data subprogram. Transfer Vector A core location containing the address of a subprogram or an entity in COMMON. All references to subprograms and entities in COMMON are indirect. Interna I Global Symbol A symbol defined in the current program unit and accessible to a 11 programs. Extern a I Globe I Symbo I A symbol which is referenced in the current program unit and defined in another. Virtual Global Symbol An external global symbol reference which has not yet been resolved by replacement with the internal global symbol definition. Relocation Factor The amount added to relative addresses to form absolute addresses; initially, the first loadable core location. The relocation factor for programs Following the first program unit is the next available load address. Radix 508 Format A method of symbol concatenationt utilizing 508 characters as a "number set", each with an unique value between and including 0 to 47a. The symbol {number) is converted using standard base conversion methods {see Appendix A). ti.e., linking together 6-1 SECTION 7 LINKING LOADER OPERATING PROCEDURES 7. 1 BASIC 1/0 MONITOR ENVIRONMENT When the Linking Loader is ready to accept the load command string from the keyboard, it outputs to the teleprinter: LOADER > Set up the input device and, if it is the paper tape reader, momentarily depress the tape feed control to clear the reader out-of-tape flag. The file names of all the programs that are to be unconditionally loaded from the input device (.DAT Slot -4) must be input from the teletype keyboard in the following form: > NAME l NAME2 NAME3) I I > NAME4, NAMES (ALT MODE) Comma and carriage return are used as file name separators. ALTMODE terminates the command string. N RUBOUTS are typed to erase the N previous characters in a line. CTRL U is typed to erase everything typed on the current line; however, if a typing error is discovered in a previous line, the user must type control P to restart the Ioader. The main program must be requested first. are ignored). The file names consist of one to six characters (any characters over 6 Fi le names are exactly those used in command strings for assembly or compilation. The Linking Loader appends the extension BIN. When the input device is not file-oriented, N commas followed by ALT MODE primes the Loader to load N + l programs from the device. After loading the programs requested in the keyboard command string, the Loader attempts to resolve all unsatisfied subroutine requests by scanning the system library (.DAT Slot-1). If, after scanning the library, there still remain some unresolved global symbol references, the Loader first defines all existing COMMON blocks and then defines these globals as the base address of COMMON blocks with the same name. The library must be in the format shown in the following illustration. 7-1 7. l. l Structure of System Library ONE FILE LIBR PROGRAM UNIT PROGRAM UNIT PPOGRAM UNIT PROGRAM UNIT PROGRAM SIZE DESCRIPTOR END-OF- FILE UNIT PROGRAM UNIT INTERNAL GLOBALS LOAD ADDRESS DESCRIPTOR PROGRAM UNIT DATA ONE IOPS BINARY BUFFER } H2 C1 /CzlC3 END CODE - - - 1 l ONE !OPS BINARY BUFFER TWO-WORD HEADER } ""_.,,,' D1 GROUP Dz Cn• 2310 TERMINATES A PROGRAM UNIT THE NEXT UNIT MUST BEGIN A NEW IOPS BINARY BUFFER. - 1 H1 VIRTUAL GLOBALS - D3 C4/C5/C5 - DESCRIPTOR D5 >- WORD 4810 s D5 I I I C34/C35/C36 D34 D35 _, D35 0-89-17 WORD 0 IOI W0 RD I 1-C-H-E-CK....L--SU-M--1 } END-OF-FILE------' UN IT END-OF-Fl LE UNIT ONLY PRESENT AT END OF LIBR FILE. MUST BE REMOVED FROM END OF ALL PROGRAM UNITS, SINCE FORTRAN IV AND MACR0-9 ALWAYS CREATES E-0-F UNIT. 15 -0066 7. l . 2 Loader Memory Map The loader outputs to the teleprinter the names and relocation factors (starting load addresses) of all the programs requested in the command string, followed by the required library routines in the following format: NAM El NAME2 NAME3 NAME4 NAME5 LIBRl LIBR2 16572 14301 10765 06427 06313 05304 04112 7-2 NOTE The relocation factor for absolute programs is zero. Whenever the Loader detects end-of-medium in the system library input device, tP is typed on the teleprinter. To continue, load more input (if the device is a paper-tape reader, momentarily depress the tape-feed control), and type CTR LP on the keyboard. 7. l . 3 Error Messages The Loader outputs to the teleprinter . LOAD followed by the pertinent error code and then halts (in paper-tape system) or exits to the Monitor (in Monitor System). Error Code Meaning Memory overflow - the Loader's symbol table and the user's program have overlapped. The loader memory map wi 11 contain printouts of a 11 programs successfu I ly loaded prior to the one which caused the memory overflow. Use of COMMON storage may enable the program to be loaded as it can overlay the Loader and its symbol table because it is not loaded into unti I run time. 2 Input Data Error - parity error, checksum error, illegal data code or buffer overflow (input line bigger than Loader's buffer). 3 Unresolved globals - if an explicitly or implicitly requested program cannot be found , it will appear in the memory map with an address of 00000. Th is ind i cotes that loading was unsuccessful; the cause of the trouble should be remedied and loading tried again. 4 Illegal .DAT slot request - the .DAT slot requested is a. out of the range of legal .DAT slots b. 0 c. does not have a device associated with it; that is, it was not set up at SYSTEM generation time, and (in ADVANCED Monitor systems) was not set up by an ASSIGN command. When all requested programs have been loaded and all library requests satisfied, the Loader outputs tS on the teleprinter and sits in a JMP loop. Typing tS on the keyboard gives control to the starting address of the user's main program. NOTE If use is to be made of the paper-tape reader, load the reader and then momentarily depress the tape-feed control. When the user program has completed its operation and terminated via the . EXIT command, the computer wi II halt. 7-3 If this is a DDT load, on completion of the loading and building of a DDT symbol table (exclusive of the library routine symbols and those of DDT itself) control is automatically given to the starting address of DDT. DDT types ~DT to inform the user that it is waiting for a DDT command. The user can force control back to DDT at anytime, by typing tT on the teletype keyboard. 7.2 ADVANCED MONITOR ENVIRONMENT The operating procedures noted below are required in addition to those described under the BASIC I/O Monitor environment. After loading the programs requested in the keyboard command string, the Loader attempts to resolve all unsatisfied subroutine requests by scanning the external (.DAT Slot -5) and system (.DAT Slot -1) libraries, in that order. In order to inform the Loader that an external (user) library file exists for this load, it is necessary to ASSIGN an I/O device to .DAT Slot -5 prior to the LOAD, DDT, DDT NS or GLOAD command, i.e., $ASSIGN DTA4 -5 $LOAD The format of the external library file is identical to that of the system library file (see Section 7. l. J). If this is a DDT load, (DDT), on completion of the loading and the building of a DDT symbol table (exclusive of the library routines' symbols and those of DDT itself), control is automatically given to the starting address of DDT. A program can be loaded with DDT but without the user symbol table by requesting loading with the DDTNS keyboard command. For example, $DDT NS This feature gives the user more operating space but deprives him of symbolic references to user symbols in DDT commands. If a loading error occurs, an appropriate error message is output to the teleprinter and control is given to the system bootstrap to reinitialize the Keyboard Monitor. When all the requested programs have been loaded and all library requests satisfied, the Loader will a. If LOAD, wait on the recognition of t S by the keyboard handler and then give control to the starting address of the user's main program. 7-4 b. If GLOAD, give control to the starting address of the user's main program. c. If DDT or DDT NS, automatically give control to the starting address of DDT. When the user program has completed its operation and terminated via the . EXIT command, control is given to the system bootstrap to reinitialize the ADVANCED Monitor and wait for the next keyboard command. 7-5 SECTION 8 MEMORY MAPS 8. 1 INTRODUCTION The following paragraphs present memory maps depicting the core allocation for the various types of programs which may be loaded during Linking Loader operations. These maps, as shown, apply only to systems which have core sizes that are some multiple of SK (i.e., SK, 16K, 24K, or 32K). In PDP-15 Systems core is available in 4K modules; thus, it is possible to have systems which, based on SK multiples, have an odd 4K segment (i.e., 12K, 20K, or 28K). In systems of this type, the odd number of 4K segments is indicated by having bit 0 = l in .SCOM+20. To make the memory maps presented in this Section applicable to systems having an odd number of 4K core memory modules (segments), the following additional information must be considered when viewing the maps. In systems containing an odd number of 4K core segments, the bootstrap loader does not reside at the top of core but, rather, resides in the top of the highest even-numbered 4K segment; the top (odd-numbered) segment is left free. When the Linking Loader is brought into core, registers . SCOM and . SCOM+3 are set to point to the core register located immediately below the bootstrap. During the core loading process, DDT and user programs are loaded starting at the top of core (in top odd-numbered segment); care is taken to avoid overlaying the bootstrap. If the loaded programs fit entirely within the top 4K segment, the pointer which indicates the highest free core location (.SCOM+3) is set to point to the register located immediately below the bootstrap to protect it. 8-1 8. 2 I/O MONITOR ENVIRONMENT Linking Loader Tape BK or 16K or 24K or 32K BOOTSTRAP LOAOERIN HRM FORMAT T • SCOM AND o SCOM + 3 USER PROGRAMS t Refer to memory map 2A of Advanced Monitor Systems for results of Link Loading. + GLOBAL SYMBOL TABLE l o SCOM+2 LINKING LOADER PAPER TAPE READER HANDLER o SCOM +1 l/0 MONITOR WITH TELETYPE-IN Ar.ID TELETYPE-OUT DEVICE HANDLERS 0 8-2 SK or 16K or 24K or 32K BOOTSTRAP LOADER IN HRM FORMAT • SCOM Refer to memory map 2B of Advanced Monitor Systems for results of Link Loading in DDT mode. DOT T • SCOM +3 USER PROGRAMS t + GLOBAL ANO DOT SYMBO\TABLES • SCOM+2 LINKING LOADER Paper Tape Punch Handler is only present in version of DDT with patch file capabilities. PAPER TAPE PUNCH HANDLER PAPER TAPE READER HANDLER NOTE • SCOM + 1 I/O MONITOR WITH TELETYPE-IN AND TELETYPE-OUT DEVICE HANDLERS Refer to Paragraph 8. 1 for information regarding map configurations for 12K, 20K, and 28K systems. 0 09-012!5 8-3 8.3 ADVANCED MONITOR ENVIRONMENT LOAD GLOAD DDT DDT NS (DDT without symbol table) Phase l BK or 16K or 24K or 32K RESIDENT SYSTEM BOOTSTRAP 1 • SCOM AND o SCOM +3 Valid only for SK increments. The System Loader learns which l/O handlers are required by the Linking Loader, loads them relocatably, and then loads the Linking Loader relocatably. The Linking Loader, during loading of user programs { down from . SCOM+3 builds the loader (GLOBAL) and DDT (if DDT) symbol tables up from .SCOM+2. If a DDT load, the Linking Loader just prior to giving j control to DDT moves the DDT symbol table down in core so that it overlays all of the Linking Loader except for the small routine that makes the block transfer. • SCOM+2 The Linking Loader will not load a device handler thct is already in core for its own use. LINKING LOADER LINKING LOADER DEVICE HANDLER NOTE LINKING LOADER DEVICE HANDLER Refer to Paragraph 8. l for information regarding mcp configurations for l 2K, 20K, and 28K systems. • SCOM+1 RESIDENT MONITOR (INCLUDING TELETYPE HANDLER) 0 09-0IZ4 8-4 Phase 2 (DDT or DDTNS) BK or 16K or 24K or32K RESIDENT SYSTEM BOOTSTRAP • SCOM DOT . EXIT from the user program causes the system bootstrap to re-initialize the Advanced Monitor. USER PROGRAM lSl USER/DOT DEVICE HANOLER USER/DDT DEVICE HANDLER J • SCOM + 3 If a DDTNS load, no DDT symbol table is built. DDT CREATED SYMBOLS ANO PATCH SPACE • SCOM + 2 DDT SYMBOL -----TABLE COMPACT DDT { SYMBOL TABLE (17171/llffllfR • SCOM + 1 LJNKI NG LOADER DEVICE HANDLER LINKING LOADER DEVICE HANDLER L LINKING LOADER BLOCK TRANSFER ROUTINE Non BLOCK DAT A COMMON (FORTRAN IV or MACRO output) may make use of core as low as the compact DDT symbol table (DDT only retains certain symbol table entries). However, the user must be careful about placing patches. The Linking Loader device handlers would have been used to satisfy user device requests. RESIDENT MON/TOR (INCLUDING TELETYPE HANDLER I NOTE 0 09-012 5 Refer to Paragraph 8. l for information regarding map configurations for l 2K, 20K and 28K systems. 8-5 Phase 2A (Not DDT or DDTNS) SK or 16K or 24K or 32K RESIDENT SYSTEM SOOTS TRAP • SCOM . EXIT from the user program causes the system bootstrap to re-initialize the Advanced Monitor. USER PROGRAM(S) USER DEVICE HANDLER USER DEVICE HANDLER USER DEVICE HANDLER • SCOM +3 . SCOM+ 1 and . SCOM+2 point to one of two places. a. If the user program did not have any device handlers in common with the Linking Loader. ------- b. (b.l LINKING LOADER DEVICE HANDLER If the user program did have at least one device handler in common with the Linking Loader. Non BLOCK DATA COMMON (FORTRAN IV or MACRO output) may make use of core as low as .SCOM+2. ------LINKING LOADER DEVICE HANDLER (o.l RESIDENT MONITOR (INCLUDING TELETYPE HANDLER) NOTE Refer to Paragraph 8. 1 for information regarding map configurations for 12K, 20K, and 28K systems. 0 09-012 6 8-6 APPENDIX A SYMBOL CONCATENATIONt - RADIX 508 FORMAT Radix 50 8 is a technique used by the MACRO Assembler and the FORTRAN IV Compiler to condense the binary representation of symbolic names in symbol tables. Three characters, plus two symbol classification bits, are contained in each 18-bit word. A symbol is defined as a string of one to six characters, i.e., where any of the possible six characters (Cl through C 6 ) can be defined as: Character 6-bit octal code Space 00 A 01 + + z 32 % 33 34 0 35 + + 9 46 # 47 The characters which make up a symbol are linked together in the following manner: Word 1 ((c 1 *508 )+c 2)5o8 +c 3 Word 2 ( (C 4 *508 )+C 5 )508+c 6 For example, the symbol SYMNAM would be entered in the Loader's symbol table as: Word 1 ((23 8 * 508 )+31 8 )50 8+15 8 = 475265tt Word 2 ((168 * 50 8 )+1)508 +15 8 = 053665 t.1 • e . , 1·ink"ing toget her ttThe sign bit of WORD 1 is set to 1 to indicate that this symbol consists of more than 3 characters and that the WORD 2 is necessary. A-1 APPENDIX B LOADER SYMBOL TABLE Common Block Name 17 23 0 l ID 2 3 i_[ID = 7 when not defined Block Size -(ID= 3 when defined Name (2A) Symtab address of last entry in chain - 4 Block Definition 0 if no entries - 0 if not defined +-- ID 4 Address= 0 if last entry in chain - BO = I for easy entry update "Name" may require 2 words Common Name 23 0 l ID 2 17 Symtab Chain Address 1 TV Address 3 Relative Address in Block If associated COMMON block was defined when code 14 is encountered, no entry is needed in the symbol table. Virtual Global (internal) 0 3 ID 17 I 2 Definition Name (2A) Definition (Virtual)= Absolute Address of last TV in chain Virtual ID = l Definition (Internal) =Absolute Address of Symbol Internal ID = 5 "Name" may require 2 words. Internal Names I 2 17 3 0 ID l Definition ID= 0 } (If Program Name ID= 6) Name (2A) "Name" may require 2 words. B-1 Only entered into the symbol table during DDT loads. CHAPTER 5 CHAIN AND EXECUTE SYSTEM PROGRAMS SECTION 1 INTRODUCTION 1. l PROGRAM DESCRIPTION Chaining in the Advanced Monitor System is a method of segmentation which permits multiple overlays of executable code, constants, variables, arrays and labeled COMMON blocks. Core which is not overlayed is available for inter-segment communications (i.e., blank COMMON). a. CHAIN - a modified version of the Linking Loader which allows the user to build all the various segments (or chains) of his program into an executable (XCT) type file. CHAIN is relocatable. b. EXECUTE - a control program which initiates loading of an executable (XCT) file and transfers control from one segment (chain) to another. EXECUTE is absolute. 1.2 CALLING SEQUENCE FORTRAN IV The statement CALL CHAIN (N) must be used to get from one program segment to another (i.e. , chain to chain). The argument N is the number of the chain to be cal led; N can be greater or less than the current chain number but cannot equal it. Variables and arrays which are retained from chain to chain must appear in blank COMMON. MACRO The calling sequence for chaining in MACRO is: . GLOBL CHAIN JMS* JMP .DSA CHAIN .+2 N Where N is the address of a register containing the number of the chain to be cal led. NOTE All 1/0 must be completed (.CLOSEd) before CHAIN is called. 1-1 The scratch, or inter-segment communication, area available to MACRO written segments is delimited by system registers . SCOM+2 and . SCOM+3. The lower I imit (. SCOM+2) remains constant throughout execution. The upper limit(. SCOM+3) is the first register below the currently resident segment and will vary unless all segments are of the same size. The total size of this free area is greater than the sum of the size of CHAIN and its I/O HANDLER(S) minus the size of EXECUTE'S I/O HANDLER. 1-2 SECTION 2 CHAIN SYSTEM PROGRAM 2. 1 FUNCTIONAL DESCRIPTION CHAIN is a relocatable system program which writes an XCT type file. Input consists of the standard relocatable binary (FORTRAN IV or MACRO output) with appropriate calls for segment loading. The following .DAT slots are used by CHAIN: .DAT-6 .DAT-5 .DAT-4 .DAT-3 .DAT-2 .DAT-1 Output of XCT file External Library User Program(s) Control and Error Messages Command String System Library NOTE If any of the bulk storage device handlers (e.g., DT or DK) are used, the same handler must be used for all appropriate . DAT slots. The different versions of handlers are unable to communicate with each other. For example, if input and output are to be to and from DECtape, DTA. {or DTB.) should be assigned to .DAT slots -6, -4, and -1. The CHAIN program recognizes six commands (optional abbreviations are in parentheses}: a. BUILD FILE NM) b. CHAIN (C) N) c. FILE!, SUBJ, etc.) d. END (E)) e. CLOSE) f. EXIT) 2-1 BUILD FILENM - This command initiates the building of FILENM XCT onto .DAT-6. If no file name is given, an error message results. This command is legal only immediately after the typeout of CHAIN. If it is used at any other time, an error message results, and the BUILD command is ignored. CHAIN{C) N - A chain with number N is begun at this point. N may be any positive, non-zero decimal num- ber. It must be greater than any N given in a previous CHAIN command. This command is legal only after a BUILD or an END command. If it is used at other times, it is ignored, and an error message given. FILEl ,SUBl, etc. - All commands immediately following the CHAIN command and before the END command are interpreted as filenames to the Linking Loader portion of the XCT file builder. The following are illegal file names: BUILD, CHAIN, C, END, E, and CLOSE. If these files are to be loaded from a nonfile-structured device (e.g., paper tape) the file names can be omitted. Only the number of files, N, need be indicated by typing N-1 separators. NOTE Fi Ie names may be separated by comma , space, carriage return, or ALTMODE. CLOSE - Finish building the file FILENM XCT, and restart CHAIN. END(E) -Terminates the filenames used for a particular chain. This command must be used after a CHAIN command and with at least one filename between it and the CHAIN command. It can appear on the same I ine as the filenames, if so desired. EXIT - Return to Monitor. In the case of the I/O Monitor, CHAIN halts. It can be restarted from this point by doing an I/O Reset and starting at location 363 {with the EXTEND switch up if the machine has more than BK of core}. 2.2 OPERATING PROCEDURES The following procedures are used in the performance of CHAIN's operations. a. Ca II i ng Procedure ( 1) Advanced Monitor System To load and start the CHAIN system program, type CHAIN~ after the Monitor's$ request. (2) I/O Monitor System To load and start the paper-tape version of CHAIN, place the tape in the reader; depress the tapefeed switch to clear the end-of-tape flag; set the address switches to 17720 (for BK or 12K), 37720 {16K or 20K), 57720 (24K or 28K), or 77720 (32K); and press 1/0 RESET and READ IN. 2-2 When CHAIN is in core, the message CHAIN > is typed on the teleprinter, and CHAIN waits for a command from the user. b. General Command Characters RUBOUT (echoes \) Delete last character in current I ine of command string. May be repeated n times to delete n characters in a line. CTRL U (echoes@) Delete entire line. CTRL P(echoes tP) Stop current program execution and restart the CHAIN program at the beginning. c. Restart Procedures CLOSE Finish building FILENM XCT, and restart CHAIN. EXIT Return to Advanced Monitor (or halt 1/0 Monitor System). CTRL P(echoes tP) Stop current program execution and restart the CHAIN program at the beginning. d. Example CHAIN >BUILD TEST) >CHAIN l ) >FILE l, SUB l, SUB2) >SUB3 I SUB4) >END) Initiates building of file named TEST XCT First chain Programs in this chain (First one is main program) End of this chain Memory al location typeouts >CHAIN 4) >FILE4, SUBA) >SUBB, END) Last chain End of th is cha in Memory al location typeouts >CLOSE CHAIN >EXIT Terminate TEST XCT Return to Advanced Monitor (or halt 1/0 Monitor System). 2-3 2.3 ERROR CONDITION TYPEOUTS Meaning Message ? Illegal command ILLEGAL DECIMAL DIGIT Illegal decimal digit in chain number ILLEGAL COMMAND ORDERING Command entered is out of order and should not be used at this point. ILLEGAL CHAIN NUMBER Chain number is less than or equal to the last chain number. ILLEGAL FILE NAME Fi le name used is same as a reserved command name. . LOAD N Errors Linking loader errors, which are terminal. CHAIN can be restarted, however, by typing control P. Memory overflow Input data error Unsatisfied Global symbol (missing program) Illegal . DAT slot requested by user program .LOAD 1 .LOAD 2 .LOAD 3 .LOAD 4 2.4 MEMORY ALLOCATION TYPEOUT a. Load addresses of programs, subprograms, and library routines loaded FILE SUB LI Bl xx xx xx xx xx xx NOTE XXXX is the relocation factor in octal. LIBN b. xxxx Special typeouts CHAIN# LOWEST xx xx COMSZE xx xx N (chain number in octal) (lowest register used) (contents of . SCOM+3 plus 1) (C(. SCOM+3)+ 1) (size of blank common) 2-4 2.5 MEMORY MAP AT CHAIN BUILD TIME (same for each chain) top of core BOOTSTRAP Reserved Area { occupied at run time by EXECUTE starting at 17077, 37077, 57077, or 77077 { NAMED COMMON can go as low as the top of the resident Monitor and EXECUTE 'S 1/0 Handler if there is no blank COMMON USER PROGRAMS SUBl I/O LIB 1 LIB2 NAMED COMMON SYMBOL TABLE Blank COMMON is allocated at EXECUTE time. CHAIN CHAIN'S I/O HANDLERS (PRA. and PPC. for the paper tape system) Resident Monitor (including teletype handler) 0 NOTE In systems with 12K, 20K or 28K of core, the bootstrap loader does not reside in the top of core. Instead, it is located in the top of the highest even 4K core segment. When user programs are loaded into core, ave id overlaying the bootstrap. 2-5 SECTION 3 EXECUTE SYSTEM PROGRAM 3. l FUNCTIONAL DESCRIPTION EXECUTE is an absolute bank relocatable system program which loads the first chain (i.e., segment) of an XCT type file and remains in core to load subsequent chains as they are called. DAT SLOT USAGE 3.2 . DAT -4 XCT type file input (use smallest IOPS BINARY input only handler (e.g., DTC.) to allow maximum core area for blank common) . DAT-3 Error messages OPERATING PROCEDURES Calling Procedure (Keyboard Monitor System) The command to load EXECUTE consists of either the letter E or the name EXECUTE and the name of the XCT type file which is to be run; it has the following form: MONITOR $EXECUTE FILEN) or MONITOR $EFILEN) 1/0 Monitor System To load the paper tape version of EXECUTE, place the tape in the reader; depress the tape-feed switch to clear the end-of-tape flag; set the address switches to 17720 (for BK or 12K), 37720 ( 16K or 20K), 57720 (24K or 28K) or 77720 (32K); and depress l/O RESET and READ IN. When EXECUTE is loaded, it types RESTART INPUT & IP Put the paper-tape XCT file in the reader, depress the tape-feed switch and type CTRL P. 3-1 3.2.1 Special Operational Characteristics a. COMMON SiZE A warning message is given if the blank common size in a new chain is different from that of the previous chain. ***WARNING - COMMON SIZE DIFFERS*** b. NON BULK STORAGE INPUT The following message is given if an attempt is made to call a chain number less than the current chain using non-bulk storage input: RESTART INPUT & IP This means that the user should reload the XCT file in tape reader, depress the tape-feed switch, and type CTRL P. 3.3 MEMORY MAP AT EXECUTE TIME top of core BOOTSTRAP EXECUTE .-------17077, 37077, 57077 or 77077 USER'S CHAINS . . . - - - - . SCOM+3 (highest free core location) BLANK COMMON - - - - . SCOM+2 (lowest free core location) EXECUTE 'S 1/0 HANDLER (PRA. for the paper tape system) RESIDENT MONITOR 0 NOTE In systems with 12K, 20K or 28K of core, the bootstrap loader resides in the top of the highest even 4K core segment, which leaves 4K above the bootstrap. Execute is Ioaded into the top of core, above the bootstrap. User chain files ore built to ovoid overlaying the bootstrap. 3-2 CHAPTER 6 PIP SECTION 1 INTRODUCTION The Peripheral Interchange Program (PIP) is a utility program in the ADVANCED Monitor System used to transfer data files from one standard peripheral device to another. PIP operates under Monitor control, using the Monitor 1/0 device handlers. Files can be verified, renamed, deleted, combined or split into segments. Entire DEC tapes, or individual DECtape blocks, can be copied and verified. File directories can be listed or initialized. Mony of these functions and other subsidiary functions can be combined by inserting optional switches when the user types a command string to PIP. The following peripheral devices can be used as either input (source) or output (destination): Peripheral Device Mnemonic DECtape (TC02 Control Unit with TU55 Transports) DTn Paper Tape Reader/Punch (PC 15) PR (Reader) PP (Punch) Line Printer (Type 647) (output only) LP Teletype (KSR33 or KSR35) TT Card Reader (CR03B) CR Magnetic tape (TC59 Control Unit with TU20, TU20A, TU30, or TU30A Transports) MTn Disk System (Type RB09) DKn Disk System (Type RF15, RS15) RFn Disk System (Type RP15, RP02) RPn Display (VP15, 611 Storage Scope) VP 1-1 SECTION 2 DEVICE ASSIGNMENTS Before using PIP, the user must be sure that the peripheral devices he plans to use are assigned to positive slots in the Monitor's Device Assignment Table (.DAT), because PIP scans this table for legal assignments other than teletype. Because .DAT slots -2 and -3 are assigned to teletype, PIP uses these for all teletype 1/0. When typing a command string, the user specifies devices simply by writing mnemonic codes, such as DT2, PR, or TT. 2. l BASIC 1/0 MONITOR SYSTEM Jn paper-tape 1/0 Monitor systems, where the Device Assignment Table is fixed, the user need not be concerned with .DAT slot assignments. Table 2-1 contains the standard 1/0 Monitor assignments for PIP. Table 2-1 1/0 Monitor . DAT Slot Assignments .DAT Slot No. Assignments l 2 TTA TTA PRA LPA PPA CDB PPA PRA 3 4 5 6 7 10 2 .2 ADVANCED MONITOR In ADVANCED Monitor systems, the user must ensure that the devices he plans to use are assigned .DAT slots. The Monitor REQUEST PIP command is used to get a typeout of a II current . DAT slot assignments. If a device he plans to use is not listed, an ASSIGN command is used to assign that device to any positive .DAT slot. The most complete handler (e.g., DTA, PPA, etc.) should normally be assigned. If the same device is to be used as both the source and destination device, it must be assigned to two positive . DAT slots. Because these . DAT slot assignments are for use by PIP, the user need not remember them. Systems distributed by DEC initially have the assignments shown in Table 2-2. 2-1 Tobie 2-2 Initial .DAT Slot Assignments . DAT Slot No . Assignment -3 TTA TTA DTAO DTAl DTA2 TTA PRA PPB DTAl DTA2 -2 1 2 3 4 5 6 7 10 2-2 SECTION 3 PIP COMMAND STRING: GENERAL When PIP is in core memory (in an Basic Monitor or ADVANCED Monitor environment), it informs the user of its readiness to accept keyboard commands by outputting the following on the teleprinter: PIP Vnn > The user can then type a command string to PIP on the same line as the right angle bracket (~. Successful completion and readiness for the next command is normally acknowledged by CR, LF, > unless there has been intermediate output to the teleprinter by PIP. In the latter case, the initial response (PIP, CR, LF, >) is output once again for ease of later printout examination. PIP command strings are of the following general form: a dd r:J r;l fname L_sPACE ext (x) .. sd L_sPACi:_! r :J fname [ LsPACE J ; SPACE J ext (x) [) ALT MODE a =A single letter, specifying a PIP operation. where: dd =the destination device fname =file name ext =file name extension (x} = letter(s} specifying a PIP switch option(s} sd =source device The left arrow ( .. ) terminates information concerning the destination device. Data for the source device follows the ... CR or ALTMODE must terminate a command string. ALTMODE forces PIP to return control to the Monitor upon successful completion of the command. CR causes PIP to wait for another command upon completion of the current one. Multiple spaces are ignored by the command string processor. In fact, delimiters are only required following the operation character, device names, and file names. Example: T DTl NEWNAM BIN (B) .. DT2 OLDNAM BIN) TDTl: NEWNAM;BIN (B) +-DT2: OLDNAM;BIN) or 3-1 The elements in the preceding example are: T PIP DTl I DT2 DECtape l is the destination device, DECtape 2 is the source device . NEWNAM, OLDNAM Fi le names BIN Fi le name extension Transfer Fi le operation Transfer direction indicator (right to left, i.e., DT2 to DTl) B 3. l Switch option OPERATION CHARACTER The first character in a PIP command string must be an operation character defining the main function to be performed. It must be followed by a space. Legal operational characters are listed in Table 3-1. Table3-l PIP Operation Characters (T) Transfer Fi le (V) Verify Fi le (L) List Directory (S) Segment Fi le (D) Delete File (B) Block Copy (C) Copy (N) New Directory (R) 3 .2 Rename File DEVICE NAME Because the ADVANCED Software System provides more than one device handler for some peripherals, a twoletter mnemonic (norma I ly corresponding to the first two letters of the handler name) is used for device name specification in PIP. Table 3-2 lists legal device names. For multi-unit peripherals (e.g., DECtape) the unit number, 0-7, appears after the device mnemonic (e.g., DT7). The device name delimiter must be a colon (:) or a space. The device name comprises three alphabetic characters, if desired (e.g., PRA, DT A7). Th is is permitted in PIP for command consistency within the system; i.e., the user, accustomed to typing $ASSIGN DT An , . , , • to the Monitor, is relieved of learning a different convention for PIP. Table 3-2 PIP Device Names (PR) (PP) (TT) (LP) (DT) (MT) (CD) (RF) Paper Tape Reader Paper Tape Punch Teletype Line Printer 3-2 DECtape Magnetic Tape Card Reader Disk 3 .3 FILENAME AND EXTENSION Filename and extension, if used, constitute one element of the command string, where the filename delimiter is a semicolon (;)or space. If the extension is omitted, the default assumption is three full characters (refer to NOTE of paragraph 5 .2). If more than one filename is specified, the second / third, etc., are separated from earlier names by commas (,). If the device is not a file-oriented device, file names can be omitted. Commas, however, must sti II be used for file count purposes. Some examples of device, file name, and file name extensions follow: DT 5:FILEA, FILEB;SRC (2 files) or DT5 FILEA,FILEB SRC PR:,, (3 files) or PR..__. /1 PP: (1 file) or PP A filename is a string of up to six alphanumeric characters. Any printing character in the ASCII set can be used with the exception of a space, (:), (;), (, ), (()and()), which have specific delimiter meanings to PIP. The filename extension can be up to three characters long. 3 .4 SWITCH OPTIONS Switch options are enclosed in parentheses and require no delimiters to separate them from each other. They may appear either with the destination device information or with the source device information. PIP switch options are divided into two classes: data modes and subsidiary operations. 3 .4. 1 3.4.2 Data Modes (A) !OPS ASCII (B) !OPS Binary (I) Image Alphanumeric (H) Image Binary (D) Dump Subsidiary Operations (G) Display on teletype and allow correction of bad parity checksum lines (E) Convert tabs to spaces (C) Convert multiple spaces to tabs (N) New directory (S) New directory plus reservation of t QAREA (Y) Segment file (W)t Combine several source files, or tapes, stripping .EOT's and . EN D's from intermediate tapes. or 0/V)t Combine several binary files, stripping EOF's from intermediate files. (F) Insert a form-feed (FF) and a Carriage-Return (CR) after every .EJECT statement or after every 57 10 Ii nes . (T) Delete trailing spaces from ASCII file. (Q) Delete sequence numbers from ASCII input lines during transfer (T) operations. t .END and .EOT on the final ASCII tape and EOF of the final binary tape are retained. 3-4 SECTION 4 PIP FUNCTIONAL DESCRIPTION Functionally, PIP can be described in terms of operations which are specified and subsidiary switch functions which are requested as parts of a given operation. All PIP operations and switches which are valid in the BASIC I/O Monitor paper-tape system are also valid in the ADVANCED and Background/Foreground Monitor systems. The converse is not true, however. Operations out I ined below are described in detai I and with examples, in Section 5. 4.1 OPERATIONS UNDER THE BASIC I/O MONITOR Three PIP operations are provided in the BASIC I/O /\ilonitor environment: Transfer Fi le, Verify Fi le, and Segment Fi le. 4.1. l Transfer File (T) T performs basic data or file transfer from one I/O device to another. In the BASIC I/O /\ilonitor environment T is used to copy paper tapes and list paper tapes or card decks on the teletype or line printer. T also provides the ability to create a source file by transferring from teletype to paper-tape punch. Paper tapes can be combined into one paper tape or segmented (IOPS ASCII tapes only) into several tapes. 4. I .2 Verify Fi le (V) The V operation allows parity/checksum verification of paper tapes. This function is particularly useful for verifying paper tapes copied with the T command. 4.1.3 Segment File (S) The S operation provides a means for segmentation of bulk source paper tapes into two or more smaller tapes. All PIP operation commands are independent of other commands except Segment which is used prior to a Transfer command in order to specify at what paints in the source file segmentation is to take place. The S command string can accommodate up to sixteen segmentation paints or character strings (1-5 characters) at the beginning of lines at which segmentation is to take place. Each file is terminated with a .EOT just prior to the next segmentation point. Transfer continues to the next segmentation point, etc. 4-1 4.2 SWITCH OPTIONS UNDER THE BASIC 1/0 MONITOR The data mode switches which may be used in the BASIC I/O Monitor environment are: (A) !OPS ASCII (B) IOPS Binary (I) Image Alphanumeric Function switches for use vnder the BASIC I/O Monitor are: (G) Correct bad parity lines (E) Convert tabs to spaces (C) Convert multiple spaces to tabs (Y) Segment file (W) Combine files (F) Insert Form-Feed and Carriage -Return (T) Delete training spaces from ASCII files (Q) Delete sequence numbers from ASCII lines Switch options can be used for some operations but are meaningless for other operations. Table 4-1 lists legal options by operation in the BASIC 1/0 Monitor environment. Furthermore, certain switch options conflict; e.g., combining the option to convert tabs to spaces (E) and spaces to tabs (C) is clearly a conflict. Table 4-2 I ists leg a I switch combinations for the primary PIP operation, Trans fer Fi le. Table 4-1 Legal Operation/Switch Combinations Operation Legal Switches Transfer Fi le (T) A, BI I I E, G I c I wI y' F' T I Q Verify File (V) A or B Segment File (S) (None) 4-2 Table 4-2 Legal Switch Combinations for Transfer File (T) Switches Subsidi~ry Operations 4 .2. 1 Data Modes ~ A B I E E j ~ G ./ I c w I y ../ T ./ F j Q I j j Subsidiary Operations ~ c w y j j ~ j j I ~ I j j j j I ./ ./ I ./ j j ~I ./ j j ~ I j G I j j j j I I j I ./ ./ f%a ./ j ./ I j j T F Q j ~ j ./ ./ ~ j Image Alphanumeric (I) The I data mode permits copying of any paper tape but, in particular, I must be used when copying tapes which are in Hardware Read-in Mode (H RM or RIM tapes). Thus, MACRO .ABS or .FULL tapes require the I data mode. 4 .2 .2 !OPS Binary (B) Relocatable binary tapes are reproduced using the binary data mode B. 4 .2 .3 !OPS ASCII (A) Source tapes are normally copied using the A data mode. It should be noted, however, that use of the A mode resu Its in !OPS ASCII paper tapes having even parity in channel 8 of each frame. If for some reason this is undesirable to the user, a data mode of I is recommended. ASCII line buffers can accommodate the 120character line printer length. 4 .2 .4 Bad Parity Correction (G) Whenever data modes A or Bare specified during a Transfer command, PIP automatically verifies the correctness of parity/checksum. The G switch, used with !OPS ASCII mode only, al lows the user to modify erroneous input lines via teletype keyboard input. User intervention takes one of three forms: the line may be deleted, the line may be accepted, or the line may be replaced from the keyboard. The option to restart CTRL Pis always available. 4-3 4.2.5 Tab to Space Conversion (E) The E switch allows for conversion of horizontal tabs to spaces to allow off-line listing of ASCII tapes on Model 33 Teletypes. It is used with IOPS ASCII tapes. IOPS (Input/Output Programming System} follows a tenth position tab setting convention; thus, enough spaces are substituted for a tab to place the next printing character of the line in position 10, 20, 30, etc. 4.2.6 Space to Tab Conversion (C) To condense an ASCII paper tape, the C switch is used to convert multiple spaces on an input file into horizontal tabs on the output file. Trailing spaces are simply deleted. Again, C is legal only when used with the A data mode. 4.2.7 Segment File (Y) To apply the Segment operation during a Transfer file command, a Y switch is required in the T command string. On the basis of the Y switch, the IOPS ASCII input file is segmented into the number of output files specified in the preceding S command. 4.2.8 Combine Files~) Although combining files, or a series of paper tapes into one file, is most common when transferring from paper tape to a mass storage medium, it is possible to combine several small paper tapes into a single larger paper tape by indi eating a W switch in a T command. Either IOPS binary or ASCII tapes can be so combined. For binary files, all but the final EOF block of the input tapes are discarded on output. Likewise, when combining a series of IOPS ASCII paper tapes, all .EOTs and . ENDs are stripped except that of the final input tape. 4 .2. 9 Insert Form Feed (F) The F switch is used to automatically execute a form-feed (FF), followed by a carriage-return (CR), after each .EJECT statement or block of 57 10 lines if no previous FF had been encountered in the block. The F switch is used only with the Transfer T command in the data mode A. 4 .2, 10 Delete Trailing Spaces (T) The T switch is used to delete trailing spaces from each line of an ASCII file. This switch is employed during a Transfer command T and data mode A. 4-4 4 .2. 11 Delete Sequence Numbers (Q) The Q switch causes the deletion of all sequence numbers from input ASCII lines during the Transfer command. The switch is primarily intended for card conversion to some other medium. Columns 73-80 are deleted leaving a 72-character line with a carriage return as the 73rd character. The Q switch is legal only with A data mode in a Transfer command. It can be combined with C (spaces to tabs) or T (delete trailing spaces). 4.3 OPERATIONS UNDER THE ADVANCED OR BACKGROUND/FOREGROUND MONITOR The presence of mass storage devices in a system configuration al lows additional operations with PIP. In addition to the Transfer, Verify and Segment file operation, the following are available: a. List Directory d. Rename Fi le b. New Directory e. Copy Tape, and c. Delete File f. Block Copy. (Additional switch options also become available as needed.) 4 .3. l List Directory (L) The directory of any file-structured mass storage device can be listed on teleprinter or line printer with the L command. The filename, extension, starting block number, and number of blocks occupied are printed along with the number of system blocks and free blocks remaining. 4 .3 .2 New Directory (N) The N command provides recording of a fresh directory on a mass storage device. In the case of DECtape, the File Bit Map blocks are cleared and the Directory block is initialized to indicate only the File Bit Map and Directory blocks as occupied. 4 .3 .3 Delete Fi le (D) To delete one or more named files from a mass storage device, the D operation is employed. Deletion imp Ii es removing references to the file from both the Directory and File Bit Map blocks. 4.3.4 Rename File (R) Renaming one or more fi !es requires an R command. Only the name and extension in the Directory are changed. 4-5 4.3.5 Copy tv\ass Storage Unit (C) This function provides a convenient means of reproducing tapes (especially system tapes} in their entirety. Programmed read-after-write verification is performed. 4.3.6 Block Copy~) The block copy operation is used with DECtape or any mass storage device which is unit oriented to copy one or more blocks (e.g., when one or a few blocks on a tape seem suspect after a copy operation). There is no need to recopy an entire tape; blocks to be copied and verified are simply specified by their octal block number (0-1077). 4.4 SWITCH OPTIONS UNDER THE KEYBOARD MONITOR Four additional switch options are available in an ADVANCED Monitor environment. Two are data modes: Image Binary (H) and Dump Mode (D). Two are subsidiary functions: New Directory (N) and New Directory with t QAREA (S). Tables 4-3 and 4-4 summarize legal switch/operation combinations within an ADVANCED Monitor environment. Table 4-3 Legal Operation/Switch Combinations Legal Switches Operation Trans fer Fi Ie (T) A,B,I,H,D,E,G,C,W,Y,N,S,F,T,Q Verify Fi le (V) A or B Segment Fi le (S) (None) Li st Directory (L) Nor Sor None New Directory (N) s Delete File (D) (None) Rename Fi le (R) (None) Copy Tape (C) N or S or H or None Block Copy (B) Nor Sor None 4-6 Table 4-4 Legal Switch Combinations for Transfer File Data Modes I Subsidiary Operations 4.4.1 -- ~ Switches A E j G ./ c ./ w ./ ./ y I N ../ ./ ./ s J ./ ./ ,/ T .,/ F ,/ Q ./ B I Subsidiary Operations ...... H I D s T F Q E G c w y ~j I ./ I I I .J ~ .,/ I .,/ ./ .,/ ./ ./ I ./ ./ I I .,/ I ./ ~ ./ .,/ ./ I ./ N I ./ J I ~ ./ .J I .,/ .,/ .,/ ./ ./ I ~ ./ ./ I .,/ .,/ ./ I ~ J ./ .,/ I ./ I I J I I .,/ ~ I ./ ./ ./ .,/ ./ / ~ j ./ I ./ ~ ./ ./ ~ Image Binary (H) The reader is referred to the applicable Software System manual (see Preface for list of applicable manuals) for a discussion of data modes. The use of Imoge Binary as a data mode on mass storage devices such as DECtape or disk implies the intent to retain the exact form of the binary data as it originally appeared in hard copy; e.g., paper tape such that, at a later time, the original data can be retrieved (once again onto paper tape) without alteration. It should be noted again that use of Image ASCII always exactly reproduces an identical tape, whether or not DECtape or disk has been used for intermediate storage (see Section 4.2. 1). The meaning of Image Binary as a switch option with the Copy (C) function is expanded beyond its customary meaning to imply a block-by-block DECtape copy. Later examples will illustrate this use of H mode. 4.4.2 Dump tv'tode (D) Files recorded in dump mode reside on a mass storage device; thus, D is used as a data mode most frequently when transferring to and from mass storage. There is no restriction on its use from mass storage to paper tape, or vice versa, however. 4.4.3 New Directory (N) The N switch option, like the N operation, initializes the Directory of the destination device. Permitting its use as a switch provides the added convenience of combining operations in a single command string. 4-7 4.4.4 New Directory With tQAREA (S) As a function of installation core size, the S switch initializes the Directory of the destination device, reserving tQAREA blocks, as well as basic system blocks, for Directory and File Bit Map. For example, in an SK system, 32 10 additional blocks are specified as occupied in the Directory. 4-8 SECTION 5 PIP COMMAND STRING This section illustrates PIP commands and usage in detail. Basic 1/0 and ADVANCED Monitor environmental differences have previously been discussed, and no further mention is made here. Examples are given without the optional colon(:) and semicolon(;) delimiters for use with which the reader may refer to Section 3, page 3. 5. l TRANSFER FILE (T) The T command operations include listing, copying, creating, combining, and segmenting files. An input and an output device are required in the command string, as wel I as one of the five data modes. Fi le names must be specified only for file-structured devices. Filename extensions SRC or BIN can be omitted in the T command if data mode A or Bis included in the command string (see NOTE of 5.2.). Conversely, data mode A is assumed if file extension SRC is used; B, if BIN is used. 5.1.1 Copying Files The command: T DT7 FILEA (A) - PR) copies a single tape from the paper-tape reader to DECtape unit 7 in !OPS ASCII mode. The command: T DT7 FA SRC,FB SRC,FC SRC -PR,,) transfers three paper tapes as three separate files named FA SRC, FB SRC, and FC SRC. The command: T DT2 FILNEW (B)- DTl FILO LD) not only transfers FILOLD BIN from DECtape unit 1 to DECtape unit 2 but also renames the file: FILNEW BIN. 5-l 5.1.2 Creating Files Creating a fife is normally an Editor function. However, a T command from teletype to any output device is perfectly legitimate. It should be kept in mind, however, that correction facilities provided by an Editor are not in PIP. The command: T PP (A) -Tn directs PIP to accept the input from teletype to be punched on paper tape. To terminate file creation, a final line consisting of t D (CTRL Key D) must be typed. 5. 1 .3 Listing Files The command: T LP - RF FIL NAM SRC) lists FILNAM SRC on the line printer. !OPS ASCII is the only permissible mode to the line printer. Both !OPS and image ASCII are acceptable to the teletype, the alternate listing device. 5. 1 .4 Using the G Switch PIP normally examines the correctness of parity and checksum when data mode A or Bis specified. Transfer is discontinued after display of one of the two following messages on the teletype: INPUT PARITY ERROR or INPUT CHECKSUM ERROR The G switch, used only with data mode A, allows for user correction of an ASCII line with bad parity. Consider the following example: T DT7 FILEA (AG) -PR~ is typed. During transfer bad parity is encountered and the input parity error message is output on the teletype followed by the line in error. The user can: a. Accept the line by typing a carriage return. b. Delete the line by typing D ~ c. Retype the line, terminating with a carriage return. 5-2 d. Abort the operation by typing tP to restart PIP or IC to reload the Monitor (IC is ignored in BASIC Monitor environment). 5. 1 .5 Using the C or E Switches The C or E switch are used only with A as the data mode. C and E can not be used together. The command: T DT7 FILEA SRC (C) -PR ) effects a transfer from paper tape to DECtape, during which process all multiple spaces are converted to tabs and trailing spaces are deleted. The command: T PP (AE) - DT2 FILEB) effects a transfer of FILEB SRC from DECtape unit 2 to the paper-tape punch, during which process all tabs are converted to spaces allowing listing of the file on an off-line teletype which lacks a tabbing mechanism. 5. 1 .6 Using the N or S Switch Initializing the directory of certain mass storage devices, e.g., DECtape, is a frequent operation. The N switch allows initialization within the context of a File transfer. Sis the only switch which conflicts with N. The command: T DT4 FILEA !MG (IN) <-PR) initializes the Directory and File Bit maps of DECtape unit 4 and, subsequently, transfers the paper tape file to DECtape in image ASCII mode. The New Directory (N) command or switch causes 8 blocks to be reserved as file bit map blocks (required for DECtape 56-file capacity). These blocks are: the directory (block 1008) and 7-file bit map blocks (71 8 through 77 8). S switch -As a function of installation core size, (determined at system generation time), the S switch refreshes a directory, reserving t Q area blocks as well as basic system blocks for directory and file bit maps. For example, in an BK system, 32 10 additional blocks (101 8 through 104 8) are specified as occupied in the directory (block 1008). 5-3 S is a permissible switch (the only one) in a Newdir (N) command. Whereas, N DT2 reserves only directory and file bit map blocks, N DT2 (S) additionally reserves tQ area blocks. Sand N are mutually exclusive when both are used as switches in other PIP operations. 5. l .7 Using the W Switch Source files are frequently of such size as to require several paper tapes. Although they may be maintained on a mass storage device in segmented form, it is more often desirable to combine the segments into one file. The W switch performs this function. It is legal with data modes A or B and conflicts with the Y switch. The command: T DTl FI LEA (AW)+-PR II II) transfers five ASCII paper tapes to DECtape unit l as the single file, FILEA SRC. Because intermediate .EOT or .END pseudo ops are no longer useful, all but the one on the final tape are deleted during transfer. Used with data mode B, the W switch provides a convenient way to combine several binary subprograms into a single file, e.g., a binary file. The command: T DT6 UBRY BIN f.;N) -DTl A BIN, B BIN,C BIN) combines the three binary files, A BIN, B BIN and C BIN into one file UBRY BIN, deleting intermediate Endof-Fi les in the process. 5.1.8 Using the Y Switch In contrast to the W switch which combines files, the Y switch is used when ASCII file segmentation is required. It is used only with data mode A and conflicts with the W switch. Given a sizable source file on mass storage which is to be segmented, the command: T PP,,,,, (Y) -DTl FILIG SRC) results in FILBIG SRC being split into six paper tapes where five segmentation points must have been specified in an S operation immediately preceding the current T command string (see Section 5 .3). 5-4 The command: T DT3 FA,FB -RF FILBIG (AY) ) similarly segments the disk file FILBIG SRC into two smaller DECtape files, FA SRC and FB SRC. The preceding S operation will have specified one segmentation point. As each output file is closed, PIP outputs tP, which is the restart request, on teletype. This is done to allow dismounting of tapes or removal of tape from the punch. 5 .2 VERIFY FILE (V) File verification is performed in either IOPS ASCII (A) or IOPS binary (B) data modes. No other switch options apply to the verify operation. There is no output; thus, only the input device (and filename if a file-structured device} need be specified. The command: V PR (B)) requests parity and checksum verification of one binary paper tape. If a parity error occurs, the fol lowing message is typed: INPUT PARITY ERROR If there is a checksum failure: INPUT CHECKSUM FAILURE For an ASCII file, the error line is also printed. In either case, after the message is printed, verification continues unti I the entire file has been examined allowing the user to assess how many errors are present. Multiple files may be verified in a single command string. For example, the command V DT3 FILEA SRC,FILEB SRC) requests verification of both FILEA S RC and FILEB SRC • .'i-'i NOTE To simplify even more the user interface to PIP, file name extensions SRC and BIN may be omitted in the Transfer (T) or Verify (V) commands if the appropriate data mode switch (A or B) appears in the command string, for example: T DT2 (A) -DTl FILE) effects a transfer of FI LE SRC to DT2. If program FI LE (no extension) exists on DTl , it wi 11 be transferred. V DT1 Fl LE (An causes FILE SRC to be verified. Conversely: if SRC or BIN appears as an extension in the command string (T or V), data mode A or B (whichever a pp Ii es) is assumed, for example, T DT2 -DTl FILE SRC) is the same as T DT2 (A) -DTl FILE SRC) is the same as T DT2 (A) -DT1 FILE) 5 .3 SEGMENT FILE (S) The S operation allows specification of up to 16 file segmentation points. Device names, file names, and switch options are all meaningless in the S command. The segmentation points are specified as one to five character strings. In the subseguent T command, if a Y switch is specified, PIP examines the beginning of every line for the specified segmentation points in order of occurrence. Vertical form control characters at the beginning of a line are excluded from the string search. As each segmentation point is found, PIP closes the current output file segment, appending the pseudo op, . EOT, at the end of the segment. The next segment starts with the line which begins with the current segmentation point. The command: S TAGA,TAGB,TAGC,TAGD) sets up the four segmentation points TAGA,TAGB,TAGC, and TAGD for the immediately following command: T PP ,,,,(AV) -DT3 FILBIG SRC) the end result is five paper tapes; all but the last of which are terminated with .EOT. The last four begin with the lines TAGA---, TAGB---, etc. 5-6 As each segment is completed, t P is output on the teleprinter, a II owing time to remove the paper tape segment, dismount tapes, etc. When ready to continue, the user simply types CTRL P and PIP resumes segmentation. 5 .4 LIST DIRECTORY (L) The Directory contents of any file-structured device can be listed by the L operation. The Nor S switch options can be used. The command: L TI ... DTl) results in a printout such as the one below: DIRECTORY LISTING 115 FREE BLKS 3 USER FILES lO SYSTEM BLKS~ 1st Block of File MACRO ONE 4 226 . . . # of Blocks Occupied MACRO TWO 5 140 6 365 MACRO SRC 5.5 NEW DIRECTORY (N) Although the N function can be performed as a switch option in the command string of another operation, it is useful to include it as a distinct operation. The S switch is the only switch option used with the N command, and only the destination device need be specified. The command: N DT4) results in a fresh directory on DECtape unit 4, a listing of which (as requested by an L operation) appears as follows: DIRECTORY LISTING 1070 FREE BLKS 0 USER FILES 10 SYSTEM BLKS The 108 system blocks are the Directory and seven File Bit Map blocks. 5-7 5 .6 DELETE FILE (D) Fi le deletion is performed by the operation D. Only the destination device is specified. No switch options are used. The command: D DT3 FILEA,FILEB) causes PIP to delete both FI LEA and FILEB from DECtape unit 3. If an extension is present, e.g., SRC or BIN, it must be typed in the Delete command. 5. 7 RENAME FILE (R) The R command is used to rename files on a file-structured device without data transfer of any kind. No other unit is needed, although the device name must appear with both source and destination data. A simple ninecharacter name substitution takes place into the directory entry section of the directory block. Al I switch options are illegal. The command: R DT2 NEWNAM BIN -DT2 OLDNAM BIN) changes the name of the file OLD NAM BIN ON DECtape unit 2 to NEWNAM BIN. 5 .8 COPY MASS STORAGE UNIT (C) Copying the contents of one file-structured device onto another implies one of two tasks: a. incorporation of all information on the input device into the organization and content of the output device b. total replacement of al I information on the output device by information on the input device. The Copy (C) command with H switch specified (that is a direct unit copy in its entirety) uses oil of the available core memory. The fastest possible copy (using H switch) is obtained by assigning DTD (for DECtape) to oil possible . DAT slots prior to loading PIP. The command: C DT5 (H) -DT3 ~ replaces all data on DECtape unit 5 with data from unit 3 in a block-by-block copy and read after write. 5-8 Incorporation is effected in one of the following three ways: a. Absence of switch options in the C command: C DT5 -DT3) All files on DT3 wi II be incorporated into the Fi le organization of DT5. b. Use of the N Switch: C DT5 (N) -DT3) Prior to transferring the files on DECtape unit 3 to unit 5, the Directory and Fi le Bit Maps of unit 5 will be initialized. c. Use of the S Switch: C DT5 (S) -DT3) Prior to transferring the files on DECtape unit 3 to unit 5, the Directory and Fi le Bit Map of unit 5 wi II be initialized and a t QAREA wi II be reserved. 5. 9 BLOCK COPY (B) To copy one or more blocks of one DECtape onto another, the B command is used. Switches Nor S can be used within the command string also. Instead of specifying file names, actual octal block numbers (0-1077) are given in the command string. These block numbers can appear either with the destination or source data and are separated by commas. The command: B DT7 +DT4 5, 15, 165, 1075) or B DT75,15, 165, 1075 -DT4~ requests copy and verification of blocks 5, 15, 165 and 1075 from DECtape unit 4 to unit 7. The command: B DT2 l 0 I 15 - DTl 4 ,3) requests blocks 4 and 3 of DECtape unit l to be copied (and verified) onto blocks 10 and 15 of DECtape unit 2, respectively. 5-9 SECTION 6 CORRECTION PROCEDURES There are four correction procedures used with PIP: a, Aborting the task b. Deleting one or more characters in a command string c. Negating the entire command string d. Responding with corrected command string information after a PIP error message, The procedure chosen is largely a function of what point in the PIP process the user decides to correct or to modify PIP action. 6. l tp (CTRL KEY P) A task can be aborted and PIP restarted by typing in the tP (CTRL P) character at any time. tP also indicates loading of the next in a series of paper tapes or output of the next in a series of files during segmentation. For example, at the end of each of several paper tapes to be combined into one output file, PIP types t P on the teleprinter, directing the user to load the next paper tape. When ready, the user types tP for PIP to continue. 6.2 RUBOUT (RO) During typing of a command string, one or more characters can be deleted by use of the rubout (RO) key, For each character deleted, starting with the last one typed, a back slash ( \) is echoed. For example: T ZT3 \ \ \ DT3 FI LEA (A)-PR ~ The character Z is in error. Three rubouts have been used to back up to the erroneous character. 6 .3 tU (CTRL KEY U) At any point while typing a command string, that is, prior to the CR or ALTMODE, a tU can be typed to delete the entire command string up to that point. An "at" sign (@) is echoed. The user then starts from the beginning of the command string again. 6-1 The command: T ZT3@T DT3 FI LEA f.A) .... pR ~ demonstrates a t U correction. 6.4 PIP Error Detection and Correction After a command string is completed, PIP checks for erroneous information. If erroneous information is found, an appropriate error message is output to the teleprinter and the questionable command string is output up to, but not including, the offending character or element followed by "?", requiring correct completion by the user, If the user prefers to retype the command, a carriage return or t P signals PIP to accept a new command from the beginning. The characters RO and t U should not be used, because it is the teletype handler (which no longer has access to the erroneous command string), not PIP, which interprets and acts upon RO and tU. Appendix II contains a complete list of PIP error messages. Only two examples are cited here. Suppose a user intends to transfer an IOPS ASCII file from paper tape to DECtape. He types: T DT2 FILEA SRC (P) +-PR) Recognizing P as an i llega I switch option, PIP types: ILL SWITCH T DT2 FI LEA SRC(? The user can either complete the command string from the erroneous character or element on to the end, or use an t P to indicate he prefers to restart the message. If a DECtape handler is not assigned to any of the positive .DAT slots, PIP types in response to the above example: DEV NOT IN + .DAT TABLE T? to indicate that the command was in error (could not be honored ·due to absence of the necessary . DAT assignment) at the point of the device and unit specification code, 6-2 APPENDIX A SUMMARY OF PIP COMMANDS Basic 1/0 Monitor Environment Command Abbrev. Dest. Dev. Source Dev. File Names Transfer File T Yes Yes No A,B,I,E, G,C,W,Y,F,T,Q Verify File v s No Yes No A or B No No No* None Segment Fi le Legal Switches ADVANCED and Background/Foreground Monitor Environment Command Abbrev. Dest. Dev. Source Dev. File Names Lego I Switches Transfer Fi le T Yes Yes Yes A,B,l,H,D,E, G,C,W,Y,N,S,F,T,Q Verify File v No Yes Yes A or B Segment Fi le s No No No* None List Directory L Yes Yes No Nor S New Directory N Yes No No Sor None Delete File D No Yes Yes None Rename File R Yes Yes Yes None Copy Tape c Yes Yes No Nor Sor H Block Copy B Yes Yes No** Nor S *Segmentation points instead of file names. **Block numbers instead of file names. A-1 CHAPTER 7 DSKPTR/DSKSAV UTILITY PROGRAMS SECTION 1 INTRODUCTION Two utility programs are c:lescribed in this section: a) DSKPTR, which performs the loading of Disk systems from paper tape; b) DSKSAV, which controls the saving and loading of Disk system software via DECtape. DSKPTR UTILITY PROGRAM In PDP-15 systems which have a Disk but no DECtape units, the system software is provided to the user in the form of a group of 24 paper tapes. The DSKPTR Uti I ity Program performs the operations needed to load the system from paper tapes. In addition to its system load function, DSKPTR also enables any logical disk unit or 6K segment of these units to be either loaded from paper tape or its contents punched out onto paper tape. These additional functions are control led according to the settings of the console AC Switches. Paper Tape Data Format (See Figure l) The data format of tapes generated or loaded via DSKPTR is as follows: each tape consists of 6K or 24 logical 256 10 word sequential disk blocks. Each data block on paper tape is preceded by 6 blank frames to aid visual identification . BLOCK N v FRAME 0-2 BLOCK # (0-1077) FRAME 3-5 • BLOCK CHECKSUM BLANK L-.- I~ BLOCK Ntl 256 BINARY DATA WORDS •BLOCK CHECKSUM= 2'S COMPLEMENT CHECKSUM OF BLOCK# +DATA WORDS 15-0067 Figure 1-1 Paper Tape Block Format l-1 SECTION 2 DSKPTR OPERATING PROCEDURE The following steps describe the procedure required to load the Disk system via paper tape, the possible errors, and the action to be taken for each error condition. Procedure Set Disk unit control panel WRITE PROTECT switch to the OFF position (down). 2 Place the paper tape of DSKPTR in reader with address switches set to 17720. 3 Press 1/0 RESET and READ IN. 4 When the program is loaded, it will display its title, DSKPTR and skeletal directions on teletype. SET: ACSO=Ot ACS15-17= Unitlf Paper tape to disk 0, I, 2, 4, 5, 6 5 Place the first disk system tape in reader and press CONTINUE. 6 "HIT CONTINUE FOR NEXT TAPE" will be typed on the teletype when the tape has been read correctly. Load the remaining 23 tapes in a similar fashion. Note, any number of tapes (up to the full 24) can be loaded in any order. The following errors may be displayed on the teletype during loading: a. Unit Error: ACSl5-17 = 3 or 7. Action: (1) Reset ACS15-17 = 0, 1, 2, 4, 5, 6 (2) Press CONTINUE b. Reload Tape: Reader end-of-tape condition at illegal point. Action: (1) Reload tape (2) Press CONTINUE c. Input Checksum Error: Block checksum incorrect. Action: (1) Reload tape from beginning, OR position tape to the front of block in error, or leave tape in current position. tt (2) Press CONTINUE t ACSO - 17 = 0 for full system load onto disk. ttoata block in error will be accepted as is. 2-1 Procedure 7 When the disk system is loaded, set the WRITE PROTECT switch and the three rightmost track switches to the ON position (up). 8 Load the Disk Bootstrap into the reader with address switches set to 17637. 9 Press I/O RESET and READIN. Monitor will be loaded from the disk and will type: $MONITOR Vnn The system is now ready for operation. If the disk diagnostics have been run or if data on other areas of the disk is suspect, all user disk unit directories must be refreshed at this point. This is done with the MONITOR Newdir (N) command, for example, $ND refreshes disk unit l. This command should be issued for units 1, 2, 4, 5, and 6 before further operation. DSKPTR can be used to punch out 6K areas of the disk, as follows: Procedure Repeat Steps l, 2, and 3 of loading procedure. 2 SET: ACSO = 1 ACS 15-17 = Unit# ACS5-J4 =Logical Block# 0, 30, 60 .... 10so8 tt 3 Press CONTINUE 4 Repeat Step 6 of loading procedure. The following errors may be displayed on teletype during disk to punch output: a. Unit Error: (See loading procedure) b. Reload Tape: Punch out of tape Action: (l) Reload punch (2) Press CONTINUE (3) Splice Tape ff ACS5-14 = 0 causes punching of all 2410 tapes for disk unit (ACS 15-17). ACS5-14 = NON 0 causes punching of one 6K paper tape starting at the logical block specified. This feature is particularly useful when PATCH is used for system program modification and a single back up paper tape of the associated disk area is desired. 2-2 c. Disk Error: Probably parity error. AC will contain disk status. bit meaning. Action: Since DSKPTR wi II have tried 8 times to read disk ( l) Reset at 16000 or (2) Press CONTINUE to accept data. 2-3 Look at disk control panel for AC SECTION 3 DSKSAV UTILITY PROGRAM Once a Disk system has been generated, it is valuable to produce a backup system on DECtape to permit rapid disk restoration if it is needed. Uti I ity program, DSKSAV, is used to read and store (save) the generated Disk Advanced Software System and/or the contents of other logical Disk units, and to load the stored information back onto the disk when necessary. When used for Logical Disk Unit save/load functions, DSKSAV is controlled by the settings of the console AC switches. DSKSAV Save/Load Operating Procedures The following steps describe the procedure required for the program save/load operations, the errors which could occur, and the actions to be taken in response to each type of error. Procedure Place paper tape of DSKSAV in reader with address switches set to 17720. (Restart= 16000) 2 Press 1/0 RESET and READ IN. 3 When the program is loaded, it will type its title, DSKSAV, and brief directions on the console teletype. The program is stopped to allow ACS settings. Set: 4 ACSO=Ot ACSO=l ACSl5-17=Unit# DECtape to Disk (LOAD) Disk to DECTAPE (SAVE) 0, I, 2, 4, 5, 6 Ensure that the DECtape unit selection is identical to ACS 15 through 17, and press CONTINUE. The following errors may be displayed on the teletype during loading: a. Unit Error: ACS15-17 = 3 or 7. Action: (1) Reset ACS 15-17= 0, 1, 2, 4, 5, 6 (2) Press CONTINUE b. Disk Error: Probably illegal disk address (for example, attempt to load disk with WRITE PROTECT switch enabled). AC contains disk status. Examine disk control panel for AC bit meaning. Action: Correct disk problem if possible and press CONTINUE. t ACS0-17 = 0 for full system load onto disk. 3-1 c. DECtape Error: Probably end zone error. AC contains DECtape status. Examine DECtape control panel for AC bit meaning. Action: (1) If DECtape is in the forward end zone, press CONTINUE. (2) If DECtape is in the far end zone (beyond block 1077), position tape out of end zone, and press CONTINUE. (3) If parity or mark track erro/, press CONTINUE to restart transfer from the beginning, or set ACSO through 17 = 0 and press CONTINUE to retry read one more time. If DSKSAV is being used to load the Monitor system from DECtape to Disk, the fol lowing procedure should be followed for system startup: Step Procedure When the disk system is loaded, set the WRITE PROTECT switches for tracks 0 through 29. 2 Load the Disk Bootstrap into the reader with address switches set to 17637. 3 Press 1/0 RESET and READIN. The Monitor will be loaded from the disk and the message is typed out. $MONITOR Vnn The system is now ready for operation. If disk diagnostics have been run or if data on other areas of the disk is suspect, al I user disk unit directories must be refreshed at th is point. Th is is done with the MO NIT OR Newdir (N) command, for example, $ N 1) refreshes disk unit 1. This command should be issued for units 1, 2, 4, 5 and 6 before further operation. NOTE DSKSAV can also be used to save or load other logical units of the disk. This provides rapid DECtape backup of any or all disk data files. To do so, follow Sfep 1 and 2 above under loading procedure. t DSKAV will have tried to read four times before the message is printed. 3-2 CHAPTER 8 PUNCH UTILITY PROGRAM SECTION 1 INTRODUCTION The PUNCH utility program permits the user to output, in an 1/0 Monitor environment, a selected core area and a .ABS loader onto paper tape. The three primary applications of this utility program are: a. System program modification or patching; b. . DAT slot reassignment; c. Production of an executable user program core load on a single paper tape. This application is useful for core loads which consist of a relocatable main program and several subprogram/library routines. The PUNCH utility program is provided as a . FULL tape which is loaded starting at location 17720 of the highest available core bank. The output of a PUNCH operation may be from one to nine . ABS tapes (each preceded by a .ABS loader) which are loaded in a Hardware READIN Mode (HRM) starting at 17720 of the highest available core bank. The areas of core which are punched out are 0 to the address in .SCOM+2 and the address in .SCOM+3 to the address just below the .ABS loader (17717 of the highest core bank). 1. 1 EQUIPMENT REQUIREMENTS An 8K system equipped with a high-speed reader/punch is the minimum hardware configuration for running PUNCH. The only option which affects the operation of PUNCH is the addition of core (up to 32K). Additional memory permits larger core areas to be punched out. 1.2 SOFTWARE REQUIREMENTS The 1/0 Monitor system is required for proper operation of PUNCH. Although PUNCH does not require execution of code in the I/O Monitor, it does use parameters in the I/O Monitor to determine the amount and core limits of its punched output. In particular, PUNCH references the following 1/0 Monitor cells: .SCOM .SCOM+ 2 .SCOM + 3 .SCOM + 5 -first register below .ABS loader -lowest free register -highest free register -system program start address 1-1 .SCOM+ 6 .KM9PT TTUSRR TTDDTR TTIOSW -user program start address -1/0 Monitor start address -1 P address in 1/0 Monitor -tT address in 1/0 Monitor -Teletype 1/0 busy switch The .SCOM registers are fixed at cell 100 and following. The remaining four, however, are positionally variable as a function of 1/0 Monitor assembly. Hence, any reassembly of the 1/0 Monitor which changes the location of . KM9PT, etc., requires reassembly of PUNCH in _which . KM9PT, etc., are redefined by parameter assignment from the keyboard at assembly time (i.e., a re-edit is not required). 1.2. 1 Resident Programs In addition to the I/O Monitor System, the system program or relocatable user programs must be in core for meaningful operation of PUNCH. 1.3 PROGRAM ORGANIZATION The PUNCH utility program is divided into two parts: a. Part 1 of the program operates in core locations 17720 and above (where the .ABS loader normally resides). Part 1 has the function of loading and relocating Part 2 of the program. b. Part 2 resides in "free" core starting at the address pointed to by • SCOM+2; its function is to perform the desired output punch operations. 1-2 SECTION 2 OPERATING PROCEDURES General descriptions of the procedures used in PU NCH operations are given in the fol lowing paragraphs. For detailed step-by-step procedures, refer to the 15/20 User's Guide. 2. l LOAD AND PUNCH The steps required to load PUNCH and output the desired tapes ore as follows: Procedure Load required system/relocatable users program. 2 Load PUNCH at address 17720 of the highest core bank. 3 When loaded, the utility program outputs t P, tT or t S The user responds to this output by typing the appropriate letter to designate the starting location of the program to be punched: a. tT if DDT or DDT NP is part of the core load; b. tP for all other system or users programs which have already initialized the teletype (.INIT) with a restart address at the ti me PU NCH was loaded. c. tS only if the core load was output by PUNCH after linking loader operation at the moment at which the loader was expecting the IS. On completion of the user response, the program causes a carriage-return/line-feed operation and outputs another >. Procedure 4 The user must type the number of output tapes desired (i.e., l to 9). NOTE A carriage-return is interpreted as the number l by the program. 2-1 Procedure 5 2.2 On completion of Step 4, the program initiates the punching of the desired core load; halts at the end of each punch tape of the desired series (with the exception of the last tape) to permit the tape to be removed from the bin. Depress the control console CONTINUE switch to restart the output operations. After the final tape is punched, the PUNCH program restarts at the point of command string input. ERROR DETECTION AND RECOVERY Error detection is minimal in PUNCH. If any character other than IP, tT or tS is typed when those characters are expected; the program simply restarts. The value expected for number of tapes (l-9) is assumed correct. The low order bits of the ASCII character are simply ANDed off and used. Punch-out-of-tape condition is always checked. If the punch is out of tape, "RELOAD PTP" is output to the teletype and PUNCH halts. Once the punch is reloaded, depressing CONTINUE causes the remainder of the tape to be punched. It may then be spliced to the earlier section. 2-2 SECTION 3 EXAMPLES Listed be low are three procedura I examples for use of PUNCH. 3. l PRODUCING AN EXEC UT ABLE USER PROGRAM TAPE To produce a sing le paper tape of a relocatable user program, subprogram and/or Ii brary programs, the fo Ilowing method is used . Procedure Load Linking Loader and user programs, subprograms, etc. Refer to applicable system User's Guide (see Preface for list). 3. 2 2 At the point where the Linking Loader expects IS, stop the computer and load PUNCH (HRM: 17720 of highest core bank). 3 When the PUNCH query: "tP, Tor S ?"appears on the teleprinter, type ts. 4 Type the number of output tapes desired. 5 To load the resultant tape, depress I/O Reset and READ-IN (17720 of the highest core bank) for each tape. The computer stops after loading each tape except the last. After the last tape is loaded, program execution begins automatically. SYSTEM PROGRAM CHANGES Whenever system program changes or corrections are published, the user can implement them using PUNCH. MACRO is used as an example. Procedure Load the two . ABS MACRO tapes (H RM: 17720 of the highest core bank). 2 After MACRO is loaded and is awaiting a command from teletype, stop the computer and modify the required core locations. 3 Load PUNCH (HRM: 17720 of the highest core bank). 4 When the PUNCH query "tP, tT or IS?" appears on the teleprinter, type IP. 5 Type the number of output tapes (2 for MACRO - more if desired). 6 Proceed as in Step 5 under 3. l . 3-1 3.3 MODIFYING USER .DAT (Device Assignment Table) SLOTS Although it is not possible to reassign negative .DAT slots (i.e., those used by system programs) at load time in the 1/0 Monitor environment {reassembly is required), it is possible to modify positive .DAT slots which are intended for relocatable user programs. Table 3-1 lists the standard positive .DAT slot assignments. Two examples will be cited: a. reassignment for use of a device whose handler(s) is provided in the 1/0 Libraryt; b. reassignment for use of a device whose handler(s) is not provided in the 1/0 Library, i.e., a user generated handler. Table3-l Standard Paper Tape . DATt Slot Assignments 3.3. l . DAT Slot Handler 1 2 3 4 5 6 7 10 TTA TTA PRA TTA PPA PRA PPA PRA Using An Alternate 1/0 Library Handler Given a user who has written a relocatable program to perform drum 1/0 using handler DRA, the Linking Loader {or DDT or DDTNP if he plans to use DDT) must be repunched by PUNCH to allow loading of handler DRA. Procedure Load the Linking Loader (HRM 17720 of the highest available core bank). 2 Stop the computer, and modify the appropriate .DAT slot cell according to the Table 3-2 below. For example, suppose the user has chosen .DAT slot 7 for DRA tt and intends to use drum unit 1. Cell 144 should be changed from 000004 (present value) to 100014 (the high-order 3 bits specify the unit#; the low-order bits, the loader code for DRA). 3 Proceed as in Step 3 of 3.2. t. DAT table (eel I O) begins at location 135. tt Note: The MACRO user program will require inclusion of .DAT slot 7 in the .IODEV statement. 3-2 Table 3-2 Loader - I/O Correspondence Table 3 .3 .2 . DAT Slot Vo lue Handler 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 TTA. PRA. PRB. PPA. PPB. PPC. LPA. CDA. CDB. CDC. MTF. DRA. DRB. DRC. DRD. Using A Non-Standard I/O Handler The fol lowing example is concerned with a. integration of a user generated I/O for a special or non-stondard device t into the standard I/O Library; b. the procedure for modifying the paper-tape Linking Loader (or DDT or DDTNP) to recognize the new handler. Appendix A illustratesthe core memory map of the I/O Monitor skip chain when the Linking Loader (and ultimately the user program) is in memory. It is important to examine Appendix A because, in addition to . DAT slot modification, skip chain modification is required. Given that a user is willing to apply one of the standard handler names to his own handler (see Table 3-2 above), no other changes to memory are required. fore the other one of same name. He must position his own handler in the set of l/O Library tapes be- IF, however, a user prefers a distinct name, he must change a radix 50 value in the Loader 1/0 Configuration (IOC) Table (see Appendix Band C). If changed, the new name (three alphabetic characters) must be terminated by a (for example, XYZ.). The procedural method is outlined below: below: Procedure Step l Load the Linking Loader (HRM 17720 of the highest core bank). 2 Stop the computer, and modify the appropriate . DAT slot cell according to Table 3-2. Suppose .DAT slot 4 is chosen and the user wishes to substitute his plotter handler for handler LPA. Cell 141 should be changed from 000001 (present value) to 000007 (the Loader code for LPA). tFor example, an incremental plotter, type 350. 3-3 Procedure 2 (Cont) The skip associated with LPA. is at location 1533 (see Appendix A). Change Cell 1533 from 706501to702401 (LPSF). If the plotter handler has been named LPA. , proceed to Step 3 below. If the user prefers a different name, e.g., PLA., he must modify the Loader IOC table (see Appendix B). Having chosen code 7 above for .DAT slot modification, he must modify the radix value in slot 7 of the IOC Table, i.e., location 4507 in the Linking Loader or DDT NP or location 5266 in DDT. To compute the radix 50 value of PLA. : find Pin Appendix C, column l (062000), Lin column 2 (000740), and A in column 3 (000001). The resultant radix 50 value= 062741. A sign bit of 1 indicates to the Linking Loader a fourth character = . Hence, Cel I 4507 (or 5266 if DDT) should be changed to 462741. 3 Proceed as in Step 3 of 3.2. 3-4 APPENDIX A l/O MONITOR SKIP CHAINt location Contents Mnemonic 1511 1512 1513 1514 1515 1516 1517 1520 1521 1522 1523 1524 1525 1526 1527 1530 1531 1532 1533 1534 1535 1536 1537 1540 1541 1542 1543 1544 1545 1546 1547 1550 1551 1552 1553 1554 1555 1556 1557 1560 703201 741000 621577 706101 741000 621603 707341 741000 621604 700001 741000 600476 706701 741000 621575 706721 741000 621576 706501 741000 621572 700101 741000 621573 700201 741000 621574 700301 741000 601110 700401 741000 601344 701741 741000 621600 701701 741000 621601 702701 SPFAL SKP JMP* INT6 DRSF SKP JMP* INT12 MTSF SKP JMP*INT13 CLSF SKP JMP CLKPIC RCSF SKP JMP* INT4 RCSD SKP JMP* INT5 LSDF SKP JMP* INTl RSF SKP JMP* INT2 PSF SKP JMP* INT3 KSF SKP JMP TIINT TSF SKP JMP TOI NT MPS NE SKP JMP* INT? MPSK SKP JMP* INTlO SPE Device Meaning POWER FAIL DRUM DONE MAGTAPE DONE CLOCK OVERFLOW CARD COLUMN READY CARD DONE LINE PRINTER DONE PAPER TAPE READER DONE PAPER TAPE PUNCH DONE KEYBOARD READY TELEPRINTER DONE NON-EXISTENT MEMORY MEMORY PROTECT VIOLATION MEMORY PARITY ERROR tThis skip chain memory map applies only when the Linking loader, DDT, DDTNP, CHAIN, EXECUTE, or relocatable user programs are in core. A-1 I/O MONITOR SKIP CHA!Nt (Cont) Location Contents Mnemonic 1561 1562 1563 1564 741000 621602 706201 621605 SKP JMP* INTl l DRNEF JMP* INT14 Device Meaning NOT DRUM ERROR (PDP-9 only) tThis skip chain memory map applies only when the Linking Loader, DDT, DDTNP, CHAIN, EXECUTE, or relocatable user programs are in core. A-2 APPENDIX B LINKING LOADER roe TABLE Location Loader or DDTNP/DDT I 5260 I 5261 I 5262 I 5263 I 5264 I 5265 I 5266 I 5267 4511I5270 4512 I 5211 4513 I 5272 4514 I 5273 4501 4502 4503 4504 4505 4506 4507 4510 4515 I 5274 4516 5275 4517 5276 I I B-1 Contents Handler 500041 463321 463322 463201 463202 463203 446601 411541 411542 411543 452146 415721 415722 415723 415724 TTA.(l) PRA. (2) PRB. (3) PPA. (4) PPB. (5) PPC. (6) LPA. (7) CDA.(10) CDB. (11) CDC. (12) MTF. (13) DRA. (14) DRB. (15) DRC. (16) DRD. (17) APPENDIX C RADIX 508 VALUES X-A B c D E F G H I J K L M N 0 p Q R s T u v w x y z % 0 1 2 3 4 5 6 7 8 9 # 003100 006200 011300 014400 017500 022600 025700 031000 034100 037200 042300 045400 050500 053600 056700 062000 065100 070200 073300 076400 101500 104600 107700 113000 116100 121200 124300 127400 132500 135600 140700 144000 147100 152200 155300 160400 163500 166600 171700 -XA B c D E F G H I J K L M N 0 p Q R s T u v w x y z % 0 l 2 3 4 5 6 7 8 9 # 000050 000120 000170 000240 000310 000360 000430 000500 000550 000620 000670 000740 001010 001060 001130 001200 001250 001320 001370 001440 001510 001560 001630 001700 001750 002020 002070 002140 002210 002260 002330 002400 002450 002520 002570 002640 002710 002760 003030 C-1 --X A B c D E F G H I J K L M N N p Q R s T u v w x y z % 0 l 2 3 4 5 6 7 8 9 # 000001 000002 000003 000004 000005 000006 000007 000010 000011 000012 000013 000014 000015 000016 000017 000020 000021 000022 000023 000024 000025 000026 000027 000030 000031 000032 000033 000034 000035 000036 000037 000040 000041 000042 000043 000044 000045 000046 000047 CHAPTER 9 DUMP UTILITY PROGRAM SECTION 1 INTRODUCTION The DUMP utility program provides the user with the ability to output, on any available listing device, specified core locations which have been stored on a bulk storage device using the CTRL Q (tQ) command. l. 1 1. 1. l OPERATING PROCEDURES Cal ling Procedure The Dump program is called by typing DUMP) after the Monitor's$ request. When the Dump program has been loaded, it types DUMP > on the teletype and waits for a command from the user. l . 1. 2 1. 1. 3 General Command Characters RUBOUT (echoes\) Delete last character in command string. Can be repeated n times to delete n characters. CTRL U (echoes @) Delete entire line Command String The formats expected by the DUMP command string processor are as fol lows. Command Function ALL The entire tQ area (from location 10 to the address in . SCOM) on the device associated with .DAT slot -14 (at tQ time, this device was the specified output device) is listed on the device associated with .DAT slot -12. XXXXX-YYYYY (XXXXX > 10, and YYYYY~ C (. SCOM) The tQ area between absolute addresses XXXXX and YYYYY on the device associated with . DAT slot -14 is listed on the device associated with . DAT slot -12. At tQ time, this device (.DAT slot -14) was the specified output device and XXXXX and YYYYY were the absolute (octal) bounds of the core area to be dumped. 1-1 Command Function zzz# The content of block #zzz on the device associated with . DAT slot -14 is listed on the device associated with .DAT slot -12. The block number is in octal radix. For DECtape systems, if the command zzz# is followed by a minus sign (-), block number ZZZ is read in the reverse direction and dumped. NOTE If the Listing output (.DAT slot -12) is to be a file-oriented device, the file is named MEMORY and has the extension DMP. 1. 2 ERROR CONDITIONS Any unrecognizable command causes a question mark ( ?) to be typed on the teletype. Control is then returned to the command string processor which types >to indicate its readiness for a command. 1.3 RESTART PROCEDURES If a command is terminated by a carriage return () ), control returns to the command string processor after comple- tion of the request. DUMP > is printed on the teletype indicating readiness for another command. If a command string is terminated by the ALT MODE character, control returns to the Monitor upon completion of the request. 1. 4 EXAMPLE To dump locations 16730 through 16750: MONITOR $ASSIGN DTDO -14) $DUMP) DUMP >16730-16750) 16730 000032 003740 013777 000000 000000 413420 013422 463356 16740 127400 463356 127400 000612 003766 003773 000000 020202 16750 000000 DUMP > 1-2 CHAPTER 10 DDT SECTION l INTRODUCTION 1. 1 GENERAL INFORMATION The Dynamic Debugging Technique (DDT) program provides convenient on-line debugging assistance for MACRO and FORTRAN programmers. By typing simple commands on the teletype keyboard, programmers can make correc- tions and additions in symbolic code (or octal), suspend execution of the program ot any predetermined point during the debugging run, ond examine the status of any memory word in the program. The user's program is started and stopped by commands to DDT. Under normal conditions, the user is always able to stop a "runaway" program. DDT operates as part of the Advanced Software System. It is loaded into memory (the top 1600 10 positions) along with the Linking Loader which, on command, loads the user's program (including the symbol table and any subprograms) and the needed I/O handlers, FORTRAN Obiect Time System routines, and library subroutines. All user communication with DDT is via the teletype (any model included in the standard system configurations). DDT interprets all numeric input, and outputs all numeric data, in octal radix. The digits 8 and 9 are treated as alphabetic characters. 1.2 TERMINOLOGY USED ~ A non-printing character used for text representation of the carriage return key. A non-printing character used for text representation of the line feed key. A text representation of the CTRL key, always used in conjunction with another key. It is also the printing character, up arrow. IT The non-printing character obtained by holding the CTRL key while striking the T. + Elements are to be added. Elements are to be subtracted. (Space) field delimiter, as between operation code and address. The term C (R) represents the content of storage word R. In examples, underscoring designates information typed by DDT. A Transfer Vector is a word which contains the 15-bit address of another word. Bits 0 through 2 are meaningless and can be used for codes. Transfer vectors are also used in indirect addressing, by the Linking Loader for subroutine calls, and are required in addressing to another memory bank. 1-1 SECTION 2 DEBUGGING WITH DDT 2. l LOADING THE PROGRAM In an 1/0 Monitor (paper tape) environment, the linking loader forms an integral part of the DDT tape. In the Keyboard Monitor, the teletype command DDT (DDTNS) calls the linking loader as well as DDT. (DDTNS is used to prevent loading of the user symbol table to save memory.) The first response from the teletype, in either system, is: LOADER > The user programs are then loaded in the usual manner (see Section 2.1 and 2.2 of the Linking Loader manual). Control can be transferred to DDT at this point without loading any user programs by typing control T. When loading is complete, DDT takes control and types: DDT > to indicate its readiness to accept DDT commands. With the Keyboard Monitor, . DAT slots -4 (user programs) and -5 (user external library, if any) must be assigned to appropriate devices for proper loading. If the input is file-oriented, the Loader assumes BIN (binary) as the filename extension. 2.2 USING THE BREAKPOINTS A breakpoint provides a convenient means of interrupting a user program at any predetermined step to examine the program status. DDT inserts a breakpoint (on request) by replacing the indicated instruction with a jump to DDT. When the program reaches that point, control shifts to DDT, which types the number of the breakpoint; the address of the breakpoint; the contents of the AC; the status of the Link; and the go-ahead signal (>). The user then performs any of the debugging operations explained herein. 2-1 DDT allows the use of four breakpoints to facilitate debugging when there is undertainty as to which path the program will follow. The user can place a breakpoint at any point in this program, subject to the following limitations: a. Instructions which are program modified b. Instructions which are used as literals c. Breakpoints should not be placed in routines which operate with API active. If such a breakpoint is encountered, DDT types: API 4XXXXX (API status register) and the normal breakpoint information. The exclamation point(!) hos no effect at that breakpoint (i.e., a restart from the breakpoint is not possible). The breakpoint will not be removed; any other DDT command is valid at this point including a command to remove this breakpoint. Breakpoints can be placed on skip, jump, and JMS instructions. Breakpoints can also be placed on CAL or XCT instructions. CAL instructions may, however, contain arguments required by the called subroutine, as well as a variable number of subsequent arguments; consequently, DDT is unable to simulate the CAL (as it is able to simulate a JMS). Therefore, a breakpoint which hos been placed on a CAL is removed by DDT before continuing (exclamation point command). DDT retains the request for a breakpoint at that location, and restores it if another breakpoint is entered and exited. XCT instructions may execute CAL instructions, and therefore, they ore treated identically. If the user wants to place a breakpoint at a CAL, and restore it ofter each stop, o second breakpoint con be placed at the return from the CAL, as shown in this example. LOC (Breakpoint 1) CAL3 12 (Breakpoint 2) LAC BUFF On leaving the second breakpoint at LOC +2, the breakpoint on the CAL instruction is restored. Operation of breakpoints requires one auto-index register; DDT initio lly assumes register 17. The user can specify any other auto-index register by modifying DDT's special register, AX$, as follows: AX$/ 000017 10 ~ (Modification procedure is explained later) The commands controlling breakpoints are as follows: k'-'n" Causes a breakpoint to be inserted at location k. The number n (1-4) is assigned to that breakpoint. 2-2 n" Causes the breakpoint assigned the number n to be removed. II Causes all existing breakpoints to be removed. The insertion of a breakpoint takes place when control returns to the user program. The break occurs before execution of the instruction at the breakpoint address. Examples: LOC + 1 u l" Inserts a breakpoint at LOC + l TAG u Inserts a breakpoint at TAG 2" l" Removes breakpoint number l A breakpoint number can be reassigned without first removing the previous assignment. To restart from a breakpoint, the user simply types an exclamation point(!). DDT restores the AC and Link and returns control to the user's program, starting with the instruction at the breakpoint address. An octal number typed before the exclamation point causes DDT to bypass that breakpoint n times. This is convenient when a breakpoint has been inserted in a program loop, and the user does not wish to stop every time through the loop. If the user's program does not reach the breakpoint, the operator may stop the action and return control to DDT by typing control T (hold the CTRL key down while striking the T). DDT types the go-ahead (>). The program interrupt control must be "on" to perform this operation. 2.3 EXAMINATION AND MODIFICATION DDT provides several variations of the procedure for examining and modifying the contents of any storage word. They are: k/ The slash, typed after an address (k) causes the addressed storage word to be opened and its contents displayed on the teleprinter. For example, LOC/ TAD COUNT where the instruction TAD COUNT is contained at the location labeled LOC. The storage word is now opened and may be modified by typing the desired content and issuing one of the commands described below. The carriage return closes the storage word and resets DDT, enabling it to accept other commands. Any change which has been entered is incorporated, as shown below: LOC/ TAD COUNT) TAG/ JMP LOC JMP LOC+ 1) The line feed closes the storage word, then opens the next sequential storage word: LOC/ TAD COUNT LOC+l/ CMA 2-3 The up arrow closes the storage word, then opens the preceding storage word. LOC/ TAD COUNT LOC-1/ LAC A IZ tA IX 2.4 Control Z allows the user to examine (and modify) a single storage word, out of sequence, and then return to the original sequence. This command closes the storage word, then opens the referenced storage word. A line feed will then open the next storage word in the original sequence, as shown: LABEL/ JMP LOC IZ LOC/ TAD COUNT LABEL+l/ LAC HOLD TAD CNTR Control A allows the user to examine a new sequence of storage words. This command closes the storage word, then opens the referenced storage word, establishing a new sequence. A line feed then opens the second storage word in the new sequence. LABEL/ JMP LOC IA LOC/ TAD COUNT LOC+l/ CMA TAD CNTR Control X is used, in conjunction with transfer vectors, to examine a new sequence of storage words. This command operates with a 15-bit address taken directly from the currently open word. (In contrast, the IZ and IA operations take 13 bits from the currently open word and the two memory bank bits from the address of the open storage word.) TAG/ 36307 36307/ 000000 tx TYPE-OUT MODES DDT allows the user to choose from several modes of representing the requested information. These modes, and their commands, are as follows: NUM$ In this mode, DDT types memory word contents as six-digit octal numbers, including any leading zeroes. TV$ In this mode, DDT interprets words as transfer vectors. Bits 0 through 2 are ignored, and bits 3 through 17 are interpreted according to the address modes as described below. SYM$ In this mode, which is assumed initially, DDT interprets words as symbolic instructions. Bits 0 through 3 are first examined to determine the instruction class. If bit 4 (indirect addressing bit) of a memory reference instruction is set, an asterisk (*)is typed after the mnemonic op code. The address portion is handled according to the address mode as described below. Operate instructions are further examined for specific mnemonic codes. {See Appendix B for recognized codes.) Operate instructions not found in DDT's table are typed out as NOP+XXXX. Subroutine calls, extended arithmetic element, and input/output instructions are interpreted as CAL+XXXX, EAE+XXXX, and IOT+XXXX, respectively. 2-4 The colon, typed after a word has been displayed in either numeric (NUM$) or symbolic (SYM$) mode, causes DDT to retype the word in the alternate mode. or LOC/ TAD LABEL LOC/ 340126 340126 TAD LABEL The equal sign, typed after a word has been displayed in either numeric or symbolic mode, causes DDT to retype the word as a transfer vector. LOC/ 2. 4. l CAL+l26 LABEL Address Modes The following commands set the address mode, which affects the handling of transfer vectors, address portions of memory reference instructions, and display addresses. REL$ In this mode, which is assumed initially, DDT types addresses which are relative to user defined symbols. LOC/ TAD LABEL-3 If there is no symbolic label within ±77 8 positions, the address is typed as relocatable (see next paragraph below). by DDT. RLC$ In this mode, DDT types addresses in relocatable form, as shown on the assembly listing. For example, LOC/ ABS$ Symbols defined in direct assignments are not recognized TAD 147 In this mode, DDT types addresses in absolute form: LOC/ TAD 13147 The difference between the results of RLC$ and ABS$ modes is the relocation factor (in this case, 13000). The relocation factor is found in the memory map output by the Loader. The user may type modification input in whatever representation he finds most convenient. There are, however, two considerations: a. If a memory reference mnemonic is entered with a numeric address, DDT assumes that address to be relocatable unless the address output mode has been set to ABS$. For example, LOC/ TAD COUNT TAD 147 i (DDT adds the relocation factor before storing the information). b. A requested address, typed numerically, is always considered absolute. 41/ Opens word 41 of the machine. 13000+41/ or 13041/ Opens word 41 of the program, where 13000 is the relocation factor. ?-'i 2.5 STARTING AND RESTARTING DDT receives control, initially, from the Monitor and normally regains control from the user's program by means of a breakpoint, as previously described. A CTRL T can be typed at any time (if the program interrupt control is enabled) to restore control to DDT. The following commands shift control from DDT to the user's program: The apostrophe, typed alone, starts the user's program at its normal starting address. (i.e., that address given in the source . END statement, or the first physical location of the first program loaded). k' The user can start his program at any other point by simply typing that address ahead of the apostrophe. The exclamation point restarts the user's program after a breakpoint. The AC and the Link are restored before continuing. n! 2.6 An octal number (n) entered before the exclamation point causes DDT to bypass that breakpoint n times before stopping again. This ability is useful when a breakpoint has been placed in a program loop. SEARCHING OPERATIONS DDT has a powerful searching operation to easily find every word in a user's program having porticular characteristics. Two special locations, LO$ and HI$ (further explained in the next section), control the limits of the search, and a mask (MSK$) al lows the search to be based on al I or any portion of the word. The mask is initially set at 777777, for a full word search; and the limits are initially set to encompass the entire user's program, including al I subprograms and I ibrary routines. There are three types of searches, as fol lows: kw EQ$ Starts a search for all words, within the set limits, the contents of which, after masking by C(MSK$), are equal to the expression k. k u UN$ Starts a search for all words, within the set limits, the contents of which, after masking by C(MSK$), are not equal to the expression k. kw ADR$ Starts a search for all memory reference instructions, within the set limits, with effective addresses which, after masking by C(MSK$), are equal to the address k. Indirect addressing is followed one step. Examples: LOC+l w ADR$ might produce TAG/ LAC LOC+l POS/ XOR LOC+l DAC* POINT 2-6 If the> is typed with no other output, the search routine has found no qualifying words. 2. 7 SPECIAL LOCATIONS USED BY DDT The following special locations contain information useful to the user, and which he may wish to change. AC$ Holds C(AC) at a breakpoint. LNK$ Holds status of the Link at a breakpoint. MSK$ Contains the search mask, initialized at 777777. LO$ Contains the address of the lower limit of the search operation. HI$ Contains the address of the upper limit of the search operation. PA$ Contains the address of the first position available for inserting patches. initial contents of LO$ show the last available position plus one.) AX$ Contains the number of the auto-index register to be used by the breakpoint routines, initialized to 17. RF$ Contains the current relocation factor. SA$ Contains the normal starting address used by the apostrophe routine. Bn$ Contains the address of breakpoint n. (Note that the These words are stored sequentially as listed; the line feed may be used to step through them. In the following example, the mask is set to examine instruction code bits (O through 3) within the limits specified by LO$ and HI$. MSK$/ LAW 17777 740000l LO$/ CAL+l 1075 BEGIN-1 i HI$/ END+67 END+l) After the mask and search I imits have been set, the user can execute the search operation for the desired instruction class (all JMP instructions) by typing: JMP L..J EQ$) 2.8 SYMBOL DEFINITIONS If the user finds, while debugging, that more symbols would be useful he can easily define them with the following DDT procedure: S) DDT assigns the symbol S to the current location. k(S) DDT assigns the symbol S to the location specified by the address k, 2-7 Example: 13627 (LOCAT) Space is provided for approximately 25 additional symbols; the exact number depends on the length of the symbols entered. If an attempt is made to enter symbols beyond the allowable limit, DDT types the message OVERFLOW. Symbols can be redefined as needed. 2. 9 PATCH FILE OUTPUT (Paper-Tape Systems Only) When the process of debugging extends to a number of sessions at the computer, it is convenient to be able to save those changes already checked out for use at later sessions. The commands described below control the output of a patch file onto paper tape. PFO$ DDT outputs all registers within the limits set by LO$ and HI$ onto the patch file. PFO$ may be given as many times as desired. k Put location k only onto the patch File. PFO$ SNS$ DDT puts all symbols defined during debugging onto the patch file, thus saving them for reference at later sessions. PFE$ Close the patch file. As many files as desired can be produced by following the sequence of commands, as follows: PFO$ (as many as desired) PFO$ SNS$ (optional) PFE$ 2. 10 PATCH FILE INPUT (Paper-Tape Systems Only) Because of the patch file's format, it can be loaded only by DDT. This is done after the user's program has been loaded in the usual manner. PFI$ DDT reads in the patch file. If a read error occurs, DDT stops reading and types the message ERROR followed by a right angle bracket (>). Data up to the point of error is correctly in memory. At this point, typing PFI$ (without repositioning the tape) causes patch loading to continue with the patch word after the word causing the error. 2-8 Repositioning the tape by moving the tape back one block causes PF!$ to attempt to re-read the error word. (See Appendix C for format of the patch file.) 2. 11 CO-RESIDENT SUBROUTINES Identical symbols can be used in two or more separately assembled, or compiled, relocatable program segments that are loaded and run together; consequently the user must be able to specify which set of symbols DDT is to use. DDT initially assumes that the symbol table associated with the first program loaded (i.e., the main pro- gram) will be used. The relocation factor used by DDT comes from the symbol table and is, also, initially assumed to be that of the main program. The fol lowing DDT command changes both the symbol table search and the relocation factor to the named subroutine. 2. 12 k;HDR$ Sets DDT to refer to that portion of the symbol table associated with the subroutine name k, and to use the relocation factor for that subroutine. (The memory map output by the loader shows all relocation factors.) Symbol tables are not loaded for !OPS, FORTRAN, and user library subroutines. HDR$ If no program name is specified, DDT is reset to the initial condition, with main program symbol table and relocation factor assumed. INDIRECT ADDRESS REFERENCES External global symbols in FORTRAN programs (those used within the program segment, but defined outside of it) are treated differently in the symbol table from those defined within the program segment. These symbols refer to a transfer vector pointing to the named register, not to the named register itself. Example: LAB/ 7603 is the actual address of the storage word named LAB. This address must be used when any reference is made to LAB. In FORTRAN programs, this condition also applies to symbols defined in DIMENSION statements. 2. 13 MISCELLANEOUS FEATURES Q$ Q$ represents the content of the currently open storage word. It makes it possible to make small changes without typing the entire contents. In the following example, Q$ represents JMP LOC+3. LOC/ JMP LOC+3 LOC/ JMP LOC+7 2-9 Q$+4~ The period, typed alone, represents the address of the currently open, or the most recently opened, word. & LOC/ JMP LOC+3 ./ JMP LOC+7 JMP .+7 ~ The ampersand causes DDT to bypass the mnemonic instruction lookup. It is necessary if the user has used a recognized mnemonic operator as a symbolic address. JMP/ Is invalid, but &JMP/ will open the word named JMP. LOC/ JMPGO JMP JMP~ The second JMP, in this case, is interpreted as an address. DDT executes the instruction k. The AC and Link are restored to their condition before the breakpoint (if one is in effect). If the instruction is not a JMP, control returns to DDT, and the new AC and Link (if affected) are stored. For example, JMS w SUBA# causes subroutine SUBA to be executed. SUBA cannot look for subsequent arguments. Skip instructions cause the return pointer to be incremented by one. tU If the user makes a typing error, he can cancel the current line by typing CTRL U. DDT types@ as evidence of acceptance. Single character deletion (RUBOUT) is not allowed by DDT. If a RUBOUT is typed, it is treated as a CTRL U. tT The user can interrupt his program (or DDT) at any time by typing CTRL T. DDT then types: DDT 0 C(PC) C(AC) S(L) > and waits for a command from the teletype. 2-10 APPENDIX A SUMMARY OF COMMANDS Linkage Characters + Arithmetic plus Arithmetic minus Field separator (space) Breakpoints k un II n" Insert breakpoint at location k, assign number n (1-4) Remove breakpoint number n Remove all existing breakpoints Restart from breakpoint n! Restart from breakpoint, wait n times before reentering breakpoint tT Restart DDT Examination and Modification k/ Open location k ) (Carriage return) Close the location (Line feed) Close the location, open next location (up arrow) Close the location, open the preceding location tZ (CTRL Z) Close the location, open addressed location, continue original sequence tA (CTRL A) Close the location, open addressed location, start new sequence tX (CTRL X) Close the location, open the location addressed by 15-bit transfer vector, start new sequence Type-out Modes NUM$ Type contents as six-digit octal numbers TV$ Type contents as transfer vectors SYM$ Type contents as symbolic instructions (assumed by default) Retype in alternate mode (NUM$, SYM$) Retype as transfer vector REL$ Type addresses as relative to defined symbols (assumed by default) A-1 Type-out Modes (continued) RLC$ Type address as relocatable numbers ABS$ Type addresses as absolute numbers Starts and Restarts Starts user's program at normal starting point k' Starts user's program at location k Restarts user's program from breakpoint n! Restarts user's program from breakpoint, waits n times before reentering breakpoint Restart DDT Searching 0 perat ions k EQ$ Search for words equal to k k UN$ Search for words not equal to k k ADR$ Search for instructions with effective address equal to k Special DDT Locations AC$ Holds AC at a breakpoint LINK$ Status of Link at a breakpoint MSK$ Contains search mask LO$ Lower limit of search HI$ Upper limit of search PA$ First unused location in patch area AX$ Number of auto-index used by breakpoints RF$ Current relocation factor SA$ Normal starting address Bn$ Address of breakpoint n Symbol Definition S) Assign symbol s to the current location k(S) Assign symbol s to location k Patch File Outputt PFO$ Patch file output k Single location patch file output PFO$ tpatch file commands are used for Paper Tape Systems only. A-2 Patch Fi le Outputt (continued) SNS$ Save new symbols PFE$ CI ose patch fi Ie output Patch Fi le Inputt PFI$ Read patch file Coresident Subroutines k;HDR$ Use symbol table and relocation factor of subroutine k HDR$ Use symbol table and relocation factor of main program Miscellaneous Features Q$ Contents of currently open location Address of currently open or most recently opened location Bypass mnemonic instruction lookup Execute the instruction k Cancel the line Restart DDT tPatch file commands are used for Paper Tape Systems only. A-3 APPENDIX B MNEMONIC INSTRUCTION TABLE Memory Reference CAL DAC NOP QPR 740000t 740000 CMA CML 740001 740002 RAL RAR 740010 740020 340000 SMA SZA 740100 740200 XCT ISZ 400000 440000 SNL SKP 740400 741000 AND SAD 500000 540000 SPA 741100 JMP 600000 SNA SZL RTL RTR 741200 741010 JMS DZM LAC XOR ADD TAD 000000 Operate 040000 100000 140000 200000 240000 300000 EAE Group EAE 640000 Input/Output IOT 700000 tDDT interprets 740000 as NOP. CLL 742010 742020 744000 STL 744002 RCL 744010 RCR CLA 744020 750000 CLC GLK LAW 750001 750010 760000 APP EN DIX C PATCH FILE FORMAT DDT punches the patch file in four-word blocks, including the two-word block header used by the !OPS system, with blank tape showing between the blocks. word. Each block carries the address and the contents of one memory (See Figure C-1.) The Save New Symbols command (SNS$) punches the additional symbol table area in the same manner. The PFE$ command punches an !OPS end-of-file block. WD 0 word pair count and mode IOPS block header 1 checksum WD 2 address of patch WD 3 contents of patch WD Figure C-1 C-1 CHAPTER 11 SRCCOM, SOURCE COMPARE UTILITY PROGRAM SECTION l INTRODUCTION 1. l GENERAL DESCRIPTION SRCCOM (Source Compare Program) is a utility program in the ADVANCED Monitor software system which compares any two symbolic programs (written in !OPS ASCII) and indicates the differences between the compored programs. This utility program is particularly useful for such functions as: a. proofing an edited program by comparing it against the original to ensure that the desired changes were made; b. keeping track of developmental changes by comparing old and new versions of the same program; c. determining if two programs are the same (program identification). In operation, the user must indicate to the processor, via the input keyboard, which program is to be regarded as the "original" against which the other is to be compared. During execution, SRCCOM outputs statements which indicate the type of modification made to the original (insertion, deletion, and changes) and the actual modification detected. Three software switch options ore provided in SRCCOM; one increases the efficiency of the comparison of programs coded in MACR0-15 (switch M), a second determines the form of SRCCOM output statements (switch A), and a third permits input of non-printing characters to be ignored (switch C). l. l. 1 Software Operating Environment The SRCCOM utility program operates under control of the PDP-15 ADVANCED Monitor, requiring some form of bulk storage. It uses the Monitor's 1/0 device handlers to achieve device independence. DECtape to DECtape or Disk to Disk comparisons with output statements sent to a I ine printer effect an increase in SRCCOM operating speed. This utility program can operate with either PI or API and can use extended memory if it is available. The EAE option is not required. l. 1. 2 Minimum Equipment Configuration A PDP-15/20 basic system is required. SRCCOM will also operate in the basic 15/30 and 15/40 configurations. 1-1 1.2 REFERENCE MATERIAL The sections within this manual which contain information applicable to the use of SRCCOM are referenced directly in the text. The PDP-15/20 ADVANCED Monitor manual (DEC-15-MR2A-D) and the 15/20 Users' Guide (DEC-15-MG2A-D) also contain information useful in understanding and using SRCCOM. 1. 3 SPECIAL SYMBOLS The following symbols are used throughout this program description to denote 1/0 teletype operations which do not result in a printed character: SYMBOL REPRESENTS Carriage return - line feed operation Tab w Space 1-2 SECTION 2 OPERATION 2. l LOADING PROCEDURE SRCCOM is loaded with the ADVANCED Monitor system Linking Loader. Specific procedures for the use of the linking Loader are given in detail in another section of this manual; a summary of these procedures is presented in the PDP-15/20 Users' Guide. 2.2 DEVICE ASSIGNMENTS Appropriate device assignments should be made, using the ADVANCED Monitor ASSIGN command, prior to initiating execution of the SRCCOM program. SRCCOM . DAT slot usage is as fol lows . • DAT Slot Use -14 Original file input -15 New file input -12 Output Listing -2 Command string input -3 Control device output The teletype handler (TTA) should be assigned to .DAT slots -2 and -3; this is the control device. Only device handlers capable of handling .FSTAT, .READ, .SEEK, .ENTER, and IOPS ASCII data should be assigned to . DAT slots -14 and -15. Only handlers capable of handling !OPS ASCII data should be assigned to . DAT slot -12. 2.3 OPERATING SEQUENCE When SRCCOM has been loaded into memory, it types SRCCOM > on the teletype and waits for a command string from the user. 2-1 The user should first ready the input devices for the programs to be compared, and then type his command string. It is important for the user to follow the proper command string format; otherwise, the compare phase wi 11 not proceed as desired, or an error message will be generated. The compare phase of SRCCOM begins on termination of the command string. During the compare phase, the user has control over SRCCOM via the keyboard commands: CTRL C (Return to Monitor, printed as tC) CTRL P (Restart SRCCOM, printed as t P) These commands are formed by depressing the CTRL key and striking the appropriate letter key. Control is norma I ly returned to the user at the end of the compare phase. At this point, the user can type a command string to initiate another compare, or return to the monitor by typing CTRL C. CTRL C causes a return to the Monitor at any point during the operation of SRCCOM. 2.4 COMMAND STRING The SRCCOM command string is typed after the right angle bracket (>)in the following general format. x,y,z- newflll { ~} ext/oldf;{~}ext l where s,y,z newfil oldfil ext switch options M,A,C file name of new symbolic program file name of old symbolic program file name extension The switch options M,A, and Care defined as follows: M Switch - Used in MACR0-15 comparisons to ignore comments and to perform space tab conversions. A Switch - Used to specify abbreviated output format (affected lines are not printed). C Switch - Used to ignore ASCII characters outside of the range 240-337 except for carriage return and horizontal tab characters. Examples: a. To compare MACR0-15 program NEWFIL to MACR0-15 program ORGFIL (with M switch on) type: M- NEWFIL:SRC/ORGFIL:SRC) b. To compare MACR0-15 program NEWFIL to MACR0-15 program ORGFIL with all switches on, type: C,M,A- NEWFIL w SRC/ORGFIL w SRC) 2-2 c. To compare two programs with no switches on, type: +--- 2.5 NEWFIL w SRC/ORGFIL ..... SRC ~ USING NONFILE-ORIENTED INPUT DEVICE SRCCOM allows for comparison of a segmented paper tape with a DECtape file. When a nonfile-oriented input device (e.g., PR) is assigned to . DAT slots -15 or -14, SRCCOM detects a physical end-of-medium at the end of input. At this point SRCCOM types one of the following messages: END OF NEW SRC--MORE? t,y ORN?) or END OF ORIG SRC--MORE? (YORN?) If any character other than Y or N is typed, SRCCOM responds with a question mark {?)and waits for the user to type a Y or an N. If user desires more input, insert added medium into device (more paper tape into paper tape reader) and type Y • 2.6 FILE-ORIENTED SRCCOM LISTING When a file-oriented device is assigned to . DAT slot -12, SRCCOM assumes the file name of the original program and supplies a COM extension. See example below: M NEW EXT/OLD EXT The file name and extension given to the SRCCOM listing would be: OLD COM 2-3 SECTION 3 OUTPUT FORMATS 3. l M SWITCH ON The following paragraphs describe the general SRCCOM output formats for lines inserted, lines deleted, and lines changed with the M switch on. Examples ore included in each paragraph for clarification. In each description, TAG represents the lost label encountered in the program prior to the noted modification. The letter m represents the number of lines (decimal) from TAG to the last line before the modification. The letter n represents the number of lines (decimal) inserted, deleted, or changed. 3. l. l Lines Inserted The following is the general format of unabbreviated output in the case of an insertion in the new program (M switch only). n LINES INSERTED BELOW TAG+m first Ii ne inserted second line inserted If output is abbreviated (A Switch on also), only the following line is printed: n LINES INSERTED BELOW TAG+m Example 2 LINES INSERTED BELOW TAGONE+20 DAC ISZ 3. l. 2 SOME TOOB /inserted /inserted } Unabbreviated (A Switch off) Lines Deleted The following is the general format of unabbreviated output in the case of deletion in the new program (only M Switch on). 3-1 n LINES DELETED BELOW TAG+m first deleted line second deleted line If output is abbreviated (A Switch on also), only the following line is printed: n LINES DELETED BELOW TAG+m Example 3 LINES DELETED BELOW TAGONE+20 DAC* POINT LAW THREE DAS SWITCH 3. l . 3 /Deleted ) /Deleted /Deleted Unabbreviated (A Switch off) Lines Changed The following is the general format of unabbreviated output in the case of lines changed in the new program (M Switch on only). n LINES CHANGED BELOW TAG+m line it was changed to in the new symbolic program line in original symbolic program line it was changed to in the new symbolic program next line in the original symbolic program If output is abbreviated (A Switch on also), only the following line is printed: n LINES CHANGED BELOW TAG+m Example 2 LINES CHANGED BELOW TAG+20 DAC* DAC* TOO LAC TO LAW POINTER POINT /new line /old line FIVE THREE /new line /old line J 3-2 Unabbreviated {A Switch off) 3.2 M SWITCH OFF The following paragraphs describe the general SRCCOM output formats for lines inserted, lines deleted, and lines changed with the M Switch off. In each description, the letter n represents the number of lines (decimal) affected by the modification, and L represents the line number, also decimal. The first line of program is LINE 0. 3. 2. l Lines Inserted The following is the general format of unabbreviated output in the case of an insertion in the new program (M Switch off). n LIN ES INSERTED BELOW LINE L line L first line inserted second line inserted If output is abbreviated (A Switch on), only the following lines are printed. n LINES INSERTED BELOW LINE L line L Example 12 LINES INSERTED BELOW LINE 58 600 3.2.2 DO 30 I = l, 10 /line 58 } Abbreviated (A Switch on) Lines Deleted The following is the general format of unabbreviated output in the case of a deletion in the new program (both A and M Switches off). n LINES DELETED BELOW LINE L line L first Iine deleted second line deleted 3-3 If output is abbreviated (A Switch on), only the following lines are printed. n LINES DELETED BELOW LINE L line L Example 2 LINES DELETED BELOW LINE 300 GO TO 500 100 A= B-C WRITE (l,20) A 3. 2. 3 /line L } Unabbreviated (A Switch off) /deleted /deleted Lines Changed The following is the general format of unabbreviated output in the case of a change to the new program (both A and M Switches off). n LINES CHANGED BELOW LINE L line L I ine it was changed to in the new program line in original symbolic program line it was changed to in the new program next line in the original symbolic program If output is abbreviated (A Switch on), only the following lines are printed. n LINES CHANGED BELOW LINE L line L Examples 2 LINES CHANGED BELOW LINE 38 GO TO 500 101 A= B-D 100 A= B-C READ (l,20) WRITE (1, 20) /line 38 /new line /old line /new line /old line 3-4 Unabbreviated (A Switch off) SECTION 4 ERROR RECOVERY 4. l OPERATOR ERRORS Operator errors that occur while loading SRCCOM are handled in the standard manner by the Linking Loader. Refer to the description of the Linking Loader Utility Program given in this manual. Operator errors that occur while the user is typing a command string are detected by SRCCOM. SRCCOM out- puts a carriage return and line feed, accompanied by one of the following messages, before returning control to the user: a. INVALID SWITCH b. TOO MANY CHARS IN FILE OR EXT c. BOTH FILES NOT SPECIFIED d. BAD INPUT DATA e. COM USED AS AN INPUT EXT f. FILENAMES NOT ON INPUT DEVICES g. IMPROPER DATA MODE To recover from one of the above errors, the user must retype his command string in an acceptable form. 4.2 SOFTWARE ERRORS If SRCCOM look-ahead capability is exceeded because of gross differences between the two programs being compared, it types LOOK-AHEAD CAPABILITY EXCEEDED AT LINE L ~ (actua I contents of Ii ne L) ) on the teletype, fol Iowed by SRCCOM) > to indicate that it is ready to accept a new command string. 4-1 If SRCCOM detects that there is not enough core available for its compare buffers, it outputs the following message and returns control to the monitor: NO CORE FOR COMP BUFFS 4.3 DEVICE NOT ENABLED If devices requested by the user in his command string are not enabled, the monitor outputs an !OPS 4 error message. To recover, enable the appropriate device, and type CTRL Ron the teletype. pressing the CTRL key and striking the letter Rand is printed as tR). 4-2 (CTRL R is formed by de- CHAPTER 12 SGEN SYSTEM GENERATOR SECTION l INTRODUCTION Systems which have some form of mass storage (Disk or DECtape) are provided with a general-purpose software package which includes a System Generator (SGEN) program. During the initialization of a mass storage system, the user may re-configure the general-purpose software to develop a resident software system unique to his installation. This function is performed using the SGEN program. SGEN operates in an interactive, conversational mode with the user to generate a unique resident software system; it uses a query/response technique to obtain needed information from the user concerning the system's: a. memory size b. required device handlers c. desired skip chain structure d. required . DAT slot assignments. The SGEN program may also be used to: a. re-initialize a system, when necessary b. change the resident software system to meet the requirements of a change in the system equipment configuration c. change the resident software system to obtain a desired set of system software operating conditions. The general-purpose software package provided with each mass storage system is in the form of: a. a MONITOR System DECtape reel for those systems which have DECtape units; b. a group of paper tapes (24) for systems which have Disk but no DECtape units (PDP-9, RB09 only). t c. a 7- or 9-channel magnetic tape reel for systems with Disk and magnetic tape, but no DECtape. t A step-by-step procedure which details the operations required to load the general-purpose system and to develop and checkout a new system tape is provided with the software package. Additional procedures are also given in the respective system User's Guides. tin each case a utility program is provided on paper tape to transfer the system from the input medium to Disk. 1-1 SECTION 2 GENERAL OPERATING PROCEDURES The normal procedure to use SGEN to generate a resident software system is outlined in the following: Procedure The general-purpose software system provided with the equipment can be loaded from either DECtape, MAGtape or Paper Tape, whichever is included. 2 Prior to calling SGEN, the user must be sure there are available for a IQAREA (save area) at least 408 free blocks for 16K, lOOg free blocks for 24K, 1508 free blocks for 32K. (For the IQAREA, 40g blocks are required for each 8K of core, plus lOg basic system blocks.) 3 Use UPDATE, prior to using SGEN, to delete unwanted 1/0 routines from the library file, .LIBR BIN, to provide additional space. 4 On completion of Step 3, the user calls the system SGEN program. When SGEN is loaded, it types out a series of queries regarding the following: a. b. c. d. e. f. g. h. system core size options type of teletype unit used required device handler designations skip-chain formation default assumption system device designation .DAT slot assignments The user's responses to these queries enable the SGEN program to generate a new software system configured to best meet the needs of the system as described by the user inputs. A step-by-step procedure illustrating the use of SGEN is given in Appendix A of this description. 2. 1 FORMATION OF SKIP CHAINS The skip chain structures for standard DECtape, DECtape/Disk, and Disk systems are described in the following paragraphs. 2-1 2. 1. 1 DECtape or DECtape/Disk Systems An BK, non-EAE, non-API, KSR33 DECtape system is sent to all DECtape or DECtape/Disk customers. Each customer with a core configuration of greater than BK, or who has either EAE or API or a KSR35 Teletype, should go through system generation to tailor his installation for optimum use. All customers who, on examining the . SCOM printout, discover devices or options listed that are not present in their system may want to eliminate the irrelevant skips from the chain. Those with non-standard devices (A/D, for example) should expand the chain. Listed below is the skip chain as it appears in the standard SK DECtape system: a. SPF AL Power Fail b. DTDF DECtape Done c. DSSF Disk Done d. DRSF Drum Done (PDP-9 only) e. MTSF Magnetic Tape Done on Error f. SPDF 339 Display Flag (PDP-9 only) g. LSDF Line Printer Done h. PCSF Card Column Ready j. PCSD Card Done k. CLSF Clock Done I. RSF Reader Done m. PSF Punch Done n. KSF Keyboard Done o. TSF Teleprinter Done p. DTEF DECtape Error q. MPSNE Non-Existent Memory Reference r. MPSK Memory Protect Violation s. SPE Memory Parity Error t. -DRNEF Drum No Error (Negative skip, see description below) It is important that the above order remain intact even if deletions or additions are to be made. For example, given a system without the Power Fail, Parity or Memory Protect options and having either card reader, line printer or magnetic tape, the skip chain should be generated as follows: a. DTDF b. DSSF c. CLSF d. RSF 2-2 e. PSF f. KSF g. TSF h. DTEF The position of a skip to be added to the chain varies with the nature of the device. For example, high data rate devices are best placed at the top of the chain. 2. l.2 Negative Skips Skip IOT DRNEF, skip on drum error flag not raised, is a good example of a negative skip, i.e., a skip on a flag not being raised. When specifying such a skip to .SGEN, a minus sign must precede the skip. It should be carefully noted that negative skips should only be included when the device is physically present in the system, because the skip IOT, otherwise, becomes an effective NOP, causing execution of the next instruction (a JMP to the Monitor error routine (IOPS 3)). 2.2 FORMATION OF DEVICE ASSIGNMENT TABLE (.DAT) All I/O communication in a monitor environment is accomplished according to logical/physical device associations specified in the system software Device Assignment Table (.DAT). During system generation, SGEN obtains information from the user on a query/response basis to build a . DAT table for the new system. Examples of standard .DAT slot assignments made for several possible system configu- rations are given in items a through d below. a. Listed below are the . DAT slot assignments as they appear in the standard SK Paper Tape/RB09 Disk system (PDP-9 only): .DAT DEVICE USE -15 -14 -13 -12 -11 -10 -7 DKA6 DKA4 DKB5 TTAO DKB4 TTAO DKCO NONE NONE DKC5 TTAO TTAO DKCO DKA4 DKA5 DKA6 OUTPUT INPUT OUTPUT LISTING INPUT INPUT SYSTEM DEVICE FOR • SYSLD OUTPUT EXTERNAL LIBRARY FOR . LOAD SYSTEM INPUT TELEPRINTER OUTPUT KEYBOARD INPUT SYSTEM DEVICE FOR . LOAD USER USER USER -6 -5 -4 -3 -2 -1 l 2 3 2-3 b. .DAT DEVICE USE 4 5 6 7 10 TTAO PRAO PPBO DKAl DKA2 USER USER USER USER USER Listed below are the . DAT slot assignments as they appear in the standard SK DECtape system. .DAT DEVICE USE -15 -14 -13 -12 -11 -10 -7 -6 -5 -4 -3 -2 -1 l 2 3 4 5 6 7 10 DTA2 DTAl DTB2 TTAO DTBl TTAO DTCO NONE NONE DTC2 TTAO TTAO DTCO DTAO DTAl DTA2 TTAO PRAO PPBO DTAl DTA2 OUTPUT INPUT OUTPUT LISTING INPUT INPUT SYSTEM DEVICE FOR . SYSLD OUTPUT EXTERNAL LIBRARY FOR . LOAD SYSTEM IN PUT TELEPRINTER OUTPUT KEYBOARD INPUT SYSTEM DEVICE FOR . LOAD USER USER USER USER USER USER USER USER c. The following examples are variations on . DAT slot assignmentst as a function of either core size or different peripherals. (1) Given an SK system with line printer and card reader: LPA should be assigned to .DAT slot -12 and one of the positive slots, for example, 3, 7, or 10. CDB should be assigned to one of the positive slots. (2) Given a 16K (or greater) Disk/DECtape system, a suggested list of assignments is as follows: -15 -14 -13 -12 -11 -10 -7 DKA6 DKA4 DKA5 TTA DKA4 PRA DKCO -6 -5 -4 -3 -2 -1 1 NONE NONE DKA5 TTA TTA DKAO DKA4 2 3 4 5 6 7 10 DKA5 DKA6 TTA PRA PPA DTAl DTA2 tinstallations with 16K or more core should assign the A versions of handlers to all .DAT slots. 2-4 (3) Given a 16K (or greater) DECtape system with magnetic tape, a suggested list of assignments is as fol lows: -15 -14 -13 -12 -11 -10 -7 DTA2 DTAl DTA2 TTA DTAl PRA DTCO -6 -5 -4 -3 -2 -1 1 NONE NONE DTA2 TTA TTA DTAO DTAO 2 3 4 5 6 7 10 DTAl DTA2 TTA PRA PPA MTFl MTF2 d. The fol lowing example is a variation of . DAT slot assignments as a function of both increased core size and additional peripherals. Given a 16K Disk system with line printer and card reader, a suggested list of assignments follows: -15 -14 -13 -12 -11 -10 -7 DKA6 DKA4 DKA5 LPA DKA4 PRA DKCO -6 -5 -4 -3 -2 -1 1 NONE NONE DKA5 TTA TTA DKAO DKA4 2-5 2 3 4 5 6 7 10 DTAl DTA2 LPA PRA PPA CDB DKA5 APPENDIX A SYSTEM GENERATION, STEP-BY-STEP PROCEDURE The following table illustrates the step-by-step query/response procedure developed while using SGEN with either DECtape or Disk. Table A-I Query/Response Procedure Step Procedure Printout l Type-- SGEN) $SGEN 2 Program Title and explanatory message SYSTEM GENERATOR Vnn THIS PROGRAM WILL GENERATE A NEW SYSTEM TAPE ON THE DEVICE SPECIFIED IN .DAT SLOT -15. IT WILL DETERMINE THE CHARACTERISTICS OF THIS SYSTEM TAPE BY ASKING YOU A SERIES OF QUESTIONS. IF IT CANNOT UNDERSTAND THE ANSWER YOU GIVE, IT WILL REPEAT THE QUESTION. HERE GOES! 3 Query HOW MUCH CORE IS AVAILABLE? TYPE 8, 16,24,0R 32. 4 Type system core size >D 5 Query IS AN API AVAILABLE? TYPE Y OR N. 6 Type Y (yes) or N (no) >D 7 Query IS AN EAE AVAILABLE? TYPE YORN. 8 Type Y or N >D 9 Query IS TELETYPE A MODEL 33? TYPE YORN. 10 Type Y or N >D 11 Directive INDICATE THE PRESENCE OR ABSENCE OF THE FOLLOWING HANDLERS BY TYPING YORN: 12 Query string; respond to each with either Y or N. PRA? PRB? PPA? PPB? PPC? DTA? DTB? DTC? DTD? DKA? DKB? DKC? ) ) ) ) A-1 >D ) >D ) '> D ) >D ) >D ) >D ) >D ) >D ) >D ) >D ) >D ) >D ) Table A-1 (Cont) Query/Response Procedure Step Procedure Printout DKD? MTF? LPA? CDB? DYA? DRA? DRB? DRC? DRD? 13 Query >0 ) >D ) >D ) >D ) >CJ >D >D >D >Cl D PDP-9 only ARE ANY OTHER DEVICE HANDLERS PRESENT? TYPE Y ORN. NOTE If you HAVE device handlers NOT listed in the preceding query string (STEP 12) DO STEPS 14 through 22. If you DO NOT have additional device handlers, enter N (no) in answer to the STEP 13 query and GO TO STEP 23. 14 Type Y >D 15 Query HOW MANY? TYPE OCT AL NUMBER. 16 Type number of other handlers in octal form. >D 17 Directive TYPE THREE CHARACTER HANDLER NAME FOR NO. 01. 18 Type 3-character mnemonic for each handler (e.g., MTF) >D 19 Query HOW MANY SKIP IOTS SHOULD BE IN SKIP CHAIN FOR THIS DEVICE HANDLER? TYPE OCT AL NUMBER. 20 Type answer in octal notation >D 21 Directive, given for each handler TYPE UP TO FIVE CHARACTER MNEMONIC FOR SKIP IOT NO. A COMMA, AND OCTAL SKIP IOT. 22 Type mnemonic, a comma and octal Skip IOT. > ._______,l ) ) ) ) STEPS 17 THROUGH 22 ARE REPEATED FOR EACH ADDITIONAL HANDLER AND HANDLER SKIP IOTS 23 Directive THE FOLLOWING SKIP JOTS ARE TO BE INCLUDED IN THE SYSTEM SKIP CHAIN: 24 List of Skip Chain Input/Output Trans fer Command Mnemonics. CLSF MPSNE MPSK SPE SPF AL A-2 Table A-1 (Cont) Query/Response Procedure Step Procedure Printout KSF TSF RSF PSF DTDF DTEF MTSF LSDF RCSF RCSD 25 Directive TYPE THEM IN SKIP CHAIN ORDER, ONE PER NUMBER. TYPE DONE IF ALL DESIRED SKIPS HAVE BEEN ENTERED. (PRECEDE SKIP BY A MINUS IF REVERSE SKIP IOT.) NOTE: USE tP TO RETURN TO THIS POINT. 26 List of queries regarding formation of skip chain. Type IOT mnemonics using Section l as a guide. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. NO. 27 Query SHOULD DEFAULT ASSUMPTION BE 7 CHANNEL MAGTAPE? TYPE YORN. 28 Type Y or N >CJ 29 Query WHAT IS THE SYSTEM DEVICE? TYPE DT OR DK. 30 Type DT (DECtape) or DK (Disk). >D 31 Directive TYPE THE DEVICE HANDLER NAME (NON OR NONE) AND UNIT NO. FOR THE FOLLOWING .DAT SLOTS: 01? > CJ ) 02? > CJ ) 02? > CJ ) 03? > CJ ) 03? > CJ ) 03? >CJ ) 04? > CJ ) 05? > Cl ) 06? > CJ ) 07? > Cl ) 10? > Cl ) 11? > Cl ) 12? > Cl ) 13? > Cl ) 14? > CJ ) 15? >Cl ~ 16? > CJ ) 17? > CJ ) ) ) NOTE: USE tP TO RETURN TO THIS POINT 32 List of queries regarding . DAT Slot Assignments. Type handler mnemonics. -15? -14? -13? -12? -11? A-3 >CJ >CJ >CJ >CJ >CJ ) ) ) ' ) Table A-1 (Cont) Ouery/Response Procedure Step Procedure Printout -10? -6? -5? -4? -l? 1? 2? 3? 4? 5? 6? 33 Explanatory > D > D > D > D > D > D > D > D > D ) ) ) ) ) ) ) ) ) 7? > D ~ ) ) 10? > D ~ > D >D THANKS, THIS WILL TAKE A FEW MINUTES. NOW) NOTE APPROXIMATE TIME REQUIRED: a. b. c. 34 DECtape to DECtape ... 15 to 20 min. DECtape to Disk ....... 10 min. Disk to Disk .......... 5 min. or less. System generation complete, indicates on which Tape or Disk New System is stored. ALL DONE - NEW SYSTEM ON NOTE Printouts will be DTl for DECtape only, DKO for DECtape to Disk, DKl for Disk only system. Each printout requires a different procedure. a. b. c. 35 If DT l go to STEP 35 If DKO go to STEP 37 If DK l go to STEP 38 Do the following to DECtape Unit 8: a. Remove system DECtape. b. Mount new scratch DECtape. c. Change unit number Dial from 8 to l. A-4 (! P ILLEGAL Table A-1 (Cont) Query/Response Procedure Step Procedure Printout d. Set unit WRITE ENABLE/LOCK switch to WRITE ENABLE. 36 Do the following to original DECtape Unit 1: a. Change unit number Dial from l to 8. b. Set unit WRITE ENABLE/ LOCK switch to LOCK. NOTE On completing Step 36, go to Step 44. 37 Do the following to DECtape Unit 8: a. Remove system DECtape. b. Mount new scratch DECtape. c. Set unit WRITE ENABLE/ LOCK switch to WRITE ENABLE. d. Change unit number dial from 8 to 2. e. Set Disk control panel WRITE PROTECT switch and toggle switches 10, 20, and 30 to ON (up). NOTE On completing Step 37, go to Step 44. 38 Set Disk control panel WRITE PROTECT switch to OFF (down) position, and perform Steps 39 through 42. 39 Enter . DAT SLOT assignment AwDKAOw2/DKAl L..J 3). $ A DKAO 2/DKA l 3 40 Enter PIP) . $ PIP 41 Response PIP Vnn > A-5 Table A-1 (Cont) Query/Response Procedure Step Procedure 42 Enter Cw DKO w (H)u --DK l) to initiate transfer. 43 Response (transfer complete) Printout > C DKO (H) u -DK 1 NOTE Protect contents of Disk Unit 0 by setting Disk Control Panel WRITE PROTECT switch and switches 10, 20, 30 to the ON (up) position (RB09 only). 44 Load paper tape BOOTSTRAP (Disk or DECtape, whichever is applicable) in paper tape reader. A-6 APPENDIX B PIP ERROR MESSAGES Error Messa~ Action COMM STRING TOO LO NG Retype command string. ILL FUNCTION Retype from function character on. J ILL DEV OR UNIT ILL DEV TERMINATOR DEV ILL FOR OPTION OR FUNCTION DEV NOT IN+ .DAT TABLE TOO MANY FILES OR BLKS FILE NAME TOO LONG FILE NOT 0 N DEV j Retype from device name on. Type tC to restore. Retype command string. Retype from Fi le Nome on. TOO MANY SRC FILES TOO MANY DEST FILES Check number of files actually transferred and type another command string to transfer remainder. DATA MODE NEEDED Type data mode in parentheses followed by carriage return. SWITCH ILL FOR DEV ILL SWITCH SWITCH CONFLICT SWITCH ILL FOR FUNCTION } Retype from switch on. ILL TERMINATOR Retype from terminator on. INPUT PARITY ERR If binary, check data. If ASCII, retype command string using G switch. INPUT CKSUM ERR ) INPUT LINE TOO LONG Check data. ILL BLK# Retype from block # on. READ-COMP ERR ON BLK:n When operation complete, try B function on error block. S FUNC NOT DONE Execute S operation; then retype T command. STRING 1 TO 16 ACCEPTED Perform segmentation; then further segment last destination file. TOO FEW DEST FILES Retype command string with correct If of destination files. (1 more than If of segmentation points.) B-1 READER'S COMMENTS PDP-15 UTILITY MANUAL DEC-15-YWZA-D Digital Equipment Corporation maintains a continuous effort to improve the quality and usefulness of its publications. To do this effectively we need user feedback ~your critical evaluation of this manual. Please comment on this manual's completeness, accuracy, organization, usability, and readability. Did you find errors in this manual? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - How can this manual be improved? ______________________________ DEC also strives to keep its customers informed of current DEC software and publications. Thus, the following periodically distributed publications are available upon request. Please check the appropriate boxes for a current issue of the publication(s) desired. 0 Software Manual Update, a quarterly collection of revisions to current software manuals. 0 User's Bookshelf, a bibliography of current software manuals. 0 Program Library Price List, a list of currently available software programs and manuals. Please des1:ribe your position. Name - - - - - - - - - - - - - - - Organization Street - - - - - - - - - - - - - - - Department City _ _ _ _ _ _ _ _ _ _ _ S t a t e - - - - - - - - - - - - - - - Zip or Country----- HOW TO OBTAIN SOFTWARE INFORMATION Announcements for new and revised software, as well as programming notes, software problems, and documentation corrections are published by Software Information Service in the following newsletters. Digital Software News for the PDP-8 Family Digital Software News for the PDP-9/ l 5 Family PDP-6/PDP- l 0 Software Bulletin These newsletters contain information applicable to software available from Digital's Program Library. Please complete the card below to place your name on the newsletter mailing list. Questions or problems concerning DEC Software should be reported to the Software Specialist at your nearest DEC regional or district sales office. In cases where no Software Specialist is available, please send a Software Trouble Report form with details of the problem to: Software Information Service Digital Equipment Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 These forms, which are available without charge from the Program Library, should be fully filled out and accompanied by teletype output as well as listings or tapes of the user program to facilitate a complete investigation. An answer will be sent to the individual and appropriate topics of general interest will be printed in the newsletter. New and revised software and manuals, Software Trouble Report forms, and cumulative Software Manual Updates are available from the Program Library. When ordering, include the document number and a brief description of the program or manual requested. Revisions of programs and documents will be announced in the newsletters and a price list will be included twice yearly. Direct all inquiries and requests to: Program Library Digital Equipment Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 Digital Equipment Computer Users Society (DECUS) maintains a user Library and publishes a catalog of programs as well as the DECUSCOPE magazine for its members and non-members who request it. For further information please write to: DEC US Digital Equipment Corporation 146 Main Street Maynard. Massachusetts 01754 Send Digital's software newsletters to: Name _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ Company Name _ _ _ _ _ _ _ _ _ _ _ _ _ __ Address _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ (zip code) PDP-8/I 0 PDP-8/L 0 LINC-8 0 PDP-12 0 PDP-9 0 PDP-15 0 PDP-10 0 OTHER 0 My system serial number is ____________ (if known) My computer is a Please specify --------
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies