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
.
Page Count: 348
| Download | |
| Open PDF In Browser | View 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\
END OF LINE
TAPE FEED
•
•
UP
SHIFT
•
DOWN
SHIFT
•
•
·
-
(j)
~
H
Qj
9
0
.1
2
3
4
5
6
7
8
9
10
('}
\.)
'I
...t::
+'
..:
..I
H
Q)
6 5 4
~
§
Qj
q
"~-'4
"..~
.3
2
1
0
+
0
1
0
0
0
0
0
0 H 1
0 + 1
sp 0 Q 2
0 7~ 2
0
4
1
4
1
5
-
0
2
+
4
0
+
0
+
0
5
6
7
8
9
5 + @
6 0 ¢
6
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
- 2 -
~
TABL
Suppose the actual date to be stored in an 8-character field,
with Field Designators as shown:
!v1onth
Day
.
DAY
HO
I
CENT
.
Year
'YR-L
lYR-R
The Coded Date is designated C8DE, and word #1 (the second word) of the
table is designated TABL.
To encode Date:
t~
N~
SERT:
flO"
by
CN:
"20 n
vs
SERT:
"+"
by
MSUB:
(DAY)
SERT:
SERT:
MSUB:
SERT:
BINC:
CdDE:22
(~
"1"
)
00R:86
by
lip"
~
CfflJE :00
e
"111 .
)
OOR:86
by
117+ n
) CoDE:IO
e
"1"
)
OOR:86
(~:43)
. by
lilY"
)
CdDE:21
(YR-L)
e
"l"
)
00R:86
by
lid"
)
cdbE:22
(~:21)
(YR-R)
®
MSUB:
SERT:
)
(MOl
®
®
( CENT)
11+ "
® (TABL:OO)
-
MSUB:
) CfflJE :~2
11+"
(~:55)
~ C6DE:22
(Co'oE:22)
- 3 -
To decode Date:
DIST:
"19"
TB1T:
"pit
DIST:
It
) CENT
vs
&
¢O9:90
&
¢O9:90
(C®E:22)
~~
~~u
20"
) CENT
BINC: '(CdDE :20)
EXT: (CdDE :00)
SIFT:
( TABL)
)
CODE:20
by
"pit
)
¢O8:00
thru
(¢O8)
~
¢O7
Y = 0:00
L= 1
AF
DIST:
==
(¢O7:20)
EXT: (CdDE:I0)
SIFT:
==
=
¢O9:90
DAY
&
"7+11
by
thru
y = 0:21
(1:08)
)
¢O8:21
~
¢07
1
TABL <±) 11
(¢O7:20)
~
¢09:90
Met
&
"lY"
)
¢08:30
thru
(¢O8)
y = 0:43
L= 1
AF == TABL (!) 8
~
¢07
EXT: (CdDE:21)
SIFT:
(TABL)
DIST:
(i07:20)
EXT: (CdDE :22)
SIFT:
)
(TABL)
L
AF
DIST:
TABL@ 30
(TABL)
y
==
==
by
~
¢O9:90
&
YR-R
by
"dl!
)
¢08:55
thru
(¢O8)
~
¢07
0:55
L 1
AF == TABL@ 8
D1ST:
(¢07:20)
)
¢09:90
&
YR-L
Herbert L. Gross
Director of Training
ELECTRONIC MACHINE SALES
- 4 -
USE OF SORTING TABLES FOR THE 304
The published Sorting Tables enable you to calculate the exact
time for any sorting job. Times in the table are micro-minutes per item
sorted; when combined Tape Time and Compute Time have been obtained,
multiply by the number of items to be sorted, and move the decimal point
6 places to the left in order to obtain the time in minutes.
The tables assume that the unsorted information is already
recorded on magnetic tape, and that the sorted information ends up on
magnetic tape. The times in the tables include all rewinds.
For a 2-way tape-merge sort, in 2400-word memory, find the
table for the item-size desired, and look up in the left-hand column the
Number of Items to be" sorted. Stop at the first entry in this column
which is greater than, or equal to, the number of items to be sorted.
Thus, for 30,000 6-word items, the table-entry is 32,76g.
indicates unit times of~
This
741.9 Tape Time
36100 Compute Time
110209 Micro-minutes per item in 2400-word Memory.
Multiply this total unit time by 30,000 items, move the decimal
point six places to the left, and round the result to obtain 33.1 minutes
for the total sorting jobo
For 4800-word Memory, use the next higher figure in the Tape
Time column
Thus for 30,000 6-word items the time is:
0
660 5 Tape Time
361.0 Compute Time
0
1021 05 Micro-minutes per item in 4g00-word Memory.
For 4-waymerge, look up Compute Time in the usual way. Then
cross out every-other entry in the first column (Number of Items) starting with the first entry. For 6-word items you cross out 12g, 512,
204g, etc. Now look up the number of items in this new version of the
first column. For 30,000 6-word items you would stop at 65,536 which is
now the fifth entry. Therefore, the fifth entry in the second column
(41603) gives Tape Time with 2400-wordMemory. As before, Tape Time
with 4g00-word Memory is the entry above that.
For g-way merge, cross out the first and second, fourth and
fifth, seventh and eighth, etc., entry in the" first column (in this
example, cross out 12g, 256, 1024, 2048, 8192, etc.), and proceed in the
same way for Tape Time. Compute Time is always the same.
-1-
To recap, for 30,000 6-word items the times
2400-wd
4800-wd
2400-wd
4800-wd
2400-wd
4800-wd
are~
Ta]2e Time
Com:eute Time
74109
66005
416. 3
33409
25305
17201
'36100
36100
36100
36100,
361 0
361 0
2-way
2-way
4-way
4-way
S-way
8-way
0
0
0
For the new 332-2 High-Performance Tape Handlers, use half of
the Tape Tirneo This is conservative, since the new rate is 66,600
char/see or 2022 times as fast, and more than makes up for the fact
that.acceleration times remain the same·/
~
w
I.
Herbert Lo Gross
Director, Customer Training
ELECTRONIC MACHINE SALES
....
- 2
aD
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 : 348EXIF Metadata provided by EXIF.tools