U1518_FLOW MATIC_Programming_System_1958 U1518 FLOW MATIC Programming System 1958

U1518_FLOW-MATIC_Programming_System_1958 U1518_FLOW-MATIC_Programming_System_1958

User Manual: U1518_FLOW-MATIC_Programming_System_1958

Open the PDF directly: View PDF PDF.
Page Count: 126

DownloadU1518_FLOW-MATIC_Programming_System_1958 U1518 FLOW-MATIC Programming System 1958
Open PDF In BrowserView PDF
UNIVAC

- - COMPARE PRODUCT NO. (A) - - .

- 800940 - - - L00880 ~'J

'-F_. . . . W-MATIC
,
31

oQ
I

~

I
I•

z
a

II

<
II

.

1ft

I

®

~I

UNIVAC

I

-COMPARE PRODUCT NO. (A)

- - • - 800940 - • - LOOaaO - - - -

W-MATIC
. ..-OG.-AIVIIVIIINIG
S'VSTEIVI

ANOTHER SERVICE OF • • .

MANAGEMENT SERVICES AND OPERATIONS RESEARCH DEPARTMENT

DIVISION

© 1958-

Of

SPERR' RAND

CORPORATION

SPERRY RAND CORPOR"T ION

©

1958- SPERRY RAND CORPORATION

Preface

WHAT IS THE UNIVAC

FLOW~MATIC

PROGRAMMING SYSTEM?

THE UNIVAC FLOW-MATIC SYSTEM is a revolutionary new programming aid developed
for the UNIVAC Data Automation System by the Automatic Programming Development
Group of the Remington Rand Division, Sperry Rand Corporation. Using an
English language description of application requirements as its instruction
code, this new product is especially designed for use by those who know and
can best define their data processing needs. ·With this new system, the Computer is directed to accept descriptions of application requirements in the
busines~man's vocabulary and translate these descriptions automatically and
accurately into detailed coded instructions.

WHO CAN USE THE UNIVAC FLOW-MATIC SYSTEM?
The systems and procedures analysts, the accountants, operating management
can use the UNIVAC FLOW-MATIC SYSTEM wi th Ii ttle training. Familiari ty wi th
detailed computer coding is not necessary. Familiarity with the desired
system, and the ability to describe it are the only prerequisites. The experienced programmer will also find that the UNIVAC FLOW-MATICSYSTEM facilitates program preparation.

WHY USE UNIVAC FLOW-MATIC?
The UNIVAC FLOW-MATIC AUTOMATIC PROGRAMMING SYSTEM offers to its user unprecedented benefits, -- benefits such as:

Faster and more accurate Programming - The coding process utilized reduces
the elapsed time between the original conception of an application and the
checked out final processing. The concise method of expression greatly reduces chance of error.

1

Easier Programming Analysis - The inherent step by step approach leaves a
trail of easily understood documentation, important in retrospect if it becomes necessary to alter the programs either because of changed requirements
or modifications in t~e data processing system.

Checks Systems Des i gn - The ease of preparing

UNTVAC FLOW-MArIC charts, plus

the flexibility with which changes can be made facilitates greater use of
pilot systems to check the basic logic of the system design.

One-Shot Jobs Now Practical - The programming of many one-shot jobs formerly
considered impractical is now not only feasible and economical, but also
provides invaluable addi tional fact power to decisio.n making management.

Flexibil ity - Changes in either the processing procedure or data format can
be accomplished independently without affecting the other.

ABOUT THIS MANUAL
Straight-forward in approach, this manual is so designed to serve the gradational need of the user. Later chapters and appendices furnish detailed
information for the experienced programmer.

11

Table Of Contents
Page

Chapter

INTRODUCTION
A COMPLETE SYSTEM WHICH MEETS ALL USER PROCESSING
REQU I REMENTS ......••...•..••.••••••.••....•••••...•••••••••••

2

I
2
2
2

AVAILABLE EQUIPMENTS AND THEIR FUNCTfONS •••••• •••••••••••••
THE UN I VAC II CENTRAL COMPUTER.............................
THE UN I VAC II CONTROL GROUP................................
UNIVAC INPUT DEViCES....... ••••• •••••••• •••••••••• •••••• •••
UNIVAC INPUT,..OUTPUT DEVICES . . . . . . . . . . . . . . . . . . . . . . ..........
UN I VAC OUTPUT DEV ICES ••••••••••••••••••••••••••••••••••••••
ILLUSTRATION OF INTERRELATIONSHIP OF EQUIPMENT •••••••••••••

8
8
12

THE FLOW-MAT I C METHOD •••.••...••..•••••.•••••••••••••••••••.•

I3

q.

The steps to be followed in applying this new method of
programming are described in terms of a data-proce8sing
problem.

3

FLOW-MATIC CHARTING AND PROGRAM-WRITING •••••..•••••••••••••.•

26

The procedures for drawing flow charts and writing Englishlanguage programs are described. Sample Problem 1 is
programmed.

FILE-DATA LAYOUT AND DES IGN ..................................

35

The methods of writing descriptions of data files, items and
fields is given, along with the pre-printed forms used.

5

INTERMEDIATE OR WORKING STORAGE ••••••••.•••••••••••••••••••••
Sample Problem 2 is introduced requiring working storage.

60

The method of utilizing this feature of FLOW-MATIC is
described.

6

RELATIVE MACHINE CODING, X-I .••••••••••••••••.•••••••••••••••

72

In order that special or unique subroutines may be included
in the compiled program~ a method of machine coding is shown.
Sample Problem 3 indicates how this is used in a program.

7

THE FLOW-MATIC COMPILING ROUTINE.............................

S3

A rudimentary description is given of how the compiler operates, and of the record of compilation prepared for the user.
Appendix

A

FLOW-MATIC FUNCTIONS, GUIDE FOR WRITING FLOW-MATIC CODE,
FLOW-MATIC STATEMENTS........................................

91

B

DATA DESIGN PRE-PRINTED FORMS •••••••••••••••••••••••.••••..•• 101

C

RELATIVE MACHINE CODING X-I .................................. 105

o

FLOW-MATIC OPERATING INSTRUCTIONS ............................ II r

INDEX ........

I:

•••••••••

a

I

•••••

e· • • • • • • • • • • • • • . • • • • • •

'0 • • • • • • • • ••

II5

111

Introduction

The FLOW-MATIC programming system provides for the UNIVAC user an entirely
new, different, versatile method of writing programs. The key development
in this system is the conversion of the FLOW-MATIC code in the businessman's
vocabulary into standard computer code. The primary objective in the development of this system has been to create a tool to assist analysts in
the preparation of programs for data-processing systems. This is the first
major step in the direction of a general-purpose programming aid for dataprocessing users.
The use of the FLOW-MATIC System involves the following steps:
Data System Design

~
~
Process Chart of the Run
~
Block Chart of the Program
Complete Run Definition

~

FLOW-MATIC Chart

~

FLOW-MATIC Code
lV

The user may also be interested in the general picture of the entire process
in preparing a program with the aid of the FLOW-MATIC compiling routine as
shown in the graphic presentation as follows:

Data System Design

~

Complete Run Definition

~
~
Block Chart
~
FLOW-MATIC Chart
Process Chart

Programmer's Contribution
(English Language)

~

FLOW-MATIC Code

~

COMPILER
.
[Translation of FLOW-MATIe]
FLOW-MATIe L1brary ---. Code into Computer code

~

Computer's Contribution
(Computer's Language)

Compiled Running Program
in computer code on tape
ready for processing data

The primary consideration in the design of the FLOW-MATIC system is the (data
processing) user and the types of programs required by the system he defines.
It provides a complete method, or procedure, which begins with the first
definition of the problem or application, and continues throughout the checking out phase and into the program and system refinements which follow the
initial operation of the UNIVAC system.
Both the manner and the extent to which 'the FLOW-MATIe System is used depend
on the individual who uses it. The expert programmer may use the FLOW-MATIC
procedure during the initial definition of UNIVAC runs to facilitate communication between the computer programming group and operating management. If
the major function of the expert programmer is to supervise a number of less
experienced people, he can spend maximum time in the definition and analysis
v

phases, carrying out the steps of the FLOW-MATIC procedure only so far as is
necessary, depending upon the varying abilities of his individual programmers.
Still ano!her possibility is that of utilizing FLOW-MATIC to produce the first
draft of a program which, because of its high degree of repetition, may later
require ingenious modification and application of the "tricks of the trade"
known to the expert programmers.
One advantage the FLOW-MATIC programming system offers to a data-processing
organization in its early stages of growth is the reduction of personnel
training time. Within a comparatively short period they will become expert
FLOW-MATIC programmers and system designers. As with any powerful, generalpurpose tool, users increase in competence as they gain experience. This
does not, of course, remove the need for experienced, career programmers.
Every UNIVAC Data Automation System installation requires, and is benefited
by, experienced career programmers who discover operational flaws in programs
and systems, correct them, utilize their intensive knowledge to solve especially difficult programming problems, and add to the effectiveness of FLOW-MATIC
itself.
It is important to point out that FLOW-MATIC is a growing system designed for
continued expansion and development in a variety of directions, all within
the basic framework of the existing structure. It is expected that this
growth will proceed in such a way as to make the system increasingly useful.
Although the programmer who uses the FLOW-MATIC Compiling system is not required to know the internal operation of the UNIVAC Data Automation System,
he must be familiar with the manner in which the computer reads input data,
performs various operations and delivers the desired results. Chapter I gives
a brief description of the UNIVAC Data Automation System together with the
specific function of each individual piece of equipment.
Chapter II provides the reader with a quick, comprehensive view of the FLOWMATIC method. It presents a sample application, and traces the procedure
to be followed in programming with this system. Later chapters develop the
detailed techniques involved in each step of the procedure, and through the
introduction of extensions of the basic application, additional features of
FLOW-MATIC are explained.

V1

chapter 1

A Complete System Which
Meets All User Proc-essing
Requirements

The Univac II Data Automation System is a complete and well balanced data
processing system. It will accept and prepare information through a wide
variety of standard data-recording media. The user gains versatility most
economically since the Central Computer, that unit which performs the actual
processing, can read and wri te information directly through the magnetic. tape
which is one of the most rapid input-output media in use today. Peripheral
equipments convert all recorded data into the form acceptable to the Central
Computer, or from the form prepared by the Central Computer (Univac II System
code on magnetic tape) to the desired form. In this way, the system has a
dual advantage. First, the Central Computer need not be hampered in its
processing task by the necessity of working directly with input-output media
unworthy of its lightning-fast internal operating speeds. Secondly, the
Central Computer need not be involved in conversion process which can most
economically be handled by p~pipheral equipments on an off-line basis.
From a wide variety of available equipments each Univac II System user
chooses the units which, when molded into a system, best meet his overall
data processing requirements.

AVAILABLE EQUIPMENTS AND THEIR FUNCTIONS
THE UNIVAC II CENTRAL COMPUTER
The Univac II Central Computer in Figure 1 is the heart of the Univac II
Data Automation System . It performs all arithmetic and logical operations.
In the exe c ution of a typical data processing t ask the Centra] Computer
perfo r ms the following basic operations:
1.

Step - by - step instructions, stating specifically the operations to
be pe r formed on the data, a r e read by the Central Computer from
magnetic tape and stored internally within the Central Comp ut e r .
Obeying the stored inst r uctions, the Central Computer then automatically

2.

Reads the d ata from magnetic tape and stores it inte r nally .

3.

Performs all operations upon the data indicated by the instructions,
and stores the results internally .

4.

Reads the results from storage and writes them on magnetic tape .

FIGURE 1

All operations are self-checked to ensure that they are performed with the
unwavering accuracy and dependabilIty that has become associated with the
name UNIVAC.

2

THE UNIVAC II CONTROL GROUP
Two control units are directly connected to the Central Computer, and each
in its own way, provides some indication of the actions of the Central Computer.

Univac Supervisory Control Console

The Univac Supervisory Control Console (Figure 2) provides the operator with
a continuous picture of the operations t aki ng place within the Central Computer. It also provides visual indication whenever an error occurs in any
operation, identifying the faulty circuit for the maintenance technician.
Although the Central Computer is designed to operate automatically, there
are occasions when manual intervention may be desirable. The Univac Supervisory Control Console includes a keyboard by means of which the operator
can type information directly into the Central Computer. A group of switches
and buttons on the Console allows the interruption of automatic operations
and the institution of changes in their course or'the substitution or insertion of other operations.

FIGURE 2

3

Univac Supervisory Control Printer

The Univac Supervisory Control Printer (Figure 3) is a modified electric
typewriter which prints information directly from the Central Computer. Its
primary function is to provide the operator, in easily readable form, information concerning the processing being performed within the Central Computer.
This unit is sometimes employed for printing processing results; however;
it is used for this purpose only when the information to be printed is not
lengthy.

FIGURE 3

UNIVAC INPUT DEVICES
The function of Univac II input devices is to convert information from its
original form into Univac II System code recorded on magnetic tape. These
devices are completely independent of the Central Computer, so that while
the input devices ~repare data for future use by the computer, the computer,
itself, is free to carryon the current processin g problems . This ability
to overlap input preparation and computer processing represents a large saving
of time and thus money, for the user.

Univac Unityper II

The Univac Unitype r II (Figure 4) is a device by means of which information
legible to its human operator can be recorded on magnetic tape. This device
is somewhat larger than, though similar in appearan c e to, an electric typewriter. The 26 letters of the alphabet, 10 numerals, and some special Univac
II System Symbols a re represented on the keyboard of this device in an array
similar to the familiar typewriter keyboard pattern. Striking a Unityper
II key causes:
1.

A pattern of magnetic spots representing the Univac II System Code
for the character represented on the key to be recorded on a magnetic tape mounted in the upper portion of the device, and

2.

That character to be printed on a piece of copy pape r mounted on
the carriage.

Thus, recording information on magnetic tape with the Unityper II involves
little more than a retyping of the information. Inform a tion is tape-recorded
by the Unityper II at a density of 50 characters per inch with a 2 . 4 inch
spacing between each consecutive 120 characters.

FIGURE 4

Univac Verifier

The Univac Verifier (Figure 5) is a unit of peripheral equipment which can
operate in anyone of two capacities:
1.

As a primary input device which rec o rds information on magnetic
tape by means of a typewriter keyboard in very much the same manner
as the Unityper II.

5

2.

As a proof reading device which corroborates information recorded
on tape and permits the correction of detected errors.

Its primary use is as a proof reading and correcting device. Information is
recorded by the Verifier at a recording density of 50 characters per inch with
a 2.4 inch spacing between each 120 characters.

FIGURE 5

Univac Punched Card-to-Magnetic Tape Converter

The Univac Punched Card-to-Magnetic Tape Converter (Figure 6) consisting of
a card Reading Unit, a Control Unit and a Tape Unit, allows the entry of
information into the Univac System in punched card form. Cards are loaded
into the intake bin of the Card Reading Unit, and the information read from
the cards is recorded on magnetic tape. The entire process is accomplished
automatically and its operation is completely self-checked to ensure complete
accuracy of the recorded information. The Converter is equipped with a removable plugboard which allows automatic rearranging of information during
the conversion process.

F IGURE 6

6

Univac Punched Card-to-Magnetic Tape Converters are offered in two models.
One handles standard 90-column punched cards; the other handles standard 80column punched cards. Both models operate at a maximum conversion rate of
240 cards per minute and record information at a density of 128 characters
per inch with a 1.8 inch space between each 120 characters, and a 2.4 inch
space between each 720 characters.

Univac Paper Tape-to-Magnetic Tape Converter

The Univac Paper Tape-to-Magnetic Tape Converter (Figure 7) is a device consisting of a Perforated Tape Reader, a Translator and Control Unit, and a
Magnetic Tape Recorder. This equipment allows information recorded on paper
tape to be entered directly into the Univac II System. Reels or message
lengths of punched paper tape generated by teletypewriters, automatic typewriters, adding or bookkeeping machines with tape punchers attached, and
punched card to perforated tape converters may be mounted on the Tape Reader.
Information contained in tapes are automatically translated into Univac II
System Code and recorded on magnetic tape. Deletion of certain punched paper
tape symbols, and addition of some Univac II System Symbols may be accomplished automatically during the conversion process. The entire operation is
completely self-checked to ensure complete accuracy of the conversion process.
The Univac Paper Tape-to-Magnetic Tape Converter operates at a maximum conversion rate of 200 characters per second and records information at a density
of 128 characters per inch, placing a one inch space between each 120 characters, and a 2.4 inch space between each 720 characters.

FI GURE 7

7

UNIVAC INPUT-OUTPUT DEVICES
Univac Uniservo

The Univac Uniservo (Figure 8) is the devic e through which the Central Computer communicates with its ma gnetic tapes . A maximum of 16 Uniservos may
be directly connected to the Univac II Ce ntr al Computer . Each Uniservo contains a "read-write" he a d a nd mech a nism for moving the mag netic tape pas t
the head at a speed of 100 inches per second. Each Uniservo is capable of
reading tape moving in the forw a rd direction, re ading t ape movin g in the
backwa r d di r ection, writing on tape moving in the forward direction, and
rewinding its tape. Reading from anyone Uniservo, writing , on any other
Uniservo, rewinding the tape on any number of the remaining Uniservos may
be carried on simultaneously with Central Compnte r processjng . Uniservo
operations are cont rolled by the Central Computer through programmed instructions.

FIGURE 8

UNIVAC OUTPUT DEVICES
Univac II output devices allow the system to prepare processed results in a
wide variety of forms. They automatically convert information contained on
tapes produced by Central Computer processing into the desired form. All of
these output devices operate with complete independence of the Central Computer. Thus, the computer is free to handle furthe r processing while the
resul ts of the previous problem are being converted. Thi-s abili ty to overlap
conversion and processing operations represents a great saving in time, and
money for the user.

8

Un i va c Un i p r in t e r

The Univac Uniprinter (Figure 9 ) consists of a Tape Reader and a Printin g Unit
which is a modified electric typewriter. A reel of magnetic tape, containing
the information to be printed, is mounted on the Tape Reader. As information
is read from the tape, it is printed by the electric typewriter. The Univac
Uniprinter, which accepts tapes recorded at 25 characters per inch, print s
at a rate of 10 characters per second, and is usually used for low volume
output printing, such as the preparation of man agement r eports .

FIGURE 9

Univac High-Speed Printer

The Univac High-Speed Printer (Figure 10) is used f or large volume printing.
This four unit assembly, consistin g of a Tape Reader, a Storage Unit, a
control Unit, and a Printer, reads magnetic tape and converts the information
recorded thereon into printed copy. The High-Speed Printer prints an entire
line at a time. Each line may contain as many as r]o charac ters, and printing
is accomplished at a maximum rate of 600 lines per minute. A removable plugboard mounted in the Control Unit controls the format of the printed page
and affords wide flexibility in the a rr angement of the printed information,
reducing the eqiting and thus the processing time required of the Central
Computer. The entire operation of this device is completely self-checked
to ensure that each character printed is the exact one recorded on the magnetic tape. It · accepts information tape-recorded at a density of from 50 to
128 characters per inch with at least one inch space between each 120 characters.

9

FIGURE 10

Univac Magnetic Tape-to-Card Converter

