88A00142A B_GA1830_Disk_Based_Operating_System_Dec70 B GA1830 Disk Based Operating System Dec70
88A00142A-B_GA1830_Disk_Based_Operating_System_Dec70 88A00142A-B_GA1830_Disk_Based_Operating_System_Dec70
User Manual: 88A00142A-B_GA1830_Disk_Based_Operating_System_Dec70
Open the PDF directly: View PDF .
Page Count: 291
Download | |
Open PDF In Browser | View PDF |
REFERENCE MANUAL DISK BASED OPERATING SYSTEM I I""" I I ", GENERAL AUTOMA TION, INC. I ,'II ' @ PRICE $10.00 88A00142A-B GENERAL AUTOMATION, INC. _ _ _ _ _ _ _ _ _ _ _ _ _~~ REFERENCE MANUAL GA18/30 D-ISK BASED OPERATING SYSTEM Technical Notice No. 1 Installed GENERAL AUTOMATION, INC. Automation Products Division 1055 East Street, Anaheim, California 92805 (714) 778-4800 @ 1970, General Automation, Inc. ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - 88A00142A-B REVISION Symbol Description A Programming Release B RevisIOn Approved Date Aug 70 ~~L~~~~ ---------------8-8-A-O-O-1-4~~-i;-~ __ CONTENTS Title Page 1 INTRODUCTION 1.1 General 1.1-1 1.1-1 2 DBOS PROCESSING 2. 1 General Information 2. 2 Control Command Input 2.2. 1 Control Command Input from the Teletype Keyboard 2.2.2 Control Commands Input from Cards 2. 3 Control Command Listing 2. 4 Sy stem Control Command and Commentary 2.4. 1 Logical Unit Assignment 2.4.2 Job Command 2.4.3 Copy Command 2. 4 . 4 Replace Command 2.4. 5 Delete Command 2.4.6 List Directory Command 2.4. 7 Pack Directoried File Com~ard 2.4. 8 Dump Command ,I;: 2.4.9 PDump Command 2.4. 10 Program Execution Command 2.4~ 11 Processor Execution 2.4. 12 Write End-of-Data Image ($EOD) 2.4. 13 Paper Tape Segment Routine ($PREEL) 2. 5 Predefined DBOS Processors 2.5. 1 Symbolic Assembler 2. 5. 2 Fortran Compiler 2 • 5.3 Core Image Converter 2.5.4 Source Image Editor 2. 5. 5 Debug Program 2. 5. 6 Sequence/Compare Program 2.5. 7 System Generation Utility 2. 5. 8 Bootstrap Loader 2.5.9 Paper Tape Visual Header Generator 2.6 DBOS Processing Examples 2. 7 Media Data Record Formats 2 . 7 • 1 Card Data 2.7.2 Paper Tape Formats 2.7.3 Disk Formats 2.1-1 2.1-1 2.1-1 Section Revised Dec 70 2.2. 1-1 2.2.2-1 2.3-1 2.4-1 2.4.1-1 2.4.2-1 2, 4 3-1 ':-.~1( ~ ~.":' ;~Z~'4 • 4-1 2.4.5-1 2.4.6-1 2.4.7-1 2.4.8-1 2.4.9-1 2.4.10-1 2.4.11-1 2.4.12-1 . ,•. • 2.4.13-1 2.5-1 2.5.f-l 2.5.2-1 2.5.3-1 2.5.4-1 2.5.5-1 2.5.6-1 2.5.7-1 2.5.8-1 2.5.9-1 2.6-1 2.7-1 2.7-1 2.7.2-1 2.7.3-1 i ~~L~~n~~ ____- - - - - - - - - - - - -88A00142A ----CONTENTS (continued) Section Establishing New Files 2.8.1 Reas signing Files JOB Control from Directoried Disk File 2.8-1 2.8.1-1 2.9-1 3 DBOS OPERATIONS 3.1 DBOS Operations 3.1.1 Bootstrap Loading from Disk '3. 1 .2 Console Interrupt to the Monitor 3. 1. 3 Programmed Return to Monitor 3.1.4 Program Restart Through the Monitor 3.1. 5 Manual Entry to the Monitor 3. 1 .6 Monitor Fixed Locations 1.2 Executi ve Operations 3.3 System Messages 3.3. 1 Input/Output Error Messages 3.3.2 Control Command Error Messages 3.3.'3 Prace s sing Error s 3.1-1 3.1-1 3.1.1-1 3.1.2-1 3.1.3-1 3.1.4-1 3.1.5-1 3.1.6-1 3.2-1 3.3-1 3.3.1-1 3.3.2-1 3.3.3-1 4 SYSTEM GENERATION 4. 1 Introduction 4.2 Console Bootstrap Procedure 4.3 Bootstrap Program Execution 4.4 System Generator Execution 4.4. 1 Store Monitor 4.4.2 Store Executive 4.4.3 DBOS Characteristic Definition 4.4.4 Store Monitor and Execute Completlon of the System Generation 4.5 4.6 Card Controlled System Generation 4.7 Paper Tape Systems 4.7. 1 Console Bootstrap Procedure 4.8 Bootstrap Program Execution 4.9 System Generator Execution 4.10 Loading the Executive Tape 4.11 DBOS Characteristics Definition 4.12 Store Monitor and Execute 4.13 Completion of System Generation 4.14 DBOS Configuration Kit 2.8 2.9 11 Page Title 4. 1-1 4. 1-1 4.2-1 4.3-1 4.4-1 4.4 1 4.4-1 4.4-2 4.4-2 4. 5-1 4.6-1 4.7-1 4.7-2 4.8-1/2 4.9-1/2 4.10-1/2 4.11-1/2 4.12-1/2 4.13-1/2 4.14-1 Revi sed Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A CONTENTS (continued) Section Title Page 5 LOGICAL INPUT/OUTPUT SYSTEM 5.1 General Information LIO Calling Sequences 5.2 5.2. 1 Input/Output Request 5.2.2 I/O Request Status Check LIO Usage 5.3 5.3. 1 Logical Disk Driver 5.3.2 Logical Disk Packing Driver 5.3.3 Logical Card Driver 5.3.4 Logical Line Printer Driver 5.3.5 Logical Teletype Driver 5.3.6 Logical Paper Tape Driver 5.1-1 5.1-1 5.2-1 5.2.1-1 5.2.2-1 5.3-1 5.3.1-1 5.3.2-1 5.3.3-1 5.3.4-1 5.3.5-1 5.3.6-1 6 DESCRIPTION OF I/O SUBROUTINES 6. 1 General 6. 1. 1 I/O Driver Organization 6.2 Basic Calling Sequence 6.2. 1 N arne Parameter 6.2.2 I/O List Parameters 6.3 General Format of I/O Calls 6.3.1 Calling Sequences 6.4 Bulk Storage Subroutine (BULKN) 6.1-1 6.1.1-1 6.1.1-1 6.2-1 6.2.1-1 6.2.2-1 6.3-1 6.3-1 6.4-1 Appendix A B C D E F G Revised Dec 70 DISK SECTOR MAP STANDARD CHARACTER CODES EBCDIC DECIMAL EQUIVALENCE FORTRAN EXECUTION (RUNTIME) ERRORS FORTRAN COMPIlATION ERRORS DBOS LOGICAL UNIT ASSIGNMENTS DBOS FILE NAMES AND DESCRIPTION TABLES A-I B-1 C-l D-l E-1 F-1 G-1 iii ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A SECTION 1 INTRODUCTION 1.1 GENERAL The GA 18/30 Disk Based Operating System (DBOS) is a comprehensive, useroriented operating system which provides the User with the following features: a. System Operation. Provides efficient operations under monitor control. Simplifies manual operations. Reduces operator errors and job set-up time. Provides simplified control sequences. Allows efficient file control. b. Job Processing. Initiates assemblies, compilation, program check out and execution. Assigns files and peripheral equipment. Allocates memory. Provides batch-processing of jobs. c. Input/Output System I/O drivers. I/O interrupt control. Data packing and unpacking. Device independent 101 ica 1 I/O units and devices. 1.1-1 ~~L~~~~ _ _- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A d. Standard Processor Master Files. Symbolic assembler. FORTRAN Core image converter (loading and linking program) . Source language editor. Debug routine. e. Programmer/Operator Aids Program execution by program name. Diagnostic error mes sages. Simplified calling sequences. Memory dump. Directoried files. f. Sy stem Preparation and Maintenance. Simplified system generation. Replacement and deletion of directoried files. Listed output of file directories. User program in directoried files. DBOS a llows job proces sing to proceed under the direction of control commands. Control commands may be submitted by the programmer or prepared by the operator and input to the system from the teletype keyboard I card reader I or paper tape reader. Jobs may be batched or singly processed under guidance by the operator. 1.1-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A DBOS operates in the following minimum hardware configuration: a. A GA 18/30 Industria 1 Supervisory System Computer with 8192 word s of core memory. b. 1 Model 1362 or 1363 teletype unit. c. 1 Model 1341 or 1344 Disk storage unit. The addition of the following peripherals enhances the utility of DBOS: a. Model 1311 card reader. b. Model 1313 card punch. c. Model 1352 line printer. d. Model 1321 paper tape reader. e. Model 1322 paper tape punch. DB OS generation requires high speed paper tape or card input. This manual is intended as a general reference manual to be used by both programmers and operators. It provides descriptions of DBOS proces sing functions control command configurations operations I I I including and standard processor usage; system including bootstrapping I system entry methods end system I messages; system generation methods and techniques; and usage of the input/ output system. 1.1-3/-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A SECTION 2 DBOS PROCESSING 2. 1 GENERAL INFORMATION The GA 18/30 Disk Based Operating System (DBOS) provides complete proces.sing capabilities in the following areas: a. As sembly and compilation of source language programs. b. Loading and execution of user programs. c. Maintenance of user and system programs on disk storage. d. Device independent input/output operations. e. Sequential job processing from control commands. DBOS consists of the following components: 1. The Monitor. The monitor is a core resident program which processes internal interrupts I loads system processors from disk, processes user- programmed returns to DBOS I and contains system-wide parameters. 2. The Logical I/O System. The logical I/O system is a core resident set of input/output drivers, I/O device tables I and a central control routine for performing operation s according to logical device specifications. 2.1-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 3. The Executive. The executive is a system processor which is loaded by the monitor to proces s control commands. The control commands define logical unit assignments, program assembly or compilation, program execution, and disk utility functions. DBOS is initially created by a system generation process. This process is described in section 4 of this manual. During system generation, the system is written onto disk and , when it is to be activated, is read into core via a disk IPL operation (see section 3, DBOS Operation). 2.1-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.2 CONTROL COMMAND INPUT The DBOS user communicates processing requests to the system by means of control commands. Control commands are read by the system and input to an 80-character storage buffer for processing. These commands ha ve the following syntactical format: $command [, oPtion] 6comments where: $ is the control command identification character and is always the first character of the control command input record. command ~PtiO~ represents one of the legal command syntax structures. represents an optional command modifier. All data within braces is optional including delimiters. indicates a blank character. This blank acts as the command terminator. Only comments may follow. comments represents an optional string of characters from the GA 18/30 character set and arc included for annotation purposes. Comments are listed on the system log but have no processing function. 2.2-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Control commands are input from the system s logical unit CC. The teletype I keyboard is the standard device assigned to logical unit CC. The most meaningful alternate CC device is the card reader since this provides batchprocessing capability to the system. 2.2-2 ~~L~~~~ --------------------~ __ 88A00142A 2.2. 1 CONTROL COMMAND INPUT FROM THE TELETYPE KEYBOARD When logical unit CC has its standard device assignment (teletype keyboard) I DBOS indicates the start of a new control command sequence with the message DBOS CC This signifies that subsequent control commands are to be keyed-in by the operator. The system processes these commands as follows: 1. The system signals its readiness to receive a control command by output of a control command request which consists of a Line Feed I a Return I a ? and a space. Only following this request can the operator key-in a control command. 2. The operator may key-in a control command of up to 80 characters I including comments. Keyed-in control commands are terminated by striking the RETURN key on the keyboard (no trailing blank is required). Proces sing begins immediately following the RETURN key. If comments are included I a blank (space) must appear before the comment string. 2.2.1-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 3. Key- in errors may be deleted, if detected prior to the RETURN key I in either of two ways: a) By striking the RUB-OUT key on the keyboard, the operator deletes the entire command. Upon receipt of the RUB-OUT key, the system immediately requests a control command as in 1. , above. b) To delete the last n characters of the control command, the operator strikes the left arrow ( - ) key n times. Each time the -is struck the last remaining input character is deleted from the input record. 2.2.1-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88AQ0142A 2.2. 2 CONTROL COMMAN DS INPUT FROM CARDS When logical unit CC is reassigned to the card reader I the system reads and processes 80-column card image records. The $ character must be in column 1 and all characters up to the first blank constitute the control command. Once the card reader is assigned as the CC device I it continues as the control command input medium until CC is reassigned or the system is reinitialized. 2.2.2-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 3 CONTROL COMMAND LISTING Control Commands are always listed, during processing I on the system log (logical unit 8L). The line printer is the standard 8L device. If 8L is assigned to the teletype printer, the listing is suppressed if the CC input is from the teletype keyboard. 2.3-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.4 SYSTEM CONTROL COMMAND AND COMMENTARY The following subparagraphs define the specific control commands acceptable to DBOS. Each must conform to the general format specified in paragraph 2. 2. Optional elements are indicated by brackets ([ ] ). An optional element includes all items within the braces, i. e. , [, pJ indicates that the comma and P may be omitted. These commands define the major processing functions of the system. Commentary The comment command allows additional commentary in the control command input stream. It is of the form: SC~ commentary Example STOB Assemble real time executive Sc 10/15/70 version 1, modification 2 SA Invoke assembler Revised Dec 70 2.4-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4. 1 LOGICAL UNIT ASSIGNMENT Each DBOS system is generated with standard logical unit assignments to conform to the particular hardware configuration. This includes User disk sector allocation. Table 2-1 defines the generated standard assignments. Logical units may be referred to symbolically or by number (0-15). A logical unit assignment command is provided which can override the generated standard as signments. This override can be defined to continue for the duration of only one JOB or through multiple JOBS. A JOB duration is defined as the period between the occurrence of a SJOB command and a subseqte nt SJOB command. Programs which use the Logi cal I/O system for input/output may, through use of this command, use any devices. This command assigns one of the logical units shown in table 2-1 to one of the files shown in table 2-2. It has the following format: $lun=file [j where: lun represents one of the logical unit names or valid decimal numbers shown in table 2-1. file is the name of the device (CR, PR) or shown in table 2-2 I II file II (DS I we) as to which the logical unit is being assigned. 2.4.1-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A (name) represents a program name if II file" is a directoried file (DS, LB, DC or UL). If (name) is used, the logical unit assignment is to that program within the specified file. (bs-es) represents a disk storage area. "bs II defines the beginning sector address (in hexadecimal) and "es" defines the ending sector address (in hexadecimal). If this option is used I the logical unit assignment is to that area of disk. specifies that a LUN assignment is to be maintained through p successive JOBS. Logical units defined with the P option will be overridden by an IP L operation. When the P option is omitted the LUN assignment will be maintained for one JOB sequence only. The next $JOB will reset the LUN assignments to the last user specified LUNs tagged with the "P" option. LUNs not specifically specified by the user will be reset to the generated system standard. Examples: 1. $LO=TY ·The teletype printer is aSSigned as the listing output device. 2. $CC=CR The card reader is assigned as the control command device. 2.4.1-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 3. $SI=WS The working source language data file (WS) is assigned to symbolic input; i. e. I subsequent symbolic input will be taken from the WS file on disk. 4. $SI=DS (USRI) The symbolic input logical unit is assigned as program USRI which is in the directoried source file (DS). Note: Caution must be exercised when ass.i.gning non-standard devices to OM I CC and SL. For example; assignment of the line printer to OM to list FORTRAN error messages is inadvisable. FORTRAN expects to receive input from device OM which is not possible from a line printer. Caution should always be exercised not to assign output only devices as input files and vice versa. 2.4.1-3/-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4.2 JOB COMMAND The JOB command sets the logical unit assignments to the generated standards (table 2. 1) or to the last user specified assignments tagged with the ., P" option. (see 2.4. 1) In addition the JOB command initializes (opens) disk files. This command may be used at any time, but it normally is the first command in a job stack. The format is: SJOB 2.4.2-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4. 3 COpy COMMAND The COpy command provides file-to-file copying capability. It also provides a method for defining names of programs in directoried files (DS, LB, UL and DC file s) . The format of the COpy command is: A B [ (name) , file $COPY C D , l Source J , file 2 ~ (bs-es) T A B I .-J C D ~name) ] (bs-es) "Destination y I Where: A are optional data type specifications B A- specifies ASCII data in 80 character record form. B- specifics bin ary data in 54 word assembler object C o or core image record form. 2.4.3-1 ~~,~LAU~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A C- specifies unchecksummed binary data in 60 word record form D- specifies binary data in 320 word record form on disk. represents the input (source) file involved in the COpy , file 1 represents the output (destination) file involved in the COpy (name) J represent options, and (name) and (bs-es) have the same meaning [ (bs-es) as defined in subparagraph 2.4. 1. When the COPY command is processed, data is copied from filel to file2 until an ASCII END I is encountered. binary end (OFOO) record I end -of-data ($EO D), or end-of-file An ASCII END may exist as the first or second field of a source record. Therefore a label may appear before the END record in an assembler source filel' i. e. I I NAME END. NOTE: The END statement may not begin in columns 1 or 21. If A, B, C or 0 is not specified, the data type is determined from the file name. Disk files are assumed to be 320 word binary records. If the file is capable of maintaining both ASCII and binary data, ASCII is taken as the normal type. The DBOS system maintains implicit definitions for all files, whether disk resident or external devices. The optional typo specification overrides thoso' .lmplicH dcfin.lUons, L e., SCOPY, CI{,A In this example the .implicit definHion of type binary for file LB is overriden and forced to be ASCII. Such action, while permis sible, will create improper structure of the file for the 2.4.3-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A inserted program (LB may contain only type "B" data). The user should only specify a type code when: 1. The destination file is of a "type" different from the input file "type". 2. An external file of unchecksummed binary data is to be copied, type "C II 3. Both files are capable of containing ASCII and binary data and type • "binary" is required. Note: the default type for such files is. ASCII. (Le., CR, CP) 2.4.3-3 ~~L~~n~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A LIBRARY EXPANSION When a program is copied to a directoried library file (LB or UL) I the program name(s) is taken from the input program. Multiple programs may be input to create or append a library. The input must be terminated with an end of data ($EOD) record. (See section 2.4. 12 for use of $EOD.) 2.4.3-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ WC AND DC INPUT Core image data are absolute programs with subroutines properly linked and all external references satisfied. In order for programs to be in core image format, they must have been processed by the core image converter (see subparagraph 2.5.3) which loads binary object programs, links program elements and performs proper relocation adjustments, or the assembled binary object from an absolute assembly. No external references may be used in assembly. Precede SA with SBO=WC to create object in WC file. Once a program is in core image format, it can be loaded from the DC or we file and executed without further processing. 'See paragraphs 2.4.20 and 2.4.11). SCOpy Examples: 1. SCOPY, DS (PROGA), WS Copy PROGA from the DS file to the WS file. ASCII 80 character record form is used. 2. SCOPY, B, CR, LB SEOD Copy a binary file from the card reader to the 18 file. The binary file is identified in the L8 directory according to the name contained on the input program data records. (B specification is redundant but permissible. ) The last copy operation affecting a library must be followed by a SE0D. 2.4.3-5 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ " 88A00142A 3. SCOpY, WC , DC(PROGX) Copy the working core image file (WC) into the directoried core image program data file and give the program the name PROGX in the DC directory. 4. SCOPY, DS(PROGS) LP I Copy program PROGS from the DS file to the line printer (LP) • S. SCOPY, DC(NAME),B, TY COpy program name from DC to the teletype. 2.4.3-6 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4.4 REPLACE COMMAND The REPLACE command provides the capability to replace a previously named program in a directoried file with data from another file. The format of the REPLACE command is: A $REPLACE , file 1 (name) (bs-es) I B C D I(name) file2 I l L(bs-es~ \" If destination source where: , file l represents the output file, i. e. I the file which will receive the replacement program. (name) repre sents the name of the program in file 1 which is being replaced. The name will be assigned to the new program unless file I is a library file. In this case the program name will be taken from the input data. IA , B ,C ,D are optional data type specifications, as defined in subparagraph 2.4.3. represents the input file; i. e. I the file from which the replace- ment program is to be copied. 2.4.4-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A (name) are optional and have the same meanings as defined in (bs-es) subparagraph 2.4. 1 . $REPLACE examples: 1. $REPLACE DC(PROG7), WC I Replace PROG 7 in the DC file with the program in the WC file. 2. $REPLACE, LB(SUBA) ,CR $EOD SPACK Program SUBA of the LB file is replaced by the binary record in the CR file. The last REPLACE operation affecting a library file must be followed by a $EOD and $PACK. 3. $REPLACE, DS(PROG23) ,A, WS Program PROG23 of the DS file is replaced by the symbolic program in the WS file. NOTE The REPLACE command does not write the new program over the program being replaced. Rather I the new program is written in the first unused space of the file and the nbs and II es II II addresses in the directory are altered to reflect the replacement. A subsequent $LDIR command would indicate the area occupied by the replaced program as ****** unless a SPACK command has compressed the file. See $LDIR (2.4. 6) and SPACK (2. 4. 7). After replacing a library routine a SPACK must be executed. (See 2.4. 7 .) 2.4.4-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4. 5 DELETE COMMAND The DELETE command is used to delete an existing named program from a directoried file. The format of the DELETE command is: $DELETE, file (name) where: , file represents the name of one of the directoried files (DS, LB, UL or DC) (name) represents the name of the program which is to be deleted. Example: $DELETE, LB (SUBA) SPACK The program named SUBA is deleted from the LB file. Note: A SPACK command must be executed after deleting subroutines from the library. See 2.4. 7 . 2.4.5-1/-2 ~~L~~~~ --------------------~ __ 88A00142A 2.4. 6 LIST DIRECTORY COMMAND The list directory command causes the current status of a directoried file to be listed on the SL (system log) unit. The command format is: ~s-e~ $LDIR. file where It file" is the name of the directoried file whose directory is to be listed. The LDIR listing has the format: bs es type rpr ipr name for each item in the directory. "bs" specifies the beginning sector address (in hexadecirna 1) I and" es II the ending sector address (in hexadecimal), of the disk area assigned to the storage of program "name". For library subroutines type indicates the program type as LIB Called by LIBF ENT Called by CALL 2.4.6-1 ~~L~~~~ --------------------~ 88A00142A __ "rpr" indicates the precision of real numbers and II ipr" indicates the precision of integer numbers as blank Unspecified SPR Standard pre ci s ion EPR Extended precision If an area has been deleted or replaced bs es 2.4.6-2 ****** I the listing format is: ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.4.7 PACK DIRECTORIED FILE COMMAND The pack directoried file command packs the elements in directoried files to eliminate unused sectors resulting from program deletions or replacements. The format of the command is: SPACK, file where II file II is the name of one of the directoried files (DS, L8, UL or DC) . NOTE For proper processing of libraries (L8 or UL) by the Core Image Converter . The PACK command must be is sued following any update to the library. 2.4.7-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.4.8 DUMP COMMAND The dump command produces a hexadecimal listing of a file on the 8L (system log) unit. The command format is: A (name) B $DUMP , I file C D (bs-es) where: I I A are optional data type specifications I B as defined in subparagraph 2.4. 3 I C and define the data type of the file I D data. file I is the name of the file to be dumped (name )Jare optional and have the same meanings as defined in [ (bs-es) subparagraph 2.4.2. A $DUMP listed line has the format: lac datal data 2 ... data n 2.4.8-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A where: loc represents the relative record location (hexadecimal) of the first data item in the first data item in the line. datai represents a data item n is 16 if 8L is assigned to the line printer and 8 if the 8L is as signed to the teletype printer. If the nth item of a line (8th or 16th item) and the next n items are identical, the next line is not printed. When this occurs one response occurs. Assume a block of 32 words contains a recurring series of numbers; 1, 2 5, 6, 7, 8 followed by a disimilar pattern 8, 7, 6 I 5, 4, 3, 2, 1. The listed output would appear as two lines as follows: LaC 1 33 Datal Data8 , 1 8 3 7 examples: $DUMP, DC(PROGA) 2.4.8-2 4 567 6 543 2 8 1 I 3, 4, ~~L~~~~ __ ------------------~ 88A00142A Dumps the program named PROGA from the DC file. $DUMP,B,DK(lSFO-lSF5) . Dumps the binary data from the DK file, sectors 15FO through 15F 5. 2.4.8-3/-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.4. 9 PDUMP COMMAND When the monitor assumes control of the system, core memory is saved prior to execution of the system executive. The PDUMP command provides a selective dump of this core memory in hexadecimal. The command is: where: represents the location (in hexadecimal) of the first core memory word to be dumped. -Ioc2 represents the location (in hexadecimal) of the last core memory word to be dumped. Output resulting from PDUMP is on the 8L (system log) unit and consists of lines in the following format: loc datal data2 ... data n 2.4.9-1 @.~~L~~~~ ______________________ 88A00142A where: loc the memory location (in hexadecimal) of the first data item in the line. "loc data n i ll is always a modulo 8 address. represent the contents of man ory location IIl ocZ II through II loc II . n is 16 if SL is as signed to the line printer and 8 if SL is a s signed to the teletype printer. If the nth item of a line (8th or 16th item) and the next n items are identical, the next line is not printed. When this occurs, one upspace occurs. See section Z. 4. 8 for listing example. If the optional [, locI - IOCzJ is not present in the PDUMP command, the entire core memory is dumped. The system saves the program registers in the following locations: REGISTER I A Q Index I Index 2 Index 3 2.4.9-2 LOCATION (HEX) /77 /78 /79 /7A /7B /7C ~ ~~L~~~~ _ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A examples: 1. $PDUMP, 15A5-15B3 Dumps the contents of saved core locations /15AO through /15B F . 2. $PDUMP ,70-7F Dump the contents of saved core locations /70 through /7F which includes the program registers. NOTE The monitor performs a core save function every time it is entered by a functional program. Control may be returned to the monitor in any of several ways: 1. Manual entry at locations /71 or /73. 2• Programmed return via a a. CALL MaN normal return b. CALL MaNE error (abort) return c. FORTRAN CALL EXIT or STOP. d. Console interrupt. Refer to sections 3. 1 . 2 through 3. 1 . 6. 2.4.9-;3/-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4. 10 PROGRAM EXECUTION COMMAND A program which is conta ined in core image format in the working core ima ge file (WC) may be loaded and executed by use of the following command: $LOAD [. name 2] where "name211 is optional and represents the name of a second program from the DC file which is loaded along with the program from the WC file. If "name2" is present in the command I program "name2" is executed when loading is complete. If "name2" is not present, the program from the WC file is executed. Only one program may be contained in the WC file at a time. This command is similar to the Processor execution command (2.4. 11) except that it allows loading unnamed programs. A program may be placed in the WC file by a SCOPY operation. 2.4.10-1 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - _ 88A00142A Example: SCOPY, WB ,WC would copy the object output from the as sembler in file WB to the core image file WC. $COPY CR I we would copy an obj ect deck to I WC for execution. The following command sequence will result in an executable program in file WC from source media. $IOB $A and $F Source Statements $EOD $CIC [ *MAPJ *BUILD $LOAD Immediate execution or SIOB $BO=WC assembler object output to WC SA $ LOAD immediate execution A second program may be called into core from the De file along with the program from 2.4.10-2 we. ~~~~~~---------------------~ 88A00142A The format: $ LOAD , PROG2 where PROG2 is a program stored in the directoried file De. The second program must be origined such that it does not overlay the program loaded from we. (See BOUND directive under eIe, section 2.5.3.) (An assem- bler ABS and ORG directive may be used to origin an assembly language program.) A typical use for the double program call is in debugging. The command $LOAD,D will load the program from we and the DBOS debug routine from De. Execution will begin with debug (see section 2. 5. 5) . Note: The debug program occupies /700 locations of high core. (origin /7900) Revised Dec 70 2.4.10-3/-4 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 2.4. 11 PROCESSOR EXECUTION Any program may be specified as a processor by having that program stored in the directoried core image file (DC) with its name in the DC directory. A number of predefined processors are included in DBOS. These are defined in paragraph 2. 5. A user may add his programs (processor) to the DC file by use of the copy command. Examples: SCOpy CR DC(NAMEX) I I Copy an external program into DC from cards. SCOPY, WC ,DC(PROGl) Copy the unnamed program in WC into the DC file and call it PROGl . Programs which are in the DC file may be loaded and executed by use of the following control command: 2.4.11-1 ~~L~~~~ _ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A where: name represents the name of the program (processor) to be loaded. 1 [,name~ is optional and represents the name of a second program from the DC file which is also to be loaded. If Iname2" is specified both programs are loaded into core memory and program Iname2" is executed. Normally I " name 2 II is a debug program. Example: 1. $PRGI5 Load and execute program PRG 15. 2. $PRGI5,D Load both program PRG 15 and D (the debug program) and execute the debug program. See section 2. 4. 10 for examples and origin re strictions • 2.4.11-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.4. 12 WRITE END-OF-DATA IMAGE ($EOD) The Core Image Converter I CIC I (see section 2.5.3) will accept data from up to four separate binary files. Each file must terminate with a $EOD image record. This image causes the CIC to terminate access of one file and advance to the next or if the file is LB to stop accessing completely. The command $EOD will close a file. Example: $IOB $F Fortran mainline to file WB. $A Assembler output to file WB. $EOD Close WB file. No more data may be entered into WB. NOTE: The $EOD command writes on logical unit BO. The standard assignment for BO is WB. When a library is being terminated the $EOD command writes into the library ft Ie instead of BO. 2.4.12-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Example: open files $JOB $COPY CR UL(bs-es) build library starting at bs. I I $EOD terminate UL $JOB reset limits for UL to standard To make use of this new library the following steps might be used. $JOB open files $F compile mainline Source Statements $EOD close WB file $SB=DP(bs-es) set disk limits for new SB $CIC call core image converter *BUILD ,SB build program and include ALL data in SB in program $JOB open files $F compile mainline Source Statements close WB file $EOn $UL=DP(bs-es) set disk limits for new UL $CIC call can vert *BUILD UL I build program using only those routines called by mainline from UL. 2.4.12-2 ~~L~~~~ _ _ _ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ __ $TOB open files $F compile mainline Source Statements $A as semble subprogram $EOD close WB file $SB=DP(bs-es) set disk limits for SB call convert $CIC *BUILD SB UL build program using all data from new SB and required I I routines from UL. NOTE: In all cases the standard library file, LB is used to complete build process. 2.4.12-3/-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.4.13 PAPER TAPE SEGMENT ROUTINE ($PREEL) ~ A large subroutine library may require a volume of bin ary tape too great to be handled in one reel. The DBOS command I $PREEL I will punch a $REEL image to terminate a tape segment. The user may use this command to terminate any number of segments. See section 2. 5. 3 for use of $REEL. 2.4.13-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2. 5 PREDEFINED DBOS PROCESSORS During system generation (section 4) I a group of predefined DBOS processors are copied into the directoried core image program data file (DC). These other non-predefined processors I I and may be loaded and executed by use of the proces sor execution control command (subparagraph 2.4. 11) . The standard predefined processors are: a. Symbolic assembler. b. FORTRAN compiler. c. Core image converter. d. Source image editor. e. Debug program. Each of these processors is described in the following subparagraphs. 2.5.-1/-2 ~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 5. 1 SYMBOLIC ASSEMBLER The GA 18/30 symbolic assembler is a two-pass assembler and is given the name A in the DC file. Thus I it can be loaded into core and executed by use of the control command: SA The assembler uses the following logical units: SI Source input (pas s 1 input) LO Listing output BO Binary output IS Intermediate storage (pass 1 output, pass 2 input) If the SI unit is a disk file I then the IS unit should be assigned to NO to avoid disk duplication during pass 1. If the IS unit is assigned to NO I both passes are taken from the SI unit. Thus if the SI unit is the card reader and IS is assigned to NO the symbolic source deck must be input twice. 2.5.1-1 ~~L~~n~~ ____-------------------~ 88A00142A 2.5. 1. 1 DBOS Assembler Extensions Refer to the 18/30 Programming Operations Manual for assembler usage data. The DBOS as sembler has been extended beyond the basic GA assembler. These extensions are enumerated in the following paragraphs. ASCII Text (ASC) P seudo-op The ASC pseudo-op i.s i.dentical to the EBC statement described in the GA 18/30 Programming/Operations Manual except that ASCII data strings are generated. REF /DEF Pseudo-op These features per llit ., progr·,m to REFerence symbols DEFi.ned in other external programs. The tern, ext~rnal 1S meant to indicate a program or storage location not assembled with the object program. A data table separately assembled but referenced by the object program would be an example. A DEF pseudo-op 1 s used to specify that the symbol in its variable field may be REFerenced by an 9xt~rnal program. A DEF statement may not appear in an absolute program. All DEF's must appear at the beginning of the source fHe to which they make reference. A DEF is identical to an ENT except that the defined symbol need not bf-~ a program entry point. It is permissable to define a symbol used in the vanable held ot a DEF with an EQU statement, i. e. 2.5.1-2 I Revised Dec 70 ~~L~~~~ _ _- - - - - - - -_ _ _ _ _ _ _ _ _ _~_ _ 88A00142A OUTOl DEF OUTOl EQU /57 As sign absolute value hex 57 to symbol OUTOl. A REF to OUTOl will result in END the value /57 in the variable field. A maximum of 30 ENT and/or DEF symbols may be included in a single program. REF A REF pseudo-op specifies that the symbol in its variable field is external. REF's may occur anywhere in a program. Symbols which are declared as external by REF's may occur in a multiple item expression except as an operand of a multiply (*) operator. Machine instructions which contain REFed symbols in their variable fields must be of the two word or long format. Conditional Assembly A DO pseudo-op has been provided to permit a programmer to include/exclude selected source statements. The statement: DO M,N L directs the assembler to assemble the next M lines N times. The values must fall within the range of 0 and 255. All symbols used must be previously defined. If M I the number of lines omitted I I is greater than one I N must be zero or one. If N is it is assumed to be one. None of the statements within the range of the DO can be another DO. Revised Dec 70 2.5.1-3 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Examples: 3,1 L DO DC 1 DC 2 DC 3 3,0 L DO DC 1 DC 2 DC 3 Assemble the next 3 lines Do not assemble the next 3 lines Source Data Preparation rormat The DBOS Assembler wlll accept source statements which originate in column 1 or 21. The remalndc~r of the statement must be punched in relative columns, i. e., the OP code: l'·l.j IS columns of data is and interpreted. 2.5.1-4 red,] eIther started in column 7 or 27. A maximum of 60 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 5. 2 FORTRAN COMPILER The GA 18/30 FORTRAN compiler is given the name F in the DC file. Thus it can be loaded into core and executed by use of the control command: $F FORTRAN uses the following logical units: SI Source input LO Li sting output BO Binary output FORTRAN is a one-pass compiler and requires no intermediate storage. The FORTRAN logical unit number u in the FORTRAN I/O statements (e. g. I READ (u f) list) will reference DBOS logical unit u. The user may use the standard I assignment described in table 2. 1 or define his own assignments with the executi ve command. $u=file. The *IOCS control card has no purpose and may be omitted. The user is advised to use the standard DBOS LUN assignments. (See table 2-1) This procedure permits any system LUN reassignments to be effective for all programs 2. 5 .. 2-1 ~~L~~~~ -------------------~ 88A00142A __ operating under the system. Example: if $lun=CR then READ(lun, f) Note: list would cause data to be input from the card reader. The FORTRAN disk READ and WRITE operations will always use logical unit 13 which must be assigned to fHe DK (standard assignment). The DK file is the only unpacked disk file. The disk limits for the DK file may be preset to any area of the disk. See section 2.8. 1 . Refer to the IBM FORTRAN IV manual for compiler usage data (C26-3715-4). Note: The * control cards which are u sed to specify compiler options are not listed. Note: 2.5.2-2 The *ONE WORD INTEGERS is the default option when not specified. Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.5.2.1 DBOS FORTRAN Extensions Introduction General Automation supplies subroutine library extensions for each of its executives and operating sy stems. These routines generally are supplied to permit access to Monitor functions by the FORTRAN programmer. This section will be updated as new routines are made available. Array Characteristics FORTRAN on the 18/30 stores arrays in reverse order. That is, ARFAY(l) refers to the highest core address assigned to the array. This arrangement is contrary to the manner in which the machine and Monitor store data. In the following extension discussion paragraphs special characters will be used. These characters are defined as: N = length of array (number of variables) 10 = N + 1 value to be used as subscript ba se FORTRAN Logical I/O Interface This subroutine provides access to the logical I/O system of DBOS. The subroutine operates in two modes controlled by the first argument. Details of LIO are described in Section 5. 0 • Revised Dec 70 2.5.2-3 ~~L~~~~ Mode 1 _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Data Transfer and Control CALL FLIO(I, JOQ-I)) where: FLIO= name of routine I = control variable for LIO>O J = a dimensioned array. The first variable in array J must define the length of array J . i. e., JOQ-I) = length in words JOQ-2 through IQ-N) = Data This call results in a call to LIO of the type: CALL LIO DC (I) DC J DC 0 Mode 2 Device Status Test and Return CALL FLIO(I, J) where: FLIO= name of routine I = control variable for LIO and must be <0 J = a variable which will contain the device status word upon return from FLIO. 2.5.2-4 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - -_ _ _ _ _ _ _ _ __ 8BA00142A This call results in a call to LIO of the type CALL LIO DC (1) STO J The use of FLIO requires that a control variable" I" be established. This variable can be defined in a DATA statement. Example: READ 54 binary characters into array J from logical unit 12. DIMENSION J( 55) DATA IRASC/Z110C/ J(55) = 54 CALL FLIO(IRASC J( 5 5)) I Example: To test status of logical unit 12 DATA ITEST/ZFOOC/ CALL FLIO( ITEST K) I The status of logical unit 12 will be stored in variable K. Note: A TEST operation must be performed before the next read/write call. LIO returns immediately to the user and does not wait for operation complete. Revised Dec 70 2.5.2-5 ~~L~~~~ __ -----------------~-~ 88A00142A FORTRAN DBOS BULKN Interface This subroutine provides access to the bulk handling routine (BULKN) in DBOS. CALL BULK(I,} ,K) where: BULK= name of routine I = BULKN function (use DATA statement) J = a dimensioned array such that J(IQ-I) = word count }(IQ- 2) = sector addres s }(IQ-3 through IQ-N) is data K = variable whi.ch will contain error status on return. BULK waits for operation complete status before returning to the user. Refer to Section 6.4.2 for a detailed description of BULKN . Extreme caution must be exercised when lS ing this subroutine. It is possible to write anywhere on the disk including areas occupied by the Monitor and files. For safety, use FLIO or DEFINE FILE which monitors file boundaries. 2.5.2-6 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 2. 5. 3 CORE IMAGE CONVERTER The GA 18/30 Core Image Converter is given the name CIC in the DC file. Thus it can be loaded into core and executed by use of the Control command: SCIC The Core Image Converter uses the following logical units to perform a core image file build: BI Primary binary input SB Secondary binary input (optional) UL User Library (optional) LB System library CI Binary output IS Intermediate storage (used to temporarily store obj ect modules from Bl and SB) SL Load map output (optional), missing subroutines list, and error messages OM Operator messages CC Control command input 2.5.3-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A The Core Image Converter (CIC) performs the functions of fixing relocatable obj ect code, linking together main programs and subroutines and producing an absolute core image file which can then be loaded from the disk and executed by the DBOS disk loader. All CIC core image file builds are performed by making two pas ses. over the obj ect data. The first pas s is required to build a list of referenced subroutines, resolve the subroutine entry addresses and obtain a map of memory. During the second pass I the executable core image output file is produced on logical unit CI (normally the WC file). Note that the CIC does not load the executable program directly into memory, hence all of available memory may be allocated and used during problem program execution. The Core Image Converter can accept object program modules from up to four logical files. The CIC will first reference BI, which must contain the MAIN program as itl s first object module and any number of subroutine modules. Optionally, subroutines may be input from[s~. Both BI and SB must be terminated by $EOD image records (use $EOD command). All subroutines included in BI and SB are incorporated into CI whether actually referenced or not. The user may therefore include object modules which will be used in place of standard library routines to better satisfy his requirements even though they are not explicitly called out from his program logic. 2.5.3-2 Revised Dec 70 ~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A The final two input files are subroutine libraries [ULJ (optional) and LB. Only those subroutines actually called out in the load process will be included in CI. The CIC will make multiple passes over a library to satisfy references. This feature makes it unnecessary to 'level' a subroutine library. To optimize processing time the use of leveled libraries is preferred. CIC Control Commands: (Items enclosed in brackets are optional.) rMA~ rBOUND [.low Jfh.ig h *9 UILD I . J] common]C INSKEL common r SB] [. U~ MAP - The optional MAP command provides a memory map of the resulting core image file. BOUND - The optional BOUND command provides a means to override the default memory boundary values. These defaults are designed to maximize user core in batch job operation. The default value for each optional field is defined below. Any or all of these values may be specified, however all values between the BOUND and the particular value must be specified. Parameter Definitions low - first location to be occupied by program. Revised Dec 70 2.5.3-3 ~~L~~~~ _ _- - - - - -_ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A high - last available location for program. common - highest address assigned for common data storage. Data is stored downward toward core location zero from address common. INSKEL common - highest addre ss as signed for INSKEL common data storage. Data is stored downward in core toward location zero from address INSKEL commal. Default Definitions for BOUND Parameters If no BOUND command is specified or some fields are selectively omitted the following rules apply for determining default values. low - the first location following the DBOS resident monitor. high - the last location available to DBOS (usually end of core). common - set to same value as high. (Note: COMMON data is stored backwards in core.) INSKEL common - the origin of INSKEL common is defined by the expression (COMMON - size of common). (Note: INSKEL common data is stored backwards in core.) BUILD - The BUILD command initiates core image conversion. It must be the last eIe command. [8B] and [u~ specify optional binary inputs. BI will always be the first logical file and LB will be the last logical file. 2.5.3-4 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A eIe Error Messages Error Messages eIe error messages are output on 8L and prefixed by two slashes (//). Error messages discussed in this section always cause eIe to abort. Revised Dec 70 2.5.3-5 _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A MEANING AND REMEDIAE ACTION MESSAGE II CHECKSUM ERROR A particular card image element within the object module is either missing, out of sequence or was not punched properly when generated. Regenerate the object module. IICODE ERROR A card image contains a card type code not processed by the CIC. ILS and ISS subroutine header cards are not processed. Remove the object module from the core image build. IIPRECISION ERROR A subroutine object module input from either BI or SB has a precision code specification different from that of the MAIN program. Change the precision definition of the object module or include the correct object module. I lEND OF FILE An end-of-file was encountered on either the IS or CI file. Allocate more storage for the working fUes. (see section 2.8.1) IIMISSING ROUTINES This message is output followed by a list of the subroutines referenced but not included in any of the specified input files. Include the required object modules and restart the core image build. IICC ERROR A card image record which did not contain an asterisk in character position 1 was encountered before the BUILD directive. Include or correct CIC Control Commands. IIRANGE ERROR The program being built is too large for the specified core area. The parameters specified on the BOUND statement may be changed if used. eIC Operator Messages (for paper tape input only) When the eIe encounters a $REEL record the following mes sage is output on logical unit OM followed by a type-in request: //REEL ? (input request) 2.5.3-6 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 5.4 SOURCE IMAGE EDITOR The GA 18/30 source image editor is given the name EDIT in the DC file. Thus it can be loaded into core and executed by the us e of the control commcn d. SEDIT File Usage The following files are used by EDIT. S1 Source input SO Edited source output CC Control commands and insert lines La Edited source list SL Control comma nd list Control Command Control commands (identified by an II @" a s the first character of a line) and Insert Lines to the source deck are all input from device CC. Blanks are not permitted in Control Commands. In the description below I optional elements of a control command are enclosed in braces. 2.5.4-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A A file to be edited is input via device 81. 81 may be assigned to the card reader, a directoried source file (D8, NAME) or a user file. Format: $81=CR $81=D8 (NAME) $SI=file rname)l ~bs-es~ Editing commands are input from device CC, usually the TTY keyboard. CC may be assigned to a device other than the teletype but may not be the device assigned to 81. Examples: If 81 = D8 (NAME) or = file ~name) l ~bs-es2.l $CC = CR is permissible. 2.5.4-2 then ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Editor Control Commands For the following I the character "Y" or the character "N" must follow the "=" character. The chara cter shown is the default case I which will be assumed upon entrance to EDIT. @B=Y Insert blanks For B=Y the generated source output will be preceded by 20 blanks I I thus permitting the as sembler format to be generated without need of spacing. Data already having the leading 20 blanks will be passed unmodified. For B=N I the records will be passed unmodified. @O=N Online mode For O=Y the On-Line mode will be entered I I with the additional editing controls de scribed below. @L=N For L=Y I List control the full Edited Source Output will be listed while for L=N I only the changes are listed. 2.5.4-3 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A @S=y Sequence control For S=Y, the listing will be re sequenced while for S=N I the listing will reflect the sequence number of the Source Input. Y @C= N For C=Y, the balance of the source input is copied to the output file. For C=N, the output file is terminated at its current position. On Line Commands When in the On Line mode, the following two additional commands may be used. In addition, the line reached by an L + n option or by the following two options, will be listed: 2.5.4-4 @- Delete the current line and advance to the next. @+ Copy the current line and advance to the next. ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Editing Commands All editing commands except the Completion Command may be followed by one or more lines to be inserted at the current position of the input record. @ [LJ [+~ [, m] @ Indicates line is command L is a 1-5 character label. n is the count of lines after L has been reached. If L is omitted, n is an absolute line number with the first line of the program having n=l. m is the number of lines to be deleted. (Assumed to be zero if omitted. ) In operation, the source input is read and copied to the output file until line L + n is reached. Then if m is specified, m lines, including the current line, are deleted after which any inserts are input. If m is omitted, the line L + n is copied to the output after which any inserts are input. Editing examples: Assume a freshly key punched deck is to be processed. The operator wishes to list his deck, with sequence numbers his program. I make corrections and then assemble 2.5.4-5 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A STOB SCOPY,CR,DS(NAME) Place source on disk SSI=DS(NAME) Edi tor source input from new file SEDIT Call editor @L=Y List all @S=Y Provide line numbers @C=Y Copy DS(NAME) to WS to produce a sequenced listing. At this point the operator may punch an edit deck or edit from the te letype. SCC=TY or SCC=CR Editing procedure examples: To delete a line at label +3 the edit command @Label+3 11 To delete n lines at starting at line number 2384 the edit command @+2384,n . 2.5.4-6 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A To add a line @ line 200 with no delete the edit command @+200 data to be inserted I may include leading blanks. NOTE No leading blanks are required because" 8" edit command was = Yes. To delete m lines starting at label + n and then make insertions the edit sequence would be: @label+n,m data records I data records· etc . . . In all cases the master file DS(NAME) is copied to WS until the to be edited Hne is encountered. At this point the edit functions specified are performed. y The last record input from device CC must be an @C=: command. N 2.5.4-7 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A This operation will complete the copying of the source file (DS (NAME)) to WS. I A new sequence listing was produced during the edit operation. The operator may alter the list status any time by @ L= Y. At this point the user may assemble N his program to determine any additional source erro rs. This may be accomplished a~ follows: $SI=WS assembler source from edited file $IS=NO No intermediate storage required as source is already on disk [SBO=NO] SA No binary output. Call assembler The operator may now edit his source file further. If editing wa s accomplished from card data add the necessary new edit cards. Call the editor as above. If editing was done from the TTY two alternatives are available. 1• Reenter all edit commands plus the new ones via the keyboard. 2. Copy the partially edited file back to DS(NAME). The listing produced during the previous edit would be used for reference. 2.5.4-8 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Example: $REPLACE, DS(NAME) WS: Edited file to DS $PACK,DS Compress disk file $EDIT Start next edit. I The card edit procedure is preferred. This method maintains one master file (that which was originally copied) and an edit deck. Recovery in the event of mishap is positive and simplified. Once a source file has been totally edited I it should replace the unedited file. Refer to example above. The PACK operation closes up the disk file by removing the old source data. 2.5.4-9/-10 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.5. 5 DEBUG PROGRAM The GA 18/30 Debug program is given the name D in the DC file. Thus, it can be loaded into core and executed by us e of the command $D Typically, however, the DEBUG program is loaded in conjunction with a program to be debugged: $LOAD,D Load the program in the WC file and load D. Execute D. $pname,D Load the program given the name 'pname' in the DC file and load D. Execute D. DEBUG uses the following logical units: CC command input OM listing output, error message output, secondary command input LO listing output, command output, error mes sage output CI binary output Debug occupies approximately /700 locations of high core origined at /7900. Programs to be debugged must not occupy storage above /7900 (truncated to t.) reflect available core} . Revised Dec 70 2.5.5-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A COMMAND FORMAT A command consists of a one-letter operator and one or more operands. Multiple commands may be placed on aline. The slash (/) delimits commands; the comma (,) delimits operands. No comma should be placed between the operator and the first operand. A space terminates the last command, optional commentary may follow (for teletype input, a carriage return terminates the command line; no space is required unless the user includes optional commentary.) Example: Command Operand Operand ... ,Operand/Command, Oper, .•. I OPERAND FORMATS The following are the possible DEBUG operands: 1. Addresses/Constants An addres sl constant consists of 1 - 4 hexidecimal digits, written as /nnnn, with an optional modifier of R,X, L,P or S. If more than four digits are input, only the last four are considered; non-hexadecimal characters (other than modifiers) are ignored. The modifier may be placed anywhere in the digit sequence and has the following effect on an address (not applicable to constants): None R X L P S Memory address Register buffer address Disk buffer address Limit buffer address Program relative address Sector addres s The S modifier is not allowed for certain operands. 2.5.5-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Examples of operand addresses are: 3A location /3A or constant /3A R3 register 3 31X location /31 of disk buffer AS6 sector address /A6 P43 program relative address /43 2. Address/Constant Field An address/constant field is of the form: a. A pair of addres ses/ constants separated by a dash. The modifier of the second address is ignored (and may be omitted, it is assumed to use the same modifier as the first addres s) . b. A single address; may be used when the first and last address are the same. c. The letters R ,X Land P are fields which are defined as follows: I R = RO-6 X = XO-13f L = (contents defined by user) LO-1 P = contents of LO-contents of L1 (Any reference to the letters R/X,L or P without an address constant is interpreted as a reference to the entire field.) 2.5.5-3 ~~L~~n~~ ______________________~ 88A00142A In the text which follows the lower case letters a ca rf f k kf denote: I a address or constant, S modifier allowed ca core address f address or constant field cf core field k a 1-4 digit hexadecimal constant kf double word constant I I I I I I no S modifier no S modifier Refer to table A. BUFFERS Four buffers are accessible to the user. 1. Register buffer. When control passes from the user program to the DEBUG program 2. I the register buffer is set as follows: RO Instruction counter Rl Index register 1 R2 Index register 2 R3 Index register 3 R4 A register RS Q register R6 Carry and overflow (bits 14 and 15) Disk buffer. This buffer holds one disk sector (320 words) which can be used as a work area for disk modifications. 3. Limit buffer and Program buffer. The limit buffer (2, words) defines the limits of the program buffer. (LO) 1s the low program address and (Ll) 1s 2.5.5-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A the high program address. Proper definition of the limit buffer allows relative references to relocatable program addres ses. The limit buffer is normally defined by the replace command; e. g. , RL,1092,2301 Low program buffer limit = 1092, high=2301 then PO=/1092 and P (buffer)=PO-126F=/1092-/2301 A reference to PI 00 would give the value of relative location 1192. A reference to P by itself would refer to a field defined as PO-126f'. 2.5.5-5 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A DEBUG COMMANDS Table A indicates allowable DEBUG commands and their function. Items in brackets are optional. The notation ( ... ) indicates that the operand sequence may be repeated. A more complete explanation of each command, along with examples, is given below. 1. Type 'T' Tf 1 ' f 2· .. fn ' I The Type command causes the contents of each location within a field to be output to OM. Any number of fields may be specified following the type command. After output of all fields is complete, the user has 3 options: ~ a. Enter a new command. b. Enter a carriage return (blank record for card input). The successive location and its contents will be output, Le., if P52 was just output, P53 would be output. c. Enter a hexadecimal constant. This constant will replace the contents of the last location output; then the successive location and its contents will be output. Options b and c are available only when: I a. I I I The type command is the last command of a sequence e. g. , P37/T36,47,R3 (Print location 37, Type location 36, 47 and the contents of R3.) 2.5.5-6 ~G~MM~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A At this point R3 and successive locations can be modified. Options Ib and l lei are not available in the example below T36,47-Al/P52 P refers to a command and is recognized as last command because slash delimiter was processed. b. In the following example the letter Ip I denotes a program location and may, therefore, be modified. T83, P4 (Type contents of disk sector 3, and relative progra m location 4.) An exception to the la st item may be changed option exists if the last item referred to was a disk location. Example: TP4,X30,R3,825 (825 refers to disk sector 25.) 2. PRINT Ip i Pf l , f 2 . .. , fn The print command causes the contents of each location within the field to be output to LO. No subsequent modification is allowed. An example is: P30,R,8306,500-800,X4-9,P which will print absolute core location /30, the entire register buffer, disk sector /306, core locations /500-/800, locations /4-/9 di$k buftdr, and all of the program buffer. (If th(j To print program buffer location 30 the command PP30 is r-equired. 2.5.5-7 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88AOOI42A 3. REPLACE This command replaces the contents of Ifl with the pattern ,k n ,kI ,k2 . If the pattern is shorter than the field length, the pattern is repeated until the field is exhausted. (If If I is a sector field, the pattern is expanded into the disk buffer (320 words) and the buffer is output to each sector in the field.) If no pattern is supp lied, a pattern of 0 is assumed. An alternate form of the replace command is: Rca, k I' k 2 · · . I k n In this form, one copy of the pattern replaces the contents of the locations starting at lea I. Examples of the replace command are: iTF' R61 Zero location /61 RX Zero the di sk buffer RS90-I03 Zero sectors /90-/103 R80,4 Replace location /80 with /4 RL, 1057 , lA3 2 Define the limit buffer RRO,3 Replace register 0 with 3. RX, 1,24,8 Fill the disk buffer with the repeating pattern /1,/24,/8. R83 ,A2, B7, C4 2.5.5-8 Replace /83-/85 with /A2, /B 7 ,/C4. ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 4. MOVE IMI MP1,P2···,Pn p=f 1 ,f 2 f 1 =sendingfield. Move fl to f2. If the sending and receiving fields are both core or both disk, the receiving field determines the number of elements to move. If one field is core and the ct her field is disk, the core field determines the number of elements to move. Data movement starts from the low address. Examples of the move instruction are: M70,80-AO Move locations /70-/90 to /BO-/AO. M70-500,80-AO Move locations /70-/90 to /BO-/AO. (receiving field limit control) MP,8501 Move the program buffer to disk starting at sector /501. M8501,P Move disk starting at sector /501 to the program buffer. RL, 11 ,1 M810,811-20 2 Preset limits with ' Copy sector /10 to sectors /11 to /20. Note: The command MS5, 811-20 will copy disk sectors starting at sector 5 to sector II, 6 to 12, 7 -13 etc. 2.5.5-9 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A The command MS10,S11-20 above copies sector 10 into each sector from sector 11 to 20. The key point here is that the source sector (or core location if moving core); is only one field length below the destination area. Each successive move or copy effectively copies the same information. 5. EXECUTE/TRAP IX I XIca) /.k) [;c 111/c 2) ••• {lCN] ----_. -- ._--' ..'.- .. The X command format provides the operator with program entry address selection, trap address selection, trap loop count and execution control. The X command initiates program execution by placing the contents of registers RO-6: into their hardware counterparts. The value of RO replaces the instruction counter and is therefore the point of execution. To specify an execution addres s: RRO ,a Replace register RO with execution addres s X Execute The X command may be written as part of the replace sequence. RRO, a/X To set up a trap condition the X command is followed by one or two parameters. X,ca,k Execute from core location specified by contents of RO. TRAP at location Ica after Ik I encountors or trap location. If Ik I is not -specified one is I assumed. 2.5.5-10 ~~L~~~~ --------------------~ 88A00142A __ After a TRAP is encountered register RO is equal to the trap address. A subsequent X command will resume execution from the TRAP location (ca). A series of Debug commands may be specified to be executed each time the TRAP is encountered. X,ca,k/c 1/c 2 ···/cn After TRAP at location 'ca' execute specified Debug commands c1, c2. · • c n The command sequence is executed before the trapped instructions are executed. When control returns to DEBUG, RO is defined as the trap address, the trap locations are restored, but have not been executed. The following rules must be followed in selecting a trap location: G. The contm ts of ca and ca+ 1 must not be modified or referenced during program execution. Control must pass to ca, not ca+1. b. If the trap execution count is greater than one, the trapped loca- tions may not be instruction counter relative (the instructions are not executed in place). Also, the command sequence may not contain an 'X' operator if k is greater than one. After an object program and debug have been loaded ($NAME, D or $LOAD ,D) RO is set to the entry point of the loaded program. Execution may be started immediately by entering a X command to debug. Revised Dec 70 2.5.5-11 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - 88AOOl42A Example s of the Execute/Trap command are: X Execute at RO. XA53 Set trap at /A53, execute at RO. Return to DEBUG when the trap is encountered. Set trap at /62, execute atRO. Return to DEBUG, X62,5 after the fifth encounter of the trap. Set trap at /A32, execute at RO. After each XA32,A/PR/T54 encounter of the trap I print the register buffer and type location /54. Return to DEBUG after the trap. is encountered /A times. Xl 04/PR/X32/T80, R3 Set trap at /104, execute at RO. When the trap is encountered, print the register buffer. Set a trap at /32, execute at RO (=104) . When the trap is encountered, type location /80 and register 3. 6. SEARCH'S' Scf, kf II' k~21 Search for kfl . The search command searches cf for kf 1 • Each match is output to OM. If kf2 (a mask) is supplied, kfl is compared with the logical product of cf and kf , element by element. kf1 is a single or double word constant. 2 A doubleword constant is of the form k 1 -k 2 where kl is the high order word. Similarly, kf2 may be a single or doubleword mask. 2.5. 5-12 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A If kfl is a doubleword and kf2 is not, then kf2 is assumed to be of the form kl-FFFF. Examples of the search command are: SI 00-500 ,ABCD Search locations /100 to /500 for /ABCD SP,3781-46A2 Search the program buffer for the doubleword /3781,/ 46A2. SX,157,FFF Search the disk buffer for /157. Mask each element with /FFF • 7. OBJECT OUTPUT '0' Ocfl [, Cf 2 ) ... [, CfnJ [, k] Object output to CI. Output the core fields in 54 word binary object format to CI. If a core field represents a single address, it must be of the form aI-aI' otherwise the address will be interpreted as the execution address (k). The execution address may appear anywhere in the operand sequence. If more than one execution address appears, only the last is considered. If the execution address is omitted, RO is assumed. The DEBUG buffers may be included as operands, e. g. , OlOOO-l500,R,X or if L is defined as 1=1000 and 8=1500, then OP,L,R,X At a future time the $ LOAD ,D will restore the user program end DEBUG buffers and debugging may continue. 2.5.5-13 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A This feature permits partially debugged program segments to be saved_, should the program be destroyed during debug of the next segm3nt a simple reload of the patched program is pos sible. The program may be stored as a directoried file also. ($COPY, WC DC(NAME)) In this case I $NAME D would be used to reload. I 8. SWITCH COMMAND INPUT. 'K' The K command switches command input from CC to OM or OM to CC. This command allows program modification commands to be punched on cards or paper tape; by using K as the last command I control will pass to OM (normally the teletY13e) to allow further modifications. 9. RETURN TO DBOS. 'Z' The Z command terminates the DEBUG program by returning to DBOS. 2.5.5-14 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ OUTPUT FORMAT A DEBUG listed line has the format loc=data 1 data 2 •• • data n where: loc represents the location of the first data item in the line. loc is of the form hhh core addre s s Rh register address Xhhh disk buffer address Lh limit buffer address Phhh program relative address (if the relative address exceeds /FFF the modifier increments alphabetically to Q, R S etc. I I represents a data item (hexadecimal) is 16 for La and 8 for OM. 2.5.5-15 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ Table A Output to OM, allow changes Output to LP Move f1 to f 2 · Execute until trap (C=command) Search f for kf 1 with mask kf2 Ocf 1I,cf2 1···1 ,cfn II ,k I Object output, k=exccution address K Change command input z Return to DBOS. Address/constant. address may have modifiers of a R,X,L,P or S. ca Core address. Same as 'a', but S modifier not allowed k A constant Address/constant field of the form al - a2' a, or R,X, L,P cf Core field. Same as 'f', but S modifier not allowed. kf Constant field of the form k or kl-k2 (doubleword constant) 2.5.5-16 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 2.5. 6 SEQUENCE/COMPARE PROGRAM The Sequence and Compare utility program permits the user to copy, and sequence and compare (verify) files. The program uses L10 and may therefore copy from and to any file. The GA 18/30 Sequence/Compare utility is given the name 8QCM in the DC file. Thus, it can be loaded by use of the command: $8QCM The command format is: $SQCM > [ba seJ [, increment] ~ mOde] where: > Indicates a SQCM command statement. Is n alphanumeric characters (except blanks). These characters will replace the n rightmost characters of the input (81) file image. Blanks may be included by use of the # symbol. Typically, the last few characters of Ibase l are numeric establishing the first sequence number. Note: A limit of 8 characters is imposed if the mode specified is (B or U). If no base is specified, SQCM will perform a straight copy or compare. Revised Dec 70 2.5.6-1 ~~L~~~~ [ increment] _ _- - - - - - - - - - - - - - - - - - - - - 88A00142A A positive value of any size which SQCM will use to increment the base. If no incran ent is specified I SQCM will use the numeric portion of 'ba se' as the increment. [, mOd~ Input data mode specification. Four modes are accepted: A - 40 word ASCII B - 54 word binary C - 60 word binary U - unformatted paper tape If mode is omitted, ASCII is assumed. If lUI is specified and the input device is not 'PR', ·C· input is assumed. The output mode is the same as the input mode except for 'B' input, which is output in 'C' mode. If 'U' is specified and the output device is not 'PP', 'c' output is assumed. SQCM uses the following logical files: CC - command input OM - operator I/O SI - data input SO - data output 15 - compare/copy switch Copy/Compare Control If $15=NO, SQCM will copy the file from SI modified by sequence data if specified to SO. If $15=iNO, then SQCM will compare the file input from SI modified by sequence data if specified to file assigned to $15. 2.5.6-2 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Error Detection and Correction On compare error I the correct image will be output to 80 and the message ERROR will be output to OM. The correct image will be taken from 8I modified by sequence information. The operator must respond after an error with one of the following: C - Continue and ignore error. R - Reread image to double check or verify new image output when error occurred. D - Terminate and return to the DB08 monitor. End of File Control Each data mode has a unique end-of-file condition. Operation will terminate when an end-of-file is encountered. They are: A - Any number of leading blanks followed by the characters" END" . Note: The word END may not start in column 1 or 21 as it will be ignored. B - A type IF' object record. C - The characters $EOD in columns 1-4 of a card image. U - 15 inches of blank trailer (blank leader is ignored) . Note: The end-of-file image is both sequenced and compared as part of the file. Revised Dec 70 2.5.6-3 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Control Command Insertions Any number of ASCII records may precede the SQCM command (». These records will be copied to or compared with the object file. The inserted records are not sequenced or titled. This feature permits annotation or control commands to be inserted prior to the obj ect data. A special termination procedure is provided if only insertions are desired .. Example: SQCM Insert 1 Insert 2 » Terminate job after Insertion number 2. Examples of SQCM Operation 2.5.6-4 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - - _ 88A00142A SAMPLES OF SOCM USAGE 1. ASSUME A BINARY FILE IS ALREADY IN WC FROM CIC TO GENERATE A SEQUENCED BACKUP OBJECT OECK DO SJOB SSI=WC SSO=CP SSOCM >NAMOOl.B #\ INPUT FROM WC OUTPUT TO CP CALL SQCM NAME PROGRAM NAM. , SEQ FROM 1 BY IS TO VERIFY DECK COMPARE INPUT FROM CARD READER CALL SOCM SUPPLY SAME SEQUENCE CONTROL AS ABOVE CORRECTIONS. IF ANY. WILL BE OUTPUT TO CP $15=CR $SOCM >NAMOOl,B 2. TO SEOUFNCf AN ASSEMRLER OR FORTRAN SOURCE FILE INTO CARDS AND VERIFY. $JOR INPUT UNSEQUENCED DECK FROM CAR~S TO WS. SCOPY.C~.WS SOURCE F~OM WS SSI=WS VERIFY FILE. IF DESI~ED. AND LIST ERRORS ON LP. SSO=LP $15=CR VERIFY SOURCE FILE DISK IMAGE SSOCM >.A SE~UENCE OUTPUT TO CP $SO=CP S15=NO CALL SQCM $SOCM FIVE CHARACTER TITLE. FIVE DIGIT SE~. NO •• INC.XIO >TITLEOOOOO,lO.A INPUT WILL TERMI~ATE ON SOURCE FILE 'END' STATEMENT $15=CR $SOCM CALL SOCM COMPARE DECK TO FILE ON DISK MODIFIED BY SEQ DATA >TITLEOOOOO,lO.A 3. TO PROOUCE A TITLED AND SEOUENCED CARD DECK AFTER A FORTRAN COMPILATION AND BUILD. $JOB $F SOURCE $A SEOO SCIC -MAP -BUILD $SI=WC sso=cp SSOCM >FOROOOOO.IO.B S15=CR $SOCM >FOROOOOO.IO.B Revised Dec 70 SEQUENCE WC FILE TO CP AND TITLE AS FOR COMPARE BACKUP DECK. CORRECTIONS TO CP 2.5.6-5 ~ GENERAL AUTOMATION. INC. _ _ _ _ _ _ __ 88A00142A 4. 5. TO ASSEMBLE A PROGRAM AND PRODUCE A SEQUENCED BACKUP CARD DECK WITH TITLE AND VERIFY. SJOR $A ISOUPCE STATEMENTS FOR ASSEMBLY, MlJST TERMINATE WITH AND INPUT fROM WA WHICH IS ASM OUTPUT SSI=WA SEQUENCED OUTPUT TO CP $SO=CP SEQ SW. CALL SOCM $SQCM SUPPLY SEQ AND TITLE DATA + FORMAT >TITLOOOl,B SET COMPARE FROM CR $lS=CR CALL SQCM $SQCM SEQ AND TITLE DATA + FORMAT >TITLOOO},B 'FNOJ TO SEQUfNCE A SOURCE FILE CONSISTING OF MULTIPLE STACKED JOBS WITH MANY 'END' STATEMENTS TO THE CPt SJOR $SI=CR $SO=WS $lS=NO $SQCM >TIU oooo~:c UNSEQUENCED SOURCE FROM CR SEQUENCED SOURCE TO WS SEQUENCf/COPY SWITCH CALL SOCM TTT! F + INCR OF/STARTING FRQM 00001 'SOUR~~ F I LE ANY DECI\ OF £a.BJ.2s..NQLQlNIA.l.till'iG_l&.Q.U.1 $EOD ~~~~~----~T~E~R~M~I~N~AT·E FILE AS TYPE C UNFORMATTED DATA $COPY,C,WS,CP PUNCH CARD DECK FROM SEQUENCED FILE, INCLUDES $EOD $SI=WS $SO=CP $}5=CR $SQCM SQCM COMPARE MASTER SQCM CORRECTIONS TO CP SQCM COMPARE FILE CALL SOCM COMPARE AS C FORMAT DATA SEQUENCED SOURCE FILE WHICH NOTE: NOTE: '$EOO' RECORD THE SEQUENCED FILE IN WS IS NOT LISTABLE. THE SEQUENCED CARD DECK MAY BE LISTED wITH A SERIES OF COpy COMMANDS, ONE FOR EACH JOB. THE DECK MAY BE STORED AS A SERIES OF JOBS IN OS. THAT WHILE THE WHOLE FILE HAS A CONTINUOUS SEQUENCE NO. IT STILL CONSISTS OF MANY INDIVIDUAL FILES. THE FILE MAY RE COPIED IN C FORMAT BUT MAY NOT BE STORED IN OS IN C FORMAT. A SERIES OF COpy COMMANDS IS REQUIRED TO STORE THE FILE IN A FORMAT SUITABLE FOR LISTING OR INPUT TO THE PROCESSORS. $COPY,C,WC,C,DCCTITL) $COPY,C,WC.CP 2.5.6-6 INCLUDE~ COpy DATA AS C FORMAT DATA COpy C FORMAT DATA TO PUNCH Revised Dec 70 ~~L~~~~ ---------------------~ __ 88A00142A 6. TO ASSEMBLE A PROGRAM. PRODUCE A SEQUENCED BACKUP CARD DECK WITH TITLES AND VERIFY + STORE IN DC FILE SJOB SA bOURCE STATEMENTS. LAST RECORD MUST BE AN 'END' CARD.I SSI=WR SQCM INPUT fROM WB SSO=WC OUTPUT TO WC $15=NO SEQ.ICOPY $SaCM CALL SQCM >TITLOOOO.l,B TITL AND SEQ •• INC =1, BINARY SCOPy.C.WC.C.DCCTITL) STORE SEQUENCED IMAGE IN DC FILE. $LDIR.DC $C COMPARE DC fILE TO WB $15=DC (TITL) $SaCM >TITLOOOO.l.B SC OUTPUT SEQUENCED BINARY BACKUP DECK $COPY.C.WC.CP COMPARE TO CR S15=CR CALL SQCM SSaCM DO COMPARE >TITLOOOO.l.B 7. TO COpy AND VERIfY A PAPER TAPE Of ANY fORMAT SJOR SSI=PR FROM PR SSO=WC TO WC $SaCM COpy UNFORMATTED DATA TO DISK >,U $15=WC VERIfY DISK FILE SSaCM >.U $15=NO $SO=PP SSI=WC COpy WC fILE TO PP $SaCM >,U S15::PR VERIFY PUNCHED TAPE $SaCM >,U THE DISK IMAGE IN WC CAN BE STORED AS A OIRECTORIED FILE IN DC AS SHOWN BELOW. THE DATA IS NOT EXECUTABLE IN THIS FORM HOWEVER. THIS PROVISION IS FOR STORAGE ONLY $COPy.C,WC,C.DCCNAME) UNfORMATTED TAPE TO DISK FILE TO RECOVER THIS FILE AND PUNCH A PAPER TAPE $JOR TO PUNCH A BACKUP BINARY PAPER TAPE AND VERIfY $SI=DC(~AME) SSO=PP SSaCM >.U S15=PR $seCM >,U SC Revised Dec 70 PUNCH NEW TAPE FROM DC FILE (NAME) VERIFY NEW TAPE. IF AN ERROR OCCURS THE TTY WILL TYPE 'ERROR'. RETURN TO MONITOR (ENTER 0 C/R) AND RETRY VERIFY OR PUNCH NEW TAPE. 2.5.6-7/8 ~~L~~~~ _ _- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2. 5. 7 SYSTEM GENERATION UTILITY The System Generation Utility is designed primarily for initial system configurating and building as described in Section 4.0. SYSGN, however, is also useful as a utility routine. Used as a utility many system characteristics may be redefined. All redefined parameters become effective immediately upon return to the Monitor. The GA System Generation Utility is given the name SYSGN in the DC file. Thus, it can be loaded via the command: $SYSGN The SYSGN utility inputs commands expressly designed to ease the generation procedure. The Debug feature is included in SYSGN and is described in Section 2.5.5. System Generation Commands All commands are written in standard DBOS format as described in Section 2.2. Disk Unit Assignment $DISK, unit where unit is one of the following: 1341 - Model 1341 Disk Storage Unit 1344 - Model 1344 Disk Storage Unit 1345 - Model 1345 Disk Storage Unit Revised Dec 70 2.5.7-1 ~~L.AU~~~~_---------------------_ 88A00142A This command establishes the proper code in BULKN to handle the specified type disk. This command would not ordinarily be used in the utility mode. Core Size Assignment SCORE, size where size is one of the following: 8K - for 8192 word memory 16K - for 16384 word memory 32K - for 32768 word memory This command establishes the upper core address limit for many programs which execute under DBOS. The input value must reflect the actual available core in the system. Disk File Limit Assignment $file(bs-es) where: file Is the name of a disk file as shown in table 2-2. (bs-es) Define s an area of contiguous sectors to be allocated to th named file. The values bs and es are specified in hexadecimal. 2.5.7-2 Revis ad Dec 70 ~~L~~~~ __ --------------------~ 88A00142A This command is especially valuable when a currently defined file structure is found to be inadequate. Caution must be exercised v:hen redefining files to not overlay a previously defined file. Typically, all files which follow the file to be redefined must also be redefined if they are to remain contiguous. A file may be redefined to follow the last previously defined file; however, the space vacated is frequently wasted. Sectors O-FF are reserved for system use. The ordering of disk files shown in appendix A has been selected to minimize seek time. It is preferable to reassign all files following a specific file to preserve the indicated order. All moved files must be rebuilt. Initialize Disk ~IDISK ~bs-e~ where bs-es, if specified, are the beginning and ending sectors (in hexadecimal) to be initialized. If the optional limits are omitted, the entire disk is initialized. Those sectors which are initialized will be cleared of all previous data and addressed. Each sector is verified for reading accuracy. An accuracy failure in a sector marks that sector as a "bad Sector". The bad sector and its alternate are logged in the bad sector table, locations /66 to /6F of the Monitor. The bad sector table may be examined by use of the Debug routine. The bad sector table consists of word pairs which contain the bad sector and its alternate. A value of /FFFF ,/FFFF is used for unused word pairs. Revised Dec 70 2.5.7-3 ~~L~~~~ -------------------~_ __ 88A00142A Define Initial and Standard Logical File Assignments $lun=fi1e [(bS-eS)] ,p This command is the same as described in Section 2.4. 1 except that in SYSGN I the system basic definitions are established. The define file command in SYSGN is used to establish the disk resident lun/file assignment table. The table contains two assignments for each lun. The first assignment is in effect immediately after an initial system load from disk (IPL). The second or Standard assignment goes into effect after a JOB command is processed. Procedurally, all Standard assignments must be made prior to the initial assignments. The command to define a Standard assignment also defines the initial assignment. Generally the same file assignment is satisfactory for both the I initial and Standard condition. In the se cases, only Qne file as s ignment command is necessary. Example: $SL=LP,P Standard and initial assignment is to line printer. To force a special initial file assignment for a lun $SL=TY Initial assignment is TY which overrides previous assignment of LP. 2.5.7-4 Revised Dec 70 L _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Copy System Executive to Disk - - ~ - $EXEC,file ,S ,file 2 (bs-es) This command is a special form of the copy command used to write a new Executive to the disk. The parameter file 2 must be a disk file, usually defined as sectors /12-/27. Example: $EXEC, CR, B, DP( 12-27) Cards to disk $EXEC, PR, B, DP( 12- 2 7) Paper tape to disk Initialize Directoried File $IDIR, file where file is a directoried disk file. The purpose of this command is clear a directoried file, i. e., DC, DS LB UL. I I This command is used when it is desired to completely replace the contents of a file. The alternative to this comna nd is to use the DELETE or REPLACE commands for all entries in the file. Patch Monitor $D This command invokes the Debug routine described in section 2. 5. 5. Its purpose in SYSGN is to permit the user to examine and/or change the Monitor. The 'Z' command which normally returns to the Monitor will return control to SYSGN. Revised Dec 70 2.5.7-5 _~G~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - - 88A00142A Write Monitor to Disk $WMON This command writes the system bootstrap and monitor to disk. This command must be executed prior to returning to DBOS. Initial System Operation $START This command transfers control to DBOS. All modifications made with any of the SYSGN commands will be in effect immediately. 2.5.7-6 Revised Dec 70 ~~L~~~~ _ _- -_ _ _ _ _~_ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2.5.8 BOOTSTRAP LOADER GENERATOR The Bootstrap Loader Generator is used to generate a card or paper tape bootstrap loader for stand alone use. The operator may precede the generation of an object deck or tape with this routine. This feature is especially advantageous to paper tape users. This loader recognizes type codes of 0 I A and F only. The assembler I Debug and core image converter outputs may be loaded. The Bootstrap Loader Generator is given the name BOOT in the DC file. Thus I it can be loaded by use of the command: $BOOT BOOT uses the following logical units: SO - data output 15 - generate/compare input switch OM - error messages CC - operator input Generate/Compare Control If $lS=NO I BOOT will output an IPL format bootstrap loader to SO. SO may be assigned to PP or CP. If $IS=iNO I then BOOT will compare the input file assigned to 81 with the correct bootstrap image. Revised Dec 70 2.5.8-1 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Error Detection and Correction On compare error, the correct image is output to SO and ERROR is output to OM. The operator must respond after an error with one of the following: C - continue R - reread image to double check or verify new image output when error occurred. D - terminate and return to the DBOS monitor. 2. 5. 8. 1 Card Bootstra·p Loader Execution The Card Bootstrap Loader may be loaded anywhere in core. Once loaded the loader may be re-entered at location Q as required for loading subsequent program modules. Care must be exercised to place the loader in an area of core which will not be overlaid by the object program. The execution/loading address (0) must be an even address. The following steps are required to load and execute the Card Bootstrap Loader at location (Q): 1. IPL bootstrap into location Q (normally zero). 0 must be even a. Unlock the 'Console Enable' and 'WSPB ' switches, set all switches off (up) except for 'sPa', 'IDLE', 'HALT', and card IPL channel (normally "Register Select' switches 8 and 4), press and release 'reset'. 2.5.8-2 Revised Dec 70 ~~L~~~~ b. _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Load card reader with 3 card bootstrap/loader followed by one or more object decks. Ready the card reader. c. Set Q into the console data switches set 'Halt' switch off (up) I press and release 'Enter', press and release 'IPL' (card 1 of the bootstrap/loader will be input) 2. I I set 'Halt' on (down). Execute bootstrap at location Q with data switch options. a. Press and release 'Reset', set Q into the console data switches set register select switches off (up) b. I I press and release' Enter' • Select data switch options Switch 0 = load/execute option Off = Load according to switch 1 On = Execute last complete object deck loaded. Switch 1 = load option Off = Load and execute one object deck On = Load multiple object decks Both switches may be changed at any time during the execution of the loader Ii. e. I if multiple object decks are being loaded I switch 1 may be reset while loading the last object deck to effect execution or switch 0 may be set after the last card in the I reader is input to effect execution. Revised Dec 70 2.5.8-3 ~~L~~~~ c. ~ 88A00142A _ _- - - - - - - - - - - - - - - - - -_ _ Set IIdle/run I switch to IRun', press and release 'Step' to execute the bootstrap/loader. 3. Errors a. Checksum error or card reader error. Program will enter a wait condition. Correct error and ready reader to reinput card. Press and release step. b. Loader overlay error. Occurs when obj ect program destroys loader while loading. Choose a suitable Q (see core requirements) and return to 1A. 4. Core requirements. The Bootstrap (first card) requires 40 locations starting at Q. After the bootstrap has loaded the loader, locations 0+1 to 0+39 are available to the user. The loader (cards 2 and 3) requires 181 locations I the last of which is Q, the entry point. If Q is zero (normal case) the loader will reside in the top of core with Q at location zero. 7FF F LOADER 7FFF CORE 0-181 0+39 Available after loader loaded o 0+39 LOADER Q-181~______________~ ~ vailable after oader loaded 0+1 o o h 0=0 2.5.8-4 o = 1000 16 Revised Dec 70 ~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 2. 5. 8.2 Paper Tape Bootstrap Loader Execution The paper tape bootstrap loader may be loaded anywhere in core. Once loaded the loader may be re-entered at locat~on 0 as required for loading subsequent. program modules. Care must be exercised to place the loader in an area of core which will not be occupied by the object program. The loading/execution address (0) must be an even address. The following steps are required to load and execute the Paper Tape Bootstrap Loader at location 0: 1. IPL or use teletype boot (programming/operations manual, 88AOO 121A, appendix G) to read loader into location Q. Q must be even. The IPL procedure is described below. a. Unlock the 'console enable ' and 'WSPB I switches, set all switches off (up) except for ISPOI, 'idle ' , 'haIti, and paper tape IPL channel (normally 'register select' switches 8 and 4), press and release Ire set ' . b. Load paper tape reader with 'rubouts' over read head. Ready the reader. c. Set 0 into the console data switches, press and release 'enter l set 'haIti switch off (up), press and release 'IPL' the entire loader should be read stopping on the terminating '5' punch. Set 'halt I down. Revised Dec 70 2.5.8-5 ~~L~~~~ ---------------------~ __ 88AOOl42A 2. . Execute loader at location Q. a. Press and release 'reset', set 0 into the console data switches I set register select switches off (up). Press and release 'enter'. b. Load object paper tape into paper tape reader/teletype. Set 'idle/run' switch to 'run', press and release 'step' to execute the loader. If no errors occur I loading will stop after an end record (type 'F') is encountered. The A register will be zero. See data switch options. 3. Errors a. Checksum error. The A register will be non-zero. b. Loader overlay error. Occurs when obj ect program destroys loader while loading. Choose a suitable 0 (see core requirements) . 4. Data switch options. Switch zero is used a s follows: Off = load another tape I return to step 2b. On = execute last successfully loaded program. Pres s step. 5. Core requirements. The loader requ:ir es 176 locations starting at 0 through 0+175. 2.5.8-6 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 2.5.9 PAPER TAPE VISUAL HEADER GENERATOR The visual header generator is supplied in DBOS to permit labeling of paper tapes. The user may enter a series of characters which will be punched as a header in ticker tape visual format. The header routine is given the name HDR in the DC file. Thus, it may be called to execution by the command: $HDR HDR use the following logical units: OM - Opem tor error mes sages PP - Punched output 15 - Compare input via PR CC - Header data input Generate Compare Control If $15=NO, HDR will punch a header in visual format cons isting of characters input from CC prior to the terminating C/R. If $15=PR, HDR will compare the tape in PR to the input data. Error Detection HDR will abort and return to DBOS if the input tape does not compare. The message ERROR is output to OM. Revised Dec 70 2.5.9-1 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Character String Format The following characters are valid: A-Z 0-9 (). -/ and space. Trailer may be included in the header by following the last trailer blank character with a if symbol. The special character @ will cause 8 rubout frames to be punched 2.5.9-2 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 7 MEDIA DATA RECORD FORMATS 2.7.1 CARD DATA "A" Format - 80 Hollerith characters. IrB" Format - Assembler and core iImge converter 54 word binaryformat (call - 72) This fermat is the primary data storage unit for programs stored in the DC file. Each 54 word record contains an address and checksum. The checksum includes the relative sequence number of the record within the program file. The checksum is verified during all load operations. IrC" Format - This format consists of a packed format which results in 60 binary words per punched card. No address or checksum appears in the format. rr D rr Format - Not applicable to cards. 2.7-1/-2 ~~.~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.7. 2 PAPER TAPE FORMATS "A" Format - Formatted ASCII data records. Each record must appear as follows: LF, DATA, TRAILING BLANKS (which are omitted by DBOS) CR The LF is not packed as part of the data record and leader is slewed. A maximum of 80 characters can be input per record. A CR will terminate input and blank fill the remainder of input buffer. "BII and "c" Format - In these formats the first frame contains a word count for the following record. Data is packed two frames per word. Leader is ignored. Data transfer terminates when the DBOS word count, 54 or 60 words is reached. If the frame count is exhausted before the word count, the remainder of the input buffer is filled with zeroes. 2.7.2-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2.7.3 DISK FORMATS Data is stored on disk in four formats. It is generally I not acceptable to mix formats within files. The user should consider the forma. t of data to be copied to/from a general purpose device. Refer to table 2- 2 for implicit data type for each device. A Format - Data stored in source form on disk are in packed ASCII format. Blarks are compressed and each input record requires a variable amount of disk storage. An average of 15 records are stored per sector. B Format - The 54 word binary storage format is the primary unit under DBOS. A $COPY command or $DUMP command which references a DC or library file will result in 54 word records as output. (The user should note that at no time is a program stored on disk in core image format. Section 2. 7 . 4 diagrams a method for obtaining a hexadecimal dump of a program in core image format.) All loading operations process the" B" format and each record is checksummed. Fi ve records are stored per sector. C Format - Sixty word binary record format. This format permits unchecksummed data to be processed. rive records are stored per sector. 2.7.3-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A D Format - Sector data format. Each record contains 320 words. Files consists of multiples of disk sectors. A file may be defined by its name or its beginning bs I 2.7.3-2 and ending sector es. I ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 8 ESTABLISHING NEW FILES A new file may be defined at any time as a function of the JOB stream. For exampl e: $SI=DS(800-lE82) ,[pJ would define a directoried source file I DS, origined at sector 800 and terminating at sector lE82. The P option defines the new DS definition as standard for multiple JOBs. A temporary assignment is reset on occurrence of the next JOB command. The user should also be aware that reloading the system, IPL, resets all LUN as signments to the basic set. To add a source deck to the new file the command: $COPY ,CR, DS(NAME) will add the label NAME to the directory for the file and store the source. Any definition of a file in terms of beginning and ending sector establishes new temporary or standard limits for that file. A subsequent reference to DS in the example above is to the file bounded by 800 and 1E82 and not the basic set of boundaries (900-frf). 2.8-1 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A To reset the boundaries of DS to the basic limits $SI=DS (900-FFF) The reference to SI is for formatting only. The file DS is the effected entHy. SI may be reassigned without affecting DS. NOTE Care should be exercised when enlarging a file to not overlay another file. Considerable disk space is available outside the basic limits for user files. The user may reassign all file boundaries at any time. NOTE User library files must be terminated with an EOD image. Example: $TOB $2=UL(bs-es) define limits for user library $A build library data records Source Statements $A Source Statements $EOD $C()PY WI3 Ur.. I 2.8-2 I close file copy assembler generated subroutines and EOD to UL. ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 2. 8. 1 REASSIGNING FILES In the previous section on defining new files the processes required to reassign files were defined. It is permissible to reassign files during a JOB stream repeatedly. This feature makes it possible to assemble or compile from several source files to build a particular c:b ject program. Example: $SI=DS(NAME) Unit 1 from basic DS file $A object to WB $l=DS(bs-es) Set SI to Fortran source file $SI=DS(NAMEF) Set SI to named segment of Fortran file $F Compile unit 2 $SI=DS (bs2-es2) Set SI to source file 2 $A Assemble unit 3 $EOD Close binary object file $CIC Build program *BUILD $ LOAD Execute program 2.8.1-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Table 2-1. DBOS Logical Units 2.8.1-2 STANDARD ASSIGNMENT (FILE) (SEE FILE NAMES, TABLE 2-2) NUMBER NAME 0 CC Control Command Input TV (Teletype Keyboard) 1 SI Symbolic Input CR (Card Reader) 2 SO Symbolic Output WS (Working Symbolic File) 3 BI Binary Input WB (Working Binary File) 4 BO Binary Output WB (Working Binary File) 5 LO Listing Output LP (Line Printer) 6 IS Intermediate Symbolic WS (Working Symbolic File) 7 OM Opera tor Messages TV (Teletype Printer) 8 CI Core Image Data WC (Working Core Image File) 9 LB Binary Library LB (Directoried Library File) 10 SL System Log LP (Line Printer) 12 SB Secondary Binary Library CR (Card Reader) 11 UL User Library UL (Directoried User Library File) 13 User Disk Temporary OK (Unformatted Disk I/O File) 14 User Packed Disk Temporary DP (Disk) 15 NO NO (Delete I/O) USAGE ~~L~~~~ ---------------------~ __ 88A00142A Table 2-2. DBOS File Nqmes NAME USAGE DEVICE Disk Directoried source language program data Disk Directoried binary object subroutine library Disk Directoricd user binary object subroutine library. Disk Directoried core image program data Disk Working source language data Disk Working binary object data WC2 Disk Working core image data CR Card Reader ASCII or binary card input CP Card punch ASCII or binary card output LP Line Printer ASCII listing output TY Teletype ASCII or binary teletype input/output PR Paper Tape Reader ASCII or binary high-speed paper tape input PP Paper Tape Punch ASCII or binary high-speed paper tape output Disk ASCII or binary disk sector input/output Disk ASCII or biliary logical packed disk input/uutput N 3. Any hardware malfunction which did not allow completion of the call. Error values of greater than 3 generally have different meanings for each driver. Note that it is the user's responsibility to initiate any desired error recovery procedures. 4.14-12 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A M7 Control Parameter This parameter consists of four hexadecimal digits which define the I/O operation to the physical driver. The first two digits defines the I/O function in terms of read, write, control, etc. The second two digits rilodify the function digits. If no physical driver exists, parameters Mo-M7 should be defined as follows: MO DC 0 M1 DC 0 M2 DC *+1 M3 DC 1 M4 DC *-* M5 DC *-* M6 DC 0 M7 DC 0 M8 I/O area address of the form: AREA L1 DC n word count BSS n data area Address of user OPCOP or zero. This contains the address of a subroutine in the user's program which is to be executed by the logical drive prior to returning to the user's program via LIO. L2 Address of logical Driver L3 Logical Driver error code Must be set by logical driver according to table 5- 2 in the DBOS Reference Manual. Revised Dec 70 4.14-13 ~~LA~~~ _ _ _------~----------~_ 88A00142A L4 Device Characteristics A word which contains the sum of one or more of the following characteristic L5 DR EQU /1 Directoried IN EQU /4 Input device OT EQU /8 Output device BI EQU /410 Implicit binary mode AL EQU /420 Implicit alpha mode DK EQU /42 Disk PK EQU /80 Packed format LW EQU /100 Line width record s LB EQU /200 Library file LIO Operation code with logical unit number removed /X 1X2 00. (See table 5-1 in the DBOS Reference Manual). 4. 14-14 Revised Dec 70 ~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 4. 14. S ADDITION OF I/O DRIVERS a. The Physical Unit Driver A new physical unit driver which may be used by many logical dr ivers must include the following functions. 1. It I S name must appear in a DEF as; DEF 2. PDNAM It must reserve a location as a driver busy indicator. The address of this location must be made available to an I/O List via a DEF as: PDBUSY DEF PDBSY DC non-zero where PDBUSY is maintained by the physical driver as zero for busy, non-zero for not busy. 3. It must accept a call from the logical driver of the form: BSI PDNAM DC LIST The parameter being the address of MO in the I/O List. 4. It must maintain MO and M6 in the I/O List. s. It must execute optional OPCOP if M 1 in I/O List so specifies. Revised Dec 70 4.14-15 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A A physical unit driver which performs the I/O operation and the above actions is coded and placed in the User1s Library. 'See Section 4.14.10) b. The Logical Uni t Driver A new logical unit driver which may be called by many I/O Lists must perform the following functions: 1. It's name must appear in a DEF as: DEF 2. LDNAM It mu st accept a call from LIO via an I/O L 1st of the form:. BSI I L2 LIST DC where L10 sets the contents of I/O List locations: M8 L1 = = AREA OPCOP L5 = FUNC 3. It must maintain L3 in the I/O List. 4. It must provide the physical driver with its control parameter (M 7) using L10 supplied codes in L5. 4.14-16 5. It must ca1l the physical driver, passing on the address of the I/O Li 6. It must execute optional OPCOP if specified by L10. Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A A logical I/O driver which performs the above functions as well as it's own operation (data conversion, etc.), is coded and placed in the User's Library. c. The Combined Logical/Physical Driver Much of the bookkeeping neces sary for separate drivers is eliminated. A combined driver need perform only the following: 88A00142A 1. The actual I/O operation. 2. Numbers b-1, b-2, b-3 and b-6 above. 4.14-17 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 4. 14. 6 DELETION OF I/O DRIVERS It is to the user's advantage to remove all standard drivers which do not pertain to his actual configuration. This will increase the amount of core storage available to user programs. The following steps must be taken to remove unwanted drivers: 1• Remove from eONFIG source deck all references and entries pertaining to the drivers. a. Physical Unit Table - Remove the two word entry and the REF for that entry. Replace the two word entry with: ASe .NO. De NOFL This null entry eliminates the need to alter deflections in the Logical Unit table. b. Logical Unit table - If any of the logical units are assigned to the deleted entry I this as signment should be changed to another physical unit. 2. Build a new system as shown in Section 4. 14. 10. When the new system is built by ele the unwanted I/O Lists and drivers will not be included. 4.14-18 88A00142A ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A The following example illustrates the removal of the line printer driver from the standard system: 1. In the Phys ical Unit table replace the ninth entry ASC . LP. DC LPRT ASC .NO. DC NOFL I with Also remove the entry: REF 2. LPRT Since logical units 05 (LO) and 10 (SL) are standardly assigned to the Line Printer these entries in the Logical Unit table must be re-as signed I to the TTY. This is accomplished by replacing respectively the entries: DC /1212 LO DC /1214 SL DC /1414 LO DC /1414 SL with 3. Build new system as shown in Section 4. 14. 10. Since no reference is made to LPRT the I/O List will not be included. Since the I/O List is not included there will be no reference to the driver and it also will not be included. 88A00142A 4.14-19 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 4. 14.7 SYSTEM DISK BUFFERS Standard systems are configured with one system disk buffer in the system monitor. An additional buffer may be added to reduce the time for disk to disk transfers. This requires only a change in CONFIG. To implement the second buffer replace the SBUF2 EQU SBUF1 card in CON FIG with: SBUF2 DC 0 DC 320 BSS 321 Note that this will add 323 words to the resident size of the monitor see Section 4. 14.9. 4.14-20 88A00142A ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A 4. 14.8 ADDITIONAL DISK FILES Ad\.lltional drivers are nat required to add more disk files. This can be acco:nplished by adding more I/O lists and entries in the Physical Unit Table. Disk files require additional I/O list parameters (El-E10): 81 E2 E3 E4 -operation code of last operation -first sector -" now" sector -last sector -buffer -buffer pointer -user area save -first permanent sector -last permanent sector -system buffer -first directoried sector (directoried files only) -last directory sector (directoried files only) E5 £6 E7 E8 E9 EI0 Ell E12 Example: To add a directoried file I DF, to be assigned to sectors lCOO-lCFF and use SBUF2: 1. 88A00142A Add file name and list name to the Physical Unit Table: REF DFFL ASC .DF. File name DC DFFL List name 4.14-21 ~~L~~~~ 2. __ -------~---------~~ 88A00142A Add I/O list: BS ES DFFL DEF REF REF REF EQU EQU DC DC DC BSS DC BSS DC DC DC DC DC DC DC DC DC DC DC DFFL LDZ BSYDK SBUF2 /ICOa /IcrF 0 0 BSYDK 3 0 2 0 LDZ *-* /4EF *=* 0 BS BS £S SBur2 SBUF2+3 DC 0 DC BS ES SBUF2 BS ES DC DC DC DC END MO MI M2 M3-MS M6 M7-M8 Ll L2 L3 L4=DR+IN+OT+AL+DK+PK L5 El* E2* £3* E4* £5* E6* £7 £8 E9 EI0 Ell* E12* *These parameters may be left undefined (*-*) if a STOB command is used before using the file. For safety they should be defined as shown in the example. I 4.14-22 Revised Dec 70 ~~L~~~~ _ _- - - - - -_ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 4.14.9 OTHER CONSIDERATIONS Adding more drivers or a system buffer increases the resident size of monitor. If this size exceeds the origin of an existing processor (or the executive), that processor must be re-origined (using the CIC BOUND command) above the monitor. This is done as follows: 1. Build new processor in WC SJOB SBI=CR SCIC *MAP *BOUND, mon-end+l *BUILD PROCESSOR SEOD 2. Punch new processor a. CARDS SJOB SSI=WC SSO=CP SSQCM >name001,B b. PAPER TAPE STOB SCOpy, WC, PP Revised Dec 70 4.14-23 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - _ 88A00142A 4.14.10 OPERATING PROCEDURES Once the subroutine CONFIG has been modified and optional non- standard drivers have been written, the following must be done: 1• Add the GA configuration components to an existing DBOS pack: $COPY CR UL GA supplied monitor components and drivers $EOD I I SCOPY.CR LB SYSGN components and DEBUG subroutines $EOD 2. Copy components to UL File Clo se UL File Copy to LB File Close LB File Optionally add user generated drivers and/or I/O lists to UL: $TOB SA User C omponen t 1 SA User Component 2 Assemble drivers and I/O lists $A I User Component N I $EOD $COPY WB, UL I 4.14-24 Close WB File Copy drivers and lists to UL File Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 3. Build a new DBOS system in WC: $TOB $A CON FIG $EOD $IS=WS $BI=CR $SB=WB $CIC *MAP *BOUND,6C *BUILD SB UL SYSTEM MONITOR' I 4. I Assemble updated CONFIG Close WB File Assign eIC intermediate storage to WS File Assign BI to card reader Assign SB to WB (object CONFIG) Build from BI, SB, UL and LB into WC Monitor relocatable binary cards Punch new system with 'bootstrap: a. CARDS $TOB $SI=WC $SO=CP $BOOT $SQCM >MON001,B b. PAPER TAPE $TOB $SO=PP $BOOT $COPY ,WC , PP Revised Dec 70 4. 14-25/26 ~.G~ALAUro~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A SECTION ---5 -----LOGICAL INPUT/OUTPUT SYSTEM --- 5. 1 GENERAL INFORMATION The logical input/output system (LIO) provides system capability for performing device independent input/output operations. LIO data transmission is processed on a record basis and internal data is represented as ASCII information packed two characters per word or as binary word data. Conversion for particular devices is performed automatically. LIO consists of three separate levels of processors: a. The central control routine which processes user calls and converts logical unit numbers to particular device specifications. b. The logical I/O drivers which perform data conversion and logical record packing. c. The physical I/O drivers which communicate with the actual device. All operations are performed on a record basis; 1. e. I card records contain 40 or less words. Any request processes exactly one record. If more words are request~d than are contained in a record, only the amount contained in the record are significant. 5.1-¥-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 5.2 LIO CALLING SEQUENCES The LIO sy stem accepts two different calling sequences: 1. Input/output request call. 2. Status check call. Both are described in the following paragraphs. In the generalized calling sequences shown in these descriptions the label a identifies the branch instruction which transfers control to LIO. The labels of other elements are shown relative to a. 5-.2-1/-2 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - -_ __ 88A00142A 5.2. 1 INPUT/OUTPUT REQUEST In an assembly language program, the LIO user may request an input/output operation by programming the following calling sequence: CALL L10 a+l DC /x 1x 2x x 4 3 a+2 DC AREA a+3 DC OPCOP a+4 (return location) where: L10 is the name of the entry to the L10 central command routine. represents a hexadecima 1 word (hexadecimal indicated by /) containing the following: an L10 operation code as defined in table 5-1. either 0 or 1 to specify data type- o= 1 ASCII data = Binary data 2 = Special mode Revised Dec 70 5.2.1-1 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A represents a logica 1 unit number (hexadecimal) as defined.in table 2-1. NOTE In the text which follows a reference to XN is used specify the value of the subscripted hex field. For example; OPEN with X =1 2 specifies that hex digit two is to be set equal to l(X1XX). AREA represents the address of a data area. The value contained in the first word of the data area specifies the number of data words in the area. In symbolic notation this area is defined by the statements: AREA DC n BSS n n = number of words in the data area. OPCOP represents the addres s of a routine to be executed upon completion of the requested operation I or it is zero. A zero indicates no user routine is provided. 5.2.1-2 Revised Dec 70 ~~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Table 5-1. LIO Operation Code CODE OPERATION o No operation (ignored by LIO) 1 Read 2 Write 3 Write 4 Read 5 Open 6 Special for each device 7 Special for each device 8 Close An OPCOP address causes the user routine to be executed at the interrupt level (i. e. I called by the I/O interrupt service routine when operation is complete) . The user routine is executed as a subroutine and must accept the calling sequence. BSI OPCOP DC 'loc ' contains the addres s of on I/O i list (see section 6 I I/O subroutines). 5.2.1-3/-4 ~~L~~~~ _ _ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A When this call is made to LIO I the operation is initiated and control is returned to the location following the DC OPCOP location. 5.2.2 I/O-REQUEST STATUS CHECK If no OPCOP routine is specified in the I/O request calling sequence, the user may check the status of the operation with the call: a CALL a +1 DC a +2 (return location) LIO where: F specifies a check operation specifies the wait/no-wait option (0 or 1). x =0 2 indicates that LIO should wait for the operation to be completed before returning to the user's program. If the device is not ready or an error condition exists I the operator is notified and may take remedial action. Upon return to the user's program I the A-register will conta i.n the status of the operation as specified in table 5-2 (0, 1 or l' only) . indicates that LIO is to place the current status of the operation in the A-register and return immediately. Any status code as specified in table 5-2 is possible. 5.2.2-1 _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A specifies the logical unit number (hexadecimal) of the unit being tested. Logical unit numbers are defined in section 2, table 2-1. Return from this call is to the location immediately following / Fx 2x 3x 4 · Table 5-2. Status Indicators 5.2.2-2 CODE STATUS o Operation ignored 1 Succes sful completion 2 Device off-line (logically) 3 Device not ready 4 Parity error (device dependent) 5 Write select (device dependent) 6 Data error (device dependent) 7 Data overrun (device dependent) 8 Seek error (device dependent) 9 File protect error (device dependent) A Bad sector address (device dependent) B Address modification (device dependent) C Unused D Unused E Unused F End-of-file -1 Busy ~G~M~ro~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 5.3 LIO USAGE Normal usage of the L10 system consists of using the status check and wait call as opposed to the OPCOP subroutine. Since the logical unit may be as signed to any physical device, the user should perform operations as follows: a. Call LIO with an OPEN operation code. This insures that the device is initialized. b. Call L10 to perform any number of read/write or special operations. c. Call LIO with a CLOSE operation code to insure that all data has been proces sed. The following subparagraphs describe the various logical I/O device drivers. Included I are calling sequences for each driver. 5.3-1/-2 _~~L~~n~~ _______________________ 5.3. 1 LOGICAL DISK DRIVER The logical disk driver provides I/O processing using the following operation codes: CODE 1,4 PROCESS Read the specified number of words into the user. data area 2,3 Write the specified. number of words on disk from the user data area. 5 Open - position at the beginning of a disk file. A Seek - position the disk at a specified sector 5.3.1-1 ~~L~~~~ _ _~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ The user data area for disk I/O contains two parameters preceding the data area itself. The first specifies the number of words to be transmitted. The second specifies the logical sector number (relative sector position in the file) to be used in the transmission or seek operation. An OPEN operation (5) will position the disk at the beginning of a file and set zero as the logical sector number. Successive reads or writes will automatically process consecutive sectors. After each read or write operation, the logical sector number is adjusted to indicate the next available sector. Logical I/O disk records (i. e. I the user's data area) must be <320 words. Following are disk I/O calling sequences (DK file is used; DP file could also be used): 5.3.1-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 1. OPEN - Position at beginning of disk file. Q CALL LIO a+1 DC /510D CALL LlO SYSTEM POSITION AT BEGINNING OFDK FILE' a+2 DC A IDENTIFY DATA AREA a+3 DC 0 NOOPCOP (return location) A DC n DEFINE RECORD SIZE DC (any) THE VALUE WILL BE (n~320) ZEROES FOLLOWING OPEN BSS 2. n RESERVE n WORDS. SEEK - Position at specified sector. ct CALL LIO CALL LIO SYSTEM a+1 DC /700 A SEEK SPECIFIED SECTOR IN DK FILE. A a+2 DC a+3 DC 0 (return location) NOOPCOP A DC DEFINE RECORD SIZE n IDENTIFY DATA AREA. (n9 2O) DC DEFINE SECTOR NUMBER (ALSO MAYBE ESTABLISHED AS PRODUCT OF PROGRAM EXECUTION) BSS n RESERVE n WORDS 5.3.1-3 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 3. READ ----- CALL Q Q+l Q+2 Q+3 A LIO /1100 DC A DC 0 (return location) DC DC CALL LIO SYSTEM READ, BINARY, OK FILE IDENTIFY DATA AREA NOOPCOP n DEFINE RECORD SIZE n SECI'OR NUMBER RESERVE DATA AREA (n9 2O ) DC BSS 4. WRTE CALL Q Q+l Q+2 Q+3 A LIO /1100 DC A DC 0 (return location) DC DC CALL LIO SYSTEM READ, BINARY, DK FILE IDENTIFY DATA AREA NOOPCOP DEFINE RECORD SIZE n (n~320) SECI'OR NUMBER RESER VE DATA AREA DC BSS 5. n CHECK STATUS Q CALL LIO Q+l DC /F(Y)OD (return location) 5.3.1-4 USAGE CHECK STATUS ON OK FILE _~~L~~~~ _ _- - -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 5.3.2 LOGICAL DISK PACKING' DRIVER The logical disk packing driver performs packing and unpacking of data within an internal system buffer prior to performing disk operations. This driver processes the following operation codes: CODE 1,4(read) PROCESS Read the number of words specified in the data area from the system buffer «319 words) .If the buffer is empty, initiate reading of the next sector into the buffer. If the number of words requested exceeds the length of the next record in the buffer the driver I will fill the rema inder of the data area with blanks (ASCII) or zeros (binary) . 2,3(write) Write the number of words specified «319)in the data area into the system buffer. If the buffer is full; write the buffer onto the disk, then transfer the data area to the buffer. 5(open) Position at beginning of file (optionally attach user buffer) . Revised Dec 70 5.3.2-1 ~~G~L~~~~ -----------------~---_ __ 88A00142A CODE 8(close) PROCESS If the last operafion was write; write the buffer·onto disk" and position successive writes to start on the next available sector. The disk files for these operations may be any packed file. (In the standard configuration, the only disk file that is not packed is ok.) Before a series of read or writes using this driver, the OPEN operation must be performed. The series must be terminated by a CLOSE operation. This driver provides a method for economic use of disk files by maintaining packed 320 word disk sectors. For example, when ASCII data are transmitted with this driver all excessive blanks are removed. Also, several records may occupy a single disk sector as opposed to the disk driver (5.3. 1) where each read or write requires at least one sector. Unlike the disk driver, the disk packing driver does not require or use a sector number specification in the user data area. User Buffers - The standard system configuration allocates one core buffer for system use. This results in very slow disk-to-disk packed transfers. The user may allocate some of his core for buffering (323 words). A user buffer may be shared by several files. To allocate a user buffer, OPEN with X =1. 2 5.3.2-2 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - -_ _ _ _ _ _ _ __ 88A00142A Following are the calling sequences used with this driver (ASCII data and DP file specifications are used; however I binary data and working files may be used) : 1. OPEN - Position at beginning of file. ct CALL LIO ct+l ct+2 DC 15(~)OO+LUN DC UBUFF ct+3 DC UBUFF DC DC BSS CALLLIO OPEN, DP FILE ADDRESS OF.!l~ER 1,\UFFER IF X2=1 OR IGNORED TRANSMITTED NOOPCOP 0 (return location) o IF A USER BUFFER IS DESIRED, IT MUST BE OF THIS FORM 320 321 2. CLOSE - Terminate, write last buffer onto disk. CALL LIO ct+l ct+2 DC /800E any ct+3 DC ct Revised Dec 70 DC 0 (return location) CALL LIO CLOSE, DP FILE NO EFFECT IN CLOSE OPERATION NOOPCOP 5.3.2-3 ~~L~~~~ _ _---------------------~ 88A00142A 3. READ Q CALL LlO cr+l cr+2 cr+3 DC /100E READ, ASCII, DP FILE DC A IDENTIFY DATA AREA DC 0 (return location) NOOPCOP A DC n DEFINE AREA SIZE (n (319) BSS n RESER VE n WORDS CALL LIO 4. WRITE Q cr+l cr+2 cr+3 A 5.3.2-4 CALL DC LlO CALL LlO /200E WRITE, ASCII, DP FILE DC A DC 0 (return location) IDENTIFY DATA AREA NOOPCOP DC n DEFINE AREA SIZE (n(319) BSS n RESER VE n WORDS Revised Dec 70 ~~~L~~~~ _ _- - - - - -_ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 5. 3. 3 LOGICAL CARD DRIVER The logical card driver performs automatic conversion and buffering of data. The driver processes the following operation codes: PROCESS CODE 1,4 (read) Read ASCII or binary data from the card read buffer into the specified data area. If the card contains a $ in column 1, an EOF status is returned. 2, 3 (write) Wri te ASCII or binary data from the specified data area to the card punch buffer. Initiate punching of the buffer. OPEN and CLOSE operations on the card reader or punch have no effect. The data area specified for card read/punch must be at least 40 words in length. Data is packed in this area as two card-columns per word (either ASCII or binary) • The card reader driver normally reads ahead two records. The user may inhibit this feature as follows: REF XEOF SRA 16 STO Revis ad Dec 70 L Clear accumulator XEOF 5.3.3-1 ~~L~~~~_'-'----------------------~ 88A00142A 1 • READ CALL LIO SYSTEM a CALL LIO 0:+1 DC 1(1)(Y)01 READ, ASCII OR DC A BINARY CARD READER IDENTIFY DATA AREA DC 0 NOOPCOP 0:+2 0:+3 (return location) 40 40 DEFINE RECORD SIZE BSS Q: CALL LIO CALL LIO SYSTEM 0:+1 DC Id)(?)02 PUNCH, ASCII OR BINA R y' CARD PUNCH 0:+2 0:+3 DC A IDENTIFY DATA AREA DC 0 NOOPCOP A DC RESERVE SPACE (return location) A DC BSS Q: CALL 0:+1 DC DEFINE RECORD SIZE 40 40 RESERVE SPACE CALL LIO SYSTEM CHECK, WAIT OR GIVE CURRENT STATUS, . CARD DEVICE RETURN WITH INDICATOR; IN A-REGISTER (return location) 5.3.3-2 _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 5.3. 4 LOGICAL LINE PRINTER DRIVER The logical line printer driver provides for both output of ASCII data and page formatting. It proces ses the following operation codes: CODE 2,3 (write) PROCESS Output ASCII data onto one line on the printer followed by an upspace. Code 3 is used for FORTRAN writes (1 st character form control) . 5 OPEN - page eject. Position paper at top of next page. 7 Vertical page format. The contents of the area word specifies format controls as described below. 5.3.4-1 _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A Control (Contents of Area Word) LP Function Immediate skip to channel 1 2 Immediate skip to channel 2 3 Immediate skip to channel 3 4 Immediate skip to channel 4 5 Immediate skip to channel 5 6 Immediate skip to channel 6 7 Immediate skip to channel 7 8 Immediate skip to channel 8 9 Immediate skip to channel 9 A Immediate skip to channel 10 B Immediate skip to channel 11 C Immediate skip to channel 12 D Immediate upspace of 1 E Immediate upspace of 2 F Imri-Iediate upspace of 3 Line Printer Format Control: The vertical formatting of printed output to the line printer (operation code 7) is guided by a carriage control tape on the line printer. The channels of this tape are used for vertical positioning of the paper. In addition I there are several immediate spacing methods which are not dependent on the tape. Using L10 I the correspondence between the contents of the user's area word and format control is as follows: 5.3.4-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A At anytime that the bottom of the form is sensed on the printer I an automatic page eject is performed. Calling Sequences: 1. OPEN - Page eject. (k+3 CALL LIO DC 15005 DC A DC o CALL LIO SYSTEM OPEN, ASCII, LiNE PRINTER IDENTIFY DATA AREA (FOR PAGEE]ECf' ANY _~~~ MAY BE USED) NOOPCOP (return location) 2. 3. WRITE - Print a line and ups pace. Q CALL ~- Q+l DC 'd)OOS Q+2 Q+J A 0 (return location) A DC DC DC ------_... _- - CALL LlO SYSTEM OUTPUT, ASCII, LINE PRINTER IDENTIFY DATA AREA NOOPCOP DEFINE RECORD SIZE (n WORDS, TWO CHARACTERS PER WORD) RESERVE SPACE BSS n CALL DC DC LlO 11005 CALL LiOSYSTEM- F IDENTIFIES WORD WHICH CONTAINS FORMATTING VALUE' DC o NOOPCOP FORMAT FORMAT CONTROL, LINE PRINTER (return location) F 4. DC looon DEFINE FORMAT CONTROL WHEREn(F CHECK STATUS Q CALL CALL LlO SYSTEM Q+l OC CHECK, WAIT OR RETURN CURRENT ST.&1:US, LINE PRINTER (return location) 5.3.4-3/-4 ~~~L~~n~~ _______________________ 88A00142A 5. 3. 5 LOGICAL TELETYPE DRIVER The logical teletype driver provides I/O operation functions for both the teletype keyboard/printer and teletype paper tape I/O. Selection between keyboard/ printer and paper tape is a manual operation on the teletype unit. This driver processes the following operation codes: PROCESS CODES 1,4 (read) Input into specified data area. 2,3 (write) Output from specified data area. OPEN and CLOSE operation s have no meaning to the teletype unit. Teletype Binary Format: The first character of a binary paper tape record specifies the number of words in the record. The record may be up to 255 characters in length. Input: On input the driver reads the first character to determine the record size in words and then reads the specified number of characters. The characters are formatted into words and stored into memory. If the input record is insufficient to fill the users area the remaining area is filled with zeroes. Leading zeroes are ignored. Revised Dec 70 5.3.5-1 ~~L~~~~ _ _-------~~------------~ 88A00142A Output: The record length is output as the first data word followed by the data record. Trailing zeroes are not output from the users area. Binary records always contain at least one word. NOTE All binary operations are executed with the teletype in the non-echo mode. Teletype ASCII Format: Input: When ASCII character input is requested, the driver fir st outputs a Line Feed, a ? and a Space and then accepts keyboard or paper tape input. The input characters are stored (2 characters per word) in the users data area. I Input terminates when a Return character is read. Leading zeroes (leader) and code deletes are ignored. If the return occurs before the end of the data area, the remainder of the data area is filled with blanks. If the return occurs beyond the data area I the exces s characters are ignored. If a Rub-Out character is read in I input is reinitiated and all previously input characters are deleted. 5.3. 5-2 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A If a back-arrow (-) character is read in, the last stored chcracter in the data area is deleted. Any number of back-arrows may be read in, and with each, another previously stored character is deleted. The back-arrow characters are not counted as input characters and as each character is deleted, the input character count is decremented by one. Output: A line feed and two spaces are output first followed by the characters in the data area. Trailing blanks in the data area are not output. A carriage return is output as the final character. NOTE The teletype is set to non-echo for binary input. Teletype Character Format: This format consists of n 8- bit characters. Each word in the data area contains two characters. Use a subfunction code of 2(X =2). The 2 first word of the data area must be the character count. Input: Exactly n characters are input. Odd numbered characters fill bits 0-7 and even numbered characters fill bits 8-15. Revised Dec 70 5.3.5-3 ~G~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - - _ 88A00142.A Output: Exactly n characters are output. Calling Sequences 1. READ LIO a CALL a+l a+2 a+3 1 /1(2)OO+lun DC A DC o DC (RETURN LOCATION) A o CALL 1/0 SYSTEM READ DATA AREA NO OPCOP DC BSS N n AREA SIZE (WORDS OR CHARACTERS) AREA CALL LIO 0 CALL LlO SY STEM 2. PUNCH 1 a+l a+2 12(2)OO+lllll DC A DC (RETURN LOCATION) PUNCH DATA AREA A DC BSS AREA SIZE (WORDS OR CHARACTERS) AREA 11 n 3. CHECK STATUS CALL a LIO CALL LIO SYSTEM 0 a+l / F( 1 )OO+lun DC (RETURN LOCATION) 4. PUNCH LEADER (Open a CALL a+l a+2 a+3 DC DC DC (II CHECK. WAIT OR CIVE CURRENT STATUS Cluse) Call LIO system LlO S (8)OOO+lun 0 (CLOSE WAITS FOR COMPLETION PRIOR TO RETURN TO USER) NOT USED NO OPCOP 5. PUNCH a a+l a+2 a+3 5.3.5-4 CALL DC DC DC LIO /800X ANY 0 CALL LIO SYSTEM CLOSE, PAPER TAPE NO EFFECT NO OPCOP Revised Dec 70 _~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 5.3. 6 LOGICAL PAPER TAPE DRIVERS The logical paper tape drivers provide I/O operation functions for the paper tape reader and paper tape punch. This driver processes the following operation codes: PROCESS CODES 1 ,4(read) Input into specified data area. 2 3(write) Output from specified data area. 5, (open) No effect on paper tape reader. I Punch 10 inch leader on pcp er tape when punch is specified. 8(close) No effect on paper tape reader. Punch 10 inch trailer on paper tape when punch is specified. A close waits for completion prior to return to user. Paper Tape Binary Format: The first character of a binary paper tape record specifies the number of words in the record. The record may be up to 255 character long. Input: On input the driver reads the first character to determine the record size in words (leading zeroes are bypassed) and then reads the specified number of characters and stores them I two characters per word, into the user's data area. The remainder of the user area is set to zero. Revised Dec 70 5.3.6-1 ~~L~~~~ _ _- - -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Output: Trailing zeroes are deleted from output records. The record length (in words) is output preceding the record. Binary records will always contain at least one word. Paper Tape ASCII Format Input: The input characters are stored (2 characters per word) in the user's data area. Input terminates when a Return character is read. Leading zeroes (leader) are ignored. Line feed characters are ignored. If the return occurs before the end of the data area I the remainder of the data area is filled with blanks. If the return occurs beyond the data area, the excess character s are ignored. If a Rub-Out character is read in, input it reinitiated and all previously input characters are deleted. If a back-arrow (-) character is read in I the last stored character in the data area is deleted. Any number of back-arrows may be read in I and with each, an- other previously stored character is deleted. The back-arrow characters are not counted as input characters and as each character is deleted I the input character count is decremented by one. 5.3.6-2 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - - _ 88A00142A Output: A line feed is output first, followed by the characters in the data area. Trailing blanks are not output. A return is output at the end of the record. Paper Tape Character Format: This character format consists of n 8-bit characters • Each word in the data area contains two characters. Also a subfunction code of 2. The first word of the data area is a character count. Input: Exactly n characters are input. Character one fills bits 0-7 and character two bits 8-15. Output: Exactly n characters are output. Calling Sequences 1. READ a CALL LIO 0 CALL LIO SYSTEM l(~)OO+lun DC A DC 0 DC (RETURN LOCATION) READ IDENTIFY DATA AREA NOOPCOP DC BSS n n DEFINE AREA SIZE (WORDS OR CHARACTERS) a CALL LIO 0 CALL LIO SYSTEM 00-1 00-2 00-3 12(~)OO+lun DC A DC 0 DC (RETURN LOCATION) PUNCH IDENTIFY DATA AREA NOOPCOP DC BSS DEFINE AREA SIZE (WORDS OR CHARACTERS) RESERVE n WORDS aH 00-2 00-3 A 2. PUNCH A Revised Dec 70 n n 5.3.6-3 ~~L~~~~_.~.-------~-------~~~~~--~ 88A00142A 3. CHECK STATUS CALL CALL LlO SYSTEM LIO o at1 DC /F(l)OO (RETURN LOCATION) CHECK, WAIT OR GIVE CURRENT STATUS 4. PUNCH LEADER OR TRAILER (Open or Close) a CALL LlO CALL LlO SYSTEM at1 at2 at3 DC DC DC 5 (8)OOO+lun ANY 0 (CLOSE WAITS FOR COMPLETION) NO EFFECT NO OPCOP NOTE A close insures all data is fully output from packed buffers. 5.3.6-4 Revised Dec 70 ~~L~~~~ --------------------~ 88A00142A __ SECTION 6 DESCRIPTION OF I/O SUBROUTINES 6.1 GENERAL All input/output operations in DBOS are performed by subroutines referred to as I/O drivers. The I/O drivers perform the function of formatting and transferring data to and from the various peripheral devices in a system. Each peripheral device is supported by a unique I/O driver subroutine which performs all the required formatting error recovery and interrupt processing for that device. I The I/O drivers supplied with DBOS are used by the logical I/O system (LIO) for all data transfer operations. In addition I the disk I/O subroutine may be refer- enced directly by the user for special I/O requirements. All required are contained in the resident monitor. All r/o drivers r/o drivers contained within DBOS are coded as non re-entrant subroutines. That is, one operation must be completed before a subsequent operation is initiated. When successive calls are made to the same I/O driver I the driver will wait internally for the previous operation to be completed before the later request is initiated and control is returned to the user. There is no queueing of I/O requests. Revised Dec 70 6.1-1/-2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 6. 1. 1 I/O DR NER ORGANIZATION All I/O drivers are organized into two portions - an I/O initialization and an interrupt re sponse routine. I/O Initialization Routine: The functions of the I/O initialization routine are to verify the I/O list presented by the user, determine device readiness to accept a command and build a data pool for use by the interrupt response routine. Immediately upon entry I the I/O initialization routine determines if the Pre- viously initiated operation is complete. if not, a wait loop is entered until such time as the prior operation is completed. Once the I/O driver is free to process another request, the control parameter is interrogated to determine if the operation code is valid (see bas ic calling sequence, paragraph 6. 2, for a complete description of the I/O list). If the control parameter contains an operation code (Xl) which is not valid for the I/O driver referenced, the error parameter is set with an operation complete indication (1) and control is returned to the user immediately. Following the verification of the control parameter, both the device and I/O channel are checked to determine if an I/O operation can be initiated. If the device returns a not ready response, the error parameter in the list is set to three (3) and an exit is made to the user immediately. An indication that the I/O channel is presently being used by another device will cause the initialization routine to loop until the channel becomes free. The convention adopted is that the even channel register must contain zero (0) before an operation is initiated. All I/O drivers write zero into the register upon final completion of an operation. Revised Dec 70 6.1.1-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~' 88A00142A When all of the fore mentioned checks have been made the initialization I routine will set the link/busy indicator to minus one (1) I initiate the operation and return control to the user. Control will be returned to the I/O driver interrupt response routine upon occurrence of an interrupt to signal completion of the operation. Interrupt Response Routine: The interrupt response routines are entered as a result of an I/O interrupt. Upon interrupt I control is initially transferred to the appropriate interrupt level proces sor which in turn transfers control to the appropriate I/O driver interrupt routine. The interrupt routine checks for errors performs data formatting I I initiates subsequent operations for character oriented devices and sets I/O list parameters when a request is completed. Whenever possible erroneous operations are retried a specified number of times. If errors persist or the device is not capable of error recovery I the user is notified of the type of error via the error parameter in the I/O list. 6.1.1-2 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - - _ 88A00142A 6.2 BASIC CALLING SEQUENCE All I/O drivers are entered via a standard calling sequence. The calling sequence for BULKN follows the basic pattern for all drivers I but is the only driver to which the user may have access. A special indirect address vector is provided for this access. The following is the format of the calling sequence: CALL DC LIST DC DC (1/0 DRIVER NAME) ADDRESS OF 110 LIST 0 0 LINK/BUSY OP-cOP (0 OR SUBROUTINE ADDRS) 4 WORDS OF SYSTEM RESERVED BSS 4 DC 0 DC 1)1:1)1:2)1:)"4 AREA oc AREA NAME LIST ERROR PARAMETER CONTROL PARAMETER ADORES OF 1/0 AREA OC WORDS WORD COUNT BSS Words BUFFER AREA Revised Dec 70 6.2-1/2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A 6. 2 . 1 NAME PARAMETER The NAME PARAMETER is the symbolic name of the I/O driver. The reference name for the indirect vector to BULKN is BULKA. 6.2. 2 I/C LIST PARAMETERS All calling sequences have nine (9) I/O list parameters. The I/O list conveys to the driver all the information required to perform an I/O operation. Link/Busy: The LINK/BUSY indicator is used by a calling program to determine when the operation requested of the driver is complete. When an operation is in progress, the LINK/BUSY parameter will contain either a positive or negative value. Upon completion of the call, the indicator is set to zero. It is the responsibility of the user to make certain that a previous operation performed through the I/O list is complete before a subsequent call is made to a driver using the same list. OPCOP: The OPCOP parameter may be used to specify the address of a subroutine to be entered when the operation requested by the I/O list is complete. If the parameter contains a zero, no OPCOP subroutine entry is specified. If the value of the parameter is non-zero, the driver assumes the value to be the entry address to a subroutine (entered via a BSI instruction). The parameter sent to the OPCOP subroutine is the address of a word which contains the list address whose operation has just been completed. Entry to the user OPCOP routine is made with a calling 'sequence as shown: Revised Dec 70 6.2.1-1/2 ~~L~~~~ --------------------~ __ 88A00142A BSI L DC PARA DC USER (OPCOP subroutine addres s) PARA Address of li st parameter LIST Contains addres s of list completed The user may again call the I/O driver from within the OPCOP routine, only if all of the following are true: 1. The error parameter in the list is set to a one (1), (operation complete). 2. The control parameter specified a valid op-code on the previous request, and 3. No reque st wa s made to the 110 driver between the time of the initial call and the OPCOP exit. Also, if a subsequent call is made to an I/O driver from within the OPCOP routine, no status waits or delays can be used since the OPCOP routine is entered in an interrupted state. System Reserved: These four (4) words of the I/O list are required for compatability with MPX calling sequences. Revised Dec 70 6.2.2-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Error Parameter: The seventh list parameter is the error parameter. When the link/busy indicator is set to zero, the error parameter is set to one of the following values: 1. Successful completion of the call. 2. Device logically disconnected from the system. 3. Device hardware not-ready. Any hardware malfunction which did not allow completion of the call. Error values of greater than 3 generally have different meanings for each driver. Note that it is the user's responsibility to initiate any desired error recovery procedure s . Control Parameter: The eighth list parameter .is the CONTROL PARAMETER. This parameter consists of four hexadecimal digits which define the I/O operation. The first digit defines the I/O function in terms of read I write, control, etc. The second digit modifies the function digit. The ninth and final list parameter is the address of the I/O area (AREA). Area: AREA is the label of the users I/O area. 6.2.2-2 Revised Dec 70 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Error Parameter: The seventh list parameter is the error parameter. When the link/busy indicator is set to zero, the error parameter is set to one of the following values: 1. Succes sful completion of the call. 2. Device logically disconnected from the system. 3. Device hardware not-ready. >3 Any hardware malfunction which did not allow completion of the call. Error values of greater than 3 generally have different meanings for each driver. Note that it is the user's responsibility to initiate any desired error recovery procedures. Control Parameter: The eighth list parameter is the CONTROL PARAMETER. This parameter consists of four hexadecimal digits which define the I/O operation. The first digit defines the I/O function in terms of read, write, control, etc. The second digit modifies the function digit. The ningh and final list parameter is the address of the I/O area (AREA). Area: AREA is the label of the users: I/O area. 6.2.2-3/~4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~_ 88A00142A 6. 3 GENERAL FORMAT OF I/O CALLS 6.3.1 CALLING SEQlE NCES The general format for assembler language calls with a type one (1) or type two (2) exit is as follows: CALL NAME DC LIST LIST LD BSC MDX BSI NOP LIST AREA Revised Dec 70 DC DC L L *-3. Z L1ST+6. -1 ERROR I/O DRIVER NAME POINTS TO I/O LIST BUSY TEST DETERMINE IF I/O OPERATION COMPLETED SUCCESSFULLY BRANCH TO ERROR IF NOT. OTHERWISE CONTINUE 0 0 LINK/BUSY EXIT TYPE to OR SUBR ADDR) BSS 4 SYSTEM RESERVED 1 to 4 DC 0 DC ERROR PARAMETER CONTROL PARAMETER DC /XXXX AREA DC WDCT BSS WDCT I/O AREA ADDRESS WORD COUNT DATA AREA 6.3-1/-2 rt!!f!j) GENERAL AUTOMATION. INC. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A 6.4 BULK STORAGE SUBROUTINE (BULKN) The bulk storage subroutine performs all reading and writing of data relative to the model 1341 and 1344 disk storage unit. This includes the major functions; seek, read and write in conjunction with read-back check. ~,':: LT(N reads and writes consecutive sectors most of the time (depending on when the disk interrupt occurs) on most systems without extra disk revolutions. SI]ccessful use of the bulk storage subroutines can be expected only if programs arc~ built within the framework of certain conventions. The primary concern behind the convention is the safety of data recorded on the disk. The fileprotection scheme is dependent upon the sector-numbering technique. It contributes to data integrity by allowing the disk subroutine to verify the correct positioning of the access arm before it actually IE rforms write operations. This verification requires that sector identifications be pre-recorded on each sector and that subsequent writing to the disk be done in a manner that preserves the existing identification. The disk subroutines have been organized to comply with these requirements. The sector numbers are recorded at system generation time. Revised Dec 70 6.4-1 ~G~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Sector Numbering: The details of the numbering scheme are as follows: Each disk sector is assigned a logical address from the sequence 0 1 ... ,8104 for I 1341 (1608 for model 1344 and 1345) corresponding to the sector's position in the ascending sequence of cylinder and sector numbers from cylinder 0 (outermost) sector 0, through cylinder 202 (innermost) sector 39 for 1341 (sector 7 for model 1344). An additional four tracks are used as alternates. Utilization of this first word for identification purposes diminishes the per sector availability of data words to 320; therefore I transmission of full sectors of data is performed in units of this amount. Calling Sequence BSI BULKA BULKA DC LIST REF LIST AREA OPCOP DC 0 LINK/BUSY DC OPCop o IF NOT TYPE 2 EXIT BSS 4 SYSTEM RESERVED 1 to 4 DC 0 ERROR PARAMETER DC /XXXX CONTROL PARAMETER DC AREA I/O AREA ADDRESS DC WDCT WORD COUNT DC SECAD SECTOR ADDRESS BSS WDCT DATA AREA DC o OP-COMPLETE SUBROUTINE ENTRY POINT MDX BSC 6.4-2 L OPCOP. 1 SET UP RETURN ADDRESS OPCOP EXIT BACK TO IOCR Revised Dec 70 ~~L~~~~ _ _- - - - - - - -_ _ _ _ _ _ _ _ _ _ _ _~ 88AOOl42A List Parameters: Link/Busy. Upon completion of the I/O call specified by the list, this parameter is set to zero. Link/Busy must be 0, /4400 or /4480 at the time the driver is called. Exit Type: If zero, this parameter indicates a type one (1) or type three (3) exit is to be made. If non-zero, it indicates a type two (2) exit is to be made and it contains the entry address of the operation-complete subroutine. System Reserved 1-4: These words are reserved for system use only. See basic calling sequence. Error Parameter: This parameter is set upon I/O completion to one of the following values: Value Revised Dec 70 Meaning 1 Succes sful completion of call 2 Device logically off-line 3 Device not-ready 4 Parity error 5 Write select 6 Data error 7 Data overrun 8 Seek error 6.4-3 ~~L~~~~ ---------------------~ __ 88A00142A Control Parameter: This parameter consists of four hexadecimal digits as defined below. Hexadecimal Digit 1. This digit defines the I/O operation and must be set to one of the following values: Value o Meaning Put device in on-line or off-line status (see hexadecimal digit 2). 1 Read. Positions the access arm and reads data into the user's I/O area until the specified number of words have been transmitted. Although sector identification words are read and checked for agreement with expected values, they are neither transmitted to the I/O data area nor are they counted in the tally of words read. If during the reading of a sector a read check occurs, the operation is retried a maximum of 15 times. If the error persists, the function is discontinued, and the error parameter is set in the I/O list. 6.4-4 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ Value Meaning 2 88A00142A Write without readback check. The function is the same as write with readback check I except that no readback check is performed. 3 Write with readback check. This function writes the contents of the indicated I/O data area into consecutive disk sectors. Writing begins at the designated sector and continues until the specified number of words has been transmitted. A readback check is performed on the data written. If any errors are detected, the operation is retried a maximum of 15 times. If the function cannot be completed in 15 trie s I the ERROR PARAMETER is set in the I/O LIST. 4 Write immediate. Writes data with no attempt to check for hardware errors. This function is provided to fulfill the need for more rapid writing to the disk than is provided in the previously described write function. The primary application of write immediate is in the 'streaming' of analog Revised Dec 70 6.4-5 ~G~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Meaning Value 4 (continued) input data to the disk for temporary bulk storage. 5 Seek. Initiates a seek as specified by the seek option digit. If any errors are detected the operation is retried a maxi- I mum of 15 times. Hexadecimal Digit 2. When digit 1 is zero (0) I this digit specifies whether the device is to be put on-line or taken off-line. o- take device off-line 1 - put device on-line If digit 1 specifies a seek (function code 5) then digit 2 specifies the seek option. If zero, a seek is executed to the cylinder whose sector address is in the disk I/O area control word. If non-zero I a seek is executed to the next cylinder toward the center, regardless of the sector address in the disk I/O area control word. The seek option is valid only when the seek function is specified. NOTE The seek function requires that the user set up the normal I/O area used. The I/O area control word (first word) is ignored. 6.4-6 Revised Dec 70 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Area Parameter: The I/O area parameter is the addres s of the first word of the user's I/O area. The first word contains a count of the number of data words that are to be transmitted during the disk operation. This count need not be limited by sector or cylinder size and cylinder boundaries I I since the BULKN subroutine crosses sector if necessary I in order to process the specified num- ber of words. The second word contains the sector address where reading or writing is to begin. Following the two control words is the users data area. No chaining of disk I/O area is permitted. Operation-Complete Subroutine: There is one parameter passed to the user's operation-complete subroutine and that is the address of the list most completed. Revised Dec 70 6.4-7/8 ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A APPENDIX A DISK SECTOR MAP FILE ALLOCATED SECTORS EFFECTIVE SIZE DC 100 - 2FF 2560 binary cards LB 300 - 4FF 2560 binary cards WC 500 - 57F 640 binary cards WB 580 - 5FF WS 600 - 8FF 640 binary cards 11,500 1 ASCII cards DS 900 - FFF 27,000 1 ASCII cards UL 1000 - 10FF 1,280 binary cards DP 1100 - l1FF 1,280 binary cards or 4,000 1 ASCII cards DK DJ 1200 - 12FF 1300 - 13FF 256 sectors 3840 ASCII cards Sectors 0 - FF are for system use only. Sectors 1400 - 1 F3Farc available to the user. 1 Approximate number of cards. Revised Dec 70 A-1/A-2 ~~L~~~~ ----------~----------~ __ 88A00142A APPENDIX B STANDARD CHARACTER CODES The ASCII c·odc is an eight-bit code, represented in this table by hexadecimal digits. Although the printer recognizes a six-bit code (that is. ignores the two high-order bits of the eight-bit ·code ),. the codes are represented in this table by hexadecimal digits. Graphic ASCII or Control (Hexadecimal) NULL 81 EOA 82 EOM 83 84 WRU H. Tab 85 86 87 88 89 Line Feed 8A V. Tab Form 8B 8e Foy,,,, Return 8D cl( SO 8E 8F RU BELL FE SI DCO ((l, ((Arr,P" ;"'J)} ~ Tape Aux. On 92 X-Off 93 Tape Aux. Off 94 Error Sync 95 96 l.EM 97 .So~ SO 98 99 t~l,..,/.i".,tG" 9A 5] 9B 9C 91) sot 55 56 S7 9E 9F f,t~lP (' :' TUfJ/ -F-o-rTCt?;+_·· __·.d I? 90 91 S2 ~ T;4A If X-On Sl (Hexadecimal) 80 SOM EOT Printer Hollerith ~. /","' .... $pr .,. 1/ f.·"-{f!' 1Ii:;,' f·e. (/~I" fAsr f J/ vQ . !(../t!!i.;/ ~.,!" .t/,~ k .t~~:/ /}I/"I; f~ #1 IJ· t (!i!JJ GENERAL AU~OMATION. INC. 88AOO142A , Graphic or Control ACK Al t. Mode Rubout ASCII (Hexadecimal) ) FC FD FF Al A2 A3 A4 A5 A6 A7 A8 A9 * AA + AB AC AD AE AF BA BB BC BD BE BF DB # S % & ( I < > ? [ \ DC ] 0 DD DE DF CO AO BO 1 Bl 2 B2 t +- @ blank 3 83 4 84 B5 n6 87 5 6 p, Hollerith IBM 026 IBM 029* 5-8 7-8 3-8 0-4-8 12 5-8 12-5-8 11-5-8 12-6-8 2-8 12-4-8 6-8 0-6-8 0-7-8 4-8 11-2-8 0-5-8 0-7-8 11-3-8 11-7-8 12-7-8 4-8 0-4-8 12-4-8 11-4-8 12 0-3-8 11 12-3-8 0-1 5-8 11-6-8 12-6-8 3-8 6-8 12-2-8 12-5-8 0-6-8 11-5-8 7-8 2-8 0-2-8 No Punch 0 I 2 3 4 5 6 7 Printer (Hexadecimal) El E2 E3 E4 E5 E6 E7 E8 . E9 EA EB EC ED EE EF FA FB FC FD FE FF DB OC DD DE DF CO EO FO FI F2 F3 F4 F5 F6 F7 '" MUST BE USED WITH DBOS /1-2 L ~G~L~~~~ _ _---------------------~ BBA00142A Graphic or Control ASCII (Hexadecimal) Printer (Hexadecimal) Hollerith ~ 8· 9 A B C D E F G H I J K L M N 0 P Q R S T U V W X y Z B8 B9 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CO CE CF 00 01 02 03 04 05 06 07 08 09 OA 8 9 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 F8 F9 Cl C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CO CE CF DO D1 D2 03 04 05 06 07 08 09 OA n-J/LJ-4 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A APPENDIX C EBCDIC DECIMAL EQUIVALENCE These values may be used by the Fortran programmer for character checking. FILL EBCDIC Character Low ~ 2-0) A B C D E F G H I (11- 0) J K L M N 0 P Q R S T U V W X y Z NICOMP Decimal Eguivalence -16320 -16064 -15808 -15552 -15296 -15040 -14784 ~14528 -14272 -14016 -12224 -11968 -11712 -11456 -11200 -10944 -10688 -10432 -10176 -9920 -7616 -7360 -7104 -6848 -6592 -6336 -6080 -5824 C-1 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A FILL EBCDIC Character Low 0 1 2 3 4 5 6 7 8 9 NICOMP Decimal Equivalence -4032 -3776 -3520 -3264 -3008 -2752 -2496 -2240 -1984 -1728 Q) t) s::Q) ::l 0- blank (period) <(less than) 01 ( Q) CI) s:: • .-f -4-' co ........ ........ + & 0 U $ s:: * • .-f "0 Q) -4-' -(minus) .....CJl / ~ it ~ High % @ I (apostrophe) = C-2 16448 19264 19520 19776 20032 20544 23360 23616 23872 24640 24896 27456 27712 31552 31808 32064 32320 ~~L~~~~ _ _- - - - - - -_ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A APPENDIX D FORTRAN EXECUTION (RUNTIME) ERRORS FORTRAN execution errors are classified into two categories; those which cause a run to be aborted and those which are logged but processing is allowed to continue. In either case a message is output to OM which identifies the error, the subroutine and associated variables. This message takes the form: **ERROR NUMBER IN NAME UP TO 8 VALUES Table D-l details the error message and system affect for each logable error. Table D-l In Routine Abort Values No Yes Yes Yes Yes Yes Yes No Variable 1 COMGO LUCS BCKSP DSKIO DSKIO DSKIO DSKIO FRMAT 2 FRMAT No 3 FRMAT No No. 1 1 1 1 2 3 4 Revised Dec 70 File No. - Rec.No Format address, buffer pointer, terminal character Same as 1 FRMAT Same as 1 FRMAT Reason Variable range error Conflict in logical unit usage Bad binary record File not defined No files defined Too many arguments Illegal record number Buffer exceeded on input (the variable s listed are output for all FRMAT errors) . Buffer exceeded on output Input exponent >99 D-l ~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Table D-l. (continued) In Routine Abort Values 4 FRMAT No 5 FRMAT No 6 FRMAT No 7 FRMAT No 16 FRMAT Yes UNFMT Yes Same as 1 FRMAT Same as 1 FRMAT Same as 1 FRMAT Same as 1 FRMAT Same as 1 FRMAT Data count, block count No. 1 D-2 Reason Real data in integer field Integer too large on input Exponent overflow on input Exponent underflow on input Argument has no format Too many arguments Revised Dec 70 _~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A APPENDIX E FORTRAN COMPILATION ERRORS All FORTRAN compilation errors cause an abort situation. No binary output is generated and any attempt to build a program subsequently will result in a Proce s sing Error. Table E-I FORTRAN Error Codes Error Number Cause of Error CI Non-numeric character in statement number. C2 More than five continuation cards, or continuation card out of sequence. C3 Syntax error in CALL LINK or CALL EXIT statement or END statement mis sing. C4 Undeterminable CS Statement out of sequence. C6 Statement following STOP, RETURN, CALL LINK, CALL EXIT, GO TO, IF, does not have statement number. C7 Name longer than five characters, or name not starting with an alphabetic character. C8 Incorrect or missing subscript within dimension information (DIMENSION, COMMON, REAL, or INTEGER). C9 Duplicate statement number. CIO Syntax error in COMMON statement. Revised Dec 70 I mis spelled, or incorrectly formed statement. E-l _~~L~~n~~ ____- - - -_______________ 88A001421\ Table E-l • (continued) Error Number E-2 Cause of Error CII Duplicate name in COMMON statement. Cl2 Syntax error in FUNCTION or SUBROur INE statement. Cl3 Parameter (dummy argument) appears in COMMON statement. Cl4 Name appears twice as a parameter in SUBROUTINE or FUNCTION statement. Cl6 Syntax error in DIMENSION statement. Cl7 Subprogram name in DIMENSION statement. Cl8 Name dimensioned more than once first appearance of name. C19 Syntax error in REAL C20 Subprogram name in REAL or INTEGER statement. C21 Name in EXTERNAL which is also in a COMMON or DIMENSION statement. C22 IFIX or FLOAT in EXTERNAL statement. C23 Invalid real constant. C24 Invalid integer constant. C25 More than 15 dummy arguments or duplicate dummy arguments in statement function argument list. C26 Right parenthesis missing from a subscript express ion. C27 Syntax error in FORMAT statement. C28 FORMAT statement without statement nUlT,ber. C29 Field width specification greater than 145. I I or not dimensioned on INTEGER, or EXTERNAL statement. I Revised Dec 70 ~~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ __ 88A00142A Table E-l. (continued) Error Number Cause of Error C30 In a FORMAT statement specifying E or F conversion, w greater than 127, d greater than 31, or d greater than w, where w is an unsigned integer constant specifying the total field length of the data and d is an unsigned integer constant specifying the number of decimal places to the right of the decimal point. C31 Subscript error in EQUIVALENCE statement. C32 Subscripted variable in a statement function. C33 Incorrectly formed subscript expres sion. C34 Undefined variable in subscript expres sion. C35 Number of subscripts in a subscript expression does not agree with the dimension information. C36 Invalid arithmetic statement or variable; or, in a FUNCTION subprogram, the left side of an arithmetic statement is a dummy argument (or in COMMON). C37 Syntax error in IF statement. C38 Invalid expres sion in IF statement. C39 Syntax error or invalid simple argument in CALL statement. C40 Invalid expression in CALL statement. C41 Invalid expression to the left of an equal sign in a statement function. C42 Invalid expression to the right of an equal sign in a statement function. C43 If an IF, GO TO, or DO statement, statement number is missing invalid, incorrectly placed, or is the number of a FORMAT statement. C44 Syntax error in READ or WRITE statement. Revised Dec 70 E-3 _~~L~~~~ --------------------~ __ 88A00142A Table E-l. (continued Error Number E-4 Cause of Error C46 FORMAT statement number missing or incorrect in a READ or WRITE statement. C47 Syntax error in input/output list; or an invalid list element; or, in a FUNCTION subprogram, the input list element is a dummy argument or in COMMON. C48 Syntax error in GO TO statement. C49 Index of a computed GO TO is missing, invalid, or not precedec by a comma. C51 Incorrect nesting of DO statements; or the terminal statement of the associated DO statement is a GO TO, IF, RETURN, FORMAT, STOP, PAUSE or DO. C52 More than 25 nested DO statements. C53 Syntax error in DO statement. C54 Initial value in DO statement is zero. C55 In a FUNCTION subprogram the index of DO is a dummy argument or in COMMON. C56 Syntax error in BACKSPACE statement. C57 Syntax error in REWIND statement. C58 Syntax error in END FILE statement. C59 Syntax error in STOP statement or STOP statement in process program. C60 Syntax error in PAUSE statement. C61 Integer constant in STOP or PAUSE statement is greater than 9999. Revis ed Dec 70 ~~~L~~~~ _ _- - - - - - - - - - - - - - - - - - - - _ 88A00142A Table E-l. (continued) Error Number Cause of Error C62 Last executable statement before END statement is not a STOP, GO TO, IF, CALL EXIT or RETURN. C63 Statement contains more than 15 different subscript expression:: • C64 Statement too long to be scanned due to compiler expansion of subscript expressions or compiler addition of generated temporary storage locations. C65* All variables are undefined in an EQUIVALENCE list* C66* Variable made equivalent to an element of an array, in such a manner a s to cause the array to extend beyond the origin of the COMMON area* C67* Two variables or array elements in COMMON are equated, or the relative locations of two variables or array elements are assigned more than once (directly or indirectly)* C68 Syntax error in a EQUIVALENCE statement; or an illegal variable name in an EQUIVALENCE list. C69 Subprogram does not contain a RETURN statement, or a mainline program contains a RETURN statement. C70 No DEFINE FILE in a mainline program which has disk READ, WRITE or FIND statements. C71 Syntax error in DEFINE FILE. C72 Duplicate DEFINE FILE, more than 75 DEFINE FILES, or DEFINE FILE in subprogram. C73 Syntax error in record number of READ, WRITE statement. C74 INSKEL COMMON referenced with two word integers. Revis ed Dec 70 I or FIND E -5 _~G~L~~~~~_---------_____________~I/ 88A00142A Table E-1. (continued) Error Number * E-6 Cause of Error C75 Syntax error in data statement. C76 Names and constants in a data statement not one to one. C77 Mixed mode in data statement. C78 Invalid hollerith constant in a data statement. C79 Invalid hexadecimal specification in a data statement. C80 Variable in a data statement not used elsewhere in the program. C8l Common variable loaded with a data specification. C82 Data statement too long. The decis ion of a code 65, 66 or 67 error prevents any subsequent detection of any of these three errors. Revised Dec 70 ~~L~~~~ ---------------------~ __ 88A00142A APPENDIX F DBa'S LOGICAL UNIT ASSIGNMENTS STANDARD ASSIGNMENT (FILE) (SEE FILE NAMES, TABLE 2-2) NUMBER NAME USAGE 0 CC Control Command Input TY (Teletype Keyboard) 1 SI Symbolic Input CR (Card Reader) 2 SO Symbolic Output WS (Working Symbolic File) 3 BI Binary Input WB (Working Binary File) - 4 BO Binary Output WB (Working Binary File) 5 LO Listing Output LP (Line Printer) 6 IS Intermediate Symbolic WS (Working Symbolic File) 7 OM Operator Messages TY (Teletype Printer) 8 CI Core Image Data WC (Working Core Image File) 9 LB Binary Library LB (Directoried Library File) 10 SL System Log LP (Line Printer) 12 SB Secondary Binary Library CR (Card Reader) 11 UL User Library UL (Directoried User Library File) 13 User Disk Temporary DK (Unformatted Disk I/O File) 14 User Packed Disk Temporary DP (Disk) 15 NO NO (Delete I/O) Revised Dec 70 F-l/2 ~~L~~~~ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ 88A00142A APPENDIX G DBOS FILE NAMES AND DESCRIPTION NAME USAGE DEVICE DS1 Disk Directoried source language program data LB2 Disk Directoried binary object subroutine library UL 2 Disk Directoricd user binary object subroutine library. DC 3 Disk Directoried core image program data DJ1 Disk Directoried job string file 1 Disk Working source language data WB 2 Disk Working binary object data WC2 Disk Working core image data CR Clrd Reader ASCII or binary card input CP Cud punch ASCII or binary card output LP Line Printer ASCII listing output TY Teletype ASCII or binary teletype input/output PR Paper Tape Reader ASCII or binary high-speed paper tape Input pp Paper Tape Punch ASCII or binary high-speed paper tape output DK3 Disk ASCII or binary disk sector IIIput/outpllt IW 2 I )isk ASCII or binary logical pat hd disk Inpllt/olltput NO NllIll' Delete illpll t 01 Olltpllt WS ASCII l:harartn strtll.,. IW I:haral:tcr rl'lords. Data type A ill tile mOlnipulal\on commands. 2 hlllary objcl:t formal ')4 word records. DoH,l type B II. file m;mipulatlOIl (olllmands. Biliary data ill \20 word rl'(ord form. Revised Dec 7' G-l/2
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2013:09:17 11:11:02-08:00 Modify Date : 2013:09:17 11:59:08-07:00 Metadata Date : 2013:09:17 11:59:08-07:00 Producer : Adobe Acrobat 9.55 Paper Capture Plug-in Format : application/pdf Document ID : uuid:c42a2fd7-0acd-6c49-b9b4-2ff396ef8316 Instance ID : uuid:d5d347ab-8d43-f043-98a9-984be89879c9 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 291EXIF Metadata provided by EXIF.tools