RW 300_Programming_Manual_Mar61 300 Programming Manual Mar61
RW-300_Programming_Manual_Mar61 manual pdf -FilePursuit
RW-300_Programming_Manual_Mar61 RW-300_Programming_Manual_Mar61
User Manual: RW-300_Programming_Manual_Mar61
Open the PDF directly: View PDF
.
Page Count: 198
| Download | |
| Open PDF In Browser | View PDF |
If 1/'5
SERIAL NO. _ _ _ __
RW-300 DIGITAL CONTROL COMPUTER
PROGRAMMING MANUAL
March, 1961
This manual is the property of the TRW Computers Company.
It is made available to customers, prospective customets,
and others, with the understanding that the contents of the
manual shall not ~e released to any third party.
TRW Computers Company
8" 3 3 FA L L B ROO K A V EN U E • CAN 0 G A
PA R K. CAL IF 0 R N I A
The R W -300 Digital Control Computer
The RW ... 300 Digital Control Computer is used for closed-loop control of
industrial' proces se s, for autom.atic testing, for on-line
data interpretation, and for simulations.
In
real~time
control and test applications, the RW-300 communicates
directly with instruments which measure or sense operating
variable s. Under the direction of the program stored in
memory, the RW-300 uses information from these instruments, performs calculations, reduces data, and generates
the control signals re quired to fulfill proce s s or te st
objectives. Fail-safe features incorporated in the system
equipment and program, coupled with the inherent reliability
of the R W -300, ensure dependable operation.
The computer operator is generally advised of operating conditions by
typed records -- printed out either periodically or on
demartd. Further, the operator is able to supply the RW -300
with special data whenever the process or test must be
operated under unusual conditions.
IN THIS PROGRAMMING MANUAL.
Section I . . .
contains a general de scription of the R W -300 and
peripheral equipment.
Section II .
describes the operation codes used in preparing
instructions for the computer.
Section III.
tells how the instructions are assembled into programs.
Section IV.
introduces a programming technique which make s
maximum use of 'computer time.,
Section V. . .
contains detailed information relating to the digital
input and output equipment used with the RW -300.
Section VI
tells how programs are loaded into the computer under
the direction of a program stored permanently in
computer memory.
Section VII . . details the functions of R W -300 controls and indicators.
Section VIII. .
c'ontains reference material pertaining to number
systems and scaling.
A Glossary of computer terminology is included at the end of the manual.
\
'
The ,last pages of the manual contain reference tables that are useful in
preparing programs for the R W -300.
OTHER PUBLICATIONS ARE AVAILABLE.
A list of programming aids and mathematical subroutine s contained in
the RW -300 Program Library can be obtained by writing to TR W Computel\s
Company.
\,
A manual describing Optimum Programming Using Symbols (OPUS)
in~ludes instructions for preparing programs in symbolic form.
An interpretive routine is available for applying the,R W -300 to generalpurpose and scientific calculations.
TABLE OF CONTENTS
PAGE
SECTION ,I - - GENERAL DESCRIPTION
I,~'
1-1
CHARACTERISTICS
~t
EXTERNAL FEATURES
1-2
Il':lSTRUCTION SYSTEM
1-3
WORD LENGTH
1-4
MEMORY . . . .
1-4
Basic Memory . .
1-4
Expanded Memory
1-5
1-6
ARITHMETIC UNIT . •
A Register.
B Register.
. ..
C Register.
...
Adder
. . . ...
CONTROL UNIT
1-6
1-6
1-7
1-7
1-7
Y Register.
1-8
1-8
N Register.
Track Register
1-8
1-9
Instruction Register.
DIGITAL INPUT AND OUTPUT
ANALOG INPUT AND OUTPUT
1-9
"
.
1-11
Conver sion Capabilitie s . .
1-11
Input Conver sion Range and Numbe r Repre sentation •
1-14
Input Storage Locations • ',' . . . . . . . . . . . . . . .
1-16
, Output Conver sion Range and Number Representation •.
1-16
1-18
Output Storage Locations
MAGNETIC TAPE UNIT
1-18
1-18
Introduction
.De scription
Operation
"~,I
. .
••
Specifications
... . . .
1-19
• • • • • •
1-21
1 ... 23
·TABLE OF CONTENTS -- Continued
SECTION II -- INSTRUCTIONS
INTH.ODUCTION.
LOAD A
•
•
•
•
e,
•
.. .. . . . . . . . .. . . .. . . .. . . . . . . .. . . . . .
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
· .. . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . .. . .
LOAD A NEGATIVE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
STORE A · . . . . . . . . . . . . . . . . . .'. . . . . '. . . . . . . . . . . . . . .
STORE B · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LOAD B
ADD
SUBTRACT
SHIFT
• • • • • • • • • • • '0 • • • '0' • • • • • • • • • • • • • • • • • • • • •
· . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . .. . . . .
· . . . . . . . . . . . . . . . . . . . . . . . . . . . ... . . . . . . . .
. . . '.' . . . . . . . . . . . . . . . . . . . . .
TRANSFER ON ZERO ••••• . . . ". . . . . . . . . . . . . . . . . . . . . . .
TRANSFER ON OVERFLOW . . . . . . . . . .' . . . . . . . . . . . . . . . .
COMPARE MAGNITUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EXTRACT · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
MERGE. · . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . .
SWITCH · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
TRANSFER ON NEGATIVE
~
· . . . . ... .. . . .. . . . . . ... . ... ... . . . . ... .. . .
DIGITAL · . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NO OPERATION . . . . . .. . . . . . . . . . . . . . . . . . . ..... .
..
STOP .•
TAPE
•
•
•
e·
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
· .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DIVIDE · . . . . . . . . . . . . . . . ". . . '. . . . . . . . . . . . . . . . . . . . .
EFFECTS ON REGISTERS . . . . . . . . . . . . . . . . . . . . . . . . . . .
MULTIPLY
ii
PAGE
2-1
2-2
2-2
2-3
2 .. 3
2-4
2-4
2-5
2-6
2-7
2-8
2-8
2-9
2-10
2-11
2-12
2-13
2-13
2-15
2-16
2-17
2-21
2-25
TABLE OF CONTENTS -- Continued
PAGE
SECTION IU r BASIC PROGRAMMING
INTRODUC TION ••••••••••••••••••••••••
•• • •• • • •
• •
3-1
INSTRUCTION WORDS •••••••••••••••••••
•••••• ••••
3-~
FORMAT FOR LISTING INSTRUCTIONS •••••••• • • • • • • • • • •
3-a
DATA WORDS, OR CONSTANTS ••••••••••••••
3-5
· ............
\t
FORMA T FOR LISTING CONSTANTS ••••••••••• • • • • • • • • • •
3-5
USE OF MEMORY •••
3-7
.. • • • • • • • • • • • • • • • • • • • • • • • • • •
General • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
3-7
Memo~y
3-8
Reading Information from
••••••••• • • • • • • • •
Storing Information in Memory •••••••••••• • •
•
• • •
••
3-8
Organization of Li'stings •••••••••••••••• • •••••••
3-10
Record Keeping
3-10
••••••••••••••••••••• • • • • • • • •
SAMP LE PROGRAMS ••••••••••••••••••••••• • • • • • •
Example I
,'. ,
•••• ••
Example U • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Example m
•• •• ••
............... ...... .
. . . . . . . . . . . . . . . . . ....... .
'
••
3,-IZ
••
3-1Z
• •
3-14
• •
3-16
iii
TABLE OF CONTENTS -- Continued
PAGE
SECTION IV -- OPTIMUM PROGRAMMING
INTRODUCTION
0
•
•
••
4-1
•
. MEMOR Y ORGANIZATION. • ..
4-3
Tracks 00 through 07 • .
4-3
Tracks 08 through 15' ...
4-3
Tracks 08 through 61 . .
4-5
Track 62
4~6·
Track 63
4-7
.EXPANDED MEMORY
4-7
. SELECTING OPTIMUM MEMORY LOCATIONS. .
4.-9
Load, Merge, and Extract
Add and Subtract.
00
Multiply and Divide .
o
•
4~13
•
e,
••
0
.,
•
0
4-14
••
.. .
4-1.4
Compare .Magnitude .
4.-15
Transfer
4-15
. ,. .
Switch
4-16
I
...
Shift
4-17
~
.'{
No Operation
4-17
_0
:
. Store
4-17
"
Digital.
o
0
•
.,
4-18
. COMPARISON OF OPTIMUM AND SEQUENTIAL PROGRAMMING
REVOLVER
.
0
.,
4-19
4-!9
EXPANDED MEMORY . .
4-21
OPTIMUM PROGRAMMING USING SYMBOLS
4-21
iv
I.
'TABLE OF CONTENTS ... - Continued
SECTION V
PAGE
DIGIT AL INPUT AND OUTPUT
. . . . . . . . . . . . ·. ·. . . . . . . . . . . . . . .
DIGIT AL COMMAND. . . . . . . . . . . . . • • · . . . . . . . . . . . . . . .
BASIC INPUT -'OUTPUT CAPABILITIES
· . . . . . . . ... . . . . . .
Inputs ••••
. . .. . .. • • · .. ... . .. . .
Inputs from Toggle Switches
. . . . . .. . . . . .. .. . . .
.
INTRODUCTION .....
• • • • o' • • •
5-1
5-2
5-3
5-3
5-4
Inputs from Flexowriter • • • • • • • • • • • • • • • • • • • • • • • •
5-5
Output to Flexowrite r • • • • • • • • • • • • • • • • • • • • • • •
5-6
Sample Printout Listing
5-7
.. .. .. ...... . .
EXPANDED INPUT-OUTPUT CAPABILITIES. . . . . . . . . . . . . . .
Inputs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Outputs .. . . . .
••••••••••
~
•
•
•
•
•
•
•
•
•
•
•
•
One - Bit Outputs •••••••••••••••
Multi-Bit Outputs
•
0
•
•
•
•
•
•
•
•
•
•
•
•
ct
•
• • • • • • • • • • • • • • •
. . . . . . ... .. . . . . . . . . . . . . . .
INPUT -OUTPUT EQUIPMENT • • • • • • • • • • • • • • • • • • • • • • • • •
. . . . . . . . . . . . . .. .. . . ... .
Twenty-Four -Hour Clock . . . . . . . . . . . . . . . . . . . . . . .
Manua 1 Inputs
· . . . . . . . . . .. . . . . . . . . . . . .
Watchdog Timer · . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ferranti Reader · . . . . . . . .' . . . . . . . . . . . . . . . . . . . .
Teletype Punch
. . . . . . . . .. . . . . . . . . . .. . .
FLEXOWRITER •••••
. . . . . . . .. . .. . . . . .. . . . . . .. .
Mode s of Flexowrite r Ope ration · . . . . . . . . . . . . . . . . . .
Digital Indicator s .•••••
.5-10
5-10
5-10
5-12.
5-13
5-13
5-13
5-14
5-15
5-17
5-17
5-18
5-19
5-19
Gene ral Flexowrite r Characteristics . • • • • • • • • • • • • • • •
5-23
Paper Tape. . • • • • • • • •
5-25
• ••••••••••••••••••••
.. .. . . .... .. . . . . . . . . . . . . . .
Flexowrite r Code s . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Flexowrite r Timing Conside rations . . . . . . . . . . . . . . . .
Parity Checking
5-27
5-30
5-30
v
TABLE OF CONTENTS -- Continued
SECTION VI -- PROGRAM LOADING
PAGE
, INTRODUCTION. .
6-1
LOAD PROGRAM
6-1
'STANDARD PUNCHED TAPE FORMAT
6-4
DECIMAL PUNCHED TAPE FORMAT
6-6
OPERATING 00NDITIONS
6-7
MEMORY SUMS . .
6-9
BINAR Y LOADING
6-10
JUMP INSTRUCTION
vi
. . . . . .'.
6-11
'TABLE OF CONTENTS -- Continued
SECTION VII
OPERATING CONTROLS AND INDICI,\.TORS
· • ·• · ·• • • • • • • • • • • • • • • • • • • •
Power Controls
• ·• . • • • • ·• • • • • • • • • • · • • • •
·
·
·
Operating Controls •
• ··· ·· • · • · • · • • • • · •
·
OPERATOR'S PANEL. • •
PAQE
'.
7-1
~
,/
TEST AND MAINTENANCE PANEL • • • • • • • • • • • • • • • • • • • • •
7-2
7-3
• • • • • •••
7-4
• • • • • • • • •• •• • • • • • • • • • • •• • •
7-4
Ope ration • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
7-4
Program Loading.
Maintenance
· . ..
PROGRAM CHECK-OUT
• • • • • • • •• •
·..
•• • • • •• •
Fetch and Exe cute Buttons
• • • •
Run Button
• • •
• •
•• ••
State Indicators
•
•• • • •
••••••••
• • • • • • • •• • • • • • •••
7-6
•••••
7-7
• • • • • • • • • • •
. ·. ·
·· • • ·• • • • • • • • • • • • •
• • • • • • • • • • • • • • ·•
···
·
Oscilloscope . • • • • • • • • • • • • • • • • • • • • • • • • •
· · ·
·
·
·
Tables for Interpreting Indicators.
··
•
•••••••••••• ••
l-7
7-7
7-8
7-10
vii
TABLE OF CONTENTS -- Continued
SECTION VIII -- NUMBER SYSTEMS AND SCALING
READING COMPUTER NUMBERS • . • . • • • • • • • • • • • • • • • • • • •
. . . . . . . . . '. . . . . . . . . . . . . . . . . . . . . . .
. ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PAGE
8-1
NUMBER SYSTEMS
CONVERSIONS
Binary to Decimal •.••••••••••••••••••••••••••
· . . . . .. . .. .. . . . . . . . . . . . . .. . ..
Binary to Octal to Binary . . . . . . . . . . . . . . . . . . . . . . .
Decimal to Binary. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Octa 1 to De cimal · . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Decimal to Octal
8-4
8-4
8-6
8-6
8-7
8-7
BINARY ARITHMETIC• • • • • • • • • • • • • • • • • . • • • • • • • • • • • • •
8~S
OCTAL ARITHMETIC •••••••••••••••••••••••••••••••
8-9
SCALING
. . . . . . . . .. . ... . . . . . . . .. . . . . . . . .. . . . . . . .
Introduction ••••••••••••• ", •••••••••••••• '•••••
8-10
Fixed-Point Notation and Scale, Factor •••••••••••••••
8-11
· . . . . . . . . . . . . . . . . . . . . .. . . . . . . .
Multiply Command . . . . . . . '. . . . . . . . . . . . . . . . . . . .
Divide Command · . . . . . . . . . . . . . . . . . . . . . . . . . ...
Shift Commands
viii
8-10
8-13
8-14
8-1S
LIST OF ILLUSTRATIONS
PAGE
,Figure 1-1
R W -300 and Peripheral Equipment
0
•
0
•
1-12
0
1-20
Figure 1-2
R W -300 and Magnetic Tape Unit
Figure 2-1
Commands and Registers
Figure 3-1
Flow Chart of Program Exa,mpleIII
3-17
Figure 4-1
RW-300Memory
4-4
Figure 5-1
Segment of Punched Tape •
Figure 5-2
Table of Flexowriter Codes
Figure 7 -1
Te st and Maintenance Panel
Figure 7-2
Oscilloscope Display
...
0
....
••
,0
•
2-27
5-26
. . . . . .. .
•
•
•
0
•
•
0
5-31
7-3
7,-9
REFERENCE TABLES (last 3 pages in manual)
Table of Powers of 2
Table of Non-Parity Flexowriter Codes
Table of Powers of 8
Table of-Equivalent Revolver Locations
Table of R W -300 Instructions
ix
SECTION I
GENERAL DESCRIPTION
CHARACTERISTICS
The RW -300 Digital Control Computer is a stored-program, aerial
computer employing a magnetic drum memory with a total capacity of
8,080 wor.ds.' .~.~ -300 .compliters' with an· expand~d memory have a total
memory capacity of 15, 776 words.
The R W-300 word is composed of
18 binary digits.
A word may represent either numerical data (17 bits, with a sign bit),
or one half of a computer instr,uction.
Two words form a complete instruc-
tion; one half of the instruction specifie s the memory location of the operand,
and the other half of the instruction specifies the memor y location of the next
instruction.
The half-instruction containing the next-instruction addre ss
includes one of 21 basic operation codes, and the half-instruction containing
the operand addre B s include 8 an execution code.
The
b~sic
instr uction codes
are modified by the execution code and the operand address to provide a
flexible command structure.
Continuously variable voltages from measuring instruments and
transducers are automatically converted to digital for.m and stored in the
RW -300'.s memory .. -without programmed instructions.
Up to 1,024 of these
continuously variable "analog" input· signals can be accommodated.
Com-
putational results representing control information are automatically converted from digital form to voltages which can be applied to conventional
1-,1
Characteristics - - Oontinued
controllers or other:control devices.
s~gnals
Up to 12'8 of these "al1alog" output
can be provided.
Up to 511 on-off signals from diffe rent source s can be accepted by
tp.e computer, permitting input from digital clocks, switches, paper-tape
readers, etc.
A like number of digital output signals can be provided fO,r
the control of motors, indicators, alarms, logging typewriters, paper-tape
punche s, etc.
In addition to possessing the input-output capabilities necessary for
real-time control, the RW-300 has been designed to provide the reliability'
required for continuous service.
Subroutines and interpretive routines are available to extend the application of the RW -300 to scientific and general-purpose computation.
EXTERNAL FEATURES
The console model of theRW -300 (see frontispiece) is desk size and
weighs approximately 600 pounds.
It operates from 120-volt, 60-cps power,
and requires no special air conditioning.
mately 500 watts.
Power consumption is approxi-
Usually supplied in the console cabinet 36 inches high, 56
inches long, and 29 inches deep, the same basic computer can also, be furnished in an upright, air -purged cabinet that is 84 inches high, 48 inches
long, and 24 inches deep.
Operating controls for the console model are mounted on the sloping
front edge of the cabinet and are accessible when the computer cover is
closed.
1-2
The oper ating controls are pushbuttons for turning the R W -300 on
External Features - - Continued
,
f~r
and off,
\
starting, stopping, and resuming the progr{im stored in memorx',
and for loading new programs into the memory.
Beneath the cover, a test
and maintenance pane 1 contains controls, indicators, and displays which
facilitate program check-out and computer maintenance.
The operating con-
trols and indicators are described in Section VII of this manual.
INSTRU:CTION SYSTEM
or commands, many of which can be modified to permit a large number of
distinct operations.
The operation codes control arithmetic operations,
logical operations. and peripheral equipment.
Section II contains a brief
description of the instruction format, followed by a complete description of
, the operation codes.
The time required to perform arithmetic and logical operations
depends upon the relative locations in memory of the instruction and the
operand.
Using the optimum programming techniques describeq: in Section
.
"
IV, the time s (in millise conds) required to complete typical instructions are
as follows:
Add or Subtract
0.78
Multiply, full length
2.99 ms
Divide, fu 11 length
3.12ma,
Transfer
0.65 rna
Load Register
0.65 ms
Store
O. 78 ma
mB
l-l
Word Length
WORD LENGTH
In the RW-300, the basic unit of information is a worq!
sists of 18 binary digits, or bits:
A \vord con-
a sign bit and 17 bits of abso lute magnitude.
The sign bit is zero for positive and one for negative.
(See
S~ction
VIII for
an explanation of the binary number system.)
[ I. 11. r LL 1.:1 I I .L J
18 17 16 15 14 13
Sign Bitl
l~
11 10
'Most-Significant Bit
A word may represent:
9
8
J
JJ
7654:3
a
I.: I
1
Least-Significant Bit!
a numerical value, one half of an instruction,
typewriter or punch symbols, or a bit pattern that can be used for control
purposes.
Section III describes the form of instruction words and data words.
MEMORY
The memor y of the R W -300 is a magnetic drum, nine inches in dialnet(~ r
and nine inche slang, which rotate s at a speed of 3600 rpm.
The mag-
nr-tic drum may contain a basic 8,080 word memory or an expanded melnory
of IS', 776 words .
.~~sic Mer:nory
There are 7,936 words of general storage on 62, tracks of 128 words
each, 32 words of fast-access storage in a circulating register, and 128
words in one track for a permanently stored load program.
A word titne
(the time required for one word on the drum to pass a given point) is O. 13
ntilliseconds.
1-4
The "average" access time (time required to find a word) in
Memory -- Continued
general storage is 863 milliseconds.
The 32-word circulating register, or
f'lrev.olver" p has an average access time of approxim,ately 2 milliseconds.
Any of the 7,936 word locations can be written into during program loaqing by using control facilities on the RW-300 test and maintenance panel.
the ,basic' computer, the 32-word revolver and
l~
In
024 word locations in eight
128-word tracks can be written into under pr'ogram control.
addi~
Up to eight
tional tracks of program-writable storage can be provided by adding a module
to the basic computer.
However
$
this additional
program~writable
storage is
r.educed by the number of tracks re served for the storage of analog input datao
The number of tracks re served for analog input data does not affect the 32·word revolver nor the 1 ~ 024 words of
program~writable
memory available in
the basic computero
Expanded Memory
RW~300computers
storage on 123 tracks o
with an expanded memory have 15$ 776 words of
Notmally~ 'e~panded
memory ma,chines have 1 / 536.
words of program-writable storage, although up to 16 additional tracks (2,048
words) of
program~writable
storage can be provided by the addition of an
extra module to the basic computer.
The 16 additio'nal tracks will be reduced
by the number of tracks reserved for the storage of analog input data ..
The method of identifying memory focations on the drum is de scribed in
connect~on
with a desc::ription of basic programming in Section III.
More
de~
tailed drum characteristics are presented in connection with the optimum programming tec,hniq.ues described in Section IV.
Through the use of optimum
1-5
lYle mor y - - Continue d
programming techniques, access time in general storage can ,be greatly
reduced below the "average" access time of 8.3 milliseconds.
ARITHMETIC UNIT
The arithmetic unit is that part of the RW -300 which actually performs
arithmetic and logical operations under control of the program stored in
memory.
The unit includes three circulating one-word registers (A, B, and
C) on the drum.
In addition, it contains a serial adder and flip -flops used
for storage, time delay, and logical manipulations.
A Register
The A register, or accumulator. is located on the drum, and has a
capacity of 1 7 bits plus sign (one word).
It is the principal arithmetic
register and holds the result of most operations.
The A register can be
loaded from me mory, and the contents 'o[ the A register can be stored in the
memory.
word time.
It has the capability of shifting left or right one binary place per
In the operations of addition, subtraction, left shifting, and
division, overflow from the A register is possible (i. e ..
attempt to put a one to the left of the 17th bit).
J
the computer may
When overflow occurs, the
overflow indicator is tu:t:'ned on.
B Register
The B register, located on the drum, has a capacity of 17 bits plus
sign.
It holds, at various times, the multiplier, remainder, or least-
significant half of the double -length product.
As in the case of the 'A register J
the B register can be loaded from me mory, and the contents of the B register
1-6
Arithmetic Unit -- Continued
can be stored in the memory.
per word time.
It has the ability to shift left one binary place
When shifting left, it is coupled to the A register so that the
bit in position 17 of the B register is shifted into position 1 of the, A register,
C Register
The C register, located on the drum, also has a capacity of 17 bits
plus sign.
Its operation is not under the control of the computer's program,
and therefore the programmer is se ldom concerned with, it. ,At various times.
the C register holds the multiplicand, divisor, subtrar.t.end, addend, or
execution code.
Adder
The adder forms; in one digit time, the sum of one bit from the
augend, one bit from the addend, and the carry bit from the p:revious addition.
It outputs the sum bit and the carry bit.
Since the sum is formed serially,
bit by bit, the adder requires one word time to generate the sum of two 17 - '
bit numbers.
(This should not be confused with the length of time required
to carry out an Add instruction. )
CONTROL UNIT
The control unit processes the instructions in the sequence dictated
by the program stored in memory.
In processing an instruction, the control
unit pe rforms the following functions:
a.
Obtains instructions from memory.
b.
Decodes and interprets the instructions.
Control Unit -- Continued
c.
Connects and activates other units by sending out i-q.dividual commands to the other units in the prope rsequence to perform. the
desired function.
d.
Initiates the transfer of information between units.
e.
Stops the execution of the program.
f.
Keeps track of time so that the various parts .of an instruction are
executed in the appropriate sequence.
pome of the components of the control unit are described below.
Y Register
The Y register is a one -word circulating register on the drum which
holds the operand address.
N Register
The N register is a one -word circulating register on the drum which
holds the address of the next instruction.
Track Register
The track register is a six-bit flip -flop register which holds the track
address when a program instruction refers to a memory location.
The flip-
flops in this register also serve other purposes; for some instructions, the
track register supplements the instruction register.
For digital input and
output instructions, the track register addre sses groups of input or output
line s.
1-8
Control Unit - - Continued
Instruction Register
The instructi,')n register isa five-bit flip-flop register which holds
the instruction code, but temporarily holds the executi0tl code when an instruction is being read from memory.
DIGIT AL INPUT AND OUTPUT
All digital input and output functions are accomplished by a single
operation code which controls the transfer of information between the A
register and external equipment.
Digital outputs are in the form of relay ...
contact closures, and digital inputs are accomplished by sensing voltage
change s on input line s •
The RW -300 digital input-output facilities are extremely flexible.
The paragraphs which follow contain a description of the basic facilities and
a description of options available to customers.
A more complete descrip-
tion, along with programming instructions, is included in Section V.
The basic digital input-output unit provided with the RW -300 is a
Flexowriter, which consists of an electric typewriter, a paper -tape and
edge -·punched card reader, and a paper -tape and edge -card punch.
The
Flexowriter can read, punch, or print at the rate of 8 characters per second'.
In the basic computer, seven digital input line s are re se rved for accepting
information from the Flexowriter reader {or from some other input device},
. and 18 digital input lines are available for accepting information from digital
input switches or other devices dictated by the requirements of the installation.
1-9
Digital Input and OutPllt - - Continued
Relays within the basic computer convert Flt,xowriter signal levels
to levels compatible with the digital input circuits.
A negative five volts
applied tc:;> one or more of the other 18 digital input lines causes the computer to read a one on that line when a digital input instruction is executed,
anp an open or positive voltage L?2. 5 volts) causes a zero to be read.
Although a group of 18 digital-output control line s is available for
system expansion, the basic computer contains only eight relays for providing digital outputs to the Flexowriter printing or punching circuits.
Au~iliary
control relays are provided within the basic computer for turn-
ing the Flexowriter motor on and off; for initiating printing when a logging·
typewriter is used; for initiating punching when a high-speed paper-tape
punch is used; and for accepting "ready" 'signals from these output devices.
A variety of optional digital input-output equipment is available.
Addit~onal
typewriters, including line printers, can be supplied to log out
raw data and finished computations.
A Ferranti high-speed paper-tape
reader (60 characters/ sec) and a Teletype paper-tape punch (60 characters/
sec) can
alternat~
with or be substituted for the Flexowriter reader and punch.
When used in control applications, the computer's basic digital input
capabilities can be expanded to accept 29 additional groups of digital inpu.t
lines (with 18 lines in each group) for a maximum of 540 digital input lines.
In an expanded digital input system, a zero is read into the computer when
an input line is grounded; a one is read when an input line is open.
Basic digital output capabilities can be expanded to provide 29 additional groups of output lines (with 18 lines in each group) for a maximum of
540 digital output line s.
1-10
Digital Input aq.p. Output - - Continued
The, additional equipment required for expansion of digital input and
,output facilitie s is accommodated in an operator I s de sk-type console shown
in figure 1-1. ' The operator is shown with the Flexowriter, and a logging
typewriter is shown on top of the console control panel.,
Section V include s
a functional de scription of console operating controls.
ANALOG INPUT AND OUTPUT
Conver sion Capabilities,
The analog input-output equipment contained in the
basi~
computer
converts voltages from measuring instruments into digital ,form, and converts digital information from computer memory into voltage or current at
rates up to 3,840 conver sions per second~
Throughout this manual, the in-
puts from measuring instruments and transducers are called" analog inputs"
and the outputs to controllers, recording instruments, etc., are called "ana-log' outputs".
The basic computer accommodates the circuits required to accept
up to 32 analog inputs and provide up to 36 analog outputs.
By installing re-
lays and associated circuits in an upright cabinet similaor to that shown in
figure 1-1, the nuomber of analog inputs can be expanded to 1,0024; 'installing
additional analog output modules in an output cabinet enable s the number of
analog outputs to be expanded to 128.
In most control installations, the auxiliary analog input cabinet
contains an oven for maintaining at a constant temperature the junctions be ...
tween the thermocouple leads and the system wiring.
The auxiliary analog
1-11
· Analog Input and Output
Continued
!
Figure 1-1
RW -300 and Peripheral Equipment
cabinet also accommodates amplifiers for raising the amplitude of lowlevel instrument signals (e. g., thermocouple voltages) to a level compatible with the computer's analog-to-digital conversion circuits.
The
cabinet also contains filter s for removing hum and noise from incoming
instrument lines.
Equipment in the computer (and in the auxiliary analog cabinet)
operates as an independent subsystem, so that information from
1-12
Analog Input and Output - - Continued
measuring instruments is constantly convert.ed to digital iprn1, and the latp.st
digital representation is stored in memory without programmed instructions.
Similarly, when new operating parameter s have been conlputed and stored
in memory by the progranl, these latest values are converted to analog form
and transmitted to control instrumentation.
The digital-to-analog conver-
sions are also performed automatically, and do not have to be programmed.
The analog converter is time- shared among inputs and outputs.
A nalog outputs are updated (adjusted to correspond to a number stored
in memory under program control) automatically at least once every 1/30
second.
The frequency at which analog inputs are updated (input voltages con-
verted to digital form and stored in memory) depends upon the particular insta,llation.
For a basic system (32 voltage gates, 0 relays). the inputs can
be updated every 1/30 second; for a system employing 1, 024 inputs, the input information stored in memory can be updated every second, but under
severe noise conditions,' where filters are employed. the inputs may be up--:dated every two seconds, four seconds, or eight seconds to allow a stabilization period for the noise filter s.
Actually, ,the analog input-output system is
flexible and is furnished to meet the needs of each application.
Analo'g input
information can be converted and stored at the maximum rate' of 3,840 sam ...
pIes 'per second.
Longer delays between input samplings are also possible
to provide a stabilization period for transducer s.
Systems can be changed or expanded by means of field modi.fications.
Thus, a system can be installed initially as a computing data logger and
1-13
Analog Input and Output -- Continued
later, I?Y connecting' the analog outputs of the computer to controller s, can
pe expanded to an
a~tomatic
control system.
Analog signals other than d-c voltages, such as pressures, a-c voltages, etc., are converted to d-c voltages by the use of transducers or special converter s.
Amplifier s and filter s are provided for low-level signals
from thermocouples and strain gages.
~nalog
conversions are accurate to
± 0.,05
Two
percent oi full scaleo
'
,
Input Conve'rsion
Analog-to-digital and digital-to-
Rang~
and Number Representation
typ~\9.,of analo~
input capabilities are available: (1) a unipolar
converter which convert,s' to digital form voltages in the range from 0 to
+
10. 23 volts d-c, and (2) a bi-polar 'converter whi~h converts to digital
form voltages in the range from -10 23 volts to't'lO. 23 volts.
0
When
conver~~d
by 10 binar y digits,.;
to :~igital form" the
~nalog
Be~aus,e. the leas.t.~ significant
'signals are represented
digit repre sents a con-
version resolution of 10 millivoltEi, the' conversions are accurate to t 5
millivolts, or ± O~ 05 percent ~f full scale.
In a unipolar system, the digital equivalent of the analog output signal is contained in bit-positions 8 through 17 of a
most ... sigp.ificant bit in position 17.
comput~r
wor"d, with the
Using a bi-polar system, the magni-
tude, bits are in bit-positions 8 through 17" and the sign bit, is, ~n bit"'position 18 .
. As an
example~
assum,e that one of. the variables to be measurfJd is
temperature~ and assume that the' range of values for the temperature read-
ing is 200 to 700 degree s Fahrenheit. ,A continuous analog repre sentation
1-14
A nalog Input and 0 utput ..,., Continued
of this variable can be developed by a thermocouple and art amplifier to take
the form of a
volta~e
Th~
with a rang'e O'fO to 10. 23 volts.
analog subsystem
will sample this voitage s develop a 10 .. digit binary representation of the
voltage, and store it in a specified location on the magnetic
d~um.
The most
significant of these lO bits will be. in bit-position 17 of a compute,r word, the
least significant in bit-position 8.
In a unipolar systems the sign bit and
bit positions 7 through 1 are set to zero for analog inputs and ignored for
analog outp.uts..
Since the exact memory location for eac'h input wHich is
conve,rted to digital for.m will be, krtown to th;e' progra:mmer, i.t will be neces ...
sar y for ,.the
nut:rtbe·r
.p~ogr.a.m
tp
~e.fer
on,ly to that locati.on .and interpret the binar y
storecl~
.A ssumlng a linear relationship between degrees F:ahrenheit and
voltage t a table of values for thes:e representations could be as follows:
Degrees Fahte,nheit
Volts
200 1i 0
0' •.00'
00 00 00 00 0.0
2'00.5
0.0..1
00 00
0
0,10
00 00 00 . 10 10
.Z50 q, 0
l,O.o
00 01 I.O .01 0.0
325.0
2... 50
00 11 1 1 10 10
450~0
5,00
01' 11 "11 01 0,0
575. 0,
7. :50:
lQ· 11
.to 5~
700;, 0
10:'. .0.0
B i.na~ yRe pre sentation
.11
O~
00 01
10 11 10
11 10 10 00
Analog Input and Output .. - Continued
Input Stor age LocatiQns
Analog inputs are stored in tracks OB through 15 of the drum.
iq.puts are required, only track OB would be used, but for
OB through 15 would be required.
inputs.
1~
If 128.
024 inputs, tracks
Not all sectors of a track need be used for
The exact number of sectors and tracks used depends upon the num-
ber and type of inputs required for a particular system, and assignments are
made to minimize equipment requirements, cost, and memory space for the
partic ular applicationo
In a track reserved for analog input
data~
unassigned sectors cannot
be used for general program storageo
Output Conver sion Range and Number Repre s~ntation
Each analog output is capable of controlling the voltage or current in
its load to an accuracy of
±0
0
05 percent, and is capable of supplying a cur-
rent of 5 milliamperes to a transducer or' controller o
A maximum analog output current of 20 milliamperes can be supplied
at the customer i s option.
A binary number to be converted to analog form is written into a
cific memory location by the program.
occu.,pies
bit~positions
nificant digit in
The binary number for analog outputs
B through 17 of the computer word i with the
bit'~position
spe~
17, and the least-significant digit in
most-sig~
bit~position
B.
For "voltage" type analog outputs, the voltage applied to a controller.
or trans.ducer may be from 0 to 10 23 volts.
0
To apply 10. 23 volts to the load,
bit-p'ositions B through 11 of the correeponding memory sector are filled with
ones under program control.
1-16
The relationship between a number in memory
Analog Input and Output ..,- Continued
and an analog output voltage is line·ar, so that the output voltage is equal
to the decilVal equivalent of the number in mem'ory (taking bit-posi,tion 8 as
the least-significant bit) times 0.01 volt.
Three of the 1,023 possible values
are tabulated below.,
Binary Number in Analog
'(Output Sector of Memo.x:·~
~
,
Voltage Across Load
(max. current = 5 rna)
"*=!
011111111110000000
10 .. 23 volts d···c
010000000000000,000
5. 12 volts d-c
.0000000011000'0000'0
0.06 volts d ... c
In some applications the voltage applied to the load (controller) is
not as important as the current through the load
o
For these applications
a precision resistor is placed in series with the load, and the analog out ...
put is connected to control the voltage acros s the precisi.on re sistor s thereby
./
controlling the current through the load.
Although the relationship between
linear~
the load current and the number in memory is
the number in mem-
ory must be scaled an amount determined by the ratio of the load/'Inetering
resistance.
If the load and metering re sistance s are
analog output voltage appears across the
across the metering resistance.
load~
eq~al.
one half of the
and the other half appears
In this case i maximum curr'ent :tibrough
the lTc'ad and metering resistances is obtained when the program writes:
18
1
010000000000000000
/
in.the appropriate analog output sector.
Writing a larger nl,lmber into the
analog output sector could ca·use a nonlinear relationship between the output'
1-17
Analog Input and Output"" - Continued
and the number in rpemory, and in some extreme cases might'damage that
specific analog output circuit.
The exact configuration of the analog output circuits (voltage output
or current output) i!? determined by the type of controller; transducer»
strumentj/ etc.
g
that forms the load for the analog output.
in~'
During the plan-:-
ning stage of an installation, the programmer is advis,ed of the limits»
linearity~
re sponse time, and other factor s that affect the program.
The
sector numbers that will control analog outputs are also determined during
the planning stageo
Output Storage Locations
Analog outputs are taken fro·m track 07 by the analog co'nverter.
Track 07 is program writable; any portion not used for writing analog out,,·
puts may be used by the program for other storage purposes.
MAGNETIC TAPE UNIT
Introduction
The R W ~300 Magnetic Tape Unit provides practically unlimited mem,·
ory capacity for data reduction and control applications requiring more stor-
The computer and mag.netic tape
age than the basic drum memory provides.
unit ferm a system that is used for
on~Hne
data acquisition and processing J
for recording historical data, for table 100k. up, and for preparing tape s for
1
analysis ... by an IBM 700-series data processing system.
Data is then trans·,
ferred from the drum to the tape for temporary or permanent storage.
For
interpretation, analysis, and presentation with the R W ~,300 computers raw
1-18
Magnetic Tape Uni~ -- Continue'd
data is transfert'ed back to the compute,r.
AUxiliary programs and
~re also transferr.ed from 'tape' to the dru:rn.
subroutine~
Transfer of digital data between
the tape 'unit and the computer is accomplished'through a magnetic core buffer.
Two models of the R W -300 Magnetic Tape Unit are available.
If the
"standard" unit is employed, data stored on the tapes must be transferred
back to the R W - 300 for reduction and pre sentation.
A nother model of the
R W -300 Magnetic Tape Unit, called the" compatible" tape unit, prepare s
magnetic tapes in a format that is acceptable to some models of IBM magnetic tape units.
Thus, data stored by allcompatihle" R W -300' Magnetic Tape
Unit can be processed either by an IBM system; or by the R W -300.
De scription
The magnetic tape unit consists of one magnetic core buffer and from
one to eight magnetic tape transports.
one element of a magnetic tape unit.
Figure 1- 2 shows the R W - 300 and
In the figure; the six-foot rack contains
the buffer, buffer controls, and one tape transport with associated writing
and power supply circuits.
Similar cabinets are used to accommodate
ad~
ditional tape transports and associated writing and power supply circuits.
The buffer has a capacity of 128 computer words of 18 bits each.
This amount of information is commonly called a "block" in the standard
tape unit and a "record" in a compatible tape unit.
, In the
~:',ptandard"
magnetic tape unit, a tape calibrator is used to
establish specific writable blocks (no defects) on the tape, and these blocks
may 1;>,e written into individually, without disturbing the contents of other
'1-19
Magnetic Tape
Un~t
- - Continued
Figure 1-2
R W -300 and Magnetic Tape Unit
blocks on the'tape.
The tape calibrator automatically rejects any areas
of tape that are of low quality.
Format characteristics of a
II
compatible" magnetic tape unit
require that the entire length of the tape be used for sequential storage
1-20
Magnetic
of all records.
T~:pe
Unit - - Continued
Therefore p when a record is rewritten on a tape fnth.e ;1I.com-
patible" system,. all succeeding records within a
\I
file" must also be rewrit-.
ten.
Each transport holds one reel of tape with a capacity of approximately 730, 000 c@mput.er words for the
words for the" compatible" unit.
II
standard" unit and 1,
OOO~
000 computer
The magnetic tape unit transfer s data at
the maximum usabl~ rate of 1,9 536 words per secondo' An eight ... transport
. s,ystem can record data a.lltomatically at th.e maximum rate for nearly 70
minutes.
Since the
~ape
reels are easily replaced 'the dataurecording perp
iod may be eXtended indefinitely.
The transports are modified Ampex FR-400 digital tape handlers
operating at 75 inches per second in the write) search, and read modes and
rewinding at 160 inches per second.
Each transport accommodates 2400
feet of standard 1 / 2~inch magnetic tape wound on a 10 1 / 2~inch reel.
,
,
The buffer is a specially designed assembly» which in additio.n to
the core storage includes control» parity generation and
se:nsing~
timing$ and power circuits.
Parity
chec~ing»
checking~ncierror
error
s\:l:rveillanc'e
are provided to prevent los·$ and inaccuracy of data during transfers to and·
from magnetic tape.
Operation
The c.omputer program controls the norrnaill,9 automatic operation of
th~ magrietic tape unit.
signals
~o
auto\ro.atic
The 'magnetic tape unit fU'rnishe s error -condition
aid this controL» and has manual controls and indicator s for nonope,rations~\'
1 ... 21
Magnetic Tape Unit - . . Continued
A single
co~nputer
command with a number of variations dete1 mines
4
the mode of operation of the magnetic tape unit.
unit to
'~ransfer
This command causes the
data$ search. rewind, or back spaceo
Data is transferred
as follows:
a.
from computer to buffer
b.
from buffer to tape
c.
from tape to buffer
d.
from buffer to computer
To locate data recorded on tape
g
the computer searches the tape
while it is traveling either forward or in reverse until a ·specified record
address (first word of the record) is foundo
The tape unit provides the computer with indications of six conditions
that interfere with the transfer of data.
The se conditions are:
a.
buffer power supplies inoperative
b.
buffer in use
c.
tape error (parity violation)
d.
transport inoperative
. e.
f4
end of reel
write amplifiers disabled
During the last three conditions, the unit cause s the computer to st'op if it
attempts to
transfe~
data.
Computer commands related to the magnetic tape unit are described
b:cie£ly in Section
rI f
and more complete operating information is contained
in a separate manuaL.
Magnetic
Tape' Unit _ .. Continued
Specifications
Number of' buffers:
one.
Number of transports:
Power:
one to eight.
120 volts l 60 cps.
Type of buffer: magnetic care.
Physical characteristics of buffer: mounted in one tape transport.
Capacity of buffer:
128 words of 18 bits each (one block), or 64 words
of 36 bits each' (one
II
record" in a "compatible"
system).
Type of tape transport:
Dimensions of transport:
modified Ampex FR-400 Digital Tape Handler.
72 in. highll 23 in. wide, and 24 in. deep.
II
Recordirig De'nsity
Standard" Tape Unit
150 lines per inch,
8 bits per line
"Compatible" Tape Unit
200 lines per inch,
7 bits per Litle
Number of data bits
6'
6
Number of timing bits
I
o
Number of parity bits
1
1
Tape width
1 / 2 in.
1 / 2 in.
Tape length
2400 feet
2400 feet
Tape
10 1/2 in.
10 1/2 in.
Tape speed forward
or reverse
75 i'n..,Iset:,., within
10/0
75 iri. / sec.
Tape rewind speed
160 in. / sec.
160 in. / sec.
Maximum bit rate
11. 25 kps
15 kps
Minimum bit time
89 J.ts.
66 J.ts.
reel
$
within
, 10/0
.1-23
Magnetic Tape Unit - -
Contif1u~d
Recording Density
"Standard" Tape Unit·
150 line $ per inch,
8 bits pet. line
"C'ornpatible lt Tape Unit
200':Unes,' per i~ch,
7 bits per line
Record length (128 words)
2. 58 in.
1.9Zin.
Inter-record spacing
2. 72 ih.
0.75in •.
Records per 2400-foof tape
5440
10.800
Allowable record 'number s
. 21~
Record time
34. 4
.Maximum us.able data
transfer rate:'
1, ~36 wordsJ s,e,c.
Number of heads
8 read;
8 write
l-Z4
Z18
ms.
.25. 6 ms •
7 read;
7 write
SECTION II
INSTRUCTIONS
INTRODUCTION
An instruction in the RW -300 is composed of two computer words.
The first word contains an execution code. 'and an operand address.
The sec-
ond word contains an operation code and the address 01 the next instruction
to be performed.
An instruction is written by the programmer in the follow-
ing form:
execution
code
operand
address
operation
code
next -instruction
address,
The exact form taken by the instruction in the memory and the format for
listing instructions are described in Section III.
There are 21 basic operation codes in the instruction repertoire of
the RW -300.
However, many more than 21 commands are available, because
computer response to certain operation codes is modified by the execution
code and the operand address.
In the paragraphs which follow, each of the operation codes is described in conjunction with the variations made possible by execution codes
from 00 through 31 and by operand track addresses from 00 through 63. The
sector number associated with an operand address does not modify th:e operation codes, nor are the operatiori codes modified by the track and sector
numbers of the next-instruction address.
In describing the operations, the
following notation is us ed:
2-1
Introduction - - Continued
us~d
a.
"A" is
to designate the A register.
b.
"B" is used to designate the B register.
C.
"Mil is used to designate the memory location specified by the
ope rand addre s s.
d.
Pare nthe se s are us ed to de signate "contents of"; (A) means the
contents of the A register.
e.
Arrows are used to
d~signate
"replaces "; (A) ...... (B) means the
contents of the A register replace the contents of the B register.
Figure 2-1, located at the end of this section of the
manual~
contains
examples which show how different operation codes affect the contents of
arithmetic _-registers and memory.
LOAD· A
(M)"':""'-(A)
Decimal Code:
29
Mnemonic Code:
LA
Operand Address:
specifies the location of the numher (M) which will replace the
contents of the A register.
() c:)
Execution Code:
doe s not affect operation- -use a,.ny
The contents of M replace the contents of the A re'gister.
register is unchanged.
LOAD B
2-2
(M) ---- (B)
Decimal Code:
07
Mnemonic Code:
LB
The·B
Load B - - Continued
Operand Address:
specifies the' location of the number (M)
whi~h
will replace the
contents of the B reglster.
C'JC)
Execution Code:
doe s not affect operation- -use
The contents of M rel?lace the contents of the B registe r.
aBy
The A
register is unchanged.
LOAD A NEGATIVE
- (M) ---- (A)
Decimal Code:
21
Mnemonic Code:
LN
Operand Addres s:
,specifies the location of the
number (M) which, with sign
changed, will replace the contents of the A register.
does not affect operation--use
Exe cut ion Code:
The contents of M, with sign changed, replace the contents of the A
register.
STORE A
The B register is unchanged.
(A) ----(M)
Decimal Code:
30
Mnemonic Code:
SA
Operand Address:
spe cifie s the location M in which
the number in the A register will
be stored
2-3
(){J
Store A - - Continued
00
Execution Code:
The contents of the A register
doe s not affect operation- -use aay.
replac~
the contents of M.
The A
register and, the B registe r are unchanged.
STORE B
(B)~(M)
Decimal Code:
20
Mnemonic Code:
SB
Operand Address:
spe cifies the location M in which
the number in the B register will
be sto red.
OC_')
Execution Code:
does not affect operation- -use afty.
The contents of the B register replace the contents of M.
The A
register and theB register are unchanged.
ADD
(A)
+
(M) ---(A)
Decimal Code:
25
Mnemonic Code:
A
Ope rand Addre s s:
specifies location of addend, (M).
Execution Code:
doe s not affect operation- -use
DC:>
a&y
The contents of M are added algebraically to the contents of the A
register; the signed sum rep lace s the previous contents of the A register.
If the sum is zero, the sign of the A register is unchanged.
is unchanged.
2-4
The B register
Add - - Continuecl
If the number of significant A-register. bits and/or the ~u~ber of
significant M bits is 17, an addi,tion command can re sult in a car ry bit that
cannot be accommodated in the
most~significant
A
register.
The carry bit, repre senting the
bit of the sum, "overflows" the· A register ,and is lost.
Overflow does not halt the computer, but turns on the overflow indicator •
. Overflow can be detected by use of the transfer command: Transfer on
Overflow.
To obtain meaningful results from an Add instruction, it" is necessary
that the augend (A) and the' addend (M) have the same scale factor. ' Scaling
considerations are described in Section VIII.
(A) - (M) ~ (A).
Decimal Code:
24 .
Mnemonic Code:
s
Operand Address:
specifies location of subtrahend,
(M).
t.,)C)
Execution Code:
does not affect operation- -use &A¥
The contentis- of M are subtracted
algeb.raically from
the contents of
.
,
,
the A register; the signed
A
regist~r.
differenc~
.
replaces the previous. contents of the
If the difference is zero, the sign of the A·registe·r is unchanged.
The B register is unchanged •.
Z-.S
Subtract - - Continued
Ove rflow can occur under the same conditions as specified, above for
the Add command.
The minuend and subtrahend should have the same scale
factor, as 'discussed in Section VIII •.
5H1~T
Decimal Code:
01
Mnemonic Code:
SH
Ope rand. Addr e s s :
specifies the type of shift.
Execution Code:
specifies number of places to be
shifted.
The track number in the operand address specifies the type of shift'
as follows:
Operand Track Address
Type of Shift
Track 00 through 15
shift (A) right; (B) unchanged.
Track 16 through 31 .
shift (A) left; (B) unchanged.
Track.48 through 63
shift (A) left; (B) left into A. ·
The execution code specifies the number of places to be ,shifted.
Any
number from 00 through 31 can be used to obtain an instruction for shifting
from 00 through 31 places.
The sign bits of th.e A and B registers are un-
changed by the Shift command.
The two types of shifts involving only the A register are open-ended,
so that bits shifted off either the right or the left end of the A 'register are
lost.
When A is shifted right, the bit positions vacated at the Left end of the
A register are filled with zeros., When A is shifted left, the bit positions
vacated at the right end of the A register a're filled with zeros; any non-zero
2-6
Shift - - Continued
bits shifted off the left end of the A register tur,n on the overflow indicator.
(Overflow can be detected by
usi~g
the Transfer on Overflow command.)
When both the A register and B: register are shifted left, the two
registers are "coupled together so that the most-significant (I,7th) bit of the B
register
mov~ s
to the least-significant (1 st) bit position of the A register.
Bit positions vacated at the right end of ,the B register are fiUed with zeros.
Bits shifted off the left end of the A register are lO,st, but non-zero bits turn
'on the overflow indicator.
",.-..~--,,-~---. .--..-"
' .
I
,\The Sh~ft c~mmand m~y\also be usedto mtil~iply ~~." divide by/~owers
,
/'
\
' ',"'/
,,/7,
of two.
Hting regi\r content8\~~ftone ,PJa:~e,i,~ eqUiVale~~ultiP1Ying
by two, and
iftin g . . ~igh~ one place "0.'-tvide s by
~
,
'\,
,/
\
.:"""
/'" ·~e~~UA~,tJj£~\'!E!: ~,~. ,~,a.~!.~ ~
I,I'~'
,/
•
,"
tw~~\,,1 'F4te·~ u~~~;'~e.x-e'~~en,.:.,,/
. '
'--
\,"
,,\.
~
A~", d~. a c ri,b,e'6" 'in 'C onjUtl'~t6h"Wl£n"'"'s'ca:ling
' ( '
in
,
...,.-
S~ctto~t~
. . . .-" ...,..:,
TRANSFER ON NEGATIVE
Decimal Code:
09
Mnemonic Code:
TN
Oper~nd
Address:
·,becomes the nextinstructio:p. address if
t~
A register holds a
negative number. ,
...
, Execution Code:
do e s not affe ct
(2:)CJ
operation--us'e
~.
~)'
Trapsfer on Negative - - Continued
If the sign of the .A. register is negative, the operand address becomes
the next-instruction address.
Otherwise, the next-instruction address re-
mains as specified in the program listing.
are
4-nchan~ed.
The A register and the B register
A zero with a negative sign causes transfer to occur.
TRANSFER ON ZERO
Decimal Code:
11
Mnemonic Code:
TZ
Operand Address:
becomes the next-instruction
addr e s s if the numbe r in the
.A
Execution Code:
regi~ter
is zero.
does not affect operation- ;"use
atry:?Immbe:r~£.r.:Ort.F(l0,,~tthr,o·lT'gh
If the contents of the A register are zero (plus or minus), the operand
address becomes the next-instruction address.
Otherwise, the next-
instruction address remains as ·s.pecified in the program listing.
The A
regIster and the B register. are unchanged.
TRANSFER;'ON OVE1~.FLdw·
Decimal Code:
10
Mnemonic Code:
TF
Operand Address:
becomes the nextinstruction addres s if
the ove rflow indi'cato r
is on.
2.-8
~o
Transfer on Overflow -- Continued
Execution Code:
doe s not a££e ct
o c.:J
~!lPe·r ation.-
-la.s··e: azssrf
If the overflow indicator has been turned on since the last Transfer on
Overflow command, the operand address becomes the next-instruction address, and the overflow indicator is turned off.
Otherwi~e,
the next-
instruction address remains as specified in the program listing.
The A
register and the B.regi·ster are unchanged.
COMP'ARE MAGNITU"1)E
Decimal Code:
Mnemonic Code:
Operand Addres.s:
15
.CM
specifies the location of
the number (M) to be com - ,
pared' with the number in
. the A register.
Execution Code:
if the comparison of absolute values indicates
that.tp.e number in the A
register is smaller than
...
the .number in memory,
the next -instruction address if formed by ad'ding
the execution code to the
2-9
COmpc.Lre Magnitude - - Continued
next -ins truction addre s s
(A). , , 1---- (B)
.
lllltla
I(A)I '
specifiecl in the program
I
I
(M)a~
(A)£,
l't'·l'
n -l l
ln
a1
listing.
The magnitude of (A) is compare d with the magnitude of (M) by subtrfl,cting the absolute value of the number in the specified memory location
from the absolute value of the number in the A· re'gister.
At the conclusion of
the instruction. the B register holds the number originally in the A register,
and the A register holds the (signed) difference between the absolute values
of (A) and (M).
If
Ove rflow cannot occur.
I(A) I
is equal to or greater than l(M)
I ' the final contents of the
A register will be positive, and the! computer will read the next instruction
from the location specified 'as the next-instruction address i~ the program
listing.
{{ Ifl(A)
I is less than
I(M)I, the final contents of the A register will
be negative, and the computer will read the next instruction from an address
formed by adding the execution code to the next-instruction
in the progr·am listing.
~ddress
The addition performed to form a new
specified
next-instr~uction
address is modulo 128. meaning that the track number of thei\ext-instruction
address will be unchanged. and only the sector number will be modified.
(Example: if an execution code of 20 is added to sector 120, the new sector·
number will be 20
. EXTRACT
2-10
+ 120 - 128. or sector 12 of the track originally specified.)
(A)
®
(M)·----(A)
Decimal Code:
05
Mnemonic Code:
EX
Extract - - Continued
specifies the location of the num-
Operand Address:
be r (M) to be used for logical
multiplication" of the contents of
theA register.
t){)
does not affect operation- -use a:ny,
Execution Code:
The logical product of the contents of the A register and M replaces
the contents of the A register.
AU
f8
bits are used.
Each bit (including the,
sign bit) of A is matched with the corresponding bit of M.
When the corre ~
sponding bits of both A and M are ones, a one remains in that position of A.
When the co"rresponding bit of either A or M'is zero, a zero replaces the
contents of that position in A.
(The Extract operation is described in Sec-
tion V.) The B registe r is unchanged.
MERGE
(A) Ef) (M) ---- (A)
31
Decimal Code:
Mnemonic Code:
"MG
Operand Address:
specifie s the location of the number (M) to b~ logically added to the
contents of the A register.
" . "
Execution Code:
"C)C)
does not affect operation- -use
aft)'
The logical sum of the contents of the A register and M replaces the
contents of the A register,
18 bits are used.
Logical addition is performed bit-by-bit, and all
Each bit of A is matched
wi~h
the corresponding bit of M.
2-11
Merge - - Continued
\V)len the cor'responding bit of eithe r A or M, or both, is a one, a one rep1a.ces the contents of that position in A.
When the corresponding bits of both
.A'·~l.nd M are zeros, a zero replaces the contents of that position in A.
The
Brcgister is unchanged.
SWITCH
Decimal Code:
02
Mnemonic Code:
SW
Operand Address:
spe cifie s the type of switch
Execution Code: .
00
does not affect operation--use aB¥
Operand Track Address
T-xpe of Switch
Track 00 through 15
(A) ____ ( B) ; (A) unchanged
Track 16 through 31
(B)~(A);
Track 32 through 47
(A) ........ (B)
Track 48 through 63
o ----- (A),
(B) unchanged
(B)
Four types of switches are possible, depending upon the track number'
specified in the operand address.
For any track address from 00 through 15, the contents of the A register replace the contents of the B register, and the A register remains
unchanged.
For any track addres s from 16 through 31, the contents of the B register replace the contents of the A register, and the B register is unc;hanged.
For any track addres s from 32 through 47, the contents of the A and
B registers are intercha!lged.
2-12
Switch - - Continued
For any track addres's from 48 through' 63, the contents of the A and
B register s are cleared.
(A) unchanged, (B) unchanged
STOP
Decimal Code:
00
:Mnemonic Code':
SP
Operand Address: '
doe s not affe ct
oo-txJ
operation--use
~--,
doe s not affect
Execution Code:
OiJ
ope ration - -us e any
The Stop command halts the pr.ogram.
If. the RESUME button on the
operator's control panel is pressed, the computer reads the next instruction'
from the location specified as the next-instruction addr1ss in the program
listing.
DIGITAL
TheA andB registers are unchanged.
Decimal Code:
06
Mnemonic Code:
DG
Operand Address:
specifies the input or output device.
Execution Code:
for digital input, specifies number
of bits taken in and their position
2-13
Digital - - Continued
in the A register; for "one -bit"
digital outputs, spe cifie s on or
off control.
Operand Track Address
Type of Digital Command
00 through 31
Digital output from the A register
32 through 63
Digital input to the A register
e~~jjJ~ replace the' contents of the A register •
. Eighteen input lines form an "input group" that is assigned a specific
track address.
An execution code of 18 results in all 18 lines being read into
the A register, replacing the previous contents of the A register.
d. e v'c
.._-1_''''m·
.....·~''·t''s·.. ''·'''''P·l'e·'''''·o.·
·t··er ,
Outp u ts to d 1'g'tal
1
1 e s "'L',,..,...'h-4-,..,.,,,,,,
\ 11~.......,.....~;.A...'
.. .''''::.''.''·,..x,.."t
'0'", ....
.£'- . "......... •. •·..........
.&."l·
"",,,,,,1.;1..
legg-ing.,"'"tY"p'e:W"rite.r~;,..~etG.~
,L..,u.
"',.....
'\N..
are controlled by the A register.
The contents of
the A regis ter are unchanged by a Digital output command.
Eighteen output
lines form an "output group" that is assigned a specific track address,. and
each line in the addres sed group has a corresponding bit position in the A
register.
In the case of "multi-bit" outputs, all 18 lines in an addressed group
are set on-or -off to correspond to the one -or -zero bit. pattern in the' A
register.
In the case of "one -bit" outputs, one or more lines in an addressed
group can be controlled without disturbing the other lines in the group.
A
one is .placed in the A register hit position(s) of the line(s) to be affected by a
2-14
Digital - - Continued
specific Digital output instruction.
An odd-numbered execution code turns
the affected Hne(s) c.'n; an even-numbered execution cqde turns the affected
line (s) off.
address assigned to specific equipment has
computer memory.
~
relationship to drum tracks in
The track number in the operand address of a Digital
instruction doe s not refe r to me mory at all, and only has significance in the
se lection of 'the input or output device.
(A) unchanged, (B) unchanged
Decimal Code:
03
Mnemonic Code:
NO
Operand Address:
doe s not affe ct
oO--oD
operation--use
. Execution Code:
Cfft)T
. doe s not affe c't
operation--use
~
2-15
No Operation - - Continued
This comll1and causes the computer to transfer unconditionaUy to the
next-instruction address in the program listing.
,ister and the B register are not affected.
The contents of the A reg-
The No Operation code is useful in
cqnjunction with exit instructions in arithmetic subroutine s.
T,ApE
Decimal Code:
22
Mnemonic Code:
TA
Operand Address:
specifies the tr,ack of the computer
memory that is to be transfer red
to magnetic tape;. specifies
th~
mode of operation.
Execution Code:
spe cifie s whethe r
informa~ion
from the tape is to be placed in
track 14 or track 15 of the computer memory; add'resses a specific tape transport.'
1!.he-c,fta~r--a:"ct·e·r·i·stic s,.and.applicatiQn,a""of.,,the "magne-t.ie,'tap·e·,,'u'l1it·· are
o
de,.s.G.;ibe.Q,,,·erie'fty~ihS·e etlan
L'
Information is transferred between the .computer drum and magnetic
tape through the magnetic tape unit's buffer.
blocks of 128 words
each~
Information is transferred in
. An identifying word, recorded as the first word
in a block of information on the magnetic tape, permits the tapes' to ,be
searched for specific blocks of information.
Detail-e d pr~ming...an.d.-ope'l!.a:tifl.g·"i~£er.m-a-tiOA.o/f.Q.r~t~·"·R""W·'a''3"O'O'
M.a.gne,ti·e'·'"T·a:pe-Unit'·is:,,·£.Qnt-a4:ne,Cil-.in~"fl;"""S"epctra1:e-·m-afi~~h
2-16
Multiply
, MULTIPLY
(A) X (M) - - - (A, B)
Decimal Code:
16
Mnemonic Code:
M
Operand Address:
spe cifie s the location of the
multiplier (M).
Execution Code:
specifies the number of multiplier bits'used to derive the
product, and specifies the number of product bits in the B
register.
The contents of the A register are mq.ltiplied by the contents of M.
The original contents of the A and B register s are rep laced by the product.
The signs of the A and B register's agree , and are the algebraic sign of the'
product~
To obtain a meaningful product, the execution code liE" must be
equal to, or
gr~ater
than, the number of significant multiplier bits in M.
Overflow cannot occur.
The number of product bits generated by a Multiply instruction is
equal to the total number of significant bits in the mUltiplicand (A) and multiplier (M).
(Depending upon the magnitude of the multiplier and multiplicand,
the number of significant product bits may be one less than the sum of multiplicand and multiplier bits.) To accommodate all product bits, the B register
serves as an extension of the A register.
There will always be "E tr low-order
product bits in the B register; the high-order product bits will be in the A
2-17
Multiply - - Continued
register.
Thus, the execution code can be used to control the apportionment
of product bits betwe,en
~he
A and B registers.
Section VIII of this manual tells how the execution code
sfale factor' of ,the prc)duct.
a~fects
the
The paragraphs below contain examples which
show how different execution codes affect the 'results of a 'Multiply instruc~ion.
!
In the examples, ·'0000 •••• " indicates leading zeros; "xxxx •••• "
indicates significant bits I which may be some combination of ones and zeros.
Sign bit s are not shown.
In the following example, the number of multiplicand (A) bits is 17,
and the number of multiplier (M) bits is 13. :
{\
....
A Bits = 17
....
,I
•
•
•
......Mbits= 13
:..
i
I
I
Ix x x x x x x x.x x x x x x x x xltirheslO 0 0 O!x x x x x x x x x x
,
(A)
xxxl
/'~----~I--------------------~
(Mt
To obtain a meaningful product, the execution code
to or greater than the number of multiplier bits.
"E"
must always be equal
In the example, there are a
total of 30 bits in the multiplier and multiplicand, so the number of product
bits will, be either 29 or 30.
With a "minimum" execution code of 13, the B
register will contain 13 of the low -order product bits.
For E = 13, the product is:
I ........~---------- A!+ !M·' Bit~ ::i:! 30 ------~-----~;a.. . . :
I
I
Ixxxxxxxxxxxxxxxxxi
----
~
16 or 17 bits
.--
"
(A)
I x x x x x x x x x x x x x:O 0 0 01
/--...---.........
13 bits
(B)
---
Depending upon the magnitude of the multiplier and the multiplicand in the
example, either 17 or 16 bits will be in the A register.
2-18
For execution codes
Multiply - - Continued
greater than minimum, the product bits are shifted right; fewer product bits
are obtained in the A register, and more product bits are obtained in the B ,
re,gister.
,An execution code of 17 always results i~ complete multiplication,
using all 17 multiplier bits.
For E
= 17,
the product is:
I
I
A
..
•
o:x x x x x x x x x x x x x
I
...............
I
M Bits = 30
I
.... "
12 or 13 bits
+
.. I
Ixxxxxxxxxxxxxxxxxi
-----..",,---.........,...
1 7 bits
/
"',
(A)
(B)
---
In the above example, it was shown that a minimum execution code (an
execution code equal to the number of multiplier bits) results in a maximum
number of product bit,s it). the A register.
In the example, there were 17
, multiplicand bits in the A register before multiplication, and either 16 or 17
product bits in the A register after multiplication.
tion applies to any 'Multiply instruction:
r
The following generaliza .. ,
After multiplication, the number of,
significant bits in the A register remains the same, or is reduced by
one~
if
Also, IIE",
the execution code doe s not exceed the number of multiplier bits.
\
low-order product bits are always' shifted into the B register.
In the general case, the maximum execution code is 17.
However, ,
higher execution c:odes can be used to shift insignificant product' bits (zeros) ,
off the right end of the B register.
example:
.
I
'
""""-Abits
This is illustrated by the following
.
= 12--....
.-.-·t·
.......
M bits
,
,
10 0 0 0 O:x x x x x x xx xl 0 0 0 !time s 10 0 0 00 0 0 O:x x x x
, /
(A) .(M)
.
=
Xl{
9---.:
.•
x 0 0
I
I
•
2-19
rv1ultiply -- Continued
There are a total of 21 bits in the multiplier and multiplicand, so the nUlnber
Also, there are a total of 6 zero bits
of product bits will be either 20 or 21.
in the least-significant bit positions of the multiplier and multiplicand; there
will 'be at l~ast 6 zeros in the least-significant bit positions of the product~
The 6 ze ro bits can be shifted off the right end of the B register by using an
e~ecution
code E == 17 + 6 = 23.· For E
= 23,
•, (
1 0 0 "0 0 0 0 0 0 0 0 0 0 0 0 0 0 01
the product is:
A
+M
Bits =
2l----~;):-1
I
10 0 Ix x x x x xx x x x x x x x x 10 0 0 0 0 0:
(A)
I (B)
\
---_~~~---~_-- t
1 7 ...............
bits
I- - - -..........-- ........
.....
:+ 6 zero bits
:
E = 23
Caution must be used in assigning an execution code greater than 17.
If any ..
significant product bits (one s) are shifted off the right end of the B register,
the product is not simply truncated -- the bits that remain in the A andB
registers will be meaningless.
An execution code of 17 always results in a meaningful product.
For
E :: 17, the product is:
l--....- - - - A + M Bits == 21
r--------------------~I-------_
"-,O_o_o_o_o_0_o_o_o_o_o_o_o-;:_x_x_x_x.....1
Ix x x x x x x x x x x
I ~"
(/B) --17~bl'ts
4 bits (A)
..... :
°°°°°
0
,
----
An execution code equal to the number of significant bits in the multiplier
alwa.ys results in a rncaningful product.
:-.'l
For E :: 9, the product is:
A + M Bits = 21
I0 0 0 oo! x x x x x x x x x x x x 1\
1 2 bits
)11
~""x-x-x-o-o-o-o-o-o-'l-o-o-o-o-o-o-o-o""'"J
(A) (B)
9 bits
Divide
(A) + (M) ____ (A); remainder ___ (B)
DIVIDE
Decimal Code:
26
Mnemonic Code:
D
Ope rand Addre s s:
spe cifie s the location of the.
divisor (M).
Execution Code:
specifies the number of
quotient bits.
The contents of the A register are divided by the contents of M.
The
original contents of the A register are replaced by the quotient, and the
original contents of the B register are replaced by the remainder.
The sign
of the A register is the algebraic sign of the quotient; the B register takes'
the sign of the dividend.
If the ratio of dividend to divisor is one or greater,
the overflow indicator is turned on.
Basically, a Divide command yields one integer quotient bit, followed
by a serie s of fractional quotient bits.
Thus, the maximum
~inary
quotient
is 1. llll1. ..•• , and the ratio of the dividend (A) to divisor (M) must be less
If (A) + (M)
than two.
~
2, the quotient will not be meaningful.
The number of ;quotient bits generated is always equal to'the execution code
"E".
The execution code can be chosen to obtain a quotient with a
specific scale factor, as discussed in ~ection VIII.
The effe~ct of different
execution codes on the quotient is illustrated by the examples which follow.
In the examples, "00000 •••• " is used to de signate leading zero bits, 'and
"xxxxx..•.
II
is used to de signate some combination of one s and zer~s that
repre sent significant bits.
Sign bits are not shown.
Consider dividend (A) with 8 significant bits, and divisor (M) with
1 2 significant bits.,
2-21
Divide - - Continued
:~Ab't
I
I
= 8-)-:
1 S
•
o 0 0 0 0 0 0 0 0 :x x x x x x x
1 ....( _ -
divided
by
,.
xl
:
I
M
.
bits
= 12
x
) :
•
I
xx
0 0 0 0 O:x x x
x x x
x x x
/' '-----:-.-~------.....
(A) + (M)
I
Using an executionco9.e of 1cause·s only one quotient bit to be generated.
The first quotient bit· generated is the integer bit.
In this· example, the di-
visor is much larger" than the dividend, and the integer bit is zero.
For E
= 1,
th~
quotient and remainder are:
E = 1 qu otient bit
10
3
00 000 0 0 0 0 0 0 0 0 0 001
Integer ---.!'(A)
Using an execution code of 7 causes seven quotient
b~ts
to be generated: an
integer quotient bit, and six fractional quotient bits.
For E = 7, the quotient is:
;p.-a
t~
•:~ 17
:"E = 7 quotient:
,
bits ,
.1 0 0 0 0 0 0 0 0 0 0: 0 0 0 0 x x x
Integ~r -.J
Fractlon
--r-
I
'fA)
I
remainder bits
)at
XXXXXXXXXXXXXXXXXI
/
(B)
In the above example, the first four quotient bits are zeros because
the divisor has four more significant bits than the dividend.
In general, the
minimum number of leading quotient bits that will be zero can be predicted
by subtracting the number of dividend (A) bits from the number of divisor
(M) bits.
The execution code can then be chosen to eliminate M - A quotient
zeros by adding M - A to 17 to form the execution code.
2-22
•
Divide - - Continued
+
In the example: E = 17
I.......- E
I
=. 21
quotien:t bits
M - A = 21.
•t
,
---17 remainder
--~}IIri:""',
:'~I xxxxxxxxxxxxxxxxx
Integer
bit and
3 leading
zero bits of
fractional
quotient
For: E = 21, the quotient is:
<::::::::==::::;:
;;>
1 7 fractional
quotient bits
,
•
bits~'
•
•
I,
xxxxxxxxxxxxxxxxx
(A)
(B)
When an execution code greater than 17 is used, quotient bits are
lost o"£f the left end of the A register.
In the example, E - 17, or 4 quotient
bits were shifted off the left end of the A register.
An execution code as high
as 31 can be use d, with the result that 31 - 17, or 14 quotient bits will be
lost.
For ,execution codes greater than 17, E - 17 quotient bits are always
lost off the left end of the A register.
The overflow indicator is never turned on when zero or non-z.ero
quotient bits are shifted off the left end of the A register during a divide instruction.
or greater.
The overflow indicator is only turned on when the quotient is one
A quotient greater than one always turns on the overflow indica-
tor, even if quotient bits are not shifted off the left end ·0£ the A register.
In the following example, the quotient will be less th.an two, but may
be
>"
1 because there are as many bits in the dividend (A) as in the divisor
(M).
I
I ~Ab'
I
10
1 ts
,
>
~
0 0 0 0 0 0 0 o:x x x x x x x x
I
.~M
~
b't
•
I
I
1 S
>
~
1
divided by ..
1_o_o_o_o_o_o_o_o_o..;!_X_X_X_x_x_x_.x_x
.....
" . /
(A)
{M}
2-23
Divide - - Continued
Exampl.es of quotients obtained using execution codes 1, 17, and 18 are tabu'"
lated below.
If the quotient is equal to, or greater "than one, the ove rflow indicator is
turned on.
for E = 1, the quotient is:
E
. , .~17 remainder bits ____ .:
=1
quotient bit --:t
ro 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 x I.; ilemainder is Ixxxxx xxxxxx xxxxxx 1
J",
Integer:: 1 if (A} >" 1---"
(M)
= 17 ,the
For E
bits
•
I;
Ix x x x x x x x x x x x x x x x x
~
(A)
1 7 remainder bits
• '
)I1IJio- . ,
r4.l(
--
Integer
1 if
(M)
.:>
=
/
(BJ
quotient is:
= 1 7 quotient
E
(A)
,"""",
•
•
)III- •
'I11III(
remainder is Ixxxxxxxxxxxxxxxxx I
----''(A)
16 fractional
quotient bits
I
'(B(
,
"
'
1
For E = 18, the quotient is:
I
E
I
= 18 ,quotient bits
,,-c(
jXlx x x x x x x x x x x x x x x x
~----
Integer
,bit lost
if (A) '.> 1
(M)
...............
'
.---
I
)lila
xI;
...... ,
I
B)
If there are mor e bits in the dividend than the divisor I the quotient may be
greater than two.
If (A) + (M) < 2, the quotient will always be meaningful;
if (A) + (M);- 2, the quotient will be meaningless.
2-24
•I
remainder is Ixxxxx'xxxxxxxxxxxxi
---'-,
(A)
17 fractional
quotient bits
1 7 re mainder. bits
Divide - - . Continued
Special Cases:
If the dividend and the divisor are both zero, the "E" quotient bits will
be all ones (with the appropriate ·sign), and the remainder will be all zeros.
If th.e dividend :ts non-zero and the divisor is zero, the quotient (with
:g; = 18) will be all ones (with the appropriate sign) minus the dividend. The
remainder will be all zeros.
A .dividend and divisor having a quotient equal to or greater than two
can be used to obtain a valid remainder in the B register if the execution
code "E" is limited to 18 - A, where
the dividend.
"A"
is the number of significant bits in
Under these conditions, there will be liE" quotient bits in the
A register; the bits will all be ones.
EFFECTS ON REGISTERS
The table in figure 2 -1 shows how the different operation codes affect
the contents of memory, the A register, and the B register.
Because it is
cumbersome to write 18 binary digits to show the contents of M, A, and B,
the numbers are expressed in octal form.
(Each octal digit represents 3
binary digits, as discussed in Section VIII.) Note that these .octal numbers
include the 18th or sign bit.
Therefore, any octal number of 400000 or
greater has a one (-) in the sign bit.
S
o·
For example:
17
16
15
14
13
12
11'
10
9
8
'7
6
5
4
3
2
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
O·
will be written as 360000 and
2-25
Effects
Registers ... Continued
011
S
17.
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
l~
1
1
0
'0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
will be written as
624000.
The fir st co luron in the table indicate s the oper ation that is to be .
performed.
The next four columns list the execution code (EX), the operand
address (OPRND), the operation code (OP), and the next .. instruction address
(NI).
Although these codes and addresses are shown in the' sequence that
they would appear in a program listing, the series of instructions does not
represent a program.
The remaining columns of the table indicate the contents of memory,
the A register, and the
:a
register.
The first line of each instruction repre-
sents the contents before the instruction is execu,ted; the second line represents the contents after the instruction is completed.
The following symbols
are used:
a.
XX means that the contents of the register or the memory location are destroyed in the process of executing the
instructio~.
b.
SS means any sector number.
c.
-- means that the register contents, operand address, and/or
execution code is of no importance in the instruction.
The table lists only operations that affect memory, registers, or
next-instruction addresses.
and Tape.
2-26
Not included are: Stop, Digital, No Operation,
Figure 2-1.
oIperatlon
EX OPRNDOP
Load A
--
Load B
- - ----- - -- ---
Load A Neg
-- -- ...
-----
--
.. --_ ..
Add
--
-----
Add
--
.... -_.-
25
Subtract
--
.. ----
24
Subtract
- .. -----
24
Shift
05
15-5S
01
07
31-55
01
17
63-55
01
--
-----
09
--
46-73
09
-- .... _--
11
Store B
___ (A)
Shift
(A) ....
Shift
(A),(B)---
Transfer on
Negative
Transfer on
Negative
Transfer on
Zero
(M)
29 .. ---- 042500
042500
07 - ---- 042500
042500
21 - ---- 042500
042500
30 - ---- XX
042500
20 - ---- XX
042500
25 .... --- 230000
230000
--
Store A
NI
Commands and Registers
NOTES
(A)
(B)
XX
042500
------
------ XX
------ 042500
XX
442500
042500
042500
(M)~(A)
(M)~(:B)
------
-(M) ..... (A)
------
------ i042500
042500
(A) ..... (M)
-(B)
~(M)
------
(M)+(A)---(A); note
that original (A) is
negative.
.. ---- 230000 270000 ------ (M)+(A ).... (A T;ove rflow occurs; turns
230000 120000
on overflow indicator.
.. -.--- 270000 230000 ------ (A)-(M) .... (A); since
(M»(A), answer is
270000 440000
negative.
----.- 670000 230000 ------ -(A)-(M)~(A); since
M is -, overflow
670000 120000
'0£ c ur s; t ur n son
overflow indicator.
Track
no • specifies
042500
- -- .. ---- ..
right -shift of A; EX
001052
specifies 5 place s.
----- ------ 042500 ------ Track no. specifie s
left shift of A; EX
120000
specifies 7 places;
turns on overflow
indicator.
- ---- ------ 042500 406700 Track no. specifies
006700 400000 left shift of A, B; EX
specifies 1.1 places;
turns on overflow.
indicator.
...
....
..
Sign of A is +; NI
042500
45-75
remains as pro'042500
45-75
grammed.
45-75 ------ 442500 ------ Sign of A is - j
OPRND becomes NI.
442500
46-73
(A) not zero; NI stays
45-75 ------- 042500 -- ..
042500
as programmed.
534000
074000
--
-----
-_
-_
----
2- 27
Figure 2~1.
COlnmands and Registers (continued)
Operation
EX OPR1'tD OP NI
Transfer on -- 46-73 11 45-75
46-73
Zero
--_..
(M)
------
(A)
400000
400000
--
....
--
46~73
Compare
,Magnitude
29
_... --- 15 TI-75 034200 042500
Compare
Magnitude
29
-- ---
Extract
-- --- 05
Merge
---
Switch
..
Switch
- ..
31-S8 02 -
Switch
.- -
47-S8 02
Switch,
.. -
63-SS 02 ....... --
Multiply
17
......
Transfer on
Overflow
Transfer on
Overflow,
-
(B)
-~--
.. -
10 45-75
45-75
------ ------ ------ ...
10 45-75
46-73
------ ------ ------
XX
Tr-75 034200 006300 042500
--
15 IT-I03 442500 034200
XX
'IT-04 442500 406300 034200
-,..
- .... - 021415
31
--- --
15-55 02
-- ... --
-- -
234277 -----021415 020015 "
021415 234277 -----021415 235677 '
------ 042500 XX
042500 042500
NOTES
(A) are (-) zero; ,
OPRND.becorpes
NI.
Ove rflow indicator
off; NI remains as
1?rogrammed.
Overflow indicator
on; OPRND becomes
NI.
(A)-..{B); since '(M)
< (A), NI is unchanged.
(A)~{B); since (M)
> (A) se ctor of NI
becomes 103 + 29
-128 or 4.
(M)
®
(A)~
(M)
G:>
(A)--- (A)
Oprnd. track nos.
00 -,15 specify (A)
~(B).
-_ ..
---- ------
XX 400277
400277 .tlO0277
----- - .. _---
042500 400277
400277 042500
------
042500 400277
000000 000000
16 - ......... 000012 000002
XX
000012 000000 000024
14
---- -
16
- - ---
Multiply
17
-----
16
- ----
012000 000200
XX
012000 000005 000000
Multiply
15
....
----
012000 000200
XX
012000 000024 000000
_.. --
16 -
Oprnd. track nos.
16-31 specify (B)
~(A).
Multiply.
400012 000002
XX
400012 400000 400240
Oprnd. tra'ck nos.
32 .. 47 specify (B)
:=;t:(A) •
Oprnd. track nos •
48",,63 specify
O~A) B.
(M) X (A)-'-{A), (B)
10 10 X 210' = 20 10
-10
X 2
= -20 10
10
10
Shiite d left 1 7 - :E :=
3 place s.
(M) X (A)-ll-(A), (B)
10
X 2
= 20 10
10
10
10 10 X 2 10 = 20 10
Shifte d left 1 7 - E
places.
.= 2
2- 28
(A)
Figure 2-1.
Commands and Registers (continued)
(A)
(B)
EX OPRND OP NI
(M)
XX
12 -- - _.. 16 .. -- -- 012000 000200
012000 000040 000001
Operation
Multiply
Divide
18
Divide
18
-------_ ..
Divide
17
-_ ......
Divide
10
......
Divide
26
-- ---
26 .-- -- 300000
300000
.......
26
200000
200000
-_
XX
230000
312525 200000
300000
XX
200000 000000
26 ....... -- 200000 300000
XX
200000 300000 000000
i
i
_-
26 ...
26
_- .... - 200000
--- --
002500
XX
200000 000012 100000
200000 002500
XX
200000 100000 000000
NOTES
X 2
=?
10
10
Execution code less
than number sig.
bits in M -- invalid
product.
(A) + (M)---A;
remainder -'-(B)
(A)+(M)> 1 turns
on overflow indicator; overflow
occurs, but fractional quotient in
A register is valid.
(A)+(M)> 1 turns
on overflow indica~
tor; however integer and fractional
quotient in A
register is valid.
(A) + (M)--- A;
remainder ~(B);
quotient shifted
right 18- E =8
places.
(A) + (M) ...... A;
remainder ~(B);
quotient shifted
left E - 18
7
places; significant
bits are lost from
A register; does
not turn on overflow
indicator.
10
=
2.- 2.9
SECTION III
BASIC PROGRAMMING
INTRODUCTION
This, section tells how numbers and
in~tructions
are represented in the,
RW-30Q computer. The operations defined in the preceding section are used to
illustrate the, instruction format, and simple program listings are presented.
On the magnetic drum which serves as the computer's in.ternal memory,
,words are recorded' 'on tracks as variations in magnetic flux., There are 64 tracks
of interest 'to the programmer, and these track$ are numbered
00
through 63.
'Each track accommodates 128 words' in sectors that are numbered 00 through
127. ' A particular location in memory is specified by the track number and
'seC?tor number.
For, example, 17-07 specifies sector 07 of track 17.
RW-300 computers with the expanded memory hav:e.'lZ3 tracks, or
15, 776 words, available to the programmer. Refer to Section IV forprogr,amming'information for computers having this optional feature.
Data words (number s) and instruction words are represented in ,the computer as binary number s.
A word is 18 binary digits in length. Although there
are two space bits separating words on the drum, the space bits are of no con, cern to the programmer.
A word may represent numerical itlformatioft, half of au instruction,
or any pattern of 18 bits desired by theprOiramme1" (e. g., for program modification).
Since the, comp~ter is a binary machine" the programmer
3-1
Introduction - - Continued
must have a working knowledge of the binary number system.
(See Section
VIII. )
INSTRUCT10N WORDS
An instruction is two computer words, or 36 bits, in length.
Two
addresses are included in each instruction: the addres s of the operand and
the addres s of the next instruction.
This arrangement p·rovide s what is com-
monly called a lIone -plus-one" instruction form, which permits optimum
(i. e.
t
minimum-time) programming.
The operation to be performed, OP,
is one of 21 different arithmetic or logical commands.
The execution code,
EX, determines the number of bits in a product or quotient, the number of
place s shifted, or othe r special functions as de scribed in Section II.
WORD ONE
,
Operand Address
Execution'
Code •
EX
WORD TWO
Operation: Next Instruction Address
Code
I
I
OP
I
Track
:
Sector
I
I
Track
Sector
( Bit Positions)
(Bit Positions)
FORMAT FOR LISTING INSTRUCTIONS
The series of instructions comprising a program are'\ usually listed
on a form similar to the one shown below.
CI
EX OPERAND
OP
iA
I
I
IA
I
I
IA
I
I
--I •
••
I
'I"
NI
REMARKS
II
1'1
"
I
I
The columns of the listing have the following significance:
3-2
Format for Listing Instructions - - Continued
A is an "indicator" which, when read by the computer during loading,
announces that the number which follows is an address.
CI,is the location where the instruction is to be stored.
CI stands
for "cur rent instruction".
!.. is
an indicator which announces that the numbers whi,ch follow are
to be stored in the location previously specified.
EX is the execution code contained in the first word of the instruction.
OPERAND is the address of the operand that will be used in the instruction.
(The operand address may specify a number in memory that will
be us ed in a computation, or may modify the instruction - - the exact significance of the operand address is explained in relation to each of the operation
codes. )
I is an indicator which announces that the numbers which follow are
to be stored in a sector whose number is one greater than that specified in '
the eI column.
Thus, the entire instruction 'appears in two successive word
(sector) locations on the, drum, and the fir st word is located in the sector,
spe cifie d in the CI column.
OP is the operation code contained in the second word of the instruction.
NI is the address of the next
inst~uction,
i. e., the address of the in-
struction which will be read by the computer after the current instruction has
been comp leted.
(In some case s, the next instruction will be read from the
address specified as the operand a'ddress, or will be formed by adding the
execution code to the address specified in the Nt column.)
3-3
Format for Listing Instructions - - Continued
The REMARKS column may be used by the programmer to make notes
that can be referred to when the program is being checked out or modified.
The program is punched on pape r tape using an off -line Flexowriter.
The typing (punching) format must be compatible with the RW -300 load program contained in track 63 of memory.
After the tape is prepared, it is
threaded through the Flexowriter tape reader.
The operator presses the
LOAD button on the R W -300 contro 1 pane 1 to initiate loading.
The load pro-
gram, tape -punching format, and related operating procedures are described
in Section VI.
Sector 00 of track 00 is called the "origin" because the RW -300 reads
. the instruction in sectors 00 and 01 whenever the START button is pressed.
If the following listing were punched on tape, loaded into the RW -300, and the
START button pre ssed,
th~
first word of the instruction (execution code and
operand address) would be read from sector 00 of track 00, and the second
word of the instruction (operation code and next-instruction address) would
be read from sector 01 of track 00.
C I E X OPERAND
R 00-00 11 100 1
OP
NI
REMARKS
52-17
The instruction commands the computer to load the A register with
the ope rand located in sector 17 of track 52, and proceed to the next instruction in sector 06 of track 17.
As noted in the remarks column, this instruc-
tion loads the .A register with the binary equivalent of the decimal number
460.
3-4
Data Words, or Constants
DATA W.ORDS, OR CONSTANTS
mag~
A data word, having numerical significance, is composed of 17
nitude bits, plus a sign bit.
The sign bit is zero for positive numbers and
one for negative numbers.
Consider the decimal number
+0.9375
in binary.
If
~ollowing
form:
0
1
f
'Bit ~
18 17 16
Positions
+ o. 9375,
which i$ equivalent to
+ 0 .•
1111
were stored in the computer, it would appear in the
0
0
0
0
0
0
0
0
0
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
1
1
0
0
0
0
If the number were negative, the binary digit in bit-position 18 would be a
one.
The bit pattern shown above might also represent the decimal number
3. 75 if the programmer chose to think of the binary point as being between
bits 15 and 16 (3.75 in decimal
= 11.11
in binary).
Location of the binary.
point is a scaling consideration which is discussed in Section VIII.
FORMAT FOR LISTING.CONSTANTS
Constants must be placed in computer memory during the loading
operation.
Constants are usually listed on a form similar to the one shown
below.
ADDR.
CONST.
A
C
A
C
A
C
REMARKS
,
I
3- 5
.
Format for Listing Constants - - Continued
The columns of the, listing form have the following significance,:
!:
is an indicator which, when read by the computer during loading,
announces that the number which follows is an address.
ADDR. is the location where the number is to be stored.
CONST .is the number, or constant.
,The REMARKS column may be used by the programmer to ,make notes
that can be referred to when the program is being checked out or modified. '
Constants are punched on paper tape along with the instructions of the program, and the punching format must be compatible with the load program
described in Section VI.
If the decimal constant 460 were to be listed for storage in memory,
the number would first be converted to its six-digit octal equivalent, 000714.
See Section VIII for information on decimal-to -octal conversion., For storage
in sector 17 of track 52, the listing of the constant would take the following
form:
bl
ADDR.
CONST.
s2 17
-
C000714
REMARKS
460 10
The six-digit octal number representing a constant includes 17 magnitude bits and one sign bit.
In the listing of constants, the sign bit must be
included in the most-significan,t octal digit.
Therefore, the most-significant
octal digit of a constant contains two magnltude bits and one sign bit.
3-6
Format for Listing Constants - - Continued
The octal equivalent of
+ 98304
is 300000, which would appear in
computer memory as follows:
~
- most-significant octal digit
7
1011111010101- - - - + sign,/'
The octal equivalent of -98304 is -300000.
Since the most-significant octal
digit must include a one to form the negative sign bit, the number would
have to be specified on the program listing as 700000.
The number would
appear in computer memory as follows:
~most-significant
~
"
octal digit
.
USE OF MEMORY
General
In listing the instructions and constants, the programmer must choose
memory locations that are accessible to the computer when the program is
being loaded onto the drum and when the program is running.
The choice of
these memory locations is governed by the characteristics of memory, the
characteristics of the load program, the configuration of the system, and
by conventions that have been established o"n the basis of operating experience.
The paragraphs which follow describe the constraints imposed upon
reading and storing information in memory, and describe how listings should
be organized so that punched tapes can be loaded easily.
Suggestions for
keeping track of storage locations are also presented.
3-7
U;.:\_~
of
Merno~'y
-- Continued
The choice of memory locations determines the time required fo:!'
the computer to complete calculations.
These timing considerations relate
to "optimum programming" de scribed in Section IV.
Reading Information from Memory
A ny sector in tracks 00 through 63 can be j,"ead by the computer under
program control.
Tracks 08 through 15 mayor may not contain the digital equivalent
gf an analog input, depending upon the number of analog inputs accommodated
by the sy:stem.
Also, tracks 14 and 15 may contain data being' transferred.
from the magnetic tape system.
Track 63 contains the load program which starts when the LOAD
button is pressed.
Storing Information in Memory
By mating the "tr.ack group selection plug" with an ··appropriate "track
group" jack, information can be stored in any sector of tracks 00 through 61.
The plug and jack, located on the test and maintenance panel, are described
in Se'ction VII.
Each track group (except track groups 56 through 61) includes
eight tra"cks, as follows:
00 through 07
08 through 15
16 through 23
24 through 31
32 through 39
40 through 47
3-8
· Use ~f Memory '-- Continued
48 through 55
56, through 61
When the program is running, the track group selection plug on, the
R W -300 test and maintenance panel is usually connected to the jack -marked
0-7, because these tracks can b'e written into under program control.
track group is sometime s referred to ,as
II
This
scratch pad" memory, because it
is most frequently used to hold the intermediate results of calculations.
If
the program instructs the computer to store information in some track group
other than 00 through 07 , the computer
ha1t~
and turns on the ERROR light.
The program will resume if the track group selection plug is moved to the
correct jack and the RESUME button is pressed.
However,subsequent at-
tempts of the program to store in some other track group will be foiled by
another ERROR indication.
Therefore, instructions and,constants are
usually loaded into track groups 08 through 61, and tracks 00 through 07 are
reserved for intermediate results of calculations.
Specific sectors of track 07 are reserved for analog outputs,
~.·J.d
only
control information relating to specific output line s should be written into
the se sectors.
Specific tracks in track group 08-15 are reserved
for,an~log
inputs.
Instructions or constants cannot be loaded into' any sectors of these reserved
tracks.
Except during program loading, information can always be stored in
the 32-word recirculating register of track 62.
The 32-word register is
3-9
U ~e of Memo ry - - Continued
deacribed in conjunction with optimum programming (Section IV).
Informa-
tion can be stored in track 62 without reference to the track group selection
plug.
However l the information must be ,vritten under program control, and
not'during loading, because certain sectors of track 62 are written int.o by
the load program, and any attempt to store in these' sectors during loading
will be fruitless because the load program will write other information there.
Information cannot be stored in track 63; any attempt to store in
track 63. causes the ERROR light to glow and halts the program.
Organization of Listings
The lists of instructions and constants should be organized so that instructions to be stored in specific track groups appear together.
When a program of instructions and constants is being loaded l the
compute r stores instructions and constants in the tracks specified in the CI
column ,of the instruction listing (and in the
listing).
ADD~
column of the constant
If the listing calls for storage in different track groups I the com-
puter signals ERROR 1 and the track group selection plug must be moved to
the appropriate track group before the instruction or constant can be stored.,
Therefore l to speed up the loading process, the programmer should organize
his listings so that all of the instructions to be loaded into ..a track group appear together on the pape r tape punched from the listings.
Record Keeping
Only one wo rd can be stored in any sector of memory.
When a punched
tape of a pro gram listing is being loaded into the computer, new information
will be stored in the locations specified, thus destroying anything stored
3-10
Use of Memory -- Continued
earlier.
Therefore. if two separate instructions are assigned the same
memory location, the instruction read last will be the instruction stored in
the memory location.
To avoid assigning the same memory location to separate information,
the programmer must keep a record of sectors in which instructions and constants are to be stored.
The form shown be low is convenient for record-
keeping purposes.
Channel
0
32
64
96
2
34
66
98
4
36
68
100
6
38
70
102
8
40
72
104
10
42
74
106
12
76
108
14
44
46'
78
110
16
48
80
112
18
50
82
114
20
84
116
22
52
,54
86
118
24
56
88
120
26
58
90
122
28
60
92
124 '"
30
62
94
126
....\
Note that only even-numbered sectors are listed on the form.
Since
an instruction occupies two sectors, it is common practice when programming
the R W -300 to specify an even-nulubered sector location for instructions; in
3-11
Use of Memory -- Continued
this way, the first word of the instruction is stored in the even-numbered
sector, and the second word is stored in the following odd-numbered sector.
There is no restriction to preyent the programmer from as signing an
odd-numbered sector to the first word of an instruction--in which case the
second word will be stored in the following even-numbered sector.
If sector-
location 127 is assigned to the first word of an instruction, the program listing must specify that the second word of that instruction is to be stored in
sector 00 of the same track.
In this special case, the complete instruction
is listed as two " half-instructions" :
EX OPERAND
CI
IA
01-127 I 00
IA
01-00 I 00
52-17
OP
REMARKS
NI
(Ex and Operand)
I
LOAD A
17-06
(Op and NI)
I
SAMPLE PROGRAMS
The following examples show how to construct computer programs
using the listing formats des cribed in the preceding paragraphs, and using
the commands described in Section II.
Example I
a.lJ.f 1.'
The following is a program to add two numbers, ~
the result in the memory location 01-02.
CI
EX OPERAND
OP
Let ~
NI
= +1273 8
and'y
REMARKS
~ 00-00 I 00
01-00
I 29 00-02
~ 00-02 I 00
01-01
I 25 00-04 x
k\ 00-04 I 00
01-02
I 30 00-06 Store result in 01-02
k\ 00-06 IOO
00-00
I 00 38-124 Stop
3-12
..
x
~
+y
A Register
-~
A Register
and store
= -243 8 •
Sample Programs - - Continued
1:1
ADDR.
CONST.
REMARKS
01-00
C001273
x
01-01
C400243
y
To prepare 'this program for loading into the computer, a pape r tape is
punched by typing the above listing on an off-line Flexowriter, using the
typing format de scribed in Section VI.
To load the program, the programmer first thre'ads the punched tape
through an on-line Flexowriter tape reader, and then presses the LOAD button on the computer's control panel.
The tape is read under control of the
load program in track 63 of the computer, and under control of the load program, the instructions and constants are stored in the locations specified in
the CI and ADDR. c.olumns of the program listing.
After the last symbol of the punched tape has been read, the computer.
will continue t'o read the blank trailing tape unle s s the last symbol punched on
, the tape is an "s".
will stop.
If an "s" is punched at the end of the tape, the computer
If the re is no "s" punched at the end of the tape, the loa?ing opera-
tion may be h.llted by pressing the STOP button.
Pushing the START button causes the computer to begin the
progra~
by reading the first instruction contained in sectors 00 and 01 of track 00 •
.When the computer completes the sample program, it will halt.
The
results of the addition (0010308) will be in the A register, as well as in
memory location 01-02.
The contents of the A register may be observed on
the ,oscilloscope of the test and maintenance panel, as described in
Se ction VII.
3-13
Sample Programs - - Continued
When the computer halts in response to a Stop instruction (operation
code 00), it may be directed to proceed to the next-instruction address by
pr es sing the RESUME button.
In the example J pres sing the RESUME button
(after the computer halts) causes the computer to proceed to the instruction
located in se ctor 124 of
tr~ck
38.
The functions of the R W -300 control buttons are summarized in
Se ction VII.
Example II
This program calculates the average of the squares of
be rs:
L.!.
n
x.2, i
1
=
1, ••• , n.
memory location 01-50.
In this .example,
The numbers xl' ••• , x
~ = 4,
4
~
small num-
and.!: is stored in
are stored in locations
01-00- through 01 -03 , respectively.
When the Stop instruction is executed, the average of the squares will
be in the A register and in memory location 02-00. (See page 3-150 )
Note 1: Multiplication results in a double-length product.
Since this
example involves small numbers l the significant digits of the product are assumed. to be in the B register, in which case the A register will contain zero·s.
This is not a general assumption, and it is the responsibility of the programmer to predetermine how significant product bits will be
di~tributed.
between
the A and B registers by adjusting the "scale factor" and execution code.
These considerations are discussed in conjunction with number systems and
scaling in Se ction VIII.
Note 2: The significant product bits in the B register are switched
into the A register and then stored.
3-14
The two instructions that accomplish
Sample Programs - - Continued
CI
EX OPERAND· OP
NI
REMARKS
lA
00-00 I 00
01-00
I 29 00-02 Load A
X ---{A)
1
Note 1
lA
00-02 I 17
01-00
I 16 00-04 Multiply
X1~{A),
Note 2
!A
00-04 I 00
32-00
I 02 00-06 Switch
(A)
lA
00-06 I 00
02-00
I 30 00-08 Store A
X12~Location 02-00
!A
00-08 I 00
01-01
I 29 00-10 Load A
X2~(A)
k\ 00-10 I 17
01-01
I 16 00-12 Multiply
X22~{A),
lA
00-12 I 00
32-00
I 02 00-14 Switch
(A)
!A
00-14 I 00
02-00
I 25 00-16 A.dd
Xl
!A
00-16 I 00
02-00
I 30
00-18 Store A
X
lA
00-18 I 00
01-02
I 29
00-20 Load A
lA
00-20 I 17
01-02
I 16 00-22 Multiply
X ........ {A)
3
2
X3 --- (A), (B)
lA
00-22 I 00
32-00
I 02 00-24 Switch
(A) •..
lA
00-24 I 00
02-00
I 25 00-26 Add
Xl
~ 00 ... 26 I 00
02-00
I 30
00-28 Store A
~ 00-28 I 00
01-03
I 29
00-30 Load A
~
00-30 I 17
01-03
I 16 00-32 Multiply
~ 00-32 I 00
32-00
I 02 00-34 Switch
(A) ..
'A
00-34 I 00
02-00
I 25 00-36 Add
2'
2
2
2
Xl +X2 +X3 +X4 ___ (A)
Note 3 ~ 00-36 I 18
01-50
I 26 00-38 Divide
222
2
(Xl +X2 +X3 +X4 )-+. 4 ....... (A)
I 00
02-00
I 30 00-40 Store A
Average---location 02-00
~ 00-40 I 00
-- --
I 00 ... -
k\ 00-38
- ..
III
!lIE
2
1
2
(B)
(B)
.. (B)
lIE
2
(B)
2
+X2 ~(A)
+ X
2
2
....... 1ocation 02-00
.. (B)
·22
+X2 +X3 ~(A)
X12+X22+x3~lo~ation02-00
X ---(A)
4
2
X ~(A), (B)
4
.. (B)
Stop
~
3-15
Sample Programs - - Continued
this (00 -04 and 00-06) could be replaced by a Store B instruction.
Howeve r,
subsequent instructions use the switch-and-store sequence to form a running
sum.
In tp,is
exampl(~,
all instructions are listed in the same pattern; in the
next exampie, the pattern is made a part of a repetitive routine.
Note 3: Division by 4, to obtain the average of the' sum of the squares,
could be accomplished in less time by using a Shift-right instruction (shift
right two places), which is equivalent to. dividing by 4.
Example III
The following program solves the same problem as the program in
Example II.
However, it illustrates a "loopll, a repetitive routine that re-
duce s the num be r of ins tructions •
The instructions fo r taking an x., squaring
1
it, adding this to a running sum, and storing the result, are written out only
once, as opposed to four times in the example above.
Howeve,r, the program
r,eturns to this sequence of steps as many times as necessary.
A loop can
handle virtually any numBer of x. 's without being lengthened. in proportion.
1
Locations 01 -00 through 01-03 again contain xl • . • x •
4
Locations
01-50 through 01-52 contain the constants 000004, 000003, and 000001,
re-
'\
spectively.
Location 01-54 is a "counter" which keeps track of the number
of times the computer has gone through the loop.
Location 0'2.-00 contains
the running sum and, at the end, the final answer.
The flow chart in figure 3-1 shows how the program is to operate.
3-16
Sample Programs - - Continued
Clear A and B registers.
Set running sum to zero.
Load address of first x.
1
into loop.
Load loop counter constant into A.
Store counter.
Compute x. and add to
•
1
runnlng sum.
Reset addresses in loop
to thos e of next x ..
1
Load counte r into A and
subtract one.
NO
'--------11
Test for negative.
Con1.pute average.
Figure 3 -1.
Flow Chart of Progr am in Example III
3-17
Sample Programs - - Continued
EX OPERAND
Cl
OP
Nl
REMARKS
.
I 02 00-02 Switcn
OHa-{A)~ (B)
021-0b
I 30 00-04 Store A
O~02-00
Note 2 IA 00-04 I 00
01'- 53
I 29 00-06 Load A
17
IA 00-06 I 00
00-14
I 30 OO-OB Store A
17 0 1-00
IA OO-OB I 00
00-16
I 30 00-10 Store A
17 01-00 ...... 00-16
:A 00-10 I 00
01-51
I 29 00-12 Load A
000003~(A)
Note 3 :A 00-12 I 00
01-54
I 30 00-14 Store A
000003~01-54
Note 4 :A 00-14 lAX
xx-xx
xx-xx
I 29 00-16 Load A
X.~(A)
1
I 16 00-lB Multiply
2
X. ->-(A), (B):
I 00
32-00
I 02 00- 20 Switch
(A) ...... (B)
~ 00-20 I 00
02-00
I 25 00-22 Add
X. 2 + (02- 00) -JII-(A)
IA 00-00 I 00
50-00
Note 1 IA 00-02 I 00
r-
IA 00-16 l~X
iA 00-lB
0,1-00~(A)
.
~00-14
,
.;
1
1
/
'
A 00-22 I 00
02-00
I 30 00-24 Store A
2
X. + (02 -00) ...... (02- 00)
Note 5 A 00-24 I 00
00-14
I 29 00-26 Load A
(00-14) ~ (A)
A 00-26 I 00
01-52
I 24 00- 2B Subtract
(00-14) +
1~(A)
lA 00 ... 28 I 00
00-14
I 30 00-30 Store A
(00-14) +
1~(00-14)
~ 00-30 I 00
00-16
I 30 00-32 Store A
(00-14) + 1---(00-16)
Note 6 lA 00-32 I 00
01-54
II 29
A 00.;.34 I 24
01-52
I 15 00-12
A 00-36 I 00
02-00
I 29 00-3B Load A
I, x. 2____ (A)
1B
01-50
I 26 00-40 Divide
I, x.
A 00-40 I 00
02-00
I 30 00-42 Store A
I,x.
~ 00-42 I --
-----
I 00
~
01-00
A 00-38 I
01-53 I 17
3-1B
, 1
/'1.
I
00-34 Load A
-----
counter~(A)
Compare counter - l~(A)
Magnitude if -, go to ~·00-36
1
2
1
1
2
+4~{A)
+ 4---02-00
Stop
Ha1f00.;.14 and 00-16
instruction
Sample Programs - - Continued
REMARKS
ADDR.
CONST.
A
01- 50
COOOO04
-n=4
A
01-51
COOOO03
counter
A
01-52
COOOO01
decrement
Note 1: The Switch command clears the A and B registers (fills the
registers with zeros), and the Store A command sets the running sum to
zero.
Clearing the A and B registers and storing the result is equivalent to
loading the A register with zeros and storing the zeros.
However, the clear-
and-store operations save drum space and computation time.
Setting the running sum to ze ro is an "initializing \I step which is necessary to prepare the computer for entering the loop.
Other initializing
steps include the storing of the first x. address in the loop (covered by Note
1
2) and setting the loop counter to 3 (covered by Note 3).
The initializing steps are necessary if the program is to be repeated
for different value s of x.
Without the initializing steps, the progrq,m could
be run only once; the punched paper tape of the program would have to be
reloaded before the calculation could be repeated.
/\
Note 2: This and the next two steps set the operand addresses of the
instructions in 00-14 and 00-16 to the address of the first x .•
1
The half-
instruction "17 01-00" (execution code and the operand address) are stored
in both 00-14 and 00 -16.
and "17 01-00" in 00-16.
Actually, what is required is "DO 01-00" in 00-14
However, instruction 00-14 is a Load A instruc-
tion, and the execution code is ignored.
into locations
00~14
To load different half-instructions
and 00-16 would require several additional memory sectors.
3-19
Sample Programs - - Continued
Note 3: This initializing step establishes the counter in sector 01-54.
Each time through the loop, one will be subtracted from the counter. and a
test will be performed.
When the counter becomes negative, the program
will have been through the loop four tim,es and
th~
squaring-and-summing
calculations will be complete.
Note 4: XX
XX-XX represents the execution code and operand ad-
dres s, of Xl •• x 4' which will be re set each time through the loop by adding
one to the operand address contained in 00-14 and 00-16.
See Note 5.
Note 5: In this and the next three steps, the operand address of instructions 00-14 and 00-16 are increased by one, to form the operand address
of the next x..
1
The Subtract command is used because the half-instruction
"17 01-00" appears in memory as 420200 ' a negative number.
S
ing the constant 000001 ' the half.-instruction becomes "17
S
O~
By subtract-
-01" the second
'time through the loop, "17 01-02" the third time through the loop, etc.
Note 6: The number in the counter is brought into the A register for
comparison with the stored constant 000001.
The flow chart indicates that
one is subtracted from the counter J and if the result is negative, ,computation
is complete; if the result is not
counter location.
,ne~ative, the new number is"stored in the
Although this operation could be performed by
tw~
opera-
tions (Subtract and Transfer on Negative), the subtraction,,:,and-testing operation is performed in one operation by the Compare Magnitude instruction.
The Compare. Magnitude instruction subtracts one from the counter,
and the difference replaces the contents of the A register.
The first three
times through the loop, the contents of the A register after the Compare
3- 20
Sample Programs - - Continued
Magnitude instruction are positive orzero t and the computer reads the next
instruction from location 00-12.
The instruction at location 00-12
the new -counter in preparation for the next pass through the loop.
stor~s
After the
loop has been repeated four times, the contents of the A register are negative
after the Compare Magnitude instruction, and the computer reads the next
instruction from the address forlned by adding the execution code (24) to the
next-instruction address (00-12).
Thus t after passing through the loop the
fourth time J the program proceeds to divide the sum of the squares by four
(00-36).
3- 21
TIlE RW-300 HAS HAD THE FOLLOWING TRACK ASSIGNMENTS MADE:
11 digital input tracks:
9
33"
36,
37"
39,
40,
42,
43,
44,
45,
46.
7,
. 41,
digital output tracks:
0,
2,
4,
6,
8,
9,
10,
I.\."
Flexowriter, high speed teletype punch,
0"
trac~s:
2.
Ferranti reader track:
32.
Magnetic tape units track:
39.
When reading the programming manual and the operations manual, the
various commands apparently have different
n~~bers.
This apparent
inconsistency results from showing the commands in the
progr~mming
,
manual in the digital form and the operating manual in the octal
and binary forms.
SECTION IV
OPTIMUM PROGRAMMING
INTRODUCTION
The programming examples in Section III employ "sequential program"
listings; i. e., successive instructions are assigned consecutive locations in
memory.
A sequential program causes the computer to spend an excessive
amount of time searching for instructions and operands.
"Optimum program-
ming" is a technique for selecting storage locations so that a minimum amount
of computer time is lost in waiting.
To understand how optimum programming saves machine time, it is
necessary to consider the physical characteristics of the computer memory.
The magnetic drum used as memory is shown schematically in figure 4-1.
Zeros and ones ,representing instruction and data words, are recorded on
the drum as variations in magnetic flux.
The program can be loaded into tracks 00 through 61, and each of
these tracks has one head for reading information stored on the drum.
The
track address determines which of the 61 heads is used when information is
taken from these "general storage" tracks.
Information is read from the drum serially (bit by bit) so that it
requires "one word time" to read one computer word from memory.
One'
word time is the time required for one word, or sector, to pas sunde r a
read head.
Since there are 128 sectors in ea'ch track, and the drum makes a
4-1
Introduction - - Continued
complete revolution in one sixtieth of a second, one word time is approximately 130 microseconds.
inst~uctions,
In performing a series of
the cOITlputer reads the
f~rst
two -word instruction in two word times, but additional time is required to
carry out the instruction.
word time s
J
For example, to load the A register requires five
and if the Load A ins truction is in sector 00 of some tr ack, the
computer will not be ready to read the next instruction until sector 05 is
passing under the read heads.
If, using sequential programming, the next
instruction is located in sector 02, the drum must complete its revolution
before sector 02 again passes under the read heads. Thus, sequential programming causes a delay of nearly one drum revolution (1/60 second) between
the readi'ng of each instruction.
With optimum prograIl1Il1ing, Il10re than 20
instructions can be accoIl1plished in one drum revolution.
The above example describes the penalty paid for listing. instructions
in consecutive memory locations.
The same type of time los's is incurred if
the operand is not in an optimum location.
In the cas e of instru'ctions involv-
ing operands, about two drum revolutions could be required to complete a
single instruction.
A
But if operands and next instructions are assigned opti-
m.um locations, more than 40 instructions can be carried out in those two
drum revolutions.
The paragraphs which follow des cribethe organization of the R W -300
internal memory and techniques for optimum programming.
4-2
Memory Organization
MEMORY ORGANIZATION
For gene,ral storage needs; the 7~ 936 words of tracks 00 through 61
are available.
Each of these tracks is equipped with a read head$ thus per-
mitting data to be read from any sector of general storage.
heads are all align.e,d with respect totimingji. e.
~
These read
at any given time the read
heads are all at the same sector of their respective tracks.
Therefore, the
time at which informat.ion is read from a sector is indepe ndent of the track
number.
Tracks 00 through 07
Tracks 00 through 07 provide program-writable memory for temporary storage of data.
Each of these tracks has a single head which functions
as both a read and a write head.
Track 07 is fitted with an additiqnal head
,which reads data for conve r sion to analog output.
If mor ethan 64 analog
outputs are'required, track 07 is fitted with two additional heads.
However,
the program rea.d/write head of this track performs the same function as
other program read/writ.e heads.
Tracks 08
throug~~!:..~
Tracks 08 through 15 have read/write heads similar to those on tracks
00 through 07.
These tracks may also be fitted with an extra analog write
head which is not under computer program control.
However~
the computer
can be modified to make all or part of these tracks writable under program
control.'
4-3
Memor y Organization - - Continued
Track 62 Revolver
Track 63
Load Program
Tracks 08 through 61
Tracks 00 through 07
(Program Writable Group)
I~
I
I
I
I
I
I
I
,,
I
I
I
,,
I
ONE SECTOR OF
THE RW-300 DRUM
t"''''
--,/
y
Least Significant Bit
/
/
I
/
I
/
I
/
/
1\
\
\
,,
1
1
/
ONE TRACK OF
THE RW-300 DRUM
/
Most SignHicant Bit
Sign Bit
Space Bits
/
1
1
TRACK 63 READ
TRACKS 16 through 61
TRACK 62
Program Read/ Write
Revol ver Read
Revolver
TRACKS 00 through 06
A
TRACK 07
A
Program Read/Write
,:,;,J,
Program Read/Write
TRACKS 08 through 15
Program Read
- the operand should begin passing
under the appropriate read head the moment the computer's arithmetic circuits are ready to receive that
,
..
'
operand~
'"
. .'.
A reference table of R ... W 300 instructions, the last page of this programming
manual~
contains a column labeled.
II
Execution Time'1.This
4-9
Selecting Optimum Memory Locations - - Continued·
column tells how long it takes the computer to get ready for the operand and
how long before the computer is ready to read the next instruction.
The time
is specified in word times, which is directly equivalent to numbers of sectors.
Note the Add command in the table of RW -300 instructions.
From the
table, "CI~Oprnd Add." is 3 word times; "Total CI~NI" is either 6
or 7 word times.
,
This means that the computer requires 3 word times to
prepare for receiving the operand, and either 6 or 7 word times to complete
the addition and be ready for the next instruction.
Thus, if the first word of
an Add instruction is as signed the memory location 00 -00 (CI column in the
program listing), the operand should be stored in 00-00
+ 3, or 00-03. The
first word of the next instruction should be assigned the location 00";00
or 00-00
+6
+ 7.
In the case of the Add and Subtract instructions, the next-instruction
address location depends upon the signs and magnitudes of the two numbers
to be added or subtracted.
If the sign of the A register is' unchanged by the
operation, only 6 word times are required.
If the sign of A changes, 7 word
times are required.
When determining optilllUITl s ector number s, the nutnber of word titne s
and current-instruction address are added "modulo 128." This llleans that
if the surn exceeds 128, then 128 is subtracted from the sum to obtain the
optimurn sector number:
114
+ 17 - 128
= 03.
In the case of the three transfer commands, the computer will be
ready to read the next instruction in either 4 or 5 word times
(table of
R W -300 instructions), depending upon whether or not transfer conditions
4-10
Selecting Optimum Memory Locations - - Continued
are met.
If transfer conditions are not satisfied (not negative, no overflow, .'
not zero), the first word of the next instruction should be assigned a location
that is 4 word times greater than the current-instruction address'.
If transfer
conditions are satisfied, the first word of the next instruction should be assigned a location that is 5 word times greater than the current-instruction
address.
Note that when transfer conditions are satisfied, the operand ad-
dress becomes the next-instruction address (Section II).
In the case of a transfer command, it would not be possible to assign
absolutely optimum addresses to both operand and next-instruction addresses
within the same track.
tive sector
numbers~
Absolutely optimum addresses would have consecu-
and this is not possible, because each address repr.e-
sents a two-word instruction.
However, optimum addresses can be assigned
by locating the two branches of the transfer instruction in different tracks.
No computer time is lost in switching from track to· track.
A Transfer on
Negative instruction with optimum operand and next-instruction addres'ses
might be:
CI
EX OPERAND
OP
NI
In the case of the Compare Magnitude command, the computer is
ready for the next instruction in 5 word times if
I(M) I > I(A) I,
.1 (M) I<
7 word times must elapse before the
read the first word of the next instruction.
I{A)
co~puter
I,
but if
is ready to
Thus, an execution code of 02
should be used to form an absolutely optimum next-instruction address.
An
'4-11
Selecting Optimum Memory Locations - - Continued
execution code of 01 or 00 would result in the los s of one drum revolution,
or 1/60 second of computing time.
The table of R W -300 instructions indicates that optimum next-instruc .
tion addres$es for some operations depend upon the execution code ("nn" in
the table).
For these operations, the execution code is added (along with the
required number of word times) to the s ector number of the current-instruction address to form the optimum address of the next i.nstruction.
A Multiply
instruction with an optimum operand and next-instruction address might be:
CI
EX OPERAND
OP
NI
If the number of words in the program approaches the number of
words available" in general storage, it will not be possible for the programmer
to assign absolutely optimum memory locations to every instruction, because
the desired memory location may have been previously assigned.
In this
event, more than the specified number of word times should be added to the
current -instruction addre s s .
Becaus e it is impos sible to optimize completely a prograITl which
uses all sectors in a given area of ITlemory, priority should be given to program segments that are repeated many times.
Frequently repeated program
loops sh~uld be more highly optimized than program segments that do not
contain loops.
Therefore, frequently used loops should be programmed first
so that optimum storage locations can be chos en from a relatively empty
storage area.
As the program:t:ning work progresses, the storage area will
begin to fill, and absolutely optimum meITlory locations will not be available.
4-12
Selecting Optimum Memory Locations - - Continued
Les s computing time is lost if the les s -than-optimum locations are as signed
to noniterative operations.
The general requirements for keeping a record of as signed memory
locations are discussed in conjunction with memory usage in Section III.
The
procedure of assigning only even-numbered addresses to instructions will
aid in the record-keeping task.
When only even-numbered addresses are
used for the first word of instructions, the optimum sector number is determined by adding more than the specified number of word times to the currentinstruction address.
For example, the Switch instruction requires 5 word
times; with the first word of the Switch instruction in 00-00, the address of
the first word of the next instruction should be 00-06.
The preceding paragraphs describe the general procedures and philos ophy for selecting optimum memory locations.
In the paragraphs which
follow, similar commands are grouped together, and specific requirements
for each command are presented.
Load, Merge, and Extract
The load instructions (LA, LN, and LB) and the Merge and Extract
instructions all have identical timing requirements; only the LA instruction
will be discussed.
Example 1:
Load (M) into A.
CI
EX OPERAND
OP
NI
4-13
Selecting Optirnurn lvlem.ory LocatioJ'ls - - Continued
Since the COlnputer t.akes three v/ord tirnes to go frorn the current-instruction
a.ddl"e~;t:; tCl
the
fir~t
a.ccessible storage cell, the optimurrl sector location of
M is the sector number of the current-instruction address plus three.
T~e
computer requires tw'O word times to read the operand and load it into the
A
register;
therefore, the optirnum sector location for the next-instruction
address is the sector number of the operand plus two.
Add and Subtract
The Add and Subtract instructions have identical tirrling requirements i
only the Add instruction will be discussed.
Example 2:
Add (M) to (A).
CI
EX OPERAND OF
NI
The optimum sector location for the operand is determined by adding three
to the current-instruction address sector number.
The addition operation
requires three word times if the sign of A does not change as a result of the
operation, four word times if the sign of A changes.
Therefore, unless the
program.m.er knows that the sign of A will not change, he should allow four
words between the operand addres s and the next-instruction address.
penalty for not doing this could be the los s of a
compl~te
The
drum revolution.
Multiply and Divide
The Multiply and Divide instructions have identical timing requirements; only the Multiply instruction will be discussed.
4-14
Selecting Optimum Memory Locations - - Continued
Example 3: Multiply (A) by (M).
CI
EX OPERAND
OP
NI
The optimum sector location for the operand is determined by adding three
to the current -instruction s ector number.
The optimum sector location of
the next-instruction address is determined by adding"E" (execution code) plus
three to the sector number of the operand address.
Compar~
Magnitude
Example 4:
Compare.
I(M) I with I(A) I·
CI
EX QFERANI2
o~
NI
The optimum sector location for the operand is determined by adding three
to the current-instruction sector number.
The optimum next-instruction
address is determined by adding two to the operand address.
However, if
the results of the comparison are negative, (M) > (A), the actual next~instruction address will be the listed next-instruction address plus the execution
code liE".
Since seven word times are required before the computer is ready
to read from the modified next-instruction address, the minimum execution
code should be two.·
Transfer
The transfer instructions (TN, TZ, and TF) all have identical timing
requirements; only the TF instruction will be discussed.
4-15
Selecting Optimum Memory Locations
Continued
Example 5: Take the operand address as the next-instruction address if the
overflow indicator is on; if the overflow indicator is off, read
the next instruction from the address specified in the NI column
of the lis ting .
CI
EX OPERAND
OP
NI
Since the computer takes five word times to test the overflow indicator and
substitute the operand address for the next-instruction address, the optimum
sector location for the first word of the next instruction is the .sector number
of the current-instruction address plus five.
The computer requires only
four word times to be ready for the next-instruction address if the overflow
indicator is off; therefore, the optim.um sector location of the next-instruction address is the sector number of the current-instruction address plus
four.
Switch
Example 6: Switch the contents of the A register into the B register.
CI
EX OPERAND
15-00
OP
NI
II \02138 -491
The Switch command uses the track number of the operand address to specify
~he
type of switch, and the sector number has no significance.
Therefore.
any sector number can be assigned as the sector number of the operand address.
Since the computer requires five word times to complete the switch
instruction. the optimum sector location for the next-instruction address is
the sector number of the current-instruction address plus five.
4-16
Selecting Optimum Memory Locations - - Continued
Shift
Example 7: Shift the contents of the B and A registers left 3 places.
CI
EX OPERAND
OP
NI
48-00
The Shift command uses the track number of the operand address to specify
the type of shift, and the sector number has no significance.
Therefore, any
sector number can be assigned as the sector number of the operand a,ddress.
Since the execution code "E" specifies the number of places shifted, and since
one word time is required for each place shifted, the optimum sector location for the next-instruction address is determined by adding "E" plus four
to the sector number of the current-instruction address.
No Operation
Example 8:
Transfer unconditionally to the next-instruction address.
CI
EX OPERAND
OP
NI
Since the operand address has no significance in the No Operation command,
any track and sector number can be assigned.
The
op~imum
sector location
of the next-instruction address is determined by adding 4 to the sector num",
ber of the current-instruction address.
Store
The store instructions (SA and SB) have identical timing requirements;
only the SA instruction will be discussed:
4-17
Selecting Optimum Memor y Locations - ~ Continued
Example 9:
Store (A) in
CI
{M~,
EX OPERAND
OP
. NY
The optimum operand address (storage sector M) for store
tions is determined by adding four to the sector number of the
instruction addresso
instrut~
current~
The optimum location of the next instruction is deter.
u
mined by adding six to the sector number of the current-instruction addre s.s.
Digital
The timing requirements of digital commands depend upon whether the
command is a digital input or a digital output$ and upon the type of input or out"",
put device addres sed by the commando
Digital inputs and outputs as sociated .
with the Flexowriter ·(track address 00 or 32) require 110
other digital outputs require at least 10 milliseconds.
milliseconds.~
All
Digital inputs from
switches re quire 6 word time s.
Example 10: Input to A register from toggle switches.
eI
EX OPERAND
OP
NI
The Digital command uses the track number of the operand address to specify a
particular device; and the sector number has no significance. Therefore. any
sector number can be assigned as the sector number of the operand address.
For clearing the A register ~ for digital inputs from the toggle ,switches i and for
some other digital input
instructions~
the .optimum sector location for the
next~
instruction address is the sector number of the current",instruction address plus
sixo Section V de scribe s. timing considerations for digital output commandso
4-18
Comparison of Optimum and Sequential Programming
COMP,ARISON OF OPTIMUM AND SEQUENTIAL PROGRAMMING
The next=instruction address in each of the preceding examples
specifies the current-instruction address of the next exampleo
examples were as sembled to form a
Load A1
Add~
Multiply~
program~
If the ten
the commands would be:
Compare Magnitude, Transfer on
Shift, No Operations Store A9 and Digital Input.
Overflow~
Switch,
This optimum program
would be completed in approximately one=half of a drurn revolution ( 1/120
second~.
However» if the instructions and constants used in the program
were assigne d sequential locations in memor y, approximate ly 15 dr urn
revolutions (1/4 second) would be required to com.plete the same programo
Although the optimum program formed by the ten examples could be
completed by the computer in about 1/30 the time required for a sequential
program, no general statement can be made concerning the amount of computer time conserved by optimum programmingo
It is difficult to program
a problem so that all memory locations are absolutely optimum because
instructions and constants in optimum locations for one segment of a prqgram may interfere with the selection of optimum locations for other segments of the same program.
REVOLVER
Track 629 the "revolver"9 provides fast~access storage for 32 computer wordso
Any word written into the revolver passes under the revolver
read head every 32 word times 1 thus making that word accessible four times
during each dr um re volutiono
4-19
Revolver -- Continued
A number used repeatedly in a calculation can be stored in the revolver so that it will be readily available.
Also, frequently repeated in-
structions can be placed in the revolver.
When instructions are placed in
the revolver, the two words that make up the instruction are stored in
sequential revolver locations so that the two half-instructions will be read
as a single instruction.
Each sector of the revolver has a separate address.
Thus, if a num-
ber is stored in 62-00, it can be read next from sector 62-32, then 62-64,
etc.
It is convenient to think of revolver locations as RO, Rl, ... R30, R31
and use the following table.
Table of Equivalent Revolver Locations
·,KO-
Rl
R2
R3
R4
1f5
R6
R7
R8
R9
RIO
Rl1
R12
R13
R14
R15
I
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
96 R16
97 R17
98 R18
R19
99
100 R20
101
R21
102 . R22
103 R23
104 R24
105 R25
106 R26
107 R27
108 R28
109 R29
110 R30
III R31
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
112
113
114
115
116
117
118
119
120
1~ 1
122
123
124
125
126
127
If the optimum sector number for a Store A instruction were 53, the
programmer would use 62-53 as the operand address, and would note in the
REMARKS column of the program listing
"(A)~R21".
When the stored
number is to be read from the revolver, the sector number of the operand
address can be any sector number on the "R21" line in the table of revolver
locations.
4-20
Expanded 1v1.emory
EXPANDED MEMORY
The rules for optilTIUm merDcry locatlons apply to those R W 300
computer s having the optional expanded memory.
Howeve:c. special consid~,
era,dons dictate that optirnllrn prog~lamming is also a function of the over-alL
p.rogram arl·ange.ment
Frequent and unnecessary switching back and forth
fro·m one track set to the othe.,: can be tirne-consuming and wasteful o.f pro-
gr.am space.
O,nce the basic requirements of a specific process or problem have
been established. the programmer should plan track and track set locationp
ih such a manne!:' as ::0 keep track set 'switching at a minimum
OPTIMUM PROGRAMMING USING SYMBOLS
The R vV 300
accepts
p~tog~'ams
Prog~'am
Lib':'aty inc lude s an assenl.bly :,:-outine wh:ich
coded in symboiic form
Optimum Programnling USil"lg Symbols
The routine is called ··OPUS., "
Copie s of the OPUS lnstruction
'manual are available from TR Vv' Cornpute:!:' s C'JITlpany
OPUS reduce s 'Che work. of the programITler by requiring chat only
m'ne·monic operation codes and some other information be listed
In most
cases . next instruction addresses need not oe SPecified; OPUS assigns an
optimum next· instruction addres s
V/hen it is nece s sal' y to refer to an
address seve1. al tiITles within the pi 0gram
4
OE
4
the programITler assigns letter
letter -number combinations as sYITlbolic addresses
a.dd:r:e-sses
l
chosen arbit:carily by the programrne.t
These symbolic
serve as
mnemonic
4 21
Optimum Programm.ing Using Symbols --Ccntin,ued
device s for the P'l'" ogr ammer - - OPUS automaticallY' assigns ab. optimum
addres's toeach symbolically identified operand or
Mnemon~c operation corles a;re used:
ne.x.t-instruc~ion
address.
LA for. Loa4.A.> A· for Add» SW for
Switch, etc ..
The Op·US package inchide.s· an instructionmar;lualand .a punched
paper tape .containing the piog:r·a·m..:
loaded into the R W -300$
After the
th~.computer readsth~
bolically coded progranl,. optimizes ·the
which is a
lirie~·'for ~line $
q.P·P.5:l:t o U:tine, lq.q;S: bee'n
tape' containing
p:rogram~and
punches
th~ sy'm~
arie~
tape
·machine..;lan·g uage:t~~Q.sl9-tion of the symbolically
coded program.
In additioq. to
Routine provi.de s the
9ptimizit:lg~he. syinbolic.al~Y·G?de.d program~:
progr~rrl1f1,er
with- two
,pr·iritou:'t.~·:-an
the OPUS
"A va,ilapility Table
Map" of storage sectors occup.iedb,y the opti.mi:ze'4ptpgr-an1~ and a "Sy-mbol
Table· Map"
of memory sector'$assigned by OPl!S:.t:o:
e'~·ch:
0.£ the symbolic
addre?ses.
Although OPUS simplifies program listing9.':qpt~rn,izi.ng» an'd rec.ord
keeping$ the programmerml.lst. have a
cO!Xlplet~
kn:9wle.dge
ofmachine·~lan
guage instru'ctions in order to correct orl modifyany"rogramhe prepares in
s ym bolic fOTm.
4-22
SECTION V
DIGITAL INPUT AND OUTPUT
INTRODUCTION
The extremely flexible digital input and output capabilities of the R W300 are described briefly in Section 1.
In the paragraphs which follow, the
input and output facilities of the RW -300 are described in detail, and sample
program listings are presented.
The bas,ic RVl-300 is provided with a Flexowriter, which consists of
three devices combined:
paper -tape reader.
an electric typewrite r, a paper -tape punch, and a
The Flexowriter is used to prepare punched tapes of
programs, and the tape reader on the Flexowriter is used to load the program into computer ll1ernory.
The Flexowriter is also used to obtain infor-
mation printouts or punched tape under program control.
Flexowriter codes
and characteristics are des cribed in detail at the end of this section.
Six switches on the test and maintenance panel of the basic computer
can be used for "break-point" control of an operating program, or for inserting information under program control.
Ferranti paper -tape readers (60 characters per second) and Teletype
paper-tape punches (60 characters per second) are optional equipment used
with the R W -300 to obtain higher input-output speeds.
Other paper -tape
equipment and punched-card readers and card punches can also be used with
the R VI-300.
5-1
Introduction - - Continued
The flexibility and expandability of the R W -300 digital input and output
system permit a wide variety of digital input and output devices to be speci- .
fied.
In addition, to the high-speed readers and punches t special input
switches and indicators are available to aid the communication between the
operator and the comJ:luter.
This section of the manual containl1:) a description
of some 6f the input-output equipment, and includes information needed by"
the pr ogr amme r wh will be us lng the equipment.
DIGIT AL COMMAND
The operation code for cOIru"nunication with digital input-output equipment is 06.
The operand track address specifies whether the Digital com-
mand is an input
0
r an output:
Operand Track Number
Type of Digital Com.mand
00 through 31
Output from computer's A register
32 through 63
Input to the cor.aputer's A register
In the' cas e of a Digital output instruction, the axe cution code is only signif ..
icant for the liane-bit" outputs described in conjuction with expanded input
and output capabilities.
In the case of a Digital input instruction, th.e execution code determines where the input bits will be in the A register.
The number of lines
read into the A register is equal to the execution code.
Execution codes
greater than 18 should not be used with the Digital instruction.
The signif-
icance of the execution code for Digital input instructions is illustrated in
exalTIple s which follow.
5-2
Bas ic Input- Output Capabilitie s
BASIC INPUT -OUTPUT CAPABILITIES
Digital inputs permit the computer to accept on-off signals from two
groups of input lines.
One of these groups (line L12 -L
the Flexowriter or other seven-bit input.
(lines L
21
,- L
38
I8
) is reserved for
The other group of 18 inputs'
) is used to accept inputs from other external devices, or '
from toggle switches on the test and lTIaintenance panel.
If lines L21 through L38 are all set to one (connected to -5 volts), and
if the DIGITAL INPUT selector switch on the test and
mainten~nce
panel is
turned to EXTERNAL, the following instruction will cause 18 ones to be read
into the A register.
CI
EX OPERAND
OF
NI
REMARKS
The track and sector nu:mbers of the current instruction (CI column)
and the next instruction (NI colum.n) depend upon the relationship of the Digital
instruction to the rest of the program.
The, track number of the operand ad-
dress is shown as 40, but any track address from 36 to 63 is satisfactory.
The sector number of the operand address does not affect a Digital'
instruction.
The execution code of 18 causes the 18 ones read into the A register
to appear in bit-positions 1 through 18 of the A register.
An execution code
of 17 caus es the input frC?m L38 to appear in bit-position 17, and all succeeding bits to be shifted one place to the right so that the input from L21 is los t.
5-3
Basic Input- Output Capabilities - - Continued
The effect of different execution codes is shown in the following table.
Execution
Code
18
17
18
17
16
L38
L37
L38
4
3
2
0
0
0
1
0
0
0
0
--
o
0
--
Bit Position in A Register
16...........
L36
L37
L38
.
--
0
0
0
0
0
0
0
0
0
0
··
···.
·
·
-- ·
. · · · · · · ··
·· ···
· · · ·
· · · · · ·
·
.
e'
4
3
2
L24
L25
L26
LZ3
LZ4
L2S'
L2Z
LZ3
L24
L38
0
0
0
0
L37
L38
0
0
0
L36
L37
L38
0
0
--
--
--
L21
LZ~
Ll3
-..
L35
L36
L37
L38
0
A useful application of the Digital input instruction is to clear the A
register.
If the execution code specified is zero, no lines are read, and the
A register will contain all zeros.
Inputs from Toggle Switches
The six toggle switches on the test and maintenance panel can be
salTIpled on input lines L21 through L26 by turning the DIGITAL INPUT selector switch on the panel to INTERNAL and using a Digital input instruction
similar to the one shown above.
Using an execution code of 18 will fill the
least-significant bit positions of the A register with the bit pattern represented by the settings of the DIGITAL INPUT toggle switches.
In addition to
the bit pattern obtained from the toggle switches, the A register will contain
any inputs that are applied to Lines L27 through L38.
The Extract operation (operation code 05) can be used to remove unwanted bits obtained during a Digital input instruction.
In the following
example, it is .desired to preserve only the six bits read into the A register
from toggle switches L21 through L26.
5-4
This is accomplished by an Extract
Basic Input-Output Capabilities - - Continued
instruction using the octal constant 000077.
Because bit-positions 1 through
6 of the constant contain ones, the information read into those- A-register bit
positions will be preserved.
However, bit-positions 7 through 18 of the
'COJl-
stant contain zeros, and the Extract operation will cause zeros to be placed
in bit-positions 7 throlJ,gh 18 of the A register.
CI
EX OPERAND
OP
NI
IA
TT-SS I 18
40-SS
I 06
IA
17-08 I 00
42-30
I 05 TT-SS
17-08
REMARKS
DG in fromL21 through L38
--
Extract L21 through L26
At the conclusion of the second instruction, t,he A register will. contain one
bits only for DIGIT AL INPUT toggle switches set to ONE; all other bits in
the A register will be zeros.
Inputs froIn Flexowriter
To transmit inforInation from the paper tape in the Flexowriter
reader to the A register, a Digital instruction is used with an operand track
addres s of 32.
An execution code of 07 is normally used so that the Flexo-
writer signals applied to lines LI2 through L18 appear in bit-positions 1
through 7 of the A register.
A Digital input instruction with an operand track
address of 32 causes the Flexowriter to read one frame of paper tap'e and
.
then advance the tape one fram.e 'in preparation for a subsequent Digital input
instruction.
Flexowriter characteristics, Flexowriter codes, and the format
of the punched paper tape are described at the end of this section of the
manual.
5- 5
Basic Input- Output Capabilitie s - - Continued
Output to Flexowriter
To print or punch information on the F'lexowriter, the information
must first be loaded or shifted into the A register.
The code in the A regis-
ter may then be transmitted to the Flexowriter by a Digital instruction with
an operand track address of 00; the execution code is of no consequence when
the Flexowriter is addressed in a Digital output command.
The character ..
printed and/ or punched by the Flexowriter depends upon the contents of bitpositions 1 through 8 of the A register during a digital output to the
Flexowriter.
The Flexowriter's response to digital outputs froIn the R W -300 depends upon the· selected mode of Flexowriter operation, and depends upon the
pattern of bits in the A register.
The mode of Flexowriter operation caIl be
controlled either by switches above the Flexowriter keyboard, or by digital
output signals sent to the Flexowriter froln the RW -300.
Bit patterns in the A register which control the Flexowriter',s mode
of operation are called "control codes".
Specific bit patterns, or codes in
the A register activate a typewriter key or cause some other Flexowriter
response (carriage return, space, etc.).
Codes which neither control the
Flexowriter nor cause some form of typewriter response, are considered
'J
"illegal" codes.
"
"Legal" Flexowriter codes are tabulated in figure 5 -2.
Modes of Flexowriter operation include:
5-6
a.
Print
b.
Punch
c.
Print -and-Punch
Basic Input- Output Capabilitie s - - Continued
The characteristics of these operating modes are explained in conjunction
with the detailed Flexowriter characteristics described at the end of this
section.
To effect printout of symbols from the A register, the Flexowriter
must be in the Print mode of operation.
Sample Printout Listing
The following example illustrates the use of Digital input and output
commands to obtain a signed, two-digit, octal printout of a specific memory
location.
The octal number in this example is -35, which is s.tored in rrlerrl-
ory as 750000, but the printout listing is valid for the sign and the first two
octal digits of any numbe r.
To print and/or punch a symbol on the Flexowriter, the appropriate
Fle~·{owriter
code for that symbol must be placed in bit -positions 1 through 8
of the A regis·ter, and the computer must execute a Digital output instruction
addressed (track 00) to the Flexowriter.
In the s ample listing, the num.ber in memory is loaded into the A
register, and the sign is exam.ined by means of a Transfer on Negative instruction.
If the sign of the number is negative, the next instruction loads
the A register with the F'lexowriter code for a negative sign, and the follow~ng
Digital output instruction causes the Flexowriter to print
" _"
If the sign
of the number is positive, the next instruction loads the A register with the
Flexow:t'iter code that caus es the Flexowriter to print
"+".
After the sign has been printed, the A register is cleared using a
Digital input instruction with an execution code of zero; the two
5-7
Basic Input- O·l.ltput Capabilitie s - - Continued
rno;:;t -Sigllific ant bits of the nl..1l11ber to be print.ed are then shifted frovn the B
register into the.A register.
If the first two bits are both zero, the Flexo-
writer will execute a space in response to the Digital output command which
follows.
If the first two bits are not zero, the Flexowriter will print the
appropriate octal digit.
The A register is cleared in preparation for printing the second digit,
this time by a right shift.
The right shift removes the two bits from the A
register, but does not shift the bits into the B register.
The second octal
digit in the B register is brought into the A registe r by a left shift, and is
then printed.
CI
EX OPERAN!J
OF
NI
REMARKS
II 00
01-04·
1
1 29;: 00-06
'A 00-06 I 00
00-00
I 02 00-12
A~A7
~ 00-12 I 00
00-18
I 09 00-J.6
Test for negative sign
~
00~'16
1'00
01-20
I 29 00-24
+-:~-A
lA
00-18 I 00
01-22
I 29 00-24
. --).-A
~ 00-24 I 00
00-00
I 06 00-34
print sign
A 00-34 I 00
32-00
I 06 00-40
o -'JJP'-A
~ 00-40 I 02
48-00
I 01 ,;.00-48
2
A_lS(-B
A 00-48 I 00
00-00
I 06 00-58
print first number
A 00-58 I 02
00-00
I 01 00-66
O~A
A 00-66 I 03
48-00
I 01 00-74
A-L-B
A 00-74 I 00
00-00
I 06 TT-SS
print second
A 00-00
M
~.l\.
B
numbE-~1:"
_ , ....""""'.,W', .. ,
5-8
Basic Input- Output Capabilitie s - - Continued
REMARKS
ADDR.
CONST.
A
01-04
C750000
nu:rnber to be printed
A
01-20
COOOO40
:F'lex code for positive sign
A
01-22
COOO02l
Flex code for negative sign
The above listing does not print zeros, but does print octal digits 1
through 7.
The non-parity):c Flexowriter codes for syInbols 1 through 7 cor-
respond to those bits as they appear in the A register:
0000001 in the A
register causes a 1 to be printed on the Flexowriter; 0000010' in the A regis-·
ter causes a 2 to be printed, etc.
However,· zero (0000000 in theA regisfer)
is the Flexowriter code for a space.
To print zeros, the above printout listing would have to be· Inodified
so that each octal digit would be tested to determ.ine whether it is zero.
If
not zero, the next instruction would be a digital output to the ]tlexowriter~·· If
the,A register contents were zero, the next instruction would load the A
register with the Flexowriter code for zero before the Digital output comma.nd
to the Flexowriter.
As in the case of the sign printout, the Flexowriter code
for zero would have to be stored in s o:rne predeter:rnined location of m.emory.
The preceding example is not an exa:rnple of minimum-time programming, but is presented to show a maximum number of com.mand variations.
The time required to execute a Flexowriter output is six word tim.es plus any
waiting tirne that is characteristic of the Flexowriter or other output device.·
):~IlParity"
and "Non-Parity" Flexowriter codes are described in con ...
junction with Flexowrite r char acte ristics at the end of this section.
5-9
Ba sic Input-Output Capabilitie s - - Continued
The
RW -300
Program Lihrary includes decimal as well as octal
printout routine s.
EXPA,NDED INPUT-OUTPUT CAPABILITIES
Inputs
The digital input capabilities of the R W -300 can be expanded to a maximunl of 28 additional
grou~Js
0:: 18 line s each, 01' 504 additional on-off sig-
nals, with each group selected by a different track address (36 through 63) of
the DO command. ·The tra'ck addresses'3.re assigned to specific input- functions or devices.
If a Ferranti high-speed reader is used in additlo'n tc)·the
Flexowriter, 33 is the operand address track number
When any' one of the input groups 1S addressed (operand track address
36
through 63)i that group will be connect'ed to lines L21 through L38, but
the input will not be complete unless the DIGITAL INPUT selector switch on
the test and maintenance panel is turned to EXTERNAL. If the DIGITAL INPUT
selector switch is set' to INTERNAL~ any operaa1d track address from 36
, through 63- will cause the toggle Bwitche S to be read on line s L 21 through:, L26.
In. an expanded digital input syster:.'1, as contrasted to the basic digital
input systetn. grounded lines are read in as zeros, and open lines a'reread in
as ones. In all other respects, including the effect of the execution code;digltal
.inpt~t
characteristics are the sam'e as those described for the basic computer.,
Some of the digital input equipment which has been used in R W - 300 ap-
plications is described in the paragraph titled lilnput-Output-Equipment. "
Outputs
The digital outputs provide a nleans of transmitting on-off signals to
external devices, The output signals may be llsed for turning the Flexowriter
Expanded Input-Output Capabilitie s - - Continued
on and off, acti vating indicator lights or alarm device s, etc. Up to 28 groups
of 18 rel-ay-cont:tolled output
lines~
equipment with the basic computer.
or 504 outputs) are available as optional
On special order, the output system may
be eXpanded to 30 'groups if no high- speed punch is included.
A la-millisecond delay cricuit allows time for the relays to change
their output state
(ono~to~zero~
or zero-to-oneL and this lO-millisecond
period must elapse before a subsequent Digital command can be executed.
Once a relay has been set to one or
zero~
it remains in that state until
changed by another Digital command affecting that particular relay.
Each group of output lines is selected by an operand address track
number (04 through 31).
If a logging typewriter is used in addition to the
01 is the operand track number for this typewriter.
Flexowriter~
track
If a high-speed punch is
used, 02 is the track number; track 03, in this latter case, may not be used as
a digital output
address~
. and tracks 34 and 35 may not be used as digital input
addresses: RW-300 computers with the expanded memory and a high-speed
punch may use track 03 output address for selecting track set writing control.
The number of groups of output lines and the characteristics of the
output~line
groups depend upon the needs of the installation.
Each group of
18 output.lines may be connected in either one of two modes: rrn'1ulti~,bit" output or "one-bit" output. The output modes are selected when the equipment
'4"
is fabricated for a particular installation. Characteristics of operation are
described in the paragraphs which follow.
5-11
Expanded Input- Output Capabilitie s - - Continued
One -Bit Outputs
"0ne-bit" outputs affect only those relays (in the addressed group)
which correspond to A-register bit positions containing a one.
If the execu-
tion code is an even number, the affected relays are set to zero'.
cution code is an odd
l;lumbe~,
the affected relays are set to one.
If the ,exeThus, any
or all of the 18 relays in a particular one -bit output group can be addres s ed
by a Digital output instruction.
One -bit outputs are often employed to control
peripheral equipment as tabulated below:
Execution
Code
Operand
Address
Operation
Code
Contents of
A Register~:c
00
04-00
06
Al = 1
Turn Flexowriter Off
01
04-00
06
Al = 1
Turn F'lexowriter On
00
04-00
06
A
= 1
Turn Logging Typewrite r Off
01
04-00
06
A2 = 1
Turn Logging Typewriter On
00
04-00
06
A = 1
Turn. Punch Off
01
04-00
06
A
= 1
Turn Punch On
~:c
A
n
2
9
9
Function
= 1 means: bit position n of the A register contains a one.
Although most applications require that a relay which has been set to
one or zero retain that state until changed by another digital output
~ddressed
to that relay, specific one -bit output lines may be connected to provide a
momentary signal.
This latter configuration is used where tlset tl or "reset"
signals are required.
When the momentary feature is provided, an even
execution code in the Digital instruction will cause a 10-millisecond contact
closure in the output line specified by a one in the A register.
tion time wHl cause nO output signal.
5-12
An odd execu-
Expanded Input- Output Capabilities - - Continued
Multi-Bit Outputs
A "multi-bit" output is defined as one in which all relays in the addressed 18-bit group are set to one or zero, according to the contents of ,
each corresponding bit in the A register.
the execution code is of no consequence.
In the 'case of multi-bit outputs,
An installation usually employs both
lTIulti-bit and one-bit outputs, but these are separate output groups, activated
by separate operand track addresses.
Outputs to a logging typewriter are typical of multi-bit outputs, in
whic~
all output lines provide voltages corresponding to the contents of the
A register.
In this application only 5 of the output lines would feed the logging
typewrite r, and the application is cons ide red a "five -bit" output.
INPUT -OUTPUT EQUIPMENT
The types of input-output equipment included in an RW-300 installation
depend upon the needs of the us er.
Computer flexibility permits a wide 'choice
of display, attention-seeking, printing, punching, and data-ins ertion devices.
Several commonly used devices are described in the paragraphs which follow.
Digital Indicators
To display all or part of a computer word,
Q.
bank of 18 indicator
lights may be us ed to re pre sent the binary word in a spe cific re gis ter .
light which is ON repres ents a one, and a light which is
O~~'
A
repres ents a
zero.
5-13
Expanded Input- Output Capabilitie s - - Continued
Twenty -F' our -Hour Clock
1vlounted in the upper right-hand corner of the control console shown
iri figure 1-1, the 24-hour clock provides a visual indication of time and provides the RW-300 with absolute time to the nearest minute or 1/10 minute.
The clock. is used as a time reference by the program for periodic control
calculations, data-logging cycles, instrument calibration checks, catalyst
che cks, etc.
Driven by a synchronous motor, the clock provides fourteen one -bit
signals from a system of stepper switches.
Thirteen bits represent real
time in a compleITlented, binary-coded-decimal format.
The fourteenth bit
is a "ready" signal to the computer, used to avoid incorrect time information
during changes from one time state to the next.
When the' ready signal is
present, the time can be read into the A register in response to a Digital
input comITland.
Memory as signITlents for clock information are as follows:
Operand Track Address
5-14
= 37
Bit Position
As s ignrne nt
1
Minutes
2
Minutes
3
Minutes
4
Minutes
5
Tens of Minutes
6
Tens of Minutes
7
Tens of Minutes
8
Hours
9
Hours
10
Hours
Expanded Input- Output Capabilitie s - - Continued
Bit Position
Assignment
11
Hours
12
Tens of Hours
13
Tens of Hours
14
Unassigned
15
Unassigned
16
Unassigned
17
Unassigned
18
Clock "Ready" Signal
Visual indication of the time is given by a direct reading indicator in
peripheral equipment, with midnight as 0000 and the end of the day as 2359.
Each digit may be up-dated by one of four pushbutton switches to all'ow
adjustment of the clock to local titne.
Manual Inputs
Manual inputs are provided to permit the operator to enter instructions or data into the, control program.' Instructions a:'e sometimes used to
print out selected sectors of memory under program control.
Data entries
are sometimes used to provide the control prograrrl with process operating
inforrrlation that is not fed in automatically through the analog input system.
This type of data rrlay represent a process variable that changes slowly and
is costly to instrument in analog forrrl; or the information may represent a
unique operating :mode.
A group of toggle switches is s o:metimes provided so that the inforrrlation or instruction can be entered in binary form by setting the toggle
switches to the desired binary pattern.
5-15
Expanded Input- Output Capabilitie s - - Continued
In figure 1-1, the white square in the center of the operating panel;
(below and to the right of the logging typewriter) is a ITlatrix indicator.
ITlatrix indic ator is COITlpOS ed of four rows and four coluITlns.
switches, below and to the left of the ITlatrix indicator
I
Two. s ele ctor
are us ed to s ele ct
anyone of the sixteen possible inputs designated in the ITlatrix squares.
ITlatrix switch and indicator enable
Th,e.~
The
the operator to select a specific input
function.
The inforITlation to be ins erted into the prograITl is set on Digitran
switches which are located on the control panel to the right of the ITlatrix.
The binary-coded equivalent of the decimal or octal number set into the
Digitran switches is inserted into the prograITl only after the operator presses
an EXECUTE MATRIX button on the control panel.
Programming considerations cause the information to be read in only
at a tirne acceptable to the program, so that control calculations are not interrupted.
If the operator desires that the inforITlation be read into the pro-
gram iITlmediately, he can accomplish this by pressing the START button on
the RW -300 control panel.
The degree of priority assigned to manual inputs
is a programming consideration which depends upon the application.
In SOITle
applications the computer accepts the new data on a tentative basis ,performs
pre dicti ve calculations to de te rmine how the new data will affe ct the proc e s s,
and prints out the result so that the operator can judge whether or not the
new data should be inserted.
5-16
Expanded Input- Output Capabilitie s - - Continued
Watchdog Timer
A watchdog timer is a £ail-s afe device which is incorporated to provide periodic checks of computer operation.
type and must be reset periodically.
The timer is of the; rundown.
The rundown time is adjustable from
approximately 1 second to 30 minutes.
The computer periodically sends a one -bit output to the timer for re. setting purposes.
If the computer fails to send this one-bit output within the
required time, the timer will run down and generate an output which may be
us ed to halt the computer, s end it back to start, sound alarms, etc.
In a typical application of the watchdog timer, the program may in. clude instructions to perform periodically a series of operations (add, subtract, shift, etc.) using a converted known analog voltage.
The result of
these operations is compared with a stored constant which represents the
correct solution.
If the comparison proves the cOlTIputations to be correct,
a one-bit output is executed to reset the timer.
An error in analog input
conversion or in any of the arithmetic or logical operations would result in
failure to reset the timer.
The timer would run down, signal the operator,
and ,send the computer to halt.
The last correctly calculated control signals
would be maintained.
Ferranti Reader
When required, a Ferranti seven-level paper-tape reader provides
high-speed tape input.
The input :f.~om this unit n1.ay be permanently substi-
tuted for the paper -tape reader' of the Flexowriter (i. e., it can be made the
only means for reading paper tape).
However, it is also possible to retain
5-17
Expanded Input- Output Capabilitie s - - Continued
both the Flexowriter and Ferranti facilities, with selection being made by the
operand track addres s or by a one -bit digital output.
Use of the Ferranti tape reader requires additional circuits to make
the Ferranti. signal levels compatible with those of the R W -300.
is modified to provide an interlock feature ("ready" signal).
The Ferranti
The maximum
speed of the Ferranti used with the RW-300 is 60 frames per second; a
Digital input command must not be addressed to the Ferranti more frequently
than once per R W -300 drum revolution.
Teletype Punch
A Teletype seven-level paper-tape punch may be attached to the RW300 for high-speed tape output.
This punch is controlled by the program
which ITlay choose between this unit and the Flexowriter by the use of the
operand track address, or by a one-bit digital output.
The punch is modified
to provide an appropriate '!ready'! signal to the RW -300.
The Teletype high-speed tape punch uses a 3600-rpm, 60-cps, synchronous motor and has a maximuITl punching rate of 60 characters per
second.
This maximum rate can be achieved only when doing a series of
outputs with the following characteristics: the number of word times between
the Load A instructions and the corresponding Digital output instruction must
be equal tO,or less than, 17.
If this time is exceeded, the punching rate
will be 30 characters per second.
To be certain of achieving the required
rrlinimuITl timing, there must be no Digital input instructions between successive Digital output instructions.
If this latter requirement is not met,
the average punching rate will be from 30 to 60 characters per second.
5-18
Flexowriter
~LEXO·WRITER
Modes of :Flexowritcx Operation
The :Flexowriter operates under the control of the R W -300 when
paper -tape information is being re ad into the computer, and when information
from the computer is being recorded in printed form and/ or punched~tape_.
form on the Flexowriter.
In addition, the Flexowriter is operated i.ndepend-
ently of the computer when program listings are being typed and/or punched,
and when punched tapes are being duplicated or printed.
The modes of Flexowriter operation include:
a.
Print
b.
Punch
c.
Print -and-Punch
These modes of Flexowriter operation can be controlled either by the computer, or by s\vitches located above the Flexowriter keyboard.
Each of the switches above the Flexowriter keyboard, as well as the
keys on the keyboard, represent some Flexowriter function.
Each Flexo-
writer function has a corresponding :Flexowriter code which can be represented by a pattern of punched holes in the Flexowriter paper tape and by a
bit pattern in the cornputer's A register.
Any hole pattern or bit pattern
which does not repres ent a Flexowriter function is called an "illegal" code.
Among the "legal" codes recognized by the Flexowriter are four control
codes:
a.
Punch On
b.
Punch Off
5-19
Flexowrite r - - Continued
c.
Non-Print
d.
Print Restore
These control codes affect the m.ode of Flexowriter operation in the sam.e. way
as the corresponding switches located above the Flexowriter keyboard.
When
the Flexowriter is operating unde r computer control, a digital output instruction addressed to the Flexowriter is used to send the control codes from the
com.puter I s A register to the control circuits of the Flexowriter.
A digital output to the Flexowriter from the A register with the control code 224 (Print Restore) will cause the Flexowriter to operate in the
Print m.ode.
In the Print m.ode, the Flexowriter does not respond to illegal
codes, nor does it respond to the two legal codes Tape Feed and Stop Code
when thes e codes are sent to the Flexowriter from the co:mputer.
All other
legal Flexowriter codes are executed, regardless of the contents of the
parity~:~
bit.
Flexowriter codes are tabulated in figure 5-2.
The Flexowriter , printing capability can be dis abled :manually by the
Non-Print switch on the Flexowriter, ·or by a digital output to the Flexowriter
from. the co:mputer with the control code 230 (Non-Print).
A digital output to the Flexowriter fro:m the co:mputer IS A register
with the control code 250 (Punch On) will put the Flexowriter in the Punch
m.ode.
Subsequent digital outputs to the Flexowriter will punch out on tape
~:~The
parity bit is used as an error -checking feature which can be in-
corporated in the standard Flexow:t;iter.Use of the error-checking feature
is des cribed along with other Ftexowriter characteristics near the end of
this section.
5- 20
Flexowriter - - Continued
any bit pattern except control codes contained in A-register bit-positions 1
through 8 - - provided the Flexowriter is not in the Print-and-Punch mode.
This feature is necessary to obtain a 11binary dump"t
or copy of the bit
patterns in computer memory.
When in the Punch mode, a control code (such as Punch Off or Print
Re store ) sent to the Flexowriter by the computer cause s the Flexowriter to
execute that code (change the mode of Flexowriter operation) and also punch
the pseudo code 377 on paper tape.
A digital output from the A .register with
the control code 244 (Punch Off) will cause the Flexowriter to punch the
pseudo code, and then stop punchingo
If the punch/non-punch function is
controlled by a one -bit digital output, Flexowriter re sponse to the punch/
non-punch codes can be elhninated
,l
and bit patterns representing the
control codes may be punched without changing the mode of operation.
The Print-and-Punch m.ode of operation is achieved under computer
control by sending Punch On and Print Restore control signals to the Flexowriter.
When in this mode of operation, the Flexowriter will respond only
to legal codes.
Any character code, or functional code such as carriage re-
turn, will be executed by the typewriter and will be punched on tape.
codes are neither punched nor printed.
there is no typewriter response.
writer does not stop.
The
fJUT
The Tape
~eed
Illegal
code is punched, but
The Stop Code is punched, but the Flexo-
Flexowriter control codes will be executed,
5- 21
fi'lexowriter -- Continued
and the 377 code will be punched.
The Flexowriter can be operated in any of the three modes independently of the computer.
The Flexowriter I s Print Restore switch puts the
Flexowriter into the Print mode.
In this mode, the contents of a paper tape
threaded through the Flexowritel' tape reader will be printed out when the
Flexowriter I s Start Read switch is pres sed.
The Flexowriter stops reading
when it comes to a Stop Code punched on the paper tape, or when the Flexowriter's Stop Read switch is pressed.
There is no typewriter response to
the Tape Feed Code, or to illegal code s .
In the Punch mode, a paper tape threaded through the Flexowriter
tape reader can be duplicated by the Flexowriter paper -tape punch.
This in-
dependent operation is achieved by pressing the Flexowriter Punch On switch
and Start Read switch.
The punch will duplicate all codes punched in the
tape, will respond to the four control codes, but will not respond to the Stop
Code -- provided the Flexowriter is not in the Print-and-Punch mode.
When operating iloff-line", independently of the computer, the Flexowriter can be placed in the Print-and-Punch m.ode by pressing the Print
Restore and Punch On switches on the ltlexowriter.
I;n this independent
mode, a paper tape threaded through the Flexowriter can be duplicated and
its contents printed by- pre s sing the F lexowriter I s Start Re ad button .
Only
legal codes will be typed and punched.
The
Illegal codes will be ignored.
Flexowriter will not re spond to the four control code s, but will stop reading
the tape when it comes to the Stop Code.
5-22
Flexowrite r - - Continued
When punched tapes are prepared on the Flexowriter, blank tape following the last punched frame n.lay be obtained by proceeding as follows:
a.
Press Punch On switch a.bove the Flexowriter keyboard ..
b.
Hold down Card Feed rnicroswitch near Flexowriter punching
mechanism.
c.
Press,then release Tape Feed switch above the Flexowriter
keyboard.
Blank tape (with tape-:feed holes) will be produced until the Card Feed rnicroswitch is released.
The Punch Off switch above the Flexowriter keyboard
may then be pressed if the next Flexowriter operation (e. g., prograrn load-
ing) does not require the punch rnode of operation.
However, if the Punch
Off switch is pressed before releasing the Card Feed rnicroswitch, the read
line s to the computer will be temporarily dis abled, and the next digital input
from the Flexowriter will be read as all zeros, regardless of the tape code
under the Flexowriter tape reader.
Thus, the Card Feed D1icroswitch should
always be released before pressing the Flexowriter's Punch Off switch.
General FlexQwriter Characteristics
The Flexowriter normally supplied with the R W -300 has the following
features:
a.
16 -inch carriage
b.
Reader and punch which handle paper tape and edge -punched cards
c.
Separate "Red'! and "Black ' : codes for color shift
d.
Elite Gothic type
5- 23
Flexowrite r - - Continued
e.
Large capital letters and numerals
i~
lower case; small capital
letters and various symbols in upper case
f.
Separate codes for Non-Print, Print Restore, Punch On, and
Punch Off modes of Flexowriter operation
g.
Alphabet, numerals 0-9, and punctuation identical with IBM 705
standard code
h.
Special keys carrying the numerals 10, 11,' and 12
i.
Provisions to receive folded or roll paper up to 15 inches wide,
typing a line up to 13 1/2 inches long.
j.
No special code -delete feature.
Paper -tape frames can be de-
1eted using the Tape Feed switch above the Flexowriter keyboard
Information cannot be readily deleted from edge -punched cards.
k.
Ability to duplicate tapes, regardless of code legality
The Flexowriter inhibits reading into the computer if the Flexowriter
is in the Print mode.
Therefore, reading into the computer and printing
cannot be performed simultaneously.
The Flexowriter Punch mode is selected through the use of Flexowriter codes or digital outputs under program control, depending on the
Flexowriter wiring.
The Flexowriter Print mode is s'elected through the use
of Flexowriter code s oni y.
In a basic (unexpanded) R W -300 systenl, a Digital command with an
operand track address of either 01 or 33 will turn the Flexowriter motor on
or off, depending upon whether the least-significant bit of the A register is
5- 24
Flexowrite r - - Continued
a one'or a zero, respectively.
In an expanded system, the Flexowriter motor
is normally controlled by a one -bit output.
At the custolner's option, the Flexowriter can be provided with the
following features:
a.
A No.2-pin feed platen can be used with the Flexowriter, giving a
maxim.um. usable paper width of 13-1/8".
b.
By addition of a. selector bar tab from the Flexowriter, the
parity bit can be punched in the Print-and-Punch mode.
c.
Removal of Input Relay No.7 prevents parity bits from entering
the com.puter.
d.
Rem.oval of Output Relay No.7 prevents parity bits froIn being sent
out by the compute r.
e.
A separate one -bit digital output to control the Flexowriter punch
can be supplied to avoid any undesired codes appearing on the tape
when turning the punch off.
f.
Ins ertion of a parity channel permutation bar into the Flexowriter
will place the Flexowriter under complete parity control in the
Print and Print-and-Punch modes.
The paragraphs which follow describe the form of the punched paper
tape used with the Flexowriter, the "parity" option, Flexowriter codes, and
tim.ing cons ide rations.
Paper Tape
The paper tape used by the Flexowriter, and by most input-output units
is a standard eight-level paper tape, one inch wide.
In the tape shown in "
5- 25
,Flexowrite r - - Continued
tr (}iler
a
0 0
@
~
{)}
@
0
G)
(9 (9
direction
of
travel
0
. 0
le~der
.
G
Q
Figure 5-1
Segment of Punched Tape
Figure 5-1, a hole punched in the tape is used to represent a one, 'and a blank
(no punch) to represent a zero.
Thus, a row across the tape (a "frarne l l ) may
be used to represent a binary number.
The least-significant bit appears
along the right -hand edge of the tape shown in figure 5 -1.
The small holes
which lie between level 3 and level 4 are sprocket holes which are used to
ti:me and guide the movement of the tape in all tape units.
B lank tape ahe ad
of the first punched fram.e is called "leader'!, and blank tape behind the last
punched frame is called "trailer".
A frame of punched holes may be represented by a three -digit
nurnber.
oct~l
In this presentation, the sprocket holes separate the two least-
significant octal digits.
The five non-zero fram.es shown in figure 5-1 repre-
sent, from top to bottom, the octal nUITlbers 143, 106, 144, 145, and 10.
Various combinations of punched holes are used to represent characters and,
to control the electric typewriter.
5- 26
From the list of Flexowriter codes in
Flexowriter - - Continued
figure 5-2 it may be seen that the five punched frames in figure 5-1 represent
the letters
itCH)
"Oil, "DH, "E", and the decimal number "8".
Parity Che cking
The Flexowriter incorporates a seven-channel code for digital inputs.
Six of the channels contain the desired inplJ.t character, and the seventh
channel (level 5 on the tape)rnay be used for IIparityll checking.
In general, parity check makes use of a code employing binary digits
in which the total nUITIber of ones (or zeros) in each perrnis sible code is
always odd or always even.
In the Flexowriter parity check, the total nUITl-
ber of ones must ah:vays be odd,
Thus
y
if the character punched on the tape
contains an odd number of ones, the parity channel will contain a zero.
Con-
vers ely, if the character punched on the tape contains an even nurnbe r of
ones, the parity channel will contain a one.
Any correctly punched tape employing parity checking will always contain an odd number of ones for each character.
This feature enables the
COTIl-
puter to be programmed to detect errors that could occur during tape punching
or reading.
However) parity checking is a pr ograrnrning option that is not
normally e:mployed simply to check the loading of a program punched on tape.
Program loading can be checked more easily using the check-sum capability
of the .load program (Section VI).
However, a parity-checking capability is
desirable \,\Then inforITlation of urtcertain accuracy is being read into the computer.
For example, information translnitted over land lines to a paper -tape
punch can be verified by parity checking.
5-2.7
Flexowrite r - - Continued
System specifications usually indicate whether or not the parityche cking option is to be included in the features of the Flexowriter used with
the system.
If parity checking is to be employed, the Flexowriter includes
provisions for handling a parity bit in level 5 of the punched tape.
The
punched tape shown in figure 5-1 is without a parity bit; the fifth column
(level) from the right edge of the tape does not contain any punched holes,
even though some of the characters are represented by an even number of bits .
. The bits read from the seven levels of punched Flexowriter tape change
positions on entering the computer as shown,below.
A Register
bit pos itions
level
8
Tape Reader
This locates the parity bit (level .5 on the tape) in the highest position of the
A register (normally bit -position 7) where it can be readily extracted by the
program.
When parity checking is desired, the load program m.ust include instructions to deterITline whether the '''urn of the seven bits is odd or even.
The load program rnust also includ";; instructions specifying the desired action
in the event of a parity error.
Furthermore, after the parity check has been
made, some action must be taken to ensure that the parity bit is zero before
entering the input information into the program.
5-28
Flexowrite r - - Continued
If the parity-checking feature is not included in the lflexowriter, the
parity bit is never present, and no special programming is required to elilni
nate that bit before the input character is interpreted by the load program.
However, if the parity feature is included in the Flexowriter, the parity bit
must be suppressed--whether or not the parity bit was employed to perform
a parity check.
The Extract instruction provides a convenient technique for
suppressing the parity bit.
The technique is outlined in conjunction with a
des cription of digital inputs from the toggle switches.
When a tape
i~
punched with the Flexowriter under program control,
any seven-bit pattern in the A register of the computer will be punched on
the tape in response to a digital output command addressed to the lflexowriter.
Upon leaving the computer, bits 5, 6, and 7 in the A register change position
as shown below.
A Register
1---
I
18
L __
~L7~
8
7
-~-.'-'--i---I
5
bit po's ition
yi--L/
654
2
level
Tape Punch
The eighth line, or channel to the Flexowriter (corresponding to the
eighth level on the paper tape) is not used for character codes, but is used
in the four Flexowriter control codes:
Off, and Punch On.
Non-Print, Print Restore, Punch
Therefore, the programmer must be aware of the con-
tents of bit -position 8 in the A register when programming digital output
cOITlmands addressed to the Flexowriter.
5- 29
Flexowl"iter - - Continued
In this section of the manual, a s arrlple printout listing was us ed to
illustr ate the method of printing out non -z era octal nurnbe r s on the F lexowriter.
The'technique described is valid if the Flexowriter is not equipped
for parity checking.
However, if the parity-checking feature is incorporated
in the Flexowriter, parity conditions must be satisfied, and the A register
must contain an odd number of bits if the number is to be printed on the
Flexowriter.
The s ample printout listing would have to be modified to test
for an even number- of bits in the A register prior to the digital output comITland; if the number of bits were even, a one bit would have to be placed in
bit-positon 7 of the A register to form a legal Flexowriter code.
A one may
be placed in bit-position 7 of the A register by merging (operation code 31)
the octal constant 000100 with the contents of the A register.
Flexowriter Codes
The octal numbers representing Flexowriter characters are tabulated
below.
The octal numbers used by the programmer in conjunction with inputs
and outputs depend upon whether the system's Flexowriter uses the paritychecking feature described above.
Flexowriter Timing Considerations
Typing, reading, punching, or punching-and-typing all occur at about
eight characters per second on the Flexowriter.
When a digital input command is sent to the Flexowriter, a frame of
paper tape in the Flexowriter tape reader is read into the cOITlputer's A register.
A series of digital input commands addres s ed to the Flexowriter are
executed at thenlne-Cl1.aracter-per- second rate established by the Flexowriter.
5-30
Flexowriter -- Continued
Figure 5-2.
Table of Flexowriter Code s
FLEXOWRITER
CHARACTER
UPPER
CASE
ON TAPE
LOWER
CASE
WITH
PARITY
A
A
8
B
c
C
0
D
E
E
F
F
G
G
H
H
OCTAL CODES
IN A
WITHOUT
PARITY
J
J
K
K
L
L
M
M
N
N
Ill-I
142
.163
144
165
166
147
150
171
121
122
103
124
105
0
0
106
p
p
Q
Q
n
F~
s
S
T
T
127
130
III
62
43
u
u
61~.
V
V
'vi
w
X
X
y
Y
z
Z
45
4·6
67
70
51
)
0
40
44
45
46
47
50
51
40
1
1
2
2
I
11
141
11~2
ll1-3
11l-4
145
146
147
150
151
101
102
103
104·
105
106
107
110
III
42
R~GISTER
WITH
PARITY
61
62
163
64
165
166
67
70
171
141
142
43
144
11-5
46
147
150
51
122
23
124
25
26
127
WITHOUT
PARITY
61
62
63
64
65
66
67
70
71
41
42
43
44
11-5
46
130
47
50
51
22
23
24
25
26
27
50
31
31
20
20
1
1
1
2
'2
2
h.,3
5-31
Flexowriter - - Continued
Figure 5-2.
Table of Flexowriter Code s - - Continued
FLEXOWRITER
CHARACTER
ON TAPE
UPPER
CASE
LOWER
CASE
If
3
4
23
25
¢
5
6
&
7
*
8
(
9
0
10
?
11
7
10
31
112
133
51173
153
$
%
WITHOUT
PARITY
WITHOUT
PARITY
:5
4
5
6
7
10
7
10
11
III
7
10
11
52
153
61
112
113
54
53
153
41
+
100
100
LOWER CASE
UPPER CASE
TAB
SPACE
172
152
174
15 1,L
76
56
20
,
/
BL;\CK
RED
CARR If;,GE RETURN
PUNCH ON
PUNCH OFF
It
26
:5
4
PHINT RESTORE
TAPE FEED
STOP CODE
5
6
133
73
52
53
31133
73
121
21
40
00
40
172
174
136
100
32
12
112
12
111+
111.J.
52. .
136
116
54
156
34
177
13
157
13
72
74
36
00
56
241. .
230
250
244
230
22'-1-
224
177
13
77
13
250
NON PRINT
5-.32
WITH
PARITY
103
4
105
106
12
-.
WITI-f
PARITY
OCTAL CODES
IN A REGISTER
Flexowrite r - - Continued
When a digital output command is .sent to the Flexowriter, a 110millisecond timing circuit is activated. No more information can then be sent
to the Flexowriter or obtained from it until the 110 millis econds have pas sed.
The Flexowriter delay circuit constitutes an interlock which prevents the computer from transmitting information to the Flexowriter before that information
can be accepted by the Flexowriter for printing and/ or punching., However,
other instructions can be executed during this time, and it remains the programlller's option to lllake maximum use of cOlllputer time by inserting other
instructions in the program between digital output commands.
A digital input comllland sent to the Flexowriter must not be followed
immediately by. digital output commands to the Flexowriter.
The program
must include a waiting time of at least seven drum revolutions between digi·tal
input and digital output instructions involving the
F.~exowriter.
If this waiting
time is not included in the program, the first pigital output instruction will
not be executed.
There is no prograrnn'1ing restriction on placing digital in-
put instructions immediately after digital output instructions - -a delay circuit
within the computer prevents information loss.
On digital output to the Flexowriter, a longer delay than 110 lllilliseconds may be required for a long tab or a carriage return.
This longer
delay can be programmed by inserting a trivial Flexowriter command, such
as lower-case shift.
Because of the 16-inch carriage, the programmer must
output a number of dummy characters after each carriage return to permit a
full return of the carriage before furthe r printing.
The same statement holds
5-33
Fle:·:owrite r - - Continued
true for execution of a tab.
As a guide, the following will permit safe
.carriage returns:
Number of dummy
characters
Point from which
returning the carriage
1
2 inches
2
4 inches
3
7 inches
4
9 inches
5
10 inches
6
12 inches
These may vary slightly from system to systerrl.
5-34
SECTION VI
PROGRAM LOADING
INTRODUCTION
Procedures for preparing and organizing program listings are described in Sections III, IV, and V.
This section of the manual deals with load-
ing programs into the computer and typing the program listings on the Flexowriter.
Certain typing, or format restrictions are necessary to enable the
computer I s load program to interpret the symbols punched on the tape.
The paragraphs which follow contain a brief description of the load
program, followed by a summary of typing format requirements and opera-:ting procedures.
LOAD PROGRAM
The load program, permanently stored on track 63 of computer memory, is started whenever the LOAD button on the cornputer's control panel is
pressed.
The loa,I prograITl controls digital inputs froIn the F'lexowriter tape
reader (or sorne alterna.te tape- or card-reading device).
Each time the loaa. program perforITls a Digital input instruction, a
frame of tape (one symbol) is read into the A register, and the tape advances
so that the next fraITle can be read in response to the next Digital input
instruction.
6-1
Load PrograITl - - Continued
The load prograITl exam.ines each sYITlbol read into the computer from
the tape reader, and, upon receipt of certain "indicator" symbols, proceeds
to assemble the inforITlation for storage in specific memory locations.
The listings des cribed in Sections III, IV
I
and V contain indicators
having the following s ignific anc e:
Indicator
Significance
"A"
Address.
The location in which an instruction or constant is to be stored.
Constant.
An octal nUITlber to be stored in
the location specified.
"I"
Instruction.
An execution code and operand
address, or operation code and
next -ins truction addre s s, to be
stored in the location specified.
A cOITlplete instruction requires two sequential s ector locations.
the first sector is specified in the listing (CI
t~pe;
col~1!un)
Only
and is punched on the
the load progralu stores the first word of the instruction in the specified
sector, adds one to that sector number, and stores the second word of the
instruction in the next sector.
For sequential listings the storage location
need be specified only once, and all subsequent instructions (or constants)
will be stored in sequential sector nUITlbers by the load prograITl.
After an
instruction is stored in sector 127, the next instruction is stored in sector
00 of the next higher track.
Note that if the next -instruction addres s speci-
tied in a program listing is sector 127, the progralTI will read the first \vord
6-2
Load Prograrn - - Continued
of the instruction from sector 127, but will read the second word of the instruction from sector 00 of the same track.
Therefore, in sequential listings,
it is necessary to assign specific addresses to instructions that will be stored
in sectors 127 or 00 in order to define the track number.
In the case of an
optimum program, the location of the first word of each instruction must be
specified.
When a punched tape is threaded through the Flexowriter tape reader
and the LOAD button pressed, the load prograrn reads the blank tape leader
until a meaningful indicator is received.
Upon receipt of the indicator, the
load program reads, interprets, and stores the instructions punched on the
paper tape.
At the end of the punched instruction information, the load pro-
grarn continues to read the tape trailer until the stop indicator "5" is read.
Upon receipt of the "S" indicator the cOITlputer halts.
The load program can be halted while it is accepting information from
the Flexowriter by pressing the STOP button; by pressing the RESUME button,
loading can be resumed.
The load prograITl also recognizes indicators "L", "M", and "JIt.
liMit
The
indicator is used in conjunction with a memory check sum, a feature of
the load prograITl which perITlits loading accuracy to be verified.
dicator is used to specify that tape symbols are in binary format'.
The" L" inThe ItJ"
indicator causes the computer to leave the load program and begin another
program at a specified address.
The use of these indicators is described
following the dis cus s ion of the standard punched tape format.
6-3
Load Program - - Continued
As an equipment option, the RW-300 load program can be prepared to
recognize the indicator "D".
Recognition of this indicator temporarily trans-
fers program-loading control to track 61.
In track 61, a "Decimal Input
Routine" interprets constants that have been listed in a decimal format.
The
Decimal Input Routine is part of the RW -300 Program Library.
STANDARD PUNCHED TAPE FORMAT
Punched tapes prepared for loading under the direction of the load
program are usually typed and punched using spaces, tabs, and carriage returns for n"laximurn re adability.
The basic format is as follows:
Normal Instruction :rormat
s
s
s
P
t
P
t
t
P
t
A a TT -SS a I a XX a TT -SS a I a XX a 'I'T -SS
c
b
c
b
b
c
b
e
e
e
Normal Octal Constants
:r orInat
s
t
c
a
r.
A a T T -SS a CXXXXXX
c
b
e
e
t.
P
r
Thus, the listings
CI
EX OPERAND
Q42-126IJoa!
6-4
OF
NI
00- 11 0 11116120-1061
ADDR.
CONST.
08-19
C437152
c
a
r.
r
e
t.
Standard Punched Tape Format -- Continued
would be typed
A
42 . . 126
A 08-.19
I 08
00-110
I
16
20-ln?
C437152
Note that special Flexowriter keys are used so that only two characters are
required to obtain the numbers 106, 110 and 126.
Format requirements demand that no extra characters or spaces appear between characters shown as closely spaced groups in the above illustrations.
For example, if 08-18 were typed 08-1 8, the address would not be
interpreted correctly by the load program; similarly, C437152 must not be
typed C 437152.
The spaces, tabs, and dashes suggested for the normal instruction
format can be replaced by any convenient character.
Howeve'r, one character
or space lYlust appear in these positions on the punched tape.
For exalYlple,
if 08-18 were typed as 08Q18, the address would not be n~isinterpreted'by the
load program.
Care must be exercised in correcting typing errors when preparing a
punched tape.
A tape feed (octal 157) J:oust not be used to delete an incorrect
character in the six frames following an "A", nor in the nine frames following
an "I", nor in the six frames following a
"e".
If an error is made following
an indicator, the entire word, including the indicator, must be deleted.
The programmer should not enter data from the punched tape
directly into the revolver track during the load operation.
Since the load
program itself uses the revolver extensively, any data entered from the
punched tape may be destroyed by the load program.
6-5
Decimal Punched Tape Format
DECIMAL PUNCHED TAI·E FORMAT
The load
decimal input
program~
rOl1tine~
or mixed form.
when
m~);..lifi8d
and used in conju.nction with the
will accept numbers in either
integral~
fractional,
The decimal numbers will be converted to their binary
equivale.nts, correctly scaled, and stored in. the indicated track. and sector.
The decimal numbers to be entered must be within the range O. 00001
N
l31~
07L
Two example s of the tape format used to enter decimal con.stants are
shown.
s
c
s
p
P
T,
AaTT=SSaD-I03,025
r
c
c
e
.;..
e
e
~...
s
0
c
c
e
c
e
c
e
...
e
~.
The D indicator :i s re cognized by
tb.e signed inforrnatJ.on to {ollow is
i':1.
t:t~e
0
load PI' ogl'a rn as r.:1e3. r .ing that
decim.al form; and n1ust be converted
to the binary equiva.lent.
The sign of the decimal number immediately f'onaws tb.e D indicator,
A space is accepted as a positive
tive sign.
6-6
sign~
and a hyphen is accepted as anega=
Decirnal Punched Tape Format -- Continued
When the format above is used, the binary scaling of the converted
number is a function of the toggle switches, 51 - 56, on the computer test
and maintenance panel.
If the operator had previously set the switche s to
the configuration, 000110, the decimal numuers entered would be scaled 2
after being converted to binary.
-6
(For scaling considerations, refer to 5ec-
tion VIII. )
When several decirnal constants are to be loaded, each having different scale factors, the scale factor of each may be entered following the
decimal nutnber in the following manner:
A
TT -5S D - 20. 55-05 C/R
A
TT -55 D 113. 092- 12 C /R
The first number will be scaled 2
-5
after conversion, and the second
number will be scaled 2- 12 after conversion.
The configuration, A
TT -5S D O. C/R will load zero into the specified
track and sector.
OPERATING CONDITIONS
When loading a program, the punched ·paper tape is threaded through
the Flexowriter tape reader (or other tape-reading device).
When using the
6-7
Operating Conditions - - Continued
Flexowriter, power rnust be applied, and the
~lexowriter
must be in the non-
print and non-punch lTIodes.
The LOAD button is pres sed on the R \V -300 control panel to begin
loading.
To stop loading, the STOP button is pressed.
To resume after a
stop, the RESUME button is pressed.
When the LOAD button is pressed, the ERROR light on the test and
maintenance panel (Section VII) will glow if the track selection plug is not
mated with the appropriate jack on the track selection panel.
Before the
loading operation can be resum.ed, the track selection plug must be moved to
the appropriate track group.
Example:
if some portion of the program is
written for track 33, the track selection plug must be connected to the jack
marked 32-39.
Following a record-error indication, the track selection plug
is moved to the appropriate position, and the RESUlvIE button 1s pressed to
continue loading.
A record-error indication obtained by attern}?ting to load
into track 63 cannot be cleared.
The ...prop-ram
must be corrected to eliminate
'"..,
any instructions as signed to track 63.
If the loading ope ration halts before the prograul has been loaded, and
if there is no record -error indication, and if the tape does not contain the in.-
dicator "S", the halt is probably du., to a format error.
The loading operation
can be restarted by pressing the LOAD and/or RESUME buttons.
Although
the faulty word that caused the halt will not be loaded correctly, subsequent
instructions will be loaded satisfactorily.
6-8
Memory Sums
MEMORY SUMS
The load program. keeps a running surn of all bits read from the
punched tape during the loading process.
When a punched tape is loaded for
the first tim.e, the memory sum. can be noted for comparison with sums obtained during subs equent loadings of the s arne tape.·
When the LOAD button is pressed, the m.ernory sum. is set to zero.
Each address, constant, and instruction that is read in by the load program
is algebraically added to form a running check surn.
To make use of the sum, the indicator "Mil is punched on the tape,
followed by six spaces (blank tape).
The load program halts when the" Mil
indicator is read, and at this tin1.e the memory
SU1TI
appears in the A register.
The octal contents of the A register are read by the progranuner using the
oscilloscope on the test and ITlaintenance panel (Section VII).
The octa.l con-
tents of the A register are then punched into the six blan.~. spaces on the paper
tape, immediately following the "M" indic ator.
Subsequent loading operations frorn the sallle tape will cause the load
program to halt if the running check. sunl. does not agree with the mem.ory
sum punched at the end of the tape.
The running check sum appears in the
A register.
The memory sum can be placed anywhere along the tape.
If the run-
ning check sum agrees with the memory sum read from the tape, the load
program sets the running check sum to zero and resumes the loading operation.
If the sums disagree, the load program halts.
If the RESUME button
6-9
Memory Sums - - Continued
is pressed, loading will resume and the running check sum will be set to zero
in preparation for cornparis on with the next memory sum.
Note that the running check sum and memory sum are neither true
sums of all the bits read from the tape nor of all the bits stored in memory,
but are nUlnbers generated by adding addresses, constants, indicators, etc.
BINARY LOADING
The
II
LII
indicator tells the lqad progran'l that the hole patterns in the
following three tape frames are to be interpreted as the binary representation
of a computer word.
Each frame following the indicator ilL" is read as six
binary digits.' with holes repres enting ones.
s
Ap TT-SSLBBBLBBB . . . . . . . . . . etc.
a
c
e
The address (TT -85) is the n'lernory location assigned to the first binary word
to be loaded.
Following this location address
a:re~
in consecutive order, the
words, 3 binary frames per word, each preceded by an "L".
No other binary
format is acceptable to the load program.
Although it is not cO:J.venient for the programmer to translate constants
into the binary format, the trauslation is accomplished siInply and effectively
under program control.
Tapes can be prepared in the binary format by
called the "Utility Package".
a programming aid
A:mong the subroutines contained in the Utility
Package is a "binary d1..!mpll routine which can be used to punch a paper tape
6-10
Binary Loading - - Continued
repre,senting the contents of specific IllelTIOry tracks.
The paper tape ob-
tained under the control of the Utility Package is called a "standard binary
dump".
The load prograrrl in track 63 of the R W -300 reads tapes punched in
the standard binary dump forrnat J and loads the inforlTIation into the com.puter
in one-half to one-third the time required to load a tape prepared using the
standard punched tape format des cribed previously.
A tape prepared using the standard punched tape format is called a
lllistable" tape because it can be read by the Flexowriter (independent of the
computer) to obtain a printout of each instruction.
Any printout of a standard
binary tape is rneaningles s .
The Utility Package can also be used to prepare a tape representing
:melTIory contents in the form of a IIfast binary dump", but tapes in this format can only be loaded using the Utility Package.
JUMP INSTRUCTION
If the first instruction of a program is located in 00-00 (the origin) of
memory, the first instruction will be read by the computer when the ST ART
button is pressed.
If the first instruction of a program. is not located at the origin, the
computer can be sent to the first instruction either by placing an unconditl.onal
transfer instruction in the origin) or by loading a jump instruction.
For unconditional transfer to a program beginning in ITleITlory location
56-96, the origin may be loaded with an instruction similar to the following:
6-11
Jump Instruction - - Continued
CI
EX OPERAND
OP
NI
The above instruction us es the Transfer on Overflow operation code, but any
transfer operation code or the No Operation code could be used.
The Trans-
fer on Overflow operation code is advantageous because it turns off the overflow indic ator .
The jump instruction is read by the load program.
tape:
A 56-96J
z~nd
By preparing a
pres sing the LOAD button, the programmer can cause
the computer to read the first instruction from. memory location 56-96 (or
any other memory location designated).
The jump instruction can be punched at the end of a program being
loaded so that the coxnputer will begin executing the progran as soon as the
loading operation is finished.
Because tapes must be loaded :l.::'l.to the computer with the Flexowriter
in the non-print and non-punch mode, it is
computer just prior to the jump into the
S
ornetimes desirable to halt the
progl~ arn.
The halt permits the pro-
grarnmer to set the Flexowrite:r to printing or punching conditions required
to obtain output information from the program.
corporated by using the form:
the
IISlt
The cOlTIputer halts after reading
indicator,' When the programmer presses the RESUME button, the
load program reads the
location.
6.- 12
A 56-96SJ.
The halt feature can be in-
II JII
indicator and jumps to the designated memory
SECTION
vn
OPERA TING CONTROLS AND INDICA TORS
OPERATORiS PAt-TEL
Only the
operator~
s panel is accessible when the cove.,: is down
(See frOtltispiece, J Controls include:
b.
POWER OFF
c.
ST . .~NDBY
d.
I
LOAD
e.
START
L
STOP
g,
RESU?'I1E
Each control is a pll.shbutton
s'~vitch
glows to indicate the operating rnode.
in.to two categories:
containing a!1 indicator which
The seven buttons m.ay be divided
power controls 2x'.l.d opl':;r3.ting controL:"
Povver Controls
P:res:sing the POWER 01\T button connects the Ene voltage supply to
the RW 0,300 and turn.s on the STA}>TDBY
At the end of a 2.
5~>nl.inute
waiting period, the POvVER ON button :must be pressed again to place the
computer in ope ratiorlo
Pressing the POV1ER OFF button disconnects the line voltage supply
fron'l the R W,300,
'Operator1s Panel -- Continued
Pressing the STANDBY button turns on the STANDBY light, turns off
the POWER ON light, and removes operating voltages from the computer ..
vVhen the STAN°DBY button is pressed, line voltage is not disconnected from
the compute r, and ope ration can be restored immediate l-y (no 2. 5 -minute
:delay) by pressing the POWER ON button ..
The prograrDrner is not normally concerned with the power controls,
but only with the operating controls ~
Operating Controts
Use of the operating
controls~
described in conjunction with program
loading in Section VI, are summarized in the paragraphs which follow.
To load a prograril into the drum from. the paper-tape reader, the
track 63 load program °must be placed in operation"
By pressing the LOAD
button, the next-instruction (N) re gis ter is set to all one s, the compute r is
placed in automatic operation, and the first instruction of the load program
(Section VI) is read from memory location 63 ~ 127"
When the START button is pressed, the next-instruction (N) register
is set to zero, the conlputer is placed in automatic operation, and the instruction located at the origin (address 00-00) is read..
Thus, the first
instruction in the prograrn must be located in 00-00 if the START button is used.
Pressing the STOP button causes the computer to cease execution of
the program after completion of the current instruction; the computer idles,
,and the STOP light is lit..
The STOP light is also turned on when a STOP
instruction is executed by the computer or when a record error occurs
°
7 -2
Operator's Panel -- Continued
(Section VI).
The computer may be returned to continuous operation by
pre ssing the RESUME button.
If the computer has stopped as a result of a manual stop, program
stop, or record-error stop, it may be returned to continuous operation by
pre s sing the RESUME button (if the re cord-err or has been cleare d). This
action will cause the c?mputer to proceed to the location indicated by the
next-instruction address of the last instruction performed.
When the pro-
gram resumes, the STOP and ERROR lights will be turned off.
TEST AND MAINTENANCE PANEL
The test and maintenance panel shown in Figure 7-1 is located under the
hinged lid of the R W -300 console cabinet.
The panel contains controls and in-
dicators used during program loading, program check-out, and maintenance.
Figure 7-1.
Note:
Test and Maintenance Panel
Computers with an expanded memory have a three-way track set toggle
switch above the Track 0-7 socket on the te st and maintenance panel.
7-3
Test and Ma:nten2.nce Panel·.. ", Continl::.cd
The controls a rd. ir::dicator s used during program loading include;
aJ
Track selectien plug and jacks
bo
ERROR in.dicator light
Co
Track set selection switch (expa_nded memory
only:~
The use of thE·se in ccnjux).ction with p·togranl loading is described irlS6c'"
tion VI, In
addition~
Section VI refer s to obtaini,:,g traCktrrilenlory sums from
the o13cilloscope on th.e test and mainten.ar::.ce panel,
The interpretation of
the oscilloscope display is described in the paragraphs of this section
~
Mai :::.te nance
T he control s and indicator s provided for maintenance purpose s
include:
ao
LINE VOLTAGE meter
bo
\lOLTAGE rneter
c,
METER S.ELECTOR sw:.tch
d,
Sbc controls for adJust::.ng voltages and clock amplitu.des
eo
PHASE MARC.:N
Thes(:: controls are uSE.d to adjl.i..s:t
opE-l.~at.lng
vcltages and to perform tes:s.
They are pot norm.::dJ.y adju.st.i:::d b'/ prcgrar:'lY"!11r:.g o:r
C'perati~g
pE':r sor\'.:eL
Th.e CO''ltrols of intc.ce s\:. to the p:cograITlmer and operator llnder normal
operating conditions
ao
i~c
llkde ~
TRACK 0 &: 7 WRITE, ON/OFF toggle switch
Test and Maintenance Panel --
b.
'DIGITAL INPUT selector switch
,c.L26$
d.
ConU.nL~ed.
L25~
L24~
L23~
L22, L21 toggle switches
ERROR indicator light
The TRACK 0 &'7 WRITE
switch~
located near. the track selection
vides control over information written into tracks 00 and 07.
plug~
pro-
Track 07 is
the analog output track (Sections I and III).
Momentary pO'wer dips can cause the write heads of tracks 00 through
07 to store spurious information in these tracks o
If the power dips should
de stroy the contents of the origin (sector 00 of track OOL the program could
not be re started; or if spurious information should be introduced into the
analog output
. in proces
track~
s control
turned OFF.
fa.;). lty control signals would be gener atedo
Therefore J
applicatio~lS, the TRACK 0 & 7 WRITE switch is normally
To write in tracks 00 or 07 when the TRACK 0 &. 7 WRITE
switch is :in the OFF position,) any store instr uction involving the se tracks
must be preceded by a one -bitd~igital output instruction which bypas ses
the protection circuito
The store instruction must then be followed by
another one=bit digital
utput instruction to
Although power dips might
destro~r
re~tore
the protection circuit.
in:Corr..'1ation in tracks 01 through
06, the loss of this inforn1.ation does not affect the control system because
the control calculation is restarted whenever a se'rious power=line~.transient
occurs.
Te st and lviaintenance Pane 1 - - Continued
The DIGITAL INPUT selector switch is normally set to EXT (external)
when the computer is controlling a process ..
When set to INT (internal), in-
fOl'mation from the six toggle switches (L26 through L21) is read under
program controlo
The progran1.ming requirements for obtaining inputs from
the toggle switches are given in 5e ction V.
The toggle switches are used in conjunction with certain programming
aids.
The "Utility Package" referred to in Section VI is composed of several
subroutines which can be selected by means of the toggle switches on the test
and maintenance panel.
The ERROR light is turned on when a program or the load program
attempts to write (carry out a store instruction) into an address in track 63
or in a track not cu "rently connected through the track selector plug and
jack~
Program writing or loading into track 63 is impossible, regardless
of which group of tracks is connected..
Normal operation may be resumed
either by changing the programmed storage location, or by connecting the
track se lector plug to the appropriate jack.
PROGRAM CHECK-OUT
The controls and indicators of the
used during program
7-6
ch(:~ck-out
a.
FETCH button
b.
EXECUTE button
c.
RUN button
d.
ST ATE indicators
e.
as ci 110s cope
include:
tes~
and maintenance panel that are
Program Che ck -0 ut - - Continued
Fetch and Execute Buttons
These controls are used to suspend instruction processing for the
purpose of inspecting the contents of registers.
Depressing the FETCH
button suspends operations at the mOITlent the next operand is selected, and
the coml)uter idles in this state
operat~. :::;::1S
,=:~pres
sing the EXECUTE button suspends
at the n10ment the next instruction is selected, and the computer
idles in this state.
Hence, the effect of pressing either button during con-
tinuous operation is to stop program execution, and the effect when operating
in the FETCH-EXECUTE mode is to advance the program by "half" steps.
In either case, the appropriate light is turned on.
Run Button
Depressing the RUN button causes the corn.puter to resume automatic
high-speed execution after the computer has been in the FETCH or EXECUTE
mode Se
State Indicators
This portion of the test and maintenance panel may be u~ed both in
code checking and trouble-shooting.
The STATE INDICATORS consists of
a bank of six neon lights, a three-position rotary switch called the STATE
SELECTOR and a REFERENCE toggle switch.
The neon lights display the
status of specific flip-flops, as determined by the setting of the STATE
SELECTOR switch:
M
Flip-flops Ml to M6 inclusive (track address)
7 -7
Progranl. Check-Out - - Continued
PE Flip-flops PI to P5 inclusive (operation code);
El (equality flip-flop)
5Z
Flip-flops 51, 52, S3 (state counter); Z2 (overflow); Z4 (carry);
A3 (input s e,le ction)
When the f;uEFERENCE toggle is set to ONE, only flip-flops having
a current statue of one will light the neons.
is true.
When set to ZERO the converse
Failure of a neon to light on either setting of the Reference Switch
indicates that the corresponding flip-flop or neon indicator circuit is faulty.
The information displayed on the neon indicators is dependent upon
the setting of the STATE SELECTOR switch and is dependent upon whether
the computer is in the FETCH or EXECUTE mode.
The interpretation of
displays is covered in the last paragraph of this section.
The six jacks located above the neon lights are used for troubleshooting in connection with the jack located under the oscilloscope.
Os ciUos cope
A smcill os cillos cope is provided to aid in code checking and maintaining the computer.
In code checking, its function is to display the con-
tents of various registers when operating in the FETCH-EXECUTE mode.
When register contents are displayed, the word is divided into two levels
on the 'oscilloscope face, 10 digits to a level, as shown in figure 7-2.
A dot in a low position is a one, and a dot in a high position is a
zero.
The sweep is triggered so that the least-significant bit appears at
the bottom right of the display.
are always zero.
7-8
The bits in position 19 and 20 (upper left)
Program Check-Out -- Continued
UPPER LEVEL
LOWER LEVEL
Figure 7-2.
Oscilloscope Display
The octal number 123456 is displ.ayed infigure 7-2.
Interpretation
is as follows:
Bit Position:
Binary Representation:
18 17 16 15 14 13 12 11
0
0
1
0
1
1....--.-----..------"
v
1
2
Octal Equivalent:
0
0
1
10 9 8
1
7 6 5 4
3 2 1
1 0 0 1 0 1 1 1 0
,~
3
4
5
6
When the oscilloscope is used to observe instruction words, partitioning line s between 13 and 14 (on the
0
s ci Ho s cope mask) serve as an aid
in recognizing the operation code or execution code normally contained in
bit-positions 14 through 18.
Partitioning lines between 7 and 8 aid in recog-
nizing track address (bit-positions 8 through 13) and sector number (bitpositions 1 through 7).
Near the face of the oscilloscope are operating controls for horizontal.
positioning (H), vertical positioning (V), FOCUS, and brilliance control
(BEAM).
Below the face of the oscilloscope are INPUT and WORD selector
switches which can be used for displaying the contents of specific registers
on the oscilloscope.
The information displayed on the oscilloscope is
7-9
Program Check-Out -- Continued
dependent upon the setting of the INPUT and WORD selector switches, and
is dependent upon whether the computer is in the FETCH or EXECUTE mode.
The interpretation of displays is covered in the last paragraph of this
section.
Also ·;)elow the face of the
osci~l.oscope
is an input JACK which can
be used by rnaintenance personnel to feed signals from the state-indicator
jacks to the oscilloscope.
The CA INT. MOD. toggle switch provides the
beam intensification ne ce s sary to produce the dot pattern when a register is
viewed on the oscilloscope.
The toggle switch is normally left in the ON
position.
Tables for Interpreting Indicators
When using the FETCH and EXECUTE buttons to observe the stepby-step execution of a program, it is usually necessary to refer to the
original program listing.
For the purpose of correlating the indicator dis-
plays with the program listing, as sume the following:
The current instruc-
tion (CI column of the listing) has been acquired by the computer whenever
the computer is in the FETCH: m.ode.
The tabulations which follow describe
the significance of the indicator displays when the computer is in the FETCh.
and EXECUTE modes.
7-10
Progran1 C:tieck-OuL -- Continue.J
FETCH MODE
--_......
SELECTOR POSITIONS
Os',:illoscope
OsciHoscope
INPUT
vvoa.D
Se lector
Se le ctor
I
-----
-
0'-
Neon
Sarne as previous EXECUTE
(Result of previous instructions)
Eve 14y
Same as p:e vious .EXECUTE
( Res u 1t 0 f p l' e vi 0 us instructions)
'....;
Evet·y
Execution code of CU·,'J."ent insttuction in .)its 1-5
N
Every
Next-instruction address
in bits 1-13"
Y
Every
Current operand add:tess
in bits 1-,1 3
R1
1st Word
Current operand
B
~
Oscill"lscope
Display
Every
P.
~
ST.A TE
SELECTOR
:1
>-,-.
I
M
In M _ , tr ack numbe r of
l 6
current operand
FE
In PI-51
code
SZ
In Z2, ove r flow s ta tus of
previous operations
!
t
Ii
,
1
(
curr~'nt
operation
7 -J 1
.
Prograrn Check-Out - - Continued
EXECUTE MODE
SELECTOR POSITIONS
Oscilloscope
WORD
Se lector
Os cilloscope
INPUT
Se lector
Os cillos cope or Neon
Display
STATE
SELE~TOR
A
Every
(A) afte r completion of cur rent
instruction
B
Every
(B) afte r completion of current
instruction
;
C
--
N
Every
y
--
I
N ext -ins truction addre s s
Zero
Rl
1st Word
First word of next instruction
Rl
2nd Word
Second word of next instruction
M
In Ml
I
"
7-12
Zero
I'
-0
track number of next
ins truction
PE
In PI-5' operation code of
executed instruction
SZ
In Z2, current overflow status
SECTION VIII
NUMBER SYSTEMS AND SI
LING
READING COMPUTER NUMBERS
A familiarity with binary and octal number systems will simplify ,communication with the R W -300 for the programITler, because the cOITlputer uses
the binary number system in its i,nternal operations.
The binary nUITlber sys-
tern, which perITlits only the sylnbols 0 and 1, is particularly compatible with
the on-off type of circuits used in digital computers.
Since each computer word consists of 17 binary digits (bits), plus
sign, writing or working arithmetic with these numbers is cumbersome.
Therefore, program instructions are listed as decimal numbers; numerical
quantities, or constants, are entered in octal form.
If a computer instruction is
EX
OPRND
OP
NI
00
62-110
29
00-112
then the two instruction words will appear in the computer in binary as
EX
first word
00000
OPERAND
track
111110
OP
second word
11101
sector
1101110
NI
track
000000
sector
1110000
8-1
Reading Conl.puter Nurnbers - - Continued
To use the oscilloscope (figure 7-2) or indicator lights to verify an ir.l.struction
in the cOlnputer, the programmer must be able to convert binary numbers to
their decimal equivalents.
A computer word may be a numerical quantity, rather than an operation or execution code and track address.
These quantities must be converted
from decimal to octal form for listing in the program; the octal number is
stored in the computer in binary form.
For example, C000325 would appear
in the computer as the binary nurnber 00000000011010101,
To check this, the
programmer must be able to convert binary numbers to octal.
So that a maximum number of significant digits will be carried
through programmed calculations, the programmer will sometimes find it
neces s ary to perform preliminary calculations to determine what shifting instructions should be included in the program.
Although these calculations
can be perforrned in decirnal, and the results converted to octal, programming time is saved if the arithmetic operations can be performed using the
octal numbers that will be used by the' computer.
In the paragraphs which
follow, binary and octal arithmetic are des cribed, along with numbering
systems and methods of converting from one nurnbering system to another.
NUMBER SYSTEMS
In the decimal number 213.75, the symbols 2, 1, 3, 7, and 5
sent the SUln of
or
200
8-2
+
10
+
3
+
7/10
+
5/100
repr~
Number Systems -- Continued
Thus, in the decimal system each position in a number has the value of some
powe r of 10, and each digit is the coefficient of the power of ten repre s ented
by that pas ition.
The place immediately to the left of the de cimal point is the
o·
1
power of 10 , the next is 10 , etc.
decimal point is the powe
of 10
-1
The place immediately to the right of the
,etc.
Consequently, every time the deci-
mal point with.in a number is moved a place to the
lef~,
the number is divided
by 10; if the point is moved to the right it is multiplied by 10.
Because there
are 10 symbols (0 through 9) permitted in the system, it operates with powers
of 10, and the base or radix of the system is 10.
The decimal number system is a "place" or positional notation system; a similar system can be devised using any base or radix.
Both the
binary and octal systems are parallel to the decimal system, but binary uses
only 2 symbols (0 and 1) and has a base of 2, while the octal system uses 8
symbols (0 through 7) and has a base of 8.
by a subscript, as 11010101
2
The base of a number is indicated
(binary) or 325
8
(octal) or 213
10
(decimal).
Each place in a binary number represents a power of two.
The binary
number 11010101.11 is the sum of
7
6
5
4
3
2
1
0
-1
2
1(2 )+1(2 }+0(2 )+1(2 )+0(2 )+1(2 )+0(2 )+1(2 )+1(2 )+1(2-)
or 128 +
64 +
o
+
o
+
16
+
4
+
o
+
2
+
1/2
+
1/4
or 213 3/4.
Each place in an octal number is a power of 8.
The octal number
325.6 is the sum of
or
192
+
16
+
5
+
6/8
or
213 3/4.
8-3
NUlnber Systems - - Continued
Note that the zero power of any number is always 1 and the first power of
any number is the nUIJ.'?ber itself.
As in the decimal system, every time the
point is shifted to the right, the numbe r is multiplied by the bas e for every
place moved.
If the point is shifted to the left, the number is divided by the
base for every place moved.
The programmer uses this principle in scaling
binary numbers.
CONVERSIONS
Binary to Decimal
In the above example, the binary number 11010101.11 was converted
to its decimal equivalent by adding the products of each digit times the power
of 2 as s ociated with its position.
This method can be employed using the
table "powers of 2" at the end of this rnanual.
The conversion can be tnade
more quickly by using the fact that every shift of the binary point one place
to the right ITlultiplies by two.
Convert binary numbers to decitnal by rnultiplying the tnost-significant
binary digit by two and adding the- next binary digit.
Multiply this sum. by two,
add the next, and continue to the least-significant digit.
A sitnilar procedure
follows for digits to the right of the point except that they are divided by two
instead of multiplied.
8-4
Conversions - - Continued
Example:
1
1
~
tlx2=2
+1
o
1
t
o
o
1
i
1 • 1
1
I
+0
3x2= 6
+1
6x2= 12
+0
l3x2= 26
+1
26x2= 52
+0
53x2= 106
+1
+1
106 x 2 = 212
213 + 1-:-2= 1/2
3/2~2=3/4
111010101.11 = 213 3/410
2
For an even faster conversion method, memorize the binary numbers
from 1 through 15.
They are
1
=1
3
2
= 10
6 = 110
4
= 100
12 = 1100
8 = 1000
13 = 1101
9
= 11
5
= 101
7 = III
10 = 1010
14= 1110
= 1011
15 ::: 1111
11
= 1001
When converting a binary number to d.ecimal, begin with the decimal equivalent of the first three or four digits and multiply it by two for every succeeding place to the point.
Then add this num.ber to the decim.al equivalent of the
rest of the binary digits.
Exam.ple:
Convert 11010101 to decim.aL
1101'
l
13
0101
t
x 2 x 2 x 2 x 2 = 208 + 5
=
213
8-5
Conversions -- Continued
Decinlal'to Octal
The quickest way to convert a decimal number to octal is to divide the
decilnal nl.lluber successively by 8 and note the remainders.
in reverse order, forn1 the octal equivalent.
The remainders,
If all or part of the number is a
fraction, repeatedly multiply the fraction by 8) noting the integers resulting
fron1 each multiplication.
The process is' continued until the fractional prod-
uct is zero, or until the desired accuracy has been obtained.
The integers,
in the order obtained, form the octal equivalent.
Exanlple:
Convert 213.75 to an octal number .
213 · 8
26 . 8
213.75
= 26 +
=
10
3
. 75x8= 6.00
5
+2
= 325.6 8
Binary to Octal to Binary
The octal nUITlber s ysteITl is us ed for notation and for pe rforITling
arithITletic because it is easier to convert between binary and octal than it is
to convert between binary and decimal.
equivalent of three binary digits.
Since 8
= 2 3,
each octal digit is the
To convert an octal number to binary,
write the binary equivalent of each octal digit.
ExaITlple:
=
3
2
5
. 6
in octal
011
010
101
.110
or 11010101.11 in binary
~
To convert a binary nUITlber to octal) begin at the binary point and
divide the nUITlber into triads (groups of three digits each).
octal equivalent of each group.
8-6
Then write the
Conversions - - Continued
•
1 1
Example:
6
Decimal to Binary
in binary
=
in octal
Decimal to binary conversion is like decimal to octal conversion except that the decimal number is successively divided by 2, rather than 8.
The
remainders from the divisions, in reverse order, form the binary number.
:Fractions are multiplied by 2 until a fractional product of zero is reached, or
until the required accuracy has been obtained.
The integers resulting from
the multiplication, in the order obtained, form the binary equivalent.
Example:
213.75 in decimal
=
213
· 2 = 106 + 1
106
2
=
53
+
0
53
·2 =
26
+
1
26
2
=
13
+
0
13
·2=
=
6
2
3
·2 =
1
2
.75 x 2
= 1. 50
.50 x 2
= 1.00
6 + 1
3
+
0
1 + 1
= o+
1
= 11010101.11 in binary
Octal to Decimal
Octal to decimal conversion is most convenie(ntly performed by adding
the products of each octal digit times the powe r of
tion.
For.example:
8 as s ociated
with its pos i-
325.6 in octal =
8-7
Conversions -- Continued
2
3 (8 )
= 192
1
2 (8 )
=
16
0
5 (8 )
=
5
1
6 (8- ) =
6/8 or 3/4
= 2133/4 in decim.al
Powers of 8 are listed in a table at the end of this manual.
BINARY ARITHMETIC
The rules for binary arithmetic are:
Addition
Subtr ac tio'n
o+ 0 =0
o-
0
=0
ox
0
=0
o+
0
= undefined
o+ 1 =1
1 - 1
=0
ox
1
=0
o+
1
=0
1 - 0
=1
1 x 1
=1
1 + 1
=1
o-
= 1 (with
1
+
1 = 0 (with 1
to carry)
Examples:
augend:
1
addend:
1 0 0
Subtr ac tion
1
borrow:
1 101
lTIinuend:
carry: 11
- - - - 1- -
sum: 1 0
8-8
1 +·0 = undefined
1
borrowed)
Addition
1
0
1
Division
Multi plication
1 0
0
1 1 10
1 0 0
1
subtrahend:
difference:
0
1
1
1
Binary Arithmetic - - Continued
1 0
1
1 0
0 0 0
1 0 0 1
1 0 0 1 1
1 1
1 1 1 1 0
Multiplicand:
Multiplie r:
Carry:
Product:
Division
Multiplication
Examples:
0
1
0
0
1
1 1
0 1
1 1
0
1
1 1
1.
Ill.
"101
10
10
101
1
1
1
1
OCTAL ARITHMETIC
Octal arithmetic is like decimal arithmetic.
To perform the arith-
metic operations quickly, octal addition and multiplication tables can be used,
or memorized.
An alternative to this is to perform the operations mentally
in decirnal and convert the sum or product to octal before writing it.
Below
I
are tables showing octal multiplication and addition.
OCTAL MULTIPLICATION TABLE
OCTAL ADDITION TABLE
o
1
2
0
0
0
"0
0
1
0
1
2
11
J~ :---
2
0
2
o
1
2
3
4
5
6
7
o
0
1
2
3
4
J
16
7
1
1
2
3
4
5~2-
10
5
345
6
7
0
0
0
0
3
4
5
6
7
4
6
10
12
14 16
14
17
22 25
!--
2
2
3
4
5
6
7
3
3
4
5
6
7
10
11
12
3
0
3
6
11
4
4
5
6
7
10
11
12
13
4
0
4
10
14 20 24 30 34
5
5
6
7
10
11
12
13
14
5
0
5
12
17
6
6
7
10
11
12
13
14
15
6
0
6
7
7
10
11
12
13
14
15
16
7
0
7
In decimal addition, 7
o
+
7
= 14.
24 31
36 43
14 22
30
36
44
52
16 25
34 43
52
61
The octal equivalent of 14 is 16 ( 1 x 8
6 x 8 ); thus, in the octal addition table above 7 + 7
'
= ~ 6.
1
+
In working an
addition problem, the 6 is written and the 1 is carried to the next column.
8-9
GLOSSARY
Specific examples used in these definitions usually refer to the RW-300 only.
Absolute
Va~ue
- the magnitude of a number without regard to the algebraic
sign of the number.
Acce s s Time - the time inte rval betwe en the ins tant at which inform ation is:
(a) called for from storage and the instant at which delivery
is completed, i. e. , the read time; or (b) ready for storage
and the instant at which storage is completed, i. e., the write
time.
Accumulator (A Register) - the register in the arithmetic unit in which sums
and other arithmetic and logical results are formed.
Adder - a device capable of forming the sum of two quantities plus a carry'
digit from a previous addition.
Address - a label (usually a set of numbers) which identifies a register or
location in which information is stored.
Analog - representing numerical quantities by means of continuous, physical
variables, e. g., translation, rotation, voltage, resistance;
contrasted with "digital".
Analog Conversion - the ope ratio~ of changing analog information to its
digital (numerical) equivalent, or vice-versa.
Glossary -1
Analog Input - the acceptance 'of analog voltages from transducers and the
conversion 6f this data to equivalent digital form for processing by the computer.
Analog Output - the conversion of digital information generated by the
computer into equivalent voltages or currents to operate controls or indicato'rs.
Arithmetic Unit - that portion of an automatic digital compute r in which
arithmetic and 199ical operations are performed.
Base (Radix) - the fundamental number of a system of numbers.
Thus, 10
is the base of the decimal number system, 2 of the binary,
8 of the octal.
Binary - involving the integer 2, as in a binary number system (base 2),
a binary choice (between two alternatives), or a binary operation (combining two q uantitie s).
Binary Number - a numerical value expressed·in binary notation.
Bi-Polar - in the R W -300, having to do with both negative and positive
analog input voltages; the bi-polar analog-digital converter.
Bit - a binary digit.
Bit Time - the length of time required for one bit to pass a given point on the
magnetic drum (approximately 6.5 microseconds in the RW":300).
Glossary - 2
Block - a group' of information recorded on magnetic tape corresponding to
one track of inform'ation recorded on the magnetic drum.
Branch - see Transfer.
Break-Point - a point in a routine at which the computer samples a manually
set switch to determine the subsequent course of the program.
Carry,w: (l) the digit to be added to the next higher column when the sum
of the digits in one column equals or exceeds the number base;
(2) the process of forwarding the carry digit.
Check - a means of verifying information during or after an operation.
Marginal Checking - a system or method of determining
computer circuit weaknesses by varying the
oper ating conditions of the circuits.
Circulating Register - see Register.
Code (noun) - a system of symbols and rule sfor use in computer
ope ration s.
Execution Code - a binary code used to modify certain operations in the RW -300 such as shifts, multiplication,
division, etc.
More specifically, the five bits
contained in bit-positions 14 through 18 of the
first word of a two-word instruction.
Glossary - 3
Instru ction Code - the· symbo Is, names, and definitions of
instructions which are dire ctly inte lligihle to a
given computer.
Mnemonic Code - a code, usually alphabetic, chosen so that it
can be remembered easily.
Example: MG for
Merge, LA for Load A, etc.
Code (verb) - to prepare problems in computer code for a specific computer.
Command - often used as' a synonym for Instruction or Operation.
See
Instruction Code.
Computer - any device capable of accepting information, performing
sequences of arithmetic and logical operations, and supplying
the results of these operations.
Control Unit - that portion of an automatic digital computer whic:h directs
the sequence of operations, interprets coded instructions, and
initiates the proper commands to the computer circuits to
execute the instructions.
Convert - (I) change numerical information from one number base to another
(e. g., decimal to binary) and/or from some form of fixed-point
to some form of floating -point representation, or vice -versa;
(2) change analog information (e. g., dis,tances, rotations,
voltages, etc.) into digital information {numerical} or vice versa.
Glossary - 4
Core - a toroid of ferromagnetic material capable of being magnetized in
either of two directions, and therefore a binary device which
I
,
can store one bit for indefinite periods.
Core Storage - an array or matrix of cores capable of storing large numbers
of bits.
Core Buffer - a core storage and associated equipment to permit communication between the RW -300 and the magnetic tape transports.
Data- any information (usually numbers) take'n in, operated on, or obtained
from a computer.
Raw Data - unappraised information entered into the computer.
Data Word - a word containing or reserved for numerical information, as
opposed to an instruction word.
Digit - one of the- n symbols of integral values ranging from 0 to n - 1
inclusive in a scale of numbering-of base n, especially one of
the ten decimal digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Digit Time - See Bit Time.
Digital - using discrete numbers in a given scale of notation to represent
all the quantitie s that occur in a problem or a calculation, as
opposed to analog.
Glossary - 5
Digital Input - the transfer of information from a digital source
(paper -tape reade r, digital switches, digital
clock, etc.) to the computer.
Digital Output - the transfer of information in digital form from
the computer to some external device such as a
typewriter, paper -tape punch, re lays, etc.
Double - Length Product - see Product.
Drum - cylinder with coating of ferromagnetic material used as a storage
device in digital computers; elementary lengths of a drum
track are magnetized to represent ones or zeros.
Exe cution Code - see Code.
Extract - an operation whereby some portion of the A register is retained
while the remaining portions are cleared by a logical multiplication of the contents of a specified storage location.
Fixed Point - see Point.
Flip-Flop - an electronic circuit having two stable states.
A flip-flop can
store one binary digit of information.
Flow Chart (Flow Diagram) - a graphical representation of a sequence of
op~rations
which is usually drawn up before a program is
written to show how the program is to operate.
Glos sary - 6
Frame - on a pape r tape, one row of 6 or 8 binary digits.
General Storage - see Stor age.
Indicator - (1) on a panel, a light, oscilloscope, flag, or other device which
displays information visually.
(2) in the format requirements
of a punched paper tape, a symbol which tells the RW -300
load program what kind of information is to follow.
Input - information accepted by the compute r from cards, punched tape,
magnetic tape, instruments, etc.
Input Group - digital input lines, normally 18, addressed by a specific
track number.
Input Line - a wire capable of assuming two discrete voltage levels for
representation of either a one or a zero.
Instruction - see Code.
Leader - that portion of a punched paper tape that precedes the input data.
It is usually left blank.
Load (verb) - (1) to enter data into the computer, as "to load a tape".
(2) to cause data to enter a register from a memory location,
as "Load A" •
. Load Program - a permanently .stored program on track 63 which controls
the loading of programs and data into the memory.
Glossary - 7
Logging T"ypewriter - an output device for keeping a runnin'g log of process
conditions.
Logical Operation - see Operation.
Logical Addition - by definition, 0
+
0
= Oi
1
+
0
= 1,0 +
Logical addition is performed bit by bit.
1
= 1,
1
+
1
= 1.
Thus, if correspond-
ing bit positions of two registers are both zero, the result is
zero in that position.
Otherwise, the result is a
on~
in that
position.
Logical Product - by definition, 0 · 0 = 0, 0 • 1
= 0,
1 • 0
= 0,
1 • 1 = 1.
The logical product is formed bit by bit and has ones only in
those bit positions which had ones in the corresponding positions of both registers.
Loop - a portion of a program that is repeated until some predetermined
condition has been satisfied.
Magnetic Core - see Core.
Magnetic Tape - flexible tape coated with ferromagnetic material.
In digital
computer applications, elementary lengths of the tape are
magnetized to represent ones or zeros.
, Magnetic Tape Handler (Transport) -
device for moving tape so
that information can be magnetically recorded or
read.
Glossary - 8
Magnetic Tape Buffer - see Core Buffer.
Memory - any device into which units of information can be stored and from
which the information can be obtained at a later time; in the'
RW-300, the magnetic drum is the internal memory.
Memory Sum - a word consisting of the algebraic sum (modulo 217) of all
binary digits in a specified portion of a paper tape.
The
memory sum is used to determine whether or not all the information on a tape has been stored in the computer correctly.
Merge - an operation whe reby any portion of the contents of a specified
storage location may be inserted into the corresponding
portion .of the A register by logical addition.
Microsecond - a millionth of a second.
Millisecond - a thousandth of a second.
Module ... in the RW-300, individual circuits are assembled and wired on
insert cards.
Interconnections between circuits and physical
mounting for cards are provided by module s.
Modulo - an operator which denote s division by a base number; e. g., if
a
=b
modulo p, a is the remainder obtained after b is divided
by the base number p.
132 modulo 128 is 4.
Glossary -9
Multi ... Bit Output - a digital 'output circuit arrangement which, causes a group
of output lines to be' set to a one -and-zero pattern corresponding to the contents of the A register when the Digital output
command is executed.
Octal - involving the integer 8, as in the octal number system (base 8).
On~
-Bit Output - a digital output circuit arrangement which pe rmits one or
more output lines to be controlled without disturbing other
lines in the group.
Operand - a number used in an operation.
Operation - (1) a defined action; (2) the action specified by a single complete
instruction.
Arithmetic Operations - operations in which numerical quantities forln the elements of the calculation (e.g.,
addition, subtraction, multiplication, division).
Logical Operations - the operations of comparing, selecting,
matching, sorting, merging, etc.
Optimum Programming - see Program.
OPUS - Optimum Programming Using Symbols.
An assembly routine for the
R W -300 which reads a symbolically coded program and assigns optimum 'memory locations and numerical operation and
exe cu tion co de s •
Glos sary - 10
Origin - RW -300 memory location from which the first program instruction
is read when the computer IS START button is pressed, location
00-00
Output - information sent from the computer to typewriters,
punches~
mag-
netic tape, indicators, controllers, etc'.
Output Group - digital output lines, normally 18, addressed,bya specific
track number.
Output Line - a wire, or pairs of wires capable of assuming two discrete
'voltage levels for representing either a one or a zero.
Parallel - handled simultaneously, as opposed to serial.
Parity - in the R W -300, the condition- of a binary code in which the total
number of ones is always odd.
;Parity Che ck - a te st for data validity by examining the
bin~ry
code to determine whether or not the total number
of one s is odd.
Peripheral Equipment - accessory and
a~xiliary
equipment used with. a
computer to form a complete system.
Glos sary - 11
Point - in positional notation, the location or symbo 1 separ ating the integral
part of a numbe r from its fractional part.
the point is called the decimal point.
In decimal notation
In binary notation it is
called the binary point.
Fixed-Point Repre sentation - a notation or system of arithmetic in which all numerical quantities are
expressed by a predetermined number of digits
with the point implicitly located at some predete rmined position.
Product, Double -Length - the result of a multiplication in which twice as
many digits are retained as the computer normally holds in
one register; e. g., a computer whose basic word consists of
17 binary digits will have, as the result of a multiplication, a
34 -digit pr oduct.
Program (noun) - a list of instructions for the solution of a problem.
See
Routine.
Program (verb) - to plan a computation or process from the initial problem
to the delivery of the results, including the integration of the
operation into an existing system.
Thus, programming con-
sists of analyzing the problem, drawing a flow chart, and
coding the probleru.
Glossary - 12
Also, it may include numerical analysis,
Program (verb) continued - systems analysis, specification ,of print formats
and any other functions necessary to the use of a computer in
a system.
Optimum Programming - arrangement of data and instructions
in such a way that minimum waiting time is required to obtain information from the memory.
Program-Writable - in the basic RW -300, those areas of
memory that can be written into unde r program
control without moving the track group selector
plug from, the jack marked 0 -7.
Radix - see Base.
Read - to copy, usually from memory, or from one form. of memory to
another
I
particularly from external or secondary storage
(paper tape or magnetic tape) to intern"al storage.
Read Head - an electronic device which is capable of sensing and tra:ns'mitting information recorded on a magnetic drum or on magnetic tape.
Register - device for storing one or more computer words, or parts thereof'
in the arithmetic and control units.
In the RW -300 the A
register and the B register are circulating arithmetic registers.
The C, Y, and N registers are circulating control registers.
Glossary - 13
Register (continued) - The T, S, P, and M registers ,are non-circl,llating control registers.
Circulating Register - a register whose contents 'are continuall y read and re -written on the magnetic drum
surface.
Revolver - a register providing 32 words of fast-access storage; track 62.
of the RW -300.
Routine - a set of coded instructions arranged in prope r sequence to direct
the computer to perform a desired operation or series of
operations.
See Program.
Scale - to change the units in which a variable is expressed (e. g., moving
the decimal point, or its binary equivalent) so as to bring it
within the capacity of the machine or
routin~
at. hand.
Scale Factor - a magnitude indicating the number of places the
true point is to the left or right of an
arbi~rary
fixed position in a data word.
S.ector - 1/128 of.a track, providing storage for one computer word.
Sector Number - an integer ranging from 00 through 127, any
one of which denotes a particular word on a track.
Serial - handled on by one in time, as opposed to paralle 1.
Glossary - 14
"Shift - to move' the contents of a register to the right or left.
Sign Bit (Sign Digit) - a one or a zero used to designate the algebraic sign
of
a:
quantity; a zero represents a plus and a one represents a
minus in the RW -300.
State - a name applied to each of several timing and control sequences the
computer must enter while performing instructions.
There
are eight possible states in the RW-300.
Storage - information storage facilities that are controlled by the computer.
Also see Memory.
General Storage - R W -300 drum tracks 00 through 61.
Store - to transfer information to a storage location from which the information can be obtained at a later time.
Track - in the RW -300, a band around the magnetic drum. capable of storing
128 words.
Track Address - number designation specifying the track
number of a storage location.
Trailer - blank tape behind the last punched frame on paper tape.
See
leader.
Glossary - 15
Transfer. - (1) to move data from one location to another; to copy, exchange,
read,
re~ord,
store, transmit, or write data; (2) to' transfer
control; to jump from one part of a program to another.
Utility Package - collection of routines which aid the programmer in loading
and checking programs.
Unipolar - in the RW -300, having to do with positive analog input voltages.
Word - a set of characters which occupies one storage location.
RW-300, a word consists of 18 bits.
In the
The control unit treats
two words or 36 bits as an instruction and the arithmetic unit
treats one word, or 17 bits plus sign, as a quantity.'
Word Time - the length of time required for a sector on the drum to pass
a given point.
Approximately 0.13 milliseconds in the RW-300.
Write - to rec:ord information on any internal or external storage medium.
Write Head - an electronic device which records information on a magnetic
drum or on magnetic tape.
Glossary - 16
INDEX
A register, 1-6
qccess time, 1-3
accumulator, 1-6
~dd, 2-4, 4-10, 4~14
adder, 1-7
analog input- output, 1-11
arithmetic unit, 1- 6
B reg i s te r , 1 - 6
bi-polar converter, 1-14
binary arithmetic, 8-8
binary dump, 6-10
binary loading, 6-10
binary to de cimal conver sions, 8-4
binar y to octal con ve r sion, 8- 6
bit po sitions, 3 .. 2
C register, 1-7
CI (current instructions), 3~3
circulating .registers, 1-4, 1-6
compare magnitude, 2-9, 4-15
constant, 3- 5
control panel, 7-1
control unit, 1-7
conti'ols
mainteniince, 7-4
operation, 7-4
prog.l.'am, 7-6
data words, 3-5
decimal to binary conversion, 8-7
decimal to octal conver sion, 8-6
digital command, 2-13, 4-18, 5- 2
digital indicator s, 5:-- 13
digital input, 5- 3
expanded capabilities, 5-10
from Flexowriter, 5-5
from toggle switches, 5-4
manual inputs, 5-15
digital input lines, 1;..9, 5-3, 5-10
digital input-output, 1-9, 5-1
ba sic input-output, 5- 3
equipment, 5.-13
e xp and e d cap a b i li ti e s , 5 - I 0
sample printout, 5-7
digital input selector switch, 7-5,
7-6
digital output, 5-10
multi-bit outputs, 5-13
one -bit outputs, 5-12
to Flexowriter, 5-6
digital output lines, 1-9, 5-10
Digitran switch, 5-16
divide, 2-21,4-14
scaling, 8-18
drum, memory, 1-4,3-7,4-1
error light, 3-10, 6-6, 7-4, 7-5,7-6
execute (program control), 7-7, '7-10
execute matrix switch, 5-16
e Kec ution code, 2-1, 3-:-3
expanded digital input-output, 5-10
expanded memory, 1-5, 4-7
extract, 2-10, 4-13
Ferranti high- speed reader, 5-17
fe tch (pr ogr am control), 7 -1, 7 -1
fixed point, scaling, 8 -11
Flexowriter, 5- 5, 5-19
Flexowriter codes, 5-19, 5-31
°
general description, RW -300, 1-1
in di cat 0 r J 3 .. 3, 6 - 2 J 6 - 3
input conversion range, 1-14
input selector switch, 7-9
input storage locations, 1-16
instruction list, 2-27, 2-28, 2-29,
reference table :1
instruction register, 1-9
instruction words, 2-1, 3-2
jump instruction, 6-11
Index - 1
load A~ 2- 2, 4-13
load A". negatives 2-3, 4-13
load B, 2-2, 4-13
load button~ 3-4~~ 3-8~ 3-13, 6-8,
7-2
load instruction~ 4.,.13
load program, 3-8, 3 .... 13, 4-8, 6-1
loading tape, 6-7
loop: 3-16
magnetic tape unit, 1-18
core buffer, 1-19
tape transport, 1-21
manual digital input, 5-15
matrix indicator, 5~ 16
memory, 1-4, 3~7
me;:por y organization ll 4-3
memory sums~ 6-9
merge, 2-11, 4-13
multi-bit digital output, 5-13
multiply, 2~ 18, 4-14, 8 -14
N register, 1-7
next instruction, 2-1
no operation, 2-15, 4-17
number systems, 8-1, 8-2
octal addition table, 8-9
octal arithmetic, 8-9
octal mul tiplication table, 8-9
octal to decimal conversion, 8-7
octal to binary conversion, 8-9
one -bit digital output, 5-12
operand, 3- 3,
operand address, 2 ... 1, 3-3
operating controls, 7 -1, 7-4
operation code s, 1 ~3, 2-1
optimum progr'amming, 4-1.
OPUS, 4-21
origin, 3-4, 7-2
oscilloscope, 7 =8
output conversion range, 1-16
output storage, 1-18
paper tape (c;ligital output), 5- 25
parity checking, 5-27
power controls, 7-1
power off button, 7-1
power on hutton, 7-1
power s of 2, reference table 1
powers of 8, reference table 2
Index'- 2
printout sample listing, 5-7
program check-out, 7-6
programming, basic, 3~1;
optimum, 4-1
punched tape format p 6-4
.... ·,·.r.e..cifrd keeping, 3-10
re sume button, 3-9 ~ 6-8, 7 - 3
revolver p 1-5, 4-6, 4-19
revolver locations, reference
table 2
r un button, 7-7
sample programs, 3-12
scaling, 8 -10
scratch pad, 3-9
s hif t, 2 ... 6, 4 ... 17, 8 - 13
shifting (scaling)ll 8-12
. sign bit, 1-4, 3- 6
standby button, 7-1
start button, 3~4, 3-13, 7-1
state indicator Sll 7-7
state selector switch, 7-7
stop, 2-13
stop button, 3-13, 6-8» 7-2
store A, 2-3 11 4-1:7
. store B, 2-411 4-17
subtract, 2-5, 4-14
switch, 2-12, 4-16
tape command, 1- 22, 2-16
Teletype punch, 5-18
te st and maintenance panel, 7 - 3
track. register, 1-8
track set transfer switch, 4--.8
transfer, 4-8, 4-15
transfer on negative, 2-7
. transfer on overflow, 2-8
transfer on zero, 2-8
twenty-four -hour clock, 5-14
\
unipolar convert~r, 1-14
Utility Package, 6-10
watchdog timer, 5-1 7
word, 1-4, 2-1,. 3-1
word selector switch, 7-9
write switch (track 00-07), 7-5
y register, 1-8
TABLE OF POWERS OF 2
2
1
2
4
8
16
32
64
128
256
512
1 024
2 048
n
n
2- n
0
1
2
"3
1.0
O. 5
O. 25
O. 125
4"
O. 062
5 " O. 031
o. 015
6
0.007
7
5
25
625
812 5
8"
9
10
11
0.003
O. 001
0.000
0.000
906
953
976
488
25
125
562 5
281 25
4
8
16
32
096
192
334
768
12
13
14
1/5
O.
O.
O.
O.
000
000
000
000
244
122
061
030
140
070
035
517
625
312 5
"156 25
578 125
65
131
262
524
536
072
144
288
16
17
18
19
O. 000
O. 000
0.000
0.000
015
007
003
001
258
629
814
907
789
394
697
348
062
531
265
632
5
25
625
812 5
1
2
4
8
048
097
194
388
576
152
304
608
20
21
22
23
0.000
0.000
0.000
0.000
000
000
000
000
953
476
238
119
674
837
418
209
316
158
579
289
406
203
101
550
16
33
67
134
777
554
108
217
216
432
864
728
24
25
26
27
0.000
0.000
0.000
O. 000
000
000
000
000
059
029
014
007
604
802
901
450
644
322
161
580
775
387
193
596
847 656 25
923 828 125
268
536
1 073
2 147
435
870
741
483
456
912
824
648
28
29
30
31
0.000
0.000
O. 000
0.000
000
000
000
000
003
001
000
000
725
862
931
465
290
645
322
661
298
149
574
287
461
230
615
307
914
957
478
739
062
031
515
257
5
25
625
812 5
294 967
589 934
179869
359 738
296
592
184
368
32
33
34
35
0.000
O. 000
O. 000
0.000
000
000
000
000
000
000
000
000
232
1116
058
029
830
415
207
103
643
321
660
830
653
826
913
456
869
934
467
733
628
814
407
703
906
453
226
613
4
8
17
34
25
125
562 5
781 25
390 625
695 312 5
25
125
562 5
281 25
Reference Tables - 1
Table of Non-Parity
'• Flexowriter Codes
C~ARACTER
OCTAL CODE
UPPER
LOWER
IN
ON
CASE
CASE
COMPUTER
TAPE
"
A
B
c
0
E'
F
G
H
I
J
K
L
M
N
0
p
Q
R
s
T
u
A
B
C
0
E
F
G
H.
I
J
K
L
M
N
0
P
Q
R
S
T
U
v
w
x
V
y
Y
z
..
.)
'#
$
%
,
&
*
(
W
X
Z
0
1
2
3
4
5
6
7
8
9·
0
10
?
11
I
12
_.
!
=
,
.
+
LOWER CASE
UPPER CASE
TAB
SPACE
BLACK
RED
C!RETURN
PUNCH ON
PUNCH OFF
NON PRINT
PRINT RESTORE
STOP CODE
TAPE FEED
61
62
63
64
65
66
67
70
71
41
42
43
44
45
46
47
50
51
22
23
24
25
26
27
30
31
20
1
141
142
143
144
145
146
147
150
151
101
102
103
104
105
106
107
2
2
3
4
5
6
7
10
11
52
53
34
3
4
5
6
7
10
33
73
21
40
72
74
36
00
12
54
56
250
244
230
224
13
77
Reference Table s - 2
Table of Powers of 8
8n
1
8
64
512
4 096
32 768
n
8- n
0
1
2
3
4
5
1.0
O. 125
0.015
0.001
O. 000
0.000
625
953 125
244 140 625
030 517 578 125
110
111
42
43
44
45
46
47
50
51
40
1
11
112
113
54
53
153
41
100
152
1.54
56
00
12
114
116
·
·
·
·
13
157
!
Table of Equivalent Revolver Locations
KU
U
jl.
~4
9b
RIb
Ib
_4~_
tsU
J.ll.
Rl
1
33
65
81
11~_
l
_b~
18
ts~
ll~
3
4
5
35_
35
36
37
49
5U
R3
R4
R5
R6
R7
RS
R9
RIO
Rll
R12
Rl3
R14
R15
19
51
ts..:s
ll~
lU
7U
~~
IH
11
. 11 ts
7
39
4u
. .~7
~
J~
9
' 1U
41
4t.
71
7t.
7..:s
74
52
53
54
55
84
85
j~
R17
R18
R19
R20
R21
R22
R23
R24
17
Rl
97
98
99
11
12
..!3
J5
6
13
14
'15
44,
45
46
,47
67
68
_69
J~
77
78
79
100
101
102
103
104
105
lOb
21
22
(23
24
Rl5
Rlb
l5
:>b
57
GO
5~
107
108
R2
R28
_':7.
109
1 ro
III
Rl9
28
·l.9
R30
..:su
1\3,1
31
' 59
DU
b1
b2
03
~~
1 ;GU
ts'l
,l!
IV
Il
It.
,('..$
~3
l('!)
~4
~~
(,~
(,4
12b
_l~J
TABLE OF R W -300 INSTRUCTIONS
Standard Inst. Format
Instruction Time
Operation
Code
Description of Operation
(A)+(M) .... A
ADD:
(A) - (M) .... A
SUBTRACT:
(A) X (M) .... (A,B)
MUL TIPLY:
(A) / (M) .... (A), remainder B
DIVIDE
(M) .... A
LOAD A:
(M) .... B
LOAD B:
LOAD A NEGATIVE: - (M) .... A
(A) .... (M)
STORE A:
(B) .... (M)
STORE B:
TRANSFER NEG: If (A) <0, Oprnd Add ..... I'll
TRANSFER OVERFLOW: If O.F., Oprnd Add ..... I'll
TRANSFER ZERO: If (A)= 0, Opmd Add ..... I'll
COMPARE MAGNITUDE: If I(A) I - I (M)
< 0; Add nn to NI Sector Address
(A)@(M) .... A
EXTRACT:
(A)e (M) .... A
MERGE:
STOP: Stop; CI .... NI on RESUME
NO OPERATION: CI .... I'll
SHIFT: (A) .... , (A) +- , (A,B) +Operand Track
Variations
Address
I
00·15
16·31
48·63
SWITCH:
Operand Track
Address
00·15
16.31
32·47
48·63
DIGITAL
Operand Track
Address
Alpha
Dec.
A
S
M
D
LA
LB
LN
SA
SB
TN
TF
TZ
25
24
16
26
29
07
21
30
20
09
10
CM
11
15
EX
MG
SP
NO
SH
05
31
00
03
01
CI ..
Oprnd
{word times}
. Total Time
CI .. HI
{word times}
3
3
3
3
3
3
3
4
4
6 or 7
6 or 7
6+ nn
6+ nn
5
5
5
6
6
4 or 5
4 or 5
4 or 5
5 or 7
00
00
nn
nn
00
00
00
00
00
00
I 00
I 00
Inn
5
5
4
4
I
I
I
I
4+ nn
4+ nn
4+ nn
Inn 00·00
I nn 16·00
Inn 48·00
101 TT-SS
I 01 TJ·SS
I 01 TT·SS
5
5
5
5
I 0000·00
i 00 16·00
i 00 32·00
10048·00
i 02
102
I 02
I 02
TT·SS
TT.SS
TT·SS
TT.SS
I
I
i
I
I
I
i
I
TT·SS
TT·SS
TT·SS
TT·SS
·
··
3
3
3
·
·
·
(A) right nn plac811
(A) left nn places
(A, B) left nn places
SW
·
02
·
·DG
TT·02
*
OP NIA
TT·SS
TT·SS
TT·SS
TT.SS
TT·SS
TT-SS
TT·SS
TT·SS
TT.SS
TT·SS
TT.SS
TT·SS
TT·SS
00 TT·SS
00 TT.SS
0000.00
00 TT~SS
I
I
I
I
I
25
24
16
26
29
i 07
I 21
I 30
I 20
109
I 10
111
I 15
TT·SS
TT-SS
TT.SS
TT·SS
TT·SS
TT·SS
TT·SS
TT·SS
TT·SS
TT·SS
TT.SS
TT.SS
TT·SS
I
I
I
I
TT·SS
TT·SS
TT·SS
TT·SS
05
31
00
03
06
5
5
TA
.
6
·
6
0000·00
0004·00
07 32-00
1836.00
06
06
06
06
22
.
n:ro-
TT.03
EXOPA
Variations
Output to FLex
1 bit Outputs
Input from Flex
1 bit Input.
MAGNETIC TAPE ADDRESS *
Operand
Address
Variations
Read ComEuter: (TK TT) .... Buffer
TT.07
TT·OS
TT·Ol
TT.06
2nd word
Variations
(A) .... (B)
(B) .... (A)
(A)-(B)
0 .... (A,B)
00
04·31
32
36·63
TT·04
1st word
Write Computer: (Buffer) .... TK t;
t = 0 selects TK 14
t= 1 selects TK 15
Read Tape: (1 tape Block) .... Buffer
Write Tape: (Buffer) .... (1 tape Block)
Rewind: Rewind tape unit u to start
Backspace: Backspace tape unit u
1 block
Search Forward: Search forward for
key block
Search Reverse: Search reverse far
key block
134 min •
262 max.
5
I tu TT·10
I 22 TT·SS
I tu TT·04
I 22 TT·SS
5
5
5
i tu TT·07
I tu TT·05
i tu TT·01
i 22 TT·SS
I 22 TT·SS
5
I tu TT·06
i 22 TT·SS
5
I tu TT·03
I 22 TT·SS
5
I tu TT.02
I 22 TT·SS
I 22 TT·SS
NOTE: Mag tape Instruction times
assume tape unit I s ready
LEGEND:
CI Current Instruction
Of! Operation
Rn Revolver location n
NI Next Instruction
EX Execution Code
Magnetic Tape Unit u
u
,Add.
A
B
Address
A.regl~ter
B.regllter
Oprnd.
( )
OPA
NIA
Operand
Contents of
Operand Address
Next Inst. Address
. Reference Table s - 3
10.4 states 1, 2, 3, and 4
DIGIT·
STATE
INSTR.
TDfES
1
All
1 - 1
8 - 13
19
1 - 18
1.9
2
All
1 - 13
14 - 18
1 - 18
19
3
All
1 - 13
G
1 - 5 "'
14 - 18
1 - 18
1 - 18
l~OI
6 - 18
19
19
14 - 15
11 - 1 3 \
19
19
11- 19 9,10
4
1 - 8,15,16 1 - 1
9,10 1 - 7
1 - 8,15,16 19
9,10 19
11 - 13
11 - 19
All
14 (00)
All Instructions
DESCRIPTION
Search for equality between Nr and 'Sector No.
Sect. No.
El = o. If N = Sect. No. E1 = 1
Shift N(TRK) - 4 M register M, -M6 • .N
tl3
goes to Ml and N8 to ~
If E1 = 0
stay in State 1
If' ~ = 1
Go to State 2
A, and B registers recirculat1mg (20 bits)
Y, C do not recirculate.
Set El = 1, Set ZIt = 1
Put operand address (OSR) into Y regist~r
Kl'
Shift EX. Ttme----. P flip-flops (~l - P5)(El8 - E14 )
A and B registers recirculating ,(20;bits)
Nand C do not recirculate
Go to St. 3
GSR ---+ Nw (Next lnstr.)
Shift P Register----&> 0
(Ex. Time -.-.0)
.
w
~
P Reg. (PI - P )
5
A and ~ 20 bits recirculate
Y Recirculate
C Recirculate
Go to Bt 4, j f FT = 1
Go to st. lJ
GSR (Instr. Code)
Go to St. 5, if FT
=0
o ........ El
Search for equality between Y and Sect. No. (R66)
Search for equality between Y and store Sect. No. (J9)
If ~ = 0 Stay in st. 4
It
= 1 Go to st. 5
I
It E' FT' (Record Error) I = 1 Go to st. 5
Go to St. 8
If Rm = 1
Go to St. 5
19
1 - 18
d17
A,B,Y,C,and N Recirculate.
o -II
-7-
El if all delays expired
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:05:29 08:47:02-08:00 Modify Date : 2010:05:29 11:12:56-07:00 Metadata Date : 2010:05:29 11:12:56-07:00 Producer : Adobe Acrobat 9.32 Paper Capture Plug-in Format : application/pdf Document ID : uuid:b465fccb-5fb8-43d4-9fe8-b8c106267952 Instance ID : uuid:2b0b58dd-f509-4803-872f-8e2a6c0cfed0 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 198EXIF Metadata provided by EXIF.tools