best available copy - dtic · 2018-11-09 · cobol compiler whereas the second set of three...

130
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., Mwanager MOBIDIC P+ojects Best Available Copy SYLVANIA ELECTRONIC SYSTEMS--EAST SYLVANIA ELECTRONIC SYSTEMS A Division of Sylvania Electric Products Inc. 189 B Street-Needham Heights 94. Massachusetts

Upload: others

Post on 24-Mar-2020

2 views

Category:

Documents


0 download

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

!

III APPENDIX A

I RUN 1.0 PROGRAM LISTING

II

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

ii

r1�¶ 4 Ii'

-q "I4 0 1',4 0 I

- C

4 II.1

* IU

4 1I

4 14 1

I- I

.0 14 w

I* 0* 0

4. 14 -

4 1

$1 II!

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