best available copy - dtic · 2018-11-09 · cobol compiler whereas the second set of three...
TRANSCRIPT
MOBILE
A MOBIDIC COBOL COMPILER
SECOND QUARTERLY PROGRESS REPORT
1 May 1962 to 1 October 1962
"Signal Corps
cTechnical Requirements
SCL-2101N
Contract No. DA-36-039-sc-89231
Submitted by: _____ ____ _____ __"_
F. W. Jerxis, jr., MwanagerMOBIDIC P+ojects
Best Available Copy
SYLVANIA ELECTRONIC SYSTEMS--EAST
SYLVANIA ELECTRONIC SYSTEMSA Division of Sylvania Electric Products Inc.
189 B Street-Needham Heights 94. Massachusetts
II3IIIII
QUALIFIED REQUESTORS MAY OBTAIN COPIES OF THIS REPORTFROM ASTIA. A�TIA �tELEA5E TO OTS NOT AL'THORI1ED. � �
IIIIIII
k
II
ITABLE OF CONTENTS
Section Pag
LIST OF ILLUSTRATIONS vii
LIST OF TABLES vii
I PURPOSE 1-1
II ABSTRACT 2-1
III PUBLICATIONS, LECTURES, REPORTS AND CONFERENCES 3-1
IV FACTUAL DATA 4-1
4.1 General Description 4-1
4.2 System Flowcharts and Table Description 4-1
4.2.1 Assembly Programs and Languages 4-1
4.2.1.1 DUST 4-1
4.2.1.2 94AP 4-2
4.2.1.3 MAP 4-2
4.2.1.4 MODAL 4-2
4.2.1.5 CAP(S) 4-2
1 4.2.1.6 MUST 4-34.2.2 Relationship of Languages and Assemblers 4-3
4.3 Run Modification Descriptions 4-4
4.3.1 Run 1. 0 Modifications 4-4
4.3.2 Run 1. 1 Modifications 4-5
4.3.3 Run 1. 2 Modifications 4-6
4.3.4 Run 1. 3 Modifications 4-7
4.3.5 Own Code General Discussion 4-10
4.3.5.1 ENTER Declarative 4-10
4.3.5.2 Own Code Formats 4-10
4.3.5.3 Own Code Implementation 4-11
1 4.3.5.3.1 Pass I 4-11
4.3.5.3.2 Pass I 4-12
1 4.3.5.3.3 Pass III 4-12
II Q 63 -4N iii
TABLE OF CONTENTS (Cont.)
Section Pag
4.3.5.4 Own Code Restrictions 4-13
4. 3. 5. 5 Own Code Tables 4-14
4.3.5.5.1 OWlN 4-14
4.3.5.5.2 NONE 4-15
4.3.5.5.3 PSIN 4-15
4,3.5.5.4 OCIN 4-16 14. 3.5.6 Instruction Field Interpretation 4-17
4.3.5.6. 1 Group 1-Internal Instructions 4-18 j4.3.5.6.2 Group 2-Pseudo Instructions 4-19
4.3.6 Run 2 Modifications 4-25
4.3.6.1 Former Function 4-25
4. 3.6.2 Modified Function and Internal Sort 4-25Description ]
4. 3. 7 Fun 4 Modifications 4-32
4.3.8 Run 3 Modifications 4-33
4.3.8.1 Run 3 Service Routines 4-33
4.3.8.1. 1 Purpose 4-33 14.3.8. 1. 2 Input 4-33
4.3.8. 1, 3 Method 4-33 -
4.3.8. 1. 4 Output 4-35
4. 3. 8.2 Input-Output Generator 4-36
4.3.8.2.1 Purpose 4-36
4.3.8.2.2 Input 4-37 -14.3.8.2.3 Output 4-37
4.3.8.2.4 Input-Output Generator 4-38Segments
4.3.8.2. 5 Description of the Five 4-39Segments of I/O Generator
4.3.8.3 Modification of the Non I/o Generators 4-41
4.3.8.3. 1 The ACCEPT Generator 4-41
!
iv Q63-4N
II
TABLE OF CONTENTS (Cont.)
Section Page
4.3.8.3.1.1 Purpose 4-41
4. 3. 8.3.1.2 Input 4-41
4.3.8.3.1.3 Method 4-41
4.3.8.3.1.4 Generator 4-42Processing
I 4.3.8.3.2 The DISPLAY Generator 4-43
4.3.8.3.2. 1 Purpose 4-43
4.3.8.3.2.2 Method 4-44
4. 3. 9 Run 5 Modifications 4-46
I 4.3.9.1 Former Function 4-46
4.3.9.2 Modified Function 4-46
4. 4 Tape Allocation and Usage 4-47
4. 4. 1 Current Tape Assignments and Usage at Compilation 4-48
4.5 Format and Usage of the Compiler Systems Tape 4-60
4.5.1 Contents of the Systems Tape 4-60
4. 5. 1. 1 Programs on the Systems Tape 4-601 4.5.1.2 Expansion 4-61
4.5.2 Header and Trailer Blocks 4-61
S4.5.2.1 Format of the Header and Trailer Blocks 4-61
4.5.3 Putting Programs On the Systems Tape 4-61
S4.5.3.1 Program Starting Location 4-62
V CONCLUSIONS 5-1
VI PROGRAM FOR THE NEXT PERIOD 6-1
VII IDENTIFICATION OF KEY PERSONNEL 7-1
S7.1 Key Technical Personnel 7-1
7. 2 Approximate Man-Hours Expended 7-1
APPENDIX A - RUN 1.0 PROGRAM LISTING
APPENDIX B - DISTRIBUTION LIST
[
[ Q63-4Nv
II
LIST OF ILLUSTRATIONS
Figure Page
4-1 Run 1. 3 - Procedure Division Analysis 4-8
4-2 Run 1. 3 - Segmentation In MOBILE 4-9
4-3 Own Code (Pass I) 4-204-4 Own Code (Pass 11) 4-214-5 Own Code (Pass III) 4•-23
4-6 Internal Sort Flowchart 4-27
4-7 Input-Output Tape Assignment At Compilation 4-50
4-8 Usage of Tape 4, 5 and 6 for Each Compilation Run 4-51
4-9 Tables on Input-Output Tapes at Compilation Runs 4-52ILIST OF TABLES
i Table Page
4-1 Information Required in Communication with Run 3 4-34
4-2 Detailed Use of Tape at Compilation 4-54
S Q63- 4N vii
II
SECTION I
S TPURPOSE
I 1.1 MOBILE, A COBOL COMPILER FOR THE DATA PROCESSING NEEDS OFTHE ARMY SIGNAL CORPS
I The objective of this procurement is to produce, for MOBIDIC computers
i (C, D, 7A) a COBOL compiler capable of accepting a Source Program written in
COmmon Business Oriented Language, and compiling an Object Program capable
I of being operated on the above computers.
This procurement will result in delivery to the U. S. Army Signal Corps
of a COBOL Compiler (MOBILE I) as specifically defined in Required-COBOL
1961 and with certain features as specified in Elective-COBOL 1961. The
MOBILE I Task is being implemented by the Applied Programming Department
I of the Programming and Analysis Laboratory.
II[I
II
I
I Q63-4N 1-1
SECTION II
I ABSTRACT
I The program during this reporting period included unit testing and the
beginning of package testing for the MOBIDIC MOBILE Runs. Runs, 1. 0, 1. 1,
2, 4, 5 and the Non I/O Generators are ready to begin or have begun package
Stesting. The segmentation of Run 1.3 and the I/O Generator is complete. New
coding is complete for the Sort Merge Routines. The following Areas are Covered
5 in this report:
* MODIFICATION OF RUNS
e *MOBILE I SYSTEMS TAPE
5 * TAPE ALLOCATION AND USAGE
I[!II!!!Ii Q63-4N 2-1
II[
SECTION III
I: PUBLICATIONS, LECTURES, REPORTS AND CONFERENCES
f 3. 1 PUBLICATIONS
None
3.2 LECTURES
I 1. Title: Introduction to COBOL
Lectures: Basic COBOL,I Practice problems and solutions
Location: Fort Monmouth, New Jersey
Date: 11 June 1962- 13 June 1962
2. Title: COBOL Training Course
Lectures: Detailed discussion of four main divisionsof COBOL Source Program and statementof practice problem.
Location: Fort Monmouth, New Jersey
Date: 6 August 1962 - 10 August 1962
1 3. Title: MOBIDIC MOBILE I, a COBOL compiler
Lectures A discussion of the phases and functions ofthe MOBIDIC MOBILE compiler
Location: Fort Monmouth, New Jersey
Date: 16 August 1962I3.3 REPORTS
1 . Monthly Letter Report 1 June 1962
2. Monthly Letter Report 28 June 1962
S3. Monthly Letter Report 30 July 1962
4. Monthly Letter Report 7 September 1962
I3[tI Q63-4N 3- 1
3.4 CONFERENCES
1. Date: 28 May 1962
Location: Fort Monmouth, New Jersey
Participants: Signal Corps, Sylvania
Subject: Overall Project Status
2. Date: 21 June 1962
Location: Sylvania, Needham
Participants: Signal Corps, Sylvania
Subject: Acceptance Testing
3. Date: 13 August 1962- 15 August 1962
17 August 1962
Location: Fort Monmouth, New Jersey
Participants: Signal Corps, Sylvania
Subject: Possible Solutions of Acceptance TestProblem
4. Date: 23 August 1962
Location: Sylvania, Needham
Participants: Signal Corps, Sylvania
Subject: Overall Project Status
5. Date: 28 August 1962
Location: Sylvania, Needham
Participants: Signal Corps, Sylvania
Subject: Overall Project Status
3-2 Q63-4N ri
i
I SECTION IVI FACTUAL DATA
* 4.1 GENERAL DESCRIPTION
Further development of the MOBIDIC MOBILE I Compiler and its
I current status are described in detail in this section. The task breakdown
is as follows:
* Description of Run Modifications
e Auxiliary program descriptions
1 4.2 SYSTEM FLOWCHARTS AND TABLE DESCRIPTION
The reader is advised to read the System Flowchart and Table
Descriptions of the 1st Quarterly Progress Report in conjunction with the
Run Modifications described in Section 4.3.
4. 2. 1 Assembly Programs and Languages
I Since mnemonic name& and symbols are inherent in programming,
it is appropriate at this time to describe briefly some of the Assembly
I Program and Languages used during this contract period. The first three
Assembly Programs (DUST, 94AP, and MAP) are not contained in the
COBOL Compiler whereas the second set of three Assembly Programs
and Programming Language (MODAL, CAP, and MUST) is part and
parcel of the COBOL Compiler.
4.2.1. 1 DUST
DUST is the mnemonic name for the MOBIDIC D Unlimited Symbol
Table Assembly Program. This assembly program was adapted from the
9400 Assembly Program for use on the MOBIDIC D computer. It is a
more powerful and versatile assembler than MAP. A complete description
of the features of DUST can be found in Sylvania Memo MC-TP-233.
4: Q63 -4N 4- 1
4.2.1.2 94AP
94AP is the mnemonic name for the Sylvania 9400 Assembly Program.
This assembly program was developed by Sylvania for use on Sylvania's
9400 computer. The basic function of any assembly program is to convert
symbolic coding to the machine language and essentially, this is a one-to-one
conversion as opposed to a many-to-one co nversion inherent in compilers.
4.2.1.3 MAP
MAP is the mnemonic name for the MOBIDIC Assembly Program
designed and developed primarily for the MOBIDIC A computer by Sylvania
under Signal Corps contract. MAP can be used on the other MOBIDIC A
Computers, (e.g., C.& 7A). This assembly program is not as powerful -T
as 94AP or the DUST Assembler due to the limited hardware configuration .I
of the specified computer, (e. g., 8K core memory and two magnetic tape
units). ii
4.2.1.4 MODAL
MODAL is the mnemonic name for the MOBIDIC Assembly Language.
This programming language makes possible the insertion of symbolic coding finto COBOL statements in the Procedure Division through the ENTER option.
MODAL is a subset of the MOBIDIC instruction set. The difference is that -
in MODAL no I/0 instructions can be used and certain pseudo instructions
are not allowed. The final report will contain a complete listing of allowable
instructions. It should be noted that the format for ENTER generator is:
ENTER MODAL. '1This ties together the language and its use in COBOL.
4.2.1.5 CAP(S) ICAP is the mnemonic name for the Compiler Assembly Program which I
constitutes runs 7 and 8 of MOBILE. The assembly phase is part of any com-
pilation process which also includes card punching and listings. It can be said
that CAP is a much smaller version of DUST and performs the same basic functions.
4-2 Q63-4N
The user is not to confuse CAP with CAPS, the latter being the definition[ for the major input in the Assembly Phase (CAP) of the Compiler, Each CAPSconsists of two data words which are processed into one word in machine code.[4.2.1.6 MUST
[ MUST is the mnemonic name for the MOBILE Utility System Translatorprogram. The function of this program is to assemble in a special manner the[ various subroutines that are used as prepackaged object code for certain COBOLstatements. When it was realized that these prepackaged subroutines were allrelativized to the first location and that many addresses must be filled in at objecttime, it was clear that a special purpose assembly program was required, andMUST was developed. The third quarterly will contain a complete section describ-ing MUST and its operation.
S4.2. 2 Relationship of Languages and Assemblers
SOURCE LANGUAGE ASSEMBLER OBJECT LANGUAGE
S9400 94A P Machine CodeSymbolic[ Instructions
MOBIDIC DUST Machine CodeSymbolic orInstructions MAP* Machine Code
MOBIDIC MUST CAPSSymbolicInstructions
MODAL Runs 6, 7, 8 Machine Code
CAPS Runs 7, 8 Machine CodeIF
Not all symbolic instructions are acceptable
Q63-4N 4-3
4.3 RUN MODIFICATION DESCRIPTIONS
Run 1. 0 is complete and its program listing is available in Appendix A.
Modification on Runs 1. 3, 2. 4, 3 and 5 is described in detail in this section.
Below is a general outline of the Run modifications:
1. Run 1. 3 has been segmented into two sections, 1. 3A and1. 3B.
2. Run 2 has been modified to replace the binary sort withan internal sort. .1
3. Run 4 has been modified to provide compatibility with thecore memory capacity for the MOBIDIC Computer.
4. Run 3 modifications involves the Service Routines, seg-mentation of the Input/Output Generator, and the Non-Input/Output Generators.
5. Run 5 modification involves the use of the internal sort, areduction in the size of the input buffeir, and the additionof a merge phase. I
4. 3. 1 Run 1.0 Modifications
See Run 1.0 Listing in Appendix A. I
I|IIIII
4-4 Q63-4N J
,II 4. 3. 2 Run 1. 1 Modifications
I Modifications have been completed for Run 1. l.Modification was necessary
i due to the existence of several LXS instructions in the coding. All LXS instruc-
tions were changed to two LOD instructions. Any relative addressing using greater
than 12 bits were replaced by a CLA and RPA sequence. The main modification
was done in changing indexing instructions to make certain that they would exe-
I cute properly with the MOBIDIC 12-bit index registers.
3 The Hollerith to FIELDATA Routine (HFC3) was added to Run 1. 1. Pre-
viously it had been left in core memory by the Control Program. However, by
reading in HFC3 as part of the individual runs, it was found that the available
3 core memory space could be optimized.
IIII!III
I Q63-4N4-
4. 3. 3 Run 1. 2 Modifications
During this reporting time period, Run 1. 2 was completely debugged (with
simple addressing information). Following the completion of unit testing, Run 1. 2
was completely reassembled. Time then was spent debugging the new assembly
and preparing it for entrance into the compiler system for the first time. At this
point, there were many errors due to incompatability between Run 1. 2 and the
Control Program and other compiler runs. There were certain types of input
errors which were detected, but not corrected properly by Run 1. 2.
Once the incompatabilities were overcome and the system was running
smoothly, the remainder of the reporting period was spent in assembling and
debugging complex address functions.
-4
-T
.I
4-6 Q63-4N
I
4.3.4 Run 1. 3 Modifications
3 Because core memory is not large enough to contain all the environmental
data, Run 1.3 has been segmented into 2 sections, 1. 3A and 1. 3B. Now, the Data
I Name List is not in core during the operation of 1. 3A, but is available for 1. 3B.
The size of the running code has caused no trouble to date.
I 4.3.4. 1 Run 1.3A
The main function of 1. 3A is to scan the Source Program and produce a
new kind of temporary compressed generator call for use as input to 1. 3B. This
generator call contains the data-name, its character count, and its type, i.e.,
base name, subscript, or qualifier.
' 4.3.4.2 Run 1.3B
This segment of Run 1. 3 uses the now available Data Name List and the
I temporary Compressed Generator Calls produced in 1. 3A to make up the normal
Compresse.d Generator Calls. Run 1. 3B scans the Data Name List and obtains
I the location word for the data name entry in the temporary Generator Call. The
location word is then placed in the final Generator Call.
I 4. 3. 4. 3 Effects of the Segmentation
Subroutines PT160-168 of Run 1. 3A which analyze the input have been
changed. Subroutines PT164-PT166 are in Run 1. 3B. New coding has been added
to both segments to carry out the function of making up the new type generator
call as well as to effect a smooth transition from 1. 3A to 1. 3B. A completely new
PT166 has been written for 1. 3B that now includes PT167. PT167 as such, no
longer exists. A new PT164 has been written for 1. 3A and PT164 has been modi-
fied for 1. 3B.
F Additional core space was made available when all non-Procedure Division
words were removed from the Reserved Word List. Also, changes in the error
routines contributed extra space. Subroutines PT150 and PT154 have been re-
named PT180 and PT184, respectively.
[ Testing has begun on SUBSCRIPTed names and DECLARATIVES and analy-
sis of some of the PERFORM options has started.
Q63-4N 4-7
LEFT IN CORE MEMORY BY RUN 1.2
PT 175-195
OUTPUT GENERATORDATA NAME CALLS
LIST = SCRATCH PROCEDURETABLE ENTRIES
PRORAMTABLESAND
CONSTANTS
SVERB FORMAT
TABLES ANDWORD LISTS
PT151-159; PT180; PT184
SCANNING FAILUREOF SUBROUTINES
COBOL TEXT
PT160-PT170"ANALYSIS OF INPUT
1. VERBS2. KEYWORDS3. NOISE WORDS
DATA NAME LIST TEST
Figure 4-1. Run 1.3-Procedure Division Analysis
4-8 Q63-4N -'
I
I1.3A 1.311
I PROGRAM TABLES & CONSTANTS PROGRAM TABLES & CONSTANTS
IPT151-159; PT180; PT184 IN CORE MEMORY
SCANNING DATACOBTEXTI
I PT160-163; PT168-171; NEW CODING INTO CORE FROM TAPEfIAASIS OF "NNPU OUTPUT
GENERATOR CALLS
I PT175-179 PT!64-167; NEW CODING
I [~SCRATCH PROCEDUREJ SEAT CH NAME DT LISTTABLE ENTRIES SEARCH
NO DATA NAME
NEW CODING FOUND
I YES"NEW" OUTPUTI GENERATOR CALLS
FINAL LSGENERSCALLS;; ,,0
IPROGRAM RESULT:VERB FORMAT TABLES
WORD LISTS J FAILURE ROUTINES
II FAILURE ROUTINES
Figure 4-2. Run 1-3-Segmentation In MOBILE
III Q63-4N 4-9
4. 3. 5 Own Code General Discussion
The COBOL user may at times have difficulty in expressing in COBOL
those debugged assembly language subroutines which he desires to use. However,
the MOBILE system allows the user to include those assembly instructions called
"Own Code" in his COBOL Procedure Division to represent those subroutines.
This is done by means of the ENTER verb. The user must adhere to the own code
restrictions defined in 4. 3. 5. 4.
4. 3. 5. 1 ENTER Declarative
An ENTER Declarative is used to introduce a block of symbolic coding in
"Own Code" language into the COBOL Procedure Division. Each ENTER Declar-
ative occupies an entire Section in the Declarative area. The Section header con-
sists of the Section name, the keyword SECTION, followed by a period and then the
ENTER statement. The ENTER statement consists of the keywords ENTER
MODAL. The ENTER coding in "Own Code" language is executed only by a PER-
FORM verb in the Procedure Division which refers to the section name. The
"Own Code" instructions must begin on the line after the section header. The
keywords ENTER COBOL must follow the final "Own Code" instruction. The next
line must be either a new section header or the keywords, END DECLARATIVES.
4.3.5.2 Own Code Formats
"Own Code" may be used any number of times within the main body of a
COBOL Procedure Division or in the Declarative Section. Each time it is used
it must be preceded by the words ENTER MODAL and ended with the words ENTER
COBOL. The programmer must use the following formats.
The format for the ENTER MODAL is free form in that no fixed format is
assumed by the translation division of MOBILE.
The format for each "Own Code" instruction in an ENTER statement is .
fixed, however, as follows: *1
4-10 Q63-4N
I
I Column No. Item
1-6 COBOL sequence number7-12 Symbolic location14-19 Operation code21-76 Variable field and remarks77-80 Program Identification
The format for ENTER COBOL is:
I Column No. Item
1-6 COBOL sequence number14-24 ENTER COBOL
I 4.3.5.3 Own Code Implementation
The translation of "Own Code" instructions to CAPS is a three-pass as-
I sembly process. The instructions appear to Run 1. 4A as 14 word fieldata input
card images on magnetic tape. They are processed one at a time.
SAn ENTER USAGE will now be defined for future use as those "Own Code"
instructions bound in the beginning with the key words ENTER MODAL and in the
I end with the keywords ENTER COBOL. There may be many ENTER USAGES
within a COBOL program.
4.3.5.3.1 PassI
j During the first pass a Symbol table is created, andthe mnemonic opera-
tional codes within each image are converted to numeric. At the same time a
relative line counter is maintained within the Symbol table. The first three
words of each image are replaced by a two word CAP containing only CAP type,
op code, and part number.
The variable field within each image is scanned for two consecutive
I blanks which terminate the field. If they are found, the remainder of the card
image with the exception of the card count is discarded since it constitutes only
remarks which are not processed by the MOBILE system other than appearing
in the BSP listing. If they are not found, this means the variable field is con-
tinued on the next card image. Similar processing is done until card images for
I this ENTER USAGE have been exhausted or two blanks have been found.
!I: Q63-4N 4-11
Each processed card image along with the Symbol table, is now a pseudo-
CAP which is the main output of Pass I. Upon completion of Pass I, the Symbol table
is sorted on the characters of the name for use in Pass II.
4.3.5.3.2 Pass II
Each pseudo-CAP is now processed by passing its variable fields over the
Symbol table until either a match is found or the table has been exhausted. For
each match a Mobile Data operand for a self reference plus or minus, ('±), is
inserted into the CAP. If each variable field within a pseudo-CAP leads to a
match, a finished or complete CAP can be formed. If any variable field within
a pseudo-CAP leads to a no match, that variable field must be carried along with -.
its incomplete CAP to Pass III.
In either case each CAP must be headed by a literal name entry, to allow ".
it to go through the MOBILE system. Each block of CPS in turn must be headed
by a Generator Call header. When Pass II over the current ENTER USAGE has
been completed, one of three paths of processing must be followed:
1. If more ENTER USAGES exist, then Pass I and Pass IIprocessing over subsequent USAGES must be performed. -
2. If no more ENTER USAGES and no references to data-namesin Working Storage requiring a third Pass exist, Run 1. 4B isentered.
3. If no more ENTER USAGES but references to data-names in iWorking Storage reguiring a third Pass, then Pass III must beentered.
4.3.5.3.3 Pass III
During Pass III all incomplete CAPS, (those with variable fields)
are processed by passing them over the Data Name List as many times as there
are memory loads of Data Name List. This results in either finding a match or not.
For each match a unique location word for this data name in the Data Design
Table is obtained. The variable field is discarded and the location word is ap-
pended to its CAP. -!
For a no-match an entry is inserted into the BSP correction table using Jthe card count mentioned in Pass I. A mobile data operand specifying constant
4-12 Q63-4N
I
I zero is then inserted into that portion of the CAP to which the variable field
I belongs. The user can spot check his Assembly listings and binary patch where
necessary to avoid a recompilation.
Processing continues until all of the incomplete CAPS are converted into
either complete CAPS or CAPS with location words attached which require further
information in the form of data replies and hence are not yet complete.
In both cases a literal name header precedes each CAP and each outputE block of CAPS is headed with an ENTER generator call header. The exit to Run
1. 4B is then performed.
E 4.3.5.4 Own Code Restrictions
A. An ENTER MODAL may be used in a Declarative Section or in the Main Bodyof the Procedure Division. The only difference is that in the DeclarativeSection a Section name followed by the keyword SECTICN and a period mustprecede the key words ENTER MODAL for each ENTER USAGE.
K B. The Own Code instructions must begin on the next line after the ENTER MODALstatement, which can be ended by a comma, a period or a space. After thefinal symbolic instruction there must be a line which contains a COBOL se-quence number, and the keywords ENTER COBOL. The Procedure Divisioncontinues on the next line, starting in column 8 or 12 depending on whether anew Procedure name is given or the previous paragraph is continued.
I C. The formats described in 4, 3.5.2 must be followed.
D. Two consecutive spaces terminate the variable field, and anything whichfollows is considered to be remarks.
E. The Variable fields in "Own Code" may refer to symbolic locations withinits ENTER USAGE or to data names in the Working Storage Section of the
Data Division.
F. The variable fields in "Own Code" may not refer to data names, procedurenames, or special names used elsewhere in the COBOL Program other thanthose data names in Working Storage. References to symbolic locations in other
I ENTER USAGES are not allowed.
G. Whenever a qualified data name in Working Storage is referenced, one and onlyone space must precede and follow the keyword IN or OF.
H. Qualification of a data name in Working Storage, if necessary, must be usedbut unnecessary qualification is permitted but not advised.
I I. The pseudo-op ETC allowing continuation of the variable field across multiplecards is allowed. This will be useful in qualification of a Working Storagedata name.
I Q63-4N 4-13
J. References to data names in Working Storage with OCCURS clauses are notpermitted.
K. The "Own Code" user can only use the operational codes listed in Appendix B.
L. The variable field of an "Own Code" instruction can only contain numeric in-tegers or 30 character data names. Numeric expressions involving addition,subtraction, multiplication, division or exponentiation are not allowed.
M. In the use of the OCT pseudo-op only numeric integers can be used.
N. No Input-Output instructions are allowed.
4.3.5.5 OwnCodeTables
4.3.5.5.1 OWlNA. Table name - "Own Code".
B. Table symbol - OWiN, set by Run 1. 3.
C. No. of words/entry - 14 words.
D. No. of entries - one for each "Own Code" instruction usedwith an ENTER verb.
E. Table function - result of Hollerith to FIELDATA translation, [used by Run 1.4A.
F. Table format
word 1: COBOL sequence number or blank (05)word 2: Symbolic location or blank (05)word 3:
bits 1-6 Blank (05) ii7-24 Operation code
25-36 Blank (05)
word 4:
bits 1-12 Blank (05)13-36 1st four characters of variable field
word 5 to 13: Remaining characters of variable field,followed by remarks if any (6 characters/word)
word 14:
bits 1-12 Final 2 characters of variable field13-24 Binary card count ii25-36 Identification code-fieldata BB
ii
Note: First double 05 specifies termination of variable field.
4-14 Q63-4N
I
1 4.3.5.5.2 None
I A. Table name - Symbol Table
B. Table symbol - None assigned, core contained "Own Code".
C. No. of words/entry - 2
D. No. of entries - 1800 maximum, dependent upon number ofinstructions with symbolic locations.
E. Table function - used to convert "Own Code" instructions to* CAP instructions
F. Table format
word 1: Symbolic name in FIELDATA, right justified.Master space fill at left end (00).
* word 2: Relative line count of symbolic name.
4.3.5.5.3 PSIN
A. Table name - Pseudo-CAP
B. Table symbol - PSIN, assigned by Run 1.4A
C. No. of words/entry - dependent upon size of variable field
I D. No. of entries - one for each "Own Code" instruction
E. Table function - intermediate output of "Own Code" to CAPtranslation process
F. Table format
II word 1:
Sbits 1-3 CAP type 0, internal instructionbC 1, pseudo-op instruction
4-9 Machine instruction
I (=001 A portion
10-11, 13 Part number j 010 M portion= 100 I portion
1 12 Statement bit
S14-36 zero
word 2: zero
4S Q63 -4N 4-15.
word 3: 1bits 1-12 Card count
13-36 First four characters of variable field
words 4 to N: Remaining chiaracters of variable field(6 characters /word) I
4.3.5.5.4 OC 1N
A. Table Name - Own Code Generator Call
B. Table Symbol - OC1N set by Run 1. 4A
C. No. of words/entry - 3 or4 ID. No. of entries - variable
E. Table function - processed through the MOBILE system, 1resulting in CAP input to Run 8.
F. Table format Iword 1: Generator call header
bits 1-9 Generator name I10-19 Block number (for ordering of calls)20-27 Number of entries28-36 Item size
word 2: Generator call header
bits 1-21 zero22-36 OISN
word 3: Literal Name -
bits 1-3 Literal name key (011)4-11 Zero12-13 Number of words (10)14-36 Zero
word 4: CAP
bits 1-3 CAP type: 0, internal instruction I1, pseudo-op instruction
4-9 Machine instruction
-=001 A portion I10-11, 13 Part number 010 Mportion
100 1 portion
4-16 Q63-4N
I 12 Statement bit14 Zero
15 Decrement bit 0, increment1, decrement
I 16-36 Address portion
word 5: CAP
bits 1-15 CAP symbol16-36 Index-modifier portion
I word 6. Location word
bits 1- 3 Location word key (000)4-12 Jump word
13-19 zero20-24 DDT memory load number25-36 DDT relative address
Note: The above format of words 3 to 6 constitutes the internal equivalent* of a reference in "Own code" to a data name in Working Storage.
Words 3 to 5 are sufficient for a reference to a symbolic locationwithin this ENTER USAGE.
The appropriate format is repeated for each entry within thegenerator call.
4. 3. 5. 6 Instruction Field Interpretation
I The field interpretations are as follows:
A =Address field
I =ndex field
M = Modifier field
) = May be coded but not required
N = Octal integer
I Each "Own code" instruction results in a two word CAP of which only the
first word is given in the octal equivalent form. The second word is zero.
4III Q63-,4N 4-17
11Ti4.3. 5. 6.1 Group 1 - Internal Instructions
Title Field Interpretation CAP Equivalent
ADB A, (I), M 02 40000 00000
ADD A, (I), M 01 20000 00000
ADM A, (I), M 01 30000 00000
CAM A, (1) 01 10000 00000
CLA A, (1) 01 00000 00000
CLS A, (I) 01 40000 00000 -
CSM A, (I) 01 50000 00000
CYL A, (I) 03 50000 00000 -y
CYS A, (I) 03 40000 00000 ADVD A, (I), M 02 20000 00000
DVL A, (I), M 02 30000 00000 _"
HLT (A), (I), (M) 00 00000 00000
LGA A, (I) 00 30000 00000 1LGM A, (I) 00 20000 00000
LGN A, (1) 00 40000 00000 1LOD A, (I), M 05 10000 00000
LXS A, (I) 05 30000 00000
MLR A, (1) 02 10000 00000_MLY A, (I) 02 00000 00000
MOV A, (I), M 05 20000 00000
MSK A, () 05 50000 00000
NRM A, (I) 03 70000 00000
RPA A, (1) 05 40000 00000
RPT A, (I), M 00 10000 00000
SBB A, (I), M 02 50000 00000
SBM A, (I), M 01 70000 00000 1SEN A, (I), M 00 50000 00000
SHL A, (I), M 03 00000 00000
SHR A, (1) 03 20000 00000
SLL A, (I), M 03 10000 00000
SNR A, (I), M 00 70000 00000
SNS A, (I), M 00 60000 00000
4-18 Q63-4N
I
Title Field Interpretation CAP Equivalent
j SRL A, (1) 03 30000 00000
STR A, (Q) 05 00000 00000
SUB A, (I), M 01 60000 00000
TRC A, (I) 04 70000 00000
TRL A, (I), (M) 04 10000 00000
TRN A, (1) 04 60000 00000TRP A, (1) 04 40000 00000
TRS 04 20000 00000TRU A, (I), (M) 04 00000 00000
TRX A, I, M 04 30000 00000
TRZ A, (I) 04 50000 00000
4.3.5.6. 2 Group 2 - Instructions
I Title Field Interpretation CAP Equivalent
BES N 10 10000 00000
BSS N 10 20000 00000
OCT 1N 10 30000 00000
PZE A, I-M 10 50000 00000
MZE A, I-M 10 60000 00000
REM IGNORED
END IGNORED
!!IIIIi Q63-4N 4-19
~1
SREAD I "OWN CODE" '
BLOCK FROM TAPE
CREATE SYMBOL TABLE IN "CORE USING SYMBOLICLOCATION IN "OWN CODE"
BLOCK
SCREATE A PSEUDO-CAP FOR
EACH "OWN CODE" BLOCK
CODAE? BLOCKS ONCD'CA E ON TAPE F B
NOOWSEUDOTCA OUTPUT ENTFFCOE
- i +
TABLE BUFFER ONTO ASTAPE
Figure 4-3. Own Code (Pass I)
4-20 Q63-4N
sR2
READ PSEUDO-CAPFROM TAPE
Al
J PASS ONE PSEUDO-CAPOVER REGULAR ASSEMBLYTABLES AND SYMBOL TABLE
REFERENCES NO CAP AND ATTACH AI \~~~~STORAGE? /KYFRRN
YES
A- FINAL PASS III
-I -i / OUTPUT /INSERT FINISHED OR
BUFFER NO INCOMPLETE CAP INTOFULL OUTPUT BUFFER
| ••YESI INSERT A GENERATOR
CALL HEADER AND AWRITE OUTPUT BUFFER
ON TAPE
i ~Figure 4-4. Own Code (Pass Hf)
i Q63-4N 4-21
A2PSEUDO CAPS SR2
,,,ON TAP
NO
'ON CODE" •YES SRIBLOCKS ON
INSERT A GENERATOR CALLHEADER AND WRITE OUTPUTBUFFER ON TAPE WITH EOF
± SIN DICATOR"', YES
_
RUN 1.4•B
Figure 4-4. Own Code (Pass II) (Cont.)
7
4-22 Q63-4N
I TISTI
I A3
SREAD IN A BLOCK
OF PSEUDO-CAPS
* A4
I MOVE ONE PSEUDO CAPTO PROCESSING BUFFERI
(FIND A MATCH OF YES CREATE A FINISHED
(VARIABLE FIELD NAMES CAP AND ATTACHfIN DATA NAME LIST A KEY FOR RUN 4
1 MAKE AN ERROR ENTRY1
SINTO BSP CORRECTION
I TABLE
I Figure 4-5. Own Code (Pass III)
i Q63-4N 4-23
OUTPUT YES OUTPUT BUFFER
BlU FýE R TAPE
MOVE CAP TOOUTPUT BUFFER
-i
N BLOCK
NO
YE
-T
f-IMORI E S•
NTAPE-"
Figure 4-5. Own Code (Pass Ill) (Cant.) I
:44 •I
4-24 Q6NO4
4.3. 6 Run 2 Modifications
4. 3.6. 1 Former Function
The primary function of Run 2 is twofold, sorting and merging. Minor
I editing is also done at this time. Associated with each generator call produced
by Run 1. 3 is a generator number. These generator numbers are serial numbers
assigned to each generator. The sort that occurs in Run 2 uses this generator
number as a key to arrange the generator calls such that all calls for the same
I generator occur simultaneously, and prior to the next generator.
i 4.3.6.2 Modified Function and Internal Sort Description
A major change has taken place in the use of an internal sort to replace
the "binary" sort. Each compressed generator call has an entry in a control
table. This table gives the size of the compressed generator call and its starting
location in core at the time of sorting. By using the "internal" or "in place" sort,
the buffer used by this control table during sorting is being halved. After the con-
trol table has been formed, any editing to be done is performed at this time. In
the internal sort, while the table is being examined and the compressed generator
call with the lowest serial number is being found, an exchange is made between
the first table entry and the entry for the generator call with the lowest serial
number. The generator withthe lowest serial number is then moved to the out-
I put buffer. Each time this output buffer is filled, (approximately 600 generator
calls) it is written on the appropriate tape. Tape 5 is the tape in this case. The
size of the table is decreased by one. The next lowest serial number is found,
and its entry exchanges places with the second table entry. This process con-
tinues in this manner until the control table is completely sorted.
I Another major change is in the size of the input buffer which has been
reduced considerably because of the decrease in available storage area. It is
j expected that there will be no more than two buffer loads of the size now available.
In this case, it was necessary to add another phase to Run 2, namely, the mergej phase. This is not a separate section of Run 2 but an integrated part of Run 2
Coding. If Run 2 control finds that the amount of information on Tape 5 will
j overflow the input buffer, an indicator is set, and the same internal sort explained
!i Q63-4N 4-25
above takes place on one buffer load. This sorted information is now written
as a string on Tape 6. Then the remaining generator calls are read into the in-
put buffer and a control table is set up for them.
The size of the table is increased by one. Before sorting the control
table, a block of Tape 6 is read into a separate area. (This block contains the
first string of sorted information mentioned previously). For the first generator
call from that block, a negative table entry -*. made to the control table. A pass
through the sort is made and the lowest entry is found.
If this is a positive entry, an exchange is made, the table size is decreased
by one, the compressed generator call is moved to be written on Tape 5, and a
return is made for another pass of the sort. If this is a negative entry, an ex-
change is made; the table size is not decreased by one; that the compressed gen-
erator call is moved to be written on Tape 5; a new negative entry is made from
the string on Tape 6 and takes the place in the table of the previous negative
table entry; and a return is made to the sort phase. When there are no more
positive entries or compressed generator calls from Tape 6, the last buffer load
is written out with the WRITE END OF FILE (WEF) set.
-4I
-T
4-26 Q63-4N +
RUN 2
I 042ST
INITIAUZEFOR PHAND PH1 2
BLOCKS ON MTGE NoO
R READONiT LOCK
S INITIALIZE
FOR PH 3
SET ~~ RD IND YE L $OK
I I OFt MT, I
EXCE D WRIT ON TP6FS ITIILI EM
EnTRY IN TAON
I
Figure 4-6~ C, MnTera 5otFowhr
II
I RD IND.TORTR70RA
IDO
Figure 4-6. Internal Sort Flowchart
IQ63-4N 4-27
RD INSCNDICWORDEFCIEDMD SHIFT
THIS YES OISNTO IGH RDE 6IT; ITIME R STINT 17 RESET, PSITIN ARUN ? SIT 3
ITEMS1I
Figure 4-6. Intrna Sort R Flwcatont.)TO RED IsEXCEDE P2 OI4-28I RDQNDCAORBEOR
( RD READ1 ILK PIROMSORTED
MT 6
I GET NO. OFITEMS'M
SGET STARTINGLOCATION &
SIZE OFONE ITEM
MAKE THISA NEGATIVEENTRY IN
TABLE
,PLACESORT
M
SORTN
YES
Is HAVESM LLEST MESIN
s I••'? BEE
NEGATIVE YES-6 THAT ALOCKEMTESTE
NO NO
MOVE INDICO M
I ITE4M -2
IIFigure 4-6. Internal Sort Flowchart (Cont.)
jQ63-4N 4-29
*1
-L
is Is
.1
, -I
ONSET INDCTO INICTDN N
MVWRT
INL
PLACE
SORTP 3"
Figure 4-6. Internal Sort Flowchart (Cont.)
4- 30 Q63-4N
I
SET UP LOOP WITHBEGINNING OF TABLEINDICATOR NO.OFITEMS IND.I
I?
USINO TAILE ENTRY
SCO CATE IRST WOR DIOF ECO ITEM
Ii
IIS PCOUND
IEXCANGE THAT ENTRYFORBEGINN1NG ENTRY
EXI
SFROM TABLE ENTRY
I GET LOCATION ANDSIZE OF ITEM
T•OI• THE FILL NEWE~
THS ITI RITE M ID AOBUFER
I Fgue46.In ernlSor Flwhat(Cn.
iMV THIS4 ITEM
4. 3. 7 Run 4 Modifications
Run 4 appends data replies to compressed generator calls produced by
Run 1. 3, thus forming complete generator calls. In addition, certain concomitant
functions are performed, including making entries to the Data Analyzer Table
for each appended data reply.
The 9400 version of Run 4 has been modified to accommodate the core .1
memory capacity of the MOBIDIC Computer. The modification consists of re-
ducing the size of certain buffer areas of core; replacing the "double" buffer .1technique by a "single" buffer technique for reading in and processing the com-
pressed generator calls.
4
I
!LI
I
1 4.3.8 Run 3 Modifications
I 4.3.8.1 Run 3 Service Routines
4.3.8.1.1 Purpose
I The main function of Run 3 is to read the generators into core, one at atime, feed the calls to the generators, one at a time, and accept output from the
I generators.
I 4.3.8.1.2 Input
1. Generator Calls-Variable length entries produced by Run 1.33 in response to verbs in the Source Program. They are sorted
by generator name and have all necessary data replies appended
i to them.
2. File Description Table-Produced by Run 1.2 for the I/O Gen-
erator. It contains information from the Environment and Data
Division concerning the files that have been selected by the Source
i Program.
3.. Address Variable Table- Produced by Run 4 and contains a list
of data-name subscripts in which changes to subscript values may
be noted.
4. File Table-Used by the I/O Generator and contains a one-word
entry for each file selected by the source programmer. It also
contains information from the Procedure Division regarding the
file Is use as input and output.
5. Control Block-Contains information from the Environment
Division about the source and object computers.
I 4.3.8.1.3 Method
Run 3 has a table in core to guide it in the selection of generators to process
the generator calls. This table has a one word entry for each existing generator.
A marker is inserted in this table to indicate which generators are required to
process the Source Program input. Run 3 also adds markers for generators re-
quired to process one cycle and two cycle calls.
II Q63-4N 4-33
The communication between Run 3 and the generators is identical for all
generators. Run 3 transfers to the generator from a calling sequence which re-
sembles: .1A TRL X GO TO GENERATOR 1
A+l HLT INPUT ADDRESS
A+2 HLT OUTPUT ADDRESS
A+3 RE TURN LOCATION
"X" is the first location in each generator. The initial entrance to each
generator comes at X.
When a generator wishes to return to Run 3, it transfers (with a TRL) .1to A+3. If the generator is returning to Run 3 in order to pass on some output,
it must first place the starting address of the output in A+2. For each transfer
to A+3 the generator must have previously loaded an indicator number into Index
Register 4 to tell Run 3 what the output is. If a new generator call or a new gen-
erator segment (I/O gen. only) is indicated, Run 3 will return to X. In the case
of a new generator call, the absolute address of the call will be in X+l. In all
other cases, Run 3 will return by the equivalent of a TRS instruction. In Table
4-1 is a list of the codes, return addresses and other information required in Icommunication with Run 3.
TABLE 4-1. INFORMATION REQUIRED in COMMUNICATION WITH RUN 3
Octal Code Return Reason for ReturnNO. in IR4 Address Run 3
0 C(PCS) XFISN table entry (7)
1 C(PCS) Constant table entry (1) (2) 12 C(PCS) Subroutine call (2)
3 C(PCS) Alter table entry (1) (2) (7) i
4 C(PCS) Link table entry (2)
5 C(PCS) Tape data table (2) (6)
6 C(PCS) Macro entry (2)
7 C(PCS) File requirement table entry(2) (6) II
4-34 Q63-4N
TABLE 4-1. INFORMATION REQUIRED
IN COMMUNICATION WITH RUN 3 (Cont.)
Octal Code Return Reason for ReturnNo. in IR4 Address Run 3
10 C(PCS) File data block (2) (6)
S11 C(PCS) One cycle generator call (2)
12 C(PCS) Complete generator call (2) (7)
S13 C(PCS) Junk Storage count (3) (7)
S14 C(PCS) Multiple file data table (2) (6)
15 C(PCS) Special storage count (3) (7)
116 Exit for new generator call (4)
17 1X" Exit for new segment (5) (6)
S20 C(PCS) Two cycle call (2) (7)
F (1) Constant or alter serial number which has been assigned by Run 3 will bej in the accumulator on return to the generator.
(2) Starting address of output item must be in A+2 when entering Run 3.
(3) A+2 contains the absolute number of locations required by the generator, tobe reserved in core during object running time for storage purposes.
(4) When all generator calls have been processed this exit will cause Run 3 toread in the next required generator.
(5) The desired segment must be indicated by putting a binary key in A+2.
(6) Used only by I/O Generator.
(7) Used only by non I/O Generators.
L 4.3.8.1.4 Output
1. Batch Generator Output -Contains macros and entries to five tables:
a. XFISNb. Constantc. Subroutine calld. Altere. Link
S•.This output is sorted by Run 5.
I Q63-4N 4-35
I
2. Tape Data Table -Produced by the I/O generator and is used at object Irunning time to keep track of tape usage by all files.
3. File Requirement Table-Produced by the I/O generator and contains
information used by Run 7 to set aside proper buffer space in the Object
Program for each file selected.
4. File Data Block-Produced by the I/O generator and is used by the object
I/O coding in keeping track of the usage of the files selected in the SourceProgram.
5. One Cycle Calls -Calls on a following generator which are saved by Run
3 until the required generator is in core.
6. Complete Generator Call-Calls which must be recycled to Run 2 for
resorting and through Run 4 for data replies.
7. Multiple File Data Table -Produced by the I/O Generator and is used by
the object I/O coding in keeping track of the usage of multiple file tape
if any were given in the Source Program.
8. Two Cycle Calls -Calls on a following generator which are saved by Run
3 until the required generator is in core. Calls for this group of gen-
erators can only be produced by other generators and not by any verb Iin the Source Program.
This describes the basic design of Run 3 for the MOBIDIC Computer. The
required changes of Run 3 of the 9400 MOBILE I have been made.
4.3.8.2 Input-Output Generator I4.3.8.2.1 Purpose
The task of the generator is to inspect those parts of the Source Program
relating to input-output operations and to take the action necessary to insure that
these operations will be performed in the Object Program. The Source Program I!is available to the generator in the form of compiler tables and the generator only
indirectly produces the actual coding of the Object Program by creating more in-
ternal table entries. These table entries cause later runs to generate the proper
machine coding. I
4-36 Q63-4N
I
I 4.3.8.2.2 Input
[ All the inputs to the generator are supplied by the Run 3 control program.
With the exception of the input-output generator calls, all inputs are already
[ available in core memory when the generator is first entered. Inputs are as
follows:
[ 1. File Description Table -This table contains information from the
Environment and Data Divisions of the Source Program concerning
[ the files that have been selected by the source programmer.
2. File Table -This table is made up of one word entries for each file[11selected" by the source programmer and contains information from
the Procedure Division regarding the file 's use as input and output.
S3. Multiple File Table-This table contains one entry for each "Multiple
File Tape Contains... " statement in the Environment Division of theS~Source Program.
4. Control Block-This table contains information from the Environment
[ Division about the source and object computers.
5. Compressed Generator Calls-These are variable length entries pro-
duced by Run 1.3 in response to I/O verbs in the Source Program.They are sorted in a special order and released to the generator, one
at a time, by the Run 3 control program.
4.3.8.2.3 Output
Outputs from the generator are all passed on to the Run 3 control program
via a calling sequence. They consist of one to three binary tables and various
-. internal table entries. The binary tables are to be placed into the Object Program
with no alteration. The various internal table entries will be used by later runs
[i to generate object coding and reserve the proper input-output buffer areas. Out-
puts are as follows:
- 1. TAPDAT Table-A table that will be used by the object I/O coding in
keeping track of tape usage by all files.
I.-SQ63-4N 43
S!
II
2. MFRDAT Table-A table that will be used by the object I/O coding
in keeping track of the usage of multiple file tapes if any were given
in the Source Program.
3. FILDAT Table-A table that will be used by the object I/O coding in 1
keeping track of the usage of the actual files selected in the Source
Program.
4. File Requirement Table-A table used by Run 7 to set aside the proper
buffer space in the Object Program for each file selected. i
5. Subroutine Calls -Variable length entries made to a table used by Run
6 to initiate the process by which precoded subroutines will appear in
the object coding.
6. Macros-Variable length entries made to a table used by Run 6 to jinitiate the process by which precoded instructions will appear in the
object coding.
7. One Cycle Generator Calls-Variable length entries made to a table
used by later (non I/0) generators, to produce coding not directly
associated with input-output. "1
8. Link Table Entries-Fixed length entries made to a table used by Run [6 in its optimization of the object coding.
9. Constant Table Entries-Fixed length entries made to a table used
by Run 6 to generate a constant "pool" in the object coding.
4.3.8.2.4 Input-Output Generator Segments A
Due to the size of the tables required by the generator, it has been neces-
sary to divide it into five sections, each of which will overlay the previous one.
There is no need for recycling, since each section is used once and only once.
Communication with Run 3 control is the same in all five sections and
through use of the prescribed calling sequence all five sections of the generator
will be entered at their first location.
All five sections have a short section of initialization coding which pre -
pares the section for communication with Run 3 control, and all five sections
4-38 Q63-4N
II
have a short subroutine which does the actual transfer of control to Run 3. This
eliminates the problem of initializing many locations and provides a uniform pro-
cedure for all transfers. Likewise, all five sections of the generator have a smallcontrol section which enters the various tasks of the section in a prescribed order,
I making each section modular and more easily alterable.
S4.3.8.2.5 Description of the Five Segments of I/O Generator
Segment 1
Segment 1 does not process any generator calls but merely creates certain
tables and does some preliminary work on the File Description Table. Tasks
I performed are as follows:
1. Assigns tape units to all files, checking for discrepancies.
2. Creates a TAPDAT table for Object Program.
3. Creates a MFRDAT table for Object Program if multiple file reel(s)are present.
4. Reduces all sizes of data in the File Description Table to words andcomputes sizes of desired buffer areas, current record areas, etc.,altering the File Description Table in so doing.
S5. Creates a File Requirement Table for Run 7.
6. Further alters the File Description Table by reducing label recordinformation.
Segment 2
I Segment 2 processes all the I/O generator calls, and produces all the
macros for the object coding, but does not produce any subroutine calls. All
other output used in later runs is produced in Segment 2. Tasks performed are
as follows:
1 I. Processes USE generator calls and constructs a table of USE FISNSassociated with label record USE procedures.
2. Processes USE generator calls and constructs a table of USE FISNSassociated with error USE procedures.
3. Processes OPEN INPUT, READ, OPEN OUTPUT, WRITE and CLOSEgenerator calls, producing a macro for each call and placing the
4I Q63-4N 4-39
names of the desired skeleton subroutines in a table to be passed on
to Segment 3.1.
4. Produces constant table entries where needed in macros.
5. Produces link table entries for all READ macros that have a conditionalfall through and a jump to another FISN.
6. Produces one cycle, special PERFORM generator calls to duplicateAT END procedures where they are not stated.
7. Produces one cycle, special MOVE generator calls to isolate valueof data-name in the WRITE record-name AFTER/BEFORE ADVANCINGdat4-name LINES.
8. Sets a special list in that file's File Description Table entry if any file
has a CLOSE File -name WITH LOCK statement.
Segment 3
Segment 3 produces subroutine calls only. Segment 3 uses the table of
subroutine names passed on from Segment 2 and produces a subroutine call for
each such subroutine name. Segment 3 has been further segmented in the follow-
ing manner:
Segment 3. 1 processes the table of subroutine names passed on from Seg-
ment 2 and produces a temporary subroutine call. This temporary subroutine
call includes all the necessary deletion words and the fixed header only. Segment f3. 1 also produces a temporary subroutine call for all other subroutines requiredby the subroutine originally requested by Segment 2. It is also the task of Seg-
ment 3. 1 to insure that only those subroutines designated "duplicatable" will
appear more than once in the Object Program. The temporary subroutine calls
are passed on to Segment 3. 2
Segment 3.2 fills out the temporary subroutine call provided by Segment
3. 1. Operands necessary for the subroutine being requested are appended tothe temporary subroutine call and the resultant subroutine call is given to Run
3 control to be passed on to Run 6.
Segment 4
Segment 4 produces the File Data Table only, from information in the
File Description Table.
4-40 Q63-4N
II
4. 3.8. 3 Modification of the Non I/O Generators
I The generators listed below have been modified for the MOBIDIC Computer:
MOVE ALL, SIMPLE PERFORM, ALTER, GO TO, EXAMINE, COMPLEX PER-I FORM, STOP and EXIT. Included below is a description of the implementation
of the ACCEPT and DISPLAY Generators for the MOBIDIC Compiler.
I 4.3.8.3. 1 The ACCEPT Generator
ACCEPT data -name FROM device -name.
i 4.3.8.3. 1. 1 Purpose
The ACCEPT generator processes the equivalent of a single ACCEPTstatement in the Source Program and determines the type of object code needed
to perform the input operations.
I 4.3.8.3.1.2 Input
S o The generator processes a single generator call one at a time. The body
of the call consists of the location word of the receiving area, an encoded keyword
corresponding to the devices (if the "device-name" clause is present), and a com-
[ plete description of the receiving area.
S 4.3.8.3.1. 3 Method (Object Code Subroutine Used)
All input-output orders will be executed by use of the Input-output sub-I routines which are inserted into the Object Program by the I/O Generator. The
Input-output routines are always entered at subroutine AUXSD1. In addition, the
[ ACCEPT generator may insert one of the following subroutines:
ACCPT 1
[ The ACCPT 1 subroutine initializes calling sequence to AUXSD1, and
delays return until Input-output indicates the release of the input data.
I ACCPT 2
The ACCPT 2 subroutine double-buffers reads of Hollerith cards, con-
verts the cards into FIELDATA and assembles data in the indicated receiving
area.
Q63-4N 4-41I
Both of these subroutines have the same calling sequence. The TRL loads
the count for acceptance to IR4. The word following the TRL contains the input
instruction with a sign mode indicator (ISN or NISN). In order to produce a MACRO
CALL for this calling sequence, the following information has to be extracted from
the generator call: Device Address (D), Count (C), Sign Mode (M), Receiving
Address (A), Instruction Code (I) and Subroutine (S).
4.3.8.3. 1. 4 Generator Processing
A. The data description of the receiving area is tested for the following
conditions.
1) If the data unit is synchronized.
2) If the starting bit is equal to zero and the size is a multiple of36 bits.
If either of the above conditions is true, an, indicator is set (IND) indicat-
ing that to read directly into the receiving area may be possible.
B. The encoded device from the generator call is compared to a table
containing the allowable devices, the actual machine address (D)
of each device, and a jump to a routine which will process this de-vice. The Word-Switch-Register (WSR) is not considered as a device.
C. Control is passed to the following process routines:
1) Word-Switch Register (WSR). A MACRO CALL is produced tosupply a calling sequence, HLT, CLA and WSR. Control is thenpassed to the PACK subroutine (see page 4-96 of the 1st QuartlyReport), to store the result.
2) Paper-Tape-Reader (PTR)
1. M is NISN
2. Base is binary, 1 = ROX (Read Octal) C = size in WORDS.Base is FIELDATA, I = RAN (Read Alphanumeric) f,C size in characters.
3. S=ACCOT 1
4. If IND is not set, a buffer is reserved in the OPEN storagewhich is equal to the size of the data unit, and A is equal tothe address of the buffer. If IND is set, A is equal to the ad- I!dress of the data unit.
4-42 Q63-4N
II
3) Card-Reader (CDR)-ISN
3 1. M a ISN
2. I=RAN
13. C size in cards
4. If IND is set and size is a multiple of card image, A isequal to the address of the card image, otherwise, a bufferis reserved.
[ 5. S = ACCPT 1
4) Card-Reader (CDR)
1 1. If the base of the field is binary, control is passed toCDR-ISN.
I 2. M = NISN
3. I1RAN
4. S ACCPT 2
[ 5. A is determined as in subsection 4.3.8.4.1.4 C.2.
6. C = size in cards.
[ D. After these routines have returned control to the main line generator,
the MACRO CALL for the calling sequence is produced (from A, I,
S, M, C), and a subroutine call is produced for S.
E. If the data has not been accepted directly into the receiving area,
!i control is passed to the PACK routine (see page 4-96 of the 1st
Quarterly Report), to move the data from the buffer area into the
correct location.
S 4.3.8.3.2 The DISPLAY Generator
4, 3.8.3.2.1 Purpose
j The DISPLAY generator resembles the ACCEPT generator in inpit, gen-
eral construction, output, and use of the Input-output subroutines. There are two
[ entrance points which correspond to the DSPLAY and STOP statements.
DISPLAY Entrance Point.
4I Q63-4N 4-43
Object Code Subroutines Used I i1. ACCPT 1
2. DSPLY 1
The DSPLY routine is a general double-buffered card punch
routine which assembles card images in binary in a card
buffer, converts them to Hollerith (if needed), and transfers
control to I/O for execution of the instruction. The calling
sequence for this routine is a TRL, with the number of
items to be displayed, loaded in Index Register 4, and
followed by one word for each item, containing the address
and size of that item. The size is in bits. Two entrance
points are associated with this routine, for either binary
or Hollerith.
4.3.8.3.2.2 Method
The encoded device from the generator call is compared to a table of
allowable devices. Control is transferred to the following devices for special 11processing.
Accumulator-By use of the ISOLATE subroutine, MACRO CALL will. be
produced to unpack the single item into the accumulator. This will be followed
by a HLT MACRO CALL. If the single item is an integer literal, it will be con-
verted to binary and entered into the constant table.
Line-Printer or Flexowriter-The object code will make use of the sub-
routine ACCPT 1. If any item is packed at object running time, in order to
be displayed directly on the device, a buffer area is reserved the size of which
is equal to the item. MACRO CALLS will be produced by ISOLATE to cause
the data to be moved to the buffer, and A is set equal to the buffer address. For
every item to be displayed, a calling sequence MACRO is created with the
following:
I = WOK (Write Octal) if base is binary.
I = WAN (Write Alphanumeric) if base is FIELDATA.
4-44 Q63-4N
[C size in words.
SM NISN
A final calling sequence will be requested which will write out a carriage
return. Literals are entered into the constant table in FIELDATA.
Paper-Tape-Punch-The processing is the same as the Flexowriter and the
Line-Printer, with no final carriage return.
Card-Punch-ISN-The DSPLY subroutine will be used by the object code.
This subroutine enters at the binary punch entrance point. As in FLX, a bufferis used as DISPLAY address for an item which cannot be displayed directly. One
word is included in the calling sequence for every item containing the address and
the size of the item. Literals are converted to binary and are entered into the
[ constant table.
Card-Punch-NISN-The processing is the same as CARD-PUNCH-ISN
[ except that if the base of the field to be displayed is FIELDATA, the object sub-routine will be entered at the Hollerith entrance point, and literals will remain
[ in FIE LDATA.
STOP: Entrance Point
F The Macros needed to display the correct item are supplied by theDISPLAY section. One of the following two MACRO CALLS is then produced:
Ii 1) If RUN option, HLT TRU * - 1 sequence requested.
1 2) If not the RUN option a simple HLT Macro call produced.
4
[[
[ Q63-4N 44
4 3.9 Run 5 Modifications
4. 3. 9. 1 Former Function
The primary function of Run 5 is twofold, sorting and merging. The pur-
pose of sort-merge is to rearrange the output of the generator calls in an orderthat will reflect the normal sequence of the running code and the correct tabular
form of certain generator output. Being sorted on their sequence numbers, the
MACROS, which will be converted to CAPS by Run 6, are put back into the order
prescribed in the Procedure Division. The keys for the sort will cause the entries
for the various tables to be grouped together properly.
4.3.9.2 Modified Function
The major changes made for Run 5 involve the use of the internal sort,
a reduction in the size of the input buffer, and the addition of a merge phase. ,i
The internal sort which replaces the "binary" sort is of the same type as thatused in Run 2. 1
The input which is read in from Tape 4 may be an entry for any one of the
following tables:
Tape for Number ofTable Key Symbol Output Output Words
1. Data Analysis 00 TK45 3 Variable2. Address Function Table 02 TX45 6 2 words*
3. Address Function Table 04 TY45 6 2 words*
4. Address Function Table 05 TZ45 6 2 words*
5. Constant Table 20 TC35 6 Variable6. XFISN Table 30 TD35 6 1 word**
7. Alter Table 40 TF35 6 3 words8. Subroutine Calls*** 50X T635 6 Variable
9. Link Table 60 TH35 6 3 words
10. MACRO Table 70 MA35 5 Variable
*First word removed from input record i**First and third words removed from input record
***Entries from this table sorted on 9 bits; note: key written 50X. fl
4-46 Q63-4N
I
When the control table is made up for Run 5, an added indicator will be
I found. This indicator will appear for each entry of a subroutine call so that the
sort may be set up to sort on 9 bits instead of the first six. Each entry gives the
starting address of the item to be examined. Each item is at least three words
long. This has been done so that all items will be sorted on the first six bits of
the first word and also all of the next two words.
I Run 5 performs in a similar manner to Run 2 in that the merge phase 1
is used only when more than one input buffer load of information is to be sorted.
* If no merge is needed a sort is performed to find the items with the lowest serial
number. If this item has the same key as the previous lowest item, the new
I item is moved to the output buffer. When the buffer is full, the information con-
tained within is written out on the appropriate tape. If this item does not have
the same key as the previous lowest item, then this new item is "held" until the
output buffer is written with the WEF set. Then this new item is tested; its out-
put device is inserted into the calling sequence, and its word suppression indicator
is set. The suppression is done while moving the items to the output buffer.
If a merge is necessary, no word suppression indicator for the firstbatch of input is set, and all items are written in one file on Tape 6. The
string on Tape 6 is then merged with the second batch of input, and each item
is written out on the appropriate tape.
IZ 4.4 TAPE ALLOCATION AND USAGE
There have been two main areas of modification with respect to tapes
in the process of producing the MOBIDIC Compiler. First, the segmentation
of the runs has produced in some cases entities which must be treated as sepa-
[ rate runs. Second, the need to accommodate a smaller memory has increased
the use of tapes for storage of both the intermediate and final output. The creation
[ of intermediate output and the consequent modifications to use scratch tapes for
this output has been done in such a manner that optimum tape usage is ensured
[ and that the problem of table spills is eliminated.
In all cases, the final output of any MOBILE Run remains as listed
[ below.
[[ Q63-4N 4-47
4. 4. 1 Current Tape Assignments and Usage at Compilation
Figure 4-7 indicates the tape assignment for the primary input and output
data of the major phases of the program. The Systems Tape, (1), containing the
compiler program itself, and the Source Program Tape (2), are used solely as
input tapes and therefore can be file protected against accidental writing during a
compilation. One tape (3) is reserved as a general input and output tape for all
intermediate tables generated by one phase of the compiler and required as input
by another phase. Throughout the compilation, the remaining three tapes (4, 5, 6)
are required as intermediary tapes for the processing of data. The type data -
contained is dependent on the particular stage of compilation. At the end of the
compilation however, one tape (5) contains the Object Program and another (6)
contains the compiler listing information.
Figure 4-8 shows for each run the particular manner in which tapes 4, 5,
and 6 are used during a compilation. There are a few specific rules which apply. II1. All tapes are read at all times in a forward direction. Read 71
Reverse is never required.
2. No positioning of tapes by an individual run is at any time required.
3. All listed input tapes for a run can be assumed to be rewound at "istart of a run.
4. All listed output tapes for a run can be assumed to be positionedcorrectly at the time a write request is given.
5. A scratch tape will contain only one table at any particular point Jin time. All scratch tapes are automatically rewound at thecompletion of a read or write of that table.
6. If a tape is listed as both an input tape and a scratch tape for a -'run, the first write request determines its use as scratch andthe tape will automatically be rewound at that time.
Figure 4-9 shows by run sequence the individual tables which appear on
the listed input and output tapes. The data context of Tape 3 is also shown. This
is both an input and output tape for all sections of the compiler program as has
been mentioned before. All data is assumed to be read from it in a forward direc- [Ition and it is never necessary for an individual run to position it.
11
Symbol Key for Figure 4-9 and Table 4-2
I. n tape number
A physical beginning of tape
SS table name pertinent information exists prior toparticular table referenced
table name SS pertinent information exists after theparticular table referenced
I table name/table name referenced tables are adjacent on tape
tape operations could logically occur
simultaneously
[ RD - Read
WR - Write
Table 4-2 shows by run the detailed use of tapes by sequence of opera-
( tion. Except where indicated by means of I it is assumed that the previous
listed tape operation has been completed prior to the start of the next. The
[ four character table symbol required by the MOBILE I/O routine calling
sequence is shown next to the tape operation. A write or read of a table as
shown is not meant to indicate that the entire table can either be or not be
Ii core contained at one time. It is only intended to show which tables appear
on tape, and not whether they were placed there by one or more logical
transfers of data.
4
[IiIi
II
INPUT TAPES OUTPUT TAPES
1 SYSTEMS TAPE OBJECT PRO GRAM TAPEIMOBILE •
C SOURCE PROGRAM TAPE I LISTING TAPE
SYSTMS APEINTERMEDIATE TABLES -a SOURCE PROGRAM TAPE PHASE COMPRESSED GEN.CAL
E T I"--.TABLES IINTERM. TAKES GENERATION
3 I.tAPHASE ADDRESS FUNCTIONS ANDCOMPRESSED GENERATOR CALLS P GENERATOR OUTPUT - U
SSESTAPE CAP INSTRUJCTIONS sic)INTERM. TABLES OPTIMIZATION
PHASE
ýADDREfSýS FUNCTIONS ANDGENERATOR OUTPUT
07 SYSTEMS TAPE IIM .TPINTERM. TABLES AND CAP ASSEMBLY
\INSTRUCTIONS PHASE LISTING TAPE
Figure 4-7. Input-Output Tape Assignment At Compilation I
I4-50 Q63-4NI
I
I PROGRAM TAPES
TRANSLATION PHASE INPUT OUTPUT SCRATCH
I RUN 1.0 INITIALIZATION
RUN 1.1 ENVIRONMENT DIVISION PROC.
I RUN 1.2 DATA DIVISION PROC. 4,5,6
RUN 1.3 PROCEDURE DIVISION PROC. 5,6
RUN 1.4 END-TRANSLATION 6
GENERATION PHASERUN 2 GENERATOR CALL SORT 5 5 6
RUN 4 DATA INFORMATION RUN 5 4,6
RUN 3 GENERATOR RUN 6 4,5
OPTIMIZATION PHASE
RUN 5 MACRO INSTRUCTION SORT 4 5,6 6
J RUN 6 OPTIMIZATION 5,6 4,5,6
I ASSEMBLY PHASE
RUN 7 PRE-ASSEMBLY 4
RUN 8 ASSEMBLY 4,5,6
j Figure 4-8. Usage of Tape 4, 5 and 6 for each Compilation Run
4IIIU Q63-4N 4-51
TRANSLATION PHASE RN10&1INITALIZATION S ENV
&ENVIRONMENT
••
SDIVISION PROCESSING
I S DD DAT FILE & SPi iiSOURCE
DATA DIVISION SS cAADT LC TABLE TABLE ._
PROGRAM PROCESSING
JBSP CORR
RUN 1.3 SS PRcI TABLE ILW BE OO CPROCED1URE
~~~III NAUNSORTED COMCSE UN 20II-
PROCESSING SORATCH PROEEDUGEN ABLL I
DATA i i1SCRATCH PROC. TABLE 4ADDRES FUNCTIONISLE GENTIOR PROCC ALL
END O DTALY C GROU
SO C G ANFATOR UNSORT. GEN. CALLS NGOENT. COACLLS _
GENERATION PHASE CALLS 3. 0 IF R EC.CLEDA
I RUN TAL.BL0
UNSORTED COMPRESSED GENERATOR SORTED COMPRESSED GEN. CALLS _ IGENERATOR CALLS CALL SORT 5
SS DDS O UTPUMPLET M G ENERATO R CA LLSDAASS PROT D I IN RU N 4.0 t• ADDRES FU TON I
RUNA
Fiur 4-C. Tables DATA O Sn CuCLEZp ENTRIES C ilENEatnRuLn O® SORTED COMP. GEN. CALLAS INFORMATIONN L .•E
-illi
5 CO2LETE GEN. CALLS 3UN3.0 TABLE BLOCKGENERATOR UNSORTED COMPIR. GEN. CALLS
RuN~ S Is UT M GENERATORSI
Figure 4-9. Tables On Input-output Tapes At Compilation Runs
4-52
Q63-4N
I
OPTIMIZATION PHASE SORTED MACRO INSTR./VARIABLE CHG. TABLE pADDRESS FUNCTIONS/DATA RUN 5.0 SLURI IO hANALYZEt/GENERATION OUTPUJT MACRO ST•iUC ADDR. JC SUB / L~N
A ID FUNC. CONST. XFISN ALTER CALL LINK
OUTPBLE SORo IT A BU TAIL / I" TABLE / TABLE TABLE
| SORTED DATA AN/ALYZER TABLE . .
I ASEMBL PROCEDUR
TBTABLE TABLE I! T
FROM RUN.5.0 RUN 6.0 UN
0PTIMIZATION
IA FR OM RUN 3.0 TAG TAIL!E
ASSEMzLY PHASE
.1 , 9RUN 7.0 FILE ASSIGNED OBJECT~ ~ ~PRE-ASSEMBLY SYMBOL IREQ. PROC. ALTEI QSS -s
2 s~ AL TABLE TAIL! TABLEER C
I OCTrAALgM INITIAL DAT SUBROUTINE RUNNINGA4 ROUIN BLCISTRUCTIONS PROGRAM
RUNB6.0 1012ASSEMBLY z v
FROM PRECEDING RUNSA
*TAPE NOT REWOUND AT START
Figure 4-9. Tables on Input-Output Tapes at Compilation Runs (Cont.)
IQ63-4N 4-53
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION
Itun Tape Tape TapeNo. No. Input Operation Output No.
1.0 Source Program WR LFON A Blocked Source Program 3
1.1 Source Program WR LFON SS Blocked Source Program 3
WR T12N SS Table Dump 3
1.2 Source Program WRYTN00 A Record DDT 6
WR LMOO A Data List 4
4 A Data List RD LMOO
6 A Record DDT RD jTN00
WR TQON A Unordered Copy Set 4
4 A Unordered Copy RD TQONSet
WR TQOO A Ordered Copy Set 5
6 A Record DDT RD jTN00
5 A Ordered Copy RD TQOOSet
3 RD T32N SS Table Dump
WR ITWON Data Design Table 3
WR TWOO Data Design Table 4
4 A Data Design RD TWOOTable
WR LPON SS Blocked Source Pro- 3gram
WR BXON SS Data Division Block 3
WR TVON SS File Description Table 3
WR TXON SS BSP Correction Table 3
4-54 Q63-4N
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION (Cont.)
Run Tape Tape TapeNo. No. Input Operation Output No.
1.3 Source Program WR LPIN SS BSP Proc. Division 3
WR OWIN SS Own Code 3
WR GAIN A Unsorted Comp. Gen. 5Calls
WR TH11 A Scratch Proc. Table 6
WR TXIN SS BSP Correction Table 3
I 1.4 WR LNO 1 SS Data Name List 3
RD OWIN SS Own Code 3
i WR TUOl SS File Table 3
WR TAIN SS Section Table 3
6 AScratch Proc. RD TH11Table
I WR TBIN SS Named Proc. Table 3
iWR TDlN SS Data Design Table 3(Proc.)
2 5 A Unsorted Corn- RD GAINpressed Gen.
Calls
WR GD2N A Sorted Compr. Gen. 5Calls
4 3 SS DDT Data RD TWONSS DDT Proc. TD1N
5 A Sorted Corn- WRjGB4N A Complete Gen. Calls 6pressed Gen. WR TA3N Address Function & 4Calls Data Analyzer Entries
A Ist CycleSS IF Recycled
S Q63-4N 4-55
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION (Cont.)
Run Tape Tape TapeNo. No. Input Operation Output No.
3 6 A Complete Gen. RD JGB4NCalls WR T 19N SS File Requirement Table 3
WR BY9N SS File Data Block 3
WR BX9N SS TAPDAT Table 5
WR BZ9N SS MFPDAT Table 5
6 SS Complete Gen. RD GB4NCalls WR'\GAIN A Unsorted CompressedGen. 5
! ~Calls iWRJ TA3N SS Output From Generators 4
5 4 A Address Function, RD TA3NData Analyzer &Generation Out-put
WR MA35 A Sorted Macro Instruction 5
WR TJ45 A Address Function Table 6
WR TC35 SS Constant Table 6
WR TD35 SS XFISN Table 6
WR TF35 SS Alter Table 6
WR TG35 SS Subroutine Call Table 6
WR TH35 SS Link Table 6
WR TK45 SS Data Analyzer Table 3
6 6 A Address Func- RD TJ45tion Table SS WR)TJ66 A Compressed Add. Func. 4
Table
4 A Compressed Add. RD TJ66 HFunction Table
6 SS Constant Table RD TC35
WR BC6N SS Internal Constant Block 3
4-56 Q63-4N
!
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION (Cont.)
I Run Tape Tape Tape
No. No. Input Operation Output No.
- 6 SS XFISN Table RD TD35
6 SS Alter Table RD TF35
WR TF6N SS Short Alter Table 3
3 SS Section Table RD TAIN
3 SS Named Proc. RD TBINTable
i WR TA36 SS Section Table 3
WR TB36 SS Procedure Table 34 A Compr. Address RD ITJ66
Function Table WR MF6N SS Address Function Caps 3
6 SS Subroutine Call RD TG35Tables WR MS6N SS Generator Subr. Caps 3
6 SS Link Table RD TH35
5 A Sorted Macro RD MA35Inst. SS WR TL66 3
[ WNR TK66 4
WR MD66 A Modified Macro 6
1 6 A Modified Macro RD IMD66
WR MR6N SS Running Caps 3
WR SS Extran. Tables 3
7 3 SS File Req. Table RD Tl9N
S3 SS Short Alter RD TF6NTable SS
1 3 SS Section Table RD TA36
3 SS Proc. Table RD TB36
3 SS Address Func. RD MF6N
Caps SS
I Q6 3-4N 4-57
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION (Cont.)
Run Tape Tape TapeNo. No. Input Operation Output No.
3 SS Gen. Subr. RD MS6N
Caps
3 SS Running Caps RD MR6N
WR TM7N A Symbol Table 4
WR T197 SS File Requirement 4 ATable
WR TB7N SS Assigned Procedure 4Table
WR BA7N SS Object Alter Table 4
8 3 SS Data Div. Block RD BXON
SS BSP Corr. RD TXONTable Data
SS BSP Corr. RD TXlNTable Proc. I
A BSP RD LFON
SS BSP RD LPON
SS BSP RD LP1N
WR PA8N A Expanded Source Pro- 6LJ gram
WR LP18 SS ESP Procedure Divi- 4sion
WR PB8N SS ESP Correction List- 6ing
4 A Sym bol Table RD TM 7N
i!
4 SS File Req. Table RD T197
4 SS Assigned Proc. RD TB 7n
WR}BZ8N A Initial Routine 5
WRIPC8N SS Storage Allocation 6
3 SS File Data BL. RD BY9N Lt
3 SS Internal Constant RD BC6N
4 SS Object Alter RD BA7NTable
4-58 Q63-4N
TABLE 4-2. DETAILED USE OF TAPES AT COMPILATION (Cont.)
I Run Tape Tape TapeNo. No. Input Operation Output No.
I WR BD8N SS Octal Data Block 5
WR PD8N SS Octal Data Listing 6
1 3 SS Address Func. RD MF6NCaps
Gen. Subr. Caps RD MS6N
WR BS8N SS Subroutine Instructions 5
WR PSN SS Subroutine Listing 6
3 SS Running Caps RD MR6N
I 4 SS ESP Proc. RD LP18
WR BR8N SS Running Program 5
i WR, PE8N SS Triple Listing 6
3 SS Data Name RD LNO 1List
Li3 SS Data Analyzer RD TK45
3 WR PG8N SS Data Analyzer Listing 6
IIIIIIII Q63-4N 4-59
4.5 FORMAT AND USAGE OF THE COMPILER SYSTEMS TAPE
4.5. 1 Contents of the Systems Tape
The Systems Tape is made up of labeled files; each file being a particular
"Compiler Run" or auxiliary program.
4. 5. 1. 1 Programs on the Systems Tape
The following routines are on the Systems Tape:
Name Function File No.
LABEL Tape Label See Note No. 1
LOADER Systems Loader See Note No. 2 |I
SPINA Control and Input/Output 1
CDIR Systems Directory 2
SL02 Systems Tape Generator 3
M lON Initialization 4 j
M11N Environment Division Processing 5
M12N Data Division Processing 6
M13N Procedure Division Processing 7
M14N End Translation 8
M02N Generator Call Sort 9
M03N Data Information Run 10
M04N Generator Run 11
M05N Macro-instruction Sort 12
M06N Optimization 13
M07N Pre-Assembly 14
M08N Assembly 15 iiNote No. 1: An 8-word block is the first block on the Systems Tape.
This block is the tape label. It contains the MOBIDIC iCompiler Systems Tape and the date the tape wasgenerated.
Note No. 2: The Systems Loader is not in a file, but is merely one blockthat sits as the second block on the tape. By sensing SFF1, iithe System Loader determines whether to read in the ControlProgram or the Systems Tape Generator Program.
4Q4-60 Q63-4N
I
I 4.5. 1. 2 Expansion
The Systems Tape is flexible in that it can be either expanded or contracted;however, it is essentially a complete system.
I 4.5.2 Header and Trailer Blocks
There is a header block and a trailer block in each file on the Systems
Tape. These blocks are created by the Systems Tape Generator Program and
are used by the Control Program during compilation time. They serve as the
I control mechanisms for reading in the various runs.
I 4. 5.2. 1 Format of the Header and Trailer Blocks
The header and trailer blocks in any one file are identical to one another.
1 They consist of 10 words each; however, only the first 3 words are used cur-
rently. Word I contains the program identification, e.g., for Run 1.0, word 1
would contain 226160230505 which is equivalent to MION, the run identification.
Terminating blocks are spaced filled. Word 2 contains the file number and the
number of blocks in the file, e.g., if word 2 contained 0000016000058 it would
mean it was file No. 5 and it contained 16 octal blocks. Word 3 contains theI starting address of the program in the alpha portion. As was stated previously,
words 4- 10 are not used currently.
4.5. 3 Putting Programs on the Systems Tape
Means by which a program or a new version of a program is put on the
I Systems Tape:
1. The Control Card must be put in as the first card in the binarydeck. The Control Card has to be in the following format: itmust be ISN; 12-row left will have a word count of 1 and anaddress of 377778. (Note: there is no relationship of the
377778 on the Control Card and the fact that memory is limitedto 177778.); 12-row right may or may not contain a hashsum,
but it may not, however, ignore the hashsum punch. 11-row leftmust have the program identification, e.g., for Run 1. 3 11-rowleft must contain 226163230505 representing MI3N, the identifi-cation for Run 1. 3.
II Q63-4N 4-61
2. The normal transfer card must be replaced with a transferto 1. However, there is one exception, if the program isthe last program in any series of programs being put on theSystems Tape or is Mhe only program being added to thetape, it must have a transfer to 2 instead of 1.
4. 5. 3. 1 Program Starting Locations
The lowest location of any program on the Systems Tape must contain a
transfer to the starting location of the program.
4I
4-62 63-4
SECTION V
CONCLUSIONSi5.1 CONCLUSIONS
Most of the coding necessary to modify the runs specified in the First
I Quarterly Report is complete. The next logical step is to test each run to
insure its functioning as a unit and also as an integral part of a system,
I namely, MOBILE. The unit testing has begun to check out the relation of
one run to another in the overall system.
IIIIIIIIIII Q63-4N 5-1I
I SECTION VI
PROGRAM FOR THE NEXT PERIOD
During the next period each run of MOBIDIC MOBILE I will undergo
regorous test procedures until specifications are met. When this occurs, all
the runs will be integrated to form the MOBILE system which in turn, will
I undergo a series of equally rigorous tests. Once MOBILE I functions effectively
i as a system, it will be subjected to Acceptance Testing to ensure complete
satisfaction of the purchaser's contract specifications. These tests will be a
I series of COBOL source programs from which MOBILE I will produce object
code and listings in accordance with the rules of COBOL and MOBILE I. These
I object programs should then function in the manner prescribed by the user if
the COBOL statements used in the Source Program are free from logical and
COBOL errors.
I
I
Ii Q63-4N 6-1
ISECTION VII
I IDENTIFICATION OF KEY PERSONNEL
I 7.1 KEY TECHNICAL PERSONNEL
Alvin H. Hatch Manager, Applied Programming Dept.
I Arthur S. Morse Section Head, Language ImplementationSection
Herbert S. Hughes Research Engineer
Roy Sundgren Senior Engineer
Richard Mackler Senior Engineer
I 7.2 APPROXIMATE MAN-HOURS EXPENDED
I Name Hours
Alvin H. Hatch 132
I Arthur S. Morse 160
Herbert S. Hughes 412
Roy Sundgren 503
Richard Mackler 352
Total 1559
!7iII!Ii Q63-4N 7-1
f*o g 000go:
V-~p ~ .444 -q 9 ,4V P 4 r
a -0 -
I4 0 4 -
X0 3E - - %v0 tv e0 e0 KO i0
-C %. 0 6 a-Cw# *-%a-% &*% a-. a Z~ - a0N 0%
IL A - 4- -4 Acu 4 ,4-M r4 i r4 n -44M,.4 M 4 IA-
0 0% 0Z0 04 O
w z 4 wr 40 ka-C z- " * I-w-guCL4 u .I O OV w wvO >v &CL v'(c z% > .w% x ~ >a wW J~ *% 5%.+ *%.WNM W5%1 >40 >0 >0
0000
ES-VO ~ ~ ~ W NVO C V 0C~ W W -N N~~4 M 1*NO
C 0 -c
00010 cc
IA~
000000000000000000000000 10000 00000000000000000000
-ý-.- 4 t-4 ý4 r4 ýd r -4 -4 -- 4 4 -4 -4 -4- 44 14 14.4 14 14 -
0-0
Ix a u11C
U) w - i IA-
-4 w ~.uj N V
i 0. 0.I
N ON 0 NC 0 NO NO a L 0 9NNP
4n~I Id) In -- ThIn -4
00000000 ZZZZzZZ ZZOOC 000000000000C0000 00000000000
000 00 000000 00000m 4 cp 0 ý N 4 0%D l-N00000000000II
000oo0 00060000 000*000 c.4-4 14.4 r .-4 d
4 rd O - 4 r4 4 r4 P4 r4 r4 we r4 r4 -l r4 V4 .4 -4 - 4 .
w
Ic0
I Ixw
000000I U. U.. U. L. LL LL .0 1-4 N M~ 4 bl%
x( 000000w )0. V d,4 a * a a
< 0) < .JNý40000000 00 00 *O0 a 0 a a.&1 coc . 4 44 q14ý
InN- 0 0-K < -O. U U . . . . .f- IrII 4V nI- 4r4r4141
HUS c 000000000-00 c00
0000 OOC0040-
4co
000 a0000 0000000 0 0000g0 00
z -Ii0.
Z 00 Ix
0 0
u 00 80 ce 3
K Zw00 *.VO ziUIx z w 9 C W u4 0. L
410"1- Me Ix UI- V)-u- w) u I
4-4-
*o 00W
4 00 4 00mO 0 4 00
u VIV 0 u 0 cy 000 0 000 X r- mAnI- c-- 00[W ILBLBAWIw. m0 3 0~ 0 -1ix 00
* o 10- 0 0 -0 03 'n U) c0 0cc0000 .0 00 ON '* 4000 * * a '-I 0 - 0N " mON-4+O 00
OOOOVco l. 00- U 0 0 t- in 00 0 i
* * X -J H-1 H H iN H H -'JN N 1-- 111 N ZW-* WZK CCK [
coo» 0 IK
co 0 0 0000001189000 0000000000000
(N4J (444 Nco0 000000000,0000000000000
00000000000000000000G000000000000000
I z t
wz0 ~
0~~ 0 04
u U.w
r. 4 t NEC JI
000 0 <00 0 0 00 0 0 A 0 00 00 0 00 00 00 04c 4(P4 r4 41
i.- V4 u V~ 4~ 4444 4-. 44
4p4-4 ~4-r4I-44- 44-.I - -00 0 0 0 0 0 0 00 0 0 0 0 0 0 0000ON
r4N
If
090 800000000000 0000008000000000
o0 000000000000 000000 000000000
0
CK~0 0.- 4
r -2 Xc 0 0 cc0 )(0-
w a- a- - 0I oI I.2- LL 4 )
0 0
0
Q0 00
U-0*-NaN 4 C qK40 ~4 0 z 4 <40 ~ 40 a0 qt4h . o 4 .a0 ZU) 4 Z U- ~ 0 UZ Z z- a ) 0 zJ 0 0U
0 -:&0 0ý j k .4- w -+v "Iu -E I x 0 44 x 4 CKm0 l-.4 (1c% -4
X W X * a - Of 11" 8 .
00e -J)V)= 0 000000000000 000000 0000 0000D -
QO4 -4 -@4014N0*4-4
co 0000000000000 0000000000000000GO w 4 m4 NNNNNN 0 NN 04 ONNNNNNNNN NNNM
P4V4f 4440IN N 91000000000 00000000
dc0 00 0 00 0 0000 Ix
ix Ixz -
U) 0
ix Ix z03 w) (fo
)- w ui 0 n0o 4 0 3 jz .- w V i3 0W
0 0 00 )< 0
> c 0 -*- 14-
a~ 00 0 0 c-j4 cU ) HOI
I-x N N i tN -J N WI- I--
000000000000 00 0
0000000 * 0000000' 0 040 pl- :.4 44 t) 0..0'N m W 0 r-0 ()%0 Nm I N
tLW 4 n4 104N~ %a% a0 0v % Ql r-P
03t
0 U..Iw w
II
0 0~4 N .- 0 4N (n ~ *t 0 4t+ r4 +~ 04-4 +,4 r 4 -K +4 .--4 .+ -C. ý4 + -4+. P4 r4-
0 00 0 8;t :00co.0 C000.000g c4~ -K 0W 4W< C 4 N AN_j Nj F P- N N ý 4 t60 a i N 4 . 1 u9 @ "V) JNN J- 1-N04 14E@~w
N4.~N44 N ft# Ni t NN 400 0 00 0 00co000,a00 0 00 04
U-11
4 < 4 <<
'C
IX > < J 1-3 j I,'4L .ia
10 ft4 ~4 IiS OsO
.. '..- , 4M ý% l, %i
4 ~ . 0 Q;4 * 1 7~444* *< - 1
0 0 coosM 4 vo P4 -4 V4 -4 r4 04 -4P-4r4 r4r464 P4 r4 r4
z
0
Cl 0 U
V >-Z zx0
a. Z~ 0 L)z 0 .- - C 31M L) CK W
O. w > a U)U) rz 0 4c 0 Q u
+ + 00
41 -C L. LL0 0 0 0 %
0. 0 z It w
00
00000 00000oc 00000 00It I 1 N n AlyV 4" m 0 -m0m0ty( P O4 " o
Mtn M _4 mml Ait4" AA__lIco ________0_0____
000og 0 00 0o00 09000009000000000coc 00 c0 0000 00000000000000000
r4r 4P r - 4 P V- r4 r @Vrm p r 4" r4 r4P V 4P 9. 4 " 4"Iro 4
wwwwww a a maw
u[v ui z
0 CD 0- ccKi x -i z cc:) < W 0 0zZ~-Z v LUI
V) V)~ LL 0
Z LL. 0 K cc X
W V) inI V) W - z 0 0 .-
W X w W W LU LUw > 0 3 4C
WJW 39 x( cca 39 xW. 0 -C 0
00 0 000 ULZL
ý L 00 ON.-4 10. 0ON 0 0. U)0 3104;LItLL O 03(L 0 0 01 C '-%.0 '-0 aO 0 30
+ & Z T 00 + 40 V 4 ýr4 % , .0- 4( '-C C OZ Z 4 0 0004-& W 4J*C0+ w *0 [I"0 > 0 0 - 0V4& 4
Zý- *W*M f N -- _5U0)44 Xf-l3 ZN-vl.4'Z.ý4@- .4X-4 II
D < U D- VI ) _-K 0 U N W NK N) 1K-j K- I-- Z~ N N ~ >1 0 1- 1--N0)1111a -i-ia0> >II aI -i. IIJ!I!ii a . W_ j .V&WI-XXU J ZWZ Zl-XXI- JCM >X4CO XCD XMX ID%00'
z Z"
00 0 0 0 0 0 0 0 00 0 0 0 0 0 C cI 4ý 4- 4 ý . 4 - 4ý 4 . 4 ý 4'4 ý 4r 4 4ý 4 " dm 4 V 4ý
LLJ
0 I10
0
Ii z 31
-.) w-
W :D-4 4 1- 1-4 1.--
LN " NoN
1- 4IN -- 140P 91 1- 14 a N 1- .. 0 1-141 - 4# - "4"11- "11 N<I
ID~p- N M 4 0- 0 0- P 0I4444" NOs 0 t- in 40- N - N O.-q NOW %-N - - a 9%4 N 1-N 1 4"L
44 N " ' i 0" 04 f .4NNN
MMMMM Mt MI~i 4W (U ~ 0 44044 -*444 4 4 144 4-4- -*-*.*4
0000000000009000 000 0000:88 @QQO0sco000000 000co 0000 0000 10P4 V4F4ý4 .4 P4P4 P4 14r4 4 4 4 4 "4 P4 ý4 V4 04 4 4 r4 V4 r4r4 V4 04 r4 "4 V4 04 -4P
01
00
4 W it W40 IxX >0 Ix I40 V) x
0 0
VLOLOI. I 0 SIL t*- 0.- * .r4 0- .-4 Q "4 W~ f.4N (~
0- U.- %D 0 0-W -4 inU. a4+ 0 '-4~ 0 0*L 0 .0 U . U.U "0f000 04*0S'0044 z W'P
+4 + I-
N N 0- 1- N W -
C.4 9 .4 9.4
cc 0
O~oooo 00 cc1-4 -4 - 4 s-4 . q4 .. 4 ~~.4 -4 .4 r4ý4 .14 r -4 .4
UUz w Z
qc~~WU ZL -jzu
0C 3 9,4 OZ OIC -
0- IW V- 00~~ K 0 - LAIze W LLW -- Z V)
a 0 0 1J 0 Y 90 w 4 OI0 LL 0 4,
04 1- 00 + * .Nan t 00- z - lb 4 -. 'U.1 a4 0t-PI- + r- SOF#.
t.~.u J 0 I * i<i UW" -4 -.. "* bJI0 N N * Wa N'JR.-N t Nd N 0W w * 00 e
N 3 IC _.j .j > -1 .J Z D N1 < U D ..J D > > I-Z -J10 IC 14'Jj 'C -A -J 4C 01 -J J 4C K -JJ
C14 N
0 0 XX1" 04
88000008082880g
00000000.00000:00
00000 cocar4 9-6 d.4a-.4 . 4" 4V 4 404 rd
UA V)dc 1 I
* an
wU 0 Ca nI
W. ix
aK Ix uk LZ 0a 0 0 Li 3 mw V
at 1- zZ ý
+~ 0
+~ 1 -0(W O
0. 0 U. U. (m-
InOm CY O N g -4 W an on0 P0 +i en 0. 000 z
. 40--. ) 4 00 +. + I -Ow~w0fn0 hCD0 N0 0 NF- 0 0 03 -J 14 - N4 j -
0M *~~nWD- Oka
-4 .4 ý4 V 4ý -4 ý4-4.4 -4 .*-4 04 - .4 r N4- 4.4 04PO e4"-4-4.4V* 4 pq 4 .4 r4a m =aaaa maaM ICCCa gwta l sCetAal aa cW
w I
zw ~w
VL U.
%C) 0c w.. w- N~~I.- I. W~ W)U V.)(. 00 0 0
L[ W a319 at *%
W W4 .I LU 0 000 " n a?X CL) VI &L V-4 V* _. XW
N 0
000
CL Nc .4 - -1O4 f -1 41C -4 4
N* 4co - -I
0000000 j j0 00 j 00 j0 -j 00000 000x< iD
0 44
0 ~ gggg cc 00000000 coo:: -
V- 4r 4r dV 4r 4r 4P - 4f4" 4r 4r 4v 4r .. 4r - 4V . dp V 4 :i
m 40of-~q NM4 A 1 r- V- NM4 0 of- 0 4 M4 n % Jý -O M-4 V4 rI r4 r r4 04CM N Y N04 mm mm 0 0%cn 4rt4 4t 0in N[iCY NN NN N V NN NN N.N 0 N C N Ný, NNý ý N N4N. ý %.I..ý. ý1 *ý 4. 1. ý 111ý , H
0a WLL D X- ) ixz 0 I~L ai)I.- )> 3 N
0000000 00 0 00 0 0 0
l~I oaoooooooo i
000000 00000000000000 0OOX00000 000 0000
000000000 00000000000000000-0000000000
0-4NN NNN N NNM MA~jn M MMM4 4# 44 @It, -ti ~nMUN 0 n I Inmw% n m#A ~bl In Inm I 4n in n ým~nIn 0 o IAwitt~min
Ioc 000Cc
D 4.2 : 0,4
0 ~O il 111111-141 0000 -o r- 4
~O'O ~O'O %OO --I-tY
m- 0. ono AWN 10ki Ainb%00 nm0In61I 0ma in m ni ni ni n n0i nNNmi In
ccT 00 0 00 0 0 8
6:: xg :: ggobgwsg W 0 -j 4 Ii " ý0 V
a., [I . (K w w V )w w a-K - 4c4c c 4c -9 K W -C -C o d 00m ODOD ID o c
0%0 "w NM40oLi0 - m40% - % 4NM4%omk 4
0 00 .000 %a Oka-4a00 00 - P4-4m - pp.0.4 O -4mN N N
000000000000000000000000000 0000,0000 g
co0ýdV4rI0 4r . fp - 4r 4r 4#4rqr 4W 4" 4v4P q0 4r - 4r - 40
P4IIz- -Z 0) N J - Y 0
vI c u ) u VIC0 0 lx (4o 0
u i ju- v- uiu J.4~L U. v -j v -i U W - 1-
4000 0 0 0 0000 .' 04 0 0 00o 0 Ulcc coo~~U U UU
'M 410 to "a. *)- 'a4V 'a 'a *'a's *.
00000 110c 00 cSH Ocoo C-
r4 F r49.4r4 r P494 4 F P4 4 V4 r P4Pq r 04F4 4 r414 4 " "0pq ". r4 r P404 0 04ý4 4 0ae a cKce a ccaew oeww wwoewoe c a cc=ar ci w wMW x wa[ c w f1a
0 0 V C~jw a 0 W W
1' 01 ~40 4) 3u -1 : -l, 0, 01 *44 4 411 4141-4
* uvcvo u-u VNo 00000 C000 0 000 000000
CC.0C-C4 P-4 IN M 4 in% - 0CA4- 0 44 N M 4 in 0 4C.a.4 -MM4 0-4
%0 ý % % 1 -- -* -- f -f--m m eQ ~ ~ ~ ,% ~ 4 ~ Q%0 40 % 0 a ýO0 % %aD 00 % 4 .4 aD * ýaa.%D%& 0 ' 0 . a 0 4to1
Coc 0000 0 coo8 s::::g::g::coos.8s"r4 P4 P4.r-4 " 4 4 r4v4 . -4 " -4 , V49-4 4r qV4V494 4W 4 W 4 .4 P 4 P 4 4r 4 P4
0 LL -0 :
ZI YzCjo K - - - 4 zCI
0I
& .* aL 0 Z -at 0 , a
N Z- P- ZN I-N N 0- I-40- N N NP. I-- N # -- . I.. - N I.- ZNflN
[ )0 0 00000000001- >0coocoo co
co Q . .N m .W D m0 94 N fn *-% %a V. ca a 0- 1314 It in %Dr-0f
0- C, 04 0~444,4~ 0-4. 0 0 -P4-4- r44,- @
000000000000000000000000000 0000 0000~u 4 4. -4 E ý 4ý - 4ý 4ý4ý 4. . 44V ý4-4 r4 P4 ý4 4 P .4 4
ui > >1LLJ 01.- -4 1 -4 4 1-[
uj W j - 4/ x a41 4 a .a a0 -1 Ix woo K w0 j 0 0,a" _ 0 o 0 I
w w ww L LLLL U LL U. LL G 0 0 II4% p 0 N am & t a 0 a a OC -4 14- 4 "44CI 4 -4 14 - 4-N -41- N I- r4 -I- ý--P, ý- P- ý- t -N - P N I-- I- I-
N ODr 0 Qý 0 v- N HDPM. n0 n0w %* *C' 0 -A %a~f %*N . t a
rýfl ý -FýPýr f - - -fl .- -p-p 4.-r-P , -P P4. fl- .P .Pf. ?* r f r I0000000000000000000-00000-000000NI-NtN0000-
C~ý 4:
"1" 404 4", " F 440
Ij
M0 0 1" U.. .J Z
[ 4 4 -4-C04~ r-4 4K4. - r-4 41C - K .4 4c4c4 9 4Cf r 4
"4 r.-4 f-4
0 00000 0 CccClcc0 cc0 00400000co*C0 800.0 000
I00 oc000 00 0InQ- Ok w4"tAP - P- r -f W4 4 1ý1 a41.ý90 O ~ 4 0 0
~;(Z r-44 _j -rq lz-4 c a ( -.-
i oizZ w ; ii
~ 4 I n) 4c 4c C . 4c.
0 in %0 f- w 0%IO 0 In. W0Or cc0 0 I0I 0. 1 N M0 In J0 I110C)1100 00 10000Q0 4010400 100 00 0 00 00 0000 400 000 -0, g*0,00 000 0,0 4000,00 00,00 0
II000000000000000000*0000000000cooococ
14~~ ~ .4ý 4ý 4141 4ý 41 4141 4" 4. 4ý - 4ý 4r 4-4ý - 4r -
w 1 MuNwN - t1I z z z z -a u L
XI L -0 ow $-I ~ ) w m u L . x& 0Z0 0 0 0 o 0 0 0 0
0IIbiN ~ ,41N.N OD - 4K0'~
000000000000 0 000000 00 000 009N f 40*4Nm40% 1 .- D0 4. C4 (" 4 IA* %0*4 1C944I %%
Ini * n0W Nl' 0'0j DP -f -f l
0000 0 LJ 0 0000t/0Z000000000 0 .0#-0 --0 000 0 0ý 0
~r4 4k4 4 r4
N N N NI.- N NN N j 1v v u -ju u -)U -ýd j U U k ýUXWXCXCD WXC~iM C0 CDX XQDI C3. MXC~iM. CX CX Q TD
,-4I<I
occo ooc oooo coo ooo0 000 0000 0000000 0000 0000 000 0000 0000 00of)[Ir- 90% r4 M 0 o r-0 00 -4 N 4 %0 .00ý -4 M 0 -00 0 .[I
f- IN 0ý0 LI) - 41 C- I%) - 0 coo 000o. 4
10 W~ *00.i OI D WO AO QG0 MON. CM ONL0UM ý000IO0 L.-J 00/00Z0- 0 -00Q. 00*.-CO.-~Ot30oo
V >-X<4zI ýI0 LJ - ia4 - -o o
I OOOO WZMMVw wocI~ c Iw@LiwO & :
Iww w mo ~
aIY 409 ro * .P -
0k4o 0 . 0% -0%js- 0 ze 0w ý0 h0 %0 400
F D x i 0z*
o i- z zoo z - )0- W W 4c 0 OC 0 IO0 C >IL1-W O L t- * -. I 0 0" 0~ on. CL a & Z- a . I-I.IOUOJ 20000000 0. 0 00 0 0000.4 0 ~0 ~
.JV. V -ju- jv j u ju ui U JV JVJVJ V V .i V.JV j U j Uj
00 00 000000 00000 000*00 0000 00000 000 00 00000000000000000000000000000000000000o
4. eM s'%4 Old% W U~ itOA 0%0-0 40 %D %DI ý* %0o o o -P- r- u- r- P- r-t 1-f- 0 GD *0%0ý0%0%0%a.a a 0 0 (% ý .ý ON10 % % 1ý0%Vý0ý0 O 00%m ý ýa.0ý0%ok0DO
000000000000 00 00 0408000
LIIe
r" U. N (- I. I.a -44 04 f ~ -
000. 10.0J0a0000-0w 0 K (0. wO0.00.Ob
WI-N -No fl- OD 04 N c (" It N r- ND 0- r4 N Ift 9 in- % P- OD 0-0 -4 NY n-4 in 10 t- N0 0-
0co0 00 0000,00400000000000000000000 40100000
1.4 14 -I4 ý~4 -4 4-4 -4-444 1. 4 r" 4 -i 4 -4 ..ý4 -4 4 -4 *-4 1.4 *4 r4 m .id4m 44 -4 m4 .-4 4 I4
LLJ1WSC co
I ý~w w V)WIU
-C w - -U Ix w a: MCN -w W w U)w- O
41 4-9 "C 4 4 00 4u.Moggz
D~~~~~ 0- N N N 3 3 N N N M M N~4.-
,-4 u 5-4 u4- -4 v ju- -j u4 -4 v j u v Q u v v u u1
> 31 NC4 K. 9C oc
00040000000 00000000 00 000000 00 000 00000P-4 0 .4 m 4In cp 0 P N 0 0 00000000000000000000000000000
cococco cc co coo 0___0________o____ ___
* 4 1.4 ~ -4g :g.g g- ggg :ss4 _4r4s41 4- -dP4r 4ý 0r 4s40 oP 4r4p p - 4P 44F
~~~~~~~~~ 4gp44.,44.464.INIIDg
Iz4CIz zw- .
I)z"& w w wýýO w V .
wwzo-- K 4 z wýW jý
u4. v N u4- u -u 4 N .4A44..44 N N 04' P4 a ~ -4 .4 e4P .4. W 4ILwrx 4 -4..
N N NP NA ND N- 4 Ný N* N- N N N N N% N0 N- N" N NA % 0% N N% Nt N4 N N N N N Nt N NfN
0000000U U U 00000- N00 0000000 W0J&WIJWt L L~ -
00000C Coc coo 00000,04010,00,000000100 cocoa00
r-4 -4V4 P4 P4.49-4 4 P4 q- 4P- W-p4 4 -04.94 V4ý-94 @4 V 4 " 94 P 4 V r4 4
V 4 r 4 r4-4 04 F4 r -4 4 94
x LII>- CK Qw M LJ X = 4
Iw w =) D(t z LIa C 0 0. Q JO- I 0 I-a zO.O
I WT 1 1 -I-0OVI I 2DZZVWV.J3 1
N ~NNNNNNNNNNNNNNNNNNNN N N N N N N NUVJYVVJVUJL)L) VUVJVUV.)VVVUQUV
. 0. CL m a-
0000000000000000000000000000000000 00000%00m 4N l00%0-4NNM 4 laf WCNOýiIAJ4nNo-
00 00 0 00 P4 - q -4 .4 "4 .494q4 P4 4 P- 4ý- 404ý . p - - 4FIP -
M V4V4 4 ý ý4M r4 ý4V-4r4 4 #I v4 04 ý4P-4r-4 M " M 4 r P4 -4 " Y4 ý V- P-
U ggggggg ooooooooooooooooocoooooooooo n0 0 0a O 4 - .4 00 4r4 .4 4 P4 ý
4.q -4P4.v
4 V,.4 ,4 0 4 ý 4 P 4 P4 4.4P4 *
r4 f- "r 4ý 4r - 4#104o.r - - 4P4ý 4r - 4vdr 4@4rOr 4" 4" d
0
ac WI 049zw .-ix 0 0 OO
uJ w.- -4C ZI j ) 0 - .
.DW 0000I
Il Q~ 0- .. 4 N0000~a U I-W. I -N O00 I- *'* (-
N .uI),-U3ZO00OCO- I.-
NO 0 * *- * 0 m 0 ý4J I-- N+* * * * J_ 90_ .
coc . 00000000000000 00coc 0 00 0
I -Vi A6P mogn1 %%ftoP # w nt
000 000000 0 0000000000 0 000000-4 4 F4 -4 P4 r4 .4.144 r4 .o 4.4.14r4.ý4r4 .4.4P4 - 4 .4 .r4ý4-4.-4.P4 cV4.4.P4.ý4 1.4 .4 -41.4 mP4 .4 V.4P4.v4.ý4.4.V4.ý4.4.4.4 .4 .4 -4.4ý4 .4.04
w I
0 w w co wU- 0 co Ko
0 x U
.4 V Z to
I. 0 I-. w ww0- z dc U 0 x tfl.-
w -LJ V) W Z WW
* r ve a. 4KH L K W
*U ucr -i t. *( 10 0. 0 10
u~~~ z0 iU=NO-1< 0 39 D 1
at -i. -j.4~ ý*~ 4 M.~ v. - z w
*a z w -C0 - aW0,who~ ~ CL. 0..J) 31 N w ý L
Z4 44 V) L
4( 0
uj I
0 1- fw I z o3t - VA - 0. 0 0
I-- - Vj z - V r
0l4 atu < -1 - I-Xoz ) c w0. U. z cc 2: zW UCA0 J zU Xv a.L I-w : -
we. .- < -K u 0ju u-0 z U *-.z -C 0 4K
OV V)-e~ ai w . u I - - .
- ~ . wA W - u
40
0 0.t O%-4 1-4 -4 m 4 .-4 aJ ~
40 0 C) 00 0 a > 0 > U..
+ 0 0 0 tn a'i -4 *1o 0 a -4 4hr4
I vI- I.- tI-
N N N
0 00 mm% ,a0 0 000O 0000O 0-4NNwNf 00000
M a "aIw o 0 NQ .0 p 9 4V 1I! %42 0 ý 00 4400 0%0 1 %O 0 %AP 10
00000 3-00ICCO100
000 000000000000000000000000000000 0 i1.4 -4-4 -4 -4 -4 14-4 -4 -4 -4 -4 4 -4 r4-4 "4 -4 4 4 4-4 4 4-4 4 04 4 4 '" 4 4 4 '. ' (4 )
ILI wz
x )I.- W
3 02 V 0- 39I
In w --W3 0 Z)i 0 0 W LL 0 0
Mi B-LA Il 0 V) LZI 0 ! e 0Li w - 0 0 I0 - Zv - .O 34 4L x U.j .
0- zLe U). oc Zruz ; 00 AIO zI W 0i. IL 4 x< o ui
3.- In i 0 ~ D x u W L 4 i Lia I 0WO u VZ4W~ Li 09L ~ J - I
x-4 3U w 0D 4I I z wq U) 0Cc40) . m 0- Iwoe M- i wr xo xVju)
0J 0M <W u- ) W I- u WilZ ", I- 4
I. 4c 39 X ZW U) e-C. U))00 0 IOU M )
m LI w wz U) 0 )0 o z C
L -'0 oc00L 0 000 1.0a-4 -4 0. w4 U. Ii.Uw10 w LL.LLL U- D 0 .
ID MC & 3 *M'44%L 4* 0 U. 0 4On - co o 0 0 ML r-0O 0 000 0 '00
0, 00 w (f . **.4 * a 0~ 0 N .- 4 0.OS.00Li00+ *S-4'0 '0 6 '0 0 OO U U 6 I0
¶ 3--4 )--u I.-~ I--O 1. ' . 0 <* 00 0u<eV 1 . 1-O V o '0
00 0-000000000000.0.(i0444o4o S- 1-N* 0
M r4 -- -4~ + 4M-4MMr r-4Z+ -4 ~4-4 rlý-" 4 ZZ.4
T I 4w 44V4. 4 41 4- 400. V4000 4ý 4rI4- 404" 14- 404" -4OO OwooO O o 04V- . 04 . V4 -44
U -
Ux w 39
( 0 0 v a'0 0Q Z z
4c -- K
u ~ U 0 U39 :) 0 0 ,
MI' < i w U.. 0 0W.. cz v CC <i: -C 0
< w m 0 .- M~o LLa..- wo a win 0 n 0 W<DU W WWXK v0L . IA
LL 0UO LA.' LW LZO 0. (DJ Wt 0L 0a LAt
000 UL en a .4 U.a40 U-S
0 0 o 0 c o 0 CO M KU Ora go
%D j _ 0j 44 WIC* W 0 V- * WJO
[u 0U 000 U j I.- I--l- x WU u o UJO 0.
0- -4 u-4 4 Irk
I oco 000000 00 00~00"0000-00000
rS4-Sq-4 p . 4-494W49404V4" 4W 4V 4ý 404 V4 w 4 V4r4 V4
Ix QA'4,
000 ~ ~ L 00 0 0 0 0 00 0 0 0 0 00 0 0 0 0 00 U.IX ***4***4m I
cr z 0
1, 01 0.) Lu0 (jm-
-4 a0
C D l CD Go
c -K0000000000000000000000
MIA-4- 00%ý%~ o% o t1-f-r-- -- 1 0 o w w D %c%ý0
r' 4r4ý -4 .. 4 rIP 4ý4P "04ý f'4 ý4 0- 4 - "P4 r - - 4P . 4P
coooooooooooooooooooooooooooooooc0oo
z
Ixz 00 0Z
I + UZ*_0 .-4 N mf 4. m 0 P- 0- 4 WN %a 4 fl- 0 t- -I N M1I4444 4 4wflm nd &m 0-0%
N N Ny NY N N N N N N N% N NY N N NC. N 4 N N Nv N 4. N 4y N Ny N N cm -a4 tO 4 4.
-%41%0% 4- 0- 0 0-a0 0-s I-b I 0-0-0 M---90t -49000 0- OWN-* 0-0
0 c - " - r 4v- 4P4mf4P4v 4 4v 44# r4P4. . 4 4* 41r v 400p .
f- 0000 -4r - 4 14 -4 "4 P4 P4 M e -4 M - f-4 F4 v4 g.44 P4 P4 f-4 r-04 u-I v" r 4 f4u " 4 -r r4 V4 "4
0 0i
S-4 r -0 -1 .4 1 .4 4 1 44 ý4 r 4 ý 4 4 .4 4 " 4 .4 -44 # .or4 W -4 U4 r4 qr4 P4
z,4
4 w19-i
LaJ 0
41 ) Z;W4s~~0E~' -. i .0 K W i
0. W
4 IA I-O-0
%0~~~ %* * %0 f- f-I -r -0
4 1- 0 CV 4 V) V)~-(44*N-4 N %0' 40Z*DU K0 0 1 U* muo~I
>4 L C . I. UI.-I*-4 N 4c z(U
OOOUUQUQU %J
0000000000000 00000400000000000000008
el-O0 ~ 4 JJ4 OOQ~ %"4 . 4fIV 4P404P o" 404 ( - 4ý -4r4P4P404040 - - 4V 4V . nm(f- P4 4 4 4w4v"0- r4r4ý40- ý -414-4ýqp " ý " V 4 q 4 .494 -414V- 4 4 q " -
I 1'
4EI
V) 0)
LL 0I Ix0. i 0. ý L
I w
* - N fý%
.~. .~ . ...oVVV -4 V M V 4-4'444*'4r-e..qvz*r-00 zzf4-4-4
0000~a 0000
0000000080000000000000
"-4 r41"-4 V -1 - -- 4 -vv-4 4r -4---4 -"@-4 0-4 P0-4 0-4" -4 -4-4- -4- -- 444- 4-
-4 He0 I
00000 0 00000. g
4c0
0 00
0 1-44-1
a. z zz +
-j 0 0 t d
Nia KI NC' -H4wA in 0 a-I.- > '0-
0oco co 0--N.4VV- 0 0*0000.-1 *(4.00a-000
Nt-* InU) %Dil -W- O.10 -.0 N M M %a - 0 k -'.4"M I %a 1-~ 40 4-
4r4444 tW 0 % a% a ar ýr - p -r ,P4t-*0' 4f 0t4 *4 4 44 4 0 4V"V4p 0F -H041 4 0 - 4" 4P - - "r - f" V -4 oP
co00 0 00000000080000.000808000 a 000000000o000 000000 00 0
U)c
U zo
I.
IVI
-4 N IL LL- *L r4L aL aLw * W a0-3
': -4 ,~ 4
1;C-
.,4 IK JX (K at i a: ix l ca. e c CI1- oIac~zec ~ U- f&ac ;4(* V N I- ww i w w w aWý 1. 0 * * w II0 - 3B 3
00 0 00 0 w0 0 O0~ 00 0VV j-000 0j 00 00 _OOO N 00j I fI KlzWV tI 9
IfiJ ) g0_ *x0e4 0O ~xxxxx -1-_ v I- .
*cc 0 00 0 00 1 .40i C 0 00coI OOCCC~rf OPI yI n C ) 4N4" I 0r 00 l DI0 ,4 0a40 %0 i v
S t# ' 4 4 4 # 4' ni n0
I 0O000009000000
u IxIIw c c LJ0tN> L L Wc j U.mo
o o DZt-4 c' :D LL .*aZ3xQ Ci *i co c CD0 wiM I. X.- 39 ao 31 Z Z LL I--
0 C W jOML WO-IXO0390
3OC 3z 33 o o'r- Z
z 0ý- -Oxov z IL0 w z --i C lz K 0 W. Z
4 1UJ - w w w - o I 0
F3'2 0 z
Vý a 0% 3 K0l 00 w
z z0 0 atX ID - t 0 - m M 3 39 &LL .31-J w.
W N 0 0 '-40 0 X '-ý- 3 w 0 CKM C 39a
x 9O WL V4 0 31t M5 -O 9(0 0 W m-4 c )0 3BC O a
LL 0 at% a z at1 41)~-
CL Q. 8 $- -4 0 "oWL V U- z C 0 9b
ZOMo -K V)o1- 1- . ýzV 0 -in o- 4v08. zxvxOW W 0 i 1.- X~ 0n .. J0 %J 3OVO& W
W 16-0 0 W z ý Nm 0O1--) 0433U wt~ 4I 0~O~UJ wKZO ý1 UOZ
* 1 UI. 040w U)N 0 U ~ ~ -W M " ý 0 & 39 3 w.a KuCD3
w %.Z < "m-'-j a NUJ->X W3U.31-KU =)
1*4 IDW&O.4V K NdL 0W cocw- a.A. Os-UL ZJVAJUJ3 ~ ~ OA v b-'-'I-WO0 %vtXO-)
5 ZL 0<000)1- 0J U.4 &WWZW4Wz ~wolmWooZWZWRI
V) S .x- z a4I--V
-4 0 4 ..- a4 *~
0-4* . q
5 S S
a U), a 4 - 4Vv I
P- 0r 06 -a0 04. 3 . lt I iw
IiJemb
-i~~~~~~c IxI-. r-C i -3C L
w .)zU DI .- I- 0- W-- u LL4 u-
0I W xi LL-. 4 Wr 4c [owm C
I-V LaW- 0c co UK 4K x xL 0 zw Z3
x MO.O*X W-M= o-f-0- Q - co -O CL UJ W OwWWU go ow NIOL) 0<-I-- -- j0I-- Qe. 'ý- C, 0z cI-JJI) ~ I- Zi) z ~ - U0 -) M4 M .- <-xJ)
"44)( 0 IL0 Ox~O Q)NX 04t N4c 3.90 0UV)U4)>W 0 310.0 Uw Z.-' ZO.O 01-- kX xx-Z0 31--I-UWw
wcxI-)(.-.W X0 U-V XLA- V)- I. - -L U. U- c~0 < ,-C wv
-W N44 OUWO.0 (0.W1LOaJU-CIULLO-tIUu.QWLLCL)4JjI-- Wc4uJW
0.-
,4 0 0- >st >4 > n > 04 > -4 >NII*'- 0+ 0+ 0+ 0+ 0+ 0 (n 08 a3 c N 0*4 -C x ~ CO 4h CO 0 o aC* 0C 00
0 4c O it ~0 ' 0 _j na4 a 4 -<.4,0< P-Nf ,t4 4 *0& I.- CM-4 N OC(L * *1J4 * 0 CN4#-- *N #- *IX"t- 'NI- O t*x a..)JC. I *OCAJQ+ ox>4+ OL +0..0. + .*+ a. &+O CL +0. **0:rW a
0 0 z xC 0
0. 0I30t u 0 -%N
00I: cI Q~ I~ Vz N
0 4V U I -
z uJ 0 x0 0~. a
0O. z- a* 39 v toNo
3 ZZc VC 1.- 0, .4 C4 %-. w ~o~ 0 0C a. t oN
0~W 3Z'OUW W uJW4&- -t r4 't0ZO 0wwVOý $. DWJ~) a *N (n%
X.-00z Ou..u.. 1.-U~ 0,NCn 00
x W U)a0U f2 - CV0a: OuZ3-w x 'J O4( 14 m-
.0 00< MM- O0*4z %
1w z ~ o w -x 0 &4(&
w 0.- ww40 < aA 0 ~.0 r-a000 vww wu w w 'I-N-.N(. i-O.(n%.MI a *0 n 441 +w a V.0 & ' , '-%.% 0 44 ..
0~~''. w w ClXO ~ z< r0%<Wm1U W Iflh0b-4 4.1).-S 0 00 o *. wo0 O0
a I.- i.- .i U..jj.~~ .. -U WJ Wii 1i - 0 0 0 0 ) 0 &n " 0v ~ 0(I00 w 0 I ý U%0%00%
I-~~~ý *-S .5 .J 4; 5
a 7t CC 0 0 444M Ma r- U) ýU4
Nr4NOC 4 r- 0%m % c O KOW
P>OvzVC00U caý- aC-4. %0 .4.4.4
IX Nea x<> > r- n0 rII 0U 0 r 1-0 m4
~e m
D M D DD D D 3 DD D D m D U.IL L Lwwww wuiw www wwww wwww www wwww a11
w tL U.
0- P-4..4 V4.f4.4.44. NN 4.. N NN Nm m mm mm 444 04
Ogloo o m moollil mm i m an0 mlt mmIlmP-404ý4P-40- ý 0. ý " -4ý4 4 4 4 ý ---ý40- P4 -I q 4 4 0 1. " 0- P "Ip
"I, I 44 '4
I wwwzzzzzzzzzzzzzzzVIV )4)0V )V 1 )V )0V)0)V )00V f )V )V )V
I uwu0000Ix
I--L tLL.CI * Nr DýO oYtI-DIt4M% 4VOA ýn*Or4P4% nCI 0a Z4 KW4 9- < 4<A<444<<4444
000000 00000000000000I -yf n % .a0 - 1 * 1Nm40% -a00ý00000n0In0In000A0UN0o00 I n0- a41 %0OD1 -r * - -r -t -P 00 0000000nUI n dt n noInmi 000in m0In0 0040mInW0Inon0 In dN n InI- 4P 404V -.-"04ý . 4f40. 4" -q0 - qV4P4f4040 404P
APPENDIX B
DISTRIBUTION LIST
3 SECOND QUARTERLY REPORT
DA 36-039-sc-89231INo. Copies
I OASD (R&E) Rm 3E1065ATTN: Technical LibraryThe PentagonWashington 25, D.C.
Chief of Research and DevelopmentI OCS, Department of the Army
Washington 25, D.C.
I Chief Signal OfficerATTN: SIGRDDepartment of the ArmyWashington 25, D.C.
Director, U.S. Naval Research LaboratoryATTN: Code 2027
I Department of the ArmyWashington 25, D.C.
Commanding Officer and DirectorU.S. Navy Electronics LaboratorySan Diego 52, California
CommanderAeronautical Systems DivisionATTN: ASPRDL[ Wright-Patterson Air Force Base, Ohio
Commander, Rome Air Development CenterATTN: RAALDGriffiss Air Force Base, New York
Commanding GeneralU.S. Army Electronic Proving GroundATTN: Technical LibraryFort Huachuca, Arizona
I
I Q63-4N B-i
S[11
No. Copies
Commanding GeneralU.S. Army Electronic Proving GroundATTN: ADP DepartmentFort Huachuca, Arizona 1-I
Commander, Armed Services Technical Information AgencyATTN: TIPCRArlington Hall StationArlington 12, Virginia 10
Chief, U.S. Army Security iiArlington Hall StationArlington 12, Virginia 2
Deputy President DU.S. Army Security Agency BoardArlington Hall StationArlington 12, Virginia 1
Commanding OfficerU.S. Army Electronic Material Support AgencyATTN: SE LMS-ADJ
Fort Monmouth, New Jersey 1
Corps of Engineers Liaison OfficeU.S. Army Electronic Research & Development LaboratoryFort Monmouth. New Jersey 1I
Commanding OfficerU.S. Army Electronic Research & Development LaboratoryLogistics Division [ATTN: Mr. N.J. Taupeka, SELRA/NPEFort Monmouth, New Jersey 3
Commanding Officer IIU.S. Army Electronic Research & Development LaboratoryData Equipment Branch, Data Processing Facilities Div.Fort Monmouth, New Jersey 1
Commanding OfficerU.S. Army Electronic Research & Development LaboratoryATTN: Director of EngineeringFort Monmouth, New Jersey
Commanding OfficerU.S. Army Electronic Research & Development LaboratoryATTN: Technical Documents CenterFort Monmouth, New Jersey 1U
0B-2 Q63-4N
No. Copies
I Commanding OfficerU.S. Army Electronic Research & Development LaboratoryATTN: Technical Information Div.Fort Monmouth, New Jersey
ADPS CommitteeOfficer's DepartmentU.S. Army Signal SchoolFort Monmouth, New Jersey
Information Processing BranchDept. of Specialist TrainingU.S. Army Signal SchoolFort Monmouth, New Jersey
MOBIDIC Project OfficeCCIS-70 PMSOU.S.A. Electronics CommandFort Monmouth, New Jersey
I Ordnance Stock Control AgencyAPO 58ATTN: Maj. C.S. MoodyI New York, New York
7th Army Stock Control CenterAPO 872ATTN: Capt. D. LasherNew York, New York
I Philco CorporationATTN: Mr. S. Berkowitz3900 Welsh RoadWillow Grove, Pa.
RCA Surface Comm. DivisionATTN: Mr. A. ColemanCamden, New Jersey
BI
I Q83- 4N B-3