Digital PDFs
Documents
Guest
Register
Log In
DEC-15-ODUMA-A
December 1972
222 pages
Original
10MB
view
download
Document:
DOS-15
Users Manual
Order Number:
DEC-15-ODUMA-A
Revision:
Pages:
222
Original Filename:
http://bitsavers.org/pdf/dec/pdp15/DEC-15-ODUMA-A_DOS-15_Users_Manual_197212.pdf
OCR Text
DEC-15-0DUMA-A-D -15 users manual SOFTWARE SUPPORT CATEGORY The software described in this document is supported by Digital Equipment Corporation under Category I, as defined on page iii of this document. For additional copies, order No. DEC-15-0DUMA-A-D from Software Distribution Center, Digital Equipment Corporation, Maynard, Massachusetts 01754 First Printing December, 1972 Your attention is invited to the last two pages of this document. The "How to Obtain Software Information" page tells you how to keep up-to-date with DEC's software. Completion and return of the "Reader's Comments" page is beneficial to both you and DEC: all comments received are acknowledged and are considered when documenting subsequent manuals. Copyright © by Digital Equipment Corporation DEC assumes no responsibility for the use or reliability of its software on equipment which is not supplied by DEC. The material in this document is for information purposes and is subject to change without notice. The following are trademarks of Corporation, Maynard, Massachusetts: CDP COMPUTER LABS COMTEX-11 DDT DEC DECTAPE DIBOL Teletype DIGITAL EDU SYSTEM FLIP CHIP FOCAL GLC-8 IDACS INDACS I<AlO LAB-8 OMNIBUS OS/8 OS/11 PDP PHA is a registered trademark Corporation. Digital Equipment QUICXPOINT RAD-8 RSTS RSX SABR TYPESET-8 UNIBUS of· the Teletype SOFTWARE SUPPORT CATEGORIES Digital Equipment Corporation (DEC) makes available four categories of software. These categories reflect the types of support a customer may expect from DEC for a specified software product. DEC reserves the right to change the category of a software product at any time. The four categories are as follows: Software CATEGORY Products Supported at no Charge This classification includes current versions of monitors, programming languages, and support programs provided by DEC. DEC will provide installation (when applicable), advisory, and remedial support at no charge. These services are limited to original purchasers of DEC computer systems who have the requisite DEC equipment and software products. At the option of DEC, a software product may be recategorized from Category I to Category II for a particular customer if the software product has been modified by the customer or a third party. Software Products CATEGORY 11 that Receive Support for a Fee This category includes prior versions of Category I programs and all other programs avai 1able from DEC for which support is given. Programming assistance (additional support), as available, will be provided on these DEC programs and non-DEC programs when used in conjunction with these DEC programs and equipment supplied by DEC. CA TE GORY 111 Pre-Release Software DEC may elect to release certain software products to customers in order to facilitate final testing and/or customer familiarization. In this event, DEC will limit the use of such pre-release software to internal, non-competitive applications. Category Ill software is only supported by DEC where this support is consistent with evaluation of the software product. While DEC will be grateful for the reporting of any criticism and suggestions pertaining to a pre-release, there exists no commitment to respond to these reports. CATEGORY IV Non-Supported Software This category includes all programs for which no support is given iii PREFACE This manual is the prime document for the IX>S-15 Monitor Software System and describes its features, concepts, programming, and operating procedures. The first four chapters provide a general descrip- tion of the DOS-15 System components, both hardware and software, fundamental syste~ concepts, and file structures. The remaining six chapters deal with the DOS-15 system at a more technical level. They are primarily concerned with I/O programming requirements and techniques under the Monitor, runtime keyboard commands, and operating procedures. The information in these chapters is directed primarily to readers wbo are familiar with either the FORTRAN IV language or the PDP-15 assembly language, MACR0-15 (described in DEC-15-GFWA-D and DEC-l5~AMZC-D_, respectively). FORTRAN users, however, need only be concerned with Chapters 7, 8, and 10, since FORTRAN I/O considerations are specifically covered in the PDP-15 FORTRAN IV Operating Enviromment manual (DEC-15-GFZA-D). Detailed information on the internal operations of the DOS-15 Monitor and its file structure as well as procedures for preparing usercreated system software are provided in the DOS-15 System Manual (DEC-15-NRDA-D) . Brief descriptions of all system programs with applicable document numbers are contained in Chapter 2. A quick reference summary of the command strings, operating procedures and error messages for the Monitor and system programs is provided in the DOS-15 Keyboard Command Guide (DEC-15-NGKA-D). v CONTltNTS PREFACE CHAPTER 1 1.1 1.1. l DISK OPERATING SYSTEM INTRODUCTION System Features 1-1 1-2 SYSTEM HARDWARE 1.2 Minimum Hardware Requirements 1. 2.1 1.2.2. Optional Hardware 1.2.2.1 Control X Feature 1.2.2.2. Real-Time Clock 1. 2.3 The System Device 1-3· 1-3 1-5 1-5 1-6 1-6 SYSTEM SOFTWARE How DOS is Supplied DOS Checkout Package 1-6 1-10 1-10 1.3 1.3.l 1.3. 2 CHAPTER 2 SYSTEM PROGRAMS 2.1 INTRODUCTION 2-1 2.2 2.2.1 2.2.2 2.2.3 CHOICE OF LANGUAGES FORTRAN IV Compiler MACRO Assembler FOCAL Programs 2-l 2-1 2-2 2-4 2.3 SYSTEM GENERATOR (SGEN) 2-4 2.4 PATCH SYSTEM UTILITY PROGRAM 2-5 CHAIN AND EXECUTE PROGRAMS Advantages/Disadvantages of CHAIN & EXECUTE 2.5.1.1 Advantages 2.s.1.2 Disadvantages 2-7 2-7 2.6 LINKING LOADER 2-8 2.7 DYNAMIC DEBUGGING TECHNIQUE (DDT) PROGRAM 2-9 2.8 DU"'IP PROGRA."'1 2-9 2. 9 MAGNETIC TAPE DU"'IP (MTDU"'IP) UTILITY PROGRAM 2-9 2.10 TEXT EDITOR PROGRAMS, EDIT, EDITVP AND EDITVT 2-10 2.11 PERIPHERAL INTERCHANGE PROGRAM (PIP) 2-10 2.12 DECTAPE COPY (DTeOPY) 2-11 2.13 LIBRARY UPDA'rt PROGRAM 2-11 2.5 2.5.l vii 2-7 2-8 2.14 SOURCE COMPARE PROGRAM (SRCCOM) 2-11 2.15 GRAPHIC-15 2-11 2.16 PDP-8 TO PDP-15 TRANSLATOR (8TRAN) 2-11 2.17 PDP-8 TO PDP-9 TRANSLATOR (89TRAN) 2-12 2.18 VP15A GRAPHICS SOFTWARE 2-12 CHAPTER 3 SYSTEM CONCEPTS DOS-15 MONITORING FUNCTIONS System Communication Table (SC0'-1.) • Monitor/User Interaction 3-1 I/O COMMUNICATION Device Independence I/O Device Handlers Device Assignment Table (.DAT) 3-4 3-4 3-5 3-5 3.3.1 3.3.2 FILE STRUCTURES User File Directories and UIC's Monitor Identification Code (MIC) 3-5 3-6 3-6 3.4 FILE PROTECTION 3-7 3.5 I/O BUFFERS 3-7 3.1 .3 .1.1 3.1. 2 3.2 3.2.1 3.2.2 3.2.3 3.3 3-2 3-3 3.6 3.6.l CHOICE OF EXECUTABLE F'ORM Relocatable Binary 3.6.2 Absolute Binary Forms 3.6.2.l .ABS and .ABSP Binary 3.6.2.2 .FULL and .FULLP Binary 3-7 3-7 3-8 3-8 3-8 LOADER CONTROL 3.7 Globals 3.7.l 3.7.2 Program Loading 3.7.2.l Page Mode Operation Bank Mode Operations 3.7.2.2 3-8 3-9 3-9 3-9 3-9 ERROR DETECTION . 3-10 3.8 CHAPTER 4 FILE STRUCTURES 4.1 INTRODUCTION 4-1 4.2 DEVICE ASSIGNMENTS 4-1 4.3 4.3.1 4.3.2 4.3.3 FILES Records Words Data Modes 4-2 4-2 4.4 4-3 4.4.2 4.4.3 FILE STRUCTURES File and Data Access Techniques Sequential Access Direct Access 4.5 MAGNETIC TAPE FILE STRUCTURE 4-5 4.4.l 4-2 4-3 viii 4-4 4-4 4-4 4.6 DECTAPE FILE STRUCTURE 4-6 4.7 4.7.1 4.7.2 4.7.3 DISK FILE STRUCTURE User Identification Codes (UIC) The User File Directory Table (.UFDT) File Protection Organization of Specific Files on Disk The Disk Handlers 4-8 4-8 4-9 4-9 4-11 4-11 4.7.4 4.7.5 CHAPTER 5 5.1 DOS SYSTEM MACROS INTRODUCTION 5-1 5.2 MONITOR-PROCESSED COMMANDS 5.2.1 Summary of DOS Monitor System Macros 5.2.2 DOS-15 System Macro Expansions 5• 2• 2. 1 • PUT 5.2.2.2 .GET 5.2.2.3 .GTBUF (Get Buffer) 5.2.2.4 .GVBUF (Give Buffer) 5. 2. 2. 5 .OVRLA 5.2.2.6 .EXIT 5.2.2.7 .TIMER CHAPTER 6 PROGRA~MED 5-1 5-1 5-2 5-3 5-4 5-5 5-5 5-6 5-6 5-7 1/0 COMMANDS 6.1 INTRODUCTION 6-1 6.2 6.2.1 6.2.2 GENERAL I/O COMMUNICATIONS .READ/.WRITE/.RTRAN Operations .TRAN Operations 6-1 6-3 6-3 SEQUENTIAL FILE PROCESSING Logical Record Format, IOPS and Image Modes 6.3.1.1 Header Word Pair Format 6.3.1.2 Using the Header Word Pair 6-3 DATA MODES 6.4 IOPS Modes 6.4.1 6.4.1.1 IOPS ASCII 6.4.1.2 IOPS Binary Image Modes 6.4.2 Dump Mode 6.4.3 6.4.4 Logical Record Terminators 6-6 6-7 6-7 6.5 6.5.1 6-14 ~ 6.3 6.3.1 I/O BUFFERS Sn~rP All~~~~i~~ =e c=- --- 6-3 6-4 6-4 6-9 6-10 6-12 6-12 o-.i.<t 6.6 SPECIFYING I/O DEVICES 6-16 6.7 I/O MACRO DESCRIPTIONS .CLEAR .CLOSE .DLETE .ENTER .FSTAT .INIT 6-16 6.7.1 6.7.2 6.7.3 6.7.4 6.7.5 6.7.6 ix 6-17 6-17 6-18 6-18 6-19 6-20 6.7.7 6.7.8 6.7.9 6.7.10 6.7.11 6.7.12 6. 7 .13 6.7.14 6. 7. 15 6.7.16 6.7.17 6.8 6.8.l 6.8.2 6.8.3 6.8.4 6.8.5 6.8.6 CHAPTER 7 .MTAPE .RAND .READ .RENAM .RTRAN .SEEK .TRAN .USER .WAIT .WAITR .WRITE 6-21 6-21 6-22 6-23 6-23 6-24 6-25 6-26 6-27 6-27 6-28 USING I/O MACROS Physical Device Capabilities Device Handler Characteristics I/O Macro Syntax .Selecting an I/O Macro Sequence Programming Example File Integrity Considerations 6-29 6-29 6-29 6-2 9 6-31 6-33 6-44 SYSTEM INITIALIZATION 7.1 INTRODUCTION 7-1 7.2 HOW THE SYSTEM SOFTWARE IS SUPPLIED 7-1 7.3 SYSTEM STARTUP PROCEDURES 7.3.1 Disk Restoration (DOSSAV) 7.3.1.1 Operating Procedures 7.3.1.2 Commands 7.3.l.3 Examples of DOSSAV Commands 7.3.1.4 Error Messages and ~eanings 7.3.1.5 Restart Procedures 7.3.2 Loading and Starting the Monitor 7.3.2.1 Loading the Bootstrap 7.3.2.2 Bootstrap Restart Procedures 7-2 7-2 7-3 7-3 7-5 7-7 7-8 7-8 7-9 7-9 7.4 7-10 CHAPTER 8 SYSTEM MODIFICATION (TAILORING) PROCEDURES KEYBOARD COMMANDS 8.1 INTRODUCTION 8-1 8.2 8.2.l 8.2.2 8.2.3 KEYBOARD C0"1111AND FOR~TS AND CHARACTERS Keyboard Command Elements Editing Features When to Issue Keyboard Commands 8-2 8-2 8-2 8-3 8.3 8.3.l 8.3. 2 8.3.3 C0"1'1ANDS TO REQUEST SYSTE"-1 INFOR"1ATION SCOM INSTRUCT REQUEST 8-3 8-3 8-5 8-8 8.4 8.4.1 8.4.2 8.4.3 8.4.4 COM~ANDS RELATED TO FILE PROTECTION LOGIN MI CLOG PROTECT LOGOUT x 8-8 8-8 8-9 8-9 8-9 8.5 8-10 8.5.1 8.5.2 8.5.3 COMMANDS DEALING WITH I/O DEVICE ASSIGNMENTS REQUEST ASSIGN KEEP ON/OFF 8.6 8.6.1 8.6.2 CORE ALLOCATION COMMANDS BUFFS X4K ON/OFF 8-13 8-13 8-14 8.7 8.7.1 8.7.2 8.7.3 8.7.4 CORE IMAGE SAVE/RESTORE COMMANDS CTRL Q QDUMP PUT GET 8-14 8-15 8-15 8-15 8-16 8.8 VT15 DISPLAY COM.~NDS 8.8.1 Operating Features 8.8.1.1 Display Modes 8.8.1.2 Clearing the Display Screen 8. 8.1.3 Editing 8.8.2 Display Command Description 8.8.2.1 VT ON/OFF 8.8.2.2 HALF ON/OFF 8.8.2.3 CTRL X 8.8.2.4 Command Default Settings 8-17 8-17 8-17 8-18 8-18 8-18 8-18 8-19 8-19 8-19 8.9 MISCELLANEOUS COMMANDS 8.9.1 API ON/OFF 8.9.2 33TTY ON/OFF 8.9.3 CHANNEL 7/9 8.9;4 LP ON/OFF 8.9.5 BANK ON/OFF - PAGE ON/OFF 8.9.6 DATE 8.9.7 TIME 8.9.8 TIMEST 8.9.9 LOG 8.9.10 HALT 8.9.11 CTRL D 8-19 8-19 8-20 8-20 8-20 8-20 8-21 8-21 8-22 8-22 8-22 8-22 8.10 SYSTEM PROGRAM LOADING COMMANDS 8-23 8.11 PROGRAM START/RESTART/CONTINUE COMMANDS 8.11.1 CTRL C 8.11.2 CTRL P 8.11.3 CTRL S 8 .11. 4 CTRL T 8.11.5 CTRL R 8-23 8-23 8-23 8-25 8-25 8-25 8.12 BATCHING KEYBOARD COMMANDS 0.12.1 Preparation 8.12.2 Operator Commands 0.12.2.1 BATCH 0.12.2.2 CTRL T 8.12.2.3 CTRL C 8.12.2.4 CTRL R 8.12.3 Job Control Commands 8.12.3.1 $JOB 8.12.3.2 $DATA 8.12.3.3 $END 8.12.3.4 $PAUSE 0.12.3.s $EXIT 8.12.4 Restrictions 8-25 8-25 8-26 8.13 8-28 KEYBOARD ERHOR J)ETECTION AND HANDLIN<; xi 8-10 8-12 8-13 B-26 8-26 B-26 8-26 8-26 8-26 8-27 8-27 8-27 B-27 8-27 CHAPTER 9 9.1 I/O DEVICE HANDLERS INTRODUCTION 9-1 DEVICE HANDLERS ACCEPTABLE TO SYSTEM PROGRAMS FORTRAN IV (F4) 9.2.1 MACR0-15 9.2.2 FOCAL 9.2.3 EDIT, EDITVP, and EDITVT 9.2.4 Linking Loader and DDT 9.2.5 PIP (Peripheral Interchange Program 9.2.6 'SGEN (System r,enerator) 9.2.7 9.2.8 PATCH UPDATE 9.2.9 DUMP 9.2.10 CHAIN 9.2.11 }:XECUTE 9.2.12 SRCCOM (Source Compare) 9.2.13 9.2.14 DTCOPY (DECtape Copy) 8TRAN (PDP-8 to PDP-15 Translator) 9.2.15 89 TRAN (PDP-8 to PDP-9 Translator) MTDUMP (Magtape User's Utility Program) 9.2.16 9.2 I/O HANDLER DESCRIPTIONS 9.3 9. 3 .1 Teleprinter Handler (TTA) 9.3.1.1 General Description Device Dependent Characteristics 9.3.1.2 Program Control Characters 9.3.1.3 Paper Tape Punch Handlers (PPA,PPB, and 9. 3. 2 PPC) 9.3.2.1 General Description . Device Dependent Characteristics 9.3.2.2 Paper Tape Reader Handlers (PRA and PRB) 9.3.3 DECtape Handlers (OTA, OTC, OTO, DTE, 9. 3. 4 and DTF) General Description 9.3.4.1 9.3.4.2 Device Dependent Characteristics DECdisk and Disk Pack Handlers (DKA/DPA, 9. 3. 5 DKB/DPB, and DKC/DPC) General Description 9.3.5.1 Device Dependent Characteristics 9.3.5.2 Magtape Handlers (MTA, MTC, and MTF) 9. 3. 6 General Description 9.3.6.1 Device Dependent Characteristics 9.3.6.2 9.3.7 Line Printer Handler 9.3.7.1 General Description 9.3.7.2 Device Dependent Characteristics Card Reader Handler (COB) 9 .3. 8 9.3.8.1 General Description Device Dependent Characteristics 9.3.8.2 VP15A Storage Tube Display (VPA) 9. 3. 9 CHAPTER 10 9-2 9-3 9-4 9-5 9-6 9-6 9-7 9-7 9-8 9-8 9-8 9-9 9-9 9-9 9-10 9-10 9-10 9-10 9-11 9-11 9-11 9-13 9-14 9-14 9-15 9-15 9-17 9-17 9-18 9-18 9-18 9-20 9-23 9-23 9-25 9-25 9-25 9-26 9-27 9-27 9-28 9-29 OPERATING PROCEDURES 10.l INTRODUCTION 10-1 10.2 EXAMPLE OF KEYBOARD OPERATIONS 10-1 10.3 EXAMPLE OF OPERATING PROCEDURES USING COMMAND BATCHING MODE 10-9 10.4 ERROR DETECTION AND RECOVERY PROCEDURES 10-14 xii APPENDIX A PDP-15 IOPS ASCII STANDARD CHARACTER SET A-1 APPENDIX B SAMPLE IOPS ASCII PACKING AND UNPACKING ROUTINES B-1 APPENDIX c INPUT/OUTPUT DATA MODE TERMINATORS FOR SPECIFIC DEVICE HANDLERS C-1 APPENDIX D IOPS ERROR CODES D-1 APPENCIX E LINKING LOADER AND SYSTEM LOADER ERRORS E-1 APPENDIX F •PDP-15 ASCII/HOLLERITH CORRESPONDENCE F-1 APPENDIX G DOS-15 CHECKOUT PROCEDURES G-1 APPENDIX H DOS TERMS AND ACRONYMS H-1 INDEX xiii CHAPTER 1 DISK OPERATING SYSTEM 1.1 INTRODUCTION The PDP-15 ~isk Qperating .§ystem (DOS-15) is an integrated set of software designed to meet the demands of research, engineering, and industrial environments. It includes the software necessary fer rim,....1;e..:,..,,4 p-.1.oq.r;culUU~11u dnn P.;r1r.1~n1""··npcrati-nc:::_ DOC' u; brings to the user the advantages of disk resident storage via rapid access to the system's resources. The operating system runs with a PDP-15/20 Central Processor having at least 16,384 18-bit words of main memory and the specific capabilities required by the system (see Paragraph 1. 2, "System Hardware"). The System Monitor is an integrated set of commonly-used programs for the development of user applications. These programs include tools for: Program Preparation, Compilation, Assembly, Debugging, and Execution of User Programs. The DOS Monitor, the heart of the system, incorporates all the functions of the "Advanced Monitor System" plus the added power of fully automatic random access file operation. The user controls the operating system by instructions to the Monitor. The Monitor runs the jobs, supervises data and file manipulation, and interacts with the operator/user in a simple, conversational manner. In the operating system; data on mass storage is handled by macro statements used with the MACR0-15 symbolic assembler language, and by the mass storage language elements incorporated into the FORTRAN IV compiler. 1-1 1.1.l System Features Disk Resident System Software All DOS-15 system Software resides on either Interactive An interactive keyboard/program Monitor permits Operation device-independent programming and automatic DECdisk or Disk Pack. calling and loading of system and user programs. I/O Device Data and file manipulating I/O device handlers Handlers ~re Programmed Input/Output programming is simplified by the 11onitor use of a set of system commands which are Commands standardized for system-supported I/O devices. Conversational System Utility Programs interact with the operator/ Mode user in a simple, conversational manner. Dynamic Storage The available disk storage is automatically allo- Allocation cated for optimum storage utilization. Dynamic Buff er Input/Output core is automatically optimized by Allocation the Monitor. supplied for standard system peripherals. It allocates only that space which is required for the system and the user. Disk File Allows the most efficient use of disk capacity Structure and data retrieval for processing via: o System supported DECdisk and Disk Pack devices, providing both economy and storage capacity o Virtually unlimited data capacity (Disk Pack= 83.7 million words, DECdisk - 2.09 million words) o Random/Sequential File access o File Protection through unique user directories 1-2 o User/user file independence - identically named unformatted Input/Output (FORTRAN-IV) o Random Access - formatted as well as unformatted Input/-Output (FORTRAN-IV) User-Created System Files The user may easily incorporate his own software into the operating system, thereby tailoring the system to his hardware and software needs. Programming Several programming languages are offered: Languages FORTRAN IV, FOCAL, MACR0-15. Bank and Page Choice of SK (Bank Mode) or 4K (Page Mode) direct addressability. Modes Bank Mode permits DOS-15 operation on the PDP-9. The system provides for several levels of user file protection. Using unique User Identification Codes, each user can be assured of his file integrity. Files are protected and invisible to other users. The system provides privileged access to all files via a·supervisory code maintained by the system owner or manager. 1.2 SYSTEM HARDWARE The Disk Operating System is definedwithinthe limits of a particular PDP-15 hardware system configuration; i.e., central processor model, minimum and maximum core requirements, necessary features, and types and numbers of peripheral devices. The system software is distributed DECtape or as a Disk Restore system on Magtape, and operates from DECdisk or Disk Pack with DECtape or Magtape backup storage. 1.2.l Minimum Hardware Requirements The minimum equipment configuration for the DOS-15 software includes the PDP-15 Central Processor with ~e following features: 16,384 18-bit, 800-NS core memory 35 Teleprinter PC15 High-speed Paper Tape Reader and Punch 1-3 KE15 Extended Arithmetic Element TC15 DECtape Control 1 TU56 Dual DECtape Transport or 2 TUSS DECtape Transports, or TC59 Magtape Control 1 TUlO, TU20, or TU30 Magnetic Tape Transport {7- or 9-track) RF15 DECdisk Control 1 RS09 DECdisk Drive (262,144 words) or RP15 Dis~ Pack ~ontrol 1 RP02 Disk Pack Drive (10.24 million words) 1 RP02D Disk Pack The PDP-15 hardware environment is illustrated in Figure 1-1. MEMORY BANKS r-,..--. r--r-., f 4K ~ 4K I I 4 K 1 4K I L--t-.J L--t--' ~----'---.--- ...J __ - REtco~~E : I A~RIO~~~c -------J ~~!.E.!!,R,!lP.J INPUT/OUTPUT PROCESSOR DATA t--.---.--.......--.-...--.-...--t ___ .J EXTENDED ADDR FL~~l";J~G I ARITHMETIC ELEMENT INPUT/...__..-Jr - - - .J. - - - - OUTPUT BUS CENTRAL PROCESSOR UNIT 3 ....._4-r-'-5--'-6--'-7_.,_e_.._-r-_, CHANNELS ._....._.,......... l262K) ~ r::::l ~~ I I --------~-----~-- DECTAPE rNTROL - - - - -OTHER ONE ~1 MAGTAPE CONTROL I , - I ' L-t I HIGH SPEED PAPERTAPE STATION ' t I .. --~ I I - - - - OPTIONAL SUBSYSTEMS , ' ' -- .. L-t 8 I Fi9ure 1-1 I Hard~are Environment 1 411 1.2.2 Optional Hardware Additional hardware supported by the operating system is as follows: up to 32,768 18-bit, 800-NS core memory KA15 Automatic Priority Interrupt KW15 Real Time Clock FP15 Floating Point Processor 35 and/or 33 Teleprinter or LA3~ DECwriter PC15 High Speed Paper Tape Reader and Punch TC15 DECtape Control 4 TU56 Dual or 8 TUSS DECtape Transports RFlS DECdisk Control 8 RS09 DECdisk Drives (262,144 words per drive) RP15 Disk Pack Control 8 RP02 Disk Pack Drives (10,240,000 words per drive) TC59 Magtape Control 8 TUlO, TU20 or TU30 (7- or 9-track) Tape Transports Card Readers CR03B 200 cpm Reader and Control or CR15 1000 cpm Reader and Control VP15 Point Plotting Displays VT15 Graphic Display Processor VT04 Graphic Display Console LK35 Keyboard Line Printers LP15 - 1000 lpm, 132 column line or - 356 lpm, 80 dolumn line VWA Writing Tablet 1.2.2.1 CTRL X Feature - The Control X feature is available to the user whose system configuration incl,udes a VT15 Display Processor or a VT04 Display Console. This featute gives the capability of changing from the hard copy output of the teleprinter to the soft copy output of the VTlS Display. _l-5 1.2.2.2 Real-Time Clock - The Real-Time Clock (on systems having this option) runs continuously, in order to update an elapsed time register. It can be used by the user to time jobs or to control program execution. In addition to the above, the user may adapt the system to incorporate many other specialized peripherals, such as X-Y plotter, data acquisition equipment, etc. · 1.2.3 The System Device The system device for DOS-15 may be either the RF15 DECdisk, or the RP02 Disk Pack. The RF15 DECdisk equipment is composed of up to eight fixed-head, rotating disks which are treated by DOS as one contiguous storage area. The DOS Monitor provides for simultaneous use of the DECdisk or Disk Pack as a system device, file device, and scratch device. 1.3 SYSTEM SOFTWARE The PDP-15 Disk Operating System's service routines perform four primary tasks for all user applications (see Figure 1-2). 1. Run-Time Aids - External routines from several libraries are available to the user. The libraries may contain either user-designed routines or those provided by DOS-15 which can be implicitly or explicitly called. 2. Utilities - DOS-15 provides facilities for efficient storage, flow, and retrieval of system and user data. There are also system programs that provide file verification and data buffer allocation, file data manipulation, etc. 3. Program Preparation and Maintenance - There are system programs to aid user program preparation by preparing f ilc text for source programs and l-6 LANGUAGES DOS-1!1 MONITOR llUN·TIME AIDS Piqure 1-2 PDP-15 Monitor Disk Operating System Software 1-1 programs to aid testing and maintenance of object programs. 4. Language Assembly and Compilation - Programs are available to translate problem-oriented and procedure oriented languages into machine language and to incorporate routines into complete, executable programs. The system software lets the user deal with many complex problems in a simple and straightforward manner. The system will perform all of these functions: 1. Write programs in three higher-level languages FORTRAN IV, FOCAL and MACR0-15. 2. Edit and debug the program prior to run. 3. Load and link programs. 4• Run the program by : 5. a. handling I/O, b. reading and writing named random-access files on disk storage, c. providing run-time device independence, Batch process from paper tape or cards. Listed in Table l-l are individual system programs in the PDP-15 Disk Operating System. Table 1-1 DOS System Software Program Name System Functions Description MONITORS DOS-15 Monitor Allows system parameter changes and device assignments. LANGUAGES FORTRAN IV Compiler, Object Tim~' System, Science Library. FOCAL An on-line interactive algebraic language. MACR0-15 A symbolic assembler language. 1-8 Table 1-1 DOS System Software (Cont'd) Program Name System Functions PREPARATION AND DEBUGGING UTILITIES General UTILITIES System OPERATING PROGRAMS Description DDT A Dynamic Debugging Technique for FORTRAN and MACRO programs. DUMP The capability to output specified core locations. EDIT Text Editor providing insertion, deletion, and modification of symbQlic text. EDI'l'VP & EDITVT Special versions of EDIT which provide fast soft copy editing on the VT or VP display system. PIP Facilitates the manipulation and transfer of data files from any input to any output device. DTCOPY High-speed DECtape copy program. UPDATE Binary program retrieval and library update program. SltCCOM Source compare program. MTDUMP Magnetic Tape DUMP program. 8TRAN Translates PDP-8 source code into PDP-15 code. 89TRAN Translates PDP-8 source code into PDP-9 code. SGEN Provides the ability to tailor the system structure to a particular hardware/software configuration. PATCH Makes corrections to systems programs on the systems device, and adds programs to the system. Linking Loader Loads relocatable programs and required routines. CHAIN & EXECUTE Multiple segmentation of large programs and overlays to allow economy of core. 1-9 . These programs are supervised by the Monitor to form an interactive collection of service programs. This relationship is illustrated in Figure 1-2. 1. 3.1 How DOS is Supplied General purpose software is suppli~d to the PDP-15 user on two DECtapes or one 7- or 9-track magnetic tape as a disk-restore initialization. The DOS-15 System tape(s) contain all of the standard PDP-15 DOS System Programs, Utility Progr~ms, and I/O Device Handlers supplied and supported by Digital Equipment Corporation. An unmodified master system tape or tapes should,be maintained as a reference backup system. Users with the FP-15 Floating Point hardware are provided with additional FP-15 routines on DECtape or Magtape. 1 1. 3. 2 DOS Checkout Package Digital Equipment Corporation supplies a checkout package for the DOS-15 which allows the user to te$t the System software for proper installation on DECdisk or Disk Pa¢k. The package is available on • I batch paper tapes in two versions, ,as follows: RF.CHK RP.ChK For the RF15 DECd!sk system (DEC-15-CIDA-PA) For the RP,112 DiskiPack system (DEC-15-CIAA-PA) These programs provide the user with the ability to briefly test all the basic system software suppliedifor DOS-15. For more information, refer to Appendix G, DOS-15 Checkout Packaqe. 1-10 CHAPTER 2 SYSTEM PROGRAMS 2.1 INTRODUCTION This chapter gives information necessary for the System's Manager and Analyst to evaluate system programs to be run under DOS-15 control. Each system program will assist the user in performing a particular task in the process of application design and implementation. Considerations for system modification are reserved for DOS System Manual DEC-15-NRDA-D. 2.2 CHOICE OF LANGUAGES User source programs can be implemented at several levels depending on those particular system features required for a given processing environment. DOS-15 supports three levels of automation for object program preparation: 1. 2. 3. 2.2.1 Compiler level language - FORTRAN IV Assembly language - MACR0-15 Interpretive language - FOCAL FORTRAN IV Compiler The P.DP-15 FORTRAN IV compiler is a higher-level, procedure-oriented language system that accepts statements written in the FORTRAN IV language and produces a relocatable object program capable of being loaded by the Linking Loader. All versions of PDP-15 FORTRAN IV are based on the language of USASI Standard FORTRAN (XJ.9-1966). The system is augmented by the Floating Point Processor, the FORTRAN IV compiler, and an Object Time System. Object time program capabilities include "floating point" instructions. Subroutines written in either FORTRAN IV or MACR0-15 assembly language can be loaded with and called by FORTRAN IV main programs. Comprehensive source language diagnostics are produced during compilation, and a symbol table is generated for use in on-line debugging with DDT. 2-1 The system's Data-Directed Input-Output package permits input or output of ASCII data without reference to a FORMAT statement. The system can also perform memory-to-memory transfers (Encode/Decode) moving data from memory to the I/O Buffer to memory. There are three versions of the FORTRAN IV supported by DOS-15: (1) F4X (PDP-15 mode); Point mode). (2) F4X9 (BANK mode); and (3) FPF4X (Floating Each version has its own Object Time System and Science Library so that program routines may utilize all system hardware and software features. A FORTRAN IV program may be compiled and run in several different equipment environments. The FORTRAN progranuner need not be too concerned with the details of his environment since the FORTRAN Object-Time System (OTS) will ensure that his source statements generate the appropriate computer instructions. For example, an arithmetic statement such as A=A*B will appear the same in any FORTRAN IV program. In the object program it may be transformed to a subroutine call or a floating point instruction, depending on the hardware configuration on which the program is produced. FORTRAN data-transmission statements automatically call a number of OTS subroutines which serve as an interface between the user program and the Monitor. These t'outines may also be called from MACR0-15 assembly language programs. Further, programs written in FORTRAN IV can be linked to programs or routines written in the MACR0-15 assembly language. For more information concerning this higher-level prograrmning language, refer to Volume One and Volume Two of the FORTRAN IV Reference Manual (DEC-15-GFWA-D). 2.2.2 MACRO Assembler The MACRO Assembler provides users with highly sophisticated macro generating and calling facilities within the context of a symbolic assembler. Some of the prominent features of MACR0-15 include: The ability to: (a) define macros, (b) define macros within macros (nesting), (c) redefine macros (in or out of macro definitions), (d) (e) call macros within macro definitions, have macros call themselves (recursion) ( f) combine up to three input files for one assembly. 2-2 2. Conditional assembly based on the computational results of symbols or expressions. 3. Repeat functions. 4. Boolean manipulation. 5. Optional octal, symbolic, and cross-reference listings. 6. Two forms of radix control (octal, decimal) and two text modes (ASCII and 6-bit trimmed ASCII). 7. Global symbols for easy linking of separately assembled programs. a. Choice of output format: relocatable, absolute binary (checksumriied), or full binary -- capable of being loaded via the hardware READIN switch. 9. Ability to utilize user-designed input/output macros. 10. A Table of Contents option containing the page numbers and text of all assembled .TITLE statements in the program. MACR0-15 permits the progranmer to use mnemonic symbols to represent instruction operation codes, locations, and numeric quantities. is essentially a comprehensive macro instruction generator. gr~ncrator It This permits easy handling of recursive instruction sequences, changing only the arguments. The assembler facilitates the development of instructions called "macros" which, when used as a source statement, can cause a specific sequence of instructions to be generated in the obiect program. Refer to the PDP-15 MACR0-15 Assembler Manual (DEC-15-AMZC-D) for a complete description of the language. The standard object code produced by MACR0-15 is in a relocatable format which is acceptable to the Disk Operating System's Linking Loader utility program. Relocatable programs that are assembled separately and use identical global symbols 1 where applicable, can be combined by the Linking Loader into an executable program. An output listing, showing both the progranuner's source coding and the binary object program produced by MACR0-15, is printed if desired. 1 Symbols which are referenced in one program and defined in another. 2•3 This listing includes all the symbols used by the programmer with their assigned values. If assembly errors are detected, erroneous lines are marked with specific letter error codes. 2.2.3 FOCAL Interpreter FOCAL <rormulating Q_n-line £.alculations in ~lgebraic ~anguage) operates in on-line conversational mode, using natural language and arithmetic terms to establish a simplified environment for the computer aided solution of business and scientific arithmetic problems. Included in FOCAL are such features as: 1. Linkage to assembly language (MACRO) routines to establish a user library of commonly used functions. 2. Use of COMMON to facilitate chaining in the same manner as FORTRAN IV. With FOCAL, the user can generate mathematical models, plot curves, solve sets of simultaneous equations in n-dimensional arrays, and do much more. Refer to the PDP-15 FOCAL-15 Manual (DEC-15-DJZB-D) for a complete description of this program. FOCAL library conunands allow the user to save and then call programs by name. These conunands result in files consistent with the DOS file format. Such files can be manipulated by other DOS programs, such as PIP and EDITOR. FOCAL has commands which allow the segmentation (chaining) of FOCAL programs. The· ability to write FOCAL functions in MACRO assembly language and subsequently interface these functions with the FOCAL interpreter is an important feature. These functions are processed in the same way as the normal internal functionswhich DEC supplies with the interpreter. 2.3 SYSTEM GENERATOR (SGEN) The System Generator (SGEN) is a standard DOS Utility program used to modify disk resident system files. SGEN, provided as· part of the general-purpose package, enables the user to tailor his system and add to the supplied software in order to develop a resident software system unique to the installation or to his specific needs. 2-4 The user (System Manager) calls the system generator program via the Monitor command "SGEN". When SGEN is loaded, it initiates an interactive question/answer sequence regarding the following system functions and parameters: 1. Existence of an extra memory page, 2. Options, 3. Type of printer unit used, 4. Required device handler designations (i.e., the standard I/O configuration the user wants for the system programs), 5. Skip-Chain information - Priority Interrupt Skip Chain contents and order, 6. Default assumptions, including: type of teleprinter used, use of additional 4K of core, etc., 7. System device designation, 8. .DAT slot assignments, 9. Monitor Identification Code to designate the privileged access by the System Manager, 10. Default buffers that are needed at any time during a user program, 11. Default Files Protection Code. Careful planning -is necessary to ensure that the most efficient system will be developed for the user's particular needs. For more information, refer to the DOS-SGEN Utility Program Manual, (DEC-15-YWZB-DN12). 2.4 PATCH UTILITY PROGRAM PATCH is used to: (1) make corrections to the binary version of system programs on the system device, (2) examine and change any word in any DECdisk or Disk Pack block, or (3) convert relocatable binary programs into system programs. Further, it has the capability of patching all system software. Facilities - provide for: 1. The selection, examination and alteration of registers within DOS System programs, and any data word block on mass storage, including the system information blocks, SYSBLK and COMBLK7 2-s 2. The installation of suitable relocatable programs into a user system as a non-relocatable System program; 3. The loading of absolute programs into a user system as a System program. The PATCH user must first be logged in under the Monitor Identification Code (MIC) to have access to system files. Binary programs which are not in system program format (e.g., relocatable link-loadable programs, and XCT programs which are executable files built by the System program CHAIN) cannot readily be corrected by using PATCH. With PATCH the user can: 1. Select a System program to be patched. 2. Select a single block to be patched. 3. Obtain an octal printout of the contents of a particular location in a program. 4. Alter the content of the listed location by simply typing the desired content in octal. 5. Use the READ command to either replace or patch a system program via Paper Tape input. This enables the user to easily make corrected copy available for instant use without requiring reassembly, regeneration of a system or core patching. This is most useful for handling small updates or new versions of a program. 6. Select and open specific word locations within SYSBLK or COMBLK. 7. Select and examine registers within a system +O area. 8. Automatically convert relocatable binary files into system program format and load the converted file onto the system device, provided disk space has been reserved by SGEN. This feature permits user programs to be called directly from the Monitor. It also enables the program to completely overlay its loader, to make the most effective use of core storage. For more information concerning this System Utility program, refer to the PATCH Utility Program Manual (DEC-15-YWZB-DNS}. 2-6 2.5 CHAIN AND EXECUTE PROGRAMS The programs CHAIN and EXECUTE allow the user to segment programs in order to construct and run a system of core overlays in an easy and straightforward manner. CHAIN reserves portions of user core (called COMMON blocks) from one segment to another so that the program segments can communicate. The FORTRAN IV compiler and the MACR0-15 assembler can reserve COMMON blocks for future segmentation. This method of segmentation permits multiple overlays of executable code, constants, variables, arrays, and labeled COMMON blocks. Both system programs are required for segmentation: 1. CHAIN - processes a version of the Linking Loader Code (Object Program code) allowing the user to build all the various segments (or chains) of his program into an absolute (not relative) executable (XCT) type file. 2. EXECUTE - a control program which initiates loading of an executable file and transfers control from one segment chain to another. At load-time, Execute is faster than the Linking Loader. CIIJ\IN organizes subroutines into units called LINKS, which may overlay each other. Several LINKS may overlay a larger LINK without overlay- ing each other. A LINK is loaded into core when a subroutine within the LINK is called, and remains resident until overlayed. A LINK's core image is not recorded or "swapped out" when it is overlayed. The same image is brought into core each time a LINK is loaded. For maxi- mum run-time efficiency, segments must be processed serially. See the PDP-15 CHAIN and EXECUTE Manual for detailed instructions (DEC-15-YWZB-DN2). Advantages/Disadvantages of CHAIN & EXECUTE 2.5.1 2.s.1.1 1. Advantages CHAIN a. can build an operable program whose core requirement "is larger than that of the run-time machine; b. Can be used to create elaborate overlay structures; c. Is more efficient than using the .OVRLA System Macro (see 5. 2. 2. 5) ; '}.-7 2. 2.5.1.2 2.6 d. Allows the user to request a detailed load map; e. Generates core image files which are smaller than relocatable binary files. EXECUTE a. Its loader is more core efficient than the Linking Loader since Linking Loader code is processed only once; b. Is smaller at load time than the Linking Loader; c. Gives faster execution times. Disadvantages 1. One additional step is required to process Object Code in preparation for run time. 2. DDT (Dynamic Debugging Technique) cannot be used with a segmented program. 3. At run-time, the execution of a segmented file requires a certain amount of processing overhead. LINKING LOADER The Linking Loader loads any FORTRAN IV or MACRO object program which exists in relocatable format. Its tasks include relocation of programs, loading of called external subroutines, retrieval and loading of implied subroutines, and building and relocation of the necessary symbol tables. See "Linking Loader" in the PDP-15 Utility Programs Manual (DEC-15-YWZB-DNS) for detailed instructions. The loader first loads all the named programs included in the keyboard command string. It then additionally loads and links all requested library subprograms. The requested library subprograms are loaded from the device handler directory (IOS), the external (user) ·library, if one exists, and the bank or page mode system library (BNK or PAG). In addition, the loader can type out a core map which specifies the name~d address of each program, subprogram, library routine, .GLOBL and common block loaded. 2-8 2.7 DYNAMIC DEBUGGING TECHNIQUE (DDT) PROGRAM DDT provides on-line debugging facilities that enable the user to load and operate his program in a real-time environment while maintaining strict control over each program section. DDT allows the operator to insert and delete breakpoints, examine and change registers, patch programs, and search for specific constants or word formats. A breakpoint halts operation when the program flow arrives at the designated location. The DDT breakpoint feature allows the insertion and simultaneous use of up to four breakpoints, any or all of which may be removed with a single keyboard command. The search facility allows the operate~ to specify a search through any part or all of an object program with a printout of the locations of all registers that are equal (or unequal) to a specified constant. This search feature also works for portions of words, as modified by a mask. With DDT, registers may be examined and modified in either instruction format or octal code, and addresses may be specified in symbolic relative, octal relative, or octal absolute. Patches may be inserted in either MACRO source language or octal. For more information, refer to the 0ynamic Debugging Technique, Utility Program {DEC-15-YWZB-DNl). 2.8· DUMP PROGRA.~ DUMP gives the user the ability to output, on any device specified, core locations that have been preserved on disk via the CTRL Q {tQ) disk blocks nnt-n ,.n:v ~ .....:Loo. Po"' .,..,.,..,. i.n.Cv.L111a.1.. .lu11 .Lerer t;O tne Keyboard Command Guide (DEC-15-NGKA-D}. 2.9 MAGNETIC TAPE DUMP {MTDUMP) UTILITY PROGRAM The MTDUMP program provides the userwho employs magnetic ta~e as a storage medium with the ability to view and manipulate any named portion (i.e., file) of a tape. Some of the features provided by MTDUMP are: a. Piles may be output (dumped) onto any system device in any of four possible formats. b. Conunents may be inserted into a DUMP file. 2-9 c. Files may be copied onto another tape. d. Magtape directories can be listed and cleared. For more information, refer to the MTDUMP, Utility Program (DEC-15-YWZB-DN4). 2.10 TEXT EDITOR PROGRAMS, EDIT, SDITVP AND EDITVT The Text Editor provides the ability to read alphanumeric text from paper tape, DECdisk and Disk Pack, DECtape, etc. The user can then examine and correct the text, writing it back on paper tape, Disk Pack~ DECdisk, and DECtape devices. Progranuners can also use the Text Editor to create new symbolic programs. The Editor operates on lines of symbolic text delimited by carriage return (CR) or ALT MODE characters. These lines can be read into a buffer, selectively examined, moved, deleted, or modified, and written out. New text may be substituted, inserted. or a99ended ·1·ne programs .isu.L'rVP an<1 EDITVT are similar to EDIT except that they permit text to be displayed on the VPlSA Graphic Display and VTlS (CRT). Refer to the EDIT Utility Program Manual (DEC-l5-YWZB-DN6). 2.ll PERIPHERAL INTERCHANGE PRO~'(PIP) PIP can transfer data files from any input device to any output device. It can be used to (1) refresh file directories, (2) list file directory contents, (3) delete, insert, segment, or combine files, (4) perform code conversions, (5) assign protection codes, ,(6} transfer files, or (7) copy the entire contents of disk and DECtape storage units. It may also be used to update and allocate restricted disk storage surfaces. Refer to the PIP (DOS Monitor) Utility Manual (DEC-15-YWZB-DN13). 2-10 2.12 DECTAPE COPY (DTCOPY) This program permits high speed copying of DECtape to DECtape units. The advantage of DECtape Copy over the PIP copy function is that DECtape Copy is faster. For more information concerning this utility program, refer to the Keyboard Command Guide (DEC-15-NGKA-D). 2.13 LIBRARY UPDATE PROGRA~ This system program gives the user the capability to examine, extract, and update the binary library files on mass storage devices. For more information, refer to the UPDATE Utility Program Manual (OEC-15-YWZB-DN7). 2.14 SOURCE CO~PARE PROGRA~ (SRCCOM} The SRCCOM program compares any two symbolic source programs (ASCII} and indicates their differences. This program is useful for program identification and/or verification, proofing an edited program, comparison of old and new versions of the same program, etc. For more information, refer to the SRCCOM Utility Program Manual (DEC-15-YWZB-DNll}. 2.15 GRAPHIC-15 Within this stand-alone system, VT-15 Graphics Software programs are used to compile display commands, define display elements, and direct linking, displaying and deleting of the elements necessary for a DOS resident graphics run-time system. Subprograms provided include: sub- picture routines, main display file routines, input routines, relocating routines, and system I/O device handlers resident in the DOS I/O Service (IOS} directory. For more information refer to the GRAPHIC15 Programming Manual (DEC-15-ZFSA-D). 2.16 PDP-8 TO PDP-15 TRANSLATOR (8TRAN) This program is used as an aid in translating programs written in the assembly languages of the Digital PDP-8 computer (PAL III, MACR0-8} into MACR0-15 form. pr~ram, The translator does not produce an executable but translates a major portion of the PDP-8 code into equi- valent MACR0-15 code and indicates those areas of the 8 program which must be reviewed and processed by the programmer. tion see the PDP-15 8-TRAN Manual (DEC-15-ENZA-D). 2-11 For more informa- 2.17 PDP-8 TO PDP-9 TRANSLATOR (89TRAN) The PDP-8/PDP-9 Translator· is used to translate programs written for PDP-8 in PAL I I I or MACR0-8 assembly language to MACR0-9 assembly language. This tra_nslator is available as a DOS system program for a user installation consisting of several DEC computers including a PDP-8, a PDP-9, and a PDP-15. For detailed information concerning this program, refer to the STRAN Manual, DEC-09-ENZA-D. 2.18 VP15A GRAPHICS SOFTWARE The VPlSA Graphics Software package consists of a group of routines which can be used with either FORTRAN IV or MACR0-15 programs to operate the VP15A Storage Tube Display. Included in the package are an I/O device handler, text, point-plotting, and other routines, all described in the VP15A Graphics Software Manual (DEC-15-UXSA-D). 2-12 CHAPTER 3 SYSTEM CONCEPTS 3.1 DOS-15 MONITORING FUNCTIONS There are three sections to the DOS-15 Monitor: Monitor, (1) the Resident (2) the Nonresident Monitor, and (3) the System Loader. The Resident Monitor remains in core when system or user programs are running, and acts as the interface between the program and the system's facilities. During program operation, the Resident Monitor has general control over the system. 1. It functions to: Maintain orderly program flow, 2. Handle teleprinter I/O, 3. Act on Monitor calls, 4. Validate and transmit I/O calls to device handlers, 5. Announce error diagnostics. The operator may alter the structure of the Resident Monitor via commands to the Nonresident Monitor. The Nonresident Monitor allows the operator to interrogate and alter many key parts of the system, in order to set up the system for the next program. 1. It functions to: Set I/O conditions by assigning physical devices to logical unit numbers, 2. Supply system information, 3. Save or restore core images, 4. Load and Execute system and user programs, 5. Change default system parameters. Normally, at the end of a particular program, the operator, the Batching Command String, or the program itself returns control to the Nonresident Monitor. At that point, the operator or the Batching Command String sets up the system for the next program and calls it in via commands to the Nonresident Monitor. The System Loader (.SYSLD) builds the Resident Monitor according to prior commands to the Nonresident Monitor. It loads (a) all core- image system programs and all handlers for those system programs, 3-1 (b) the Linking Loader or (cl EXECUTE. In almost all cases, a change of program involves actions by the System Loader. The System Loader, however, is completely invisible to the user except for LOAD errors, such as insufficient core. The DOS-15 Software System provides an interface between the system or user-created program and the external world of I/O devices. simplifies I/O programming. This interface is comprised of a function- ally related group of software called the f.nput/~utput tem. or simolv IOPS. This E_rogramming ~s This is a conceptual term which encompasses (1) the I/O device handling routines within DOS-15, (2) a portion of the Monitor which is used in dispatching I/O commands to them, and (3) a Monitor routine for printing error messages. I/O device handlers are provided for all standard devices (see Chapter 9). These handlers relieve the user of the burden of I/O service, file! management, overlapping I/O considerations and unwanted device dependence. I/O commands and data modes are standardized and are recognized by DOS-15 device handlers. This facilitates device independence. For example; a non-file structured device handler such as the paper tape reader will ignore (rather than declare an error) a command to "seek a file" (which is required for file structured devices prior to issuing commands to read). There are other features of the system which contribute to device independence; they are discussed in later paragraphs. 3.1.1 System Communication Table {SCOM) The System Communication Table (SCOM) is a set of registers that are referenced by the Monitor, I/O device handlers, and other system programs. It acts as a common parameter area for information required by both the System Loader and Monitor. User programs may also utilize the information in this table as desired. Table begins at absolute location 100 8 The System Communication {Bank~). The following list briefly outlines some of the SCOM table functions: Free Core Limits Option Availability System and user Program Start Addresses Handlers 3-2 Interrupt Levels Magtape Status Register Number of Buffers Allocated Number of Words/Buffer Number of Entries in Mass Storage Busy Table User Identification Code Software Control switches Date (MMDDYY) Time (HHMMSS) and other Clock Information Default Protection Code for Files A complete list of the SCOM table functions is given in the DOS System Manual (DEC-15-NRDA-D). 3.1.2 Monitor/User Interaction The console teleprinter is the primary user-system interface for DOS-15 program control. This control is implemented by commands to the Monitor, which accepts the three types described below: 1. Commands which perform special services 2. Commands which load systEI!\ programs 3. Control character commands which provide system control while running user or system programs. NOTE In the context of this manual, the term "console keyboard" designates any one of several keyboard/ printer/display I/O devices which could be used by the Monitor as the system command console device (generally, a Model 33 or 35 teleprinter). The operator at the keyboard types commands to allocate system resources, load and start System and user programs, terminate program operation, and exchange information with the Monitor. Most of the Monitor's keyboard commands are issued prior to loading programs and are interpreted by the Nonresident Monitor, since it is not resident in core during system or user pr09ram execution. Durinq program execution, a small set of keyboard commands is available for general program control. These commands arc interpreted by the teleprinter's I/O device handler (which is part of the resident portion of the Monitor), and are used to control program start and restart, dumping of core, and the reloading of the Nonresident Monitor. Details on the DOS-15 commands which can be issued from the console keyboard are described in Chapter 8. 3-3 The keyboard col'!llllands are, however, not strictly limited to input from tb,1,'!.k.eyho_pr-4~-'!!hesMon-i.tc.E-~-op-e-:1:.~.:ct-e-d··in ·a.- ~uUU1rano Bal:Cnl.ng Mpde Ln which keyboard col'!llllands can be issued either from punched cards or paper tape with minimum operator intervention. Similarly, the Monitor's responses to col'!llllands are not strictly limited to a keyboard device's printer or display, but may also be output to other devices including the VT15 Display or a line printer, when available. 3.2 I/O COMMUNICATION The Monitor, by means of Device Handlers and Priority Interrupt (PI) or optional Automatic Interrupt (API), permits simultaneous operation of I/O devices along with overlapping computations. A system or user program initiates an I/O function by means of a Monitor cpl'!lllland (system macro), which is interpreted within the Monitor as a legitimate I/O call. The I/O call includes a logical I/O device number as one of its arguments. The Monitor establishes the logical/physical I/O device association by means of a special table. When this has been accomplished, the Monitor passes control to the. appropriate device handler to initiate the I/O function, after which control is returned to the system or user program._ The system or user program retains control until an interrupt (PI or API) occurs1 at this time the device handler takes control, in order to perform and/or complete the specified I/O function. The program may continue computation or other processing while waiting for I/O completion. This feature allows the programmer to make optimum use of available time. 3.2.l Device Independence In the DOS Monitor environment, the system manager may set ~p default device associations (correspondence between logical/physical devices) during system generation. Just prior to loading a system or user program, a user may change these associations via the ASSIGN keyboard command. This capability adds true device independence to DOS-15. All device handlers are nonresident in the sense that only those handlers required by a program are loaded into core. 3-4 3.2.2 I/O Device Handlers Users are spared the task of writing system software to handle input/ output to all standard system peripherals, since appropriate routines (Device Handlers) are supplied with the DOS Monitor. These routines process file and data level commands to the peripheral device. They generally perform the following functions: 1. Drive I/O devices, 2. Block Data Records for Devices, if necessary 3. Manipulate files, 4. Optimize device timing, 5. Allocate/Deallocate Storage Space on the device, 6. Request/Return core space. All communication between user programs and I/O device handlers is made via I/O Macros. Macros are covered in Chapters 5 and 6. There may be available in the system several handler versions for a particular device (e.g., DKA, DKB, DKC). Each represents different compromises between core use and handler flexibility. Device handlers are covered in depth in Chapter 9. 3.2.3 Device Assignment Table (.DAT) The DOS Monitor contains a Device Assigmnent Table (.DAT), with an entry for each device used. Since the contents of the table can be al- tered by commands to the Monitor, actual I/O devices may be changed without altering the program references (logical device units) to these devices. 3.3 Refer to Chapter 4 for more information concerning .DAT. FILE STRUCTURES A file structure, as defined for obS-15, is a method of recordinq, linking and cataloging data files. Each peripheral device has.an associ- ated file structure which governs the manner in which data arc stored. Card files and paper tape files are always organized as sequential files and both files and records are processed sequentially. A file or record in the middle of the medium can only be accessed after all preceding items have been processed. This is a restric- tion which is a consequence of the nature of the storage medium. In contrast, DOS-15 provides direct access to files stored on 3-5 DECtape or disk. The system maintains directories on these devices that point to each file on the device. Hence, such devices are called "directoried" or "file-oriented". Both DECtape and l'.iagnetic tape {Magtape) permit the user to operate either in a directoried or a non-directoried (sequential) mode. The system maintains a minidirectory for each file which points to each physical block in the file. The user of the PDP-15 Disk Operating System is not required to preallocate file storage; the operating system provides the file storage space dynamically on demand. Not only is this convenient for the user because he does not have to worry about allocation when he is creating files, but it conserves storage by preventing large portions of storage from being unnecessarily tied up. More information on this topic can be found in Chapter 4. 3.3.1 User File Directories and UIC's On DECtape, there is only one directory for the whole tape. On disk, there is a central directory, called the ~aster ~ile ~irectory (MFD), but each user can have his own !!_ser ~ile ~irectory (UFO). The MFD points to each UFO. Each UFO is named by a unique three character User Identification Code (UIC). The User File Directory Table (.UFDT) is part of the Resident Monitor associated with the Device Assignment Table. It indicates the User Identification Code (UIC) associated with every .DAT slot (i.e., each logical device). Disk I/Oto a particular .DAT slot will go to files in the UFO named by the corresponding .UFDT slot. The Monitor finds User File Directories by seeking associated User Identification Codes (UIC's), which are all listed in the Master File Directory. The UIC is necessary for all directory-oriented I/O to the disk. A programmer may identify himself (LOGIN) to the system with only one UIC at a time, but he may have as many UIC's as he wishes, provided each is unique and none is reserved 1 • Further, programs may simultaneously reference files under several different UIC's. 3.3.2 Monitor Identification Code (MIC) A three-character Monitor Identification Code (MIC) is established at system generation time to provide privileged access by the System Manager. When the System Manager uses the ~IC, all system and user files are open for reference or change. This code acts as a key to temporarily remove file protection. System generation, modification of system 1 'rhe LOGIN keyboard command is described in Chapter 8. 3-6 programs and listings of the entire disk directory are allowed only under the Monitor Identification Code. 3.4 FILE PROTECTION OOS-15 offers a simplified form of file protection. Each User File Directory has a protection code (optionally specified in commands to PIP), and each file has a protection code (optionally specified in the .ENTER command or a command to PIP). The protection codes are in effect only when a user tries to reference a file listed under a UIC other than the one currently logged in to the system. If a User File Directory is protected, then the protection is provided for any file in the directory. For more information, refer to Chapter 6. The default protection code for the files is established at system generation time. Users may temporarily change the file default protection code via the PROTECT command to the Monitor. (See Chapter 8.) 3.5 1/0 BUFFERS Two Monitor conunands allow any handler or user program to call the Monitor to allocate and deallocate buffers. Each buffer is obtained from a "buffer pool" as needed. For more information, refer to Chapter 6. 3.6 CHOICE OF EXECUTABLE FORM The object code usually produced by FORTRAN IV and MACR0-15 is relocatable binary which is made absolute by CHAIN, or loaded at run time by the Linking Loader. In addition to relocatable output, the MACR0-15 user may specify non-relocatable types of output code. 3.6.1 Relocatable Binary A relocatahle object program may be loaded into any part of memory, regardless of which locations are assigned at assembly or compile time. To accomplish this, the address portion of some instructions must have a relocation constant added to it. This relocation constant is added during segmentation, by CHAIN, or at load time by the Linking Loader. It is equal to the difference between the actual memory location that an instruction is loaded into and the location that was assigned to it at assembly time. The language processors use codes to identify storage words as relocatable, absolute, or external. 3-7 Relocatable Binary object programs may be placed into and executed from any part of memory, regardless of the core locations assigned to the instructions by the language translator. The primary advantage of such a system is that it enables the user to easily write and load into core memory many programs (e.g., the main program and several subroutines) with no necessity for prior core mapping. Relocatable Binary is always produced by FORTRAN and is produced MACR0-15 when there are no .ABS or .FULL pseudo-ops. 3.6.2 Absolute Binary Forms Absolute Binary object code is produced using the MACRO Assembler's .ABS, .ABSP, .FULL, or .FULLP pseudo-ops as described below. Programs assembled with these pseudo-ops are loaded and executed independently of the DOS-15 System software. Re~er to the MACRO Assembler Manual (DEC-15-AMZC-D) for more information. 3.6.2.1 .ABS and .ABSP Binary - The .ABS and .ABSP binary forms are checksummed binary coded programs or instructions assembled as .ABS (Absolute Binary) and assigned to occupy specific or absolute locations in core memory. These programs can only be loaded into or executed from the locations assigned by the language translator. The task of placing multiple routines into core for execution becomes a tedious one. Absolute binary does have the advantage of a smaller loader, thus enabling the user to execute a larger program than is possible using relocatable binary. Ordinarily, the Assembler will precede the output with an Absolute Binary Loader which will load the punched output at object time. The loader is itself loaded via Hardware Read-in Mode. 3.6.2.2 .FULL and .FULLP Binary - The .FULL and .FULLP binary forms are unchecksummed binary consisting solely of 18-bit storage words. Programs assembled in this form are output on paper tape and are loaded via Hardware Read-in Mode. 3.7 LOADER CONTROL As indicated in the previous section, CHAIN and the Linking Loader make relocatable object programs absolutely addressed. In addition, they join relocatable programs by supplying definitions for global symbols which are referenced in one program and defined in another. 3-8 3.7.1 Globals The global feature is another of the programmer conveniences provided by the MACR0-15 Assembler. It allows the user to provide a symbolic linkage between separately assembled programs including: a main program, subprograms, and general subroutines in system (Bank or Page) Libraries or user Libraries. In MACRO, the pseudo-op .GLOBL, followed by a list of symbols, is used to define to the Assembler two types of global symbols: 1. Internal Globals - defined in the current program and referenced by other programs. 2. External Symbols - referenced in the current program and defined in another _program. Each external symbol will be used by the Linking Loader or CHAIN to store the actual address. All references to external symbols should be indirect references, as memory banks may have to be crossed. The FORTRAN equivalents to external and internal .GLOBL's are CALL and SUBROUTINE. The Linking Loader and CHAIN use this information to relocate and then link the programs to each other. 3.7.2 Program Loading At program load time, the user, via appropriate keyboard commands, can select either Page or Bank Mode program loading and execution. Two versions of the Linking Loader and System Library are provided - one for each mode. 3.7.2.1 Page Mode Operation - The DOS Monitor Page Mode System loads and relocates user programs in 4K pages and permits address modification via the index register (Index Addressing). In Page Mode, the loader obtains library routines from the library in the PAG System file directory. The Page ~ode System is supplied as standard software with PDP-15 systems. 3.7.2.2 Bank Mode Operation - The optional Bank ~ode system permits direct accesing within SK banks, but does not permit the use of the index register for address modification. This system is useful to 3-9 the PDP-15 user who prefers direct addressing up to BK, or who wisnes to take advantage of the extensive library of PDP-9 programs available from the Digital Equipment Computer User's Society (DECUS). All core-image system programs run in Bank Mode. In Bank ~ode, the loader obtains library routines from the library in the BNK System file directory. 3.8 ERROR DETECTION Comprehensive error checking and recovery are provided by the DOS-15 Monitor, the loaders, and the I/0 system as follows: a. DOS-15 Monitor Errors - error conditions related to system devices, illegal device assignment, program name, and command references. b. Linking and System Loader errors - memory overflow, input data errors, unresolved globals, and illegal .DAT Slot requests. c. IOPS Errors - all Input/Output device and data errors. Detailed lists of errors that occur in the latter two categories can be found in Appendices D and E~- .re~pectively. The Monitor Errors, when they occur, are easily understood and recovery will be self-evident. The automatic core-dump commands QDUMP or CTRL Q will condition the Monitor to dump memory on the "save" or "CTRL Q" area of one of the units of the system device, in the event of an unrecoverable error. Terminal errors are not reported to the user's operating programs: there are, however, a few I/0-detected errors that are reported to the user for program use, e.g., parity, checksum, and buffer overflow errors are indicated in special control words of each IOPS data record (see Chapter 6). Error detection and recovery are discussed in Chapter 10. After error messages are output, the user may optionally restart the program (CTRL P), dump core (CTRL Q), or return control to the Nonresident Monitor (CTRL C). Other options are available to the user when errors occur: these will be discussed in succeeding chapters of this manual. 3-10 CHAPTER 4 FILE STRUCTURES 4.1 INTRODUCTION This chapter will define those concepts and facilities of the DOS-15 system that are available for storage and retrieval of data from PDP-15 mass-storage hardware/software systems, including DECdisk (RF), Disk Pack (RP), Magtape (MT), and DECtape (OT). A large part of any progranuning task is accepting input and producing output. Therefore, it is necessary to understand the Input/Output process to take full advantage of the Disk Operating System's features. 4.2 DEVICE ASSIGNMENTS As stated in the previous chapter, device assignment is managed through the Monitor's Device Assignment Table (.DAT). The .DAT associates logical device units with physical ones through "slot" numbers, which correspond to the logical device numbers. Device assignment slots are assignable via the Monitor ASSIGN command at run time. Refer to Section 8.5 of Chapter 8 for more information. Default assignments are defined duri~g system generation (see ~ I Utility Program Manual (DEC-YWZB-DNl~). Information in each program indicates which "slots" are required'. for that program. These slots are called the "active slots". The loaders use the information about active slots to bring in handlers for the devices named by the active slots. At run time, then, each slot contains the physical device unit number (if any), and a pointer to the appropriate device handler, which was brought in by the loader. Without device assignment on a .DAT slot, a program's call to that slot will result in an I/O error -- the slot will not point to a handler. Depending on the system generation, as many as seventy-three entries may be in the .DAT for program device assignment. Each 1/0 command under DOS-1$ references a .DAT slot. These commands pass control to the appropriate device handlers via a Monitor routine that uses the pointers in the .DAT. These device handlers are responsible for transferring data between the program and I/O devices, 4-1 They also initiate the physical reading or writing of files and perform opening and closing of files and other functions peculiar to a given hardware device. Each slot then links the device-driving functions within a specified device handler to the program. The handlers all test for functions which they cannot service; for example, trying to rewind a card reader. Some functions are ignoredl others are illegal and cause error messages to be output to the console teleprinter. All de- vice handlers operate either with or without the Automatic Priority Interrupt (API) option. 4.3 FILES A file is a collection of related records treated as a unit. In Inventory Control, for example, one line of an invoice forms an item, a complete invoice forms a record, and the complete set of such records forms a file. The word "file" is used in the general sense to mean anv _cgll_~ctig_n_gf j nf_gnna_t-_i_pp __;terns c:jmj Jar to purpose, form and content. 0 PO anctb 0 ,... ; a "File" may also be generally applied to external storage media such as papertape, punched cards, a Magtape, a DECtape, DECdisk platters, and a Disk Pack. 4.3.1 Records In DOS-15, a record is a set of one or more related data words accessible to the user as one item through .READ and .WRITE MACRO program statements or FORTRAN language statements. and .WRITE). (Chapter 6 describes .READ The smallest addressable logical item within the file is this logical record. 4. 3. 2 Words A word is the least addressable physical data unit and is the information vehicle for Buffer Header and Data Modes. I/O Buffers are internal to, and must be defined by, each program. With the exception of certain block transfers, a buffer contains a single record. Under most of the Data ~odes (described below), the first two words in an I/O buffer (i.e., a record) provide system information and cannot be used for data. This Header Word Pair with- in an I/O buffer is detailed in Chapter 6. On blocked devices (Disk and DECtape), these header word pairs govern the physical structure within the file. Header Word Pair. Before output, the user must set up the On input, the Header Word Pair arrives with Data Mode Information and certain error indicators. 4-2 The user is responsible for checking the various header parameters to determine if the data was read without error. 4.3.3 Data Modes The Monitor allows data transmission to or from a system or user program in several different modes which structure internal data storage. Two modes, IOPS ASCII and IOPS Binary, offer the advantages of device independence. All handlers accept IOPS ASCII data, and most accept IOPS Binary. Three other data modes, Dump, Image Alphanumeric and Image Binary, allow the user to take advantage of device dependent characteristics. For more information, refer to Chapter 6. ·4,4 FILE STRUCTURES As stated in Chapter 3, a file structure is a method of recording, linking, and cataloging data files. File structuring, in general, is applicable to all I/O device, including cards, paper tape, printers, keyboards, etc. In DOS-15, however, file structures are associated with Mass Storage devices only. A file structure dictates the file and record access methods. This organizational structuring is important because a file can be effective for a user application only if it is designated to meet specific requirements. A user must consider the following factors: SIZE Growth of the file may require a change in file structure or data mode, ACTIVITY The need to access many different records within a file (percentage of activity) or to frequently access the same records (an active file) will influence information retrieval efficiency. This requires the user to select the right method for each job task. VOLATILITY The number of additions and deletions to a file will affect the efficiency of the structures used. 4-3 4.4.1 File and Data Access Techniques The usual technique for applications using Magtape is sequential access to the data file and sequential access of the data records. This access is also characteristic of most uni-directional media, such as cards, paper tape, keyboards, printers, and displays. Another technique, which in DOS-15 is apflicable only to the disks, ca.u-.\- ~'"·"'"~ ~ r : involves·random-access (an alternate term is "direct-access") to a file and random-access of data records within the file. A third and intermediate technique, which is normally used on DECtape and on disk, employs .random-access to a file and sequential access to the file's data records. The formal term is "random-sequential file structure"; the informal term is "DECtape file structure". 4.4.2 Sequential Access Sequential access is a storage retrieval technique in which a file and the records within it must be retrieved in the sequence in which they physically occur. Sequential access, when applied to the process of locating the beginning of a file or a data record within the file, means that the time required for such access is dependent on the necessity for waiting while non-desired files or records are processed in turn. 4.4.3 1. Records can only be retrieved sequentially, beginning with the first record and accessing each subsequent record in turn. 2. Direct retrieval is not possible, since no directory exists to the physical locations of the records. 3. Additions and deletions are only accomplished by copying the entire file. Direct Access Direct access to a file or to a data record within the file means that the time required for such access is independent of the location of the file or record relative to other files or records. Direct access should be considered as a valuable access method when retrieving selected records from random files: but it is not suited 4-4 for sequential retrieval of records. The direct access technique makes it possible to process only the affected record during a file update. This reduces data sorting. The main advantage of direct access processing is that it requires fewer processing steps. Along with its advantages, however, a direct access application requires special considerations by the system pro~ ..,,-~,.,..--.. ~:<Jti\o.~--..,.rr .. u.Li:.t:<<.:-C:'°acc·es·s-systi'!m nfT"T"~t"s :1:rom backup on a tape system because the old record on a direct access device is destroyed when the updated record is written over it. 4.5 ~GNETIC TAPE FILE STRUCTURE The DOS software provides for industry-compatible magnetic tape (Magtape) as either a directoried or a non-directoried medium. The magnetic tape handlers communicate with a single Tape Control Unit (TCU) with up to eight magnetic tape transports. When used as a non-directoried medium, there are a number of major differences between Magtape and other mass storage devices such as DECtape or Disk. Magtape is well suited for handling data records of variable length; such records, however, must be treated in serial fashion. The physical position of any record may be defined only in relation to the preceding record. When used as a directoried medium, Magtape assumes the external operating characteristics of DECtape (described in 4.6). Sequential tape files are written one after the other, starting at the physical beginning of the tape. These files are separated from one another by End-of-File marks (hardware-detected) or by an End-of-Record line (software-detected). (Refer to Figure 4-1, Sequential Data Access.) To read the Nth file on a tape, the user must first rewind to the begin·ning of the tape and then skip serially through N-1 files to the desired file. Sequential tape files need not have a filename, only a known position relative to the files on the tape. Data records within a file are recorded in sequence. Sequential statements direct records to and ·from memory in the sequence in which they are physically on the device. To access the Mth record within the Nth file,the user first locates the beginning of the file (skipping N-1 files) and then skips through M-1 records. 4-5 DESIRED f - - s c A N - - - - - - - - - DATA RECORD I }DI~ ~ ~l~J~ ~ ~ l '--y------1 ,, y ~ Fr-E / BEGINNING OF PHYSICAL MEDIUM ~ r11JQ / J FILE END OF FILE Figure 4-1 Sequential Data Access This sequential access method does not need a tape-resident directory to point to files. It is, therefore, called "non-directoried" in DOS. The non-directoried access method is generally applicable to unit- A ... r 0 r.Tt,.,""• '"'" - - -.- Tr.c- --, - A-,...- r n•T ..-. r I I Ir ,... .... ..., •• ,..,.,.T,.,_ :"') I n: I II I I I K,.. '_ If magnetic tape transports could identify absolute positions on a tape, there would be no need to do sequential file access. The trans- port could search to a known location, and start processing. Then, an extra body of information (a directory) on the tape could point to each file. DECtape has this capability. In directoried mode, files are given unique names. The name and posi- tion of the beginning of a file are recorded in a directory. tories are at fixed location (Block 1~~ 8 ) on the tape. Direc- DECtape direc- tories point to the first block of each file and each block points to the next. DECtape directories also maintain bit maps which indicate which tape blocks each file occupies and a map to show all occupied blocks on the tape. The file directory is fixed in size; consequently, the number of files that may be recorded is limited by the amount of storage available on the device (1100 8 blocks) and/or by the number of file name slots in the directory (56 maximum). 4-6 USER FILE DIRECTORY FILE#1 NAME LOCATION USER PROGRAM POINTER FILE#2 NAME .~ LOCATION • • • FILE#n NAME LOCATION r- SCAN DESIRED DATA RECORD ----------- I 10 I~ ffa ~ ~ ~I I~ ~ ~ ~I I~ ~ ~ ~ ~ ~I~ l FILE#1 FILE#2 FILE#3 BEGINNING OF PHYSICAL MEDIUM 15-0117 Figure 4-2, UFO Directoried Data Access MFD USER 1 UFD USER 2 USER 3 - • • • F~E UFD • • FILE NAME LOCATION RIB • • • • r i--' tr JODOO[]] RIB BLOCK I J BLOCK 2 BLOCK 3 ,._ BLOCK 4 BLOCK ~ Figure 4-3, Disk Data Access 4-7 File structures which employ a directory allow simpler and, in the long run, faster access to a file (the beginning of a file). See Figure 4-2. This is a distinct advantage over those devices which do not use a directory and must therefore rely on a file's position relative to other files in order to locate it. Programmers need not use the directory capabilities of DECtape. They can treat DECtape as magnetic tape by issuing magnetic tape I/O commands. -Then no directory or identifying information of any kind is recorded or referenced on the tape and operation is similar to that of magnetic tape (described in 4.5). The DECtape handlers with their respective I/O functions allow the use of either of thse modes. 4.7 DISK FILE STRUCTURE The DOS-15 disk file structure is in some ways analogous to DECtape file structure. Ordinarily, each disk user has a directory which The DECtape, however, has only one directory, but the disk has as many directories as users have cared to establish. Whereas DECtape direc- tories may reference only a maximum of 56 10 files, the number of files associated with any one directory on the disk is limited only by the available disk space. A single disk file's size is also limited by the available space, as is true with DECtape. The DECtape directory is in a known location ••. at block 19~. Since the disk may have a variable.number of directories, the Monitor must know how to find each user's directory, It, therefore, maintains a Master File Directory (MFD) at a known location, and the Master File Directory points to each User File Directory (UFO). DOS-15 allows only those users who know a special code, called the Monitor Identification Code (MIC), to have access to the MFD. Figure 4-3, Disk Pata Access, illustrates the organization of the disk. 4.7.1 user Identification Codes (UIC) The Monitor finds User File Directories by seeking associated User Identification Codes (UIC's) which are all listed in the Master File Directory. The UIC is a three-character code that is necessary for 4-8 all directory-oriented I/O ~to the disk. a new User File Directory by: A programmer may establish 'U \-".......... 1. 2. 3. Logging in his new UIC to the Monitor, Calling PIP, Issuing an "N...,.DK)" conunand. This establishes a new User File Directory, or refreshes (wipes clean) an old directory under that UIC. The "enter file" I/O conunand will also create a UFO, if none exists. 4.7.2 The User File Directory Table (.UFDT) The Monitor must have a way of knowing which User File Directory to reference when a program issues I/O canmands to the disk. It makes the association between disk I/O conmands and User File Directories by using a User File Directory Table (.UFDT). There are as many entries in the User File Directory Table as there are slots in the Device Assignment Table. Figure 4-4, Relationship Between the .DAT ~nd the .UFDT, shows how the two cJnpare. Disk I/O to a particular .DAT slot will affect files in the User File Directory named in the corresponding .UFDT slot. Progranmers may modify .UFDT slots before loading a program, and programs thEmselves may alter .UFDT. 4.7.3 File Protection DOS-15 offers a simple form of file protection. Each User File Directory has a protection code and each file has a protection code. The protection codes only protect a progranuner's files from other users - not from himself.· If a user File Directory is protected, then the protection codes for each file are in effect. If the user File Directory has been specified as unprotected, then no protection is provided for any file in the directory. There are three protection states possible for files in a protected User File Directory. File Protection Codes: 1 Unprotected, with the exception that the file may not be deleted and the number of blocks may not change, if the directory is protected. 2 Write protected, if directory protected. 3 Read/Write protected, if directory protected. 4-9 Comment .UFDT Contents .DAT/.UFDT Number .DAT Contents +N nondisk handler This UIC is irrelevant +2 disk handler +l disk handler I/O to this slot will go to files in UICl I/O to this slot will go to files in UIC 2 -15 none assigned This UIC is irrelevant The operator has logged in under u1p 1. He has assigned some nondisk handler to .DAT+N, the DECdisk to .pAT+2, and the Disk Pack unit ~ to .DAT+l, and NON (no handler) to .DA~ -15. In addition, he has changed the .UFDT assignment for .UFDT+l toiurc 2 • I/Oto .DAT+N will not reference the UIC, since UIC's are felevant only to disk I/O. I/O to .DAT+2 will reference urc 1 , while ryo to .DAT+l will reference u1c 2 • The UIC for .DAT -15 is irrelevant,! since no handler is assigned. Figure 4-4 Relationship Between the .DAT and the .UFDT 4-.10 User File Directories may have one of two protection states: File Directory Protection Codes ~ Unprotected l Protected The default protection code for User File Directories is always 1, protected. The default protection code for files is established at system generation time. 4.7.4 Organization of Specific Files on Disk The disk handlers write out files sequentially, just as the DECtape handlers do. '"\t t.O On the close of an output file, the disk handlers also t.A" 'C. 'ft.\f. __, 1"" fill out a Retrieval Information Block (RIB). The RIB performs the same functions as the file bitmap on DECtape, and associates the logical sequence of blocks in the file with the physical locations of the blocks on the disk. The disk handlers use the RIB to implement random access and to delete files. After a user has created a disk file, he can access records sequentially as with DECtape files. He can also read and write physical blocks of that file by referencing relative block numbers. The user is prohibited, however, from changing the total number of blocks in the file. 4.7.5 The Disk Handlers The disk handlers allow as many concurrently open input or output files as there are .DAT slots available to the user, and buffers available to the disk handler. The disk handlers operate under a dynamic buffer allocation scheme. Whenever the Monitor loads a sys- tem or user program, it allocates buffer space. the buffer pool. This space is called Whenever a program opens a disk file, the handler obtains a buffer from the buffer pool. The handlers return the buffer when the program closes the file. The buffers in the buffer pool are available to programs, as well as to disk handlers. Whenever a program is using a buffer, however, it is unavailable to any other program. 4-11 CHAPTER 5 DOS SYSTEM MACROS 5.1 INTRODUCTION This chapter contains detailed reference information concerning DOS-15 System Macros. I/O Macros (those which have a .DAT slot number as one argument) are discussed in Chapter 6. 5.2 MONITOR-PROCESSED COMMANDS The MACR0-15 assembler permits the use of higher-level system instructions called ".System Macros" which, when used as a source statement, can cause a specific sequence of Monitor operations to occur at runtime. 'fhese System Macros are referenced (called) in user programs by writing a statement consisting of a system Macro name followed, if needed, by a tab, space or spaces, plus a list of arguments separated by commas. Macro statements are terminated by either a space or spaces (~),a For eyample· tab ( :oil , or a car_riage return C_J ) .TIMER 5.2.1 Summary of DOS Monitor System Macros Table 5-1, Summary of System Macros, summarizes the non-I/O macros which the Monitor implements. The following paragraphs describe the individual system macros in detail. Table 5-1 Summary of System Macros Name Description .EXIT Requests the System Loader to bring in the Nonresident Monitor. overlays core with the contents of a named file • Requests a buffer from the buffer pool • Returns a buffer to the buffer pool • Requests the System Loader to load the named core-image program. creates a file containing the current core image • Initializes a time interval after which program control passes to a user specified subroutine. • GET • GTBUF • GVBUF .OVRLA • PUT .TIMER s-1 5.2.2 DOS-15 System Macro Expansions The following standards apply to the descriptions of the .system and I/O Macros presented in this chapter and in Chapter 6: A. B. Format Conventions 1. Upper case terminology must be used as stated in the FORMAT Description. 2. Lower case terminology indicates user-supplied information, as defined by ARGUMENTS. ' 3. Names for user-supplied parameters indicate maximum length of field by the number of characters in the name. Thus, "namptr" may be a maximum of six character long, and "num" may be a maximum of three characters. 4. Brackets ([ ]) indicate optional quantities. s. A bracket on its side (...,) indicates a space. 6. Quantities listed vertically and enclosed in braces ({ }) indicate the user must choose one from the group. 7. The expansions indicate how one might write an expanded macro directly to the assembler. (Any fields in the macro desiqnated as decimal radix must be octal radix when included in an expansion.) The expansions may appear different from expansions produced by the assembler. They are, however, functionally :equivalent. Sixbit File Representation Many of the System and I/O Macros halve a "namptr" argument which points to a 3-word block of core in the user's program containing the Sixbit representation of a file name and extension. This is simply an abbreviated form ~f ASCII in which the rightmost 6 bits of the ASCII code are used. This allows 3 characters to be packed in one word of storage. Sixbit packing can be accomplished either .by the user program or by the MACR0-15 Assembler's .SIXBT pseudo-op. (Refer to the MACR0-15 Assembler Manual (DEC-15-AMZB-D). The example following paragraph 6.8.5 demonstrates the use of .SIXBT. 5-2 s.2.2.1 Creates a file which contains the current core image. The file's name and extension will be that found in the locations pointed to by namptr. See also .GET • .MACR0-15 does not expand the .PUT Macro. The following FORMAT statement illustrates how the user might formulate his own macro. The Resident Monitor, however, does recognize the command illustrated in the EXPANSION section. FORMAT: .PUT...,f,namptr,u ARGUMENTS: f = (function) determines the startup loca- tion for a .GET with f~4, or a GET Keyboard command to the Nonresident Monitor. f =~ Subsequent load will start at the location following the EXPANSION. f = 1 Subsequent load will start at current CTRL P address f =2 Subsequent load will start at current CTRL T address f =3 Subsequent load will start at current CTRL S address namptr ~ Pointer to the address of a 3-word, .sIXBT representation of the name and extension of the file to be created (unused spaces must contain nulls). u = (unit) the unit number of the device associated with .DAT-14 on which the desired file is to be placed. EXPANSION: LOC+.fJ LOC+l LOC+2 CAL+f 26 u * 1.0.fJ.fJ.fJ~+namptr 5-3 5.2.2.2 .GET Overlays core with the contents of the file whose name is indicated by the Macro argument namptr. The file must have been created by a .PUT System Macro, or a PUT command to the Nonresident Monitor, and it must reside on the device associated with .DAT-14. .GET destroys the current contents of .SCOM, including DATE and TIME. See also the .PUT System Macro, and the PUT and GET commands to the Nonresident Monitor. MACR0-15 does not expand the .GET Macro. The following FORMAT statement illustrates how the user might formulate , his own macro. The Resident Monitor, however, does recognize the command as illustrated in the EXPANSION section. FORMAT: .GETL-.lf,namptr,u ARGUMENTS: £ (function) - determines startup location after overlay. f f f f f = .0 Start at location after expansion of System Macro that created the file. If file was created via a .PUT command to the Nonresident Monitor, load core from the file, and await a command from the console keyboard. = l Start at CTRL P Ref er to address the DOS-15 Reference = 2 Start at CTRL T Manual for address more informa3 Start at CTRL S tion. address 4 Start at the location specified by the .PUT. System Macro. If the file was created via a PUT call to the Nonresident Monitor, load core, and await command from the console keyboard. namptr = Pointer to the first word of a thrAeword .SIXBT representation of the file name and extension for the core image to be loaded. (Unused spaces must contain nulls.) u (unit) The unit number of the device associated with .DAT-14 on which the desired file is to be found. EXPANSION: LOc+.0 LOC+l LOC+2 CAL+f 25 u*l.0.0.0n+namptr s-i4 5.2.2.3 .GTBUF (Get Buffer) Requests a buffer from the buffer pool. If a buffer is available from the pool, the Monitor will return the address of the first word of the buffer in the AC. If no buffer is available, the Resident ~onitor will return 777777 in the AC. On return, execution begins at LOC+3. LOC+2 can be used as desired. This Macro gives user programs as well as handlers access to buffers. FORMAT: .GTBUF ARGUMENTS: none EXPANSION: LOC+/6 LOC+l LOC+2 5.2.2.4 CAL+/I 21 fl .GVBUF (Give Buffer) Allows a user to return to the buffer pool a buffer obtained via a .GTBUF System Macro. FORMAT: .GVBUF ARGUMENTS: None, at assembly time, but. AT RUN TIME, the program must load LOC+2 with the address of the buffer to be freed. If LOC+2 does not contain the address of an allocated buffer, the AC will contain 777777 on return. EXPANSION: LOC+J LOC+l LOC+2 CAL+J 22 fl (Load with first address of buffer) s-s 5.2.2.5 .OVRLA Requests the System Loader to bring and start the core image system program whose name is pointed to by the Macro argument namptr. If there is not enough room in core to load the program requested, the Resident Monitor will return control to LOC+3. WARNI£'!G All I/O should be completed before issuing an .OVRLA. FORMAT: • qy HI .A. •n!'!r!pt!' JLJilfiilV:!C??Y8 namptr • (name pointer) first address of the two-W6id .SIXB1 reptes-entation of the name of the program ~o oe orougnt in. EXPANSION: 5.2.2.6 LOC+JI LOC+l CAL+/I LOC+2 namptr 24 .:.!KIT. Requests the System Loader to bring in the Nonresident Monitor. Current contents of core are lost. All unclosed output files are destroyed, all input files are closed. FORMAT: .EXIT ARGUMENTS: none EXPANSION: LOC+JI LOC+l CAL+/I 15 5-6 5.2.2.7 .TIMER Allows programs to schedule routines to be called after specific time intervals. Refer to Chapter 2 of the DOS-15 System Manual (DEC-15-NRDA-D) for programming rules for these routines. FORMAT: .TIMER....,nnnnnn,addres ARGUMENTS: nnnnnn • (time interval) number (in decimal radix) of clock ticks from "now" after which the subroutine is to be called fl < nnnnnn~2 1 8 -1 add res address of the routine to be called after the specified number of ticks. EXPANSION: LOC+/I CAL+/I LOC+l LOC+2 LOC+3 14 -nnnnnn addres CHAPTER 6 PROGRAMMED I/O COMMANDS 6.1 INTRODUCTION This chapter describes the concepts, conunands and methods for incorporating input/output commands in MACR0-15 assembly language programs. FOCAL and FORTRAN users need noti:;rlrl iljsneral, be concerned with the contents of this chapter, since each of these languages has its own I/O capability. The DOS-15 IOPS is the interface between any program and the external world of I/O devices. I/O device handlers are provided for all standard devices and are described in Chapter 9. These handlers relieve the user of the burden of I/O considerations and unwanted device dependence. 6.2 GENERAL I/O COMMUNICATIONS Unuer DOS-15, all I/O transfers and subsidiary I/O operations are initiated by programmed I/O commands called I/O Macros, as shown in Table 6-1. These I/O Macros are macro instructions which have a .DAT slot as one argument. As with System Macros, they are permanently defined in the MACR0-15 Assembler. As can be seen from Table 6-1, there are four I/O Macros within the DOS-15 Software System which effect data transfer: .READ, .WRITE, .RTRAN and .TRAN. The first three permit operation using the standard DOS file structures described in Chapter 4 and provide the most device independent approach to I/O programming. The .TRAN Macro functions independently of DOS-15 file structures, 6-1 Table 6-1 SYNOPSIS OF DOS-15 I/O MACROS I Macro Function .CLEAR 1 Initializes a directory on a directoried mass storage device. All data on the device is lost and fresh bit maps and directories are written. .CLOSE 1 . Terminates use of a file. In the case of output files on the disk, fills out the Retrieval Information Block (RIB) for later .RTRAN cormnands. .DLETE 1 Deletes a file from a directory on a mass storage device. --- t---------- --- --- ----- ----------------- .ENTER ·----~-------- ------------1 Primes a directoried mass storage device to accept an output file. r------ --- .FSTAT Checks the directory on a mass storage device for the existence of a named file. .INIT 1 Initializes the device and device handler. .MTAPE Provides special conunands for industry compatible magnetic tape. .RAND Opens a disk file for rapdom processing via .RTRAN macros. .READ Transfers a logical record, or the requested number of words, whichever is smaller, from the device to the user's I/O buffer. I--------- -- .RENN-1 1 ---- Renames a file in a directory of a mass storage device. ---- --t- .RTRAN Allows input and output to access any bl.ock in a preexistent file on the disk (any word i f RF). t------ .SEEK Checks for a named file in a directory on a mass storage device. If the file is present, prepares it as an input file. .TRAN Gives independence from DOS-15 file structure by allowing input and output access to Magtape, or to any block on disk or DECtape located by its physical block number. A file can be opened for SEQ or random access and still be .TRANed via the same .DAT slot without destroying the file structure. .USER Allows programs to change the .UFDT. .WAIT Waits for I/O already started to complete, then continues. .WAITR Waits for 1/0 alread__y_ started to c omo le_te__._ ____th_e n cQ.ll.t.i.n_ue s . I f I/O not done, passes control to the specified address. .WRITE Transfers data from user's I/O buffer to the device. 1 1\t completion of these operations, the buffer is given back to the buffer pool, i f disk or DECtape "A" version handler I/O. 6-2 6.2.l .READ/.WRITE/.RTRAN Operations .READ and .WRITE Macros permit the user to sequentially input and output records of a file consisting of ASCII lines or binary data to any device in the standard set of PDP-15 I/O devices. The .RTRAN Macro provides the user with random access tophysicalblocks when using the DECdisk and Disk Pack devices. Initially, files are created sequentially (.WRITE) and can subsequently be accessed both sequentially (.READ) and randomly (.RTRAN). 6.2.2 .• TRAN Operations The last data transfer macro (.TRAN) functions only on mass storage devices. It provides I/O transfer capability at the device level without regard for established file structures. This type of transfer provides for user-designed file structuring. Much of the remainder of this chapter is devoted to I/O progranuning within the DOS-15 file structures and, specifically, to the methods and considerations involving the creation of sequential files. Little can be said here about the utilization of the .TRAN and .RTRAN Macros since the system places the burden of data structuring, interpretation, checking and packing on the programmer. 6.3 SEQUENTIAL F!LE PROCESSING I/O operations under DOS consist of the transfer of ASCII or binary logical records between buffer areas in the system or user program and I/O devices represented by the device handlers in IOPS. (A logical record is defined as theamountof ASCII or binary data which is transferred to or from a program as the result of the execution of a single .WRITE or .READ I/O Macro.) The size of each logical record depends upon the structure of the data (Data Mode) and the device or set of devices addressed. The format and data structure of each logical record output in IOPS and Image Data Modes is described beiow. For Dump Mode, however, no particular requirements are placed on the user by the system. Dump mode is provided to permit user-created data structures within the DOS-15 file structure. 6.3.1 Logical Record Format, IOPS and Image Modes Each logical record to be output in !OPS and Image Modes must be formatted as shown in Figure 6-1. The record, consisting of 2n 6-3 18-bit words contains a two word header (called header word pair) followed by 2n-2 words of ASCII or binary data. Word fa Word 1 Word 2 lst word of header 2nd word of header } 2n-2 words of data ) Word 2n Figure 6-1 header word pair ASCII or Binary Data IOPS and Image Mode Logical Records Format The header word pair is a communications link between the user's pro'Jram and the I/O device handlers in IOPS. It is divided into vuri0us f i<~lds which contain information about the data which resides in the record. The information in some fields is supplied by the program to assist the device handlers in writing records and subsequently retrieving them. Other fields contain information which is provided by the device handlers for use by the user or system program when records during input. ver}fy~ng Refer to paragraph 6.4.3 for explanation of Dump Mode record format. 6.3.l.l Header Word Pair Format header word pair. ~ Figure 6-2 shows the format of the Of particular significance is the Word Pair Count; it specifies the number of word pairs of data in each logical record. In addition, for all Data Modes except Dump Mode, it is the prime logical record terminating condition when using mass storage devices. This term should not be confused with the Word count, which is an argument used in I/O Macros. The Word Count gives the actual size of the I/O buffer which contains the logical records prior to output and after input operations 6.3.l.2 (see 6.7}. Using the Header Word Pair The program must calculate and then set the appropriate word pair count in bits 1-8 of header word zero, unless they have already been set by a device handler on input (i.e., an input device handler set up the header word pair for each record read). This count overrides the word count passed to IOPS by the .WRITE system Macro. 6-4 The I/O mode field, bits 14-17, is set by the device handler from the I/O mode argument specified in the .WRITE Macro. The checksum word need not concern the user since checksums are computed by !OPS (when using IOPS Data Modes). 0 9---11 I2 WORD PAIR COUNT, INCLUDING HEADER WORD PAIR UNUSED VALIDITY BITS' OO•DATA CORRECT 01 •PARITY ERROR I.__..___...... 1/0 MOOE __,.._~._-......__.....__ _.._ __. tO •CHECKSUM ERROR It• BUFFER OVERFLOW 110 MODE: 0000• IOPS BINARY ooot •IMAGE BINARY OOtO•!OPS ASCII 0011 •IMAGE ALPHANUMERIC HEADER WORD I t4..-----+t7 J CHE~~k~~O~~L-r-"'--"'---..._~......_-_.__......~__,..__..__..__......~.....- _ ._ BINARY INPUT t3 v COUNT HEADERS WORD 0 0100 •UNUSED 0101 •EOF I LOGICAL) OttO•EOM (PHYSICAL) 0 It I• TAPE LABEL _ _ .....- ..... _.__..... _..___.___..____..___.___.___..__....__...__ _...._~ _.__~ CHECKSUM: TWO'S COMPLEMENT OF HEADER WORD 0 PLUS DATA WORDS (O•CHECKSUM NOT COMPUTED) IS-0645 Figure 6-2. B. Format of Header Word Pair Before Input The user need not be concerned with the header word pair since it will be set up by the device handler during input to enable the user to determine the status of his record after input has terminated. 6-5 c. During Input The Word Count (specified in the .READ Macro) is used by the device handler to determine the maximum number of locations provided in the user's input buffer for the data being read. If the Word Count is ex- the handler sets the validity bits of header word S as required to indicate the error. D. After Input Header word S of each logical record input should be examined by the user program to determine whether errors have occurred. Specifically, the validity and I/O Mode bits should be tested. If both checksum and parity errors are detected by a handler, priority is given to a parity error and the checksum error will not be indicated. IOPS ignores checksum errors on binary input if bit S of word S is set to 1. When examining the I/O Mode Bits (bits 14-17) the occurrence of a buffer overflow condition means that the user program's I/O buffer, as specified by the Word Count in the .READ Macro, is not large enough to contain the record just read. The portion of the record which caused the _ _oye;::f.lnw is 1 osto In "'dditi"Ri !OPS uses the I,lC ~od;; Bit:; tv in<'.!i end-of-file (EOF) has been reached; otherwise, these bits specify the Data Mode of the Record. 6. 4 DATA MODES The device handlers within IOPS allow data transfers via .READ and .WRITE Macros in one of the five Data Modes listed below: IOPS Binary !OPS ASCII Image Binary Image Alphanumeric Dump (Mode Sl (Mode 2) (Mode 1) (Mode 3) (Mode 4) Data Modes permit the user to select the data structuring features of the system which are important to his application. The device independent features of the system can be enhanced through the use of the IOPS Modes, which are standardly used by all DOS-15 System programs (e.g., both FORTRAN IV and MACR0-15 accept source programs in the form of IOPS 6-6 ASCII files and produce object code as IOPS Binary files). Conversely, if specific device dependent features are desired, Image and Dump Modes can be used (primarily applicable when used with non-mass storage devices). 6.4.l IOPS Modes The IOPS Data Modes, both ASCII and Binary are the standard data structures of the DOS Software System. Using these modes, all ASCII and Binary data input is verified and converted into standard records regardless of its original form on the input device. programs must format data into standard Before output, IOPS records. On output, !OPS calculates checksums and either reconverts the data to the form required by the output device or, in the case of mass storage devices, stores the data in the standard record format. 6.4.l.l IOPS ASCII IOPS ASCII is used by DOS-15 System Software as the standard ASCII Data Mode. It accommodates the entire 7-bit ASCII (1968) 128 character set as shown in Appendix A. All alphanumeric data, whatever its original form on input (i.e., 8-bit ASCII, Hollerith, etc.) or final fQrm on output, is converted internally by the non-mass storage device handlers and stored in core and on mass storage devices a$ "5/7 ASCII". This term refers to the internal packing and storage scheme used for IOPS ASCII in which five 7-bit ASCII characte~s are packed into two contiguous 18-bit words. Figure 6-3 shows this relationship. 6 0 WORD 0 I ST CHARACTER 0-2 WORD I 7----------+13 3RD CHARACTER 5-7 2ND CHARACTER 9 3 4 TH CHARACTER Figure 6-3 14----•17 3RD CHARACTER , -4 10----------16 5TH CHARACTER 5/7 ASCII Packing Scheme 6-7 ASCII packed 17 UNUSED in this form can be stored "as. is" on any mass storage device. I/O requests involving 5/7 ASCII should be made using an even word count argument to accommodate the paired data. ASCII data is ordinarily input or output character-by-character via non-mass storage devices such as teleprinter, line printer, paper tape reader and punch. It can also be stored on mass storage devices in 5/7 form (see Figures 6-4 and 6-5). On paper tape an IOPS ASCII character is defined as a 7-bit character with even parity in the eighth (high order) bit, in keeping with USASCII standards. Further, IOPS performs a parity check on input, prior to the 5/7 packing and on output IOPS generates the correct parity. Non-parity IOPS ASCI'I occurs in data originating at a Model 33, 35, or 37 Teleprinter, without the parity option. This data always appears with the eighth (high order) bit set to 1. Apart from parity checking, the IOPS routines handleIOPSASCII ·and non-parity IOPS ASCII data identi· cally. TAPE CHANNEL 8 7 6 5 4 3 2 I FEED . DIRECTION M~~~:~ 1 : •. e e e e e e } ABC~ IN 517 ASCII ••• • ..-..__..._.!.- - - . . . . . . ' - - - - - 7 · B I T ASCII CODE ' - - - - - - - - P A R I T Y BIT !EVEN PARITY) 1&-0641 IOPS ASCII on Paper Tape Figure 6-4 WORD PAIR COUNT 0 14 17 2 CHECKSUM - - - - . . ---l 1HEADER WORD PAIR t-- - - - . A B C t--C~--.)-'----"'--.....1 Figure 6-5 ABC.) IN 517 ASCII IOPS ASCII in I/O Buffers and on Mass Storage Devices 6-8 Each logical record is an alphanumeric line, and a Carriage Return (CR) or ALT MODE. CR (or ALT MODE) is a required line terminator in IOPS ASCII mode to non-mass storage. Unused character positions in the IOPS Word Pair after the CR or ALT MODE are ignored. Control character scanning is performed by some device handlers for editing or control purposes (refer to Chapter 9). On input, each IOPS ASCII .READ results in a 5/7 packed ASCII line being placed,in the program's I/O buffer. If this line is to be interpreted, it must be unpacked by the program. Conversely, on output each .WRITE assumes that the data in the user's I/O buffer is a 5/7 packed ASCII line. Thus, it is up to the program performing IOPS ASCII data transfers to unpack each input line and pack each output line. Appendix B contains assembly listings of generalized packing and unpacking routines which can be incorporated into user programs as required. IQPS Binary _ IOPS Binary data is blocked in an even number 6.4.1.2 of words, with each block preceded by a two-word header (see Figure 6-6). On paper tape (see Figure 6•7), IOPS uses six bits per frame, with the eighth channel always set to 1, and the seventh channel containing the parity bit (odd parity) for channels 1 through 6 and channel 8. The parity feature supplements the checksumming as a data validity provision in paper tape IOPS binary. IOPS binary. WORD PAIR COUNT (INCLUDING HEADER WORD PAIR) 0 I I 14 4 l l t7 0 CHECKSUM HEADER } WORD PAIR } } """ .,.,, } PAIRS OF 18-BIT ---------- ···----- Figure 6-6 IOPS Binary in I/O Buffers and on Mass Storage Devices 6.-9 TAPE CHANNEL 87654 321 FEED DIRECTION OF TAPE MOVEMENT 1 • o o o o o o o o • o o o o o o o o e o o o o o o o o • 0 0 0 0 111 6-BIT BYTE 2nd 6-BIT BYTE 3rd 6-BIT BYTE 0 0 2-,.0 6-BITS OF BINARY WORD PARITY BIT (ODO PARITY) MUST ALWAYS BE PUNCHED Figure 6-7 6.4.2 IOPS Binary Data on Paper Tape Image Modes Image Mode data, both Image Alphanumeric and Image Binary, is read, written and stored (on mass storage devices) in the form established by the source or terminal device. These modes permit the user to take advantage of the data structuring features peculiar to non-mass storage devices. These modes are strictly device dependent and no checking, packing or interpretation of data is performed. For example, when deal- ing with Alphanumeric data the teleprinter editing features RUBOUT and CTRL U, described in 9.3.l are ignored, as well as the IOPS ASCII line terminators Carriage RETURN and ALT MODE. With the line printer, how- ever, Carriage RETURN and ALT ~ODE are accepted as legal line terminators. Image Alphanumeric Mode results in the transfer of all eight bits of an ASCII character to or from an I/O buffer (see Figures 6-8 and 6-9). Image Binary data is unchecksummed binary and appears on paper tape, in I/ O buffers and on mass storage devices as shown in Figures 6-10 and 6-11. /WORD PAIR COUNT 0 ,I' 8 l 3 I 14 13 17 HEADER WORD PAifl CHECKSUM A B c ABC~ FOUR 8-BIT CHARACTERS (RIGHT JUSTIFIEOl ~ 1!5-0652 Figure 6-8 Image Alphanumeric Data in I/O Buffers and on Mass Storage Devices 6-10 TAPE CHANNEL .-. .. • . ABC~ •• 3 2 8 7 6 5 4 ·-·-1 OF TAPE MOVEMENT t FEED } •• • •• • _......._ • • ·......: ....t FOUR B·EllT CHARACTER ALL EIGHT CHANNELS i 1!1·06H Image:Alphanumeric Data on Paper Tape Figure 6-9 WORD PAIR COUNT D 14 8 17 2 '1 HEADER WORD PAIR 0 001 010 011 100 101 l10 DATA WOllD l'IUR 000 000 000 000 000 OOO CONTAINING 123456181 15-0154 Image Binary in I/O Buffers and on Mass Storage Devices Figure 6-10 1 .• TAPE CHANNEL 8 7 6 5 4 DIRECTION OF "DIPE MOVEMENT . 3 2 1 ....... FEED ~. ;- • ••• REPRESENTS OCTAL } NUMBER 123456 • • •••• • !.. , f , &•BIT BINARY to0E (3 FRAMES/WORDI IGNORED MUST ALWAYS BE PUNCHED IS-0655 Figure 6-ll Image Binary on Paper Tape 6-11 6.4.3 Dump Mode Dump Mode permits complete freedom in data structuring in the context of a file structured environment 1 • Data input or output in Dump Mode is not interpreted, checked or packed and record length is not limited by the software. Dump Mode is used to output from, or load directly into, any core memory area. All data transferred are treated strictly as 18-bit binary words (i.e., core images). used. No Header Word Pair is Each .READ or .WRITE statement in Dump Mode requires arguments which merely define the core starting address of the area input or output and the number of words (Word Count) to be transferred. Dump Mode is normally used with mass-storage devices although paper tape I/O is possible. With paper tape, data is interpreted on output or input as three six-bit frames per 18-bit word (see Figure 6-11). 6.4.4 Logical Record Terminators IOPS detects the end of each logical record transferred using a predefined group of terminators or terminating conditions. These logical record terminators vary with the Data Mode in effect, the particular device or set of devices involved, and the transfer direction (input or output). Table 6-2 summarizes the terminating conditions for logi- cal records during input and outputforeach IOPS Data Mode. Detailed information on terminating conditions for each I/O device handler is provided in Appendix C. 1 The .TRAN System Macro (paragraph 6.7.13) permits user specified file structuring as well as data structuring. A Dump Mode transfer can be thought of as effectively a file structured .TRAN. 6-12 Table 6-2 LOgical Record Terminators Data Mode Output Input - --!OPS ASCII Carriage RETURN or ALT MODE Word Pair Count 1 EOM Word Count 2 EOF 1 Carriage RETURN ALT MODE Word Pair Count 3 !OPS Binary Word Pair Count EOM Word Count 2 EOF 1 Image Alphanumeric and Image Binary word Pair Count 1 Word Count EOM EOF 1 Word Pair Count Dump Word Count EOM EOF 1 Word Count +- Word Pair Count -------- .., 1 Mass storage only. word count is exceeded before a terminator is encountered, IOt>S sets bits 12 and 13 of Header Word ~ to 3 (Buffer Overflow). 2 If 3 If the Word Pair Count is 1 or less, the line is ignored; if greater than l, ignore the count and accept Carriage RETURN or ALT MODE (nonfile oriented devices only). Bulk storage devices require a word Pair Count greater than 1 and less than 177 8 ; otherwise an IOPS 23 error will occur. 6-13 6.5 I/O BUFFERS 6.5.l Space Allocation Bach system or user program which is to perform I/O operations must allocate an I/O Buffer for each I/O device and unit (i.e., a .DAT slot) that is to be used simultaneously. This can be accomplished by, but is not limited to, one of the methods described below. Static buffer allocation can be accomplished through the use of the MACR0-15 Assembler's .BLOCK pseudo-op as described in DEC-15-AMZC-D. A tag must be used to permit referencing of the buffer in each I/O Macro. For example: INBUF .DEC .BLOCK 52 OTBUF .BLOCK 254 .OCT /CREATES 52(10) WORD BUFFER /CALLED INBUF /CREATES 254(10) WORD BUFFER /CALLED OTBUF Dynamic buffer allocation can be performed through the use of the Monitor Macros .GTBUF and .GVBUF described in Chapter 5. Alternatively, the user can create a buffer at execution time from free core by simple calculation, using the information contained in the System Communication Registers, .SCOM+2 and .SCOM+3 (absolute locations 102 and 103). These registers contain the lowest and highest addresses of the registers in unused core, respectively. 6.5.2 Size Considerations When choosing a maximum I/O buffer size to specify in the Word Count arguments for .READ and .WRITE I/O Macros, both the set of possible devices and the Data Mode must be considered. As a general rule, when using IOPS and Image Modes, the maximum logical record size can never exceed the maximum buffer sizes specified in Table 6-3, These are based on physical device limitations. In Dump Mode, however, there are no restrictions on buffer size except for the absolute bounds of core itself; a logical record can occupy any number of physical blocks on a mass storage device. Programs which are to communicate with a number of devices using IOPS or Image ~odes must limit the output buffer size to that of the device with the smallest maximum buffer. Conversely, in setting-up input buffers, the size must be at least as large as that for the device with the largest maximum buffer size. 6-14 Table 6-3 Maximum I/O Buffer Sizes for !OPS and Image Mode Transfers Device DECdisk ax. Buffer Size 1 Data Modes Comments !OPS and Image Modes permit more than one logical record (depending on its size) per physical block. Dump Mode records can span an unlimited number of blocks. (DK) 254 (3768) All Disk Pack (DP) 254 C376 8 l All DECtape (OT) 255 (3778) All Magtape (MT) 255 (3779) All Teleprinter (TT) 74 !OPS ASCII Allows for 80 5/7 packed characters (though only 72 are printable) Image Alphanumeric (Allows for 72 characters) Paper Tape Reader (PR) All Paper Tape Punch (PP) All Line Printer LP-15 (80 column) 84 Line Printer LP-15 (132 column) 56 (708) 136 Card Reader (CD) !OPS ASCII Allows for 80 5/7 packed characters Image Alphanumeric Allows for 80 characters !OPS ASCII Allows for 132 5/7 packed characters. Image Alphanumeric Allows for 132 characters !OPS ASCII Allows for 80 5/7 Qacked cha:cg_cters__n_l n., - . a handler supplied Carriage RETURN. . VPlSA Storage Tube Display 34 74 (429) .. !OPS ASCII Allows for 80 5/7 characters (only 72 can be displayed) Image Alphanumeric Allows for 72 characters 0ctal representation of buffer sizes is shown for values returned after issuing a .!NIT and indicating the maximum size which can be used for !OPS Modes. Other sizes shown can be used with Image Modes as specified. 1 6-15 For example: Consider the I/O buffer requirements for a program which must be capable of transferring !OPS ASCII lines to either a teleprinter or the DECdisk. The maximum I/O buffer size for the tele- printer is 34 10 locations and for the DECdisk is 254 10 locations. Therefore, the user should choose the smaller size since his program must deal with both. More importantly, if the ASCII records stored on the DECdisk were greater than 34 locations in length, the user could not transfer them back to the teleprinter without truncation or reformatting. 6.6 SPECIFYING I/O DEVICES As mentioned in preceding chapters, the Monitor maintains a Device Assignment Table (.DAT), which has "slot" numbers that correspond directly to logical device numbers. Each .DAT slot contains a pointer to a device handler and a unit number when applicable (for Disk Pack, DECtape or Magnetic Tape units) . All I/O communication in the DOS-15 Monitor environment is accomplished by the logical/physical device associations provided by the Device Assignment Table. When writing a MACR0-15 program which uses I/O Macros, it is necessary to incorporate the MACR0-15 Assembler's .IODEV pseudo-op somewhere in the program to specify to CHAIN or the Linking Loader which logical device numbers (.DAT slots) are to be used. The .IODEV pseudo-op causes the Assembler to generate a code in the object program which instructs CHAIN or the Linking Loader to load the device handlers associated with the specified .DAT slots. For example: .IODEV 3,5,6 causes the device handlers assigned to .DAT slots 3, 5 and 6 to be loaded with the program issuing the pseudoop. 6.7 I/O MACRO DESCRIPTIONS The paragraphs which follow describe the function of the I/O Macros, the information to be provided by the user (arguments), and the assembly language expansion of each 1 , Either the I/O Macros or their assembly language expansions can be incorporated directly in MACR0-15 programs. Typical I/O command sequences are discussed in paragraph 6.8.4. 1 Paragraph 5.2.2 describes conventions and symbology used in presenting the I/O Macros. 6-16 6.7.l .CLEAR Initializes all bit maps and directories on the device. Eliminates all references to files in the directory of the device associated with the named .DAT slot. In order to avoid clearing a directory when its files are still in use, the directory is checked for open files. If there are no open files, ~he directory is cleared; otherwise, an IOPS 1{6 error message (file still active) results . . CLEAR may only be used unde~ the MIC, because it will destroy the system. FORMAT: • CLEARa...if-J ds ARGUMENTS: ds= .DAT slot (octal radix) EXPANSION: (all values below are octal) LOC+f6 LOC+l 6. 7. 2 CAL [-]ds&777 5 .CLOSE When directed to a .DAT slot used for input: Clears all flags related to that .DAT slot. This deactivates the .DAT slot, and another .INIT will be necessary to use the .DAT slot in the future. Any allocated buffer is returned. When directed to a .DAT slot used for output: Allows all associated output to finish, and then writes an end-of-file (EOF) 1 software indicator in the last header word pair. If the .DAT slot is associated with a directoried device, any earlier file of the same name and extension is deleted from the directory. Operation then continues as for input files (above). FORMAT: .CLOSE._..[-]ds ARGUMENTS: ds = .DAT slot (octal radix) EXPANSION: (all values below are octal) LOc+f6 LOC+l 1 CALa...i[-J ds&777 6 f6fH{6jS 776773 6-17 6.7.3 .DLETE Deletes a file from the directory of the device associated with the named .DAT slot. If the specified file cannot be found, the contents of the AC will be ~ on return. FORMAT: • DLETE ...,[ - ] ds , namptr ARGUMENTS: ds • .DAT slot number (in octal radix) namptr = Pointer to the address of the first of 3 words containing the .SIXBT representation of the name and extension of the file to be deleted (unused spaces~ contain nulls). (all values below are octal) EXPANSION: 6. 7. 4 LOC+~ CAL+l~~~...,[-)ds&777 LOC+l LOC+2 2 namptr • ENTER Initializes a directory for a new output file. The file will be placed on the device associated with the .DAT slot named as one of the parameters to the macro. Transfers control to the Monitor error handler to print the appropriate error message if there is no available space in the file directory. FORMAT: .ENTER...,[-)ds,namptr,p ARGUMENT: ds .DAT slot (octal radix) namptr = Pointer to the address of the first of three words containing the.• SIXBT representation of the name and exten_sion of the file to be created. p = Disk file protection code to be assigped. Possible values for p: 1 2 3 file is unprotected file is WRITE protected file is READ/WRITE protected If p is omitted, default protection code is used. 6-18 6.7.4 {Cont.) EXPANSION: (all values below are octal) LOC+~ CAL+l~~~*p...,[-)ds&777 LOC+l LOC+2 namptr 4 6.7.5" .FSTAT Checks the status of a file in a directory. Ignored by non-directoried devices. The namptr parameter points to the name and extension of the file whose status is desired. On return, the AC will contain the first block number of the file, if the directory lists a file with the indicated name. The contents of the AC will be zero on return if the specified file is not on the device. It is recommended that programmers use .FSTAT prior to executing .SEEK if they wish to retain program control when a file is not in the directory. Bits ~ through 2 of LOC+2 must be set to zero prior to the execution of the CAL. On return, these bits of LOC+2 will contain a code indicating the type of device associated with .DAT slot ds. non-directoried device DECtape file structuring 2 = RF DECdisk file structure 3 RP Disk Pack file structure 4 Magtape ~ l FORMAT: .FSTAT._.,[-)ds,namptr ARGUMENTS: ds = namptr EXPANSION: .DAT slot bctal radix) Pointer to the address of the first of tnree words containing the .SIXBT representation of the name and extension of the file (unused spaces ~ contain nulls). (all values below are octal) LOC+~ CAL+3~~~~[-)ds&777 LOC+l LOC+2 namptr 2 6-19 6.7.6 .INIT Initializes a device and device handler. Programmers must give a .INIT prior to giving any I/O conunands referencing the named .DAT slot. Any .DAT slot initialized via a .INIT must eventually be closed via a .CLOSE. The handler that services any .INIT will return (in LOC+3 of expansion) the maximum size of the line buffer allowed for that handler. For example, DTA will return 377 (255 10 ) in LOC+3, and DKA will return 376 (254 10 ) in LOC+3 of the expansion. FORMAT: .INIT'-'(-]ds,dd,restrt ARGUMENTS: ds .DAT slot (octal radix) dd Direction of data flow ~ - file will be an input file 1 - file will be an output file restrt EXPANSION: Restart address. Although restrt must be included to avoid assembly time errors, it has meaning only for .INIT conunands referencing .DAT slots assigned to the teleprinter. (all values below are octal) LOC+J LOC+l LOC+2 LOC+3 CAL+dd*l~J-'-'[-Jds&777 NOTE: Bits 5, 6 and 8 of LOC+~ provide added information for the GRAPHIC-15 software the line printer handler and the disk handlers. See the individual handler descriptions for more information. Bit 7 of LOC+~ should always be ~- 1 restrt ~ (Handler will return maximum buffer size in LOC+3.) 6-20 6. 7. 7 .MTAPE Performs functions unique to industry-standard magnetic tape, i.e., functions for non-directoried magnetic tape. Limited functions are also provided on DECtape and disk (see Chapter 9). See descriptions of appropriate handlers for more information. FORMAT: .MTAPE~(-Jds,nn ARGUMENTS: ds .DAT slot number (in octal radix) nn code number bf magnetic tape function or configuration: fl.0 - rewind to load point ,02 - /B ,04 ,05 ,06 ,07 1.0 EXPANSION: 11 - 12 13 14 15 16 17 - (all values below are octal) LOC+!if LOC+l 6.7.B - backspace record backspace file write end-of-file skip record skip file skip to logical end of tape 7-channel, even parity,2,0.0 bpi 7-channel, even parity, 556 bpi 7-channel, even parity, 8.0.0 bpi 9-channel, even parity, 8.0.0 bpi 7-t::hannel, odd parity, 2,0,0 bpi 7-channel, odd parity, 556 bpi 7-channel, odd parity, Bfif!if bpi 9-channel, odd parity, 8J3!if bpi CAL+nn*l!ifj3~....,[-)ds&777 7 .RAND Opens a disk file for random access via .RTRAN macros. Returns the number of blocks in the file in LOC+3 of the expansion. FORMAT: • tV\NIJ._,L -J us, namptr ARGUMENTS: ds = namptr EXPANSION: .DAT slot (octal radix) Pointer to the first word of a 3-word, .SIXBT representation of the file to be opened (unused spaces must contain nulls) • (all values below are octal) LOC+!if r.oc+ i LOC+2 LOC+3 CAL+5!if,0~.__.[-lds&777 ' nanu;itr ,0 6-21 6'.7.9 .READ Returns the next logical record to the user's I/O buffer. If the record is longer than the user's I/O buffer, the handler will fill the buffer and the rest of the record will be lost. If the record is shorter than the user's I/O buffer, the handler will use only the part of the buffer it needs. The handlers use several indicators to determine the length of record. Appendix c, Input/ Output Data Mode Terminators, shows which handlers use wl;lat indicators for each data mode. Since I/O operations and in~rnal data transfers may proceed asynchronously with ~amputation, a .WAIT command must be used after a .READ command before the user attempts to access the data in his I/O buffer, or to read another line into it. The user should always check bits 14 through 17 of the first word of the I/O buffer' for end-of-medium and endof-f ile conditions. In non-Dump modes, the user should also interrogate bits 12 and 13 of the first word of the I/O buffer to ensure that the record was read without error. FORMAT: .READ~[-Jds,m,bufadd,wdc ARGUMENTS: ds • m .DAT slot (octal radix) Data Mode, as follows: ~ 1 2 3 4 buff add wdc ..... ~ .. Data Mode Data Mode Data Mode Data Mode Data Mode is is is is is IOPS Binary Image Binary !OPS ASCII Image Alphanumeric Dump Mode address of user's I/O buffer = word count (decimal radix) , including the two-word header. wdc should equal the length of the buffer at bufadd. EXPANSION: (all values below are octal) LOC+,S LOC+l CAL+m*l,S.S,S....,[-]ds&777 l,S LOC+2 bufadd -wdc LOC+3 6-22 6.7.10 .RENAM Renames a file (useful only with directoried devices). The old name and extension are pointed to by namptr; the new name must be located at namptr+3. The AC will be zero on return if the file specified at namptr cannot be found· FORMAT: .RENAM.._.[-Jds,namptr ARGUMENTS: .DAT slot (octal radix) ds namptr = pointer to tbe old name and extension (new n~e is at namptr+3) • (Unused spaces must contain nulls.) (all values below are octal) EXPANSION: 6. 7 .11 LOC+~ CAL+2~~~"-"[-]ds&777 LOC+l LOC+2 namptr 2 .RTRAN Allows random access to blocks in a file opened via a .RAND I/O macro. Programmer may read or write into any block of a file, but may not change the length of the file. FORMAT: .RTRAN.._.[-]ds,d,r.elblk,bufadd,beg,wdc ARGUMENTS: ds = .DAT slot (octal radix) d = direction: ~ - direction is input 1 - direction is output relblk = block nwnber (octal radix) relative to beginning of the file ••• first block is block 1, etc. bufadd • address of I/O buffer in user's core space. beg first physical word of physical block to be :read or ..citten ••• ignored for disk pack ..• must be octal radix, ,0<_beg<_375. wdc nwnber of words, starting with beg, to be read or written ••. ignored for disk pack ••. must be DECIMAL radix, .0<_cnt<~(253-beg). 6-23 6.7.11 (Cont, ) EXPANSION: (all values below are octal) LOC+/6 LOC+l LOC+2 LOC+3 LOC+4 CAL+4/6/61'-'[-]ds&777 2 d*4.0Jlflfljl+relblk bufadd -beg .DEC -wdc LOC+S 6. 7. 12 . SEEK Opens a file for input on a directoried device. is ignored by non-directoried devices. SEEK If the file is listed in the device's directory, the handler reads the first block of the file into a buffer. (A subsequent .READ will obtain the first logical record in the user's I/O buffer.) If the file is not listed in the device's directory, the handler will pass control to the error handling routine in the Monitor. If the user wishes to retain control in the case that the desired file is not in the directory, he should first issue a .FSTAT command. FORMAT: .SEEK'-'[-]ds,namptr ARGUMENTS: ds namptr EXPANSION: .DAT slot (Qctal radix) pointer to 1;.he three-word .SIXBT representation of the name and extension of ~he file to be opened for input. ·(Unused spaces must be null-filled.) (all values beiow are octal) LOC+.0 LOC+l LOC+2 CAL'-'[-Jds&777 3 namptr 6. 7 .13 • TRAN Allows device-dependent, non-directoried input and output to any mass storage device. Users address such blocks by their physical locations. .TRAN should be followed by a .WAIT macro, to ensure that the transfer has been completed. FORMAT: .TRAN~[-Jds,d,blknum,bufadd,wdc ARGUMENTS: ds .DAT slot (octal radix) d ~ direction of transfer: J 1 2 3 NOTE: - inptlt,forward output, forward input, backward (DECt~pe on!y) output, backward (DECtape only) DECtape blocks must be read in the direction they were written in, in order to obtain meaningful results. blknum • block number (octal radix) of block at which to start input or output; I/O with word count larger than one block will continue with the next contiguous block; end of tap~ or disk will cause IOPS error. bufadd address of I/O buffer; I/O buffer must be at least as long as wrdcnt. wdc = number of words to be transferred (decimal radix) EXPANSION (all values below are octal): Loc+i LOC+l LOC+2 LOC+3 LOC+4 CAL+d*l-jf~[-Jds&777 13 blknum bufadd -wdc ' 6-25 6. 7. 14 • USER Allows users to dynamically assign UIC's to desired UFDT slots, thus pe:anitting access to UFD's other than the UFO specified at LOGIN time (refer to paragraph 8.4). Protection for the specified UFO and its files remains in effect. .USER must be issued before the .INIT of the I/O sequence for which UFO change is desired (see example below). FORMAT: • USER....,[-] ds ,uic ARGUMENTS: ds = .UFDT/.DAT slot nwnber (octal radix) uic • EXPANSION: (UIC) the .SIXBT representation of the three-character User Identification Code (all values below are octal) LOC+~ LOC+l LOC+2 CAL...,I-Jds&777 23 uic For example: .USER liABC .INIT 1 .USER l,CDE .SEEK l,FILE .CLOSE l .INIT l .SEEK l,Fl:LE (;his .S.EK searches for FILE under th:l LUFD called ABC J rThis .SEEK searches for FILE under th'J LUFD called COE. J . 6-26 6.7.15 .WAIT Obtains and holds control until the user's I/O buffer is available after an I/O operation. Should be used before accessing an !/O buffer after .READ, .WRITE, .TRAN, and .RTRAN commands. FORMAT: • WAIT.._,[-] ds ARGUMENT: ds = .OAT slot (octal radix) EXPANSION: (all values below are octal) CAL._.[-]ds&777 12 LOC+fa LOC+l 6.7.lG .WAITR Returns control to the address specified as an argument to the CAL, if I/O is not complete. If I/O is complete, returns control to next location after macro expansion. It is the user's responsibility to return to the .WAITR conunand, or do another one. FORMAT: .WAITR [-]ds,waitad ARGUMENTS: ds .DAT slot (octal radix) waitad = address 'to which control will be returned, if I/O is incomplete. EXPANSION: (all values below are octal) I LOC+SI LOC+l LOC+2 CAL+lSISI' 12 waitad 6-27 (-] ds&777 6. 7 • l 7 • WRITE .WRITE transfers a logical record from the user's I/O buffer to the handler's buffer. The .WRITE conunand establishes the mode in which data is transferred. The Header Word Pair Count determines the maximum amount of data to be transferred in all modes except Dump, which references the "wrdcnt" argument. The only limits on data transferred in Dump Mode are the size of core and the capacity of the device accepting the data. On physically blocked devices, such as DECtape and disk, the handler will start from its current position in a block and fill successive blocks until the transfer is complete. If a Dump Mode transfer does not completely fill the last block used, a subsequent Dump Mode transfer will fill that block, before using any other. ' .WAIT or .WAITR must be us~d after a .WRITE command, before the user's I/0 buff~r is used again, to ensure that the transfer to the device has been completed. FORMAT: .WRITE.._,{-]ds,m,buf~dd,wdc ARGUMENTS: ds = .DAT slot (octal radix) · m • data mode for transfer J1 - IOPS Binary Image Binary 2 - IOPS ASCII 3 - Image Alphanumeric 1 - 4 - Dwnp bufadd • address of usek•s I/O buffer containing data to be trahsferred. wdc = word count, number of words to be transferred (decima~), (relevant for Dump Mode transfers: only) • EXPANSION (all values below are octal) LOC+fl LOC+l LOC+2 CAL+m*l-f1J1..,.{-]ds&777 ll bufadd LOC+3 -wdc 6-28 6.8 USING I/O MACROS The progranuner must observe certain conventions when incorporating I/O Macros into a program. In general,_ consideration must be given to: 0 0 ci 0 6.8.l The physical device and its capabilities I/O device handler characteristics The I/O Macro Syntax The I/O Macro Sequence for the desired file access/ structure (see Chapter 4) Physical Device Capabilities The considerations involved here are obvious and need little comment. Simply stated, the user must understand the gross differences between various devices. For example, a.READ cannot be issued to a line printer. Similarly, binary data cannot be output to a teleprinter. 6.8.2 i Device Handler Characterist4cs Many of the standard PDP-15 I/0 de~ices available to DOS-15 users are provided with several hand_l,e_x:_ 'IT~X:.~~()11._l:I ~ __ These versions vary from one to another as to the I/O Macros anq Data Modes which are acceptable to them. Some versions permit the fu~l set of I/O Macros and Data Modes to be used, while others incorporate a subset of these features. These limited capability handlers are provided primarily for use where core allocation is a problem, since they are smaller than those with greater capability. The user must be aware of these handler differences, particularly if he wishes t¢ utilize device dependent characteristics. Detailed descriptions Of the DOS-15 device handlers are provided in Chapter 9. 6.8.3 I/O Macro Syntax The order in which I/O Macros are used is important to the.success of an I/O transfer. There are basic rules of syntax which must be adhered to in order to avoid run time I/O (!OPS errors) errors. These rules apply to any I/O sequence directed to the same .DAT Slot. 1. .INIT must always be issued before any other I/O Macro. It initializes the handler associated with the referenced .DAT slot for either input or output. Subsequent .INITs can be used to unconditionally terminate an unwanted I/O operation. 6-29 Table 6-4 Legal I/O Macro Combinations Commands Commands which rn~ ...E_recede Director__y_ Maintenance Misc. File Str~ture Initialize Data Transfer 1-INIT .FSTAT joRENAM .DLETE .CLEAR .SEEK .ENTER .RAND .MTAPE .READ .WRITE .RTRAN .TRAN .WAIT .WAITB. .CLOSE wliicl'l ma~ Misc. follow: .RAND .MTAPE x .READ .CLOSE x x x x x x x x x x x x x x .USER ? ? x .FSTAT .RENAM .DLETE .CLEAR .SEEK .ENTER t· °' w 0 x x x x x x x x x x x x x x x x x .INIT .WRITE .RTRAN .TRAN .WAIT .WAITR Notes: x x x x x x x x x x x x x ? x x x x x x x x x x x x x x x ? ? ? x x x x x x x x x x ? = Illogical Combination x = Legal combination Blank = Illegal Combination x x x x x x ? x x x x x x x x x x x x x x x x x x x x x x x x x x x ? x x x x x x x x x x x x x x x x ? ? ? ? x x x x x x x x ? ? ? x x x x x x x x x x x x x x x x x x x x ? x x x x x x x x x x x x x x x x x 2. .CLOSE (or .MTAPE Rewind, for Magtape) must always be the last Macro issued in the sequence. It terminates the current I/O operation and use of the associated .DAT Alot. Another .INIT must be issued if subsequent transfers are to be made via this .DAT slot. 3. I/O transfers to directoried devices (DECdisk, Disk Pack, DECtape or Magtape) require the use of .SEEK before .READ, .ENTER before .WRITE and .RAND before .RTRAN. 4·. Intermixing of .SEEK, .ENTER, .MTAPE, and .RAND Macros in the same I/O sequence (i.e., occurring between an .INIT and a .CIPSE referencing the same .DAT slot) is illegal. The acceptability of specific combinations of I/O Macros is shown in Table 6-4. 6.8.4 Selecting an I/O Macro Sequence The user has the capability of selecting conunand sequences which empha9ize either device independence or ~evice dependence, as his needs dictate. Much of the device independence of the DOS-15 System is obtained by usil'Vil I/O Macro sequences which are general· enough to be acceptable to a wide t:\lnge._o_f de.vitfe._bandl.ers. These sequences are based on sequential file access via the .READ and .WRITE I/O Macros, which are recognized by all DOS-15 Pevice Handlers. Simply by using .INIT - .READ (or .WRITE) - .CLOSE :sequences along with the applicable IOPS Data Modes, a user's program has the capability of communicating with all non-mass storage devices (including teleprinter, paper tape reader and punch, line printer, ca~d reader and VP-15 display). By adding the .FSTAT, .SEEK, and .ENTER Macros, the same program can, in addition, utilize the system's mass storage devices (including DECdisk, Disk Pack, DECtape and Magtape). The examples below further illustrate these sequences. Example 1 - Typical Output Sequence .IODEV 1 /Use .DAT slot 1 •. I.NIT /Initialize .DAT slot 1 for output (l) 1, l, RSTRT Optional check for existing file and device type, e.g., .FSTAT, .RENAM, .OLETE, etc. 6-31 Example {cont•dl IProces~ data for output! • ENTER l, NAME -----.WRITE l,2,BUFF,34 .WAIT l /Output a record to .DAT slot l /from BUFF in IOPS ASCII Mode. /Wait till buffer is free Yes .CLOSE 1 .SIXBT np1~@@SRC" NAME BUFF .BLOCK 42 /File name in .SIXBT :;spaces are null filled (i.e., @=null) -/l~-buf fer Example 2 - Input Sequence .IODEV l ' .!NIT l,~, ;/Use .DAT slot 1 RSTRT ./Initialize .DAT slot 1 for input(~) Optional check for existing file and device type (e.g., .FSTAT, .RENAM, and .DLETE Macros) . • SEEK ~---~.READ .WAIT l,NAME l,2,BUFF,34 l Process input data Yes RSTRT .CLOSE 1 NAME BUFF .SIXBT "FIL@@@SRC" /File name in .SIXBT. Spaces are .BLOCK 42 /null filled (i.e., @=null) /I/O buffer 6-32 - Device dependent I/O programming is: bas-ed in large part on the use of device-specific I/O Macro sequences and to a lesser degree on the structure (Data Mode) of the data. For example: .RTRAN can only be used with disk handlers; non-mass storage devices do not need .SEEK or .ENTER for operation (they igno~e them). Furthermore, the interpretation of data using the Image and Dump Data Modes becomes the user's responsibility, rather than the handler's. The user who does not need device independence can eliminate unnecessary instructions in his program and obtain addition~l free core for other purposes. For instance, assume that:in the pr~vious examples a directoried device was never to be used. The programqer could then economize by eliminating all I/O Macros associated with II/O on directoried devices such as .SEEK, .ENTER, .CLEAR, .DLETE, .FS~T. Figure 6-12 shows the relationship ,between standard I/O Macro sequences and the various I/O devices and file structure/access features of the DOS-15 system. Except for .INIT and .CLOSE, there is no implied order to the macros in any partic~lar I/O sequence shown (the reader should refer to paragraphs 6.7 .an~: 6.8.3.l for this information). 6.8.5 Progranming Example The following example illustrates the use of I/O Macros in a Macro-15 ·Assembly Language program. The program accepts an ASCII line from the teleprinter keyboard, creates a file on' the disk (or if the .DAT slot is properly assigned, on any bther directoried device), reads the file back from the disk, and prints it tjn the teleprinter. Before subsequent keyboard inputs, the program :prints the following message on the teleprinter: FILE ALREADY PRESENT! 1 DO YOU WISH TO KEEP IT? (YORN AND CR). > By typing a Yon the keyboard, the file previously .created is saved and a new file is created for the next line input from the keyboard. By typing an N rather than a Y, the next line input from the keyboard is written on the disk using the filename associated with the line previously typed (that line will be deleted). The name of the file is initially ECHO 001. A new file name is created each time a Y is typed in response to the above message by 6-33 .INIT No - (i.e., Tele rinter, Paper Ta e, Line Printer, etc.) (i.e., DECdisk, Disk Pack, DECtape, Mag tape) No No .FSTAT .RENAM .DLETE .CLEAR Random .SEEK .READ .MTAPE .MTAPE .READ or .ENTER .WRITE .MTAPE .RAND .RTRAN .READ or .WRITE or .TRAN .WRITE .WAIT or .WAITR CLOSE Figure 6-12 I/O MACROS APPLICABLE TO SPECIFIC DEVICES AND DATA ACCESS TECHNIQUES 6-34 fncrement±m,r--the--locaticm--±n--the- prrqrm11 called-NA:MB+2 -which---initial-ly contains the "001" extension of theJfl..le name in Sixbit trimmed ASCII _(.SIXBT pseudo-op). This produces series of uniquely named files (one each time a Y is typed) as fol~ows: ECHO 001, ECHO 002, ECHO 003, ECHO 004, etc. r The arguments used by the I/O Macrop in this program are given symbolic names by means of MACR0-15 direct ai signment statements at the beginntng of the program. These names p llllit the programmer to change the real values of these arguments rea "ly and also facilitate recall. ~ae ~isting shown below is the sour ~li•tin9 and is followed by an as$embly listing which shows how Macr s are expanded at assembly time. The reader may wish to compare.thes with the Macro descriptions in the beginninq of this Programming Example - Source Listing , TITLE DK ECHO i) 151<•7 TTl•6 TT0•5 Jl'.j•0 riUTa1 !OPS•2 ,lODEV , !NU .-INIT , PUT ,F'STU su JMP ,WRITE ,R(AO ,·WA IT .-EJECT LAC l)iA WRITE REAOOT JMP ,[l'\IH'R ,WRITE ,WAIT ,CLOSE ,lNlT ,'S£EK ;RE Ari ~EST RT ,WAIT ,EJE:CT I WR I Tl ;WAIT ,CLOSE ,CL.OS£ ,CL.05l JMP !5'617 DISi<, OUT, RE STRT TTl1IN1R[STRT TTO,OUT1RESTRT D ISi<, NAME UPDATE TTOrlOPS,"SGl114 TTlrlOPS 1BUF',ER134 TTI uosw NEWF'IL OIS!<,NAM[ OISK1IOPS18UF,ERr34 nJSK nlSK OISKrl11j,R£$TRT lllSK,NAME OISK1IOPS18UF'F'(R,34 OISK TTO,fOPS,BUrrER,34 TTO TTO TT l OlSK BEGIN _6~35 /JNITIALJlE OJSK OUTPUT, /TELETYPF lNPUT1 /ANO TELETYPE OUTPUT /IS rlLE PRESENT1 /NO• l~PuT KEYBOARD /YES, OUTPUT MSG1 ANO HSC2 /TYPE A GO AMEAO SYMBOL r>> /INPUT IOPS ASCII F'ROH KEYBOARD /WAIT UNTIL INPUT COMPLETE /TEST UPDATE SWITCH I~ REPL.Ar.r INPUT FILE l•l•SAVE INPUTI CRlATE NEW OUTPT /CREATE l'\IEW OISI< rlLE /OUTPUT nATA ON OtSK /WAIT UNTIL OUTPUT COHPLFTEO !CLOSE F'tLE /lNITIALtlE OISK INPUT /LOCATE rlLE "NAME" /READ INTO B!JHER /WAIT UNTIL RE:AD COMPLETE /OUiPUT TO TELETYPE /WAIT UNTIL OUTPUT COHPLFTE /TERMINATE TtL.ETYPE OUTPUT, /TELETYPF' INPUT, /ANU DISK INPUT/OUTPUT /LOOP FO~ UPDATE oPTlON UPDATE ,WRITE ·,WA l T ·,·EJECT I WR lTE ·:WA IT ,READ ,'!ljAI i' LAC ANO SAD JM!' I) i!"' YES JM!' CLC OAC JMP N[WrtL LAC LRS TT01IOPS1MSGi134 /OUTPUT MSCi1 /ANU MSG2 TTO TT0110PS,MSG2134 TTO ION /TELETYPr /REAO RESPONSE /WAIT UNTIL. READ COMPLETE /GET flRST WORD /SAVE r1RST SEVEN BJTS /IS CHAR A V? TTl,IOPS,COM,8 TT I C0"4+2 C7740fHJ (544000 YES uosw /N01 SET TO REPLACl INPUT rtLE /L,OOP TO READ KEYBOARD /SET UPDATE SW, TO SAVE /lNPUT1 CREATE NEW OUTPUT /LOOP TO READ KEYBOARD /CWANG[ OT /LEAST srGN!flCANT DIGIT 0, /SIXBT VALUE or L.AST CMAR JN EXT /STHJP orr HIGH PAHT or COO[ REAOKB uosw REAOKB NAME•2 3 RTR RAR LRS /LEAST StGNJrlCANT DIGIT or /SJXST VALUE or MJOOl.E C~AR tN EXT /STHtP orr HIGH PART or SIXBT CODE RTR RAFI u.s A'-10 TAO u~s RTL RAL. LLS RH. RAI. LLS AND XOR /PUT BACK IN AC /STHJP or HIGH ORDER PART or R£"4AJNING ISIXBT COO[ ~OR LAST EXT CMAR /INCREMENT TO MAKE NEW EXT /REVERSE PROCESS TO r1x uP EXT IN !PROPEi< SllCBT 6 ( 777 <1 6 3 3 C070707 C6~606eJ 11AC ~.JAME•c J'1P _.RITE /TO CRlATE Nf.W OUT~UT /wPC fOR HEA'JER woHo 0 MSG2:MSG1/2•1~0e ~ "'1SG2 ,ASCtl "FILE ALREADY " ·, ASC 11 "PRESE.NT ! I "<15> ,EJECT /WPC rcR HEADER WOHD 0 ~SG3:MSG2/2•1~00 ",ASCII «no YOU WISM TO KEEP IT ?" MSG3 ,'ASCII "CV ORN ANO CR> C0M-"1SG312•10'1J0 91 COM 11urn:R "JAME uosw ,'ASCt I ">"<17!'>) ,BLOCK 11:' ,BLOCK ,S!XAT 42 , END 13EG Ii~ "ECH0~-001" >"<175> Programming Example - Assembly Listing DAGE 1 OIC[ClolO , Tl TLE DIC[Cl-IO 1 2 0i.IH07 A 11l08H6 A 3 DISK•7 TT 1•6 TT0•5 Jlll•ll 0Uh1 0H005 A 4 5 11l0H!01 A "2'01/JU A 0HH2 A 6 ? 8 ; Ot<ECl-40 02'1 IOPSs2 00H0 R R 01!11007 A •G l111l 2101 R 00011101 A •G 00Hl2 R 00087'1 R •G ?10003 R 0000021 A •G BEGIN r.!!l!IH£1 0\ ' u w ....i 11 12 .INl T TTl1lN1RESTRT CAL.• I N•UH TTU777 R 11100912!6 A •G :110'305 R 000801 A •G li'leel06 R 000074 R •G 00007 R 011.1001!11 A •G R[SHlT•0 0 ,!NIT no.ouT,RE5TRT CAL•OUT•1Hf!I TT0'777 R[STi;h0 START 0 ,FST AT OISK,"'AME CAL +31111'0 OISl<&777 13 SlA 15 •·'0'12~, ~l"'i?l21 R 6C!01 '2!3 JMP "'~~21 Q R[A'Jl<B ~02005 A •G l'11'2l22 R ~l'!0011 A •G ~ "1210223 l:i •G ~·'-.".'123 •G :2'n4 P 777736 A •G /IS FILE PR£SENT7 2 lllAHE R R /AND TELETYPE OUTPUT 1. A •G 910215 R 0~0002 A •G ["('1016 R 1?~0301 R •G M•n1 R ?40200 A 14 /TEL.ET'IPE INPUT, 1 :"1Hlll 0 q CH!IU!115 A •G •0Cl'11 q ce00c1 A •G '."(:·<112 ii ""0e74 R •G A •G /INJTULUC DISK OUTPUT, e' ~0""04 •'!0013 q 0000~0 ?01114 q (·'0014 q 01113007 ,JOU[V 5' 6'., , l"'llT OISK,OUT,ltiSTRT CA&.•OUT•tlHlllJ D!SK&~77 1 R[STRhil UPDATE I \olR I TE TT01lOPS1MSG3,34 CAL+Jl)PS•:l.000 TT0&777 11 "°SGJ , '.JEC .,.34 ,EJECT 11110, INPUT l<EYSOARO /YES, OUTPUT MSG1 ANO MSG2 IT'IPE A GO AMEAO SYM90L C>> Programming Example - Assembly Listing (Cont.) PAGE 16 2 OKECHO r01 OK ECHO ,READ TTJ,IOPS1BUFFER,34 CAL.•tOFSdllH TTl&777 1" BUH ER R 002006 A *G 12'0026 R 000010 A •G 00"'27 R 0fll0237 R •G •G 0003QJ R 777736 A •G 710el25 17 ~'0"31 R .~0032 R 18 19 <71 I 20 21 22 ~ 200304 R N!034 ~ 7402~0 <:'10J35 R (~0<'36 w 23 A 600136 R WRITE !'; •'0(1136 R :il00£C7 CD A •C A •G iM137 R "~00e:4 •'t"~4~' 111ei0301 R •G R ,OEC ,.34 ,WAlT TTl CAI. TTU771 12 :ii000e6 A *G 000012 A •G 001!'33 NAM[ ,WRITE OJSK1IOPS,BurrER11• CAL• 1OPSdllH DJSK'777 ree-41 R ti1rl'20rl7 A •C :"10~42 R 11100011 A •G r1~il'43 R ee02J7 R •G BU,F"ER ,DEC .,34 ,WAIT I:" J SIC CAI. 0 I SK°'777 12 ,CL.OSE r" I SK CAL. DISt<&717 ;1M4r; r< 2/J 2' ~rn c:l 77 A •G R 0001112 A •G A •G .•e1115r ;:i 1iH"001iJ6 A •G ie;,41 ~ r?~!ll0'17 '.'C('51 R l~0ii'51 R [' ei(~00 7 A •G rt\2152 ~ \" "\ll;H" 1 A •G .'k!r.!5.3 ~ (J~074 R •G ~·00'54 ; 22'002'0 A •G J~PUT C01o1PL..£TE /TEST UPDATE SWITCH II REPLAC[ JNPUT "L! ld•SAVE JNPUTI C"Eli'E N!:W OUTPT /C"EATt NEW DISK 'ILE /OUTPUT DATA ON DISK 11 :'ri'e!44 R 777736 A •G ~~\"46 25 uDSW LAC Si A JMP NEWF'll. ,[NTER OlSK,NAME +CAL..•1000 OJSK&777 /WAIT UNTIL 4 •Ci 24 IJNPUT lOPS ASCII rRoH KEV90ARO /WA tT UNTii. OUTPUT COMPL£TCD /CLOSE F'ILC 6 REAOOT ,tNIT OISK,IN,RE5TRT DISt<&777 CAl.•tt.!•1~00 1 i;;EST>;T•0 e ,EJlCT /lNITIALIH DISK INPUT Programming Example - Assembly Listing (Cont.) PAGE 27 28 3 OKECMO 01<tci;o e2'1 ,SEt.K O!SK1NAMI: CAI. OlSK&77'1 00055 R ~01H7 A •C ('!00!56 R 00H03 A *G ll0'1157 R 000301 R •G 3 NAME ,READ OlSK,IOPS,eurrcR,34 CAL.• t OFS.11!1H DJSK&777 C"01H>"1 R 002007 A •G ·~21361 R 0H010 A •G "'""62 R 011!0237 R •G aur~tR 002163 R 777736 A •G 936 ,ore ei0064 R fllf!IU07 A •tt 0\ ·~11!065 I w "' R ~~0"12 !'10066 R 002005 A •G 00067 R 00e011 A •G (l!IJ0?e' R 00el237 R •G , WR l TE tTo,10Ps,eurrcR,34 CAt.•tOPS.lHI TT0&77? /OUTPUT TO T£LETYP[ 11 BUVf"EA ,OE~ .,;H A •G a0n3 R 000012 A •G CAI. TT0&177 12 ~ 00n4 q GllJ2!?4 R eue05 A •G le'"'75 R 000006 A •G 'J0'l76 q 0002'06 A •G viefl.77 R 0;,0;;,~6 A •c; 35 11eH"•.· R e'l"L'~e'7 1'11'1"1 R 0017<'26 <l~102 R 6e"U;02' A •G A •G ~ TTO /WAIT UNTIL OUTPUT COMPLETE ,ci..ost TTO CAL. TT0&717 /T[RMlNAT[ TEL.£TVP£ OUTPUTt ,WAIT ~llJ011JiC5 34 36 /WAIT UNTIL READ COMPLETE •G ~Hll"71 R 777736 A •G .~€Vl72 33 ,WAIT DlSK CAI. CISK&717 12__ A •G 31 32 /Rt AC INTO eunu Ul •G 29 IL.0CATE FILE "NAME" RESTRT 6 ,CL,OSE TT I CAL TTl&777 6 ,CL,DS( DJSK CAI. DlSK&777 6 J~P ,EJl:.CT A[GlN ITEL.ETVPE INPUT, /ANO DISK INPUT/OUTPUT /LOOP roR UPOATE OPTiOI'¥ Proqramminq EXample - Assembly Listinq (Cont.} CIAGE 37 4 Ol<EC~ci f.110103 R ~01'1.1.J ~ ~01 QK[CMO ~02H5 A •G UPDATE 0011!4 R 121H011 0 14SG1 R 777736 A •G •34 ,occ •c ,WAIT HO CAL TT0&771 12 ,WRITE tT0,10PS1HIG2,34 CAL• t OPS.UH TT0&777 11 00107 q e 00 1110 5 A •c Cli1110 R "H012 A •G 00111 R 121e2005 A •G 00112 R 011!0011 A •G ib0113 R fl!0e177 R •G P\ ',.•· 0 llrz'114 41 •2 ~~0122 43 q /ON ,DEC .. 3 .. ,WAIT TTO CAL. TT0&777 12 ,READ TTI I JCPS1COH,8 CAL• t OPS•UIH TTU777 0r.2et06 A •G ei0~011il A •G 'H.'!1'11227 R •G •G q 777770 A •G /TELETYPE /READ RESPONSE 11 R COH ,CEC R .a ,iicAIT 44 45 ::'10123 R' 001iHl06 A •G ('10124 R trneu2 A •G '11'.1125 q 21'.112'231 R r0126 P '5l"l?3<5 R •6 r~121 ~ ~4V!l3.:'6 R SAD 47 48 .'013::" ~ 6:2'~133 R Jl'IP ~e131 R 1411'3l4 R 49 50 C'l'132 ~ 6~en1 R ~lH J~P ~~"13J R 1seu1 A /ANO MSG2 '1SG~ •G R 777736 A •G 00115 R 00HllJ5 A •G :.'!0116 q 0Ht/J12 A •G ~0117 ~U2i7 ~0121 /OUTPUT MSC1 11 0111105 =I 0H163 R •G 0~106 H A •C ,wRITE TTO,tOPS1"4SG1,J4 CAL•tOPSe1000 TT0&777 TTt IWAJT UNTIL READ C0"4PLCT£ CAL TTl&777 12 YES L.AC COM+2 •~~o 177401110 15440210 Cl.C E.Jl:.CT I YES IJOSW i:iEAOl(B /GET FIRST WORO /SAVE 'IRST SEVEN SITS /IS CMAR A Y'f /NO, SET TO REPLACE iNPUT rlLE /LOOP TO RE40 KEYBOARD /SET UPOA TE SW 1 TC SAVE Programming Example - Assembly Listing (Cont.) PAGE 51 52 53 !54 55 !56 '5 7 58 59 60 61 62 63 5 Ol<ECMO OK(C:"40 Y.'01 00134 R 040334 R ::10135 ~ 6 02' 2121 R 0e'136 ~ 2Z0303 R 00137 R 64121503 A OAC JMP NEWF"tl. RTR RAR (ll!U40 R 742020 A 11l0141 R 740iil20 A PJC142 R 640503 A I.RS 00143 R 742020 A Nl144 R 740020 /I. 00145 R 640636 A 00146 R 500307 R RAR 1.1.s ANO 00147 R 3403Ul R 00150 R 640506 A uo «1 I.RS 6 .. Cl'I I .... 73 ei0151 R 742011!! A i"0152 R 740i'll0 A 0111153 R 640603 A 2H'll154 R 742010 /I. J0155 R 74001i!I A ~0156 R 640603 A H ~0157 .,., 69 71 72 75 76 71 '18 79 80 6 f 777 L.l.S RTL RAI. L.L.S AfllD XOR OAC JMP 'ISC1 3 3 (070787 (606~60 NAME•2 WRJTt 'ISG2•MSCil~•1000 c I ASCII ""1L.E ALREADY " 1 ASCJI "PRESENT 11 11 <15> ;~1"17 ':: R 2426~2 A r0171 R 422624 A C0172 81 R ere1rnei A '.~0173 ~11l174 R 502470 A ~ 551612 A ·~11J175 =? ~10176 4125?4 A r.; 1U432 " /l'UT BACK IN AC /STRJP or HIGH ORDER PART or REHAIN /SlXBT coor ,OR LAST [XT CHAR /INCREMENT TO HAKE NEW [XT /REVERSE PROCESS TO r1x UP EXT lN /PROPER SIXBT RTI,. RAI. R 5ZZ311 R ;il016Cl R 2403t2 R t'l0161 R ~403~3 R 130162 R 6'HH~36 R "'1!1163 R 006000 /I. R ?0'1000 A "'" 16 4 R 432231 A ~0165 110166 R 44250~ A ::1"167 ~ 4e6312 A /INPUT, CREATE N(W OUT~UT /LOOP TO R£AO KEYBOARD /CMANCE EXT /1.[4ST SJGNlrJCANT DIGIT or /SJXBT VAl,.UE or I.AST C~AR IN EXT /STRIP orr HIGM PART or CODE /l.t4ST SIGNtrJCANT DIGIT or /SJXBT VALUE O' "JDDLE CMAR IN EXT /STRIP orr HIGM PART or SlXBT COO[ RTR 64 6 !5 66 67 68 LAC L.RS uosw ;;iE:AOKB 1,;AM[•2 3 /TO CREATE NEW OUTPUT /~PC roR HEADER WORO • Programming ·Example - Assembly Listing (Cont.) PAGE 83 84 8 !5 86 tn .1 .c. N 87 88 89 90 91 92 6 OKECMO ., i:'\ 1 :~e1 Ol<ECMO n R eincrz A 1iH!l20t> R e0000~ Vlri'.12~1 R 422364 054636 00202 00203 R 525012 00204 R 744646 111~205 R 441012 .!!0206 R 447500 l~0207 R 456130 21021e R 550100 ei0211 R 446504 00212 R 031400 00213 R 242624 00214 R 047644 "'0215 R 202344 e121216 R ~40634 "10217 R 421010 !"02U R 351122 '110221 R 21111037 ~~0222 R 676400 >H''.1223 ;:; e'020~2! ., MSC2 MSGJ•MSG212•,rzei A 0 A I UC l l "DO YOU wrsH TO 1<£EP 94 rT ,.. A A A A A A A A A A A A A A A A A A R 2~0000 A 1"0225 R 373720 A •1'1'226 ;.; ;:"'1'0000 A A l'J0227 R A '~0237 R 00301 R e50310 A ,UCll "IY OR N lf~D CR> MSG3 C0M"'t-iSG312•1fH 0 :~k'224 ,ASCII ">"<175) COM 8Uf'F'ER r..JAl1E ,Bl,.OCK ,BL,OCK ,SJXBT uosw 0 R 1702100 A ;;•'11303 R 6'1'6061 A ~0304 R ~212'000 A 02'001',0 R :.:ieJl1'5 ~ 774/,00 A *L "'"'306 ~ 544030 A *L t.' k: 30 7 ;;; 0~0777 A •L c1e'31" ~ er>'0e-1 A *L ,10311 R ne1n A •L "~312 R 61"6i60 A *L NO SI ?E•e'l1!313 10 42 ••ECMC•ll01Z'1" ~C302 93 lioiPC ,ENO [RROR LINES R[Glill )"(179> ;oR MEADER wORO ~ Program Example - Assembly Listing (Cont.) PAGE BEGIN 9UH'ER eOM w 36 23 94 16 28 31 12!11J221 42 44 911• 9 29 e7 12 JS 26 9• 2• 28 J r-J JOPS 0011000 Hll!ll2 l'l0163 5• 7• ~SG3 I 0Hiltl 1110237 0e!0007 M$G2 ~ DKECMO CROSS RtrERCNC[ ')lSK '45Gl en 7 \&~E 110171 e0223 30301 ~0136 ''[WF'JL 'lUT 000001 q[AQDT 00es1 Q[AOt<B 021021 Q(STIH 1'121074 SHIH TTJ 0!2'11l14 "111!0006 TTCl 2'2111'1'!05 37 41: 15 u 22 23 24 25 26 27 23 28 31 37 •• d 87 53 76 92e 11 26 33• 17 43 31 .58 cfil 15 18• 16 78 83 83• ah 78 22 53• 27 6• 26• 9 11 15• 49 52 12 21 83 9 u 12• 3• 4• 10 16 11 15 Jt Sl 93• 41 Ui:>Sw JPIHTE "''llH YES ?r'l~~ 19 14 ~0036 22• 48 37• 77 ~"'13~ 47 50• ~0304 91• J4 32 42 33 6.8.6 File Integrity Considerations In a system such as DOS-15, which offers a flexible I/O command repertoire, I/O programming requires care ••• otherwise, numerous IOPS errors may result. Further, there are I/O sequences which the system allows ••• which, if carelessly used, can result in the destruction of the user's files or those of others. The paragraphs below describe some important considerations. a. Extreme care must be exercised when using the .TRAN macro to output to the DECdisk, Disk Pack, DECtape or Magtape. The user must know the disk and. DECtape file ~tructures completely, because .TRAN operates completely outs~d~ these file structures, and ignores the existence of all directories and bit maps. The entire contents of the disk or :DECtape or Magtape, tl:lerefore, are vulnerable to the use:i:: of .TRAN. b. Caution should be used when rea6ing a file from the disk sequentially (.READ) from one DAT slo~, while modifying the same file via another .DAT slotusinq random access ( .RTRAN). c. Generally speaking, output files are not recognized by the system until they are .CLOSEd. Under most circumstances, termination of program control and return to the Monitor will cause the Monitor to delete any unclosed output files. Occasionally, a system crash or other unusual phenomenon will cause a disk output file t~ be truncated. Truncated files are the remains of output files that the system did not get a chance to deiete. Directory listings from PIP that contain an asterisk l*l after a file name indicate a truncated file. They take up disk space and should be deleted via commands to PIP. 1 6-44 CHAPTER·7 SYSTEM INITIALIZATION 7.1 INTRODUCTION This chapter describes the procedur•s to be followed when loading, sta~ting, and tailoring the DOS-15 $oftware System. Under normal circumstances, these procedures shouldjrarely need to be used. Occasionally, however, a program may enter *runaway condition which could result in the inadvertent destructionjof a part of the DOS-15 software residing on the system device or in: core. In addition, it may be necessary to change the DOS-15 software tonfiguration from time to time to permit the use of a new 1/0 device or system program. These alterations to the system are Only permitted to: be performed by those who have access to the system's Monitor Identification Code (MIC). Thus, the average user need not be concerned with the contents of this chapter except as regards the loading and use of the DOS-15 Bootstrap (Paraqraph 7.3.2). ' Chapter 10 contains the operating ptocedures to be used once the system is loaded and running. 7.2 HOW THE SYSTEM SOFTWARE IS SUPrLIED The DOS-15 Monitor and System Prog~ams are supplied to users on either DECtape or Magtape, depending upon the particular hardware configuration. The software system r~sides on the DECtape or Magtape medium in a special form which is cleaningful only to those programs which can transfer the system to thie disk. Thus, these tapes are often called "disk restore tapes" as the~ may only be used for this purpose. The DOS-15 Software System occupies· two reels of DECtape or one 7- or 9-track reel of Magtape which are i dentified as follows 1 : 1 DECtape Tape U Tape #2 Mag tape RF Disk RP Disk DEC-15-MKDA-UC DEC-15-MKDA-UC DEC-15-MPMA-M7 (7 channel) DEC-15-MPMA-M9 (9-channel) DEC-15-MI<AA-UC DEC-15-MKAA-UC DEC-15-MPZA-M7 (7-channel) DEC-15-MPZA-M9 (9-channel) 1 An additional DECtape (DEC-15-FFDA-UB) or Magtape (DEC-15-FFDA-M7, 7channel; DEC-15-FFDA-M9, 9-channel) is required for systems with the optional FP-15 Floating Point Processor. The installation and loading of software contained on these tapes is described in the SGEN-DOS Manual (DEC-15-YWZB-DN12). J-l TWO paper tape programs are- also-p~i~a- eo assist the user 1-n loading and starting the DOS-15 system;:namely the Disk Save/Restore program DOSSAV (DEC-15-YIDA-PB) and DOS-15 Bootstrap (RFBOOT - RF15 Multicore Bootstrap, DEC-15-LWDA-PHJ RPBOOT - RP~2 Multicore Bootstrap, DEC-15-LWAA-PH). 7.3 SYSTEM STARTUP PROCEDURES The following paragraphs describe t~e procedure for loading and starting the DOS-15 Software System usin' the DOSSAV and DOS-15 Bootstrap ! programs. 7.3.l Disk Restoration {DOSSAV The DOS-15 Software-System is transferred from the Disk Restore DECtapes or Magtapes supplied by Digital Equipment Corporation to the appropriate disk device using the DOSSAV utility program. This program provides users with the ability to ~ave and subsequently restore all occupied blocks on the disk using either DECtape, Magtape, DECdisk, or Disk Packs as the storage medium. though the program is most often used to install the DOS-15 System, lt can also make additional copies of the system currently on the disk• of a newly tailored system (i.e., after System Ge.nerati.on), ___oi:__of tbe~ntents _Qf_J~isk l'a__ok units l - 7 {in the case of multiple Disk Pack ~ystems). DOSSAV operates interactively via tlte console teleprinter and asks the user a series of questions to detexliine which devices and unit numbers are to be used and, for Magtape, pafity, density and track count information. When all necessary infot:m.&tion has been obtained, DOSSAV automatically begins the specified bperation. If a save or restore operation requires more than one tape, the program stops and outputs a message on the teleprinter to that effect. The user can then mount I --.i~:f-:..:µ'3lna.n p-:;_z .. G~rno U4ZO.., vuccn:"'u"31 detect both hardware and cnmmi'tnt'I <1rri nn prrnr" ;>nil n11 i-n11 t- <> messages on the teleprinter. co ,.,...,... .. ,.,,..,,..; "+-~ In addition, the program permits DECdisk users to restore systems created in a small DECdisk configuration to an environment with a larger DECdisk configuration. The reverse situation, however, is not possible. The DOS-15 Disk Restore tapes supplied by Digital for a one-platter system configuration, therefore, can be restored to any size DECdisk system configuration 1 • DOS~AV is a stand-alone program supplied 1 This type of operation ahouid only' be done with master tapes (or copies of them) since block 1775 8 must not be occupied when performing a restoration to a system with 5 or more platters. i:n paper tape form {identification ·ntiJnber-DEC-15-YIDA-PB) and is loaded via the high speed paper tape reader using the PDP-15's Hardware Readin Mode {load address - 3772,, restart address 345~~). 7.3.l.l Operating Procedures - The following procedures should be used when restoring or saving the DOS-15 System Software (or other usercreated data on Disk Pack units 1-7): a. Place the DOSSAV paper tape in the Paper Tape Reader. b. Set the console ADDRESS switches to 37720. c. To restore the disk: ll Mount the DOS-15 Disk Restore DECtape or Magtape for the appropriate hai::dware configuration (i.e., DECdisk, Disk Pack, Floating Point or non-Floating Point hai::dware) on the applicable tape drive. 2~ Set the DECtape drive:WRITE ENABLE/LOCK switches to LOCK. {Magtape us~rs should remove the Write Enable ring from the ~ape reel.) 31 Set the disk READ/WRI~E PROTECT switches to ENABLE. To save the contents of the disk: ll Mount a fresh tape on:the appropriate tape drive. 21 Set the DECtape WRITE ENABLE/LOCK switch to ENABLE. {Magtape users should install the Write Enable ring on the tape reeL ) d. Set the tape drive unit number switches as desired. Set the Disk Pack unit number switches as desired (DOS-15 Disk Pack Systems must be restored to unit~). e. Set all ON LINE/OFF LINE switches of the devices being used to ON LINE. f, Press the Console Switches STOP and RESET simultaneously, then press the READIN switch. {The DOSSAV tape should pass through the reader.) 7.3.1.2 Commands - Once the paper tape has been read in, DOSSAV will identify itself on the teleprinter and begin to ask the user a series of questions about the devices to be used, as shown in Table 7-1. Each user response must be terminated by a Carriage RETURN. It should 7-3 also be noted that-some- .of. the.-ques.ticiiiii -Sh.Ow:ri are ty!;)ed .out -0n1y when applicable (i.e., no questions are asked about Disk Pack unit numbers or ~agtape parity, density, or number of channels if these devices are not to be used). Legal input and output device combina- tions are shown in Table 7-2. Tablel 7-1 DOSSAV Commands Query ~ User Responses INPUT DEVICE? DT = DECtapb, MT = Magtape, DK = DECdisk, DP = Disk Pitek UNIT NO? Legal unit humbers are 0 - 7 TRACK (7 OR 9)? Magtape track or channel number. (If 9 is specified, density is assumed to be 800 BPI.) DENSITY (2,5,8)? Magtape recprding density: 2=200 Bits Per Inch (BPI),: 5=556 BPI, 8=800 BPI. PARITY (E OR 0)? Mag tape parity scheme: E = even parity, O = odd parity. OUTPUT DEVICE? (See INPUT DEVICE above.} UNIT NO? (See UNIT NO. above.) ; TRACK (7 OR 9) ?. _ (See TRACK above.) DENSITY (2,5,8)? (See DENSITY above.) PARITY (E ORO)? (See PARITY above.) DATE CREATED: The date that the restore tape was created is typed out by DOSSAV. Table 7-2 Legal DOSSAV I/O Device Combinations ~ DECdisk Disk Pack DECtape Magtape 1 (DK} (DP) (DT) (MT) OK OK Illegal Illegal Mag tape (MT) OK OK Illegal Illegal DECdisk (DK) Illegal OK OK Illegal OK Disk Pack (DP) OK Illegal 2 v v DECtape (DT) Illegal 1 All DOS-15 System Restore Magtapes distributed by DEC are 800 bpi, Odd Parity. 2 Use PIP Utility program with no switch options for this operation (refer to DEC-15-YWZB-DN13}. 7-4 Once the last- question has been answered,- DOSSAV proceeds with the specified operation. If additional tapes are required to complete tne restore or save operation, the·following message is output: TAPE DONE. MOUNT ANOTHER At this point, the user should eitlper mount a fresh tape, if a save operation is being performed, or mdunt the next tape in the sequence established at tape creation, if a:restore operation. Then type any character followed by a Carriaqe R.TURN to proceed with the operation. When the requested operation is en~irely complete, DOSSAV restarts and identifies itself as before: DOSSAV Vnn INPUT DEVICE? At this point the current restore or save operation is complete. If the DOS-15 Software was being restored, it is now ready to be started as specified in 7.3.2. If other DOSSAV operations are desired, the user should proceed again as specified in 7. 3 .1.1. 7.3.1.3 Examples of DOSSAV Commands - The following examples illustrate typical DOSSAV commands when restoring and saving the DOS-15 Software System. User responses are underlined. loisk Restoration! ll Restore DECdisk system fr~m DECtape unit 1: DOSSAV V3A I NPUT DEVI Ct? JU _ UNIT I? J.. OUTPUT DEVICE? DK DATE CREATEDt TT-oct-71 TAPE DONE. ~OUNT ANOTHER! - G DOSSAV V3A INPUT DEVICE? 7-5 (The user mounted the next tape, then typed a G) to continue.) (Operation complete DOSSAV restarts.) 21 Restore DECdisR. system from Mag tape unit 0: DOSSAV V3A INPUT DEVI CE? MT UNIT I? e TRACKC7 OR 9)? 7 DENSITY <2,5,8>7 ~ PARITY CE OR 0)? 0 OUTPUT DEVICE? .rurDATE CREATED:l2 NOV 71 (Operation complete) DOSSAV V3A INPUT DEVICE:? 3) (All DOS-15 System Disk Restore magtapes are 800 BPI, Odd Parity.) Restore Disk Pack System ~rom DECtape unit 1: DOSSAV V3A INPUT DEVICE? DT UNIT #7 I ~ OUTPUT D!°VICE? DP UNIT I? ..l DATE CREATED 12•NOV-71 TAPE DONE, MOUNT ANOTHER t (The user mounted the next tape, then typed a P) to continue.) (Operation complete.) DOSSAV V3A INPUT DEVICE'2 41 Restore Disk Pack system ~rom Magtape unit 1: DOSSAV V3A INPUT DEVICE? MT UNIT I? 1 - TRACK<? OR 9>? 1 DENSITY <2,5,8)? J. PARITY CE M O>? 0 OUTPUT DEVICE? DPUNIT 17 e - DATE CREATED: 12•NOV-71 DOSSAV V3A INPUT DEVICE? (Operation complete.) (saving the Contents of the Disk! The single example below should suffice in illustrating this type of operation, since save operations are simply the reverse of restore operations. DOSSAV V3A INPUT DEVI CE? !UL OUTPUT DEVICE? DT UNIT#? I ~ TAPE DONE. ~OUNT ANOTHER A DOSSAV V3A INPUT DEVICE? (DOSSAV allows for as many DECtapes or Magtapes as are necessary to contain the entire contents of the specified disk.) (Operation complete.) 7.l.1.4 Error Messages and Meanin~s - DOSSAV attempts to detect all Reyboard and run-time errors and t~ recover if possible. The three types of errors which can occur ar~ shown below along with their meaning and recove~ procedures wh'n applicable. a. Comnand StriI!l Errors - These errors occur when a question is answered inco~rectly. DOSSAV r~peats the question. Message Meaning ILLEGAL DEVICE Either an illegal device mnemonic (one other than DT, MT, DK, or DP) or an illegal ··combination of devices (DT for input and MT for output) was typed. BAD TRACK A track number other than 7 or 9 was typed. BAD DENSITY A density ¢ther than 2(200 BPI), 5(556 BPI) or 8(800 BPI) was typed. BAD PARITY A parity other than E (even) or 0 (odd) was typed. b. Recoverable Operating Errors - These errors occur when one of the I/O devices is not properly set up. When the condition has been corrected, operation can be resumed by typing any character followed by a Carriage RETURN. Message Meaning TAPE NOT READY The DECtape or Magtape unf t is not switched to ON LINE, is not set to WRITE ENABLE, or is not set to the unit number specified in the UNIT NO? question. DISK NOT READY The DECdisk is not set to WRITE ENABLE. DISK PACK NOT READY The Disk Pack unit is not switched to ON LINE, is not set to WRITE ENABLE or is not set to the unit number specified in the UNIT NO? question. 1-1 c. Unrecoverable Errors - E~rors associated with these messages are primarily ha~dware errors from which DOSSAV cannot recover. A~ter the message is typed, DOSSAV restarts itself. Meaning Message DECTAPE ERROR MAGTAPE ERROR DECDISK ERROR DISK PACK ERROR } H~rdware error detected ATTEMPT TO RESTORE SYSTEM TO WRONG DISK Tne user tried to restore a DECdisk system using a Disk Pack restore tape or vice versa. BLK 1775 OCCUPIED. NO 2ND SAT CREATED. The user did not use a master restore tape (i.e., block 1775 occupied) when restoring a system created for 4 or fewer platters to a system having 5 or more platters. 7.3.1.5 Restart Procedures - The testart procedures below should be used either to terminate prematurefy the current operation or to reinitialize DOSSAV if it fails to start up automatically after an error. a. b. c. Press "the Console Switches STOP and RESET simultaneously. Set the ADDRESS switches to 34500. Press the START Console Switch. DOSSAV should then identify itself as when originally loaded, otherwise it must be reloaded as described in Paragraph 7.3.l.1. 7.3.2 Loading and Starting the Monitor The DOS-15 Monitor is loaded into core from either the DECdisk or Disk Pack and is automatically started with the DOS-15 Bootstrap Loader program. Once loaded, the bootstrap remains in the upper 1419 locations of the core bank into which it was loaded during all normal system operation. The bootstrap not only aids in initializing the Monitor, but also acts as an integral part of the Monitor as it operates. It is supplied on paper tape in two versions. One version, RFBOOT, (identified as DEC-15-LWDA-PH) is for use with DECdisk systems, and the other version,RPBOOT, (identified as DEC-15-LWAA-PH) is for use with Disk Pack Systems. 7-R Each time that the DOS•l5 System·--software is restored using DOSSAV, the bootstrap must be loaded into qore. Occasionally, a runaway program or hardware malfunction may cause the destruction of the Monitor as it resides in core, and prevent !the user from restarting it by keyboard conmand. In this circwnstance, it is often possible to restart the bootstrap (unless it, too, has been destroyed) and avoid reloading the bootstrap. The paragraphs which follow describe the initial loading and restart procedures for the DOS-15 Bootstrap Loader. 7.3.2.l Loading the Bootstrap · a. Select the appropriate version of the bootstrap (either DECdisk or Disk Pack) and place it in the paper tape reader. b. Set the console ADDRESS s~itches to one of the addresses shown below in accordance with the maximwn core size of the system. c. Address !Maximum Core Size 37637 57637 1163--1-- 16K or 20K 24K or 28K -32K Press the console switche$ STOP and RESET~ then press READIN. Once the bootstrap is loaded, it starts automatically and loads the Monitor from the disk. When loaditlg is complete, the Monitor gets control and identifies itself on t~e console teleprinter as follows: DOS-15 Vnn ENTER DATE MM/DD/YY The system is now loaded and operabte and is ready to accept the keyboard commands (Chapter 8) in accor ance with the operating procedures described in Chapter 10. Users wit new systems, that is, systems which have not previously been tail~red, should refer to Paragraph 7.4.2. 7.3.2.2 Bootstrap Restart Procedures - As mentioned above, situations occasionally arise in which the Monitor must be reloaded by the bootstrap. If the bootstrap is intact! in core, it may be restarted by the procedures which follow. 7!-9 a. 7.4 Set ·the console ADDRESS swU-:ches to· one of the addresses shown below in acqordance with the maximum core size ofthe system. Address Maximum Core Size 37646 57646 77646 16K or 20K 24K or 28K 32K b. Press the console switches STOP and RESET: then press START. c. The Monitor should then identify itself as shown in 7 .3. 2 .1. d. If the Monitor does not identify itself, the bootstrap has been destroyed and must be reloaded as described in 7.3.2.1. I SYSTEM MODIFICATION (TAILORING) fROCEDURES The software package supplied to e•ch user is a qeneral purpose version of the DOS-15 Software Systemi This means that the system contains all of the standard DOS-15 1 nguaqe programs, utility programs, I library routines, and I/O device h•ndlinq routines supported by Digital Equipment Corporation. In~luded as a part of this general package is a utility prC>grmn-caiief the- syst~ Generator (or SGEN). SGEN enables the user to tailor thelDOS-15 software to suit the particular hardware configuration and operating requirements of his installation. Specifically, SGEN provides the user with the ability to: (1) delete system programs or add his own 1 : (2) add and delete I/O device handlers; (3} add and delete system library routines: (4) alter system load-time parameters ~uch as: I/O device assignments, teleprinter model currently being used, availability of an extra memory page, number of buffers to be allocated, file and directory protection codes, etc.; (5) change system operating parameters including: the Priority Interrupt Skip Chain, number of positive .DAT slots, the presence of 7- or 9-channel Magtape drives, the Monitor Identification Code (MIC). in the DOS-15 pystem Manual (DEC-15-NRDA-D) and the System Generator Utility Program Manual (DEC-15-YWZB-DN12). 1 Described 7.-10 CHAPTER 8 KEYBOARD COMMANDS 8.1 INTRODUCTION This chapter describes the commands which can be issued from the console keyboard to direct the operations of the DOS-15 system software. In conununicating with the Monitor, the keyboard of the console teleprinter is used as the system's control device. The operator at the keyboard types commands to allocate system resources, load and start system and user-created programs, terminate program operation, and exchange information ~ith the Monitor. Most of the Monitor's keyboard commands are issued prior to loading system or user programs and are interpreted by the Nonresident Monitor. During program execution, a small set of keyboard commands is available for general program control. These commands are interpreted by the teleprinter's I/O device handler (which is part of the Resident Monitor), and are used to control program start and restart, dumping of core, and the reloading of the NOnresident Monitor. Paragraph 8.11 describes commands used during program execution. The console teleprinteristhe communications interface between the user-operator and the Monitor. The interaction between the operator and the Nonresident Monitor is completely conversational. Each command issued causes the Monitor to type out an appropriate reply. Monitor responses may vary from a single character to several pages of information. In the context of this manual, the term "console keyboard" designates any one of several keyboard/printer/display I/O devices which could be used by the Monitor as the system command console device. (That is, it is associated with .DAT slots -2 and -3). Generally, a Model 33 or 35 teleprinter is used. The keyboard comnands are, however, not strictly limited to input from the keyboard. The Monitor can be operated in a Command Batching Mode (see 8.12) in which keyboard commands can be issued from either punched cards or paper tape with minimum operator intervention. Similarly, the Monitor's responses to commands are not strictly limited to a keyboard device's printer or display, but may also be output to other devices including the VT15 Display or a line printer, when available. 8-1 KEYBOARD COMMAND FORMATS AND CHARACTERS H.1 8.2.1 Keyboard Command Elements All keyboard commands, except those using the keyboard CTRL key, consist of at least two elements, a command name and a terminator. Some com- mands require an additional third element consisting of one or more arguments inserted between the command name and the terminator. Each command name is separated from its argwnent (or argument string) by one or more spaces. Delimiters between multiple arguments vary, and are specified in the dest:riptions for the individual conunands. Except as otherwise specified, each conunand string can be terminated by either a Carriage RETURN or an ALT MODE. CTRL commands are formed by simultane- ously depressing the keyboard's CTRL key and letter key, and are interpreted by the ~esident Monitor. These commands need no terminators, such as Carriage RETURN or ALT ~ODE. after they have been typed. They are interpreted immediately Once typed, the command is echoed in the form of an up-arrow (t) followed by the letter which identifies the command. Thus, CTRL c is echoed +c. The symbols defined in the introduction to Chapter 5 are used in illus• trating the command formats described in the succeeding paragraphs of this chapter. DOS-15 system programs accept ASC1I characters shown in Appendix A. 8.2.2 Editing Features The teleprinter's device handler provides two keyboard editing functions which can be used to change the line currently being typed (prior to typing Carriage RETURN or ALT ~ODE}. RUBOUT The RUBOUT key permits successive deletion of characters, st~rting with the last character typed. Each RUBOUT deletes one char'icter and causes a backslash (\} to be echoed in response. RUBOUT does not delete characters past the previous line terminator. Once all characters in a line have been deleted, additional RUBOUTs are ignored. For example, if the command INSTRUCT were mistyped as INSTRUTC, it could be corrected by typing two RUBOUTs followed by CT, as shown below: Example: $INSTRUTC \\CT C'l'RL U Formed by depressing the CTRL key and striking the u key, this command during input eliminates all characters typed up to the last Carriage RETURN or ALT MODE and echoes a @. Thus an irretrievably bollixed input line may be eliminated (before typing Carriage RETURN or ALT MODE) by typing CTRL u. This feature can also be used during output to abort the current line. 8-2 8.2.3 When to Issue Keyboard Conunands All keyboard commands, except for the CTRL conunands (see 8.11) are only recognized and accepted when the Nonresident Monitor is in core, as evidenced by the appearance of either of the following identifiers on the teleprinter: DOS-15 Vnn where: vnn version nwnber $ or $ The operator can obtain the Nonresident Monitor by typing CTRL C, (described in 8.11.1). When the Monitor is initialized using the Bootstrap, or by typing CTRL C, the full identification is typed. At all other times it indicates its readiness to accept keyboard conunands by simply typing the dollar sign ($) • Once the $ is typed, the Monitor idles until the operator types a conunand. 8.3 COMMANDS TO REQUEST SYSTEM INFORMATION The conunands in this paragraph provide the user with various lists of system information. The lists include: (1) general system information, (2) keyboard commands, (3) error messages, and (4) .DAT slot assignments. Since these lists tendto be lengthy, users who have either a line printer or a VT-15 Display can speed up the output of this information by using the special line printer and VT-15 commands (described in paragraphs 8.9 and 8.8, respectively). 8.3.1 SCOM The SCOM command causes the typeout of DOS-15 system information. The information includes (l) available I/O device handlers, (2) system default parameters, (3) important core addresses, and (4) the Priority Interrupt Skip Chain order. Form: S[COM]) 8-3 Example: SY~TEM INFO - DOS-15 - 11/02/71 77646 - BOOTSTRAP RESTART ADDR 77636 - IST FJ?EE CELL BEL.OW BOOTSTRAP 2722- ADDP OF .DAT 2760- ADDP OF .UFD 20 - NO. OF POS •• DAT SLOTS SYSTEM HAS API SYSTEM HAS FAE PAGE MODE OPERATION 7 CHANNEL MAGTAPE.ASSUMED BY HANDLERS 80-CHARACTER LINE PRINTER ASSUMED BY HANDLERS 2 - DEFAULT FILE PROTECTION CODE 03 - DEFAULT BUFFS SETTING 1274- 1'Q ADDRESS FOP. MANUAL DUMP l/J HANDLERS AVAILABLE TTA TELETYPE: IIO, ASCII MODES, ALL FUNCTIONS PR A TAPE READER: INPUT, ALL MODES, ALL FUNCTIONS PPB TAPE READER: INPUT, IOPS ASCII MODE, ALL FUNCTIONS PPA l'UNCH1 OUTPUT, ALL MODES, ALL FUNCTIONS PPB PUNCH: OUTPUT,ALL MODES LESS IOPS ASCII, ALL FUNCTIONS PPC PUNCH1 OUTPUT, IOPS BINARY MODE, ALL FUNCTIONS DTA DECTAPE: 3 FILES, 110, ALL MODES, ALL FUNCTIONS OTC DECTAPE: I FILE, INPUT, IOPS MODES, LIM FUNCTIONS DTD DECTAPE: I FIU:, 110, ALL MODES, ALL FUNCTIONS DTE DECTAPE: I FILE, I/O, ALL PIODES, NO .MTAPE DTF DECTAPE: NON-FILE ORIENTED FOR F4 .ors DKA DECDISK1 N FILES, IIO, ALL MODES, ALL FUNCTIONS mrn DECDISK: N FILES, 110, ALL MODES, LIM FUNCTIONS DKC DECDISK: N FILES, INPUT, ALL MODES, LIM FUNCTIONS DPA DISKPACK: N FILES, IIO, ALL MODES, ALL FUNCTIONS DPB DISKPACK: N FILES, 110, ALL MODES, LIM FUNCTIONS DPC DISKPACK: H FILES, INPUT, ALL MODES, LIM FUNCTIONS LPA LINE T'rtINTER: OUTPUT, ASCII MODES, ALL FUNCTIONS CDB CARD READER: INPUT, IOPS ASCII_ MO_DE, Al,.L _FU~CTJON_S VTA VT-15: I/O LKA LK-35 KEYf.OARD: INPUT, ASCII MODES, ALL FUNCTIONS SKIP CHAIN ORDER SPFAL DTDF DSSF VPSJ SPDI WTSK RCSF RCSD CLSF LSDF RSF PSF KSF SPKF TSF DTU DPSE MPS NE MPSK SPE 8-4 8.3.2 INSTRUCT The INSTRUCT command causes a typeout of either the keyboard commands or system errors, depending upon which form of the command is used. Form 1: I[NSTRUCT)) Example: $J nos-is coMMANns: LOGCL>: USEP COMMENTS TERMINATED RY ALTMODE LOGW: U~F.R COMMENTS TERMINATED IW ALTMODF, WAIT F'OR tP TO CONTINUE DATF.CD>: ECHO DATF. DATECD> i"tl/DD/YY: ENTER DATE TIME<T>: ECHO TIME TIMECT) HHMM: ENTER TIMF. PPOTF.CTCP> N: CHANGE DEFAULT PROTECTION CODE TO N KF.F.PCK> ON/OFF': KEEP .DAT SLOTS UNALTERED ON .F.XIT LOGIN UIC: DEFINE NEW CURRENT UIC LOGOUT: SIGN OFF UIC ROSSl5: ENTER ROSSIS RATCH MODF. SCOMCS): SYSTEM INFO INSTRUCT<!>: LIST OF MONITOR COMMANDS INSTRUCT<!> ~RORS: DESCRIPTION OF ERROR CODES REQUESTCR>, REQUESTCR> PRGNAM: .DAT SLOT USAGE REQUESTCR) USER: POSITIVE .DAT SLOT USAGE ASSIGNCA) DEVN <UIC> A,B, ••• IETC.: .DAT SLOT MODS QDUMP(Q): SET TO SAVE CORE CtQ) ON .IOPS ERROR HALT<H>: SET TO HALT ON .IOPS ERROR tQN: SAVE CORE ON UNIT N GET<G> : RESTORE CORE FROM tQ AREA GETP : RESTORE CORE FROM tQ AREA AND RESTART WITH tP GETT : RESTORE CORE FROM tQ AREA AND RESTART WITH tT GETS : RESTORE CORE !=HOM tQ AREA AND RESTART WITH tS GETCG) N FILE : RESTORE CORE FROM F'ILF. ON UNIT N AND RESTART GETP N F'ILE : RESTORE CORE FROM FILE <UNIT N) AND RESTART WITH tP GETT N FILE s RESTORE CORE FROM FILE ON UNIT N AND RESTART WITH tT GETS N fILF. : RESTORE CORE FROM FILE ON UNIT N AND RESTART WITH tS PUT N FILENM : PUT tQ AREA INTO FILENM ON UNIT N API ON/OF'F': CHANGE STATE OF API VT ON/OFF': TURN GRAPHIC DISPLAY ON/OFF' ~ALF' ON/OFF': TURN HALF' RUFFER MODE FOR GRAP~IC DISPLAY ON/OFF 33TTY ON/OFF: CHANGE STATE OF TELETYPE LP ON/OF'F': TURN ON/OFF' LINE PRINTER FOR OUTPUT OF' SOME NRM COMMAND~ X4K ON/OFF': CHANGE STATE OF' EXTPA 4~ CORE CONFIGURATIONS RANK ON/OFF': CHANGE STATUS OF' RANK MODE PAGE ON/OF'F': CHANGE STATUS OF' PAGE MODE BUFFS N: CHANGE DEFAULT BUFFER ALLOCATION C~ANNEL 7/9: SETUP DEFAULT ASSUMPTION FOR MAGTAPE tC: RESTORE DOS-J5 tP: USER RESTART tT: RESTART DDT tX: TURN VT ON OR OFF ...B-5 ·DOS-15 PROG LOADING COMMANDS ~ND PROGNAM FOR REQUEST COMMAND LOAD: LINK LOAD AND WAIT FOR tS GLOAD: LINK LOAD AND GO DDT: LINK LOAD WITH SYfllBOLS AND GO TO DDT DDTNS: LINK LOAD W/O SYfllBOLS AND GO TO DDT MACRO: SYM~OLIC MACRO ASSEMBLER F4: FOPTRAN IV COMPILER EDIT: TEXT EDITOR PIP: PERIPHERAL INTERCHANGE PROG SGEN: SYSTEM GENERATOR DUMP: BULK STOR DEV DUMP UPDATE: LIRR FILE UPDATE SRCCOM: SOURCE COMPARE EDITVP: STORAGE SCOPE EDITOR EDITVT: GRAPHIC DISPLAY <VT> Pl>ITOR PATCH: ~YSTEM TAPE PATCH ROUTINE EXECUTE<E> FILE: LOAD AND RUN FILE XCT CHAIN: XCT CHAIN BUILDER BTRAN: PDP-8 TO PDP-15 TRANSLATOR 891RAN: PDP-8 TO PDP-9 TRANSLATOR MTDUMP: MAG-TAPE UTILITY PROGRAM DTCOPY: DECTAPE COPY PROGRAM D0~-15: f'ATCH BATCHCR> DV: ENTER RATCH MODE WITH DV AS RATCH DEV DV: PR : PAPER TAPE READER CD : CARD READER $JOR: CONTROL COMMAND WHICH SEPARATES JOBS $DATA: REGINNING OF DATA $END: END OF DATA $PAUSE: WAIT FOR tR ON TTY $EXIT: LEAVE BATCH MODE tT: SKIP TO NEXT JOB tC: LEAVE BATCH MODE tRt CONTINUE F'ROll! $PAUSE Form 2: I[NSTRUCT] ERROR[SJ}' Example: SI ERRORS DOS-15 • .IOPS 0 ILL FUNCTION CAL - CAL ADDR I CAL* ILL - CAL ADDR 2 .DAT SLOT ERROR - CAL ADDR 3 ILL INTERRUPT - I/O STATUS REGISTER 4 DEV NOT READY • TYPE tR WHEN READY * 5 ILL .SETUP CAL • CAL ADDR 6 ILL HANDLER FUNCTION - CAL ADDR * 7 ILL DATA MODE - CAL ADDR * 10 FILE STILL ACTIVE - CAL ADDR ** 11 SEEK/ENTER NOT EXECUTED - CAL ADDR * 12 llNPECOVERARLE DEVICE ERROR - STATUS REG B AND UNIT NO. 8-6 13 FILE NOT F'OUND - CAL ADDR ** 14 DIP EC TORY F'ULL - CAL ADDR DEVICE F'ULL - CAL ADDR ** OUTPUT RUF'F'ER OVERFLOW - CAL ADDR 17 TOO MANY F'ILES F'OR HANDLER - CAL ADDR * 20 DISK FAILURE CCTRLR TO RETRY> - DISK STATUS,BLK #,DEVICE/UNIT 1,u1c 21 ILL DISK ADDR - BLOCK NO,DEVICE/UNIT NO,CAL F'UNCTION,UIC 22 TWO OUTPUT F'ILES ON ONE DECTAPE UNIT - CAL ADDR 23 ILL WORD PAIR COUNT - CAL ADDR ** 3A API SOFTWARE LEVEL ERROR - API STATUS REG 31 NON-EXISTENT MEMORY REF - PC 32 MEMORY PROTECT VIOLATION - PC 33 MEMOPY PARITY ERROR • PC 34 POWER F'AIL SKIP NOT SETUP - PC 37 LINE OVFLO - CAL ADDR 40 HEADER LAREL ERROR - CAL ADDR 41 DIPECTORY FORMAT ERROR - CAL ADDR 4?. ACCESSIRILITY MAP OVF'lO - CAL ADDR 43 DIRECTORY RECORDING ERROR • CAL ADDR 44 LOGICAL EOT F'OUND - CAL ADDR 45 LONG INPUT RECORD - CAL ADDR 46 ATTEMPT TO DELETE SYSTEM F'ILE - CAL ADDR 47 ILL HORIZONTAL TAR - CAL ADDR 51 ILLEGAL USER F'ILE DIRECTORY - CAL ADDR ** 55 NO BUFFERS AVAILABLE - CAL ADDR * 61 PAP ITY ERROR IN DIRECTORY OR FILE BIT lllAP - CAL ADDR * 63 PPOTECTED USER FILE DIRECTORY - CAL ADDR * 64 PROTECTED F'ILE - CAL ADDR ** 65 UNRECOVERABLE MAGTAPE ERROR - MT STATUS 66 RELATIVE BLOCK rs 0 OR NOT WITHIN F'ILE SCOPE c.RTRAN> ** 67 .RTRAN ARGUMENTS CAUSE DATA BLOCK OVERFLOW - CAL ADDR ** 70 RUFFER SIZE TOO SMALL - CAL ADDR * 71 EMPTY UIC ** 72 INPUT PARITY OR WRITE CHECK ERROR CfR TO RETRY> - CALADDR,BLOCK NO,DEVICE/UNIT NO,CAL F'UNCTION,UIC 73 NULL FILE NAME GIVEN ON SEEK/ENTER/DLETE/FSTAT/RAND * 74 F'ILF. STRUCTURE DEGRADATION - ATTEMPT TO CLEAR SUBMAP BIT THAT WAS ALREADY OFF ** 75 FILE STRUCTURE DEGRADATION - ILLF.GAL SUBMAP WORD! 71l FILE STRUCTURE DEGRADATION - ILLF.GAL BACKWARD POINTER FOR F'IRST MF'D OR UFO BLOCK C'TR TO RETRY> 77 ATTEMPTED USE OF' NON•EXISTANT tQ AREA 15 I~ * DISK ONLYt CAL ADDR,DEVICE AND UNIT N0 0 ,CAL F'UNCTION,UIC ** DISK ONLY: CAL ADDR,DEVICE AND UNIT NO.,CAL FUNCTION,UIC,F'ILF. NAME LOADER EPRORS • .LOAD OR .SYSLD MEMORY OVERFLOW 2 DATA F.RROR 3 SUFIR NOT FOUND 4 .DAT SLOT ASSIGNMENT ERROR 5 PROG SEGMENT GREATER THAN 4K CPAGE lllODE> OBJECT TIME SYSTEM ERRORS - .OTS 5 ILL REAL SQUARE ROOT ARG ll ILL DOUBLE SQUARE ROOT ARG 7 ILL INDEX IN COMPUTED GOTO 10 ILL I/0 DEV # II ILL INPUT DATA 12 ILL FORMAT STATEMENT I,~ !L.L RF.AL LOG ARG 8-7 14 Ill OOUALE LOG ARG 15 7ERO RAISED TO ZEflO 21 IJNDEFI NED FILE OR NEGATIVE POWER 22 ILLEGAL RECORD SI1E 23 SIZE DISCREPANCY 24 ILLr.GAL RECORD NUMRER 25 MODE DISCREPANCY 2ti; TOO MANY OPEN FILES 30 SINGLE INTEGER OVEPFl.OW 31 f.)(TENDF.O <DOUALE> INTEGER OVERFLOW ;rn n Nr.tF. Fl. T. OVERFLOW 33 DOURLF. Fl.T. OVEPFLOW 34 Sitlr.LE Fl. T. UNDERFLOW 35 DOURLF. Fl.T. UNDERFLOW 3..; Fl T• nt VIDF. CHECK 37 INTF.GER DIVIDE CHECK 4~ ILLEGAL CHARACTER COUNT 41 ARRAY EXCEEDED 42 BAD INPUT DATA 5~ F'PP ME~ORY PROTECT/NON-EXISTANT MEMORY VIOLATION 51 ILLEOAL I/O DIRECTION CHANGE TO DISK 8 .3. 3 REQUES~ The REQUEST command causes a typeout of the I/O Device Handlers currently associated with the slots of the Monitor's Device Assignment Table (.DAT) • Since this command is closely related to the commands which affect I/O device assigrunents, it is described in paragraph 8.5.1. 8.4 8.4.1 COMMANDS RELATED TO FILE PROTECTION LOGIN This command permits the operator to enter his User Identification Code (UICl into the system in order to do directoried disk I/O. After a LOGIN, the Nonresident Monitor sets the slots of the User File Directory Table (UFD~ to the three-character code entered. All input/ output operations to the disk are directed to the UFO associated with the last UIC entered by this command, unless a program has subsequently executed a .USER I/O Macro, or the operator has issued an ASSIGN conunand (see 8.5.2). 8-8 Each LOGIN command issued enters a new UIC into the system and automatically deletes the one entered previously. Each LOGIN is an implicit LOGOUT (see LOGOUT, in paragraph 8.4.4). A UIC must consist of exactly three alphanumeric characters in any combination except "@@@", "???", "PAG", "BNK", "SYS", "IOS" and "CTP". Form: LOGIN....,uic) where: uic = User Identification Code 8.4.2 MICLOG This command permits the Monitor Identification Code (MIC) to be -tov. rvt,.; ~ entered into the !\¥Stem. This provides the operator with unrestricted access to all files contained in the various directories on the disk and permits the system programs SGEN and PATCH to be used to modify the system. The MIC of each system, as initially supplied to the user, is "SYS". As with LOGIN, a MICLOG entry is deleted from the system by the LOGOUT or LOGIN commands. The MIC is usually known only by the system owner, and the code is easily changed at system generation. Form: MICLOG'-"1\iC) where: mic = Monitor Ident:.ification Code 8.4.3 PROTECT The PROTECT command is used to alter the default value of the file protection code, set when the system was generated (by the SGEN program). The default file protection codes set by this command remain in effect until another PROTECT conunand is given or until the user issues a LOGIN or LOGOUT (which resets the protection code to the system's default value). Refer to 4.7.3 for a list of these codes. form: P [ROTECT].._,n) where: n 8.4.4 LOGOUT Protection Code This command deletes the current UIC or MIC entry from the system. LOGOUT also resets all system parameters affected by keyboard commands to their default status. These parameters include: 8-9 a. .DAT and .UFDT assignments (ASSIGN command) b. Commands which take an "O"/OFF" argument, such as: KEEP, X4K, 33TTY, HALF, LP, PAGE/BANK, API, and VT. c. Commands which take a numeric argument, including: CHANNEL, PROTECT, and BUFFS. Form: 8.5 LOGOUT) COMMANDS DEALING WITH I/O DEVICE ASSIGNMENTS 8.5.1 REQUEST This comm.and causes a typeout of the I/O devices currently associated with the slots of the Monitor's Device Assignment Table (.DAT) and the UIC's associated with the User File Directory Table (.UFDT). The command can be issued using various arguments which result in a complete printout of the assignments or selected portions thereof. If REQUEST is issued with no argument, the entire .DAT/.UFDT list of assignments is output. If the argument USER is inserted, only the positive (user) .DAT and associated .UFDT assignments are output. If an argument which is a legal systemproqram name is used (e.g., MACRO, PIP, etc.), only the assignments for that program are output. Form: R[EQUESTL,,~~ "prog" may be any of the following: MACRO F4 FOCAL PATCH DTCOPY GLOAD LOAD DUMP MTDUMP UPDATE PIP EDIT EDITVP EDITVT SGEN SRCCOM CHAilf EXEcdTE 8TR~ 89TiqN DDT I DDTNS Examples: .DAT ·15 -14 -13 -12 DEVICE UIC DKA DKA DKA LPA SCR SCR SCR SCR 9-10 -1 J -10 -7 -6 _, -4 -3 -2 -I +I +2 +3 +4 +5 +6 +7 +10 +11 +12 +13 +14 +15 +16 +17 +20 OKA TTA OKL DKA NON DKA TTA TTA DKA OKA OKA DKA TTA PRA PPA DTAI VTA NON DTA2 NON NON NON NON NON NON SCR SCR SYS SCR SCR SCR SCR SCR SYS SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR Example 2: SR USD .DAT +I +2 +3 +4 +5 +6 +7 +1111 + 11 +12 +13 +14 +15 +16 +17 +2111 DEVICE DKA DKA DKA TTA PRA PPA DTA I VTA NON DTA2 NON NON NON NON NON NON UIC SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR SCR Example 3: 5R MACRO .DAT .. 14 -1.3 -12 -1 l -·Ill DEVICE DKA OKA LPA DKA TTA UIC SCR SCR SCR SCF SCR USE INPUT OUTPUT LISTING INPUT SECONDARY INPUT 8-11 8.5.2 1'SSIGN This corrunand permits the temporary reassignment of the various slots of the Monitor's Device Assignment Table (.DAT) to I/O device handlers other than those permanently assigned at system generation. In addi- tion, the corresponding slots of the User File Directory Table (.UFDT) can also be reassigned to UIC's other than the UIC which is currently in effect. Unless the KEEP command' is issued, the change of assign- ment is effective only for the current job (i.e., the program about to be run}, since the permanent assigninents are restored when the Nonresident Monitor regains control (i.e., after the current job has terminated). The KEEP command (described below) can be used to retain assignments from job to job. Prior to using ASSIGN, the user should be familiar with the various handlers which can be used with the program for which the assignments are to be made. Chapter 9 describes the handlers in the system. A list of the handlers available on any given system can be obtained in the printout obtained with the SCOM conunand. The following rules should he observed when typing ASSIGN commands: a. Device handler names consist of three characters which can be abbreviated to two c~racters if the last character is an "A". Thus, "D " becomes "DK". In addition, a number can be typ as a fourth character to specify the device unit number (in octal). The unit number is applicable tor devices which can have more than one unit: Disk Pack, DECtape, and Magtape. If the unit number :is zero, it need not be specified. Thus, "DTA.S" becomes simplir "DT", similarly, "DPB.S" can be typed as "DPB". "D'rAl" may be typed as "DTl" • b. .DAT/.UFDT slot numbers (octal) must be within the legal range for the particular system being used. Since the number of negative slots does not change (-15 is the lowest negative slot) , the user need only be concerned with the number of positive slots available. This ~an be determined either from a SCOM or a REQUEST USER command. c. A series of assiqnments can be typed on the same line, using a single ASSIGN corrrnand, by separating the assignments with a slash (/)" The user can then type another device name, UIC, and slot number(s). (See examples below.) d. Assigning NON instead of a device handler name will assign a null handler to .DAT slots that are not needed. This will save core since no handler will be loaded at run time. 8-12 A[SSIGN) Form: i <I.lier a{,b,c,eto.J) ev <uio ev ON where: uic = legal User Identification Code dev = Device Handler name and unit (if applicable) a,b,c,etc. = Legal slot numbers NON = No device handler Examples: 1. To assign the teleprinter to .DAT slot -11 and the paper reader (version A) to .DAT slot 14, type: or ,1"..,.TT...,-11 I EtRa..114) 2. To assign UFO "ABC" to .UFDT slot -14, and the Disk Pack and UFO "TRE" to .UFDT slot 1., type: 3. To assign the Disk Pack to several .DAT slots, type: At...illPa...l,2,3,lSJ 8.5.3 KEEP ON/OFF This command instructs the Monitor either to retain or reset .DAT/.UFDT slot assignments after the current program (for which the assignments were made) terminates execution and control returns to the Monitor. "ON" retains assignments and "OFF" allows them to be reset. When a LOGOUT command is issued, the "OFF" parameter is automatically set. 8.6 8.6.1 CORE ALLOCATION COMMANDS BUFFS This command temporarily changes the parameter which specifies the default value for the number of buffers available in the Monitor's buffer pool for disk I/O and for the .GVBUF and .GTBUF Monitor Commands. The default value is restored whenever the Nonresident Monitor 8-13 returns. This value ]s set during system generation along with the actiual size of the bu.ffers to be allocated (the default values for systems as initially distributed are: Number of Buffers 3, Buffer Size= 5~- 8 ). = The user should exercise care when issuing this command, since the DEC~ disk and Disk Pack device handlers and the DECtape "A" handler obtain the buffers required for their operation from this pool. One of these buffers is required for each opened file. Terminal errors result when an insufficient number of buffers is available. Alternatively, program loading errors occur when the number of buffers allocated results in an insufficient amount of core for program loading. When requesting system programs, the user need not be concerned about buffer availability since each system program has its own default parameter for the maximum number of buffers required (e.g., MACRO has 3, EDIT has 2.). BUFFS~n) Form: where: n = number of buffers (decimal radix) desired. 8.6.2 X4K ON/OFF. This command informs the Monitor of the availability of a page (4K) of memory in systems which have an odd number of memory pages (i.e., 20K and 28K systems). The additional oore space, when specified as available, is used for loading system and user programs. 8.7 CORE IMAGE SAVE/RESTORE COMMANDS The commands described.in this section provide facilities for.saving and restoring the entire image of core. These conanands can be used to advantage not only for obtaining "snapshots" of core for debugging purposes, but also for rapid loading of commonly used programs, particularly user-created programs which use many library routines • These connnands work in conjunction with a reserved area on the DECdisk and each Disk Pack called the Save Area, or QAREA. The QAREA is a temporary storage area into which a core image may be dumped and from which core images are restored. This is considered a temporary storage 8-14 area since each time a command to dump core is given, the previous contents of this area are lost. Additional commands are therefore supplied, to permit users to create named files of core images in the QAREA. Such files can be used for permanent storage and can be restored to core via Keyboard commands. The DUMP program can be used to obtain listings of core dumped into the QAREA. B.7.1 CTRL Q This conunand interrupts the program currently running, dumps the entire contents of core into the QAREA of the system device and returns control to the Nonresident Monitor. Users with Disk Packs must specify on which unit the dump is to take place. The command is typed by simultaneously depressing the CTRL and Q keys on the keyboard. Upon receipt of the conunand, the Monitor echoes an tQ. (If no echo occurs, no QAREA exists on the device, or the sys~em has crashed.} If the system device is -Disk Pack, the Monitor waits for the user to type a unit number before processing, otherwise processing continues automatically, core is dumped into the QAREA and the Monitor regains control as shown below. Form: CTRL Q Response: tQn DOS-15 Vnn $ where: n = Disk Pack Unit Number 8.7.2 ODUMP l--7) This co11111and instructs the Monitor ·_to automatically execute a CTRL O command (see above) when a terminal !OPS error is detected. IOPS errors are listed in Appendix o. Form: Q [DUMP] 8.7.3 PUT This command instructs the Nonresident Monitor to create a file, which is a copy of the current contents of the specified QAREA, on the device associated with .DA'l' slot -14. If the system device is Disk Pack, a unit number can be specified, otherwise - is assumed. The user must type a file name whidh may consist of up to six characters and a three character extension. 8-15 Form: PUT [L...lh]~ filnam..._.ext) where: n = Disk Pack Unit Number (~-7}, ~ assumed if not specified filnam = File Name (1-6 characters) ext = Required filename extension (1-3 char;cters) 8.7.4 GET This command instructs the Monitor to restore (to core) a core image residing either in the QAREA of the system device, or on the device associated with .DAT- slot -14 as a named file (i.e., created by a PUT command). No name with the command gives the first option. If the user supplies a name, the second option (.DAT -14) will be taken. Execution of the restored core image is resumed by one of the Program Start/F~start Commands described in Paragraph 8.11 (CTRL P, CTRL T, or CTRL S). These commands can be issued either manually from the keyboard or automatically by argument in the GET command string. When a restored core image is to be restarted manually (i.e., by typing CTRL P, CTRL T, or CTRL L) , the user should wait at least 8 seconds after issui~ the GET to ensure the complete transfer of the core image before typing the command. When restoring a core image file from .DAT -14, the Monitor also places the core image in the QARF.A of the system device. Disk Pack unit numbers other than zero must be specified in the command string. This permits the user to conveniently use the DUMP program to obtain listings of core image files. Po=• GET{i} ] i._.nJ [~filnam ext]) where: P,T,S = Perform automatic proqram start P T S CTRL.P start address CTRL T start address CTRL S start address Note that there must be no space between GET or G and P, T, or s. If not specified, appropriate CTRL character must be issued from the keyboard. n = System device unit number (~-7) of Disk Pack QAREA to be u~ed. I f no~ -sp&Gi..fied, ,e_is assumed. 8-16 r. fl filnam ext Note: Name and extension of core image to be retrieved from .DAT -14. If not specified, the contents of the QAREA are restored. Since GET corrunands cause an entire core image to be brought in, all system conditions and parameters extant when cor_e was dumped ~re restored. This includes the DATE and TIME .SCOM registers. Examples: 1. Restore the QAREA of the DECdisk or Disk Pack unit ,0: type: GET) or G) Restore a core image file called DMPFIL ~~l and automatically start at the CTRL P address: 2. typ.e: Restore a core image file called DMPFIL -~2, placing the core image in the QAREA of Disk Pack unit 3: 3. type: Notice that a manual start must be perfor.med, since P, T or S was not specified with the GET. 8.8. VT15 DISPLAY COMMANDS The commands described in this section provide users who have conf igurations which include a VT15 Display Processor and a VT~4 Display Con- sole with the ability to display any text normally directed to the teleprinter on the screen of the VT~4 Display Console. The control commands are issued from the teleprinter keyboard and permit rapid switching between hard and soft copy output when operating with either the Monitor, system programs, or character lines can be displayed. us~r programs. Up to fifty-six 72- Keyboard input is echoed both on the display (when ON) and the teleprinter. When operated in this manner, the VT15/VT~4 Display System functions as an extension of the teleprinter and communicates directly with its device handler. 1 8.8.1 Operating Features 8.8.1.l Display Modes - Two modes of display are provided which are controlled by the two rightmost pushbuttons (#5 and #6) on the VT,04 console. 1 To operate the display as a separate I/O device, the user must use the software package described in GRAPHIClS Programming Manual, DEC-15-ZFSA-D. 8-17 a. Continuous (Scroll) Mgd,e - In this mode of operation, pushbutton #5 must be in the OFF position (i.e., not illuminated). Each text line is displayed on the screen starting at the top and progressing to the bottom. When 56 lines have been displayed, or the display buffer is full (as with HALF ON), each additional line causes all displayed lines to move up one line position and the top line to be deleted. b. Paging Mode - This mode of operation causes the display to stop after 56 lines have been output, or the display buffer is full. The display will then wait for the user's signal. Paging Mode is entered by setting pushbutton ts to the ON position (i.e., button #5 is illuminated) • The next display page is obtained by depressing pushbutton #6 once. 8.8.1.2 Clearing the Display Screen - The display screen can be erased at any time by depressing pushbutton #6 once and typing a Carriage RETURN. 8.8.1.3 Editing - Both single characters and entire lines can be deleted during input from the teleprinter keyboard using the standard keyboard editing commands RUBOUT and CTRL u. The only difference on the VT is that, when using RUBOUT, no backslash ( \ ) is echoed on the display; the unwanted character is simply deleted. 8.8.2 Display Command Descriptions The following paragraphs describe the three keyboard commands required for operating the display. B.8.2.l VT ON/OFF - The ON argumen!t of this command instructs the Monitor to load the routines which ~nterface the VT15 to the teleprinter's device handler and set up, the display buffer to the size specified by the HALF ON/OFF command (or its default setting). After this command has been typed, the user can switch at will between teleprinter and VT15 output using the CTRL x command described below. The routines and buffer space for display operation occupy either 1234 1 ~ locations (when HALF is on) or 1923 1 e locations (when HALF is off). The OFF argument of this cominand erases the display screen and releases the core area occupied by the display routines and display buffer. 8.8.2.2 HALF ON/OFF - This command: is used to set the size of the display buffer. This, in turn, limits the maximum number of characters which can be displayed on the VT~4 screen. The OFF argument permits a full size buffer to be created. The full size buffer allows 4~32 1 ~ characters to be displayed (i.e., fifty-six 72-character lines). The ON argument allows only a half size display buffer to be loaded. A half size buffer allows 2016 characters to be displayed (e.g., 28 72-character lines). Since most lines are not 72 characters long, more than 28 lines can usually be displayed with HALF ON. This feature is particularly useful during assembly or compiling operations when additional symbol table space is required. ON HALF'-'{OFF}) Form: 8.8.2.3 CTRL X - This command, formed by typing CTRL and X simultaneously, alternately switches text output either to the teleprinter or to the VT~4 screen. Once VT ON· has been issued, CTRL X can be typed at any time (i.e., with the Monitor, a system program, or a user program) to change output control. An up-arrow (+) is echoed on the device to whioh control-is- .tran&fen.'eG•· 8.8.2.4 Command Default Settings - The commands VT ON/OFF and HALF ON/OFF can be initially set during system generation to meet user requirements. The default settings for the DOS-15 system as initially supplied are: VT OFF and HALF OFF. 8.9 MISCELLANEOUS COMMANDS 8.9.l API ON/OFF This command controls the status of the Automatic Priority Interrupt System for machine configurations having this option. The ON argument enables the API and the OFF argument disables the API. Form: 8-19 B.9.2 33TTY ON/OFF This command instructs the teleprinter device handler to operate with hardware configurations having either a Model 33 or Model 35 terminal as the system teleprinter. The ON argument specifies a Model 33 terminal and the OFF argument specifies a Model 35 terminal. Form: 8.9.3 CHANNEL 7/9 This command sets a constant in the Monitor which is used by the Magtape device handlers as the default operation parameter for 7- or 9channel operation. Refer to the description of the Magtape handlers in Chapter 9 for further information. Form: C[HANNEL].._,{~}) 8.9.4 LP ON/OFF This command p~rrnits the text output resulting from the System Information Commands REQUEST, REQUEST USER, INSTRUCT, INSTRUCT ERRORS, and INSTRUCT SCOM to be output to a line printer, if one is available· The ON argument directs output to the line printer and the OFF argument restores output to the teleprinter. 8.9.5 BANK ON/OFF PAGE ON/OFF These commands permit the user to select either Bank or Page Mode In Page Mode, relocatable system and user programs (inoperation. eluding device handlers) are loaded within 4K memory pages, and Index Register usage is permitted. Library routines are loaded from the library residing in the PAG UFO. In Bank Mode, Index Register usage is not permitted, and user programs (including device handlers} are loaded within SK memory banks, and system library routines are loaded from the library contained in the BNK UFO. Either BANK OFF or PAGE ON sets the system to operate in Page Mode. Conversely, 8-20 BANK ON or PAGE OFF sets the system to operate in Bank Mode. Form: ON BANK '--' {OFF} ) 8.9.6 DATE or ON } PAGE'--' {OFF ) This conunand is used either to enter a calendar date or to examine the calendar date currently stored in the Monitor. This information is used by· the system to indicate the date of creation of mass storage files. If no date has been entered into the system, each time con- trol is returned to the Monitor it outputs a message requesting that a date be entered. When a date is to be entered, the entire date (month, day and the last two digits of the year) must be typed. The DATE conunand with no argument causes the date currently stored in the Monitor to be typed out. Form: D[ATE)[ ._.mm[/)dd[/]yy) ) where: mm • Month {~1-12) dd Day of Month yy Year (~1-31) ('7~-'99) If the slash delimiters (/) aie used, leading zeroes can be omitted; otherwise all six digits must be typed. 8.9.7 TIME This command is used either to enter or to examine the time of day currently stored in the Monitor. Monitor every second. as a 4-digit number This information is updated by the When time is to be entered, it must be typed (~~~~-2359) in 24-hour clock notation. The TIME command with no argument causes the current time of day (as kept in the Monitor) to be typed out. Form: T[IME] [._,hhrnm) ) where: (~~-23) hh Hours mm Minutes (~~-59) 8-21 8.9.8 TIMEST This coll1111and instructs the Monitor to terminate the current operation and restart itself after a specified time interval has elapsed. The command is particularly applicable when operating in Command Batching Mode (discussed in 8.12 ), since i t permits users to unconditionally terminate a program's operation if its execution time exceeds that value expected for normal operation. The time interval can be speci- fied in minutes, seconds, or a combination of both. The maximum time interval (total minutes and seconds) can not exceed 131,071 seconds. Once executed, a TIMEST command can only be nullified by a subsequent LOGIN or LOGOUT command. Form: mm TIMEST ~ mm~~ Example: ) TIMEST :5281 (5281 seconds) where: or TIMEST 88:1 (88 minutes, 1 second) 8.9.9 mm Minutes SS Seconds LOG This command instructs the Monitor to ignore subsequent keyboard input and is used primarily for making operator comments. Typing ALT MODE restores the keyboard for normal command input. Fonn: L[OG] ) . comment corrunent ALT MODE 8.9.10 HALT This command will cause the Monitor to halt computer operation. after terminal IOPS errors. Press CONTINUE, followed by CTRL P or CTRL c to continue system operation. Form: H[ALT] ) 8.9.11 CTRL D This command, formed by simultaneously striking the CTRL and D keys on the teleprinter keyboard, is used to indicate an end-of-file condition when the keyboard is used as an ordinary input device (as opposed to its being used as a command input device). CTRL D signals the teleprinter's device handler, or other keyboard device handler, if available, to 8-22 transmit a header word pair to the t:equesting program's I/O buffer in which bits 14-17 are set to the end•of-file code /U~l 2 • Any information currently in the buffer is lost. In !OPS ASCII mode, therefore, a carriage RETURN should always precede a CTRL D in order to assure output of the last line. 8.10 SYSTEM PROGRAM LOADI~ COMMANDS The commands described in Table 8-1, System Program Loading Commands, are used to instruct the system loader within the Monitor to load the various language and utility programs which are part of the DOS-15 Software System. Each command must be typed as shown, terminated by either a Carriage RETURN or ALT MODE. 8.11 PROGRAM START/RESTART/CONTINUE COMMANDS The commands described below are used to provide keyboard control during system and user program operation. The format of these commands has been previously described in paragraph 8.2.1. 8.11.l CTRL C This command returns control to the Nonresident Monitor. It can be typed at any time, signaling the Monitor that the user wishes to abort a program, or enter a keyboard command. In returning control to the Nonresident Monitor from a previously executing program, all device and UFD assignments are returned to their default settings unless the KEEP ON command is in effect (see 8.5.2 and 8.5.3). CTRL c can also be used to terminate the Monitor's processing of all keyboard commands except for TIMEST (see 8.9.8). In this case, device and UFD assignments are not affected. 8.11. 2 CTRL P This command restarts system programs, terminating current operation. Upon execution of this co11U11and, control is transferred to the start address specified in the last .INIT I/O Macro to the teleprinter. User programs may use this restart facility by issuing a .INIT_macro 8-23 Table '8-1 SYSTEM PROGRAM LOADING COMMANDS Program Loaded Command F4 FORTRAN IV compiler. M1\.CRO MACR0-15 Assembler. EDIT Symbolic Text Editor. EDITVP Symbolic Text Editor for the VP15A Display. EDITVT Symbolic Text Editor for the VT15/VT.IJ4 Display System. LOAD LinkiIVJ Loader (manual program start) GLQAD Linking Loader (load and go program start) PIP Peripheral Interchange Program. DDT Dynamic Debugging Tedhnique Program DDTNS DDT program with no user symbol table loaded (i.e., octal number debugging) • DUMP Program to create listiIVJS of the contents of the QAREA (see 8.7). CHAIN Program to create a system of core overlays. E[XECUTE] Control program which supervises core residency during execution of a CHAIN•built overlay system. SRCCOM Source Compare Progr~m (for comparing two ASCII files). MTDUMP Magtape user's utili~y program. DTCOP'l High-speed DECtape ctjpy program. SGEN 1 System Generator Program. PATCH 1 Mass Storage Patching Program. UPDATE Program to create and update library files. 8TRAN Program to translate PDP-8 code to PDP-15 code. 89TRAN Program to translate PDP-8 code to PDP-9 code. I TKB RSX15 Task building program. 3 ' - 1 This program can only be run when the user is logged-in to the system with the MICLOG command. zWhen this program is used with the system device, the user must be logged-in under the MIC. 3 ~ to RSXlS Reference Manual (DEC-15-GRQA-D). 8-24 to .DAT-2 (which is permanently assigned to the teleprinter handler). See 6.7.6 and the description of the teleprinter handler in Chapter 9. CTRL P is ignored until the teleprinter handler receives the proper .INIT. 8.11.3 CTRL S This command is used to start a program loaded by the Linking Loader via the LOAD command. 8.11.4 CTRL T This command is used only with the DDT program and the Monitor's Command Batching Mode (see BATCH described below). When used with DDT, CTRL T terminates execution of the program being debugged and causes DDT to enter command mode. When used with the Monitor's Command Batching Mode, it causes the current job to be terminated and a skip to the next job. 8.11.5 CTRL R This cormnand permits the user to c¢ntinue program operation either after an IOPS4 (I/O device not ready) error occurs, or after the execution of a $PAUSE (see 8.12.3.4). Prior to typing this command, the user must first correct the condition which caused the error (e.g., DECtape unit incorrect, OFF LINE, etc.). 8.12 BATCHING KEYBOARD COMMANDS Most of the Monitor's keyboard commands, as well as the keyboard commands for most system programs, can be issued from either the card reader or the paper tape reader. This is possible when the system is in the Monitor's Command Batching Mode. Batching Mode allows many programs to be run in sequence with minimum operator intervention. A typical sequence of operations might include file editing, assembly and program execution. All commands input from the batch device arc echoed on the console teleprinter. 8.12.1 Preparation For Command Batching Mode, the progranuner must prepare a paper tape or a deck of punched cards which contains the keyboard commands for ~-25 the operations to be performed. These commands should be in the same order and form as they would normally be issued from the teleprinter keyboard. The only exception to this is that certain job rqntrol commands must be inserted in the command sequence. When pre- paring paper tapes, the user will find it convenient to use the system's Teo:t Editor Program EDIT. When preparing commands for input from cards, the user can prepare his cards using a card punch which punches either 02J or 026 Hollerith codes (see Appendix F). 8 .12. 2 Opera tor Commands The following ~ conman~s ~ - l?..2.1 are provided for operator control: This command is used to enter Command Batching Mode. Once this command is jssued, the Monitor begins to read from the batch device specifi?d (PR= paper tape reader, CD= card reader). PR Form: B[ATCH] l..J {CD} 8.12.2.2 ) CTRL T - This command causes the Monitor to skip to the next job (i.e., skip to·the next $-JOB job separator. See 8.12.3.1). CTRL C - This cOl'l'llland is ~sed to terminate Command Batching 8.12.2.3 Mode operation. It operates in al~ other respects as it does with normal keyboard operation (see 8.1~.l). 8.12.2.4 CTRL R - This command is'. used to recover from either the exec 11tion of a $PAUSE (see 8 .12. 3. 4) or an IOPS4 (see 8 .11. 5) . 8.12.3 Job Control Commands The following conmands are inserted into the normal keyboar~ command sequences on the batch device mediumto provide job control. B.12.3.1 $JOB - This command separates one job from the next. loading of any system or user program constitutes a job.) (The The command operates, within the context of Command Batching ~ode, in a manner similar to the CTRL C command since it causes the Batching Mode Nonresident Monitor to be reloaded, and all .DAT/.UFDT slot assignments to be reset to their default settings, if KEEP is OFF. $JOB must occur as the first command on the batch medium and can be used thereafter each time the 8-26 user wishes to exit from 11ie-cu.:trent pro·gram and issue another command to the Monitor. Form: $J"OB.._.comment ) where: comment = User comments 8.12.3.2 $DATA - When the batch device is to be used for data input (as it might be in non-batch mode), this command marks the beginning of the data. Unlike BATCH commands, data is not printed on the teleprinter. Form: where: $DATA~omment) . comment = User comments 8.12.3.3 $END - This command follows the $DATA command and data to signify the end of the data. Form: $END._,comment ) where: commeJlt = user collllllents. 8.12.3.4 $PAUSE - This command terminates input from the batch device until the operator types a CTRL R. It has particular application when the user wishes to signal the operator to mount a DECtape, reload the batch device, or perform some other manual operation. Form: $PAUSE.._.comrnent ) where: comment = User comments $EXIT - This command signals the Monitor to leave Command Batching Mode and resume operation using commands from the teleprinter keyboard. 8.12.3.5 Form: $EXIT....,comment ) where: comment - User comments 8.12.4 Restrictions When operating in Command Batching Mode, the following restrictions apply: 8-27 8.13 a. The following comnands are illegal: QDUMP, HALT, GET (all forms), PUT, BATCH, BOSS 15, LOAD, DDT, DDTNS. b. Any ASSIGN command which references either batch device will automatically obtain the services of the current batch device handler. This is because the card and paper tape devices are mutually exclusive when in Batching Mode. Thus, if the card reader is the batch device, an ASSIGN PR -4 will result in the card reader assigned to .DAT -4. Functions provided by these handlers are equivalent to those provided in the PRA or COB handlers as described in Chapter 9. c. When using the REQUEST canmand, .DAT slots assigned to the batch device are printed as either PR* {paper tape reader) or CD* {card reader) . KEYBOARD ERROR DETECTION AND HANDLING The Monitor performs comprehensive error checking on all keyboard commands typed. Upon detection of an error, an appropriate message is output to the teleprinter indicating the nature of the error, and the remainder of the line from the error is ignored. The dollar sign ($) prompting symbol is then output to indicate the Monitor's readiness to accept another command. Keyboard errors which result during opera- tion of system programs are explained in the appropriate reference manual for the particular program {see Preface). Error messages which are prefixed by "IOPS", ".SYSLD" or", LOAD" are listed and explained in Appendices D and E. respectively. CHAPTER 9 I/O DEVICE HANDLERS 9.1 INTRODUCTION This chapter describes the I/O device handling routines which are supplied as a part of the DOS-15 system software. Included in this chap- ter are their operating characteristics and their applicability for use with the various language and utility programs in the DOS-15 system. Each I/O device handler has a unique three-character name which is used when assigning it to a .DAT slot via the ASSIGN keyboard conunand (see 8.5.2). The first two characters of the name designate the device with which the handler operates. TT = Teleprinter, etc. For example: DK= DECdisk; DP = Disk Pack; The third character specifies a particular ver- sion of a handler, since some I/O devices have several handlers. OK~ designates the "A" version of the DECdisk device handler. DT£ is the "C" version of the DECtape handler. Thus, Similarly, Table 9-1 lists the standard DOS-15 I/O device handlers. -·· -Table: 9.:1 DOS-15 I/O DEVICE HANDLERS 1 ' Device Name DK (OECdisk DP (Disk Pack) OT (DECtape) TT (Teleprinter) PR (Paper Tape Reader) PP (Paper Tape Punch) ~--- LP (Line Printer) B c D E F ./ I I ./ ./ ./ ./ I I ./ ./ I I I I ./ ./ (VPl SA Display) r-.tT (Mag tape) ./ ./ CD (Card Reader) VP Version A ./ t--- t------ ./ I I 1 Users having a VT15 Graphic Display System should refer to the GRAPHIC15 Progranuning ~anual (DEC-lS~ZFSA-D) for descriptions of the associated device handlers VTA, LKA, and VWA. 9-1 The availability of several handler versions allows the user who is concerned with core utilization to select a particular version with the size and capabilities most nearly suited to his needs. Device handler versions differ from one another in the number of I/O functions (Macros) and Data Modes allowed, and in the number of files which can be accessed concurrently. The fewer capabilities allowed, the smaller the handler. "A" version handlers are the largest, but also provide the greatest capabilities. Other versions are more limited, and consequently are smaller. In selecting a handler, the user must consider all I/O requirements for the program with which it is to run. What I/O Macros and Data Modes are used? Is output required? How many files may be concurrently open? To assist the user in selecting handlers, paragraph 9.2 lists all versions of the handlers which can be assigned to the various .DAT slots used by the various DOS-15 System programs, and paragraph 9.3 describes the specific functional characteristics of the handlers. 9.2 DEVICE HANDLERS ACCEPTABLE TO SYSTEM PROGRAMS The following paragraphs provide listings of .DAT Slot assigrunents for the various system programs and the I/O device handlers which may be assigned to each. Standard assignments for the system initially supplied are indicated by an asterisk (*). 9-2 NOTE: Only one I/O handler for a particular device may be in core at the same time, since there is no colllllunication between the interrupt handling routines. 9.2.1 FORTRAN IV (F4) .DAT Slot -13 -12 Handler ~ Output Listing PPA PPB PPC *DK.A, DKB, *TTA LPA VPA PPA DK.A, DKB, *DPA, DPB, DPA, DPB, i OTA, MTA OTO, DTE DTF, MTF DTA, MTA DTD DTE DTF, MTF OTA, MTA OTC, OTO, DTE, DTF, MTC t--· -11 Input TTA J.>RA PRB *DK.A, DKB, DKC, 9-3 *DPA, DPB, DPC, MTF 9.2.2 MACR0-15 .DAT Slot -14 Handler ~ Macro Definitions File ·TTA PRA PRB CDB *OKA, DKB, DKC, *DPA, DPB, DPC, PPA PPB *OKA, DKB, *DPA DPB *TTA LPA VPA PPA, DKB, TTA PRA PRB CDB *OKA, OKB, DKC, OTA, DTD DTE MTA DPA, DPB, OTA, DTD DTE MTA *DPA, DPB, DPC, OTA, DTD DTE MTA i------· -13 -12 -11 Output Listing Output Input ·--- 1-----·-- ....10 Parameter File Input *TTA PRA PRB CDB OKA, OKB, DKC, 9-4 DPA, DPB, DPC, OTA, DTD DTE MTA 9.2.3 FOCAL .DAT Slot ~ 1----··---- Library Input 3 51 --I- TTA PRA PRB COB *DKA, DKB, DKC, TTA PPA OKA, DKB, LPA, VPA Library Output . Handler --- _________, *DPA, DPB, DPC, OTA, OTC, DTD, DTE MTA MTC DPA, DPB, OTA, OTO DTE MTA DPA, *DTA, DPB, OTC, DPC, OTO DTE MTA MTC DPA, *OTA, DPB, DTD DTE MTA 1---· 7 ··-· Data File Input TTA PRA PRB COB OKA, DKB, DKC, DKE, -·--- ---- --- - ---10 Data File Output TTA PPA OKA, DKB, LPA VPA 1 Prior to loadill9 FOCAL, this .DAT slot must be reassigned to one of the devices listed, if library output is desired. 9•5 9.2.4 EDIT, EDITVP, and EDITVT .DAT Slot -15 t-----·- - ~ Scratch/ Output Handler , TTA VPA LPA PPA *OKA, DKB, *DPA, DPB, DTA, DTD DTE MTA -- ·-- ·-------+-- -14 Input TTA PRA PRB COB *DKA, DKB, DKC, *DPA, DPB, DPC, OTA, DTD DTE MTA *TTA PRA PRB COB DKA, DKB, DKC, DPA, DPB, DPC, OTA, DTD DTE MTA r--10 10 9.2.5 Secondary Input Display Output (EDITVP only) VPA Linking Loader and DDT .DAT Slot -5 -4 -1 Handler ~ -- External User Library Input user Program Input System Library Input *NON PRA *DKA, DKB, DKC, *DPA, DPB, DPC, OTA PRA *DKA, DKB, DKC, *DPA, DPB, DPC, OTA 9-6 DTC DTD DTE OTC OTO DTE 9.2.6 PIP (Peripheral Interchange Program) PIP uses all positive .DAT slots and -2 and -3 for TTY I/O. Prior to use, any non-standard device assignments should be made via the ASSIGN command to the Monitor. If several functions are to be used with a variety of peripherals, assignment of these devices all at the same time avoids the necessity for returning to the Monitor to reassign devices and for repeatedly reloading PIP after each operation that requires a new device. NOTE The device handlers used with PIP should normally be those having the greatest capability (i.e., PRA, PPA, DTA, DKA, etc.). If both input and output are to occur on the same device (e.g., DECtape), separate .DAT Slots must be assigned. Both .DAT Slots must be assigned to the same handler. Positive .DAT Slot assignments for the system, as initially supplied, are as follows: 9. 2. 7 Handler .DAT Slot Use 1 I/O *DKA or *DPA 2 I/O *DKA or *DPA 3 I/O *OKA or *DPA 4 I/O *TTA 5 6 7 Input *PRA Output *PPA . ~- - I/O *DTA lfiJ 11 I/O *DTA I/O *NON 12 I/O *NON 13 l./O *NON 14 I/O *NON 15 16 I/O *NON I/O *NON 17 1/0 *NON 2fi' I/O *NON SGEN (System Generator) .DAT Slot Use -14 Input/Output Handler I------ *DKA 9-7 or *DPA 9.2.8 PATCH .DAT Slot 9 , 2 •9 Use -14 I/O *DKA, *DPA, OTA DTD DTE -1~ Secondary Input *TTA PRA DKA, DPA, DTA UPDATE .DAT Slot -15 -14 -12 -1, Handler ~ PPA PPB PPC DKA, DKB, DPA, DPB DTA, MTA PRA *DKA, DKB, DKC, *DPA, DPB DPC DTA, MTA DPA, DPB DTA, MTA DKB, *TTA PRA DKA, DKB, DKC, DPA, DPB DPC DTA, MTA Output Input Listing -· 9.2.10 Handler - LPA *TTA VPA PPA ~--··--- Secondary Input - -·DJCA; DUMP .DAT Slot use -- -14 Input *DKA, DKB, DKC, -12 Listing *TTA LPA VPA PPA DKA, DKB, Handler 9-8 MTA *DPA, *DTA, DTD DPB, DPC, DTE -·· -------- - ·-·----- DPA, DPB, DTA, DTD DTE MTA 9.2.11 CHAIN .DAT Sloj;j Handler ~ (same as .DAT slot -4 when used) -5 User Library *NON -4 Input PRA *DKA, DKB, DKC, -1 System Library DPA, DPB DPC, DTA, MTA DTC, DTD DTE MTC r· if nonly other DT, DK, or MT is assigned. Same as for .DAT -4 -NOTE use the smallest handlers possible since they are not recoverable as user handlers in the overlay system. 9.2.12 EXECUTE .DAT Slo_! -4 9.2.13 Use ' Handler jcHAIN-Built PRA ' *Dl?A, DTA, joverlay Sys- *DKA,; tern Input DKB, DPB (i.e., ~... - _nxc,, ___ .DP.C,_ .DTC,. XCU Files) OTO DTE MTA~·· only if MTC nc;it shared with overlay system SRCCOM (Source Compare) 1 .DAT Sloj Handler Use -15 jold File Input TTA not assigned to -14) PRA (if not assigned to -14) COB (if not assigned to -14) MTA *OKA, *DPA, OTA, DKB,• DPB, DTD DKC, DPC, DTE -14 New File Input TTA (if not assigned to -15) PRA (if not assigned to -15) CDB (if not assigned to -15) *OKA, *DPA, DTA, MTA DPB, DTD DKB, DTE -12 Listing *TTA PPA LPA VPA OKA, DKB, -- (if -· ·-~·- --·- .. - -- ~ --' 9-9 DPA, DPB, OTA, DTD, DTE MTA 9.2.14 DTCOPY (DECtape Copy) Use ....15 output DTA DTD DTE -14 Input OTA DTD DTE 9.2.15 BTRAN (PDP-8 to PDP-15 Translator) 89TRAN (PDP-8 to PDP-9 Translator) .DAT Slot ~ -15 Input -14 9.2.16 Output Handler PRA COB TTA *OKA, , DKB, , DKC, *DPA, DPB, DPC, OTA, DTD DTE MTA PPA LPA TTA VPA OKA, DKB, DPA, DPB, DTA, DTD DTE MTA MTDUMP (Maqtape User's Utility Program) .DAT Slot 2 !---· 9.3 Handler 1 .DAT Slot Handler ~ 1 Input MTA, MTF 3 Output MTA, MTF, TTA I/O HANDLER DESCRIPTIONS The following paragraphs describe the operating features of .the standard DOS-15 I/O Device Handlers. The DOS-15 System Manual (DEC-15-NRDA-D) describes functions which are internal to the handlers and provides instructions to assist users in creating their own special device handlers. users having a VT15 Graphics Display System should refer to the GRAPHIC15 Programming Manual (DEC-15-ZFSA-D) for descriptions of the associated device handlers VTA, LKA, and VWA. 1 Prior to program loading, one of these handlers must be assigned to both .DAT slots. 2 Prior to loading this program, the .DAT slots must be reassigned to one of the handlers listed here. 9-10 9.3.1 Teleprinter Handler (TTA) 9.3.1.l General Description : The teleprinter handler is embedded in ' the Resident Monitor and provides all functions necessary for teleprinter input/output. The handler performs I/ O using either !OPS ASCII (Mode 2) or Image Alphanumeric (Mode 3) data. Table 9-2 lists the handler's responses to the various I/O Macros. Table 9-2 TELEPRINTER 1/0 FUNCTIONS Macro Response .INIT .FSTAT .REN.AM .DLETE .RAND .RTRAN .SEEK Accept Ignore Ignore Ignore Illegal Illegal Ignore l;gnore Ignore Accept Ignore Accept Accept Accept Accept Illegal . EN'l'_~-.CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN Illegal = Illegal Function (IOPS6) 9.3.l.2 Device Dependent Characte!istics - The following paragraphs describe the characteristics which are unique to the teleprinter handler in its response to certain I/O Macros and characters: a. .INIT l) Maximwn I/O buffer size returned: 42 8 (34 10 > 2) Set up CTRL P restart address from address specified in .!NIT argument "restrt". Refer to the DOS-15 System Manual (DEC-15-NRDA-D) for setup of the restart addresses for CTRL c • and CTRL T. 3) Output Carriaqe RETURN/LINE FEED 9-ll b. .CLOSE - Output Carriage RETURN/LINE FEED. c. .WRITE - When in IOPS ASCII Mode a LINE FEim is normally output automatically before the line (logical record) is output unless an Overprint (2,0) is the first character (see Table 9-3). d. Non~Printing Function Characters - The non-printing function characters contained in Table 9-3 have special significance when input and output in IOPS ASCII mode. Table 9-3 - SPECIAL NON-PRINTING FUNCTION CHARACTERS FOR IOPS ASCII TELEPRINTER I/O FUNCTION (ASCII in parentheses) Carriage RETURN TRANSFER DIRECTION Input Insert all characters typed, including this Carriage RETURN, since the last Carriage RETURN or ALT MODE, into the requesting program's I/O Buffer. Echo a LINE FEED on the printer. Output Terminate output of the contents of the requesting program's I/O buffer. Output Carriage RETURN. Input Terminate the current line and insert all characters typed since the last Carriage RETURN or ALT MODE into the requesting program's I/O buffer. Map into the I/O Buffer as 175. output Terminate output of the contents of the requesting program's I/O buffer. (,015) ALT MODE ACTION (33, 175, 176) 1--------------~------..._ LINE FEED ______________ -- -- - Input Insert in requesting program's I/O buffer. Output Ignore if this is the first character in the I/O buffer1 otherwise, output. (fll2) --------------+-------+----------------------·-· -- VT (Vertical Tab) Input Insert in requesting program's I/O buffer. Output Model 35 teleprinters output FORM Feed. Model 33 teleprinters ignore. (fll3) or FORM Feed (,014) 9-12 Table 9-3 FUNCTION (ASCII in parentheses) ----··· ------ - ... TRANSFER DIRECTION (Cont.) ACTION --------- -- --·--- -------------- --···------ - - Input Insert in requesting program's I/O buffer. Output Model 35 teleprinters output TAB (.fill}. Model 33 teleprinters output suff icient number of SPACES (,04,0) to position printer at columns 9, 17, 25, .•• etc. Skip One Line (,021) Output Only I f this is the first character- in the requesting program's I/O buffer, skip 1 line. Otherwise, ignore. Overprint (,02,0) Output Only If this is the first character in the Horizontal TAB C,IHl) -·-· - requesting program's I/O buffer, suppress the LINE FEED normally output. Otherwise, ignore. --- t----- RUBOUT Input (177) Delete the last character typed previous to this and echo a backslash ( 1-------- CTRL U {,02 5) Null (,0,0,0} CTRL D (,0,0~} 9.3.1.3 --- \ ). -----·-·- -- ·-···-·· Input Delete all characters typed since tile last Carriage RETURN or ALT MODE, and echo an "at" sign ( @ ) Output If typed while output is under way, ttuncate the remainder of the logical record being input and output an "at" sign ( @ } plus Carriage RETURN. Input/ Output Ignore Input T:tansmi t to the requesting program's I/O buffer a logical record which consists of a header word pair only, with the I/O Mode Bits (14-17) set to ,01,01 to indicate end-of-file. (See paragraph 6.3.1.1.) - . ------ -- . - ---- Program Control Characters - The teleprinter retains its role as control device during all I/O operations. (CTRL C, CTRL P, CTRL The CTRL characters s, and CTRL Tl are recognized when typed, regard- less of Data Mode or transfer direction. These characters perform specific system functions as described in 8.1 • Experienced users who wish to alter their meaning may do so using procedures described in the DOS-15 System Manual fDEC-15-NRDA-D). 9-]3 9.3.2 Paper Tape Punch Handlers (PPA, PPB, and PPC) 9.3.2.1 General Description - There are three paper tape punch handlers: PPA (571 8 registers), PPB (416 8 registers), and PPC (322 8 registers). All three handlers respond identically to the I/O Macros, but differ as to the various data modes which are acceptable to them. Table 9-4 lists the data modes which are acceptable and Table 9-5 shows the handlers' responses to the I/O ~acros. Table 9-4 PAPER TAPE PUNCH DATA MODES Handler PPA PPB _Data Mode IOPS ASCII IOPS Binary Image Alphanumeric Image Binary Dump PPC x - - x x x x x x x - x x - Table 9-5 PAPER TAPE PUNCH I/O FUNCTIONS Macro Response .INIT .FSTAT .RENAM .DLETE .RAND .RTRAN .SEEK .ENTER .CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN Accept Ignore Ignore Ignore Illegal Illegal Illegal Ignore Ignore Accept Ignore Illegal Accept Accept Accept Illegal Illegal Illegal Function (IOPS6 Error) 9-14 9.3.2.2 Device Dependent Characteristics - The following paragraphs describe the characteristics which are unique to the Paper Tape Punch Handlers in their response to certain I/O Macros and characters. a. .INIT - 1) 2) b. .CLOSE- 1) 2) c. Maximum I/O buffer size returned: 648 (5210). Punches two fanf olds of leader. Output EOF (end-of-file) header word pair (see 6.3.1.l) as last record on the tape. Punches two fanfolds of leader. Special Characters - The characters listed in Table 9-6 have special significance to the handlers when output in IOPS ASCII Mode. These characters, except TAB, are ignored if they do not appear as the first character in a logical record (line). If a LINE FEED, VT (Vertical Tab) , or FORM Feed does not appear as the first character in a logical record, a LINE FEED is supplied by the handlers. Table 9-6 SPECIAL FUNCTION CHARACTERS FOR FIRST CHARACTER IN LINE FUNCTION ACTION 1 LINE FEED Output. (IJ12) VT (Vertical TAB) (l<Jl3) Output, followed by four RUBOUTs 1 FORM Feed (IJ 14) Output, followed by 40 Nulls 1 (lrJl<JlrJ) • Horizontal TAB (IJll) output, followed by one RUBOUT 1 9.3.3 (177). (177). Paper Tape Reader Handlers (PRA and PRB) There are two paper tape handlers: registers). PRA (673 8 registers) and PRB (446 8 Both handlers respond identically to the I/O Macros, but differ as to the data modes which are acceptable. Table 9-7 lists the data modes which are acceptable, and Table 9-8 shows the handlers' response to the I/O Macros. 1 The RUBOUT and NULL functions which follow output of the desired characters are used for hardware timing purposes when the paper tape is to be transmitted to a printer in an off-line environment. 9-15 Table 9-7 PAPER TAPE READER DATA MODES Handler Data Mode PRA PRB IOPS Ascii IOPS Binary Image Alphanumeric Image Binary ~Dump x x x - x x x - Table 9-8 PAPER TAPE READER I/O FUNCTION Response Macro .INIT .FSTAT Accept 1 Ignore Ignore Ignore Illegal Illegal Ignore Illegal Illegal Accept Ignore Accept Illegal Accept Accept Illegal .RENAM .DLETE .RAND .RTRAN .SEEK .ENTER .CLEAR .CWSE .MTAPE .RF.AD .WRITE .WAIT .WAITR .TRAN Illegal 1 Illegal Function (IOPS6 Error) Maximum I/O buffer size returned: 64 8 (52 10 1. 9-16 9.3.4 DECtape Handlers (O'l'A, DTC, O'l'D, DTE, and DTF) 9.3.4.l General Description - There are five DECtape handlers for TU55/TU56 DECtape operation: o OTA (2761 8 locations) is the most general DECtape handler provided. It has a simultaneous threefile capacity, either input or output. Input files can be referenced on the same or different DECtape unitsi however, not more than one output file can exist on the same unit. (I.e., file creation on the same unit must occur sequentially.) o DTC (1261 8 locations) is the most limited and also the most conservative of core (for IOPS data mode operations) of the handlers. It is an input only handler with a one-file capacity. o DTD (307i 8 locations) provides single file operation, either input or output. o DTE (2674 8 locations) is simi1ar to DTD, differing only in its I/O function capabilities as shown in Table 9-10. o DTF (11519 locations) is a handler which simulates the non-directoried, sequential access file structure of Magtape. It accommodates (serially) up to eight DECtape units, both input and output. When the last block of a tape on a particular unit has been accessed, DTF oauses the Monitor to output an IOPS4 message (Device Not Ready) to permit the operator to remove the current tape from the DECtape drive and mount another. The operator can then type a CTRL R to continue processi~. ·rable 9-9 illustrates the data modes which are acceptable to these handlers, while Table 9-10 shows the handlers' responses to the various I/O Macros. Table 9-9 DECTAPE DATA MODES Data Mode DTA Handler OTC DTD !OPS ASCII !OPS Binary Image Alphanumeric Image Binary Dump x x x x x - ~ x DTE DTF x . x x x x x x x ··-- 1 - - - - -x x 9-17 x x --·-···--t--·. - 9.3.4.2 Device Dependent Characteristics - The following character- istics are unique to the DECtape Handlers in their responses to certain r/O Macros. a . . !NIT - Maximum I/O buffer size returned: 377 8 (255 10 >. b. .MTAPE 1) DTD accepts REWIND and BACKSPACE RECORD subfunctions only. 21 DTF accepts REWIND, BACKSPACE RECORD and SKIP RECORD subfunctions only. Table 9-10 DECTAPE I/O FUNCTIONS Handler Macro .INIT .FSTAT .RENAM .DLETE .RAND .RTRAN .SEEK .ENTER .CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN 9.3.S OTA OTC DTD Accept j DTE DTF p. Actept Att t Accept Illegal r11Igal Illegal Illegal II:: Illr Illr Illr Acrl "T' Accept ~ Illegal Illegal • Illegal Accept Illegal Accept i Ignore + Illegal Accept Illegal Accept Ignore Accept + Illegal Accept Ig~ore Aclept Illegal j Accept Illlal DE.Cdisk and Disk Pack Handlers (DKA/DPA, DKB/DPB, and DKC/DPC) 9.3.5.1 General Description - Three handlers are provided for RV-15 DECdisk and RP-02 Disk Pack operations. Version for version, these handlers are identical in their functions with these two exceptions: a. While both the DECdisk and Disk Pack are block addressable for direct access operations (.TRAN and .RTRAN Macros) the DECdisk in addition provides word addressability. 9-18 b. The Disk Pack has a unit structure while the DECdisk does not. This means that each DECdisk is treated as a single addressable unit regardless of the actual number of platters incorporated (up to 8). All versions of these handlers support the disk file structures described in Chapter3. There is no fixed limit as to the number of input or output files which can be simultaneously accessed, except as determined by the amount of available buffers. To this end, the handlers perform dynamic buffer allocation from the Monitor's buffer pool, using the .GTBUF and .GVBUF Monitor Macros described in Chapter 5. At run time, the operator need only be concerned that the number of files concurrently accessed is not greater than the number of buffers allocated by the BUFFS Keyboard command (see 8.6.1). The following colllllands obtain buffers from the pool, and return them immediately upon completion of the operation: .DLETE .RENAM .CLEAR The following commands obtain a buffer from the pool and do not return it until a subsequent .CLOSE, .INIT or Rewind (.MTAPE) is performed: .FSTAT .ENTER .SEEK .RAND The following conunands return a buffer to the pool, if any·was taken: .INIT .CLOSE .MTAPE (Rewind subfunction) The handlers operate in all data modes (i.e., IOPS, Image, and DUllip). Table 9-11 lists the I/O Macros which are acceptable to the various handler versions. 9.0.19 Table 9-11 DECDISK AND DISK PACK I/O FUNCTIONS Handler DKB(3631 8 ) DPB(4007 8 ) DKA(4274 ) Macro DPA(4561~) .INIT .FSTAT .DLETE .RENAM .RAND . RTRAN .SEEK .ENTER .CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN • Accept Accept Accept Accept I Illegal Illegal + Accept Accept Illegal Accept Illegal Accept - -- t Accept i , DKC (21638) DPC (22758) Illegal I • Accept Illegal Illegal Accept Illegal Accept Illegal Accept Accept Illegal 9.3.5.2 Device Dependent Characteristics - The following characteristics are unique to these handlers in responding to certain I/O Macros: a. . !NIT ll Maximum I/O buffer size returned: 376 8 (254 10 ). 2) The disk handlers allow write verification on output files. If the file is defined as an output file, the user has the opportunity of guaranteeing the integrity of his data by using 11 8 as the "dd" argument to the .!NIT macro. The handler will then check every block of data it writes out, to ensure that the transfer occurred without error. A second .!NIT command must be executed to remove or add the write checking feature. 31 An output file already opened on a .DAT slot referenced by .INIT will be deleted. If a .!NIT references a .DAT slot with an opened input file, the handlers will close it, and give back the buffer it was using. 4) Control is retained until all necessary I/O is complete. 5) The .INIT macro uses the relationship between the User File Directory Table and the Device Assignment Table to get the correct UIC from the User File Directory Table. If the user is changing UIC's under program control (via .USER macros), the operation must be accomplished before a .!NIT in order to obtain the desired UFD. 9•20 b. .DLETE 1) Control is not returl,ned until all necessary Disk I/O is complete. If the UIC associated with this .DAT slot does not exist in the MFD, or if the named file can not be found, the disk handlers ignore this macro. If the name is found, the h andlers return the first block number of the file in the AC. The buffer used by the handlers to delete the named file is given back to the buffer pool upon completion of the .DLETE. 1 2) c. d. The .DLETE macro follows the protection rules for directory modification. That is, .DLETE will not work on a protected directory, but returns an !OPS 63 error. .RENAM 1) The first block number of the renamed file is returned in the AC after a successful operation. If the file or UFO does not exist, the handlers return to LOC+3 with , in the AC. .RENAM changes the renamed file's date to the current date (maintained by the DATE keyboard corrunand described in Chapter 8). 2) At completion of the .RENAM function, the handlers return the buffer to the buffer pool. 3) The .RENAM macros must follow the protection rules for directory modification. That is, .RENAM will not work on a protected directory (IOPS 63). .ENTER 1) The handlers check for directory protection. If any of the following conditions is satisfied, the handlers will allow successful operation. If none is satisfied, the handlers will terminlate with an IOPS 63. Conditions for gaining UFO access: Entry in .UFDT equals the logged-in UIC Logged-in UIC equals MIC Directory protection code equals , 2) Once the entry in the UFO has been made via the .ENTER, the file is defined as being opened and truncated. Upon a subsequent .CLOSE, the file will exist as a closed file, but not truncated. 3) When. a .ENTER is done with a file name that already exists, the old file is deleted only after the new file (just .ENTERed) is .CLOSEd, i f the old file is not truncated. If the old file is a truncated file, it is deleted immediately, before the new file is listed in the UFO. The process of deletion of identically named truncated files continues until a non-truncated file with the same name is found. At this point, the new directory entry is made. Truncated files which follow are not deleted. In all cases, UFO searches are sequential starting at the beginning. 9-21 e. f. .CLEAR 1) The disk handlers will not hono:r .CLEAR unless the user has logged in under the MIC. The .CLEAR function deletes all files and directories on the entire disk. All bit maps are closed and indicate only the space which they occupy. The MFD will have no UFD's, SYSBLK or BAT. An I/O buffer is obtained from the pool for this operation and is subsequently returned on its completion. .CLOSE 11 g. .READ 1) h. All .READ commands executed after an end-of-file (EOF) header has been reached will return an EOF in header word .0 (.0.01.0.05). .MTAPE 1) i. On input, the handlers give the buffer back (if one was acquired) and make the .DAT slot available for subsequent .INITs. On output, the handlers write an end-of-file record (if the user did not already write one), and then proceed as on input. OKA and DPA accept the REWIND and BACKSPACE subfunctions during input only. REWIND is effectively a .CLOSE. .TRAN l} The .TRAN is not included as part of the disk file structure. That is, all blocks read or written are done so at the user's discretion. MFD's, UFD's, Bit Maps, and RIB's are not considered, and are not protected from the .TRAN macro. The .TRAN macro is allowed to any .DAT slot that has been .INITed, and not .CLOSEd or rewound (via a .MTAPE). 2) For the RF DECdisk, the user can reference a specific platter just by identifying the block number he wants. The block numbers and platter relationships are shown below: Platter Number .0 .0-1777 1 2rJn-3111 2 4.0J'l.0-5777 6,0,0,0-7777 1.0.0.0.0-11777 12J'l.0.0-13777 3 4 5 6 14.0.0~-15777 16f".0J'l-17777 7 j. Block Number .FSTAT 1) Normal operations, except that a subsequent .SEEK to a file found via .FSTAT will not require redundant · disk access. That is, both .FSTAT and .SEEK ordinarily require a minimum of three disk accesses -- one to the MFD, one to the UFD, and one to the file. If the user does a .FSTAT to an existing file, and then a .SEEK, the disk handlers "remember" the successful .FSTAT, and do not do an extra disk access. 9-22 k. .RAND l} 1. .RAND commands to a nonexistent file cause an IOPS13. Those to a nonexistent UFD cause an IOPSSl. Those to an empty UFD cause an IOPS71. .RTRAN ll The disk pack handler ignores the word number argument (assumed to be ~) and returns the whole block. If the word number plus the word count exceeds 254 10 , the disk handlers will return IOPS67. output .RTRAN to the RP disk requires 25610-word buffers to allow the handlers to supply the ~Orrect links in the last two words, (Otherwise, random files would require two buffers from the pool,) If the block humber argument requested by the .RTRAN is less than one, or greater than the number of blocks in the file, an IOPS66 will result. 9.3.6 Magtape Handlers (MTA, MTC, and MTF) 9.3.6.l General Description - Three handlers are provided for operation of Magtape drives TUlO, TU20A, TU20B, TU30A, and TU30B. These handlers permit control of up to eight transports. 0 MTA (4600A locations) is[ the most general and permits either industry-standard ~agtape file structuring, using the .MTAPE Macro, or DECtape file structuring using .SEEK and .ENTER Macros (refer to Chapter 4). When treated as DE~~. Up ~o- three files can be concurrently referenced, each on a different transport, either input or output. 0 MTC (1253A locations) is a read-only handler designed for operation using DECt~pe file structuring only. It has a single file capacity; sequential file references are, of course, allowed. 0 M'l'F (1307 8 locations) is designed for Magtape file structuring only. It acex>mmodates up to eight concurrently referenced transports, both input and output. The track count (either 7- or 9-channel) can be set at System Generation, or by using the CHANNEL Keyboard Command. IR addition, it can also be set dynamically, along with parity and recording density parameters, using the .MTAPE I/O Macro (see paragraph 6.7.7) when using Magtape file structuring. When using DECtape file structuring, parity and density are fixed at odd parity and 800 BPI recording density. Table 9-12 lists the Data Modes acceptable to the handlers and Table 9-13 lists the I/O Macros and their responses. 9-23 Table 9-12 MAGTAPE DATA MODES Data Modes MTA Handler MTC MTF IOPS ASCII IOPS Binary Image Alphanumeric Image Binary Dump x x x x x x x x x - - Table 9-13 MAGTAPE I/O FUNCTIONS Maero .INIT .FSTAT .RENAM .DLETE .RAND .RTRAN .SEEK .ENTER .CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN Illegal MTA ,t +-- -"j~! Illr Illegal Accept I ' ' Handler MTC Ilrl - Accept ,_ Accept Illegal Illegal Accept Illegal Accept Illegal Accept Accept Illegal MTF Acr Illegal 1 Accept • Illegal Function (IOPS6 Error) 9-24 9.3.6.2 Deviee Q~e'1den\>.gnqracterist;\c;!il,,- The filist .INIT to a Magtape unit causes the system default parameters for track count, recording density, and parity to be assigned as follows: Parity odd Density 800 BPI Track Count - System Generated Default unless otherwise specified in the CHANNEL Keyboard Command. (See Paragraph 8.9.3.) The following characteristics are unique to the operation of the A and C handlers in responding to the I/O Macros below: a . . INIT - Maximum I/O buffer size returned: 376 8 (254 10 ). b. .MTAPE - MTA accepts REWIND and BACKSPACE RECORD subfunctions only. The following characteristics are unique to the operation of the MTF handler: a. b. c. d. .!NIT - Returns standard buffer size of 377 8 • .MTAPE - On functions 05, 06, and 07 (skip record, skip file, and skip to logical end-of-tape), if the handler senses phycical end-of-tape, !OPS 65 is issued. .READ - Bad Tape and Data Late errors are considered unrecoverable and MTR issues IOPS 65 for them. .TRAN - Permits either the PDP-15 standard 18-bit transfer (both 7 and 9 track look like 7 track) or the industry standard 9-track transfer. In true 9-track operation, entered by setting bit 6 of the CAL to 1, each lB-bit word is interpreted as two 8 bit bytes of data plus associated parity bits (which are set on output and checked on input by the hardware). Tpus: A parity Byte A Byte B 2 .... 9 Ul - 17 1..1-..-1------..--------. ~ 9.3.7 1 B parity-"' Line Printer Handler 9.3.7.l General Description - LPA (541 8 locations) is designed to operate both the BO column and 132 column LP15 Line Printers. The handler accepts data in either !OPS ASCII or Image Alphanumeric data modes. Table 9-14 lists the various I/O Macros and the handler's response to them. Table 9-14 RESPONSES TO LINE PRINTER I/O FUNCTIONS Accept .INIT .CLOSE .WRITE .WAIT .WAITR Illegal (!OPS 6) .RAND .RTRAN .SEEi\ .READ .TRAN 9-25 Ignore .FSTAT .RENAM .DLETE .ENTER .CLEAR ."I.TAPE 9.3.7.2 Device Dependent Characteristics - The following paraqraphs describe characteristics which are unique to the Line Printer Handler in its response to certain I/O Macros and characters. a. .INIT - 1) Maximum I/O buffer size returned: 66 8 (54 10 > for 132 column printers; 44 8 (36 10 > for 80 column printers. 2) Output FORM· Feed. 3) Test Bit 6 of the .INIT CAL (see 6.7.6). If set, inhibit FORM Feed each 57 10 lines. (This bit is set by using a 5 rather than a 1 •in the "dd" argument of the .INIT.) b . • CLOSE - Output a FORM Feed (if not inhibited in the .!NIT)· c. .WRITE - 1) Examine header word 1' in the user's I/O buffer as follows: Meaning 1' = Enter Single Line Mode 1 = Enter Multiple Line Mode 21 1-8 Contains Line Count for Mµltiple Line Mode 14-17 Data Mode 2 = !OPS ASCII 3 = Image Alphanumeric Check the first character of the user's I/O buffer for the following vertical form control characters, all of which are output by the FORTRAN IV Object Time System: /114 /121' /121 /112 FORM Feed Overprint Print every second line Line Feed To effect the Overprint function for FORTRAN users, it is necessary to simulate certain vertical form control characters. If the first character of a line is /112, /114, or /121, the handler automatically enters Multiple Line Mode (by setting bit 1' of the first word in the user's I/O buffer to l) and prints two lines, the first line being the vertical control character, and the second line being the actual data. If the first character is /121' (overprint), it is replaced in the user's I/O buffer by /115 (Carriage Return) which does not affect the page position and both lines are printed. All other characters cause a Line Feed to be output from the handler's internal buffer followed by the line from the user's buffer. After output, any data in the user's I/O buffer which was changed (i.e., header word 1' or the first data word) is restored. 9-26 If the user intends to output to another device from the same I/O buffer (e.g., two sequential .WRITEs), a .WAIT should be used after the .WRITE referencing the Line Printer to permit the restoration of any data which may have been replaced in the user's I/O buffer by LPA. d. 3} Output in either Single Line Mode or Multiple Line Mode as applicable. 4} Restore modified portions of the user's I/O buffer (if changed). carriage Control Characters - The control characters in Table 9-15, except horizontal TAB, cause line termination, in both !OPS and Image Modes, except for sp~cial cases described under .WRITE above. Table 9-15 LINE PRINTER CARRIAGE CONTROL CHARACTERS Character Action Line Feed (,012) Space one line VT (Vertical Tab) Form Feed (,013) (~14) Space 20 lines Move to top of form Carriage Return (015) Reset column count to zero (no implicit LINE FEED function) DLE (,02,0) "I Space 30 lines DCl (,021} DC2 (.022) DC3 (,023) ) Refer to Appendix S~ace 2 A for alternate Space 3 lines designations Space 1 line lines DC4 (,02 4) Space 10 lines ALT MODE (175) Reset column count to zero (no implicit LINE FEED function) Horizontal Tab 9.3.8 9.3.B.l (~11) Output sufficient number of spaces to position printer at column 9, 17, 25, ••• ,etc. This is not a line terminator and may occur anywhere in the line. Card Reader Handler (CDB) General Description - COB (770 8 locations) is designed to operate the CR03B card reader. ASCII mode only. The handler transmits data in IOPS As initially supplied, it interprets Hollerith code as punched in DEC 029 Card Code. CDB is also supplied in source form which can be assembled to produce a version of the handler which interprets Hollerith punched in DEC 026 Card Code 1 • Appendix F contains a 1 Refer to the §GEN manual Tor procedures for assembling and installtng the 026 code version of COB. .9-27 table of 029 and 026 Hollerith codes and the corresponding !OPS ASCII codes. Table 9-16 lists the handler's response to the various I/0 Macros. Table 9-16 CARD READER I/O FUNCTIONS ~ Macro Response .INIT Accept .FSTAT Ignore .~ENAM Ignore .DLETE Ignore .RAND Illegal .RTRAN Illegal .SEEK Ignore .ENTER Illegal .CLEAR Illegal .CLOSE Accept .MTAPE Ignore .READ Accept .WRITE Illegal .WAIT Accept .WAITR Accept .TRAN Illegal Illegal - Illegal Function (IOPS6 Error) 9.3.8.2 Device Dependent Characteristics - The following paragraphs describe the characteristics which are unique to the Card Reader Handler in its response to certain I/O Macros. a. .INIT - Maximum I/O buffer size returned: 44 8 (36 10 ) b. .READ Eighty card columns are read and interpreted as 029 or 026 Hollerith data, mapped into the corresponding 64-graphic subset of ASCII, and stored in the user's I/O buffer in 5/7 format (36 10 locations are required to store an 80 colilirln card). Compression of internal blanks to tabs and truncation of trailing blanks is performed (all 80 characters appearing on the card are delivered to the user's buffer). In addition, a carriage RETURN (~15) character is appended to the input line; thus, a total of 81 characters are returned to the user. 9-28 c. Illegal punch configurations ~ all illegal punch configurations (i.e., those not appearing in the 029 or 026 character set shown in Appendix F) are interpreted as validity errors and will cause an IOPS 4 error condition. The card containing the error must be repunched. d. Special Codes - In addition to the Hollerith character set, the handler recognizes the ALT MODE terminator which is necessary for some system programs. ALT MODE, reaognized as a 12-8-1 code (multiplepunched AS) ~s mapped in to the standard ALT MODE character (175) in the user's buffer. Each file must be terminated with an EOF card punched in either of two ways: a) multiple punch the characters +-0123456789 which punches all positions in card colwnn 1, or b) multiple punch characters A~- which produces a 12-11-9-1 punch in card column l. NOTE The card reader handLer used when the system is operated in Command Batching Mode (described in paragraph 8.12) is a separate handler similar to COB, but resident in the Monitor itself. As initially supplied, it :interprets cards punched in DEC 029 Hollerith Code. Another version, which recognizes DEC 026 Hollerith Code can be installed into the system using procedures contained in the SGEN Manual. 9.3.9 VP15A Storage Tube Display (VPA) VPA (1213 8 locations) operates the VP15A Storage Tube Display. It accepts data in IOPS ASCII, Image Alphanumeric and Dump Modes. In IOPS ASCII and Image Alphanumeric Modes, up to 70 8 (56 10 > 72-character lines can be displayed. In Dump Mode, the handler interprets each 18-bit data word as a coordinate for point plotting operations. Two versions of VPA are provided. The version installed in the system as initially supplied (1144 8 locations) automatically erases the screen when an attempt is made to display the 57th ASCII line and· that line is placed at the top of the screen.; The other version of VPA, which has a file name VPA.S, is slightly larger (1211 8 locations). It permits the user to operate the display in a "paging" mode by settinq AC switch ~ (when set to 1) to inhibit further output once the 56th ASCII line is displayed. Operation is resumed by pressing the ERASE pushbutton, Paging is stopped by resettinq AC switch~ to ~. 1 1 Refer to the SGEN' Manual for procedures for installing the VPA.S version of VPA. 9-29 Table 9-17 lists the handler's response to the various I/O Macros. The user should refer to the VPlSA Graphics Software Manual (DEC-15UXSB-D) for a detailed description of the handler's capabilities and programming considerations. Table 9-17 VPlSA DISPLAY I/O FUNCTIONS Macro Response .INIT .FS'!IAT .RENAM .DLETE .RAND .RTRAN .SEEK .ENTER .CLEAR .CLOSE .MTAPE .READ .WRITE .WAIT .WAITR .TRAN Accept Ignore Ignore Ignore Illegal Illegal Illegal Ignore Ignore Accept Ignore Illegal Accept Accept Accept Illegal Illegal = Illegal Function (IOPS6 Error) 9-30 l.:HAPTER 10 OPERATING PROCEDURES 10.1 INTRODUCTION This chapter provides general operating procedures and considerations to assist novice users in operating in the DOS-15 Monitor environment. Procedures for system startup and system generation are the subject of Chapter 7 and are not included here. The discussions and examples in this chapter assume a properly configured and running system. It is assumed that the reader is familiar with the keyboard commands, as defined in Chapter B. Further, the user should be aware of the different types of I/P device handlers and their versions, as described in Chapter 9, and in particular, the tables which list those handlers which can Qe used with the DOS-15 $ystem programs. Specific operating procedures for the system programs (i.e., command strings, options, functions, error messages, and so on) are provided in the various language and utility program manuals listed in the Preface. Once a user gains some understanding of the use of the system programs and their commands from these manuals, he will find that the DOS-15 Keyboard Command Guide (DEC-15-NGKA-D) provides most of the information normally required for day-to-day user reference. Since most procedures involved with keyboard operation are specific to particular programs, very little will be said here about them. In general, keyboard operations at the Monitor level consist of issuing commands to set up system operation, prior to calling system and user programs. This usually involves at least the LOGIN and LOGOUT commands, and quite often requires the PIP program, as well. This chapter consists primarily of two large examples of what might be typical DOS-15 operations. Each example is the result of an actual session at the PDP-15. On the left side of each page of the examples is the actual teleprinter output. All commands typed by the user are underlined. On the right is a running commentary on all significant teleprinter lines. 10.2 EXAMPLE OF KEYBOARD OPERATIONS Figure 10-1, Example of DOS-15 Keyboard Operating Procedures, demonstrates some typical keyboard procedures. The example consists of a series of operations in which a simple FORTRAN program is trans10-1 ferred to the disk from DECtape, edited, compiled run, and transferred back to DECtape. Figure 10-2, Listing of Sample FORTRAN Program, shows the program. The program simply prints the numbers 1 through 10 on the device associated with .DAT slot 4, and then returns control to the Monitor. Figure 10-3 shows the teleprinter output, without comment. The user types CTRL C to prepare the Monitor for keyboard command input. If no response, the Monitor must be reinitialized using the bootstrap -- see Chapter 7. DOS-15 VIA ENTER DATE CMM/DD/YY) - 11/2/71 If the Monitor requests a date (indicating it has just been started via the bootstrap) enter it as required. Otherwise check the date (type D.J ) to make sure it is current ana correct it if it is not. $LOGIN JOE If the user wishes to use disk storage, he must log-in to the Monitor with a UIC of his creation. At this point, the user might consider typing other commands such as: VT ON, KEEP ON, X4K ON, PROTECT etc. (refer to Chapter 8) • $J>IP Call PIP DOSPIP VfSA Request a User File Directory listing to see if there is enough space available for the operations to be performed. (Since there are 5323 blocks indicated, the user can continue. If enough space were not available, however, other files in the UFD would have to be deleted.) >L TT..DK 02-NOV-71 DIRECTORY LISTING 1EiEi0 FREE BLKS 13 USER FILES 3Ei2 USER BLKS DKECHO 001 6 T T 001 002 3 I 11116 LEF' SRC JOB BIN 15 AL AL SRC Fl! N II 3 MAX 045 3 ACCT ~54 3 >T DK .. CJOE> 02-NOV-71 02-NOV-71 02-NOV-71 02-NOV-71 02-NOV-71 02-NOV-71 02-NOV-71 02-NOV•71 02-NOV-71 If the user had no previous UFO] on.the disk, he would create one [ using the PIP command N.JJK) Transfer program (FTNTST SRC) from user's DECtape to disk. or F'TNTST SRC Figure 10-1 Example of DOS-15 Keyboard Operating Procedures 10-2 Return to the Monitor >tC DOS-15 VIA EDIT $R .DAT -15 -14 - !QI OF.VICE OKA OKA TTA UIC JOF. JOE JOE USE OUTPUT/SCRATCH Examine the .DAT/.UFDT slots for the EDITOR for proper assignment (no change required in this case). I/O SECONDARY INPUT Call the EDITOR to correct any known errors on the file program prior to assembly or compilation. (In this case the FORTRAN comment line · descriptor "C" was missing and must be inserted, EDITOR VISA >OPEN FTNTST Open the file for editing. EDIT >P 4 Locate ertor (i.e.,print some lines) c- c EXAMPLE - SAMPLE FORTRAN TEST PROGRAM Go back to the top of the file. Point to the error line. >T >N ?. ~ >Ll!S:l. c >CLOSE Error line (the comment descriptor "C" is missing) Print it out as added precaution. EXAMPLE - SAMPLE FORTRAN TEST PROGRAM EXAMPLE - SAMPLE FORTRAN TEST PROGRAM Add the "C" to the beginning. Close the file EDITOR Vl8A >~ Return to the Monitor. DOS-15 VIA m F4 .DAT -13 -12 -11 DEVICE DKA TTA DKA $A TT -12 UIC JOE JOE JOE USE OUTPUT LISTING INPUT Examine the .DAT/UFDT slots for the FORTRAN compiler for proper assign.ment. (In this case the user wished to have his listing on the teleprinter, rather than the line printer.) Assign the teleprinter to .DAT-12. Figure 10-1 (Cont.) Example of DOS-15 Keyboard Operating Procedures 10-3 $,E! Call FORTRAN Compiler. F'4)(' V?.8A Issue command string. >L ,B .. FTNTST END PASSI c c c 001 002 003 004 005 006 007 008 l 100 F4X V28A Program listing output begins. EXAMPLE - SAMPLE FORTRAN TEST PROGRAM DO I I : I , 11/J WRITE <4, 100>1 FORMAT C6X,I3> STOP 12345 END >tC Compilation complete. Return to the Monitor. DOS-15 VlA $fl USER DEVICE DKA DKA DKA .DAT +l +2 +3 +4 +5 $A TTA PRA Examine the .DAT/UFTD slots for available user programs. (This program uses .DAT slot 4 as referenced in the FORTRAN WRITE statement in the listing above.) UIC JOE JOE JOE JOE J1f CTRL P typed to abort remainder of typeout. TT 4 Assign the teleprinter to .DAT slot 4. Call the Linking Loader (load and go command. Give conunand string. $GLOAD BLOADER Vl2A >t-FTNTST Program is loaded and execution begins. I 2 3 4 5 fi 7 R 9 lQI STOP 01?.345 DOS-15 VI A End of program execution. The Monitor is called automatically by the FORTRAN STOP statement. $PIP Call PIP. DOSP!P VfiA Transfer edited source file from disk to DECtape. Device Not Ready error - the user forgot to WRITE ENABLE the DECtape unit. >T DTl ..DK FTNTST SRC IOPSL! tR Figure 10-1 (Cont.) Request User File Directory listing to examine the contents after current series of operations. >.1..__IJ~JUS. 02•NOV•71 DIRF.CTORY LISTING (JOE> 1656 FREE flLKS 15 USER FILES .36 4 IJSER flLKS DXECHO 00 l 6 02-NOV-71 T T 001 3 I 1"6 002 LEF SRC JOB fl IN AL SRC AL BIN MA:X fll45 FTNTST SP.C FTNTST BIN 15 11 3 3 I 1 l/J2-NOV·7l 02-NOV-71 02·NOV•71 l/J2•NOV•71 02-NOV-71 l/J2•NOV•71 02-NOV-71 l/J2-NOV·71 l/J2•NOV•71 >D DK F"TNTST SRC D0~-15 Delete source file (User decides to keep only his binary file on the disk) Return to the Monitor. VIA $LOGOUT Current sessfon at the computer is completed. Oser logs-out. Figure 10-1 (Cont. Example of DOS-15jKeyboard Operating ProcEfdure I/Jiil l l/Jl/J2 c EXAMPLE - SAMPLE FORTRAN TEST PROGRAM >1111 I c •--------(diagnostic) t/HIJ3 C 004 005 006 01117 008 1 100 DO l I: I , 10 WRITE <4,11110)1 FORMAT CGX,I3> STOP 12345 END Figure 10-2 Listing of Sample FORTRAN Proqram 10-5 DOS-15 VlA ENTER DATE CMM/DD/YY) • 11/2/71 SLOGIN JOE $PIP DOSPIP V6A >L TT..DK 02•NOV•71 DIRECTORY LISTING CJOE) 1660 FR EE ALKS 13 USER FILES 362 USER BLKS DKECHO ~11.11 6 82-NOV-71 T 001 3 02-NOV-71 T 0A2 I 11.12-NOV•71 LEF SRC lf1.16 11.12-NOV-71 JOB BIN 15 11.12-NOV-71 AL SRC 11 02-NOV-71 AL BIN 3 02•NOV•71 MAX 11.145 3 11.12-NOV-71 ACCT 654 3 f212-NOV-71 >T DK ..or rTNTST SRC >tC DOS-15 VIA $R EDIT .DAT -15 -14 -H'I DEVICE UIC USE JOE JOE JOE I/0 OKA OKA TTA OUTPUT/SCRATCH SECONDARY INPUT $EDIT EDITOR VISA >OPEN FTNTST EDIT >P 4 c c EXAMPLE - SAMPLE FORTRAN TEST PROGRAM Figure'l0-3 Uncommented Listing of Keyboard Operating Session 10-6 >T >N 2 >P >C I/Cl c >CLOSE EXAl'IPU: • SAl'IPLE FORTRAN TEST PROGRAM EXAMPLE - SAMPLE FORTRAN TEST PROGRAM EDITOR VISA >tC DOS•l5 VIA $F1 F 4 .DAT -13 -12 -11 $A DEVICE DKA LPA DKA UIC JOE JOE JOE USE OUTPUT LISTI NG INPUT TT -1"2 SF.II F4X V28A >L ,B ... FTNTST END PASSI 001 002 llJ03 l/JflJ.4 llJ05 eJllJ5 c c c I I AA 0fl7 008 F4X V28A >tC EXAMPLE - SAMPLE FORTRAN TEST PROGRAM DO I I : I, 11/J WRITE C4,lfll0>I FORMAT C5X ,I 3) STOP 12345 END DOS-15 VIA $R USER .DAT +I +2 +3 +4 +5 $A TT 4 DEVICE DKA DKA DKA LPA PRA UIC JOE JOE JOE JOE ..,.ztP $GLOAD Figure 10-3 (Cont.) Uncommented Listing of Keyboard Operating Session 10-7 RLOADER Vl2A >t-FTNTST 1 2 3 4 s 6 7 8 9 STOP UJ fll12345 DOS-15 VIA· $PIP DOSPIP V6A >T DTt-DK FTNTST SRC IOPS4 tR >L TT..DK l(;-NOV-71 DJPECTOPY LISTING <JOF.> 1525 FPF.:E RLKS 13 USER nu:s 161 IIBEP RLKS r>KECHO 001 6 16-NOV-71 T fllflll 3 16-NOV-71 T 002 1 16-NOV-71 LF:F SR C 106 lt;-NOV-71 JOB BIN 15 16-NOV-71 AL SRC 11 16-NOV-71 AL BIN 3 16-NOV-71 MAX fll45 3 16-NOV-71 ACCT (;54 3 16-NOV-71 FTNTST BIN I 16-NOV-71 FTNTST SRC I 16-NOV-71 >D DK FTNTST SRC >tC DOS-15 VIA $LOGOUT $ Figure 10~3 (Cont.} Unconunented Listing of Keyboard Operating Session 10-8 10.3 EXAMPLE OF OPERATING PROCEDURES USING COMMAND BATCHING MODE The example which is contained in Figure 10-4 demonstrates typical operations using the Monitor's Command Batching Facility. Figure 10-5 contains just the console teleprinter output without comment. Essentially the same types ·of operations which can be performed at the keyboard can be accomplished using Command Batching Mode. There are, of course, some operations which, although legal, are more difficult to accomplish, such as editing. To prepare a job for Command Batching Mode, the Programmer creates a file of keyboard commands in the sequence in which they would normally be issued from the teleprinter, interspersed with the special batching commands described in paragraph 8-12 (as applicable). The file can exist either on punched cards or paper tape. The programmer then submits the batch file and other required data (DECtapes, Magtapes, etc. for use during the job run) to the computer operator for qxecution along with appropriate instructions. Users who prepare b~tching files on punched cards should remember to place an end-of~f ile card at the end of the card deck. This card is created by mul~iple punching all punch positions in card column 1 (see 9.3.8.1 d). The example below is basically similar to that in 10.2 except that no editing is performed since it is more easily and accurately accomplished by the programmer directly. Similarly, requests for device assignments were also omitted since this information cannot be utilized at runtime in a batching environment. 10-9 $tC The operator types CTRL C to prepare the Monitor for keyboard command input. $BATCH PR Instruct the Monitor to enter Command Batching Mode with the paper tape reader as the batching input device (the batch tape has already been loaded in the reader). DOS-15 VIA The Monitor reinitializes itself indicating it has entered Command Batching Mode. $$JOB TEST COMMAND BATCHING MODE $JOB must be the first command on the batching medium. (The programmer titles his batch run "TEST COMMAND BATCHING MODE".) LOGIN JOE Log-in the UIC to be used. $LOG PLEASE MOUNT DECTAPE CONTAINING "F"TNTST SRC" ON DECTAPE UNIT 1 AND SET TO WRITE ENABLE THANKS $$PAUSE tP The programmer uses the LOG command to give instructions to the operator. The $PAUSE stops the job to permit the operator to comply with the instructions. The operator types CTRL R to continue operation. Call PIP. ill DOSPIP Vl\A >I DK~DTl FTNTST SRC >hllm Transfer the file to be compiled to the user's disk file area (it is assumed in this example that the user has already created a UFO for himself at some previous time). Return to the Monitor. DOS-15 VIA Figure 10-4 Example of Conunand Batching Mode 10-10 $A IT •12 Assign teleprinter to .DAT slot -12 (user should know standard assignments for his system) to permit PORTRAN listing to be output to it. Call the FORTRAN Compiler. F4X V28A >L ,B , .. FTNTST END 001 Issue command string. PASSl c c c 002 00.3 11H1J4 005 1 006 100 007 01?J8 F4X V28A Program listing output begins. EXAMPLE • SAMPLE FORTRAN TEST PROGRAM DO 1 I= I, 10 WPITE C4,11110>I FORMAT C6X,I 3) STOP 12345 nm Compilation ends. >$JOH DOS-15 VIA Return to the Monitor. $A TT 4 Assign the teleprinter to .DAT slot 4 (the user wants his program to use the teleprinter rather than device normally assigned to .DAT 4). Call the Linking Loader (load and go command) • Issue command string. $filJl.AQ RLOADER Vl2A > .. FTNTST 1 Program is loaded and execution begins. 2 3 4 5 11) 7 8 9 10 ZTOP 012345 DOS-15 VIA $$JOH End of program execution. The Monitor is called automatically by the STOP FORTRAN statement. m DOSPIP V6A Call PIP. >T DTl...OK FTNTST BIN Transfer the binary of the program just compiled to the user's DECtape for permanent storage. n.gure L0-4 (c;ont.) Example of Commana Batching Mode 10-11 >D DK F'TNTST SRC Delete the source file from the UFD. >L TT+-DK Request directory listing of user's disk area. 02-NOV-71 DIRECTORY LISTING CJOE> 1657 FFEE BLKS 14 USER F'ILES 363 USER BLKS DK E:CHO 001 6 02-NOV-71 T 001 3 02-NOV-71 T 00~ 1 02-NOV-71 LEF SFC 106 02-NOV-71 JOR RIN 15 02-NOV-71 FTNTST RIN 1 02-NOV•71 >L TT+-DT 1 Request directory listing of DECtape the user supplied with batch job. 02-NOV-71 DIRECTORY LISTING 101>6 FFEE BLKS 2 USER FILES I 0 SYSTEM BU<S 1 FTNTST BIN 2 FTNTST SRC >$JOB DOS-15 VIA $LOG01JT $$EXIT Batching run completed. Command Batching Mode. DOS-15 VIA $ Figure 10-4 (Cont.) Example of Command Batching Mode BATCH PR oo~-15 VI A 5$JOR TEST COMMAND RATCHYNG MODE LOGIN JOE $LOG PLF:ASF. MOUNT DF.CTAPF. CONTATNTNG "FTNTST !WC" ON DF.CTAPF. UNIT I AND SET TO WP ITF' F.NARU: THANKS $$PAUSE tP PIP DOSPIP VSA >T DK+-DTI FTNTST SRC >$JOB DOS-15 VIA $A TT ·12 Figure 10-5 Uncommented Listing of Command Batching Mode 10-12 Exit from $F'4 F'4X V?.6A >L ,B , ... FTNTST END PASSI c 001 1111112 c c 1111113 11104 005 l 006 I fll111 011J7 00R F 4X \l'UA >$JOfl DOS-15 VIA $A TT 4 tXAMPLE - SAMPLE FORTRAN TEST PROGRAM DO I I:J,10 WRITE C4, 100>! FORMAT C6X,I3) STOP 123-45 END $GLOAD LOADF.P VI 2A ,.. ... FTNT!'T I 2 3 4 5 6 7 8 9 Je STOP 111123-45 DOS-15 VIA $$JOR PIP DOSPIP Vf\A >T DTl~DK f'iNTST RIN •D DK f'iNTST SRC •L TT... DK l fl-NOV•'71 (JOE> DIRECTORY LISTING 1526 F'PEE RLKS 12 USER FILES I 6111 USER RLKS 6 16-NOV-71 Dl<'f.CHO 0fll I 3 16-NOV-11 £1101 T eel2 1 l6-NOV•71 T SRC 106 16-NOV-71 LEF' 15 16-NOV-71 JO'R RIN SPC 16-NOV-71 11 AL 3 16-NOV-71 AL RIN 045 3 16-NOV-71 MAX 654 3 IE>·NOV-71 ACCT l 6•NOV-71 l f'iNTST RI N li'igure 10-5 ·(Cont.) Uncorninented Listing of Command Batching Mode 10-13 >L TT<-DT I l~-NOV-71 DIRECTORY LI~TING I l/J611J FR EE RLKS .3 USER F"ILES 10 SYSTEM RLKS FiNTST SRC .3 FiNTST BIN 4 DK ECHO 11111! I 2 I I 6 $$JOB l,OGOUT $$EXIT OOS-15 VIA $ Figure 10-5 (Cont.) Unconunented Listing of Command Batching Mode 10.4 ERROR DE'l'ECTION AND RECOVER~ PROCEDURES All major components of the DOS-15 Software System contain facilities for error detection and operator notification. This includes the System Programs, I/O Device Handling Routines and The Monitor itself. The operator is notified of the existence of an error condition most generally by a message output to the console teleprinter. There are, however, two situations in which the operator would not receive a message on the teleprinter. The first is the normal occurrence of end-of-file, end-of-medium, parity and checksum error conditions by means of the information fields provided in header word ~ of the affected logical record. Recovery from these errors is not discussed here, since it is the user's program which mus~ recognize these conditions and determine the appropriate corrective action. (Refer to paragraph 6.3.1.1). The second situation is the occurrence of an undetected error such as a user's program looping endlessly within itself. Under these conditions, the user can only detect the error condition by observing that the program is not operating as expected. His only recourse in this case is to abort the operation by typing CTRL C or CTRL Q. 10-14 There are two types of error messa~es output to the console teleprinter: o I/O errors which are detected by the I/O device handlers and printed through the Monitor's error message facility. These messages, referred to as "IOPS errors", consist of the mnemonic "IOPS" followed by a number. o System Program and Monitor detected errors which generally result from syntactically incorrect or illogical command strings or other illegal operating conditions. These messages are generally $elf-explanatory and consist of an appropriate symbol, word, phrase or sentence. The degree to which IOPS error recovery is possible can vary with the nature of the error. In some situations, it may be possible to continue the operation from the point where it was interrupted by the error message. For example, the IOPS4 message (I/O Device Not Ready) occurs when an I/O device hardware not ready condition is detected by the handler. To recover, all that is required is that the operator correct the condition (e.g., card reader out of cards) and type CTRL R. The operation will continue as if the error had never occurred. In other situations the operator may have to retype a command string correctly, restart the interrupted program (CTRL P) or call in the Monitor (CTRL C) to reassign an I/O device or to reload the program. Some users may wish to save an image of the core at the time of the error. In that case, the QDUMP command (see 8.7.2) would be typed before reloading the offending program. If, after typing CTRL C, the Monitor does not start up because a runaway program has destroyed the bootstrap, the bootstrap must be reinitialized or reloaded using procedures described in Chapter 7. Complete identification, explanation and recovery information for IOPS errors is provided in Appendix D. Similar information for other error messages is found in the applicable language or utility program manual for the applicable System Program. The DOS-15 Key- board Command Guide, DEC-15-NGKA-D, provides complete command summaries of all DOS-15 System Program and IOPS error messages. 10-15 APPENDIX A PDP-15 IOPS ASCII STANDARD CHARACTER SET The table below shows the 7-bit ASCII characters intepreted by the DOS-15 Monitor and System Programs either as meaningful data and command input or as control characters.· The 7-bit octal code and the corresponding graphic characters conform to the standard ASCII 1968 64-character graphic subset. The control characters (codes 00-37, and 175-177) are used for system control purposes. The characters shown in brackets [] are not used by the system and are available for user applications. Characters in parentheses denote the 1963 character set. 7-BIT CODE 000 001 002 003 004 005 006 007 010 Oll 012 013 014 015 016 017 020 021 022 023 024 025 026 027 030 031 032 033 034 035 036 037 ASCII CHAR. NUL [SOHJ STX ETX (CTRL C) EOT (CTRL D) ACK [ENO J :~LL HT LF VT FF [i~J OLE (CTRL P) DCl (CTRL Q) DC2 (CTRL R) DC3 (CTRL S) DC4 CTRL T) NAK (CTRL U) [SYN] ETB CAN (CTRL X) [:s] ESC (ALT MODE) [E1 7-BIT CODE ASCII CHAR 7-BIT CODE 040 041 042 043 044 045 046 047 050 051 052 053 054 055 056 057 060 061 062 063 064 065 066 067 070 071 072 073 074 075 076 077 SP ! 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 II t $ % & I ( ) * + -' . I 0 1 2 3 4 5 6 7 8 9 : ; < = > ? ASCII CHAR. 7-BIT CODE ASCII CHAR. @ 140 Not recognized by DOS-15 i A B 174 175} 176 177 c D E F ALT MODE DEL (rubout) G H I J K L M N 0 p Q R s T u v w x y z [ \ ] A - ( t) ( +. NOTES: 1. Codes 33, 1 75 and 176 are interpreted as ESC (ALT MODE) and are converted on input to 175 by IOPS. 2.The left bracket, backslash, and right bracket ( i . e. [ , \ , and ] ) characters are formed by typing SHIFTs K, L, and M, respectively. A-1 APPENDIX B SA.~PLE IOPS ASCII PACKING AND UNPACKING ROUTINES This appendix contains two subroutides for use in packing and unpacking IOPS (5/7) ASCII. These routines are self-contained and can be incorporated in user programs directly or contained in the DOS-15 System Library (.LIBR BIN) or user~created library and referenced globally (.GLOBL pseudo-op). If they are to be incorporated directly into a program, the .GLOBL and ;END pseudo-ops must be removed. Unpacking Routine This routine has two entry points, GT.FST AND GT.CHR. The GT.FST entry is used to initialize the routine for each unpacking sequence. Upon entry via GT.FST, the AC must contain the address of the first location in the buffer. (The routine automatically skips over the Header Word Pair.) On return the AC is unchanged. After initialization, each entry via GT.CHR returns a 7-bit ASCII character right justified in the AC. The user program must detect the end of the logical record, normally by checking for a Carriage RETURN or ALT MODE terminator. Entry to the routine from the user program is made by either a JMS or a JMS* instruction as follows: If this routine is directly incorporated in the user's program: LAC ADDRESS /BUFFER ADDRESS /ENTRY TO INITIALIZE UNPACKING JMS GT.FST JMS GT.CHR /ENTRY TO UNPACK A CHARACTER If this routine resides in a library: .GLOBL GT.FST,GT.CHR/EXTERNAL GLOBL DECLARATION JMS* ADDRESS GT.FST /BUFFER ADDRESS /ENTRY TO INITIALIZE PACKING JMS* DAC GT.CHR SAVCHR /ENTRY TO UNPACK A CHARACTER /SAVE CHARACTER RETURNED IN AC LAC B-1 Packing Routine This routine also has two entry points, PK.PST and PK.CHR. The PK.FST entry is used to initialize the routine for each new packing sequence. Upon entry via PK.FST, the AC must contain the address of the first location in the buffer (the routine ignores the header word pair automatically); on return, the AC is unchanged. After initializa- tion, each entry via PK.CHR with a character in the AC will pack that character in 5/7 format. justified in the AC. The characters to be packed must be right On return to the user, the AC will still con- tain that character, however, bits 0-10 of the AC will be set to zero. The user program must detect the end of the logical record, normally by testing for a terminator such as Carriage RETURN or ALT MODE. Further, the user must also set up the header word pair for the logical record. Entry to the packing routine is made from the user's program either by a JMS or JMS* instruction as follows: If this routine is directly incorporated in the user's program: LAC ADDRESS /BUFFER ADDRESS JMS PK.FST /ENTRY TO INITIALIZE PACKING LAC CHAR /CHARACTER TO BE PACKED JMS PK.CHR /ENTRY TO PACK A CHARACTER If this routine resides in a library: .GLOBL PK.FST, PK.CHR /EXTERNAL GLOBL DEFINITION LAC ADDRESS /BUFFER ADDRESS JMS* PK.FST /ENTRY TO INITIALIZE PACKING LAC CHAR /CHARACTER TO BE PACKED JMS* PK.CHR /ENTRY TO PACK A CHARACTER B-2 l!DP5 AS~ll UNPACKING SUBROUTINE I /GT,rST-!NJTiALllE 5/7 ,ASCII UNPACK!NG, ON rNTRv /AC CO~TAINS ADDRESS or l/D BUFFER TO 8( /UNPACKE~ 1 ~N RETUR\ AC !S RESTOREO, /GT,C~R-AFTER 5/7 ,ASCII UNPACKING MAS dEEN /IN!TIAL!~EO 8V GT,r~T. GT,CMR WILL RETURN /SU8StQU£NT r.~ARACTlRS IN AC, I GT,FST ,GLORL c;T,rsT,GT,CHR :'l 11AC GT,TMP TAn L2 ".'JAC LAW nAC LAC ,J"1P• GT,PTR .. 1 GT,5 'GT, T"P c;T,FST /JNlTJALli!E /SAVE AC /SET BUFFER POINTER /TO SKIP OVl~ HEADER WORD PAIR /CHARACTER cou~TER /RESTORE AC '1 rs~ JMP LAC• I Si!! ';T 0 M0 'lAC LAC• ISl ')AC LAW OAC LAW OAC LAC RAL !Sl JMP ANO SAD J"1P c;T,EXT r;T,MOR JMP• OAC LAC GT,5 GT,MQ GT,PTR GT,PTR GT,t.Dl CT,PTR GT,PTR GT, ioD2 17773 /WORD Pti!R ~TARTro /NEED ~JEXT fo'AIR IF"IRST PART /SECOND PART /RESET CHARACTER cou~TER, GT,5 17772! GT,wD3 GT 1 WD2 GT,WD3 GT,MOR /SHIFT ~OOP TO 7 112 TIMES Ll.77 /GOT CMARACTrR SPACE GT,EXT GT,CHR CT, io02 GT, t.rll /[F SPACE OO~T /EXIT RAL OAC .JMF' GT,W01 GT,LUP /BACK TO 1.00P I r;T,PTR ,..I'.'! r.T I Wl12 !'I r.T. s r;T I i..r)l -;r,wo;s r,T, TMP 1..2 1.177 SPACE 'l !'I " I' 2 177 40 ,ENO B-3 UPDATr GT.L5T /!OPS 15/7) ASCII PACKING SURROUTIN£ I IPK,rST -l~ITIALllE 5/7 ,ASCII U~PACl'lNG, ON E~TPV /AC CO~TAlNS AODRESS OF I/0 8UfFER TO CQNTAI~ PACKED ASCll1 ION RETUqN AC IS U~CHANGE01 /Pl<,CHR IS •10RMAL fNTR'I' POJl\IT AF'HR lt.llTlALJHTJON (PK,F'ST), /AC CONTAINS CHARACTlR TO BE PACKED, ON R(TUHN1 AC CONTAINS /THE SAMf. CHARACTER BUT HJGH ORDER BITS <0-lVl AqE lEROEO /OUT, I ;GLOl'L PK,rST,PK,CHR 'iHAL:s660?1~0 Pl( 1 FST "' OAC ~L.CMR2 TAO !)AC L2 1<L.PUTP KL.57 CHRCNT l<LCHR2 Pl(,FST '.llM !)i!M LAC JMI'• i:IK ,CHR ><L.J57 ~L.571 <L571A ~L572 .<L,57;~ ISl CHRCNT ANO L177 OAC CLL LAC TAO '.)AC LAC 1<L.CHR2 L575 /CHAR POSlTlN.i, lCX /lllOOIF'lED J"1P /Cl.UR1 KL'57;> KL'573 /CMARc /CMAR3 KL.574 /CHAll4 /CMAR5 KL.57" ALSISHAL 1lM• KLPUTP JMP 1'LN057 ALS!SHAL JMP RTR qAR KL~ 1 057 ANr'l L 17 lCQlh i<LF'UTP KLPUTP KLPUTP KLCHR2 /11 LEFT /CLEAR OATA ~ORO 4 /4 L.f.FT /LAST WORD or ~4fR, 17 12ND MALF 115 IE.FT 10 18 L.r.FT l<L.~1057 qCL !)i!M 13 /J R!GMT-1ST HAL.r LAC ALS!SHAL JMP KL571A ALS!SHAL JMP 11 KL57 CJMP• KL.J57 , +? KLCHR2 l(L.571 rszt L574 /RESTORE AC /EX 1 T !" OAC• 11 ll"IITIALli!E /SAVE: AC /SET l<LPIJTP TO BiJFf[R ADDRESS •2 /TO SKIP OVE~ ~lAOER WORD PAIR KL,57 '1 LUT RESET 5/7 1 SKP i<LND57 IS;i KL.57 XOR• KLPUTP KLPlJTP OAC• B-4 cou~TrR LAC 11LS7 SNA JSl LAC JM Pf lo'l,.57 "'LPUTP Kl.C:HrJ2 1'.""4RCNT 1.2 L117 t.17 KLPUTP KLCHR2 PK,CHR 12N0 WORD CO~P~(TE IEXIT 1 "'0 " ~, 2 117 17 ,ENO B..,;5 APPENDIX C INPUT/OUTPUT DATA MODE TER~INATORS FOR SPECIFIC DEVICE HANDLERS NOTE: DATA MODE rDPS ASCII All handlers detennine the data mode from the .READ or .WRITE macro. and acronyms are defined at the end of the table. HANDLER INPUT OUTPUT DT (all versions) HWP, we, EOM, EOF whichever is smaller HWP, EOM DK, DP {all versions) EOM, "EOF, we, whichever is smaller HWP, EOM HWP, Abbreviations COB. WC, EOM, EOF ~ot LPA.,89 Not applicable HWP, CR, AM LPA.15 Not applicable HWP, CR, AM, IOPS 37 on overflow vc MTA. HWP, WC EOM, EOF whichever is smaller HWP, EOM MTC. HWP, WC EOM, EOF whichever is smaller HWP, EOM MTF. WC, EOM, EOF TTA. CR, AM, CTRL D, WC (no CR appended) HWP*, CR, AM, EOF pp Not applicable (all versions) applicable overflow lines will continue on next line, with diamond as 1st character HWP, EOM HWP I CR I AM I EOM PR we, CR, AM, EOM, EOF Not applicable (all versions) *HWP with word pair count less than two will cause carriage return/line feed only. If the word pair count is two or more, only a carriage return or an ALT MODE will terminate output. Input/Output Data Mode Terminators for Specific Device Handlers (Cont.) DATA MODE IOPS Binary n HA.NDLER INPUT OUTPUT DT (all versions) HWP, WC EOF whichever is smaller HWP, EOM EOM, DK, DP (all versions) HWP, WC EOM, EOF whichever is smaller HWP, EOM CDB. Not applicable Not applicable LPA.,19 Not applicable Not applicable LPA.15 Not applicable Not applicable MTA. HWP, WC EOM, EOF I whicheiver is smaller HWP, EOM which~er is smaller HWP, EOM t-.) MTC. HWP, WC EOM, EOF MTF. we, EOM, EOF HWP, EOM TTA. Not applicable Not applicable pp Not applicable HWP, EOM we, EOM, EOF Not applicable (all versions) PR (all versions) Input/Output Data i\1ode Terminators for Specific Device Handlers (Cont.) DATA MODE IMAGE ALPHA/ IMAGE BINARY n I HANDLER INPUT DT (all versions) HWP, WC EOM, EOF DK, DP (all versions) EOM, EOF HWP, WC OUTPUT whichever is smaller HWP, EOM whichever is smaller HWP, EOM COB. Not applicable Not applicable LPA.~9 Not applicable Not applicable for BIN HWP, CR, A"'1 for ALPHA Overflow l.ines will continue on next line, with diamond as first character LPA.15 Not applicable Not applicable for BIN HWP, CR, AM, VC for ALPHA IOPS 37 if line is exceeded w ~1TA. '1TC. HWP, WC EO!i\ 1 EOF HWP, WC EO"'i, EOF whichever is smaller HWP, EOM whichever is smaller HWP, EOM ;\1TF. we, EOM, EOF HWP, EOM TT.II.. Not applicable for BIN CTRL D, WC for ALPHA Not applicable for BIN HWP pp Not applicable (all versions) PR (all versions) HWP, EO"'I. for BIN HWP, A."llol., CR, EOM for ALPHA we, EOM, EOF Not applicable Input/Output Data Mode Terminators for Specific Device Handlers (Cont.) DATA MODE HANDLER DUMP MODE OT (all versions) we, EOM, EOF we, EOM DK, DP (all versions) WC, EOM, EOF we, EOM. COB. Not applicable Not applicable LPA •.S9 Not applicable Not applicable LPA.15 Not applicable Not applicable MTA. WC, EOM, EOF we, EOM MTC. Not applicable Not applicable MTF. Not applicable Not applicable TTA. Not applicable Not applicable PP Not applicable we, EOM PR WC, EOM Not applicable n I .e. INPUT OUTPUT List of Abbreviations and Acronyms: Handlers: DT DK, DP CDB. LPA.,09 LPA.15 MTA. MTC. ~TF. TTA pp PR DECtape Disk (DECdisk or Disk Pack) The "B" Card Reader Handler Line Printer Handler for PDP-9 users Line Printer Handler for PDP-15 users Mag tape "A" Handler Magtape "C" Handler Mag tape "F" Handler Teleprinter Handler Paper Tape Punch Handler Paper Tape Reader Handler Abbreviations: AM CR EOF EOM HWP vc WC ALT !-10DE key Carriage RETURN (RETURN) key End-of-File End-of-:"1edium Header Word Pair's word pair count Vertical Control Character Word Count in an I/O Macro APPENDIX D IOPS ERROR CODES Error Data Output 1 Meaning Error Code 0 Illegal CAL Function Code - The function code immediately following the of fending CAL instruction is not legal CAL address 1 CAL* Ille~al - The Monitor does not permit execution or CAL; U::nairect) instructions CAL address 2 .DAT Slot. Error a. The .DAT Slot number (bits 9-17 of the CAL) is either ~ or outside the range of,legal numbers established when the systemiwas created (at System Generation). CAL address ! b. 0 ,_.I No .IODEV has been issued for this .DAT Slot • 3 Ille9al InterruEt -An interrupt originated from a device when either its handler was not core resident or its handler was not previously initialized (via .INIT). Contents of the IORS word at the time of the interruft.t 4 Device Not Read;L Device 11 0FF LINE", "WRITE PROTECTED" or Unit a. Number not selected. b. Line Printer or Paper Tape Punch out of paper. c. Line Printer Alarm Status d. Card Reader stacker full, mis-punched card, card jam, hopper empty, EOF card missing. e. 9-channel I/O request to 7-channel Magtape . transport (or vice versa) • Disk - CAL adr,dv & unit,CAL fcn;-UIC Card Reader - dv, message Line Printer - dv Teleprinter - dv Magtape - CAL adr,dv,& unit,CAL fen Other - CAL adr Remedy error condition and type CTRL R to continue interrupted operation. 5 Ille9al SetuE CAL - A CAL to set up API/PI linkage was issued by a handler (as a result of a .!NIT) when no skip IOT existed in the Monitor's Skip Chain for that device (IOTs are placed in the Skip Chain during System Generation.). I l TCAL address tRefer to Chapter 3 of the PDP-15 User's Handbook, Vol. I Processor (DEC-15-H2DA-D). IOPS ERROR CODES (Cont.) Error Code 6 7 Meaning Error Data Output 1 Ille9:al Handler Function - A CAL has been issued to a handler which is incapable of° performing that function (e.g. , .READ to the paper tape reader, .TRAN to the disk in the reverse direction, etc.) unit,CAL fcn,UIC Disk - CAL adr,dv Card Reader - dv,message Line Printer - dv Teleprinter - dv Magtape - CAL adr,dv unit, CAL fen Other devices - CAL address Ill~al unit, CAL Fen, UIC Disk - CAL adr,dv Card Reader -dv,message Line Printer - dv Teleprinter - dv Mag tape - CAL adr,dv & unit, CAL fen Other devices - CAL address a. b. Data Mode_A .READ or .WRITE was issued using a Data Mode unacceptable to the handler. An attempt was made to change transfer direction prior to issuing a new .INIT via that .DAT Slot. ; a I ' ' ' 10 File Still Active - Failure to cl.ose (.CLOSE) a file before another .SEEK, • ENTER, I • RAND, .RENAM, .FSTAT, .DLETE or .CLEAR is issued' via the same .DAT Slot. Disk - CAL adr,dv & unit,CAL fcn,UIC, filnam Mag tape - CAL adr ,dv & unit, CAL fen: DECtape - CAL adr 11 .SEEK/.ENTERL.RAND Not ExecutedA .READ, .WRITE, or .RTRAN was issued to a directoried device W..th no prior .SEEK/.ENTER/.RAND. unit,CAL fcn,ure Disk - CAL adr,dv unit,CAL fen Mag tape - CAL adr ,dv DECtape - CAL adr 12 Terminal Device Error DECtape mark track error (tape must be a. reformatted) b. Mag tape EOT encountered on space forward DECtape - The contents of device status register "B" (bits 0-11) and unit no. (bits 15-17) Magtape-CAL adr, dev & unit, CAL fen 13 File Not Found The file name specified in the Disk - CAL adr,dv & unit,CAL fen, UIC, filnam CAL argument (CAL+2) is not in the file directory Mag tape - CAL adr of the device associated with the specified .DAT Slot (.SEEK, .ENTER, .RAND, .DLETE, . RENA.111, .RAND). DECtape - CAL adr 14 Director:i;: Full In response to a .ENTER the DECtape or MAGtape handler has determined that there is no space for annther file name. IV -' ' ' - - Mag tape - CAL adr DECtape - CAL adr IOPS ERROR CODES (Cont.) Error Code 0 I w Error Data OUtput 1 ~eaning 15 Device Full - No space available on the device medium for data storage. Disk - CAL adr,dv & unit,CAL fcn,UIC, Magtape - CAL adr,dv & unit,CAL fen DECtape - CAL adr 16 Output Buff er Overflow - The word pair count on the current .WRITE is greater than 177 8 • (This error i:s obsolete and has been replaced by IOPS 23.) CAL 17 Too many Files for Handler - Too many files are currently open on thetandler to be referenced by this CAL~ (See handler descriptions in Chapter 9 for limitations.) Disk - CAL adr,dv & unit,CAL fcn,UIC MAgtape - CAL adr,dv & unit,CAL fen DECtape - CAL adr 20 Disk Hardware Failure - Block no.,dv & unit, CAL fen, UIC 21 Illegal Disk Address - An attempt was made to·r-eference a bloCk number which was either 0 or greater than the max :i:mwn number of tiocks available on the disk. Block no.,dv & unit, CAL fen, UIC 22 Two Output Files on One Unit - An attempt was made Magtape - CAL adr,dv & unit,CAL fen DECtape - CAL address . to reference more than one output file concurrently on the same DECtape or ~agtape unit. adr 23 Illegal Word Pair Count - The word pair count in header word ~ of the logical record currently being transferred is either - or greater than 177 8 • Disk - CAL adr,dv & unit,CAL fcn,UIC filnam Magtape - CAL adr ,dv & unit.CAL fen, .. Other devices - CAL adr. 30 - API Software Level Error - An API break occurred to a software API level which did not have the appropriate transfer vector(s) setup in .SCOM+l2 through .SCOM+lS. Contents of the API Status Register Nonexistent Memory Reference - A nonexistent memory ref er ence occurred ·.d th memory protect mode ON without a user-de=ined violation routine. Program Counter 1--------t------------------------------+--------------------------f 31 l IOPS ERROR CODES (Cont.) Error Code Error Data Output 1 Meaning 32 Memory Protect Violation - A reference was made to a location in memory below the memory protect boundary without a user-defined violation routine. Program Counter 33 Memory Parity Error - A memory parity error occurred without a user-defined error routine. Program Counter 34 Power Fail Skip Not Setup - The power failure inter- Program Counter rupt detected a power low condition with no userdefined service routin~-- ~0.- save appropriate reqisters. 37 Print Line Overflow - The Slst or 133rd character (depending on the line printer type) of the line currently being output is not a legal terminator. (Carriage RETURN, ALT MODE, FORM Feed, LINE FEED, Vertical TAB, etc.). The remainder of the line is lost. CAL adr,dv 40 Header Label Error - During the processing of a .SEEK to a Magtape file, the handler calculated file name does not agree with the name present in the file header label. CAL adr 41 Directory Format Error - Illegal or meaningless data was found in the Magtape file directory. CAL adr 42 Accessibility Map Overflow - During the processing of an .ENTER to the Magtape unit, the accessibility map is found to be full. (Too many files.) Use MTDUMP to delete unwanted files to obtain space. CAL adr 43 Directory Recording Error - The file directory of the referenced Magtape has been contaminated. Use MTDUMP to reformat the directory. CAL adr 0 I "" IOPS ERROR CODES (Cont.) Error Code 0 Meaning Error Data Out~ut 1 44 Logical EOT Detected - The Magtape handler detected a logical End-of-Tape during the processing of a .SEEK or .ENTER. CAL adr,dv & unit,CAL fen 45 Long Input Record - The record being input from Magtape is too long for the handler's internal buffer (2SS 1_i_ words maximum). CAL pdr,dv & unit,CAL fen 46 Attempt to Delete A System File - An attempt has been made via a .DLETE to delete a file having a ~SYS" extension (applies to Advanced Monitor System DECtapes only). CAL address 47 Illegal Horizontal Tab - An attempt has been made to issue a Horizontal TAB operation on the Line Printer which caused the column count to exceed the device's capacity for line length. CAL adr,dv 51 Illegal User File Directorz - When performing Disk I/o: a. A .USER was issued using -1, ???, or @@@ as a urc. b. A .SEEK was attempted to a nonexistent UFO. CAL adr,dv & unit,CAL fen, UIC 55 No Buffers Available - A .GTBUF Macro was issued from either a handler or a user program with an insufficient number of buffers allocated (see BUFFS command, paragraph 8.6.l). CAL adr,dv & unit,CAL fcn,UIC 61 Parit_y_ Error in Director_y_ or File Bit M~ - Defective cfata, device medium, or hardware Tsee Recovery procedure for DECtape in note 2 below). Disk - CAL adr,dv & unit,CAL fcn,UIC DECtape - CAL address 63 Protected User File Directory - Attempt to create {.ENTER) or delete {.DLETE) a file in a protected directory (see 9.3.5). CAL adr,dv & unit,CAL fen, UIC I ~ IOPS ERROR CODES (Cont.) Error Code 64 Meaning Error Data Output 1 Protected File - Attempt to access a file via .RAND with protection codes 2 or 3! or to .SEEK a disk file with protection code of,3. CAL adr,dv & unit,CAL fen, UIC : - ' ff! UnreeoYerable Ma2taEe Error 66 Relative Block Not Within File - Attempt to access (via .RTRAN} a block not within the li~its of the current file [i.e., block fl or n+l)). CAL adr,dv & unit,CAL fcn,UIC,filnam 67 Ille9:al DECdisk Word Transfer Startin9:,Address or I Count When issuing an .RTRAN: a. The argument which specifies the first word .tn the DECdisk blee*--ee- be-· traas ferred is e:ither fl or greater than 3548. b. The argument which specifies the number of words to be transferred exceeds the physical block size (i.e., fl< no. words< 253-word starting address). CAL adr,dv & unit,CAL fcn,UIC,filnain 70 Buffer Size Too Small - The size of the buffer allocated by .GTBUF and . GVBUF Macros (established during System Generation) is not large enough for the handler a~tempting to utilize them. CAL adr,dv & unit, CAL fcn,UIC 71 EmEt:L UFO -A .SEEK or .RAND was attempted to a UFO which did not contain any files. CAL adr ,dv 72 InEut Paritv or Write Check Error - Hardware error detecteo; type CTRL R to continue. block no. ,dv & unit,CAL fcn,UIC 73 Null File Name - A .SEEK, .ENTER, .DLETE, .FSTAT or .RAND was issued with a null filename argument. CAL adr,dv 0 I "' - Ma gt ape status word, dv,CAL,fcn & & unit,CAL fcn,UIC,filnalll unit,CAL fcn,UIC IOPS ERROR CODES (Cont.) Error Code Error Data Out_put 1 Meaning 74 Disk System File Structure De~radation 3 a. Attempt to turn off a bit in a ,3ubmap that is already off. b. Attempt to write block ~ in a sequential file. c. Attempt to_ USE;! block JL as a UF~.l:>).C)~lc_. __ d. Nonexistent subl!'aE~. CAL adr,dv & unit,CAL fen, UIC,filnam JS Disk System File Structure De*radatian Word 1 of sutrnap is greater t an word fl or : is fl or negative. CAL adr,dv & unit,CAL fcn,UIC,filnam 76 Disk S'stem File Structure Desradati~n Word 3 68 of the first UFD or MFD black is not -l. Type CTRI., R to continJJe... . . CAL adr,dv & unit,CAL fcn,UIC,filnam 77 Undersized or Nonexistent CTRL _Q_ AR.EA - The system attempted to utilize a CTRL Q 1area (via CTRL Q, QDUMP, GET, PUT, GETP, GETT, GETS keyboard commands) which was nonexistent or of insufficient size for the amount of core available. (The CTRL Q area is created during System Generation.) The address (15-bits) to which control would have been passed if the requested operation had been successful. ' 0 I -.J NOTES 1 Abbreviations: addr • address dv • device fen • function filnam • file name ~ Recovery procedures for IOPS 61: 1) Repeat operation which causes error. 2) If error persists, remount DECtape on another drive and repeat step 1. 3) If error still persists and you are very familiar with DECtape file structure and have a reasonably current directory listing, proceed as follows: a. Using DUMP, obtain a listing of each file in the directory listing. (The directory listing provides the starting block number for each file. The last (link) word in each block points to the next block. Negative block numbers indicate reverse recording. Last block has a link of 777777.) b, Use PIP to block copy each file onto a good tape. c. Use PATCH to construct a directory on the new tape. DO NOT WRITE ON THIS TAPE - IT HAS NO BIT MAPS. d. Use PIP to transfer each reconstructed file to still another tape (this reconstructs the master and file bit maps). 3 These errors usually result from hardware failuE"e or inadvertent manipulation of disk structure data areas. APPENDIX E LINKING LOADER AND SYSTEM LOADER ERRORS The following error codes are output by both the Linking Loadez amd the System Loader. When output by the Linking Loader, the errors are identified as shown below. When output by the System Loader, the errors are identified as ".SYSLD n" instead of ".LOAD n". Error .LOAD 1 Memory overflow - the Loader's symbol table and the user's program have overlapped. At this point the Loader memory map will show the addresses of all programs loaded successfully before the overflow. Increased use of COMMON storage may allow the program to be loaded as COMMON can overlay the Loader and its symbol table, since it is not loaded into until run time. .LOAD 2 Input data error - parity error, checksum error, illegal data code, or buffer overflow (input line bigger than Loader's buffer) . -LOAD 3 Unresolved Globals - any programs or subroutines required but not found, whether called explicitly or implicitly, are indicated in the memory map with an address of 00000. If any of the entries in the memory map has a 00000 address, loading was not successful; the cause of trouble should be remedied and the procedure repeated • . LOAD 4 Illegal .DAT slot request - the .DAT slot requested was: a. b. c. .LOAD 5 Out of range of legal .DAT slot numbers, Zero, Unassigned; that is, was not set up at System Generation Time or was not set up by an ASSIGN conunand. Program segment greater ~han 4K - the program segment being loaded in fage Mode exceeds a Page Bound (i.e., prograJti is qreater than 4K). E-1 APPENDIX F PDP-15 ASCII/HOLLERITH CORRESPONDENCE The following table shows the correspondence between the PDP-15 64 character graphic subset of ASCII and the DEC 029/026 Hollerith codes. Both 029 and 026 codes are identical for numberic and alphabetic characters but very for symbol representation. The 029 code, except as indicated by brackets [),is a subset of the standard Hollerith punched card code specified in ANSI standard X3.26-1970. Characters in _E_arenth eses denote the 1963 character set. ASCII HOLLERITH ASCII HOLLERIT!i 7-BIT DEC 029 DEC 026 7-BIT DEC 029 DEC 026 CODE CHAR. CODE CODE CHAR. CODE CODE CODE Space ! " • $ % & , ( ) * + I I 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77 @ (11-8-2] 9-7 9-3 11-8-3 0-8-4 12 8-5 12-8-5 11-8-5 11-8-4 12-8-6 0-8-3 11 12-8-3 0-1 0 l 2 3 4 5 6 7 8 9 8-2 il-8-6 12-8-4 8-6 0-8-6 0-8-7 12-8-7 0-8-5 0-8-6 11-8-3 0-8-7 11-8-7 8-6 0-8-4 12-8-4 11-8-4 12 0-8-3 11 12-8-3 0-1 0 l 2 3 A B c D E F G H I J K L M N 0 p Q R s 4 T u 5 6 7 8 9 11-8-2 0-8-2 12-8-6 8-3 11-8-6 12-8-2 v w x y z [ ' ] A (t) _(+) 100 101 102 103 104 105 106 107 110 111 112 113 114 115 116 117 120 121 122 123 124 125 126 127 130 131 132 133 134 135 136 137 8-4 12-1 12-2 12-3 12-4 12-5 12-6 12-7 12-8 12-9 11-1 11-2 11-3 11-4 11-5 11-6 11-7 11-8 11-9 0-2 0-3 0-4 0-5 0-6 0-7 0-8 0-9 12-8-2 11-8-7 0-8-2 12-8-7 0-8-5 8-4 12-1 12-2 12-3 12-4 12-5 12-6 12-7 12-8 12-9 11-1 11-2 11-3 11-4 11-5 11-6 11-7 11-8 11-9 0-2 0-3 0-4 0-5 0-6 0-7 0-8 0-9 11-8-5 8-7 12-8-5 8-5 8-2 NOTES: 1. ASCII codes 00-37 and 140-177 have no corresponding codes in the DEC 026 & 029 Hollerith sets and therefore, are not presented here. 2. ALT MODE is simulated by a 12-8-1 punch (multiple punch AS). 3, End-of-file corresponds to a 12-11-~-l punch (multiple punch A,0-} • . 4. The card reader hardware supplies the binary equivalent of Hollerith code which in turn, is mapped into 7-bit ASCII by the Card Reader Handler. F-1 APPENDIX G DOS-15 CHECKOUT PROCEDURES INTRODUCTION The purpose of the DOS-15 checkout package is to show that the system has been properly installed onto DECdisk or Disk Pack. It does so by briefly testing all the basic pieces of the DOS-15 System Software. The following is a list of programs tested: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. DOS-15 Resident and Nonresident Monitors PIP FORTRAN Compiler and Object Time System MACRO Assembler Linking Loader and System Loader Chain and Execute System Programs System Device Handler (DECdisk or Disk Pack) Paper Tape Reader Handler Teleprinter Handler BATCH System Commands DOSSAV System SAVE/RESTORE program The batch paper tapes for the DOS-15 Checkout Package are identified as follows: RF.CHK RP.CHK (for the RF15 DECdisk System) DEC-l5-CIDA-PA (for the RP02 Disk Pack System) DEC-15-CTAA-PA CHECKOUT PACKAGE OPERATION Load the oos-15 System as described in Chapter 10. Place the paper tape labeled "RF.CHK" (if DECdisk system] or 8 RP.CHK" (if Disk Pack system) in the paper tape reader and type: BATCH PR The commands contained on the tape will then run the checkout package to completion as indicated on the teleprinter before leaving Conunand Batching Mode. CHECKOUT PACKAGE RESULTS The result from the FORTRAN Object Time System (shortly after the GLOAD command) should be: -,8 .123 SE+,03 Also the result of the Chain <Cmd Ex~cute programs should be: -,6.1234E+,05 Attached is a copy of the source listing of the DOS-15 Batch Tape Checkout Package. note that if you have a Disk Pack as your system device, this listing should read DP in commands instead of DK. Your Batch tape is correct for your system device. Pl~ase 'JOB L TURN ON AND RUN IN BANM MODE, TMJS MODE WILL STAV JN Errr.cT UNTIL TURNED orr YJA •P•GE ON' OR tBA~M orr'BANK ~N LOGllll REN SJOB LOOK AT CONTE~T 0, ·B~K· utc AND UIC NOT PR[SENTL TMIS TEST SHOWS MOW TD REFERENCE 01rrtRENT ~!C'S VIA PIPPJP L TT• DK <BNK) L TT"OI< IJl'lB L THESE COMMANDS TEST THE POLLOWINGI oos-15 RESIDENT ~ND NON•R[SJD[NT MONITORS PIP SYSTEM PROGRAM PAPERTAPE READER MANDLER DISK HANDLERS CA1L> SJOB R ftlP A DK 1/TT 2/PP J/PR 4 R ft!P I.JOB ESTAaLtSM USfR AREA AND PIP ON FILE 1 PIP N OK T DK r•TrST S~C•PR CA) iOATA 1 11118 RUD C1t1011) A F'ORMU CU2, 4) CALL f'llN CA1B> WRITE c2,Ull e STOP [NO UNO L TT .. 01< T OK MIN SRC•PR CA) 'DATA "'IN MIN1 MlN2 ,TfTL[ Mll\f ,GL0f:!L M!N 11 DA "JMS• JMI' 0 0A ,•2•1 .DSA ,OSA LAC• l)AC• MJN1 t•ll N2 tSl MI r•1 is~ LAC• TAD. OAC• JMP• 0 0 M1N2 MlN1 C4000H MtN2 MIN ,(ND SEND L 'TT•OK V OK f4TEST SRC (Al V OK MIN SRC IA) 'JOB TEST EXPANDED rORTRAN COMPILER L TME rOLLOWJNG COMMANDS WILL TEST THE rORTRAN COMPILER av GENERATING r4TEST BIN FROM f4TEST SRC1 A OKA •13/TTA •12/0KA ~11 R r4 r4 s11r.ne:sr SJOS US[ e.r.111.ANO x SWITCMES IN MACRO LIST TEST L THE FOLLOWING COMMANDS WILL TEST TME MACRO ASSEMBLER BY ASSEMBLING Ml~ SRC ANO GEN[RATll\fG MIN BlN 1 A OKA •141•13,•11/TTA •121•10 R MACRO MACRO f:!1T1N1X~MlN 'JOB LIST O!R£CTORV TO SMOW New 'IL.ES ANO DFSCR!PTORS, p I" L TT•OK CPI tJOB l. TM[ NEXT GROUP or COMMANDS WILL TEST& ,LOAl)•CLINKll\fG LOADER) nTS-rORTRAN OBJECT TIM~ SYSTEM ,SYSLO•CSYSTEM LOADER) T~CRE ~ILL B~ ONE LINE OF DATA OUTPUT ON TME TELETVP( rROM RUNNING TME FORTRAN ANO MACRO CLJNKEOJ PROGHAMS, SJ08 or.MONST~ATE 33 l..L. CODE rOR !OE~T!FYING RELOCATABl.~ PGMS, A IJR 11TTA 2 Cl.,OAO P•F4TEST,~IN,OATA 123. 451'>7 iJOB G-3 L TM! rOLLOW!NG COMMANDS WILL CHAIN TME roRTRAN ANn MACRO TEST AND THEN EXECUTE THEM, TMtS WILL COMPLETE THE TESTS USING TWO SYSTEM PROGRAMS, CMAl~ A~D EXECUTE, NOTE THAT LOADING ADDRESSES CHANG( WITM CORE Sil[ I! ,E, PROGRA~, 161<, 211lK, ETC.> A OKA •6,-4,~1/NON ·5 ei.op.1 C:MAIN ,4TEST r4T£ST,MlN $JOB A ,RA 1/TTA 2 E F4TEST R EXECUTE CMAlN JUST ~UlLT SO ATA 12!,45E•2 $,JOB L TMi oos-15 CMECKOUT PACKAGE MAS JUST COMPLETED ALL or TM£ REQUtRfO T[STS, APPEND.IX H DOS TERMS AND ACRONYMS Terms unique to the PDP-15 DOS Software System are listed and described in the followinq table. The acronyms for each term are also given. TERM ACRONYM !Bad Allocation Table BAT Master File Directory Monitor Identification Code storage Allocation Table System Block User File Directory user File Directory Table User Identification Code DEFINITION A device (disk) table which indicates, in storage blocks, any faulty disk areas in which data cannot be stored. MFD A master device (disk) file directory which contains pointers to all user directories (UFO' s) within a disk device. MIC The master system password which permits full access to all files within the system. This code identifies the system manager and should be used only by him. SAT The device (disk) table which stores busy, not-busy indicators for the disk storage area. SYSBLK The system table which contains the names, locations, and loading and starting parameters for all system programs within the operating system. UFO File directories for each user who established disk file storage areas within the system. UFDT The system directory table which maintains the relationship between the system's .DAT slots and each unique user identification code (UIC). UIC A password entered by a user to uniquely define himself and any files which he may enter. If necessary, a user may enter more than one UIC to establish several unique sets of files. Since only one user may emplQy the system at any one time, the current UIC is the last logged-in UIC. H-1 INDEX .. ADS and .ABSP Binary, 3-8 Characters, Absolute binary code, 3-8 ASCII, A-1, F-1 Access to files, 4-4 (nonprinting) for teleprinter directoried, 3-6, 4-7 functions, 9-12 non-directoried, 4-6 Checkout package, 1-10 procedures, G-1 random, 4-4 random-sequential, 4-4 Checksum, 6-5, 6-9 sequential, 3-5, 4-5, 4-6, 6-3 .CLEAR macro, 6-17 Allocating buffer space, 6-14, .CLOSE macro, 6-17, 6-31 6-15, 6-16 Command Batching Mode restricAlphanumeric data, 6-7 tions, 8-27 ALT MODE, 6-9, 6-10, 8-2 Command default settings VT API (Automatic Priority Interrupt), Display, 8-19 3-4, 4-2 Command Batching Mode, 3-4 API ON/OFF command, 8-19 Commands ASCII Batching keyboard, 8-25 to 8-28 character packing (sixbit), 5-2 core allocation, 8-13, 8-14 Hollerith correspondence, F-1 core image Save/Restore, 8-14 to packing and unpacking routines, B-1 8-17 DOSSAV, 7-3, 7-4 standard character set, A-1 Assembler, MACRO, 2-2, 2-3 DOSSAV examples, 7-5, 7-6 ASSIGN command, 4-1, 8-12, 8-28 file protection, 8-8 Automatic Priority Interrupt (API), Input/output, 6-2 3-4 I 4-2, 8-19 I/O device assignments, 8-10 keyboard, 3-3, 3-4, 8-1, 8-2 miscellaneous, 8-19 Bank mode operation, 3-9 ··Monitor, 5-1 BANK ON/OFF command, 8-20 program start/restart/continue, BAT (Bad Allocation Table), H-1 8-23, 8-25 BATCH command, 8-26 to request system information, Batching commands, B-25 to 8-28 8-3 job control commands, 8-26 VT15 Display, 8-17 to 8-19 operator commands, 8-26 Communications, I/O, 6-1 restrictions, 8-27 Compiler, FORTRAN IV, 2-1 Binary code, absolute, 3-8 Console keyboard, 8-1 Binary, relocatable, 3-7, 3-8 Console teleprinter, 3-3 .BLOCK pseudo-op, 6-14 Core allocation commands, 8-13, Bootstrap program, 7-2, 7-8, 7-9 8-14 restart, 7-9 Core image Save/Restore commands, Bracket {[ ]) usage, 5-2 8-14 to 8-17 Buffer, I/O, 3-7 CTRL commands, 8-2, A-1 header words, 4-2 CTRL C, 8-23, 8-26 overflow, 6-6, 6-13 CTRL P, 8-23 pool, 4-11 CTRL Q, 8-15 size for logical records, 6-4 CTRL R, 8-25, 8-26 size for VT display, 8-19 CTRL S, 8-25 space allocation, 6-14 to 6-16 CTRL T, 8-25, 8-26 BUFFS command, 8-13 CTRL U, 8-2 CTRL X, 1-5, 8-19 Calendar date entry, 8-21 Card files, 3-5 Card R~ader handler, 9-27 to 9-29 .DAT (Device Assignment Table) Carriage return, 5-1, 6-9,6-10, 8-2 3-5, 4-1, 6-16, 8-8 CHAIN and EXECUTE programs, 2-7 .DAT slot assignments, 9-3 to 9-30 advantages, 2-7 CHAIN, 9-9 disadvantages, 2-8 DTCOPY, 9-10 CHAIN .DAT slot assignments, 9-9 DUMP I 9-8 .EDIT, EDITVP, EDITVT, 9-6 CHANNEL 7/9 command, 8-20 .DAT slot assignments (continued) .DLETE macro, 6-18 DOSSAV (disk restoration), 7-2 EXECUTE, 9-9 commands, 7-3 FOCAL, 9-S error conditions, 7-7 FORTRAN T.V (F4), 9-3 Linking Loader and DDT, 9-6 restart procedures, 7-8 DTCOPY (DECtape COPY program) , 2-11 MACR0-15, 9-4 MTDUMP, 9-10 .DAT slot assignments, 9-10 DUMP .DAT slot assignments, 9-8 PATCH, 9-8 PIP, 9-7 Dump mode, 6-3, 6-6, 6-12, 6-14, SGEN, 9-7 6-33 SRCCOM, 9-9 DUMP program, 2-9, 8-16 Dynamic Debugging Technique (DDT), 8TRAN, 9-10 89TRAN, 9-10 2-9 UPDATE, 9-8 .DAT/.UFDT slot assignments, 8-13 Data Editing features, keyboard comfields, 6-4 mands, 8-2 storage, 6-10 Editing programs, EDIT, EDITVP, transfers, 6-1 EDITVT, 2-10 transfer program, 2-10 .DAT slot assignments, 9-6 Data modes, see Modes $END command, 8-27 $DATA command, 8-27 End of file (EOF), 6-6, 8-22 DATE command, 8-21 End of medium (EOM), 6-6 DDT (Dynamic Debugging Technique)2-9 .ENTER macro, 6-18, 6-33 DECdisk and Disk Pack handlers, Errors, 10-5 9-18 to 9-22 batching, 8-28 DECtape DOSSAV, 7-7, 7-8 directories, 4-6 IOPS, D-1 file structure, 4-6 Linking Loader, E-1 handlers, 9-17, 9-18 system, E-1 DECtape COPY (DTCOPY) Program, 2-11 Example I/O programming, 6-33 Default device assignments, 4-1 EXECUTE program, 2-7 Default protection code, 3-7, 8-9 .DAT slot assignments, 9-9 Delimiters, keyboard commands, 8-2 $EXIT command, 8-27 Device .EXIT macro, 5-6 assigrunents, 4-1 External globals, 3-9 capabilities, 6-29 independence, 3-4 Device, Features of system, 1-2 directoried, 3-6 Fields, data, 6-4 file-oriented, 3-6 File system, 1-6 directories, 3-6 Device Assignment Table (.DAT), 3-5, integrity, 6-44 4-1, 6-16, 8-B organization, disk, 4-11 Device dependent 1/0 programming, processing, sequential, 6-3 protection 3-7, 4-9, 8-8 6-33 Device handler characteristics, 6-29 File-oriented devices, 3-6 Device handlers, 3-4, 3-5, 9-10 Files also see Handlers, device definition of, 4-2 Direct access, 3-5, 4-4 direct access, 3-S Directoried data access, 4-7 sequential, 3-5 Floating point processor software,7-1 Directoried devices, 3-6 FOCAL .DAT slot assignments, 9-5 Directoried mode, 4-6 Disk FOCAL interpreter, 2-4 data access, 4-7, 4-8 Form control characters, 9-26 FORTRAN IV (F4), 2-2 file structure, 4-8, 4-11 handlers, 4-11, 9-18 Compiler, 2-1 .DAT slot assignments, 9-3 Disk pack handlers, 9-18 to 9-22 Disk restoration (DOSSAV), 7-2, .FSTAT macro, 6-19 .FOLL and .FULLP pseudo-ops, 3-8 example, 7-S Function characters (non-printing) tapes, 7-1 for teleprinter, 9-12 Disk save, 7-6, 7-7 Display mode, -v'f-15, - -8-17 X-2 GET command, 8-16, 8-17 .GET macro, 5-4 Global symbols, 2-3, 3-8 external, 3-9 internal, 3-9 .GLOBL pseudo-op, 3-9 GRAPHIC15 programs, 2-11 .GTBUF macro, 5-5 .GVBUF macro, 5-5 HALF ON/OFF command, 8-19 HALT command, 8-22 Handler characteristics, 6-29 Handlers, I/O device, 3-5,9-l to 9-30 Card Reader, 9-27 DECdisk, 9-18 DECtape, 9-17 Disk pack, 9-18 • 005-15 (swnmary), 9-1 Line Printer, 9-25 Mag tape, 9-23 Paper Tape Punch, 9-15 Paper Tape Reader, 9-15 Teleprinter, 9-11 VPlS Storage ~ube, 9-29 Hardware errors, 7-8 malfunction, 7-9 minimum, 1-3 optional, 1•5 Hardware Readin Mode, 7-3 Header word pair, 6-4, 6-12 format, 6-5 Hollerith/ASCII correspondence, F-l Image Alphanumeric Mode, 6-6, 6-10 Image Binary Mode, 6-6, 6-10 Image Mode, 6-3, 6-33 Independence, device, 3-4 Initializing handler, 6-2 9 system, 7-1 .INIT macro, 6-20, 6-29 Input/Output (I/O} buffers, 3-7 commands, 6-2 communication, 3-4, 6-l control characters, A-1 data mode terminators, c-1 device assignment conunands, 8-10 to 8-13 device handlers, see Handlers, I/O device device specification, 6-16 errors, 10-5 functions, Magtape, 9-24 macro descriptions, 6-16 to 6-28 macro syntax, 6-29 macros, using, 6-29 process, 4-1 programming examples, 6-33 to 6-43 transfer to directoried device,6-31 Input/Output Programming System (IOPS), 3-2 INSTRUCT command, 8-5 Internal globals, 3-9 Interpreter, FOCAL, 2-4 .IODEV pseudo-op, 6-16 IOPS (Input/Output Programming System), 3-2 ASCII mode, 6-6, 6-7 Binary mode, 6-6, 6-7, 6-9 error codes, D-1 errors, 3-10 mode, 6-3 $JOB, batching mode job separator, 8-26 KEEP ON/OFF command, 8-13 Keyboard commands, 3-3, 3-4, 8-1 8-2, 8-3 editing features, 8-2 Keyboard operations, 10-1 example, 10-2, to 10-8 Languages, 2-1 FOCAL Interpreter, 2-4 FORTRAN IV Compiler, 2-l MACRO Assembler, 2-2 Library, science, 2-2 Library subprograms, 2-8 Library UPDATE program, 2-11 Line Printer handler, 9-25 to 9-27 Line Printer on/off, 8-20 Line terminators, 6-9 Linking Loader, 2-1, 2-8, 8-25 .DAT slot assignments, 9-6 errors, 3-10, E-1 Loader control, 3-8 Loader, system, 3-1 Loading commands, system program 8-23, 8-24 Loading Monitor, 7-8 program, 3-9 system, 7-1 Logical record, 6-4 format, 6-3 terminating condition, 6-4,C-l terminators, 6-12, 6-13 LOG command, 8-22 LOGIN, 3-6 LOGIN command, 8-8 LOGOUT command, 8-9 LP ON/OFF command, 8-20 X-3 Macro combinations, I/O, 6-30 Macros, 2-3 Macro sequence, I/O, 6-31 Macros, I/O, 6-2, 6-16 to 6-28 .CLEAR, 6-l7 .CLOSE, 6-17 .DLETE, 6-18 .ENTER, 6-18 .FSTAT, 6-19 • !NIT, 6-20 .MTAPE, 6-21 .RAND, 6-21 .READ, 6-22 .RENAM, 6-23 • RTRAN, 6-23 .SEEK, 6-24 .TRAN, 6-25 .USER, 6-26 .WAIT, 6-27 • WAI TR, 6-27 .WRITE, 6-28 Macros, system, 5-1, 5-7 . EXIT I 5-6 .GET, 5-4 .GTBUF, 5-5 .GVBUF, 5-5 .OVRLA, 5-6 .PUT I 5-3 • TIMER, 5-7 Magnetic tape (Maqtape), 4-5 handlers, 9-23 to 9-25 Magnetic Tape Dump (MTDUMP) utility program, 2-9 MACRO Assembler, 2-2, 2-3 MACR0-15 .DAT slot assiqnments, ii-4 Mass stor.age, . 4-3 . DATE command, B-21 devices, 6-4 Master File Directory (MFD), 3-6, 4-8, H-1 Messages, see Errors MFO see Master File Directory MIC see Monitor Identification Code ~UCLOG command, 8-9 Miscellaneous commands, 8-19 Modes Bank, 3-9, 8-20 Comrnand Batching, 8-25 Data, 4-3, 6-6, 6-7, 6-14 Dump, 6-12, 6-14, 6-33 Image, 6-3, 6-33 Image Alphanumeric, 6-10 Image Binary, 6-10 !OPS, 6-3 IOPS Binary, 6-9 Page, 3-9, 8-20, 9-29 VT15 Display, 8-17, 8-18 Modification procedures, 7-10 Monitor, 1-1 commands, 5-1 destruction, 7-9 errors, 3-10, 10-5 functions, 3-l loading and starting, 7-8 Monitor Identification Code (1.IIC), 2-6, 3-6, 7-1, B-9, H-1 Monitor/User interaction, 3-3 X-4 .MTAPE macro, 6-21 MTDUMP, 2-9 .DAT slot assignments, 9-10 Non-directoried access, 4-6 Non-parity IOPS ASCII, 6-8 Nonresident Monitor, 3-1 Object code, 3-7 Object program, relocatable, 2-1 Object Time System (OTS), 2-2 Operating errors, DOSSAV, 7-7,7-B Operating procedures, 10-1 saving/restoring, 7-3 Overflow of buffer, 6-6, 6-13 .OVRLA macro, 5-6 Packing routine, IOPS ASCII, B-2 Page Mode operation, 3-9 PAGE ON/OFF command, 8-20 Paging Mode VT15, 8-18, 9-29 Paper tape files, 3-5 I/O, 6-12 Paper Tape Punch handlers,9-14,9-15 Paper Tape Reader handlers,9-15,9-16 Parity, 6-8, 6-9 PATCH .DAT slot assignments, 9-7 PA~CH utility program, 2-5, 2-6 $PAUSE command, 8-27 PDP-8 to PDP-9 Translator (89TRAN), 2-12 PDP-8 to PDP-15 Translator (8TRAN) , 2-11 Peripheral Interchange Program (PIP), 2-10 .DAT slot assignments, 9-7 Priority Interrupt (PI), 3-4 skip chain order, 8-3 Programming example, I/O, 6-33 to 6-43 Programs, 2-1 loading, 3-9 Program start, restart, continue conunands, 8-2, 8-23, 8-25 PROTECT command, 8-9 Protection codes, 3-7, 4-9, B-9 default code, 3-7 PUT conunand, 8-15 .PUT macro. 5-3 QDUMP command, 8-15 Question/answer sequence, SGEN, 2-5 .RAND macro, 6-21 Random access, 4-4 Random-sequential access, .READ macro, 6-3, 6-22 Real-time clock, 1-6 4-4 Reassignment of .DAT slots, 8-12 System (cont.) Records initialization, 7-1 definition of, 4-2 loader, 3-1 logical, 6-3 loader errors, 3-10, E-1 Relocatable binary, 3-7, 3-8 macros, expansions, 5-2 to 5-7 Relocatable object program, 2-l macros, summary, 5-1 Relocatable output, 3-7, 3-8 modification procedures, 7-10 .RENAM macro, 6-23 program errors, 10-5 REQUEST command, 8-8,8-10,8-ll,8-28 program loading commands, 8-23, Resident Monitor, 3-l 8-24 Restart programs, 2-l bootstrap, 7-9 software, 1-6, 1-8, 7-1 DOSSAV, 7-8 startup, 7-2 system program, 8-23 System Communication Table (.SCOM), Restore core image, 8-16 3-2, 6-16 Restoring procedures, 7-3 System Generator (SGEN), 2-4, 2-5, Retrieval Information Block (RIB),4-ll 7-10 RF15 DECdisk, 1-6 see also Disk RP-2 Disk Pack, l-6 see also Disk Pack .RTRAN macro, 6-3, 6-23, 6-33 Tab, 5-l RUBOUT, 8-2 Tailoring system, 7-10 Teleprinter, 3-3 console, 8-l SAT (Storage Allocation Table), H-l saving software, 7-3 Teleprinter device handler, 8-20, Science library, 2-2 9-ll to 9-13 SCOM command, 8-3 Teleprinter non-printing function SCOM (System Communication Table), characters, 9-12 · 3-2, 6-16 Terminating condition, logical Scroll mode, VT15, 8-18 record, 6-4, C-l .SEEK macro, 6-24, 6-33 Texmination of program, uncondi7-bit ASCII characters, 6-7, 6-8 tional, 8-22 Sequential access, 4-4, 4-11 Terminator Sequential files, 3-5 I/O, 6-31 processing, 6-3 keyboard command, 8-2 of logical record, 6-12, 6-13 structure, 4-5 SGEN, 2-4, 2-5, 7-10 Terms and acronyms, H-1 Text Editor programs, 2-10 . DAT slot assignments,-· - 9.,.7 Text output, switching between Sixbit file representation, 5-2 teleprinter and VT~4 screen,8-19 ASCII character packing, 5-2 TIME command, 8-21 Software, 7-1 .TIMER macro, 5-7 Software, system, 1-6, 1-8 TIMEST command, 8-22 how supplied, 1-10 Track count, 9-23 Source Compare Program (SRCCOM), 2-11 .TRAN macro, 6-3, 6-25 8TRAN (PDP-8 to PDP-15 Translator .DAT slot assignments, 9-9 program) , 2-ll Spaces, 5-l, 5-2 Starting .DAT slot assignments, 9-10 Monitor, 7-8 89TRAN (PDP-8 to PDP-9 Translator system, 7-l, 7-2 program), 2-12 Storage device, 6-12 .DAT slot assignments, 9-10 Transfers to directoried devices, non-mass, 6-8, 6-33 Subprograms, library, 2-8 6-31 33TTY ON/OFF .command, 8-20 Symbolic names, 6-35 Symbols, global, 2-3, 3-8, 3-9 Syntax, I/O macro, 6-29 UFO see User File Directory SYSBLK System Block, H-1 .UFDT see User File Directory .SYSLD see System Loader System Table UIC see user Identification Code concepts, 3-l Unpacking routines, IOPS ASCII, default parameters, 8-3 B-l device, 1-6 features, 1-2 Up ar»ow ( i ) usage, 8-19 hardwa:i.~, 1-3 UPDATE (Library UPDATE program),2-11 .DAT slot assignments, 9-8 information, commands to request, 8-3 x-s User File Directory (UFO), 3-6, 4-8, H-1 User File Directory Table, 3-6, 4-9, H-1 User Identification Code, 3-6, 4-8, H-1 .USER macro, 6-26 Using I/O macros, 6-29 Vertical form control characters, 9-26 VP15A Graphics software, 2-12 VP15A Storage Tube Display, 9-29,9-30 VT-4 Display Console, 1-5, 8-19 V'l'l5 Display buffer size, 8-19. clearing display screen, 8-18 command default settings, 8-19 commands, 8-17 to 8-19 editing' 8-18 modes, 8-17 text switching between teleprinter and VTlS, 8-19 VT15 Graphics software, 2-11 VT ON/OFF command, 8-18 .WAIT macro, 6-27 .WAITR macro, 6-27 Word count, 6-4, 6-6, 6-12 for .READ/.WRITE macros, 6-14 Word Pair Count, 6-4, 6-13 Words, definition of, 4-2 • WRITE command (.macro) , 6-3, 6-28 X4K ON/OFF command, 8-14 x-6 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 & PDP-12 Digital Software News for the PDP-II Digital Software News for the PDP-9/15 Family These newsletters contain information applicable to software available from Digital 's Program Library, Articles in Digital Software News update the cumulative Software Performance Summary which is contained in each basic kit of system software for new computers. To assure that the monthly Digital Software News is sent to the appropriate software contact at your installation, please check with the Software Specialist or Sales Engineer at your nearest Digital office. Questions or problems concerning Digital's Software should be reported to the Software Specialist. In cases where no Software Specialist is available, please send a Software Performance Report form with details of the problem to: Software Information Service Digital Equipnent Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 These forms which are provided in the software kit 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. Orders for new and revised software and manuals, additional Software Performance Report forms, and software price lists should be directed to the nearest Digital Field office or representative. U.S.A. customers may order directly from the Pr~rnm Library in Maynard. When ordering, include the code number and a brief description of the software requested. 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: DECUS Digital Equipment Corporation 146 Main Street, Bldg. 3-5 Maynard, Massachusetts 01754 DOS-15 Users ~anual DEC-15-0DUMA-A-D READER'S COMMENTS 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? If so, specify by page. Haw can this manual be improved? Other comments? S t r e e t : - - - - - - - - - - - - - - - - Deportment:-------------City: - - - - - - - - - - - S t a t e : - - - - - - - - - - Zip or Country_ _ _ _ __ - - - - - - - - - - - - - - - - - - - - - - - - - Fold Here - - - - - - - - - - - - - - - - - - - - - - Do Not Tear· Fold Here and Staple - - - - - - - - - - - - FIRST CLASS PERMIT NO. 33 MAYNARD, MASS. BUSINESS REPLY MAIL NO POSTAGE STAMP NECESSARY IF MAILF.D IN THf UNITF.D ST AUS Postage will be paid by: mamaama Digital Equipment Corporation Software Information Services 146 Main Street, Bldg. 3-S Maynard, Massachusetts 01754
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies