NCR_304_Programming_Manual_Preliminary_1958 NCR 304 Programming Manual Preliminary 1958

NCR_304_Programming_Manual_Preliminary_1958 manual pdf -FilePursuit

NCR_304_Programming_Manual_Preliminary_1958 NCR_304_Programming_Manual_Preliminary_1958

User Manual: NCR_304_Programming_Manual_Preliminary_1958

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

DownloadNCR_304_Programming_Manual_Preliminary_1958 NCR 304 Programming Manual Preliminary 1958
Open PDF In BrowserView PDF
PROGRAMMING MANUAL
for the
*

304 Electronic
.Data -Processi ng .
System
COMPANY
CONFIDENTIAL·
Property of The National Cash Register Company

PRELl MINARY
EDITION
THE NATIONAL CASH REGISTER COMPANY • DAYTON 9, OHIO
*Trad(l Mark Reg. U. S. Pat. Off.

INTRODUCTION

NATIONAL 304 SYSTEM
The National 304 System is a moderate size electronic data processor
for general business ,use.

It incorporates nJany new design concepts which

result in performance capabilities comparable to those of a large scale
system.

Each of the many features were designed to provide maximum

versatilityfor handling of busines·s data.

The National 304 System off~rs

the advantages of electronic data processing to many organizations that
have not yet found it economically feasible.
The complete 'system consists of the central computer or data processor, magnetic. t,ape storage files. and various auxiliary input-output
units as

show~

in Figure I-I.

Control Console: The control console provid~s the power control, indicating lights, and operating switches for all units in the system which
are connected directly to the processor.

The operator's control panel

contains lighted display for processor operation, and for the operation of
auxiliary equipment.

The control console is equipped with a paper tape

operated electric typewriter which provides direct communication with
the processor memory.

The control typewriter permits the operator to

manually fill or interrogate the memory.
Central Processor: The NCR Model 304 Data Processor is the basic unit
in the system.
computer.
program.

This ma-c'hine is a general-purpose, electronic digital

Automatic operation is under control of an internally stored
The high- speed main memory is of magnetic core construction.

having a capacity of 1000 or 2000 ten-character words with an additional
2000 words available on order.

Transistors and magnetic cores are em-

ployed throughout as logical elements because of their low power requirements, low heat gene ration, high reliability and compact size.

I-I '

MODEL 304 PROGRAMMING MANUAL

All units

i~

the system are capable of handling alphabetic, numeric,

and editorial information.

The, processor's command structure provides

fast, efficient performance of arithmetic tasks, as well as all types of data
processing operations.

For those operations which are common to every

business data problem, such,as sorting, summarizing, editing etc. /) the
processor

conta~ns

special purpose commands.

Each of these special

purpose. commands is equivalent to a complete subroutine.

This feature

provides maximum processing efficiency with minimum programming required.

Internal self-checking is provided to insure the accuracy

~f

inter-

nal operation$' and information transfer between the processor and the
peripheral equipment.
Paper ,Tape Reader: The NCR Model 360 Photoelectric Tape Reader provides high-speed paper tape input to the system.

The reader is capable of

·reading three different punched paper tape codes at the operators selection.
These codes may be punched in 5,6,7 or 8 channel tape.

The reader is

primarily designed for fast efficient processing of paper tape generated.
by National cash registers,

accounting machines, 'and adding machines

as a by--product of their original recording function.

However, this flex-

ibility insures compatibility with all type s of paper tape producing equipment.

Self-checking features are included to insure the accuracy of read-,

ing~and

also punching, when checkable codes are being read. Paper tape

reading speed is at the rate of 1000 characters per second.
Punched Card Reader: The NCR Model 380 Photoelectric Card Reader
provides high-speed punched card input to the system.
capable of handling 80 coiumn IBM punched cards.

The reader is

Provision is made for

reading a portion or the full 80 columns of each card.

Card columns may

. contain either numeric, alphabetic, or symbolic punching.
is provided by dual reading stations.

Card reading is performed at the

rate of SQ.O cards per minute.

I~V

Self-checking

.

1-2

INTRODUCTION

Magnetic Tape File: The NCR Model 330 Magnetic Tape File provides
both large capacity auxiliary sto rage
system.

and high- speed input-output te the

Data is stored on tape in the form of records, which may be of

variable length.

Each 2400 foot reel of tape stores approximately

. 4, 300,000 characters of information.
controller unit with up to

eight~ftapes

A minimum file consists of one
under its control.

controller units can be employed in a single system.

As many as eight

Information is re-

corded on tape at 150 characters per inch, without gaps between records.
Read- Write speed is at 100 inches per second, with an acceleration time

of 5 milliseconds.

Thus, the information transfer rate for magnetic tape

is 15, 000 characters per second.
Many unique capabilities are provided for efficient magnetic tape
processing.

,In addition to the normal functions of reading and writing, the

magnetic tape equipment has the ability to perfor'm independent searching
and

co~ying

from one tape to another.

These independent operations are

initiated by the processor, but do not require processor supervision.
During all file "updating" operations, the processor handles only active
records.

Inactive records bypass the processor, and are automatically

copied to a new tape.

This method of processing creates a new updated

tape containing both the active and inactive records, complete in their
original sequence.

Since records may be of variable length, this system

provides for fully expandable files.

Information is completely checked

during all reading and writing operations.

Information being written on

tape is automatically read back and checked to insure complete accuracy
of tape .records without further processing.
Line Printer: The NCR Model 340 Line Printer produces printed output,
either directly from the processor memo\-y, or from magnetic tape.

The

printer is capable of printing 120 characters per line at the rate of 600 lines
per minute.

Anyone of fifty- six different characters may be printed in each

of the 120 printing positions.

The printer contains· internal self-checking

1-3

MODEL 304 PROGRAMMlNG MANUAL

features to insure the accuracy of printed information.

Multiple copies

may ie produced efficiently through the use of NCR carbonless paper, or
standard carbon interleaved forms.
Because of its self-contained magnetic core buffer, the printer is
capable of performing all printing and paper handling functions independent
of the processor.

This permits the processor to be computing simultane-

ously with printing.

This buffer also permits "off-li~etl printing from

magnetic tape through the use ofa Model 322 Printer-Converter.

All

paper spacing functions where no printing is required are performed. at the
rate of 72 lines per .second.
Printer-Converter: The NCR Model 322 Printer .. Converter permits offline printing from magnetic tape.

This converter has the ability to select

individual records for printing under control of tbe operator.

Inclusion of

this unit in a minimum sized system permits all printing and associated
changing 'of forms to be completely independent of processor operation.
Multi-Purpose Converter: The NCR Model 320 Multi-Purpose Converter
provides the ability to rapidly transcribe all forms of input data to magnetic
tape J and to transcribe from magnetic tape to all types of output equipment.
Inclusion of this unit in a system permits all input-output functions to be
time shared with processor operation, thus producing a complete "off-line"
data processing system.

Off-line operation creates a substantial increase

in the performance capabilities of the system.

Since the processo:r

communicate s only with magnetic tape in an off-line system. time spent
on input",:,output functions is reduced by a factor of fifteen.
Paper Tape Punch: The NCR Model 370 Paper Tape Punch provides punched
paper tape output for the system.

Two ditferent hole codes may be pro-

duced in punched paper tape at the operators selection.
is the ·processor code and the other

cod~

optional.

One of these codes

Paper tape output punched.

in processor code may be printed through tape operated electric typewriters;

I-4

INTRQDUCTION

.and may be directly input via the Model 360 paper tape reader, or the
control typewriter.

The optional code may be specified to conform with

leased-line communication equipment being used in an integrated data
processing system.
~ccuracy.

Self-checking features provide control over punching

Paper tape punching is performed at the rate of 60 characters

per second.
Card Punch: Punched c~rd output is provided f-rom magnetic tape,through
the converter,to a modified IBM Type

5~3

Summary Punch.

Information

being punched in cards is read back and checked immediately by the selfchecking circuit·ry. ·A standard plug-board permits full flexibility for
column arrangement·s.
pe r minute. '

Card punching is performed at the rate of 100 cards

1-5

MODEL 304 .PROGRAMMING lM.NU.t\.L

1-6

MAGNETIC FILE OPERATIONS
The National 304 System, in common with all
large-scale Data Processing systems, uses Magnetic Tape
as its File medium. Information is recorded on Magnetic
Tape in serial form; that is, successive characters are
recorded one after another, with each character being
represented by a row of magnetized spots ( called
"bits") across the width of the tape. Each of these
spots may hold either positive or negative magnetization, and the pattern of bits in each row defines the
character recorded in that row~

which define each character; the 7th Channel contains
the check-bit, or parity-bit, which is recorded with each
character, and which functions as one of the selfchecking features of the Magnetic Tape System; the 8th
Channel contains control information (RecordMarkers).
Throughout the NCR 304 System, information is'
regarded as organized into "Words". A Word is simply
a grouping of 10 alphanumeric characters, and each
successive io characters on the tape, therefore, constitute one Word of information.

The tape is divided along its length into 8
Channels, or tracks. Six Channels contain the six bits

INFORMATION
CHANNELS

,

I

I

i I

I

I

1

I

1

I

I
I

1

1

CHECK-BIT CHANNEL - RECORD-MARKER CHANNEL-

1

I

I

1

I

I

1

1

1

1

I

OF

I
1

I
I

I

1

I

I

1

1

1

1
1

1
1

I
I

I

I

I
I
I

1

I

I

I

I

I

1

1
1

I

I

I
I

1

t

1

1
1

1

I
I

1

I
I
I
I

I
I

I

I
I
1
1

}

1

1
·1

/
\
I

'----------~----------ONE

ONE
CHARACTER

REPRESENTATION

1

1
1

I

1

I

I

I

I

I

I

I

WORD

INFORMATION

However, the major organization of information
on Magnetic Tape is into Records. A Record may contain any number of Words from 10 to 100, and is
bounded on the tape by a Beginning-of-Record Mark
(BRM) and an End-of-Record Mark (ERM).

ON

MAGNETIC

TAPE

by the information it contains: It is a group of 10 to
100 Words recorded on Magnetic Tape, bounded by a
BRM and an ERM. While one record will most often
contain one File-Item (one Account, for example),
convenience may suggest that several Items be included
in a single Record, or that the information pertaining
to one Item be recorded as several Records.

It is important to recognize that a Record is defined by its physical characteristics and not necessarily
CONTROL
CHARACTERS

CONTROL
CHARACTERS

H

RECORD-PARITY
CHARACTER

H

11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111'r-'IIII!!.C!I1I1---:---f------.
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
INFORMATION
CHANNELS

!!!ll,

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111!11!11111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111li!!111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

IIi

111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111I!!!!IIIIIIIIIII
CHECK-BIT CHANNEL - - IIIIIIIIIIIIIIIIIIIIIIIIIIIHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 11111

1 II

RECORD-MARKER CHANNELERM

.

Ill! I!! 1111111111

1 II

BRM

ERM

ONE RECORD

BRM 111111111111111111111

II II II! III 1111111111
1IIIIIIIIIIIIIIIIIIfi

STRUCTURE OF A RECORD ON MAGNETIC TAPE
ERM BRM

11·1

File Record in turn to some standard location in
Memory.

The Record illustrated on the previous page, consisting of 170 alphanumeric characters, when drawn to
actual scale, would look like this:

SAVING SPACE:

1) Variable-length Records permit each record to
be only as long as its information content requires it
to be. All blank words within the Record have been
eliminated.

\

(

)

Since, by the very nature of the medium, the speed
of reading and recording Magnetic Tape is lower, by
a substantial factor, than the operating speed of a Data
Processor, it is of the utmost importance that information transfer rates to and from Magnetic Tape be as
high as possible. The NCR 304 System has achieved
extremely high Magnetic Tape speeds, but what is even
more significant, it has increased the efficiency of the
recording technique, so that for the first time in any
Data Processing System, the effective speed of information transfer is almost identical with the nominal speed.

2) ttpather-son" expanding file technique completely transcribes the File as a by-product of every
updating "run". The principal advantages of this
technique are:
a) Permits new Records to be inserted, or obsolete
Records to be deleted, wherever required, and still
keeps the file "dosed up tight" at all times.

b) Permits the length of any individual Record to be
expanded or contracted during the transcnptlon, as
the varying information content of the Record may
require.
c) Since "yesterday's file" is retained unchanged after
the updating run which creates "today's file", it is
always available as a rescue point from which "today's file" can be re-created in case of damage to
the Magnetic Tape.

This efficiency has been accomplished by:
• Reducing the delays inherent in any Magnetic Tape
System (Saving Time).
• Eliminating blank areas in which no information is
recorded on the tape (Saving Space). Any blank area
on the tape must be passed over in order to reach
the information beyond, and therefore, blank spaces
would also represent lost time within the System.

d) The COpy operation gives simultaneous READWRITE-COMPUTE over inactive Records in the
file, and is particularly effective in file posting
when, typically, a minority of the Records are active
in anyone day. COpy is simple to program, and
affords convenient, effective time-sharing while passing over the inactive Records.

• Full Alphanumeric Recording. Since 6 bits (magnetic
spots) .are used to record each character, the stated
information transfer rate in the NCR 304 System
applies to alphanumeric characters, and not merely
to numeric digits. However, digits may be recorded
in condensed form, in which case the effective information transfer rate is increased by 50%. (See
Item 4 under "Saving Space".)

COPY operates as a continuous flow of information
from "father" tape to "son"; both tapes move from
one active Record to the next with no intermediate
stops, and with no supervision by the Processor.
"MEW"
MASTER·FlLE
DESTINATION TAPE

"OLD"
MASTER.fILE
SOURCE TAK

SAVING TIME:

--- --

RECORD,3

TRANSACTION
TAPE

Since Magnetic Tape can be read or recorded
reliably only when moving at full speed, there must be
an acceleration delay every time the tape is started.

RECORD,4

RECORD,3

RECORD #4

UPDATED

RECIItIDI/6
ITEM #4

RECORD 16

CDPIED

-;;

CUPDATEl
RECDRDI7

In the NCR 304 System, not only has this acceleration time been reduced to a very small figure,· but the
necessity for frequent stops and starts has been largely
eliminated. Instead of reading or recording only one
Record at a time, a single operation will read or record
up to 99 Records, of either fixed or varying lengths, as
a single continuous flow of information. All the information read or recorded with a single Magnetic
Tape operation is called a "Gulp" of information.

/'
/'

1DEl£TE)
RECORD,.

,......-

ITEIIAIO
IEXPANDI

RECORD,8

DRETED/,

1TEII,7

COPIED,......-

/'

RECORD 110

/'
EXPANOED

RECORD"D

RECORD,'I
ITEM 811
IUPDATE)

ITEM 116

RECORD,"
RECDRDI13

(NEW ITEIIl
RECORDm
1TEII#17

--- -COPIED

RECDRD,,3

::::::.

IECORD".
(NEW)

INSERTED

UPDATED

RECORD 111

COPIED

RECORD II.

CUPDATEJ
RECORD,II

The use of Index Registers (described in Chapter
III) makes it particularly convenient to handle the
successive Records of a Gulp within the Processor,
without the time-consuming necessity of moving each

UPDATING AN EXPANDING AND CONTRACTING FILE
B-2

When a File Record is read into the Processor,
these combined fields must be split apart into separate
Words in order to operate on them; then the fields
must be recombined so that the updated Record may be
recorded back on Magnetic Tape.

(SAVING SPACE:)

3) P artial-Word Operation. In order to perform
computation within a Data Processor, it is conventionally necessary to have each information field
(Account Number, Transaction Code, Unit Price, OnHand Balance, etc.) isolated in a separate Word since
Processors, in general, can operate only upon complete
Words. However, most information fields require less
than 10 characters, and it would be an intolerable waste
of space on Magnetic Tape to record, for example, a
7-digit Account Number, a 2-digit Code, a 5-digit
Quantity, each as a 10-character Word in the File.
Therefore it is common practice, in using Magnetic
Tape systems, to combine several information fields into
a single Word for recording on Magnetic Tape. Such a
File Record, when ready for recording, might look like
this:

MINIMUM STOCK
LEVEL (HUNDREDS)

I

CUBAGE OF
UNIT PACKAGE

UNIT OF
SALE

uc.1

o~~

• Shifting one or both fields in order to align them
with each other, so the desired operations can be
performed;
• Shifting the result in order to align it with the
desired putaway field;

c.\l\v

• Testing the result to be sure it is not too large to fit
into the putaway field (overflow test);

1\O~

• Inserting the result into the putaway field;
• Tagging the putaway field with the proper algebraic
sign.

I

The Partial-Word operation of the Processor is
described in detail in Chapter III.

UNIT PRICE

I

UNIT OF PACKAGING

4) Condensed Recording of Numeric Information.
Although 6 bits are required to record one alphanumeric character, 4 bits would be sufficient to record
one numeric digit. Since a large portion of the information in business files is purely numeric, the use of 6 bits
for every character would mean that, for this numeric
information, one-third of the recorded bits (and therefore one~ird of the Magnetic Tape) would contain
no useful l'nformation, and would therefore, in effect,
be blank.

WEIGHT OF UNIT PACKAGE

~'I

$-

UNIT SALES THIS MONTH

~O

0
PROFIT
PROD.
GROUP

• Extracting each information field in order to isolate
it;

STOCK NUMBER

v\lOo

FREIGHT CLASS
FOR BIL

In the NCR 304 System, this process of combining
several information fields into a single Word is fully
automatic, with no restriction on the number of fields
within a Word, nor on their placement within a Word.
Since any Partial-Word field may be directly referred
to by any operation, the programmer may use this
combining technique to its fullest extent, yet pay no
penalty in either programming effort, or Processor
operating time for:

MAXIMUM STOCK
LEVEL (HUNDREDS)

QUANTITY FOR DISCOUNT

QUANTITY DISCOUNT

QUANTITY FOR DISCOUNT

QUANTITY DISCOUNT

QUANTITY FOR DISCOUNT

QUANTITY DISCOUNT

LEAD
TlME,DA~

(BINARY)

I

FEDERAL EXCISE TAX

UNIT SALES THIS MONTH

FACTORY "A"
PRODUCED THIS MONTH

FACTORY "A"
IN PROCESS

FACTORY"B"
PRODUCED THIS MONTH

FACTORY"B"
IN PROCESS

WAREHOUSE #1
ON HAND

WAREHOUSE #2
ON HAND

WAREHOUSE #3
ON HAND

QUANTITY BACK-ORDERED

I

LOCATION IN
WAREHOUSE (SECTION)

---

-

A single PACK operation will condense any desired amount of numeric information (with an automatic alarm if alphabetic information is inadvertently
included), and a single UNPACK operation will later
expand the condensed information to its original form,
so that arithmetic operations can be performed on it.

DOLLAR SALES THIS MONTH
LOCATION IN
WAREHOUSE (BIN)

UNIT SALES THIS YEAR

DOLLAR SALES THIS YEAR

In the NCR 304 System, the programmer is able
to record numeric information in a condensed, or
PACKED, form in which only 4 bits are used for each
digit. Three condensed digits, therefore, occupy only
as much Magnetic Tape as two alphanumeric characters,
and can be read or recorded in the same amount of
time as two alphanumeric characters.

\

-

However, when updating a File Record, the programmer need UNPACK only as much of the Record
as is subject to arithmetic operations. All comparing

EXAMPLE OF A RECORD IN A PRODUCT MASTER FILE
11-3

MAGNETIC TAPE INSTRUCTIONS

(SAVING SPACE:}

WRITE TAPE:

and testing operations can be performed on the numeric
data while it remains in condensed form.

The recording of information from Processor
memory onto magnetic tape is performed by the WRITE
T APE instruction, which writes one or more records as
a single operation. As each record is written on the
tape, it is automatically bounded by a BRM (Beginningof-Record-Mark) and an ERM (End-of-Record-Mark);
thus even though a number of records· are written by a
single instruction, they remain separate entities, and may
later be searched for or read, "independently and selectively.
All the records written by a WRITE TAPE instruction may be of the same length ("fixed" length),
or they may be of different lengths ("variable" length).
Thus the abilities of WRITE TAPE are:
1) Write 1 to 99 fixed-length records at a Gulp, all
records of the same length, 10 to 100 words.
2) Write 1 to 99 variable-length records at a Gulp, each
record may be of a different length and may be
10 to 100 words long.

5) Binary Operations. While the NCR 304 Processor operates in the decimal number system, it also
offers the ,programmer a set of extremely flexible
binary operations, which permit access to the individual
bits within an information field. The programmer can,
therefore, achieve a high degree of compactness in
recording certain types of coded. information in a
Magnetic Tape File. (See EXTRACT, INSERT, ADD
BINARY, COMPLE.MENT BINARY, TEST BIT, in
Chapter IV.)
Thus, for example, a "State" code (including the
50 States, Puerto Rico, and perhaps the Provinces of
Canada - in fact, up to 64 different "States") can be
stored as a single character in each customer's File
Record; or a calendar date (month, day, year) can be
stored in three characters in the File Record. In. a payroll file, the presence or absence of each of 30 different
optional pay-deductions can be stored in 30 bit-positions (5 characters) in each employee's File Record.

READ TAPE:

The reading of information from magnetic tape
into Processor memory is performed by the READ
TAPE instruction, which reads 1 to 99 records at a
Gulp, either fixed-length or variable-length records.
A variation of the READ TAPE instruction will
read only a selected portion of each record, while the
"remaining information will not enter the Processor
memory.
Other variations (Index Forward, Index Backward)
will move a magnetic tape forward or backward 1 to
99 records without any of the information entering the
Processor memory.

6) No Inter-Record Gaps. The ability to read and
record Magnetic Tape continuously, in Gulps of
Records, would be of relatively little. value if there were
still a substantial gap (blank space) after every Record
in the file, to allow for the possibility that any. Record
might be the last one of a Gulp. Conventional recording techniques require a large enough blank space after
each Record, so that the tape may be stopped there, and
still have enough space to come up to full speed again
before reaching the next Record.
In the NCR 304 System, there are no gaps between
records on Magnetic Tape. Therefore, whenever a Gulp
ends, the tape coasts to a stop with the Magnetic· Head
within the next Record. Special repositioning circuitry
in the Tape Controller immediately assumes control of
the. Tape Handler, backs up the tape until the BRMERM is reached, and then stops the tape again, with
the Magnetic Head now within the last Record of the
Gulp,. ready for a "flying start" at the next Record. "

WRITE-COPY:

When updating a magnetic tape file, the transactions are always sorted into the same account-number
sequence as the records in the file. Therefore, when an
active record has been read into the Processor memory
from the. "father" tape, and all transactions affecting
that account have been posted to it, and" the updated
record has been written on the "son" tape, the System
must then start reading all the subsequent records on
the "father" tape. These records must be examined one
by one, and each of the~ .must be compared with the
next transaction to see if it is affected .by that transaction (i.e., if that accou6.t is active today). As each
record is found to be inactive, it must be written unchanged on the "son" tape, and the process is repeated
over and over until the next active account is reached.
Tape-to-tape COpy transcribes the inactive records
in a file from "father" tape to "son" as a single con-

The Processor is released from the Magnetic Tape
System as soon as the Gulp itself is finished, and immediately proceeds to process the information, while
the Tape Controller performs the repositioning as a
"time-shared"
operation.
Extensive
self-checking
circuitry guarantees the integrity of the repositioning,
and the operation is completely inter-locked so that the
Processor· cannot perform another operation involving
that Controller until repositioning has been completed.
The repositioning takes· so little time that, in practice,
the Processor rarely has occasion to wait for it.
11-4

tinuous operation, without reading those records into
the Processor memory. During this transcription, each
record is examined, so that the operation terminates
when it reaches the next active account.
The functions of the WRITE-COPY instruction
are:
1) It WRITES one record from memory. This record
will previously have been read into memory and
updated there; in its changed form it must now be
recorded on the "son" tape. This step is omitted if
the record is to be deleted from the file.
2) Immediately after that record has been written, the
Processor tells the Magnetic Tape Controller which
record is desired next, and thus initiates the off-line
COpy from "father" to "son". The Processor is'
now free to proceed with any other work which
does not use that Controller, while the Controller
is looking for the next active record and transcribing
all intervening inactive records from "father" to
"son".
The Controller conducts the COpy independently
of the Processor, moving both tapes continuously, and
transcribing character by character from "father" to
"son" while the two tapes are in motion. As the information flows through it, the Controller examines
each record to determine if it is the desired one. When
that record is reached, the Controller stops both tapes
and repositions them so that the "father" is ready to
read that record into the Processor memory, and the
"son" is ready to write that record from the Processor
memory after it has been updated. While the COpy is
going on, the Controller reports "busy" so that the
Processor continues with its alternate program until
the COpy is finished.
Any of the first 8 w~ds of each record may be a
"key word" containing Account Number or other
identification, and the Controller will examine any
desired selection of characters within the key word,
ignoring all other characters. Further, the key word
may be divided, with the Controller testing two different keys simultaneously. A common use of this feature
considers Account Number (up to 10 digits condensed
into 7 characters) as one key, and ttnext-action" Date
(day, month, year, century, coded into 3 characters) as
the other. The Account Number is compared with the
next transaction, while the Date is compared with today's date, so that COpy finds all accounts for which
transactions were received today, and also all accounts
requiring some action (billing, follow-up, expiration,
etc.) today.
Two types of test may be used with COpy:
Equality COpy will terminate when it reaches the
desired record.
Range COpy will terminate when it reaches either
the desired record, or else a record whose key is

greater than the one desired. The latter case occurs
whenever the desired record is not in the file, which
usually means that a new account has been opened, and
a new record must be inserted in the file.
When the key word is divided, either side of the
key may be tested for Range or for Equality, independently of the kind of test being performed on the other
side.
SEARCH:

A variation of COpy uses only the "father" tape,
and therefore accomplishes off-line SEARCH of
magnetic tape.
WRITE-COPY -READ: {on-line CopyJ

This operation is essentially the same as WRITE~
COPY, together with the subsequent READ, executed
as a single continuous operation. It requires supervision
by the Processor itself, and is used whenever the
particular problem does not offer any useful work for
the Processor to do during the COpy. In that case,
terminating the COpy with the desired record in the
memory elminates all delay between the COpy and the
READ.
SEARCH-READ:

A variation of COPY-READ uses only the "father"
tape, and therefore accomplishes on-line SEARCHREAD of magnetic tape.
REWIND:

The rewinding of any reel of magnetic tape is
initiated by the REWIND instruction. The actual rewinding is performed entirely by the Magnetic Tape
Handler, so that both the Processor and the Controller
are immediately free to do other work. Any number of
Handlers may be rewinding at the same time without
interfering with the rest of the System.
A variation of the REWIND instruction will place
a USE LOCKOUT on the Handler so that the Processor
cannot use it again until its reel of tape has been
changed.

11-5

MAGNETIC TAPE HOUSEKEEPING

GUARANTEES OF TAPE ACCURACY

The National 304 Magnetic Tape System, together
with the subroutine called STEP (Standard Tape Executive Program), relieves the programmer of all tape
tthousekeeping" problems.
The Magnetic Tape System automatically detects,
and automatically identifies, ALL housekeeping conditions (such as Busy, Use Lockout, Error, End of Tape,
End of File, etc.) and automatically establishes appropriate branches in the program. For all routine matters
these branches lead to STEP, which takes care of the
situation and then returns to the main program without
attention from the programmer. Thus, for example,
when a Handler reaches the end of a reel of tape, STEP:
• Rewinds that Handler;
• Types-out Controller and Handler number on
the Console Typewriter;
• If Source Tape, types-out to indicate which reel
of tape must next be mounted on that Handler;
• If Destination Tape, types-out to indicate what
identification should be placed on the outside of
the reel;
• Changes the entire main program to refer to an
alternate Handler for the next reel in that file;
• If Source Tape, checks the first record on the
next reel (containing tape-identification) to be
sure the correct reel has been mounted;
• If Destination Tape, checks the first record on
the next reel to be sure the tape is obsolete and
is safe to write on. Then STEP writes a new first
record on the tape to identify the information
about to be recorded on it;
• Returns to the main program, which proceeds
as though nothing had happened.
STEP corrects errors in recording or reading tape,
and it identifies defective spots on the tape and skips
over them, all without attention from the programmer
or the operator.
STEP also brings in Overlay Programs on demand,
and automatically steps the Processor from program to
program.
Out of all possible housekeeping circumstances, the
programmer must plan for Busy, if he wishes to utilize
the system's ability to perform other operations simultaneously; and he must plan for End of File, because
that means the program is finished and the Processor
must proceed to the next job. Aside from these, he
writes his programs as though all magnetic tapes were
endless, and as though all other housekeeping problems
could never arise, because the Magnetic Tape System
and STEP detect, identify, and correct all those conditions.

In any Electronic Data Processing System the only
way to be assured that the recording on magnetic tape
is as it was intended to be, is to READ the tape and test
its correctness. Further, this reading should be done at
the one time when an error, if it should occur, can be
corrected. most easily. That time is immediately after the
information has been recorded, since only then is the
correct information still available in the Processor
memory.
The National 304 System automatically reads, and
checks, the magnetic tape during the recording process.
If a recording error should occur, it will be discovered
immediately, and may be corrected automatically without guesswork, and without operator intervention. This
procedure guarantees, at the time of recording, that all
tapes are recorded without error.
The read-checking of magnetic tape recording is
performed by a reading head located on each Handler,
immediately behind the writing head:

~

FORWARD,

[TfJ~
As the newly recorded information passes under
the reading head, it is read and immediately checked by
the Controller. The self-checking system is extremely
comprehensive, and consists of five basic checks, so
organized that any possible source of error is covered
by at least two independent checking methods:
J. CHARACTER PARITY:

Each character is recorded with a parity bit. This
seventh bit is assigned automatically, and is chosen so
that the seven bits of each recorded character always
contain an odd number of l.;.bits.
This check protects against the garbling of individual bits within the characters of the record.
2. RECORD PARITY:

One extra character is automatically recorded with
each record. The Controller sets up the individual bits of
this character so that there is always an' odd number of
I-bits along each of the diagonal arrows shown in the
diagram.
This furnishes independent protection against garbling of bits, and also protects against the omission of
complete characters or the accidental recording of additional, spurious characters.

11-6

RECORD-PARITY
CHARACTER

I

INFORMATION
CHANNELS

CHECK-BIT CHANNEL--RECORD-MARKER CHANNEL
Markers not shown

~~--~~~~~--~--~
ONE RECORD

SELF-CHECKING OF INFORMATION ON MAGNETIC TAPE

the leader, the Timing Check is automatically replaced
by the First-Information Check.
When writing at the beginning of a tape, the
writing head erases the first three feet of the tape, and
then writes the first record. The reading head must
then find that a record-marker is the first information
on the tape. Nothing, not even recording so faint that
it is detected only as undecipherable "noise", may appear on the tape before the first record-marker.

3. CHARACTER COUNT:

Each record must contain an exact multiple of 10
characters, plus the record-parity character.
This is a consequence of always recording complete
words from memory, and furnishes important independent protection against dropping or adding characters on the tape.
4. ERM-8RM ALTERNATION:

Whenever a tape is in motion, the record-markers
must always show perfect alternation between ERM and
BRM, to guarantee the boundaries of each record.
Even if exactly the three bits of a record-marker
pair (and no other bits in that channel) should be accidentally changed, checks 2 and 3 each furnish independent detection of this condition.

These five checks are made by the reading head
while the writing process is going on, and they guarantee that all tapes are correctly recorded.
The same five checks are also made during the
reading process, and guarantee that all tapes are correctly read. During a Copy, these checks are made on
both the "father" and "son" tapes.
The Timing Check, and the ERM-BRM Alternation
Check, are also made on all repositioning operations.

5. TIMING CHECK:

Whenever a tape is started into motion, the
Controller sets a rigid time-limit within which the
Handler must detect the first record-marker. This check
is made at the writing head when writing, and at the
reading head when reading.
When the record-marker is detected within the
time-limit, it is certain that the very next record on the
tape is the one which was written or read.

INTERLOCKS
J. WRITE LOCKOUT:

Every Magnetic Tape Handler is normally in a
Write Lockout state, in which the recording circuits are
completely disconnected. In order to engage the writing
circuits, and permit information to be recorded on a reel
of magnetic tape, it is necessary to affix a "writepermissive" ring to that reel.
In the absence of this ring, it is impossible, whether
through operator error, programmer error, or equipment malfunction, to write on and thereby destroy a
tape whose information is still useful.

50. fIRST-INfORMATION CHECK:
Whenever a Handler is about to read or write the
first recor~ 'on a reel of tape, the Timing Check is not
appropriate, since' it is desirable to leave several feet of
blank tape a,t the beginning of the reel, and this would
cause the time-limit to be greatly exceeded. Therefore,
when the Handler senses that the tape is positioned on
11-7

If a ring is accidentally left on a reel after it is
remoyed from tI'te Handler, there will be no ring available to place on the next reel; further, the reel will not
fit into its plastic storage-box if the ring is still attached
to it.

4. MOUNTING OF TAPES:

2. USE LOCKOUT:

5. NO TAPE, BROKEN TAPE:

When the end of a tape has been reached, and the
rewind has been started, the program may impose a Use
Lockout on that Handler. This prevents any use of that
Handler until the tape has been completely rewound,
and an operator has mounted a new reel.

If the Processor attempts to use a Handler which
does not have a tape mounted on it, or if a tape should
break, an immediate error-halt occurs.

Unless a reel of tape is correctly mounted, and the
cabinet door properly dosed, it is impossible for the
operator to remove the Use Lockout from the Handler.

6. LONG LOOP, SHORT LOOP:

3. HANDLER DOOR LOCKED:

In the event that either of the tape loops in the
vacuum chambers should grow, or shrink, beyond the
capacity of the servo system to correct the condition,
there would be a danger of breaking or of crumpling
the tape. Special independent circuitry detects this condition before damage occurs; the tape drive is immediately released, the brakes are set on the reels, and the
Handler error-halts.

The door to the Handler cabinet, furnishing access
to the reel of tape, is always locked by an electricallyoperated bolt, except when the Handler is in Use Lockout and the tape is not moving. Therefore the operator
is denied access to the tape except when the program
has finished with it. Even during a rewind with Use
Lockout, the door remains locked until the rewind is
completed.

11-8

GENERAL CHARACTERISTICS OF THE PROCESSOR

A fundamental charaoteristic of any Electronic Data Processor
is its internal information-storage, or "Memorylt, in which it is able to
store both that part of the data being operated upon at the moment, and
the program for processing that data.

The program is a sequential list

of Instructions, each of which (such as ADD, COMPARE, READ MAGNETIC TAPE)
,represents a single operation to be executed by the Processor.
The NCR 304 Data Processor is available with 'a Memor,r of either
2000 or 4000 permanently-numbered storage locations, or

contain stored information.
uAddress tt of that Cell..

t1Ce11sJt~

which

The number assigned to each Cell is the

In addition to the basic 2000 or 4000 Cells of

Memor,r, there are, respectively, 400 or BOO nSpecial" Cells, outside the
Main Memor,r package, which are all individually addresslble by any Instruction.

These "Special" Cells are described, with the limitations and

conventions governing their use, in Appendix ne n to this Chapter ..
The contents of each Cell is a nWord tl of 10 characters, and the
, character-positions within a Word are conventionally numbered from right
to left:
98

7

6 54

3

2 1 0

1
Information is stored in

Memor,y by

means of Magnetic Cores,

which are tiny rings of ferrite material:, strung on a lattice of wires

(l

Each core may be selectively magnetized in either of two states which,
for convenience, are designated
not numbers.

non

and ul'u <>

The symbols

non

and ult. are

They are merely convenient marks used to distinguish the two

III"'l

states of a single Magnetic Core.

Any other pair of conventional symbols

would serve as well, for example:
"Nt! and

no" and n In

usn

However,

non

and "IV! are in common use, and we shall use them in this book,

subject to the caution that they must not be thought of M numbers.
marks

non

The

and uln, corresponding to the two possible magnetized states of

one core, are called "bits", and therefore a single core may store either
a "O-bitlt or a "I-hit""

Six cores are assigned to each character-position of each Cell

in the Memor,y, and characters are spoken of as being represented by a
6-bit code.

Since each hit has only two "valuest!, the bit-configuration

of a character is called the "binarytr (2-way) re'presentation of that
character.

There are 64 possible combinations of the nOtt and filn states

of each group of 6 cores, corresponding to the 64 different characters
in the ttlanguage U of the Processor.

A character may be a numeric digit,

a letter of the alphabet, or one of 28 symbols.
It is convenient, when speaking of the 6-bits which make up a
character, to classify them into ttzone bits" and unumeric bitstt, and to
write them in the following pattern:
numeric
0000

00

I1I-2

The 64 characters of the Processor language, and their
respective 6-bit binar.y configurations are:

ZONE
BITS

00

NUMERIC
VALUE OF
ZONE BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

"
W

P

Q

R

•:~0

X

Y

Z

d

10

+

J

K

L

M

N

11

*

#

S

T

U

V

9

@

0

•

¢ : SPACE &

A:
£:
s

m

n

8

p

$

(

)

/

u

V

W

X

Ever.y one of the 64 possible configurations of 6-bits corresponds to a legitimate character in the Processor language.

However,

56 of these (called the "Data Characters") are sufficient for all business
data .requirements.

The remaining B characters, lower-case m n

(!/

p

:1

v wx ,

are simply convenient labels for their respective bit-configurations, and
are referred to as "Non-Data Characters".

III-3

REPRESENTATION OF INFORMATION
Information stored in Memory may constitute either Instructions or
Data.

There is no absolute distinction between the two types of information,

since one of the fundamental properties of an Electronic Data-Processor is
its ability to operate upon its own Instructions, and modify them as though
they were Data ..

INSTRUCTIONS:

The program for processing the Data is stored in Memory as a

list of Instructions, which the Processor executes in sequence.

An Instruc-

tion may specify that a certain operation be performed upon Data, or that a
test of some sort be performed.

Depending upon the result of the test, the

Processor may continue to execute Inst~actions in the normal sequence, or
break the sequence and start a new sequence elsewhere in the program.

Break-

ing the normal sequence of Instructions is called uBranching n or uJumpingtf .

A substantial number of the Instructions in the 304 System serve
both purposes; they may perform an extended series of operations upon Data,

and then test the result as well.

DATAg

The basic unit of Data within the Processor is the Field, which occupies

all, or any continuous

portion~

of a Word.

A Field is specified by naming the

address of the Word containing it, and the left-most and right-most characterpositions occupied by the Field within the Word.

Thus, suppose that the con-

tents of some Cell in Memory is:

Then:

the,number 2392
the number 3921
the name
JONES
the number
1

occupies
occupies
occupies
occupies

the
the
the
the

96-field
S5-field
40-field
55-field

1II-4

of
of
of
of

that
that
that
that

Cell,
Cell,
Cell,
Cell.

The Data stored in a Field may take one of three forms:
1)

ALPHABETIC INFORMATION:
This is sometimes referred to as "alphanumeric" information, and

may consist of any combination of the 64 digits, letters, and symbols, which
make up the Processor language.
2)

NUMERIC INFORMATION with algebraic sign:
A Numeric Field consists of digits, representing a number.

The

algebraic sign of that number is combined with the left-most digit of the
Field, and is specified by the right-hand zone bit of that digit.

If this

"sign-bitt! is a O-bit, the algebraic sign of the entire Field is positive; if
the Usign-bit" is a I-bit, the algebraic sign of the Field is negative.
Consequently, the left-most character of a Numeric Field always
contains two pieces of information:

the

~

of the Field (specified by the

sign-bit), and the first digit of the Field (specified by the numeric bits)e
In all arithmetic operations, the Processor automatically handles the signs
in the proper manner, and properly stores the sign of the result; the programmer need never concern himself with the problem of storing algebraic signs,
or even of allocating storage-space for the signs.
Consider the number 942 stored in a 5-character field; it will appear as 0 0 9 4 2 where the first

non

has the double significance Hpositive il

(sign-bit) and uzeron (nmneric bits).

If the same number were stored in a

3-character field, it would appear as 9 4 2 where the tf9" has the double
significance tlpositive lf and tt9 u •
binary configurations of

no"

(Refer to the Language Code Table for the

and "9 ft ) .

Consider the number -174 stored in a 5-character field; it will

111-5

appear as - 0 1 7 4 where the hyphen

"_tt has the double significance tlnegative lt

(sign-bit) and "zero H (~umeric bits).
3-character field, it would appear as
nificance Unegative" and "Itt.
binary configurations of

ff_rt

If the same number were stored in a

!.1...!J. where the "Au has the double sig-

(Refer to the Langua.ge Code Table for the
and nAIt.) ,

Since the combined representation of "positive" and ttzeroH is the
character

non

(zero), and the combined representation of "negative" and "zero"

is the character

rt_tf

(hyphen), all input and output is conveniently performed

in conventional format; that is, positive numbers preceded by no sign (but
note that if

"+t1

is used, it is also interpreted arithmetically as meaning

tfpositive fl and ttzerott), and negative numbers preceded by a hyphen.
Appendix "Au to this Chapter discusses the disposition of redundant
zone bits during ,ari:t;hmetic operations, and also shows the results of performing arithmetic operations upon characters whose numeric bits do not correspond to any of the 10 decimal digits.

11I-6

ADDRESS-TYPE INFORMATION:
The Cells of Memory are numbered:
000 through 099
100 through 199
900 through 999
2000-Word
Memory

READ:

-00 through -99
NINETY-NINE"} A~O through A99

"HYPHEN ZERG-ZERO"
"HYPHEN

. . . .

100 through 199

4000-Word
Memory

+00 through +00
JOO through J 99

. . . .

ROO through R99
through ·r.-99
#00 throUgh #99
sao through S99
~W

(J

•

•

0

ZOO throUgh Z99
In order to perform arithmetic operations on Addresses, a special
kind of addition and subtraction, called MODIFY ADD and MODIFY SUBTRACT, have
been included among the

Proces~or

operations; the symbols @ and

Q.

are used to

distinguish them from ordinary addition and subtraction.
Subtracting one Memory Address from another gives the number of
Cells separating them, expressed as an tlAddress-Type Number".

In order for

the programmer to duplicate the Processor's result of a MODIFY ADD or }40DIFY
SUBTRACT, or for him to interpret the Address-Type answer, he may regard any
Address-Type Number as a condensed form of a 4-digit number from 0000 to'
3999, in which the left-most two digits have been combined into the zone bits
and the numeric bits of a single alphanumeric character.

The zone bits of

this character specify the first digit, according to the column ffNumeric

111-7

Value of Zone Bits'! in the Language table, and the numeric bits of this
character specify the second digit.

Thus, for example, the Address-Type

number G55 may be interpreted as 1755.
value "Ill, and the numeric bits of

nGt!

The zone bits of uGn have the numeric
are the numeric bits of u7 u •

Several

other examples follow:
Address-Type
Number

Interpreted
As

001
L07

0001
2307

699
X21
Z98

2699
3721
3998

The following rules, then, will enable the programmer to duplicate
the answer which the Processor obtains as the result of a MODIFY ADD or MODIFY
SUBTRACT operation:
1)
2)

Interpret the two Address-Type Numbers which are to be added
·or subtracted, as 4-digit numbers.
Perform the addition or subtraction.

3) If ,the result is greater than 3999, subtract 4000 from it.
If the result is negative, add 4000 to it.
4)
EXAMPLES:

Translate the result back into an Address-Type Number.

.2.2.a e ,004

==

-D?

. THIS RESULT IS NOT "MINUS 02";
IT IS uHYPHEN ZERO

998---;;..

0998

~ 004~

+ 0004

-

TWO" ..

1002

-02-EE:-----.;..I

(9

H50----+
305--7

+

1850
0305

2155
J55

<

.

F21---?

1621

(i)&~+~

X65<:

111-8

3765
t

EXAMPLES:

(Cont'd)

fl2

Ee

~~M

= G80

P39~

2739

(t) *41~ +

2Qli1

5780
- 4000
1780
G$O<

1:12

G

B83 ffi

~~"41

=

W98

~

==

B$2

(greater than 3999)

!

P39~
2739-+
6739
G ~~41~ - 3041~ - 3041
negative
3698
W98c.

B$3~

1283

@ Z99~ + 3999

5282
- 4000
1282

(greater than 3999)

B82<

It will be seen that the operations of MODIFY ADD and MODIFY SUBTRACT
are ttcyclic modulo 4000"; that is, the address following Z99 is 000, and in
performing arithmetic, the addresses may be regarded as being arranged in a
circle.

Any counting process which crosses one "end" of the Memory picks up

without a break at the other ft end u as shown in the previous examples.

Note

also that there are no negative numbers in the system of Address-Type Numbers;
no algebraic sign is associated with them, and they are always positive
numbers.
in which

However, the last example shows the use of "complementary addition''1,
~

is equivalent to tt_Itt.

Whenever an Instruction specifies the number of Words, or the number
of Items, to be operated upon -- or whenever the Processor itself generates a
tally -- such a number is always an Address-Type Number.
Appendtx

"en

to this Chapter discusses what happens if an Instrll.c-

tion refers to some non-existent address, such as L31 in a 2000-Word Memory,
or &76 in any Memory ..

1II-9

One of the fundamental principles of programming must be made clear
at this point.

The nature of infonnation stored in the Processor Memory is

known only to the programmer; it is in no way inherent in the information
itself.

For example, a field might contain U 8 Q R 6 9.

If this field is

named as containing an operand for an arithmetic InstrUction, its contents
will be interpreted by the Processor as the negative number -488969 (see
Appendix nAft).

If this field is named as containing an operand for an

Instruction appropriate to Address-Type Numbers, its contents will be interpreted as the pair of Address-Type Numbers US8 R69 (see Appendix "Bit).
If the same field is named as containing an operand for one of the general
data-handling operations, its contents will be interpreted as the set of
alphanumeric characters U8QR69.
On the other hand, the Processor might be instructed to find its
next Instruction in the Cell in which that field is stored.

In this case,

the field loses its identity, and its characters become part or the
Instruction, to be interpreted according to the specific format of that
Instruction.

III-10

INSTRUCTIONS
Instructions in the NCR 304 System are in 3-address form.

An

Instruction (in general) names an operation to be performed, the addresses
of two operands, and the address in which the result is to be stored.
This principle, however, has been very considerably expanded, so
that execution of each Instruction includes most of the attendant uhousekeeping" chores which ordinarily complicate the programmer's task.
result, each Instruction is an

entire~

As a

oEeration, corresponding very

closely to an operation as it is naturally conceived by the Systems
Analyst without reference to any Data Processor.

The comprehensiveness

of each Instruction, the elimination of almost all housekeeping Instructions, and the consequent relief from the necessity of storing large
numbers of Constants in a program, combine to make the System extremely
easy to program, and to eliminate many sources of programming errors.

111-11

An Instruction specifies the following factors governing an operation:
~HH~

In addition to the actual Operation Code, each Instruction contains

a Variation Designator, since most operations have several possible variations.
For example, a MULTIPLY Instruction may yield either a full-length product, or
a product which has been rounded off to any desired number of digits, depending on which variation of MULTIPLY is used.
The Variation Designator also governs the Self-Linking facility,
described later in this chapter.
~H~

An Instruction names not only the addresses of the Cells containing

the operands, but also the respective partial-word fields in thse Cells.
Thus, an Instruction might specify:
Add:
Plus:
Store:

Contents of 53-field of Cell 250
Contents of 31-field of Cell 462
Result
in 85-fi~ld of Cell ,721

The operation will be performed as follows:

9 8 7 6 543

437
+ 934

I~ii!i@:~:i:;~:::::i~:::~ 4 : :3 : 7 ~;~:::i~::Miiti.iii:l·

Cell 250

K~~l~llI9I~!~lS.If~:;!~fl~i!!i~~H 9

Cell 462

18
1371

210

I

I

3 4
I

t~::;!~1

2, 6,7 0 .: 0,4, 2: 3 : 5

m~~!] 1

j

: 3 7 ,1
!

I

1!!:Q;!!~~!!~ti~!;i.j!i!~i!~i~ll:~;]

Cell 721 before operation
Cell 721 after opera tion

The Processor automatically isolates each of the operands, aligns
them at the right (Right-Justifies them), performs the addition, and inserts
the result into the designated putaway-field without disturbing the contents
of the rest of the putaway Cell.

111-12

~~-

Any of the addresses named in an Instruction.may be modified, during

exec¥~ion

of the Instruction, by the contents of an Index Register (Relative

Address Register).
The ten Cells, 000 through 009 have the special property that they
may be used as Index Registers.

They are in every respect ordinary Cells in

the Processor Memory, and may be referred to by any Instruction without restriction, just as any other Cells; but they have the additional ability to
serve as Index Registers when required, and are conventionally reserved for
this purpose.
Each Instruction designates one of these ten Cells as an Index
Register for that Instruction, and also specifies which of the addresses
named in the Instruction are to be modified.

At the programmer's

option~

~ none of the addresses,
- anyone of the addresses,
- any two of the addresses,
- all three of the,addresses,

may be modified by the contents of the corresponding fields of the designated
Index Register.
~lhen

an Instruction is about to be executed, the Processor copies

that Instruction into its "private" working-registers (which are not accessible to the programmer).

The Processor changes this

~

of the Instruction,

by MODIFY ADDING the contents of the corresponding field of the Index
Register to each of the designated addresses in the Instruction.

Then the

changed £QBI of the Instruction is executed by the Processor.
An address named in an Instruction, therefore, is not necessarily
the actual address of an operand or of a putaway; it is the base of the
address.

If that address is relative to an Index Register, then the base
111-13

is augmented by the contents of the corresponding field of the Index Register to
obtain the actual

address~

Note that the Instruct.ion itself, stored in Memory, is never changed
by the use of an Index Register.
~

Ever,r time an Instruction is to be executed, a

£2Bl of the Instruction is set up, modified by the Index Register, and it is

this 1110dified

..Q.Q.1?Z

of the Instruction which the Processor executes.

By making a series of Instructions all relative to the same Index
Register, the programmer avoids the necessity of pre-setting and modifying each
Instruction in the series..

Modifying the contents of the Index Register has the

effect of temporarily modifying (at the time of execution) every Instruction which
is relative to it.
Some of the situations in which the Index Registers are used to advantage are:
- magnetic tape file management,
- working with multiple file records,
table lookups,
'
- distribution and analysis.
- programming repetitive loops.
~~H*"

The NCR 304 System has very extensive automatic facilities (discussed

in Chapter V) for selectively monitoring execution of the Instructions in a program, as an aid in program-checkingo

Some of these facilities make use of a

Movitor-level Digit, which is part of each Instruction.
Many Instructions perform long series of operations, equivalent to complete subroutines, and require that additional factors be specified to define the
total operation.
The contents of certain character-positions within some Instructions
are irrelevant to the operation.

These positions maybe used to store a substan-

'cial portion of whatever constants are required by the program.

111-14

INSTRUCTION FORMAT

An arithmetic Instruction, such as ADD, may be taken as typical
of the format of the 304 Instructions.

This basic format is varied and

expanded to meet the requirements of all the Instructions.

9 g 7 6 543 210
First Word
Second Word

Op:

lOp I

:< I :< I :c: I

,Ivi Mis IRIAl,AR(BL ,BRiel ,e RI

Operation code.

M:

Automonitor level:

S:

Selects addresses for modification by Index Register OOR.
In many Instructions, the fields of the first word of the
Instruction contain something other' than addresses; nevertheless, the contents of these fields are modified just
like addresses.
The precise significance of 2 is explained on the next page'.

R:

Designates Cell OOR as Index Register.

A:

Base of address of first operand.

Al, AR:

B:
BL, BR,:
C:

CL, CR:
V:

0, 1, 2,3.

Locations of left-most and right-most character-positions,
respectively, of the first operand.
Base of address of second operand.
Locations of left-most and right-most cha!acter-positions,
respectively, of the second operand.
Base of address in which the result is to be put away.
Locations of left-most and right-most character-positions,
respectively, of field allocated to the putaway of the result.
Variation designator.

111-15

SELECTIVE MODIFICATION OF FIRST WORD OF INSTRUCTION

BY AN INDEX. REGISTER, .

The three fields of the first word of an Instruction, which
norma1-1y c'ontain addresses, are called the

~yllabl~s

of that word.

Each

of these syllables is regarded as having an assigned uS-va.lue u in connectien with the digit

~

in the Instruction format:

The S6-field is the A syllable, with S-vaiue 4
The 53....field is the B syllable, with S-V'a.lue 2
The 20-field is the C syllable, with S-va,luel
When the programmer has determined which syllables of an Instruction are to be relative to the designated Index Register, he adds
the S-values of those syllables, to obtain the value of
S-value
4
2
1
Sum

. If

S.=

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified .

~.

S-values of

II

2
.'

0, no Index Register is used, and R is irrelevant.

S ::: 0:
S = 1:
S ::: 2:

3:
4:
== 5:
== 6:
::: 7:

S :::

S
S
S
S

:::

No syllables
C syllable
B syllable
Band C syllables
A syllable
A and C syllables
A and B syllables
A, B, C syllables

modified
modified
modified
modified
modified
modified
modified
modified

111-16

syll~bles

1

OPERATION OF THE
SEQUENCE-CONTROL REGISTER
The Processor uses the 53-field and the 20-field of Cell ¢OO
Cell ¢OO is one of the "Special Cells"

as the Sequence-Control Register.

mentioned on page III-I, and described in Appendix

9 g 7 6 543

Cell ¢OO

l:tf:I::I:::::li::I::::~I!t:i:1

The 20-field contains

g,

: P:

"cn.

210

I :Q: I

the address of the first word. of the

next Instruction to be executed in the Program.

In order to execute it,

the Processor copies the Instruction into its working-registers, and at
the same time augments

S by

the number of words in the Instruction.

the moment, then, the new value of

For

S is the address of the next Instruction

in the normal s eguence •
The copy of the Instruction, in the working-registers, is then
appropriately modified by the oontents of the designated Index Register,
and the modified copy of the "Instruotion is executed.
causes a branch in the program, the new value ofg is

If the Instruction
automatio~lly

re-

placed by the branch address named in the Instruction.
Thus, whether or not the Instruction causes a branoh, the
Prooessor will always find the address of the next Instruction in the
20-field of Cell ¢OO.

111-17

SELF-LINKING
If the Variation Designator of an Instruetionis negativ'e,
(if the sign"';bit of !. is a I-bit), then under certain circumstances
and

!:

S will be interchanged in ¢OO, as part of the executione! the

InstructionJ
Decision Instruction which does not branch:
No interchange takes place, regardle$$ of the signor

:r.

Decision Instruction which branches:
The Processor makes the decision to branch; if! is negatlve:J
.!:

and

9 are interchanged; then the branch address named in tJ:1e Instruc-

tion is stored in the 20-field of

¢oa

in the usual manner.

In this wayg, the address of what would have

~

the

next

Instruction if there had been no branch, is retained in the 53-field of

¢OO, and can serve as a link, back to the branch-point at a later time.
Sequential Instruction:
When execution 6f the Instruction has been completed, and the
result has been stored, then if ! is negative,

1:

and

9.

are interchanged

before selecting the next Instruction forexe'cu.tion, With the,ra'sUit
that the next Instruction is selected from the address initially stored as
Thus any sequential Instruction can impose ,a jump, and store

a return link.

111-18

!:.

Since Cell ¢OO is fully addressible, and is accessible without
restriction, the progrannner has a great deal of freedom in branching and
linking.
1)

Some of the techniques are:

Branch without linking:
Use a decision Instruction, V positive. If a link had previously been stored as P, it will be undisturbed.

2)

Branch, and link ba.ck to the branch-pgint:
Use a decision Instruction, V negative.
be preserved as P.

3)

The link address will

Branch, and link to some other point in the program:
Use any appropriate Instruction to store the address of the
link-poi:p.t as P. Then, -for the branch, use a decision
InstrUction, 'V positive, which will not disturb P.

4)

Return to the link-point.:

Make V negative in the last Instruction (which will be a
sequential Ins'truction) of the branch sequence.
5)

Conditionally retUrn,to,the link-point:

In the branch sequence, use an appropriate Instruction to pick
up P and store it as the branch address named in the decision
Instruction.
6)

Jump unconditionally without linking:

Use an appropriate Instruction, V positive, to store the jump
address as Q. Any link previously stored as P will be undisturbed.
7)

Jump

unconditiona.lly and link:
Use an appropriate Instruction, V negative, to store the jump
address as P. Since V is'negative, P and Q will be interchanged after the putaway, establishing the jump and the link.

8)

Jump uncol1dit.ionally, and link to, some other ,point:
Use an appropriate Instruction, V positive, to store the
link address and the jump address as P and Q respectively.

III-19

The complete execution cycle of a standard Instruction (except
for automonitoring) is shown in the following flow-chart: The
notation (¢OO:20) means "The contents of the 20-field of Cell COO"

.......-----~I
START

Copy contents of the cell named in ¢OO:20 (first word
of the Instruction) into working-register X.
Augment: (¢OO:20) 01.
Copy contents of the cell ~ named in ¢OO:20 (second
word of the Instruction) into working-register Y.
Augment: (¢OO:20) 01.
Check for Overflow Condition (See TEST OVERFLOW,
Chapter IV).
~-------------------~OVERFLOW

Modify specified syllables in working-register X by
contents of the designated Index Register.
Execute the mod ified copy of the Instruction which
is in working-registers X and Y.
(The Inst·ruction may refer to ¢OO without restriction).
What kind of Instruction was it?
SEQUENTIAL

DECISION

Does the decision result
in a branch?

What is the sign of V?

What is the sign of V?

Interchange

Interchange

(¢OO:53) and (¢OO:20)

(¢OO:53) and (¢OO:20)

Store the jump address
in ¢OO:20

.....
, . . - - - - - - - TO NEXT INSTRUCTION

111-20

HALT

SELF -CHECKING OF INFORMATION STORAGE

All storage of information in magnetic cores, and all transmission of information between units of the System, are automatically
checked.
Every word in the Processor Memory is actually stored as 11
characters -- the 10 characters of the word itself, and one additional
check-character as-signed by the Processor.

Each bit in the check-

character establishes parity along one diagonal of the bits in the word,
as shown in the diagram:

o

9

When information is to he read from Memory, an entire word
is read into a working register, and the check-character verified.

Then

the appropriate field is selected from the word, and at the same time
each character in the field is assigned its own seventh parity-bit.
Information is stored in all operating registers in the form of 7-bit
characters, and parity is checked during every readout.

III-21

When a field is to be stored in Memory, the entire word which
already occupies the put away cell is read into a working register, its
check. . . character verified and a 7th parity-bit assigned to ea.ch character.
Then the information to be putaway is inserted in the word, a new checkcharacter is computed, the parity;..;bits of the individual characters are
dropped, and the revised word is recorded in the putaway cell.
In all transmissions to and from Input and Output Units, every
character is transmitted with its parity-hit, and parity is checked 'at
both ends of the transmission.

In addition, all Input and Output Units

have their own self-ohecking facilities, described in Chapter VI.
In recording onMagneticTape,every character ,is recorded
with its parity-bit, and

in

parity check-character.

Other automatic checks on Magnetic Tape, rec'ord-

addition every record 'is assigned a diagonal-

ing are discussed in Chapter II.
Any failure of word-parity or character-parity within the
System causes an immediate: error-halt, except for Magnetic Tape opera;...
tions, where automatic program brariches
tion of the

operation~

111-22

are furnished to permit repeti-

CHAP'l'ER IV
OPERATIONAL CHARACTERISTICS OF THE PROCESSOR

The following list illustrates the conventions which have been adopted
in this chapter:
CELL

A memory location.

ADDRESS

The number assigned to a cell.

WORn

The contents of a cell.

FIELD

Any set of adjacent

char~eters

within a word.

The field which extends from character-position 7
through charaeter-position 2 within a word.
CELL 241

The cell whose address is 241.

CELL A

The cell whose address is designated by A.

241:72

The

1£ field of cell 241.

241:33

The

~

field (character-position 3 only) of cell 241.

A: 20

The

~

field of cell A.

(241)

The contents of cell 241.

(A)

The contents of cell A.

(241:72)

The contents of 241:72.

(A:20)

The contents of A:20.

A-FIELD

An Instruction names A as the base of the address
of an operand. This base may be modified by the contents
of an index-register to form the actual address of the
operand.
The Instruction further specifies that the operand
occupies a certain field within its cell.
The specified field in the actual address of the
A-operand is referred to as the A-Field.

[A]

The contents of the A-field.

SYLLABLE'

It is convenient to refer to the three fields of the
first word of an Instruction, whioh normally contain
addresses, as the syllables of that word.
The A Syllable is the 86 field.
The B Syllable is the 53 field.
The C Syllable is the 20 field.
IV ...1

.Shaded areas in an Instruction Format indicate characterPQsitionswhiqh. are':1rrelevant to. the execution of the
Instruction. The programmer may use these characterpositions for storage of any information he desires.
OVERFLOTtI ALArn-1

A signal, set within the Processor, to indicate that the
programmer has written certain Instructions improperly,
and an incorrect or meaningless result has been obtained.
When the Overflow Alarm has been set, the Processor ·will
halt before executing the next Instruction, unless that
next Instruction is the TEST OVERFLOW variation of TEST.

REGISTER

An auxiliary cell, not part of the memory proper, used
by the Processor in carrying out its operations.

RIGHT -JUSTIF lED
LEFT -JUSTIFffin

These terms, borrowed from the printing trade, describe
the placement of information within a field or a register so that the right-most or left-most character of
the information occupies the right-most or left-most
character-position of the field or register. This
operation DOES NOT involve dropping non-significant
zeros. As the terms "right-justified" and "leftjustified lt are defined here, non-significant zeros are
considered to be part of the information.
Whenever., in this l1anual, it is stated that the ~ontents
of a field are transferred right-justified or lettjustified to a register, it must be understood that the
register is first "cleared" by placing zeros in each
character-position.
Whenever it is stated that the contents of a register
are transferred right-justified or left-justified to a
field, it must be understood that only as many characters
are transferred as the field can contain. The remaining
characters in the register are not transferred •

.It must be clearly understood that all registers mentioned in this Manual have been "invented" by the. authors as aids to clarity
and conciseness in describing operations.
These registers are entirely fictitious, and bear only
coincidental resemblance (if any) to the registers actually present in the
Model 304 Processor.

IV;...2

EXECUTION TIMES OF INTERNAL OPERATIONS

The basic unit of time within the Processor is a Cycle of 60 micro-seconds
(60 ~s =. 0.000060 seconds). For convenience ,this unit is referred to as
1 mcro-minute (1 ~ min = 0.000001 minute).
.
Execution times in this table are expressed in micro-minutes. To convert
total micro-minutes into minutes, move the decimal point six places to
the left.
'"0

Operation

.~

·J.UJIlP

0'"0

~Q)

.. til

PLc H::::>

1
2
3
4

Add
Subtract
Multiply
Divide RJ

10 1
10 1
26 1
14 1

2
2
2
2

5
6
7

Divide LJ
Modify Add
Modify Subtract
Extract
Insert
Add Binary
Complement Binary
Test Bit
Compare Numeric

15
10
10
10
14
10
10
9
9

1
1
1
1
1
1
1
1

2
2
2
2

a

9
0

11
A
B

Additional

..V -V +V

+
1 if signs different} rAND result
+ 1 if signs alike
Dit negative
-

(

+ Sum of the digits of

>-

~

{++ Sum
of the Quotient digits
2 per Quotient digit
+2~.average

to round Quotient

2
2
2

- 1 if signs are different AND
neither number is zero

1

C Compare Alpha
D Compare Equality
E Count

9 1
9 1
11 1

Test
Combine
Distribute
Suppress
Edit
Merge, Runout
Cutoff

2

Unpack
Q Sift, single key

5 1
12 1
11 1
15 1
13 1
19 2
22 2
g 1
7 1
7 1
15 1

double key

16 1

2

1 1

+
+

1 if [BJgreater than CA]
1 if [IJ greater than [TJ , or if'
. ": no jump
.,

F
H
J
K
L
M

N Move

d Pack
p

R Summarize
~RANCHES

14 1

2
2

+
+

2
2
1

1
1
2

1

1

1 fo.r sign splitoff variation
1 for sign splitoff variation

See Instruction Description
See Instruction Description
+ 2N +(2 per full 100 words)
+l3N+(lper full 100 triples)
+13N +(1 per full 100 pairs)
+ 4 per item compared with sieve
+ 2 if AF termination
+ 5 per item compared with sieve
+ 2 if AF termination
+ 4N +(number of intennediate
negative results)

WITHqur EXECUTION;

All Tape Instructions 11
PRINT
9
,

AUTOMONITOR:

Add 12 micro-minutes between termination of the Instruction to
be monitored, and execution of the first Instruction in the
Monitoring Program. This time is used for storage of information
in ¢01 through ,04.

EXECUTION TIMES OF EXTERNAL OPERATIONS
These operations are usually timed. sepa'rately, and for this purpose, the milli-second
(0.001 second) is the most convenient unit. Times in this table are expressed in
mlli~s.eeonds' ,and: inelude e)tse.ution.,:tinie ,of. eaohlnstrueti()il'~W1th1nthe Pro'cessor,
and all acceleration and repositioning times'.': .... "
.' ..... "
....
'To convert total milli-seconds into minutes, divide by 6 and move the decimal point
four places to the left.
~

m

OoM

(l)E-t
(I)

Q)'U
Q)

o

Operation

e.~

PROCESSOR Variable Time

~.~

~ per word written

IWRITE

PROCESSOR Free PRINTER or .CONTROLLER busy

MAGNETIC TAPE 

9~

INDEX FORWARD

~ per word indexed over

9

~ per word indexed over

50

~ per word written by

24

4

INDEX BACKWARD

~60

WRITE-COPY

(j) 8~

13

+ ~ per word copied

the WRITE portion

I!

COPY
SEARCH

G)

WRITE--COPY-READ

(]) 8~

COPY-READ

~ 8~

31 + ~ per word copied
20 +
per word searched over

!

1~
~ per word written
+ ~ per word copied
+ ~ per word read

! per word copied

+

REWIND

1

PRINT

.3
~

TYPE ON CONSOLE

!

pq~CH

ON CONSOLE

!
!

per word searched over
per word read

9

100 +

14

per blank line after
the printed line.

17 per character punched

150 per character typed
1. 100 per character' punched
2

'1

READ PAPER TAPE

7"2

READ CARDS

4~

NOTES:

20

I

PUNCH PAPER TAPE

.

.+ "2 per word read

~ 4~

SEARCH-READ

20

O. 77 per character read ~
60 per card. read

(j) If, Destination Tape in this operation wa~ just previously used as Source
Tape for READ, INDEX FORWARD, INDEX BACKWARD, SEARCH or COP!, add 16ms to
Processor fixed time.

(2) If READ tenninates because memory-allocation has been exceeded , increase
the time in both columns by ~ per word for average record-length in the
file.
(j)If INDEX BACKWARD follows use as a ~estination Tape, add 4ms to Processor
fixed time.

Y> Contro1chara~·ters,
as characters.

such as ttPtitawaylt andtlCompute Coden must be counted

SPECIFICATIONS on which execution-times of external operations are based:
MAGNETIC TAPES:

Acceleration
3 InS
Deceleration
3 ms
Data Transfer 20,000 characters per second
Datao Recorded
200 characters per inch
Tape Movement
100 inches per second
Rewind
2.2 minutes per full reel

PRIN'mR:

600 lines per minute
Printing Speed'
Blank Lines
4,200 lines per minute, regardless
of how many, or how few, lines
are to 'be left blank

PAPER TAP.E PUNCH:

Punching Speed

CONSOLE TYPEWRITER:

Typing Speed about 6! characters per second
Punching Speed
10 characters perseeond

PAPER TAPE READER:

"Reading Speed

1,300 characters per second

PUNCHED CARD READER:

Reading Speed

1,000 cards ,per minute

IV-5

60 characters per second

The following list gives the Operation Codes, Operation Names ,and Standard
Abbreviati()DS for all Operations in the National 304 Data Processor.
1
2

Add
Subtract
3 MultiplY'
RO'Wld

ADD:

SUBz
MOLT:
MULTgR

4 Divide Right-Justified

DRJ~

Round
5 Div,ide Left-Justified
6 Modify Add
7 Modify Subtract

DRJgR

MaUB:

8 Extract
9 Insert

SERT:

o

/\
~

A
B

C
D
E
F

Add Binary

Modulo 64

Complement Binary
Test Bit
Compare Numeric
CompareAlphanumerie
Compare Equality
Count
Test

Overflow
\Option Switen

Reader Code
Punch Code

H Combine
J

Distribute
Sign Split ....off.

K Suppress

Sign Split-off

DLJ:
MADD'~
EXT~

BIN!:
BINAgM

BINC:
TEIT:
eN:
GAg
CE~

eNT:
TEST~6

TESTzS
TEST:R
TEST&P
G6MB:
DIST~
DIST~S

SUPPg

supp:s

L Edit

EDITg

Check-Protection
M Merge

EDIT~P

Cutoff
Runout

MRGEgC
MaGEgR

M~ve

MdVEg

Pack
P Unpack

UNPK~

Q Sift

SIFTg

R Sum:marize

SUMM:

N

o

S Rewind Magnetic Tape
Souree Tape
DestinatiomTape
Use Lockout, Source
Use Lockout, Destination
T Read Magnetic Tape
Complete Records

PACKg

Partial Records
Test Branch Conditions

LOOKsD
READg

READgP
READgT
INDX~F

Index Forward
Index Backward
U Vlrite-Copy
V Write-Copy-Read

INDXgB

WCg
WCgR
Capy:

U (101'1'
V Copy-Read
VI

W!NDgS

WIN1)gD
L6CKgS

CE7PYgR

Writelfagnetie Tape
Fixed-Length Records

WTgF
WTdT
-wTg:T

Variable-Length Records
Test Branch Conditions
W Write Tape and Erase to End
,

Fi~-Length

Records

V.ria~e~Length

Records

X ·Print

Y Type-PUlleh
Console Typewriter
(variations.O thrn. 5)
High-Speed-Purich
Fixed Format

Programmed Format
Z Read Paper Tape
Z Halt
* Read Cards

WTE8F
WTEgV
PRNTg

>

TYPEg

PPTgF
PPTsP

RPTg
HALTg
RaDg

TABLE IV-I:

ZONE
BITS

Language Code
NUMERIC BITS

NUMERIC
VALUE OF
ZONE BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

9

&

•

,

@

¢

0

A.

m n

.,

p

SPACE

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

'If

X

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4

2
1

Sum

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables
4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

/

(¢OO) before operation
p
I

v

( ¢ 00)

Q,

after operation

positive
negative

p

I

1

ADD

The respective contents of the A-field and the B-field
are right-ju.stified., and added.

The result is stored, right-

justified, in the C-field.

OVERFLOW:: ALARM:

Will be set if the
-

the C-field.

IV-l-l

SUQl

exceeds the capacity of

INSTRUCTION FORMAT:
987

6 543

Operation:

210

Opera tion Code:

lop I : A: I : B: I : C: I
I V 1M} SiR fAL ,AR IBL ,BR leL .CR I
DEFINITIONS:
Op:

operation code.
0, 1, '2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of addend.

AL, AR:
B:
BL, BR:

locations of left-most and right-most
digits, respectively, of the addend.
base of address of augend.
locations of left-most and right~ost
digits, respectively, of the augend.

C:

base of address in which sum is to be stored.'

CL, CR:

locations of left-most and right-most digits,
respectively, of field allocated to the sum.

V:

ADD (ADD)

variation designator;
only the sign of V is relevant.

IV-1-2

1

DESCRIPrION OF:,

ADD

This is a