The Univac Magnetic Tape-to-Card Converter (Figure ~ 1) consists of three uni ts:
a Tape Unit, a Card Punch Unit and an Electronic Cabinet containing the cir""
cuitry necessary to control and check the Tape and Card Punch Units. This
piece of equipment reads information from magnetic tap.e and converts the
information into standard punched cards at a rate of 129 cards per minute.
A removable plugboard permits the selection and rearrangement of information
during the conversion process. The Univac Magnetic Tape-to-card Converter
accepts information tape-recorded at a density of 128 characters per inch
with at least one tenth inch space between each 120 characters and 2.4 inch
space between each 720 characters. Its entire operation is completely selfchecked to ensure proper conversion.

FIGURE 11 .

10

Univac Magnetic Tape-to-Paper Tape Converter

The Univac Magnetic Tape-to-Paper Tape Converter (Figure 12) consists of a
Magnetic Tape Unit, a Translator and Control Unit, and a Paper Tape Punch.
It punches information recorded on magnetic tape into paper tape. The punched
paper tapes may then be used directly to send information via a teletypewriter.

FIGURE 12

As with all Univac II equipment the operation of the Magnetic Tape-to-Paper
Tape Converter is completely self-checked to ensure accurate conversion.
This conversion is accomplished at a maximum rate of 60 characters per second.
It accepts information recorded at a density 0f 128 characters per inch with
at least a 1 inch space between each 120 characters.

II

INFORMATION CAN ENTER AND EMERGE FROM THE UNIVAC II SYSTEM THROUGH A VARIETY OF STANDARD DATA RECORDING MEDIA

INPUT

Any legible

Punched Paper Tape

Standard 90 or SO-Column
Punched Cards

Documents

PUNCHED CARDTO'- MAGNETIC

INPUT
DEVICES

PAPER TAPE CONVERTER

PROCESSING

OUTPUT
DEVICES

OUTPUT
Punched Paper Tape

~
~
Printed Material

FIGURE 13

Printed Material

Standard SO-Column
Punched Cards

chapter 2

The Flow-Ma tic Method
In the introduction it was stated that the FLOW-MATIC System provides an
entirely new method of programming. In order to demonstrate this method, a
simple data processing run is developed through the steps necessary to prepare the computer coded program. The run prepared is representative of a
large class of business data processing runs. Typically, a series of such
runs linked together form a data processing system which, depending on the
sUbject matter of the programs, computes a payroll, adjusts inventory, performs sales accounting, or prepares labor distribution.
Each run in any such system is characterized by a flow into the computer of
files of data, read from tapes mounted on one or more input Uniservos, and
a flow out from the computer of data written on tapes, also mounted on one
or more Uniservos. The function of the FLOW-MATIe programming system is to
produce the program which -controls the flow of data through UNIVAC and performs the required processing of the data.

A file stored on magnetic tape is recorded with identifying information written at the beginning of the tape, and sentinels indicating the end of the
data also entered on the tape. The body of the file contains a varying number
of file items, each representing a separate entry in the file ~nd usuallY
identified by some key information such as payroll number, customer name, or
stock number. Frequently the items in a file are in ascending sequence according to this key. Each item within a file contains data elements related
to the item, arranged in a systematic format. These data fields will be
consistently placed within all items in the file. Thus, for example, by
scanning the same relative position in the items of a typical payroll file,
the pay rates for employees can be located.

13

With these few notions of the manner in which business data is stored on
magnetic tape, the process chart or run chart can be considered. The process
chart is the most general pictur-e of a UNIVAC data processing system. Figure
14 shows a series of tape files represented by circles, linked by a series
of boxes which represeht computer operations. or runs.

SAMPLE PROCESS CHART

RUN 3

RUN 2

DATA VERIFICATION

SORT

RUN lj.
MATCH & ME RGE

PRINTED
OUTPUT

RUN 5

MERGE EDIT

PRINTED
OUTPUT

I~

FIGURE 14

Figure lq. is a process chart which describ~s part of a system of runs. Prior
to the preparation of such a chart, a comprehensive study of the system must
be made. Some of the points to be considered in this study are the files
to be processed, the computer operations required, and the information desired
as output.
When the process chart has been prepared, the programming task begins. This
is the starting point of the FLOW-MATIC method. Consider, there'fore, the
function of run number q. of the process chart (Figure 15).

PROCESS CHART
ABC MANUFACTURING COMPANY INVENTORY

RUN-q
APPLICATION OF
PR ICES TO
INVENTORY

PRINTED
OUTPUT
FI GURE 15

Suppose run q. is part, of the UNIVAC inventory system for -the ABC Manufacturing
Company. Inventory balance items for all manufactured products are tO'be
maintained on magn~tic tape and represent one of the input files to this run.
Since prices are not to be carried in this file, it is necessary at intervals
during tfie year to apply current prices contained in a Price File which is
the second input to the run. One output of fun q. is shown to be a Priced
Inventory file containing all inventory items for which prices were found
in the Price file. Since the two input files were maintained separately, it
is possible that the Price file is not complete. Thus a second output file,
the Unpriced Inventory, will contain those Inventory items for which no price
was found. The system further 'requires that such unpriced items be printed
on the Highspeed Printer so that they may be checked and the proper action
taken.

15

The diagrams below show an actual example of the contents of each type of
item in the problem.

INVENTORY ITEM
00

o 0 0 0 907 3 A 1 0 1

01

o0

02

000 0 0 0 0 0 0 000

03

COO 000 0 000 0 0

0 0 0 010 0 2 5

~

This is the product number; it may require as many as 12 dig~ts.
This field is the quantity of this
kind of product on hand; it may require as many as 6 digits.

3

05
06

Other data (not used
in t his pr ob 1em)
appear here.

....

07

08
09

....

PRICE ITEM

16

00

o0

01

0000000

Th is product number shows that th is item
ap plies to the inventory i tern given above.

0 0 9 073 A 1 () 1

o

1 095

...-

This is the price for one unit of this
product. Up to five digits may be used,
and since this number represents dollars and cents, the decimal point is
between the third and fourth digits $10.95.

PRICED INVENTORY ITEM
00

o0

0/

o 000

02

o0

03

000 0 0 0 0 0 0 0 0 0

0 0 9 073 A / 0 /

-

Prod uct n umbe r.
QUantity on hand.

0 0 002 543

0 0 0 0 010 I o 9 5

Unit price is inserted here.

:4

05
06

Other data (not used
in th is problem)
appear here.

.....

07
08

09

~

UNPRICED INVENTORY ITEM
00

o0

C 0 9 I 5 6 A 0 2 3

0/

o0

000 0 0

02

000 0 000 0 0 0 0 0

03

o0

()

o5

Product number for which
no price can be found
Number of units of this kind
of product on hand.

2 7

0 0 0 0 0 0 0 0 0 0
~

05
Other data (not used
in th is problem)
a ppear here.

06
i· ....

07
08

09

...

17

The key by which the price is matched with the corresponding inventory item
is the product number. These files are sorted in .ascending sequence according
to product n~mber by previous runs. The sorting run~ are performed in ordet
that the process of matching may be more efficiently carried out by UNIVAC
in run Lt.
The next step is to translate the description of the function of the run into
a program for UNIVAC to follow in producing the desired output. It is in'
the logical analysis and organization of this program that the skilled programmer or systems analyst can make the most effective con.tribution. For it is
iri the overall logical design of the program that the application of programming and data processing know-how can make the difference between a correct
program, and one which is both correct and efficient, in terms of making the
best use both of the computer and of the data characteristics. FLOW-MATIC
does not replace good systems design and careful run analysis.

A verbal outline of one possible program to solve this simple problem is gi v.~n
below.
Assume at the start that the first item of each of the input files is available. The operations are as follows:
I

Compare the product number of the Inventory item with the product
number of the Price item.
a.
b.
c.

If the Inventory product number is less, go on to step II.
If the product numbers are equal, go on to step III.
If the Price product number is less, go on to step V.

II

Prepare and write an Unpriced Inventory item.
IV.

Then go on to step

III

Prepare and write a Priced Inventory item. Then go on to step IV.

IV

Read the next Inventory item and go back to step I. Or, if the
Inventory file is exhausted, wind up the problem and stop.

V

Read
File
step
step

the next Price item and go back to step I. Or, if the Price
is exhausted, change the program so that step IY goes back to
II (eliminating" a now unnecessary comparison). Then go on to
II.

In the preceding statements the functions of this simple run have been completely described. The next step is to translate these statements into a
logical block chart for UNIVAC. (See Figure 16.)

18

BLOCK CHART
ABC MANUFACTURING COMPANY INVENTORY

ASSUME
FIRST ITEMS
AVA I lABlE

COMPARE PRODUCT
NUMBER INVENTORY
ITEM AND PRODUCT
NUMBER PRICE ITEM

PRICE IS
lESS
READ NEXT
PRICE ITEM
AT END

INVENTORY
I S lESS

I OF DATA

INVENTORY
fQUAlS PRICE

SET EXIT FROM IV

II

TO GO TO.l I TO
ELIMINATE
COMPAR ISON

PREPARE AND
WRITE UNPRICED
I NVENTO~Y ITEM

PREPARE AND
WR ITE PR ICED
I NVENTORY ITEM
READ NEXT
I NVENTORY ITEM
AT END

WIND UP
PROBLEM

FIGURE 16

19

BLOCK CHART - The block chari is a diagram of the logical statemetits listed
above. Such a diagram shows all of the paths which are required in a problem,
and all intersections oL the paths. Th'-e block chart sheuld be checked for
errors in logic, testing it with all variations of the data which are to be
processed, arid producing some sample output. Logical checking is done at
this time because, while-this version of -the problem is concisei it must be
complete and correct. The block chart, then, is by definition a complete,
concise, correct diagram of the computer data processing procedure.

It is important to note that FLOW-MATIC does not replace the need for complete
understanding of the job to"be done. Nor does it replace the need for the
careful analysis which must preceed the choice of the best computer procedure
to do the job. The FLOW-MATIC system does make an indirect contribution to
system design by facilitating the succeeding steps of flow-charting, coding,
debugging (checking) and reprogramming, to such a degree that a considerably
larger proportion of the total time and emphasis can be placed on run analysis
and basic system design. By permitting the analyst or methods engineer to
spend more time in block charting, FLOW-MATIC encourages the exercise of
analytical ability and systems engineering experience.
Figure 16 is a block chart for run 4 which indicates a UNIVAC p~ocedure to
carry out the functions as specified by the procedural statements. Note the
use of the names of functions, items, and data fields in the block chart which
relate back to the original verbal description of the run. FLOW-MATIC encourages the use of words throughout the process of translation from descriptive English to machine language in order that the procedure which the
UNIVAC Data Automation System carries out may be understandable to all involved in the development and use of the system. Although the block chart
contains computer know-how, since it represents the application of computer
characterist ics and capac it ies to t~e requiremen ts of the Job, it is.. int elligible to the user and serves as a useful form of communication between the
analyst and management.
The next step is one of determining the sequence of FLOW-MATIe operations
equivalent to each block on the chart. A FLOW-MATIC operation is an operational unit designed to have maximum usefulness in data processing applications. For ease of use and recognition, these units are identified by English
words and phrases.
Insofar as possible, words have been chGsen which are
associated with the ~J?erations, in normal English language usage-. For example, such terms as TEST, TRANSFER, JUMP, STOP are used. By maintaining
English wording throughout the transi tion from procedural statement' and def-inition to the complete FLOW-MATIe coded solution, the programmer and methods
analyst are able to work directly in the terminology of the operations and
procedure.

20

FLOW-MATIC CHART - The process of reducing the .,bl~ck chart to FLOW-MArIC
sentences is most readily accomplished by drawing up a slightly expanded
diagram, known as a FLOW-MATIe chart. This chart contains all of the FLOWMATIC operations required to solve the problem, in their proper sequence.

To illustrate this process, consider one path, or branch, of the block chart,
shown in Figure 17.

SAMPLE OF BLOCK CHART

------------'"

COMPARE PRODUCT
NUMBER INVENTORY
ITEM AND PRODUCT
NUMBER PRICE ITEM

1-------------.----

INVENTOItY EQUA LS PR ICE

PREPARE AND
FIGURE 17

WR I TE PR ICED
I NVENTORY- ITEM

21

Reference to the list of FLOW-MATIC.9perations in Appendix A~page 92 indicates
that this path of the block chart may be expressed in FLOW-MATIC. terms as
shown in Figure 18. The FLOW-MATIC chart is completed in this general.manner.
by linking available FLOW-MATIC commands in the sequence required by the block
chart.

SAMPLE OF FLOW-MATIC CHART

~

I
I
I
I
I
I
I

__ I_--__

~_--.

C

7

6

5
TRANSFER
A ITEM TO C

PRICE FROM
1---.... MOVEB ITEM
TO C

1-----1....

WR ITE C

FIGURE 18

FLOW-MATIC CODE - Writing the FLOW-MATIC code for the problem consists of
transcribing the FLOW-MATIC chart into a series of imperative sentences.
For every operation, one statement is written, the format of which is given
in Appendix A, pages 95-99. A sample of the code in its final form is below
in Figure 19.
(1)

COMPARE PRODUCT - NO (A) WITH PRODUCT - NO (B); IF GREATER GO TO OPERATION
10; IF EQUAL GO TO OPERATION 5; OTHERWISE GO TO OPERATION 2 •

(5) TRANSFER A TO C .
(6) MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
(7)

WRITE-ITEM C .

SAMPLE OF FLOW-MATIC CODE
FIGURE 19

22

DATA DESIGN: In order to produce a UNIVAC program, it is necessary that the
compiler have information about the design of the input and output data files.
The programmer supplies this information by filling out standard Data Design
forms, shown in Appendix B. The Data Design information is recorded only
once, even though the data files may be processed in a number of runs.
Information about fhe data files is divided into three categories; File, Item,
and Field.
The File category contains information about the organization of the reel(s)
of tape in the file; for example, whether or not the. fi Ie is multi reel , what
the sentinel conventions are, and how the reelis) are labelled. The item
category lists the size of the item, and, if appropriate, states by what keys
these items are sequenced. The field category provides a complete description
of each field in the item; where it is located, how many digits it contains,
and other related information.
The preprinted forms show how this information is to be listed, and, by
providing the appropriate information the data is described for FLOW-MATIC.
Data Designs are prepared for each of the two input files and the two output
files in the Sample Problem run. By reference to the process chart (Figure IS,
page IS) it can be seen that the input files, since they come from prior
UNIVAC runs, have been previously defined. The FLOW-MATIC System provides
for storage of such Data Designs on tape so that they may be called upon for
reuse.
COMPILATION - When the FLOW-MATIC code and the Data Designs have been wri t ten,
the problem is ready for compilation. It is only necessary to transcribe
onto tape the information which has been prepared. The layout of the tape
prepared on a Unityper is shown in Figure 20,. where it . . is displayed as the
input tape to the FLOW-MATIC compilat ion.
The FLOW-MATIC. compiler delivers, as output, a complete UNIVAC program tape,
which can be immediately tested by mounting it, together with the appropriate
data tapes, and making a trial run. Since the coding which controls the movement of the files through the computer is provided by FLOW-MATIC, and since
each section of machine code generated by FLOW-YATIC is correct by its~lf,
the program will run if errors in logical analysis or errors undetected in
proof-reading are not present. Even FLOW-MATIC cannot protect the analyst
from mistakes in logical analysis. Many internal inconsistencies in the
FLOW-MATle input cod~ will be detected by the FLOW-MATle System during the
conversion to computer cOding. Logical errors can be located by reference
to the FLOW-MATIC chart. For locating those program errors not discovered
by any of the previously cited means, the compiler provides an Edited Record
of compilation, which enables the analyst with an assist from a programmer,
to relate the computer coding for the problem back to the FLOW-MATIC coded
statements or to the thart.

23

NEW
DATA

DESIGNS
FLOW~MATIC
FLOW-MAne

COMPILER RUN CHART

CODE

ENDING
SENT INE LS

FLOW-MATle
eOMP I LAT ION

PRINTED
OUTPUT
FIGURE 20

2~

Chapters 3 and ~ trace, in detail, the preparation of the FLOW-MATIe code
and Data Designs fo~ the Sample Problem. Chapters 5 and 6 introduce problem
variations which show additional facilities of the FLOW-MATIe compiler.
Chapter 7 describes the production and testing of the compiled program.

25

chapter 3

Flow-Matic
Charting And Program-Writing

The complete FLOW-MATIC chart for Sample Problem 1 described in Chapter 2
is created from the process chart and the block chart with the aid of the
list of FLOW-MATIC code operations given in Appendix A, page 92. Writing the
FLOW-MATIC chart is, in fact, simply a matter of choosing the necessary functions from the list on Appendix A, page 9~, and arranging them in the order
prescribed in the block chart. The FLOW-MATIC chart is used primarily as a
guide for writing the FLOW-MATIC code, and it is simply a restatement of the
logic of the problem in terms easily adaptable to the code.
Figure 21 shows a partially completed FLOW-MATIC chart. All of the required
functions are indicated, and their sequence is shown. Several useful conventions are employed. Circles, here labelled by lettering, indicate interconnections between paths; flags are used to assert a condition which exists
at a given point; dotted lines indicate points at which a conditional change
in sequence can occur; rectangular boxes are used for evaluation of a formula
or straight computation and ovals are for deciding among one of various paths
of computational flow, based upon the equality and/or magnitude of two quantities. Note that comments on this chart are still largely in-English, and
that no numbers have yet been used.

26

INITIAL VERSION OF FLOW-MATIC CHART
ABC MANUFACTURING COMPANY INVENTORY - SAMPLE PROBLEM

INPUT F I L~§
INVENTORY A
PR ICE
B
OUTPUT FILES
PRICED INVENTORY C
UNPRICED INVENTORY D (PRINT)

01

TRANSFER A
ITEM TO D

TRANSFER II
ITEM TO C

H

WR ITE-ITEM 0

H

MOVE UNIT PRICE
FROM B TO C

~

JUMP

WRITE-ITEM C

READ-ITEM A

JUMP
L - -_ _ _ _..J

,

"

J3r0

,"

'~
CLOSE-OUT C. D

FIGURE 21

27

The logical order of performance of these operations is now indicated by
attaching a number to each of the chosen functions. There are four general
rules pertaining to these numbers and their sequence:
1.

The operation number sequence starts with zero, and operation zero
always specifies the input and output files to be pr-ocessed by the
program.

2.

The operation numbers are assigned in unbroken sequence.

3.

The operations are to be performed in numerical sequence, unless a
specific statement to the contrary is made.

q.

The highest number is assigned to the operation which stops the problem.

Observing these rules, the FLOW-MATIC chart is completed by numbering the
boxes for each operation, and inserting the correct operation numbers at
branch points.

Figure 22 shows the completed FLOW-MATIC chart for the Sample Problem.
are several features to notice in examining this chart.

There

The files in the problem are labelled with the letters A, B, C, and D. This
is done for ease of reference and finds further use in writing the FLOW-MATIe
c;ode.
The action to be taken when each of the input files is exhausted is directly
connected to the operation of obtaining a new item. This is done because any
request for a new item from a file may exhaust the data.
The test indicated in operation fourteen determines whether or not the Price
File has been exhausted when the end of the Inventory data has been reached.
A sentinel, a symbol made up of some combination of characters which cannot
appear as valid data, marking the end of the file is placed at the end of
each file to indicate the end of the data. The test therefore determines whether or not this sentinel is pregent in the current Price File item.
Operation twelve shows a logical operation to be performec upon the program
rather than on the data being processed. It directs that hereafter operation
nine will return not to operation one, but to operation two, bypassing a now
unnecessary step and directing all further Inventory items to the Unpriced
Inventory File.

