AUTOMATIC PROGRAMMING MANUAL
THE ASSEMBLY PROGRAM
Copyright - 1957
A Division of Minneapolis-Honeywell Regulator Company
151 Needham Street
Newton Highlands 61, Mass.
Printed in U. S. A.
The present manual represents Volume I of a set of Automatic
Programming Manuals. It serves to introduce the concept of automatic
programming as applied to the DATAmatic 1000 Electronic Data-Processing
System. The main body of this volume is devoted to a description and
explanation of an Assembly Program for use with this system. The DA
TAmatic 1000 body of instructions is reviewed, special Assembly Program
instructions are described, and the procedure for writing a program to be
assembled is developed, step by step. For the benefit of readers not
familiar with the DATAmatic 1000, a brief description of the system
precedes the manual.
Volume II is devoted to the DATAmatic ABC-1 Automatic Business
Compiler, which permits the programmer to write complicated programs in
easily learned codes. This volume also describes the Library Additions and
Maintenance Program (LAMP), by means of which the programmer may utilize,
modify , and/or add to a set of frequently used routines stored on a
special tape called the Subroutine Library. This Subroutine Library is
listed and described in a loose-leaf appendix to the Automatic Programming
Volume ill is a Utility Manual which describes a number of Service
Routines, such as a Tracer Routine, a Storage Print Routine, a Program
Modifier Routine, and a Tape Editor Routine. These routines perform
service functions which facilitate maintenance and use of the various
automatic programming devices available with the DATAmatic 1000.
TABLE OF CONTENTS
Preface iii Introduction to the DATAmatic
Introduction to Automatic
Loading the Assembly
Starting the Assembly
Resetting the Assembly
Operating Procedure for the Assembled
Appendix A. Fixed-field Card
|INTRODUCTION TO THE DATAmatic
The DATAmatic 1000 is a high-capacity electronic data-processing system
designed specifically for application to the increasingly complex problems
and procedures required in modern business. The system incorporates
significant new systems techniques as well as several basically new
component developments. One of the primary features of the DATAmatic 1000
is its exceptionally large capacity to store information on magnetic tape,
coupled with its ability to feed information from magnetic tape to the
processing section and back to magnetic tape at a sustained r ate of
60,000 decimal digits per second. In addition' the operational speed of
the processing section maintains full compatibility with this high speed
of information transfer.
Two of the most cumbersome aspects of most business problems are
sorting and file maintenance. The DATAmatic 1000 is equipped with an
extensive and flexible set of instructions, designed specifically to excel
in the performance of these functions and many others. These instructions
may be automatically assembled into complete programs by the DATAmatic
ABC-1 Automatic Business Compiler. Thereafter, a task which is repeated
daily or weekly is initiated simply by reusing the program from its
storage on the program magnetic tape.
In the DATAmatic 1000, reliability is a prime consideration throughout
every aspect of engineering and design. The design of electronic circuitry
is highly conservative. Every transfer of information within the system is
carefully checked to insure that the information is transferred without
alteration. In addition, all arithmetic and logical operations are
completely checked. All units of the system are constructed of easily
replaced standard packages to facilitate maintenance. A system of marginal
checking includes circuitry and a special program which may be run
periodically to locate any package which should be replaced because of
marginal performance. With proper use of this facility, most machine
malfunctions will be corrected before they occur.
A High-Speed Memory Amplifier package representative of the modular
construction used throughout the DATAmatic 1000 system
Elements of the System
The system may be conceived functionally as comprising three main
sections, the Input, Central Processor, and Output
Sections, although its physical layout will generally not correspond with
such a conception. Data is initially fed into the Input Section in the
form of punched cards. This section, which includes a Card Reader, an
Input Converter, and one Magnetic File Unit, reads the data from the
cards, translates it into machine language, edits and arranges it into the
desired format, and records it on magnetic tape.
The Central Processing Section includes (1) Arithmetic and Control
Units, (2) the High-Speed magnetic-core Memory, (3) Magnetic File Units,
(4) Input and Output temporary storage Buffers, and (5) the
Typical Layout of a DATAmatic 1000 Electronic Data-Processing System
Central Console. The Central Processor reads data stored permanently on
magnetic tape, performs all manipulations of data, controls the sequence
of functions performed, stores information temporarily while it is being
processed and, after processing, stores it permanently on magnetic tape.
By means of the Central Console, the operator may monitor the overall
operation of the system. As needed, Magnetic File Units may be used by
auxiliary equipment. Such action is controlled by switches.
The Output Section converts data from magnetic tape into either
punched-card form or printed form, performing considerable editing in the
process. The Model 1300 Output Converter, which feeds standard punching
and/or printing equipment, may either replace or supplement the Model 1400
High-Speed Output Converter and
Printer, depending on the quantitative requirements of the system for
output information. One Magnetic File Unit may be considered a part of the
Magnetic Tape Storage
The basic medium for the storage of information in the DATAmatic
1000 is magnetic tape. The particular tape used, the method
of recording information on it, and the tape-handling equipment have all
been designed or selected to be mutually compatible and to provide high
capacity, ease and speed of access to information, ultra-reliable storage
and recovery of information, and maximum utilization of space on the tape.
Type VTR-179 magnetic tape has been selected for the DATAmatic 1000
because of its reliability and long life. This tape consists of a layer of
iron oxide bonded to a tough, durable Mylar plastic base. A reel of
tape is three inches wide and 2700 feet long and can store
over 37,000,000 decimal digits of information, the equivalent of data
which would require 465,000 punched cards.
Stored information is recorded on the magnetic tape in groups of
magnetized spots. The length rather than the strength of these spots is
used to form a dot-dash code representing the encoded digits, letters, and
symbols. This, the first of a series of unique reliability features,
assures that variations in the recorded signal strength will not result in
The information is stored in standard quantities called blocks, which
are arranged in a novel fashion along the tape. The virtual elimination of
dead space and the optimum packing of information into the tape area is
achieved by regarding the tape as a series of areas one block in length,
then recording in every other block while the tape travels in one
direction and in the blocks omitted while the tape travels in the
reverse direction. The blocks not filled in a given direction of travel
provide the space for starting and stopping the tape in that direction. As
a result, information is recorded on almost the entire area of the tape.
Moreover, since the reversal of tape direction is accomplished
automatically, all of this information is written or read sequentially and
the tape is positioned at its physical beginning at the conclusion of this
Information is recorded lengthwise to the tape in 31 channels, a system
which greatly speeds the transfer of information and facilitates searching
processes. Specifically, as many as ten tapes may be searched
simultaneously, which means that the system is actually passing over
600,000 decimal digits per second while seeking the particular item
desired. The read-record head will write on the tape at the sustained rate
of 60,000 decimal digits per second and will recover this information at
the same rate. The reading or searching operations may be performed with
the tape travelling either forward or backward.
The tape-drive mechanism and the read-record head are contained in the
Magnetic File Unit. An installation may include from four to one hundred
Magnetic File Units, all directly connected into the system. They may be
divided in any manner and at any time between the reading and recording
operations. The volume of transactions and the complexity of operations
govern the number of Magnetic File Units required for a given system.
Furthermore, these units may be added to or removed from the system at any
time as these requirements vary.
In order that any Magnetic File Unit may be interrogated and
information recovered from it without interrupting the operation of the
Central Processor, a File Reference Unit is available. Thus a Magnetic
File Unit may, at different times, be recording data received from the
Input Converter, reading data to the Output Converter, recording data
DATAmatic 1000 Magnetic File Units
from the Central Processor, reading data to the Central Processor, or
reading data to a File Reference Unit. Also available is a File Switching
Unit which increases the flexibility with which Magnetic File Units may be
arranged into the various functional groups.
Data enters the DATAmatic 1000 on standard 80-column punched cards
which are initially read by the Card Reader. In this unit the card is
read twice, the two readings are compared, and the card is stacked. If the
two readings of the card are not identical, the operation of the Input
Section will stop and the card will be sent to a reject hopper. The Card
Reader holds batches of over 3000 cards at one time and passes them at the
rate of 900 fully punched cards per minute.
The information which is read from the punched cards is translated into
the language of the system and arranged in the format of the magnetic tape
by the Input Converter. In this process, it passes through two control
panels and two temporary storage locations, providing great flexibility
for transposition, duplication, and discarding of information. The
operator manually sets an identifying control number into the Input
Converter, which includes this number in the information to be written on
magnetic tape. The control number may then be written on
the batch of cards which it represents, in case it is desired later
to cross-reference these cards with their corresponding
The encoded information is first arranged in a 100-column format within
the converter. In this conversion, any number of card columns may be
duplicated provided that the total number of columns does not
exceed 100. Triplication of columns is not permitted. Thirteen conversion
rules are available for the translation of punch code into machine code.
Any single card column may be translated by anyone of these thirteen
rules. The information is then translated into the final tape format, the
contents of two punched cards being fed to each block on the magnetic
tape. Several automatic checking features are built in to detect
improperly punched cards or errors either in reading or in one of the
conversion steps. The operator controls the settings of a group of panel
switches which direct the course of action that the machine is to follow
in each of these situations.
It must be emphasized that the operation of the Input Converter is
strictly "off-line". That is, it proceeds entirely independently
of and simultaneously with the data-processing and/or output functions.
Normally, one or more specific Magnetic File Units are assigned the
function of writing on tape all raw data received from input and
communicating it to the Central Processor.
Information which is manipulated, stored, or communicated other than by
electronic systems is generally written using 10 decimal digits, 26
alphabetic characters, and a number of punctuation marks and other special
symbols. Basic to the adaptation of information to electronic systems is
the fact that such information can be written entirely in terms of two
symbols, generally called zero and one. This presentation is called binary
notation and is analogous to the presentation of information in the more
familiar Morse Code, in which the two symbols used are called dots and
dashes. The symbols used in a binary notation are called binary digits or
bits. For example, the ten familiar decimal digits, 0 through 9, are
represented in binary notation as follows:
|0000 - 0
|| 0101 - 5
000I - 1
|0110 - 6
|0010 - 2
||0111 - 7
| 0011 - 3
||1000 - 8
|0100 - 4
||1001 - 9
Bars will sometimes be placed over binary digits when there is some
danger of confusing them with decimal zeros and ones.
The storage of information by electronic equipment depends upon the
ability to distinguish between two states which represent the two symbols
used in binary codes. There are many electronic devices which can
make such a distinction. An example of such a device which is both fast
and reliable is the tiny, ring-shaped magnetic core. This core
may be magnetized in either of two senses; in one sense it is
considered to be storing a binary zero and in the other sense a binary
one. These tiny magnetic cores constitute the principal element for the
storage of information in the High-Speed Memory and buffer
storage units of the DATAmatic 1000 Central
Processor. In a group of four such magnetic cores,
ten of the sixteen possible combinations of states may be used to
represent the ten decimal digits.
Central Processing Section
The Central Processor has already been defined to include the
Arithmetic and Control Units, the Input and Output Buffer Storage Units,
the HighSpeed Memory, the Magnetic File Units, and the Central Console.
Together, these units contain the electronic elements and circuitry for
high-speed performance of the stored programs.
The fast and reliable internal memory is composed of over 100,000
magnetic cores and has a capacity of 24, 000 decimal digits. Access
is in parallel for rapid readout of stored information.
Processing of data stored on magnetic tape is also enhanced by the
inclusion of two Input and two Output Buffer Storage Units. These buffers,
which are each capable of storing 744 decimal digits, permit a steady flow
of information to and from memory and enable the memory to read from one
tape and write on another simultaneously.
The design of the Central Processor and the provision of certain
special instructions are specifically aimed at the
attainment of high sorting, merging, and file-maintenance speeds. Some
examples of the speeds achieved are:
Sort - 60,000 decimal digits per second (equivalent to 750 fully
punched cards per second).
Merge - 60, 000 decimal digits per second.
File Maintenance - 600,000 decimal digits per second.
Arithmetic instructions are carried out by the Arithmetic Unit. The
sequence of performance of the stored instructions is directed by the
Control Unit. The Central Console is the means of human communication
with, and control over, the system. It affords active human control over
starting and stopping the machine and passive communication in displaying
a continuous picture of the status of the DATAmatic 1000 as it processes a
program instruction by instruction. The latter property is
an exceptionally useful diagnostic tool for program debugging. The
High-Speed Memory section of the DATAmatic 1000 Central Processor
Central Console also mounts a special automatic typewriter which is
used for the manual insertion of data to the machine and for the
interrogation of the machine. The components of the system can be checked
out by running the marginal check program. The Console displays the
results which indicate whether any package in the system is approaching an
DATAmatic 1000 Central Console showing simplicity of layout achieved
through functional design
A fundamental reliability feature of the system is the fact that each
basic unit of information includes a check digit called the weight count.
This weight count is recomputed after each transfer of information within
the system. The arithmetic comparison of the original and the
recomputed weight counts is an extremely positive and economical means of
verifying all internal information transfers, plus arithmetic and logical
The Output Section, like the Input Section of the DATAmatic 1000,
operates entirely "off-line". It accomplishes the conversion of
information stored on magnetic tape into the form of punched cards or
printed copy. Two alternative output sections are available which may be
either singly or together, depending on the quantity and speed
requirements of the application. These are the Model 1300 Output Converter
which provides the required output to drive a standard card punch and/ or
a standard 150-line-a-minute printer, and the Model1400 High-Speed Output
Converter which includes a special DATAmatic High-Speed Printer capable of
printing 900 lines per minute. As is the case in the Input Section, one or
more Magnetic File Units are normally assigned to communicate between the
Central Processor and the Output Converter.
Model1300: The Model 1300 Output Converter reduces data stored on
magnetic tape to a form acceptable to a standard 150-line-per-minute
tabulator and/or a standard 100-card-per-minute card punch. The tabulator
and card punch functions, governed by standard control panels, are
Information is read from magnetic tape to the converter in quantities
of up to 192 decimal digits, 128 alphabetic characters, or equivalent.
Each of these sets of data is processed individually and becomes the basis
of one line of printed output and/or one 80-column punched card.
The data is then read into converter output storage through a code
translator, controlled by a conversion control panel. There are 14 rules
for the translation of machine language into standard punch card code.
The output storage section simulates 120 columns of punch-card data, in
which form the information leaves the converter. Format arrangement and
all other standard printout functions are governed in normal fashion by
the control panels associated with the readout equipment. In the case of
the card punch, the data is converted into the standard 80-column format
and transposition and duplication of columns are effected, as desired, by
proper wiring of the card punch control panel.
Model 1400: The Model 1400 High-Speed Output Converter operates from a
completely flexible tape format and performs a considerable amount of
editing and format arrangement while preparing information to be printed
at the rate of nine hundred 120-character
lines per minute. In fact, the most complicated printed formats are
obtained with a minimum amount of pre -editing required in the Central
Processor. Special symbols and legend material can be emitted. Also the
printing of certain parts of the form may be suppressed, dependent upon
the contents of other data within the particular record. Furthermore, the
same output tape may be used for several different types of
printing runs by wiring and using all of the control panels in the
equipment. The sequence of information on magnetic tape need not have
any relation to the sequence of printing of information within a
given line. It is, moreover, possible to scan a record on the tape several
times, on each occasion deriving different combinations of data
to be printed on a given form; data from the tape may be rejected or
printed several times at will.
From the moment that information is read from the magnetic tape to the
actual printing process, a complete train of information monitoring exists
to preclude the possibility of printing erroneous information. This system
includes a read-back signal from the actual printing hammer to the
original stored information to verify the correctness of the character
being printed in every column of the form.
The High-Speed Output Converter reads information from magnetic tape in
discrete quantities of up to 192 decimal digits. These quantities may be
read from any part of the block and are handled as separate units of
information throughout the conversion process. Three control panels are
used to select the input information, trans
late it, and store it in the 120-position converter storage. There are
160 printing positions available on the High-Speed Printer, of which any
120 may be used during a given run. Two additional control panels are
used to select the particular 120 print positions to be used and to
perform further editing.
The weight count feature of the DATAmatic 1000, previously described,
is an integrated checking system which verifies every
information transfer, arithmetic and logical operation from the original
conversion to machine language through the final production of printed or
punched output. The weight count digit is originally computed and checked
during the input conversion process. It is then recorded on tape, one such
digit being an integral part of each basic unit of information and
remaining with this basic unit throughout all of the operations of the
system. Thereafter, recomputation and checking of weight count verifies
every transfer of information from tape to the Central Processor, and all
internal operations within the Central Processor, transfers from the
Central Processor to tape, transfers from tape to the Output Converter,
and Output Converter decoding processes. Each of these checking sequences
is integrated with the preceding and following sequence to form a single,
system-wide verification of accuracy. The weight count system is augmented
in various DATAmatic 1000 units with duplicate circuitry and other special
circuits which further extend the checking system.
|INTRODUCTION TO AUTOMATIC
Automatic programming routines aid in preparing programs for electronic
data-processing systems by replacing many repetitious manual tasks with
automatic machine functions. Not only are time and money saved, but
programming accuracy is greatly enhanced. In fact, the sheer volume of
programming required by large data-processing applications has made such
routines a practical necessity. In order to illustrate how such routines
assist the programmer, it is necessary first to describe the steps
associated with conventional program preparation and then to show the
manner in which automatic programming can replace some of these steps or
minimize the work associated with them.
Manual Programming Procedure
The preparation of a program to perform a large-scale data-processing
operation without the use of automatic programming can be broken down into
these eight major steps:
||Analysis of the Operation
Step 1. Analysis of the Operation. In a data -processing
operation, the machine processes a large quantity and a wide variety of
data in order to produce the required information. Therefore, before a
method of approach can be considered, the operation to be
performed must be carefully analyzed. All of the specific inputs must be
designated, the frequency and manner of processing them must be
determined, add the volume of each type of input data must be
estimated. The same consideration must be given to the required output
information. This analysis is frequently made by means of flow charts
which show the interconnections and sequential relationships of these
inputs, processes, and outputs.
Step 2. System Design. With the inputs, processes, and outputs of
the operation clearly defined, it is possible to design a programming
system. The initial task at this step is to specify the format of the data
being processed at the input stage, the processing stages, and the output
stage, i. e., the way in which the information will be punched on input
cards, the format of the information on magnetic tape files, and the
printed or punched output format. The procedure for operating the
data-processing system must also be considered; tape changing during
program operation, console operation, control panel wiring, and control
information printed out at the operator's console all play an important
role in the design of the system.
At this point, the preparation of the actual program begins. A block
diagram is prepared which shows the logical steps that the input data must
go through in order to produce the required output information and the
sequence in which these steps are to be performed. This diagram consists
of a series of blocks, one for each logical step, with lines connecting
the blocks to indicate the sequence in which they are performed.
Step 3. Program Design. Each block of the block diagram is next broken
down into a number of boxes, each of which specifies a function to be
implemented by a few machine instructions. This new diagram gives a
complete picture of how the program will operate on the machine. It is
called a programming flow diagram and it provides the link between the
flow chart, the block diagram, and the actual program instructions.
Step 4. Coding. The programmer may now begin the coding process, that
is, writing the instructions which will direct the data -processing system
to perform the functions indicated in each box of the programming flow
diagram. Memory locations must be assigned to all program instructions and
other data. However, prior to the actual start of coding, the method of
operation indicated by the block and flow diagrams should be evaluated and
any changes which will improve the program should be introduced at this
Step 5. Input Preparation. The coded program must be transcribed onto a
medium which the data-processing system can read and translated into a
language which it can understand. This function is accomplished by
keypunch operators who transfer the information from the programmers'
coding sheets onto standard aD-column punched cards. The Input Converter
then writes the punched information on magnetic tape.
Step 6. Checkout Planning. Up to this point, the programming system has
been gradually broken down into a large number of steps, each of which is
implemented by a few machine instructions. These instructions have been
assembled in the proper sequence to perform the data-processing operation.
After a program has been coded, steps must be taken to verify that it
performs the desired functions. First, an overall checkout plan must be
prepared; then the steps in the checkout process
must be specified in detail.
Step 7. Checkout. The first part of the checkout process is to operate
the program using specific controls prepared during step 6
as a part of the overall checkout plan. These controls permit the
programmer to examine information at the various logical breaks in the
program. As errors are detected in this process, corrections to the coding
must be made as specified in step 4 (coding), and
step 5 (input preparation) must be repeated. The program
must be tested with a variety of input data and it should be made
to produce samples of all of the types of output
information. Therefore, to conclude the checkout process, a simulation of
the entire programming system must be performed on the machine.
Step 8. Program Operation. Each checked-out program requires operating
instructions, scheduling information, and set-up plans in order to make
the most efficient use of the machine. These instructions must specify the
techniques necessary to get the input data into the machine, control the
processing of the data, and prepare the required output information. They
should also specify all of the special indications which are produced at
the operator's console to increase the efficiency of program operation. To
complete the documentation, a flow diagram and an annotated copy of the
program must be prepared.
Elements of Automatic Programming
ASSEMBLY PROGRAMS: The purpose of automatic programming is
to replace the routine portions of these eight steps with machine
operations. First of all, the language which the programmer uses differs
from the language of the machine. Programmers work best with easily
remembered or mnemonic operation codes (e. g., ADD, SUB, MUL) and decimal
numbers; electronic data -processing systems work with binary information.
The translation from the mnemonic-decimal language of the programmer into
the binary language of the machine is just the sort
of task which high-speed data-processing systems do well. Not only is
translation accomplished rapidly, but the results are error-free. Programs
which perform this operation are usually called Assembly Programs.
COMPILERS: In the program design step, the blocks of the block diagram
are broken down into boxes of a flow diagram to be transcribed into
machine coding and checked out. Frequently, the same block
appears in several programs. Using manual programming procedures, the
coding and checkout steps must be repeated each time this block appears.
However, much time can be saved in the flow diagramming, coding, and
checkout of routines with identical blocks by having the person who first
codes the block perform a few extra tasks to preserve the coding for other
programmers wishing to use it. Such reusable blocks are called
subroutines. The routine task of duplication of coding can be eliminated
by extending the Assembly Program so that subroutines can be added to any
program by a single instruction. Therefore, by introducing subroutines
into the programming system, all of the steps after
System Design are effectively and automatically eliminated with respect to
the subroutines. A program which is capable of processing subroutines in
this fashion is called a Compiler because it compiles completely coded and
checked-out subroutines into a program.
SUBROUTINE LIBRARY MAINTENANCE: Subroutines, together with instructions
for their use, are stored on magnetic tape or on punched cards in what is
called a Subroutine Library. A Compiler may be supplemented by a program
which automatically adds, deletes, or modifies subroutines in the
Subroutine Library. This Library Maintenance Program, as it is generally
called, relieves the programmer of another routine task.
RELATIVE AND SYMBOLIC CODING: Assembly Programs and Compilers
frequently utilize either relative or symbolic tags which permit a
programmer to refer to instructions and data in his program without having
to assign them specific memory locations. Words with relative tags are
coded in groups and have definite relative positions within these groups.
After detailed coding is completed, the programmer assigns memory areas to
these groups of relative tags. Words with symbolic tags are automatically
assigned memory locations by the Compiler or Assembly Program. Both
systems simplify detailed coding and also enable
programmers to make program modifications, additions, and deletions
without extensive recoding.
UTILITY ROUTINES: The automatic routines which have been described
assist in the preparation of programs. There is another group of automatic
routines which aid in the checkout phase of program preparation. These are
called Utility Routines.
In the checkout step, the programmer is assigned short periods of time
on the machine. During these periods, he must operate his program
and obtain sufficient information to locate and analyze any errors it may
contain. A listing of the contents of memory at various stages of this
process may provide the necessary information. The program which produces
such a listing is called a Post Mortem or Memory Dump Routine. These
routines convert the contents of memory from the binary form to the
mnemonic and decimal language of the programmer.
Some types of errors are difficult to track down using the Post Mortem
Routine. Under such conditions the programmer would like to know exactly
what happens as each instruction is performed in the region of
the error. This could be accomplished manually by using the Central
Console to examine the affected memory locations after performing each
instruction. However, this process is extremely wasteful of machine time.
A program called a Tracing Routine performs this function automatically at
high speeds. The Tracing Routine produces a listing of the instructions
performed in the sequence in which they were performed and for each
instruction specifies the contents of the affected memory locations.
Data-processing systems work with information stored on magnetic tape;
therefore, certain procedures are necessary to insure efficient handling
of the data. For example, routines which will copy files from one tape to
another, locate, write, and modify files, and edit tape files for printing
must be available as a part of an automatic programming system.
There are many other programs in an automatic programming system, some
which perform simpler functions and some which are much more
sophisticated. The complete set of automatic programs provided for DATAmatic
1000 customers, the DATAmatic Automatic Business Compiler System (ABC-I),
is described in this and the following volumes.
|There will be more of this manual online
soon... there is much more to scan!
Looking for anyone with
Honeywell 1000 DATAmatic Background... also looking for more parts and
books and photos for the display inside the museum. thanks.... firstname.lastname@example.org