[~

+.

right-ju~tified

operation.

> [c]

[pJ

[~ is transferred, right-justified, to a lO-character-long

working register (Ra). [~ is transferred, right-justified, to another
lO-character-long working register (Rb).
In the course 'of both these transfers, the zone-bits of all
the charaeters tra.nsferred are replaced.by O-hits.
With due regard to the algebraic signs

ot

[AJ

and [B]; as

stQred in' At. and BL, the . contents of registers Ra and Rb are added" and
the sum is stored in a third working register (Re), 11 characters-long"
The contents of. Rc then replace

[C]

,right-justified.

The

correet algebraic sign of the sum is then inserted inti') the sign-bit
position of character

OVERFLOW ALARM:

CLo

Will be set if some character (other than "zero tl ) is

not transferred from Re to

NOTE:

[a] "

(Re) Will equal Negative Zero only if 00 equals Negative Zero

.!!!!

[B] equals

Negative Zero.

IV-1-3

Examples - ADD
Example 1 - Add a positive number to a positive number.

987 6 543 2 1 0

sign

°

? 6 543 2 1
~:':i:~tlt~:14,3,71:~t.~:I:1
98

W':l:Q::i:G::l~:t~t~\:1(19,3,41

a 7 6 5 4 .3 2 1 0
10:0:0:0:0:0:0:4:~:718
9

Cell 250 - - -... Register Ra

+

Cell

462 _ _ _....... Register Rb

lo,o,o,o,O,O,O,9,3,~18

18,2.6.7,0,0,4.2,3,51 Cell A36before
11,3,7,1 J~tD.#f@~:~~:~f~:1 Cell A36 after ....__ Register Re

Example 2 - Add a positive number to a negative number.

19,0,0,0,0,0,0,1,3.7,110

Result is a positive number e

sign

9 S 7 6 5 4 3 2 10

98 76 5 4.3 2 1·0

W,q-,3.5,2.3f~~t$.~:jt'l Cell 345 - - -..... RegisterRa

10:0:0:0:0:0:3:5:2:310
....

Ei~at~:38.7,9.4;2 ,oti{~::1 Cell 7B4 - - -........ Register Rb

10,0,0,0 ,S ,7,9 ;4,2,01

0

10.0,0,0.0 ,8 ,7 ,5 ,8,9 ,71

8

\6,7,4,8.6.9.3.3.4,6\ Cell 777 before
[ij(tJO.0.8.7.5 ,8 ,9,71 Cell 777 after .....f I - - Register Re

IV-1-4

Examples - ADD
Example 3 - Add a negative number to a positive number.
combined with left-most character.
987 6 543 2 1 0

Sign of negative result

1~I~i6igl~:~i~!6i~:~1
sign

9876543210

9876543210

l:tt~i/l\$.:~~t~o.~IK,D,5f9D

Cell 450 - - -.... Register Ra

Iw,v ,N ,E ,5,-,+ ,7 ,-)~,#I

Cell 260 _ _ _ _~. Register Rb

10:0:0:0:0:0:0>:4:518
....
16,5,5,5,5,0,0,7,0,110

17,6,8.3,5.0,1,4,4,41 Cell 502~efore

IF, 5,5,5,5,0,0,4,:1 ,61

Cell 502 after.

Register Re 10 (>,5,5.5,5

Example 4 - Add two negative numbers.

.0 ,0.4,5,61

0

Set overflow alar.m.

987 6 5 432 I 0

l~i~i6igl~:gif!ti~:gl
sign

987654.3210

9876543210

tjWtfr:~:Q{tt~II,9,8,91 Cell 250 - - -..... Register Ra

-+-. Register Rb

f:$\:6breviation
:...
::;' ..':

0

Unrounded product

MUtT

1

Product rounded at CR.

MULT:R

"l~:!.)

IV-3-2

'-

DESCRIPTION

OF~

MULTIPLY

This is a left-justified operation.
[AJ x [B] ~ [C] and into @OO:90.

Both putaways with sign.

CAJis transferred, left-justified, to a lO-character-long working register (Ra); [B] is transferred, left-justified, to another
lO-character-long working register (Rb). In the course of both these
transfers, the zone-bits of all characters transferred are replaced by
O-bits.

The contents of ~a are then multiplied by the contents 'afRb,
and the 20-character-long product is generated in a third working register,
20-eharacters long (Rc). Note that the product of two 10-digit numbers is
always 20 digits longo

= 0:
The contents of Rc are transferred, left-ju.stified, to [C], for
as many digits a.s exhaust the capaoity of [0]. The next 10 digits, counting from left to right, are then transferred to @OO:90. Any additional
non-zero digits of the product are lost.

V

= 1:
The plltaway ill this variation is 'the same as that in J = 0,
except that the portion of the product transferred to [0] is rounded in
digit-position OR: that is, if the digit in position .2 of' @OO is a u5 n
or greater, then [a] is augmented by ttl".
'

V

, If the algebraic signs of the two operands are alike (as indicated by the sign-bits of At and Bl) then the sign of the product is'
positive; a O-bit is inserted into the sign-bit position "of digit Cl, and
into the sign-bit position of the digit in position.2 ofJ@OO.
If the algebraic signs of the two operands are unlike, then the
c;i l-bit is inserted as the sign-bit of
as the sign-bit of digit-position 2 of @OOo

sign of the product is negative;

CL,

an~

Decimal Point: The number of digits to the left of the decimal point in
the product is equal to the sum of the number of digits to the
the left of the decimal point in each of the factors • Thus:
2.000000000 (Ra)
x 3.000000000 !R'())
06 .. 000000000000000000

(Re)

RESTRICTION: [A] may not be more tha.n 9 digits long. Otherwise, the
product will be invalid, and the· Overflow Alarm will be set.
OVERFLOW ALARM: Will not be set if some non-zero character is not transferred from Re to @OO.Will be set if the above restrietion is violated o
Rounding may cause a carry to be generated out of ,CL; if
so, the Overflow Ala.rm will be set. The carry will be lost.

IV-3-3

Examples -MULTIPLY

Example 1:

V:::()

[A] and [B] both are positive numbers

sign

9 87 6 5 4 3 2 1 0
t'}j!i 1,4,6.2 ,114Wi::~l]

Cell 142

----+

Register Ra

98 7654321 0
11,4/6 2,1,0 ,0,0,0,0 I

8

X

8

Register Rc

17,4.3,2,8.6.4.1.0.51

IB,7.4.9.6,3.2,8.4,31
Cell 563 before

Cell

563

Cell @OO before

after

Cell @QO after

r/ ....3-4

Examples - MULTIPLY
Example 2:

Y.::1
Sign of [A] is posi tive
Sign of

[B]

is negative

Putaway in [C] is rounded at CR

sign

9876543210
[114,2,1.5,6,4,9 31;1 Cell 427

~

~l~~~1~l~IG,1,0,5tjifi~~rt:l111m

--+ Register Rb 17,1,0,5,0,0,0.0,0,01

Cell 913

Register Ro

Register Ra

12.9,9.5,2,1,8,8,2,7,6.5,0,0 0.0,0,00.01

'14: 4,0,5,7.0,2 .9,4,sl

IE, 9,3.2.5,6 ,A,k. 9,81
Cell 685 before

Cell @OO before

Cell 685 atter
multiplication, before
rounding
f;:.~::m::::~:::~:i
K.·.·~::~~:~;~: ..:J B«

9876543210
14,2,1,5,6,4,,9,3,0 01

9, 9, 5 ,2 , 2

I

Cell @OO after

multiplication

IH,~,2aj6,5rQ,0,Q,DI

Cell 685 after rounding,

Cell @OO after

and insertion of sign

insertion ot sign

rv-3-5

8
8

118

Examples - MULTIPLY.

Exa.mple 3:

V=l

,-

Illustration of how rounding can set Overflow Alarm

9 8 7 6 5 4 3 21

°

°

°

':i!si'i':'::~:"""""":~:"1 9,8, ,0 _:~~~.
j'*"#:'
1_::~:~i~~::ilf;~::_

Cell

109 --1- Register Ra

hji)$ji 9 7, 61~j'~~it~~~~lmil

Cell

312

--+ Register

Rb

987 6 543 2 1
19,8,0,0,0,0,0,0.0.01
19 ,7 ,6 (0.

°.0, °,0. 0.01

-

Register Rol

[Ii

2! 2 ,2 . 9 ,6 ,5,4 ,7

Cell

9.5,6,4(8,0,0,0.0,0,0,0,0,0,0,0.0,0,0,01
...

,31

[4.3.0,6.7.4.2,0,4,81

180 before

Cell

o~~m~~t~@~(~.tl$.rjt~¥'~191
Cell 180 after
. multiplication, before
rounding

before

(5,6,4,8,O,O,O.O,O,O)
Cell @OO after

°.

(""i:::::~:~~::::;i!i;::::~:::::i;:::~:;t::~?:::~::I . I

{~::::;~::~:~:::i~:;i::~::;:Y.::~~::~~::~:I::::_

@OQ

Cell 180 after rounding
The OvERFLO\'lALARM will be set

IV-3-6

TABLE IV-I:

ZONE
BITS

Language Code
NUMERIC BITS

NUMERIC
VALUE OF
ZONE BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 '1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE &

•

,

0

A

m n

e,

p

10

+

J

K

L

M N

0-

P

Q

R '%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

s

u

V

w

X

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2

1

Sum

d

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables

I I

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation
p

v

( ¢ 00)

Q

after operation

positive,
negative

p

I

1

D .1 V IDE

RIG H T - J.U S

The respective contents of

T~

I FIE D

the,A-fi~ld

are right-justified, the quotient [BJ is
[AJ

and the B-fteld

gener~ted

as though

[A] and [BJ were integers, and the quotient is stored, right-

justified, in the C-Field.
In one variation, the remainder is stored, rightjustified, in cell @OO, with the algebraic signor [B].
In the other variation, thequotientls ·rounded at
the right-most digit position of the C...;tield, andnG-p4taway
is made to @OO.
The Instruction has the restriction 'that the A-field
may not contain more than 9 digits.

OVERFLOW ALARM:

Will 'be set iithe A-field contains more than

9 digits, or if an attempt is made to divide

by

zero.

Note

also that rounding can cause overflow, and set the Overflow
Alarm.
Will

~

set if the result exceeds the capacity

of the C-field.

IV-4-l

INSTRUCTION

Operation: DIVIDE,_ RIGHT-JUSTIFIED (DRJ)

FOR¥~T:

9 g 7 6 ;

4' 32 1

0'

Operation COde:

lop I : A: I :B: I :c: I
Iv IMis IR IAt AR BL BR ICt •CR I
I

f

4

I

DEF INITIONS:

OP:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates syllables for modification
by index-registerOOR.

R:

designates OOR as index register.

A:

base of address of divisor.

At, AR':

B:
.8l, BR:

C:
Ct, CR:

V:

locations of left-most and right-most
digits, respectively, of the divisor.
base of address of dividend •
locations of left-most and right-most
digits, respectively, of the dividend.
base of address in which quotient is
to be stored.
locations of left-most and right-most
digits,respectively, of field
allocated to the quotient.

NOTE: If' quotient is
unrounded, remainder is
stored in @OO: 90 with
the algebraic sign of [B];
putaway is right-justified.

variation designator:
,Abbreviation

V

Specifies

0

Quotient-unrounded

nRJ

1

Quotient rounded at CR

nRJ:R

IV-4-2

DESCRIPTION OF:

DIVIDE RIGHT-JUSTIFIED

This is a right-justified operation.
[13]

~ [CJ,

unrounded,

remainder

[AJ

or

CBJ--+[c], rounded.

-

(A]

--+ @OO: 90

[A] is (-transfe"rred". right-justified~ to a 10-character-10ng
working register (Ra.l> [BJ is transferred, right-justified, to another
lO-character-long working register (Rb) ..J:n the course of both these
transfers, the zone-bits of all' characters transferred are replaced by
O-bits.
' "

The division is performed, generating the- same number of digits
of the quotient as the number ot digits speyified by the size of [B]!
The quotient appears, right-justified, in a third lO-charaeter-long working register (Re), with the remainder being held in Rb.
The contents of Rc then replace [C], right-justified ..
V = 0:'The contents of Rb (the remainder)
@OO:90, and the sign-b;i.t of the character in
of the dividend) is copied into the sign-bit
position .2 of!QQ, so that the remainder bas

replace the contents of
position Bl (ioe.-the sign
position of oharaeterthe same algebraic sign as (,B]"

V = 1:
The division is resumed, to gene,rate one more digit of the
q1;1otient ~ If that digit is a tv 5't or greater, then [C] is augmented by ttl If ..
No putaway is made to @OO, in this variation ..
If the algebraic signs of the two operands are alike, (as indicated by th;e sign-bits of the digits ~n positions Al and BL),.then the
sign of the.qu6tient is positive; a O-bit is inserted into the sign-bit
position of ,Cl. If the algebraic signs of the two operands are unlike,
then the sign of the quotient is negative; a I-bit is inserted as the
sign-bit of Cl.
RESTRICTIONS: 1) An attempt to divide by zero will set the Overflow
Alarm, and no div:t'Sion will take place ..

2) [A] may not be more than 9 digits long, Otherwise,
the Overflow Alarm will be set and the quotien~ will be invalid o
OVERFLOW ALARM:

Will be set if restrictions

1

or

,g

are violated ..

Wi],l be set if some character (other than
transferred from Re 'to [C].,

If

zero") is not

Rounding, may cause a carry to be generated out of Cl;
if so, the Overflow Ala.rm will be set" The carry will be lost.

IV-4-3

Example - DIVIDE RIGHT-JUSTIFIED

Example 1 - Divide a positive m.nnber by a positive number and save the remainder. V=O

9876543 2 1 0
.!~l ~

1~I~i~igl~;~i~!~i~:~1

tAJ

[C]

sign
987 6 ~4 3 2 1 0

·11,41::ihib~:;:~1=it:)lH;Wij
12,5,7,3,2,o,9t§11tti:1

Quotient
'Register Rc

987 6'S 4 3 2 1 0

Cell 735

-+

Qel1296~

Ra

10:0:0:0:0:0:0: 0 :1:41

0

RegisterRb

10,0,0,2,5,7.3,2,0,91

(0

.Register

·:AFTER DIVISION:

, hiAiHilo, 1,8, :3 ,8,0,0 I

+

.Remainder
Register Rb

10,0,0,0,0 ,0,0.,0,0,91

L

19.7,6,4,1,0,5,2,2,81
~Cell

432 before

Do ,I,8,3",8,O.,ohu
Cell 432 after

\6,7,3,6,8,1,2,5.5,21
Ce11@00 before

10,0,0,0,0,0,0,0,0,91
Cell @oo after

Example

~.

DIVIDE RIGHT-JUSTIF'IED

Example 2 - Divide a positive numqer by a negative number and round.

V

=1

Puta'ttTaY to cause overflow.

987 6 5 4

J

2 1 0

Itlgi~~I~:~i~!~i~~~1

[8J

---t»

[C]

[A]

sign

9 S 7 6 5 4 3 '2 1 0

987 6 5 4 3 210
f:~:l:~~:1-.2 ,3 f:8{4i}5.:~~~f':l Cell 535 - - -....
~

Register Ra

1::5:(2 ,1 .3 .7 4 , 6~~8tat$J Ge 11 III _ _--+--~ Reg:tster Rb
!

Jcr,F ,F ',sP,O ,1,4 ,0 ,2 ,5\

10,0,0,0,2 ,l,~.7,4,618

Register Rc

[ilmi~H~lo,o ,9,2,9.31

rounding .
. Overflow Alarm set

l:il:~:~:I!~.;OO:lt;IB, 9,
f

f

31

8

Cell 201 before

OOf.]i!i;!F:iiii'ili.iiitM2 ,9,31~i~si~~,a~!~~re'
.

10 :0: 0 :0: 0 :0 :0 :0:2 :31

Cell 201 after .....~ _ _ Additional digit of quotient.
rounding, and
insertion of signe

IY-4-5

0

Example

~. .

DIVIDE

!RIGHT~US~IFIED

Example 3 - Divide a positive numberbya·positive number and round.

V ::;,1

9876543210

Itl~i5igl~:~i~:~i~:§1
987 6 5 4 3 2 1

° Cell 250 ---.-...

. sign

9876543 2 1 0

fl,:12 .61::~~:'tit!:~lti:&~:!

Register Ra

ijijfitJ 0.4.6.7 .9Iil{il!:j

Cell 350 _ .........._.-... .Register ·Rb

10:0:0:0:0:0:0:0:2: 61

8

0,0,0,0,0,0,4,6,7,910

1

15.5.8 .4.3.7.2,Q.4,01 Cell 450 before

H~i,loI0,1,7, 9I,i):i:,iili1 :~s~~~,a~~;~re...._ _ Register

Rc

liijW"Hi'iMBo ,0,1,7,910

rounding.

1:~j:r'~IQ.Q.l.S.Ont~lfl Cell 450 after ...._ _ Additional digit of. quotient ..
rounding.

IV-4-,6 .

Example - DIVIDE RIGHT-JUSTIFIED

Exampl,e

It -

D~yide

a negative number by a positive number and round.

L=

1

Rounding to cause overflo\v.

987654.32110

Itl~i~ial~:gi~!~if~ll

03J
f.A]

- -....
:..

[C]

sign

9 B 7 6 5 432 1 0
t~ti~1jm:;t!t~i~lito.:i:~;:~ 9 .4.51 Cell 236 - - -.... Register Ra

10: 0: 0:0:0 :0:0:9:4:~ 18

~:it~::i:itk:(I,4i2.5,51:~:1
. Register
~-----I-- --- ----- . Cell 758 - - - - - . ..
. . Rb.

10 ,0, 0 ,0,0.9,4;2.5,5

9 8 765 432 1 0

10
-

. 18.7.8,9.2,6,6.2.1.11 Cell 429 before

t:g;:1Hlhi1'i~~ 9·9 bl$!¥M ~~ sfo;, a~~~~ re.......- - Register

Rc

1::@;;~MHfiJ~1 0 . O. o. 9. 91 ( )

rounding ..
l:iIW:1i~:j:e:;:~¥1r~~I-.o l~ii~ltjH Cell 429 after..
rounding, and
insertion of sign .
Overflo\f Alarm set.

IV-4-7

Additional digit of quotient.

W

TABLE IV-1:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

0

00
01

9

•

,

@

¢

SPACE

&

0

A

m

n

.,

p

10

+

J

K

L

M

N

0-

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2
1

Sum

If S

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables
4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

v

( ¢ 00)

Q

after, operation

positive

Q,@

negative

p

21

I

1

DIVIDE

LEFT-JUSTIFIED

The respective contents of the A-field and the B-field
are

lert-justiried~

and the quotient .. ~

is generated and stored,

left-justified, in the C-field, and rounded.
The Instruction has the restriction that the left-justified contents of the A-field, regarded as a IO-digit number, must
be greater in magnitude than the contents of the B-field, similarly
regarded.

OVERFLOW ALARM:

Willbe set if the above restriction is violated,
-

•.

or if an attempt is made to divide by zero.

Note also that round-

ing can cause overflow, and set the Overflow Alarm.

IV-5-l

Operation: DIVIDE, LEFT-JUSTIFIED (DLJ)

INSTRUCTION FORMAT:
9 S 7 6 ; 4 3 210

lop I :

< I :B:

IV IMis IRIAL, AR IBL

Operat'1on Code:

I :C: I
I

BRJ CL I CR

I

DEFINITIONS:
OP:

operation code.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index register.

A:

base of address of divisor.

, Al, AR:

B:
Bl, BR:

c:
CL, OR:

V:

0" 1, 2,

3.

locations of left-most and right-most
digits, respectively, of divisor.
base of address of dividend.
locations of left-most and right-most
digits, respectively, of dividend.
base" of address in which quotient is
to be stored.
locations of left-most and right-most
digits, respectively, of field allocated
to the quotient.
variation designator;
only the sign of V is relevant.

IV-5-2

5

DESCRIPTION OF:

DIVIDE LEFT-JUSTIFIED

This is a left-justified operation.

.

03]

~

CaJ,

rounded.

CAlJ

CAJ is transf.erred, left-justified, to a. lO"':'characte.r-long
working register (Ra).. [B] is transferred, left-justified, to another
lO-character-long working register (Rb). In the course of both these
transfers, the zone-bits or all characters transferred are replaced by
O-bits.
At this point, the lO-digit number in Ra must be greater than
the lO-digit number in Rb. The quotient, therefore, will be generated
1!§. though i t,were a decimal fraction.
'The contents of Ra are then shifted one character-position to
the right, introducing a zero digit at the left,'and dropping the rightmost digit.. If [A] is 10 digits long, therefore, division is performed
as though the right~ost digit were zero. The result of this shift is
to position the divisor in Ra so that, when the'quotient is generated in
a third lO-character-long working register (Re), the first digit to the
right of the imaginary decimal point wiil appear in position 2 of Re.

The number of digits of the quotient generated in Rc is the
same as the number of digits allocated for the putaway in [CJ.

The

contents of Rc then replace

[CJ,

left-justified.

Next, the division is resumed, to generate one more digit of

the quotient ~

If that digit is a

tI

5t1 or greater, then [C J is augmented

by ftln&

If the algebraic signs of the two operands are alike (as. indicated by the sign-bits of the digits in positions AL and Bt) then the
sign of the quotient is positive; a O-bit is inserted into the sign-bit
position of Ct. If the algebraic signs of the two operands are unlike,
then the sign of the quotient is negative; a I-bit is inserted as the
sign-bit of CL ..
[AJ~ regarded as a lO-digit left-justified number,
must be greater than [BJ, similarly regarded. Otherwise~ the Overflow
Alarm will be set, and no division will take place.

RESTRICTIQNSg 1)

2) An attempt to divide by zero will set Overflow Alarm,
and no division will take pla.ce.

3) If [AJ'is more than 9 digits long, division will be
performed a.s though the right-most digit were zero.

OVERFLOW ALARM:
if

sO!J

Will be set if restrictions

1

or

~

are violated.

Rounding may cause a carry to be generated out of CL;
the Overflow Alarm will be set. The carry will be lost.

IV-5-3

Example - DIVIDE LEFT-JUSTIFlED
Example 1 - Divide a positive number by a positive number.

987 6 5 432 1 0

Igl~i~i~I~:~ig~~ig:~1
sign

9 g 7 6 543 2 1 0

9876543

2

1

0

Register Ra

14:2: 3:5:4:0:0:0:0:51

8

Register Rl,

Compare: (Ra»(Rb)
12,1,0,6,0,0,0,0,0,01

~

After the shift to position the divisor: R,egister Ra

10,4,2,3,5.4,0,0,0,01

~

:Register Rb

12,1,0,6,0,0,0,0,0,01

~

14,2.3,5,4,0,0,0,0,51 Cell 242

)

987 6 543 2 1 0
IA,M,0',U,N,T,SP,2,?,8.1

~Rb~
~ (Re)
Ra

qeJ..1 8'88 before

1:~~}*t*t~{;j;{tt:f~:;:$#14, 9.71 ' Ce~l

88g aft,er ~,.~egister Re
division, before
,
rounding .

1::*::;:;lt:::O::::tl::::P.t;:;:!J!I::::ftifiJ
.;.l:t;.,..J;!!:.,.......... ":'j."If;·i'·~'i9.f;< 4 ' 9 , 71

14. 9,71~Q.~i~Q.!:~~:i~o.1~~}_

8

Cell 888 after f---- Additional digit of quotient
rounding.

Example 2 - Restriction violated, overflow alarm set.

987 6 5 4 3 2 I 0

987 6 5 432 1 0
Il,9,7.9.2,Ojl.6,2.51
1!:i:i::2:~::3::::0:::::ri::::g:::::61
to

"

• to

• • • • • • !o'·

,)',.

',',

• ',',

.

5 4 f:=a~
I

',',

Oell 243
Compare:

Register Ra

11,9,7.9,2,0,1,6,2.51

Register Rb

Compare: (Ra) < (Rb)
~.4.0 .0,-0-,0 ,O·,O,O.;QJ

(Ra).,< (~b) .the overflow 9-1an,n will be
., set, .and no.divisi on takes
p1a.ce.

8
0

'...
+ '::
-,;

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

1

01

2

3

4

5

6

7

8

A' B

C

0

E

F

G

H

9

&

•

,

A

m n

I'

p

@

¢

0

SPACE

10

+

J

K

L

M N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2

1

Sum

If S

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables
4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

( ¢ 00)

before operation

p

V

Q

(¢OO) after operation

positive
negative

p

I

1

MODIFY

ADD

This instruction performs

~he

special kind of addition

i

required when the quantities to be added are addresses of memory
locations, or address-type tallies.

This kind of addition is

described and illustrated in Chapter III.
The respective contents of the A-field and theB-field
are right-justified and added, 2 characters at

~~,

using

this special kind of addition.
The result is stored, right-justified, in the C-putaway
field.

OVERFLOW ALARM:

Will not be;. set under any circumstances.

IV-6-1

INSTRUCTION

FORV~T:

987 6 543

10 pi: A:

Operation:

210

Operation Code:

I :B: ! :C: I

Iv IMI SiR IAL,ARIBL,BRlcL,cRI
DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index register.

A:

base of address of addend.

AL, AR:
B:

BL, BR:

locations of left-most and right-most
digits, respectively, of the addend.
base of address of augend.
locations of left-most and right-most
digits, respectively, of the augend.

c:

base of address in which sum is to be stored.

CL, OR:

locations of left-most and right-most digits,
respectively, of field allocat'ed to the sum.

v:

MODIFY ADD (MAnD)

variation designator;
only the sign of V is relevant.

IV-6-2

6

DESCRIPTION OF:

MODIFY ADD

This is a right-justified operation.

[A]@ [B]

[AJ

-~)

[c]

is transferred, right-justified, to a12-eharaoter-leng

working register (Ra).

[B] is transferred, right-justified, to another

l2-eharaeter-loDg working register (Rb).
In the course of both these transfers, the zone-bits of the
right-most two.characters in each group of three, are

repl~ced

by O-bits.

The oontents of registers Ra and Rb yield four sums, eacho!
which is generated in the indicated field of a third

12~charaeter-long

working register (Re).

!1

J.

g

1

(Ra:ll,9)

(Ra:g6)

(Ra~ ;.3)

(Ra:20)

8

(9

(Rb:ll,9)

(Rb:S6)

(Rb: 53)

(Rb:20)

(Re:ll,9)

(Re:86)
,

(Rc~ 53)

(Re:20)

i

(9

For,detailed description of the operation designated by the
symbol

(l),

see discussion in Chapter III.

Note that any

If

carry~f

which

may result from any of the four surnsis ignored, and doe:s not affect the

next sum.
The contents of Re then replace [CJ, right-justified.
OVERFLOW ALARM:

Will.n21 be set by this Instruction.

Examples - MODIFY ADD
Example 1 -

9 8 7 6 5 432 1 0

rmi6i6!~:~i~~gig)1

°

. 987 6 5 4 3 2 1
I:~::j
.J5l-. 6 , 2 , 0 , D , 5 , 0 t~:::~:?:::1
J.;f. •• ;~:::'t.. Cell 233

-----i.~ Register 11a

10,0,0/o.0,016.2.0/n.5,ol

l:ft::;:~(6:::l!t~~H:ijJ5,0,5.01 Cell 400 _ _ _.......... Register Rb

10,0,010,0,010,0,510,5.01

e

10,2.0 ,0,A.2.5 ,n .4.01 Cell 555 before

l~t~\tl::j::~6.2. 5 .E. 0.01 Cell 555 after ~._ _ Register

Rc

10,0,010,0 ,016,2 ,5IE.O ,0 I

15,O,2,5,O,OrO,O,5,ol Cell 555 - - - -..... Register Ra

10.0,510,2,510,0,010.5,01

IS,9.9.0.2,o;o,+.9.01 Cell 002 _ _ _ _...... Register Rb

10,0,819.9,0'(2;0,01+,9,01

Example 2 -

9

s 7 6 5 432 1'0

987 6 543 2 1 0

G

IS.9. 9.0,2,0.0. +.9.01 Cell 002 before
13,-,1.5.2,0,O,J,4,01 Cell 002 after ......._ _ Register Re

Overflow Alarm will not be set.

IV-6-4

10.1.31-,l,5(2,0,0[J ,4.01

Examples - HODIFY ADD
. Example 3 -

9

a76

S4 )

10

2

1~I~i6i~I~:gig!6i~:gl
9876543210
IZ.Z.8.4.*.+.-.M/N.pl Cell 456 - - - -.... Hegister Ra

IO,0.9Iz.8.41*.0.0IM>L71

12.0.8/8/2.2.7.A.B.cl Cell 250 _____~.~ Register Rb

IO.o.210.8.sI2.2.7IA.2.31

o

10.0.0.0.0/0.0.0.0/01 Cell 330 before
Il.O.7.2.S/2.7.V/8/01 Cell 330 a.fter ~.. _ _ Register Re

10/1.1lo.7.213.2.7Iv.8.01

Overflow Alar.m will not be set.

Example 4 -

9 876 S 432 1·0

1~I~igigl~~~i~!~ig~ll
987 6 5 4 3 2 1 0
f:~~:~::::0:::::t:S:ll
2 0 1 21!fJ
a'~•• ·W .• S;I:,:~

Cell 450 - -_ _.... Register Ra

IQ.o.olo.o,010,1:2(0;1.21

IJt:Q:{Q:;:o.:1 A. 3 0 . B. 31:~rl Cell 005 _ _ _ _..... Register Rb

10,0.010.0.010;1.3lo.2.31

I

,

,

'

•••

i

o

IO.Q.Q.Q,A.3.Q.B.3.01 Cell 005 before
:?~::.:;0~tt:Q..':I2.
5. O.-_.
3. sl:Ql
f-~~--- --__ .- Cell 005 after ~.-- Register Re

IV-6-5

I 0.0,0 I0,0.0 I0,2~ 51 0. 3 51
I

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1

2

3

4

5

6

7

8

A

B

C

D E

F

G

H

"

P

Q

X

Y

0

00
01
10

+

J

K

L

M

N

11

*

#

S

T

U

V

.....

TABLE IV-2:
S-value
4
2

~

1

Language Code

W

9

&

•

,

A

m n

8

p

%

£

$

(

)

I

d

s

u

V

'If

X

@

¢

0
R
Z

SPACE

Modification of first word of Instruction by Index Register

A syllable modified
B syllable modified
C syllable modified
Detennines combination
of syllables modified.

S-values of syllables

I I

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

v

( ¢ 00)

Q

after operation

positive
negative

p

I

1

MODIFY

This Instruction

SUBTRACT

p~rforms

an operation which is the

reverse of the special kind of addition called MODIFY ADD.
This operation is described and illustrated in Chapter III ..
The respective contents of the A-field and the B-field
are right-Justified" and the difference [A]

2

e

[B] is generated,

characters at ! time, using this special kind of subtraction.
The result is stored, right-justified, in the

C-putaway field.
If any 3-charaeter field of [AJ. should represent a
smaller address-type number than the corresponding 3-character
field of [BJ, then theresult of [AJ

e [BJ

will be the "4000~

complement n of [ill 9 CAJ.

OVERFLOW ALARM:

Will

~

't?e set under any circumstances.

IV-7-l

INSTRUCTION FOm{AT:
9 8 7 6 543 2 1 0
0

Operation:

 l 000. 10

[c]

Register Re

To

[0,-.01 <

l 000.

10

01

0010

I 100 , 01

a 10-0

10J 0

1000

IV-8-4

10 0001
,

00 01 '0

I

01 0000 • 00 00001

TABLE IV-1:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

0

00
01

9

•

,

@

¢

SPACE &

[J

A

m n

.,

p

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X·

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4

2
1

Sum

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation
p

v

Q

(¢OO) after. operation

positive
negative

p

I

1

INSERT

This Instruction permits a set of new values of any
designated collection of bit-positions within a cell to be
"inserted" into that cell, without disturbing the balance of
the contents of the cell.
An important use of this Instruction arises when a
number 9f characteristics of an Item are coded in binary form,
and one of the characteristics is changed, requiring a change
in the binary coding.
This Instruction will operate equally well upon
numeric information which has been "packed ff by the PACK Instruotion.

OVERFLOW ALARM:

Will!21 be set under any circumstances.

IV-9-1"

INSTRUCTION FORMAT:
987 6 543 2 1 0

IO~

:

Opera tion: · INSE RT

: I :< I

IV IMis

Opera tion Code:

R AL, Ani BL BRI CL CRI
t

I

DEF INITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as, index-register.

A:

base of address of first operand (flsource tl ) .

AL, AR:
B:

locations of left-most and right-most characters,
respectively, of first operand.
base of address of second operand ("inserter").

BL, BR: ' locations of left-most and right-most characters,
respectively, of second operand.
C:

CL, CR:
V:

base of address of third operand, and result.
locations of left-most and'right-most characters,
respectively, of third operand and result.
variation designator;
only the sign of V is relevant

IV-9-2

e

9

(SERT)

DESCRIPTION OF:
[A],

INSERT

[BJ, [C]

are each transferred, right-justified, to a

lO-character-long working register (Ra, Rb, Re, 'respectively).
Each of the sixty bits in Rb is examined:

wherever there is

a l-bit in Rb, the corresponding bit in Rc is replaced by the corresponding bit, 0 or 1, in Ra; wherever there is a O-bit in Rb, the
corresponding bit in Rc is unaltered.
The contents of Rc then replace [OJ, right-justified.
If [C] happens to be zero, then the operation of INSERT is
the same as that of EXTRAOT.

OVERFLOW AI."ARM:

Will n21 be set by this Instruction.

IV-9-3

Example - INSERT

Register Ra

From [A]

EiJ

~{ 000,00 0000

From [B]

Register Rb

Im,@,SI

>(000 , 01

From [C]

IF ,o',5,d
To

[c]

IF ,K ,5,sl'"

1.100

I I 0000,00

,

101 1

00 1010,,10 JJ 00

Register Re before insertion

>(

I I a . 10 01 10

•

00 0101 ,00 0000

Register Re after insertion

.~ I I a

I

10 00 ·10

IV-9-4-

00 0101 , 00 1000

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

SPACE &

•

,

@

¢

0

11

m

n

.,

p

10

+

J

K

L

M

N

0-

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2
1

Sum

If S

A syllable modified
B syllable modified
C syllable modified
Determines comb ina tion
of syllables modified.

S-values of syllables

I I

4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

( ¢ 00)

before operation

p

v

( ¢ 00)

Q

after operation

positive
negative

p

I

1

ADD

BINARY

The respective contents of the A-field and the B-field,
right-justified, are treated as two 6o-bit binar.y numbers.

Their

binary sum is generated, and stored from right to left in the
C-putaway field.
uNormal" variation:
described.
to add a

The Instruction operates as just

One of the principal uses for this operation will be

binar.y~eoded

field to itself, and thus achieve a binary

left shift of one bit-position.

In this way, characteristics

which have been recorded in binar.y-coding, may be successively
tested.
UMod-64t1 variation:

In this variation, binary addi-

tion takes place character £l character, with no carr,y between
characters.

In this manner, the individual characters of a

sorting-key may be transformed into pseudo-characters, which
will sort into a sequence different from the normal sequence of
the 304 Language Code.

Normal sorting routines may then be used

to achieve any desired sorting sequence.

OVERFLOW ALARM:

Wi~l

be set if the sum exceeds the capacity of

the C-field.

IV-O . . l

INSTRUCTION FORMAT:
9 S 7 6 543 2 1 0

lopl : < I

OperatIon:

>: I :c:

Opera tion Code:

I
tv 1M Is IR IAL,ARIBL,BRlcL ICR I

DEFINITIONS:
Qp:

auto-monitor level: . 0, 1, 2,

s:

designates syllables for modification
by index-register OORe

R:

designates OOR as index-registero

A:

base of address of addend.

B:
Ba.."

operation codeo

M:

Aa.., AR:

BR~

c:

3~

positions of left-most and right-most
characters, respectively, of addend.
base of address of augend.
positions of left~most and right-most
characters, respectively, of augend.
base of address in which the binary sum
is . . to be stored
0

Cl, CR:

V:

positions of left-most and right-most
characters, respectively, of the field
allocated for the sum.
variation designator:
V

Specifies

0

Normal

BINA

1

Mod-64

BmA:M

ADD BINARY

Abbreviation

rv-G-2

0

(BINA)

DESCRIPTION OF:

ADD BINARY

This is a right-justified operation.
[A] is transferred, right-justified, to a 10-character-long
working register (Ra).

[BJ is transferred, right-justified, to another

10-character-long working register (Rb).
The contents of registers Ra and Rb are considered as positive
binary numbers, each 60-bits in length.

v = 0:

The contents of registers Ra and Rb are added binarily, the

60-bit binary sum being generated in a third working register (Rc), 11
characters long.

v

=

1:

The binary addition is performed as in V = 0, except that no

carry is generated between character-positions in register Rc.

Thus

the transformation of each character is independent of the result of
the transformation of any other character.
The contents of Rc then replace

OVERFLOW ALARM:

[C],

right~justified.

Will be set if some character (other than

not transferred from Rc to

It

zero") is

[CJ.

ADDITION TABLE for Add Binary (Bit-by-bit addition)
J..

0

1

0

0

1

1

1

~'

.

eO

n~n

is the special symbol used to designate
binary addition.

"c tt indicates carry into the next bit-position.

IV-O-3

Example - ADD BnIARY, V

=

o.

(t1Normal fl )

In processing an industrial payroll, there are 24 possible deductions
from an employee's Gross Pay. In each employee's payroll file, a 4-character
field has been allocated for recording the presence or absence of each of
these deductions; each of the 24 bit-positions in this field corresponds to
one deduction. A I-bit in any position indicates that the corresponding deduction is to be made, while a O-bit indicates that the deduction is ~ to
be made. The 24 bit-positions are assigned to the deductions in their
relative order of frequency, with the most frequently-used deduction assigned
the left-most bit-position.
An employeets payroll file has been read from Magnetic Tape into Memor.y;
F94:96 contains the deduction code. The following'flow-chart indicates the
program to test for the presence of each deduction, and terminate when the
last deduction in an individual file has been detected.
ADD BIN (V=O):
(F94: 96) .L UZeroU - 7

~09: 30

Plant binar.y-coded field in Working Storage.

Clear appropriate syllables of (OOR)
COMP EQUAL:

(¢09:30) vs uZerou Finished?

ADD BIN (V=O):

(¢'09:30) ~ (¢09:30) ~ ¢09:30 Shift field left one bit-position

0

TEST Overflow (See Note below)
Process deduction corresponding
to count in (OOR). Use (OOR)
to modify the Instructions
, which examine a table; the
table contains directions for
processing each of the deductions.

COUNT in (OOR)
=24

No more deductions
for this employee
NOTE:

If the left-most bit of (¢'09:30) is a I-bit, then the operation
of ADD BnIARY (shift the field left one bit-position) will
result in Overflow.

IV-O-4

'Suppose tha.t deductions #0, 112, #3 are to be made from the Gross Pa.y of a
particular employee.
Then, at the start of the testing loop, (¢09:30) will appear as:
Characterposition ~
Deduction
Present or .
Absent

. 3

1.#0 1111'
f

II ~

JI

11121113

I#4 I#5 I #61 #7118

f

I

119'7

1 1 0 1 1 1 1 1 0 1 0 II 0 I 0 I 0 I _0

~

(bit-wise representation)

The effect of adding a binar.y field to itself is to shift the field 1 bit-position
to the left. The lett-most bit is lost, and a a-bit appears at the right endo
After the first ADD BINARY, (¢09:30) will contain:
(I-bit lost)

I0 I 1 I 1 I 0 I 0 I 0 I 0 I 0

) 0

I' o~ g!~:;f5~~u~tr~n flO.

After the. second ADD BINARY, (¢09:.30) will contain:
( O-bit lost) .

11

I

1

I

0

I

0

I

0

I

0

II

0

,I

0

1

0

~

0

1

0

I 0,/7

No Overflow.
Omit Deduction

11.

After the third ADD BINARY, (¢09:30) will contain:
(I-bit lost)

I"1 I 0 I 0 I 0 I 0 I 0 I

0

0

--~--~~~~--~--~~--~--~~.

Overflow
Set; 1/2.
Make Deduction

After the fourth ADD BINARY, (¢09:30) will contain:
(I-bit lost)

[0

J

0I

0

I0

f

0)

0 )1 0 I 0 I 0

J

07'

Overflow Set;
Make Deduction #3.

But now, as the operation comes around to the beginning of the loop a.gain,
and executes the COMPARE EQUALITY, (¢09:30) = 0, and no further testing is
done.

IV-O-5

Example - ADD BINARY, V = 1.

(tt mo d-64tt )

Required: To sort data according to some key (part number, account
number,,&c), using standard Sorting Routines, despite the fact that the
following sorting sequence (which is diff.erent from the Processor sorting seque:nee) is required:
Ilspace tf ,

ft_tt,

letters, digits.

This requires one Instruction as part of regimenting the input for sorting:
ADD BINARY (V =1) : Sorting key 1; "UUU ••• un
Sorting key.

--r

Each character of the sorting key is independently transfOrmed into a
pseudo-character in such a way that, when the pseudo-key is sorted, the
items will be arranged in the desired order:

Character

PseudoCharacter

o

~

U

I

)

V

9

)'

v

)
space .....- - - - +

a

)-

>

4
5

-N

)

I

z

)

(

A

.
It

In the Master File, the items will be stored with their keys in pseudocharacters; all Searching, Copying and posting will be performed with
pseudo-keys, and it is only necessary to reverse the transformation,
from pseudo-key back to original key, for output printing.
The transformation is reversed by including one additional Instruction
in the Editing Routine: A field of all tlspaces" is added to the pseudokey, using this variation of ADD BINARY.
More elaborate transformations into pseudo-keys may be performed by
using TEST BIT and COMPLEMENT BINARY, in addition to the umod-64 n
variation of ADD BINARY.. These are illustrated under COMPLEMENT BINARY.

IV-O-6

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

21 3

4

5

6

7

8

A

B

C

0

E

F

G

H

9

&

•

,

@

¢

0

A.

m n

.,

p

SPACE

10

+

J

K

L

M N

0-

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

W

X

Y

Z

d

s

u

V

W'

X

TABLE IV-2:

V

Modification of first word of Instruction by Index Register

S-value
4
2

1

Sum

If S

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables

4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

( ¢ 00)

before operation

p

V

( ¢ 00)

Q

after operation

positive
negative

p

I

1

COMPLEMENT

BINARY

The contents of the A-field, right-justified, are
treated as a 6o-bit binary field.

This field is complemented

by changing all its I-bits into O-bits, and all its O-bits

into I-bits, and is stored from right to left in the C-putaway
field.
If the C-field is longer than the A-field, it will
be filled out to the left with Itx's" (eode 11 1111) ..

OVERFLOW ALARM:

Will not be set under any circumstances

o

INSTRUCTION FO&~T: '
9 g' 7 6 5 4 3· 2 1 0

lop I : A: ~t]i1i!i!i!~i~t!1 :C:

Operation: COMPLE:MENT BINARY (BmC)
Operation Code: ~

I

I I I I IAt AR ~ijtjtiW~ CL CR I
V

M

S

R

,

:·:..:·:·:·:.i..••••••••

t

DEFINITIONS:
OP:

operation code.

M:

auto~onitor

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of tield which is to
be complemented.

AL, AR:

level:

0, 1, 2, 3,.

positions ot left-most and right-most
characters, respectively, of A-field.

C: . base of address in which the complemented
A-field is to be stored.
CL, CR:

V:

positions of lett-most and right-most
characters, respectively, of field
allocated for the complemente
variation designator;
V = 1 specifies COMPLEMENT BINARY

rv-6,-2

0

(V = 1)

DESCRIPl'ION OF:

COMPLEMENT BINARY

This is a right-justified operation.
[A] is transferred, right-justified, to a IO-characterlong working register (Ra).
The contents of Register Ra is then transferred to
another IO-character-Iong working register (Rc).

In the course

of this transfer, all l-bits are replaced by o-b1ts, and all
O-bits are replaced by I-bits.
The contents of Register Rc then replace [OJ, rightjustified.

OVERFLOW ALARM:

Will!2i be set by this Instruction.

rv-6-3

Examples - COMPLEMENT BINARY
Example I - Generate a field of all I-bits (nxxxxxxxx") in F34:92, given
that (007:99) = o.

987 6 543

2

1

0

I~ !gig ib 1:~:~:~:fii!:II:t ~ :~ I
987 6 543 210
I0 1~:~:~:~:;:~:~:J:~:~t::::::t:~:{:~t:~:~t~:m::~:i:il Cell 007 ------:.~ Register Ra

987 6 5 432 1 0

10:0:0:0:0:0:0:0:0:01

17,9,0,2,0.4,6,2,3,01 Cell F34 before
Ix ,X ,x ,X ,X ,X ,X ,X l~~t:11 Cell F34 after ......r - - Register Rc

!x,x,x,x,x,x,x,x,x,xl

Example 2 - The sales records of 5000 salesmen are to be sorted,
so that the salesman with the greatest dollar-amount
of sales shall head the list, and the salesman with
the lowest dollar-amount of sales shall be at the
bottom of the list.
In order to conserve Magnetic Tape storage space for
the file, and also to permit the Sort to proceed most
rapidly, all numeric information in each salesman's
record has been PACKED.
Required, therefore, to transform the sorting key (the
field containing PACKED dollar-amount of sales) so that
normal Sorting Routines will sort the list into reverse
order.
To do this, it is necessary merely to COMPLEMENT BINARY
the packed dollar-amount in each record, then sort.
1ihen the sort has been completed, the dollar-amounts
are re-COMPLEMENTED, and UNPACKED for printing.

rJ-6-4

Example 3.

While the following problem, as such, will not be
encountered often, it probably presents as complex
a sorting transformation as the programmer will ever
be required to perform, "and it is therefore given as
an illustrative example.

Required: '
Using standard Sorting ROlltines, sort a collection of streetaddresses alphabetically by name of street.
The house-numbers on each
street are to be sorted so that by following-the sorted list, a person
,will start at the South end of each North-Sout.h street, and·at the West
end of each East-West street, walk along the Odd-numbered side of the
street the full length (or width) of the city to its Northern (or
Eastern) boundary; then cross the street and walk along the evennumbered side of the street, all the way back to its South (or west) end.
This requires that the house-numbers on any street shall be
sorted in the following sequence:
"lowest" numbers:
next
next
"highestu numbers:

or W odd, in reverse sequence
or E odd, in forward sequence
N or E even, in reverse sequence
S or W even, in forward sequence

S
N

Therefore, the sorted list for North-South streets, for example,
will look like this: '

Start walking\--10999 S - - - - Southern boundary of the city
.North , . /
10997 S
10995 S
• • • S

·.3 s
i ;---- Cross Main Street
• S

-'3' N
• • • N
N

• • •
Cross the
street and ....-_ _ 17999
17998
walk South
17996
•
•

·· ,..

N~___ Northern boundary of the city

N
N
N
N

4 N

~ .~---- Cross Main street
4 S
• • • S

· . •s
10996 s

. 10998 S_ _ __

Southern boundary of t.he city

Iv-6-5

Assume:
Each item has been alreudy ref,i":1Gnted for sorting:
9 8 7 6 5 t 3 210

G97
G9B
G99
lIOO

HOl
H02
5 ••••• 5

represents the street nrune, filled out to the
right with spaces.

nnnnn

represents the 5-dlgit house-number, filled out
to the left with zeros.

·x

represents one of t'he letters N,E, S, ·or W which
has been stored in an otherwise unused position.

Note that, for the MERGE, (G99:90) is the major'key,
and (HOO:90) is the minor key.' N, E, S, or W is not part of the kay..

The codes for the letters representing the four
d1.rect1ons are:
N:
E:
S:
W:.

10
01
11
11

0101
0101
0010
0110

'l~ST BIT !nstructions, coded as
a Jump under the conditions shown:

,A-field

rollo~Ts,

B-fie1d

(H02:99)- v s - "1"

will cause

tJump if

Step 1f

N or E - - - 8 or W,

"w" -vs-(HOO:OO)-- Even
(HOO:OO) - VB "1tt
- , Odd

Odd
Even

'rhere nre many ,~ays of performing'the desired sorting
transformation by transforming the house-numbers.
The most
straight-forward set of transformations is:

·
·

S & W' odd
N & E odd
N&E even:

S &W'even:

Zone 0, backwa.rd:
Zone 1, forward
Zone -, backward:
" forward :
Zone 3,

.

Add
Add
Add
Add

1IiH''***U,
" _____ It.

"_____ ",

Canp1ement.
Canp1ement

"-rriHH.~1I •

It must be understood that w~erever, in this example, the
o,peration "Addu is:mentioned, it is to be understo09 as ADD DItlAHY (V =·1),

Iv-6-6

The following

Con~tants

are required:

987 6 543 210

I:I~ 1:; ~:~:~ : : : ;:!: ;: : :;: : :;: : :;i£~1

L46
L47

(In actually coding this problem, the "w" and "l"
would be stored in irrelevant chnracter-positions
of the Instructions.
However, for s~lplicity,
they are shown separately here.)
TEST BIT:

(H02:99) vs (147:88)
N&E
ADD BIN (V =1) :

ADD BIN (V=l):

(HOO:40)

L

(L46:95)

~HOO:40

(HOO:40)

L

(L46:40)

~HOO:40

TEST· BIT:
(147:99) vs (HOO:OO)

TEST BIT:
(HOO:OO) va (L47:8S)

COMPLEMENT BIN:
(HOO:40)~ HOO:40

CCMPARE EQUALITY:
.(HOO:OO) va (HOO:OO)
--Unconditional Jump.

COUNT: for next item.

Standa.rd
Sorting Hout.ine
iieverse
the Transfonmations

The program to reverse the transformations will be
very similar to that shown above.
The entire process of performing· the transformations,
and later reversing them, increases· the total
sorting time by 10 minutes per 100,000 items.

Language Code

TABLE IV-1:
NUMERIC
VALUE OF
ZONE BITS

. ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

, 00
01

1

2

3

4

5

6- 7

8

A

B

C

D

E

F

G

H

9

&

•

,

A

m n

8

p

@

¢

0

SPACE

10

+

J

K

L

M N

6'

P

Q

R %

£

$

(

)

I

11

* #

S

T

U

W

X

Y

Z

s

u

V

W

x.

V

d

,

TABLE IV-2:

-Modification of first word of Instruction by Index Register

S-value
4

2
1
Sum

If S

A syllable modified
B syllable modified
J syllable modified
Detennines combination
of syllables modified.

S-values of syllables
4

2

1

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(;00) before operation

p

v

Q

(;00) after operation

no branch

branch

positive

p

J

negative

p

J

TEST

BIT

This Instruction is used to test for the presence or
absence of any conditions which have been expressed and recorded
in binary coding.
Thus, categories such as payment status of 4ceounts
Receivable; availability of machines for loading; ability of
machines to perform desired operations; geographic location,
eredit status, classification, &c of customers -- may all be
selected singly or in combination with the TESTEIT

IV-A-l

Instruc~ion.

INSTRUCTION FO&V~T:
9 8 7 6 543 2 1 0

IO~ :A: I :B: I

>:

Operation:

Operation Code:

I

IV IMiS IRIAL, ARt BLI BRI~IfII~In

DEFINITIONS:
op:

0, 1, 2, 3.

auto-monitor level:

s:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index register.

A:

base of address of first operand.

B:
Bl,

operation code.

M:

AL, AR:

BR:

TEST BIT (TBIT)

locations of left-most and right~ost characters,
respectively, of first operand.
base of address of second operand.
locations of left-most and right-most characters,
, ~espectively, of second operand.

J:

base of address of next instruction if
tested condition is met.

V:

variation designator;
, only the sign of V is relevant.

I

IV-A-2

A

DESCRIPTION OF:

TEST BIT

)

This is a right-justified operation.
[A] is transferred, right-justified, to a lO-character-long
working register (Ra.); [B] is transferred, right-justified to another
lO-characte~long working register (Rb).
The resp~ctive contents of registers Ra and Rb are compared,
bit-position by bit-position. The comparison may be regarded in either
of two ways, which are logically equivalent:
IThe'instruction whose address is designated byJ will be
executed next, if the result of the comparison is one of the following:

!!l l-bit

a)

Wherever there is a l-bit in Rb, there is a l-bit
in the corresponding bit-position in Ra.

b)

Rb contains all O-bi ts •

The next instruction in sequence will"be executed next, if for

in Rb there is a 6-bit in the 'corresponding bit~position of' Ra.

IIThe instruction whose address is designated by J will be
executed next, if the result of the comparison 'is one of the ,following:
a)

Wherever there is a O-bit in Ra, there is a O-bit
in the corresponding bit-paotion in Rb.

b)

Ra contains all l-bits.

The next instru.etion in sequence will be executed next, if for
any O-bit in Ra there is a I-bit in the corresponding bit-position of' Rbo

That~:

JUMP IF:
I - [AJ -contains all the l-bits of [BJ.
II - [B] contains all the O-bits of [AJ.

Language Code

TABLE IV-I:

NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01;,

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

•

,

n

8

p

SPACE &

@

¢

0

A-

m

10

+

J

K

L

M N

0-

P

Q\

R

%

£

$

(

)

/

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

v

W'

x

TABLE IV-2:
S-value
4
2
1
Sum

If S

Modification of first word of Instruction by Index Register

S-values of syllables

A syllable modified
B syllable modified
J syllable modified
Detennines combination
of syllables modified.

4

1

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

Q

(¢OO) after operation

V

no branch

positive

p

negative

p

branch

p

,

J
J

COMPARE

NUMERIC

This Instruction regards the contents of the A- and
B-fields as numbers,

~ach

with algebraic sign.

If the right-justified A-field contains a greater
number than the right-justified B-field, then the next Instruction to be executed will be selected from a ttbranch tt address
spec~fied

in the Instruction; otherwise, the next Instruction

in normal sequence will be executed.
It will be recalled, of course, that any positive
number is greater than any negative number; and that, of two
negative numbers, the one with the greater magnitude is the
smaller number

0

IV-B-l

INSTRUCTION FORMAT:
987

6 543 2 1 0

lopl : A:

IV IMis

Operation:

I :B: I· :J:

Opera tion Code: B

1
IRIAL, ARt BL, BRmI~iI~t~irl

DEFINITIONS:
Opt

operation code

0

0, 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of first operand.

AL, AR:

B:
BL, BR;

COMPARE NUMERIC (ON)

locations of left-most and right-most characters,
respectively of first operand.
base of address of second operand.
locations of lett-most and right-most characters,
respectively, ot second operand.

J:

base of addr~ss ot next instruction if [A] > [BJ,
numerically.

V:

variation designator;
only the sign of V is relevant.

DESCRIPTION OF:

COMPARE NUMERIC

This is a right-justified operation.

tAJ is transferred, right-justified, to a IO-character-Iong
working register (Ra). [B] is transferred, right-justified to another
lO-character-Iong working register (Rb). In the course of both these
transfers, the zone-bits of all characters transferred are replaced by
O-bits.
The algebraic signs of [A] and [B] (as indicated by the
respective sign-bits of the ch~racters in positions At and Bt) are
examined, and four cases are recognized:
1If both signs are positive, the contents of registers Ra and
Rb are compared. If (Ra) is a greater number than (Rb), then the next
Instruction to be executed will be selected from the address specified
by J. If (Ra) is less than or equal to (Rb), the next InstrUction in
sequence will be executed.
\

.

2If both signs are negative, the contents of registers Ra and
Rb are compared. If (Ra) is a smaller number than (Rb),. then the next
Instruction to be executed will be selected from the address specified
by J. If (Ra) is greater than or equal to (Rb), the next Instruction
in sequence will be executed.

3-

If the sign of [A] is positive, and the sign of [BJ is negative,
the next Instruction to be executed will be selected from the address
specified by J.

4If the sign of [A] is negative, and the sign of [B] is positive,
the next Instruction in sequence will be executed.

NOTE:

Positive

~

will always be a greater number, for the purpose

of this Instr.uction, than negative

~.

IV-B-3

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
@

.¢

SPACE

&

•

,

H

[]

A-

m

n

8,

p

J

0

00
, 01

.1

2

3

'4

5·

6

1

8

A

B

C

D

E

F

G

9

10

+

J

K

L

M N

6'

P

Q

R %

£

$

(

)

/

11

*

#

S

T

U

W

X

Y

Z

s

u

v

w

x

V

d

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2
I
Sum

If S

S-values of syllables

A syllable modified
B syllable modified
J syllable modified
Determines combination
of syllables modified.

4

2

I

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

( ¢ 00)

Interchange of syllables in ¢OO

before operation

p

Q

(¢OO) after operation
V

no branch

branch

positive

J

negative

J

COMPARE

ALPHA-NUMERIC

This Instruction.regards the contents of the A- and
B-fields as alpha-numeric information.
If the right-justified contents of the A-field follows
the
II

right-j~stified

contents of the B-field, according to the

sorting sequence" shown in Table IV-I, then the next Instruction

to be executed will be selected from a "branch" address specified
in the Instruction; otherwise, the next Instruction in normal
sequence will be executed.
If positive numbers have been PACKED, the result of
COMPARE ALPHA-NUMERIC will be the same as if .the information
were in unpacked form.

INSTRUCTION FORMAT:
9·8 7 6 5 4 3 2 1 0

lo~ :A:

I :B: I

>:

Operation: COMPARE ALPHA-NUMERIC (GA)
Operation Code:

I

IV I Mis IRIAL, AR! Bl, BRlmjf~;@~j~tj~l

DEFINITIONS:
Qp:

0, 1, 2, 3.

M:

auto-monitor level:

s:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of first operand.

AL, AR:
B:
EL,

operation code.

locations of left-most and right-most characters,
respectively,. of first operand.
base of address of second operand.

BR:

locations of left-most and right-most characters,
respectively, of second operand.

J:

base of address pf next Instruction if [A]
follows [B]; in the Processor's sorting sequence.
i.e.- if [AJ~[B], when both are regarded as
posi tive binary numbers.

V:

variation designator;
only the sign of V is relevant.

IV-C-2

C

DESCRIPTION OF:

COMPARE ALPHA-NUMERIC

This is a right-justified operation.
[A] is trans,ferred, right-justified, to a 'IO-character-Iong
working register (Ra).

[B] is transferred, right-justified, to another

10-character-long working register (Rb).
·The contents of registers Ra and Rb are regarded as positive,
60-bit-long binar.y numbers, and are compared.
If (Ra) is a greater binary number than (Rb), then the next
Instruction to be executed will be selected from the address specified
by J; otherwise, the next Instruction in sequence will be executed next.
Since the tlsorting sequence l1 of the 64 characters which are
significant to the Processor (as shown in Table IV-I) is 'the same as
the numeric sequence of their binary configurations, the comparison has
the effect of determining whether or not (Ra) follows (Rb) according to
the

alpha~numeric

sorting sequence of the Processor o

If the COMPARE ALPHA-NUMERIC Instruction is applied to signed
numeric quantities, a negative number will always follow a positive
number in the sorting sequence.

An important consequence of the correspondence between the
binary sequence and the alpha-numeric sorting sequence, arises in connection with the PACK Instruction (Code d), applied to positive numeric
information.

After this information has been PACKed, the relative

significance of the binar.y bits comprising that infonnation is unchanged,
and COMPARE ALPHA-NUMERIC will always give precisely the same result as
if the information had not been packed.

IV-C-3

TABLE IV-1:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 '1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

9

&

•

,

A

m n

8

p

@

¢

H

[J

SPACE

10

+

J

K

L

M N

6'

P

Q

R %

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

s

u

y

W'

X

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2
1
Sum

d

A syllable modified
B syllable modified
J syllable modified
Detennines combination
of syllables modified.

S-values of syllables

I I

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

( til 00)

before operation
p

v
positive
negative

Interchange of syllables in ¢OO

Q

(;00) after operation

no branch

branch

1

COMPARE

EQUALITY

This Instruction right-justifies, and compares, the
contents of the A- and B-fields.
If the contents of both fields are the same, then
the next Instruction to be executed will be selected from a
"branch't address specified in the Instruction; otherwise, the
next Instruction in the normal sequence will be executed o

lV-D-l

Operation: COMP~llE EQUALITY (CE)

INSTRUCTION FORMAT:

>:
I :s: ( >:
I I I I AR IBl!
987

6

543

210

lopl

V Mis

R A L,

Operation Code:

I

BRI!t!I~fttl

DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates syllables for modification
by index-register oaR.

R:

designates OOR as index registere

A:

base of address of first operand.

Al, AR:

B:
BL, BR:

locations of left-most and right~ost characters,
respectively, of first operand.
base ot address of second operand.
locations of left-most and right-most characters,
respectively, of second operand.

J:

base of address of next Instruction if
[A] = [B], in every bit-position.

V:

variation designator;
only the sign of V is relevant.

~:V-D-2

D

DESCRIPTION OF:

COMPARE EQUALITY

This is a right-justified operation.

[Aj is transferred, right-justified, to a'lO-character-Iong
working register (Ra).

£BJ is transferred, right-justified, to another

lo-character-Iong working register (Rb).
The r-espective contents of,registers Ra and Rb are compared,
bit-position by

bit~pOsitiono

If the contents oftha two registers are

identi~al

of the 60-bit positions, then the next Instruction to be

in each

ex~cuted

will

be selected from the address specified by J; otherwise, the next Instruction in sequence will be executed' next.

IV-D-3

Language Code

TABLE IV-1:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

9

•

&

,

@

¢

H

[]

A

m n

.,

p

SPACE

10

+

J

K

L

M N

fr

P

Q

R %

£

$

(

)

I

11

*

#

S

.T

U

W

X

Y

Z

s

u

V

W'

X

1
Sum

If S

A syllable modified
T syllable modified
J syllable modified
Determines combination
of syllables modified.

S-values of syllables

I I

4

2

= 0, no Index Register is used, and.R is irrelevant.

TABLE IV-3:

(¢OO)

befo~

Interchange of syllables in ¢OO

operation
p

v

d

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2

V

Q

(¢OO) after operation
branch

no branch

positive

p

negative

p

Q.,$,21

1

COUNT

This Instruction combines the functions or several
standard Processor operations within a single operation, and
operates on the contents or any one of the 10 memory locations
000 through 009.

The Instruction uses MODIFY ADD to augment a selected
field of one of these 10 cells, using as an augmenter the
right-justified contents of the A-field named in the Instruction.

Then a selected 3-character field of the augmented cell

is compared with a 3-character Tester, whiehis part of the
Instruction itself.

The tested field within the augmented cell

need have no relationship to the augmented field within:that
cell.
If the two 3-character fields being compared DO

!Q!

contain the same address-type number, then the next Instruction
to be executed will be selected from a "branehrt address specitied in the InstrUction; i f the two 3-eharacter fields

~

con-

tain the same address-type number, then the next Instruction in
the normal sequence will be executed.

OVERFLOW ALARM:

Will not be set under any circumstances.

IV-E-l

INSTRUCTION FORMAT:

Operation: COUNT (eNT)
I

9 8

7

6

5 4 3

2. 1

>: >·:1 >:

0

Opera tion Code: E

Iopl
I.
I
IV IMis IRI ~Lt Aal~~fd IRIITRI I I
DEFINITIONS: .

OP:

AL~

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates syllables for modification
by index-registe~OOR.

R:

designates OOR as index-register.

A:

base-of address of quantity by which the designated
field of cell 001 is to be augmented.
.

AR:

locations of left~ost and right-most characters,
respectively, of the augmenter.

I: . designates 001 as the cell whose contents are.
to be augmented.
IR:
T:
ITR:

location of right~ostcharacter of the field of
OOI which is to be augmented.
as modified by (OOR), this is the Tester.
location of right-most character
tested field of cell OOI.

or

3-character

J:

base of address of next Instruction if T, as modified
by (OOR), and the tested field of 001 DO ~ contain
the same address-type number.

V:

variation designator;
oDly the sign of V is relevant

0

DESCRIPl'ION OF:

COUNT

This is a right-justified operation, consisting of two
separate steps:

e

1) MODIFY ADD~ (OOI:ILIR)
['AJ --+ OOIgILIR.. If. is not
specified by the programmer, since the Processor always adds to the
9-IR field of (OOR).
,-

2) COMPARE: (OOI:ITL ITR) vs T. ITt is not specified by the
programmer, since the Processor always makes ITL = 1m + 2, and compares
a 3-character field of (001) ..
[A] is transferred, right-justified, to a 12-character-1ong
working register (Ra) ..
(001), from position 9 through position'IR, ioe o "" [OOI], is
transferred, right-justified, to another 12-character-long working
register (Rb) ..
In the course of both these transfers, the zone-bits of the
right-most two characters in each group of three are replaced ;,by O-bits ..
",The contents of registers Ra and Rb are then added, using the
special kind of addition described under MODIFY ADD, and the result I;stored in a third 12-character-Iong working register (Re)
0

The contents of Re then replace [OOIJ, right-justified

0

Next, (001), from position 9 through position ITR, is transferred:, right-justified, to a l-character-1ong working register (Rd).
The contents of the l-eharacter field in the first word of the Instruetiott (the field called T) are modified (if appropriate) by (OOR), and
transfierred, right-justified, to another l-cha:racter-Iong working
register (Re). In the course of both these transfers, the zone-bits of
the right-most two characters are replaced by O-bits ..
If, at this point, the contents of Rd and Re are identical,
the next Instruction in the normal sequence' wi~l"be executed next.. If
the contents of Rd and Re are not identical, the Instruction whose address is designated by J will be executed nexto

OVERFLOW ALARM:

Will not be set by this Instruction.

IV-E-"

Examples- COUNT
Exa~n1e

1 - Double the quantity stored in field 86 or the 2nd word

of each of ten 3-word items. Store the results in field
63 of each of 10 words.

THREE-WORD ITEMS

INSTRUCTIONS

.9 8 7 6 5 '4 3 2 1 0

· 700

701
702
703
704
705
706
707
708
709
710
711

273
274 .......--a.-...a....;..I....-..........--..,;::...:...-....

11 Select
Pertor.m the addition.
.
the operands relative to 002.

275 1117 0 117 0 112 0
2760 017(2 8 618616 3

I

277 IE ~ 5 0 ~ 1 0 1~·7 51
278. O. 01010 ~ Of!iLOIO I~.,

712
713
714

715
716

717
718

719
720
721

722
723
724
725
726
727
728
729

RESULTS ·OF ADDITIONS

987

6 543 2 1 0

201
202
203
'204
~~~ '205

·206
'207

208
209
210

IV-E-4

Augment (oo:!) and test for end.

Example 2 - Same as Example 1, except:
Perform the additions, starting at the botton of the list
of items.

Store the sums, starting at the top of the

list of results.

Use a different method of clearing (OO2)~

INSTRUCTIONS

273
274

1112
7 412 7 410 0 21
o 01010 8 sis Sl9 0

Clear location 002.

275
276

1117 2 817 2 812 0lj
~ 01712 8 618616

Perform the addition.
Select the operands relative to 002.

277
27S

1Eo120 1010
5 0 IZ8 07 N:~
0120 1612
7 51

Augment (002) and test for end.

250 bo.~f Z 9 71z 9 710 JUJ Augmenter

RESULTS OF ADDITIONS

9 876 543 2 1 0
201
202

203

204
.205

206
207

208

209
210

It should be observed that
the

!

and

!!

8y llables, and

IV-E-5

(002)
It

is being COUNTED "backward" in

forward II in the Q. -syllable.

Language Code

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

9

,

•

&

@

¢

[]

A-

m n

.,

p

SPACE

10

+

J

K

L

M N

f)'

P

Q

R

%

£

$

(

)

/

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

v

W'

x

TABLE IV-2:
S-value
4
I
Sum

If S

Modification of first word of Instruction by Index Register

N syllable modified

S-values of syllables

I I

J syllable modified
Detennines combination
of syllables modified.

4

2

I

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interf;hange of syllables in ¢OO

(¢OO) before operation
p

v

Q

(¢OO) after operation
no branch

branch

positive

p

J

negative

p

J

TES!
This Instruction really embodies four different Instructions" '
1) ~ Overflow
If any Instruction sets the Overflow Alarm, . the
Processor will irmnediately halt unless the next Instruction is 'fEST
Overflow; in that case, the Overflow Alarm will be turned oft, and the
next Instruction to be executed will be selected from a ubl"anch't a.ddress"
0

If the programmer anticipates that Overflow might
occur; this feature permits him to provide for this exceptional case automatically, without requiring operator intervention during processing"
2) TEST Option Switoh" This feature provides convenient facilities for
permitting operator intervention during proces~ingo If the de,signated one
of ten Console Option Switches is ON, the next Instruction to be e~ecuted
will be selected from a "branch" address" This feature is partic'Q.larly
useful for interrogating the files, or in permitting routine processing to
be interrupted for high-priority work o
3) TEST Reader "Code.
The High-Speed Paper-Tape Reader can read any
three codes, with the particular code used being selected by a manual
switch on the Console This facility permits the Reader to be compatible
with a wide variety of tape-punching deviceso
0

This variation of TEST assures that the operator
has set the STET Code-Selection Switch properly, and also provides important audit and protection facilities o
Accounting Machines ~ recording monetary transa©can punch a code incompatible-with, for example 1 the code punched,
by typewriters recording non-monetary transactionso Therefore, any attempt to simulate a monetary transaction with an unauthorized devi~e can
be detected immediately ..

tions~

4) TEST Punckr.Code.,.'..
The High-Speed Paper-Tape Punch can punch any
two codes, with the particular code used being selected by a manual
switch on the Console .. This facility permits the Punch to produce' papertape which is compatible with tape-to...;card _converters)! typewriters~ tele<=>
graphic transmitters, &00

This variation of TEST'assures that the operator
has set the Punch Code-Selection Switch properly, for the operation to be
perf'onned"

INSTRUCTIO~

FORMAT:

Operation:

9 8 7 6 5' 4 32 1 0

10 p ~::jmr~l:j:tI:j:::::;:j:;:~:~:t:fm:itmj:l . :
~ ~~ l~

TEST OVERFLOW

(TEST~6)

Operation Code: F (V= 0)

J: I

t

~ lH II l~ ~ ~ ~ ~ II ill

DEFINITIONS:
Op:

operation codee
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates'syllables for modification
by index-register OOR.

R:

designates, OaR as index register.

J:

base of address of next instruction if
Overflow Alarm had been set by the
preceding instruction.

V:

Variation designator;
V = 0 specifies TEST Overflow.

Operation: TEST OPTION SWITCH (TES~)

INSTRUCTION FORMAT:
987 6 543 210

I pl::::::t~ l:m: :~:i;: : : :~:~ili:Ir: 1 : J:
0

If the Overflow Alarm
had been set, TEST
Overflow turns it off.

Opera tion Code: F

I

(V = 2)

(V I Mis I RIlj~@jljl[~jj\lj[j~l~1jfljj~jjjljjI~ljljjjlj~\l\jjjljl~J

DEFINITIONS:
Op:
III

operation code"

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OORo

R:

designates OaR as index-register

N:

as modified by (OOR) , specifies the
number of the Console Option Switch
to be tested. Switches are numbered
from G through 9.

Each Option Switch shows:
Yellow light when ON.
Blue light when OFF.

J:

base of address of next instruction if
the designated Option Switch is "GNu.

V:

variation designatorr
V = 2 specifies TEST Switche

The comparison is made
against all four
numeric bits of N.

0, 1, 2,

3~

8

rl-F-2

Operation: T~STREADER CODE (TEST:R)

INSTRUCTION FOID{AT:
9 e 7 6 543 2 1 0

Opera tion Code:

10 p I:r: : :;~: : ~ :~: l N !~: :~: t;: : i:i: : i:\m: :1 : J: I
IV I11 ISiR Itlt~ljlmr~~~~~~Iji~it~itmi!i~itft!~-f

F (V

=4)

DEFINITIONS:
Op:

operation code.
0,,1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index register.

N.:

as modified by (oaR), specifies the setting
(0, 1, 2) of the Code-Selection Switch for
the High-Speed Paper-Tape Reader.

. J:

V:

base of address of next instruction, if the
switch-setting is the same as specified by N.
variation designator;
V = 4 specifies TEST Reader'aode.

INSTRUCTION FORMAT:
9 e 7 6 54 3 2 1 0

lop tr:i:i:~:!ttl N 1{!~: ! i ! !i! tili!}~:! :1 :

IV IMis

·1

The comparison is made
against all four
numeric bits of N.

Operation: TEST PUNCH :CODE;. (TEST:P)
Opera tion Code:

J: I

F (V = 6)

R fIfii!!il!i!i!!iitimit!i{i!ii!!i!Jf!t!!!!W!!i!!J

DEFINJ;TIONS:
OP:

operation code.

0, 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

N:

as modified by (OOR), specifies the setting
(0, 1) of the Code-Selection Switch for the
High-Speed Paper-Tape Punch.

J:

base of address of next instruction, if the
switch-setting k the same as specified by N ..

V:

variation designator;
V = 6 specifies 'JEST ]?uneh' Cbd..~:~"

IV-F-3

The comparison is made
against all four
numeric bits of N.

TABLE IV-1:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

•

&

,

@

¢

[]

4.

m n

.,

p

SPACE

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2
1

Sum

A syllable modified
B syllable modified
C syllable modified
Detennines combination
of syllables modified.

S-values of syllables
4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

v

Q

(¢OO) after operation

positive
negative

p

I

1

COMBINE

The contents of the A- and B-fields are combined
into a single field for the C-putawayo
The B-field is put away first, from right to left;
\

then the A-field is put away, from right to left, immediately
to the left of the B-field putaway.
If the C-field is shorter than the combined A- and
B-fields, characters will be lost from the left end of the
A-field

0

If the C-field is shorter than the B-field alone,

then the entire A-field, and characters from the left end of
the B-field, will be lost

o

If the C-field is longer than the combined A- and
B-fields, zero$ will be added at the left to fill out the
putaway field

o

OVERFLOW ALARM:

Will not be set under any circumstaneeso

IV-H-l

INSTRUCTION FORV~T:
9 S 7 6 543 2 1 0

lop I :

I

V

Opera tion:

< I >: I :0: I

1M'S IR IAL, ARt BL, BRI CL

I

CR

Opera tion Code: H

I

DEFINITIONS:
op:

operation code.
0, 1, 2, 3.

M:

auto~monitor

s:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of left-hand field.

AL, AR:

B:

level:

locations of left-most and right-most
characters of left-hand field.
base of address of right-hand field.

Bl, BR:

locations of left-most and right-most
characters of right-hand field.

C:

base of address into which the A- and
B-fieldswill be combined.

CL, CR:

locations of left-most and right-most
characters of the combined field e

V:

COMBINE (C0MB) ,

variation designator;
only the sign of V is relevant.

IV-H-2

DESCRIPTION OF:

COMBINE

This is a right-justified operation.

'CBJ is transferred, right-justified, to a 20-charaeterlong working register (Re).

Then [AJ is transferred to Re, right-

justified against the left-most character from

[BJ.

In the course

of these transfers, all zone-bits are preserved, and the information is unchanged.
The contents of He then repla'ee [Cl, right-justified.

OVERFLOW ALARM:

Will

~

be set.

IV-H-3

99S:7!& 5 4 3 2 1 0
9 ~'lI:i:'~~~'~'5""~'1
r~:~:J(;,:~:!O::;::~:.

342 :

t'~':"~':'=*:'r2'
~:~:I::~:i::*~
,'W"

005:

f:~:r~:;:mO ,0 ,2 ,W, 9 ,F ,6,71

Example 1

a.fter

Example 2

a.fter

E'xample 3

IV-H-4

TABLE IV-I:

ZONE
BITS

Language Code
NUMERIC BITS

NUMERIC
VALUE OF
ZONE BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

9

&

•

,

@

¢

D

It.

m n

.,

p

SPACE

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2
I

Sum

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables

I I

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation
p

v

Q

(¢OO) after operation

positive
negative

p

I

I

1

THREE INSTRUCTiONS, DISTRIBUTE, SUPPRESS, EDITp ARE GENERAllY SIMILAR. BASICAllY p
EACH OF THEM COPU,ES THE CONTENTS OF THE A-FIElD iNTO THE B- AND C-FiElDS o THE C... PUTAWAY IS'MADE
FIRST, FROM RIGHT TO lEFT; THEN THE B-PUTAWAY IS MADE, FROM lEFT TO RIGHT. EACH IN~TRUCTION HAS
TWO VARIATIONS, AND EACH VARIATiON CHANGES THE CONTENTS OF THE A-FIELD IN A DIFFERENT MANNER
BEFORE MAKING THE' PUTAWAYS.

DISTRIBUTE

UNormal tl variation~ The contents of the A-field are unchanged
in the putaways. If either putaway field is shorter than the A-field:;
characters will be lost in that putaway; if either putaway fi'eld is longer
than the A-field, zeros will be added to fill out that putaway field
o

~JSign

Split-Of'ftt variation: ,'The sj;gn)of:)the

A~f'ield'

('designated
by the 5th bit in the left-most character) is split off, 'and appears in
the putaways as a separate character; a positive sign'appears asa "space"
character, while a negative sign appears as a u .....u character a immediately
to the left of the character from which it was split off. The zone-bits
of all the original characters from the A-field are re'placed by O-bi ts in
the putaways, leaving only the numeric bits in the B- and C-fields
0

The putaways~ therefore, are each one character longer than the
A-field If the C-field is longer than this, "space" characters will be
added to the left of the sign character; if it is the same length as th~
A"""field, the sign character is lost (once split off:; t~e sign is never re=
combined with the left-most character); and if the C-field is shorter than
the A-field, other characters will be lost from the left end of the field o
If the B-field is longer than the putaway~ zeros will be added at the
right end of the field; if it is too short for the full putaway, characters
will be lost from the right end of the field
0

o

OVERFLOW

ALARM~

Will not beset

by ,either variationo

INSTRUCTION FOru1AT:

<

987

6

543

Operation: DISTRIBUTE

210

Operation Code: J.

lopl : I: B: Ie: : I
Iv IMls IR IAL,AR\BL,BRjCL,CRI
DEFINITIONS: .
OP:

operation code.
0,1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A:

base of address of word containing the field
whose contents are to be distributed.

AL, AR:
B:
BL, BR:
C:

locations of left-most and right-most characters,
respectively, of the A-field.
base of address of location into which the
distributed field is to be placed, left-justified.
locations of left-most and right-most characters,
respectively, of the B-putaway field.
base of address of location into which the
distributed field is to be placed,right-justified.

CL, CR:' locations of left-most and right-most characters,
respectively, of the C-putaway field.

V:

variation designator:
V

Specifies

Abbrevia.tion

0

Normal

DIST

1

Sign Split-Off

DISTgS

IV-J-2

(DIST)

.

"

DESCRIPTION

v

= o~

OF~

DISTRIBUTE

LA] is transferred to alO-character-long working register (Re),

right-,1ustified, and also to another 10-charaeter-long working register
(Rb)~

left-justified

In the course of these transfers, zone-bits are

0

preserved, and the information is unchangedo
The contents of Rc replace [OJ, right-justified; then the contents of Rb replace [B], left-justified.

v

=

1:

This is the "Sign Split-Offrt variation

0

An 1!~character-long working register (Re)~ is filled with
nspace lf characters, and then

[AJ

[A]

is transferred to Rc, right-justified"

is also transferred to another previousiy.cleared, ll~eharlcter-long
(~,

worldng register (Rb), lett-justified at ~haracter-position 90
In ,the course of both these transfers, the zone-bits of all
characters transferred are replaced by O-bits$
If the sign-bit of the character in position At is a I-bit
(minus sign), then a nminus rt eharact,er (code 01 0000) is inserted into Rb
at character-position 10, and into Rc at the character position immediately
to the left of the character transferred from position

Alo

If the sign-bit or the character in position At is a O-bit (plus
sign), then a il spa celt character (code 00 1100) is inserted into Rb at
character-position 10

9

(Note that the corresponding character-position in

Re already contains a f1'space rt charactero)
The contents ~f Rc replace

[OJ, right-justified; then the con-

tents of Rb replace [B], left-justified

OVERFLOW ALARM,:

Will

~

0

be set by either variationo

lV-J ....3

DISTINCTIONS
DISTRIBUTE, SUPPRESS, EDIT

[AJ

Instruction

v (

C-Putaway )

B-Putaway
)

00465

-00009

DISTRIBUTE

o

10,0,4,6,5,0,0,0,0,01

10,0,0,0,0,0,0,4.6.51

DISTRIBUTE

1

ISPID IQ I~ 16,2 1 0 10 ,0.01

ISP.SP.sp.SP,SP, OJ °.4.6,51

Is~s~~.6,~.0.0.0.0,01

ISP.Sp,sp,SP.SP.sp,sp.4.6,51

SUPPRESS

°

SUPPRESS

1

'!sp,sp.sp.4.6, 5.0 .0 .0.01

Isp.sp.Sp.SP.SPlsP.sP ,4.6,51

EDIT

0

Isp, sp, 4 , 6 , 5 ,

°,°,0 ,°.°I

10.0.0.0.0,0,0,4.6.5\

EDIT

1

1*.*.~,6.2.0iOI0.0101

10,0.0,0.0,0,0.4,6.51

DISTRIBUTE

0

1-.0,0.010121010.0,01

10,0 0.0,-.0,0.0,0 191

DISTRIBUTE

1

1-.0.0 .0.0.0.9,0,0.01

jsp,sp,sP.-.o.o ,0.0.0.91

SUPPRESS

0

1- ,sP,sp.sp.sp.9 .0 .0 .0 .0 I

SUPPRESS

1

1-.sP.sP,sP.sP.sP.9 .0 .0 .01

ISf> • SP,SP ,- ISP'SPjSP ,SP.SP. 91

EDIT

0 '1-,sP.sP,sP,sP I 2,0,0 10101

10,0.0.0.-.0,0.0.0.91

EDIT

1

10.0.0.0.0,0.0.0.0 191

1*.*.*.*.*.9.0,0,0,01

~ Sets Overflow Alarm

IV-J-4

1

A

Instruction

v

(B-putaway

c-putaway )
(

G26A9

0 IG,2,6,A,9,O,O,o,o,ol

10.0,0.0, O. G, 2.

DISTRIBUTE

1 1-,7,2 ,6,1,9,0,0,0,01

ISp,SP.Sp,sP.-,7i 2,6.1,21

SUPPRESS

0 IG.2.6,A.2.010.0.0,01

Isp,sP ,SP ,SP,SP, G,' 2.6, A, 91

SUPPRESS

1 1-.7,2 .6,1,9.0,0.0,01

Isp,sP,SP.SP, -.7,2,6.1.91

EDIT

° IG.2.6.A.9.010.0.0.01

10.0.O,O.0.G,2.6.A.9\

EDIT_______ · 1 [7,2.6 .1.9,0.0,0.0,0 I

10.0,0,0,0,7.2.6.1.91

~

0

6, A. 91

DISTRIBUTE

Sets Overflow Alarm

DISTRIBUTE

° 10,0.0.0.0.0.0,0.0 01

10,0.0,0.0.0.0.0.0.01

DISTRIBUTE

1 1~,o.o,O,O.OjO,O,O,ol

Isp, sP,sP,sP,sP.spjsP,sp .SP ,

SUPPRESS

0 Isp ,sP ,SP,SP,SP,Sp,SP ,SP ,sp,sp\

Isp, SP ,SP ,SP ,SP! SP, SP ,SP ,SP ,spi

SUPPRESS

1

1

Isp ISP .SP.SP.SP.SP.SP .SP .sPIS?1 .

°I

IsPISp ISP .SP.SP jSP .SP .sP.sp S~
I

~

EDIT

0

ISP,SP.SP,SP,SP .SP,SP ,S? ,SP,spl

10.0.0,0.0,0,0.0,0,01

EDIT

1

I~- ~~ e.~- '~*' ,~*' • ~(- ->.*" ->.~

10,0.0.0.0,0,0,0.0,01

t

IV-J-5

I

,

-r.- «->.{-I

e

"Nonnal" DISTRIBUTE is an extremely versatile' Instru~tion for performing
logical operations.
The fol101'ring examples illustrate some of the
techniques to ,·;rhich it lends itself.
Example 1.

Clear

t1'10

fields of an Index Register.

372

Rb

Ro

0 0 00 0 0 0 0 0 0

9876543210

003 Before

Examnle 2.

10:A 7 6:0

Clear

t\,TO

5 9;P 6 31

Index Registers.

B86

B87

B8?

Rb

Ro

987 6 5'4 3 2 10

003 Before 10 B 6 6 0 1 9 3 4 5 I

I

003 After

[0 0 0 0 0 0 0 0 0

§J

D/-J-6

006 Be! ore

006 After

000 0 0 0 000 0

9876543210
6 2 1 0 5 2 8 7

IG 7

00 0 0 0 0 0000

I

"ITormalll DISTHIBVTZ
EX8,mple 3,.

Plll.nt a Constant in the A and C fields of OOh.
Clear the B field of OOL...

Rb

Re
9$765l~3210

004 Before U?!A 3 9,0 5 9;P 631

OOh After

Example 4.

Plant one Constant from 657:SB in 257:77 and
Constant from 657:23 in OO~:86.

~~other

657

Rb

Re
9876543210

0000674A31

9876543 210
005 Before [71 B B 4! 6 2 9 il- 4 B I

257 Before [2 2;9:7 6 2 9 1 ~

005 After

IV-J-7

[

;;j

"Normalll DI3TRIBUTE

Example 5.

Plant a Constant from 800: 52 in 607 :30.
Jump to Instruction stored in Cell 300, and set return link.

499

500

800

Rb

Re
9876543210
0:7 6
9]

. ¢OO Before 10 : 0

°

2:41
e

2

¢OO After
execution, but before

607 After

-V interchange

I:qJPJ~n:o;15 0 1: 3 0
interchange

¢OO After

-v

9876543210'
607 Before ,0 6 5 2 T 4;8 X 2 91

OJ

"I'JorlTh'll" DISTRIBUTE
Example 6a.

Three Constants (X, Y, Z) are stored in Cell sao.
Plant Y in the A and C fields, and Z in the B field, of Cell 300.

800

Rb
9S765l~3210

300 Before

10!G

4

BIR

1 6;O~

300 After

Example 6b.

The same three Constants (X, Y, Z) are stored in Cell 800.
Plant Xin the A and B fields, and Z in. the C field, of Cell 761.

800

Rb

Rc

761 Before

9876543210
[VI; F 9 9! 2 0 819 a 0

761 After C-putaVlay
but before B-put~l\1ay

x

y

z

x

x

z

761 After B-putaway

IV-J-9

I

Example 7.

'Pdo-v,ray a.lterno.tor.

Interchange the A and C fields of Cell 619 ..

619 Before

Rb

619 After -- The first time

.

I~_____- - - - - - -

The next time this instruction
is executed, (619) will become:
-

IV-J-IO

and so on-

"Normal" DISTRIBUTE
Example Sa.

Three-vlay alternator.

~

Cycle the A,(-B,+-C fields of Cell

574 Before
Rb

574 After -- The first time

I

The second time this instruction
is executed, (574) will become:
The third time this instruction
is ,executed, (574) will become:
-- and so on --

Example 8b.

The following Instruction ~'lill cause the three fields
to cycle in the opposite direction:

9876543210

IoJI5010104158 012415018 416
7

7

7

IV-J-ll

ill.

"IJorme.l ll DISTRIBUTE

ExamE~.

Two-'da:y: branching alternator.

l'lrite 8.n Instruction in Cells 486-1+87 so that:
Every other time it is
executed, the program "rill select its next Instruction alternn tely from

Cell 488 and Cell B73.
9876543210

IJI9

485
486
487

° 01

486
6 21~ 8 71%
4870 01010 015 412 a

484

Alternator

962
B73
B74

9876543210
17 3/9 alB 7 314 8 81

Initially, the Instruction picks up (962:90).
The first time it is executed, it plants
in 4100:20, and chang.as itself so tha:t
the next time it is executed, it'will
pick up (962 :73) •

L~88

The second time it is executed, it plants
¢OO:20-, and changes itself so that
the next time it is execut ed, it \ViII
pick up (962:90) again.

B73 in

IV-J-12

"Normal" DISTRIBUm
Example 10.

Five- llay branching alternator.

Set return link.

1

T,1rite an Instruction in Cells F44-Fh5 to set up a 5-,\·my
executing this Instruction, the program will select its
a.s fol10.'ls:
1st time:
from Cell FLj.6
2nd time:
from Cell A19 and link to Cell
3rd time:
from Cell A19 and link to Cell
4th time:
from Cell 766 and link to Cell
5th time:
from Cell G66 and link to Cell
6th time:

cycle.
After
next Instruction
F9l
F93
F93
H23

from Cell F46 again
and so on - - -

The last Instruction in each branch will return to the proper point in
the main program by using "minus V".
I

F42
F43

987 6 543 2 1 0

~~ 1bI~161~1~ ~I~I ~I~~
5-way Alternator
9876543210

F46

G66
G67

F47

F91

H93
H94

H95
H96
H97

A64
A65

F92
Each time the Instruction is

F93
F94
G84
005

H23
'H24

IV-J-13

-v

.

executed, it plants a pair of
addresses in ¢OO:53 and ¢OO:20;
and changes itself so that the
next time it is executed, it will
pick up the next line of the table.

"Normal" DISTRIBUTE
'. Example 11.

Self-resetting Program Svlitch.

Instruction A 'l;liil normally cause the p~ozram to p.9,SS to Instruction B.
Hov/ever, after Instruction C has been executed, Instruction A will:
1) Cause the program to branch to Instruction D;
2) At the same time reset itself to the normal condition.

(£)

G9l
G92

®

H39
H40

2S6
2e7

G91.::;:::::: Self-resetting ,
G92 ":::::::' switch.

2 1

°

After Instruction C has been executed,
287:53 contains D3$.
The next time
Instruction A is-eiecuted, it' plants
D3$ in¢OO:20, and resets (287:53)
back to G93.

BRANCH AND RESET

D3S
D39

Alternate }lethod

D40

D41

Go to G73;

(£)

G9l
G92

®

H39
H40

Set A for branch.

570
571
After Instruction C has been executed,
Instruction A has been set to pick up
(570:60).
The next time Instruction A
is executed, it 1;.Till plant D3$ in
~00:20 and will reset itself to pick
up (570:90).

IV-J-14

TABLE IV-I:

ZONE
BITS

NUMERfC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

,

0

It.

m

n

8

p

10

+

J

K

L

M

N

tr

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2
1

Sum

A syllable modified
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables
4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p
!

v

Q,

(¢OO) after operation

positive
negative

p

I

1

THREE INSTRUCTIONS. DISTRIBUTE, SUPPRESS~ EDIT, ARE GENERALLY SIMILAR.. BASICALLY,
EACH OF THEM COPIES THE CONTENTS OF THE A-FIELD INTO THE B- AND C-FIELDS o THE C-PUTAWAY IS MADE
FIRST. FROM RIGHT TO LEFT; THEN THE B-PUTAWAY IS MADE, FROM LEFT TO RIGHT.. EACH INSTRUCTION HAS
TWO VARIATIONS, AND EACH VARIATION CHANGES THE CONTENTS OF THE A-FIELD IN A DIFFERENT MANNER BEFORE
MAKING THE PUTAWAYS ..

SUPPRESS
"Normal" variation: . The contents ot: the A-field are zerosuppressed in the B- and C-putaways; the character tt _tt is treated in a
special manner, as it is not suppressed (replaced by "space"), yet zerosuppression resumes to the right of a If_It character. If either putaway
field is shorter than the A-field, eharacters will be lost in that putaway. If the C-field is longer than the A-field, "space lt characters will
appear at the left; if the B-field is longer than the A-field, zeros will
be added at the right (unless the A-field contains all nzerosu, in which
case the B-field will be filled out to the right with n space" characters).
"Sign Split-Off" variation: The sign of the A-field (designated
by the 5th bit in the left-most character) is split off, and appears in
the putaways as a separate character; a positive sign appears as a "space"
character, while a negative sign appears as a "_.t character, immediately
to the left of the character from Which it was ~plit off. The zone-bits
of all the original characters from the A-field are replaced by a-bits,
leaving only the numeric bits, and the putaways are zero-suppressed.
The putaways, therefore, are each one character longer than the
A-field If the C-field is longer than this, "space" characters will be
added to the left of the sign character; if it is the same length as the
A-field, the sign character is lost (once split off, the sign is never
re-bombined with the left-most character); ~nd if the C~field is shorter
than the A~field, other characters will be lost from the left end of the
field o If the B-field is longer than the putaway, zeros will be added at
the right (unless the A-field contains all "zeros tt , in which case the
B-field will be filled out to the right with Itspace tt characters); if it
is too short for the full putaway, characters will be lost from the right
end of the field o
0

r

OVERFLOW ALARM:

Will

~

be set by either variation.
IV-K-l

INSTRUCTIONFOfuV~T:

 , s~

EDIT

0

IsP.sPlsP.sP.sP.sPlsP .sp,sp.spi

10.01010.0.0.01010101

EDIT

1

~- ~f- ~~- ~~ ~~ ~~ ~*' ~~ ~- ?~-

rJ-K-5

10,0.0 10.0,0 ,0.0.0 , 01

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

Language Code
NUMERIC BITS

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

9

&

•

,

A

m n

I'

p

@

¢

0

SPACE

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

'If

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2
1

Sum

If S

A syllable modifit;!d
B syllable modified
C syllable modified
Determines combination
of syllables modified.

S-values of syllables

4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

v

( ¢ 00)

Q

after operation

positive
negative

p

I

1

THREE INSTRUCTIONS, DIST~'BUTE, SUPPRESS, EDIT, ARE GENERALLY SIMILAR. BASICALLY,
EACH OF THEM COPIES THE CONTENTS OF THE ~FIELD INTO THE B- AND C-FIELDS. THE C-PUTAWAY IS MADE
FIRST, FROM RIGHT TO LEFT; THEN THE B-PUTAWAY IS MADE, FROM LEFT TO RIGHT. EACH INSTRUCTION HAS
TWO VARIATIONS, AND EACH VARIATION CHANGES THE CONTENTS OF THE A-FIELD IN A DIFFERENT MANNER BEFORE
MAKING THE PUTAWAYS.

E D I T

ItNormal" variation:

The contents of the A-field are unchanged

in the C-putaway, and are zero-suppressed in the B-putaway.
suppression, the character

It_It

not suppressed (replaced by
right of a

"_n.

character.

In zero-

is treated in a special manner, as it is

uspaee~,

yet zero-suppression resumes to the

If either putaway field is shorter than the

A-field, characters will be lost in that putaway; if either put away field
is longer than the A-field, zeros will be added to fill out that put away
field (unless the A-field contains all "zeros", in which case the B-field
will be filled out to the right with tlspace rt characters).
"Dollar-Protection" variation:

The zone-bits of all the

characters from the A-field are replaced by O-bits, leaving only the
numeric bits.

The C-putaway is made in that form, while the B-putaway is

"dollar-protected"; that is, the B-field is zero-suppressed in the usual
manner, except that· "*11 characters (rather than

n space

n

characters) re-

place suppressed zeros.

OVERFLOW ALARM: -Will not be set by the "Normal tt variation.
Will be set by the "Dollar-Protection" variation if any
character in the A-field contains a I-bit in any zone-bit position, including the sign-bit position of the field.

IV-L-l

INSTRUCTION FOR1{A T:

Operation:

987 6 5. 4 '3 210

IO~

: A:

EDIT ~(EDIT),

Opera tion Code: ' L

I : B : I :C: I

I V I M 1SiR I AL, AR\ BL, BRI CL. CR\
DEFINITIONS:

op:

operation code.

0,"' 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OOR.

R:

designates OOR as

A:

base of address of word'containing the field
whose 'contentsare to be distributed.

Al, AR:

index-regist~r.

locations of left-most and right~ost characters,
respectively, of the A-field.

B:. base of address of location into which

the distributed field :i!s' to be placed,
left-justified.
BL, BR:· locations of left-most and right-most characters,'

respectively, of the B-putaway field.

C:

OL, OR:

V:

base of address of location into which
the distributed field is to be placed,
right-justified.
locations of left-most and right-most
respectively, of the C-putaway field.
variation designator:
V
Specifies

~haracters,

Abbreviation

0

Norma.l

EDIT'

1

Dollar';"Protection

EDIT:P

iV-L-2

DESCRIPTION OF:
V= 0:

[~

EDIT

is transferred to a lO-character-long working register (Rc),

rr-ht- ustified, and also to another lO-character-long working register
Rb , left-justified.. In the course of these transfers, zone-bits are
preserved, and the information is unchanged.

The contents of Rb are then zero-suppressed; that is, starting
at the lett end of the register, all nzero tl charaetex:-s are replaced by
tlspace tl characters (code 00 1100), until a non-zero character is enCOlm'""'!
tered, or until all the characters in the register have been replaced by
It spaces" ..
For the pu.rpose of this variation, the character n _tf is considered-neither a zero, nor a non-zero character; it is not replaced by
uspace't" nor does it terminate zero-suppression. The contents of Rc are
not cmanged.
(Re) replaces
left-justified .

v

= 1:

[OJ,

right-justified; then (Rb) replaces [BJ,

This is the uDollar....Proteetionl1 variation.

[A] is transferred to a 10-character-long working register (Rc),
ri ht- ustified; and also to another lO-character-long working register
Rb , lett-justified.
In theoours.e of both these transfers, the zone-bits of allcharacters transferred are replaced by O-bits.
The contents of Rb are then zero-suppressed and "dollar-protected";
that is, starting at the left- end ofRb, all n zero" digits are replaced by
n*n characters (code 11 0000), until a non-zero digit is encountered, or
until all the characters in the register have been replaced by asterisks.
The contents of Re are not changed.
(Re) replaces
left-.1ustif"iedo

OVERFLOW

A1ARM~

Will

[C],

~

right-justified; then (Rb) replaces

be set by the tfNormal lt variation (V

=

raJ,

0)

0

Will be set by the uDollar-ProtectionU variation (V
if any character in [AJ contains a I-bit in any zone-bit position.

IV-L-3

=

1)

DISTINCTIONS
DISTRIBUTE, SUPPRESS, EDIT
[A]

Instruction

v

CB-Putaway

C-Putaway )
)

00465

....00009

<

DISTRIBUTE

o

IO,O,4,§,5,O,O,O,O,O\

10,0,0,0,0,0,0.4 16.51

DISTRIBUTE

1

ISPIQ IQ I~ ,6 •2 .0 .0 .0 ,0 1

IsPlsp,SP,sp,SP,

SUPPRESS

0

Is~s~~.6.S.0.0,0.0.01

'ISP,SP,sP,sP,Sp,Sp,sp,4,6,51:

SUPPRESS

1

'lsp,sp,sp,4 .6, 5 ,0 ,0 ,0 ,01

ISP,sP,SP,sp,sp,sP,sp.4 ,6, 51

EDIT

0

ISP. sP.!l: .6.2. 0 •0 ,0.0.01

10 10,0,0.0.0.0 14.6.2\

EDIT

1

IV
~
6 12.0iO,0,0.0.I
.WI~'~'

\0 10,0

DISTRIBUTE

°

1-10,0 P,0.21 0 •0 ,0101

10,0 10,0,-.0.0,0.0.91

DISTRIBUTE

1

1-1010 10 10 ,0 19 10.0.01

Isp,sp.Sp,- 10,0,0 ,0 ,0 121

\- ISPISP,SPISPI9 10 10 .0 ,0 I

Isp,sp,SP ,S? ,- ,SP,SP.sp .SP. 91
Isp, SP,SP ,- ,SP,SPiSP ISP,sP I91

°iO .4 ,6,21

.0 ,0,0.0.4,6'.51·

SUPPRESS

°

SUPPRESS

1

1;",sP,sPlsPlsP,sPI9 10 ,0 101

EDIT

°

1-,sPlsplsP,sP I 21 0,0, I01

10 10,0,0,-,0 10,0 10:91

11*1*'*1*,*,2,0 10,0,01

10,0,0,0 10,0,0,0 10 191

EDIT

.

~ Sets

°

Overflow Alarm

JJl-L-4

A

v

Instruction

(B-puta,\-vay

c-putaway )
(

G26A9

DISTRIBUTE

° IG,2,6,A,9,O,O,o,o,ol

10,0,0,0,0,G,2 16I A, 91

DISTRIBUTE

1 \-,7,2 ,6,1,9,0,0,0,01

Isp ,SP ISPISPI -I 7 j 2 16 ,1,91

SUPPRESS

°

IGI216.AI210101010.01

ISP,SP,SP,SP,SP,G,216,A,91

SUPPRESS

1 1-,7 12 16 ,1 19,0,0,0 101

ISPlsP,SP,SP I- 171 2 I 6 11 191

EDIT

°

IG , 2 Ib ,A,910,0,0,0,0\

IO,O,0,O,O,G , 2 16 IA , 9\

EDIT~

1 171216,119,010,010101

1010,01010.7121611191

~

0

Sets Overflow Alarm

DISTRIBUTE

0 101010101010101010101

1010101010101010,0101

DISTRlBU'IE

1 ISP,olo,OIOIOjO,OIO,ol

Isp. sP.sPISP.SP1SPjsP.sP ISP , 0 I

SUPPRESS

° Isp aSP ,SP,SP,SP,SPISP ISP ,sp,spi

ISPa SP SP. sp. SP. SPI SP ISP ISP ,spi

SUPPRESS

1 Isp ,SP ISP ISP,SP ,SP ISP ,SP ,sPISPI

ISPISP ISP ,SP,SP ISP ,SP ,SP ,s> IS~

EDIT

° ISP,SPISPISP,SPISPISP

,S? ISPlspl

10,0,0 10 10,0,0,0 10 101

EDIT

1 I-r.- ~~ ~:- ~*" ~*" ~*" ~*" ~*" -r.- ~*" I

lO,O,OIO,O,OIO,OIO,O\

,

,

I

rJ-L-5

I

,

!

I

«

I

I

AN EXAMPLE OF EDITING
Required: To edit a one-line Dividend Check and Stub
Using COMBINE; DISTRIBUTE (V=O); SUPPRESS (V=O); EDIT (V=O, V=I); MOVE.

N A M E

No. SHARES

AMOUNT

150 1

L-IJA_M_ES_J_D_O_E_ _---'II

RATE No. SHARES

AMOUNT

1$* * *900.001

~-----------------------'V-----------------------,/~--------' V---------~
DIVIDEND CHECK

CHECK STUB

START

CLEAR
PRINT
LINE
TO "SPACES"

{~

SUPPRESS: "0"

~

762:90 and 763:90 (Plant "spaces" in 762 and 763)

MOVE: (763), 10 WORDS

~

764 (Plant "spaces" in complete print line)

120·CHARACTER PRINT· LINE IMAGE
SHADED AREAS REPRESENT "SPACE" CHARACTERS PLANTED BY THE PREVIOUS OPERATIONS

DISTRIBUTE: "DECIMAL POINT"

~

762:88 and 767:99 (Plant decimal points)

EDIT: DIVIDEND RATE

~

762:99 and 762:76 (Plant dividend rate in check)

DISTRIBUTE: (762:96)

~

768:96 and ¢09:90 (Plant dividend rate in stub)

PRESET

DISTRIBUTE: "$" -~ 766:66 and ¢09:90 (Plant dollar sign in check)

RATE

N

n

FROM

8

A

M

E

No. SHARES

AMOUNT

READ: AN ITEM INTO MEMORY
9

8

7

6

5

4

3

2

1

386 0 0 0 1 5 0
SP D
387 J A M E 5 SP
388 E SP SP SP SP SP SP SP SP SP
389
o 0 0 9 0 000

IV-L-6

RATE No. SHARES

AMOUNT

9

SUPPRESS: (386:94)

RATE

N A M

~

RATE

N

E

~ 765:83 and 768:50 (Number of ,har.. in check and ,tub)

No. SHARES

MOVE: (387),2 WORDS

A M

E

No. SHARES

EDIT (Dollar Protection): (389:70)

N

A

M

E

RATE No. SHARES

AMOUNT

AMOUNT

RATE No. SHARES

AMOUNT

~ 763 (Name)

9
RATE

AMOUNT

~ 766:50 and 767:87 (Amount on check)

No. SHARES

?

COMBINE: (766:60) and (767:97)

AMOUNT

RATE No. SHARES

AMOUNT

~ 769:90 (Amount on stub)

763
876543210

~------.
~.\I
~..afJ
_ _..L.-_ _-..&._ _ _ _ _

RATE

N

A

M

E

No. SHARES

OUTPUT THE EDITED LINE

AMOUNT

SHADED AREAS REPRESENT "SPACE" CHARACTERS PLANTED BY THE INITIAL
CLEARING OPERATIONS.

GOTOA

RATE No. SHARES

AMOUNT

BLANK AREAS REPRESENT "SPACE" CHARACTERS

PLANTED BY THE EDITING OPERATIONS.

IV-L-7

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

9

&

•

,

A

m n

8

p

@

¢

H

[]

SPACE

10

+

J

K

L

M N

0'

P

Q

R %

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

s

u

V

W'

X

d

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2
1

A and AF syllables modified
Band BF syllables modified
C and CF syllables modified

Sum

Detennines combination
of syllables modified.

If S

S-values of syllables

4

2

1

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

( ¢ 00)

Interchange of syllables in ¢OO

before operation
p

Q

(¢OO) after operation

V

positive
negative

Runout MERGE

Cutoff MERGE

p

J

p

J

I

J: May be JA, JB, JC

MERGE
MERGE assumes the designation of three memory areas (called
tt pockets " ), referred to, respectively, as the A, B, C pockets.
Except as
stated below, there is no necessary relationship among the sizes of the
three pockets.
The A and B pockets ea·ch contain a nstring" of items: that is, a
collection of items which has previously been sorted according to some key.
MERGE combines the A and B strings into a single new string, which
appears in the C pocket.
A

c

Runout MERGE proceeds until either the A pocket or the B pocket has
been exhausted by copying the last item into the C pocket. Then all items
remaining in the other pocket are "run out It by being copied into the C pocket.
This type of MERGE assumes, therefore, that the C pocket is equal in length
to the combined lengths of the A and B pockets.
Cutoff MERGE proceeds until:
A pocket exhausted
or B pocket exhausted
or C· pocket filled
and then terminates. The next instruction to be executed is selected from
the appropriate one of three locations, according to the reason for termination, and the MERGE instruction, as recorded in the Memory, indicates the
point at which it terminated.

IV-M-l

INSTRUCTION
987

Iori

6

: A:

Operation: "Cutoff" MERGE (MRGE:C)

FORV~T:

543

210

c:

I :B: I :

I V -I M I S\ R I XL I XR [YL I YR

f]IJ
MtJ

I

AF
AT

I

I
I

I

I

BF
BT,

.~ir~~~F~l~lf~jjjlj~jl~ljl ~
[l\lmfl >LA , I JB
I

Op:

1
I

Opera tion Code: M (V • 0, 1)

I

Execution Time: (in micro-minutes)

Ifl~?f~~~}!~)
!

CF ,

I

CT

~

22 FIXED
1 IF INDEX REGISTER USED
10 PER COMPARISON OF AN A-ITEM WITH A B-ITEM
(12 IF 2-WORD KEV)
+ 2 PER.~ ~10VED INTO C-POCKET
+ 1 IF CF TE~lINATION
+
+

I
I
I
I

I

Y

JC

operation code.

M:

auto-monitor level:

S:

designates syllables for modification by index-register OOR.

R:

designates OaR as

A, B, C:

0, 1, 2, 3.

index-register~

bases of addresses of first word, first item, A, B, C pockets.

AF, BF, CF:

bases of addresses of first word,

AT, BT, CT:

word-counts, by which A, B, C are augmented before operation begins.
During "Cutoff" NERGE, AT, BT, CT are automatically augmented, and
indicate the point at which the MERGE terminated.

x,

O~

last item, A, B, C pockets.

L ~. 99.

L:

item length (number of words).

Y:

relative addresses, with respect to the first word of each item, of
words containing the major and minor control keys, respectively.
locations of left-most and right-most characters, respectively, of
major and minor control keys.

NOTE:

JA, JB, JC:

V:

if a single control key is used, it is specified by Y, Yt, YR.
X, XL, XR are then' irrelevant.
address of next instruction if A, B, C termination condition is
encountered in "Cutoff" MERGE.
variation designator:
Cutoff

MERGE

a
l'

IV-M-2

one control key
two control keys

INSTRUCTION

FORV~T:

987

10 pi

6 543

210

Opera tion Code ~ ]\11 (V

I :B: I :c:

I
IR IXL, XRI YL, YR [!!!/!i!f!!l!!]

: A:

IV IMis

Operation: "Rul1out" rvmRGE (MRGE:R)

Execution Time: (in micro- minutes)
19 FIXED
+

I ,BF (!!!!!!!!!!!~i!i!!f!!~!!I!!i!t
[ii)!] AT I ,BT I ,CT
fif!ti/iifl!lii!ii!ii!ili@li!iil t I fIt

fmm!J

I

AF

= 2, 3)

1 IF INDEX REGISTER USED

1 I F -v
+ 10 PER COMPARISON OF AN A-ITEM WITH A 8-ITEM
+

I

+
+

(12 'I F 2-WORD KEV)
~ INTO C.POCKET
2 PER WORD MOVED INTO C-POCKET
(INCLUOiN~MS RUNOUT)

5 PER 1...I.£!1

~tirtrrJtfft!ii!i!i!i!i!i!f!!rii!!!!i!lii!f!!!!i!lii!itltl!iii!lifWiiJ
Op:

A,

AF,

B,

operation code.

M:

auto-monitor level:

s:

designates syllables for modification by index-register OOR.

R:

designates OOR as index-register.

c:

bases of addresses of first ,.,rord, first item, A, B, C pockets.

0, 1, 2, 3.

bases of addresses of first word,

BF

AT, BT, CT:

X,

last item, A, B

pockets.

word-counts, by which A, B, C are augmented before operation begins.
During "Hul1out" MERGE, AT, BT, CT remain unchanged.
0 <: L

~.

99.

L:

item length (number of wo!Us).

Y:

relative addresses, With respect to the first word of each item, of
words ,containing the majqr and minor control keys, respectively.
locations of left-most and right-most characters, respectively, of
major and minor control keys.

NOTE:

if a single control key is used, it is specified by Y, Yt, YR.
X, XL, XR are then irrelevant.
In "Runout" MERGE, the next instruction in sequence is always
executed.

V:

variation designator:
Runout
NERGE
one control key
tl.,rO control keys

2

3

IV-M-3

MERGE

DESCRIPTION OF:

NOTES:
1) The comparison made by MERGE is the same as
that made by COMPARE ALPHANUMERIC.
Therefore, if the keys are numeric, all negative numbers .(in sequence by increasing magnitude) will sort
behind all positive keys. MERGE may be made to
yield any desired sorting sequence, however, by using
ADD BINARY and COMPLEMENT BINARY
to transform the sorting keys.
2) If the keys are positive numbers, they may be
PACKED, and the operation of MERGE will be
unchanged. Alphabetic characters may be combined
in a single key with PACKED digits, by using INSERT. Therefore, MERGE will operate over a 20character alphabetic field, over a 30-digit PACKED
numeric field, or over a field containing any proportional combination of alphabetic characters and
PACKED digits.

3) "Assembly of Key" mentioned in the Description,
takes place as follows:
The minor control key of the next A item is
transferred to a 20-character-Iong working register
(Ra), right-justified.
If two control keys have· been specIfied, the
major control key of that item is next transferred to
Ra, right-justified against the left-most character of
the minor control key.
The contents of Ra is then the stored Key of the
next A item.
The key of the next B item is assembled and
stored in the same fashion in Rb.
4) Note that both the first and third words of the
MERGE InstruCtIon are modJ1ied by the Index
Register.

START

Set Up: A EE> AT as Address of next A item
B e:> BT as Address of next B item
C
CT as Address of next C item

e

Assemble and store
key of next A item as Key A
Assemble and store
key of next B item as Key B

Is address of next A item>
no

m

Aemp'Y

yes

-----10 ye,
Runout?

1
~ye,

Is address of next B item>

!!!'1
B empty

~
/~t~no

/

-----CO ye.
Runout?

Runout MERGE?

Is address of next C item >
no

nOl

~

yes

C I U I l - - -......\

Key A smaller. - - - -_
or keys are equal

Runout
MERGE

=7==========

_..

Runout
other
pocket
Store next B item
as next C item

Store next A item
as next C item

Augment address of
next B item
L

Augment address of
next A item
L

Assemble and store
key of next B item
as Key B

Assemble and store
key of next A item
as Key A

C lull

e

e

Stomp,y Set
Set CT
to zero

BT

to zero

A

6t
Y

Set AT
to zero

Next instruction
from JA
Next instruction
from JB

Augment address of next C item

eL

Next instruction
from JC

OVERFLOW ALARM: Will not be set by this Instruction.

IV-M-4

Next Instruction
in Sequence

Runout MERGE
Suggested patterns of memory space allocation
for minimum

space requirements

l l il il il il! I~li i l

c

A

B

c
B

A

c
B

A

If ~he number of items, or the item-length, is large, these Runout MERGES
can be accomplished with a considerable saving in Processor time by using
Cutoff MERGE:
If the A-Exit is selected, the MERGE is complete, since runout would only
copy the remaining items of B on top of themselves.
- If the B-exit is selected, reset the Instruction to Runout MERGE, set BT
equal to BF (B L G B (i.e. - B (!} BT will refer to the non-existent B-item
which innnediately follows BF), and repeat the MERGE Instruction to accomplish the runout of

~.

TV .;..M-5

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

,

0

A

m

n

e

p

10

+

J

K

L

M

N

fJ

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W'

X

Modification of first word of Instruction by Index Register

TABLE IV-2:
S-value
4
2
I
Sum

A syllable modified
N syllable modified
J syllable modified
Determines combination
of syllables modified.

S-values of syllables

4

2

If S = 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

v

Q

(¢OO) after operation

positive

Q@

negative

p

]

2

I

MOVE

This Instruction moves

~

designated number of

consecutive full, words from one memo17 area to another.

OVERFLOW~:

~!!21

be set under any circumstances.

IV-N-l

INSTRUCTION
9

e

FORV~T:

Operation: MOVE (MOVE)

7. 6 543 2 1 0

>: : :

Operation Code: N

Iopl: A: I .
c: I
( V I Mis 1RrHi!i!ii!I!f~!Ii[!ii~~ti!~!iji!iii!i~!~!i~~lji!!lllirii?i!fl .
DEF IN ITIONS :
Op:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates eyllables for modification
by index..;.register OOR. "
:

R:

designates OOR as index-register.

A:

base of address of first word which is
to be moved.

N:

as modified by (OOR) ,is an address-type
number which~pecifies how many consecutive
words are to be moved.

C:'

base of address. in which the first word
:t;noved is to be stored.

V:

variation designator;
.
only the sign of V

i~

relevant.

IV-N-2

o =.

N t

Z99

DESCRIPTION OF:

MOVE

This is not a partial-word operation.
The full word [AJ is transferred to [C]
[A

e 1J is transferred to [0

6)

JJ.

Then the full word

The operation proceeds _:til the

number of words specified by ! has been

moved:~;

Note- that the first word. moved is stored in its new location
before the second word is looked up, &c.

Therefore, if Q designates the

eell following the. cell designated by A, then [AJ will be copied into
each of the! following cells.
If

! specifies that zero words shall

be moved, the Instruction

moves zero words -- that is, it leaves the contents of the memory unchanged •.

OVERFLOW ALARM:

Will not be set by this Instruction.

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

1

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

,

[]

A-

m

n

It

p

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

I

11

* #

S

T

U

V

W

X

Y

Z

d

s

u

v

'If

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2

1
Sum

If S

S-values of syllables

A syllable modified
N syllable modified
C syllable modified
Detennines combination
of syllables modified.

4

I"

1

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-a:

Interchange of syllables in ¢OO

(¢OO) before operation

p

Q

( ¢OO) after operation

V
no branch
positive
negative

branch
p

J
J

PAC K
This Instruetionpermits the programmer to take advantage of
the fact that only four" binary bits are required to specify any numeric
digit. With numeric data, therefore, the storage space ordinarily occupied by the zero zone-bits of each digit is, in a sense, nwasted",
particularly in magnetic tape files.
PACK takes the thirty 6-bit characters in three consecutive
memory-cells, tran~for.ms them into 4-bit digits by discarding their zonebits, and stores them, fifteen to a word, in two consecutive cells. The
order in which the thirty characters appeared is not eh~nged in this
transformation. The Instruction performs this operation on as many consecutive 3-word groups as may be specified.
If any character with a non-zero zone-bit is encountered, the
next Instruction to be executed will be selected from a "branch tt address.
Since-large portions of most files consist of-numeric data, the
numeric portion of the fil~ may be packed for storage, saving one-third
of the magnetic tape required to store that part of the file, with a
proportionate saving in tape travel time during file processing.
While arithmetic operations cannot be performed on the data
in its packed 4-bit form, all binary and logical operations can be perfonned:
C_ombine
Extract
Distribute (tlNormaltl variation)
Insert
Add Binary  , 3

'p

I

P

I

1

S 1FT

The SIFT Instruction calls for a standard item (the sieve)
and a list of items, sorted according to some key, which are to be compared with the standard (that is, sifted through the sieve).
Those items in the list whose keys are less than, or equal to,
the key of the sieve will !fpass through the sieve". The first item
whose key is greater tha~ the key of the sieve will fail to pass through,
and will terminate the operation
0

The Instruction counts the number of items which have passed
through the sieve, and also counts the total number of words in those
items
0

The principal uses of SIFT are:
1) For table lookup. The sieve is a dummy item, set up as
a structural image of the items in the list, and it contains the key
whose location within the list is to be determined.
2) As part of a SIFT-SUMMARIZE operation, to summarize similar
items in a sorted listo The sieve is the first item in the list itself,
and SIFT counts the number of items (including the first) which have the
same key as the first item. SUMMARIZE then refers to this item-count, to
summarize the proper number of itemsG
The word-count is then used to augment an Index Register, and
the SIFT-SUMMARIZE operation is repeated, causing the operation to resume
at just the point where it previously stopped. The operation of SIFTSUMMARlZE-COUNT is repeated until the entire list has been summarized.

OVERFLOW ALARM:

Will not be set under any circumstances

IV-Q-l

0

Operation: SIFT

INSTRUCTION FORV~T:
9 8 7 6 543 2 1 0

IQpl

: A:

I

[it!!!~

Opera tion Code: Q

I :B: I :C: I

I IXL! XRI
,AF
I~ [

( V Mis R

(SIFT)

YRr(~!l~l~tllfll
1 I t I

YLI

I

DEFINITIONS:

Op:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

s:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

A: 'base of address of first word, first
item in the list to be sifted.
B:

base of address of first word of the
sieve.

c:

base of address in which the
are to be stored.

AF:
L:

coggt~

The sieve must be a structural
image of the items in the
list.

9 8 7 6 5 4 .3 2 1 0
0 # Words # Words' J # Items 1

I I

I

address of first word, last item
in the list to be sifted.
item length (number of words per item)

OL. L !::

x , y : relative addresses, with respect to
the first word of each item, of words
containing the major and minor control
keys, respectively.
locations of left-most and right-most characters,
respectively, of major and minor control keys.
NOTE:

V:

X, Xl, XR are not relevant if only one cdntrol is used.
variation designator:
V

Specifies

0

one control key
two control keys

1

IV-Q-2

99

SIFT

DESCRIPTION OF:
NOTES

1) The comparison made by this Operation is the same as that made by COM-

PARE ALPHANUMERIC. The Instruction is, therefore, designed to operate
upon data which has been sorted by use of MERGE.
2) Keys may be alphanumeric, PACKED numeric, or a combination, as in
MERGE.
3) "Assembly of Key" is performed as in MERGE.
START

Clear [C]
Set up A, as modified by (OOR),
as address of next item
Assemble and store
key of sieve as Key B
Assemble and store
key of next item as Key A
Compare Key A with Key B
Does this item pass through the sieve?
no: Key A is greater - - - - - - - - - - - - - - .
yes:
Key A is smaller,
or the keys are equal

Augment:
Word Tally [C:86] @ L
Word Tally [C:53J (f) L
I tem Tally [C:20] @ 1
Augment:
Address of next item @ L
H as the last item been sifted?

(Is address of next item >AF?)
yes

Sift
completed

Next Instruction
in Sequence
OVERFLOW ALARM: Will not be set by this Instruction.
IV-Q-3

Example - SIFT used for Table Lookup

SIFT terminates when the first i tern is found ''-Those control
characters are greater than those of the sieve. It vall not terminate on an
"equal to" condition. This must be considered when using the tallies.
Assume the storage of the list of items shown below. Find the item
whose control number is 2067-9. Then store the contents of the 64-field of
the 1st word of that item, in 050:40 right-justified.

273
274
275
276
277
278
279
280
281
2$2
283
2$4
2$5
286
2$7
2$8
2$9
290
291
292
293

987 6 543 2 1 0

I

01

SIFT

° °I ofPlantthe thedesired
64-field

924 JI2 7
¢ 091 5
925.0 01417 6 419 014 0

item into 050:40
141
142
143

IIsieve fl

@09: 90 is used as-·'a "throw-away" cell
for the unused half of the DISTRIBUTE.

9 $ 7 6 5 432 1 0

007 [}:!:110 1 210 1 210
after

Q 2 7 3 1 4 lfo 0 7
1 OrO'O 3;019 9l:!:!:!:!:!:!:!:!
::::~~:~ 2 9 1 Q '3.10 210 1

921
922
923

ill

9 $ 7 6 543 2 1 0
050 I[}?:!:!:!:!:!:!:!f!:!:!:!:!:!:f;f 0 0 0 3]J
after

Location 007 is used as an Index Register by the DISTRIBUTE Instruction. The tallies stored in 007 inclUde the item found. Therefore, it is
necessary for the DISTRIBUTE Instruction to use as a base address a location one
item-length before the beginning of the list of the items.
An example of SIFT used with Sm,lNARIZE appears on page IV -R-5 •

lV-Cl-4

SIFTING LONG TABLES
In dealing with long tables, considerable time can be saved by
sifting the table t'o.fice: the first time to learn wha t ~ of the table
holds the desired item, and the second time to locate the exact item.
This procedure is similar to that used in locating a specific
folder in a filing cabinet when each drawer bears a label showing the lowest
account-number filed in that drawer.
The clerk first examines these labels
to learn which drawer to open, and then selects the desired folder from
within that drawer.
Suppose that the example on the preceeding page had required a
table or 104 items.
We could use a coarse SIFT (in which the it ern-length
is stated as 30) to examine every 10th item in the table, and then a fine SIFT
which would have to examine no more than 10 items within the proper portion
of the table:

9876543210

= 30 causes ever.y 10th item to
In effect, we are sifting a table

L

816
817
818

Coarse SIFT.
be examined.
of 11 items"

819
820
821

Fine SIFT Since the large group containing the
desired item has already been tallied, this SIFT
i.s referenced 30 words before the actual table.

822
823

MODIFY ADD the result of the fine SIFT (~09)
to the result of the coarse SIFT (007).

824
825

Plant the proper field of the desired item. Since
this item has been tallied again, this Instruction
is referenced 33 words before the actual table.

4)

The fact that the last large group contains only 4 items, rather
than 10, need give no concern, since the AF specified in both SIFTS will
terminate them properly in all cases.

IV-Q-5

In using a double SIFT, it is important that the sum of:
the number of groups
plus the number of i terns per group
should be a3 snaIl as possible.
Thus, a table of 120 i terns might be
divided into:
3 + 40
43
3 groups of 40
or 5 groups of 24
5 + 24 = 29
6 + 20 = 26
or 6 groups of 20
or 8 groups of 15
8 + 15 = 23
12 + 10 = 22
or 12 groups of 10
or 10 groups of 12
10 + 12 = 22
or 15 groups of 8
15 + 8 = 23
and so on.
:I

Since l2 and 10 comprise the pair of factors with the s~llest
sum, the 120 items should be divided into 12 groups of 10 items, or into
10 groups of 12 i terns •
This same procedure may be extended to a triple SIFT for extremely
long tables.
The items should be divided so that the three factors have
thesmallest possible sum.
On the assumption that lookups are spread evenly throughout the
table, the minimum table-lengths on which it is worth-while to use
multi p1e SIFTS are:
Double SIFT

Triple SIFT

1 contro 1 key

30 items

900 items

2 control keys

25 items

400 items

Language Code

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

@

¢

SPACE

&

•

,

H

C

A

m

n

It

p

(

)

.,

I

VI

X

1

2

3

4

5

8

7

8

A

B

C

D

E

F

G

9

10

+

J

K

L

M N

6'

P

Q

R %

£

$

11

.*

#

S

T

U

V

W

X

Y

Z

s

u

TABLE IV-2:
S-value
4
2
1
Sum

If S

d

Modification of first word of Instruction by Index Register

A syllable modified
B syllable modified
C syllable modified
Detennines combination
of syllables modified.

S-values of syllables

4

2

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation

p

Q

(¢OO) after operation

V

no branch

positive

p

negative

p

branch

J: May be JC, J@

SUMMARIZE

This Instruction

examines~

in turn J a series of Items stored

in the Processor MemorYJ and forms the arithmetic sum, for all the
Items~

of the quantity appearing in a specified location within each

Item"
The summary total is stored in the C-putaway field, and also
in eell @OO.
If the summary total exceeds the capacity of the C-field, the
next instruction to be executed is selected from a "Branch Address"
specified in the Instruction; if the summary total also exceeds the
lO-digit capacity of cell @009 the next Instruction to be executed is
selected from a different nBranch Address" specified in the Instruction

OVERFLOW ALARM:

Will not be set by this Instruction, since overflow

automatically causes a

branch~

IV-R.,=l

0

Operation: SUMMARIZE (SUMM)

INSTRUCTION FaRHAT:
987

topl

6 543

210

Opera tion Code: R

\:< I :B:I :c: I

IV 111; siR IAL , AR I L, BRic
E!~~~~d . :.
I·
Fr~H
B

t
I

JC,' .

I

J@

I

Lie

,L

I
I

R

DEFINITIONS:
. OP:

operation code.
0, 1, 2, 3.

M:

auto-monitor level:

S:

designates syllables for modification
by index-register OaR.

R:

desIgnates OOR as index-register.

A:

base of address of first quantity to
be included in the Summary.

A L, AR:

locations of left-most and right-most
character-positions, respectively, of
quantity to be summarized.

B:

base of address containin~ the number
of quantities to be summarized. This
number is an address-type number.

Bl, BR:

locations of left-most and right-most
character-positions, respectively, of
the field which designates the number
of quantities.

C:

base of address in which summary total
is to be stored.

o

NOTE:

~

[BJ :::. Z99

Sunimary total is
also stored, with
sign, in @OO: 90

Ct, CR:

L:

locations of left-most and right-most
character-positions, respectively, of
the C-field.
amount by which [AJ is to be augmented
to find successive quantities to be
included in the summary. (L specifies
the length of the items.)

JC:

address of next instruction, if summary
total exceeds the capacity of [0] .

J@:

address of next instruction, if summary
total exceeds the capacity of @OO:90.

V:

variation designator;
only the sign of V is relevant.

IV-R-2

DESCRIPTION OF:

SUMMARIZE

START

NOTES

Clear a Tally
Store the number of quantities:
[B] . . Rb (3 characters),
right-justified (NOTE 1)

1)

In the transfer of [BJ to Rb, the zone-bits of the
right-most two characters are replaced by.O-bits.

2)

In the transfer of NEXT QUANTITY to Ra,
zone-bits of all characters are replaced by O-bits.

3) The sign of each quantity is considered in per-

forming each addition to the Summary.
4) At the conclusion of the operation, the sign of the

Summary Total is inserted as the sign-bit of [C],
and of (@00:90).

Clear Rc (10 characters)
Set up A, as modified by (OOR),
as address of next quantity

I s the Summary completed?

Is Tally

YES
NO

=(Rb)?

Putaway
(Rc)" @OO:90

Was
ftOve.rflow Rc"
mark set?

Putaway
(Rc)"[C]
rightjustified

Would there
be overflow
in [C] ?

J - - - - NO

(NOTE 4)
NO - - - I

Next quantity . . Ra
right-justified (NOTE 2)
YES

Add .next quantity to the Summary:
(Rc) + (Ra)" Rc (NOTE 3)

. YES

Take next
instruction
in sequence

Has (Rc) overflowed?
YES - - - - ,
NO

Set uOverflow Rc" mark

Take next
instruction
from JC

Augment: Tally EE> 1
Augment:
Address of next quantity

eL

Take next
instruction
from J@

OVERFLOW ALARM: Will not be set by this Instruction.

IV-R-3

Example - SUl-:il'\"'li.IZE Instruction
Summarize the amounts stored in partial vJOrd field 96 of the
third word of each of the follo'v,;'ing 3- Hord i terns:

273
274
275
276
277
27';3

279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300

301
302

[fJ 1

0 1:~~{:~:~rr~}rfJ?~{Iilll
Location 412

I3

2 610 9 3 2 1 6 7J
Location 816 before

9 8 7 6 5 4 32 1 0
IOOB64264211
@OO before

K:3.;:::Z::::P:~ 0 0 4 0 .9 9 5 ]
Location 816 after

[0 0 0 0 0 1+ 0 9 9 5 I
@OO after
IV-R-4

EXAVPLE -

SIFT and SUHHARIZE Instructions

There is in memory a list of 35 one-word item5
describing sales.
They contain the class
of merchandise, the salesman's number, and
the amount of the sale.

LIS T

9 8 7 6 543 210
100
101

102
103
104
105
106
107

108
109
110
III

112

113
114
115
116
117
118
119
120
121
122
123
124
125
'126
127
128

129
130
131
132
133
134
200
201
202

002 o 2 o 5 591
002 o 2 2 6 1 0 4
002 o 2 00400
o4 5o23 28 1 1
o '-+ 5 o 2 1 0 778
045 o 2 5 1 0 6 5
045 o 2 3 7 1 3 5
2 18 1 4 1'7 3 2 2
218 1 4 '-+ 4 7 2 0
218 1 4 o 2 4 7 3
770 2 5 9 5 7 9 7
002 3 8 1 2 8 5 0
002 3 8 2 1 225
045 3 8 4 104 0
218 3 8 5 006 5
359 3 8 7 1 2 3 5
359 3 8 008 1 a
359 3 8 51475
359 3 8 3 7 5 1 4
412 3 8 1 243 0
4 1 23 8 56 51 0
4 1 2 3 8 1 1 8 0 0
572 3 8 7 5 1 1 5
5,9 0 3 8 o 506 5
779 3 8 2 740 5
045 6 1 o 1 4 1 9
045 6"1 3 6 8 1 0
o4 56 1 3 30 2 5
218 6 1 1 9 6 5 5
359 6 1 4 2 508
412 6 1 4 983 5
i 7 2 6 1 21 8 3 0
590 6 1 12235
590 6 1 5 7 8 7 6
002 6 6 o 0 39 _9_

o2 o71 b 3
1 4 o 3 064.
2 5 o1 o 9 5

884

5 1 5

205

797
3 8 1 4 474539
6 1
225193
7;7; ~
o 1 o 0 0 3 99

300

10

203
204

1 0 7 4 3 2

710

9 876 5 '-+ 3 2 1 0
Cell 100 Ie c cis 51$ $ $ $ $1
Summarize the sales by salesman; list the
number of sales made by each salesman. Then
accumulate total sales and number of
salesmen active this day.

Cel1200
Cell 300

IS sill #1$ $ $ $ $ $J
I$ $ $ $ $ $ $ ~ # # i

PROGRAM

9 8 7 6 543 210

ADD:

387
388

SIFT:

Clear (002).
,
"
Tally the like

it:ems in ¢OB.

392

SUMMARI ZE :

393

items.

The like

394

~~~ I~ I; I~ I~[~ ~I~ I~I ~ ~I

COMBINE: Salesman's #,
and # of sales.

397
398

MOD ADD:

r\i66 1~1~lgl~l~ 5!iBI~I~1
'401
402

403

Add 1 to

(002:20)

o 0 o 0 213 o
o 01010 5 012 019

R 2

:::.:; 704 7
~3:'

404

0

COUNT: Augment (002:93)
and test (002:86) for end.
SUMMARIZE:

Total sales.

2

0 4[:GUO 1
Store number of
salesmen active
this day.

405

6J

IV-R-5

MAGNETIC

TAPES

GENERAL

The following terms are used in this section:
SOURCE TAPE:
being read.

Any magnetic tape from which information is

DESTINATION TAPE:
is being writteno

Any magnetic tape upon which information

ITEM: A body of information which it is convenient (in a
given context) to regard as a unito Thus in one context, a
list of all the transactions affecting a single account may
be considered a single item; while in another context, each
individual transaction in the list may be considered an item.
FILE-lTEM~

An item in the file; an account.

RECORD: A body of information, recorded on magnetic tape, and
bounded by a Beginning-of-Record Mark (BRM) and an End-ofRecord Mark (ERM)
A record will often contain a single item;'
however it may, at the programmer V s convenience contain
several items; or a single item may be divided into several
records.
0

j'

GULP: All the information read from, or written on, magnetic
tape with a single Instructiono A gulp may consist of one,
or many, records.
CONTROL RECORD MARK (CRM) ~ The character nvu (code 11 1101),
r'ecorded in Character...;,Posi tion 4 of the first word of a record.
CONTROL RECORD, CRM RECORD: A record containing a CRM.
a record is most often used as an End-of-File sentinel.

Such

REJECT MARK: The character uwI' (code 11 1110) recorded in
Character-position 3 of the first word of a record.
LEADER; TRAILER: At each end of a magnetic tape, there is a
portion of the tape upon which information cannot be recorded,
which serves to attach the tape to the reel, and which is
commonly referred to as the "leader". It is often important,
however, to refer unambiguously to the leader at one end of .
the tape or the other; in order to avoid expressions such as
ttleading leadert' and 'ttrailing leaderH , the two leaders are
herein referred to as LEADER and TRAILER, respectively.

rv~Tapes-l

The functions performed by the

h~R

304 Magnetic Tape

Syste~

are:

READ MAGNETIC TAPE
One or many records

Fixed or"variable lengt. h, - records -

Allor part of each record
Index forward or backward without reading

WRITE MAGNETIC TAPE
One or many records
Fixed or variable length records

WRITE-COPY
Using Source and Destination Tapes simultaneously
Off-line Gopy

WRITE-COPY-READ
Using Source and Destination Tapes simultaneously
On-line Copy
REWIND

Any Handler in the System

orr -line

rewind
Any number of Handlers simultaneously

The System has been designed to furnish the utmost in reliability
and convenience in providing for all non-routine circumstances which may
arise during Magnetic Tape operationso

Many of these circumstances, such as

end of tape, reading error, or writing error, can be programmed for; all such
circumstances are'automatically detected and identified by the

system~

Circumstances which ,cannot be programmed for, such as broken tape, or re!erencetoa non-existent Controller or Handler, are also detected automatically,
and cause immediate termination of all Processor operations, with identifying
information displayed in the Control Console

lights~

An important feature of the 304 Magnetic Tape System is its ability
to terminate any operation under a wide variety of automatically detected
circumstances.

Termination may occur whether 2!:

no~

the Instruction, as

specified by the programmer, has been completely executed.

If circumstances

are such that it is not practicable or advisable to execute a Magnetic Tape

IV-Tapes-2

Instruction at all, that Instruction is aborted; it is not executed, and an
alternate Instruction is automatically selected for execution instead.
In order to provide this facility, every Magnetic Tape Instruction
designates, in the 20-field of the first word, an address
location of the first word of a 3-word Jump Table.

~,

which is the

This table contains nine

addresses, or "exits" from the Tape Instruction; each exit corresponds to
some "non-normal" circumstance which may arise before, or during, execution

of the Instruction. Each of these circumstances will be detected automatically
whenever it arises, whereupon execution of the Instruction will be either
aborted or terminated, and the Processor will take its next Instruction from
the appropriate address in the Jump Table.

If no "non-normal" ·circumstance

arises, execution 'of the Instruction terminates unormallyft, and the Processor
executes the next Instruction in the normal sequence.
In most operations, a single Jump Table may be used for all Magnetic
Tape Instructions.
The addresses in the Jump Table are numbered Jl through J9, and are
arranged in the following format:

9 g 7 6
Cell

543

210

J

Cell J ID I

:J6,

,J5,

, J4,

Celi J ® 2

J9

,JB,

,J7.

The detaiied significance of each exit is shown in the Table which
appeC1rs at the end of this sectid;h.

Briefly, the exits correspond to the

foliowing respective circumstahties, ffiany of which can calise either "branch

IV-Tapes-3

without executionlt or "branch after terminationn , as appropriate:
Jl ..,. Busy, or Use Lockout
CC\\::;'fA.
/ /< l.) dCH.) I)J
J2 - Error during Rea.d
If/i
1';(
fw) ~),)
J3 - Control Record Mark
( /- / (
J4 - End of Destil'lation Tape
(.
J5 - End of Source Ta.pe
'
. r.'
S""
J 6 - Error during . Write
lfJrL (=>)'0 j1 ~ 1 JR,~ HC:~ ,:.7 /iftYJ ... /c/z:"J1JJ
J7'- Error during Non-Write portion of Write-Copy
or Wri te-C'opy-Read.
J8 - Non-Equal Termination of Write-Copy or
}J')

,;f

r

Writ e-Copy-Read0
/J9 - Error during Write portion of Write-Copy or
Wri te-C'opy-Read
(I

The branch conditions are divided into two groups:
Branch without execution of the tape operation.
Branch after termination of the tape operation.

Thecconditions' which

cause·brancn:W:ithQut.:eJ~~~m~on:iare~:the

same

for- alTl,Magnetic Tape Instructions, and will not be repeated under the individual Instruction descriptions.

-

They are:

Handler busy rewinding
Controller busy copying or repOSitioning
Handler in Use Lockout state
One. of the following conditions had been encoWltered
during a previous off-line COpy on the same
Controller:
- Error in copying
..
- "Inequality" termination
- End of Source Tape
-' End of Destination Tape

If any of these conditions exist, the current Magnetic Tape

Instruction will not. ~e executed; "instead~ the Processor will select its next
Instruction from the appropriate address stored in the Jump Table named
by the aborted Instruction.
Once execution of an Instruction has begun, a number of circumstances may cause it to terminate ~ and l!2!!.! of those circumstances will
cause a branch after terminationq

/1) ,-':'

The description of each Instructio1l 9 in later pages J includes a
list of all conditions which cause termination of that Instruction
the conditions are defined as
next Instruction in the

unormalng 9

sequencso

nOl~l

0

Some of

and cause the Processor to select the
The other conditions are defined as

unon-normalti and cause the ProeesSlor to select its next Instruction from the
appropriate address stored in the Jump Table named by the terminated Instruction ..
It will seem strange at first that many circumstances which terminate

execution of an Instruction while it is s·',i11 incomplete are defined as
"normal" and do not cause a brancho

However)) in the design of the system the
j

list of terminations which were to be defined as YRnon=normal''l was carefully
chosen for maximum convenience to the programmero

It must be understood.? first.? that although the READ TAPE Instruction
says tiRead N recordsg1:J it

mex always terminate before the full .N

records have

been read.? and this termination is defined as t8normali9 if at least one record
has been read without incidento
interpreted as

I~Read

not

~

Therefore~

than

the READ TAPE Instruction must be

N ,record.s n

J>

with the recognition that other

circumstances will determine exactly how many records are actually to be read o
In reading Magnetic

Tape~

the programmer must allocate an area of

memory to receive the information being read

o

In order to operate most

efficiently, and minimize tape starts and stops, he should arrange to fill
this area as completely a.s possible with each READ TAPE Instruction.
If the file being processed consists of fixed-length records, there
is no difficulty in deciding how many records shall be specified in the Instruction.
But if the file consists of variable-length records, there is no
way of anticipating 9 in advance of each READ TAPE Instruction, how many
records will fit into the allocated memory

SpaC60

Therefore the READ TAPE Instruction specifies:
ftRead as many records (not exceeding N) as will fit
into the allocated memory space o Then terminate,
and note how many records were read$n
The tally of the number of records read is automatically stored in
Cell @OO, as described later 9 and in this case, the termination is defined
as "normal", if at least one record has been reado

With a single Instruction,

following the READ TAPE, the programmer then plants this tally in a COUNT
Instruction, so that the correct number of records will be processed, and
also in the succeeding WRITE TAPE Instruction, so that the correct number of
records will be recorded on the updated file

tape~

E'ven though fixed-length records are being processed, a READ TAPE
Instruction may be terminated by a reading error, or by finding a Control
Record, before the full N records have been reado
or the Control Record, is the

ve~first

Unless the error record,

record read, this information is of

no value at this point9 since the preceding records read must be processed
and disposed of before dealing with the error record or Control Reeordo
Therefore, if at least one record has been read, before the error record or

TIl-Tapes-6

the Control Reeord:; this terminati.on is also defined as nnormal ti !1· and the
tally of records read:; not including"the errer record or the Control Record,
is automatically stored in Cell @OOo
Instruction:; the Control Record

or

On the next repetition of the READ TAPE

(if the error persists) the error record

will be encountered again:; but this time it will be the first:; and only:;
record reado

The Processor will branch after termination of the READ TAPE:;

to execute that portion of the program which deals with READ errors.9 or with
Control Reeordso
Similarly.9 if READ TAPE is terminated by reaching the end of the

tape:; less than N records will have been read, but as long as at least one
record has been

read~

the information that end=of-tape has been reached is

of no value until after those records which have been read are proeessedand

disposed of$

Therefore;; this

termination~

t©)of} is defined as ltnormal" if at

least one record has been read J and the tally of records read is automatically
stored in Cell @OQo

The next time the READ TAPE is executed j the end of the

tape will again be encountered 9 and the Instruetion will terminateo

But this

time:; the Processor will not have read flat least one reeord t1 ; no records will
have been

read~

and the Processor will branch after termination of the READ

TAPEjI to execute that portion of the program which alternates Handlers so

that the next reel of the file may be processedo
Thus 9 by defining termination as unormal" whenever at least one

record has been read without incident

j

information about an unusual situation

is made available at just the moment when it can most efficiently

an~

con-

veniently be used o
It is not necessar,y to discuss in detail other unusual terminations
of Magnetic Tape l:nstruetions which are defined as tinormal tS

IV=Tapes=7

j

since increasing

familiarity with the system will bring out the reasoning behind the definitions o
REJECT MARK g

A Reject Mark is the ~haraeter i~WR (code 11 1110) recorded in

character-position 3 of the first word of a record

0

Such a record will be

nrejected tt by COpy and SEARCH, in the sense that the record will never ca.use
the operation to terminate 9 regardless

~f

any corresponqence between the

Search Key in the record 9 and the Search Control stored in Memoryo

A Reject

Mark has no significance during READo
The Reject Mark is used with files in which items may be longer than
the maximum record-length (100 words), such items will be recorded as two or
more records -- a "first n record 9 and as many ntrailers U as necessary
In some files

j

each item consists principally of account number,

descriptive information 9 several
tionso

0

balanees~

and a sequential list of transac-

The main posting operation consists of locating each active account,

adjusting the balances 9 and adding the eurrent transactions to the list o

In

such a case, the balances will be carried in the last reeord J the account number
repeated in each record J and every record except the last
will contain the Reject Marko
each

file-item~ with'~nly

updating

0

~

for each file-item'

Then the COpy will stop on the last record for

this one record being brought into the Processor for

There will be a periodic (perhaps monthly) operation in which the

descriptive information and transaction lists will be printed out, and each
file-item reduced to a single minimum=length record, this operation will require Reading and Writing every record, and the Reject Mark will have no signifi-

canee at that time

o

Some other files containing multi-record

items~

require that a good

deal of identifying information be stored in ea.ch tifirst U record, and various
operations on the file may call for different Search

Keys~

In order that a

Utrailertt record (.containing information irrelevant to the Se?-rch) should
not, by coincidence, satisfy the Search Condition, the programmer 'need only,
arrange to record the Reject Mark in every record except the first

~for

each file-item 9 and the SEARCH or COpy will stop only on "first" records

0

The presence of the Reject Mark ina Ittrailer u record nullifies, in effect,
the preceding ERM-BRM during the SE'ARCH or COPY, and therefore each f11e-i tem
is treated by the SEARCH or COpy as though it were a single record of indefinite length"
CONTROL RECORD MARK (CRM) ~
A CRM is the character

i9

v n (code 11 1101) recorded in charaeter-

position 4 of the first word of a reeordo

A Control Record will cause termi-

nation of any READ, COpy or SEARCH, with appropriate branches as specified in
the Jump Table o

A common use of the CRM is to mark the end of a file

j

or of

a section of a fi1eo

If a record contains both a ORM and a Reject Mark, it will be
treated as a Reject Record by SEARCH and COpy ~bu.t as a CRM Record by READ.

IV=Tapes-9

CELL

@OO

As its last act during execution, before permitting the Processor

to proceed to the next Instruction, every Magnetic Tape Instruction automatically stores certain information about itself in Cell @OO, where the program
may later refer to that

Op~

Co, Sh, Dh:

information~

Operation code of the Magnetic Tape Instruction which set up (@OO).
Controller, Source-Handler, Destination-Handler numbersaetually
used by the Instruction.
i.e . -Those named in the Instruction, modified by the
contents~f an Index Registero

K:

Differentiates between:

Busy or Use Lockout
Branch without execution
or after temination

T:

After READ, Tally of number of complete records correctly read.
After any other Magnetic Tape Instruction, T = b .

Q:

Address of the Instruction which set up (@OO).

Significance of K:
After exit to Jl -- Leftmost bit-position of K contains:
l~bit
O~bit

if Handler is in Use Lockout state.
if Controller or Handler is busy.

After any other exit:
K = 0 if Branch after termination.
K f Oif Bran~h without execution.

IV'-Tapes-10

INDEX REGISTER§ and FILE MANAGEMENT

As with all other Instructions, the first word of every Magnetic
Tape Instruction can be modified by the contents of an Index-Register, as
specified by the § and

~

digits in the Instruction

0

For this function,

the A-syllable of the Instruction is treated just as though it: ,were an '
address

0

In examining the Instruction formats, it will be seen that Co
(Controller number), Sh (Source-Handler
number) are specified in the same

number)~

and Dh (Destination-Handler

character~positions

in every Magnetic Tape

Instruction, although Dh is irrelevant to some Instructions, and Sh is irrelevant to otherso
As a

result~

it becomes quite convenient to designate all Magnetic

Tape Instructions referring to the Source and Destination Tapes of a single
file, as relative to the same Index-Register

Usually, in fact, every

0

Magnetic Tape Instruction will be written as though it referred to Controller

110, with the actual numbers

#0, Source-Handle r #0:) and Destination-Handle r

bei:ng specified entirely in the Index-Register

0

Therefore, for example,? to

charge Handlers in order to process successive reels of a long file, it is
sufficient to alternate a single digit in the Index-Register for the SourceHandler or for the Destination-Handler" and then'resume the program.; each of
the many Magnetic Tape Instructions used in Gonnection with that file will
thereby be modified to refer to the alternate

IV-Ta.pas-II

Handler~

STANDARD

TAPE

EXECUTIVE

PROGRAM

In writing the programs for any file-processing operation, the
programmer soon learns that processing the data is only part of his task.
He must also devote a good deal of attention ~nd effort to a wide range
i

of problems, which may arise at any point during the processing operation,
and which are concerned with management of the file (as distinct
processing the information in the file);.

from

File Management includes the

sequential processing of successive reels olMagnetic Tape within the
file, and proper handling of 'those input and output tapes which are relevant to the file being processed.
Conditions such as Busy, End of Tape, Error, End of Input, End

ot File, &c, must all be detected whenev.er they occur, "and each condition
, requires that appropriate "housekeepingl!tl action be taken within the program.

These "housekeepingl! chores are numerous, and may be classified,

as follows:
1)

Testing, in order to detect that some situation has arisen which req~res "housekeeping" action,

2)

Identifying ,the condition, and branching to the proper subroutine. to
take oare of precisely that single condition.

3')

Further testing and identifying, since two or more such conditions
might arise simultaneously.

4) Writing standard programs to perform those chores which are substantially the same for all file operations •.
5)

Writing a few additional programs for handling those conditions whose
significance is unique to the immediate operation being performed •
. It has already been pointed out that the electronics of the

Magnetic Tape System automatically perform the first three functions.

IV-Tape,s-12

Not only is the programmer thereby relieved of a good deal of time-

consuming (and therefore expensive) effort!' but it becomes impossible
for him to oyer-look, and thus fail t.o provide for, any clrcmnstance or

combination of circumstances whose possibility does not. happen to occur
to him.

In order that the programmer may also be relieved of the necessi ty of providing for function 4, a Sta:... 'Llard Tape Executive Program

(STE P) has been writ ten to perform a.ll routine chores for him.

The pro-

grammer may, in a sense, look upon STEP as haying been "built in" to
the Processor since, from his point of view, it occupies no space in the
Processor Memory.
The entire STEP prog:r-an1 is stored in the

If

special cells 11

(@OO-@99, ¢OO-¢99, 000- 099 ~ ~OO~ tJ.99), leaving the full capacity of the

Ma.in Memory available for the operating program and for data.

No memory

space is sacrificed to these chores, and no program iloverlaysft are ever
necessary in order to perform them.
Even though the chores which STEP performs for the programmer
are substantially the same for all file operations, there are many options
available to the programmer within STEP.

He may wish to intervene with

some special programming of his own in·the middle of an otherwise routine
chore, or he may wIsh to omit certain features of STEP altogether; to do
any of these, he need merely $pecify t.o

STEP which of the available op-

tions he wishes to exercise.
The detailed characteristics of STEP have been published in a
separate manual, but they may be summarized briefly here:

IV~Tapes-13

LABEL-CHECK:

The first record on each reel of Magnetic Tape will be recorded
as a descriptive label, containing File Name; Reel Number within
the File; Date Recorded; and (if desired) Date on which the information becomes obsolete, when the tape may safely be used for
other purposes ..
Before parmitting each new Source-Tape reel to be processed, STEP
verifies that the correct reel, of the correct file, recorded on
the correct date, is about to be processed.
Before permitting each new Destination-Tape reel to be processed,
verifies (if" desired) that the information previously recorded on this tape' is obsolete; STEP then records a new labelrecord on this tape, to identify it when it will later be used as
a Source-Tapeo The programmer will specify, separately for each
file, whether or not this check is desired, and if so, he will
then specify the length of time for which that file must be protected.

STEP

END OF TAPE:

Rewind the Handler; set Use Lockout if desired; if this is End
of Source-Tape inform the operator (through the Console Typewriter)
which reel is now to be mounted on the rewound Handler; if this is
End of Destination-Tape inform the operator what label is to be
placed on the reel which is to be removed from the rewound Handler.
If a multi-reel file is being processed, modify the appropriate
Index-Register so that the entire program now refers to the alternate Handler; if End of Tape is encountered within what should be
a single-reel file (no alternate Handler specified), STEP Will
type an appropriate alarm on, the Console Typewriter, and halt the
Processor . .
The programmer has the option of inserting a program of his own,
before the Handler is rewoundo
ERROR:
Repeat a specified number of times; resume if satisfaotory;
otherwise halt.

DEFECTIVE SPOT ON THE MAGNETIC TAPE SURFACE:
Automatically skip over all defective spots without attention from
the programmer or the operator; provide a record of the number of
such spots on each reel o
BUSY:
Wait; that is, continue to repeat the same Instruction until the
Controller is no longer busy, and can accept the operation.

IV-Tapes-14

The programmer has the option, if there is alternative work to
be time-shared, of taking this exit out of STEP,

~nd pro~>

gramming it himself.
USE LOCKOUT:
Halt, ready to resum.e.. The programmer has the option of programming this condition himself ..
RESCUE PO INTS:

If desired, STEP will establish a rescue point each time a
reel of Magnetic Tape is rewound, and perform a "memory dumplt
on a specified Magnetic Tape.
rOOTS TRAP FOR RESCUE PROGRAMg

The Rescue Progra..m reads the last rYmemory dumpl1 back into
Memo r.y , positions every reel of Magnetic Tape at the place
corresponding to the rescue point~ and resumes execution of
the program from thereo
Note that~ since a rescue point is established just before beginning each new reel of Magnetic Tape, the latest rescue point
always corresponds to the precise reels of tape which are
mounted on the Handlers at any~omento Therefore, the rescue
procedure requires no manual reel-changing, and operates entirely
under the automatic control of the Rescue Program.
EXECUTIVE PROGRAM:
Furnishes a simple:, convenient tool for proce'eding from. one
program to another, either automatically under.program control,
or manually under operator control~ All tape-exit conditions
which may arise while reading or recording program-tapes are
covered
0

ALWAYS READ ttNU RECORDS~
There are occasional circumstances in which the programmer,
having called for the reading of ,gNli records from a Magnetic
Tape, is not content with obtaining fewer than UN" reco rds
He
then follows the READ with COMPARE NUMERIC; if uNn is greater
than (@OO:43) he names as a branch address ·a specified cell
within STEP, whereupon'. a special subroutine will perform.
all necessary nbookkeepingn and cause the remaining records to
be read into the proper area of Memory.
0

STANDARD HALT LOCATION~
It often happens that some exits cannot (theoretically) occur
while running certain programs o For example, a program Which
does not use COPY is not expected to encounter conditions which

IV-Tapes-15

can only arise during a COPY. Such exits might occur as the
result of malfunction or programming error; and in any ease,
the 304 Magnetic Ta.pe System requires that every branch be
specified; whether or not ,the programmer thinks it can occur.
For such branches, he will specify the Standard Halt Location
wi thin STEP
F rom this point, a standard (and simple)
prescribed'procedurewill permit the operator to resume the
processing, invoke the Rescue Program, or call for a complete
re-run; each of these options may be chosen with or without
a printout of the contents of Memor.y_
0

rl-Tapes-16

AS A CONSEQUENCE OF THESE FEATURES OF STEP,
THE ONLY T APE

CONDITION~ WITH

WHICH THE

PROGRAMMER NEED CONCERN HIMSELF ARE:

{H't"

{H~

CONTROL RECORD MARK:
INEQUALITY TERMINATION OF

COPY~

Since the programmer may, in designing his program, attach
any significance he chooses to these two circumstances, STEP
does not provide for these exits. The progrrunmer write his
own programs for these two circumstances
0

{H(-

BUSY:

If the programmer wishes to time-share a COpy with processing,
he will, of

course~ program this exit himself.
will not concern himself with it~

A complete SUMMARY OF

pages, in which all possible

TAPE~EXIT

Tape~Exit

Otherwise he

TABLE appears on the following

conditions are listed.

This table

is, of course, quite formidable; yet it should be appreciated that (aside
from the comprehensiveness due to a highly sophisticated Magnetic Tape
processing system), the entries in the table are typi,~al of the conditions
which must always be detected J

identified~

and programmed for, whenever

an Electronic Data-Processor uses Magnetic Tape Files

o

This table, however, is of little more than academic interest
to the programmer, except as an indication of the amount of work which the

304 Magnetic Tape System, and STEP ~ have removed from his shoulders.
He may thus devote his entire time and effort to the processing job itself,
and write his programs as though all Magnetic Tape equipment remained
eternally perfect, and as though all Magnetic Tapes were in fact endless.

N-Tapes-17

NORMAL TEItMHtATIttNTAKE NEXT INSTRUCTION IN SEQUENCE

TAN NllTlttIt.
AFTER TERMINATION.

TALLY IN

~:43

READ AT LEAST ONE RECORD;
TERMINATE BECAUSE:

!

SUMMARY OF
TAPE-EXIT TABLE

SHOULD TWO OR MORE CONDITIONS ARISE SIMULTANEOUSLY
THEY ARE TESTED IN THE FOLLOWING SEQUENCE:

RECORDS READ.

TO READ THE NEXT RECORD.

CHM ,AFTER FIRST RECORD.

TO READ THE CRM RECORD.

ERROR AFTER FIRST RECORD.

TO READ THE ERROR RECORD.

EXCEED MEMORY AFTER FIRST RECORD.

TO READ THE INTERRUPTED RECORD.

END OF TAPE AFTER FIRST RECORD.

AT THE TRAILER.

INDEX OVER AT LEAST ONE RECORD;
TERMINATE BECAUSE:

!

RECORDS INDEXED OVER.

TO READ THE NEXT RECORD.

CRM AFTER FIRST RECORD.

TO READ THE CRM RECORD.

ERROR AFTER FIRST RECORD.

TO READ THE ERROR RECORD.

END OF TAPE AFTER FIRST RECORD.

AT THE TRAILER.

!!

RECORDS INDEXED OVER.

TO READ THE Nth RECORD.
AT THE LEADER.

CONTROLLER BUSY.
PREVIOUS ERROR.
PREVIOUS INEQUALITY TERMINATION.
PREVIOUS WARNING ON DESTINATION TAPE.
I

PREVIOUS END OF SOURCE TAPE.
BUSY HANDLER OR USE·LOCKOUT.
EXCEED MEMORY ALLOCATION.
ERROR.

DETECTED
DURING
EXECUTION

CRM.
INEQUALITY TERMINATION OF WRITE·COPY·READ.

NUMBER OF RECORDS
INDEXED OVER.

INDEX OVER AT LEAST ONE RECORD;
TERMINATE BECAUSE:

BEGINNING OF TAPE AFTER
FIRST RECORD.

DETECTED
BEFORE
EXECUTION

NUMBER OF COMPLETE
RECORDS READ CORRECTLY.

. WRITE!! RECORDS CORRECTLY.

TO WRITE THE NEXT RECORD.

IF V = 0,1 NO END·Of·TAPE WARNING
SIGNAL ENCOUNTERED.

WARNING ON DESTINATION TAPE.
END OF SOURCE TAPE.

WRITE THE RECORD WITHOUT ERROR.
ANY OTHER CIRCUMSTANCE DURING
EXECUTION IS TREATED AS OFf·LlNE.
FOR TERMINATION OF Off·L1NE PORTION,
SEE OPPOSITE PAGE ••

EQUALITY TERMINATION OF COPY·READ.
THE TERMINATING RECORD IS IN THE MEMORY.

SOURCE TAPE
TO READ THE NEXT RECORD.
DESTINATION TAPE
TO WRITE THE TERMINATING RECORD.

NUMBER OF RECORDS
INDEXED OVER.

BUSY OR USE·LOCKOUT
J 1

ERROR
DURING READ
J2

CONTROL RECORD MARK
CRM
J3

BUSY COPYING
REWINDING
REPOSITIONING
(@OO:55)( u+u

END·OHAPE WARNING SIGNAL
ON DESTINATION TAPE
J4

END OF SOURCE TAPE
J5

WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.
(@00:55) -::J- 0

(@OO:55)

USE·LOCKOUT ON HANDLER
(@OO:55)~ u+,.
ERROR IN THE!!!!!! RECORD READ.
TALLY IN @00:43 IS ZERO.
(@OO:55)=O
TO RE·READ THE ERROR RECORD.

CRM IN THE

.E!.!!!! RECORD

ONLY THAT RECORD IS READ.
THE TALLY IN @00:43 IS 1.

(@00:55)=0

TO READ THE RECORD FOLLOWING THE CRM RECORD.

AT THE TRAILER.

/

(@OO:55) ::j:. 0

USE·LOCKOUT ON HANDLER
(@OO:55) ~ u+u

{@00:55)=0
R~AD!lECDRD 10llOWING
ERROR RECOR •

0

R
E

WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.

TALLY IN @OO:43 IS ZERO.

1=

EXIT
WITHOUT EXECUTION

END OF TAPE WAS ENCOUNTERED BEFORE ~
RECORDS WERE READ.
TALLY IN @OO:43 IS ZERO.
(@00:55) = 0

READ.

BUSY COPYING
REWINDING
REPOSITIONING
(@OO:55)( u+,.

ERROR IN THE!!!!! RECORD READ.

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.

CRM IN THE FIRST RECORD INDEXED OVER.

EXIT

TAPE POSITION AFTER TERMINATION

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.
(@OO:55)

:F-

EXIT
WITHOUT EXECUTION

0

THE TALLY IN @OO:43 IS 1.

TAllY IN @00:43 IS ZERO.

(@00:55)=o

(@OO:55) = 0

TO READ THE RECORD FOLLOWING THE CRM RECORD.

(@Oo:55)

#-

0

F
0

EXIT

R
W

AFTER TERMINATION

R
D

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.

EXIT
WITHOUT EXECUTION

(@oO:55) -::J- 0

B

LEADER WAS ENCOUNTERED BEFORE !!!! RECORDS
HAVE BEEN INDEXED OVER.
TALLY IN @OO:43 IS ZERO.

A

EXIT

C
K
W

AFTER TERMINATION

A

(@00:55) = 0

-

AT THE lEADER

(@00:55) ::j:. 0

(@OO:55)

#-

0

R
D

TAPE POSITION AFTER TERMINATION

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.

USE·LDCKOUT ON HANDLER
(@OO:55)~ u+u

I
N
D

E
X

USE·LOCKOUT ON HANDLER
u+,.

WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.

A

TAPE POSITION AFTER TERMINATION

(@00:55)~

BUSY COPYING
REWINDING
REPOSITIONING
(@00:55)( u+u

I
N
D

E
X

AT THE TRAILER.
WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.

D

AFTER TERMINATION

END OF TAPE WAS ENCOUNTERED BEFORE!!!!
RECORDS WERE INDEXED OVER.

ONLY THAT RECORD IS INDEXED OVER.

BUSY COPYING
REWINDING
REPOSITIONING
(@00:55)( u+u

A

EXIT
WITHOUT EXECUTION

W
WARNING SIGNAL DURING WRITE,

.!!!!!:!

R
I

IF V = 0,1.

!! RECORDS ARE WRITTEN.

EXIT

TAPE FROM LAST ERM TO TRAILER IS ERASED.

AFTER TERMINATION

THE FULL

T
E';

(@00:55) = 0
AT THE TRAILER.
BUSY COPYING
REWINDING
REPOSITIONING
(@OO:55)(u+u

TAPE POSITION AFTER TERMINATION··

WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.
(@00:55)

oj: 0

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.
(@00:55) =t:. 0

EXIT
WITHOUT EXECUTION

W
R
I ,

T
E

-C

USE·LOCKOUT ON HANDLER
(@00:55) ~ u+u
AFTER

TE~'UTNATION

0

P
Y

TAPE POSITION AFTER TERMINATION
BUSY COPYING
REWINDING
REPOSITIONING
(@00:55) u+"

WARNING ON DESTINATION TAPE DURING PREVIOUS
WRITE·COPY ON SAME CONTROLLER.

<

(@00:'5) ::j:. 0

USE·LOCKOUT ON HANDLER
(@00:55) ~ u+,.

END OF SOURCE TAPE DURING COPY PORTION
OF PREVIOUS WRITE·COPY ON SAME
CONTROLLER.
(@OO:55) =t:. 0

-

EXIT
WITHOUT EXECUTION

W ..
R
I

T
E

CRM HAS TERMINATED THE COPY·READ WITH
CRM RECORD IN THE MEMORY.
(@OO:55)=0

WARNING ON DESTINATION TAPE DURING WRITE
OR COpy PORTION.
FINISH WRITING OR COPYING THE RECORD
DURING WHICH THE WARNING WAS SENSED.

END OF SOURCE TAPE HAS TERMINATED
THE COPY·READ.
(@00:55)

=

0

C
0

EXIT
AFTER TERMINATION

ERASE DESTINATION TAPE TO TRAILER.
(@OO:55) = 0
SOURCE TAPE TO READ THE RECORD FOLLOWING
THE CRM RECORD.
DESTINATION TAPE TO WRITE THE CRM RECORD.

P
y

-

R
E

A
D

SOURCE TAPE TO READ THE NEXT RECORD.

SOURCE TAPE AT THE TRAILER.

DESTINATION TAPE AT THE TRAILER.

DESTINATION TAPE TO WRITE THE NEXT RECORD.

TAPE POSITION AFTER TERMINATION

ERROR
DURI ... WRITE
J6

ERROR
DURING THE NON·WRITE PORTION OF WRITE·COPY OR WRITE-eOPY·READ
J 7
E~ROR

EXIT

DURING THE COPY PORTION OF A PREVIOUS WRITE·COPY
ON SAME CONTROLLER.
(@OO:55)"# 0

WITHOUT EXECUTION

NON·EQUAL TERMINATION
J 8

ERROR
DURING!!!!!! PORTION OF WRITE·COPY 011 WIIITE·COPY·READ
J 9

INEQUALITY TERMINATION OF COPY PORTION OF
PREVIOUS WRITE·COPY ON SAME CONTROLLER.
(@00:55)

t:-

0

R

E

A
D

EXIT
AFTER TERMINATION
TAPE POSITION AFTER TERMINATION

I
N
D

E

ERROR DURING THE COPY PORTION OF A PREVIOUS WRITE·COPY
ON SAME CONTROLLER.

EXIT

(@00:55)

WITHOUT EXECUTION

t:-

0

INEQUALITY TERMINATION OF COPY PORTION OF
PREVIOUS WRITE·COPY ON SAME CONTROLLER.
(@OO:55)"# 0

X
F
0
R

W

EXIT

A
R
D

AFTER TERMINATION
TAPE POSITION AFTER TERMINATION

I

EXIT

N
D

WITHOUT EXECUTION

ERROR DURING THE COPY PORTION OF A PREVIOUS WRITE·COPY
ON SAME CONTROLLER.
(@OO:55) =f; 0

INEQUALITY TERMINATION OF COPY PORTION OF
PREVIOUS WRITE·COPY ON SAME CONTROLLER.
(@OO:55) =f;' 0

E

X

B
A
C
K

w
A
R
D

EXIT
AFTER TERMINATION

TAPE POSITION AFTER TERMINATION
ERROR DURING THE COPY PORTION OF A PREVIOUS WRITE·COPY
ON SAME CONTROLLER.

EXIT

(@00:55) =f; 0

WITHOUT EXECUTION

INEQUALITY TERMINATION OF COpy PORTION OF
PREVIOUS WRITE·COPY ON SAME CONTROLLER.
(@OO:55)

t:-

0

W
R

I
T
E

EXIT
AFTER TERMINATION

ERROR IN ANY RECORD DURING SINGLE
OR MULTIPLE WRITE.
THE FULL

~

RECORDS ARE

~

WRITTEN.

(@OO:55)=0
TAPE POSITION AFTER TERMINATION
.,-

W
R

I
T
E

EXIT
WITHOUT EXECUTION

TO WRITE THE NEXT RECORD.
ERROR DURING THE COPY PORTION ,OF A PREVIOUS WRITE·COPY
ON SAME CONTROLLER.
(@00:55) =f; 0

INEQUALITY TERMINATION OF COPY PORTION OF
PREVIOUS WRITE-COPY ON SAME CONTROLLER.
(@00:55) =f; 0

-C
~

0
p

y

EXIT
AFTER TERMlNATION

ERROR DURING WRITE PORTION.

TAPE POSITION AFTER TERMINATION

-

EXIT
W
R

I
T
E

WITHOUT EXECUTION

-C
0
p
y

-R

EXIT
AFTER TERMINATION

SAME AS BEFORE EXECUTION.
ERROR DURING THE COPY PORTION OF A PREVIOUS WRITE-COPY
ON SAME CONTROLLER.
(@00:55)

t:-

0

ERROR DURING THE COPY OR READcpORTlON
OF WRITE·COPY·READ.
(@00:55) = 0

INEQUALITY TERMINATION OF COpy PORTION OF
PREVIOUS WRITE·COPY ON SAME CONTROLLER.
(@00:55)"# 0

INEQUALITY TERMINATION OF COPY·READ.
THE TERMINATING RECORD IS IN THE MEMORY.
(@OO:55) = 0

E

ERROR DURING WRITE PORTION.
THE FIRST 10 WORDS OF THE RECORD ARE OBLITERATED
IN THE MEMORY.
(@00:55)=0

A
D

TAPE POSITION AFTER TERMINATION

(@00:55)=0

SOURCE TAPE TO RE·READ THE ERROR RECORD.

SOURCE TAPE TO READ THE NEXT RECORD.

DESTINATION TAPE TO WRITE THE ERROR RECORD.

DESTINATION TAPE TO WRITE THE TERMINATING RECORD.

SAME AS BEFORE EXECUTION.

/

"

TERMINATION OF
OFF-LINE PORTION OF WRITE-COPY

MARKER
SET

TAPE POSITION AnER TERMINATION
SOURCE

DESTINATION

INEQUALITY TERMINATION.
J8

}

TO READ THE
TERMINATING RECORD.

TO WRITE THE
TERMINATING RECORD.

EQUALITY TERMINATION.

NONE

CRM.

NONE

TO READ THE
CRM RECORD.

TO WRITE THE
CRM RECORD.

ERROR.

I 7

TO RE·READ THE
ERROR RECORD.

TO WRITE THE
ERROR RECORD.

WARNING SIGNAL ON DESTINATION TAPE
DURING WRITE OR COPY.

I 4

TO READ THE
NEXT RECORD.

AT THE TRAILER.

END OF SOURCE TAPE.

I 5

AT THE TRAILER.

TO WRITE THE
NEXT RECORD.

Language Code

TABLE IV-I:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

0

E

F

G

H

"

P

Q

X

y

10

+

J

K

L

M N

11

* #

S

T

U

TABLE IV-2:

V

W

If S

&

•

,

A

m n

8

p

%

£

$

(

)

I

d

s

u

V

W

X

@

¢

0
R

Z

SPA~E

Modification of first word of Instruction by Index Register

S-value
CSD syllable modified
4
1
Sum

9

S-values of syllables

I I

J syllable modified

Determines combination
of syllables modified.

4

2 ,.

1

= 0, no Index Register is used, and R is irrelevant..

TABLE IV-3:

Interchange of syllables in ¢OO

(¢ 00) before operation

p

Q

(¢OO) after operation
V

no branch

branch

positive

p

J

negative

p

J

REWIND

( .A

N D

SET

USE

L 0 CK0 UT )

This Instruction initiates the Rewind of the tape
mounted on any Handler on any Controllere

As soon as the Rewind

has been started, control of the actual rewinding is transferred
to the Handler, and both the Processor and the Controller are
free to perform any other operations not involving that Handler e
At the programmer's option, this Instruction will also
set a Use Lockout on the 'rewound Handler.

This Lockout will

prevent access to that Handler by any subsequent Instruction,
until the Lockout has bee~ released by the operator.

INSTRUCTION FORMAT:
987

6 543

Operation: REWIND (& SET USE LOCKOUT)
(WIND)
Operation Code: S
(L~CK)

210

IO~ co: Sh: Dh!{{:\=l::=\:::\:::;:m:l}! : J: I
IV IMis IR L~;Jrf\}\\f\\l@f\~jf\\\\\\~\\{\~
DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

automonitor level:

S:

designates syllabl,es for modification
by index-register OOR.

R:

designates OOR as index-register.

Co:

as modified by (OOR), specifies
controller number.

Sh:

as modified by (OOR), specifies
number of the source-handler
used in current processing.

Dh:

as modified by (OOR), specifies
number of the destination-handler
used in current processing.

~F·::··

ltJI·

J:

file-number, used by STEP.
IV-Tapes-12 .

See page

base of address of first word of
Jump Table.

V:

variation designator:
REWIND
Abbreviation
ONLY
:S

,,---0

WIND~D

1

~vIND

V specifies
Rewind She Dh irrelevant
Rewind Dh.

Sh irrelevant

IV-S-2

REWIND
& LOCKOUT Abbreviation
2

L6CK:S

3

LeCK:D

DESCRIPTION OF:

REWIND (AND SET USE LOCKOUT)

In order to achieve maximum convenience of tape-management by
using Index Registers, this Instruction can cause the rewind operation
to be executed on any Handler, whether specified in the Source-Tape
position, or in the Destination-Tape position, of the Instruction

0

As soon as the REWIND signal has been transmitted to the
specified Handler, both the Processor and the Controller are free from
the operation, and complete control is transferred to the Handler.
The Instruction may specify that a Use Lockout shall also be
placed on the Handler.

This lockout will cause a "branch without execu-

tionl1 of any subsequent Instruction which refers to that RandIer, and
the Processor will at that time select the next Instruction from one of
the alternate addresses listed in the Jump Table whose location is
specified, in the Instruction not executed, by

~o

The only circumstance which can be programmed for, which will
terminate REWIND, is reaching the Leader at the beginning of the tape.
Any circumstance which cannot be programmed for, if detected
before the REWIND begins, will cause an error-halt, with appropriate
indication in the Console lights.

If such a circumstance arises during

the REWIND, a "halt marker" will be set in the Controller, as in WRITECOpy.

Complete details of terminating conditions are shown on page
IV-S-4.

IV-S-3

TERMINATING CONDITIONS for REWIND

CAUSE OF TERMINATION

RESULT

Non-existent Controller, or two
Controllers have the same number

Processor "Hang-Up"

Non-existent Handler, or two
Handlers have the same number

Controller Error- Ha It

No Tape, or Broken Tape

Controller Error-Halt

Broken Tape during Rewind

Handler Error-Halt

Beginning of Tape

Stop Rewind, await next Instruction.
If specified, set Use Lockout.

IV-S-4

> BEFORE

I}

REWIND

DURING REWIND

Language Code

TABLE IV-1:

NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00
01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

&

•

,

A-

m n

8

p

@

¢

0

SPACE

10

+

J

K

L

M N

0'

P

Q

R

%

£

$

(

)

I

11

*

#

S

T

U

W

X

Y

Z

d

5

U

V

W

x

TABLE IV-2:

V

Modification of first word of Instruction by Index Register

S-value
4
CSD syllable modified
2
B syllable modified
1
J syllable modified
Sum
Detennines comb ina tion
of syllables modified.
If S

S-values of syllables
4

2

1

= 0, no Index Register is used, and R is irrelevant.

TABLE IV -3:

. Interchange of syllables in ¢OO

(¢OO) before operation
p

Q,
(¢OO) after operation

V

no branch

positive

p

negative

p

branch

Q.,~,

I Q,

(t)

I

21
2

I

J
J

READ

MAGNETIC

TAPE

It is most convenient to describe the READ TAPE Instruction
as though each of its four major functions were a separate Instruction:
Read Complete Records

Page IV-T-2

Read Partial Records

Page IV-T-4

Index Forward Without Reading

Page IV-T-4

Index Backward Without Reading

Page IV-T-6

Each of the first three functions will be terminated by a
Control Record.

Such a record was identified when it was recorded, by

storing a Control Record Mark (IIV" -- code 11 1101) in characterposition 4 of the first word of the record.
All functions will automatically detect the physical end of
the tape, and set up appropriate conditions to permit this circumstance
to be conveniently handled by the program.
All functions will operate on records of either uniform or
varying length.

IV-T-l

Operation: RE~ COl\1PLETE, REC9RDS(READ)

INSTRUCTION FORMAT:
9 g 7 6 543

loplQ) :sh!:fi:i:1

210

>: I >:

IvlMlslREfn

~

I

z

Opera tion Code:

T (V = 0)

I

I

DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

automonitor level:

S:

designates syllable,s for modification
by index-register OOR.

R:

designates OOR as index-register.

Co:.

as modified by (OOR), specifies
controller number.

Sh: . as modified by (OOR), specifies
source-handler number (handler whose
tape is to be read).
B:

base of address into which first word
of first tape-record is to be read.
file-number, used by STEP.
JJI-Tapes-12.

See page
If N = 0 the Instruction only
tests for branch before
execution, and does not
move tape. (READ:T)

N:

number of records to be read.
00 ~ N -E 99

Z:

number of words of processor memory
allocated for information to be read.
Z is an address-type number.

J:

base of address of first word of
Jump Table.

V:

variation designator:
V = 0 specifies READ Complete Records.

IV-T-2

DESCRIPTION OF:

READ MAGNET~C TAPE (Read Complete Records)

The Instruction specifies that the next N records (whether of
uniform or varying length), on the tape mounted on-the specified Handler,
shall be read into memory. The first word of the first record is to be
stored in Cell B, and successive words read from the tape are to be stored
in successive memory cells, Bel, B~2, etco The operat~o~ terminates with
the tape repositioned to READ again
0

•

•

It is important to appreciate the fact that Record-Marks
(BRM-ERM) exist only on Magnetic Tape, and are not recorded in Memoryo
Thus, once information has been read into Memory~·the Magnetic Tape
records lose their individual identities~ as such, and become simply a
string of items.
The Processor is free to proceed with the next Instruction as
soon as the last character of the last record has been read. Stopping and
repositioning the tape after the READ are supervised entirely by the
Controller.

A number of

circumstances~

all of which can be programmed for,

will terminate execution of the READ , with fewer than!:! records actually

having been read o Some of these circumstances are defined as "normal"
and will cause the Processor to select the next Instruction in the normal
sequence; the others will cause the Processor to select the next Instruction from one of the alternate addresses listed in the Jump Table whose
location is specified by ~.
Whether or not the full N records have been read~ the Processor
will always automatically store in-@OO~43 a tally of the actual number of
complete records correctly read. .
Any circumstance which cannot be programmed for, will cause an
error-halt·, with appropriate indication in the Console lights.

Complete details of terminating conditions are shown
IV-T-r-S.

rl-T-3

on 'page

Operation: READ PARTIAL RECORDS (READ:P)

or
INSTRUCTION
987

INDEX FORWARD (JNDX:F)

FORV~T:

Without Reading

6 543

Iopl ~: &bli::~:~::!l :B:

IV IMis IR [t;;~~1

If

210

I
I

>:

,W.,

Opera tion Code: T (V

I

= 2)

I

DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

M:

automonitor level:

s:

designates syllables for
by index-register OOR.

R:

designates OOR as index-register.

modifi~ation

Co':

as modified by (OOR), specifies
controller number.

Sh:

as modified by (OOR), specifies
source-handler number (handler whose
tape is to be read).

B:

base of address into which first word
of first tape-record is to be read.
file-number, used by STEP.
IV-Tapes-12.

See page

= 0 the Instruction only

number of records to be read.
00 ~ N ~ 99

If N

W:

number of words to be read from
each record (the first vI words)
000 ~ W ~ 099

J:

base of address of first word
of Jump Table.

If W = 0 the Instruction becomes
~ INDEX FORWARD N Records
without reading.
~ is irrelevant.
Minimum record is W ffi 1 words

V:

variation designator:
V = 2; specifies READ Partial Records
or INDEX FORWARD without reading.

N:'

tests for branch before
execution, and does not
move tape.

IV-T-4

DESCRIPTION OF:

READ MAGNETIC TAPE (Read Partial Records or Index Forward)

The Instruction specifies that the first W words from each of the
next N records (whether of uniform or vaFjing length), on the tape mounted
on a specified Handler, shall be read into memory. The first word of the
first record is stored in Cell B, and successive words read from the tape
are stored in successive memory cells, B®l~ B&2, etcQ After the first ~
words of a record have been read, the balance of that record is ignored
(although all accuracy-checks are made on the complete record)j and the
first word of the following record is stored in the next successive memor.y
cell. The operation terminates with the tape repositioned to READ again.
It is important to appreciate the fact that Record-Marks' (BRH-ERM)
exist only on Magnetic Tape, and are not recorded in Memoryo Thus 9 once
information has been read into Memory, the Magnetic Tape records lose their
individual identities, as such, and become simply a string of itemso
The time required to read the first ~ words of each record is
exactly the same as that required to read each l'ecord completely, since the
Processor is occupied during the entire length of each record. Hm'Tever, if
all the desired information is in the early portion of each record, then
reading only a portion of each record will permit more records to be read
in a single "gulp", and result in a saving of time because fewer tape
accelerations will be required. Furthermore, even though the complete
records may be of varying length, the portion of each record containing the
desired information may be of uniform length, with a resulting increase in
programming convenience.
The Processor is free to proceed with the next Instruction as
soon as the last character of the last record has cleared the Read Head.
Stopping and repositioning the tape after the READ are supervised entirely
by the Controller.
If the Instruction specifies that the first zero 1'JOrds of each
record shall be read, the Instruction becomes Index Forwardo
A number of circumstances, all of vThieh can be programmed for,
will terminate execution of the READ, with fewer than N records actually
having been read, or lndexed over. Some of these circumstances are pefined
as nnormal" and will cause the Processor to select the next Instruction in
the normal sequence; the others will cause the Processor to select the
next Instruction from one of the alternate addresses listed in the Jump
Table whose location i's specified by ~.
Whether or not the full II records have been read 9 or indexed
over, the Processor will always automatically store in @OQ:43 a tally of
the actual number of records read, or indexed over.
Any circumstance which cannot be programmed for, ~dll cause an
error-halt, with appropriate indication in the Console lights~
IV-T~.

Complete details of terminating conditions are shown

IV-T-5

on

page

Operator:

INSTRUCTION, FORl'LA T:

9

a

7 6 543

210

INDEX BACKWARD' (INDX:B)
Without Reading

Opera tion Code: T (V

lop leo :Sh 1::::::::::j::;:J::;:::::::::::!:::::::II : J: I
I v I MiS IR [y] ~ 1~~~~~l~l]rjI]rl~]

= 4)

DEFINITION
Op:

operation code.
0, 1, 2, 3.

M:

automonitor level:

s:

designates syllables for modification
by index-register OOR.

R:

designates OOR as index-register.

Co:

as modified by (OOR) , specifies
controller number.

Sh:

as modified by (OOR), specifies
source-handler number (handler whose
tape is to be indexed).
file-number, us ed by STE P.
IV-Tapes-12 .

N:

See page

number of records to be indexed over.
00 ~ N 6:

99

If N

= 0 the Instruction only
tests for branch before
execution, and does not
move tape.

J:

base of address of first word of
Jump Table.

v:

variation designator:
V = 4; specifies INDEX BACKWARD without reading.

IV-T-6.

DESCRIPTION OF:

READ MAGNETIC TAPE (Index Backward)

The Instruction specifies that the tape mounted on a specified
Handler shall be indexed backward ~ records (whether of uniform or var,ying length), without reading. The operation terminates with the tape
repositioned to READ.
If the Handler encounters the Leader at the beginning of the
tape, before the full ~ records have been indexed over, the Processor
will select the next Instruction from one of the alternate addresses
listed in the Jump Table whose location is specified by i.
Whether or not the full B records have been indexed over, the
Processor will always automatically store in @OO:43 a tally of the
actual number of records indexed over.
Any circumstance which cannot be programmed for, will cause
an error-halt with appropriate indication in the Console lights.

Complete details of terminating conditions are shown

IV-T-:-8.

IV-T-7

on

page

c

APPLIES TO
Q

TERMINATING CONDITIONS for READ MAGNETIC TAPE

a=
a=
... ...«j: «~ «~
Q

w
w

....

A.

:e

a=

a=

0

u

«
A.

0

Q

Q

><
w

«
«
w
w

u..

~

u

«
ca
><

w

Q

Q

a=

a=

~

~

X

X

X

x

x

x

x

x

x

x

NEXT
INSTRUCTION

CAUSE OF TERMINATION

AFTER EXECUTION
TAPE REPOSITIONED
TO READ

TALLY IN (@OO:43)

Sequence

Next Record

in 1st record

From J3

Next Record

after 1st record

Sequence

CRM Record

during 1st record

Processor
Error-Halt

Incomplete Record

after'! st record

Sequence

Incomplete Record

before 1st record

From J5

Trailer or Leader

0

after 1st record

Sequence

Trailer or Leader

# Records

in 1st record

From J2

Error Record

after 1st record

Sequence

Error Reco(d

N complete correct records

CD

REMARKS

N
CRM Record i! read or
Indexed over

1

CRM

x

Exceed Memory
Allocation

x
..-c

<

x

x

x

x

x

x

x

x

x

x

x

I

~
I

End of Tape
or
Beginning of Tape

co

\

).

Error
X

X

x

x

Record Less than WEt)l Words

Processor
Error-Halt

CRM Record not read
or Indexed over

# Records

.

.'.

0

# Records

(2)

Complete

0

# Records

Error Record in Memory
correct

\

,

x

x

x

x

Failure of Timing-Check

Controller
Error-Halt

x

x

x

x

Failure BRM-ERM Alternation

Controller
Error-Halt

CD

x

x

x

x

Non-existent Controller, or two
Controllers have the same number

Processor
"Hang-Up"

®

x

x

x

x

Non-existent Handler, or two
Handlers have the same number

Controller
Error-Halt

x

x

x

x

No Tape, or Broken Tape

Controller
Error-Halt

After Indexing Backward, Tape repositioned
to read the Nth record.
After Indexing Forward, Tape repositioned
to read the record following the Error Record.

TABLE IV-1:

NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

0

A

m

n

8

p

10

+

J

K

L

M

N

6'

P

Q

R

%

£

$

(

)

/

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

W

X

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4
2

1
Sum

If S

CSD syllable modified
B syllable modified
J syllable modified
Determines combination
of syllables modified.

S-values of syllables

4

2

1

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢OO) before operation
p

Q

( ¢ 00)

v

after operation

no branch
positive

p

negative

p

branch

Q.,e

121

J
J',.

WRITE-COPY
COP Y
SEARCH
The WRlTE-.COPY Instruction requires the assignment of two Handlers
(Source and Destination) on 'a single Controller
The Instruction performs three functions~
0

FIRST~

1)

Write one record~ of a specified length, on the Destination Tapeo
This function may be omitted at the programmerUs option~ in which
~ase the Instruction becomes COPY.

THEN~

2)

Copy the ~ecords from the Source T~pe onto the Destination Tapeo
This function may also be omitted at the programmerUs option~ in
which case the Instruction becomes SEARCH
o

AND~

3)

Examine each record on the Source Tape to determine whether it
satisfies a set of conditions specified in the Instruction When
such a record has been found, execution of the Instruction termi~
nates with the tapes properly repositioned to read that record from
the S-ource Tape, and to write it on the Destination Tape o
0

Immediately upon the conclusion of function 1 (the writing of one
control of the balance of the operation is transferred from the
Processor to the Controller as soon as the last character of the record
has been verified by the Read-Check Head and the Processor is free to
proceed with the program while the Controller independently performs
functions 2 and 30 During this shared time the Processor may perform,
without restriction, any other operation whatever which does not require
the use of that Controller; this includes all operations on other Controllers which may be part of the system o
record)~

j

j

Function 2 operates as a continuous flow of information from the
Source Tape to the Destination Tapeo Both tapes move at full speed
throughout the operation 9 and since there are no inter-record gaps on
ei~her tape~ no time is lost between recordso
.F\ffiction 3 may be conducted either as an Equality Search or as a
Range Searcho Equality Search terminates when a record is found whose
key is identical in every character-position with the Search Control Word
stored in Memo r.y Range Search terminates on any record whose key is
either greater than,9 or equal to, the Search Control Word, where I~greater
thanH is defined as following according to the alpha~numeric sorting sequence of the Processor code as shown in Table IV=lo The Search Control
Word may be split into two portions 9 with independent searches of either
type specified for each portion" It may also contain ltignore U characters
39 u wa (Code -11 1100);; which are 1iequal to anything II
0

0

A record may' contain a Control Record Mark (iRV" - Code 11 1101) in
character=position 4 of the fir~t word 9 and will then always terminate a
SEARCH or COpy
A record may contain a Reject Mark ( ta wt 9 ~ Code 11 1110)
in character-position 3 of the first word, and will then ~ terminate
a SEARCH or COpy" If both marks are present in the same record;; the
Reject Mark takes precedence
0

0

IV-U~l

INSTRUCTION FORMAT:
9 g 7 6 543 2 1 0

lop ICo : Sh: DhI

Operation: WRITE-COPY (WC)
COpy (CSPY)
Opera tion Code: U

: B: I :J: I

IvIM\sIR[t]DIY\

L

I

DEFINITIONS:
Op:
M:
S:
R:
Co,Sh,Dh:

B:

B 9 1:

L:

D:

Y:
J:

V:

If D=O:

operation code.
automonitor level: 0,1, 2, 3.
designates syllables for modification
by index-register OOR.
designates OOR as index-register.
If Dh = 8 or 9, the Instruction
becomes SEARCH. L is irrelevant.
ill 9 11 remains
s,earch control
words.

as modified by (OOR),
specify controller number,
source-handler number and
destination-handler number.

as

base of ' address from which first
word of tape-record is to be
written.
'
base of address of search control word.

May contain "ignore" character (u).

length of record to be written.
015 ~ L !:: 100

Minimum length of written record
is 15 words.
If L = 0, no record ~s written, and
the Instruction becomes COPY.

file-number, used by STEP. See
page IV -Tapes-12.
divides search control word into
right-hand (RH) and left-hand (LH)
portions. D is number of
characters In RH portion.
relative address, with respect to
first word of each record, of
Search Key.
base of address of first word of
Jump Table.
variation designator:
RH
Stop.on
LH
Stop on
EITHER
BOTH
Search
Search
Equality Equality
1
0
Equality
Range
2
3
Range
Equality
5
4
Range
Range
6
7

V
V

0,1,2,3 causes Equality Search
4,5,6,7 causes Range Search
N-U-2

0'

=D !: \7
No portion of the Search Key may
lie wholly within the 3D-field
of the first word of a record.

Marker Set for
."Inequality" Termination?
No
If Greater found on RH
If Greater found on LH
If Greater found on LH

DESCRIPTION OF:

WRITE-COPY

Write~
A single record, of the specified length, is recorded on the
tape mounted on the Destination Handler. The record which is to be recorded
is stored in Cell B and, in successive memory cells B®l, B®2, etc. As soon as
the WRITE is completed and checked, the Processor is freed from the operation,
and control is transferred to the Controllero If a zero-length record is
specified, the WRITE is omitted.

Q2Br: Without stopping the Destination Tape, the Source Tape is set
in motion, and the information from the Source Tape flows through the Controller
to the Destination Tape, and is written there. If the non-existent Handler
Number g or 2 is specified as the Destination Handler, the WRITE and COpy are
omitted
0

Search: While the information from the Source Tape is passing
through the Controller, a specified Search Key in each record is examined by
the Controller and compared with the Search Control_ stored in Cell B9lo When
the Search condition is satisfied, the operation-terminates with the Source
Tape repositioned to READ the terminating record, and the Destination Tape
repositioned to WRITE the terminating record, and the Controller awaits another
Instruction from the Processor.
TvlO circumstances, both of vlhich can be programmed for, may arise
during the WRITE:
Error during writing
End-of-tape warning signal

In both cases, the operation terminates without initiating the COpy
and SEARCH. In case of error during the WRITE, the Processor selects the
next Instruction from one of the alternate addresses listed in the Jump Table
whose location is specified by ~ in the te~nated WRITE-COPY Instructiono
In case of end-of-tape warning during the WRITE, a lYb:ranch-markeru is set in
the Control~er, which will cause the next Instruction addressing that Controller (pl"8sumably a READ) to branch without execution, as described below .

Any circumstance arising during the WRITE, which cannot be pro~
grammed for, will cause the" entire system to halt, with appropriate indication
on the console lights.
The COpy and SEARCfL-will normally terminate on liequalityfi (as defined on the opposite page)
However, a number of other circumstances, all
of which can be programmed forj may also terminate the operation; in ~ of
these cases, a "branch-marker" will be set up in the Controller.. The next
time any Instruction refers to that Controller, this marker will be detected,
and that Instruction will branch "without execution"; instead of executing
that Instruction, the Processor will at that time select the next instruction
from one of the alternate addresses listed in the Jump Table whose location
is specified, in the aborted Instruction, by ~.
0

Any circumstance arising during the COpy and SEARCH, which cannot
be progrannned for, will terminate the operation, and set a "halt marker"-in
the Controller. The next time any Instruction refers to that Controller~
this marker will be detected, and cause an error~halt, with appropriate in~
dication in the Console lights.
Complete details of terminating conditions are shown on page IV-U-4.

IV-U-3

TERMINATING CONDITIONS for WRITE-COPY
RESULT

CAUSE OF TERMINATION

E~ror during WRITE

SOURCE TAPE
REPOSITIONED
TO READ

Next Instruction from J9

DESTINATION TAPE
REPOSITIONED
TO WRITE

Same as start of Instruction

o
Z

r!-o
-c
Z;;o

Attempt to record a record of less
than 15, or more than 100, words

Processor Error-Halt

All other error conditions risted for
WRITE (page IV-W-4)

Same as for WRITE

Search Control all "ignores"

Copy is aborted.
No branch marker set

First record on the
Source-Tape

Record following the
written record

No branch marker set

Terminating Record

Terminating Record

Set marker for branch to J8

Terminating Record

Terminating Record

CRM

No branch marker set

CRM Record

CRM Record

End-of-tape warning on Destination
Tape during WRITE

Set marker for branch to J4

Same as at start

Trailer.
The record is written

"Equality" termination of COpy
"Inequality" termination of COpy

m_

~~

:::0

Q)
Q)

=i
m

o
c;;0

Z

G)

End-of-tape warning on Destination
Tape during COpy

Set marker for branch to J4

Next Record

Trailer

o

"T1

-;n

r-

End of Source Tape during COpy

Set marker for branch to J5

Trailer

Next Record

Z
m

()

Error during COpy

Set marker fOf branch to J7

Failure of Timing-Check

Controller Error-Halt

Failure alternation BRM-ERM
during COPY

Controller Error-Halt

Broken tape during COpy

Controller Error-Halt

Attempt to COpy onto Trailer

Controller Error-Halt

Error Record

CD

Error Record

Defined on page IV-U-2

o
"'C

-<

TABLE IV-I:

ZONE
BITS

NUMERIC
VALUE OF
ZONE BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

0

A

m

n

"

10

+

J

K

L

M

N

fr

P

Q

R

%

£

$

(

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

V

TABLE IV-2:

)

/

W

X

Modification of first word of Instruction by Index Register

S-value
4
CSD syllable modified
2
B syllable modified
1
J syllable modified
Sum
Determines combination
of syllables modified.
If S

p

S-values of syllables

I I

4

2

1

= 0, no Index Register is used, and R is irrelevant.

TABLE IV-a:

Interchange of syllables in ¢OO

(¢OO) before operation,

p

Q

(¢OO) after operation

V
no branch
positive

p

negative

p

branch

Q,~,

21

Ijt~j~jl~~I~~~~~~l)~~~I~~~ljjljl~jlill~l~~lifj~

Ili~i~~ill~~~il~J~ilj~jiJHl11Ijllil

p

Q

I

(f)

I

2

I

J

I::"

J

,J

WRITE-COPY-READ
COPY-READ
SEA R G::H - REA D

The vIRITE-COPY-READ Instruction require"s the assignment of two
Handlers (Source and Destination) on a single Controller. The Instruction performs four functions:
FIRST: 1.
Write one record, of a specified length, on the Destination Tape.
This function may be omitted at the programmerYs option, in which case
the Instruction becomes COPY-READ.

THEN:

2.
Copy the records from the Source Tape onto the Destination Tape.
This function may also be omitted at the progr~erns option, in which
case the Instruction becomes SEARCH-READ.

AND:

3. Read each record on the Source Tape into the Processor mem0r.1j
storing tbe first word of each record in the same cell so that each
record is stored "on top" of the previous records o
j

AND:

4.

Examine each record on the Source Tape to determine whether it
satisfies a set of conditions specified in the Instruction. When such
a record has been found, execution of the Instruction terminates 9 with
that record stored in the Processor memory, and with the tapes' properly
repositioned to read the followiI!g record from the Source Tape, and to
write the te~inating record on the Destination Tape.
During this entire operation, the Processor itself is controlling
execution of the Instruction.
Function 2 operates as a continuous flow of information from the
Source Tape to the Destination Tape. .Both tapes move at full speed
throughout the operation, and since there are no inter-record gaps on
either tape, no time is lost between records.
Function U may be conducted either as an Equality Search or as a
Range I Search. Equality Search terminates when a record is found "lhose
key is identical in every character-posi tion with the Search Control
Word stored in Memory. Range Search terminates on any record whose key
is. either greater than, or equal to, the Search Control Word, where
"greater than" is defined as following'according to the alpha-numeric
sorting sequence of the Processor Code, as shown in Table IV-l
The
Search Control Word may be split into t1tlO portions, with independent
searches of either type specified for each portion. It may also contain
"ignore" characters, "Ull (code 11 1100) which are' Ii equal to anybhinglj.
G

A re cord may contain a Control Record Mark (lIV" - code 11 1101) in
character-position 4 of the first word j and will then always terminat.e a
SEARCH or COpy. A record may contain a Reject Mark (IIWft - code 11 1110)
in character-position 3 of the first word, and will then never terminate
a SEARCH or COPY
If both marks are present in the same record, the
Reject Mark takes precedence.
o

IV-V-l

INSTRUCTION
987

FORV~T:

Operation: WRITE-COPY-READ (WC:R)
COPY-READ (C(1PY:R)
Opera tion Code: V

6 5' 4 3 2 1 0

loplCo: Sh:Dhl : : B I

IV IMis IR [r.;!!!l Diy I

>:

I

L

DEFINITIONS:
Op:
M:
S:
R:

operation code.
automonitor level: 0, 1, 2, 3.
designates syllables for modification
by index-register OOR.
designates OOR as index-register.

Co ,Sh,Dh:

as mOdifi'ed by (OOR),
specify controller number,
source-handler number and
destination-handler nmnber.
B': bas e of addres s :
-- from which first word of
tape-record is to be written;
--into which first 8 words of
each record copied are to be read;
-- into which complete terminating
record is to be read.
Bel:· base of addres~ of search control 'Vlord.

L:

D:

Y:
J:

V:

If D=O:

length of record to be written.
015 ~ L ~ 100

file-nUmber, used by STEP. See
page IV-Tapes-12.
divides search control word into
right-hand (RR) and left-hand (LH)
portions. D is number of
characters In RH portion.
relative address, with respect to
first word of each record, of
Search Key.
base o~ address of first word of
Jump Table.
variation designator:
LH
Stop on
EITHER
Search
Equality
0
Equality
2
Range'
4
6
Range
V

RH
Stop on
BOTH
Search
Equality
1
Range
3
Equality
5
Range
7

= 0,1,2,3 ,causes Equality Search

V = 4,5,6,7 causes Range Search

IV-V-2

If Dh = 8 or 9, the Instruction
becomes SEARCH-READ. L is
irrelevant. [B Q jJ remains
as search control word.

May contain "ignore" characters (u).
Minimum length of written record
is 15 words.
If L = 0, no record is written, and
the Instruction becomes COPY-READ.
OfD'~7

No portion of the Search Key may
lie wholly Within the 30-field
of the first word of a'record.
O~Y~7

Marker Set for
"Inequality" Termination ?
No
If Greater found on RH
If Greater found on LH
If Greater found on LH
(

DESCRIPTION OF ~

WRITE-COPY-READ

Write: A single record, of the specified length) is recorded
on the tape mounted on the Destination Handler.. The record which is to
be recorded is stored in Cell B and in successive cells B®l, B~2, etc o
If a zero-length record is specified, the WRITE is omitted.
~:
Without stopping the Destination Tape, the Source Tape
is set in motion, and the information from the Source Tape flows through
the Controller to the Destination Tape, and is written there. If the nonexistent Handler Number ~ or 2"is specified as the Destination Handler,
the WRITE and COPY are omitted
0

Read:
At the same time, each record from the Source Tape is
transmitted to the Processor and stored in memory. The first word of each
record is stored in Cell B, with successive 1'lords occupying· successive-memory cells. Therefore, the first record to be read replaces in memory
the record which was written on the Destination Tape, and each succeeding
record replaces the one before it. When the operation terminates, the last
record transmitted will remain in memoryo
Search:. During the COPY-READ, a specified Search Key in each
record is examined by the Controller, and compared with the Search Control
stored in Cell Bel. When the Search condition is satisfied, the op~ration
terminates with the Source Tape repositioned to read the record following
the terminating record, and the Destination Tape repositioned to write the
terminating record, and the Processor goes to the next Instruction~
The COPY-READ-SEARCH will normally terminate on It equali tylV (as
defined on the opposite page)
However, a number of other circumstances~
all of which can be programmed for, may also terminate the operation; in
~ of these ca"ses, the Processor will select the next Instruction from
one of the alternate addresses listed in the Jump Table whose location is
specified by i[.
0

Any circumstance which cannot be programmed for, will cause an
error-halt, with appropriate indication in the Console lights&

Complete details of

teI~nating

conditions are shown on page

NOTE:
If the Search Control, stored in -Memory, is the word nuuuuuuuuuu~u
~ all "ignore" ,'characters) then the Instruction becomes lrffiITE=READ" The
record in Memory will be written on the Destination Tape, the COPY will be
aborted, and the next record. from the Source Tape will be read into Mem0I"Y,9
with no repositioning delay between the WRITE and the READo It is sometimes
converrlent to process long records one at a time, and in such a case, WRITEREAD will defer all repositioning until after the READ is completed 9 when it
may conveniently be shared with processing.

TV-V-3

TERMINATING CONDITIONS for WRITE-COPY-READ
NEXT
INSTRUCTION

CAUSE OF TERMINATION

<:
I

<:
I

.p.

SOURCE TAPE
REPOSITIONED
TO READ

DESTINATION TAPE
REPOSITIONED
TO WRITE

CONTENTS OF MEMORY

"Equality" Terminafion

-@OO: 33, right-justified,
a.nd Rt is cleared in readiness for continued input.

IV-Z6-4

VJhen input tenninates, 0)00: 33 holds the number of input
crn,raeters contained in the last putavray.
The input process may be illustrated by the following diagram,
whieh shoHS Ri set to its full la-character length, and successive puta\v2.ys being made to the 90-field of Cells 647, 648, &c.

9876543210
Ready to start

I '10 0 01

R t

~

10

210

I

DATA BEING READ
9876543210
100000000001

ABCDEFGHIJKLMN6PQRSTUVWXYZ, .•

First character read

1000000000AI

BCDEFGHIJKLMNOPQRSTUVWXYZ .••

Next character read

100000000ABI

CDEFGHIJKLMNOPQRSTUVWXYZ .••

Next character read

10000000ABCI

DEFGHIJKLMNOPQRSTUVWXYZ .•.

Next 7 characters read

IABCDEFGHIJI

KLMNBPQRSTUVWXYZ ••.

Contents of Rt equals the
length of Ri (Ri is full)
(Ri :90) 647:90
(Rt:10) -@00:33

10

(£) 1

ClEARED

I. . .1,-0_0_1.1-!--..\..!0-LI_....JI

(£) 1

~ ~

~
~
~

Next character read
Next character read
Next 8 characters read
Contents of Rt equals the
length of Ri (Ri is full)
(Ri:90) 648:90
(Rt:lO) @00:33

®1

ClEAIED

0_0_2-i.1_L.10.J..I_,J

f f i·T
!...o
Z
l
L...·

Next character read

CLEARED
100000000001

KLMNOPQRSTUVWXYZ ..•

1000000000KI

LMN6PQRSTUVWXYZ .••

100000000KLI

MNOPQRSTUVWXYZ ..•

IKLMNOPQRSTI

UVWXYZ ..•

(£) 1

(LEARED

~ ~

10 0 0 0 0 0 0 0 0 0 I

UVWXYZ ...

~

loooooooooul

VWXYZ ..•

And so on - - - - - - - - -

Several control codes are available, and affect the input
process:
lIPutawav" code (f~ II) ,.all cause the putaway function to be
performed, even though Ri may not be completely full. If Ri is empty,
the "Putawayll Code vnll alKays be ignored. The operation of the "Putai'lay" Code is shOvffi in the follov,d.ng diagram:

@

0 0

~

9876543210
Ready to start

11

0 0 01

·10

i

1 0

I~

~

R i

2 1 0

9876543210

~100000000001

~
~

First character read
Next 6 characters read

DATA BEING READ

ABCDEFG-'HIJK .... LMNOPQRSTU .... VW ..•

1000000000AI

BCDEFG....HIJK.... LMNOPQRSTU .... VW ..•

1000ABCDEFGI

.... HIJK.... LMNOPQRSTU ....VW ...

Next character read is

"Putaway" .
(Ri :90) (Rt:lO) -

501 :90
<11,00:33

(£)1
Llo 0 11

ClEARED

17

!

I

Next character read
Next 3 characters read

~
~
~

(£)1

(LElIED

~Iooooooooool

HIJK.... LMNOPQRSTU .... VW ...

I 0 0 0 0 0 0 0 0 0 H'I

IJK.... LMNflPQRSTU ....VW ...

1000000HIJKI

....LMNOPQRSTU .... VW ..•

Next character read is

"Putaway" .
(Ri:90) (Rt :10) -

502:90
@00:33

(£)1
10 0 21

mAUD

141

I

Next 10 characters read
Contents of Rt equals the
length of Ri (Ri is full)
(Ri:90)- 503:90
(Rt:10) @00:33

(£)1

~

[GJ

ILMNBPQRSTUI

ClEARED

110 0 3!

lo!

110031

10\

ClEARED

01

~100000000001

I~

(£)1

LMNOPQRSTU .... VW ...
.... Vw ...

ClEARED

~Iooooooooool

.... vw ...

Next character read is
IIPutawayll .

Since Ri is empty.
"Putaway is ignored.
Next character read

7]

~ ~

100 000 0 0 0 0 0 I

~

10 0 0

And so on - - - - - - - - -

N-Z6-5

a

0 0 0 0 0

vI

VWoo.
Woo.

, ~~gonl12ute" Code (11.>. II) causes the putaway function to be performed
(unless RiiB 'empty), and terminates input
The Processor then resumes execution of the program, selecting its next Instruction from the address stored in
0

¢OO~20.

l!nshift and ~ift: Some code-systems conventionally used With
punched paper-tape are "shifting" codes
That is, two different charact'ers in
the code may be located on the same key of the tape-punching keyboard, and be
represented by the same configuration on the paper-tape. When a tape punched
in such a code-system is read by the Processor, many of the configurations
must be interpreted as one of tl'10 pas sible characters, according to the shiftposition of the tape-punching keyboard at the time that configuration was
Piinchedo
0

Therefore, all devices whlch punch such a "shifting" code will punch
distinctive configurations on the paper-tape whenever the "upshift" and "downshift" keys are struck. The Processor recognizes these configurations as
input-control codes, and switches back and forth from one set of decoding circuits to another as these codes are detectedo
The following input-control codes are used principally when typing
on the Console Type't'rriter, or 1tlhen recording programs on punched paper-tapa:

_ ".!!" (U new putaway address fo1lov[s"): This code causes the Processor
to store the next three input characters in Register Rp~ On the typewriter,
this'code is obtained by striking the flAil key in upper shift (see Typewriter
Code ,in Chapter VI) •
j

.
"..£11 (nnew starting address folloV1SII) ~ This code causes the
Processor to store the next three input characters in ¢OO:20. On the typewriter, this code is obtained by striking the nc" key in upper shift (see
Type·~'1I"i ter Code, in Chapter VI).

In detail, "a" and

n e"

perform the following functions:

- Clear Ri and Rt
Any pre-vious contents of these registers
is discarded.
~
- (Up) is not disturbed, at this point"
- Set the length of Ri to 3 characters.
- When (Rt) = 3 (i.eo Ri is full), the contents of Hi are
transferred to Rp or to ¢OO~20, as appropriate.
- The length of Ri is reset to that specified by the HALT
or READ PAPER TAPE Instruction
Hi and Rt are cleared .
- If a "putaway' code is received during this operation,
o

0

the Processor will error--halt .
- If a "compute" code is received d'G.ring this operation~
Ri and Rt are cleared (their contents being discarded),
'and the Processor reswnes execution of the program.

- Note that. the tallies in @OO~86 and @OO:33 are not
disturbed by an "a" or "c" operation.

tI~1I (II clear") l This code causes Ri and Rt to be cleared, and t.heir
c.ontents discarded; it furnishes a convenit~nt. method of correcting typing errors.
If "clear" occurs during an \I a" or !I e" operation, the length of Ri is also ~:-eeElt"
IV,-Z6- 6

In addition to these control codes, which can be punched into the
paper·,·tape or entered on the Console Typewriter, there are two circumstances,
which can arise during the READ PAPER TAPE operation, which the Processor
interprets as though it had received control codes.
Pari~v ~~
Many of the 'codes which are used with punch~d ~aper­
tape are H se1f-checking ll or "parity" codes. That is, every character in such
a code must have an even number of holes if IYeven-paritylt is used, or an odd
nmnber of holes if " odd-parity'· is used.

The Paper-tape Reader has the ability to check such parity codes.
If it should detect an error in parity, it will store'the character ItXIf
(code 11 1111) in Ri instead of the garbled character, and there will then
be an immediate put away
The input operation ter.minates, and the Processor
reS1TIneS execution of the program, selecting its next Instruction from address
0

J3.
That portion of the program which the progranrrner has stored at J3
has available to it the two tallies in @oo:s6 and @OO:33; it'can thus provide for reading the rest of the transaction and, if desired, typing it out
on the Console Type~~iter, discarding it from the input, and resume the
reading of the paper-tapeo The operator may then correct the transaction
by comparing it with the original data, and arrange for its re-entry latero
End of TaEf: The Paper-Tape Reader has the ability to distinguish
betl'leen broken tape which causes the Reader to error-halt), and end-oftape.
Detection of the physical end of the tape causes a putaway (unless
Ri is empty), termination of input, and resumption of the pro gram The
Processor selects its next Instruction from address J2.
0

This ability
branch in the program,
code at the end of the
the program test every

to identify the end of the tape, and to cause a unique
eliminates the necessity for punching a "sign-off tt
input, and further eliminates the necessity of having
transaction for this sign-off code.

TABLE IV-1:
NUMERIC
VALUE OF
ZONE BITS

ZONE
BITS

NUMERIC BITS
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 IUD 1111

0

00

Language Code

01

1

2

3

4

5

6

7

8

A

B

C

D

E

F

G

H

9

@

¢

SPACE

&

•

0

A-

m

n

8

p

/

10

+

J

K

L

M N

6'

P

Q

R

%

£

$

(

)

11

*

#

S

T

U

V

W

X

Y

Z

d

s

u

v

w x

TABLE IV-2:

Modification of first word of Instruction by Index Register

S-value
4

2
1

Sum

If S

A syllable modified
N syllable modified
J syllable modified'
Determines combination
of syllables modified.

S-values of syllables

4

2

1

= 0, no Index Register is used, and, R is irrelevant.

TABLE IV-3:

Interchange of syllables in ¢OO

(¢ 00) before operation

p

v

Q

( ¢ 00)

after operation

no branch

positive

p

negative

p

branch

I Q,$, 21

p
QI

J

(t)
I

2

J

READ

PUN C H E DCA R D S

This Instruction permits the reading of SO-column cards
directly into the Processor Memory at extremely high speed.
As ma.ny cards as desired may be read with a single Instruction,
and either all, or a portion of, each card may be read.
If the volume of input warrants the additional equipment, cards
may also be transcribed noff-line n to Magnetic Tape through the Universal
Converter, as described in Chapter VI - PERIPHERAL EQUIPMENT.

INSTRUCTION FOR1{AT:

987

6 543

bl:A: I

:N:

Operation:
210

I :J: I

READ PUNCHED CARDS (R

Operation Code:

*

IV IMis IR F~r~~~t~l~j~~r~r~f}!~~r~?rIt] w I

DEFINITIONS:
Op:

operation code.
0, 1, 2, 3.

~;

automonitor level:

S:

selects syllables for modification
by Index-Register·OOR.

R:

designates OOR as Index-Register.

A:

base of address in which first 10
columns of first card are to be stored.

N:

as modified by (OOR), specifies the
number of cards to be read.

N

W:

number of Memory cells to be filled
from each card. (i.e. - read the
first lOW columns from each card.)_

W = a means pass N cards
without reading.

J:

base of address ~f next Instruction,
if fewer than N cards have been read
and no more cards remain to be read. (See note)

V:

variation designator:
only the sign of V is relevant.

NOTE:

000 ~ N ~

Z99

= a means "do nothing"
O~W~8

There is a LAST BATCH Switch on the Card Reader.
Switch in NO position:

If hopper empty and fewer than ~ cards read,
the Processor will wait, and resume execution
of the Instruction when more cards have been
put into the hopper, and the "Operate" button
on the Card Reader has been pressed.

Switch in YES position: If hopper empty and fewer than li cards read,
the Instruction will terminate, and the next
Instruction will be selected from the address
specified by !I..
rrALLY IN @QO:

After termination, (@OO:86) contains number of putaways made.

DESCRIPTION OF:

READ FUNCHED CARDS

The Processor starts the High-Speed Punched-Card Reader, which then
continues to run until:
a)

N cards have been read, after which the Processor executes
the next Instruction in the program.

b)

The Input Hopper is empty (and/or the Output Hopper is full).
Depending on the setting of the LAST BATCH Switch, the
Processor either waits for the Reader to be reloaded; or
terminates the operation and selects its next Instruction
from the address specified by ~.

The first 10 columns of the first card are read into Cell [AJ,
"tnth the character punched in column 1 appearing in character-position 9, etc.
'rhe next 10 columns into Cell [A ill
filled from the first card.

JJ, and so on until

~

Cells have been

The remainder of the -card is passed through the

Reader without storing any information in Memor.y.
the next card are read into Cell [A

ffi

The first 10 columns of

WJ, and so on until the operation

terminates.
Blank columns on any card are read as IIspaces".
The conventional punched-card code has been extended, so that all

64 characters of the ProcessorYs Language Code can be represented in cards.
If the Reader's self-checking circuits detect an error, or an
illegal configuration punched into a card, it will error-halt.

Punched Cards may be transcribed to lfugnetic Tape "off-line tt
through the Universal Converter. For details of Card-Reader operation,
Converter operation, and the extended Punched--Card Code, see Chapter VI PERIPHERAL EQUIfl1ENT.

NOTE:

It is possible that columns 81 and 82 of an "gO-columnlt card
might have been punched. These columns are not read.

AUIDMONITOR

As an aid to Code-Checking, or "Debugging", two techniques are
available for selectively monitoring programs:
MONITORING BY PROGRAM LEVEL
Every Instruction contains a digit (designated as M) which
specifies the level of monitoring to which that Instruction will be subject.
Four levels (0, 1, 2, 3) are available, and after a program has been
written, the programmer will assign a monitoring level to each Instruction
in the program.

Major check-points will be assigned

l~vel

3, lesser check-

points levels 2 and 1, down to the individual Instructions between checkpoints, which will be assigned level 0.
A Program Level 1vlonitor Switch is provided on the Console, with
positions OFF, 0, 1, 2; 3.

When this switch is in the OFF position, no

Program-Level Monitoring will take place.

When the switch is set to one

of the numbered positions, ever,y Instruction whose Monitor Digit has a
numeric value (modulo 4) greater than or equal to the switch-setting, will
be monitored.
MONITO RING BY ADDRESS LOOKUP
A set of four Address Selection Switches is provided on the
Console, and these switches may be set to any address in the Processor
Memory.

For the operator's convenience, these switches portray an address

in its 4-digit numeric form, rather than as a condensed Address-Type Number.
There is also an Address Monitor Switch with OFF and ON positions.

When

this switch is OFF, it will show a blue light, and no Address-Lookup
Monitoring will take place.

When the switch is ON, it will show a yellow

V-I

light, and the Processor "'rill monitor every Instruction which requires

a loolcup ,to

the Memor,y location specified in the Address Selection Switches.

An Address-Lookup occurs whenever the Processor

selecta~

* Any word of the Instruction itself,
* An Index-Register to modify the Instruction,
* An operand,
* A location for storage of a result.
Program-Level Monitoring and Address-Lookup Monitoring may be
carried on independently or

simu1taneously~

as the operator may choose.

If the M-digit of any Instruction contains a negative character (a character with a I ....bit in i'ts sign

SKIP
TAPE FEED

Q)

Q)
Q)

CODE DELETE

CORRECTION

a:>

CR

Q)

0
0

NOTES

Input C.ontrols. These exercise control functions during input, and
store no information in memory.
These have no function during input, and are ignored.
When punching with Programmed Format from Processor or Converter
w (code 11 1110) becomes SKIP
x (code 11 1111) becomes P.I. 7

VI-CODES-3

·•
•· ••
• ·• •

•

·• •
• • • • · •
• • •·••
• ·• •
•
·
•
•·•• •
• • •·•
• • • • ·• • •
••·• • •
• • • ·• •
•

f---

0
0

•

S.P. 1

END OF LINE

0

II

5

a:>

·•
· •

·•
•
•· •
• •· •
• • ·•
••·• •
• ••· ••
• ·• •
• • ·• • •
•• ·
•

PUTAWAY

0

f--- f--- 0

••
••
••••

P. I. 6

P.1. 7

0

0

·
·
·

2

8

--

0

0

®

0

0

0

CD
®

SPACE

0

0

3

V

II

SPACE

0

0

0

4

0

.
,

0

U

.
,

0

0

5

EL X

- f - - - f--

0

0

6

f - f - --

0

··
• • ·• • •
• • • ·
• •·
•
• • •· •
•••· ••
• ·
•
·
••• ·
7

8

046-047

0

-

N

··
·
·
·
· •
·•
·
· ..
· •
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
·
3

••

0

PAPER TAPE IN PUT-OUTPUT
TELEGRAPHIC CODE
(Non-Parity)
CHARACTERS
TELEGRAPH
LETTER
SHIFT

A

CHARACTERS

304

TELEGRAPH
FIGURE
SHIFT

304

A

-

-

B

B

?

COMPUTE

C

C

:

+

D

D

$

$

E

E

3

3

!

PUTAWAY

F

F

CD

G

&

&

H

H

£

#

I

I

8

8

J

J

K

K

L

M
N

L

M
N

@



Q)

LINE
FEED
CARR

RET

@

@

@

<2>

Q)

~

Q)



V

-

•

A
B

C
D

E
F

•
•
•
•

2

8

1

7

6

•

•
•

•

4
5

3

•

•

•

•

•

••

·
• • •
• ·

5

•
•

•
•

·
·
· •
• · •
• ·•
·
• ·
• •
• ·• •
·••
• · •
• ·• •
• ·•
••·
•
•
•

3

4

•

•

•

•

•

•

•

•
••

•

~.

When using NCR
461- 3 Recorder
(single program,
flxed diode-board)
the following codes
are read out from
positions:

5-2

•

5-3
5-9

---

5-0
5-1

••

•

•
•

•

•

•
•
•

•

NOTES

CD

o

@

Input Controls. These exercise control functions during input, and store no information in memory.
These have no function during input, and are ignored.

+"

Whenever the parent machine reads a "zero", the character"
will be punched into the paper
tape. This will enable the programmer to verify, i" every case, that a field of the proper length has
been read into the Processor. The first Arithmetic operation performed on each field within the
Processor will, of course, replace every
with a "zero".

"+"

Cash-Control Codes are formed by substituting Channel 8 for Channel 1 in conventional codes.
The Cash-Control Codes will normally be used only for input to the Data-Processing System, and
should be specified for Cash Registers and for all other recording devices which provide mechanical control over the integrity of cash entries.
By using the TEST READER CODE Instruction, the Processor program can guarantee that cash
transactions are input only in Cash-Control Code. Since the Tape-Punching Typewriter is incapable
of punching in Channel 8, it cannot be manipulated to punch Cash-Control Code, and it is therefore
impossible to simulate a cash-transaction paper tape with the Typewriter.

VI-CODES-6

•

·•
·••
•
• ·• •
••· •
• ·• •
•
·
•
·
•
· •
•
·•
• •·
••
••

~

•

2

1

PAPER TAPE INPUT
NCR CASH-CONTROL CODE (EXTENDED)
(Odd-Parity)
TYPEWRITER KEY
LOWER
SHIFT

UPPER
SHIFT

0

)

--

TYPEWRITER KEY

CHANNELS
8

7

6

5

0

4
0

--

1

1

?

r

--

l--J

--

3
- - - - - - - - --

-

# --

<7'0

6

J

7

&

8

*

9

"

a

B

B

C

c

D

d

E

E

F

F
G

0

CD

P

p

T

T

Z

@

+

•

•••
•

V

V

0

·

0

Q

W

w

•

0

0

X

X

¢

D

0

•

0

-

b.

0

•

0
0

0

0

0
0

0
0

0

0

0

0

••

Z

0

0

0

0

0

·
·
·
·
·
·

0

.

,

0

SPACE

SPACE

0
0

PUTAWAY

0

/f

CD

COMPUTE

0

>

0

•

0

·

0

•

0

0

•

0

]

(l)

CD

l:Q

CD

UP
SHIFT

CD

UP
SHIFT

CD

DOWN
SHIFT

CD

DOWN
SHIFT

CD

CODE
DELETE ~

0

CODE
DELETE (l)

0

TAPE
FEED (l)

TAPE
FEED

CARR
(l)
RET

CARR
(l)
RET

TAB

0

• Ii 0

0

0

•

0

0

CD

CLEAR

CLEAR

121

~

STOP

<2)

TAB

•

••
•
•
0

G

••

BACKSPACE

(l)

•

•

VI- CODES-7

2

•

·

•

•

•

·•
•
•
•

•
••
••

•
•

•
•

•
•
•
••
••
•••
0

•
•

·
•

·
·

•
•
••
•
•
••

•

••
••

•

••

•

••

DOES NOT PUNCH

NOTES
The complete Extended Code (equivalent to NCR Typewriter
Code) is mechanized in the 360 Paper-Tape Reader, offering a wide choice of identification characters when this Code
is used with a keyboard machine and Paper-Tape Recorder.

3

·

•

<2)

(l)

•
•
•
•
•
••
••

·
•

•• ••
•• •

0

PUTAWAY

CD

4

•
•

•

•

0

••
• •

0

0

0

0

5

Y

u

0

6

Y

U

0

7

•

0

0

CHANNELS
8

0

·

•

K

r:J

0

0

0

(9-

s

0

J

n

S

·

J

N

0

0

0

m

R

Q

I

M

R

0

I

l

Q

0

H

l

Q

0

0

H

K

UPPER
SHIFT

1

2

•••
•
•••
••
• •
•
•••

0

CD

·
·
·
•

0

-----

A

G

0

$

"s

---

0

·

3

LOWER
SHIFT

Input Controls. These exercise control
functions during input, and store no
information in memory.
Typewriter controls. These have~ no
function during input, and are ignored.

1

MULTI-PURPOSE

CONVERTER

CONTROL

PANEL

POWER SWITCHES
At the right side of the panel, in the upper row, are five power switches
for the Converter and its peripheral units. From left to right, the switches
control:
Paper Tape Reader
Punched Card Reader
Printer
Paper Tape Punch
Converter and Magnetic Tape Handler
(Controls for the Card Punch are
mounted on its own cabinet)
Each of the five units is represented on the Control Panel by:
An ON button;
An OFF button;
A BUSY light.
When the power is first turned on at any unit, its ON button will
show a blue light (not ready), while that unit goes through its
own warmup-test cycleo
When the unit has completed its self-testing operation, its ON
button will show a yellow light (ready).
Whenever the unit is actually in use, its yellow BUSY light will
be turned on.
If the unit should, for any reason, go into an Error-Halt, its ON
button will show a red lighto

OPERATION SELECTOR
This dial switch selects anyone of ten operations to be performed by the
Converter:
Paper Tape Reader
Card Reader
Card Punch
Paper Tape Punch
Printer

to
to
from
from
from

Magnetic
Magnetic
Magnetic
Magnetic
Magnetic

VI - 320 - 1

Tape
Tape
Tape
Tape
Tape

Advance magnetic tape one record
Backup magnetic tape one record
Write a CRM-record on magnetic tape
Erase magnetic tape to the end of the reel
Search magnetic tape for a record corresponding to the
Record Selection S\

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2010:07:13 17:29:01-08:00
Modify Date                     : 2010:07:13 18:28:38-07:00
Metadata Date                   : 2010:07:13 18:28:38-07:00
Producer                        : Adobe Acrobat 9.33 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:5d8aa0c4-b791-4a68-b546-b816e51ba5a7
Instance ID                     : uuid:f4330c92-e26e-47d4-9c28-220470897c04
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 348
EXIF Metadata provided by EXIF.tools

Navigation menu