28

FINAL VERSION OF FLOW-MATIC CHART
ABC MANUFACTUR I NG COMPANY INVENTORY - SAMPLE PROBLEM I

A IS GREATER
INPUT FILES
INVENTORY A
PR ICE
B
OUTPUT FilES
PR I CfD INVENTORY C
UNPRICED INVENTORY D (PRINT)

,,is>-0
;;------.:

FIGURE 22.

29

This completed chart (Figure 22 on page 29) is directly convertible to FLOWMATIC coding. Writing the sequence of Englis!,! sentences which are the code
for the problem is done by cross-referencing between the chart and the description of the available statements.
These statements follow common English usage in punctuation and format, that
is, words are separated by spaces, and a period is used to terminate each
sentence. In addition, each statement is labelled with its operation number
as given in the chart.
The programmer modifies the format of each statement to adapt it to his problem by choosing the correct option for his purpose, and assigning his own
names to the fields and files operated upon.
The general rules which apply to FLOW-MATIC cod·ing are listed below:

(1)

A file name assigned by the programmer may be a maximum of twelve
digits in length, and none of these digits may be a space. If it
is desirable to combine English words into one name, hyphens may be
used, e. g., (0) INPUT INVENTORY FILE-A PRICE FILE-B; ...... .
. . . PRICED-INV FILE-C ...

(2)

An item name is simply the assigned letter of its file,
e.g., (10) READ-ITEM ~...

(3)

A field name is similar to a file name, twelve or fewer non-space
digits. But in addition, each field n~me is modified by its file
letter in parentheses, e.g., (1) COMPARE PRODUC~-NO (A) WITH ... .. .

(4)

Operation numbers labelling FLOW-MATIC statements are parenthesized.
Those appearing in the body of the statement are not parenthesized,
e. g .. , (9) JUMP TO. OPERATION 1. .

In addition to the list of functions, Appendix A gives the precise format for
each function, and a summary of the rules applying to the use of these statements. In reading the following descriptions of the FLOW-MATIC statements
required for the Sample Problem, reference to Appendix A will clarify the
manner in which they are written. In each of the statements shown below,
the information supplied by the programmer is underlined.
(0)

INPUT INVENTORY FILE-! PRICE FILE-~ ;
OUTPUT PRICED-INV FILE-C UNPRIGED-INV FILE-D
HSP Q •

30

Remembering that operation zero specifies the input and output files for the
problem, the function INPUT is used. Choosing the format for two input files
and two output files, the programmer assigns names and letters to these files
(shown underlined in the above statement). He also specifies that the UNPRICED-INV file labelled D is to be printed on the UNIVAC High Speed Printer.'
Note that the code for operation zero is a description of the process chart
(Figure IS, page IS) for the run.
This statement has two major functions:
(a)

To start the movement of the specified data files through the computer in their proper sequence, and

(b)

To label the data files with letters so that hereafter these files,
and their fields and items, may be referred to by the assigned letter.

It should be noted that this version of the initial statement is only one of
many possibilities. It will vary as the process chart varies from one run
to another. For example, the number of inputs and outputs is variable, the
specific Uniservos to be used may be given, or it may 'be stated that a file
is to be prepared for conversion to punched cards, and so on.
(I}

COMPARE PRODUCT-NO !.!! WITH PRODUCT-NO ~ ; IF GREATER GO TO OPERATION ~ ; IF EQUAL GO TO OPERATION ~ ; OTHERWISE GO TO OPERATION ~.

Since the logical operation numbered one . in the FLOW-MATIC chart calls for
comparison of t\,Vo fields, the programmer uses the order COMPARE. The three
conditions required are state~ by using the fourth option listed in the description of this operation. Having chosen the correct format, the programmer
inserts the assigned names for the fields, and indicates, by the assigned
letter, to which file he is referring. Note that the convention of labelling
fields with their file letters allows the programmer to use the same name
for fields from different files. Within one file, however, each field is
given a unique name.
It remains to specify which operation is to be performed next in each of the
three cases which occur. This is done by direct reference to the FLOW-MATIC
CHART.
(2)

TRANSFER A TO D .
Operation two in the chart calls for the transfer of a complete
item from the file lettered A (INV~NTORY) to the file lettered D
(UNPRICED-INV). The TRANSFER order accomplishes this.

31

(3)

WRITE-ITEM D .
Operation three indicates that the current item in the D file (UNPRICED-INV) is to be recorded on magnetic tape.

(4)

JUMP TO OPERATION 8 •
In operation four the chart indicates a break in the normal sequence. The programmer fills in from the chart the operation number
which is to be perJ,ormed next.

(5 )

TRANSFER A. TO f .
The logical function to be performed is the same as in operation
two, but here the A item (from the INVENTORY file) is to be moved
to file C (PRICED-INV).

(6)

MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) •
The function of this operation is to i~sert the price from file B
(the PRICE file) into the C item created by operation six. The
programmer assigns field names (here the same nam2(, UNIT-PRICE, is
used in both files) and attaches the proper file letters.

(7)

WRITE-ITEM C •
In this operation the completed item in the C file is to be recorded
on magnetic tape. See operation three.

(8)

READ-ITEM!; IF END OF DATA GO TO OPERATION 14 •
The function of this statement is to obtain the next consecutive
item from file A (INVENTORY). Since a request for the next item
may exhaust the data file, the programmer states as a part of this
function which operation is to be performed when the end of the
data is encountered. In this case, the chart shows that 14 is
the number required.

(9)

JUMP TO OPERATION 1
Operation nine in the FLOW-MATIC chart indicates a break in the
normal sequence, that is, that operation number 1 is to be performed next.

(10)

(11)

32

READ-ITEM 1L; IF END OF DATA GO TO OPERATION 12
This operation is to obtain the next consecutive item from fi~e B
and also to indicate that operation number 12 is to be performed
when the end of the file is encountered. See also operation eight.
JUMP TO OPERATION ~
See operation four.

(12)

SET OPERATION 9 TO GO TO OPERATION ~
The FLOW-MATIe. chart indicates that the function here is to alter
another operation in the seQuence, namely number nine. Operation
nine as originally stated is a jump to number 1. The current
operation (twelve) is to change nine so that it becomes a jump to
operation two.

(13)

JUMP TO OPERATION 2
See operation four.

(14)

TEST PRODUCT-NO (B) AGAINST ZZZZZZZZZZZZ
16 ; OTHERWISE GO TO OPERATION ~ .

.

IF EQUAL GO TO OPERATION

Operation fourteen in the FLOW-MATIe chart calls for a comparison
of a data field with a constant quantity, a word of Zs. This is
a different logical function from the comparison of two data fields,
as was done in operation one. Here the required order is TEST
rather than COMPARE. The programmer chooses the option whose format
provides the conditions indicated by the chart. He then inserts
the name of the field to be tested, PRODUCT-NO, with its file letter,
B. The constant quantity is indicated by inserting its actual value.
From the chart the programmer determines the operation number to
be performed in the two cases which occur.
(15)

REWIND B •
Operation fifteen states that the current reel of the file lettered
B is to be rewound. Here the logic of the problem is such that,
although the end of the B data has not been encountered, the last
applicable item has been used and the file can be terminated.

( 16 )

CLOSE-OUT FI LES.Q 1 .Q. •
The CLOSE-OUT order of operation sixteen calls for the termination
of the two output files C and D.

(17)

STOP. (END)
The last operation in the sequence is the STOP order, and it is
always followed by the word END in parentheses.

Figure 23 shows the completed FLOW-MATIe code,as it is submitted for Unityping. The unused portion of the block is space-filled.

33

FLOW-MAT IC CODE
FOR SAMPLE PROBLEM
(0)

INPUT INVENTORY FILE-A PRICE F1LE-8 ; OUTPUT PRICtD-INV FILE-C UNPRICEDINV FILE-D ; HSP D •

(I)

COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (8) ; IF ~REATER GO TO OPERATION
10 ; IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 •

(2)

TRANSFER A TO D •

(3)

WRITE-ITEM D •

(q)

JUMP TO OPERATION 8 •

(5)

TRINSFER A TO C •

(6)

MOVE UNIT-PRICE (8) TO UNIT-PRICE (C) •

(1)

WRITE-ITEM C .

(8)

READ-ITEM A ; IF END OF DATA GO TO OPERATION Iq .

(9)

JUMP TO OPERATION I .

( I 0)

REA D- I TEM 8 ; I FEN D 0 FDA TA GOT 0 0" ERA T ION I 2 .

( I I)

J UMP TOO PERA T ION I .

(12)

SET OPERATION 9 TO GO TO OPERATION 2 .

(r3)

JUMP TO OPERATION 2 •

(I~)

TEST PRODUCT-NO (8) AGAINST ZZZZZZZZZZZZ
OTHERWISE GO TO OPERATION 15 •

(15)

REWIND 8 .

(16)

CLOSE-OUT FILES C , D .

(17)

STOP. (END) Space Fill to End of Block.

IF EQUA L GO TO OPERAT ION 16

ABC MANUFACTURING COMPANY INVENTORY
FIGURE 23

chapter 4

File-Data Layout And Design
The run description in Chapter 2 included a complete statement of the logical
function to be performed. The FLOW-MATle charting and coding can be completed
from this statement, but before the Data Designs can be completed, several
detailed questions must be answered.
Figure 24 is a copy of the run chart presented in Chapter 2 wi th addi tional
details shown (e.g., item sizes, labels, whether single reel O~ ~ot). Figure 25 illtts~rates the item Iaybut~ for the. data filesinvolv~d in t~is
problem. It 'should be noted that the use of FLOW-MltTICpernii ts postponem'ent
of the proCess of making item layouts un-til the FLOW-MATle Code is wrj tten.
The system does not place any limits on item layouts, but it does not eliminate the need for them.:
With this inform~tion available, Data Designs c~n be prepared on the preprinted forms illustrate~ (Appendi~B). Separate forms for the File, Item,
and Field designs are prov.ided at the -end of this chapter. These preprinted
forms allow for future expansion of the FLOW-MATle System.
Provision has been made i~ the FLOW-MATle System for storing Data Design
information about specific ~iles on the FtOw-MATle library tape. Thus if a
system of related runs is to be programmed using FLOW-MATle, Data Designs
for files which will be processed ia.more than one run can be stored and
called upon any number of times in FLOW-MATle programs. Using this facility,
there is no necessity to fill out Data Design information for files already
described. Since input files to one run commonly are output files of other
runs, a significant reductiort of (clerical) effort in writing and recording
these Data Designs is possible.

35

PROCESS CHART
ABC MANUFACTURING COMPANY INVENTORY
ALL FILES SEQUENCED BY PRODUCT NUMBER

INVENTORY
MAXIMUM OF 60,000
10 WORD ITEMS
LABEL: MMDDyyIOOIOI
MULTI REEL

PRICE
MAXIMUM OF 60,000
2 WORD ITEMS
LABEL: MMDDyyI00201
S INGLE REEL

RUN 4
APPLICATION OF
STANDARD PRICES
TO INVENTORY

UNPRICED INVENTORY
10 WORD ITEMS
LABE L: MMDDyyI004 01
FOR HIGH SPEED PRINTER
PROBABLY SINGLE REEL,
BUT MAY BE MULTI REEL

PRICED INVENTORY
MAXIMUM OF 60,000
10 WORD ITEMS
LABEL: MMDDyyI00301
MULTI REEL

CONVENTIONS
( I )LABE LS I N WORD 03 OF FIRST BLOCK ON EACH REE L.
(2)

BLOCK COUNTS I N WORD 01 OF LAST ITEM IN SENTINE L BLOCK.

(3)

SENTINELS ARE ZZZZZZZZZZZY FOR END OF REEL AND ZZZZZZZZZZZZ FOR END OF
FILE. THESE ARE LOCATED IN THE KEY WORD POSITION (WORD 000) OF FIRST
INVALID ITEM AND LAST ITEM OF SENTINEL BLOCK.

FIGURE 24

361

ABC MANUFACTURING COMPANY INVENTORY
ITEM LAYOUTS FOR RUN

~

FILE B (PR ICE)

FILE A (INVENTORY)
00

PPPPP PP PP PPP

00

P PPP PPP P P PPP

01

0 0 0 0

0 0 QQ Q Q QQ

01

0 0 0 0 0 0 0 U U UAU U

02

0 0 0 0 0 0 0 0 0 0 0 0

03

0 0 0 0 0 0 0 0 0 0 0 0

04-

P = PRODUCT NUMBER

05
06

U=UNITPRICE
OTHER DATA

Q = QUANTITY ON HAND

07

E = EXTENDED PRICE
(SEE CHAPTER 6)

08
09

1\

= LOCATION OF DECIMAL POINT

FILE D (UNPRICED INVENTORY)

FILE C (PRICED INVENTORY)
00

PP PPP PPPPP PP

00

PPP P PPP P PPP P

01

0 0 0 0 0 0 Q QQQ QQ

01

0 0 0 0 0 0 QQQQQQ

02

0 0 0 0 0 0 0 U U U/\U U

02

0 0 0 0 0 0 0 0 0 0 0 0

03

0 0 E E E E E E E E'lE E

03

0 0 0 0 0 0 0 0 0 0 0 0

04-

04-

05

05

06

06

OTHER DATA

07

07

08

08

09

09

OTHER DATA

FIGURE 25

37

NAME O.F FILE
The programmer writes in the file name which may not start with the word FILE.

FILE DESIGN*
This section of the Data Designs contains information about the organization
of the file. The data fi·le conventions to be used are listed here and they
determine the details of the coding which will be produced to control the
file.
Nine two-word packets are required. Additional two-word entries may be made
if it becomes necessary to describe other features of the file. Each twoword packet is listed and described below.
The first packet is:

L AB E L
L

L

L

f:l

f:l f:l f:l

L L L L l

f:l f:l f:l

L '-L

L

L

LLLLLLLLLLLL represents the identification that has been assigned to this data
file. The least significant ~igit~ should ~nd in the digit 1, indicating
reel one. Allowance may be made for numbering as many reels as: are required.
(If the maximum number of reels in a file is 9, one digit is allocated as a
counter; 99, two digits; 999, three digit's~ etc.) If the label is not known'
or if it is not desired to specify, the label, twelve spaces are used.
The second packet is:

-

L 0 C

fl

-.

i·····

0 F

0 0 0 0 0

A

...... "

,,--'"

..

......,,-

~

LAB EL

0 0 0 0

W W W

WWW indicates the word position of the label within the label block.
sixty words in the label block are addressed as 000-059.

* Consult figures on pages 46, 49, 52 and 55.

38

The

The third packet is:

MU L T I

REE L

11

11 11

".

0 0 0 0 0 0 0 0 0 0 0

n

The digit n may be eith€r zero or one. If zero, it means that this file will
not exceed one reel. A one is used in all cases where files may exceed one
reel.
The fourth packet is:

B L K 11 C T
0 0 0 0 0

11

---

I N 0

11 11

0 0 0 0 0 0

b

,b may be either zero or one. If one, it means that the tally of the number
of, blocks is maintained (for input reels) or will be written (on output reels)
on the end of each reel of this file. On input reels the block count recorded
on the reel is checked against a counter maintained during the processing.
All blocks on the data tape will be counted, including label block, data
blocks and sentinel blocks. Use b = zero to indicate that this control feature
is not desired.
The fifth packet is:
:',"0;""""""""

CT

B L K

11

0 0 0

0 0 0

l:l

-

L0 C

0 0 0

"-

I"

lJ. l:l

X X X

XXX indicates the word posltlon of the block count within the last item of
the sentinel block. The allowable range for XXX is from 000 through item-size
minus one. If the block count indicator is zero, this entry is not significant and the word is filled with zeros.
The sixth packet is:
r:~'"

.,e.....' .

"'.'

,.",., .",."."'.,,,, .'"• .. '·'...'·r, .....

· ... ,....... .",,, •.••.•,, """:'"'1''''' .""., ••

ENDaREELlJ.SEN

s s s s s s s s s s s s
SSSSSSSSSSSS represents the twelve digits used to indicate end of valid data
on intermediate reels, e.g,., ZZZZZZZZZZZY.
zero, spaces are written here.

If the multi-reel indicator is

39

The seventh packet is:

END8 F I L E 8 S EN
s s s s s s s s s s s s
SSSSSSSSSSSS represents the twelve digits used to indicate end of valid data
on the final reel of a file, e.g., ZZZZZZZZZZZZ

The eighth packet is:

-

L 0 C

8

0 0 0 0

I N

8

0 0 0

F I RST
0 0

W W W

WWW indicates the word position of the end sentinels within the first invalid
item of the sentinel block. The allowable range for WWW is from 000 through
item size minus one.

The ninth packet is:

L0C

-

8

0 0 0 0

I N

8

LAST

0 0 0 0 0

8

W W W

WWW indicates the word position of the end sentinels within the last item of
the sentinel block. The allowable range for WWW is from 000 through item size
minus one.
Although FLOW-MATIe permi ts flexibili ty in th.e conventions to be applied to
tape files, it is expected that in a given installation much of this information will remain fixed, thereby providing automatic standard~zation. The
flexibility is still necessary when the files are to be processed by runs
other than those produced by FLOW-MATIG., e.g., sorts.

ITEM DESIGN*
This section of the DATA DESIGNS contains information about the data items
in the file.
Three two-word packets of information are required, and more can be added on
an optional basis.

The first packet is:

I T E M.f1 S I Z E

f1

0 0 0 0

n n n

0

0 0 0 0

f1 f1

nnn represents the size of the data items in the file, e.g., the item in
this sample problem is ~ ten word item (see page 47).

The second packet is:

- -0 F

N0

f1

0 0 0 0

f1

KE y S

0 0 0 0

0 0

f1 f1

0

k

k is a digit from zero through nine. The key is the field or fields by which
the file is sequenced. If a file is sequenced by a major key such as last
name, and a minor key such· as first name, k would equal 2.
The third packet is:
~..,.,

KEY
Y y

f1

1

f1 f1 f1

f1 f1

f1 f1

y y y y y y y y y y

YYYYYYYYYYYY represents the assigned name of the field which is the major key
in this file~ If the file is unsequenced, the k digit in the previous packet
is zero and YYYYYYYYYYYY is twelve spaces.
When k is greater than one, additional packets are required for each additional key in the order of decreasing significance.

* Consult figures on pages 47, 50, 53 and 56.

If "k" in NO. OF KEYS \ were 2, then a fourth packet wouldbe required, following
the same format as the third packet:

y y y y y y y y.y y y y

Each field named as a key must be listed in the Field Design section under
the same name used here.
In the preprinted forms in Appendix B additional information may be inserted
following. the name of the last key. In some problems, for example, it is
desirable to treat a consecutive group of 'UNIVAC\ words within the item as a
sub-item. R~ther than calling for this sub-item by mentioning all of the
names of the fields within it, a new name is applied to the sub-item itself.
This assigned name is then entered in the Data Design for the file in the
following way:
AAAAAAAAAAAA

OOOSSSOOOEEE

AAAAAAAAAAAA is the name chosen by the programmer, e.g., ADDRES~.6.6.6.6 .
SSS is the relative·word position of the first word of the sub-item within
the item. The allowable range is 000 through item size minus one.
\~
EEE is the position of the last word of the sub-ite~ within the item. The
allowable range is 000 through item size minus one.

As many such sub-items as are required by the problem may be so named following the name of the last key.

~2

FIELD DESIGN*
This section of the Data Designs contains detailed information about the data
fields within the item.
If the Data-Design is to :be used in many runs, all fields in the item should
be described. If the Data Design is to be used to compile only one run, only
those fields mentioned in the FLOW-MATIe code for the run need be described.
Each field in the i tern 'is described wi th a four word packet.

yyyyyyyyyyyy
OOOWWWOOOOOO
OOOOOTPPSLNO
EEEEEEEEEEEE

= Name of field
= Word Location In 'i tern
= Field Descriptorl
= Extractor

YYYYYYYYYYYY in the first word represents the name of the field exactly as
it appears in the FLOW-M4TIC code. ,It, may be a maximum of twelve consecutive
non-space digits. If the name con~ains fewer than twelve digits, unused
digits to the right-.. are space filled. If names consist of two or more parts,
these parts are separated by hyph~ns; e.g. ,PRODUCT-NO~
WWW in the second word rel!resents the word position of this field within the
item, i.e., for a ten word ,item the words are ODO-009.
TPPSLN in the third word:
T in the 6th digit of the 3rd word rePl'es en ts the type of field.
= 1 = alphabetic
T = 2 = alpha-numeric
T = 3 = numeric

l'

PP in 3rd word indicates the location of rhe assumed decimal point relative
to a reference point -immediately to the left of the field. The positfon just
to the lef! of the field is indicated by PPequal,tooo.
If the assumed decimal is one position to the left of the reference pOint,
PP is lL. If the assumed decimal is one position to the right of the refference point, PP is lR. _ Assumed desimal points may be positioned a maximum
of 35 places to the left or to the right, (e.g., ZL = 35 left
ML = 22 left
AL = 10 left
AR = 10 right
JR = 19 right
7SR = 35 right).
If the field has no
ignores. (Ii)

a~sumed

decimal point, the digits PP are written as

* Consult figures on pages 48. 51, 54 and 57.

~3

S in 3rd word represents the location of the sign of this numbe,r. Ignore
(() is used for fields without signs. A numeric field with the S digit equal
to ignore is assumed to be a positive number.

If the field has a sign, the S digit may be 1 through 9, Aj B,or C.
twelve digit positions within a UNIVAC word are labelled •

.,J:

The

2' : 3 : " : 5 : 6 : 7 : 8 : 9 :"A : B :' C .,

L in the 3rd word represents the location within the UNIVAC word of the left
most digit of the field excluding its sign. As mentioned above, L may be
1 through 9, A, B, or C.
N in 3rd word represents the number of consecutive (adjacent) digits in the
field, excluding its sign. N may equal 1 through 9, A, B, or C, where A
equals 10, B equals 11, and C equals 12 digits.

EEEEEEEEEEEE in the fourth word is a pattern of ones and zeros, showing the
digit locations occupied by the field, including the sign digit if any. Ones
indicate the digits comprising the field, and all other digits are zeros.
If the field is alone in the word and can be treated as a whole word, twelve
zeros are used, not twelve ones.
Although the fields described for the sample problem all appear in separate
UNIVAC words in the item, the more common situation is that several fields
are packed in one word. In FLOW-MATIC, each such field has its own name and
description in the Data Designs.
It also may happen that two fields overlap each other within the UNIVAC word.
For example, consider the field PRODUCT-NO in the Inventory File. The last
three digits of this field may be a type number, not used in this problem as
such. In a problem where the type number must be treated as well as the
product number, both fields are described, as shown below:

PRODUCT-NO~~

000000000000
oooo021111CO
000000000000

Four word packet describing
digit field.

12

TYPE-NUMBER~

000000000000
0()0003111A30
000000000111

Four word packet describing 3
digit field within 12 digit field.

Sentinels

Immediately following the .la.st four word packet, and in word S9 of the last
block of the Data Design, the sentirte}
EttD~FILE~DES

is written.

The rest of the block is filled with zeros.

After the FLOW-MATIC Code for the program has been wri t ten (Ch apter 3), and
the Data Designs have been fi lIed in as described in this chapter and shown
in Figures 26 a through 26 1, the input tape for FLOW-MATIC compilation may
be UNITYPED. Figure 27 shows a HIGH-SPEED PRINTER copy of this information
just as it appears, ready to compile the program for Sample Problem 1.

PAGE: _ _

ANALYST:
INPUT AND OUTPUT DATA DESIGN.
DATE: _ _- - _ ABC MANUFACTURING COMPANY INVENTORY PROBLEM

N A ME
I

~

N V E

--

0 F

{:j

F I LE

T 0 R Y

"
F I LE 0 ES I
Il

~

~

~

English name of file.
--

G N Il

Il fl' Il Il Il Il II Ii1 Il Il Il

L AB E L

Il II II Il Il Il Il

M M D D Y Y

L0 C

t:.

0

0 0

-0

0

QF

I

0

0

0 0 0

o.

Il

0 0 0 0 0

0 0 0 0

BLK

II

CT

I

0

0 0 3

R E E L .8
a

I N '0

11

0

Il

CT

l~)

Label with reel counter.
all 6' s.

-2.) If label variable

Il.

-

L0 C

Word location of label in label block.

Il
"

I

I = Yes;

o = No.

Il II

0 0 0 0 0 0 0 0 0 0 0

LK

r

LAB EL

Il

MU L T I

.~

~

I

I

= Block

count desired; 0

=

No block count. '

11 II
I

Word location of block count in last item
of sentinel block. [000 to (item size-I)]

R E E L II S E .N
z z z z z z z z z z z y

End of reel sentinel. If single reel, all

0 0 0 0 0 0

E N0

0 0 0

0 0

,.....

ll.

F I L E

~'

SEN
z z z z Z' Z z z z z z Z
L 0 C Il I N Il F I R S T

End of file

0 0 0 0 0 0 0 0 0

Word location of sentinel in first invalid
item. [000 to (item size-I)] .

EN0

Il

Il

-

-

L0C

Il

I N

Il

s.

0 0 0

LAST

0 0 0 0 0 0 0 0 0

0

se~tinel.

-,

,

.-

II

0 0

Word location of sentinel in last item of
sentinel block. [000 to (item size~I)]
"

'.

r

~her

entries may be added here, each consisting of a title word and an information
word; e.g.,

.

PARf6BU(6.."~

.

Z7ZlZlZlZZZ)(

LNIITPISf
NOTE: After the last entry skip to the
next page .

.
FLOW-MATIC DATA DESIGN FORM ..
~~~
F I GURE26a

Sl.1499
\I~

DIVISION Of SPEll' lAND CORPORATION

ANALYST:

PAGE: _ _

DATE:. _ _ _ _ _ _ _ _ _---,._ _

I' T E M
l:l

A t::. ' .'l:l

t::.

0 'E S I G N fJ.

l:l' l:l l:l l:l l:l fl

-0 0 0 0

-

l:l

l:l Il
r

1 T E M l:l S I Z E

N0

0

-

0 F

l:l

l:l l:l

0

I

0

KEyS

l:l

~.

0 0 0 0
~

0 0 0 0

0 0 0 0

0 '0 0, I

KEy

1
-u

~

t::.

-

N 0

p R 0

-

'.

~

D

~

~

C T

~

1,2,3,4,5,6,10,12,15,20,30,60.

0-,1,2, .... ,9 ; number of keys
-

t::. l:l
fj

fj

'<-'Name of field, ifnokey~

Further key entries'may be added here,
each consisting of KFY6n6~ followed by the name of the field.
If there are Sub-items to be described,
the descriptions are entered following..
the last Key entry. Sub-items are described with two-word packets consisting
of the name of the Sub-item followed by
a word in~he format OOOSSSOOOEEE,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

~

UNIlYPISf
l\UfE: Mter the last entry skip to the
next page.

IJ

FLOW-MATIC DATA DES" GN FORM 2
~7&u.L~
DIVISION Of SPEIIY lAND COIPOIATION

FIGURE 26b

S 1 - 1 500,

i

ANALYST: _ _ _ _ _ _ _ _ __

PAGE: _ _

DATE: ----------------------

F I E L D 'Il 0 E S I G N
fl fl l1 fl fl fl fl

fj

fl

p

-

N 0

R 0 D U C T

-

0 0 0

0

0

0 0

fl fl fl

-

!J.

!J.

0 0 0 0 0

Name of field.
Word location in item. [000 to (item size-I)'

0 0 0 0 0

2

r r :r

I

C 0

Field descriptor of form OOOOOTPPSLNO *,

0

0

0

0

0

Extractor; if full-word field, all 0' s.

0

0

0

0

Q u A N T I
0 0 0

-

0

0

0

T Y !J. !J. !J. !J.

0

I

0 0 0

0

0 0

0 0 0 0 0

3

:r

)

:r

7

6 0

0

0

I

I

I

I

I

0

0

0

E N 0
0 0

0

0
!J.

F

I

L

E !J.

0 0 0

0

I

An unlimited number of fields may be
described using the same four-word packet
format.

* Explanation of field descriptor:
T

0 0

D E S

0

3 - numeric

0 0
0

0

ZE RO Fil L 1 HRl

we RD 058

0 0 0

0 0

0

0 0

0 0 0

of field.

1 - alphabetic
2 - alpha-numeric
PP

0 0

= Type

0 0 0

0
S

= Position

of decimal point in relation to a reference point immediately to the left of the left-most
digit of ~he field.
00 - coincident with reference point
ii - not applicable
nL - n positions to the left of the
reference point
nn - n positions to the right of the
reference point
(n = 1,2, ... , 9, A, B, ... , Z)

= Digit

position of the sign.

1,2, ... ,9,A,B, or C
i-not applicable

0 0

0

0 0 0 0

0 0

L

= Digit

N

= Number

0

0 0 0 0 0

position of the left-most digit
of the field, excluding sign.
1,2, ... ,9,A,B, or C
of digits in the field, excluding sign.

1,2, ... ,9,A,B, or C
(A = 10, B = 11, C = 12)

0 0 0
0 0 0 0

0 0 0

E N D 6

UR

0 0 0 0

NOfE: Place the sentinel END6FILE60ES

immediately following the last fourword packet and in word 059 of that
block.

0 0
FLOW-MATIC DATA DESIGN FORM 3

0

0
F

0 0
0

0

0 0 0
0 0 0 0

0

I

L

E 6

0

E S

~76uuL~

FIGURE 26c

DIVISION Of SPfRRY RAN.D CORPORATION

PAGE: _ _

ANALYST: ________~__________
DATE: ______________________

N AM E

-

D.

P R

I

C E

F I L E

0 F

l:l

-~

f---

£'j

£'j

£'j

F I L E
fj

£'j

£'j

£'j

l:l

0 E S I G N l:l

l:l

l:l

l:l

L AB E L

l:l

fl l:l l:l

l:l l:l

l:l

8

l:l

l:l l:l
l:l

l:l l:l
l:l l:l

M M 0

0

y

y

I

0

L 0 C

-

II

F

l:l

L AB EL

0 0 0

0

-00

0

0

MU L T I

l:l

REE L

0 0 0 0 0

0 0 0

BL K

CT

tl

0 2

0

I

fl

0

0

0

0

0

0 0 0 0 0 0 0 0 0 0 0

I

CT

0 0 0 0 0 0

E N0

11

£'j

£'j

£'j

£'j

£'j

0

fl

SEN

6

6

L 0 C

0

0 0

RIE E L
£'j

-

fl

£'j

fj

-

L 0 C

0

6

I

6

~

I = Block count desired; 0 = 1\0 block count.

Word location of block count in last item
of sentinel block. [000 to (item size-I)1

F~d

of reel sentinel. If single reel, al16's.

~~d

of file sentinel.

l:l

I N

l:l

().

-

F I RST

0 0 0 0

0 0 0

0 0

0

0

L0C

I N

L AS T

fl

-

I = Yes; 0 = 1\0.

6 6

F I L E l:l S E N
z z' z z z z z z z z z Z

EN0

Word location of label in label block.

l:l l:l

0 0 0

I N0

3

().

fl

1.) Label with reel counter.
2.) If label variable all 6' s.

-- ~

fl

S LK

English name of file.

l:l

0 0 0 0

0

l:l

0 0 0 0

0

0

0

0

Word location of sentinel in' first inval id
item. fooo to (item size-I)]

Word location of sentinel in last item of
sentinel block. rOOO to (item size-D]
Other entries may be added here, each consisting of a title word and an information
word; e. g. ,
PARTffilJffiSt.N
ZZZ:Z72ZZZlZX

-

lNln'PISf
NOTE: After the last entry skip to the
next page.

FLOW-MATle DATA DESIGN FORM 1
~R.nd~

FIGURE 26d
Sl.1499

DIVISION OF

SPERRY RAND

CORPO,RATION

Al'lALI;::'l:

PAGE: _ _

DATE: ________________________

I TEM

~

0 ES I GN

11 11 11

~

~

~

11 11

~

11 A

I T E M fl S I Z E

~

~

11

0

0

2

KE yS

~

~

0 0 0 0

- -

N0

~

0

0 F

~

11

0 0 0 0
~

0 0 0 0

0 0 0 0

0 '0 0

I

KEy

~

1

~

IJ. IJ. IJ.

~

P R 0

D U C T

-

N 0

~

~

-

IJ.

~

-

1,2,3,4,5,6,10,12,15,20,30,60.

0,1,2, .... ,9

~ame

=

number of keys

of field, if no key

~

Further key entries may be added here,
each consisting of KFYAn1:/J1MM followed by the name of the field.
If there are Sub-items to be described,
the descriptions are entered following
the last Key entry. Sub-items are described with two-word packets consisting
of the name of the Sub-item followed by
a word in the format OOOSSSOOOEEE,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

lJNI TI'PI Sf
NJffi: After the last entry skip to the
- - next page.

FLOW-MATIC DATA DES'I GN FORM2

~

R.nd. Unbvc.

DIVISION Of SPEIRY .... ND CORPORATION

FIGURE 26e

S1.1500

50

ANALYST: _____________________

PAGE: _ _

DATE: -------------------------

F I EL 0
fj.

II II

II

0 E S I GN

II II ~ II II II

a a a 0 0
a a a a a

2

- N
a a a
.r % K'

0

p

R 0

-

0

U C T

0

l:l ,ll II
6,

0.-

6,

0

Word location in item. [000 to (item size-1}1

I

a a
C a

0

Extractor; if full-word field, all O's.

0

0

0

0

0

0

0

0

0

0

U N

I

T

-

P R

I

C E 6,

6,

a a a 0 0
a a a a a

3

a a a a a a
3 R ..r 8 5 a

0

0

0

0

I

E N D 6,

F

I

L

E 6,

0

0

0

I

a a a
0 0

I

I

I

I

D E S

a a a a a a

0 0

0

I
I

ZERO FILL THRU WORD 058

a 0 a
a a a a

a a a a

0 0

a

0

Name of field.

Field descriptor of form OOOOOTPPSLNO*

An unlimited number of fields may be
described using the same four-word packet
format.

* Explanation of field descriptor:
T = Type of field.
1 - alphabetic
2 - alpha-numeric
3 - numeric
PP = Position of 'decimal point in relation to a reference point immediately to the left of the left-most
digit of the field.
00 - coincident with reference point
ii - not applicable
nL - n positions.to the left of the
reference point
fiR - n positions to the right of the
reference point
(n = 1, 2, ... ,9, A, B, ... , Z)
S

0 0 0

0 0 0 0

0 0
0

0 0 0 0 0

= Digit position of the sign.

1,2, ... ,9,A,B, or C
i-not applicable
L = Digit position of the left-most digit
of the field, excluding sign.
1,2, ... ,9,A,B, or C
N = Number of digits in the field, excluding sign.
1,2, ... ~9,A,B, or C
(A = 10, B = 11, C = 12)

0 0 0
0 0 0 0

0 0

0 0 0

0

0 0
0

0

0

0 0 0

0 0 0 0

a

E N D 6,

F

a a

NCJfE: Place the sentinel END6,FILE6,DES

immediately following the last fourword packet and in word 059 of that
block.

0
FLOW-MATIC DATA DESIGN FO RM 3

0

~ 7Iond-um.-~

I

L

E 6,

D E S

FI GURE 26f

DIVISION

OF

SPt RRY RAND

CORPORATION

S 1 .1 501

51

PAGE: _ _

ANALYST: ___________________
DATE: ______________________

N· A M E

D.

..........---

P R

I

0 F

~

-

I

_'!!II!.

C E 0

F I L E
N V

~

~

F I L E

().

0 E S I GN

/j

~

().

/j

().

/j

/j

/j

/j

L ABEL

().

~

().

~

().

().

().

y

I

0

0

3

0

I

0 F

/j

L ABEL
0

().

/j

/j

M M 0

0

y

L 0 C

fl

0

0

-

-0

0

().

0

0

0

0

0

3

MU L T I

().

REE L

/j

().

0

0

0

0 0

I

/j

I N0

0

0 0 0 0

/j

L0 C

0

0 0

0

English name of file.

1.) Label with reel counter.
2.) If label variable all 6' s.

.

Word location of label 'in label block.

~

0

0 .0 0

BL K

~

0

CT

0 0 0 0 0

0

CT

B LK

/j

0 0 0

0 '0 0

0

-

0

1

= Yes; o = 1\0.

1

= Block

11 11
I

fl

/j

0

I

count desired; 0

= 1\0

block count.

Word loq"ltion of block count in last item
of sentinel block. [000 to (item size-I)]

RIE E L {). S E N
z z z z z z z z z z z y

End of reel sentinel. If single reel, aI16's.

F I LE
z z z z z z z Z·

t~d

E N0

E N0

L 0C
-

L0 C

11

().

/j

0 0 0 0

0 0 0

/j

0

I N
0

0 0

I N
0

f.l

0

/j

().

SEN

Z· Z

Z

Z·

of file sentinel.

F I RST
0 0

0

0

L AS T

0 0 0

0

0

0

Word location of sentinel in first invalid
item. rOOO to (item size-I)]

{).

0

Word location of sentinel in last item of
sentinel block. [000 to (item size-I)]
Other entries may be added here, each consisting of a title word and an information
word; e.g., PAfIT6BU(6...C\b~
ZZZ;Z;ZZ722ZlX

lNITIPISf
NOTE: After the last entry skip to the
next page.

FLOW-MATIC DATA DESIGN FORM 1
~R.nd.~
F I.GURE 26g

Sl.1499

.

DIVISION OF SPERRY RAND CORPORATION

.

ANALYST:
DATE: ________________________

PAGE: __

I T E M fj 0 E S I G N

a

a

f:j

f:j

f:j

I TEM
0 0 0 0

- -

N0

l:l

fj,

f:j

{j,

S I Z E

f:j

{j,

f:j

0 0 0 0

0

I

0

KE y S

f:j

f:j

0 '0 0

I

f:j

f:j

f:j

N 0

6

6

f:j

f:j

f:j

0

0 F

l:l

f:j

f:j

0 0 0 0

0

0 0 0

KEy

l:l

1

f:j

f:j

f:j

P R 0

D U C T

-

-

f:j

l:l

-

1,2,3,4,5,6,10,12,15,20,30,60.

0,1,2, .... ,9

= number

l\ame of field,

of keys

ifnokey~

Further key entries may be added here,
each consisting of KFYAn!:l:l~ followed by the name of the field.
If there are Sub-items to b~ described,
the descriptions are entered following
the last Key entry. Sub-items are described with two-word packets consisting
of the name of the Sub-item followed by
a word in the format OOOSSSOOOEEE,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

UNITYPISf
NJfE: After the last entry skip to the

--

next page.

!

I

FLOW-MATIC DATA DES'IGN FORM 2
~R.nd.~
DIVISION OF SPfRIY RAND CORPORATION

i
S1.1500

FIGURE 26h

ANALYST:. _ _ _ _ _ _ _ _ __

PAGE: _ _

DATE: - -_ _ _ _ _ _ _ _ __

F I E· L 0
Il Il

fj

p

-

/j.

0 E S I GN

f:1 Il Il Il Il 11

-

~

Il Il

-

t.,

!:1

Name of field.

0 0 0 0

0

0

a

Word location in item. [000 to (item size-1)1

R 0

0

U, C T

0 0 0

0

0

N 0

0 0

a

0 0

2 ¥ K

.r

I

C 0

Field descriptor of form OOOOOTPPSLNO*

0

0

0

0

0

0

0

0

0

0

Extractor; if full-word field, all O's.

Q U A N T

I

T Y tJ.

~

~

!:1

a a a
a 0 0

0

0

I

a a

0

0

0

3

a a
.r .r

0

0

0

0

0

U N

I

T

-

P R I

0 0 0

0

0

0

0

0

0

% 7

6 0

I

I

I

~

!:1

2 0 0 0 0 0

a

I

I

I

C E

0 O· 0 0 0

3

3

R

.r

8 ,5 0

0

0

0

I

I

I

I

I

~

~

!:1

0

0

0

E X T

-

P R I

0

0

0

3 0 0

0 0 0 0

0

3

8

I

I

I

I

I

E N 0

~

F

I

0

0 0

0

0

0 0

a

C E

0 0

0 0

R

I

3

A 0

I

I

I

I

L E

~

D E S

a a

0

a

I

0 0

.-

0

0 0 0 0

ZERO FILL THRU WORD 058
0 0 0

0 0

0 0

0

0

a

0 0

51.1501

tJ.

F

described using the same four-word packet
format.
* Explanation of field descriptor:
T = Type of field.
1 - alphabetic
2 - alpha-numeric
3 - numeric
PP = Position of decimal point in relation to a reference point immediately to the left of the left-most
digit of, the field.
00 - coincident with reference point
~i - not applicable
nL - n positions to the left of the
reference point
fiR - n positions to the right of the
reference point
(n = 1,2, ... ,9,A,B, ... ,Z)
S = Digit position of the sign.
1,2, ... ,9,A,8, or C
i-not applicable
L = Digit position of the left-most digit
of the field, excluding sign .
1,2, ... ,9,A,B, or C
N = Number of digits in the field, excluding sign.
1,2, ... ,9,A,B, or C
(A= 10, B = 11, C = 12)
NOIE: Place the sentinel ENDtJ.FILE!:1DES

immediately following the last fourword packet and in word 059 of that
block.

0 0
FLOW-MATIC DATA DESIGN FORM 3

0

0 0 0 0 0
E N 0

a
0

0 0 0 0 0

0 0

0

An unlimited number of fields may be

I

L E tJ.

0

E S

~"I&uuL~

FIGURE 26 i

DIVISION OF SPERRY RAND CORPORATION

ANALYST: _ _ _ _ _ _ _ _ __

PAGE: _ _

DATE: ___________________

F I LE

N AME

A

N P R

I

F I L E

l:!l

0 E S I G N l:!l

l:!l

l:!l

l:!l

l:!l

l:!l

l:!l

l:!l l:!l

L AB E L

l:!l

l:!l

l:!l

l:!l

l:!l

l:!l l:l

y

y

I

0

0

q 0

-0 F

l:!l

L AS EL

U

l:!l

l:!l

l:!l

l:!l

M M 0

0

L 0 C

fl

-0

0 F

l:!l

-~

f---- .---

C E 0

-

I

N V

I

0 0 0

0

0 0 0

MUL T I

11

REEL

l:!l l:!l

0 0 0

0 0

0

0

0

0

BL K

Il

CT

fl

I N0

0 0 0

0 0

S LK

l:l

0 0 0

0 0

0

0 0

CT
0

0

0

0

0

I

I

l:l

L 0 C

fl l:l

0

0 0

0

0

I

RIE E L Il S E N
z z z z z z z z z z z y

E N0

1.) Label with reel counter.
2.) If label variable all 6' 'so

Word location of label in laLel block.

1 :: Yes; 0 :: 1\0.

8 l:l

0 0 0 0

-

3

English name of file.

1 :: Block count desired; 0 :: 1\0 block count.

Word location of block count in last item
of sentinel block. [000 to (item size-I)]

f1

End of reel sentinel. If single reel, al16's.

E N 0 fl F I L E fl S E N
z z z z z z z z z z z Z
L 0 C 8 I N IJ. F I R S T

End of file sentinel.

0 0 0 0

Word location of sentinel in" first inval id
item. rOOO to (item size-I)]

-

-

L 0 C

fl

0 0 0

0 0

0

0

I N

L AST

fl

fl

0 0 0 0 0 0 0 0 0

0

0

0

0

Word location of sentinel in last item of
sentinel block. [000 to (item size-I)]
Other entries may be added here, each consisting of a title word and an information
word; e. g. ,
PAHT6BU(6..~I~l'
UZZll72ZlZX
lNITI'PISf
NOTE: After the last entry skip to the
next page.

FLOW-MATIC DATA DESIGN FORM 1
~R.nd~
FIGURE 26j

S 1 .1499

DIVISION Of SPERRY RAND CORPORATION

ANALYST:
DATE: ______________________

I TEM

Il

PAGE: __
~

0 E S I GN a

--

II II II II II II II II II Il II II

S I ZE

I TEM

II

0 0 0 0

0 0 0 0 0

- -

N0

II

0 F

II

II II II
0

J< E y S

I

II

1

p

0

U C T

R 0

0

1,2,3,4,5,6,.10,12,15,20,30,60.

II II

0 0 0 0 0 0 0 0 0 0 0

KEY

.

0,1,2, .... ,9

I

= number

of keys

II II II II II II 11

-

N

Q

~

~

Name of field,

ifnokey~

Further key entries may be added here,
each consisting of KFX6.n/:/:1MM followed by the name of the field.
If there are Sub-items to be described,
the descriptions are entered following
the last Key entry. Sub-items are described with two-word packets consisting
of the name of the Sub-item followed by
a word in the format OOOSSSOOOEEE,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

lNIlYPISf
NJfE: After the last entry skip t? the
next page.
!

FLOW-MAliC DAlA DES'I GN FORM 2

.

51.1500

56,

,
•

~~~
DIVISION Of SPEIIY RAND CORPORATION

FIGURE 26k

ANALYST: _____________________

PAGE: _ _

DATE: ------------__--________

F I EL D
d d

fj

Il d

11

D E S I GN

d II d II II Il d

-

p R 0

D U C T

a a

0

0

0 0 0 0 0

0 0 0

0 0

a

0

a

I

0

2

i'

.t A-

0 0 0 0 0 0 0

Q U A N T I

T

a a a
a 0 0

N

Y

~

~

C 0

0 0 0 0
~

0 0

I

0 0 0

a

3

.r

0

Q

Word location in item. [000 to (item size-1)1
Field descriptor of form OOOOOTPPSLNO *
Extractor; if full-word field, all O's.

~

f1

f1

a

0 0

K K 7 6

Name 0.£ field.

a

An unlimited number of fields may be
descri~~d using the same four-word packet
format.

* Explanation of field descriptor:

0 0 0 0 0 0

I

I

I

I

E N D

L

E

~

D E S

0

a

0

a a a

~

F I

0 0 0

a

I

I

0

0 0 0 0
Z·ERO FILL THRUWORD 058

a

a

0 0

0 0 0 0

a
a

0 0
0

a

0

a
a

0

0

0

51.1501

a a

0 0

a

0

0 0

a a

0 0

a

0 0

0 0 0

a

0 0

a a

a a 0
0 a a a a
E N D

0

~

F I

0

0

a

0 0

a

T= Type of field.
1 - alphabetic
2 - alpha-mmeric'
3 - numeric
PP = Position of decimal point in relation to a reference point immediately to the left of the left-mos~
digit of the field.
00 - coincident with reference point
i~ - not applicable
nL - n positions to the left of the
reference point
nR - n positions to the right of the
reference point
en = 1,2, ... ,9,A,B, ... ,Z)
S = Digit position of the sign.
1,2, ... ,9,A,B, or C
~ - not applicable
L = Digit position of the left-most digit
of the field, excluding sign.
1,2, ... ,9,A,B, or C
N = Number of digits in the field, excluding sign.
1,2, ... ,9,A,8, or C
(A = 10, B = 11, C = 12)

NOfE:

Place the sentinel END~FILE~DES
immediately following the last fourword packet and in word 059 of that
block.

0
FLOW-MATIC DATA DESIGN FORM 3

a
L

E

~

D E

s-

~~~

FIGURE 261

DIVISION Of SPEIIY lAND COIPOIATION

57

DATA DESIGN INPUT
FOR SAMPLE PROBLEM
en
(X)

NAME OF FilE

INVENTORY

FilE DESIGN

BlK CT IND

000000000001

BlK CT lOC

lOC IN lAST

OOOOOOOQOOOO

FIELD DESIGN

MMDDYYI0010l

lABEL
000000000001

ITEM DESIGN

lOC OF lABEL

000000000003

MULTI REEL

OOOOOOOOOOOl

END REEL SEN

ZZZZZZZZZZZY

END FilE SEN

ZZZZZZZZZZZZ

lOC IN FIRST

000000000000

ITEM SIZE

OOOOOOOOOOtO

NO OF KEYS

000000000001

KEY

PRODUCT-NO

QUANTITY

000001000000

000003

760

000000111111

PRODUCT-NO

000000000000

000002

ICO

000000000000

END FilE DES

ooeeOOOOOOOO

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

END FilE DES

NAME OF FilE

PRICE

FilE DESIGN

lABEL

MMDDYYI00201

lOC OF lABEL

000000000003

MULTI REEL

000000000000

BlK CT IND

000000000001

BlK CT lOC

END FilE SEN

ZZZZZZZZZZZZ

lOC IN FIRST

000000000000

000000000002

NO OF KEYS

060000000001

KEY 1

PRODUCT-NO

LOC IN lAST

000000000001

END REEL SEN

000000000000

ITEM DESIGN
f':'RODUCT-NO

000000000000

000002

ICO

000000000000

UNIT--PRICE

000001000000

0000033R 850

000000011111

END FilE DES

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

END FilE DES

NAME OF FilE

PRICED-INV

FilE DESIGN

lABEL

MMDDYY100301

lOC OF lABEL

000000000003

MULTI REEL

000000000001

BlK CT IND

000000000001

BlK CT lOC

END REEL SEN

ZZZZZZZZZZZY

END FilE SEN

ZZZZZZZZZZZZ

lOC IN FIRST

000000000000

lOC IN lAST

000000000000

ITEM DESIGN

ITEM SIZE

000000000010

NO OF KEYS

000000000001

KEY

PRODUCT-NO

000000000000

QUANTITY

000001000000

000003

760

000000111111

FIELD DESIGN

FIELD DESIGN

ITEM SIZE

000000000001

PRODUCT-NO

000000000000

000002

ICO

UNIT-PRICE

000002000000

0000033R 850

000000011111

EXT-PRICE

000003000000

0000038R 3AO

001111111111

END FilE DES

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

END FilE DES

NAME OF FilE

UNPRICED-INV

FilE DESIGN

lABEL

MMDDYYI00401

LOC OF lABEL

000000000003

MULTI REEL

000000000001

BlK CT IND

000000000001

BlK CT lOC

END REEL SEN

ZZZZZZZZZZZY

END FilE SEN

ZZZZZZZZZZZZ

lOC IN FIRST

000000000000

lOC IN lAST

000000000000

ITEM DESIGN

ITEM SIZE

000000000010

NO OF KEYS

0000000000,01

K.EY

PRODUCT-NO

FIELD DESIGN

000000000001

PRODUCT-NO

000000000000

000002

ICO

000000000000

QUANTITY

000001000000

000003

760

000000111111

END FILE DES

000000000000

000000000000

000000000000'

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000'

000000900000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

000000000000

OOOOOOOOOOQO

END FILE DES

FIGURE 27a

FLOWMATIC CODE INPUT FOR SAMPLE PROBLEM
(0)

I.NPUT INVENliORY FILE·A PRfcE. FILE·a ; OUTPUT PRICED.INV FILE·C UNPRICED·INV FILE·D ; HSP D •

(1) COMPARE PRODUCT·NO (A) WITH PRODUCT~NO (e) :

IF GREATER GO TO ORERATION to :

IF EQUAL GO TO OPERATION 5 , OTHERWISE

GO TO OPERATION 2 •
(2) TRANSFER A TO D •
(3) WRITE-ITEM D .
(4) JUMP TO OPERATION 8 •
(5) TRANSFER A TO C .
(6) MOVE UNIT-PRICE (e) TO UNIT·PRICE (C)
(7) WRITE-ITEM C .
(8) READ-ITEM A : 1F END OF DATA GO TO OPERATION 14 •
(9) JUMP TO OPERATION 1 •
(to) READ-ITEM e ;

IF END OF DATA GO TO OPERATION 12 .

( 11) JUMP TO OPERAT ION 1 •
(12) SET OPERATION 9 TO GO TO OPERATION 2 •
(13) JUMP TO OPERATION 2 .
(14) TEST PRODUCT-NO (e) AGAINST ZZZZZZZZZZZZ

IF EQUAL GO TO OPERATION 16

OTHERWISE GO TO OPERATION 15 •

(15) REWIND e .
(16) CLOSE·OUT FILE C • D .
(17) STOP .

(END)

ZZZZZZZZZZZZOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000OOOOOOOOOOOOOOO~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOZZZZZZZZZZZZ

FIGURE 27b

chapter 5

Intermediate
or
Working Storage

In order to introduce a new concept, consider a simple variation in the sample
problem. Suppose that the definition is altered by the fact that duplicate
product numbers may occur in the Inventory file, and that such additional
items are the result of errors in the original creation of the-file. Suppose
further that these extra items are to be placed in an Error output file for
printing.
The process chart of this second sample problem, with details of the formats
of the files, is -shown in Figure 28.

60

PROCESS CHART
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 2
PRICE
MAXIMUM OF 60,000
2 WORD ITEMS
LABE L: MMOOYYI00201
S INGLE REEL

RUN ij
APPLICATION OF STANDARD
PRICES TO INVENTORY:
ELIMINATION OF DUPLICATES.

PRICED INVENTORY
MAXIMUM OF 60,000
10 WORD ITEMS
LABEL: MMDDYYIOO301
MULTI REEL

UNPRICED INVENTORY
10 WORD ITEMS
LABEL: MMDDYYIO~OI
FOR HIGH SPEED PR INTER
PROBABLY S INGLE REEL,
BUT MAY BE MULTI REEL

ERRORS
10 WORD ITEMS
LABEL: MMDDYYI00501
FOR HIGH SPEED PRINTER
PROBABLY SINGLE REEL,
BUT MAY BE MULTI REEL

Conven tions

(I)

LABELS IN WORD 03 OF FIRST BLOCK ON EACH REEL.

(2)

BLOCK COUNTS IN WORD 01 OF LAST ITEM IN SENTINEL BLOCK.

(3) SENTINELS ARE ZZZZZZZZZZZY FOR END OF REEL AND ZZZZZZZZZZZZ FOR END OF FILE. THESE ARE
LOCATED" IN THE KEY WORD POSITION (WORD 000) OF FIRST '""VALID ITEM AND LAST ITEM OF
SENTINEL BLOCK.
FIGURE 28

61

An outline of the logical steps to be performed can be written as follows:

Assume at the start that the first item of each of the
able.

I

files is avail-

Compare the product number of the Inventory item with the product
number of the Price item.
a.
b.
c.

II

i~put

If the Inventory product number is less, go on to step II.
If the product numbers are equal, go on to step III.
If the Price product number is less, go on to step VII.

Prepare and write an Unpriced Inventory item.

Then go on to step

IV.
III

Prepare and write a Priced Inventory item.

IV

Store the product number.

V

Read the next Inventory item and go on to step VI. Or, if the
Inventory file is exhausted, wind up the problem and stop.

VI

Compare the new product number with the stored product number.

VII

a.

If the product numbers are equal 1 a duplicate has been found.
Prepare and write an Error item. Then go to step V.

b.

If the product numbers are not equal, go back"to step I.

Read the next Price item, and go back to step

I~

Note in particular step VII. If the Price file reaches end of data before
the Inventory file, there is no need to eliminate the unnecessary comparison.
This is true because the sentinel at the end of the Price file is in the
same field as the. product number, and the sentinel is larger than any legitimate product number. Figure 16 on page 19 illustrated the method used to
eliminate the unnecessary comparison.

This statement of the problem can be better shown on block chart form (Figure
29) •

62

BLOCK CHART
ABC MANUFACTURING COMPANY INVENTORY - PROBLEM 2

ASSUME FIRST
ITEMS AVA I LABLE

PRE,PARE

AN~

WR ITF UMPRIC£D
INVENTORY ITEM

PFlFPAR£ ANI!
PRICED

w~ITf

INYENTORY ITFN

FIGURE 29

63

In Sample Problem 1, no information had to be set aside for further reference;
all information could be acted upon at the time it became available. The
new concept introduced here in Sample Problem 2 is that of saving information
for future use. A common term for that part of the computer storage reserved
for this purpose in a given problem is Working Storage. In FLOW-MATIC the
term is abbreviated to W-storage. The programmer may save as many fields or
items as desired in W-storage. And he may name these fields in the same way
that English names are assigned to fields within the data files. It follows,
that, when referring to fields in W-storage, he labels them with the letter
W in parentheses, e.g., Operations (8) and (10) on page6S.
The FLOW-MATIe chart for Sample Problem 2 in Figure 30 is created in the same
general manner as before, but makes use of this additional facility. The
development of the FLOW-MATIC. code also follows the previous methods. Note
however, the use of the letter W in Figure 31, operations eight and t:en.
It remains to write the Data Designs for sample problem 2. Clearly the Data
Designs for files A, B, C, and D need not be changed. The Data Design for
the new file, E, is shown in Figures 32 on pages 66 and 67.
Note that,
since no field names within the file are required in the FLOW-MATIC code, none
have been described in the Data Design.

FLOW-MATIC CHART
ABC MANUFACTURING COMPANY INVENTORY - PROBLEM 2
IIIPUT FILES
IIIVEIITORV A
PRICE
B
OUTPUT FILES
PR ICED IIIVEIITORV C
UIIPRICED IUEIITORV D (PRINT)
ERRORS E (PR lilT)

...-----.;....A IS

GREATER

FIGURE 30

FLOW-MATIC CODE
(0)

INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICEDtNV FILE-D ERROR FILE-E ; HSP D , E •

(I)

COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION
rll- ; IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 •

(2)

TRANSFER A TO D .

(3)

WRITE-ITEM D •

(II-)

JUMP TO OPERATION 8 •

(5)

TRANSFER A TO C •

(6)

MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) •

(7)

WRITE-ITEM C •

(8)

MOVE PRODUCT-NO (A) TO PRODUCT-NO (W) •

(9)

READ-ITEM A ; IF END OF, DATA GO TO OPERATION 16 •

(10)

COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (W); IF EQUAL GO TO OPERATION II
OTHERWISE GO TO OPERATION J •

(II)

TRA~SFER

(12)

WRITE-ITEM E .

(13)

JUMP TO OPERATION 9 •

(If.I.)

READ-ITEM B ; I F END OF DATA GO TO OPERAT ION I .

(15)

JUMP TO OPERATION I .

(16)

TEST PRODUCT-NO (B) AGAINST ZZZZZZZZZZZZ
OTHERWISE GO TO OPERATION 17 •

(17)

REWIND B •

(18)

CLOSE-OUT FILES C , D , E .

(19)

STOP.

A TO E •

IF EQUAL

G~

TO OPERATION 18

(E~D)

ABC MANUFACTURING COMPANY INVENTORY PROBLEM 2
FIGURE 31

65

ANALYST: _ _ _ _ _
DATE:

DATA DESIGN FOR ERROR OUTPUT FILE
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 2

N AM E

A

0 F

~

F I LE

E R R 0

R

~

{).

~

F I L E

11

-

~

.~

0 E S I GN

II 11 II 11 11 II II II II 11

L ABEL

~

M M D D Y Y

L 0 C
0

/J.

~

II

II II II

I

0

0

5

l:l

0 0 0

0

11

REE L

0 0 0

0 0

0

0 0 0

BL K

II

0 0 0

0 0 0 0 0 0 0 0

BLK

II

0 0 0

0 0 0 0 0 0 0 0

II

11

I

L 0 C

-

Word location of label in label block.

11 11

0 0

I N0

3

I

1

=

Yes; 0

1

=

Block count desired; 0

=

No.

II /l
I

= ~o

block count.

II 11
I

RIE E L II S E N
z z z z z z z z z Z' Z Y

E N0

1.) Label with reel counter.
2.) If label variable all 6' s.

L AB EL

M UL T I

CT

11

~

0

English name of file.

II

11

-0 0 0 -00 F0 011
CT

/J.

Word location of block count in last item
of sentinel block. [000 to (item size-I)]

II

End of reel sentinel. If single reel, aI16's.

E N 0 11 F I L E II S E N
z z z z z z z z z z z Z
L 0 C II I N /l F I R S T

End of file sentinel.

0 0 0 0

Word location of sentinel in first invalid
item. [000 to (item size-I)]

L 0C
0 0 0

PAGE: _ _

II

0 0 0 0 0

I N

II

0

0

L AST

A

0 0 0 0 0 0

0

0

0

0

Word location of sentinel in last item of
sentinel block. [000 to (item size-I)]
~her

entries may be added here, each consisting of a title word and an information
word; e.g.,
PAfIT{£U{tk"EN

ZZlZlZz:znzx
LNI1YPISf

NJTE: Mter the last entry skip to the
next page.

FLOW-MAliC DAlA DESIGN FORM 1
~~~

FIGURE 32a
Sl.1499

66

DIVISION OF SPERRY lAND COIPORATION

ANALYST:
DATE: ________________________

I TE M a 0 ES I GNa
tJ. tJ. fl

tJ. tJ. fl Il fl

fl

a

Il fl

fl

fl Il

'I T E M

fl

S I ZE

0 0 0 0

0

0 0 0 0 0

0 0 0

-

KE y

Il

1

f1

~

~

~

l:::..

F

I L E !:J

N0

f1

Il

f1

E N D

0 F

Il

KE y S

0 0 0 0 0
tJ. Il Il
f1

!:J

I

0

1,2,3,4,5,6,10,12,15,20,30,60.

fl fl

0 0 0 0
Il fl

fl fl

~

!:J

!:J

D

E S

!:J

0,1,2, .... ,9

= number

of keys

Name of field, i.f no key

~

Further key entries may be added here,
each consisting' of KFY~n!YY.!MM followed by the name of the field.
If there are Sub-items to be described,
the descriptions are entered following
the last Key entry. Sub-items' are described with two-word packets consisting
of the name of the Sub-item followed by
a word in the format OOOSSSOOOEEE,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

ZERC FI iT ~U WOR ~~ is

/

ll'JIlYPISf
NJfE: After the last entry skip to the

next page.

"

FLOW-MAliC DAlA DES'ISN FORM2
~~~

E N D

~

F I

L

E !:J D

E S

DIVISION Of SPEll' lAND COIPOIATION

FIGURE 32b

51 ·1500

67

Now, however, there is a new kind of data to be described to FLOW-MATIe,
namely, that assigned by the programmer to W-storage. This data is described
to the compiler as if it were data from a file, except that none of the irrformation pertaining to the organization of a tape is applicable. In Sample
Problem 2, in fact, the only necessary description is of a single field, the
product number. Therefore, no item design information is written, and under
the field design section only one nar~ is listed. The information required
for this problem is shown below.
00
01

NAME6QFl\F!LE
W-STQRAGEI166
F!ELD6DES!GN

02
03
04-

66~666666666

05

000000000000

06

07

0000021111CO
000000000000

08

END6FILE~DES

}

Heading

1

Sub-Head ing

PRQDUCT-NQ66
4- word Field
Description

Sentinels

Zero fill
59

END 6 F! LE~D ES

This Data Design is placed on the input tape for FLOW-MATIC together with
other Data Designs. It will not be stored for use in other runs, since it
is designed specifically for one program.
In addition, it is necessary to inform the compiler that some W-storage has
been reserved by the programmer. This is done by writing a Directory for
inclusion on the FLOW-MATIC input tape.
The Directory is a list showing the number of words in the programmer's
W-storage.
00

D! R.E CT QRYIJ.IJ.IJ.

01

~~~~11~~661J.~1J.

02
03
04-

OOWOOOOOWxxx
W-STQRAGEIJ.66
END6D!RECTRY
Ze

59

rO

f ill

END6D!RECTRY

}

I

Header

Sentinels

WOOD - iW-storage always starts with the zero word.
Wxxx - This is the highest number assigned tq a W-storage word by the programmer.

68

In Sample Problem

2,

only one word of W-storage is used.

Therefore, the Directory is:

Oq

DlRECT~RY666
666666666666
OOWOOOOOWOOO
W-STQRAGE666
END6D!RECTRY

59

END6D!RECTRY

00
01
02
03

Zero fi 11

}

Header

I

Sentinels

The problem has now been completely prepared for FLOW-MATIC .. The arrangement
of the input tape is shown in Figure 33. Note that there are two additions
to the format of the tape: the W-storage Data Design, and the Di rec tory. The
Directory must follow all Data Designs and p,recede the FLOW-MATIC code.

FLOW-MATIC INPUT TAPE
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 2

INVENTORY
PR ICE
PRICED-INV

DATA DESIGNS FOR INPUT
AND OUTPUT FILES

UNPRICED-INV
ERROR
W-STORAGE

DATA DESIGNS FOR W-STORAGE

DIRECTORY

DIRECTORY

FLOW-MATIC
CODE
SENT INEL BLOCK

FIGURE 33

69

As implied above, it is sometimes useful to include some information under
the Item section in the W-storage Data Design. For example, how can several
entire items from a file be saved in W-storage? This is done by naming subitems, groups of UNIVAC words, within W-storage and entering the assigned
names of such sub-items in the Item design for W-storage. This use of subitem names is exactly parallel to that discussed in Chapter 4, where the
Data Designs for the input and output items are described.

Suppose it were required by this problem to store both the Inventory item
and Price item. Then sub-items for each item in W-storage can be named and
described as shown below:

00
01
02
03
01405
06
07
08
59

NAME6QF6F! LE
W-STQRAGE666
lTEM60ES!GN6
66/::'/::'6666/j666
INV-ITEM6666
000000000009

PR!CE-!TEM/::'/::'

}

Name of F i 1e

}

Header

}

Two word packet
describing inventory item
Two word packet
describing price item

000010000Q..U

}

ENO/::'F!LE60ES
Ze ro fill
ENO/::'FtLE60ES

~

End i ng Sentinels

}

Header

The corresponding Directory entry is:

00
01
02
03
Oll-

5°9

70

°lRECTQRV6/::,6
66.~!J6t~lJ.fj,/::'b./::'/::'
OOWOOOOO~

W-STQRAGE666
ENO/::'O!RECTRV
Zero fill
EN060!RECTRV

Sentinels

Item names need not describe the entire W-storage area. Single field names
may also be used. For example, addition of two field names to the W-storage
words reserved above changes the Data Design and Directory as follows:
00
01
02
03
Oil
05
06
07
08
09
10
II

12
13
III
15
16
17
18
5"9

NAME60F6FILE
W-STQRAGE666
!TEM60ES!.GN6

666666666666
INV-ITEM6666
000000000Q...Qj
PRICE-ITEM66
0000 I OOOOQll
F!EL060ES!GN

666666666666
. F!f lO- 166666
000012000000
000003111560
00001 I I I I 100
FIELO-266666
000013000000
0000021111CO
000000000000
EN06F!LE60ES
Zero fill
EN06F!LE60ES

t
t

Name of F i 1e
Header

t

Two
for
Two
for

}

Header

}

wo rd packet
inventory item
word packet
price item

00
01
02
03
Oil
5"9

O!.RECTQRY666

666666666666
OOWOOOOOWOl3
W-STQRAGE666
ENO.60!RECTRY
Zero fill
EN060lRECTRY

} Header

f

Sentinels

Il word packet
for 1st field

q word packet
for 2nd field

f

Ending Sentinels

The programmer designs the W-storage in a manner similar to the design of data
files themselves, following the same general rules. Following this, he writes
a Directory stating the total W-storage required.
Whenever W-storage is utilized, the Directory Block must be written and it
must immediately follow the blocks containing Data Designs and W-stor~ge on
the input tape. (Fig. 33)

71

chapter 6

Relative Machine Coding, X-I

Suppose that a problem requires a function which does not appear in the current list of FLOW-MATIC functions. Consider the concrete example in Sample
Problem 3. Suppose the definition of the original Sample Problem is altered
once again, by the fact that duplicate product numbers in inventory items
are not errors, but additional data to be processed. These items may be
considered to originate in the different production plants of the ABC Manufacturing Company, and the problem is now to find the total on-hand balance
for each product, to assign the appropriate unit price, and in addition to
compute the total dollar value of these balances. This total dollar value
will be referred to as the extended price for each product. Again, if there
is no price available to apply to a given product number, an unpriced inventory item is to be created, but now this ite.m will carry the total quantity
on hand in all of the production plants.
The process chart for Sample Problem 3 looks like the original (compare
Figures 34.on next page and 16 on page 19), but the logical statement of the
problem is quite different.

72

ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3
ALL FILES SEQUENCED BY PRODUCT NUMBER
PRICE
MAXIMUM OF 60,000
2 WORD ITEMS
LABEL: MMDDYYIOO~OI
SINGLE REEL

INYENTORY
MAXIMUM OF 300,000
10 WORD ITEMS
LABEL: MMDDYYIO.OIOI
MULTI RE~L

RUN 4
APPLICATION OF STANDARD PRICES,
COMPUTATION OF EXTENDED PRICE OF
EACH PRODUCT IN INVENTORY.

UNPRICED INVENTORY
'0 WORD ITEMS
LABEL: MMDDYYI00401
PROBABLY SINGLE REEL,
BUT MAY BE MULTI REEL
FOR HIGH SPEED PRINTER

PRICED INVENTORY
MAXIMUM OF 60,000
10 WORD ITEMS
LABEL: MMDDYYI00301
MULTI REEL

Conventions

(I)

LABELS IN WORD 03 OF FIRST BLOCK ON EACH REEL.

(2)

BLOCK COUNTS IN WORD 01 OF LAST ITEM IN SENTINEL BLOCK.

(3)

SENTrNELS ARE ZZZZZZZZZZZY FOR END OF REEL AND ZZZZZZZZZZZZ FOR END OF FILE. THESE ARE
LOCATED IN THE KEY WORD POSITION (WORD 000) OF FIRST INVALID ITEM AND LAST ITEM OF
SENTINEL BLOCK .•
FIGURE 34

73

Assume at the start that the first item of each of the input files is available.

I

Compare the product number of the Inventory item with the product
number of the Price item.
a.
b.
c.

If the Inventory product number is less, go to step II.
If the product numbers are equal, go on to step III.
If the Price product number is less, go on to step VIII.

II

Prepare an Unpriced Inventory item and set step VII to second
condition. Then go on to step IV.

III

Prepare a Priced Inventory item and set step VII to first condition.

IV

Store the product number and quantity from the Inventory file.

V

Read the next Inventory item and go on to step VI.
Or', if the
Inventory file is exhausted, perform step VII, wind up the problem,
and stop.

VI

Compare the new product number with the stored product number.

VII

a.

If the product numbers are equal, add the new quantity to
the stored quantity and go back to step V.

b ..

If the product numbers are not equal, go to step VII.

a.

First condition. Insert the stored quantity (total on hand)
in the Priced Inventory; compute extended price and insert
it in the item; write a Priced Inventory item. Then go back
to step I.

b.

Second condi t ion. I nsert the stored quanti ty in the Unpriced
Inventory;write an Unpriced Inventory item. Then go back to
step I.

VIII Read the next price item, and go back to step I.

The block chart for Sample Problem 3 is shown in Figure 35.

BLOCK CHART
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3

ASSUME FIRST
ITEMS AYAILABLE

PREPARE TO WRITE
UNPRICED IIIVENTORY
ITEM
SET VII TO b

PREPARE TO WRITE
PRICED INYENTORY
ITEM
SET VII TO a

IIISERT STORED
QUANTI TY AIID
CAlCULATE £lTEIIDFD
PRICE III
PREPARED ITEM

IIISERT STORED
QUAIITITY III
PREPAItED ITEM

FIGURE 35

75

The FLOW-MATIC chart in Figure 36 shows two operations which require the use
of new functions; Operation 11, addition, to find the total quantity on hand;
and Operation 15, multiplication, to compute the extended price for the priced
inventory file. The FLOW-MATle system makes provision for functions which
are not immediately available as a part of its library. These functions can
be written by a UNIVAC programmer in a form called X-l~ Whenever X-I coding
is to be used, an entry is made in the FLOW-MATIC code consisting of the appropriate operation number, the name "X-I", and an English statement denoting
the function to be performed by the X-I cooing. Although the English statement is not processed by the compiler, it is useful in making the FLOW-MATIC
program complete and understandable.
The FLOW-MATIC chart (Figure 36 on pages 76 and 77) and code (Figure 37 on
page 78) for Sample Probl~m 3 are completed as before, maintaining the use
of English to describe the logical steps. Note particularly operations
11 and 15 which call for X-I cOding.

FLOW-MATIC CHART
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3

IIIPUT FILES
IIIYEIITORY A
PRICE
B
OUTPUT FILES
PRICEO IIIVEIITORY C
UIIPRICEO IIIYEIITORY 0 (PRIIIT)

-T-RA-~:-F:-R -Hr-'-~-~-oO-:

0---ip;;..2

-A

-/B3---'tt.."..

FIGURE 36

76

EIIO

I~~_:~~~-------------------------I IF

H

J

FLOW-MATIC CHART
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3

10

COMPARE PRODUCT
NO'S A AND W
IF EQUAL, OP II
OTHERWISE, OP 13
A HOT

EQUAL TO W

.2/\

~

0--(

13
JUMP TO III

FIGURE 36

continued

77

FLOW-MAliC CODE
(0)
(I)

IN·PUT INVENTORY FllE-A PRICE FllE-B : OUTPUT PRtCED-tNV FILE-C UNPRICEDINV FllE-D ; HSP 0 .
COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (6) ; IF GREATER GO TO OPERATION
; IF EQUAL GO TO OPERATION 5 : OTHERWISE GO TO OPERATION 2 .
TRANSFER A TO D .
SET OPERATION 13 TO GO TO OPERATION 18 •
JUMP TO OPERATION 8 .
TRANSFER A TO C .
MOVE UNIT-PRICE (6) TO UNIT-PRICE (C) .
SET OPERATION 13 TO GO TO OPERATION 14 •
MOVE PRODUCT-NO (A) TO PRODUCT-NO (W) : QUANTITY (A) TO QUANTITY (W) ,
READ-ITEM A ; IF END OF DATA GO TO OPERATION 23 ,
COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (W) : IF EQUAL GO TO OPERATION II
OTHERWISE GO TO OPERATION 13
X-I ADD QUANTITY (A) TO STORED QUANTITY (W) .
JUMP TO OPERATION 9 .
JUMP TO OPERATION 14 .

21
(2)

(3)
(~)

(5)
(6)

(7)

(8)
(9)
(10)

(II)
(12)
(13)
(I~)

(15)
(16)
(I7)
( I 8)
( I9)

(20)

(21)
(22)

(23)
(2~)

MOVE QUANTITY (W) TO QUANTITY (C) ,
X-I COMPUTE EXTENDED PR I (,E AND I NSERT INC ITEM WRITE-ITEM C ,
JUMP TO OPERATION I
MOVE QUANTITY (W) TO QUANTITY ( f' )
WRITE-ITEM 0
JUMP TO OPERATION 17
READ-ITEM B ; IF END OF DATA GO TO OPERATION I .
JUMP TO OPERATION I •
EXECUTE OPERATION 13 THROUGH OPERATION 17 ,
IF EQUAL GO TO OPERATION
TEST PRODUCT-NO (8) AGAINST ZZZZZZZZZZZZ
26 ; OTHERWISE GO TO OPERATION 25 .

(26)

REWIND B •
CLOSE-OUT FILES C , 0 .

(27)

STOP. (EMD)

(25)

ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3
FIGURE 37

78

:

The ~-storage design and Directory for this version of the problem are shown
in Figure 38:

W-STORAGE DATA DESIGN
00
01
02

C3
04
05

06
07
08
09

NAME6QFL\F!LE
W-STQRAGE[\t\6
F!EL060ES!GN
f:.A66666t\66/::/j
PRQDUCT-M~t\6

000000000000
0000021111CO
000000000000

QUANT!TY66t\6

II

000001000000
000003111760
000000 I II I I I

12

EN06F!LE60ES

10

}

Name of f i 1e

}

He ad e r

I
!

Four word packet
describing quantity

Ending sentineis

Ze ro fill
59

Four wora packet
describing product number

EN06F!LE60ES

DIRECTORY
00
01
02
03

Oq

DIRECTORY666

6666666666066,

Head e r

OOWOOOOOWOOI
W-STQRAGEL\66
EN060!RECTRY
Zero fill

59

}

Ending sentinels

ENOl\DIRECTRY

APC MANUFACTURING COMPANY INVENTORY PROBLEM 3
FIGURE 38

In addi tion to the above input to FLOW-MATIe, the necessary X-I sections of
relative machine coding are prepared and supplied to the compiler. "This is
a job for a person trained in UNIVAC cOding since it entails the use of machine instructions. It does not, however, involve the lIse of actual machine
addresses; rather, a system of relative and symbolic aOdresses, associated
with the prepareo item designs and field descriptions, is utilized. FLOWMATIe accepts these X-I sections as input, includes them in the sequence of
operations as directed by the attached operation number, and converts the
COder's symbolic and relative addresses to actual machine addresses.

79

In order to write the required X-I coding the programmer needs the following
information frow the writer of the program:
(1)

the operation number of the X-I section which is to be written,

(2)

the description of the function to be performed.

(3)

the Data Designs and file letters of the files or items to be operated upon.

The FLOW-MATIC code, together with the Data Designs, is often sufficient
information to describe the function to be coded, if the descriptive English
in the X-I operations is complete.
Detailed instructions for the use of the UNIVAC programmer in writing X-I
sections are included in Appendix C.
The prepared X-I sections are Unityped on the input tape following the FLOWMATIC code. The necessary sections for this Sample Problem are shown in Figure
39:

RELATIVE MACHINE CODING
00
01
02
03

09
10

II
12
13

19

X- I t::l:~J::j6.6.t:.O I I
BOWOOIA-AOOI
COWOO I .-.....'
EN06SUBI?QUTN

EN06.SUBI?OUTN
X-I6.6t:.t:.t:.6015
LOCOO I PO"C002
J OC 003 "'-'
EN06.SUBRQUTN

EN06sUBRQ.UTN
Zero fill
remainder
of block

}
}

\
}
}

I
I

He ad e r
Body of Coding

Sentinels
He ad e r
Body of COding

Sentinels

F ill

59
ABC

MANUFACTURING cpr\I'PANY INVENTORY PROBLEM 3
FIGURE 39

80

The input tape for Sample Problem 3 in Figure 40 shows the use of all present
options in the FLOW-MATIC System. To summarize, a FLOW-MATIC input tape may
contain:

*(11 Data Designs for the input and output files.

These may be stored

on the library tape for the system.
*(21 Data Design for W-storage.

This mayor may not be required, de-

pending on the problem.
*(31 The Directory.

Required if W-storage is used.

(41 FLOW-MATIC code.
*(51 X-I Code sections.

Required if called for in Fl.OW-MATIC code.

(6) Ending sentinel block.
* Opt ional

In summary the uption of including X-I coded sections
purposes:

IS

provided for two

(1)

To allow a UNIVAC programmer to code a specialized function which
does not have wide enough application to warrant permanent inclusion
as a FLOW-MArIC library funct. ion.

(2)

To allow a UNIVAC programmer to code a needed function which does
not yet exist as a FLOW-MArIC operation.

The list of FLOW-MATIC functions will gruw as application of the compiler
indicates additional useful functions. Experience indicates that a large
proportion of data-processing programs can be written by combining existing FLOW-MATIC functions. Specialization of a function to meet a particular requirement is made by the proper choice of option in the FLOW-MATIC
code, and by the Data Designs. A major feature of the FLOW-MATIC Library
is that it contains routines capable of generating machine coding to handle
a large variety of programming and data situations. Thus a single entry in
the library can produce a multitude of different, specialized codes which
would be prohibi tive to wri te by hand and to store on tape.

81

FLOW-MATIC INPUT TAPE
ABC MANUFACTURING COMPANY INVENTORY PROBLEM 3

INVENTORY
PRICE

DATA DESIGNS FOR INPUT
AND OUTPUT FILES

PRICED-INV
UNPRICED-INV
W-ST~

DATA DESIGN FOR W-STORAGE

AGE

DIRECTORY FOR W-STORAGE

DIRECTORY

FLOW-MATIC
CODE

X-I SECTiONS

X-I SECTIONS REQUIRED BY PROBLEM

SENTINEL BLOCK

FIGURE 40

82

chapter 7

The
Flow-Matic
Compiling Routine

The process of preparing a problem for FLOW-MArIC has been described, using
three different versions of the same basic problem. Now, what happens when
the prepared input 'tape is used with FLOW-MArIC on the computer?
Figure

41

is a diagram of the four major phases of the compilation:

• Translation
• Selection
•

Allocation

•

Process ing

83

FLOW CHART OF FLOW-MATIC PHASES

TRANSLATOR
(PHASE I)

SELECTOR
(PHASE II)

ALLOCATOR
(PHASE III)

I
I
I
I

•
PROC.ESSOR
(PHASE IV)

FIGURE 41

PR INT
H. S. P.

1'rans.zatiQn: In this phase the FLOW-MATIC code is digested and condensed by
the appropriate Glossary. Pertinent information from the stored and/or new
Data Designs is added, creating the information listed in a standard format,
called Operations File 1. The Translator also begins a list known as the
Unedited Record, used in the final phase.

Selection: The purpose of the Selector phase is to choose from the FLOWMATIC library the required functions and to produce for each operation the
specialized coding to handle the fields, items, or files mentioned in the
FLOW-MATIC code. These pieces of coding are also arranged in a standard
format, and the entire set is called the Generated Library. In addition,
during the Selector phase, supplementary information is added to Operations
File 1, producing Operations File 2.

Allocation: The Allocator phase works only on Operations File 2, assigning
data storage areas in the Memory as required by the program, and assigning
a fixed Memory address for each piece of coding listed. These fixed Memory
addresses are inserted in Operations File 2, producing Operations File 3.

Processing: The final phase combines Operations File 3 and the Generated
Library, producing a program tape in machine code. Since all assigned locations are listed in Operations File 3, and all pieces of coding are contained in the Generated Library, the Processor simply inserts proper machine
addresses in the generated pieces ~f coding and assembles them in proper
order. In the Processing phase an Edited Record of the compilation is created
from the Unedited Record for use both as a printed record and as an aid in
debugging, if necessary.

During the Processing phase, a series of printouts is given. This list gives
the general layout of the program, and is designed for a programmer's use in
making a Codedit or Analyzer of the program tape.

In order to compile the first Sample Problem described in this manual, the
appropriate tapes are mounted on the proper Uniservos, and the normal UNIVAC
starting procedure is followed.
(See Appendix D for detailed operating
instructions. )

85

The normal printouts which occur during the compilation of
problem are:

Explanation

Printout

FILE OOAOOOOOOOOO SERVOS 333333333333 ~ tPPI·lppppppp~
FILE OOBOOOOOOOOO SERVOS 555555555555
FILE OOCOOOOOOOOO SERVOS 666666666666 777777777777
FILE 000000000000 SERVOS II111I1II11I 222222222222
END TRANS
END SELECTOR
END ALLOCTR
BLKS
STARTS
COMPILEO PROGRAM
0000
01
INITIAL BLOCK
09q.0
01
READS FOR SEGMENT 001
0000
06
CODING FOR SEGMENT 001
PROGRAM ON SERVO q. 008 BLOCKS

first sample

th~

Servo allocations
for

input and out-

put fi les
End of Translation
End

of

End of Allocation

Description of compiled program tape
End of

END PROC I

Selection

pa rt

Processor,

I

A request for three

TYPE IN PG. HEADER INFO

type-ins

I.

One word for
name

2.

of

run

One word for
p rog ramme r' s
name

3.

One word for
date

EDITED RECORD ON SERVO 5

119 BLOCKS

End of compilation

The printouts giving a description of the compiled program tape show that
not all of the blocks are arranged to fall into consecutive storage locations.
The compiled program has be~n designed so that the coding which reads in the
program falls into the highest block address available. This block is later
filled with data. A diagram of the compiled program tape is shown in Figure
/.1.2.

86

DIAGRAM OF COMPILED FLOW-MATIC PROGRAM TAPE

IN ITlAL BLOCK
STARTS IN 000
CONTRO L BLOCKS
READS FOR
SEGMENT 01
STARTS IN 9~0
CODING FOR
SEGMENT 01
STARTS IN 000
2ND BLOCK OF CODING
FOR SEGMENT STARTS
IN 060

THE ACTUAL CODING FOR THE
PROBLEM, IN THE FOLLOWING
ORDER:
(I) ALL CONSTANTS
(2) CODING FOR MOVEMENT
OF DATA FILES
(S)

CO~ING

FOR PROfESSING
DATA WHILE IN COMPUTER
STORAGE

LA ST BLOCK
STARTS IN
300

FIGURE 42

87

The Edited Record of compilation, a sample of which is shown in Figure
contains the following:

~3,

(1)

A listing of the FLOW-MATIC input tape for the problem, with the
exception of the Directory. It may contain Data Designs, W-Storage,
FLOW-MATIC Code, X-I Sections.

(2)

A table showing allocation of data storage areas with their related
symbolic addresses.

(3)

A list of the field names referred to in the FLOW-MATIC Code together with their assigned addresses, both symbolic and actual.

(~)

A description of the compiled program which contains for each operation number and function:
(a) The assigned starting and ending lines,
(b) The addresses of all constants used by the operation,
(c) The addresses of all exits from, and entrances to, the operation.

The compiled program tape can be tested by removing it from servo ~ where it
has been written, and mounting it on the instruction tape servo. Data files
and blanks are mounted on the other servos as required by the run.

When Sample Problem

is run, the following normal print-outs occur:

Printout

Explanation

Action

MMDDYYIOOIOI

This input tape has passed the label
check.
This input tape has passed the label
check.
FLOW-MATIC code ca lIed for Hi,gh-Speed
Printer output on servo I and alternate servo 2.
A reel of input has been processed.

None. Type-out for log
purposes.
None. Type-out for log
purposes.
Depress Block Subdivide
buttons I ana 2. Hit
start bar.
Mount the next reel of
this file on servo 3.
None. Type-out for log
purposes.
Remove and label output
tape, se rvo 6, wit h 1a be 1
and block count pr i nted.
Remove and label output
tape, servo J, with label
and block count printed.

MMDDYYI00201
B.S .,D. TAPE
111111111111
222222222222
MT NXT RL S

333333333333
MMDDYYI00102
666666666666
MMDDYYI00301
000000000073
111111111111
MMDDYYIOOqOI
000000000025

88

1

This input tape has passed the label
check.
A reel of output has been completed.
A reel of output has been completed.

Op No.

005
006

Call Word

TRANSFER
MOVE

Start

0307
0308

Line

End

0307
0309

RETURN JUMPS
OP OO~

0306

JUMPS
OP 006

0308

JUMPS
OP 0~7

0310

CONSTANTS
007

008

WR ITE-ITEM

READ-ITEM

009

JUMP

010

READ-ITEM

0310

0311

0312
0313

Off

JUMP

031Q

012

SET

0315

0310

O~

ff

0312
0313

031Q
0315

K50~

0035

JUMPS
OP C03
OP 008

0156

0311

RETURN JUMPS
OP C03

0164

JUMPS
OP C09
OP AI3

0312
00q9

RETURN JUMPS
OP AI3

0061

CONSTANTS
K503

0036

JUMPS
OP 001

0301

JUMPS
OP 01 I
OP BI3

031Q
0115

RETURN JUMPS
OP BI3

0127

CONSTANTS
K502

0037

JUMPS
OP 001

0301

JUMPS
OP 002
OP 013

030Q
0316

RETURN JUMPS
OP 009
OP 009

0312
0312

SAMPLE EDITED RECORD LISTING
FIGURE 43
This sample shows the kind of listing produced for each problem but is not an
ac tua l listing from the Sample Problems given in this manual.

89

Although the analyst originally prepared the FLOW-MATIC code he more than
likely is unfamiliar with UNIVAC machine code. If detailed inspection of the
program should be necessary, the Edited Record has proved entirely adequate
in providing information about the program to the trained UNIVAC programmer.
This allows him to assist the analyst in debugging (checking).

90

Appendix A
Flow-Matic Functions,
Guide For Writing Flow-Matic Code,
Flow-Matic Statements

91

FLOW-MATfC FUNCTIONS
For Sample Problems I, 2, 3
(This is not a complete list of available FLOW-MATIC Functions.)

CLOSE-OUT:

Terminates the output files and rewinds the output tapes.

COMPARE:

Examines two fields for magnitude and/or equality: branches
accordi ngly.

EXECUTE:

Performs designated operation or sequence of operations.

INPUT:

Identifies the input and output files to be used and supplies
the first item of each input file.

JUMP:

Alters the normal sequence of operations and follows the directed path.

MOVE:

PLaces one or many fields of data in any other fields.

READ-I TEM:

Supplies the next item 9f an input file. When there is no
more data, terminates the file and takes the directed path
within the problem.

REWlND:

Rewinds current reel of an input file.

SET:

Alters an operation, changing the order of execution.

STOP:

Rewinds the instruction tape and terminates the problem.

TEST:

Examines the field and a constant for magnitude and/or
ty; branches accordingly.

TRANSFER:

Places one item or group of words in any other item or group
of words of equal size.

WR I TE - ITEM:

Sends an output item to the output file.

equali~

GUIDE FOR WRITING FLOW-MATIC CODE

1.

A FLOW-MATIC code word contains a maximum of twelve digits, none of
which is a space (~).

2.

FLOW-MATIC code words are separated by spaces

3.

Each statement (operation) contains up to a maximum of sixty FLOW-MATIC
code words:

~.

(~IS).

a)

excluding the operation number and ending period,

b)

including all other words and punctuation marks.

Punctuation is according to proper English usage:
a)

punctuation marks count as words,

b)

only the ending period is of critical importance.

5.

Assigned field names or file names may contain hyphens if it is desirable
to combine more than one English word into a single name.

6.

Assigned field names are always followed immediately by the pertinent
file letter enclosed in parentheses:
a)

in all other cases the file letter is not parenthesized.

7.

All operation numbers are numeric.

8.

The operation number sequence starts with zero:
a)

9.

The operations are written in unbroken numeric sequence:
a)

10.

operation zero is always the input statement.

there may be a maximum of 999 separate operations.

The,last operation must be the stop operation followed by the word END
in parentheses.

93

FORMAT FOR FLOW-MATIC CODE
1.

It is recommended that each operation begin a new blockette.
statement may be space-filled to the end of the given blockette.

Each

2.

The final block of FLOW-MATIC code must terminate with at least twelve
full digits of spaces (~IS).

3.

The blocks (s) of FLOW-MATIC code and X-I sections, if needed, are followed by a sentinel block containing Z's in words 000 and 059.

LEGEND FOR DESCRIPTIONS OF OPERATIONS
1.

Lower case indicates information to be supplied by the programmer.

2.

Brackets [ ] indicate options available to the programmer.

3.

h = present operation number
hI' h2' h 3 .. · = other operation numbers.

~.

fl' f2' f 3 .·.

= file

5.

sl' s2' s3'"

= servo

6.

field-name

= name

letters assigned by programmer.
numbers assigned by programmer.

assigned by programmer to data field.

e.g.,

STOCK-

NUMBER
7

file-name

= name

assigned by programmer to data file,

e.g., INVENTORY

FLOW-MATIC LIBRARY ROUTINES
(FLOW-MATIC CODE FORMAT)*

CLOSE-OUT
COMPARE

Option

1

(h)~CQMPARE~field-name~(fl)~WITH~field-~ame~(f2)~

;~IF~EQUAL~GQ~TQ~QPERATIQN~nl~

;~QTHERWISE6GQ~TQ~QPERATIQN~h2~·

Option

2

(h )~CQMPARE~field-nametd f 1) ~ WITHl\field-name~( f 2) ~
;~IF~GREATER~GQ~TQ~QPERATIQN~hl~
;l\QTHERWISE~GQl\TQl\QPERATIQNl\h2~·

Option 3

(h)~CQMPAR~field-nam~(fl}~WITHAfield-name~(f2)~

;6IF~EQUAL~GQ6TQ~QPERATIQN~hl~
;~IFAGREATER~GQ~TQ~QPERATIQN~h2A

;6QTHERWISE~GQ~TQ6QPERATIQN~h3~·

Option

IJ

(h)~OQMPARE~field-name~(fl)~WITH6field-namel\(f2)~

;~IFAGREATERllGQ6TQAQPERATIQN~hl~
;6IF6EQUALAGQ~TQ6QPERATIQN6h2l\
;AQTHER~ISE6GQATQ6qPERATIQN6h3/1·

EXECUTE

(h)~EXECUTE6QPERATIQN~h16[THRQUGHt\QPERATIQN~h2l\]·

• Although the ftDW-MATIC code statements for the Sample Problems do not show expl ici tly the sl,aces
(6- 8) between word., they are included here for completeness and accuracy.

95

INPUT

SPECIAL NOTES
1.

The assigned file-name may not begin with the digits FILE-.

2.

If servo numbers are not specified, the iompiler will assign them, reserving the proper servos for tapes for HSP or TIC, as stated~.

3.

For a single input file, continuous reads will be provided. For two or
three, way input, standby coding will be provided, unless preselection is
specified. Up to.eight way input coding will be provided in the preselection option, and up to five full-word keys may be used.

~.

The normal and error print~outs which may occur in the execution of this
coding are self-explanatory. In addition, b~eakpoint 1 is used throughout the coding to provide operating options. For example, if a tape label fails the check, an error print-out gives this information to the
operator; he may then force transfer on breakpoint 1 to proceed, if desired. In all cases where it is desired to bypass the error, the action
is to force transfer on breakpoint 1.

s.

If it is desired to begin the problem over, the operating instructions
are:
a - Rewind all tapes except the instruction tape.
b - Clear C and rIo
c - No transfer on Breakpoint 2.
This coding is always provided.

96

6.

If rerun cOding has been requested, the operating instructions are:
a - Rewind all tapes except the instruction tape.
b - Clear C and rIo
c - Force transfer on Breakpoint 2.
The problem will be resumed from the last completed output reel, as specified in the input statement.

JUMP

(h)6JUHP6TQ6QPERATIQN6h 16.

MOVE

(h) 6MQVE6field-nametd f 1) 6TQ6field . . . name6( f 2) 6
[,6: ield-name6 ( f 3) 6
&

,6field-name6(fn)~J

[;6field-name6(f 1 '

)6TQ6field-name6(f2')~

r ,6field-name6(f3')~

,6field-name6(f n ' )61.
REAO-/ TEM
(h)AREAD-ITEH~fl~[;~IF6END~QF!\DATA6GQ6TQ6QPERATIQN6h161.

sr Eel Al NOTES
1.

Each input file mentioned in the INPUT statement must have at least one
READ-ITEM operation.

2.

At least one READ-ITEM operation, for each input file, must include the
optional phrase, IF END OF DATA ..... .

3.

If two or more READ-ITEM operations, for a single input .file, include the
IF END OF DATA ...•... option, the operation numbers, hI' must be identical.

REW INO
SET

(h)6SET6QPERATIQN6h 16TQ6GQ6TQL1QPERATIQN6h 26
[,6QPERATIQNL1h3L1TQ~GQ~TQ~QPERATIQN~h4~

,~QPERATIQN~h5~T.Q~GQ~TQL1QPERATIQNl\h6~1.

97

(h)L)STOPL).L)(END)

STOP

SP ECI AL NOTES

The stop operation must be. the highest numbered operation in the problem,
and it must be followed by the word END in parentheses.

1.

TEST

Option

1

(h)~TEST[)field-nameL)(fl)[)AGAINST[)test-val~eL)

; [)IF[)GREATERL)GQt\TQL)QPERATIQNL)h 1 [)
; [)IF'[)EQUAUGQ~TQ[)QPERATIQN[)h 2L)
( ; ~AGAINSTL) ... [)]
;[)QTHERWISEL)GQL)TQL)QPERATIQN[)h 3 L):
Option

2

(h)6TEST[)field-name[)(fl)6AGAINST[)test-value~

;~IF6GREATER6GQ6TQ[)QPERATIQN6hlL)
;~IFL)LESS6GQ6TQ6QPERATIQNL)h2L)

[ ; .6AGAINST~ ... ~ 1
;~QTHERWISE~GQL)TQ6QPERATIQNL)h3L)·

Option

3

(h)L)TESTL)field-name[)(fl)~AGAINST~test-valueL)
;~IF6UNEQUAL6GQ[)TQ~QPERATIQN~hl[)

[ ; ~AGAINST~ ..• ~ 1
;L)QTHERWISE~GQ[)TQL)QPERATIQN[)h2[)·

SPECIAL NOTES
1.

The conditional phrases, IF GREATER, IF EQUAL, IF LESS, shown in Option
1 and 2 may appear singly or in any order in combinations of two.
The
phrase OTHERWISE must always appear, and must be writt~n last.

2.

If it is desired to use a test value of spaces or per~pos, the words
SPACE, PERIOD, SPACES, or PERIODS should be used instead of the actual
digits. In these cases, only one test value is acceptable. In all other
cases, tests against many test values may be made in one operation.

TRANSFER

Option

1

(h)[)TRANSFER[)fl[)TQ~f2~·

Option

2

(h)[)TRANSFER[)sub-item-name~IN[)fl[)TQL)f2~·

98

Option 3

(h)~TRANSFER~fI~TQ~sub-item-name~IN~f2~·

Option

(h)~TRANSFER~sub-item-name~IN~f16TQ~sub-item-name~IN~f2~.

4

SPECIAL NOTES
1.

Item or sub-item sizes in fi and f2 must be equal in size.

WRITE-ITEM

99

.. Appendix B
Data Design Pre-Printed Forms

101

PAGE: _ _

ANALYST: _ _ _ _ _ _ _ _ __
DATE: _____________________

N AM E

fJ.

-

0 F

fl

F I L E
English name of file.

F I L E

fl

0 E S I GN~

~

fl

l!l l!l l!l II l!l l!l l!l

fl

~.

~

L AB E L

l!l 'l!l l!l l!l

l!l l!l l!l
1.) Label with reel counter.
2.) If label variable· all ~' s.

L 0 C

6

0 0 0

0 0

0

0 0 0

MU L T I

l!l

REE L

0 0 0

0 0

0

0 0

BL K

Il

-

0 F

-

l!l

L AB EL
Word location of label in label block.

l!l II

0 0 0

1

= Yes; 0 = No.
'--

CT

~

I N '0

fl II

0 0 0 0 0 0 0 0 0 0'

0

BLK

fl

CT

0 0 0 Q 0 0

E N0

Il

II

-

L0 C

1

fl fl
Word location of block count in last item
of sentinel block. [000 to (item size-I)]

0 0 0

REEL

I1

= Block count desired; 0 = No block count.

S

EN

:
:

END

End of reel sentinel. If single reel, al16's.

II

F

I!

L E

II

SEN
End of file sentinel.

-

L 0 C

fl

I N

~

F I RST

O· 0 0 0

0 0 0 0 0

L Qc

I N

fl

II

LAS T

Word location of sentinel in first invalid
item. [000 to (item size-I)]

fl
Word location of sentinel in last item of
sentinel block. [000 to (item size-I)]

0 0 0 0 0 0 0 0 0

o

Other entries may be added here, each consisting of a title word and an information
word; e. g. t PARf~~~
122ZZl.1ZlZlY..
U\'1TYPIsr
NJIE: After the last entry skip to the
, n~xt page.

FLOW-MAliC DAlA DESIGN FORM 1

R

.Aayl&.ua.

B....l. ~

DIVISION 0' SPIIIY .AND COI'OIATION

51.1499

102·

ANALYST:

PAGE: _ _

DATE: __________________- -____

I T E M Il 0 E S I G N

11

11 11 11 11 11 11 11 11 11 11 11 11

S I ZE

I TEM

t:a

0 0 0 0

0 0 0 0 0

-

N0

11

QF

tl

KE y S

0 0 0 0

0 0 0 0

K E -y

1

11

11 t:a 11
1,2,3,4,5,6,10,12,15,20,30,60.

t:a t:a

0 0 0

0,1,2, .... ,9

=

number of keys

t:a t:a t:a 11 t:a 11 11
Name of field, if no key

~

Further key entries may be added here,
each consisting of KFY~n6~ followed by the name of the field.
If there are Sub-items to be described,
the descriptions are entered following
the last Key entry. Sub-items are described with two-word packets consisting
of the name of the Sub-item followed by
a word in the format OOOSSSOOOEEE.,
where SSS is the first word and EEE is
the last word of the Sub-item, relative
to the entire item.

l~I1YPIsr

NJfE: After the last entry skip to the

next page.

"

FLOW-MATIC DATA DESIGN FORM 2
~1oaR..tL~
DIVISION Of SPERRV RAND CORPORATION

51.1500

103

ANALYST: ____________________

PAGE: _ _

DATE: ------_________________

F I EL 0
-A A

fj

~

0 E S I GN

A A A A A A 6 A A
Name of field.

0 0 0

0

a

0

0

0 a 0 a 0

0 0
0

Word location in item. [000 to (item size-I)}
Field descriptor of form OOOOOTPPSLNO*
Extractor; if full-word field, all 0' s.

0 a a

0

a

0

a

0 a a 0 0

a

0

0

0 0

0 0

a

0

0

a

0

a

0

a

a a a

0

0 0

0 a 0 0

a 0 0 0 0

0

0 0 0

0 0 0 0 0

0

0 0
0

0 0 0 0 0

0 0 0

0 0

0

0 0 0 0 0

0 0 0

0 0
0

0

a 0 a.

0 0

0 0 0

An unlimited number of fields may be
described using the same four-word packet
format.
* Explanation of field descriptor:
T = Type of field.
1 - alphabetic
2 - alpha-numeric
3 - numeric
PP = Position of decimal point in relation to a reference point immediately to the left of the left-most
digit of the field.
00 - coincident with reference point
ii - not applicable
nL - n positions to the left of the
reference point
nR- n positions to the. right of the
reference point
(n ; 1,2, ... ,9,A,B, ... ,Z)
S = Digit position of the sign.
I,2, •.. ,9,A,B, or C
i-not applicable
L = Digit position of the left-most digit
of the field, excluding sign.
I,~, ... ,9,A,B, or C
N = Number of digits in the field, excluding sign.
1,2, ... ,9,A,B, or C
(A = 10, B = 11, C = 12)
NOIE: Place the sentinel. ENDi1FILEi1DES

immediately following the last fourword packet and in word 059 of that
block.

0 0 0
0

FLOW-MAliC DAlA DESIGN FO RM 3
~Rsnd~
DIVISION OF SP£ RRY RAND CORPORATION

S1-.1501

1011

Appendix C
Relative Machine Coding, X-I

105

X-I sections of a FLOW-MATIC program are hano-tailored sections of coding.
Actual machine instructions are used, but a system of relative and symbolic
addressing is used in place of actual machine locations. These X-I addresses
are always a combination of an alphabetic character together. with three numeric digi ts.
Use

To address a field within an
input or output item, or the
item itself. The alphabetic
is the assigned file letter
of the field or item; the numeric is the word location
within the item.

Alphabetic

A
B
C

Numeric

through item
size minus one.

000

D

E
F
G
H
I

To address a field or unit in
W-storage. The alphabetic is
always W; the numeric is the
word location within W-storage.

W

To address a line of coding
within this particular section.
The alphabetic, M, indicates
that this relative address is
to be modified by the addition
of the starting line assigned
by the compiler.

106

th rough maximum assigned by
prog rammer in
Di rectory.

000

th rough maximum useO by coder
in this section.

000

To address a line of coding in
another X-I section. The operation number of the section
referred to is also required,
and must follow the J notation
in the next line of coding as:
UOJ011
ooooOOQP.021
meaning "jump to line MOll of
X- 1 ope rat ion 21."

J

000 through number
of last line of
coding in X-I. section referred to.

To address a temporary storage
location, that is,a location
whose contents are not to be
preserved for future operations.

T

000

th rough maximum assigned by
coder.

The X-I sections are written in blockette rather than block form, starting
each new section at the beginning of a blockette and continuing for as many
blockettes as required. They may be typed in any order of operation numbers.
The format of an X-I section is as follows:
One word containing the FLOW-MATIe operation number for which the
coding is wri tten, as "X-I~{jfjf.j:.,fj012."
This header is not counted as an N
address.

Header

-

- The cooing is \'v°ri tten starting with line number Hooo and
utilizing the appropriate address symbols given above. The extra lines
("ooooOOQP.021") used with the J notation are not counted as M addresses.

Body of coding

Following the ti tIe "CQNSTANTSl\fj{j", numeric or alphabetic quan tities are listed which are not to be modified by the compilation process.
The title is not counted as an M address; but the actual constants are assignee M addresses in sequence with other lines of the section. These constants are stripped out by the compiler and includeo with other constants
from the remainoer of the·program, and all duplicates are eliminated. Since
in the final compiled program, constants are not listed in their original
order, addressing a series of constants by incrementing an instruction is not
permissible. If it is desired to use such a technique, and if the constants
are numeric in the third and ninth digits, they may be included preceding the
title as a part of the main body of coding. Any counters incremented during
execution of the program must also be included in the main body of the coding,
not in the Constants Section.
Cons tan ts

-

Under the ti tIe word "CQDE"fjCQNSTANTSfJ" are listed those
constants containing address symbols in the third and ninth digits whi~h are
to be converted by the Compiler. The general rules stated in the preceding
section apply to this group also. All X-I symbols may be used except the
"J" and the "M"; whe·re it is required to use these symbols, the words containing them must be carried in the body of the coding.

Code Constants

-

A maximum of 59 constants and code constants together may be written in any
single X-I section.
- the word "END{jSUBRQUTN" is written following the last line of
the section and in word 09 of the blockette (not necessarily in 59 of the
block). A subsequent X-I section begins (with the header) in word 00 of the
next blockette, and any partial blocks are simply zero filled.
End Sentinel

107

Since the constants and code constants are removed by the compiler, and
placed in a constant pool for the entire program, the exit from an X-I section
is normally through the la°st line of coding to the next FLOW-MATIC operation.
If it is desired that this exit be other than the last line of coding, the
programmer uses the J notation to address line 000 of the next operation.
A non-functional section of X-l coding, which illustrates all of the above
comments, is shown in Figure ijij on page 109.
Normal Printouts

During compilation:

None

Error Printouts

During compilation (Selector Phase)
Prin tou t

Meaning

Action

CANNQT6FIND6
X-I666666hhh
SUBRQUTN6QN6
INPUT6TAPE66

Operation hhh in FLOW-MATIC code
calls for an X-I section, but no
section wi th this number appears
on the input tape.

Type in correct
header as
X-ll1tJtJl1l1l1hhh

BAD6ADDRESS6

oOHMMHOOOO00

Type in corrected
line of coding
CCCCCCCCCCCC

CCCCCCCCCCCC

Line HMMM of X-I section hhh contains an alphabetic other than
A-I, J, M, T, W, as shown in
CCCCCCCCCCCC.

WRQNG6REL6AD
X-11111661111hhh
OOMNMMOOOOOO
CCCCCCCCCCCC

Line MMMM of X-I section hhh contains an M reference greater than
the M address of the last line of
the section.

Type in corrected
line of coding,
CCCCCCCCCCCC

CANNQT!J.USE!J.6
X-I!J.66!J.!J.lJhhh
OOHMHHOOOOOO
CCCCCCCCCCCC

Line M}~~1 of X-I section hhh is
a code constant and contains a
reference to a non-permissible
M address.

Type in corrected
1 ine of coding,
CCCCCCCCCCCC

ioJxxxioJyyy

The printout shows a line of coding which has at least one J address, but no line with op nos.
follows it (where i equals any instruction. )

Type in op no. or
op nos. as
QP.hhh
in proper halfworo( s) .

HALF!J. "QRD6116
ADDRESS!J.IN66
X-166/J./J./J.b.hhh
OOMMMMOOOOOO
CCCCCCOOOOOO

Line MNMM of X-I section hhh contains an invalid file letter as
shown in instruction CCCCCC.

Type in correciion
CCCCCCOOOOOO.

X-I666~!J.!J.hhh

108

SAMPLE X-I SECTION
Symbolic Address

Block Address
00
01
02
03
04

X.l~~~~~~Ol2

f

Header
MOOO
MOOl

BOAOOILOMOO8
- - - - QOM006
A.M009COAOOl

06
07
08
09

HOMOOOUOJOOO

MOO2
M003
M004
M005

QP.013
BOM012COMOOO

M006

10
·11
12

CQN~TANTS~~~

f

000000000001

I

05

13
14
15
16
17
18
19

BOMOOOA·MOI0
LOMOIIQOM006

-

M007

UOMOOO

000006000006
000001000000
CQDE~CQNSTS~

BOAOI0LOM008
BOAOOOLOM008
END~SUBRQUTN

-

Body of Cod in 9

t

~

Tit1e
M008

Constants

M009
MOI0

Title
Code Constants

MOll
M012

-

END~SUBROUTN

FIGURE 44

109

Appendix D
Flow-Matic Operating Instructions

III

FLOW-MATIC COMPILATION

The following information about the operation of a FLOW-MATIe compilation
indicates the print-outs and action to be taken for a normal (i.e., errorfree) compilation.

PART I.

OPERATING INSTRUCTIONS FOR COMPILATION

Servo Allocation:
1

2

FLOW .. MATIe Compiler (ring)
FLOW -MATIe Li b rary ( ring)

Blanks
FLOW-MATIe Code
9

(ring)

Blank (Rerun)

Initial Instructions:
a.
b.
c.
d.

Nount tapes as indicatea above.
Supervisory Control Printer on normal.
No block sUbdivision.*
Ini tial read servo 1 (compiler) and hi t start bar.

Breakpoints:
1

S

Force no transfer to omi t use of servo 9 for Rerun.
Release after Block Subdividing servo 5.

* It is necessary to BSD servo 5 in order to allow the Edited Record to be
printed. To achieve this, set breakpoint 5 at start of compilation and
follow instructions in NORMAL PRINTOpTS.

I 12

PART I I.

NORMAL PRINT -OUTS DURING COMP I LA TION

Print-Out

Ac t ion

FILE OOfOOOO00000 SERVOS daadaaaaaaaa bbbbbbbbbobb
FILE OOfOOOOOOOOO SERVOS aaadaddaadaa bbbbbbbbbbbb

None

END TRANS
END SELECTOR
END ALLOCTR
COMPI LED PROGRA~1
INITIAL BLOCK
READS FOR SEGMENT
RERUN

None
None
None
None

STARTS
0000
001
09-1-0
09+0
0760
00('0
CODING FOR SEGMENT 001
CODING FOR SEGMENT 002 CCCC

BLOCKS

DODD
PROGRAM ON SERVO 4
END PROC I.
8.S.D. SERVO 5

EDITED RECORD ON SERVO 5 YYY BLOCKS

dadddddddddd = servo nU~Oer for initial reel
bbbbbbbbbbbb = servo number for alternate reel
f = input or output file letter

01

01
01
02

nn

nn = number of blocks in 1st segment
mm ~ nU~Der of blocks in 2ne segment, minus
ecce = location of 1st block in 2nd segment
DODO = location of last clock in 2nd segment

mm

01 (see Cyel ing)

xxx = total

XXX BLOCKS

TYPE IN PG. HEADER INFO

Exp lana t ion

nu~ber

of blocks in cOMpiled tape

None
Block subdivide
servo 5, re lease
breakpoint ~5
and hit start bar
Type in three (3)
words of run identification e.g\,
name of run, programmer, date
None
YYY

= number of

blocks in EDITED RECORD

CYCLING

Note that the last block of the second, third, .... , segments may have a
special address, out of sequence with the other blocks in the segment. This
occurs when the last block of a segment is a partial block. The compiler
automatically arranges to repeat as much of the coding of the preceding
block as necessary; then it compiles the partial block of coding, and arranges
the read instructions for the tape so that this last block will overlay the
repeated coding. This technique is employed to allow the maximum amount of
memory space for each subsequent segment.

113

PART III.

PRINTING THE EDITED RECORD

The printer plugboard should be a non-split,
The paper loop should be a standard,
Row

132

board.

1:1

row loop with the following punches:
Channel

1

7

2

1

67

7

68

1

Set the printer for normal, single space operation.

t III

Index
Charts
Process
Genera I, 15
Block
General,IS-20
Examples, figs. 16, 17,29, 35

Edited Record Listing
Genera 1, 88
Example, fig. 4-3

Error Printouts during compilation, 108

Flow-Matic
General, 21-22, 26-29
Examples, figs. IS, 2i, 22, 30, 36
Flow-Matic Functional Statements, Chap. 3
General Description, 92
Coding, Relative Machine

Coding format, 95-99

General, Chapter 6, App. C

Guide for writing, 30-33, 93

Examples, figs. 39, ijij
position on input tape, fig. ijO

Examples, 19, 23, 31, 37

Compjler
General, 83-90, figs. 20, Itl
Operating instructions, App. D

Format for Flow-Matic Code
Gene ra I, 93-94Legend. 94-

Functions. description of, 92
Data Design
General, 23, Chap. ij
File Design
General, 38-40
Examples, figs. 26a, 26d, 26g, 26j, 32a
Item Design
Gene ra 1, 16-18, ij l-ij2
Examples, figs. 25, 26b, 26e, 26h
Field Design
Gene ra I, 4-3-ij5
Examples, figs. 26c, 26f, 26i. 261
Forms, Pre-printed, App. B

Directory, 68

Layout, input tape, 33, 4-0, 42

Operdting Instructions, see Compi ler

Progrdm tape layout, fig. 4-2
see Edited Record Listing

Working Storage (W-Storage), Chap. 5

Examples, 68, 70

Examples, 68, 70, 71

Position on input tape, figs. 33, ijO

Position on input tape, figs. 33, ijO

115

Univac II Systems . For data-automation which involves large
volumes of input and output.

THE UNIV AC@ FAMILY

Uni v ac Fi Ie - Computer . For ins tantaneous
random access to large - ~cale internal
storage-- plus computation.

Uni vac 60 & 120 Computers · For speeding
and simplifying the procedures . of punched ·card 'lystem~.

·OF ELECTRONIC COMPUTERS

Univac Scientific Systems • For complex and intricate computations of engineering and resftarch.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19
Create Date                     : 2017:08:11 09:15:23-08:00
Modify Date                     : 2017:08:11 09:30-07:00
Metadata Date                   : 2017:08:11 09:30-07:00
Producer                        : Adobe Acrobat 9.0 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:c3fe972a-c087-e848-a9ad-ccb883fd71a7
Instance ID                     : uuid:f7f295d2-1966-7342-b2ae-8177d929dbde
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 126
EXIF Metadata provided by EXIF.tools

Navigation menu