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 PDF.
Page Count: 291

Download88A00142A-B_GA1830_Disk_Based_Operating_System_Dec70 88A00142A-B GA1830 Disk Based Operating System Dec70
Open PDF In BrowserView 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

N3.

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                      : 291
EXIF Metadata provided by EXIF.tools

Navigation menu