HPp; i st
/J.V ' • ( - '
INTERPRETER FOR THE SPC-12
6ENERAL AUTOMATION
COMPUTER
by
WALTER PATRICK ARMSTRONG, B.B.A
A THESIS
IN
MATHEMATICS
Submitted to the Graduate Faculty of Texas Tech University in
Partial Fulfinment of the Requirements for
the Degree of
MASTER OF SCIENCE
August, 1971
V iiiiMiiiriT 1 '
AeM- (øH^
73
fíJûJO
I am deeply indebted to Professor Harold W. Milnes
for his patience and direction of this thesis and to the
other members of my committee, Professors Truman 0. Lewis
and Thomas L. Boullion.
11
TABLE OF CONTENTS
ACKNOWLEDGEMENTS
I. INTRODUCTION
Description of the Computer .
The Problem
General Approach
Definitions and Terms . . . .
II. THE INTERPRETER
Table and Storage Design . .
Program Storage
Data Storage
Variable Table
Statement Number Table . .
Executive Routines
Macro Routines
General Macro Routine . .
PRECISION Macro
DIMENSION Macro
IF Macro
GO TO Macro
ADD Macro
DELETE Macro
HALT Macro
• • •
111
11
1
2
3
5
7
9
11
12
14
14
15
16
17
19
20
23
24
IV
READ Macro 27
WRITE Macro 28
CONTINUE Macro 30
END Macro 31
Stack Processor Routines 32
Arithmetic Routines 40
Supporting Routines 40
III. PROGRAMMING CONSIDERATION 42
Object Tapes 42
Starting the Interpreter 43
Types of Input 44
TABLES 47
1. INTERPRETER ROUTINES BY MODE LOCATION . . . . 48
2. INTERPRETER ROUTINES BY STARTING LABEL . . . 51
3. INTERPRETER ROUTINES BY TYPE 54
4. MISCELLANEOUS CONSTANTS 58
APPENDIX 62
A. INTERPRETER FLOW CHART 63
B. MEMORY MAPS 64
C. INTERPRETER ROUTINES 70
CHAPTER I
INTRODUCTION
Description of the Computer
The SPC-12 Automation Computer is manufactured and
sold by General Automation, Incorporated, 706 West Katella,
Orange, California, 92668. For a complete description of
the computer see the SPC-12 General Automation Computer
Reference Manual (number 88A00000A-A dated October, 1 9 6 8 ) .
The SPC-12 computer is five and one-half inches
high, seventeen and three-fifths inches wide, and twenty-
three inches deep including the enclosure, power supply,
and cooling. It weighs thirty pounds and operates on
115 volts , a.c .
SPC-12 computers have a basic package of two modes,
each mode containing 2048 bytes of core storage, with the
ability to add up to six additional modes. The Inter-
preter is designed for a computer with eight modes pro-
viding 16,384 bytes of storage.
Standard software associated with SPC-12 computers
•is the Conversational Assembly System (CAS) assembler.
CAS is a single pass symbolic assembly program which
contains the following instruction repertoire:
11 pseudo operation codes
8 skip instructions
12 arithmetic/logical instructions
4 register transfer instructions
8 shift instructions
9 control instructions
4 augmented memory addressing instructions
The SPC-12 computer offers a shared command concept
which permits savings of approximately twenty-five percent
in the amount of memory required for program operation.
A complete line of peripheral devices is available
for use with the SPC-12 computer. These include paper
tape equipment, card equipment, printers, and mass storage
devices. A Model 33 Teletype is the input/output device
available on the SPC-12 computer used to develop the
Interpreter.
The Problem
SPC-12 computers offer many advantages such as size,
speed, and reliability. There are some disadvantages asso-
ciated with the SPC-12 computers. First, assembly language
programming is the most difficult programming to master in
comparison with high level language programming such as
COBOL and FORTRAN. Producing and testing a program written
in CAS requires considerable time and patience. Anyone
encountering the SPC-12 computer for the first time would
also be forced to learn the CAS instruction repertoire.
Second, the SPC-12 is not a mathematically oriented
computer and requires arithmetic to be done in octal .
This requires the conversion of numbers to octal prior to
entering the program and all results are in octal . The
SPC-12 offers limited precision arithmetic routines and
is not capable of handling floating point arithmetic.
The problem was to prepare the Interpreter, a CAS
program, to accept a subset of the FORTRAN programming
language and to execute the FORTRAN program as it is
entered.
General Approach
The Interpreter is designed to accept and execute
a subset of the FORTRAN language placing as few limita-
tions as possible and, in some cases, expanding the capa-
bilities offered by FORTRAN.
Today's approach to the use of large high-speed
computers is to never stop the machine. This means all
programming, compiling, and executing are done on a remote
basis: hands-on time is rarely used.
The Interpreter is a change from today's approach.
The Interpreter is strictly a hands-on, execute-as-you-go
•type of approach to programming. This type of programming
necessitates the ability to add, delete, change, and
analyze the coding during the programming.
The Interpreter uses the FORTRAN syntax for the
arithmetic instruction and the GO TO, IF, CONTINUE, END,
and DIMENSION macros. There are modifications in the READ
and WRITE macros. The PRECISION, ADD, DELETE, and HALT
are new macros designed for the Interpreter type of think-
ing.
The overall logic f1ow of the Interpreter is outlined
in the Interpreter flow chart (Appendix A ) .
The Interpreter can be broken down into six main
categories:
1. Table and Storage design
2. Executive routines
3. Macro routines
4. Stack processor routines
5. Arithmetic routines
6. Supporting routines
Anyone using the Interpreter should have a working
knowledge of FORTRAN. There are many books available on
the description and use of the FORTRAN language, therefore,
no attempt is made to describe FORTRAN.
A detailed description of the logic and the proce-
dures used in each routine will be offered to clarify the
capabilities and limitations of the Interpreter.
Definitions and Terms
Computer will be used to describe the SPC-12 General
Automation computer.
Interpreter is the Interpreter for the SPC-12 General
Automation computer.
Program will be any program that is being executed by
the Interpreter.
TTY will represent the Model 33 Teletype used as the
input/output device for the computer.
Variable table is the memory locations used to store
the variables or constants used by the program.
Statement number is any number from 1 to 99999 in
columns 1--5 which are used for reference in the program.
Statement number table is the memory locations used
to store the statement numbers used in the program.
Arithmetic statement is any valid FORTRAN arithmetic
statement.
Stack is the memory locations used to store the oper-
and addresses and the arithmetic symbols used in processing
the arithmetic statement.
^ represents a space or blank character.
All routines will be referenced by their starting
labels (Tables 1, 2,and 3) and all storage locations by
their labels.
All addresses are referred to by the mode and the
octal address. The mode will be enclosed in parentheses.
CHAPTER II
THE INTERPRETER
Table and Storage Design
Program Storage
The description and layout of program storage is as
fol1ows:
LC I INST I NA LC I INST | NA
Where
LC represents the line counter number
associated with the instruction. The
line counter number, assigned by the
Interpreter, is printed adjacent to
the instruction and consists of the
numbers 001--999.
INST represents column 6 through the CR
character of the instruction to be
executed. The instruction must be
contained on one line of the TTY.
Continuations are not allowed. The
CR (carriage return) character is used
as the terminator for the instruction.
NA represents the address of the next
instruction to be executed by the
Interpreter.
Program storage and retrieval is accomplished by the
ZA routine. K# contains the starting address of program
storage, and K* contains the current address of program
storage. K$ contains the current address of program stor-
age prior to the current instruction being executed.
Addresses (2)4000 through (2)7777 are used to store
the instructions for the program. Column 6 through the
CR character of the instruction are stored; therefore, to
avoid wasted storage space,blanks should be kept to a
minimum.
El is the error condition if the program storage
capacity is exceeded or if the line counter exceeds 999.
Data Storage
The description and layout of data storage is as
fol1ows:
INTEGER F-P I EXP
Where
INTEGER is the number of bytes equal to the
precision used to store all integer
constants and integer variables.
8
F-P is the number of bytes equal to the
p r e c i s i o n used to store all f l o a t i n g
point c o n s t a n t s and floating point
v a r i a b 1 e s .
EXP is one a d d i t i o n a l byte used to store
the e x p o n e n t for all floating point
c o n s t a n t s and f l o a t i n g point v a r i -
a b l e s .
The length of each data storage entry is d e t e r m i n e d
by the program p r e c i s i o n (see P R E C I S I O N m a c r o ) . All data
is c o n v e r t e d to binary prior to s t o r a g e . Floating point
data will be n o r m a l i z e d to the right with a binary ex-
p o n e n t .
S t o r a g e l o c a t i o n K/ is the s t a r t i n g a d d r e s s of data
s t o r a g e , and A% is the next a v a i l a b l e a d d r e s s for data
s t o r a g e . Input data is c o n v e r t e d to binary by the CA
r o u t i n e and stored at the a d d r e s s in storage l o c a t i o n A%.
Data s t o r a g e uses two m o d e s , and the EN r o u t i n e is used
to a d j u s t the a d d r e s s in A% for a mode c h a n g e .
The a d d r e s s for data s t o r a g e will be a two byte
field as f o l l o w s :
A D D R E S S I M M M A D D R
BIT 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
BYTE 1 BYTE 2
' ^^'. -' rr-r ,- • "s^. rx
Byte 1
Bits 0--7 contain the low 8 bits of the data
storage address.
Byte 2
Bit 7
Bits 4--6
contains the Integer or floating
point indicator where 0 represents
integer and 1 represents floating
p 0 i n t.
contain the 3 bit octal representa
tion for the mode
(000 = mode 0,001 = mode 1, ---,
111 = mode 7 ) .
Bits 0--3 contain the high 4 bits of the data
storage address.
Addresses (1)4367 through (1)7777 plus (6)5000
through (6)7777 are used for data storage. The program
precision must be large enough to handle the numbers in
the program; however, execessive precision will result in
wasted storage.
E4 is the error condition when data storage exceeds
capaci ty.
Variable Table
The description and layout of the variable table is
as follows:
NAME : ADDR < NAME : ADDR < @ - . -
. '• . • • U . W Ji.) I ..ll^
10
Where
NAME represents the variable name or constant.
If the variable name is an array name,
the first entry for the name is an aster-
isk (*).
: is the terminator for the variable name
or constant.
ADDR represents the two byte field containing
the
integer or floating point indicator,
mode, and
address of storage location where the
value of the variable name or constant
is stored.
< is the terminator for each entry.
0 is the end-of-table symbol for the vari-
able table .
The variable table is built by the YK routine, and
the YM routine will search the variable table for a match.
The starting address of the variable table is in storage
location A*, and the current address is in A/. A< contains
the current address of the variable table prior to the
current instruction being executed.
The starting address of the variable table is estab-
lished at initialization, and the variable table uses
addresses to (6)5000.
n
11
Each entry is 4+L bytes in length where L is the
length of the variable name or constant. To insure maxi-
mum utilization of the Interpreter, variables should be
as short as possible.
E3 is the error condition when the variable table
is ful 1 .
Statement Number Table
The description and layout for the statement number
table is as follows:
STMT# : ADDR < STMT# : ADDR < (3
Where
STMT# represents the statement number assigned
to the instruction. Statement numbers
are stored in the table in ASCII code.
: is the terminator for the statement
ADDR
0
number.
represents the two byte field containing
the mode 2 address where the instruction
i s s 10 r e d .
is the terminator for each entry.
is the end-of-table symbol for the
statement number table.
12
The statement number table is built by the YA
routine, and the YG routine will search the statement
number table for a match. The starting address of the
statement number table is in storage location Y%, and
the current address is in Y$. Y= contains the current
address prior to the current instruction being executed.
Addresses (3)7174 through (3)7777 contain the
statement number table. Each entry is 4+L bytes in length
where L is the number of digits in the statement number.
To avoid filling the statement number table, statement
numbers should be assigned only to the instructions that
require a reference and the number should be as small as
possible.
E2 is the error condition when the statement number
table is full.
Executive Routines
The executive routine gets the next instruction to
be executed from the TTY or from program storage.
If the next instruction comes from the TTY, the
Interpreter will output five blanks and an asterisk
{]^\^\i\;í\i*) to tell the programmer to enter an instruction.
The instruction is read into a buffer, and column 1 through
column 65 are printed on the TTY. If the instruction is
longer than 65 characters, column 66 through column 72 are
read into the buffer and will be printed on the next line
",' ', m rií'Mí.
13
starting under column 7 of the instruction. Instructions
must be contained in columns 1-72 plus the CR (carriage
return) character.
A letter C in column 1 will identify the instruction
as a comment line and no execution will occur.
If the instruction is not a comment line, a line
counter number (001--999) is assigned to each line and
printed preceding the instruction.
If there is a statement number associated with the
instruction, it is placed in the statement number table.
Statement numbers may be from 1--5 digits and must appear
in columns 1--5 of the instruction. Embedded blanks do
not affect the value of the statement number.
For Example: the following are all statement
number 125:
1 2 3 4 5
1 2 5
1 2 5
1 2 5
1 2 5
6 7 8 9 - • •
The instruction is placed in program storage and
ready to be processed. Al1 instructions are processed as
they are entered unless there is a pending IF or GO TO.
rmmrnm^rr^^m
14
If the next i n s t r u c t i o n is from program s t o r a g e , the
instruc t i o n is moved to the buffer and is ready for pro-
c e s s i n g .
Each i n s t r u c t i o n that is ready to be processed is
analyzed to d e t e r m i n e if the instruction is an arithmetic
instruction or a macro s t a t e m e n t . The presence of an
equal sign (=) in the instruction will signal that this is
an a r i t h m e t i c instruction and exit is to the Stack Pro-
cessor r o u t i n e . All other instructions will exit to the
Macro r o u t i n e .
Macro Routines
General Macro Routine
The general macro routine is a guiding r o u t i n e . It
analyzes the statement for the type of macro and will exit
to one of the following m a c r o s :
PRECISION
DIMENSION
IF
GO TO
ADD
DELETE
HALT
READ
WRITE
CONTINUE
END
If any statements other then the above macros are
encountered, exit will be to error E5.
,•/»"• ;->••.i-»pwiAiij,iii
15
PRECISION Macro
The general form of the PRECISION statement is
1 2 3 4 5 7 8 9
P R E C I S I O N ^ m
Where
PRECISION identifies the type of statement.
j6 represents one or more blanks used
as a delimiter.
m is an unsigned integer number from
1 to 10 which represents the number
of bytes (8-bit fields) that will
be reserved for each variable or
constant in the program. Each
floating point variable or constant
will be assigned an additional byte
for the exponent.
The PRECISION statement must be the first instruction
in the program. If the PRECISION is missing, the program
precision will be set to three. The program precision is
used to build work areas and establish the start of the
variable table.
For a guide in establishing the precision, there are
approximately two significant decimal digits in each byte
of precision.
jí'«jw«^''LMjiyi j
Examples:
DIMENSION Macro
16
PRECISION 3
PRECISION 10
PRECISION 6
The general form of the DIMENSION statement is
1 2 3 4 5
n n n n n
7 8 9 • •
D I M E N S I O N j í V ^ (na^ ,nb^) ,
V^ína^^nb^) '"--»^^^ ( na^ ,nb^)
Where
nnnnn
DIMENSION
V^, — , V ^
represents a statement number from
1 to 5 digits. It may be used, at
the programmer's option, for con-
venience in following or ordering
the program.
identifies the type of statement.
represents one or more blanks used
as a delimiter.
represents variable names which are
assigned to be the names of arrays.
"" ', U:Ui!Wl'. •'•U
17
na^, — ,nb^ represent unsigned integer numbers
which specify the number of stor-
age spaces to be reserved for the
array. One or two numbers are
used depending upon whether the
array is a one- ortwo-dimensional
array.
The DIMENSION statement must precede any reference
to the array name. The rules for writing a variable name
to be assigned as the name of an array are the same as the
rules for writing a variable name to represent a single
quanti ty.
Examples :
DIMENSION A(4,12) ,B(100),K(40)
123 DIMENSION NAME (10000)
DIMENSION XRAY(400,30),YRAY(400)
IF Macro
The general form of the a.rithmetic IF statement is
1 2 3 4 5
n n n n n
7 8 9 -
I F (expr) n, n^ n-.
> .•iJiiJi.lMli
Where
18
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement is designated in a GO TO or
an IF statement. Otherwise, it may
be used, at the programmer's option,
for convenience in following or order-
ing the program.
IF identifies the type of statement.
expr represents any valid arithmetic expres-
sion which is evaluated to find its
current value.
n, represents the number of the statement
which will be executed next if the
current value of expr is less than zero.
np represents the number of the statement
which will be executed next if the
current value of expr is equal to zero.
n^ represents the number of the statement
which will be executed next if the
current value of expr is greater than
zero.
The arithmetic expression enclosed in parentheses is
calculated, and the result is tested for positive, negative,
or zero. n-j^n^, or n,, is selected according to the result,
and the IF statement routine will exit to the GO TO Macro.
Examples:
60 TO Macro
19
IF(A(4,12)-B(3)+12.6)14,27,33
25 IF(K)12,12,15
IF(XRAY(400,I)-100.0)12,45,55
137 IF(I-1000)5,5,7
The general form of the unconditional GO TO state-
ment is
1 2 3 4 5
n n n n n
7 8 9 • • •
G 0 T 0 n 1
Where
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement is designated in a GO TO or
an IF statement. Otherwise, it may
be used, at the programmer's option,
for convenience in following or order-
ing the program.
GO TO identifies the type of statement.
n^ represents the statement number of the
statement which is to be executed next
" .. ; ..i.-w.iu^ii»
20
The GO TO statement is used to alter the logical flow
of execution. If the statement number n, is an existing
statement number, the Interpreter will jump to the existing
instruction and execution will continue. If the statement
number n, is not present, the Interpreter will read-in, but
not execute, additional instructions until the statement
number n, is found, and then execution will continue.
Examples :
GO TO 45
127 GO TO 16
ADD Macro
The ADD macro is a new macro designed for the Inter-
preter. The general form of the ADD statement is
1 2 3 4 5 6 7 8 9 • • •
A D D )ô mmm
Where
ADD identifies the type of statement.
^ represents one or more blanks used as a
d e 1 i m i t e r
mmm represents a line counter number of from
1 10 3 d i g i t s .
•,rmui •..ijM'f-
21
After entering ADD mmm, the Interpreter will call
for the instruction to be added. The next instruction
that is entered on the TTY will be added immediately
following the instruction with the line counter number
mmm. The added instruction may be any allowable instruc-
tion and may contain a statement number.
The ADD statement can be used to add statement num-
bers to existing instructions by adding a CONTINUE state-
ment containing the statement number prior to the instruc-
tion. Adding a GO TO statement will allow the programmer
to add or delete blocks of coding.
The ADD statement may be used any time the Inter-
preter is calling for an instruction and is not stored in
program storage.
Examples:
The following instructions are entered:
001 * PRECISION 4
002 * K=0
003 * J=K*3
008 * ADD 2
009 * 5 K=K+1
.' ; j ''mr^^^^f^.
22
The program will now be as follows:
001 * PRECISION 4
002 * K=0
009 * 5 K=K+1
003 * J=K*3
The following instructions have been entered
001 * PRECISION 3
002 * ISUM=0
003 * 1=1
004 * IF(I-1000)5,5,6
005 * 5 ISUM=ISUM+1
006 * 1=1+1
At this time the programmer discovers that
the IF statement must have a statement num-
ber to complete the loop. Enter the follow-
ing instructions:
007 * ADD 3
008 * 4 CONTINUE
009 * GO TO 4
You will now have a loop summing the num-
bers from 1--1000.
mfnf^mv'
23
DELETE Macro
The DELETE macro is a new macro designed for the
Interpreter. The general form of the DELETE statement is
1 2 3 4 5 7 8 9 • • •
D E L E T E bJ mmm
Where
DELETE identifies the type of statement.
tí represents one or more blanks used as
a d e 1 i m i t e r.
mmm represents a line counter number of
from 1 to 3 digits.
After entering DELETE mmm, the Interpreter will
delete the arithmetic instruction or the macro statement
with the line counter number mmm. If the delete instruc-
tions has a statement number associated with it, the
statement number will be retained in the statement number
table and must not be reused or referenced again in the
program.
The DELETE statement may be used any time the Inter
preter is calling for an instruction and is not stored in
program storage.
^ ; u vMmmr^tmmmm
24
Examples :
DELETE 4
DELETE 004
DELETE 04
Any of the above will delete the instruc-
tion associated with the line counted number
004.
HALT Macro
The HALT macro is a new macro designed for the
Interpreter. The general form of the HALT statement is
1 2 3 4 5
n n n n n
7 8 9 • • •
H A L T (m,I)
Where
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement number is designated in a
GO TO or an IF statement. Otherwise,
it may be used, at the programmer's
option, for convenience in following
or ordering the program.
HALT identifies the type of statement.
*•*"'"• ' j .LViyjn^m
25
m represents the index number.
I represents the index variable name.
The index variable may be any vari-
able or array name.
The HALT statement will allow the programmer to
stop execution of the program at various points in the
program and at prescribed intervals.
When the HALT statement is encountered, the Inter-
preter checks the value of the index variable I against
the index number m. If the index variable is an integer
multiple of the index number, the halt will occur; other
wise execution will continue.
When the halt occurs, the Interpreter will output
two blanks and three asterisks ({á|5***) to signal the pro
grammer that a halt has occurred and is awaiting instruc
t i 0 n .
At t h i s t i m e t h e f o l l o w i n g i n s t r u c t i o n e n t r i e s a r e
al 1 owed:
vname; any valid variable or array name may
be entered followed by a semicolon.
The value of the variable or array
entry will be written out.
nnnnn; a 1 to 5 digit statement number may
be entered followed by a semicolon.
• ^ w —j iwmn L i j i ^ • " - . - • • ' • • • u u i
26
mmm"
Execution will continue with the
statement associated with the state-
ment number nnnnn. If the statement
number is not existing, the Interpre-
ter will call for, but not execute,
additional instructions until the
statement number is found, and then
execution will continue.
a 1 to 3 digit line counter number
may be entered followed by an asterisk
The statement associated with the line
counter number mmm will be deleted and
execution will continue.
a colon will cause execution to
conti nue.
Examples:
HALT (4,1)
The halt will occur when the value of I
is 4,8,12,16, - - -.
25 HALT(12,K(6,2))
The halt will occur when the value of
the array entry K(6,2) is 12,24,36,48, - - -.
27
HALT (1,1)
The halt will occur for every value of
I.
137 HALT (1 .1 ,A)
The halt will occur when the value of A
is 1.1, 2.2, 3.3, 4.4, - - -.
READ Macro
The READ statement is a modified FORTRAN statement.
The general form of the READ statement is
1 2 3 4 5
n n n n n
7 8 9 • • •
R E A D tí List
Where
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement is designated in a GO TO or
an IF statement. Otherwise, it may be
used, at the programmer's option, for
convenience in following or ordering
the program.
READ identifies the type of statement.
]é represents one or more blanks used as
a s d e 1 i m i t e r.
lyfcii '^"vm^m^^mgm
28
List represents a series of variable or
array names separated by commas. The
maximum number of names for each READ
statement is 15.
When the READ statement is encountered, the Inter-
preter will output the line counter number associated
with the READ statement. This will identify which READ
is currently being executed. The Interpreter will output
two blanks and two asterisks (^tí**) to signal the pro-
grammer to enter data. A carriage return (CR) or comma
(,) is used as a terminator for each data entry. The
data is entered and stored in the variable or array names
from the list. Data will be called for until the list is
exhausted, and then execution will continue.
Examples:
READ A
45 READ A(J,K),B(J) ,M,L
READ XRAY(400) , Y R A Y ( I O O ) , - - -
WRITE Macro
The WRITE statement is a modified FORTRAN statement.
The general form of the WRITE statement is
•i.i ••••'f^'^'r^mmmmm'mm
29
1 2 3 4 5
n n n n n
7 8 9 • • •
W R I T E (d) List
Where
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement is designated in a GO TO or
an IF statement. Otherwise, it may be
used, at the programmer's option, for
convenience in following or ordering
the program.
WRITE identifies the type of statement.
d is an integer number from 1 to 65
which represents the number of digits
to be printed out for floating point
numbers. This number is not used for
integers but must be present.
List represents a series of variable or
array names separated by commas. The
maximum number of names for each WRITE
statement is 15.
When the WRITE statement is encountered, the Inter-
preter will write out the value of the variable or array
names from the list. When the list is exhausted, execu-
t i 0 n w i 11 c 0 n t i n u e .
30
Integer data is written out starting with the first
significant digit. Floating point data is written in
standard position with a signed exponent. The number of
digits to print does not include the decimal point nor the
exponent.
Examples:
WRITE (6) A
25 WRITE (30) A(4,7),B(7),XRAY(K),L ,M ,N
WRITE (8) A(J,K) ,B(J),J,K,XRAY(400),- - -
CONT NUE Macro
The general form of the CONTINUE statement is
1 2 3 4 5
n n n n n
Where
nnnnn
6 7 8 9 • • •
C 0 N T I N U E
represents a statement number of
from 1 to 5 digits. It is required
if the statement is designated in a
GO TO or an IF statement. Other-
wise, it may be used, at the pro-
grammer's option, for convenience
in following or ordering the program
. "."!.. ^ " • ' .fJilPP»¥^
31
CONTINUE identifies the type of statement.
The CONTINUE statement is a dummy instruction and
causes execution to continue.
Examples:
CONTINUE
127 CONTINUE
END Macro
The general form of the END statement is
1 2 3 4 5
n n n n n
6 7 8 9 -
E N D
• •
Where
nnnnn represents a statement number of from
1 to 5 digits. It is required if the
statement is designated in a GO TO or
an IF statement. Otherwise, it may be
used, at the programmer's option, for
convenience in following or ordering
the program.
END identifies the type of statement.
• II ) •^^p^ig "
32
The END statement is the last entry in the program.
After receiving the END statement, the Interpreter will
output a carriage return and 16 line feeds (CR,LF, ,LF)
The Interpreter will be restarted calling for the first
instruction of a new program.
Examples:
END
125 END
Stack Processor Routines
The stack processor routines analyze the arithmetic
statements and expressions to decide the type of arith-
metic to be done. Arithmetic statements and expressions
must meet the requirements of FORTRAN.
These statements provide a means of expressing
numerical constants and variable quantities.
Constants
There are two types of constants that can be used
in the Interpreter: integer (fixed point) and real
(floating p o i n t ) .
Integer constants may consist of one or more decimal
digits written without a decimal point; the constant may
»"<IWI"~Í™
33
be signed or unsigned. The maximum number of decimal
digits is determined by the program precision.
Examples :
307
+ 17
-805
23456789
A real constant may consist of one or more decimal
digits, with a decimal point at the beginning, at the end
or between two digits. A real constant may be followed
by a decimal exponent that is written as the letter E
followed by an integer constant. The field following the
letter E must not be blank; it may be zero. The integer
exponent may be signed or unsigned.
The number of significant decimal digits will vary
w i t h t h e p r o g r a m p r e c i s i o n .
Examples:
1 .
15.625
18.21E-3
9.27E+12
8.61E7
34
V a r i a b 1 e s
A v a r i a b l e is specified by its name and type. Two
types of v a r i a b l e s are p e r m i s s i b l e : integer and real.
A v a r i a b l e name consists of one or more alphameric char-
a c t e r s , the first of which is a l p h a b e t i c . A variable
name may contain any c h a r a c t e r other than the characters
used as d e l i m i t e r s . Supporting routine ET (Check For
D e l i m i t e r ) lists the d e l i m i t e r c h a r a c t e r s .
An integer variable must begin with the c h a r a c t e r
I, J, K, L, M, or N.
A real v a r i a b l e must begin with any c h a r a c t e r other
than I , J, K, L, M, or N.
E x a m p l e s :
Integer variables
I
JOB
MAXl
Real v a r i a b l e s
A
B
COST
AMAXIMUM
X12
35
Subscripts
A variable can represent an element of a one- or
two-dimensional array of quantities if the programmer
appends one or two subscripts, respectively to the vari-
able name. The value of the subscript determines the
member of the array to which reference is made.
The subscript may be any integer expression; real
quantities may not appear in subscripts.
A subscripted variable consists of a variable name
followed by parentheses enclosing one or two subscripts
that are separated by commas.
Examples:
A(l)
K(4)
B(J*8+K,K-2)
MAX(J,K)
During execution the subscript is evaluated so that
the subscripted variable refers to a specific member of
the array. If the value of the subscript is greater than
the corresponding array dimension, the reference will be
to the succeeding data entries. The size of each array
must be specified by the DIMENSION statement before the
first appearance of the subscripted variable.
36
Subscripted variables must be dimensioned.
Arrays are stored in row order in increasing stor-
age locations with the last of their subscripts varying
most rapidly and the first varying least rapidly.
Examples:
A two-dimensional array A(m,n) is
stored as follows-from the lowest
storage location to the highest:
A ( l , l ) , A ( l , 2 ) , ---, A ( l , n ) ,
A ( 2 , l ) , A ( 2 , 2 ) , ---, A ( 2 , n ) , ---,
A ( m , l ) , A ( m , 2 ) , ---, A(m,n)
Expressions
An expression is a sequence of constants, variables
(subscripted or non-subscripted) , and arithmetic opera-
tion symbols that indicate a quantity or series of cal-
c u 1 a t i 0 n s.
The arithmetic operation symbols +, -, *, /, and **
denote addition, subtraction, multiplication, division,
and exponentiation respectively.
An expression must be of the same type: integer or
real. Mixed expressions are not allowed.
Quantities can be preceded by a + or -, which does
not affect the type of expression. Also, expressions can
-W—^—CTWMl
37
be connected by any of the arithmetic operators (+, -,
*, /) to form other expressions provided no two operators
appear consecutively.
Any expressionmay be enclosed in parentheses.
Parentheses may be used to specify the order in which the
operations in the expression are to be computed. Where
parentheses are omitted, the hierarchy of operations is
1. Exponentiation (**)
2. M u l t i p l i c a t i o n and Division (*and/)
3. Addition and Subtraction (+and-)
Examples of expressions:
-4.3
A+B-C
(A+((B/C)*D)-3.7)
(J+6)*(K-3)/(l+M+J0B)
Assignment Statements
The equal sign (=) in an arithmetic statement speci
fies replacement or assignment rather than equality.
Thus, A=2.0 means assign the quantity 2.0 to A.
The general form of an arithmetic assignment state-
ment is
a = b
|i,aiH.pii^ »B
38
Where
a is any type of variable (subscripted or
n o n - s u b s c r i p t e d ) , and
b is an expression.
If the variable on the left and the expression on
the right are the same type, the computation is done in
that type.
If the variable on the left and the expression on
the right are different types, the following rules hold
for the manner in which the expression is evaluated and
the result stored.
1. If the v a r i a b l e on the left is integer and the
expression on the right is real , the result is computed
as real , truncated to the largest integer it c o n t a i n s ,
and c o n v e r t e d to integer.
2. If the v a r i a b l e on the left is real and the
e x p r e s s i o n on the right is integer, the result of the
e x p r e s s i o n is computed as integer and is converted to
real .
E x a m p l e s :
A = B
R e p l a c e A by the current value of B.
J=A
T r u n c a t e A to an i n t e g e r , convert it to
an integer c o n s t a n t , and store it in J.
39
A = J
C o n v e r t J to a real v a r i a b l e and store it
in A.
1 = 1 + 1
Add 1 to the value in I and store the
r e s u 11 i n I.
MAX=A*B
Multiply the value in A by the value in B,
truncate the results to an integer, convert
to an integer constant, and store it in MAX.
A = 3*B
Not permitted. The expression is mixed
for multiplication, i.e., it contains both
a real variable and integer constant.
A=B*C+D/E
Multiply the value in B times the value in
C. Divide the value in D by the value in E.
Add these two computed values and store the
result in A.
A=(B*C)+(D/E)
Same as previous example.
The above logic is handled by the stack processor
routines (Appendix C ) . The stack processor routines
examine the arithmetic statement, set up the arguments,
decide on the type of arithmetic to be done, and link to
the proper arithmetic routine to perform the calculations.
I . J JIIJ.I^M
40
Arithmetic Routines
Appendix C contains the program listings of the
routines used to perform all arithmetic calculations .
Exponentiation is not available. Documentation is pro-
vided in each of the program listings.
The arithmetic routines are divided into the follow
ing types:
Add Integer
Subtract Integer
Normalize
Add Floating Point
Subtract Floating Point
Mul ti ply
D i V i d e
Input Conversion
Output Conversion
The add, subtract, multiply, and divide routines
require three arguments with the following general form
Argument 3 = Argument 1 (oper) Argument 2
Where
oper is the proper arithmetic operation
Supporting Routines
All supporting routines are documented and listed
in Appendix C. These supporting routines are designed
m^w, •! i-m^m^mmmmm
41
to perform various functions for the Interpreter. Gener-
ally, any function that is repeated several times in the
Interpreter is built in a supporting routine.
Since all supporting routines are documented and
self-explanatory, no attempt is made to list and explain
all supporting routines. However, the following routine
should be mentioned.
Error Routine
The error routine is entered when one of several
errors are encountered during the interpreting of the
program. Entrance to the error routine is to one of
the following starting labels: El, E2, E3, E4, E5, E6
or E7. These labels correspond to the error message
that is printed out.
The following are the error messages that are
printed out:
Message
El
E2
E3
E4
E5
E6
E7
M e a n i n g
Program too long
Statement number table full
Variable table ful1
Data storage full
Invalid macro instruction
Invalid arithmetic instruction
Other
The error routine restores the status prior to the
current instruction which caused the error.
CHAPTER III
PROGRAMMING CONSIDERATIONS
The primary purpose of this chapter is to offer a
condensed summary of operating features of the Interpreter,
Object Tapes
Full Load
The full load object tape contains the entire Inter-
preter program. This load will be necessary to initially
load the Interpreter or when modes 3, 4, or 5 have been
destroyed.
Short Load
The short load object tape contains the mode 0 and
mode 1 parts of the Interpreter. This will facilitate
reloading the Interpreter if modes 3, 4, and 5 have not
been destroyed.
Variable Table Load A
This is the standard load associated with the Inter-
preter. It allows variables and integer constants to be
placed in the variable table.
42
43
Variable Table Load B
This object tape will allow variables, integer con-
stants, and floating point constants to be placed in the
variable table. Any floating point constant with a plus
(+) or minus (-) sign after the E will not be placed in
the variable table. This load should be used if there is
a large repetition of floating point constants.
Variable Table Load C
The object tape will only allow variables to be
placed in the variable table. It will increase the amount
of data storage necessary and should be used only if error
E3 (variable table full) is encountered.
Starting The Interpreter
To start the Interpreter, the program must be loaded
using the full load or the short load. All object tapes
contain the bootstrap format to facilitate loading. After
the Interpreter is loaded, the following sequence should
be used:
RUN/IDLE SWITCH=IDLE
REGISTER P=210
EN ER
LOAD
REGISTER P=2607 (This is start minus one)
ENTER
RUN/IDLE SWITCH=RUN
STEP
The Interpreter will now be ready to use.
'•mi—^^iimmÊm
44
After the Interpreter has been loaded and the
machine power cut off, restarting is as follows:
RUN/IDLE SWITCH=RUN
STEP
The Interpreter is ready to use.
Type of Input
There are three basic types of input for the Inter-
preter.
1. Instructions
2. Data
3. Halt Information
The Interpreter will call for the input. To recog-
nize the type of input being called, the following scheme
i s used :
one asterisk (*)--Instruction
two asterisks (**)--Data
three asterisks (***)--Halt Information
Instructions
The instruction may be either an arithmetic instruc
tion or a macro statement.
• •••4H«<II9MH||M|
45
Arithmetic instructions follow the FORTRAN syntax.
Arithmetic is based on the following hierarchy:
Inside parentheses
Exponentiation (not available)
M u 11 i p 1 y 0 r d i v i d e
Add or subtract
Left to right
Array subscripts may be any valid expression. Sub
scripted subscripts are not allowed.
Variable and array names may be any length. To
designate an integer variable or array name the first
letter must be I, J, K, L, M, or N. All other starting
letters designate floating point variable or array names
For a description of the macro statements see
Chapter II.
Data
Data must be entered with no delimiters
Integer data is entered as a signed number with no
decimal point. If the number sign is missing, the data
is treated as positive.
Real or floating point data must be entered with a
decimal point and may contain a signed exponent. If the
number and/or the exponent has no sign, they are treated
as positive. The range of numbers for the Interpreter
"!• •' '-'m ''"^"mr^mmmmfgtm
46
25 depend on the precision, but ±10 can be handled. Float-
ing point data is entered using the FORTRAN format: i.e.,
4.21E±2.
Halt Information
See Chapter II-Halt macro
TABLES
1. INTERPRETER ROUTINES BY MODE LOCATION
2. INTERPRETER ROUTINES BY STARTING LABEL
3. INTERPRETER ROUTINES BY TYPE
4. MISCELLANEOUS CONSTANTS
47
•"!W~?^"^W»P»"
48
TABLE 1
INTERPRETER ROUTINES BY MODE LOCATION
MODE LOCATION STARTING
START END LABEL
DESCRIPTION
0
0
0
0020 0117
0477 0736
0737 0756
0757 0775
0776
1013
1041
1077
1161
1356
1467
1653
2040
2224
2350
2451
2610
2641
1012
1040
1076
1160
1355
1466
1652
2037
2223
2347
2450
2607
EW
EY
GT
GV
GO
ET
GG
GA
YK
YM
ZA
ZF
EN
El ,
Z
ZY
---,E7
(0)2644 2703 ZZ
Shared Bytes
Constants
Check for Integer Variable
Check for Constant
Zero Argument
Negate Argument
Check Argument for +,-,0
Check for Delimiter
Shift Right
Shift Left
Build Variable Table
Search Variable Table
Move Instruction
Move Data
Check Address Crossing Mode
Error Routine
Entry Point for Interpreter
Return Point for Precision
Macro
Return Point for All Routines
•mmmmmmmmm
49
TABLE 1-Continued
MODE LOCATION STARTING
START END LABEL
DESCRIPTION
(0)2704 AA
(0)2714 2752 AB
(0)2753 3062
(0)3063 3216 ZX
(0)3217 3362 UG
(0)3363 3364
(1)4000 4366 FO
(3)4000 4626 lA
(3)4627
(3)4744
(3)5021
(3)5524
(3)5627
(3)5730
(3)6011
(3)6435
4743
5020
5523
5625
5727
6010
6434
6460
(3)6461 6620
MA
MV
OA
NJ
NA
UA
QA
MS
YA
- UB
- MT
Stack Processor Entry From
Arithmetic Instruction
Stack Processor Entry From
Macro
Miscel1aneous Transfers
Transfer To All Arithmetic
Routi nes
Part of ADD & DELETE Macro
Additional Constants
2nd Part of Output Conver-
sion
Interpreter Executive
Routine
General Macro Routine
PRECISION Macro
DIMENSION Macro
IF Macro
GO TO Macro
ADD and DELETE Macro
HALT Macro
CONTINUE and END Macro
Build Statement Number Table
"i'. I •" ,' .","^!'l>—»"WBWB
50
TABLE 1-Continued
MODE LOCATION STARTING DESCRIPTION
START END LABEL
(3)6621 6750 YG
6751
4000
4104
4177
4311
4675
5046
6275
7137
4000
6032
7173
4103
4176
4310
4674
5045
6274
7136
7753 -
6031
6054
XX
BA
BD
BP
BG
BL
DA
CA
FA
AC
AW
6055 6071
- EA
- AD
AV
6072 6107 AZ
6110 6121 AY
6122 6213 DU
6214 6736 KA
6737 7700 PA
4052 HA
KB
PB
Search Statement Number
Table
I n i t i a 1 i z a t i 0 n
Add Integer
Subtract Integer
Normali ze
Add Floating Pcint
Subtract Floating Point
Multiply and Divide
Input Conversion
Ist Part of Output Conversion
Stack Processor
Step Past Variable or Con-
stant
Add Two To Stack Address
Subtract Two From Stack
Address
Put Delimiter in Stack
Update Data Address
SUBSCRIPT Routine
READ and WRITE Macro
Exponent (not av a i l a b l e )
51
TABLE 2
INTERPRETER ROUTINES BY STARTING LABEL
MODE LOCATION STARTING
START END LABEL
DESCRIPTION
(0)2704 AA
(0)2714 2752 AB
(5)4000 6031 AC - AD
(5)6055 6071 AV
(5)6032 6054 AW
(5)6110 6121 AY
(5)6072 6107 " AZ
(4)4000
(4)4104
(4)4311
(4)4675
(4)4177
(4)6275
(4)5046
(5)6122
(0)2350
4103
4176
4674
5045
4310
7136
6274
6213
2450
BA
BD
BG
BL
BP
CA
DA
DU
EN
- EA
Stack Processor Entry From
Arithmetic Instruction
Stack Processor Entry From
Macro
Stack Processor
Add Two To Stack Address
Step Past Variable or Con-
stant
Put Delimiter in Stack
Subtract Two From Stack
Address
Add Integer
Subtract Integer
Add Floating Point
Subtract Floating Point
Normali ze
Input Conversion
Multiply and Divide
Update Data Address
Check Address Crossing Mode
52
TABLE 2-Continued
MODE LOCATION STARTING DESCRIPTION
START END LABEL
0
0
0
0
0
0
1077 1160
0737 0756
0757 0775
2451 2607
7137 7753
4000 4366
1356 1466
1161 1355
1041 1076
0776 1012
1013 1040
4052
4000 4626
4627 4743
ET
EW
EY
El .---,E7
FA
FO
GA
GG
GO
GT
GV
HA
lA
6214 6736 KA - KB
MA
6435 6460 MS - MT
4744 5020 MV
5627 5727 NA
5524 5626 NJ
5021 5523 OA
6737 7700 PA - PB
Check For Delimiter
Check For Integer Variable
Check For Constant
Error Routine
Ist Part of Output Conversion
2nd Part of Output Conversion
Shift Left
Shift Right
Check Argument for +, -, 0
Zero Argument
Negate Argument
Exponent (not available)
Interpreter Executive Routine
Subscript Routine
General Macro Routine
CONTINUE and END Macro
PRECISION Macro
GO TO Macro
IF Macro
DIMENSION Macro
READ and WRITE Macro
53
TABLE 2-Continued
MODE LOCATION STARTING DESCRIPTION
START END LABEL
0
0
0
0
0
0
0
0
6011 6434 QA
5730 6010 UA - UB
3217 3362
6751 7173
6461 6620
6621 6750
1467 1652
1653 2037
2040 2223
2224 2347
3063 3216
2610
2641
UG
XX
YA
YG
YK
YM
ZA
ZF
ZX
Z
ZY
2644 2703 ZZ
0477 0736
3363 3364
2753 3062
0020 0117
HALT Macro
ADD and DELETE Macro
Part of ADD and DELETE Macro
I n i t i a 1 i z a t i 0 n
Build S t a t e m e n t Number T a b l e
S e a r c h S t a t e m e n t N u m b e r
T a b l e
Build V a r i a b l e T a b l e
S e a r c h V a r i a b l e T a b l e
Move I n s t r u c t i o n
Move Data
T r a n s f e r To All A r i t h m e t i c
Routi nes
Ent r y Point For I n t e r p r e t e r
R e t u r n Point For P r e c i s i o n
M a c r o
R e t u r n Point For All R o u t i n e s
C o n s t a n t s
A d d i t i o n a l C o n s t a n t s
Mi s c e l 1 a n e o u s T r a n s f e r s
S h a r e d B y t e s
54
TABLE 3
INTERPRETER ROUTINES BY TYPE
MODE LOCATION STARTING
START END LABEL
Executive Routines
(3)4000 4626 lA
DESCRIPTION
Interpreter Executive Routine
Macro Routines
(3)4627
(3)4744
(3)5021
(3)5524
(3)5627
(3)5730
(0)3217
(3)6011
(5)6737
(3)6435
4743
5020
5523
5626
5727
6010
3362
6434
7700
6460
MA
MV
OA
NJ
NA
UA
UG
QA
PA
MS
- UB
PB
MT
General Macro Routine
PRECISION Macro
DIMENSION Macro
IF Macro
GO TO Macro
ADD and DELETE Macro
Part of ADD and DELETE Macro
HALT Macro
READ and WRITE Macro
CONTINUE and END Macro
Stack Processor Routines
(0)2704 AA
(0)2714 2752 AB
(5)4000 6031 AC - AD
Stack Processor Entry From
Arithmetic Instruction
Stack Processor Entry From
Macro
Stack Processor
"r^^'^^^mmm
55
TABLE 3-Continued
MODE LOCATION STARTING DESCRIPTION
START END LABEL
Arithmetic Routines
(0)3063 3216 ZX
(4)4000 4103
(4)4104 4176
(4)4177 4310
(4)4311 4674
(4)4675 5045
(4)5046 6274
(4)6275 7136
(4)7137 7753
(1)4000 4366
(7)4152
BA
BD
BP
BG
BL
DA - EA
CA
FA
FO
HA
Transfer to All Arithmetic
Routi nes
Add Integer
Subtract Integer
Normalize
Add Floating Point
Subtract Floating Point
Multiply and Divide
Input Conversion
Ist Part of Output Conversion
2nd Part of Output Conversion
Exponent (Not available)
Supporting Routines
(0)0020 0117
(0)0477 0736
(0)3363 3364
(0)0737 0756 EW
(0)0757 0775 EY
(0)0776 1012 GT
(0)1013 1040 GV
Shared Bytes
Constants
Additional Constants
Check for Integer Variable
Check for Constant
Zero Argument
Negate Argument
56
TABLE 3-Continued
MODE LOCATION STARTING DESCRIPTION
START END LABEL
0
0
1041 1076
1077 1160
1161 1355
1356 1466
1467 1652
1653 2037
2040 2223
2224 2347
2350 2450
2451 2607
2610
2641
2644 2703
2753 3062
6461 6620
6621 6750
6751 7173
6032 6054
GO
ET
GG
GA
YK
YM
ZA
ZF
EN
El ,
Z
ZY
---,E7
ZZ
YA
YG
XX
AW
Check Argument for +,-,0
Check for Delimiter
Shift Right
Shift Left
Build Variable Table
Search VariableTable
Move Instruction
Move Data
Check Address Crossing Mode
Error Routine
Entry Point for Interpreter
Return Point for PRECISION
Macro
Return Point for All Routines
Miscellaneous Transfers
Build Statement Number Table
Search Statement Number
Table
I n i t i a 1 i z a t i 0 n
Step Past V a r i a b l e or C o n -
stant
I^M •• i.i'fiii .iJ m m ^ Ê m ^ m m m
57
TABLE 3-Continued
MODE LOCATION STARTING
START END LABEL
DESCRIPTION
(5)6055 6071 AV
(5)6072 6107 AZ
(5)6110 6121 AY
(5)6122 6213 DU
(5)6214 6736 KA - KB
Add Two To Stack Address
Subtract Two From Stack
Address
Put Delimiter in Stack
Update Data Address
Subscript Routine
•^i^'-mT^'mmim
58
TABLE 4
MISCELLANEOUS CONSTANTS
TT
/3
In 2
In 10
log^o 2
logio e
logiolog^Qe
l o g ^ Q 7T
1 degree
I r a d i a n
log^Lo 5
7!
81
9!
10!
II !
12!
•13!
14!
15!
16!
3.14159 26535 89793 23846 26433 83279 50
1.732 050 807 569
3.162 277 660 1683
2.71828 18284 59045 23536
0.69314 71805 599453
2.30258 50929 94045 68402
0.30102 99956 63981
0.43429 44819 03251 82765
9.63778 43113 00537 - 10
0.49714 98726 94133 85435
0.01745 32925 11943 radians
57.29577 95131 degrees
0.69897 00043 36019
5040
40320
362,880
3,628,800
39,916,800
479,001 ,600
6,227,020,800
87,178,291 ,200
1,307,674,368,000
20,922,789,888,000
'v^^'^^vnmi
59
TABLE 4-Continued
180 0.01745 32925 19943 29576 92369 07684 9
q)' 2.4674 01100 27233 96
(f)^ 3.8757 84585 03747 74
a)' 6.0880 68189 62515 20
TTN5 (f) 9.5631 15149 54004 49
T T N 6 (}) 15 .0217 06149 61413 07
{})' 23.5960 40842 00618 62
7T^\ 8
2 a) 37.0645 72481 52567 57
TTx 9 (f) 58 .2208 97135 63712 59
(f)^° 91 .4531 71363 36231 53
T T x l l
(?) 143.6543 05651 31374 95
TTxl2 (f) 225.6516 55645 350
q)'' 3 5 4 . 4 5 2 7 91822 91051 47
Cj)'' 556.7731 43417 624
•'"'^•^^nimm'm
TABLE 4-Continued
60
TT 2 _
2TT
9.86960 44010 89358 61883 43909 9988
19.73920 88021 78717 23766 87819 9976
3TT^ = 29.60881 32032 68075 85680 31729 9964
4Tr
5TT
6TT'
7TT'
8TT
9Tr
39.47841 76043 57434 47533 75639 9952
49.34802 20054 46793 09417 19549 9940
59.21762 64065 36151 71300 63459 9928
69.08723 08076 25510 33184 07369 9916
78.95683 52087 14868 95067 51279 9904
88.82643 96098 04227 56950 95189 9892
/2"
+ /?
+ /Z)2
+ /2)"^
+ /?)
+ /2)
+ /?)
+ /?)
+ /2)
+ /?)
8
10
12
14
16
1.414 213 562 373 095 048 801 688
2.414 213 562 373 095 048 801 688
5.828 427 124 746 18
33.970 562 748 477 08
197.994 949 366 116 30
1153.999 133 448 220 72
6725.999 851 323 208 02
39201.999 974 491 027 40
228485.999 995 622 956 38
1331713.999 999 246 711
+ /?) 18 7761797.999 999 884 751
TABLE 4-Continued
61
Sin
Cos
Tan
Sin
Cos
Tan
Sin
Cos
Tan
1
1
1
1
1
1
.5
.5
.5
.5
.5
.5
0.47942 55386 04203
0.87758 25618 90373
0.54630 24898 43790
0.84147 09848 07896
0.54030 23058 68140
1.55740 77246 5490
0.99749 49866 04054
0.07073 72016 67708
14.10141 99471 707
• • ' " "^ ' •? - ÎHSPi«"
A P P E N D I X
A . I N T E R P R E T E R FLOW CHART
B. MEMORY MAPS
C. I N T E R P R E T E R R O U T I N E S
62
'y^'''~^^^f^!føm
63
APPENDIX A : INTERPRETER FLOW CHART
STORAGE ^ MOVE INST
FROM STORAGE
TO BUFFER
n A
OUTPUT L INE CTR
BUILD STMT# TBL
MOVE INST TO
STORAGE
ARITHMETIC
STACK
PROCESSOR
ROUTINES
^ A
I I 'i imx í rrm-m^mmmim
APPENDIX B: MEMORY MAPS
MODE 0 MEMORY MAP
64
0000
0020
0120
0264
0477
ADDRESS WORDS
SHARED BYTES
TTY I/O
LOADER
0737
3365
3777
CONSTANTS
SUPPORTING ROUTINES
WORK AREAS
VARIABLE TABLE
* STARTING ADDRESS
ASSIGNED AT
INITIALIZATION
4000
MODE 1 MEMORY MAP
OUTPUT CONVERSION (FO)
(SEE MODE 4 )
65
4367
7777
DATA STORAGE
MODE 2 MEMORY MAP
400
7777
PROGRAM STORAGE
• •< . j .^mimmmmmm
66
MODE 3 MEMORY MAP
4 0 0 0
4627
4744
5021
5524
5627
5730
6011
5435
6461
6621
6751
7174
7777
EXECUTIVE ROUTINES ( l A )
MACRO ROUTINE (MA)
PRECISION MACRO (MV)
DIMENSION MACRO (OA)
I F MACRO ( N J )
GO TO MACRO (NA)
ADD & DELETE MACRO (UA ,UB)
HALT MACRO (QA)
CONTINUE & END MACRO (MS,MT)
BUILD STATEMENT NUMBER TABLE (YA)
SEARCH STATEMENT NUMBER TABLE (YG)
I N I T I A L I Z E (XX)
STATEMENT NUMBER TABLE
mfmmm^m*
MODE 4 MEMORY MAP
67
4000
4104
4177
4311
4675
5046
6275
7137
7753 7777
ADD INTEGER (BA)
SUBTRACT INTEGER (BD)
NORMALIZE (BP)
ADD FLOATING POINT (BG)
SUBTRACT FLOATING POINT (BL)
MULTIPLY & DIVIDE (DA,EA)
INPUT CONVERSION (CA)
OUTPUT CONVERSION (FA)
(SEE MODE 1)
NOT USED
MODE 5 MEMORY MAP
6 8
4000
6032^
6055
6072
6110
6122
6214
6737
7704
7777
STACK PROCESSOR (AC,AD)
CHECK FOR DELIMETER (AW)
ADD TWO TO STACK ADDRESS (AV)
SUBTRACT TWO FROM STACK ADDRESS (AZ)
PUT DELIMETER IN STACK (AY)
UPDATE DATA STORAGE ADDRESS (DU)
ARRAY ROUTINE (KA,KB)
READ & WRITE MACRO (PA,PB)
STACK
MODE 6 MEMORY MAP
69
4 0 0 0
5000
7777
VARIABLE TABLE
DATA STORAGE
MODE 7 MEMORY MAP
4 0 0 0
4052
4054
7535
7777
BOOTSTRAP LOADER
RIC B,P FOR EXPONENTIATION
AVAILABLE FOR USER PR06RAMS
TAPREP
T I M I lli|l|i||llll llll
70
APPENDIX C: INTERPRETER ROUTINES
The following program listings are the routines
which comprise the Interpreter. The program listings
are divided into five main categories:
1. Executive Routines
2. Macro Routines
3. Stack Processor Routines
4. Arithmetic Routines
5. Supporting Routines
All routines are documented to include their start-
ing label, entry conditions, exit conditions, core require
ments, linkage, and general description.
n % i
,|I4I
V
o
mmmmmmm
71
* PROGRAÍ' T I T L E : F'XECUTIVK R O U T I M E
* STARTI>JG L A B E L : IA
* EMTRY COMDITIOMS: *
* AT EMTRY THE IMTERPRETER IS READY FOR THE * MEXT I M5 rílUCT I 0M . *
* EXIT COMDITIOMS: *
* EXIT IS TO THE STACK PROCESSOR OR TO THE * MACRO ROUTIiMES. *
^ CORE REQUIREKEMTS: 627 OCTAL LOCATIOMS
* LIiMKAGE: JMP lA *
* GEMERAL DESCRIPTIOM: *
* THIS ROUTIME DECIDES V.'HERE TO GET THE MEXT ;; * IMSTRUCTIOM^ TTY OR FROM PROGRAM STORAGE. * WHEM CALLIMG FOR AM IMSTRUCTIOM FRO'A THE TTY C * THE IMT.ERPRETER VILL OUTPUT 5 BLANKS AMD AM -* ASTEiUSK ( t) TO SIG-MAL THAT IT IS 'READY c * FÛR AM IMSTRUCTIOM. A C IM COLUMM 1 OF THE ''' * IMSTRUCTIOM IMDICATES A COMMEMT LIME WHICH '' * IS MOT PROCESSED. ALL OTHER IMSTRUCTI0M3 * VJILL HAVE A LIME COUMTER MUMBER (001--999) * PRIMTED PRECEDIMG THE IMSTRUCTIOM. THE IM-^ STRUCTIOM IS SAVED IM PROGHAM STORAGE^ THE * STATEMEMT MUMBER TABLE IS BUILT (IF REQUIRED) * AMD THE INSTRUCTIOM IS AMALYSED FOR AM * ARITHMETIC OR MACRO IMSTRUCTIOM. AM EQUAL * (=) IM THE IMSTRUCTIOM WILL SIGMAL THAT THIS * IS AM ARIT?ÎMETIC IMSTRUCTIOM AMD EXIT IS TO * THE STACK PROCESSOR ROUTINE. ALL OTHER IM-* STRUCTIOMS WILL EXIT TO THE MACRO ROUTIME. * IF THE IMSTRUCTION HAS MORE THAM 65 CHARACTERS * THE EXGESS CHARACTERS ARE READ I iM AMD WILL BE * PRIMTED OM THE MEXT LIME. *
*5^Bf9BH
n
72
*** IMTER.PRETER EXECUTIVE ;-.OUTIME ZO 3- 1000 ZT ZY
* DETl'i;MIME WHEiiE TO GET IMS T 3^lOOO/nA ALD B^lOl 3^002 STB C# SET CHECK SUM =65/10 3^00^1 LD3 13 WHERE DO IvE GET IMST? 3 100 6 SKZ 2 TTY-34007 JMP IL STORAGE-
* SET UP TTY 3 4011 IB ELB II 3 4013? RTR B;»X ADDR OF MEW LIME TABLE 3 4014#IC GOL A:»X GET CHAR FROM TARLE 34015 SKM 2 3 4016 JMP ID HIT EMD OF TABLE 3 4020?/ RIC P^3 3 4021 JMP TO OUTPUT CR-LF-5 BLAMKS-* 3 !023# RIC X , K STEP THHU TABLE 3 4024 JMP IC
* READ AMD TEST IST CHAR 3 402 6#ID RIC P..B 3 4027 JMP TE GET 1ST CHAR !i, 3 4031# AOív A^200 TURM 8-BÍT OM ÍJ 3 4033 RIC A^X IS CHAR 'RUBOUT'? 3 4035 SKM 2 iMO- [i 3 4036 JMP ID YES- » 3 4040# ASU X>213 ÍS CHAR ' LF' ? f" 3 4042 SKM 2 MO- '• 3 4043 JMP IB YES-3 4045# ASU X:»003 IS CHAR ' CR' ? 34047 SKM 2 MO-3 4050 JMP IB YES-3 4052 RTR A:»X 3 40 54 # ASU X^30 3 IS CH.AR 'C'? 3 4056 SKZ 2 YES-GO TO COMMEMT LIME RTM 3 4057 JMP IF MO-GO TO IMST LIME RTM
* COMMEMT LIME RTM 34061#IE RIC P^B 3 4062 JMP TE GET MEXT CHAR 34064# AOR A.»200 TURM 8-BIT OM 3 4066# ASU A>2 15 IS CHAR 'CR'? 3 4070 SKZ 2 YES-3 4071 JMP lE MO-3 4073 JMP IB GET MEW LIME
* IMST LIME RTM 3 4075 IF ALD Y>5 SET UP STMT# CTR 34100 ELB I/ 3 4102# RTR B J K A D D R OF B U F F E R IM X 34103 IG R T R A > Z 34105# ASU Z>337 IS CHAR •-* (DELETE LIME)?
mtr
73
34107 SKM 2 MO-3 4110 JMP IA YES - G ET MEW LI ME 341 12# ASU Z>40 IS CH.AR 'RUBOUT'? 34114 SKM 2 MO-34115 Jllt' A YES-341 17# GOS A>X STOHE CH' .H IM -- UFFEH 3 4120# RIC X^X STEP BUFFH;-: ADDR 34121# ASU A,215 IS CKAi: ' CR' ? 34123 SKM 2 MO-34124 JMP IJ YES-341260Í RDC Y^Y EMD OF STMT#? 34127 SKM 4 MO-34130 AAD X:»2 YES-STEP PAST LIME CTR 3 4133 SKP 0 FILLER 34134 LDB C# GET CHECK SUM 34136# RTR B^Z 34137 RDC Z.»B HAVE WE REACHED 0\;ERFL0W?
34141 SKM 2 MO-3 4142 JMP IH YES-34144 STB C# STORS UPDATED CTR 3 4146#A RIC P:»B 3 4 1 4 7 JMP TE GET AMOTHER CHAR ',; 3 4151? / AOR A^ 2 0 0 TURM 8 - B I T OM ÎJ: 3 4 1 5 3 JM? IG O
* O'wERFLOW CHAR RTM " 34155 IH STB C# f' 3 4157;/ RTR X^B j'; 34160 STB I? SAVE OyEH.FLOW ADDR \ 3 4162 TBB 3 4164 STB I?+l 34166#IÍ RIC PJB 34167 JMP TI GET MEXT CHAR-DO MOT PRIMT 34171# AOR A^200 34173# GOS A^X STORE CHAR IM BUFFER 3 4174# RIC X>X STEP BUEFER ADDR 3 4175# ASU A^2 15 IS CH,\H ' CR ' ? 34177 SKZ 2 YES-3 4200 JMP II MO-
* EiMD OF LIME RTM 3 4202#IJ RIC P^Z 34203 JMP JA GO OUTPUT & STORE LIME CTR 34205 LDB C# 34207 SKZ 2 YES-3 4210 JMP IK MO-34212# RIC P:»Z 34213 JMP JF OUTPUT OVEi^FLOW CHAR 34215#IK RIC P>B 3 4216 JMP YA BUILD STMT# TBL
* MOVE IMST TO STORAGE 34220 ELB I* 3 4222# RTR B^Y BUFFER ADDR
S H
74
3 4223 ELB K* 34225# RTR B^X CURREMT PH.OG STOR^GE ADDR 3 412 6* AZE A 3 4 2 2 7 ? ; R I C P > Z 3 4 2 3 0 JMP ZA MOVE IMST TO STORAGE 3 4 2 3 2 # RTR X^D 3 4 2 3 3 STB K* 3 4 2 3 5 TBB UP],V\TED HHOG STORAGE ADDR 3 4 2 3 7 STB K * + l 3 4241 LDB U# 'ADD' PEMDIMG? 3 42 43 SKM 2 YES-3 4244 jr P B MO-34246# ALD B^O 3 4250 STB U# SET 'ADD' PEMDIMG OFF 3 4252 JMP ZZ GO GET IMST
* CHECK PHOGH^M STOHAGE ADDR FOr. OVEHFLOW 3 4254 B iiTR XJY 34256 ELB K# SET B = 4000 34260-;-' ASU Y^B SUBTRACT 4000 FHOM ADDR 3 4261 RTR YY>Y 34263# SHR Y 3 42 64# SHR Y 3 42 65 # SHR Y > 3 4266# SHR Y RESULT POSITIVE? Í 3 42 67 SKR 2 YES-ADDR O.K. 34270 J/!? El MO-GO TO ERROR !i:
* CAM WE PHOCESS INST ' 3 4272 LDB 13+1 CAM WE PROCESS? ' 3 4274 SKZ 2 MO-3 4275 JMP IM YES-34277 ELB G* 3 4301# RTR B^X ADDR OF PEMDIMG STMT# 34302# RIC P^B 3 4 3 0 3 JMP YG SEE I F IM TBL MOW 3 4 3 0 5 # RTR A:»B 34306 STB 13+1 SET PROCESS IMD 3 4310 SKZ 2 MO PROCESS 34311 JMP IM WE CAM P1-:0CESS 3 4313 JMP lA GET NEW LIME
* THIS WILL MOVE IMST FROM STORAGE TO BUFFER 34315 IL ELB I* 34317# RTR 3^X ADDR OF BUFFER 34320 ELB Y# 34322# RTR B^Y ADDR OF STORAGE 34323# ALD A^1 34325# RIC P-»Z 3 432 6 JMP ZA GO MOVE IMST TO BUFFER 34330# RDC X^X ADDR OF MEXT INST 34331 LDB O^X 34333 STB Y# 34335 LDB 1>X
••mw
75
34337 3 4341 34343# 3 4344 34346# 34347 34350 34352 34354 34355 34357# 34361
34363 34365S 34366/. 34367./ 3 4370;-; 34372 34373 34375fí 34377 34400 34402
34404 3 4406 3 4407 3 4410 34411 3 4412 3 4413 3 4414 34415 3 4416 3 4417 34420 34422 34427
*
IM _
^M
f
*
11 12
C# G* Gl
TO TI TE I/ I* IZ I? K# *
Y# 13 U#
STB ELB RTR ELB ASU s z Ji-'P RTR s z JMP ALD STB
DECIDE IF ELB RTH RIC GOL ASU SKM JMP ASU SKN JI-'P JMP
COMSTAMTS ZA ZC ZC ZC ZC ZC zc zc zc zc zc ZA ZR zc ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL
Y^/ + l Y# B>Y
-y-YíB 2 IM YY^YY 2 IM B>0 13 MACRO OR IZ BJX
XJX
A^X A^215 2 MA A^60 2 A:. IM USED IM : 12 215 212 240 240 240 240 240 252 0 101 Gl 5 0 120 213 216 477 501 503 505 624 626 660 732 734
ADDR IM Y CU;H:iEMT ADDR OF STOHAGE LAST IMST IM SrOH.AG'i:? MAYBE-M0~
YES-LAST IMST MO-
TURM OLD IMST SWITCH OFF A K 1T H M E T I C I M S T R U C T I 0 M
ADDR IF IM3T(C0L 6)
'CR'? MO-YES-GO TO MACRO RTM f _ 1 9
MO-YES-GO TO AHrnîMKriC RTM
• ODE 3 PROGRAMS
•CR' 'LF' •BLAMK'
II
"
11
II
• * •
TERMIMATOR CHECK SUM = 65/(10)
PEMDIMG 'GO TO' STMT# DELIMITER AFTEH STMT#
X o
76
El ZL 24 51
34000 3 4010 34020 3 4030 34040 34050 34060 34070
34100 34110 34120 34130 34140 34150 3 4160 34170
34200 3 4210 3 4220 34230 34240 34250 34260 3 42 70
34300 34310 34320 34330 3 4340 34350 34360 34370
34400 3 4410 34420
ZA ZZ AA JA JF MA YA YG
022 315 051 216 031 150 075 131
161 150 050 004 253 216 301 213
150 150 161 144 227 301 035 145
020 131 161 055 261 150 000 030
145 240 022
ZL ZL ZL ZL ZL ZL ZL ZL ZE
101 171 140 036 213 01 1 051 150
077 000 030 3 1 1 1 1 1 036 105 036
166 215 101 040 341 334 010 051
043 150 2 60 360 161 3 63 301 215
304 240 011
1
1
1
1
31 1 004 120 200 11 1 010 140 061
043 033 215 002 150 200 014 200
053 053 044 046 334 145 326 341
051 363 044 000 260 010 332 1 11
150 240 000
2040 2 644 2 70 4 44 30 4565 4 62 7 6461 662 1
017 043 050 010 150 310 216 150
010 040 1 1 1 134 155 150 205 204
151 151 161 301 1 1 1 244 062 333
155 150 02 1 301 044 366 161 151
366 240 000
341 200 150 1 10 01 1 031 036 01 1
330 1 1 1 150 351 31 1 103 301 050
030 165 226 226 150 010 0 62 131
221 000 001 260 161 131 103 227
006 240 002
332 1 1 1 014 111 031 303 200 004
033 150 202 017 017 31 1 106 030
351 051 043 014 2 54 321 062 150
040 161 053 360 226 150 043 030
011 252 101
131 150 051 150 003 131 030 112
337 146 056 045 051 017 051 215
017 155 020 20 5 022 161 062 363
301 101 144 001 035 363 050 060
215 000 030
150 026 140 026 1 1 1 150 215 005
111 204 1 12 010 140 046 140 131
131 061 053 301 000 224 105 171
333 043 040 301 131 022 200 1 11
212 101 000
mmmmm
11
*
*
OUrnUT AMD STOHE LIME CTR
LIMKAGE - RIC JMP
P*Z JA
34430^JA 3 44 32* 3 4433 34435 34437 3 4441# 34442 3 4444 34446 34450 34452 34454# 34456# 34457 34461 34463# 34464 34466# 34467# 3447û# 3 4471# 34472 3 4473 34475# 3 4476^JB 34500 34502#A 34503 34505#B 34506 34510# 34511# 34512# 34513# 34514 34515 34517 34521# 34522# 34524# 3 4525 34527
ZO ZT Z/ ALD RIC JMP ELB RIC RTR STB ST3 TBB STB STB ALD RIC JMP ELB ASU RTR SHR SHR SHR SHR s s JMP AAD ALD STB AZE LDB ASU RTR SHR SHR SHR SHR SKS RIC JMP AAD AOR RIC JMP LDB
34 4 30
A>215 P>B TO L# B^Y Y>B L# la,
L#+l li + l A>215 P>B TO T^ Y*B YY>X X X X X 2 El Y^B 3^0 Jl A H# Y^B YY>X X X X X 4 A^ A B Y^B Aí260 P^B TO Jl
OUTPUT 'CR'
ADD 1 TO LIME CTR
STORE UPDATED LIME CTR STORE LIME CTR IM BUFFER
OUrPUT 'CR' TO ALLOW DELAY FOR TTY CAHHIAGE RETURM
SUB 1000 FROM LIME CTR O"
IS RESULT MEGATIVE? YES-MO-GO TO ERROR RTM ADD 1000 BACK TO LIME CTR
USE AS IMD USE A AS CTR
SUB 100 FROM LIME CTR
IS RESULT MEGATIVE? YES-MO-ADD 1 TO CTR
ADD 100 BACK TO LIME CTR SET ASCII CODE
OUTPUT CHAR
mmmma m
78
34531# 34532# 3 4 5 3 3 3 4 5 3 4 3 4 5 3 6 3 4541# 3 4542 3 4544 3 4 5 4 6 ^ 3 4 5 4 7 ^ 3 4 5 5 0 # 3 4 5 5 1 # 3 4 5 5 2 # 3 4 5 5 3 # 3 4 5 5 4 * 3 4 5 5 5 # 3 4 5 5 6 # 3 4 5 5 7
3 4 5 6 1 3 4 5 6 2 3 4 5 6 3
* * J l H# T# TO l i L# E l
HTR SHR SKR n l C A0;{ RTR STB RTR RTR AAD RTR AAD HTR AAD HTR AAD AAD JMP
COMSTAMTS ZR ZC ZA ZL ZL ZL ZL ZD
B^X X 2 Z*P X ^ 0 0 2 X>B J l Y*A Y>3 Y>B Y»B Y>3 Y>B Y*3 '\JB
Y*3 Y^B A
1 144 1750 120 5 1 4 7 2 3 2 4 5 1
HA\;E WE ouTPur 3 DIGITS MO-Y E S - E X I T SET WK INID F O R 3RD CHAR
*
*
*
*
*
*
* *
MULTIPLY BY 10
1 0 0 / ( 1 0 ) 1 0 0 0 / ( 1 0 )
iHiin
îlBill
v
3 4 4 3 0 021 2 1 5 051 140 120 161 3 2 3 010 3^1440 125 0 4 7 301 3 2 3 301 114 0 1 4 2 0 5 3 4 4 5 0 301 3 2 4 301 115 02 1 2 1 5 0 5 1 140 3 4 4 6 0 120 171 163 0 3 5 0 1 0 3 1 6 0 6 1 061 3 4 4 7 0 061 0 6 1 125 145 051 0 2 6 0 2 2 0 0 0
3 4 5 0 0 3 4 5 1 0 3 4 5 2 0 3 4 5 3 0 3 4 5 4 0 3 4 5 5 0 3 45 60
311 161 0 2 0 351 162 0 3 5 0 6 1 0 6 1 061 061 126 0 1 0 105 0 2 6 0 3 6 2 6 0 051 140 161 0 4 3 061 105 0 1 0 143 0 0 2 0 4 6 311 161 0 1 0 302
0 1 0 316 100 151 120 351 0 0 4 071 0 4 7 026
0 4 7 0 2 6 047 0 2 6 0 4 0 0 2 6 0 2 6 151 102 151 144 350 0 0 3
imt 'iHimimmrmmmm^
79
*** OUrPUr OVEIHFLOW C H A I Í A C T E R S *
* LIMKAGE - RIC P^Z * JMP JF *
ZO 34565 zr ZY
3 4565#JF ALD A>2 12 34567# nlC P^B 3 4570 JMP TO OUrPUT *LF' 34572 ALD X>010 34575yJG ALD A^240 34577# RIC P>B 3 4600 JMP TO OUTPUT 9 BLAMKS 34602# RDC XsX 3 4603 SKM 2 34604 JMP JG 3 460 6 ELB I? 3 4610# RTR B>X OVDHFLOW ADDR 34611#JH GOL A^X LOAD CHAR 3 4612 RTR A^Y „„ 3 4614# ASU Y^215 HAVE WE GOT TO ' CR ' ? C! 3 4616 SKM 2 MO- «"• 34617 RIC Z^P YES-EXIT '^, 3 462 1# RIC P>B C 3 4622 JMP TO GO OUTPUT CHAR '"„. 34624# RIC X>X STEP ADDR 3 4625 JMP JH
TO ZL 120 \ I? ZL 50 5
ZD
34565 021 212 051 34570 140 120 004 111 010 021 240 051
34600 140 120 055 115 151 175 161 105 34610 043 200 010 320 032 215 111 010 34620 143 051 140 120 050 151 211
IHItti
*•' i* !••'• •^^^mmm^'mmm
80
* PROGHA:: TITLE: MACRO ROUTIMES *
* STAHTIMG LABELS: *
* MA - GEME;H\L MACRO ZÍOUTIME * MV - PRECISIOM MACRO * OA - DIMEMSIOM MACiiO * MJ - IF MAcr-:o * MA - GO TO MACRO * UA - DELETE MACRO * UB - ADD MACRO * QA - HALT MACRO * PA - READ MACRO * PB - WRITE MACRO * MS - COMTIMUE MACRO * MT - EMD MACRO *
* EMTRY COMDITIOMS: *
* EMTRY IS TO THE MA ROUTIME FROM THE lA * ROUTIME FOR AMY IMSTHUCTIOM THAT DOES MOT * HAVE ALM = IM IT. 'P
* EXIT COMDITIOMS: '""• * ii'i.'
* EXIT IS TO THE ZY ROUTIME FROM THE PRECISIOM g * MACRO AMD TO THEZZ ROUTIME FROM ALL OTHER ,,„. * MACROS. I. *
* CORE REQUIREMEMTS: 2740 OCTAL LOCATIOMS *
* LIMKAGE: JMP MA *
* GEMERAL DESCRIPTIOM: *
* THE MA ROUTIME AMALYSES THE FIRST MOM-BLAMK * CHAi'.ACTER STARTIMG IM COLUMM 7 OF THE IM-* STRUCTIOM AMD JUMPS TO THE CORRECT MACRO * BASED OM THE FIRST CHAHACTER. IF THE FIRST * CHARACTER IS A D THEM THE SECOMD CHARACTER * DETEiiMIMES THE MACRO TO BE USED. *
> '•»">; ^'••••"'mÊmmmmm
81
* * *
*
3 4 627 MA 3 4 6 3 1 * 34632#MB 3 4 6 3 3 # 3 4 6 3 4 # 3 4 6 3 6 3 4 6 3 7 3 4641# 3 4 6 4 2 ^ 3 4644 3 4 6 4 5 3 4 6 4 7 # 3 4 6 5 1 3 4 6 5 2 3 4 6 5 4 3 4 6 5 6 3 4 6 5 7 3 4 6 6 1 3 4 6 6 3 3 4 6 6 4 3 4 6 6 6 # 3 4670 3 4 6 7 1 3 4 6 7 3 3 4 6 7 5 3 4 6 7 6 3 4 7 0 0 3 4 7 0 2 3 4 7 0 3 3 4 7 0 5 # 3 4 7 0 7 3 4 7 1 0 3 4 7 1 2 # 3 4 7 1 4 3 4 7 1 5 3 4 7 1 7 # 3 4 7 2 1 3 4 7 2 2 3 4 7 2 4
*
*
3 4 7 2 6 # M D 3 4 7 2 7 # 3 4 7 3 0 # 3 4 7 3 2
GEMEaAL
ZO ZT ZY ELR iíTR R I C GOL ASU SKM JMP GOL ASU SKM JMP ASU 5KM JMP RDC SKM JMP RDC SKM JMP ASU SKM JMP RDC SKM JMP RDC SKM JMP ASU SKM JMP ASU SKM JMP ASU SKM JMP JMP
R I C GOL ASU SKM
MACl-:0
3 4 62 7
I7o B>X X*X A.»X A > 2 4 0 2 MR A,X A > 3 0 1 2 UB A>2 2 MS A^A 2 MD A^A 2 MT A^2 2 MA A>A 2 QA A> A 2 MJ A:»7 2 MV A^2 2 PA A*5 2 PB E5
X^X A^X A ^ 3 0 5 2
i-.OUTIME
ADn;< Oi I.NJST (COL 6 ) '3TEH :\DDVi GET CHAR 'BLAMK' MO-Y E S -
• A ' ? MO-YES-GO • C ' ? MO-YES-GO ' D ' ? MO-YES-GO ' E ' ? MO-Y E 5 - G 0 • G ' ? MO-Y E 5 - G 0 ' H ' ? MO-YES-GO ' I ' ? MO-YES-GO • P ' ? MO-YES-GO • R ' ? MO-YES-GO • w ' ? MO-Y E 5 - G 0
' ?
TO ' A D D ' MACRO
T 0 ' f: 0 x' r I Mu E ' MA CR o
TO MEXT TEST
TO ' E M D ' MACRO
TO 'GO T O ' MACRO
TO ' H A L T ' MACRO
TO ' I F ' MACRO
TO ' P R E C I S I O M ' MACRO
TO ' R E A D ' MACRO
TO • W R I T E ' MACRO GO TO ERROR-IMVALID MACRO
GET MEXT CHAR AFTER ' D ' * E ' ? MO-
|T1
•V-H
w.
_s c • i . i imMU
82
34733 34735# 34737 3 4740 34742
34627 34630 34640 34650 34660 34670
34700 34710 34720 34730
1% E5 PA PB MV OA MJ MA UA UB QA MS MT
161 103 232 002 326 1 1 1
010 151 005 030
JMP ASU SKM JMP JMP ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
043 050 200 030 111 155 010 200 153 227
200 111 344 030 111 146 305 1 1 1
UA AWi 2 OA E5 50 3 24 71 3007 3017 4744 502 1 5524 5627 5730 5736 601 l 64 35 64 37
200 301 035 1 1 1 010
153 002 017 153
030 1 1 1 010 155 200
124 1 1 1 145 330
YES-GO TO f I ' ? MO-YES-GO TO GO fO
240 153 200 037 1 1 1
030 146 07 1 030
1 1 1 336 l 1 1 030 154
007 007 050 004
EiíHi
151 030 151 002 01 1
111 030 200 1 11
'DELETE' MACi .O
•DIMEMSIOM' MACHO dli
Í:i.li • r
34740 152 021 145 071
HAVE YES-MO-GET .
WE
<f
SUBTRACT
5AVE STEP
IST TO
GOT
ASC
#
MEXT
83
*** PÍ-;ECISIOM MACRO *
ZO 34744 ZT ZY
3 4 744#MV HIC X>X STEP ADDR 34745# RIC P y Z 3 4746 JMP EY 34750# RTR A^A HAVE WE GOT TO THE #? 34751 SKM 2 3 47 52 JMP MV 34754# GOL A>X 34755# ASU A>260 SUBTRACT ASCII CODE 34757# RTR A>B 3 47 60 STB Ml 34762# RIC X^X STEP TO MEXT CHAR 34763# RIC P>Z 34764 JMP EY 34766 LDB Ml 34770# RTR A^A ARE THERE 2 #'S? 34771 SKM 2 YES-3 4772 JMP MW MO- Zlj 34774# RTR B>A ** S
•jjai
34775# AAD A>B * cc 3 477 6# RTR A^B * 34777# AAD A>B * MULTIPLY 1ST # BY 10 f-;:i 3 5000# RTR A>B * '' 3 5001# AAD A^B * |'' 3 5002 LDB Ml * 35004# AAD A>B * l 35005# AAD A^B ** ' 3 5006# GOL YíX GET 2MD # 35007# ASU Y^260 SUBTRACT A5CII CODE 35011# RTR Y:.B 35012# AAD A^B COMBIME WITH IST ? 35013# RTR A>B 3 5014 MW STB P# SET PRECISIOM 3 5016 JMP ZY EXIT TO IMITIALIZE 3 5020 Ml ZR 1
P# ZL 722 EY ZL 757 ZY ZL 2 641
ZD 34744 050 053 141 357 34750 041 111 151 344 200 030 260 040 34760 312 020 050 053 141 357 352 020 34770 041 111 152 014 042 024 040 024
35000 040 024 352 020 024 024 234 032 3 5010 260 047 024 040 301 322 145 241 3 5020 140
Limu
84
* * * D I M E M 3 I 0 M M'ACRO *
ZO 3 5 0 2 1 ZT ZY
3 5021#0A ALD B^O 3 5023 STB 05 SET Dn'ÍE: JSIOM IMD 3 5025#0B RIC X^X STEP BUFFER ADDR 35026# GOL A^X 35027# ASU A^215 'CR'? 3 5031 SKM 2 Mû-35032 JMP ZZ YES-EXIT 35034# RIC P>Z 3 5035 JMP ET 35037# RTR A^A DELIMETER? 3 5040 SKM 2 YES-3 5041 JMP 03 MO-
* GET ARRAY MAME 3 5043#0D RIC X>X 35044# RIC P*Z 3 5045 JMP ET 3 5047# RTR A>A VAR MAME? jHJ 3 5050 SKZ 2 YES- tfj 3 5051 JMP OD MO- rf
* DETERMIME TYPE OF ARRAY AMD SET DATA IMD '-H 35053# RIC P>Z O 3 5054 JMP EW IMTEGER OR F-P ARRAY 35056 LDB A%+1 35060# RTR B:»Z 35061 AMD Z>177 CLEAR OLD IMD 35064 RTR Z^B 3 5066 AOR A^B SET IMD 35070# RTR A:.3 3 5071 ST3 A%+1 PUT IMD IM DATA ADDR 35073 STB 03+1 SAVE IMD 3 5075 LDB A% 3 5077 STB 03 SAVE STARTIMG ADDR
* PUT ARRAY MAME IM VAR TBL 35101 ALD Y>1 SET ARRAY IMD 35104# RIC P*B 3 5105 JMP YK PUT IM VAR TBL
* GET DIMEMSIOM # 35107#0F RIC X^X 35110# RIC P>Z 3 5111 JMP EY 35113# RTR A^A DIMEMSIOM#? 3 5 1 1 4 SKM 2 YES-3 5 1 1 5 JMP OF NO-
il<"í;|iU
I s ' - ' |<lM I I I
P H
85
* COMVEiiT DIMEMSIOM # TO BIMARY 3 5 1 1 7 LDB Z * + 5 3 5 1 2 1 STB Z# SET IMPUT COMV. RTM CODE 3 5 1 2 3 # R I C P ^ B 3 5 1 2 4 JMP ZX COMV;E;-.T D I M E M S I O M #
* MOVE DATA ADÍHI IM A/o TO MEXT LOC 3 5 1 2 6 LDD P# 3 5 1 3 0 # RTR B:»A LEMGTH 3 5 1 3 1 LDB 0 3 + 1 IMTEGER OR F - P ? 3 5 1 3 3 SKP 2 IMTEGER 3 5 1 3 4 R I C A^A F - P - ADD 1 MORE 3 5 1 3 6 # RTR A^B 3 5 1 3 7 STB 0 4 SAVE LEMGTH FOR FUTURE USE 3 5 1 4 1 ELB A% 3 5 1 4 3 # RTR B^Y CURHEMT DATA ADDR 3 5 1 4 4 OG R I C Y^Y STEP ADDR 3 5 1 4 6 RDC A^A MEXT LOC? 3 5 1 5 0 SKZ 2 Y E S -3 5 1 5 1 JMP OG MO-3 5 1 5 3 # RTR Y>B 3 5 1 5 4 STB A% 3 5 1 5 6 TBB S;;:í 3 5 1 6 0 # RTR B^A Sir! 3 5 1 6 1 LDB 0 3 + 1 '''•
.; iit>' •
3 5 1 6 3 # HTR B^Y ;;:j 3 5164 AMD Y;»360 CLEAR OLD ADDR « 3 5167 # RTR Y^B |1 3 5170 AOR A^B SET IMD MODE WITH MEW ADDR i 35172# RTR A^B 35173 STB A% + 1 •;
* CHECK FOR ADDR GOIMG PAST EMD OF MODE 35175# RTR X^B 3 517 6 STB 01 3 5200 TBB SAVE BUFFER ADDR 35202 STB 01+1 35204 ELB A: 3 5 2 0 6 # RTR 3>X ADDR OF DIM # 3 5 2 0 7 # R I C P > Z 3 5 2 1 0 JMP EM F I X ADDR 3 5 2 1 2 ELB 01 3 5 2 1 4 # RTR B^X
* STEP PAST DIMEMSIOM # TO DELIMETER 3 5 2 1 5 # 0 H R I C X^X 3 5 2 1 6 # GOL A^X 3 5 2 1 7 # ASU A ^ 2 5 1 ' ) ' ? 3 5 2 2 1 SKM 2 MO-3 5 2 2 2 JMP O J Y E S -3 5 2 2 4 # ASU A Í 3 ' ^ * ? 3 5 2 2 6 SKZ 2 Y E S -3 5 2 2 7 JMP OH MO-
mmmnmmm
86
*
35231# 3 5233 35235
*
35237#0J 35240 35242 3 5244 35246 35250# 35251 35253# 35254# 35255# 3 5256 35260 35262 3 52 63
*
*
*
35265 35267# 35270 35272# 3 52 73#0K 35274 35276 35277 3 5301# 35302 35304 35306# 35307 3 5311# 3 5312# 3 5314# 35315 3 5317# 35320
*
35322 35324# 35325# 35326
*
35330 35332# 35333
THIS 15 T\
EMD
FOR 2MD DI Ml
ALD STB JMP Or AH;
RTR STB T3B STB ELB RTi-: ELB RTR AZE RIC JI'^P LDB SKM JMP
•JO-DIMEMSI B^ 1 05 OF :iAY MAME -X^B 01
01+1 02 B,X A) B^Y A P^B ZF 05 2 OM
TWO-DIMEMSIOM A DIMEM EMSIOM ELB RTR LD3 RTR RIC RDC SKZ JMP RTR STB TBB RTR LDB RTR AMD RTR AOR RTR STB
CHECK FOR ELB RTR RIC JMP
MOVE 2MD : ELB RTR ELB
SIOM # - M -r'S LEAVI 03 B^X 04 B^A X:»X A>A 2 OK X^B 03
B^X 03 + 1 3:»A A:»360 A>3 X,B X^B 03+1
OM AHiHAY
UPDATE DATA ADDR
SAVE BUFFER ADDR
FROM ADDR
TO ADDR TYPE MOVE
MOVE DIMEMSIOM # TO ARGl OME OR TWO DIMEMSIOM ARRAY? TWO-OME-
HHAY STEP TEMP ADDR TO lOvE TO AH.G2 - MULTIPLY MG HESULT IM ARGl
ADDR
LEMGTH STEP ADDR MEXT LOC? YES MO-
CLEAR OLD ADDR
UPDATE ADDR ADDR GOIMG PAST EMD OF MODE 02 B^X P:»Z EM
DIMEMSIOM 02 B^X A =
ADDR OF DIM #
FIX ADDR # TO ARG2
FROM ADDR
l-^r'D
0' ; Í
HIUIHI
**9V
Ql
3 5 3 3 5 # R T R B ^ Y TO ADDR 3 533 6-'r' AZE A 3 5 3 3 7 # RIC P^B 3 5340 JMP ZF ivíOVE 2MD # TO ARG2
* MUL'r IPLY D I MEMS I OM # ' S 3 5342 LDB Z*+2 3 5344 STB Z.V S E T M U L T I P L Y RTM CODE 3 5346# AZE A 3 5347 ELB A) 3 5351# HTR B^X ARG1 3 53 52 ELB A= 3 5 3 5 4 # RTR B>Y ARG2 3 5355 RTR X^Z ARG3 3 5 3 5 7 # RIC P^B 3 53 60 JMP ZX MULTIPLY
* MOVE LEMGTH TO ARG2 3 5362 OM EL3 A= 3 5364# RTR B»X ARG2 ADDR 3 5 3 6 5 LD3 P# 3 5 3 6 7 RIC B^A 3 5 3 7 1 # RIC P^Z 3 5372 JMP GT ZERO AHG2 S 3 5 3 7 4 LDB P# jg 3 5376# AAD X , B '^ 3 5 3 7 7 # HDC X:»X LOW BYTE OF ARG2 ipi::! 3 5400 LDB 04 g 3 5402 STB 0>X AHG2 = LEMGTH ]".,.'!
* MULTIPLY DIMEMSIOM BY LEMGTH i; 3 5404 LDB Z^+2 - ; 3 540 6 STB Z# SET MULTIPLY RTM CODE :,. 3 5410# AZE A SET IMTEGER IMD 3 5411 ELB A) 3 5 4 1 3 # RTR B^X ARGl 3 5 4 1 4 ELB A= 3 5416# RTR 3:»Y ARG2 3 5417 RTR Y^Z ARG3 3 5421# HIC P^B 3 5422 JMP ZX MULTIPLY
* ADD THIS VALUE TO DATA ADDR 3 5424 RDC YyX 3 542 6# RDC X>X LOW BYTE OF ARGl 3 5427 ELB A% 35431 STB 0>X 35433 TBB 35435# RDC X^X 35436 STB 0 » X 3 5440 LDB Z* 3 5442 ST3 Z# SET ADD RTM CODE 3 5444# AZE A SET IMTEGER IMD 35445 ELB . A)
88
3 5 4 4 7^/ RTR B:»X ARGl 3 5 4 5 0 RTíi X,Z ARG3 3 5 4 5 2 # R I C P>B 3 5 4 5 3 JMP ZX ADD ARRAY LEMGTH TO ADDR
* PUT MEW ADDi"í BACK IM A% 3 5 4 5 5 iiDC Y^X 3 5457'V- HDC X>X LOW BYTE Or ARGl 3 5 4 6 0 LDB O^X 3 5 4 6 2 STB A7. 3 5 4 6 4 # RDC X>X 3 5 4 6 5 LDB A%+1 3 5 4 6 7 # RTR B^A 3 5 4 7 0 # AMD A ^ 3 6 0 CLEAR OLD ADDR 3 5 4 7 2 LDB QiX 3 5474 AOR A^B SET MEW ADDR 35476# RTR A^B 3 5477 STB A/.+ l
* FIX DATA ADDR FOR CHOSSIMG 7777 3 5501 ELB A: 3 5503# RTR B:»X 35504# RIC P^Z
••niHJr
3 5 5 0 5 JMP EM m * KEEP GOIMG ÎSsa.
3 5507 ELB 01 3 5511# RTR B^X 3 5512 JMP OA GET NEXT ARRAY MAME
* COMSTAMTS 3 5514 01 ZR 2 RETUHM ADDR 3 5516 02 ZA 03 3 5 520 03 ZR 2 START OF ARRAY ADDR 3 5522 04 ZR 1 LEMGTH OF ARRAY 35523 05 ZR 1 IMD (0=1-DIM , 1=2-DIM)
A: ZL 634 A% ZL 636 A) ZL 671 A= ZL 673 Z# ZL 711 Z* ZL 712 P# ZL 722 EW ZL 737 EY ZL 757 GT ZL 77 6 ET ZL 1077 YK ZL 1467 ZF ZL 2224 ELM Z L 23 50 ZZ ZL 2644 ZX ZL 3063
,L .mL.J-.HLI.JJ
89
ZD 3 502 1 022 000 313 123 050 200 030 35030 215 111 145 244 053 142 077 041 35040 111 152 025 050 053 142 077 041 3 5050 131 152 043 053 141 337 341 237 3 5060 045 004 033 177 010 3S3 004 060 35070 040 301 237 313 121 341 236 313
35100 120 004 112 001 051 143 067 050 35110 053 141 357 041 111 152 107 341 35120 317 301 311 051 146 063 341 322 35130 042 353 121 135 010 100 040 313 35140 122 161 236 044 010 122 010 200 35150 131 152 144 047 301 236 014 205 35160 042 353 12 1 044 004 032 3 60 047 35170 004 060 040 301 237 046 313 114
35200 014 205 313 115 161 234 043 053 35210 144 350 173 114 043 050 200 030 35220 251 111 152 237 030 003 131 152 35230 215 022 001 313 123 152 107 046 35240 313 114 014 205 313 115 173 116 35250 043 161 271 044 020 051 144 224 35260 353 123 111 152 362 173 120 043 35270 353 122 042 050 010 200 131 152
35300 273 046 313 120 014 205 043 353 35310 121 042 037 360 040 004 061 046 35320 313 121 173 116 043 053 144 350 35330 173 116 043 161 273 044 020 051 35340 144 224 341 314 301 311 020 161 35350 271 043 161 273 044 010 331 051 35360 146 063 161 273 043 341 322 010 35370 105 053 141 376 341 322 025 055
35400 353 122 320 000 341 314 301 311 35410 020 161 271 043 161 273 044 010 35420 332 051 146 063 010 212 055 161 35430 236 320 000 014 205 055 320 000 35440 341 312 301 311 020 161 271 043 35450 010 331 051 146 063 010 212 055 35460 360 000 301 236 055 341 237 042 35470 037 360 360 000 004 060 040 301
35500 237 161 234 043 053 144 350 173 35510 114 043 152 02 1 152 021 120 013 35520 000 000 000 000
90
* * * *
3 5 5 2 4 # M J 3 5 5 2 5 # 3 5 5 2 6 # 3 5 5 3 0 3 5 5 3 1 3 5 5 3 3 # 3 5 5 3 4 3 5 5 3 6 3 5 5 4 0 # 3 5 5 4 1 # 3 5 5 4 2 3 5 5 4 4 3 5 5 4 6 3 5 5 5 0 3 5 5 5 2 3 5554#ML 3 5 5 5 5 # 3 5 5 5 6 # 3 5 5 6 0 3 5 5 6 1 3 5 5 6 3 # A 3 5 5 6 4 # 3 5 5 6 5 # 3 5 5 6 7 3 5 5 7 0 3 5572#NM 3 5 5 7 3 # 3 5 5 7 4 3 5 5 7 6 # 3 5 5 7 7 3 5 6 0 0 3 5 6 0 2 3 5 6 0 4 3 5 6 0 5 3 5 6 0 7 # 3 5 6 1 0 3 5 6 1 2 3 5614#MM 3 5 6 1 5 # 3 5 6 1 6 3 5 6 2 0 # 3 5 6 2 1 3 5 6 2 2 3 5 6 2 4 3 5 6 2 6 iMl
I F MACiiO
ZO ZT ZY R I C GOL ASU SKZ JMP HIC JMP LDB RTR R I C JMP R I C STB ELB R I C R I C GOL ASU s z JMP RDC GOL ASU SKZ JMP R I C R I C JMP RTR SKM JMP LDB SKM JMP RTR RDC STB R I C R I C JMP RTR SKM JMP JMP ZR
3 5 5 2 4
X^X A>X A>2 5 0 2 MJ P>B AB P# B:»A P ^ Z GO A í B Ml 1% B^X XJ>X
Í\JX
A ^ 2 1 5 2 NL X í X A^X A ^ 2 5 1 2 A X^X P > Z EY A^A 2 NM Ml 2 MB B>A A>B Nl X^X P:»Z ET A^A 2 MN NM 1
' ( • ? Y E S -MO-
CALCULATE EXPRESSIOM IM ( )
LEMGTH
CHECK EXPRESSIOM FOR + ^ - ^ 0 ADD 1 TO CTR
• C R ' ? Y E S -MO-
• ) • ? Y E S -MO-
-
ARE WE AT STMT#? Y E S -NO-15 CTR = 0 ? NO-Y E S - T H I S 15 CORRECT STMT#
SUB 1 FROM CTR
GO FIMD DELIMITECR BETWEEM STMT# D E L I M I T E R ? Y E S -NO-
co , „ „ • 1 !
uiitHnii ll*UUItl
•wpw«w«iPPli Era
91
1% P# EY GO ET AB MB
ZL ZL ZL ZL ZL ZL ZL ZD
503 722 757 1041 10 77 2714 5637
35524 050 200 030 250 35530 131 153 124 051 145 314 35540 042 053 142 04 1 010 150 35550 161 103 010 115 050 200 35560 131 153 154 055 200 030 35570 153 163 050 053 141 357
341 322 313 226 030 215 2 51 131 041 111
35600 153 172 353 226 111 153 237 042 35610 010 250 313 226 050 053 142 077 35620 041 111 153 214 153 172 153
m í»< co ll='i."ll
llli.'f l t l l UM-'jíí'
m
92
* * * GO TO MACRO
3 5627#MA 35630# 35631 35633# 3 5634 35635 3 5637#MB 35640 35642# 35643 35644 35646# 35650 35652 3 5654 3 5656 NE 35660 3 5663#NC 35665 35667# 35670 35671 35673 35675 3 5677# 35700#MF 35701# 35702# 35703 35705# 35706# 35710 3571 1 35713# 35715 35716 35720#ND 35722 35724 35726 NG
ZO ZT ZY ;UC RIC JMP HTR SKM JMP RIC JMP HTR SKM JMP ALD STB STB JMP RTR ALD ALD STS RDC SKM JMP RTR SL3 RTR GOL GOS RIC RIC GOL ASU SKP JMP ASU SKP Jî'ÍP ALD STB STB JMP
35627
X^X P>Z EY A>A 2 MA P^B YG A>A 2 NE B^l 13 13+1 NG X>Z X>4 B:»0 G U X
XJX
2 MC Z^X G* B^Y A:»X A:»Y X^X Y^Y A>X A>260 2 ND A>012 2 NF 3^0 13 13 + 1 ZZ
STEi^ HUFFi'ii ADDi^
STMT#?
YES-MO-
SEE IF 5TMT# IN TBL MATCH? YES-NO-
SET OLD IMST IMD SET PHOCESS IMD
* *
*
* ZERO STÛRAGE AREA *
*
* *
rif'iii
';;; .;i<i
C;':ii
SAVE 5TMT#
GET MEXr CHAR CHAR >:»= 0? YES-MO-CHAR <>= 9? NO-YES-
SET NEW INST SWITCH SET IMD FOR MO PROCESS EXIT
11111, IJ.JLl . U I M M H HM
93
3 5627 3 5 6 3 0 3 5640 3 5 6 5 0 3 5 6 6 0 3 5670
3 5 7 0 0 3 5 7 1 0 3 5 7 2 0
13 EY ZZ G* Gl YG
0 5 0 0 5 3 155 301 0 0 4 1 15
2 0 0 135 0 2 2
ZL ZL ZL ZL ZL ZL ZD
141 2 2 1 332 1 1 1 153
2 1 4 153 0 0 0
3 5 7 0 4 1 301 0 0 4 2 6 3
0 5 0 320 301
732 757 2 644 4 4 2 0 4 4 2 2 6 6 2 1
04 1 1 1 1 3 3 3 0 2 2 0 1 0
0 1 0 0 3 0 3 3 2
1
1 1 1 153 153 0 0 0 3 1 3
122 0 1 2 301
153 2 5 6 326 331 171
2 0 0 135 3 3 3
2 2 7 0 2 2 0 1 0 0 2 2 0 2 0
0 3 0 153 145
051 001 331 0 5 5 0 4 4
2 6 0 300 2 4 4
•••• l>l{[
ll'T!"«i >< X;:w 0'"Jt U.I1..JI
\íl
94
*** ADD & D ':LETE MACRO *
ZO 35730 ZT ZY
* DELETE 3 5 7 3 0 # U A ALD B:»0 3 5 7 3 2 STB U3 SET IMD 3 5 7 3 4 JMP UC
* ADD 3 5 7 3 6 # U B ALD 3 ^ 1 3 5 7 4 0 STB U3 SET IND
* GET LIME CTR # 3 5 7 4 2 # U C R I C X>X 3 5 7 4 3 # R I C P:»Z 3 5 7 4 4 JMP EY STEP TO L I N E CTR # 3 5 7 4 6 # RTR A;»A THEiiE? 3 5 7 4 7 SKM 2 Y E S -3 57 50 JMP UC MO-
* REMOVE 'ADD^ OR ' D E L E T E ' MACRO FROM STORAGE 3 5 7 5 2 LDB KS 3 5 7 5 4 STB K* >< 3 5 7 5 6 LDB KS+1 RESET TO PREVIOUS ADDR jgî 3 5 7 6 0 STB K * + l „..;
* COMVERT LIME CTR # TO BIMARY ['" * RESULTS IM ARGl •'•
3 57 62 UD LDB Z * + 5 \ 3 5 7 6 4 STB Z# 3 57 6 6 # R I C P ^ B ' 3 5 7 6 7 JMP ZX
* STORE COMVERTED L I N E CTR # IN U2 3 5 7 7 1 ELB A= 3 5 7 7 3 # RTR B:»X 3 5 7 7 4 # ASU XJ2 L O W B Y T E O F ARGl 3 5 7 7 6 L D B O ^ X 3 6 0 0 0 S T 3 U2 3 6 0 0 2 # RDC X^X 3 6 0 0 3 LDB 0:»X 3 6 0 0 5 STB U2+1 3 6 0 0 7 JMP UG GO TO MODE 0 RTN
K* ZL 6 2 6 KS ZL 6 3 0 A= ZL 6 7 3 Z# ZL 7 1 1 Z * ZL 7 1 2 EY ZL 7 5 7 ZX ZL 3 0 6 3 UG ZL 3 2 1 7 U2 ZL 3 3 6 0 U3 ZL 3 3 62
,,ii
ZD
95
35730 35740 35750 3 57 60 35770
022 000 306 306 153 301 063
362 342 227 161
050 341 34 1 27 3
362 0 53 230 317 04 3
153 342 022 001 141 357 041 111 301 22 6 341 231 30 1 311 051 146 031 002 360 000
36000 3 6010
306 360 217
055 360 000 306 361 146
* * * M -T»
* SEA 03217 UG 03221 03223 03225# 03226 UE 03230 0 32 32# 03233 03235 03237 03241# 03242 0 3244# 03245 03246 03250 03252 03253 03255#UF 03256# 03257# 03261 03262 0 32 64 03267 03271 03273# 03274 03275 03277 03301
ODE 0
ZO ZT ZY
PART 0
03217
RCH STORAGE LDB TBE ELB RTR LDB STB RIC LDB STB ELB RTR ELB ASU s z JMP RTR SKN J 'ÍP
GOL RIC ASU SKZ JMP AAD RTR ELB ASU SKZ JMP RTR s z
Z2
K# B^X OíX Ul X>X O^X Ul + 1 Ul 3^ Y U2 Y^B 2 UF YY^YY 2 UH A^X X^X A^215 2 UF X^2 X^Y K* Y^B 2 UE YY:»YY 2
& DELETE MACRO
FOR LIME CTR #
SET MODE FOR PROG 5T0RAGE
START ADDH OF Pi^OG STORAGE
m > • <
iuu»u||
ll"i."ll C'S» lUtUÍUI ll«UMU
LIME CTR LIME CTR ARE THEY MAYBE NO-
NO-YES-
•CR'? YES-MO-
FROM FROM = 7
STORAGE MACRO
CUHREMT ADDR OF PROG STOR THRU CHECKING? MAYBE NO-
YES-
f«HÍ wm mm
96
03302 03304
03306 03310 03311 0 3313^: 03315 03317 0332n
JMi JMP
* FOUND A M; UH
?
^UJ 03322# 03323í 03325 03326 03330 03332 03334 03336 03340 0 3342 03344 03346 03350^ 03352 03354 03356 0 3360 03362
03217 03220 03230 0 3240 03250 03260 0 32 70
03300 03310 03320 03330 03340 03350 03360
'l 1*
í
Ul U2 U3 K# *
Z2 u# u* E5 ZZ
341 263 306 356 010 215 321
366 131 244 360 3 60 022 140
LDB SKZ JMP ALD 5 TB JMi GOL RIC ASU SKZ JMP LDB STB LDB STB LDB STB LD3 STB ALD STB JMP ZR ZR ZR ZL ZL ZL ZL ZL ZL ZL ZD
014 20 6 356 050 044 166 366 111 131 146 161 226
131 146 146 321 200 050 000 301 001 301 001 301 000 140
UE E5 ATCH U3 2 UJ B^377 O^X
zz A^X A^ A
A>215 2 UJ 0:»X u*
* 0>X 1>A U*+l K*+l l X B^l U# ZZ 2 2 1 624 626 663 734 735 2471 2644
161 360 360 146 255 035
226 022 030 335 336 334
[
224 000 035 306 004 131
145 377 215 341 341 145
043 306 131 200 31 1 146
071 320 131 22 6 227 244
NO-GO TO ERROR
•ADD ' OR 'DELETE'? DELETE ADD SET CTR
EXIT
'CR" YES-MO-* *
*
*
*
* (
*
*
* *
SET EXIT
360 357 146 050 002 226
346 000 146 320 320 140
-ÍIGH RYTE OF LIME ALL OME'S
7 •
:HAMGE ADDR OF ME;
IMST
•ADD' S W I T C H OM
000 166 25 5 030 010 010
362 145 321 000 001 000
iT
ll'lf'lll >< tif'* Ibllll- jl
l|!"1Jlft IIPIIIUIU
!»>""« P' IIM
;, .1
mmmmi
97
* * * HALT ÎMACRO
*
ZO 3 6 0 1 1 ZT ZY
3 6 0 1 l í Q A H I C X>X 3 6 0 1 2 # RIC P ^ Z 3 6 0 1 3 JMP EY 3 6 0 1 5 # RTR A:.A AHE WE AT IMDEX # ? 3 6 0 1 6 SKM 2 Y E S -3 6 0 1 7 JI-P QA MO-3 6 0 2 1 # RTR X^B 3 6 0 2 2 STB 0 5 3 6 0 2 4 TBB SAVE ADJHH OF INDEX # 3 6 0 2 6 STB G15+1 3 6 0 3 0 # A R I C X^X 3 6 0 3 1 # GOL A:»X 3 6 0 3 2 # ASU A > 2 5 4 ' :» ' ? 3 6 0 3 4 SKZ 2 Y E S -3 6 0 3 5 JMP A MO-3 6 0 3 7 # B R I C X^X •Hl 3 6 0 4 0 # GOL A^X ?"< 3 6 0 4 1 # ASU A:»240 ' S P A C E ' ? S 3 6 0 4 3 SKM 2 MO- tUM • ! '
3 6 0 4 4 JMP 3 Y E S - C,;i! 3 6 0 4 6 # R I C P ^ B ^'^''
ipnnu
3 6047 JMP Y -: SEARCH VAR TBL i:-;; 3 6051# RTR A^A MATCH? "'f 3 6052 SKN 2 YES- ;, \ 3 6053 JMP QB NO- ' 3 6 0 5 5 RTR Y^Y ARRAY NAME? 3 6 0 5 7 SKZ 4 NO-3 6 0 6 0 R I C P ^ B Y E S - F I X ADDR 3 60 62 JMP QG
* CONVERT TO BINARY-RESULT IM ARGl 3 6 0 6 4 ELB Q5 3 6 0 6 6 # RTR B^X 3 6 0 6 7 LDB Z * + 5 3 6 0 7 1 STB Z# 3 6 0 7 3 # RIC P>B 3 6 0 7 4 JMP ZX
* MOVE INDEX TO ARG2 3 6 0 7 6 ELB A< 3 6 1 0 0 # RTR B^X VAR ADDR 3 6 1 0 1 ELB A= 3 6 1 0 3 # RTR B^Y 3 6 1 0 4 # AZE A 3 6 1 0 5 # RIC P>B 3 6 1 0 6 JMP ZF MOVE TO ARG2
mmmmmmmm
98
*
36110 C 3 61 12 # 36113 36115# 361 16 3 6120# 36121 36123 36125# 36126 36130 36132# 36133# 36134 36136# 36137 3 6140 36142 36143 36145
*
36147 D 3 6 1 5 1 # 36152#E 36153 36154 36156# 36157 3 61 61 # 36162
*
36164 F 36166# 36167#G 36170 36172# 36174?: 36175# 3 6176# 36200 36201 36203 36205 36206 QB 3 6210 3 6213 3 6214 36216# 36220
SEE IF IMDEX MULTIPLE OF CHECK # EL3 RTH ELB RTR RTR AZE LDB STB RIC JMP LDB RTR RIC
RTR SKM JMP SKP J:VP JMP
OUTPUT ELB
GET
RTR GOL SKN JMP RIC JMP RIC JMP IMPUT EL3 RTR RIC JMP AOR GOS RIC ASU SKN JMP RIC SKN JMP AAD SKZ JMP ALD STB
A = n^x A) B^Y A^Z A Z*+l z# PJB
zx p# B>A P:»Z GO A^A 2 D 2 QB C
CR—i_iF — *** Ql B^X A^X 2 F P^B TO X^X E DATA I/ B^X P^B TE A^200 A^X X^X A^27 3 2 QC A^A 2 ZZ A>20 2 G B^O U3
SUBTRACT RTN CODE
SUB # FHOM IMDEX
T ÎTM ENGTH
CHECK RESULTS + OR -0 - IMDEA 15 MULTIPLE + - CHECK AGAIM IMDEX NOT MULTIPLE
r'ii"* >''C iW'M
O ÍlUUUl
inriUiu
iginMH t-' (IH
BUFFER ADDR
GET CHAR
• ; ' ? NO-YES-1 • 1 7 • •
NO-YE5-C0NTINUE •*• ? YES-NO-
SET DELETE INDICATOR
•wn wn
99
3 6222 ELB I/ 36224# iVrR B>X LIME CTR TO BE DELETED 3 6225 JMP UD GO TO DELETE MACiíO
* C H E C H FOH VAR OR STMT# 3 6227 ÛC ELB I/ 3 6231# RTH n,X 3 6232# RIC H>Z 3 6233 JMP EY 36235# RTR A rA VAR OR STMT# 3 6236 SKZ 2 VAR 36237 JMP MB S T M T Í ; - E X I T T O ' G O T O ' 3 6241# RIC P:»B 3 6242 JMP YM SEARCH VAR TBL 3 6244# RTR A^A MATCH? 3 6245 SKN 2 3 6246 JMP D NO-3 6250 RTR YJY A R R A Y N A M E ? 3 6252 SKZ 4 NO-36253 RIC P^B 36255 JMP QG YES-FIX ADDR 3 6257 ELB A< .»Hí 36261# RTR B>X VAR ADDR 3 3 6262 LDB P# 36264# RTR B>A 36265# AAD A^B # DIGITS TO PRINT li'IH 3 6266 LDB Z* + 7 ''-'^ 3 6270 STB Z# OUTPUT CONVERT CODE r:; 36272# RIC P^B l'] 3 6273 JÎ-^P ZX OUTPUT VAR j j 3 62 75 jr4P D GET NEXT EMTRY '"••-
*
* FIX ARRAY ADDR 36277 QG 5TB Q3 3 6301 TBB RETURN ADDR 36303 STB Q3+1 3 6305 LDB A£ 3 6307 STB A? 3 6311 LDB A$+l 36313 STB A?+l 36315#H RIC XJX 36316# GOL AíX 3 6317# ASU A^2 50 '('? 36321 SKZ 2 YES-3 6322 JMP H NO-3 6324 RTR X>Y 36326 J RIC Y>Y 36330# GOL A>Y 3 6331# ASU A^251 *)•? 3 6 3 3 3 SKN 2 NO-3 6 3 3 4 JMP QJ YES-
3 »
m'iiiiiull
^^mm
100
3 6336# 36340 36341 3 6343# 36345# 36346# 36347 36351 36353 36355# 36356 36360# 36362# 36363 36365 36367# 36370# 36372# 3 6373#QJ 36374 36376# 36377# 3 6400 36402 36404 3 6406 3 6410 36412 3 6414# 36415 Ql 3 6417 Q2 36420 3 6421 3 6422 3 6423 36424 36425 36426 3 6427 Q3 3 6431 Q4 36433 Q5
TO TE I/ A< AS A) A = A? Z#
ASU 5KZ JMP ALD GOS HTR STB TBB STB RIC JMP ALD RIC JMP ELB RTR ALD GOS HIC JMP AZE RIC JMP LDB STB LDB STB ELB RIC ZA ZC ZC ZC ZC ZC ZC ZC ZC ZR ZR ZR ZL ZL ZL ZL ZL ZL ZL ZL ZL
A>3 2 J A^251 A>Y Y:»B Q4
Q4+1 P^B AB A>1 P>B KB Q4 B:»X A^250 AíX P>B AB A P>B KB A? Ai A? + l AS+1 Q3 B:»P Q2 215 212 240 240 252 252 252 0 2 2 2 120 216 477 646 650 671 673 707 71 1
• > • ?
YES- 2-DIM MO-
CHAMGE t . t TO ' )
SAVE '>• ADDR
CALCULATE IST PAH.T OF SUB
FIX ADDR
CHAMGE ' ) • TO •(•
CALCULATE SUBSCiMPT
FIMISH ADDR
EXIT
CR LF BLANK
II
*
*
*
TERMIMATOR
>"t!íi X iHI
,.„.,.,. U ]i-tf'il €"» IIHMIIHI HIHUIU
r::HirU
I >Mi
l :!
•WPHHl
101
3 601 1 3 6020 3 6030 36040 36050 36060 36070
Z* P# EY GO ET YM ZF zz A3 KH zx U3 MB UD
050 01 1 050 200 253 010 317
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
053 141 046 315 200 030 030 240 041 1 1 1 154 154 301 311
712 722 7 57 1041 1077 1653 2224 2 64 4 2714 2 7 53 30 63 3362 5537 5762
357 041 033 014 254 131 111 154 154 206 277 175 05 1 146
1 11 205 154 037 010 033 063
154 315 0 30 051 322 043 161
034 050 143 132 341 246
36100 043 161 273 044 020 051 144 224 36110 161 273 043 161 271 044 010 331 36120 020 341 313 301 311 051 146 063 36130 36140 36150 3 6160
341 154 015 120
32 2 147 043 050
042 135 200 154
053 154 1 1 1 152
142 206 154 161
041 154 164 077
041 1 10 051 043
1 1 1 175 140 051
36170 140 216 036 200 204 050 030 273
36200 111 154 227 010 100 111 145 244 3 6210 004 310
3 6240 36250 36260 36270
020 131 154 167 022 000 36220 306 362 161 077 043 153 362 161 36230 077 043 053 141 357 041 131 153
237 010 246 301
051 322 043 31 1
143 253 041 111 154 147 132 010 154 154 277 161 341 322 042 024 341 321 051 146 063 154 147 315
36300 027 014 205 315 030 341 250 301 36310 307 341 251 301 310 050 200 030 36320 250 131 154 315 010 321 010 122 36330 36340 36350 36360 36370
36400 3 6410 3 6420 3 6430
210 131 031 021 021
145 301 212 000
030 154 014 001 250
353 251 240 000
251 326 205 051 204
341 175 240 000
1 1 1 021 315 145 051
307 027 252 000
154 251 032 353 145
301 052 252 000
373 214 051 175 314
250 017 252
030 047 145 031 020
341 015 000
003 315 314 043 051
310 215 000
^fmmmmmmmmmm
102
* * * *
*
5 673 7#PA 5 6741 5 6743 56745 56747 56751 56753#A 5 6754# 56755 56757# 56760 56761 5 6763
*
56765.^P3 5 6767 56771#B 56772# 56773 56775# 56776 56777 57001 57003# 57004# 57006# 57007 57011#C 5 7012# 57013 57015# 57016 57017 57021 57023^ 5 7024# 57025# 57026# 57027# 57030# 57031 57033# 57034# 57035
HEAD &
ZO ZT ZY
READ MAC; A.LD ST3 LDB STB LD3 ST3 RIC H IC j ;>ip
RTR SKM JMP JMP
WRITE MA' ALD STB HÎC HI C JMP RTR SKN JÎ'ÍP LDB RTR AMD RTR 5TB RIC HIC JMP RTR 5KM JÎ^ÎP LDB RTR AAD RTR AAD RTR AAD LD3 AAD AAD LD3
w i a r E MACiíO
56737
i^.O B:»0 Pl IS P2 IS+l P2 + 1 X^X P^Z ET A^A 2 A PC
CHO By 1
P l Xy X
P:»Z EY A>A 2 3 0:tX B:iA A^017 A;.3 P2 X^X P>Z EY A^A 2 D P2 B^A A^B A:»B A:»B A^B A^B P2 A>B A>B 0:»X
SET IMD
STOHE LIME CTR
SEE IF PAST READ DELIMITEH? YES-MO-
S ET IMD
ARE WE AT # DIGITS TO PRIMT? YES-MO-
CLEAR ASCII CODE
SAVE DIGIT
MORE THAM 1 DIGIT?
YES-NO-
* *
*
*
* MULTIPLY PREVIOUS DIGIT * BY 10 *
*
*
* *
aMim|[
>< :'ju; i co HiirittJI
ll'i^'l CSli ili(iilUI UtillUlU
umHii H> tMI
t:]r ':. f
«. i llt..,„
^mmmmmmm
103
57037# 57040 57043# 57044# 57045# 5 7046 5 7050 5 7052#D 57053# 5 7054# 57056 5 7057
*
5 7061#PC 57063 57065#PD 570667 5 7070 57071 57073#E 5 7074 5 7076# 5 7077 57100 57102# 57103
*
5 7105-^PE 57106 57110# 57111 571 12 57114 57116 57117 5 7 12 1 # 57122 57124 57126 57130# 57131 57133 57135# 57136 57140 5 7142 57144 57146 57150# 57151
RTR AMD iíTii AAD RTil ST.B Ji'iP GOL RIC ASU SKZ JMP
3:»Y V^017 Y^B A:»B A^B P2 G A>X X^X A^251 2 D
COMMOM RTM TO BUILD ALD ST3 GOL ASU SKN JMP RIC JMP RTR SKN JMP RIC JMP
THÎS 15 HIC JMP RTR s z JMP LDB SKZ JMP RIC J^P LDB AOR RTR STB AZE RIC JT P LDB STB LDB STB RIC JMP
B>0 P4 A:»A A:»215 2 PJ P:»Z ET A:»A 2 PE X^X PD
VAR NAME P>B YM AíA 2 PF Pl 2 E5 P^Z El'/ A7.+ 1 A^B AíB A%+1 Y P^B YK A% A? A%+1 A?+l P^Z DU
ADD ME;.' D I G I T
' ) '? YES-NO-VAR NAMES
SET VAR CTR = 0
•CR'? MO-YES-
AHE WE AT VAR NAME? MO-YES-
SEARCH VAR TBL MATCH? NO-YES-READ OR WRITE? READ WHITE - GO TO ERROR
IMTEGER OR F-P VAR?
SET IMD IM DATA ADD
MOT AHRAY MAME
PUT VAR IN TBL
SAVE VAR ADDR
UPDATE DATA ADDR
i tnn^
m Crjt
úí'.untt IfKlllHU
104
571 5 3 M 57154 57156# 57157 57161 57163 57165
*
5 7167 PF 5 7171 57173 57175
bim 5 7201 57202 57204#F 57205# 57206# 57210 5721 1
t'
57213 57215 G 5 7217# 57220# 57222 57223 57225 57230 57231 57233
'Í-
57235#PG 57237# 57240# 5 7241 5 7243 57245 5 7247# 57250 57252# 57254# 57255 57257 5 7261# 5 7262# 5 7264# 57265 57267 H 5 7271#
RIC JMH RTR STB TilB ST.H Ji^IP
MATCH LDB ST3 LDB ST3 HTR SKN JMP RIC GOL ASU SKZ JMP
CHECK FOR RTR RIC GOL ASU SKM JMP AAD s z JMP Jí-'P
P>B AW X:t3 P3
P 3 +1 PH
Aî A? AS + 1 A?+l Y^Y 2 J X^X AíX A^2 50 2 f
1 OR 2 DL -" X,Y Y^Y A^Y A^254 2 PG A^3 2 G L
2-DIMEMSIOM ARRAY ALD GOS RTR ST3 TBB STB RIC JMP ALD RIC J P ELB RTR ALD GOS RTR RIC GOL
A^251 A^Y Y^B P3
P3+1 P^B AD A^ 1 P:iB KB P3 B^X A^2 50 A:tX X^Y Y>Y A^Y
STEP PAST VAH
SAVE HUFFEH. ADDR
SAVE VAR ADDR
ARRAY MAME? YES-MO-
• ( • ? YE5-MO-EMSIOM ARRAY SAVE ADDR OF •( '
•:» ' ? NO-YES-• ) • ? YES-NO-
•
CHAMGE ' j ' TO ' ) '
SAVE HUFFER ADDR
CALCULATE IST PART OF SU.
UPDATE IST PART OF ARRAY
RESTORE BUFFER ADDR
CHANGE • ) • TO '('
nrii p'i;;; ÍCIÎMÎW
II'''' 11 C'iai
ADDR
105
57272# 57274 57275
*
5 7277.í-'L 57300 5 7302 57304 5 7306# 57307 57311# 5 7312,v 57313
•¥
57315 PH 5 7317# 5 7320# 57321 57323 57325 57327 5 7331# 57332 57334 57336 57340# 57341
*
5 7343.ÍPJ 57345 57347 57351 57352
^ii'
57354 PL 57356# 57357 57361 57363# 57364 57366 57370 57372 5 7374 57376# 57377 5 7401# 57402 5 7404 5 740 6# 57407
ASU Si\Z ji-yp
l-DIM OH HTH STB TBB STB RIC JMP AZE iî I C JL-IP
A>251 2 H
2MD PAirr OF Y>:3 P3
P3 + 1 P^B AD A P^B KB
STORE ADDR IM SAVE L LDB RTR AAD H. I C STB LDB STB RIC LDB STB ELB RTH JMP
FIMISHED ALD STB LDB SKM JMP
V/RITE LDB RTR LDB 5 TB RIC LDB STB RIC STB LDB RTR ELB RTR LDB STB RIC JÎ P
P4 B:.X X^B B^B P4 A? P7:»X A>X A? + l P7^X P3 BíX PD
WITH VAR 3^0 P5 Pl 2 PP
P5 B>X P7^X A£ X^X P7^X A5 + 1 X^B P5 P2 B^A A< BJX
Z* + 7 Z# P^B ZX
• ) ' ? YES-MO-2-DI''I AHHAY
SAVE BUFKSH ADDR
CALCULATE 2ND PART 0
UPDATE ARHAY ADDR OC
SET IMDEX ADD 1 TO ;> VAR
5AVE ADDR OF VAR
BUFFER ADDR GET NEXT VAR
SET IMDEX CTH = 0 READ OR WRITE? WRITE HEAD
I MDEX
MOVE ADDR TO MODE 1
MEXT INDEX
# DIGITS TO PRIMT
SET X=ADDR OF OUTPUT
CONVERT TO DEC RTN C
CONVERT TO OUTPUT
SUB
pm >< 33MI
i' liv'ii C;";* li' v " i ( 1)111.'tiiU
1 • " • "
CODE
iiiyiii'iipi
106
5 7411 5 7413# 5 7414 57416 5 7420 5 7421 5 7423
5 742 5#PP 5 7427;' 5 7430 5 7432r;í 57434# 57435 57437 5 7441 5 7443 5 7445
*
5 7447 5 7451# 57452
5 7454 PS 57456# 57457 57461 5 7463,') 57464 5 7466 5 7470 57472 5 74 74 PT 57476# 5 7477 5 7501# 57502#PU 57503 5 7504 57506# 57507 5751 1 57513
*
57515#PV 57516 57520# 57522# 57523# 57525
READ ALD RIC JMP ALD HIC JMP LDB ST3 LDB STB
OUTPUT
LDB P4 WIR B^A HDC A:iB STB P4 'S'dZ. 2 JHP PL JMP ZZ
A>215 P:»B TO A:.2 12 P^B TO A% P3 A%+1 P3+1
CH-LF-LIME
SUB 1 FROM # VAR
VHs AHE THiiU GET .Hrvx vAH EXIT
OUTPUT CR
OUTPUT LF
SAVE DATA ADDR
CTR
GET
ELB RTR JMP LMPUT LD3 RTR LDB STB RIC LDB STB RIC ST3 ELB RTR ELB RTR GOL SKM JMP RIC jr p RIC JMP
READ IM RIC JMP AOR GOS ASU SKZ
P2 B:»Y JB DATA P5 B>X P7:tX A% X^X P7>X A%+1 X^B P5 I/ B:»X P* B^Y A>Y 2 PV P^B TO Y>Y PU
DATA P:»B TE A>200 A^X A^337 2
LIME CTR GO TO MODE 3 RTM
INDEX
SET ADDR TO STOHE DATA
innt;ii|j_
\m ;»< S;:!w €«•*'» lliiu:iit|l
ii"î."a ri'ji
t :i
MEW IMDEX
3UFFEH ADDR
STAHTING IMD FOR DATA
GET CHAR TURM 8-BIT OM STORE IN BUFFER »•. • 7
YES-
107
5 7526 57530; 5 7532; 5 7533 57535i 57537-57540 5 7542 5 7544 57547 57550 57552 57555 57556 57560
f n r
'f
r
PW
57562# 57564# 57565
57567 *
PX 57571# 57572 57574 5 7576^ 57577 57601
'/
5 7603# 57604 57606 57610 5761 1 57613 57615 57617 57621 57623
57625 57627 57630 5 7631 5 7632 57633 5 7634 57635 57637 57641 57642 5 7643
*
p* p%
Pl P2 P3 P4 P5 P7
JMP ALD HIC JMi ALD HIC JMP JMP AAD SivM J 'P AAD s z RIC JMP ALD H.IC J"MP
PW A:i215 P^B TO A:.2 12 P y '.
TO PT A^63 2 PX A^37 4 X^X PV A:»2 12 P:»B TO
COMVERT DATA ELB RTR LD3 STB RIC J:']P
LDB RTR RDC STB SKZ JMP LDB STB LD3 STB J.-iP
COMSTAMTS ZA ZC ZC ZC ZC ZC ZR ZR ZR ZC ZC ZR
I/ B,X
Z* + 5 Z# P^B ZX P4 B:»A A:»B P4 2 PS P3 A% P3+1 A%+1 ZZ
P% 240 240 252 252 0 1 2 2 0 0 36
MO-
OUTPUT 'Ciî'
OHTPUT 'LF
• •? MO-YES-•CR' ? YES-MO-
OLTPUT 'LF'
ADDR OF DATA IMPUT
COMVEilT TO HTNAiiY RTM CODE
COMVERT DATA
SUB 1 FROM :Í VAR THRU? YES-NO-
HESTOi^E DATA ADDH
EXIT
BLANK
*
TERMINATOR IMD (0=READ y 1=WRITE) LIME CTR OR # DIGITS TEMP STORAGE # VAR CTR INDEX CTR VAi-. ADDR SAVE AREAS (MAX= 1 5 )
»Nifll|J
r'inii >< '; ;:!w
.1.1,-..l;
!;'• .1 •:. • „ í i
i:.. "1
a i
108
I / IS A% A< AS ,'\ 7
Z->
Z *
TO TE EW EY ET YK YM E5 ZZ JB ZX AD AW DU KB
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
477 514 63 6 64 6 650 707 71 1 712 120 216 737 757 1077 1467 1653 2471 2 644 3027 3063 40 1 1 60 32 6122 62 51
56737 5 6740 5 6750 56760 56770
022 000 1 15 111 234
317 317 155 0 5 0
2 34 236 353 053
341 0 50 1 5 6 141
114 0 53 061 357
317 142 022 041
235 077 001 11 1
341 041 317 155
57000 57010 57020 5 7030 5 7040 57050 57060 57070
371 360 000 042 037 017 040 317 235 050 053 141 317 041 111 156 0 52 024 004 156 052 11 1
357 357 032 01 1 022 156
235 235 017 200 000 343
042 02 4 047 050 317 053
024 024 024 030 241 142
040 360 040 251 200 077
02 4 000 317 131 030 041
040 044 235 156 215 1 1 1
57100 571 10 57120 5 7130 57140 5 7150 5 7 1 6 0 5 7 1 7 0
156 105 050 156 065 051 143 253 041 131 156 167 357 234 131 145 071 053 141 337 341 237 004 060 040 341 053 237 250
301 236 154 014 301
23 7 301 122 205 307
004 3 0 7 051 317 341
002 341 154 240 251
051 2 37 0 32 156 301
143 301 046 315 310
0 67 3 1 0 3 1 7 341 0 1 0
•mvrm*m,^mmmt
109
57200 57210 572:^0 5 7230 5 7240 5 72 50 5 72 60 57270
322 131 030 131 04 7 150
1 1 1 156 254 156 317 0 1 1
156 2':V4
1 1 1 215 23 7 02 1
153 010 156 156 014 00 1
0 50 321 2 35 277 H0 5
2 00 0 10 004 02 1 317 154
0 30 122 310 • í 5 1
2 40 ;•> ií 1
2S0 210 003 214 051 177
237 043 02 1 2 50 204 010 32 1 010 122 210 030 '251 131 156 2 67 047
57300 57310 57320 57330 57340 57350 57360 57370
317 01 1 02 5 243 043 2 34 243 010
23 7 020 0 1 0 050 156 11 1 301 151
0 1 4 051 155 341 065 157 250 317
20 5 154 317 310 022 025 050 242
317 251 241 337 000 357 377 357
240 3 57 341 243 317 242 243 235
051 241 307 177 242 043 301 042
150 043 337 2 37 357 377 251 161
5 7400 5 7410 57420 57430 5 7440 57450 5 74 60 57470
246 043 34 1 32 1 301 311 051 146 063 357 241 042 010 250 317 241 131 156 3 54 145 2 44 021 215 051 140 236 235 243 010
120 317 044 301 151
021 237 146 23 6 317
212 341 027 0 50 242
051 237 357 37 7 1 6 l
140 317 242 2 43 07 7
120 2 40 043 301 043
341 177 377 237 177
57500 57510 57520 57530 57540 57550 57560 57570
225 120 036 02 1 140 157 157 07 7
044 010 200 215 120 167 1 15 043
210 122 204 051 157 004 021 341
1 1 1 157 0 30 140 07 4 310 212 317
157 102 337 120 004 037 051 301
1 15 051 131 02 1 310 132 140 31 1
051 140 157 212 063 010 120 051
140 216 144 051 1 1 1 1 1 1 161 146
5 7 600 57610 57620 57630 57640 57650 57660 57670
0 63 3 57 241 131 157 0 54 240 301 237 240 252 252
042 3 57 145 000
010 237 24- 1 000
250 301 227 000
317 241 236 357 017 240 000 000
000 000 000 000 000 037 157 114 356 364 300 000 356 365 300 001 140 000 267 017 240 240 252 252 000 000 000 037 311 324 305 250
57700 261
•ft.
110
* * * COMTINUE & END MACRO
*
3 6435 MS *
3 6437#MT 3 6441# 36443# 3 6444 3 6446#MU 3 6450# 36451 36453# 3 6454 3 6455 3 6457
TO Z ZZ
ZO ZT ZY
COMTIMUE ;p
END
36435 36440 36450 36460
ALD ALD RIC JMP ALD RIC J -IP RDC SKM JMP JM? ZL ZL ZL ZD
145 244 023 020 021 215 051 140 120 210
36435
ZZ
Z^20 A^215 P^B TO A:»2 12 P:»B TO Z:»Z 2 MU Z 120 2610 2644
•CR^
OUTPUT •LF^
•CR
OUTPUT 16 •LF^ THRU? YES-NO-HESTART INTERPRETER
051 140 120 021 212 057 115 155 046 145
HHIRllj;
inifiii >><
njyt
llilHiluJI
irî."H Æ":.íi
la , m
|;:JMKU
i. "1 "•' 1 "11.. . ,«
^mmm' mmimmm
111
* PHOGHAM TITLE: STACK PROCESSOR *
* STARTING LABELS: *
* AC - EMTH.Y FiiOM ARITHHETIC IMSTRUCTIOM * AD - EMTHY FHOM MACHO OR SUHSCinPT *
* EMTRY COMDITIONS: *
* IF EMTRY IS TO AC THE AiíITHMETIC IMSTRUCTIOM * 15 IN THE BUFFEil. IF EMTRY 15 TO ^D THE X * REGISTiH^ C0MTAIM3 THE ADDi'.ESS OF THE LEFT * PAREMTHESIS OF THE EXPRESSIOM TO BE CALCULATED *
* EXIT COMDITIOMS: *
* EXIT 15 TO THE ZZ ROUTIME FROM THE ARITHMETIC * IMSTr.UCTIOM OR RETURM TO THE MACRO OR * SUBSCHIPT. *
* CORE REQUIREMEMTS: 2035 OCTAL LOCATIONS * r*'iii
>< * LINKAGE: JMP AC (ARITHMETIC IMSTRUCTIOM) f::!î *
C*'^
iJHlMlt ! .i • VM
* RIC P^B rq * JMP AD (MACRO OR SU3SCRIPT) ^^ *
* GEMEHAL DESCRIPTIOM: *
* THIS ROUTIME WILL GUIDE THE AHITHMETIC TO 3E * DONE. ARITHMETIC 15 BASED OM THE FOLLOWING * HIEHARCHY: * INSIDE PAREMTHESIS * EXPOMENTIATIOM * MULTIPLY OR DIVIDE * ADD OR SUBTRACT * LEFT TO RIGHT * THIS HOUTIME WILL CALCULATE AMY VALID ARITH-* METIC IMSTnUCTIOM AMD WILL PRESERVE THE VALUE * OF THE VARIA3LES ON THE RIGHT OF THE =. * MIXED MODE ARITHMETIC 15 MOT ALLOWED. THE = * IS TREATED AS AN ASSIGMMEMT STATEMEMT:* THERE-* FORE^ MIXED EXPHESSIONS FROM LEFT TO RIGHT OF * =15 ALLOWED. SUBSCRIPT AMD MACRO EXPRESSIONS * MAY BE ANY VALID ARITHMETIC EXPRESSION. * SUBSCRIPTED SU3SCRIPTS ARE MOT ALLOWED. *
m^fmm
HMiraiJ
112
*** STACK PHOCESSOR *
ZO 54000 zr ZY
* EMTHY F:-OM ARITHMEriC I^STHUCTÍOM 54000 AC EL3 1% 54002# RTR B,X ADDR OF IM5T (COL 6) 54003# ALD 3^0 5 4005 ST3 A2 5ET IMD 54007 JMP AE
* EMTRY FROM MACRO OR 5U3SCRIPT 54011 AD ST3 Al 54013 T38 5AUE RETURM ADDR 54015 STD Al+1 54017# ALD 3^1 54021 5T3 A2 SEF IMD
* SET SWITCH AMD CTR5 = 0 54023#AE ALD 3^0 54025 STB A3 SET EOL SW OFF 5 4027 STB A4 PLUS-MIMUS CTR = 0 5 4031 STB A4+1 MULTIPLY-DIVIDE CTR = 0 f" 54033 STB A4+2 EXPOMEMT CTR = 0 !pw 54035 STB A7 IMITIAL 51GM = + '""'' 54037 STB A7 + 1 SIGM AFTER 'E' = MO ii Í ! 5 4041# ALD B>20 SiiÍS 5 4043 STB A7+3 DATA STORAGE CTR = 16 r-; 5 4045 LDB A2 MACRO OR ARITH? ' 1 5 4047 SKZ 2 ARITH , • 5 4050 JMP AJ MACRO !:
* 15 VAR OM LEFT OF = IN VAR TBL 54052#B RIC X^X 54053# GOL A^X 54054# ASU A^240 RLAMK? 54056 SKM 2 MO-54057 JMP B YES-5 4061# RIC P^B 54062 JMP YM SEARCH VAR TBL 54064# RTR A^A MATCH? 54065 SKZ 2 NÛ-5 4066 JMP AG YES-
* SET FLOAT-PT OR IMTEGER IMD IM A%+1 54070# RIC P^Z 54071 JMP EW IMTEGER OR FLOAT-PT? 54073 LDB A%+1 54075# RTR B>Y 54076 AND Y>177 CLEAR OLD IMDICATOR 54101# RTR A>B 54102 AOR Y^B SET IMD 54104# RTR Y>B
m mi^imfmm^
113
54105 STB A%+1 5ZI107 STB AS + 1 5Zilll LDB A% 54113 5TB AS
* PUT VAR IN TBL 54115 AZE Y 54117# RIC P^B 54120 JMP YK BUILD VAií TBL
* UPDATE DATA ADDÍÎ IM A% 54122'/ RIC P>Z 54123 JMP DU 54125 JMP AH
* MATCH-SEE IF ARRAY MAME 54127#AG RTR Y>B 54130 SKZ 2 54131 STB K< SU35CRIPT IMD
* SAVE vAR ADDR OM LEFT OF = IM A? 54133 AH LDB AS 54135 ST3 A? 54137 LDB AS+1 54141 5TB A? + l „„„,„ 54143 LDB K< 5U3SCRIPT PEMDIMG? C;
iil'"»»«i
54145 SKM 2 YES- f^ 54146 JMP AI NO- _" " 54150# RIC PíB H' 54151 JMP AW STEP PAST ARRAY MAME ; •; 54153# ALD 3:» 1 Í '; 54155 STB A7+2 SET IMD ' 54157# RIC P^B - '; 54160 JMP AD CALCULATE SUBSCRIPT • ;: 54162# ALD B>0 54164 STB A2 SET SU3SCRIPT IMD OFF 54166 ST3 A7+2 SET IMD OFF 54170 ELB A5 54172# RTR B>X
* STEP PA5T VAR TO = 54173#AI GOL A:iX 54174# RIC X.»X 54175# ASU A>275 ARE WE AT =? 54177 SKZ 2 YES-54200 JMP AI MO-
* CHECK FOR INITIAL SIGM = + OR -54202#A RIC P^Z 54203 JMP ET 54205# RTR A^A MEXT CHAR DELIMITER? 5 420 6 SKM 2 YES-54207 JMP AJ MO-54211 SKP 4 CHAR MOT BLAMK OR SPACE 54212 RIC X^X 5 4214 JMP A
•fHHHi
114
5 4 2 1 6 # GOL A>X 5/4217# ASU A>253 ' + •? 5 4 2 2 1 SKM 4 MO-5 4 2 2 2 R I C XsX YES* 5 4 2 2 4 JMP A J 5 4 2 2 6 # A5U i\*2 ' - ' ? 5 4 2 3 0 SKZ 2 Y E S -5 4 2 3 1 JMP A J MO-5 4 2 3 3 # ALD 3 ^ 1 5 4 2 3 5 STB A7 SET I M I T I A L SIGM = MIMUS 5 4 2 3 7 # R I C X,X
* PUT = IM STACK. REG X 15 POIMTIMG TO 1ST * CHAR PAST = OH TO ( I F EMTRY FROM MACRO
5 4 2 4 0 # A J ALD A > 2 7 5 5 4 2 4 2 # R I C P ^ Z 5 4 2 4 3 JMP AY PUT = IM STACK 5 4 2 4 5 JMP AK DO STACK LOGIC
* COMSTAMTS USED IM STACK P R 0 C E 5 5 0 R ROUTIMES Al ZL 7 7 0 1 HETURM ADDR A2 ZL 7 7 0 3 IMD (0=ARITH> 1=MACH0)
5 4 2 4 7 A3 ZR 1 EOL SWITCH ( 0 = OFF> 1=0M) _ ,,,,. 5 42 50 A4 ZR 3 CTHS (p -M> M-D^ EXP) S 5 42 5 3 A5 ZR 2 SAVE ADDR FOR MEXT CHAR ^
ii;.o 5 4 2 5 5 A6 ZR 2 LOCATIOM ADDR FOR RESULT 5 4 2 5 7 A7 ZC 0 BYTE 1 - I M I T I A L SIGM IMD iivi
i'".'A
* ( 0 = +.» 1 = - ) -1.'« 5 4 2 6 0 ZC 0 " 2 - SIGM AFTER ' E ' ,f
* ( 0 = MO:r 1 = Y E 5 ) 5 4 2 6 1 ZC 0 " 3 - SURSCRIPT IMD '. ''
* ( 1 = L E F T OF =, 0 = E L 5 E ) i i 5 4 2 6 2 ZC 2 0 " 4 - DATA STORAGE CTR
1% A% AS A? EW ET YK YM K< AK AW AY DU
ZC ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
2 0 5 0 3 6 3 6 6 5 0 7 0 7 7 3 7 1 0 7 7 1 4 6 7 1 6 5 3 3 3 6 3 4 2 6 3 6 0 3 2 61 10 6 1 2 2
lliiiin^uH
in ii Í:>t I f l l
115
54000 161 103 043 022 000 317 303 150 54010 023 317 301 014 205 317 302 022 54020 001 317 303 022 000 310 247 310 5 4030 2 50 310 251 310 2 52 310 2 57 310 54040 260 022 020 310 262 357 303 131 54050 150 240 050 200 030 240 111 150 54060 052 051 143 253 041 131 150 127 54070 053 141 337 341 237 044 004 032
54100 177 040 004 062 047 301 237 301 54110 251 341 236 301 250 004 002 051 54120 143 067 053 154 122 150 133 047 54130 131 306 363 341 250 301 307 341 54140 251 301 310 346 363 111 150 173 54150 051 154 032 022 001 310 261 051 54160 150 011 022 000 317 303 310 261 54170 170 253 043 200 050 030 275 131
54200 150 173 053 142 077 041 111 150 ,„..,« 54210 240 136 010 111 150 202 200 030 !!3 5 4220 2 53 112 010 111 150 2 40 030 002 '»';;? 54230 131 150 240 022 001 310 257 050 54240 021 275 053 154 110 150 263 140 54250 140 000 177 140 000 140 000 000 54260 000 000 020
*«<<'
mmmmmmm^^mmiÊÊ^miÊÊiÊm^:SSt
116
+** BUILD -*
*
5 42 63#AK 54264 5 4266-'/ 5 42 67 54270 5 4272 54273 54275# 54276
*
54300#AL 54301 54303# 54304# 5 4305 54307# 54310# 5 4312 54313 54315# 5 4317 54321 54323#AM 54325 54326 54330# 54332 54333 54335# 54336 54340#B 5 4342 54344
*
*
54346#AN 54347 54351# 54352 54353 54355# 54356 54357 5 4361# 54362
HEA:
PUT
CHAi SEE
zo ZT ZY
D AMD IvIC JMP RTR SKM JMP SKM JMP RIC JMP DELIi RIC JMP GOL RIC JMP GOL ASU SKZ JMP ALD 5TB JMP ASU SKM JMP ASU SKM JMP RIC JMP ALD STB JMP
;í MOT
\MD HEHFOniV
542 63
TEST CHAR P^Z ET A> A 2 AM 2 AL X>X AK
; STACií LÛGIC
FliOM IMST
15 CHAii DELIMITER?
YES-MO-DELIMITEH. 15 BLAMK OR 5: DELIMITEH MOT 3LAMK
iITER IM STACK P^Z AV A^X P^Z AY A^X A^215 2 AM B^ 1 A3 AP A,34 2 AP A>3 2 3 X>X AK B^ 1 K< + 1 AP
DELIMITER IF IN VAR TBL RIC JMP RTR SKN JMP RTR SKZ STB RIC JMP
P>B YM A>A 2 AO Y^B 2 K< P^Z AV
ADD 2 TO STACK ADDR GET DELIMITER
PUT DELIMITER IM STACK
15 DELIMITER 'CR'? YES-MO-
SET EOL SW OM
15 DELIMITER ')'? NO-YES-15 DELIMITER '>'? MO-YES-STEP 3UFFER ADDR
- MUST BE VAR OR C0M5TANT
SEARCH VAR TBL MATCH? YES-NO-ARRAY MAME? MO-YES-SET IMD
ADD 2 TO STACK ADDR
SPACE
fW"i\ iívit:; ÎKaMI
i!;<r"»
ll''i,,"l| C1» IIHIUIU
p.
• 5 ^ ^ M B
117
5 4 3 6 4 5^i366# 5 4 3 6 7 5437 L^ 54372# 54373 54375 54377# 54400# 5 4 4 0 1 # 5 4 4 0 2 5 4 4 0 4
54406#A0 54407 5 4 4 1 1 # 5 4 4 1 2 5 4 4 1 3 5 4 4 1 5 # 5 4 4 1 6 # 5 4 4 2 0 5 4 4 2 1
5 4 4 2 3 C 5 4 4 2 5 # 5 4 4 2 6 # 5 4 4 2 7 # 5 4 4 3 1 5 4 4 3 2 5 4 4 3 4 # 5 4 4 3 6 5 4 4 3 7 5 4 4 4 1 # C C 5 4 4 4 2 # 5 4 4 4 3 5 4 4 4 5 5 4 4 4 6 5 4 4 5 0 # 5 4 4 5 1 5 4 4 5 3 #
*
5 4 4 5 4 3 3 5 4 4 5 6 5 4 4 6 0 # 5 4 4 6 1 5 4 4 6 3 # 5 4 4 6 4
*
5 4 4 6 6 # 5 4 4 6 7
EL^^ RTR LD3 RTR GOS R I C LDB iiTR GOS R I C JMP JMP
AA B>Y AS 3^ A A:»Y Y>Y A £ + 1 3 > A A , Y P > B AW AK
5TACK ADDií
LOW BYTE
HÎGH 3YTE
STEP PAST VAR OH C0M5TAMT
MOT IN TBL - SEE I F VAR OR COMSTAMT R I C P ^ Z JMP RTR SKZ JMP GOL ASU SKZ JMP
EY A^A 2 C A^X A ^ 2 5 6 2 E6
VAR OR COMSTAMT?
MOT A COMSTAMT COMSTAMT
' . • ? Y E S -MO-GO TO ERROR
CHECK FOR + OR - SIGM i'O BE IMCLUDED IM MUM:BER
ELB AÃ RTR B-»Y GOL A^Y ASU A:»253 SKM 2 JMP CC ASU A^2 SKZ 2 JMP 3 3 RDC Y í Y GOL B^Y R I C B^A SKZ 2 JMP 3 3 R I C P > Z JMP AZ RDC X^X
CONVERT COMSTAMT TO BIMARY LDB Z * + 5 STB Z# R I C P ^ B JMP ZX RTR A:»3 STB A7+1
PUT ADDR IM STACK R I C P ^ Z JMP AV
PiíHVIOUS CHAR • + • ? NO-YES -• - • ?
Y E S -MO-
CHAR IM FROMT OF SIGM DEL? Y E S -MO-
SUB 2 FROM STACK ADDR BACK UP TO + OR -
SET RTM CODE
GO COMVERT C0M5TAMT
SAVE IND FOR S I G N AFTER ' E '
inimll nn ;:!!«< '; :":;W
.Il>iii:i1ii|]
l i 'yi llfltlUHI MIIUllil
ADD 2 TO STACK ADDR
"ssBB&fimÊBÊm
118
5 4 4 7 1 5 4 4 7 3 # 5 4 4 7 4 5 4 4 7 6# 5 4 4 7 7 # 5 4 5 0 0 5 4 5 0 2 5 4 5 0 4 # 5 4 5 0 5 #
*
5 4 5 0 6 5 4 5 1 0 5 4 5 1 1 5 4 5 1 3 5 4 5 1 5 # • 5 4 5 1 6
*
5 4 5 2 0 # A 5 4 5 2 1
*
5 4 5 2 3 # 5 4 5 2 4 5 4 5 2 6 5 4 5 3 0 5 4 5 3 1 5 4 5 3 3 # 5 4 5 3 4 5 4 5 3 6
A% AS Aâ Z# Z * EY ET YK YM E6 ZX K< A3 A7 AP AW AV AZ AY DU
PUT
ELB HTR LDV? RTR GOS H I C LD3 RTR GOS
^ • ? <
3 > Y A% B^A A , Y Y>Y A / +1 B^A A^Y
COMSTA^JT IM T 3 L LD3 SKP JMP AZE R I C JMP
A%+1 o A Y P>B YK
UPDATE DATA ADDR R I C JMP
STEP PAST R I C JMP LDB SKM JMP R I C JMP JMP ZL Zi-i
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
P > Z DU COMSTAMT P ^ B AW A7 + 1 2 AK P>B AW AK 6 3 6 6 5 0 7 0 3 71 1 7 1 2 7 5 7 1 0 7 7 1 4 6 7 1 6 5 3 2 4 7 5 3 0 6 3 3 3 6 3 4 2 4 7 4 2 5 7 4 5 4 0 6 0 3 2 6 0 5 5 6 0 7 2 6 1 1 0 6 1 2 2
STACK ADDR
LOW 3YTE
HIGH BYTE
IMTEGER OH. F - P IMTEGE:H-PJT IM F - P - D O MOT PUT
BUILD TBL
STEP PAST EXP
COMSTAMT? TBL IM TBL
NMtlll]
" l l - l í i ;)<"ii:;
• ] Í : ; . ; ;MI
iliíf' Jf
}iiiii:i«>|j
l'W'll .!:;'» ilNi.í^lMI iinilliHS
ipiMI Iiii'."t.-1
lii: ::•! ';, f
l l
wm
119
54263 053 142 077 041 111 54270 150 346 115 150 300 050 150 2 63
54300 54310 54320 54330 54340 54350 54360 54370
053 154 055 200 053 154 110 200 030 2 47 030 022 253
215 151 003 001 041
131 140 1 11 306 1 1 1
150 030 150 364 151
323 034 340 151 00 6
02 2 1 1 1 050 140 04 7
001 151 150 051 131
310 140 263 143 306
363 053 154 055 161 303 044 341 2 50 042 214 010 122 341 251 042
54400 54410 54420 54430 54440 54450 54460 5 4470
54500 5 4510 54520 54530
214 051 154 032 150 263 053 141 357 041 131 151 023 200 030 256 131 145 075 161 303 044 210 030 253 111 151 041 030 002 131 151 054 056 230 010 105 131 151 054 053 154 072 055 341 317 301 311 051 146 063 040 310 260 053 154 055 161 303 044 341 236 042 214
010 122 341 135 151 120 053 154 122 111 150 263
237 042 214 004 002 051 051 154 032 051 154 032
341 237 143 067 350 260 150 263
;;.i';it
itiii''i|j
( ' • " " "
•IHH
120
T*
*
*
5 4540 AP 54542 54544 5 4546 54550#AQ 54551 54553 54555 54557 54561 54563 54564 54566# 54567# 54570# 54572 54573 54575# 54577 54600
* W 54602# 54603# 54605 5460 6 54610 54613 5 4614 54616 54621 54622 54624 54626 54627
* T *
54631# 54632 54634 54636 54637 54641# 54642#
D
X AÃ
HIC
EST IF
ETERM
ZO ZT ZY
= \DD = ADD RIC ST3 T3B STB RIC JMP ELB RIC LDB RIC SKZ JMP líDC GOL ASU SKM JMP ASU SKM JMP
IME TYPE
; \
A
H TYPE GOL ASU SKN JMP AAD SKN JMP AAD SKN JMP RIC SKZ JMP FOR
54 540
OF ' ) • OF • ) • X^B A5
A5+1 P:»Z AZ A?< B^X O^X B>A 2 AQ X^X A>X A:»250 2 LA A^2 5 2 AU ARITHM A > X
A:»257 2 AS A^2 2 AR A^2 2 AR A.»A 2 E6
2MD •*• EXP CHAMGE TO HDC LDB RIC SKZ JMP RDC GOL
XJX
0>X
B>A 2 AS X^X A>X
OF AH THMETÍC
:• •C l' Oi ' , ' IM BUF7''.li > 'CR'> OR •>' IM STACK
ADDR OF MEXT CHAR IM '
SUB 2 FH,OM 5TACK ADDR
STACK ADDR+1
15 CH^R DELIMITER? YES -MO-
GET DELIMITER ' ( ' ? NO-YES-
•
MO-YES-
ETIC
' /•? NO-YES-• - » 7
• NO-YES-» + • ?
MO-YES-• >k » 9
• YES-MO-IMPROPER DELIMITER
FOR EXPONENT •t• IM STACK
NEXT CHAR DELIMITER? YES-MO-
W1» 'îiri!!: 3lll:w
l i lH:imn
i'y-H :;"!» I" ' i j i i l .lii|iJ.'Ji<U
mmm
121
5Zi643# ''^SU A . . 2 5 2 I S 2MD DELIMITEl í ' * ' ? 5 4 6 4 5 SKZ 2 Y E S -5^1646 JMP AS MO-5 4 6 5 0 ELB A& 54652- / RTR R^X 5 4 6 5 3 # ALD B > 3 3 6 5Zi655 S T 3 0>X H'UT ' t ' IM STACK FOR IST ' * ' 54657-:^ R I C P > Z 5 / i660 JMP AZ RACK STACK ADDR TO 2MD ' * ' 5 4 6 6 2 E L 3 A& 54664# RTR B>X 54665# ALD B > 0 54667 STB O^X SET 2ND •*• LOC=0 54671# RIC X:»X 54672 STB 0:»X 5 4674 JMP AT
*
* ADD 1 TO CORRECT CTR 54676 AR LDB A4 54700 RIC 3^3 ADD 1 TO PLUS-MIMUS CTR 5 4702 STB A4 5 4704 JMP AQ JJ
*
5 4706 AS LDB A4+1 54710 RIC B-rB ADD 1 TO MULT-DIVIDE CTR 3 54712 ST3 A4+1 ^g^ 5 4714 JMP AQ
*
,nm||
[!1::.;;MI
jUlliilll]
!|iir líii
5 4716 AT LDB A4 + 2 ; ;; 54720 RIC 3^3 ADD 1 TO EXP CTR : J 54722 ST3 A4+2 5 4724 JMP AQ
*
* WE HAVE HIT '=• (EMD OF STACK) 5 472 6 AU LDB A3 IS EOL SW ON? 5 4730 SKN 2 YES-54731 JMP E6 NO-GO TO ERROR 5 4733 JMP LA
Aâ ZL 70 3 E6 ZL 2475 A3 ZL 4247 A4 ZL 4250 A5 ZL 42 53 LA ZL 4735 AZ ZL 6072
ZD
) II. IIIIII -»mmmmmmi^^^^mÊÊ^^^M::'Ã
122
54540 54550 5 4560 54570
54600 54610 54620 54630 5 4640 54650 54660 5 4 6 7 0
54700 54710 54720 5 4 7 3 0
010 0 53 0 0 0 0 30
151 0 0 4 0 0 2 07 5 3 0 6 l ô l 154 0 0 0
010 0 1 0 0 1 0 11 1
151 154 0 1 0 2 5 0
32 6 3 1 0 1 1 1 0 5 5 0 5 5 3 0 3 0 7 2 0 5 0
155 155 155 145
3 10 0 7 2 105 1 1 1
2 0 0 0 0 2 151 360 2 0 0 0 4 3 161 320
3 1 0 310 3 1 0 0 7 5
2 5 3 161 131 151
0 3 0 1 1 1 2 7 6 0 0 0 0 3 0 0 2 2 3 0 3 0 0 0
2 5 0 2 5 1 2 5 2 151
0 14 3 0 3 151 3 3 5
2 5 7 151 0 1 0 0 1 0 2 52 336 0 4 3 151
151 151 151 3 3 5
2 0 5 0 10 1:, 0 0 3 0
1 1 1 2 7 6 100 105 131 320 0 2 2 3 1 6
150 150 150
310 1 15 0 55 02 5
151 0 0 4 131 131 151 0 0 0 000 350
350 350 350
2 54 3 60 2 0 0 1 1 1
30 6 310 145 151 3 0 6 0 53 320 2 50
251 2 5 2 2 4 7
i-snii
4 JH"'
lii M*' iMII I '" tiallHu
" ..rfi
W " " l ^ " ^mmm'
123
* * *
* PERFORM CALCULATIOMS FROM STACK
54735 54737 54741 5 4743 54745 54747 54751# 54752
54754 54756 54757
54761 54763 54764
54766 5 47 70 54771
54773 54775# 54776 55000# 55001# 55002# 55003# 55004 55006# 55007#
5 5010 55012# 55013 55015# 55016# 55017# 55020
55022 55024# 55025# 55027 55030
LA
*
LB
ZO ZT ZY LDB STB LDB STB LDB ST3 RIC JMP
54735
O^X Ll A& A6 A&+1 A6 + 1 P^Z AV
SAVE •=• OR •(• OR •,•
SAVE LOC ADDR FOR RESULT
ADD 2 TO STACK ADDR IS THERE AM EXPONEMT
LDB A4+2 15 EXP CTR = 0 ? SKZ 2 YES-MO EXP JMP LI MO-GO TO EXP RTM
DO WE MULTIPLY OR DIVIDE LDB A4+1 15 M-D CTR = 0 ? SKZ 2 YES-JMP LL MO-GO MULTIPLY OR DIVIDE
DO WE ADD OR SUBTRACT LDB A4 15 P-M CTR = 0 ? SKZ 2 YES-JMP LR MO-GO ADD OR SUBTH'^CT
FINISHED WITH EXPRESSION-MOVE TO RESULT LOCATIOM ELB Aâ
ADDR OF RESULT NOW
MEW LOC FOR RESULT
Hj
: ;HI
.. :*
RTR ELB RTR GOL GOS RIC RIC GOL GOS
B^X A6 B^Y A^X A>Y X^X Y.»Y A^X A^Y
MOVE RESULT TO OVERLAY • = ' OR • ( ' OR ' > '
MOVE RESULTS TO ARGl WORK AREA ELB A6 RTR B^X ELB A) RTR B^Y AZE A RIC P^B JMP ZF MOVE TO ARGl
ARE WE THRU WITH IMSTRUCTION LDB Ll RTR B>A ASU A>275 ARE WE AT '='? SKN 2 MO-JMP LE YES-
124
55032 55034 55035 55037 55041 5 5042 5 5044 55046 55047 55051# 55052# 55053 55055 H 55057#
*
55060#A 55062# 55063 55065#B 55067 55071 55073# 55074#C 55075# 5 5076# 55100 55101 55103# 55105 55107 D 55111 551 13 55115 551 17
*
55121 E 5 5123 55124 55126 5 5130# 55131 55133 F 55135 55136 55140# 55142# 55143 55145
*
LDB SKM JMP LDB SKM JMP LDB SKZ JMP AZE RIC JMP ELB RIC
ALD RIC JMP ALD STB ELB RTR RDC GOL ASU s z JMP ALD STB LDB STB LDB STB JMP
LDB SKZ JMP ELB RTR JMP LDB SKN JMP ALD RIC JMP JMP
A2 2 J A7+2 2 E K< + 1 2 A A P^B KB Al B^P
A:» 1 P>B KB 3^0 K<+1 A5 B^X X^X A^X A:»254 2 C B-»250 O^X A6 AÃ A6+1 Aá + 1 AK
K< 2 F A) B>X H K<+1 2 G A^l P>B KA B
HOW DID WE STAiíT? MACRO OR SUHSCRIPT AHITHMETIC STMT WHICH OME? SU3SCRIPT MACHO 1 OR 2 DIM 1 -DIM 2-DIM
FIX ADDR IM A?
EXIT
FIX ADDR IM A?
SET 2-DIM IMD OFF
BUFFER ADDR
AHE WE AT '*•? YES-MO-
oiin||{
,'•';;«
CHAMGE TO ' ( •
RESET STACK ADDR
SUBSCRIPT? NO-YES-
ADDR OF EXPRESSSOM IM ( ) EXIT TO MACRO 1 OR 2 DIM? 2-DIM 1-DIM
FIX ADDR IN STACK
mmmmmm
.iiniiilJ
125
5 5147#G AZE A 55150# RIC P,B 5 5151 JMP KA FIX ADDR IM STACK 55153 I ELB A5 55155# RTR B^X BUFFER ADDR 55156 JMP D
*
55160 J LDB K< SUBSCiUPT? 55162 SKM 2 YES-5 5163 JMP I MO-55165 JMP F
* SEE IF MIXED MODE ARITHMETIC 55167#LE RIC P^B 55170 JMP KL
* MOVE RESULT TO VAR OM LEFT OF '=' 5 5172 ELB A( 55174# RTR B>X ADDR OF VAR OM LEFT OF '=' 55175 ELB A) 55177# RTR B^Y 5 5200 # ALD A:» 1 55202# RIC P^B 5 5203 JMP ZF MOVE TO FIMAL RESULT AREA 3 5 5205 LDB Aj 55207 STB A& 55211 LDB A;+I RESET STACK ADDR :iq 5 5213 STB Aâ+1 iíc 5 5215 JAP ZZ EXIT-THRU WITH IMSTRUCTIOM -;; 5 5217 Ll ZR 1 1
A) ZL 671 ; A; ZL 701 '• A& ZL 703 A( ZL 705 ZF ZL 2224 ZZ ZL 2644 K< ZL 3363 A4 ZL 4250 A5 ZL 4253 A6 ZL 42 55 A7 ZL 4257 AK ZL 42 63 LI ZL 5220 LL ZL 5271 LR ZL 5355 KL ZL 56 71 AV ZL 6055 KA ZL 6214 KB ZL 62 51 Al ZL 7701 A2 ZL 7703
ZD
,;;w
^ W P W Í "
126
54735 360 000 312 54740 217 341 303 310 255 341 304 310 54750 256 053 154 055 350 252 131 152 54760 220 350 251 131 152 271 350 250 54770 131 152 355 161 303 043 170 255
55000 044 200 214 050 010 122 200 214 55010 170 255 043 161 271 044 020 051 55020 144 224 352 217 042 030 275 111 55030 152 167 357 303 111 152 160 350 55040 261 111 152 121 346 364 131 152 55050 060 020 051 154 251 177 301 052 55060 021 001 051 154 251 022 000 306 55070 364 170 253 043 055 200 030 254
55100 131 152 074 022 250 320 000 350 55110 255 301 303 350 256 301 304 150 55120 2 63 346 3 63 131 152 133 161 271 55130 043 152 055 346 364 111 152 147 Ht 55140 021 001 051 154 214 152 065 020 !< 55150 051 154 214 170 253 043 152 107 ":* 55160 346 363 111 152 153 152 133 051 1« 55170 153 271 161 30 5 043 161 27 1 044 a
II •'•'
55200 021 001 051 144 224 341 301 301 ír 55210 303 341 302 301 304 145 244 140 "'1
mmmmm
127
*** AiaTHi^ETIC HOUTIME SET-UP *
ZO 55220 ZT ZY
* --EHPOMEMT--5 5220 LI EL3 AA 55222 :-:iC B>X HIGii B Y T E IM STACK 5 5224 LD3 0>X 5 5226 RIC B^A DHLIÎiITER? 55230 SKM 2 MO-5 5231 JMP LJ YES-55233# RIC P>Z 5 5234 JMP AV ADD 2 TO STACK ADDR 5 5236 JHP LI 55240#LJ RDC X^X 5 5241# GOL A^X 55242# ASU A>336 ' '? 5 5244 5KM 2 NO-55245 JMP LK YES-5 5247# RIC P^Z Hi 55250 JMP AV ADD 2 TO STACK ADDR 3 5 5252 JMP LI ";? 5 5254 LK LDB Z* + 4 . « 5 5256 STB Z# SET EXP HTN CODE ,:' 5 52 60 LDB A4+2 ' 55262# HTR B:»A 5 5263 RDC A^B SUB 1 FROM EXP CTR 5 5265 STB A4+2 5 5267 JMP LW
*
* --MuLTIPLY AMD DIVIDE--5 5271 LL ELB A& 55273 RIC B^X 55275 LDB 0>X 5 5277 RIC B>A DELIMITER? 5 5301 SKM 2 NO-5 5302 JMP LM YES-55304# RIC P:»Z 5 5305 JMP AV ADD 2 TO STACK ADDR 5 5307 JMP LL 5 5311#LM RDC X^X 5 5312# GOL A^X 5 5313# ASU A>252 '**? 55315 SKN 2 NO-5 5316 Jî<ÍP LO YES-55320# ASU A^5 */*? 55322 SKN 2 NO-55323 J íP LN YES-55325# RIC P>Z 5 532 6 J P AV ADD 2 TO STACK ADDR
- ^ m n
128
5 5330 JMH LL 55332 LM LDB Z*+3 5 5334 STB Z# SET DIVIDE RTM CODE 5 5336 J'iP LP 5 5340 LO LD3 Z*+2 55342 STi^ Z/ SET MíILTIHLY líTM CODE 5 5344 LP LDB A4+1 5 5346 # RTH B><\ 5 5347 HDC A^B SUH 1 FHOM M-D CTR 55351 STB A4+1 5 5353 JMP LW
*
* --ADD AMD SUBTRACT--5 5355 LR ELB AÃ 55357 RIC ByX 55361 LDB O^X 5 53 63 RIC B^A DELIMITER? 55365 SKN 2 MO-5 5366 JMP LS YES 55370# RIC P:»Z 5 5371 JMP AV ADD 2 TO STACK ADDR 5 5373 JMP LR 5 5375#LS RDC X>X 5 53 76 # GOL A:»X Hl 55377# ASU A^253 ' + '? JJ 5 5401 SKN 2 NO-5 5402 JT'IP LU YES-5 5404# ASU A^2 '-'? 5 540 6 SKN 2 NO-5 5407 J 4P LT YES 5 541 1# RIC P-»Z 5 5412 JMP AV ADD 2 TO STACK ADDR 5 5414 JMP LR 55416 LT LDB Z*+l 55420 STB Z# SET SU3TRACT RTN CODE 5 5422 JMP LV 55424 LU LDB Z* 5 542 6 STB Z# SET ADD RTN CODE 5 5430 LV LDB A4 55432# RTR B^A 55433 RDC A^B SUB 1 FROM P-M CTR 5 5435 STB A4 5 5437 JMP LW
A& ZL 70 3 Z# ZL 711 Z* ZL 712 A4 ZL 42 50 LW ZL 5441 AV ZL 6055
ZD
11'"lll 1.««!',
:,;;MI ,*':»
'dAliU
'•IIIH'II
'1
mmmmm
129
5 5 2 2 0 5 5 2 3 0 5 5 2 4 0 5 5 2 5 0 5 5:2 60 5 52 70
5 5 3 0 0 5 5 3 1 0 5 5 3 2 0 5 5 3 3 0 5 5 3 4 0 5 5 3 5 0 5 5 3 6 0 5 5 3 7 0
5 5 4 0 0 5 5 4 1 0 5 5 4 2 0 5 5 4 3 0 5 5 4 4 0
161 11 1 0 5 5 1 5 4 3 5 0 0 4 1
1 0 5 2 7 1 0 3 0 152 3 4 1 2 5 0 1 15 0 5 3
2 5 3 0 1 6 3 0 1 3 5 0 0 4 1
3 0 3 1 5 2 2 0 0 0 5 5 2 5 2 161
11 1 0 5 5 0 0 5 2 7 1 3 1 4 3 1 0 3 6 0 1 5 4
1 1 1 0 5 3 31 1 2 5 0
0 1 0 2 4 0 0 3 0 1 5 2 0 4 2 3 0 3
1 5 2 2 0 0 1 1 1 3 4 1 3 0 1 2 5 1 0 0 0 0 5 5
1 5 3 1 5 4 1 5 3 0 4 2
1 15 0 5 3 3 3 6 2 2 0 0 1 0 0 1 0
31 1 0 3 0 1 5 2 3 1 5 31 1 1 5 3 0 1 0 1 5 2
0 2 4 0 5 5 0 3 0 0 1 0
3 6 0 1 5 4 1 1 1 3 4 1 2 5 0 1 15
0 5 3 2 5 2 3 3 2 3 0 1 3 5 0 0 4 1 1 0 5 3 5 5
0 3 0 1 5 2 3 4 1 2 5 0
0 0 0 0 5 5 1 5 2 3 1 6 3 1 0 3 6 0
1 5 4 11 1 0 5 3 31 1 2 5 1 1 6 1 1 1 1 0 5 5
0 0 2 3 5 5 3 1 2 3 1 0
0 1 0 152 2 5 4 3 0 1 2 5 2 0 0 0
0 5 5 1 5 2 1 5 4 1 5 2 0 4 2 3 0 3 1 5 2 2 0 0
1 1 1 3 4 1 3 0 1 2 5 0
1 0 5 2 2 0 0 5 3 31 1 1 5 3 0 1 0
1 5 2 3 4 0 0 5 5 3 4 4 0 1 0 0 1 0 3 7 5 0 3 0
1 5 3 3 1 3 31 1 1 5 3 ;nii
.•< iiBiiÍMt
1ITIVf||
=.,"11 •i'JI
immm
130
* * *
T^
5 5441?LW 5 5442 5 5444 554461^ 5 5447 55451# 55452# 5 5453*/ 55454 55456# 5 5460 5 5462 ^^^^^i'LX 5 5466 55470# 55471 55473 55474
*
55476#LY 55477 55501 55503 55505 55507 55510 55512 55514* 55515 55517^ S^^^Oíí 55521# 55522
*
55524 55526í* 55527 55531# 5 5532 55534# 55535 55537 55540 55542# 55543
5ET UP
ZO zr z/ ivIC uMP ELB RfR EL3 RTR AZE RIC JMP ALD ELB RIC ALD STR RDC HDC SKZ JMP
BACK UP HIC JMP ELB RIC LDB 5KM JMP STB RDC ELB RTR AZE RIC JMP
ARGJ-^EMí S
55441
P>Z
AV A'. 3.»X A = 3, Y A P>B ZF A^4 AÃ B>X 3>0 O^A X>X A^ A 2 LX
STACK ADDR P^Z AZ Aá B^X 0> A 2 LY L2 X:.X A) B^ Y A P>B ZF
GO DO ARITHMETIC ELB lUR ELB RTR RTR AZE LD3 SKP RIC RIC JMP
A) 3^X A = B*Y X>Z A L2 2 A^ A PíB ZX
FO:i AHirH^'EriC
MOVE STACK ADDii i'O LOC+2
FiiO'''í ADDH
T 0 A D Ud ( AR G 2 W OR K A R E '\ )
MOV;E L O C + 2 T O AHG2 WORK AREA
ZERO STACK -iF LQC ^ LOC+'^
THRU? YKS-MO-
U.MTIL FIMD ARGl
SUB 2 FROM STACK ADDR
HIGH BYTE IS LOC = 0 ? MO-YES-SAVE BYTE FOR IMT OR F-P IMD FH.OM ADDR
TO ADDR (ARGl WORK AREA )
MOv'E TO ARGl WORK AREA
AHGl ADDR
ARG2 ADDR ARG3 ADDR
IMTEGER OR ELOAT-PT? IMTEGER FLOAT-POIMT
GO DO ARITHMETIC
Hl
• II •.."II
IC!
^sa
131
555A5 55547 55550 55552# 5 5553 55555 55557 55561 55563 5 5565 A 55567 55570 55572# 55573# 55574 55576 3 55600# 55601# 55602 55604 55606 55610# 55612 55614 55615 55617 55621 55623# 55625 55627 5 5631 '/ 55632 5 5634 55636# 5 5637 55641 55643 55645 5 5647 55651# 55652 5 5654# 55655# 55657# 55660 55662 55664 55665 55667
L2 L3 L4
KO JF RESUL LDR SKP JMP RT HDC STB LDB HIC AZE RDC SKP JMP RTR AAD JMP EL3 AAD HTR ST3 TB3 STB ALD LD3 SKM AZE LDB AOR AMD LDB AOR RTR STB ELB RTR LDB STB LDB STB ELB RTR ELB RTR ALD RIC JMP JMP ZR ZA ZR
TS TO DATA A7 + 3 2 E6 D, A
A7 + 3 P' 3, Y A
A> A 2 3 Y^B X^B A K/ X>B X>B L4
L4+1 A,200 L2 2 A K/+1 A^B A>260 L4+1 A*B A^B L4+1 A& 3>X L4 0>X L4 + 1 1 >X L3 B^X A) 3.» Y A> 1 P>B ZF LB 1 L4 2
SrORAGE GEr DArA STOHAGE CTR
FULL-GO TO ERROR
SUB 1 FHOM CTR
LENJGTH
5TAHT OF DATA STORAGE UP ADDR ^Y CTR * P*
RUILD ADDR
IMTEGER OR F-P? F-P I.MTEGER
SET MODE 4 IMD CLEAR ADDR
<"lii r'iii "€. ,;;MI
.";» „.,|j
SET * *
*
*
*
*
*
*
* *
* *
*
*
*
*
*
* *
Exr
ADDR
PUT ADDR IM STACK
MOVE DATA TO STORAGE
mmmmm
132
5 5441 55450 5 54 60 5 5470
55500 55510 55520 55530 55540 55550 55560 55570
55600 55610 55620 55630 5 5640 55650 55660 55670
K/ A) A = A& P^ 'ZF ZX E6 A7 LB AV AZ
053 273 161 055
072 153 020 273 010 145 322 153
025 021 233 0 60 267 265 144 000
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
154 044 30 3 010
161 076 051 044 100 07 5 010 176
04 6 200 004 040 320 043 224
055 020 010 200
303 313 144 010 051 042 125 047
313 35 3 060 313 000 161 151
632 671 6 7: 70 3 722 2224 30 63 2475 42 57 4 7 54 6055 60 72
161 051 1 15 131
010 264 22 4 331 146 0 1 0 004 025
267 264 0 37 270 353 271 3 54
30 3 144 022 153
1 15 055 161 02 0 063 250 001 153
014 1 15 260 161 270 04 4 140
04 3 22 4 000 064
360 161 27 1 353 3 50 310 010 165
205 004 353 30 3 320 02 1 267
161 021 320 053
000 271 04 3 264 2 62 2 62 200 161
313 000 270 043 001 001 013
004 000 154
1 1 1 044 161 135 135 341 135 232
270 341 004 353 173 051 000
llljl (""111 "tí i„:ui
11"'«
• : >
M11 '.if
,;ÍI ti .ii'
mmm
133
+ ** *
5 567 1 KL 55673 5 567 5 55677# 55700 5 5702 55704 55706 55707 5571 1 5 5713 5 5714 5 5716# 55717 55720 55722 55723 55725 55727# 55730# 55731# 55733
*
55735 55737 55741 55743# 55744# 55745 55747
*
5 5751 KVi 55753# 55754# 55755 55757 55760 55762# 55763# 55764# 55766 55770# 55771# 55772 55774
CHECK F'
zo ZT Zî' ST3 TBB ST3 AZE ELB RIC LDH SKP HIC LD3 3KP iíDC
HTH SKM JMP SKM JMP ELB RTR RDC ALD STB
MOHMALIZE LD3 STB EL3 RTR RIC JMP JMP
3H MIX
55671
Kl
Kl +1 A A6 3>X O^X 2 A:» A A? + l 2 A.» A A> A 2 KO 2 KM A = B>X K,X 3^0 0,X
Z* + 6 Z# A) B^X P^B ZX KO
CHAMGE FROM F-P ELP HTR RDC LDB SKM JMP AZE ASU AND ELB RTR RIC JMP JMP
A = B>X X,X 0>X 2 KN A A^B c\,311 A) B>X P.»B GG KO
:ODE E X P H E S . . 10 1
SAVE HETu;iM ADDH
MIXED EXP;^ESSIOM? T E S -\H1-CHAMGE F.'IOM IMT TO F - P CHAMGE FROM F-P TO IMT
ADDH OF '\HG1 EXPOMEMT
SET EXP = 0
SET MORMALIZE RTM CODE
AHGl ADDR
MORMALIZE
TO IMTEGER
AHGl EXP
EXP MEG EXP POS
CHAMGE EXP TO POS FIX HIGH 3ITS
ARGl WORK AREA
SHIFT RESULT RIGHT
mmmm
134
5 5776''/K>J Í-:TH 3 : » A 5 5 7 7 7 EL3 A) 5 6 0 0 1 * ilTll 3>X 5 6 0 0 2 # R I C P ^ B
5 6 0 0 3 JMP GA S H I F T H E S U L T L E F T
5 6 0 0 5 ^ 'KT'íi A>A F I E L D B I G EMOUrHT'? 5 6 0 0 6 SKZ 2 Y E S -5 6 0 0 7 JMP E7 J Q - G O T O E H H O H
* S.HOULD AMSWER 3 E MEGATED 5 6 0 1 1 KO LD3 A7 SHOULD AMS BE MEGATED-? 5 6 0 1 3 5KM 2 Y E S -5 6 0 1 4 JMP KP MO-5 6 0 1 6 LD3 Píf 56020-^ RTR 3 , A SET LEMGTH 5 6 0 2 1 ELB A) 5 6023 ' - * H.TR B:»X ADDR OF RESULT 5 6 0 2 4 # R I C P ^ Z 5 6 0 2 5 JMP GV MEGATE RESULT 5 602 7 KP ELB Kl 5 6031# HIC B>P EXIT
A) ZL 671 A= ZL 673 1 A? ZL 70 7 Z# ZL 711 Z* ZL 712 P# ZL 722 GV ZL 1013 GG ZL 1161 GA ZL 13 56 E7 ZL 2501 ZX ZL 30 63 A6 ZL 4255 A7 ZL 4257 Kl ZL 6727
ZD 55671 315 327 014 205 315 330 020
:'ui
'::'»
55700 170 255 010 115 360 000 135 010 55710 100 341 310 135 010 200 041 111 55720 154 011 115 153 351 161 273 043 55730 55740 55750 55760 55770
56000 5 6010 56020 5 6030
055 31 1 011 153 043
271 101 042 327
022 161 161 37 6 051
043 350 161 052
000 271 273 020 142
051 257 271
320 04 3 043 034 161
142 1 1 1 04 3
000 051 055 037 154
356 154 053
341 146 360 377 01 1
041 027 142
32 0 063 000 161 042
131 341 013
301 154 1 15 271 161
145 322 175
æ
135
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
P R O G R A M T I T L E : AÍÍITHMETIC ivOUTIMES
STARTIMG LA3ELS:
3A - ADD IMTEGER BD - suívnn^cr I'JTEGER ;V - MOH.MALIZE BG - ADD FLOATIMG Í^OIMT
BL - 5U'3rRACT FLOATIMG POIMT DA - MULTIPLY EA - DIVIDE CA - ÍMPUT COM^EiiSIO.M FA - OUTPUT COMV;ERSIOM
H' - EXPOMEMTIATIOM (MOT AVAILA3LE)
EMTRY COMDITIOMS:
AS REQUIRED FOR EACH ROUTIME
EXIT COMDITIOMS:
AS SPECIFIED BY EACH HOUTIME
CORE REQUIREMEMTS: 4343 OCTAL LOCATIOMS
LIMKAGE: RIC P>B JMP (STARTIMG LA3EL)
GEMERAL DESCRIPTIOM: THESE ARE THE ROUTIMES THAT DO ALL THE AHITHMETIC COMPUTATIOMS FOR THE IMTERPRETER LIMKAGE TO THESE ROUTIMES FROM OTHER MODES 15 ACCOMPLISHED BY THE ZX ROUTIME. IF AM ERROR 15 EMCOJMTERED IM THESE R0UTIME5 EXIT IS TO ERROR E6 OR E7-
mmmmm
136
t PHOCRAX TirLE: AIM) IMTEGER *
* STARTIMG LA3EL: BA *
+ EMTRi' COMDITIOMS: *
* REGISrEH.S - A = MOr DEFIMED * X = ADDiiESS OF ARGUMEMT 1 * Y = ADDRESS OF A.-íGUMEMT 2 * Z = ADDRESS OF ARGUMEMT 3 *
* STORAGE LOCATIOMS -* P'f = LEMGTH OF ARGUMEMTS *
* EXIT COMDITIOMS: *
* REGISTERS -*
*
*
*
* CORE RE^UIí iEMEMTS *
* LIMKAGE: R I C P>B * JMP BA *
* GEMERAL DESCRIPTION: *
* THIS ROUTIME WILL ADD ARGUMEMT 1 TO ARGUMEMT * 2 AMD WILL PLACE THE SUM IM ARGUMEMT 3. * ARGUMEMT 1 AMD ARGJMEMT 2 ARE UMCHAMGED * UMLESS THEY ARE THE SAME AS ARGUMEMT 3« *
A = LOST X = UMCHAMGED Y = UMCHAMGED Z = UMCHAMGED
S: 104 OCTAL LOCATIOMS "11
:;iiii
^iH
, Ji
44000 BA 4 4002 TBB SAVE RETURM ADDR 44004 44006# 4 4010 STB 32 SET OVERFLOW = 0 TO START
zo ZT ZY STB TBB STB ALD STB LDB STB AAD AAD AAD RDC RDC RDC PLH
4400
31
31+1 3>0 B2 P# 33 X>B Y^B Z.»B X^X Y>Y Z>Z
4 4012 44014 STB 33 SAVE # BYTES 44016# 44017# AAD Y^B STEP TO RIGHT-HAMD BYTE+1 44020# 44021#BB 44022# RDC Y>Y BACK UP OME BYTE 44023# 4 4024# PLH SET LIMK = 0
^i^mmt kib
137
44025 44027 44030 44032# 4 4034 4 40361 44037 BC 4 4041 44043 44044 44047 44051 44052# 44053 44054 44057 44061 44062# 44063 44065# 44066 44070 44071 44073 44075 44077#
*
*
*
*
31 32 33 P#
44100 44102 44103
LDB SKM JMP ALD STB PLS LDB RLK SKR ALD STB SKP GOA SKR ALD STB 3KP GOS LDB RTR RDC SKZ STB JMP ELB RIC
32 2 BC 3>0 32
O^X Bí A 6 B, 1 32 0 A>Y 6 B> 1 32 0 A^Z 33 Bí A A>B 4 33 33 Bl B>P
ZR ZR ZR ZL ZD
2 1 1 722
15 THERE AM OVERFLOW? YES-MO-
SET OVEHFLOW = 0 SEr LIMK = 1 GET ARGl RYTE ADD OVERFLOW TO ARGl 3YTE ADD O.K.
SET OVERFLOW = 1
ADD ARG2 TO ARGl ADD O.K.
SET OVERFLOW = 1
STOHE IM ARG3
THRU? YES-MO- :;sji
COMSTAMTS USED BY MORMALIZE RTMS
EXIT
ADD & SU3TRACT IMTEGER Ã
44000 44010 44020 44030 44040 44050 44060 44070
3 10 310 027 150 000 102
100 102 055 037 010 134
014 341 056 022 005 244
205 322 057 000 107 107
310 310 074 310 004 004
101 103 350 102 1 15 115
022 025 102 075 001 001
000 026 1 1 1 360 310 310
102 134 224 350 103 042 010 250 132 310 103 150 021 170 100 052
44100 052 145 052 052
138
* PROGRAM TITLE: SUHTRACT IMTEGER *
* STARTIMG LABEL: BD *
* EMTRY COMDITIOMS: *
* REGISTERS - A = MOT DEFIMED * X = ADDHESS OF AHGUMEMr 1 * Y = ADDRES5 OF AHGUMEMT 2 * Z = ADDRESS OF AHGUMEMT 3 *
* STORAGE LOCATIOMS -* P# = LEMGTH OF ARGUMEMTS *
* EXIT CONDITIOMS: *
* REGISTERS - A = LOST * X = UNCHAMGED * Y = UMCHAMGED * Z = UMCHAMGED * .,
* CORE REQUIREMEMTS: 73 OCTAL LOCATIOMS ,; * V'
* LIMKAGE: R I C P ^ B 1,', * JMP BD :j * 1NII
JiiU
* GEMERAL DESCRIPTIOM: :;; * 'l * THIS ROUTIME WILL 5UBTRACT AHGUMEMT 2 FROM , * ARGUMEMT 1 AMD PLACES THE REMAIMDER IM ' * ARGUMEMT 3. ARGUMEMT 1 AMD ARGUMEMT 2 ARE * UMCHAMGED UMLESS THEY ARE THE SAME AS * ARGUMEMT 3» *
ZO ZT ZY STB TBB STB RTR LDB STB AAD AAD AAD ALD RDC RDC RDC
4410
31
31 + 1 Z>A P# B2 X>B Y>B A>B Z> 1 X^X Y^Y A^A
44104 BD 44106 TBB SAVE RETURM ADDR 441 10 44112 RTR Z>A ARG3 ADDR 441 14 44116 STB B2 LEMGTH 44120# 44121# AAD Y>B STEP TO RIGHT-HAMD BYTE+1 44122# 44123# ALD Z>1 SET UP FOR IST COMPLEMENT 44125#BE 4 4 1 2 6 # RDC Y^Y BACK UP OME BYTE 4 4 1 2 7
". ' • ' i . ' i . -
139
4 4 1 3 1 # 4 4 1 3 2 4 4 1 3 4 4 4 1 3 7 4 4 1 4 1 4 4 1 4 3 4 4 1 4 5 4 4 1 4 7 4 4 1 5 1 # 4 4 1 5 2 # 4 4 1 5 3 4 4 1 5 5 # 4 4 1 5 6 4 4 1 6 0 4 4 1 6 1 4 4 1 6 3 4 4 1 6 5 4 4 1 6 7 4 4 1 7 1 # 4 4 1 7 2 4 4 1 7 4 BF 4 4 1 7 6 #
P # 3 1 3 2 B3
GOL ASU AAD GOA RTR STB RTR RTR RTR GOS LDB RTR RDC SKM JMP STB RTR LDB RTR JMP ELB R I C ZL ZL ZL ZL ZD
B^Y Z>B Z,TI1 ZfK ZZ>B 3 3 Z^B A>Z B J A A > Z 3 2 B^ A A>B 2 BF 32 Z ^ A 3 3 B^Z BE 3 1 B:.P 72 2 4100 4102 4103
GET ARG2 BYTE
SET TV;0'S COHPLEMEMT SU3 FuOM ARGl (ADD COMP.)
SAVE O V ; E R F L O W
HESULT IM 3 ADDR OF RESULT IM Z RE5ULT IM A 5T0RE RESULT
THRU? MO-YES-
ADDR BACK IM A GET OVERFLOW
EXIT •iii
'Wl
44104 441 10 44120 44130 44140 44150 44160 44170
310 310 025 200 123 330 1 1 1 103
100 101 026 230 010 042 150 04 5
014 010 024 004 357 224 174 150
205 303 023 203 310 350 310 125
341 001 004 103 102 102 170
322 055 313 010 042 010 100
310 056 377 353 010 303 052
102 010 000 010 250 350
fm •pp Hlli as
140
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
44177 BP 44201 44203 44205# 44207 4 4211 44213# 44214# 44215# 44216#BQ 44217# 44220
PROGIÍAM TITLE: MORMALIZE
STARTIMG LAHEL: BP
EMTHY COMDITIOMS:
REGISTERS - A = MOT DEEIMED X = ADDHESS OF AHGUMEMT Y = MOT DEFIMED Z = MOT DEFIMED
STORAGE LOCATIOMS -P# = LEMGTH OF AHGUMEMT
EXIT COMDITIOMS:
REGISTERS - A = LOST X = UMCHAMGED Y = LOST Z = LOST
CORE REQUIREMEMTS: 112 OCTAL LOCATIOMS
LINKAGE: RIC P^B JMP BP
GEMERAL DE5CRIPTI0N:
THIS ROUTIME WILL MORMALIZE THE AHGUMEMT HIGHT. THE M BYTES OF THE ARGUMEMT WILL BE SHIFTED RIGHT UMTIL ALL ZEROES ARE SHIFTED OUT. THE EXPOMEMT IM BYTE N+1 WILL BE ADJUSTED. IF THE ARGUMEMT 15 EQUAL TO ZERO THE EXPONEMT WILL BE SET TO ZERO.
;w ;2ii
,,ii
ZO ZT ZY STB TBB STB ALD STB LDB RTR AAD AZE RDC GOL SKZ
4417
Bl
Bl + 1 B> 1 32 P# B^Z X>B A X*X
YJX
2
SAVE RETURN ADDR
SET # BYTES STEP TO EXPOMENT USE AS BIT CTR BACK UP ONE BYTE GET BYTE BYTE = 0
'mmmmm
141
4 4221 44223 44226# 44227 44230 44232# 44234 44236 44240#BR 44241 44242 44244 44246 44250#B5 44251 44252 4 4254 44256 44260# 44261 44263 44264 44266 44270 44272# 44273# 44274# 44275 44277 44301 44303# 44304 44306 44310#
] 1
]
]
44177
44200 44210 44220 44230 44240 44250 44260 44270
44300 44310
BT
BU
P# GG 31 32
310
100 102 131 150 066 057 025 150
322 052
JMP AAD RDC SKZ J:':P ALD STB JMP SHC SKR JMP RIC JI IP RDC SKZ RDC JMP LDB AAD LDB SKN 5TB RTR JMP GOL RTR AAD GOS LDB ASU RIC JMP ELB RIC ZL ZL ZL ZL ZD
014 205 341 322 150 240 216 022 105 150 132 010 350 102 277 234
004 201
BR A :r 0 1 0 z>z 2 BQ 3^0 B2 BT Y 2 35 Aí A BR Z>Z 4 X:»X BS P# X^B 32 6 O^X 3>A BU Y^X A^B Y:»B Y^X P# X^B P>B GG 31 B>P 722 1161 4100 4102
310 101 045 025 004 310 000 310 250 010 211 150 113 320 040 026
051 142
022 020 010 102 100 250 000 000
161
BYTE AIM) THHU YES-MO-
5 ET
MOT ALL ZEHOES 8 TO BIT CTR 7 ARG = 0
ARG = 0 IMDICATOR
15 LOW BIT = 0? YES-MO-ADD
THRU YES-
1 TO BIT CTR
9 •
MO-BACK X TO 5TART OF ARG
STEP TO EXPOMEMT 15 ARG = 0 ? MO-YES-
GET
ADD STOH:
STEP
SET EXP = 0
EXP
# BITS TO EXP E EXP
TO START OF ARG
SHIFT ARG RIGHT
EXIT
001 055 057 150 150 341 010 132
170
310 234 131 256 240 322 305 341
100
H ;,J>
142
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
44311 44313 44315 44317# 44320 44322 44324 44326# 44327 44331
BG
PROGRAM T I T L E : A D D FLOATIMG POIMT
STARTIMG LABEL: BG
EMTRY COMDITIOMS:
REGISTEHS - A = :JOT DEFIMED X = ADDRESS OF ARGUHEMT 1 Y = ADÍX-IESS OF ARGUMEMT 2 Z = ADDHESS OF AHGUMEMT 3
STORAGE LOCATIOMS -P# = LEMGTH OF ARGUMEMTS
EXIT COMDITIONS:
REGISTERS - A = LOST X = UMCHAMGED Y = UMCHAMGED Z = UMCHAMGED
CORE REQUIREMENTS: 364 OCTAL LOCATIOMS
LIMKAGE: RIC P>B JMP BG
GEMERAL DESCRIPTIOM:
THIS ROUTINE WILL ADJUST AHGUMEMT 1 AMD ARGUMEMT 2 UMTIL THEIR EXPOMEMTS ARE EQUAL. ARGUMEMT 1 15 THEM ADDED TO ARGUMEMT 2 AND THE SUM IS PLACED IM ARGUMEMT 3 WITH THE COMMOM EXPOMEMT. ARGUME.'JT 1 AMD ARGUMEMT 2 AHE UMCHAMGED UMLESS THEY ARE THE SAME AS ARGUMEMT 3« AT EXIT ALL ARGUMENTS ARE NORMALIZED.
zo ZT ZY STB TBB STB RTR STB TBB STB RTR STB TBB
4431
Bl
Bl + 1 X>B 35
B5+1 YíB B6
SAVE RETURM ADDR
ARGl ADDR
ARG2 ADDR
mmmm áã
143
44333 44335 44337 44341 44343
*
*
44345# 44347 44351# 44352 4 4353 44355 44357 44361 44362 44364
*
*
*
44366 44370# 44371# 44372# 44373# 44374# 44375 44376 44400# 44401# 44402# 44403# 44404 4 440 6# 44407 44411# 44412# 44413# 44415 4 4417 4 4421# 44422 44424# 44425# 44426 44430 44432#BH 44433 44434 44436#
STB RTR ST3 TBB
36+1 Z^B B7
ARG3 ADDR ST3 3 7 + 1
DETEiíMINE SIGM'S OF .ARGUMEMTS ALD STB GOL SKP RDC ST3 LDB SKP RDC STB
3^0 B2 + 1 B.»Y 4 B:»B 32+1 0>X 4 B>B 32 + 1
ARG2 ARG2
ARGl ARGl
POS MEG
POS NEG
CHECK TO SEE WHICH EXPOMEMT 15 LARGEST
LD3 AAD AAD GOL GOL ASU SKM JMP RTR AZE ASU RTR STB GOL LDB ASU GOS ALD STB LDB RTR ELB RTR RIC JMP JMP RTR SKN JMP RTR
P# X>B Y>3 A^X B^Y A>B 2 BH A^B A A^B A.»B 32 A^Y B2 A^B A^Y B> 1 33 32 B>A 36 B^X PÆ GA BI A.»A 2 BK A>B
STEP TO EXP GET ARGl EXP GET ARG2 EXP SUB ARG2 EXP FROM .ARGl EXP ARGl EXP < ARG2 EXP -ARGl EXP >>= ARG2 EXP
SET # BITS POSITIVE
SAVE # BITS GET ARG2 EXP
REDUCE .ARG2 EXP
SET IND
SET # BITS
ARG2 ADDR
SHIFT ARG2 LEFT
WERE EXP =? MO-ARGl EXP > ARG2 EXP YES-
^m
144
4 4437 4 4441# 44442 4 4444'/ 4 444 5'> 4 4446 # 44450 4 4452 4 4454. ' 44455 44457# 44460# 4 4461 44463#BI 44464 4 4465 44467# 44470 44472 44474# 44475 44477# 44500 44502# 44503# 44504 44506# 44507 44511# 44512# 44513# 44514 44516# 44517 44521 44522 44524 44526 44530 44532# 44533#BJ 44534
*
*
*
44536 BK 44540# 44541 44543# 44544
STB GOL LDB ASU GOS ALD STB LDB RTR ELB RTR RIC Jî-ÎP RTR SKM JMP RTR 5TB EL3 RTR ELB RTR LDB AAD AAD GOA GOS LDB RTR GOA GOS LDB RTR LD3 s z EL3 RTR JMP ELB RTR RIC JMP
32 A>X 32 A^B A^X 3^0 33 32 B^A 35 B>X P^B GA A^A 2 BK A>B B2 35 B:»X 36 B^Y P# X>B Y>B A^X A>X 32 B>A A^Y A^Y 32 B^A B3 6 B5 B^X BJ 36 B>X P>B GG
WE ARE READY TO ADD
STORE '/ 3ITS GET ARGl EXP
REDUCE ARGl EXP
SET IMD
SET # BITS
ARGl ADDR
SHIFT ARGl LEFT DID WE SHIFT ALL BITS? NO-YES-
SAVE # BITS LEFT TO SHIFT
ARGl ADDR
AHG2 ADDR
STEP TO EXPOMEMT UPDATE ARGl EXP
UPDATE ARG2 EXP
SET # BITS WHICH ARG TO SHIFT RIGHT? ARG2-
ARGl ADDR
ARG2 ADDR
GO SHIFT ARG RIGHT
ELB RTR ELB RTR LDB
35 B^X B7 B>Z P#
ARGl ADDR
ARG3 ADDR
145
44546^ 44547# 44550# 44551# 44552 44554# 44555 44557# 44560 44562# 44563# 44564 44566 44570 44571 44573 44575 44576 44600 44602# 44603# 44604 44606# 44607 4 4611# 44612# 44614# 44615 44617# 44620# 44622# 4 4623 44625# 44626#B 44627 44631 44633# 44634# 44635 44637 44641# 44642# 44643 44645 44647 4 4651# 44652 44654# 44655 44657#
AAD AAD GOL GOS ELB RTR ELB RTR ELB RTR RIC JMP LD3 SKZ JMP GOL SKM JMP LDB AAD GOL RIC GOS ELB RTR ALD RIC JMP GOL AND GOS ELB RTR RIC JMP ELB RTR RIC JMP ELB RTR RIC JMP RTR ELB RTR ELB RTR ELB RIC
X>3 Z^B A>X A>Z 35 B>K
36 B^Y 37 B:»Z P^B BA 32+1 2 B B^Z 2 B P# Z>B A^Z A^A A:»Z 37 B^X A>1 PíB GG A;»X A>177 A>X B5 B>X P:»B BP 36 B^X P:»B BP 37 B^X P^B BP X>Z B5 B>X B6 B^Y Bl B>P
STEP TO EXP
SET ARG3 EXP
AHGl ADDR
AHG2 ADDR
ARG3 ADDR
GO TO ADD INTEGER ARGl & ARG2 POS? YES-NO-HESULT POS? NO-YES-
STEP TO EXP
ADD 1 TO EXP
SHIFT ARG3 RIGHT
CLEAR MEG SIGN
NORMALIZE ARGl
ARG2 ADDR
NORMALIZE ARG2
ARG3 ADDR
NORMALIZE ARG3 ARG3 ADDR
ARGl ADDR
ARG2 ADDR
EXIT
RTM
iHI
:ii
11 "!) •S>
iU':;
146
* COMSTANTS 44660 31 ZR 44662 32 ZR 44664 33 ZR 44665 34 ZR 4 4667 3 5 ZA 44671 B6 ZA 44673 37 ZA
P# ZL GG ZL GA ZL BA ZL BP ZL
ZD 44311 311 260 014 44320 311 267 014 44330 271 014 205 44340 273 014 205 44350 263 230 136 44360 000 136 010 44370 025 026 200
USED 2 2 1 2 0000 0000 0000 722 1 161 1356 4000 4177
205 205 311 31 1 010 255 230
3Y ADD SU3TRACT F-P RTMS
31 1 31 1 272 274 255 31 1 034
261 270 010 022 31 1 263 115
04 6 047 353 000 263 341 151
31 1 311 31 1 360 322 032
44400 44410 44420 44430 44440 44450 44460 44470
040 020 034 040 311 262 210 351 262 034 214 022 001 311 264 351 262 042 171 271 043 051 151 063 041 111 151 136 262 200 351 262 034 204 311 264 351 262 042 171 051 142 356 041 111 151
142 356 040 311 022 000 267 043 136 040
311 262 171 267 043 171 27 1 044
44500 44510 44520 44530 44540 44550 44560 44570
341 322 025 026 000 120 204 351 262 042 244 214 351 262 042 351 264 133 171 267 010 315 151 133 171 043 200 171 131
271 171 224 273 151
043 273 171 045 226
051 045 267 051 000
142 341 043 150 305
161 322 171 000 115
171 025 271 351 151
267 027 044 263 226
44600 44610 44620 44630 44640 44650 44660 44670
341 273 037 177 273 267 052 000
322 043 177 171 043 043 145 000
027 021 204 271 051 171 052 000
220 001 171 043 150 27 1 145 000
010 051 267 051 177 044 052 000
100 142 043 150 010 171 052
224 161 051 177 331 2 60 145
171 200 150 171 171 052 000
tv* mmmm
147
* PROGRAM TITLE: SUBTRACT FLOATIMG POIMT *
* STAHTIMG LABEL: 3L *
* EMTRY COMDITIONS: *
* REGISTERS - A = :]0T DEFIMED * X = ADDRESS OF ARGUMEMT 1 * Y = ADDRESS OF ARGUMEMT 2 * Z = ADDRE5S OF ARGUMEMT 3 *
* STORAGE LOCATIOMS -* P# = LENGTH OF ARGUMENTS *
* EXIT CONDITIONS: *
* REGISTERS - A = LOST * X = UMCHAMGED * Y = UMCHAMGED * Z = UMCHAMGED *
* COHE REQUIHEMENTS: 151 OCTAL LOCATIOMS \
* LINKAGE: RIC P^B J * JMP BL li *
* GEMERAL DESCRIPTION: *
* THIS ROUTINE WILL SU3THACT ARGUMEMT 2 FROM * AHGUMEMT 1 AMD PLACES THE REMAIMDER IN * ARGUMEMT 3- IF ARGUMENT 1 15 EQUAL TO * ARGUMEMT 2 ARGUMEMT 3 IS SET TO ZERO. IF * ARGUMEMT 1 IS NOT EQUAL TO AHGUMEMT 2 THEN * ARGUMEMT 2 IS MEGATED AMD THE 3G ROUTIME 15 * USED TO ADD THE COMPLEMEMT. ARGUMEMT 1 AMD * ARGUMEMT 2 AHE UMCHAMGED UMLESS THEY ARE THE * SAME AS ARGUMEMT 3» AT EXIT ALL ARGUMEMTS * ARE MORMALIZED. *
ii
ZO ZT ZY STB TBB STB RTR STB TBB STB RTR
4467
34
34+1 X^B 35
B5+1 Y^B
44675 BL 44677 TBB SAVE RETURN ADDR 44701 44703# RTR X^B ** 44704 STB 35 * 44706 TBB * 44710 STB B5+1 * 44712# RTR Y^B *
^mmmmm.
148
44713 44715 44717 4 4721 44723 44725 44727
ST3 TB3 ST3 RTR STH T3B STB
36
36+1 Z>B 3 7
B7+1
* SAVE AHG ADDR^S *
*
*
*
*
* *
IF ARGl ARG2> ZERO ARG3 AND EXIT
44731 # 44732# 44733 44734 44736 44740 44741 44743 BM 44745# 44746 44750# 44751# 44752 44754 44756# 44757 44761# 44762 44764# 44765# 44766
*
*
*
44770# 44771 44773 44774 44776 45000 45001 45003 B 45005 45007# 45010# 45011 45013# 45014 45016
RTR ASU SKZ JMP RTR SKN JMP ELB RTR LDB RTR RIC JMP ELB RTR ELB RTR ELB RTR RIC JMP
X^B Y>3 2 BM YY:»YY 2 BN 36 B^X P# B^A P^Z GV 35 B^X 36 3>Y 37 B^Z P^B BG
15 ARGl MAYBE NO-
NO-Y E S -
= ARG2?
ARG2 ADDR
LENGTH
MEGATE * *
*
* SET *
*
* *
ARG2
UP ARG ADDR •s
GO TO ADD F-P RTN
IF ARG2 = ARG3 > GO TO 30
RTR ASU SKZ JT'IP RTR SKN JMP RTR LDB RTR RIC JMP RIC JMP JMP
Y^B Z;»B 2 B zz>zz 2 30 YyX P# B>A P^Z GV P>B BP 30
13 ARG2 ARG3?
NO-
NO-YES-ARG2 ADDR
LENGTH
SET ARG2 BACK
NORMALIZE ARG2
imM
149
4 5020 BM 45022# 45023. 45025 45027# 4 5030 4 5032 30 4 5034# 45035 45037# 45040 45042# 45043 45045#
P# GT GV BP BG 34 35 36 37
ELB RTR LDB RIC RIC JMP ELB RTR ELB RTR ELB RTR ELB RIC ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
B7 B^X P# BJ(\
P>Z Gr 35 B^X 36 B:.Y 37 B- Z 34 B:»P 722 776 1013 4177 431 1 4665 4667 4671 4673
ARG3 ADDR
LEMGTH+1 BYTE FOR EXP
ZERO ARG3
ARGl ADDR
ARG2 ADDR
ARG3 ADDR
EXIT
44675 311 265 014
44700 44710 44720 44730 44740 44750 44760 44770
4 5000 45010 45020 45030 45040
205 311 266 046 311 267 014 205 31 1 272 2 74 1 1 1 042 271
270 010 046 152 053 044
047 353 035 020 142 171
31 1 31 1 131 171 013 273
271 273 151 271 171 045
014 014 343 043 267 051
205 205 010 341 043 150
111 152 032 010 312 341 053 142 013 051 150 177 171 273 043 341 322 010 141 376 171 267 043 171 171 273 045 171 265 052
311 311 366 322 171 311
047 004 203 131 152 003 010 377
322 042 152 032 105 053 271 044
IMIMI
150
*
+ *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM TITLE: MULTIPLY & DIVIDE
STARTING LADELS:
DA - ^ ULTIPLY EA - DIVIDE
EMTRY CONDITIOMS:
REGISTERS - A =
X =
Y = Z =
0 (INTEGEH) 1 (FLOATIMG POIMT) ADDHESS OF ARGUMEMT ADDHESS OF AHGUMEMT ADDRESS OF ARGUMEMT
1 2 3
STORAGE LOCATIOMS -P# = LENGTH OF ARGUMENTS
EXIT COMDITIONS:
REGISTERS - A =
X Y Z
MULTIPLY IMTEGER IMDICATOR 0 (MULTIPLY DOME) 1 (FIELD TOO SMALL--
MULTIPLY NOT DONE) UNCHAMGED UNCHAMGED UMCHAMGED
CORE REQUIREMENTS: 1227 OCTAL LOCATIONS
LINKAGE: RIC JMP
RIC JMP
P>B DA (MULTIPLY)
P.»B EA (DIVIDE)
GENERAL DESCRIPTIOM:
THE MULTIPLY ROUTINE WILL MULTIPLY ARGUMEiMT 1 BY AHGUMEMT 2 AND WILL PLACE THE RESULT IN ARGUMEMT 3. THE DIVIDE ROUTINE WILL DIVIDE ARGUMEMT 1 BY ARGUMEMT 2 AND WILL PLACE THE QUOTIEMT IM ARGUMENT 3» IM BOTH ROUTINES ARGUMEMT 1 AMD ARGUMENT 2 ARE UMCHANGED UNLESS THEY ARE THE SAME AS ARGUMEMT 3. THESE ROUTINES USE A D0U3LE WORK AREA TO PRESERVE MAXIMUM PRECISION.
I K
151
*
*
45046 DA 45050 45052 45054# 4 5056 45060
3k
*
45062 EA 4 5064 45066 45070# 45072
•T'
*
45074#D3 45075 45077# 45101 45103# 4 5104 45106 45110 45112# 451 13 451 15 451 17 45121 45123 45125 45127 45131 45133 45135 45137
*
4 5141 45143 45145# 45146# 45147# 45150
*
45152# 4 5154 45156
ZO ZT ZY
^'ULTI srB T3B STB ALD STB JMP
4 5046
PLY Dl
Dl+1 B>0 D2 DB
DIVIDE STB T33 5 TB ALD STB
Dl
Dl+1 B^ 1 D2
COMMOM RTMS RTR STB ALD STB RTR STB TBB ST3 RTR 5TB TBB STB RTR STB TBB 5TB ELB STB TBB 5T3
A>B D3 3^0 E5 X^B D5
D5+1 Y^B D6
D6 + 1
Z.»B
D7
D7+1 A# El
El + 1
CHAMGE PRECISIOM LDB 5TB RTR AAD RTR STB
MOVE ARGl ALD STB ELB
P# D4 B>A A>B A>B P# ?< ARG2 B> 1 E2 El
SAVE HETURM ADDR
SET MULTIPLY IMD
SAVE RETURM ADDR
SET DIVIDE IMD
SAVE IMTEGER OR F-p IMD
SET COMPLETIOM IMD
SAVE ARGl ADDR
SAVE ARG2 ADDR
SAVE ARG3 ADDR
SAVE WORK AREA ADDR
SAVE OLD PRECISIOM
DOUBLE PRECISIOM
STORE MEW PRECISIOM rO D0U3LE WORK AREA
i iMJMJll i lW
152
45160# 45161 DC 45163# 45164 45166 45167 45171 45173 45175#DD 45176 4 5200 45202 45203 45205 45207# 4 5210 DE 45212# 4 5 2 1 3 4 5215# 4 5 2 1 6 45220 4 5221 4 5 2 2 3 4 5 2 2 5 4 5 2 2 6 4 5 2 3 0 # 4 5232 4 5 2 3 4 4 5 2 3 6 # 4 5 2 3 7
*
*
4 5 2 4 1 DF 4 5243 4 5 2 4 5 # 4 5 2 4 6 # 4 5 2 4 7
*
*
4 5 2 5 1 4 5 2 5 3 # 4 5 2 5 4 4 5 2 5 6 4 5 2 5 7 4 5 2 6 1 # 4 5 2 6 3 4 5 2 6 5 4 5 2 6 7 # 4 5 2 7 0 # 4 5 2 7 1
RTR LD3 RTR LDB SKP RDC JMP AZE GOS RIC HDC SKZ JMP LDB RTR GOL GOS RIC RIC RDC SKZ JMP LDB SKM jr p ALD STB ELB RTR JMP
1 RESU; RTR LDB RTR RIC JMP
3>Y D4 B>A O^X 4 3^Z DD Z Z^Y Y>Y A^A 2 DD D4 B^A Z^X Z>Y Y^Y x>x A:»A 2 DE E2 2 DF B>0 E2 D6 B^X DC
LT W Y>X P# B>A P^Z GT
WORK AREA ADDR
OLD LEMGTH CHECK ARG SIGM SIGM POSITÍVE 5IGN NEG-SET Z = ALL 1 'S
SET Z = 0 STORH SIGM STEP WORK ADDR SET SIGM IM M BYTES? YES-NO-
SET OLD LEMGTH AGAIN
MOVE BYTE STEP WORK ADDR STEH ARG ADDR MOVED ALL BYTES? YES -MO-M0V"ED BOTH ARG? NO-YES-
ARG2 ADDR
IF ARGl OR AHG2 NEG ELB El RTR LDB SKM JMP ALD STB LDB RTR RIC JMP
B^X 0>X 2 DG B^ 1 E2 P# B^A P^Z GV
ADDR OF RESULT WORK AREA
SET DOUBLE LEMGTH
ZEHO RESULT FIELD
- CHANGE TO POSITIVE
WORK ADDR 15 ARGl NEG? YES^ NO-
SET SIGN IND
DOUBLE LENGTH
NEGATE ARGl
mm'
153
45273 DG 45275# 4 5276 45300 45301 45303 45305# 45306 45310 45312 4 5314# 45315# 45316
*
*
45320 DH 45322# 45323# 45324# 45325# 45326# 45327# 45330# 45331 45333 45335 45336 45340
*
*
45342 EJ 45344 45346 45350 45351 45353 45355# 45356# 45357 45361 EK 45363 45364 45366 45370# 45371 45373# 45374# 45375 45377
L]V3
AAD LDB SKM JMP LDB RTiv
RDC STB LDB RTR RIC JMP
P# X^B O^X 2 DH E2 B:»A A:»B E2 P# B:»A P^Z GV
GO MULTIPLY OR LDB RTR AAD RTR AAD RTR AAD RTR STB LDB SKZ JMP JMP
COMMON R
LDB STB LDB SKN Jî P ELB RTR RIC JMP LDB SKN JMP ELB RTR LDB RTR RIC JMP LDB
P# B^A A^B A^B A^B A.»B A^B A>B E3 D2 2 EB DI
OUTINE
D4 P# D3 2 EK D7 B>X P:»B BP E2 2 EL D7 B.»X P# B>A P^Z GV D3
STEP TO ARG2 15 ARG2 MEG? YES-NO-
SET SIGM IND
D0U3LE LE'MGTH
NEGATE ARG2
DIVIDE * *
*
*
*
* MULTIPLY D0U3LE LEMGTH * BY 8 *
*
* *
MULTIPLY OR DIVIDE?
DIVIDE-MULTIPLY-
FOR EXIT
SET PRECISION BACK IMTEGER OR FLOAT-PT? FLOAT-PT IMTEGER
ARG3 ADDR
NOHMALIZE ARG3 SHOULD ANS BE NEGATED? YES-NO-
NEGATE ARG3 FLOAT-PT
ss
154
45401 4 5402 454Û4# 45405 4 5407 EL 45411# 4 5412 45414# 4 5415 45417# 45420 45422# 45423 45425#
*
SKN JMP RIC J ÎP EL-'3 RTR ELB RTR ELB HTR LDB RTd ELB RIC
* CONSTANTS *
45426 Dl ZR 4 5430 D2 ZR 45431 D3 ZR 4 5432 D4 ZR 4 5433 D5 ZA 4 5435 D6 ZA 45437 D7 ZA
*
45441 El ZA 45443 E2 ZR 45444 E3 ZR 4 5445 E4 ZR 45446 E5 ZR
A# ZL P# ZL GT ZL GV ZL BP ZL DI ZL EB ZL
ZD
2 EL P>B BP D5 BJX
D6 B>Y D7 B^Z E5 B>A Dl B>P
2 1 1 1 0000 0000 0000
0000 1 1 1 1 677 722 776 1013 4177 5447 5751
YES-NO-
NORMALIZE AGAIM * *
*
* SET UP ARG ADDR'S FOR * EXIT *
* *
SET COMPLETIOM INDICATOR
EXIT
RETURN ADDR 0=MULTIPLY 1=DIVIDE 0=INTEGER 1=FL0AT-PT OLD PRECISIOM AHGl ADDR AHG2 ADDR ARG3 ADDR
WORK AREA ADDR IMD FOR MEGATING ARG3(0=0K) (DBL PRECISIOM * 8) CTR COMPLETION IND (0=YES.» 1 =N0)
mmm
155
45046 45050 45060 45070
45100 45110 45120 45130 4 5140 45150 45160 45170
45200 45210 45220 45230 45240 45250 45260 45270
45300 45310 45320 45330 4 5340 45350 45360 45370
45400 45410 45420 45430 4 5440
313 014 152 022
000 313 036 040 042 301 044 235
010 000 131 022 161 376 273 053
115 313 341 040 153 111 177 043
031 033 353 052 000
026 205 074 001
313 034 010 161 341 322 353 152
200 103 152 000 010 173 022 142
152 043 322 313 047 152 353 341
11 1 043 046 052 000
313 313 313
04 6 047 353 277 322 022 032 175
131 240 210 313 312 041 001 013
320 341 042 044 353 361 043 322
153 173 042 052 000
027 02 6 030
046 313 313 313 313 001 042 004
152 010 353 043 341 043 313 341
353 322 024 353 032 173 11 1 042
007 035 173 000 000
022 014 040
313 035 037 041 032 313 360 003
175 122 043 173 322 360 043 322
043 042 040 030 301 037 153 053
051 044 026 000 000
000 205 313
033 014 014 014 042 043 000 240
353 050 111 035 042 000 341 025
042 053 024 131 322 043 007 142
150 173 052 000 000
313 313 031
014 205 205 205 02 4 173 136 010
032 010 152 0 43 053 1 15 322 360
010 142 040 153 35 3 051 173 013
177 037 052 000 000
030 027 022
205 313 313 313 040 041 010 122
042 200 241 152 141 152 042 000
250 013 024 351 031 150 037 353
173 045 145 000
mmm
156
* + * *
*
4 5447 DI 4 5451# 45452 45454# 45455# 4 5456# 45457# 45460# 4 5461 45462 45464 45466 45470 45472# 45473# 45474 45476 DJ 45500# 45501 45503# 45504# 45506# 45507 45511 45513# 45514# 45515 45517# 45520 45521 45523 45525# 45526# 45530# 45531 45533
•X-
45535 DK 45537 45540 45542 45544# 4 5545 45547#
MULTIPLY
ZO ZT ZY
MULTIPLY ELB RTH LDB AAD AAD RDC GOL SHR SKS j:''P
RIC RTR ELB RTR RIC jr-íp ELB RTR LDB AAD ALD RIC JMP LDB RTR RIC JMP RTR SKN JMP ELB RTR ALD RIC JMP JMP
MULTIPLY LDB SKN JMP ELB RTR ELB RTR
45447
ARGl BY AH.G2 El B^Y P# Y^B Y^B Y^Y A^Y A 2 DJ Y^Z Z>X El B:»Y P^B BA El B^X P# X^B A>1 P:»B GG P# B.»A P:»Z GO A^A 2 DK El B^X A^ 1 P^B GA DI
DONE - SET U D3 2 DR D5 B>X D6 B^Y
LOW Oi.DER BYTE OF ARG2
SHIFT OUT BIT 0 BIT 0 = 1 BIT 0 = 0 AHG3 ADDR X = ARGl = .ARG3 ADDR
ARGl = ARG2
ADD ARGl TO ARG3
ARG2 ADDR
SHIFT ARG2 RIGHT 1 BIT
LENGTH
CHECK ARG2 FOR +^->0 THRU (ARG2 = 0)? NO-YES-
ARGl ADDR
SHIFT ARGl LEFT 1 BIT
INTEGER OR FLOAT-PT? FLOAT-PT INTEGER
OLD ARGl ADDR
OLD ARG2 ADDR
157
45550 45552# 45553 45555# 45556# 45557# 45560# 45561 45563# 45564# 45565 45567# 4 5570# 45571# 45572
*
45574 45576# 45577# 45600 45602# 45603 45605 DL 45607 4 5610 45612# 4 5614# 4 5615# 45616 45617 45621 45623 45624 45626 4 5630 DM 45632# 4 5633#DN 45634# 4 563 5 45636 45640 45642 45644 DO 45646# 4 5647 45650 45652 DP 45654# 45655 45657
ELB RTR LDB AAD AAD GOL GOA LDB AAD AAD RTR AAD GOS RIC JMP
SHIFT RES LDB RTR SHR LDB RTR RTR LDB SKZ JMP ASU RIC RDC SKZ JMP LDB SKP RIC JMP RIC RTR RTR AAD SKR JMP RDC JMP RTR RTR SKN JMP LDB AAD RTR GOA
El 3>Z D4 X^B Y>3 A^X A:»Y p# ZíB Z:»B Z>X Z^B A^Z P J B
BP ULT RIGHT E3 B.»A A D4 B^Z X^Y O^X 2 DM A^OIO X^X Z:»Z 2 DL O^X 2 A í A DO A.»A B>X X>B X>B 2 DO A > A DN Y>X A.»A 2 DS P# Y>B A ^ Z Z > Y
WORK ADDR OLD PRECISIOM
5TEH TO EXP AHGl EXP ADD AHGl AMD ARG2 EXP
SAVE ARG3 WORK ADDR ARG3 WORK EXP STORE EXP IM WORK AREA
MORMALIZE ARG3 WORK TO CLEAR IST N BYTES
D3L PREC * 8 # 3ITS TO SHIFT = PHEC * 8
OLD PRECISION SAVE ARG3 WORK ADDR IS BYTE = 0 ? YES-MO-SUB 8 FROM ;f BITS TO SHIFT 5TEP ARG3 ADDR CHECKED IST N BYTES? YES-NO-IS SIGN BIT CLEAR? YES-SHIFT 1 BIT TO CLEAR SIGN
ADD 1 MORE FOR SIGN
SHIFT BYTE LEFT 1 BIT BIT 7 = 0 BIT 7 = 1 SUB 1 FROM # BITS TO SHIFT
ARG3 WORK ADDR WERE IST N BYTES = 0 ? NO-YES-
ARG3 WORK EXP
ADD BITS TO ARG3 EXP
158
45661# 45662# 4 5663 45665
*
4 5667 DR 45671?^ 45672 DS 4 5674# 45675 DU 45677 45700 45702# 45703 45705 45706 45710 45712 45713 45715 45717# 45720 45722# 45723 45725# 45726#DT 45727 45731# 45732 45734 45736 45737 45741 45743#DV 45745 45747
P# GO GG GA BA BP EJ D3 D4 D5 D6 D7 El E3 E5
31 rs
GOS ZíY R IC P B JMP GG JMP DS
MOVE LAST M LD3 P# AAD X.,B LD3 D4 RTR B>/\ LDB 0>X SKZ 2 JMP DV RIC X^X RDC A..A SKZ 2 JI P DU LDB O^X SKP 2 JT-P DV LDB D4 RTR B>í\ LDB D3 AAD A>B ELB D7 RTR B^Z GOL Y>X GOS Y^Z RIC X.»X RIC Z.»Z RDC A-»A SKZ 2 JMP DT Jî-H^ EJ ALD B >1 STB E5 JMP EJ ZL 722 ZL 1041 ZL 1161 ZL 1356 ZL 4000 ZL 4177 ZL 5342 ZL 5431 ZL 5432 ZL 5433 ZL 5435 ZL 5437 ZL 5441 ZL 5444 ZL 5446
SHIFT ARG3 WORK RIGHT
TO RKSULT FIJ' LD
OLD PRECISIOM 15 FÍELD TOO SMALL? MO-YES-
THRU CHECKIMG? YES-NO-SIGM BIT CLE.AR? YES-NO-
OLD PRECISION
ADD 1 MOHE IF FLOAT-PT
ARG3 ADDR
MOVED ALL BYTES? YES-NO-GO TO EXIT
SET IMD TO NOT COMPLETE GO TO EXIT
159
ZD
45447 4 5450 45460 45470
45500 45510 45520 45530 4 5540 45550 45560 45570
45600 45610 45620 45630 4 5640 45650 45660 45670
45700 45710 45720 4 5730 45740 45750
173 041 0 60 173
043 161 1 11 051 153 173 244 224
353 153 205 010 010 153 223 322
153 3 60 353 332 326 342
044 125 041
341 341 153 142 267 041 341 051
032 230 3 60 100 200 272 240 025
343 000 031 050 152
341 153 044
322 322 135 356 173 045 322 150
045 030 000 043 153 341 051 353
050 135 024 010 342
322 076 051
025 042 173 153 033 353 027 177
010 010 135 046 233 322 142 032
010 153 173 133 022
02 6 010 150
021 053 041 047 043 032 027 353
321 050 010 025 010 026 161 042
200 343 037 010 001
026 132 000
001 142 043 353 173 025 010 044
360 057 100 105 312 010 153 360
131 353 045 200 313
056 010 173
051 041 021 031 035 026 313 042
000 131 153 153 041 330 2 72 000
153 032 234 131 046
210 313 041
142 041 001 1 11 044 200 027 060
131 153 244 244 1 11 000 341 131
275 042 000 153 152
mm
160
* * *
*
DIVIDE
*
45751 EB 45753# 45754 45756# 45757 45761# 45762# 45763 45765 ^5161^ 45770# 45771# 45772# 45773 45775 ^blllr^ 46000 46002# 46003# 4 6004 46006 4 6010# 46011 46013# 4 6014# 4 6015# 46016 46020
*
46022 EC 46024# 46025 46027# 46030# 46031# 46033# 46034
*
46036 46040# 46041# 46042# 46043 46045#
ZO ZT ZY
DIVIDE
45751
AHGl 3Y ARG2 ELB El RTil B>X LDB P# AAD X.»B LDB E3 RTR B^A RIC P^B JMP GA LDB E3 RTR B:»Y RTR A:»B ASU Y^B RTH Y:»B STB E4 ELB El RTR B^X LDB E3 RTR B.»A RI C P:» B JMP GA LDB E4 RTR B>Y LDB E3 ASU Y^B RTR A:»B AAD Y>B RIC Y>B ST3 E4
ARGl ADDR
ARG2 ADDR
SHIFT ARG2 ALL THE WAY LEFT
Y=CTR=P# * 8
Y=CTR= (P# * 8) - A
CTR
ARGl WORK ADDR
P# * 8
SHIFT ARGl LEFT
CTR
CTR - (P.f *
SKIFT RESULT FIELD
CTR CTR NEW
LEFT
- (P# + 1 CTR BIT
8)
8) + A
ELB RTR LDB AAD AAD ALD RIC JMP
El B^X P# X^B X>B A^l P^B GA
ARGl = ARGl - ARG3 ELB RTR RTR RTR LD3 AAD
El B^X B^Y B^Z P# YJB
ARG3 WORK ADDR
SHIFT ANS LEFT
ARG1 ADDR
ARG2 ADDR
•«ip K l
161
46046# 4 6047 46051 46053# 4 6054'/ 46055 46057# 4 6060 46061 46063 46065# 46066 46070 46072 46074# 46075# 46076 46100 46102 ED 46104# 4 6 1 0 5 46107# 4 61 10 # 4 6 1 1 1 # 46112# 4 6 1 1 3 4 6 1 1 5 4 6 1 1 7
*
46121 EF 4 6 1 2 3 # 4 6 1 2 4 4 6 1 2 6 # 4 6 1 2 7 # 4 6 1 3 1 # 4 6 1 3 2
*
4 6 1 3 4 4 6 1 3 6 # 4 6 1 3 7 4 6 1 4 1
*
4 6 1 4 3 4 6 1 4 5 # 4 6 1 4 6 # 4 6147 4 61 51 # 4 6 1 5 2 4 6 1 5 3
RIC JMP LDB RTR RIC JMP RTR SKM JMP ELB RTR RTR RTR LDB AAD RIC JÎ-ÎP JMP ELB RTR LDB AAD AAD AAD RDC LDB RIC STB
P:rB BD P# B>A P>Z GO A^A 2 ED El B>X X>Y X>Z P# Y^B P.»B BA EF El B^X P# X^B X.»3 X-»B X>X 0>X B^B 0>X
SHIFT ARG2 HIGHT ELB RTR LDB AAD ALD RIC JMP
SUBTRACT LDB RTR RDC STB
El B>X P# X>B (\>l P:»B GG
1 FROM E4 B^A A^B E4
CHECK ARG2 = 0 LDB RTR RIC JMP RTR SKZ JMP
P# B^A P>Z GO A^A 2 EC
SU3 ARG2 FROM ARGl
15 ARGl NEG?
YES-NO-
AH.Gl ADDR
ARG2 ADDR
AHGl = ARGl + ARG2
ARG3 ADDR RIGHT HAND BYTE+1 LOW OHDER BYTE OF ARG3
ANS = ANS + 1
1 BIT
ARG2 ADDR
SHIFT ARG2 RIGHT CTR
13 ARG2 = 0?
YES-NO-
162
*
46155 46157# 46160# 46161 46163# 46164 4 6166 46167 46171 46173# 46174 46176# 46177 4 6201# 46202 4 6204# 46205# 46206# 46207 4 6211# 46212# 46213# 4 6214 46216 EG 46220# 46221 46223# 46224 46226 46230# 46231 46233# 4 6234# 46235 46237# 46240# 46241
*
46243 EH 4 6245# 46246 46250# 4 62 51 # 4 62 52 46254# 46255 4 6257# 4 6260#EI 4 6261
DIVIDE DOME - SE LDB RTR SHR LDB AAD LDB SKN JMP ELB RTR ELB RTR ELB RTR LDB AAD AAD AAD GOA GOL ASU GOS JÎ'IP AZE RTR ASU RTR 3TB ELB RTR LDB AAD AAD LDB RTR RIC JMP
MOVE IST ELB RTR LDB AAD AAD ELB RTR LDB RTR GOL GOS
E3 B^A A E4 AJB
D3 2 EG D5 B>X D6 B>Y D7 B:»Z D4 X>B Y^B Z.»B A^X B.»Y A>B A.»Z EH X A^B X^B K>B E4 El B>X P# X:»B X^B E4 B>^ P^B GG
N BYTES El B>X P# X,B X>B D7 B>Z D4 B^A Y^X Y^Z
T UP ANSWER DBL PREC * 8
PREC * 8
A = CTH + PHEC*8 IMTEGER OR FLOAT-PT? FLOAT-PT IMTEGER
TO
OLD PRECISION
STEP TO EXP
ADD CTR TO ARGl EXP AHG2 EXP SUB ARG2 EXP THIS 15 ARG3 EXP
CTR NEGATE CTR
POSITIVE CTR
ANS WORK ADDR
CTR
SHIFT ANS CTR BITS TO RIGHT ARG3
ARG3 WORK ADDR
ARG3 ADDR
OLD PRECISION
163
46263# RIC X>X 4 62 64 RIC Z>Z 46266 RDC A^A 4 62 70 SKZ 2 4 6271 JMP EI 4 6273 JMP EJ
P# ZL 722 GO ZL 1041 GG ZL 1161 GA ZL 1356 BA ZL 4000 BD ZL 4104 EJ ZL 5342 D3 ZL 5431 D4 ZL 5432 D5 ZL 5433 D6 ZL 5435 D7 ZL 5437 El ZL 5441 E3 ZL 5444 E4 ZL 5445
ZD 45751 173 041 043 341 322 4 5760 044 042 051 142 356 45770 040 035 047 313 045
MOVED YES-NO-GO TO
ALL BYTES?
COMMOM RTM FOii KXIT
025 353 173
353 044 041
044 043
46000 46010 46020 4 6030 46040 46050 4 60 60 4 6070
353 044 313 025 043 104 115 010
044 353 045 02 1 044 341 154 331
042 044 173 001 045 322 102 341
051 035 041 051 341 042 173 322
142 040 043 142 322 053 041 026
356 026 341 356 02 6 142 043 051
353 010 322 173 051 041 010 150
045 152 025 041 150 041 321 000
46100 46110 46120 46130 46140 46150 46160 4 6170
154 025 000 001 250 041 0 60 216
121 025 173 051 313 041 353 173
173 055 041 142 045 131 045 033
041 360 04 3 161 341 154 024 043
043 000 341 353 322 022 353 173
341 010 322 045 042 353 031 03 5
322 155 025 042 053 044 1 1 1 044
025 320 021 010 142 042 154 173
4 6200 4 6210 46220 46230 46240 46250 46260 46270
037 120 040 043 051 025 234 131
045 230 004 341 142 025 000 154
353 034 201 322 161 173 332 260
032 224 046 025 173 037 050 152
025 154 313 025 041 04 5 010 342
026 243 045 353 04 3 353 133
027 004 173 045 341 032 010
000 001 041 042 322 042 200
164
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM TITLE: IMHUT COMVEHSIOM
STARTIMG LA3EL: CA
EMTRY COMDITIOMS:
!iEGISTEHS - A X
Y Z
MOT Di'H'IMED ADDRESS OF COMSTAMT (MAY BE + OR - 5IGM) MOT DEFIMED MOT DEFIMED
STORAGE LOCATIOMS -A% = TWO BYTE FIELD COMTAIMING
MODE AMD DATA STORAGE ADDRESS FOR COMVEHTED DATA
P# = LEMGTH OF DATA STORAGE
EXIT COMDITIOMS:
R E G I S T E R S • - A
X Y Z
= 0 (MO SIGN AFTER • E ^ ) 1 (+ OR - SIGM AFTER ' E ^ )
= U::CHAMGED = LOST = LOST
STOHAGE LOCATIONS -A% = TWO BYTE FIELD UPDATED WITH
IMTEGER OR FLOATIMG POINT IMDICATOR
CORE REQUIREMEMTS: 642 OCTAL LOCATIONS
LIMKAGE: RIC P^B JMP CA
GEMERAL DESCRIPTION:
THIS ROUTINE WIL BIMAHY FORM AND DATA STORAGE. T THE ARGUME:JT 1 W DECIMAL POINT (. IF THE NUM3ER IS MUM3ER. FLOATIM COMVERTED TO A T NENT. ALL FLO.AT LIZED AT EXIT.
L CHANGE THE CONSTAMT INTO STORE THE C0M">7EJHrED DATA IM HE COMVEHTED DATA 15 ALSO IM ORK AREA. THE PRESEMCE OF A )> OCTAL CODE 2 56^ DETERMINES AM IMTEGER OR FLOATIMG POIMT G POIMT MUM3EH EXPOMEMTS ARE WO^S COMPLEMEMT 3IMARY EXPO-ING POINT MUMBERS ARE MORMA-
165
46275 CA 46277 46301 46303# 46304 46306 46310 46312# 4 6314 46316 46320 46322 46324 46326 46330 46332 46334
*
46336 46340# 46341 46343 46345# 46346 46350 46352# 46353 46355 46357# 46360 46362 46364#
*
46365 46367 46370 46372# 46374 46376# 46377# 46401 46402 46404# 46406 4 6410 46412 CE 46415 46416
ZO ZT ZY STB TB3 ST3 RTR STB TBB STB ALD ST3 STB STB STB ST3 STB STB STB ST3
ZERO WORK ELB RTR LDB RIC RIC JMP ELB RTR LDB RIC RIC JMP ELB RTR
46275
Cl
Cl + 1 KJB
C2
C2+1 Bí 0 C3 C3 + 1 C3+2 C3 + 3 C3 + 4 C3 + 5 C4 C4+1 C6 AREAS A) B>X
P# B^ A P^Z GT A = B>X
P# 3í A P>Z GT C2 B>X
SET MUMBER SIGM LDB SKZ JMP ALD STB GOL ASU SKZ JMP ALD STB JMP AAD SKM JMP
C3 2 CF B> 1 C3 A>X A>255 2 CE B> 1
C3 + 1 CQ (\>2 2 CQ
SAVE RETURM ADDR
SAVE ADDR OF COMSTAMT
SET SWITCHES OFF
DEC EXP = 0
IMD OFF
ARGl WORK AREA
LEMGTH +1 FOR EXP
ZERO ARGl
ARG2 WORK AREA
ZERO ARG2
RESTORE BUFFER ADDR
IS # SIGM SET MO-YES-
TURN # SIGM SET SW ON
15 IST CHAR '-•? YES-NO-
SET # SIGM NEG GET MEXT CHAR 13 MEXT CHAR '+'? MO-YES-GET MEXT CHAR
liiiMn
166
4 6420#CF 4 6421# 46423 46424 4 642 6# 46430 46432
*
46434#CG 46435# 46437 46440 46442# 46444 46446
46450 46452 46453 4 6455 46457 46460 46462# 46464 46466# 46467# 46471 46472 4 6474# 46476 46500 46502 46505 46506
*
CH
4 6 5 1 0 # C K 4 6 5 1 1 # 4 6 5 1 3 4 6 5 1 5 # 4 6 5 1 6 # 4 6 5 2 0 CM 4 6 5 2 2 # 4 6 5 2 3 # 4 6 5 2 4 4 6 5 2 5 4 6 5 2 7 # 4 6 5 3 0 # 4 6 5 3 1 # 4 6 5 3 2 4 6 5 3 4
TEST FOR GOL ASU s z JMP ALD STB JMP
TEST FOR GOL ASU SKZ JMP ALD S T 3 JMP
SET EXP LD3 SKM JMP LDB SKZ JMP ALD S T 3 GOL ASU SKZ JMP ALD 5 TB JMP
CI AAD SKM JMP
* EXPONEMT GOL AMD LDB RTR ALD LDB AAD RDC s z JMP RTR AAD RTR STB JMP
D.P. (\>X
A^256 2 CG B>200 C3+4 CQ
•E' AíX A>305 2 CH 3.» 1 C3 + 5 CQ
SIGM C3 + 5 2 CN C3 + 2 2 CK B>1 C3+2 (\>X A>255 2 CI B> 1 C3 + 3 CQ A^2 2 CQ
RTM A>X A > 0 1 7 C4 B>Y Z>\\ C4 Y^B Z.»Z 2 CM Y>B A>B AíB C4 CQ
• . • ? YES-MO-
SET D.P. SW OM GET MEXT CHAR
•E^? YES-MO-
SET EXP SW OM GET NEXT CHAR
15 THERE AM EXP? YES -MO-GO TO MUM3ER RTM 15 EXP SIGM 5ET? MO-
YES-GO TO EXPOMEMT RTM
SET EXP SIGM SET SW OM
•
YES-MO-SET EXP SIGM NEG GET MEXT CHAR • + • 9
MO-YES-GET MEXT CHAR
SAVE LAST 4 3ITS OF CHAR * *
*
*
* MULTIPLY IST EXP DIGIT * BY 10 *
*
* *
ADD TO 2ND DIGIT
STORE EXP GET NEXT CHAR
mm
167
46536 4 6540 46542
46550 46551 4 6552 46554
46555
*
Cl C2 C3 *
*
*
*
*
C4
C5 C6 *
C7 A) A = P# GT CN CQ
CONSTAMTS USED ZR 2 ZR 2 ZR 6
ZR ZR ZR ZR
ZR ZL ZL ZL ZL ZL ZL ZD
1 1 2 1
1 671 673 722 776 6556 6664
IM COMVEHT TO 3 1 M'^iiY RTM iHHrUHM ADDiî ADDH OF COMSTAMT IM 3UFFER 3YTE SWITCHES AS FOLLOVJS : + 0 - ^ SIGM S H T ( 0 = M O , 1 = Y E 5 ) + 1 - S I G M 07 # ( 0 = H O S . 1 = M E G ) + 2 - E X P SIGM S E T ( 0 = M O , 1 = Y E S ) + 3 - S I G M OF EXi ' (0=HOS^ 1=MEG) + 4 - D . P . 5W(0=M0 D P , 2 0 0 = D P ) + 5 - E X P 51J(0 = M0 E , 1 = E FOUMD) TEMP DEC EXP AFTEi^ ' E ' TEMP DEC EXP AFTEii D . P . SAVE X ADDR TEMP +0R - SIGM AFTER E . ( 0 = M 0 ^ 1 = Y E S ) SAVE CHAR
4 6 2 7 5 3 1 5 1 3 6 0 1 4
46300 46310 46320 46330 4 6340 46350 46360 46370
46400 4 6410 46420 46430 46440 46450 46460 46470
46500 46510 46520 46530 46540 46550
205 315 315 315 043 161 141 155
255 155 200 315 155 355 155 255
155 200 355 024 140 140
315 141 144 150 341 273 376 020
131 264 030 146 050 147 1 10 131
264 037 150 040 000 140
137 022 315 315 322 043 175 022
155 004 256 155 022 1 1 1 022 155
004 017 026 315 140 140
046 000 145 151 010 341 140 001
012 310 131 264 001 155 001 102
310 355 057 150 000 000
315 315 315 315 105 322 043 315
022 002 155 200 315 156 315 022
002 150 131 155 002 140
140 142 146 154 053 010 355 142
001 1 1 1 034 030 147 355 144 001
1 1 1 044 155 264 004 140
014 315 315 161 141 105 142 200
315 155 022 305 155 144 200 315
155 023 120 140 201
205 143 147 271 376 053 131 030
143 2 64 200 131 264 131 030 145
264 011 047 000 046
168
* * *
*
NUMBER ROUTIME
46556"í CM 46557# 46561# 46562 46564 46566 46567 46571 46573# 46574 46576 46600#CO 46601 46603 46605 46607 46611# 46612# 46613# 46615 46617# 46620# 46622 46624 46626# 46627 46631 46633# 46634# 46636# 46637 46641 46643# 46644# 46645 46647# 46650# 46651 46653# 46654# 46655 46657 46661# 46662
ZO ZT ZY GOL AMD RTR STB LDB SKM JMP LDB RTR RDC STB RTR STB TBB STB ELB RTR RDC ALD STB RDC ALD STB ELB RTR RTR ELB RTR ALD RIC JMP LDB AAD RDC LDB RTR GOS ELB RTR RIC JMP ELB RTR JMP
46556
AíX A^017 A>B C7 C3 + 4 2 CO C4+1 B>Y Y.»B C4+1 X>B C5
C5+1 KZ B>X X>X 3^0 0>X X>X B> 12 0>X A) B^X X^Z A = B>Y {\> 1
P.»B DA P# Y^B Y:»Y C7 B^A A^Y A = B^Y P^B 3G C5 B>X CQ
SAVE LAST 4 BITS OF #
SAVE CHAR IS D.P. SW OM YES-MO-
SUB 1 FROM EXP CTR
SAVE X ADDR TEMP
SET AGR2 EXP = 0 LOW BYTE OF .ARG2 WORK AREA
SET ARG2 = 10
ARGl ARG3
ARG2 F-P IND
MULTIPLY PREV CHAR BY 10
LOW BYTE OF ARG2
MEW CHAR IN ARG2
ARG2
ADD TO PREVIOUS CH.AR
RESTORE X ADDR GET NEXT CHAR
169
A) A = K'Â
P# BG DA C3 C4 C5 C7 CQ
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
671 673 675 722 431 1 504 6 6542 6550 6552 6555 6664
46556 46560 46570
200 017 200
037 040 355
315 151
155 044
355 010
146 252
11 1 315
155 151
46600 46610 46620 46630 46640 46650 46660
046 315 152 014 205 315 153 161 275 022 331 046 214
04 3 012 161 341 161
055 320 273 322 273
022 000 044 026 044
000 161 021 0 56 051
320 271 001 355 150
000 043 051 155 311
055 010 152 042 175
152 043 155 264
mm •MHi
170
* * *
*
GET NEXT CHARACTER HOUTINE
46664#CQ 4 6 6 6 5 # 4 6 6 6 6 4 6 6 7 0 # 4 6 6 7 1 4 6 6 7 2 4 6 6 7 4 # 4 6 6 7 5 # 4 6 6 7 6 # 4 6 7 0 0 4 6 7 0 1 4 6 7 0 3 # 4 6 7 0 5 4 6 7 0 7 # 4 6 7 1 0
ET CF C3 C6 CS
ZO ZT ZY R I C R I C JMP RTR SKN JMP RDC GOL ASU SKZ JMP ALD STB R I C JMP ZL ZL ZL ZL ZL ZD
4 6 6 6 4
X.»X P ^ Z ET A:»A 2 CF X^X ^>X A ^ 3 0 5 2 CS B> 1 C6 x > x CF 1 0 7 7 6 4 2 0 6 5 4 2 6 5 5 4 6 7 1 2
STEP TO MEXT CHAR
I S CHAR DELIMITEi î ?
Y E S -NO-GO OM
WAS PREVIOUS CH.AR •E'? YES-MO-GO TO EMD RTM
SET IMD
GO ON
46664 050 053 142 077 46670 041 111 155 020 055 200 030 305
46700 131 155 312 022 001 315 154 050 46710 155 020
fmm mmm
171
* * *
*
EMD ROUTINE
46712 CS 46714 4 6715 4 6717 4 6721 4 6722 4 6724# 46725 46727# 46730# 46731 46733 C 46735# 46736 46740# 46741# 46742 46744 46746# 46747# 46750# 46752 46754# 46755# 46757
*
46761 CT 46763# 46764 46766 46767 46771 46772 46774# 46775 46777 47001 47003 47005# 47006# 47010# 47011 47013 47015 CU 47017
ZO ZT ZY LDB SKM JMP LDB SKN JMP AZE LDB ASU RTR STB LDB RTR LDB AAD RTR STB ELB RTR RDC ALD STB RDC ALD STB
CLEAR DEC ELB RTR LDB SKN JMP SKP JMP RTR RDC STB RTR ELB RTR ALD RIC JMP JMP RIC STB
46712
C3+4 2 N C3 + 3 2 C A C4 A^B Í\>B C4 C4 B^ A C4+1 A.»3 Í\>B C4 K% B^X X^X B:»0 O^X K> X B> 12 O^X EXP A) B>X C4 2 M 2 CU B^A A.»B C4 X>Z A= B^Y A* 1 P>B DA CT B.»B C4
IMTEGER OR FLOAT-PT FLOAT-PT IMTEGER EAP SÍGM?
MEG-POS-
MEGATE EXP
EXP FROM E EXP FROM D.P. ADD EXPOMEMTS
SAVE EXP
SET ARG2 EXP = 0 LOW BYTE OF .ARG2
ARG2 = 10
ARGl ADDR
EXP = 0 EXP = + EXP = -
SUB 1 FROM EXP
ARG3
ARG2
MULTIPLY BY 10
ADD 1 TO EXP
| — ^ w mmmt
172
4 7021 4 7023 4 7 0 2 5 # 4 7026# 4 7 0 3 0 # 4 7031 4 7 0 3 3 4 7 0 3 5 N 4 7 0 3 7 # 4 7 0 4 0 # 4 7 0 4 1 4 7 0 4 3 # 4 7 0 4 4 # 4 7 0 4 5 # 4 7 0 4 6 4 7 0 5 0 # 4 7 0 5 1 4 7 0 5 2 4 7 0 5 4 47056#M 4 7 0 5 7
*
4 7 0 6 1 CV 4 7 0 6 3 # 4 70 64 # 4 7 0 6 6 4 7 0 7 0 4 7 0 7 2 # 4 7 0 7 3 4 7 0 7 5 4 7 0 7 7 4 7 1 0 0 4 7 1 0 2 4 7 1 0 4 # 4 7 1 0 5 4 7 1 0 7 # 4 7 1 1 0 # 4 7 1 1 1 4 7 1 1 3 CW 4 7 1 1 5 # 4 7 1 1 6 4 7 1 2 0 # 4 7 1 2 1 # 4 7 1 2 3 # 4 7 1 2 4 4 7 1 2 6 4 7 1 3 0 # 4 7 1 3 1 4 7 1 3 3 # 4 7 1 3 4 4 7 1 3 6 #
;; T w
ELB RTR ALD R I C JMP JMP ELB RTR RTR LDB AAD GOL R I C JMP RTR SKZ JMP JMP R I C JMP
SET DATA LD3 RTR AMD LDB AOR RTR STB LDB SKN jr-ip ELB RTR LDB RTR R I C JMP ELB RTR ELB RTR ALD R I C JMP ELB RTR LDB RTR ELB R I C
X>Z A = B:»Y A:. 1 P ^ B EA CT A) B>X B.»Y P # Y.»B A^Y P ^ B GA A:»A 2 E7 CV P í B BP
IMDICATORS> A%+1 B>/\ A^ 1 7 7 C 3 + 4 A>B A^B A7o+l
C 3 + 1 2 CW A) B>X P # B>fi P > Z GV A :
B.»X A) B^Y A.» 1 P.»B ZF C2 B.»X C6 B>A Cl B ^ P
ARG3
ARG2
D I V I D E 3Y 10
.ARGl ADDR
STEP TO EXP GET EXP
S H I F T LEFT TO CLEAR EXP DID WE CLEAR EXP? Y E S -MO-GO TO ERROR
MORMALIZE MOVE DATA TO STORAGE &
CLEAR OLD IMD IMTEGER OR FLOAT-PT IND SET IMD
# S I G N ? MEG-P O S -
ARGl
LEMGTH
MEGATE #
TO ADDR
FROM ADDR TYPE MOVE
MOVE PATA TO STORAGE
BUFFER ADDR
IMD FOR + 0 R - SIGN AFTER
EXIT
173
46712 4 6720 46730 46740 46750 46760 46770
47000 47010 47020 47030 47040 47050 47060 47070
47100 47110 47120 47130
A: A% A) A = K7o P# GV GA ZF E7 BP DA EA Cl C2 C3 C4 C6
355 145 040 024 022 000 056
150 051 150 051 044 041 177 004
156 053 044 043
ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
146 1 1 1 315 040 000 161 135
010 152 010 152 341 131 341 060
1 13 142 02 1 355
1 1 1 155 150 315 320 271 156
331 046 331 062 322 145 237 040
161 013 001 154
634 636 671 673 67 5 722 1013 1356 2224 2501 4177 5046 5062 65 36 6540 6542 6550 6554
156 333 355 150 000 04 3 015
161 155 161 155 026 101 042 301
271 161 051 042
035 020 150 161 055 355 042
273 361 273 361 210 156 037 237
043 234 144 175
355 355 042 275 022 150 010
044 010 044 161 051 061 177 355
301 043 224 136
150 3 55 043 012 11 1 250
02 1 155 021 271 142 051 355 143
322 161 175 052
034 151 055 320 156 315
001 315 001 043 356 150 146 111
042 271 140
174
* *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
47137 47141 47143 47145# 47146 47150# 47151 47153 47154
*
FA
PROGRAM TITLE: OUTPUT COMVEHSIOM
STAlíTING LABEL: FA
ENTHY CONDITIOMS:
REGISrERS - A =
X =
Y Z
m nKh OF DIGITS TO BE PHIMT E D (FL 0ATIMG-P 0IMT) ADDRESS OF TWO BYTE FIELD C0Í4TAIMIMG IMTEGER OH F-P IMDICATOR MODE DATA STORAGE ADDRESS MOT DEFIMED MOT DEFIMED
EXIT CONDITIOMS:
REGISTERS - A X Y Z
LOST LOST LOST LOST
CORE REQUIREMENTS: 1204 OCTAL LOCATIOMS
LINKAGE: RIC P.»B JMP FA
GENERAL DESCRIPTIOM:
THIS ROUTIME WILL CONVERT THE DATA IMDEXED BY THE X REGISTER TO DECIMAL OUTPUT. INTEGER DATA 15 WRITTEM OUT BEGIMMING WITH THE FIRST SIGMIFICAMT DIGIT. FLOATIMG POIMT DATA IS WRITTEM OUT IN STAMDARD FORM WITH A SIGNED EXPONENT.
ZO ZT ZY •lAL] STB TBB STB RTR STB AZE LDB SKP RIC
4713
[ZE ALL Fl
Fl + 1 A^B F5 A l^X 2 A*A
SAVE RETURN ADDR
SAVE # DIGITS TO PRIMT
^i^i
175
47156«^ 4 7 1 5 7 4 7 1 6 1 # 4 7 1 6 3 4 7 1 6 5 4 7 1 6 7 4 7 1 7 1 4 7 1 7 3 4 7 1 7 5 L\ini# 4 7201
*
4 7 2 0 3 4 7205# 4 7 2 0 6 # 472Û7# 4 7 2 1 0 4 7 2 1 2 4 7 2 1 4 # 4 7 2 1 5 4 7 2 1 7 # 4 7 2 2 0 # 4 7 2 2 1 4 7 2 2 3 # 4 7 2 2 4 4 7 2 2 5
*
4 7 2 2 7 4 7 2 3 1 4 7 2 3 3 4 7 2 3 5 # 4 7 2 3 6 # 4 7 2 3 7 4 7 2 4 1 4 7 2 4 3 # 4 7 2 4 4 # 4 7 2 4 5 # 4 7 2 4 7
*
4 7 2 5 1 4 7 2 5 3 # 4 7 2 5 4 4 7 2 5 6 4 7 2 5 7 4 7 2 6 1 # 4 7 2 6 3 4 7 2 6 5 4 7 2 6 7 # 4 7 2 7 0 # 4 7 2 7 1
i^TR STB ALD STB STB ST'^ STB STB S T 3 ALD S T 3
MOVE DAT EL3 RTR AZE R I C Jî^iP ELB RTR LDB RTH R I C JMP RTR SKM JMP
SET ARG2 LDB R I C ELB RTR R I C JMP LDB AAD RDC ALD STB
A^B F2 B:»0 F 3 F T
F * F; F? F% i^.»200 F>
A TO ARGl A) B , Y A P.»B ZF A) B^X P# 3:»A P ^ Z GO A:.A 2 F F
WOHK AREA P # B>A A = B>X P>Z GT P # X>B X>X B> 12 o.»x
SET # S I G N ELB RTR LDB SKM JMP ALD STB LDB RTR R I C JMP
A) B^X O^X 2 FB B^ 1 F 3 P # B>A P > Z GV
SET F - P OR IMTEGER
SET # SIGM POS 5ET Zl^HO D I G I T CTií SET M.):-:3EH CTR = 0 DEC EXP = 0 IMDEX = 0 ZEHO 3WITCH OFF
LOOP CTii = MAX MEG
Ai^Gl WORK AREA TYPE MOVE
MOVE DATA TO ARGl
15 DATA = 0 ? MO-Y E S -
= 10
LENGTH
ARG2 ADDR
ZERO .ARG2
LOW BYTE OF ARG2
ARGl (DATA) GET HIGH BYTE # NEG # POS
SET # SIGM NEG
LENGTH
MEGATE #
= 0
,,nîst5«a». ncítrlíîSÍ
176
47273 111215 47276 47300 47302 47303
47137 47140 47150 47160 47170
4 7200 47210 47220 47230 47240 47250 4 72 60 47270
* IMTEGER OR FB
Ffo F> A) A = Pí
Gr GV GO ZF Fl F2 F3 F5 F; F? F# F* FC FG FF
306 052 020 054 0 62
200 144 053 322 376 000 273 053
LD3 SKM JMP JMP ZC zc ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
014 205 360 001 022 000 306 057
316 303 224 161 142 041 010 105 341 322 161 271 022 001 142 013
FLOATIMi F2 2 FG FC 0 200 671 673 722 7 76 1013 1041 2224 3052 3054 3055 3056 3057 3060 3061 3062 7304 7454 7531
306 135 306 306
161 271 041 161 025 043 306 346
053 010 055 060
271 043 111 273 055 360 055 054
G-POINT WHAT
#
TYPE?
INTEGER F -P ZEHO T
040 100 306 316
044 341 157 043 022 000 341 111
OOP
306 040 061 302
020 322 131 053 012 115 322 157
SW (0 = 0FF.»1 CTR
056 306 306 022
051 042 341 141 320 156 042 054
= 0M)
47300 156 304 000 200
mm
177
* * *
*
FLOATING POIMT COMVEHSIOM
4 7304 47306. 47307 4 7311 47312 4 7314 47315
47317# 47320 47322# 47323# 47324 47326# 47327 47330 47332 47334# 47335# 47336 47340# 47341 47343# 47344 47346# 47350# 47351 47353 47355 47357 47361
47363 47365 4 73 67 47371 47372 47374# 47375 47377# 47400# 47402 4 7404 47406# 47407# 47410
ZO ZT ZY
FC LD3 AAD LD3 SKP JMP SKN JMP
* EXPOMEMr RTR ELB RTR li IC JMP RTH SKN JMP LDB AAD GOS ELB RTR ELB RTR RTR ALD RIC JMP LDB RIC STB JMP
* EXPOMENT FD LD3
RIC STB SKZ JMP AZE LDB ASU ALD STB ELB RTR RIC JMP
47 304
X:.B 0 > X 2 FD 2 FG
POSITIVE-B>^ A) B>X P^B GA AíA 2 FG P# X>B P >X A) B^X A = B^Y X:»Z A>1 P^B EA F; B.»B F; FC
MEGATIVE F> B^B F> 2 FE A O^X A..B BíO 0>X A) B^X P^B GG
STEP TO EXPOMHMT
EXP POS OR ZERO EXP MEG EXP POS EHP Zn:iîO-GO COMVEHT
SHIFT LEFT TO CLEAR 3IMARY EXP # BITS TO 5HIFT
ADDR OF AHGl (DATA)
SHIFT LEFT DID WE CLEAH EXP? NO-YES-GO COMVERT
STEP TO EXP
STORE NEW BINARY EXP
ARGl
ARG2
F-P IND D I V I D E DATA BY 10
ADD 1 TO DEC EXP
-MULTIPLY BY 10
ADD 1 TO LOO? CTR DID WE EXHAUST LOOP? YES-NO-
GET EXP NEGATE EXP
SET EXP = 0
ARGl ADDR
SHIFT RIGHT TO CLEAR EXP
178
47412 47414# 47415# 4 7416 47420# 4 7421 4 7422 4 7424 4 7426 FE 47430# 4 7431 47433 47435 47437# 4 7440 47442# 47443 47445# 47447# 47450 47452
A) A = P# GO GG GA F; DA EA F> FG FF
LDB RTR YilC JMP HTR SKM JMP JMP LDB RTR RDC 5TB ELB RTR ELB RTR RTR ALD RIC JMP JMP ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
P# B:»A P^Z Gû A:.A 2 FF FG F; B^A (\>B F; A) B ^ X A = B^Y X>Z A> 1 P^B DA FC 671 6 7 3 722 1041 1161 1 3 5 6 3 0 5 7 5 0 4 6 5 0 6 2 7 3 0 3 7 4 5 4 7 5 3 1
15 DATA = 0? MO-Y E 5 -GO COMVERT
SUB 1 FROM DECIMAL EXP
ARGl
ARG2
F-P IND
MULTIPLY 'f BY 10
47304 47310 47320 47330 47340 47350 47360 47370
47400 47410 47420 47430 4 7440 47450
341 000 161 157 043 051 057 303
322 135 271 054 161 152 156 131
025 156 043 341 273 062 304 157
360 363 051 322 044 346 356 026
1 1 1 142 025 010 057 303 020
157 356 204 331 010 010 360
054 041 161 021 155 155 000
042 1 11 271 001 306 316 034
022 000 320 000 161 271 043 051 142 161 341 322 042 053 142 041 041 111 157 131 157 054 346 057 042 010 250 306 057 161 271 043 161 273 044 010 331 021 001 051 152 046 156 304
wmmm
179
* * * *
COMVEin' TO LOW 4 - 3 r r S OF # IN WORK AREA
4 7 4 5 4 ZO ZT ZY
4 7 4 5 4 FG 4 7 4 5 6 # 4 7 4 5 7 4 7 4 6 1 4 7 4 6 3 # 4 7 4 6 4 4 7 4 6 6 4 7 4 7 0 # 4 7 4 7 1 # 4 7 4 7 2 # 4 7 4 7 4 4 7 4 7 6 # 4 7 5 0 0 4 7 5 0 2
*
4 7 5 0 4 FH 4 7 5 0 6 # 4 7 5 0 7 4 7 5 1 1 # 4 7 5 1 2 4 7 5 1 4 # 4 7 5 1 5 4 7 5 1 7 4 7 5 2 1 # 4 7 5 2 2 # 4 7 5 2 3 4 7 5 2 5 # 4 7 5 2 6 4 7 5 2 7 4 7 5 3 1 # F F 4 7 5 3 3 4 7 5 3 5 4 7 5 3 7 F I 4 7 5 4 1 # 4 7 5 4 2 4 7 5 4 4 # 4 7 5 4 5 4 7 5 4 6 4 7 5 5 0 # 4 7 5 5 1 4 7 5 5 3 4 7 5 5 5 4 7 5 5 7 # 4 7 5 6 0 4 7 5 6 2 #
RTR LDB R I C R I C JMP LDB AAD RDC ALD STB ALD STB STB
FIMD THE ELB RTR ELB RTR HTR R I C JMP LDB RTR R I C JMP RTR SKZ JMP ALD STB JMP ELB RTR RTR RTR SKP JMP R I C JMP RTR ELB RTR RTR AZE
K% B>X
P# B:.A P.»Z GT P# X.»B X>X B> 12 0>X B> 1 F# F*
POWER OF A) B>X
A = B.»Y X:»Z PíB BD P# 3.»A P>Z GO A.»A 2 FI B^l F% FN A= B^Y X^Z Aí A 2 FJ P>B BA Y^X K% B>Y X*Z A
AHG3 ADDR
ZERO ARG3
LOW BYTE OF ARG3
ARG3 = 10
ZEHO CTR = 1 # CTR = 1
10 JUST 3MALLP:R THAN DATA
ARGl (DATA)
AjiG2 (POWER OF 1 0 )
SUB POWER OF 10 FROM DATA
LEMGTH
ARGl + ^ - . » 0 ? ARGl = 0
SET ZERO SW ON
ARG2
TEST ARGl AGAIN ARGl POS ARGl NEG
RESTORE DATA ARG2
ARG3 ( 1 0 )
INTEGER IND
180
4 7 5 6 3 # 4 7564 4 7 5 6 6 # 4 7 5 6 7 4 7 5 7 0 4 7 5 7 2 4 7 5 7 4 4 7 5 7 6 4 7 6 0 0
*
4 7 6 0 2 # F J 4 7 6 0 3 4 7 6 0 5 4 7 6 0 7 4 7 6 1 1 # 4 7 6 1 2 4 7 6 1 4 # 4 7 6 1 5 # 4 7 6 1 6 4 7 6 2 0 4 7 6 2 2 # 4 7 6 2 3 4 7 6 2 5
*
4 7 6 2 7 # F K 4 7 6 3 1 4 7 6 3 3 FL 4 7 6 3 5 # 4 7 6 3 6 4 7 6 4 0 # 4 7 6 4 1 4 7 6 4 3 # 4 7 6 4 4 4 7 6 4 6 4 7 6 5 0 # 4 7 6 5 1 # 4 7 6 5 2 4 7 6 5 4 # 4 7 6 5 5 4 7 6 5 6 4 7 6 6 0 4 7 6 6 2 4 7 6 6 4 4 7 6 6 6 # 4 7 6 6 7 4 7 6 7 0 4 7 6 7 2 # 4 7 6 7 4 4 7 6 7 6 4 7 7 0 0 FM
R I C JMP RTR SKZ JMP LDB R I C STB JMP
POWER OF R I C JMP RTR ELB RTR RTR AZE R I C JMP LDB RTR RDC STB
DETERMIME ALD STB ELB RTR ELB RTR RTR R I C JMP LDB RTR R I C JMP RTR SKP JMP LDB R I C STB RTR SKZ j r i p ALD STB JMP ELB
P > 3 DA A>A 2 FK F# B>B F# FH
10 13 P>B BA Y^X K% B:»Y X>Z A P ^ B EA F# B>(\ k>B F# THE 3:^0 F * A) B>X A = B^Y X>Z P í B BD P # B^A P:»Z GO A>A 2 FM F * B>B F * A..A 2 FL B ^ l F% FN A =
R A I 5 E TO MEXT POWER LARGHST POWEii OF 10? MO-Y E S -
ADD 1 TO ZEiiO CTR
OME TO B I G
RESTORE DATA ARG2
ARG3
INTEGER IMD
DIV BY 10 TO REDUCE
SUB 1 FROM ZERO CTR
PROPFi i D I G I T S
SET # CTR = 0
ARGl (DATA)
.ARG2 (POWER OF 1 0 )
SUBTRACT
LENGTH
RESULT +.»- .»0?
+ OR 0 NEG
ADD 1 TO # CTR
RESULT + OR 0 ? ZERO POS
SET ZERO SW ON
OF 10
HOWER
181
4 7 7 0 2 # 4 7 7 0 3 4 7 7 0 5 # 4 7 7 0 6 4 7710 4 7 7 1 2 4 7 7 1 4 4 7 7 1 6 # l\lllli^ 4 7 7 2 0 # 4 7 7 2 1 4 7 7 2 3 4 7 7 2 5 # 4 7 7 2 6 4 7 7 3 0
*
4 7 7 3 2 FN 4 7 7 3 4 # 4 7 7 3 5 Lill31 4 7741 4 7 7 4 3 4 7 7 4 5 /illin 4 7 7 5 0 4 7 7 5 2
I # A) A = K% P# GT GO FO F? F# F * BA BD DA EA F%
RTR iíTR R I C JMP i^TR RTR ELB RTR AZE R I C JMP LDB RTR RDC STB
B..Y X>Z P ^ B BA 'i' > ]\
>z K/o
B , Y A P>B EA F# B:»A A^B F#
STORE CHAR IN LDB RTR R I C STB LD3 STB LDB SKN JMP JMP ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
F ? B:.X .H:.B F ? F * I # > X F% 2 FK FO 5 0 7 6 7 1 6 7 3 6 7 5 7 2 2 7 7 6 1 0 4 1 3 0 4 4 3 0 6 0 3 0 6 1 3 0 6 2 4 0 0 0 4 1 0 4 5 0 4 6 5 0 62 7 3 0 2
ARG2
RESTORE DATA
ARG2 (POWER OF 10)
ARG3 ( 1 0 )
IMTEGEH IND
REDUCE POWER OF 10
SUBTRACT 1 FROM ZERO CTR
WORK AREA
IMDEX ADD 1 TO IMDEX
STORE CHAR IM WORK .AREA ZERO SW ON? YES-NO-GO TO MODE 1 RTN
182
4 7454 4 7460 47470
47500 47510 47520 47530 47540 47550 47560 47570
47600 47610 47620 47630 47640 47650 47660 47670
47700 47710 47720 47730 47740 47750
161 322 025
30 6 273 322 137 273 051 010 157
157 275 346 000 044 042 346 157
161 010 051 306 060 157
275 010 055
061 044 042 022 044 150 331 227
104 044 061 306 010 053 0 62 233
273 312 152 061 346 227
043 105 022
306 010 0 5: 001 010 000 020 346
051 010 042 062 331 142 010 022
044 010 062 346 062 146
341 053 012
062 331 142 316 331 010 051 061
150 331 010 161 051 041 155 001
010 331 346 060 32 1 044
141 320
161 051 041 302 04 1 312 152 010
000 020 250 271 150 041 306 316
331 161 061 043 107
376 000
27 1 150 041 157 135 161 046 155
010 051 306 043 104 135 062 302
051 275 042 010 356
341 022
043 104 131 332 157 275 041 306
312 152 061 161 341 157 041 157
150 044 010 155 302
322 001
161 341 157 161 202 044 131 061
161 062 022 273 322 300 131 332
000
020 250 306 111
183
* * *
* MODE 1 PART OF OUTPUT COMVERSIOM ROUTIME
*
14000 FO 14002 1 4 0 0 3 1 4 0 0 5 # 1 4 0 0 6 # F P 1 4 0 0 7 1401 1 1 4 0 1 3 1 4 0 1 5 # 1 4 0 1 7 1 4 0 2 1 # 1 4 0 2 2 1 4 0 2 3 1 4 0 2 5 FQ 1 4 0 2 7 1 4 0 3 0 1 4 0 3 2 FR 1 4 0 3 4 1 4 0 3 6 # 1 4 0 3 7 # 1 4 0 4 0 1 4 0 4 1 1 4 0 4 3 # 1 4 0 4 4 # 1 4 0 4 6 1 4 0 5 0
I # F2 F5 F ? F# FS FZ
ZO ZT ZY
DATA = 0> LDB SKM JMP RTH ivIC LD3 R I C STB ALD STB RDC SKZ JMP LDB SKN JMP R I C LDB ASU RDC SKM JMP R I C ALD STB Ji'ÍP ZL ZL ZL ZL ZL ZL ZL ZD
1 4 0 0 0
STORi' F# 2 FQ B^Z K>X F ? 3 ^ 3 F ? B:»0 I # : . X Z.»Z 2 FP F2 2 FZ X^Y F 5 Y>B Y:.Y 2 FS X^X 3 ^ 0 I # :. X FR 5 0 7 3 0 5 4 3 0 5 6 3 0 6 0 3 0 6 1 4 0 5 2 4 2 2 2
THE COiHiECT # OF ZEiiOES # OF ZER0E5
THRU
ADD 1 TO INDEX FOR I JTEGER
THRU WITH ZEROES? Y E S -MO-li^ITEGER OR F - P ? F - P IMTEGER-GO TO PRIMT RTM
# D I G I T S TO PRIMT
EXTRA 0 FOR ROUMDIMG? MO-Y E S -
5T0RE ZERO
14000 14010 14020 14030 14040 14050
346 060 107 150 115 150
061 010 057 222 150 032
1 1 1 155 131 010 052
150 306 150 121 050
025 060 006 346 022
045 022 346 056 000
050 000 054 035 321
346 321 11 1 056 107
184
* * *
*
ROUMDIMG ROUTIME
14052 FS 14054 / 14055 14057^ 14060 14063# 14064# 14065# 14066# 14067 14070 14072#A 14073 14075 14077 14101# 14102# 14104 14105 14107 141 11 14112 14114# 14116 14120 14122#B 14124 14126 14130 14132 14134
I# F5 F; F* FX
14052 14060 14070
346 004 150
ZO ZT ZY LDH RTi{ LDB RTiH AAD SHi SHH SHR SiiH s s Ji'ip
HDC LD3 RIC STB RTR ASU SKP JMP RTii SKM JMP ALD ST3 JMP ALD STB LD3 RIC STB JMP ZL ZL ZL ZL ZL ZD
056 043 310 003 136 055
140 52
F5 B^X I # :. X 3>A A:»3 A A A A 2 FX X>X
I#^X 3 > B 1^>X B>(\ A> 12 2 FX x.»x 2 B 3:^0 Î^>X
A B>1 I# F; B..B F; FX 507 3056 3057 3062 4136
361 107 060 060 361 107
>' D I G I T S TO P P Í T J T
GIET MEXr D I G I T
WAS D I G I T >>= 5 ? Y E S -NO-
GET HííIMTIMG D I G I T ADD 1 TO D I G I T
13 DIGIT > 9? YES-MO-STAiîTIMG POINT? MO-YES-
SET DIGIT = 0
SET IST DIGIT = 1
ADD 1 TO DEC EXP
042 060 060 125 010 155 321
14100 107 042 030 012 135 150 136 010 14110 311 111 150 122 022 000 32 1 107 14120 150 072 022 001 301 107 346 057 14130 010 155 306 057 150 136
185
5fC 3(C jfC
*
CALCULATE EXPOMEMT
14136 FX 14140# 14141 14143# 14144 14146# 14147# 14150 14151 14153# 14155 14157 14161#FT 14163 14165# 14166 14170# 14171#FU 14172# 14173#FV 14175 14176 14200 14202 14204 FW 14207# 14211# 14212# 14213 14216 14220
F; F? FZ F<
14136 14140 14150 14160 14170
346 044 135 171 035
ZO ZT ZY LDB HTR LDB AAD ELB RTR HDC SKP JMP ALD 5 TB JMP ALD STB RTR AZE ASU RIC AZE ASU SKP JMP RIC JMP AAD AOR GOS RIC AOR GOS JMP ZL ZL ZL ZL ZD
0 60 346 150 022 050
057 161 255 020
14136
F? B:»Y F; Y^B F< B^X Y^Y 2 FT 3^253 0>X FU B>255 0.»X Y:»B Y Y>B X>X A Y^ 12 2 FW A^A FV Y> 12 A:»260 A>X x>x Y:r260 Y^X FZ 3057 3060 4222 4365
026 170 022 253 320 000 032 012
INDEX DHCIMAL EXP C0M3IME
ADDR OF EXP OJTPUT ADJ TO PRIMT IM STD POSITION EXP POS EXP MEG
STORE + SIGN
STORE -
MEGATE
- SIGM
EXP STEP TO IST USE A5 SUB 10 RESULT RESULT
CTR FROM POS MEG
ADD 1 TO CTR
EXP DIGIT
EXP
ADD 10 BACK TO EXP SET ASCII CODE STORE IST EXP DIGIT
SET ASCII CODE STORE 2MD EXP DIGIT GO TO PRIMT RTM
365 043 056 320 000 150 047 004 002 135 150 204
14200 14210 1 4220
010 260 150
100 204 222
150 050
173 004
004 072
312 2 60
012 000
036 132
186
* * *
*
PRINT ROUTINE
14222#FZ 14224# 14225 i4227# 14231# 14232 14234 14236 14237 14241# 14243# 14244 14246#J 14250 14252 14254# 14255 14257 142 60 14262 14264# 14265 14267 H 14271# 14272#C 142 73# 14275# 14276 14300 14302 14303 14305 14307 14310 14312# 14314 14316# 14320# 14321 14323#D 14324# 14325 14326 14330 14332
ZÛ ZT ZY ALD RIC Ji'ÎP
ALD RIC JîiP LD3 SKN JMP ALD RIC JMP ALD STB ELB RTR LDB SKZ JMP LDB RTR JMP LDB RTR GOL AOR RIC JMP LDB SKN JMP LDB SKZ JMP ALD STB ALD RIC JMP RIC RDC SKZ JMP LDB SKN
14222
A 2 1 5 PW3 TO A*212 PíB TO F3 2 J A>255 P^B TO B^O F* I/ B>X F2 2 H F? B^Z C F5 B.»Z A •yr
> A, A^260 P^B TO F2 2 D F* 2 D B> 1 F* A:r256 P J B
TO X>X ZJZ
2 C F2 2
OUTPUT •CR^
OUTPUT •LF^ # SIGM? MEG POS
OUTPUT MINUS SIGN
USE AS IST DIGIT SW
STARTIMG ADDR OF OUTPUT IMTEGER OR F-P? INTEGER F-P
USE IMDEX FOR # CHAR TO PNT
# DIGITS TO PiiIMT
SET ASCII CODE
OUTPUT CHAR F-P OH INTEGER? F-P IMTEGER IST DIGIT? YES-NO-
SET IST DIGIT OFF » . •
OUTPUT D.P.
THRU? YES-NO-F-P OR INTEGER? F-P-OUTPUT EXP
187
WI333 14335 14337# 14340#E 14341 14342 14344# 14345 14347# 14350 14352 G 14354# 14355 F= 14357 F/ 14360 14361 F: 14364 14365 F<
TO I/ Fl F2 F3 F5 F? F*
14222 14230 14240 14250 14260 14270
14300 14310 14320 14330 14340 14350 14360
021 212 246 306 150 056
346 150 051 346 200 150 305
JMP ELB RTR GOL SKM JMP RIC JMP RIC JMP ELB RIC ZA ZC ZC ZR ZC ZA ZL ZL ZL ZL ZL ZL ZL ZL ZD
215 051
G F = B^X A^X 2 G P.»B TO X^X E Fl B>P F/ 240 305 3 0
051 021 062 267 045
054 323 140 054 111 340 305
140 255 161 346 200
111 022 120 111 150 166 000
F: 120 4 77 3052 3054 3055 3056 3060 3062
140 120 051 077 060 036
150 001 050 150 352 052 260
120 346 140 043 045 260
323 306 057 352 051 052 000
IMTEGER
EXP ADDR
THRU
OUTPUT EXP
EXIT
BLANK E EXP NUM3ER (+-»- NM) TERMIMATOR
021 055 120 346 150 051
346 0 62 131 170 140 357 361
1 1 1 022 054 272 140
0 62 021 150 355 120 010 010
150 000 131 346 120
131 256 272 043 050 240
H
188
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PHOGiiAM T I T L E : SUPPOiiT I :.]G HOUTÍMHS
STAHTIMG L A 3 E L S :
- MI5C J U M P S . SíiAiiED BYTES. COMSTA JTS EW - CHHCK FOH IMTEGEH V - ' V H I A H Î E
E / - C H E Í : K FO.i COMSTA-NJT GT - ZEHO A'RGUMEMr GV - MEG^TE AiiGUMEMT GO - CHHCK AríGUMHM'r FOH + , - , QR o ET - C.HECK FOH DELIMITER GG - 5 H I F T RIGiHT GA - S H I F T LEFT YK - 3UILD VARIA3LE TA3LE YM - 5EAHCH VARIA:1LE TABLE ZA - MOVE IMSTRUCriOM ZF - M0>;E D A T A
EM - CHECK ADDRESS CROSSIMG MODES FA> ,E1
- ERROH ROUTIME Z^ZY^ZZ^AA^AB^MISC THF^ZX
- MISCELLAMEOUS rHOUriMES YA - 3UILD 5TATEMEMT MUM3ER TA3LE YG - SEAiiCH STATEMEMT MUMHEH TAOLE XX - IMITlALIZATIOM AW - STEP PAST VARIA3LE OR COMSTAMT AV - ADD TWO TO STACK ADDRESS AZ - SUBTiHACT TWO FROM STACK ADDRESS AY - PLACE DELIMITER IM STACK DU - UPDATE DATA ADDRESS KA>KB
- SUBSCRIPT ROUTIME
ENTRY COMDITIOMS:
AS REQUIRED BY EACH ROUTIME
EXIT C0MDITI0M5:
AS SPECIFIED BY EACH ROUTIME
CORE HEQUIREMEMTS: 4250 OCTAL LOCATIOMS
LIMKAGE: AS REQUIRED BY EACH ROUTIME
GEMERAL DESCRIPTIOM:
THESE ARE THE ROUTIMES THAT PERFORM THE SUPPORTIMG FUMCTIOMS FOR THE IMTERPRETER.
189
* * * *
MISC JUMPS FOh Í M « : P J I T I A L I Z I M G IMrEHPHETE.'î
ÛOOIO 00012 00014
ZO ZT ZNJ jyp JMP JMP ZD
00010
2610 26 10 26 10
00010 145 210 145 210 145 210
J l ^ M i
190
* * *
*
0 0020'Jf 0 0021# 0 0022*/ 0 0'12 3* 0 0 0 2 4 * 0 002 5 7 0 0026-;* 0 0027^/ 0 0030-^ 0 0 0 3 1 # 0 0 0 3 2 # 0 00 33# 00034<f 0 00 35# 0 0 0 3 6 ^ 0 0 0 3 7 #
*
0 0 0 4 0 # 0 0 0 4 1 ^ 0 0 0 4 2 # 0 0 0 4 3 ' / 00044'5' 0 0 0 4 5 # 0 0 0 4 6 # 0 0 0 4 7 # 0 0 0 5 0 # 0 0 0 5 1 # 0 0052^/ 0 0 0 5 3 # 0 0 0 5 4 # 0 0 0 5 5 ^ Û 0 0 5 6 # 0 0 0 5 7 #
•4t'
0 0 0 6 0 # 0 0 0 6 1 * 0 0 0 6 2 # 0 0 0 6 3 ^ ' 0 0 0 6 4 # 0 0065-? 0 00 6 6 # 0 0 0 6 7 # 0 0 0 7 0 # 0 0 0 7 1# 0 0 0 7 2 # 0 0 0 7 3 # 0 0 0 7 4 # 0 0 0 7 5 #
SHAHl-.D
ZE ZE ZE * / ' V*
ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE
ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE
ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE
:^ 1 i ES
AZE ALD ALD ALD AAD A>D AAD AAD •\SU ASU A3U ASU ASU ASU AOH A^JD
\i í 11
HrR HTH RTH HTi\ RTH RTH RTH HIC ii IC R I C R I C R I C RDC RDC RDC
SHH SHR SHii SHii SHC SHC SHC SHC SHL 3HL SHL SHL PLR P L S
r JH
A
A>0 :H,O
z * 0 A*B X * 3 Y>3 Z » 3
' A>0 X^O Y:»0 Z^O A í B Y^B -^^0 \*0
A>3 A* A B^A 3:.X B>Y 3 ^ Z X>B Y:rB X^X P>B 3 > P P > Z Z-rP X^X Y>Y Z>Z
A
X Y Z A X Y Z A X Y Z
IMrE;íPi^l ' :rER
191
00100-^ 0 010 l -' 00102^ 00103* 00104'/ 00105'/ 00106* 00107# 00110# 00111 * 00112* 00113# 00114# 00115# 00116* 00117#
ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZE ZD
GOL GOS GQL GOS noi. G0 5 GOL GOL GOS GOA GOL GOS GOL GOS GOL GOS S
Aí X A*X A>Y A* Y \»Z A > Z
3.» Y
Y>X Z.»Y
A ^ Y
A > X.» I
A .» X.. I
A> {> I ^>Y> I
A * Z * I
(\>Z> I
00020 000 110 115 113 00030 210 211 212 213
300 301 302 303 200 202 070 030
0 0040 00050
350 300 305 315 325 335 351 352 111 154 145 134 143 211 222 233
00060 00070
000 00 1 010 011
002 003 020 021 012 013 200 201
022 023
00100 001 10
100 130 200 230 300 330 205 102 233 220 140 170 240 270 340 370
192
00477 00501 00503 00505
00507 00514 00516
00624 00626 00630
00632 00633 00634 00636 00637
00640 0 0642 00644 00646 00650
00652 00654 00656 00660
00662 00663 00664 00665 00666 00667 00670
00671 00673 00675 00677
00701 00703
* * * *
*
I/ I* 1% I? *
I# IS
*
# * s
*
/
A: A%
*
A* A/ A> A< A£ *
Y% YS Y= Y# *
Zl Z2 Z3 Z4 Z5 Z6 Z7 *
A) A= K% A# *
A; A&
COMSTAMTS USED
ZO ZT ZY
BUFFEH ZA ZA ZA ZA
3UFFER-Zii ZR ZR
PROGRAM ZA ZA ZA
00477
ADDHESSES I# IS
0000 MODE 0
5 2 106
; STORAGE 4000 4000 4000
IM THE IMTERHHETER
-MODE 0
ADDH
D.ATA 5T0RAGE ADDRESS ZC zc ZA ZC zc
VARI.ABL ZA ZA ZA ZA ZA
STATEME ZA ZA ZA ZA
367 030 A% 367 030
,E TAP.LE ADDRE 0000 0000 0000 AS 0000
:MT MUMBER 7 174 7174 7174 0000
MODE CONSTAMTS ZC ZC ZC ZC ZC ZC ZC
1 2 3 4 5 6 7
STMT'/ ADDR LIMS CTR ADDR IMST ADDH (COL 6) OVERFLOW ADDR
STATEMEMT # LIiJE CTR IMSTRUCTIOM
ESSES-MODE 2 STAHTIMG ADDR CURHEMT ADDR PHEVIOUS ADDR ES-MODES 1 & 6 STARTIMG ADDR
MEXT AVAILABLE ADDR
SSES-MODES 0 Ã 6 STARTIMG ADDR CUHREMT HDDR PREVIOUS ADDR
ADDR FOUMD IM VAH T3L TA3LE ADDHESSES-MODE 3
WORK AREA ADDRESSES-ZA ZA ZA ZA
0000 0000 0000 0000
STACK ADDRESSES-ZA ZA
7704 7704
MODE
STARTING ADDR CURHEMT ADDR PHEVIOUS ADDH ADDii OF IMST FHOM STMT
MODE 0 ARGl ARG2 ARG3 DOUBLE WORK AREA 5 STARTIMG ADDR OF STACK CURREMT ADDR OF STACK
T3L
193
00705 A( ZA 00707 A? ZA
* ARirHMET 00711 Z# ZR 00712 Z* ZC 00713 ZC 00714 ZC 00715 ZC 00716 ZC 00717 ZC 00720 ZC 00721 ZC
* STOH..AGE 00722 P# ZC 00723 L# ZR 00725 D< ZR 00726 D* ZA 00730 W* ZA
*
00732 13 ZC 00733 ZC 00734 U# ZC 00735 U* ZA 03363 K< ZR
ZD 00477 107
A? 0000
IC HOUT 1 17 34 0 5 63 12 51 56
AREA5> 3 2 1 5000 3365
0 1 0 0000 2
ADDR OF VAR OM LKFT OF = IME LIMH^GE
ivTM CODE STORAGE + 0-iirM CODE-ADD
•SU'^TH^CT + 2-+ 3-+ 4-+ 5-+ 6-+ 7-
SWITC:HE5>
-MULTIHLY -DIVIDE -EHHOMHMT -IMPUT COMV. -MOH:>:ALIZE -OUTPUT COMV.
AMD C 0 U : J T E R 5
PHECISIOM LIME CTR MODE IND FOR DU RTM EMD VAH TBL-STAHT DATA IST BYTE PAST Pi-.OC-MODE 0 3YTE SWITCiiES AS FOLLOWS : + 0 = TYPE I N 5 T ( 0 = MEW:» 1=0LD) + 1=PH0CESS(0-M0:» 1=YE5) ' A D D ' P E M D I ; J G ( 0 = MO> 1 = Y E S )
ADDR OF MEXT IMST FOR •ADD• SUBSCRIPT IMDICATORS
00500 00510 00520 00530 00540 00550 00560 00570
001 000 177 350 170 200 020 27 5
114 177 152 250 255 214 051 11 1
001 256 220 131 044 170 144 152
1 16 053 350 152 200 255 224 167
001 000 251 355 214 043 352 357
000 000 131 161 050 161 217 303
000 000 152 303 010 271 042 1 1 1
000 000 271 043 122 044 030 152
00600 00610 00620 00630 00640 00650 00660 00670
160 131 301 000 000 000 000 007
350 152 052 010 000 000 000 000
261 060 021 367 000 174 001 000
1 1 1 020 001 030 000 016 002 000
152 051 000 236 000 174 003 000
121 154 010 001 000 016 004 000
346 251 000 367 250 174 005 000
364 177 010 030 001 016 006 000
00700 000 304 017 304 017 307 001 000 00710 000 000 017 034 000 005 063 012 00720 051 056 003 003 000 003 000 012 00730 365 006 000 001 000 000 000
03363 000 000
194
*
*
*
+ *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Pi.OGitAM TITLE: CHECK FOH IMTEGEH VAiMAnLE
STAHTIMG LA3EL: EW
E M T H Y CO.JDITIOMS :
00737#EW 00741 00743# 00744# 00746 00747 00751# 00753 00754 00756#EX
nEGISrERS -X V z
MOT DEFIMHD
ADDiiESS OF C;ÎAHACTEH MOT DEFIMED LIMKAGE
E A I T COMDiriOMS:
REGISTEHS - A = 0 (IMTEGEH. ) 200 (FLOATIMG POIMT)
X = U:vCH\MGED Y = LOST Z = LIMKAGH ûDDHESS
CORE REQUIiiEMEMTS: 2') OCTAL LOCATIOMS
L I M K A G E : R I C P.»Z
JMP EW
GEMERAL DESCii IPT I OM :
THIS HOUTIME WILL CHECK THE CHARACTEH IMDEXED 3Y THE X :iEGISTEn EOii AM IMTEGEH VARIA3LE CHAii AC TEr. (. l > J> K>L>M> ^]) »
zo ZT ZY ALD LDB RTR ASU SKP JMP ASU SKP AZE RIC ZD
00737
A:r200 0>X
3.»Y Y>31 1 2 EX Y:»006 2 A Z>P
CHAR 13 CHAR >>= I? YES-MO-15 CHAR <>= M? MO-YES-SET IMTEGER IMD EXIT
00737 021 00740 200 360 000 044 032 311 135 00750 356 032 006 135 004 000 054
141
195
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM TITLE: CHECK EOH COMSTAMT
STA;tTIMG LAREL: EY
EMTHY COMûrriOMS:
i i E G I S Ti'JHvS - A X Y Z
MOr DEHÍMED ADDHESS OF CHAHACTER MOT DEFIMED LIMKAGE
EXIT COMDITIOMS:
REGISTERS - A -1
X Y Z
0 (MOT A COMSTAMT) 1 (COMSTAMT) UMCHAMGED LOST LIMKAGE ADDRESS
CORE REQUIHEMEMTS : 17 OCTAL LOCATIOMS
L I M K A G E : R I C P > Z
JMP EY
GEMEHAL DE5CHIPTI0M:
THIS iiOUTIME WILL CHECK THE CHARACTER IMDEXED BY THE X REGISTHH TO DETEiîMIME F THE CHAR-ACTEH 15 A COMSTAMT (0--9).
00757#EY 00760 0 0 7 62 # 0 07 63# 00765 00766 00770# 00772 00773 00775#EZ
00757 00760 00770
020 360 032
ZO ZT ZY AZE LDB RTR ASU SKP JMP ASU SKP RIC RIC ZD
000 044 012 135
00757
A 0>X B^Y Y>2 60 2 EZ Y>012 2 A^A Z>P
032 260 135 010 100 054
CHAR 13 CHAR >>= 0? YES-MO-13 CHAR <>= 9? MO-YES-SET IMD TO COMSTAMT EXIT
141 375
196
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGiH\M T I T L E : ZERO ARGUMEMr
STAiiTIMG L A 3 E L : GT
EMTiiY COMDrriO>JS
HEGISTEi iS - A =
Y = Z =
EXIT COMDITIOMS:
LEMGTH OF AiiGUMEMT ADDRi'iSS OF AiiGUMENIT MOT DEFIMED LIMK'^GE
REGISTHHS - A
Y 7
= 0 UMCHAMGED UMCHAMGED LIMKAGH DDiiESS
CORE H E H U I H H : : E M T S : 15 OCTAL LOCATIOMS
LIMKAGE: RIC P.»Z JMP GT
GEMERAL DESCRIPTIOM:
THIS HOUTIME WILL ZERO ALL 3YTES OF THE AÍÍGUME::T .
00776#GT 00777# OlOOOvGU 0 1001'> 01003 01005 01007 01010 01012#
ZO ZT ZY RTR AAD RDC ALD STB HDC SKZ JMP RIC ZD
00776
(\>B X>B K>X 3..0 O^X A> A 2 GU Z:.P
STEP TO HIGHT-HAMD BYTE+1 ^ACK UP OME °YTE
SET BYTE Ti 'iiU? YES-MO-EXIT
= 0
00776 040 025
01000 055 022 000 320 000 010 200 131 01010 142 000 054
197
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
01013#GV 0 1014# 01015 01020#GW 01021 01023# 01024 01027 01031 01033 01034 01036 0 1040#
PiiOGHAM TITLE: MEGATE AiiGUMEMT
STAHTIMG LA3EL: GV
EMTHY COMDITIOMS:
EGISTiH •-S • - A X Y Z
= LEMGrii OF AHGU:-:HMT = ADi:i:iESS OF AHGiJi'-EMT = MOT DHHIMED = LIMKAGE
EXIT COMDITIOMS:
HEGISTERS - A X Y Z
= 0 UMCHAMGED LOST LIMKAGE ADDHESS
CORE HEQUIHEMEMTS: 26 OCTAL L0CATI0M5
LIMKAGE: HIC P.. Z JMP GV
GENERAL DESCHIPTIOM:
Ti I 3 H 0UT I ME \; ILL ME G '\T E T.HE AR GUME i-J i .
zo ZT ZY HTR AAD ALD RDC LD3 ASU AAD GOS RDC SKZ HTR JMP RIC ZD
01013
A:.B A..3 Y> 1 X.>X 0>X Y.»3 Y>311 Y>X A^A 4 YY:.Y GW Z>P
SET uP FOR IST C O M P L E :
3ACK UP OME BYTE GET 3YTE GET OME'S CO:-?LEMEMT Gi'T TWO'S COMPLEMEMT STOHE MEGATED HYTE THHU? Y E S -MO-SET OVERFLOW
EXIT
:NT
01013 040 025 004 112 001 01020 055 360 000 035 004 312 377 000 01030 132 010 200 132 010 326 142 020 0 1040 054
ÍkkaiHIÍÍiÉUÎIIIiiãÉií
198
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
01041 GO 01043 01045 01046 01050 GP 01052 01053 01055# 01056 01060 01061 01063# 01064 01066 GQ 01070
P:Í0G::AM TITLE
STARTIMG LABEL
CH V r. K A :i GUI-'E MT FOii P 0,: T I V E , MEGATIVE OH ZHHO
GO
EMTiiY COMDITIOMS:
H E G I S T E i i S - A =
Y = Z =
EXIT COMDITIOMS:
LHMGTH OF AiiGU''EMT ADDiiESS OF AHGUÍHENT MOT DEFIMED LIMÍ:AGE
HHiGISTERS • - A
X \'
z
= +1 (POSITIVE) -1 (MEGATIVE) 0 (ZEiiO)
= UMCiiAMGED = LOST = LIMiH' .GE ADDRESS
CORE REQUIREMHMTS: 36 OCTAL LOCATIOMS
LIMKAGE: RIC P^Z JMP GO
GEMEHAL DE5CHIPTI0M:
THIS HOUTIMH WILL CHECK THE AHGUMEMT FOH POSITIVE.» MEGATIVE 0:i ZEHO AMD WILL SET THE A HEGISTE:i ACCOiiDIMGLY.
zo ZT ZY RTR LDB SKP JMP LDB s z JMP HIC RDC SKZ JMP AZE JMP RDC JMP
010
A^Y O^X 2 GQ o.»x 2 GR X.»X A>A 2 GP A GS B>(\ GS
GET IST BYTE 0 H + AHG MEGATIVE IS 3YTE ZERO? YES-MO-MUMBER 13 P 0 3 I T I V E
ARE ALL BTTES ZERO? Y E S -NOT THRU CHECKIMG ARGUMEMT = ZERO
ARGUMENT = MEGATIVE
199
0 1072^^0^ 01074 GS 01076#
01041 010 01050 360 01060 131 0 1070 142
ALD RTR RIC ZD
32 1 3 60 000 131 142 050 074 021
\> 1 Y:.X Z..P
000 142 020 001
135 072 142 010
AHGUMEMT = POS TIVE íiESTOHE ' RG ADDH FOH E A I T
142 066 OSO 010 200 07 4 010 205 312 054
:xiT
200
+ *
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM TITLE: CHECK FOR DELIMITER
STARTIMG LA3HL: ET
01077#ET 01100 01102# 01103 01104 01106 01 1 10# 01112 01113 01115# 01117 01120
EMriHî' COMDiriO^JS:
EGISTEHS - A A
Y Z
EXIT COMDITIOMS:
REGI3TERS - A
A
Y Z
MOT DEFIMED ADDRESS OF CHAHACTEH MOT DEFIMED LIMKAGE
= 0 ( JOT A DHLIMITER) + 1 (DELIMHTEii) -1 (BLAMK OR SPACE)
= UMCHAMGED = L05T = LIMKAGE ADDRESS
COHE REQUIREMEMTS: 62 OCTAL LOCATIOMS
LIMKAGE: RIC P..Z JMP ET
GEMERAL DESCRIPTIOM:
THIS ROUTIME WILL CHECK THE CHAiiACTER IMDEXED BY THE X HEGISTER FOR OME OF THE FOLLOWIMG DELIMITERS. THE OCTAL CODE 15 IM ( ).
BLAMK (000) ( (250) = (275) + (253) SPACE (240) ) (251) : (272) - (255) CR (215) > (254) ; (273) * (252) / (257)
zo ZT ZY AZE LDB RTR SKN RDC JMP ASU SKM JMP ASU SKN RDC
01077
A O^X B>Y
4 B>A EV Y>215 2 EU Y>23 4 B>{\
CHAR
CH.AR 13 3LAMK
IS CHAR •CR'? MO-YES-13 CHAR SPACE? MO-YES-
201
01122 0 1124^:^ 0 1 1 2 6 0 1 1 2 7
0 11 31 -0 1 1 3 3 0 1 1 3 4 0 1136?>^ 0 1 1 3 7 0 1 140 0 1142 y 0 1144 0 1145 01147.^ 0 1150 0 1 1 5 1 0 1153ÍÍ 0 1 1 5 5 0 1 1 5 6 EU 0 1160:^EV
JMP ASU SKP J:-:P ASU Si'H j:-iP
H.DC SíOJ JMP ASU SKM j:-iP
RDC SKM J ^ÍP
A5U SKN HIC P. IC ZD
EV Y^ 10 2 EV Y>6 2 EU Y:»Y 2 EU Y^ 13 2 EU Y^Y 2 EU Y..2 2 (\>!\
7-.>P
IS CHHii • ( ' TiîHU • - ' ? MAY3E-MO-
Y E S -I S CHAR ' / • ? MO-Y r: s -i s o\\\ • : ' ? NO-Y E S -I S CH:-\ii ' ; • ? NO-YES -15 CHAH • = ' ? MO-Y E S - S S T DELIMITER IMD EXIT
0 1 0 7 7 0 2 0
01100 01110 01120 01130 0 1140 0 1150 0 1160
360 032 010 160 142 1 1 1 054
000 215 205 0 32 156 142
044 1 11 142 006 032 156
1 12 1 42 160 135 013 032
010 156 0 32 142 111 002
205 032 010 156 142 111
142 023 135 056 156 010
160 1 12 142 1 1 1 056 100
202
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
01161 GG 0 1163 01165 0 1 167# 01171 01 173 0 1 175 01177 01200 01202 0 1204 0 1206 GH 0 1210#
PROGHAM T I T L E : SiIIFT RIGHT
STAiiTIMG LA3EL: GG
EMT:.Y CO;:O'ÍTIOMS:
HvEGISrERS - A = MU:H3:'H O F V>ITS TO s H i F r X = ADD:iHSS OF AiiGUMEMT Y = JOT DEFIMHD Z = MOr DEFIMED
STOHAGE LOCATIÛMS -P# = LEMGTH OF AHGUMEi JT
EXIT COMDITIOMS:
EGISTE iS - A X V
Z
= 1 UMCHANGED LOST LOST
CORE i-.EQUIHEiHHMTS: 175 OCTAL LOCATIONS
LIMKAGE: RIC j:-ip
P:.B GG
GEMERAL DESCii IPT I OM :
THIS HOUTIME WILL SHIFT THE AHGUMEMT IMDEXED BY THE A HEGISTHH M 3ITS TO THE HIGHT. RIGHT HAMD 3ITS .ARE SHIFTED OUT AMD LOST. THE HIGH OHDEH BITS AiiE FILLED WITH 0 OR 1 TO KEEP THE SIGN OF THE AHGUMEMT UMCHAMGED.
zo ZT ZY ST3 TB3 STB ALD STB STB LD3 SKP RDC STB RTR LD3 iiTR
01 16
Gl
G 1 +1 B>0 G5 G3 0:.X 4 B^B G5 X>Y P# 3>Z
SAVE RETURM ADDR
SET SIGM POSITIVE
GET SIGM OF AHG SIGM POSITIVE
5ET SIGM MEGATIVE
LEMGTH
:i?tî t í l l t îUí^l |SMl*
203
01211# 0 1212# 01213# 01215 01216 01220# 0 1221#GI 01222 01224# 01225 01227# 01230# 01231 01232 01234 01236 01240 01242 GJ 01245# 01246 01250 01251 01253 0 1255 01257 01261 GK 01263 01265# 01266 GL 01270 0 1272# 01273# 01274 01276 01277 0 1301# 01303 01305 01307 01311 01313 0 1 3 1 5 # 01316 0 1320 01322# 01323 01325 01327 01330 01332
AAD RDC ASU 5KP . 'MP RDC RDC LDH HIC 5T3 HDC RDC s z JMP LDB STB JMP AAû iiTii
STB SKM J::P LDB STB RTR AZE LDB RTR LDB RIC SHL SHL RDC SKZ JMP ALD STB LDB AOR RTH STB RTR STB LDB RTR RDC STB SKN JMP LDB
X>P
K > X
A:.010 fj
GJ
K > K
0>X K > X
0>K
>x Z:»Z 2 GI G5 O^X GH A.»010 A:.3 G4 2 GN P# G2 Y^X Y 0>X
B>Z
G5 B^B Z Y A:»A 2 GL B^O G5 G3 Z>B Z>B 0>X
Y- B G3 G2 B-.A A.»B G2 2 GN G4
STEP TO iiICHT-HAMD 3YTE+1 3ACK UP OMH 3YTE CAM WE SHIFT 1 BYfE? YES-MÛ-
GET 3YTE-1
STOiiE IM 3YTE
MOVED ALL 3YTES? YES-NO-
5ET HIGH 3YTE = SIGN
ADD 8 3ACK TO # 3ITS
SAVE # BITS # 3IT5 > 0 . # 3ITS = 0 - THRU
SAVH -f RYTES STAHTIMG ADDR OF AHG TEMP MASK GET 3YTE
SET LIMK FOR SIGM SHIFT RIGf^T 3IT OUT
AMD IMTO MASK THiiU WITH THIS 3YTE? YES-NO-
CLEAR SIGN FOH HEST OF 3YTES GET MASK C0M3IME WITH BYTE
STORE RESULT
SAVE NEW MASK
THRU WITH ALL BYTES? NO-YES -
^'•^*P»Si»feStí,S«^
204
01334# 01335?^ 0 1 3 3 6 01340 GM 01342 01344rV 0 1 3 4 5 0 1 3 4 7 #
0 1 3 5 0 0 1 3 5 2 0 1 3 5 3 0 1 3 5 4 0 1 3 5 5
RTH i i I C JMH LDB ASU H I C E L 3
i R I C *
* CONSTAMTS G1 ZR G2 ZR G3 ZR G4 Lii G5 Z:i P // ZL
ZD
'^>(\
>: > X
GK P # K>B K>X Gl B^P
USED 2 1 1 1 1 7 2 2
GET STEP
3 I T .3
ADDR OF A:'.G
c :T V = AHG ADiH^ FOH V IT
EXIT
DY S H I F T HOUTIMES
01161 01170
01200 01210 01220 01230 01240 01250 01260 01270
01300 01310 01320 01330 0 1340 01350
302 000
010 045 057 057 142 111 312 010
266 063 342 142 341 052
350 302
255 02 5 055 131 206 142 004 1 55
022 010 352 340 322 145
014 205 302 351 022 355 302 353 360 000
302 055 3 60 142 004 340 002 073
000 353 042 342 004 052
355 030 000 221 310 341 3 60 072
302 320 010 3 54 201 052
010 010 050 342 010 322 000 010
355 000 2 50 042 050 052
321 135 320 355 040 302 045 200
342 047 302 050 162 052
341 142 000 320 302 352 342 131
353 302 352 142 350
136
322 242 055 000 354 010 355 142
004 353 11 1 261 052
205
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0 1356 GA 01360 01362 01364# 01365 01367 01370 0 1372#GB 01374 01376 0 1400#
PHOGHAH TITLE: SHiFT LEFT
STAHTIMG LABEL: GA
E.JTHY COMDITIOMS:
A E G I S T E H S - A = MUMBE:Í OF B I T S TO 5HIH X = -DíHiESS OF AiiGUHE;JT Y = HOT DEHIMHD Z = NOT DEFINED
STOHiAGE LOCATIOMS -P^f = LEMGTH OF ARGUMEMT
EXIT CONDITIOMS:
EGISTERS • - A
J 'x
Y Z
= 0 (SHIFT COMHLHTED) M (NUM^ER OF BITS MOT
= UMCHANGED = LOST = LOST
SHIFTED)
COHE HEQUIHEMEMTS: 111 OCTAL LOCATIONS
LIMHAGE: iiIC P..B JT'íP GA
GEMiEiiAL DESCRIPT I ON :
THIS ROUTIME WILL SHIFT THE AHGU:-:HMT IMDEXED
3Y THE X REGISTEH M BITS TO THE LEi- T. SHIFT-I.IG WILL MOT CriAMGE TiIE SIGM OF THE AHGUMEMT . IF A SIGM CHAMGE 15 A30UT TO OCCUH SHIFTIMG WILL TE:H:IMATE AMD T H E A HEGISTHH WILL COiíTAIM THE MUM3ER OF BITS MOT SHIFTED.
ZO ZT ZY STB T3B STB HTR STB SKN j:<p
ALD STB LDB RTR
0135
Gl
Gl + 1 A.»B G2 2 GF B^O G3 OJX
B^A
SAVE RETURM ADDR
SAVE # BITS
# BITS = 0
SET OVERFLOW = 0 TO START GET HIGH-OHDEH 3YTE
lÉÍta^M
206
01401 01402 01404# 01405 01406 0 141 0 01412'/GC 0 1413 01414 01416 GD 01420 0 1422# 01423# 01424#GE 01425 01427 01431# 01432 01434# 01435 0 1437 01441# 0 1442 01444 01445 01447 01451# 01452 01454 01456 01457 0 1461 GF 01463# 0 1464 0 1466#
P# Gl G2 G3 G4
01356 01360 01370
302 014 143
SKM Ú:V?
AAD SKM J:H JAP AAD SKP J:-P HTR LDB HTii AAD RDC GOL RTR AAD LDB AAD RT:i STB GOS RDC s z JMP LDB RTIi RDC STB SKZ JMP LDB RTR EL3 RIC ZL ZL ZL ZL ZL ZD
3 50 205 302 061 022
2 GC (\>B 2 GF GD A^B 2 GF X.,Y P# 3:,A Y^B Y^Y Z.»Y Z>B Z..3 G3 Z>B
ZZ..B G3 Z > Y A^ A 2 GE G2 B..Z Z^B G2 2 GB G2 B^A Gl B:.P 722 1350 1352 1353 1354
351 040 302 352 111 000 302 353 360 000
SIGM POSITIVE
MEXT SIGM M E G - O . K . MEXT SIGM P O S - S T O P SinlHT
MEXT 5ÎGM P 0 5 - 0 . K . MHHT SIGM iJEG-STOP 3HIFT ADDH OF A:iG
SET # 3TTES STiH^ TO RIGHT-HAMD 3YTE+1 BACK UP OHE 3YTE GET BYTH
SHIFT LEFT (ADD TO SELF)
ADD PREVIOUS OVERFLOW
SAVE MEW OV_EliFLOW STORE HHSULT SHIFTED ALL 3YTH5? YES-NO-GET # BITS
ARE WE THRU? YES-MO-
SET # BITS MOT SHIFTED
EXIT
01400 01410 01420 01430 01440 01450 01460
042 143 341 353 353 352 372
1 15 016 322 027 240 045 342
143 024 042 342 010 010 352
012 135 026 3 53 200 2 53 042
024 143 0 56 027 131 302 162
1 15 061 000 010 143 352 350
143 010 203 357 024 131 052
061 321 010 302 342 142
207
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM T I T L E : B U I L D V A R I A R L E TA3LE
STARTING LA3EL: YK
EMT.HY COMDITIOMS :
iiEGISTERS - A = MOT DEFIMED X = ADDRESS OF VAHIA3LE O'i
COMSTAMT Y = 0 (MOT AM ARRAY MAME)
1 (A.-vHAY MAME) Z = MOT DEFIMED
5T0HAGE LOCATIOMS -A/ = CURREMT ADDRESS OF VARIA3LE
TABLE A7o = TWO BYTE FIELD CO:JTAIMIMG
IMTEGER OR F-P IMDICATOR MODE DATA STORAGE ADDRESS
EXIT COMDITIOMS:
REGISTERS - A = LOST X = UMCHAMGED Y = LOST Z = LOST
STOHAGE LOCATIOMS -A/ = UPDATED CURREMT ADDRESS OF
VAiiIABLE TABLE
CORE REQUIREMEMTS: 164 OCTAL LOCATIOMS
LIMKAGE: RIC P>B JMP YK
GEMERAL DESCHIPTION:
THIS ROUTIME WILL PLACE THE VARIABLE OR COM-STANT INDEXED BY :iEGISTER X IM THE VAHIA3LE TA3LE ALOMG WITH THE DATA ADDRESS LOCATED IN A%. IF THE VARIA3LE 15 AM ARRAY MAME AM ASTERISK (*)> OCTAL CODE 252.. WILL 3E THE FIRST EMTRY IM THE TA3LE. IF MOT AM ARRAY MAME THE FIHST EMTiiY WILL BE THE STARTIMG CHARACTER OF THE V.ARIABLE \'AME OR THE. FIRST DIGIT OF THE COMSTAMT. A COLOM (:)> ÔCTAL CODE 272^ 13 USED AS A TERMIMATOR FOR THE VARI ABLE 0:i COMSTAMT. FOLLOWIMG THE COLON WILL
208
*
*
*
*
*
*
*
*
01467 YK 01471 01473 01475. ? 01476 0 1500 01502 0 1504 01506 01510 01512# 01513 01515 01516 01520# 01522# 01523 0 1525#YL 01526# 01527# 01530 01532 0 1534 01536 0 1540# 01541 0 1543 01545# 01546# 01547 01550
*
*
01552 01554# 01556 0 1560# 01561 01563
BE TVJO BYTHS COMTAIMIMG THE DATA STORACH AD-DHESS. THE LESS THA:) SYM30L (<), OCTAH CODE 274, IS USED AS A THiiMINATOH FO;-. THE TA'BLE EMTiiY. TríE CUiHiHMT ADDRES5 OF TiiE VARIABLE TAHLE WILL BE UHiv:\TED TO THE MHHT AVAILAHLE ADDHESS AMD AM EMD OF TA3LH M.HiH (' ) , CODE 300> WILL 3E PLACED IM THE TA3LE
OCTAL
ZO ZY ZT STB T3B STB RTR STB TBB STB LDB TBE ELB RTR HTR SKN JMP ALD GOS HlC GOL GOS RIC RIC STB TBB STB RIC j:-^p
ELB RTR RTR SKM JΫîP
01467
Yl
Yl + l X..B Y2
Y2 + 1 Z6
A/ B..Z Y:.Y 2 YL A:.2 52 A^Z Z^Z A..X A..Z X^X Z:.B Y3
Y3 + 1 P>Z ET Y3 B>Z AíA 2 YL
RE ADDR IN T RTR ALD STB RIC LDB STB
Z>X B>212 0>X X>X
A% O^X
SAVE RETURM ADDR
SAVE ADDR OF VAR OR COMST
SET MODE FOR VAR TBL
TBL ADDR AHiiAY NAME? YES-NO-
PUT '*• IM TBL
SAVE T3L ADDR
CHECK FOR DELIMITER
TBL ADDR 13 BUFFER CHAR DELIMITER? YES-NO-
PUT • : ' I'J TBL
STORE IST BYTE OF ADDR
• U».-sîiijí.-''^ •?*••--'•*'»'*í^
209
0 1 5 6 5 # 0 1 5 6 6 0 1 5 7 0 0 1 5 7 2 # 01573^/ 0 1 5 7 5 0 1 5 7 7 # 0 1600/i' 0 1602
*
*
01604^ 0 1605 0 1 6 0 7 0 1611
0 1 6 1 3 0 1 6 1 5 0 1 6 1 7 # 0 1 6 2 0 0 1622# 0 1 6 2 3 # 0 1 6 2 4 # 0 1 6 2 5 # 0 1 6 2 6 0 1 6 2 7
R I C LD3 S T 3 R I C ALD ST3 R I C ALD ST3
A.» X A%+1 i)>X x>x P>214 0..X .\ > X 3..300 0:.X
UPDATE TBL ADDR iiTH X..B STB A / TBB STB A / + 1
CHECK FOR END RTH X..Y EL3 D * ASU Y:.3 RTR YY^Y SHR Y SHR Y SKR Y SHR Y SKS 2 Jt-lP E3
STOiiE 2MD 3YTE OF ADDii
PUT • < • IM T3L
PUT • Q • IM TBL
MEW ADDR
OF VAR T3L CURRENT ADDR EHD ADDH
EMD OF T 3 L ? MO-YES-GO TO ERROR
* EXIT 0 1631 ELB Y2 01633# RTR B:.X 0 1634 LDB 7 0 1636 TBE 0 1640 ELB Yl 01642# RIC B:.P
*
* C0M5TAMTS USED 0 1643 Yl ZR 2 01645 Y2 ZR 2 0 1647 Y3 ZH 2 0 1651 Y4 ZR 1 0 1652 Y5 ZR 1
A% ZL 636 A/ ZL 642 Z6 ZL 667 D* ZL 726 ET ZL 1077 E3 ZL 2461
VAR ADDR FOR EXIT
SET RETURN MODE
EXIT
BY VAHIA3LE TAHLE RTMS
• M íÊ^m
210
ZD
0 1467 01470
01500 0 1510 0 1520 01530 0 1540 01550 01560 01570
0 1600 01610 0 1620 01630 0 1 640 0 1650
303 243
01. 1 161 021 010 053 143 050 320
022 205 010 061 163 145
014
''UVS
242 2 52 153 142 125 341 000
300 301 32 6 163 243 052
205
30 3 04 5 •: 2 4 303 077 0 1 0 236 050
320 243 0 62 245 052 052
303
2 46 010 010 247 163 313 320 022
000 010 062 043 052
244
341 322 l :. 3 014 24 7 022 000 27 4
046 32 1 062 340 145
046
2 67 11 1 200 20 5 045 272 050 320
301 161 0 62 007 052
303
014 143 22 4 30 3 041 320 341 000
2 42 326 125 014 145
245
20 > 125 0 50 250 1 1 1 000 237 050
014 035 145 206 052
m^m
211
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PivOG;iAM T i r L E : SEAiiCH VAHIAHLH TA^LE
5TA;iTING LA.HHL: YM
HNjriiV COMDITIOMS:
R E G I S T E i i S -•r r
Y Z
MOT DHr'IMED ADDHESS OF V H i r " \ 3 L E 0: COMSTAMT MOr DEÍHlMED MOT DEHIMHD
STOiiAGE L0CATI0M5 -
A* = STAiiTIMG ADD:iHSS OF VAHIAHLE TA3LE
EXIT C 0 M D I T I 0 M 5 :
i i E G I S T E i i S - A =
X = Y =
Z =
0 (MO MATCii) 1 (MATCH) UMCHAMGED . 0 CJOT AM AiiHAY MAME) 1 (ARHAY M^H--:E)
LOST
STOHAGE LOCATIOMS -AS = DATA ADDRESS IF A MATCH
CO:iE iiEQUIREMEMTS: 165 OCTAL LOCATIOMS
LIMKAGE: RIC P..3 JMP Y:-:
G E M H:-. AL D E 5 CRIP T I 0 :J:
THIS iiOUTIME WILL SEAiiCH THE VAiiIAHLE TA3LE TO DETEHMIMH IF TiíE VAHIABLE OH COMSTAMT IHDEXED 3Y HEGÎSTEH X 15 IM THH TABLE. IF A MATCH 15 FOUMD THE DATA ADDRESS IS MOvED TO AS AMD THE A HEGISTEii 15 SET TO IMDICATE A MATCH. THE MATCHED MAME 15 CHECKED FOR AM ARRAY MAME AMD THE Y REGISTEH 15 SET ACCOivD-INGLY. IF NOT A MATCH THE A HEGISTER IS SET TO ZERO.
0 1653 YM 0 1655
ZO ZT ZY STB TBB
01653
Yl SAVE RETURM ADDR
tSktÍts» ttU<>iilttUí:V..i.
p
212
01657 01661# 01662 01664 01666 0 1670 0 l 672 0 1674 01676# 01677#Y 01700# 01702 01703 01705# 01707 01711 01713 01715/YM 01717 0 1721 : Y0 01722 0 1724# 01725 01726 01730# 01731 01733 01735 01737 0 1741.Í-' 0 1742 0 1744 01746# 01747# 01750 01751 01753# 0 1754# 01756 01757
*
*
01761 0 1763# 01764 01766 01770# 01771 0 1773# 01775
STi^ iiTii ST3 T3B ST3 LD3 T3E EL3 HTH GOL ASU SiîZ J:H- ALD 5T3 RIC JMP ALD 5T3 GOL LD3 A5U SKZ JT'ÎP R I C RIC 3TB TBB 3TB RIC JMP ELB RTR HTH SKM J iP GOL ASU SKZ JMP
HAVE RIC GOL STB RIC GOL STB ALD JMiP
Yl + 1 X:.3 Y2
Y2 + 1 Z6
A* B^Y A:.Y A^252 2 YM B:.l Y5 YíY YO B^O Y5 A^Y O^X \>B 2 YQ X.»X Y..B Y3
Y3+1 P,Z ET Y3 B>Y A>A 2 YO A..Y Aí272 2 YQ
FOUND A Y^Y B..Y AS Y^Y B>Y AS+1 A^l YS
SAVE VAH ADDR
SET MÛLM'i FOR VAH TAHL
STAHT OF VAH THL
•*• ? YE5 -MO-
5ET AimAY MAME IMD STEP PAST •*•
SET MO ARHAY MAHE IND
GET TEST CILAR AHE THEY =? Y E 5 -MO-GO STEP THRU T3L
SAVE TBL ADDR
15 CHAR DELIMITER?
TBL ADDR 15 TEST CHAR DELIMlTÎÍH?
Y E S -NO-T 3 L CHAR I S T3L CHAR • : ' ?
Y E S -NO-STEP THRU T3L
MATCH - SET DATA ADDR STEP TO DATA ADDR
5ET MATCH IMD EXIT
213
01777# 02000 02002-^ 02004 02005 02007^ 02010# 02012 02013 02015 0 2017# 02020
* ST TQ
t
* NC 0 2022#YR 02023 02025.^ 02026 02030Í 02031 02033 02035 02037á
01653 0 1660 0 1670
01700 01710 01720 01730 0 1740 01750 0 1760 01770
02000 02010 02020 02030
YS f
í
í
A* AS Z6 ET Yl Y2 Y3 Y4 Y5
303 244 341
030 2 52 2 52 0 50 250 1 1 1 377 230
010 030 143 044
F.P THHU GOL :iIC ASU S -^í-j
J 'P GOL ASU SKN JMP EL3 iiTR J>'P
) MATCH AZE ELB HHrR LD3
LD3 T3E ELB HIC ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
243 014 046 303 2 67 014
252 131 010 122 210 360 010 152 053 142 143 321 010 122 301 251
122 030 300 111 277 020 340 007
TAHLE A:.Y Y.. 'i"
A^274 2 YH A^Y A^300 2 YR Y2 3.. :: Y
A Y2 B>X
Y5 B^Y 7
Yl 3..P 640 650 667 1077 1643 1645 1647 1651 1652
205 24 5 206
143 143 000 303 077 210 230 021
274 144 163 014
r
\
r
1
30 3 0 14 161
315 321 034 247 163 030 301 001
131 022 245 206
GET T STEi^
A LE CHMi T3L ADDR
15 CHAíi •<•? YES-MO-GET :\ iEHT CHAH IS CHAH •' ^ - EMD OF T3L MO-YES-
VAR ' DDR
SET MO MATCH IMD
SET VAR ADDR FOH EXIT
s ÎÍ:T •' iHRAY MAME I iJD
SET RETURM.MODE
EXIT
205 303 2 40 044
022 001 022 000 131 143 014 205 247 044 272 131 250 010 144 023
143 377 163 245 04 3 343 163 243
246 210
303 303 377 303 041 143 122 210
210
043 252 052
•p
;ut;.»iitîtiîíi s ?r
214
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PiiOGiiAM T I T L E : I\OVE INSTiiUCTIOM
STAiiTIMG LAHHL: ZA
EMT.iY COMDITIO J S :
iiEG I STi'H-.S - .-i —
Y Z
T Y P E OF :':0'JZ 0 (3UHFHH TO STOH'^GE) 1 (STOHAGE TO BUFi^EH) r o A D D ; : H S S
FiiOM A D D H H S S
LIMIiAGE
EXIT COMDITIOMS:
HEGISTExiS - A =
Y Z
LOST MH::T AVAILA3LE ADH:ÍESS IF
MOVH 15 TO STORAGE
HIGii 3YTE OF HH::T I :;:HrHHCT I OM ÛDDRESS IF MOVE IS TO BUFFER
LOST LIMKAGE ADi)iiHSS
CORE REQUIHEiIEMTS: 164 OCTAL LOCATIOMS
L I N K A G E : R I C
JMP P^Z ZA
GEMERAL DE5CRIPTl0M:
THIS ROUTINE WILL MOVE AN EXISTIMG IMSTiiUCTION iviOM THE MODE 2 STORAGE LOCATIOM TO THE BHF-FER OR WILL MOVE A NEW INSTRUCTIOM TO PHOGRAM STORAGE.
0 2040#ZA 02041 02043 02045 02047# 02050 02051 02053 ZB 02055# 02056 02060 02061
zo ZT ZY RTR STB LDB TBE RTR SKN JMP RIC GOL RIC SKZ JMP
020
AíB Z% Z2
A:.A 2 ZD Y^Y B:.Y 3^B 2 D
SAVE TYPE MOVE
SET PiiOG STORAGE MODE TYPE MOVE? STORAGE TO 3UFFER 3UFFEH TO 5T0RAGE
GET 2MD 3YTE OF LIME CTR VALID IMST? MO-YES-
^UltUSiilt^^^ii^
215
02063?;- ZC 02064 02066^^ 02070 02071 02073ír 02074 02076 02100# 02101 02103 02105-:'-02106 02110-:'D 02111#ZD 02112^; 02113# 02114 02116^ 02120 02121 02123 02125 02126 02130 02132 02133 02135 02137 0 2141 02143 A 02145 B 02147 02151 02153 02156 02160 02161 02163 02165 02167# 02170# 02172# 02173 02175 02177 02201 02203 02205#ZE 02206#
GOL :iIC ASU SHZ H.-iP GOL STi3 : i I C GOL STB EL3 HTR Ji'P HDC GOL GOS nlC iiIC ASU SKZ J.^P LD3 SKZ JMP LD3 SKZ J::P HIC HIC J.'IP ELB STB TB3 ST3 .AAD LD3 SKM JMP RTR EL3 iiTR ASU RTR STB T3B ST3 RTR j:'ip
GOL GOS
A..Y Y.Y '\.. 2 1 5 o ZC 3:.Y ZS Y:.Y B..Y Z5+1 ZJ
B>Y ZB Y..Y A..Y A..X X>K Y:.Y \ ^215 2 ZD Z% 2 ZE U# 2 A
l~i
X>Y Y..B B U * 0..X
l^X X..2
u# 2 C X:.Y K* 3..X X^2 Y^B 0..X
l^X Y..X C /\>Y f\>X
•C:i^? YES-:;o-
ADDii OF MEXT ÎMST
BACK UP TO LIME CTH
MOVE CHAR
• CH ' ? YES-HO-TYPH MOVE? BUF TO STO;iAGE STOHAGE TO BUF •ADD^ PE:JDIHG? NO-YES-
STORE MEXT ADDR
•ADD' PEMDIMG? YES-MO-
216
02207v' 02210 02212# 02213# 0ÍÍ214 02216 0 2220?; 02221 02222
02040 02050 02060 02070
02100 02110 02120 02130 02140 02150 02160 02170
02200 02210 02220
C
z/: zs *
Z2 Z3 U# u*
040 1 1 1 131 131
230 056 131 341 152 205 1 1 1 031
001 010 0 54
RIC 1
RIC GOL GO: 3 LD3 T3E iUC ZR ZR ZL ZL ZL ZL ZL ZD
304 144 144 144
304 210 144 334 144 320 144 002
010 122 054
22 1 1 1 1 1 10 063
223 2 04 1 1 1 131 145 001 214 047
312 2 10 0 54
4 - > Ã k
Y..Y A^Y A:.X Z3
Z^P 1 2 626 663 664 734 735
341 010 210 230
164 050 344 144 161 004 010 32 0
144 204 143
263 122 010 304
222 010 221 143 335 31 1 321 000
2 14 341
Mi
5 E
014 230 122 222
044 122 131 010 320 002 161 014
210 2 64
OVH •
HT H XIT
206 010 030 010
144 030 144 121 000 341 226 205
204 014
'-JEHT
ETUH
041 155 215 122
053 215 205 010 014 334 043 320
050
206
ADDH TO "UFFHH
•ODH
••løm^
217
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
0 2 2 2 4 ZF 0 2 2 2 6 0 2 2 3 0 02232»^ 0 2 2 3 3 0 2 2 3 5 0 2 2 3 7 #
PíAOfH-.AH T I T L E : vOvM'i DATA
STARTIMG LAREL: ZF
HMr;:í ' C O J D I T I O M S :
n E G I S r E ; i 5 - A =
X =
Y Z
TYPE OF MOVE 0 (STOi;AGE TO ViORK A^ijr.^ ) 1 (WORK A:iEA TO STO;iACE) ADDHHSS OF TWO 3 r r E FIELD COMT^IMIMG
IMTHGEH OR F-P ÍMDICATOR MODE DATA STO:iAGE ADDr^ESS
ADDRESS OE WORK AHEA MOT DEFIMED
STORAGE LOCATIOMS -P^ = LEMGTH OF DATA
EXIT C0MDITI0M3:
REGISrE;iS • - A X Y Z
= LOST = LOST = LOST = LOST
CORE REQUIREMEMTS: 124 OCTAL LOCATIOMS
LIMKAGE: HIC P^B JMP ZF
GEMiHiAL DESCRIPTIOM:
TfiIS :iOUTIME WILL DETERHIiJE IF THE DATA 15 IMTEGEii OR FLOATIMG POIMT.. SEr THE COH.-.ECT MODE A JD V'.OslF. THE DATA F:-.OM DATA STORAGE TO THE WORK AREA OR FROM THE WOhK AREA TO DATA STORAGE.
zo ZT ZY STB TBB STB HTR STB LDB RTH
0222
Zl
Zl + 1 A^B Z4 P# R^Z
SAVE RETURM ADDR
SAVE TYPE OF MOVE
LEMGTH
p 218
02240 0 2242 02244'!' 02245 02247 0 2250 022 52* 02253# 0 2254 02257# 02260 Û2262# 02263# 0 2264# 02265# 02266# 02267 02271 02273 02275# 02276 ZG 02300 02301 02303# 02304# 02305 02307#ZH 02310# 02311#ZI 02312 02314 02316 02317 02321 02323# 02324 02326 02330#ZJ 02331 02332
*
02334 02336 02340 02342#
*
*
02343 Zl 02345 Z3 02347 Z4
LD3 STB i IC LD3 SKP r.IC iiTii
AMD iHr:i srB SHR SHR SHR SHH RTR TBE RTR ELB RTR LD3 5KZ JMP GOL GOS JMP GOL GOS HIC RIC RTR s z JMP ELB RTR LDB TBE RDC SKZ JMP
EXIT LD3 TBE ELB RIC
0>X
Z3 A>X
0>X
2 Z..Z 3.. A P>X
K>011
K>B
Z3 + 1 A A A A A 3
Y^X Z3 B^Y Z4 2 ZH A>Y A^X ZI A^X A>Y K>X
Y>Y YY..B 2 ZJ D* B:.Y Z6
Z..Z 2 ZG
Zl B>P
COMSTANTS ZR 2 ZR 2 ZR 1
3UILD ADDR 'T Z3
HIGH BYrE OF ADDR
ADD 1 IF FLOAT-PT
CLEAR ALL BUT ADOH
FIMISH ADDR
j iIIFT TO MODE
SET MODE FOR DATA
DATA ADDR TYPE MOVE?
CROSS 7 7 7 7 ? Y E S -MO-GET MEW DATA ADDR
THRU? Y E S -MO-
SET RETURM MODE
EXIT
219
0 2224 0 22 30 0 2240 02250 0 22 60 02270
02300 02310 02320 02330 02340
Z6 p(f D*
30 4 304 360 010 304 206
131 214 330 057 164
ZL ZL ZL ZD
34 3 344 000 133 346 010
144 050 161 131 343
014 040 304 042 060 312
307 010 32 6 144 052
667 722 726
205 30'i 345 04 3 0 60 164
210 122 044 276 052
347 050 004 060 345
204 010 34 1 340 145
341 3 60 031 0 60 044
144 356 2 67 007 052
322 000 017 040 344
31 1 131 014 014 145
045 135 046 014 347
200 144 206 206 052
220
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
02350 02352 02354 02356# 02357 0 2361# 02362# 02364# 02365 02367
EM
PROGHAM T I T L E : C H E C K ADDRESS CHOSSI.MG MODES
STARTING LABEL: EM
EMTRY COMDITIOMS:
REGISTE:iS - A X
Y Z
MOT DEFIMED ADDRE5S OF TWO BYT'-: FIELD CO:JTAIMIMG
IMTEGEH OH F-P IMDICATOR MODE DATA STORAGE ADDRESS
MOT DEFIMED LIMKAGE
EXIT CONDITIOMS:
REGISTERS • - A X Y Z
= LOST = UMCHAMGED = LOST = LIMKAGE ADDRESS
CORE REQUIREMEMTS: 101 OCTAL LOCATIOMS
LIMKAGE: RIC P^Z JMP EM
GEMERAL DE5CRIPTI0M:
THIS ROUTIME WILL CHECK THE DATA ADDRESS IMDEXED BY HEGISTER X TO DETHHMIME ÍF THE ADDRESS CROSSED THE EMD OF MODE 1. IF THE ADDRESS CHOSSED THE EMD OF MODE 1 THE AD-DRESS 15 UPDATED TO THE MEW ADDHESS IM MODE 6 AMD THE MODE IMDICATOR IM THE TWO BYTE FIELD 15 ADJUSTED.
ZO ZT ZY RTR LDB STB RIC LDB RTR AND RTR STB RTR
02350
X^Y 0..X El X..X 0>X B..A A>017 A^B El+1 Y>X
SAVE ADDR
CLEAR IND Ã MODE
BUILD ADDR AT El
_ <»*.-»H.<,Ktaí«Míî:
221
02371 0 2373'r* 02374 02376# 02377 0: 401 0 2402 02404# 02405^« 02406# 02407# 02410 0241 1 02413 02415. /* 0 2416 02420# 02421# 02422 02424 02426# 02427 02431 02433 02435 02436 02441 02442# 02443 02445#EM 02446 El 02450 £2
K# D*
ELB iiTii
ELB ASU KTR S K M JMP SHR SHR 5HR SHR SKR JMP EL3 Rr ELB AAD RTH ST3 T3B RTR LDB AOR LD3 SiHP AOR SKP HTR 5TB RIC ZR ZC ZL ZL ZD
K# ^'>Y El Y,B YY^Y 2 EM Y Y Y Y 2 EM D* 3..Y El Y:.B Y>B 0>X
B^Y E2 Y:.B 1..X 4 Y:»200 0 Y:.B 1>X Z..P 2 140 624 726
4000/8 CUHiiEMT ADDR SU3 CUHHEMT ADDR FHOM 4000
CU;ii{EMT ADDR = 4000 - O.K.
IS HESULT MEG? MO-YES-ADDR O.K. 5000/8
CURREMT ADDR ADD 5000 TO CUHREMT ADDR
MSW MODE
SET F-P IMD
EXIT
MODE 6 FOR ADDR
0 2350 02360 02370
010 321 000 042 312 161
360 037 224
000 017 04 4
305 040 165
046 30 5 046
050 360 0 17 010 035 010
02400 02410 02420 02430 0 2440 02450
326 111 145 045 062 062 062 062 105 026 050 200 140
145 04 7 004 134
045 320 062 047
161 000 360 320
32 6 014 001 001
044 205 136 0 54
165 044 004 054
046 345 072 143
222
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
02451#E1 02453 02455#E2 02457 02461#E3 02463 02465#E4 02467 02471#E5 02473 02475#E6 02477 02501#E7
PiiOGRAM T I T L E : EHiiOR RQUTIME
ST.ARTING L A 3 E L S : E 1 , E 2 > - - - , E 7
EMTiiY C O M D I T I O M S :
EMTiiY TO THE IHii^OH HOUTIMH WILL OCCUR VHEM
ERiiO;i COMDITIO.JS AHE HMCOHMTHiiHD IH THH PiíOGi'.AM.
EXIT COMDITIO.MS:
AT EXIT THE STATUS OF THE PROGRAM WILL 3E THE STATUS PRIOii TO THE CU:.;HE: -T IMSTRUCTIOM WHICH CAUSED THE ERROR.
COiiE REQUIHEMEXrS: 137 OCTAL LOCATIOMS
LIMKAGE: JMP EM (M = 1 2> >7)
GEMERAL DESCi-i IPT I OM :
OME OF THE FOLLOWIMG ERHOH MESSAGES 15 P R I N T E D :
El - PHOGHAM TOO LOMG E2 - STATEMHMT MUM3ER TA3LE FULL E3 - VAHIA3LE TA3LE FULL E4 - DATA STORAGE FULL E5 - I. JVALID LMACHO IMSTHUCTIOM
E6 - IMVALID AHITHMETIC IMSTRUCTIOM E7 - OTHER
STATUS PRIOR TO THE CURHEMT IM5THUCTI0M 15 RESTORED AND EXECUTION WILL COMTIMUE.
ZO ZT ZY ALD JMP ALD JMP ALD JMP ALD JMP ALD JMP ALD JMP ALD
024
Z> 1 E* Z^2 E* Z:.3 E* Z:.4 E* Z>5 E* Z^6 E* Z^7
: »4»iUti«sUí tití H feiyitíHU
• ^ * « ^ 223
02503 02506 02510// 02511# 02512 02514# 0 2515 02516 02520 0 2522/^ 02523 02525;? 02526
02530 02532 02534 02536 02540 02542 0 2544 02546# 02547 02551 02553 02555# 02557 02561 02563 02565 02567# 02570 02572 02574 02576# 02600 02602
02604 02605 02606 02607
E* ES
*
*
*
*
*
E%
E# TO K* K$ A/ A>
ALD LD3 iiTii ii IC JKP iiDC SHM JMP LD3 AAD HTR liIC JMP
RESET IM
X,2 E:-:..X B > A i^..3
TO X..X 2 E5 E^ Z:»B Z>A P..B TO
iDICATOiiS IMSTiiUCTION
LD3 STB LDB STB LDB T3E ELB RTR 3TB TBB STB ALD STB LDB TBE ELB RTR STB TBB ST3 ALD STB JMP
ZC zc zc zc ZL ZL ZL ZL ZL
s *
KS + 1 K*+l Z6
A> B..X A/
A/+1 3^300 0>K
Z3
Y= B^X YS
YS+1 B:.300 0..X ZZ
305 212 215 260 120 626 630 642 644
OUTPUT 'Ci'. • - •LF^-•E' THHU? YES-MO-
SET PROPHii HHiiOR DIGIT
OUTPUT ERROfi D I G I T
TO ELIMIMATE CURREMT
* *
*
*
* *
RESET PROGRAM STORAGE
SET MODE FOH VAR TBL * *
*
* HESET VAii T3L *
* *
RESET EMD OF TBL MARK
SET * *
*
*
*
* *
RESF Exn
•£• •LF'
MODE ?
RESET
:T E M D t
•OR 5TMT#
5TMT# T3L
OF TBL MA
TBL
RK
•CR*
^ ^ É ^
224
02451 02460 02470
02500 02510 02520 02530 02540 02550 02560 02570
YS Y = Z3 Z6 ZZ
02 3 103 103
103 042 345 341 341 242 000 301
ZL ZL ZL ZL ZL ZD
001 02 3 023
023 051 207 230 267 014 341 254
145 00 3 005
007 140 02 7 301 014 205 2 64 014
654 656 664 6 67 2 644
103 145 145
004 120 010 226 206 301 014 205
02 3 103 103
11 1 055 303 341 161 243 206 301
002 023 023
002 115 051 231 244 022 161 255
145 004 006
365 145 140 301 043 300 256 022
145 145
204 106 120 227 301 320 043 300
02600 320 000 145 244 305 212 215 260
l saîlitii ^ ^ î ^
mi
•*s»w^
225
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Pi-.OGRAM T I T L E : M I S C E L L A M E O U S iiOUTIMES
STARTING L A B E L S :
Z ZY ZZ AA
A3 -
KB -PA -PB -JB -
FO -
ZX -
- EM'i vr
iiET STA Aii í STA ROU TMA
THA THA THA Fr.O T:iA COM TR A
AM
MACHO
; Y POIMT FOii I MTHiiiHHHrHii UiiM POIHT HOii P:- .HCISI0:J MACHO U:iM i OIMT i-0;. ALL -OUTrj:- ;S CK PR0CH5S0R HHT:vT :H^OM THMEr iC liJSTiiuCTIQNJ CH HiiOCHSSOH HMT T F.-O'-TTMES M5FER TO ARHAY iiOUTIME MSFEH TO HEAD MACriO MSFHH TO WHITE MACHO MSFHH TO OUTPUT LIM:!: COUMTER :'; HHAD MACRO MSFE.i AMD C0MSTAMT5 FOH OUTPUT VEHSIOM HOUTIME MSFER TO ALL ARITHMHTIC ROUTIMES
EMTRY COMDITIOMS: AS REQUIRED
EXIT COMDITIOMS: AS REQUIRED
CORE REQUIREMEMTS: 407 OCTAL LOCATIOMS
LIMKAGE: AS :iEQUI:iED
GENERAL DESC;i IPT I OM :
THESE ROUTIMES PHOVIDE LIMKAGE FROM MODE TO MODE. THE FHOM MODE 15 SAVED AMD THE TO MODE IS PLACED IM STORAGE LOCATIOM 7- PRIOR TO RETU:Í:JIMG T O IMITIAL MODH THE IM TIAL
MODE 15 R E S T O H E D IM LOCATIOM 7.
^í«^í^iÍ«^U^iâ i ^ ^
226
* * *
* ENTiiY POINT FOR INTIHHHiETEii
02610 Z 02612 02614# 02616 02620 02622# 02623# 02625 02627# 02631 02633# 02635 02637
*
02641#ZY 0 2642
0 2644 02646 02650 02652 02654 02656 02660 02662 02664 02666 02670 02672 02674 0 2 676 02700 02702
*
zz
* $
A/ A> Y% Y£ Y= Z3 P# L#
lA XX
ZO ZT ZY LD3 TBE ALD STB
iiTR ALD STB ALD 5T3 ALD 5T3 STB
RETUHM PO RIC JMP
RETUiiM PO LDB STB LD3 STB LDB STB LDB STB LDB STB LDB STB LDB STB TBE JMP ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL
SET Pi^ECISIOM = 3
ADDR OF STMT# TBL
PUT •<• IN STMT# TBL
PUT •Q• IN 3TMT# TBL
LIME CTR = 0
02610
Z3
B:.3 P# Y% B^X 3:. 2 74 0..X B..300 1>X B^O L# L#+l INT FROM PHECISIOM MACRO P^Z XX INITIALIZE INT FOR ALL HOUTINES A/ A> A/+1 A>+1 YS Y = YS + 1 Y = +l K* s
K*+l KS + 1 Z3 7
lA 62 6 630 642 644 652 654 656 664 722 723 4000 6751
V.AR TBL ADDR
STMT-í TBL ADDR
PROGRAM STORAGE ADDR
SAVE EXECUTING MODE
GO TO EXECUTIVE RTN
^ llllf||yMII,l»^
ZD
227
02610 02620 02630 02640 02650 02660 02670
341 161 300 324 341 341 341
264 252 320 053 243 2 55 227
014 043 001 155 301 301 301
206 022 02 H 351 24 5 257 231
022 274 000 341 341 341 34 1
003 320 301 2 42 2 54 22 6 264
301 000 323 301 301 301 300
322 022 301 244 256 230 007
02700 014 206 150 000
ntit^
228
* * * STACK P:<.0CESS0R >f I M S T i i U C T I O M
EMT;.Y Fi;OM AM A i U T H i ' H - T I C
02704 02706 02710 02712
02714 02716 02720 02722 02724 02726 02730 02732 0213^1^ 02735 02737 02741 02743 02745 02747# 02750 02752
AA
*
*
A3
Al A2 Z5 AC AD
ZO ZT ZY LD3 STB T3E JMP
02704
Z5 7
AC ARITHMHriC HTM
AHITHMEriC HMTiiT FROM MACRO STB TBB STB LDB STB LDB STB TBE i.IC JMP LDB 3TB TBE ELB RIC ZR ZR ZL ZL ZL ZD
Al
Al + 1 7 A2 Z5 7
P..B AD A2 7
Al B^P 2 1 666 4000 40 1 1
SAVE HETUH:J MODE
AHrrHMETIC RTM
EXIT
02704 02710 02720 02730 02740 02750
341 014 305 300 352 052
266 206 351 007 300 145
300 150 340 014 007 052
007 000 00 7 206 014
305 305 051 206
3 50 3 52 150 165
014 341 01 1 350
205 266 345 052
i^ai^ii t í^^éiã^
229
* • *
0 2 7 5 3 KB 0 2 7 5 5 0 2 7 5 7 0 2 7 6 1 0 2 7 6 3 0 2 7 6 5 0 2 7 6 7 0 2 7 7 1 0 2 7 7 3 * 0 27 74 0 2 7 7 6 0 3 0 0 0 0 3 0 0 2 0 3 0 0 4 0 3 0 0 6 #
0 3 0 0 7 0 3011 0 3 0 1 3 0 3 0 1 5
0 3 0 1 7 0 3 0 2 1 0 302 3 0 3 0 2 5
0 3 0 2 7 0 3 0 3 1
* * *
*
PA
* * *
*
PB
* * *
*
*
JB
0 3 0 3 3 # 0 3 0 3 4 0 3 0 3 6 0 3 0 4 0 0 3 0 4 2
0 3 0 4 4 0 3 0 4 6 0 3 0 5 0
PS * * *
*
FÛ
ZO ZT ZY
r:iAMSFP:i
s rB rBB 3 T 3 LDB STB LDB 3 T 3 TBE RlC JMP LDB 3TB TBE ELB R I C
0 2 7 5 3
i TO S U B S C R I P r ROUTI.NIE
4
5 7 6 Z5 7
P í B 6 2 5 1 6 7
4 B^P
TRAM3FER TO READ MACRO
LDB STB TBE JMP
TRA;NI3F
LDB STB TBE
Z5 7
6 7 3 7 ER TO WRITE MACRO
Z5 7
JHF 6 7 6 5 TitAMSFER TO OUTPUT LIME COU^ READ MACRO
LDB TBE R I C JMP LD3 TBE JMP ZL
Z3
P ^ Z 4 4 7 6 7
P S 7 4 5 4
TRAMSFER FOR OUTPUT COMVERS
LDB TBE JMP
Z l
4 0 0 0
230
03052 03054 03055 03056 03057 03060 03061 0 3062
+ ** *
Fl F2 F3 F5 F; F? F# F* Zl Z3 Z5
CÛMSTAMrS FOii OUTPUr COMVHriSIOM ROUTIME
ZR ZR ZR ZR ZR ZR zc zc ZL ZL ZL ZD
2 1 1 1 1 1 0 0 6 6 2 6 6 4 6 6 6
02753 02760 02770
03000 03010 03020 03030 03040 03050 03060
300 005 007
300 266 266 264 014 150
004 340 014
007 300 300 014 206 000
014 007 206
014 007 007 20 6 157 150
205 300 051
206 014 014 05 3 054 000
300 00 6 154
160 20 6 206 151 34 1 150
34 1 251
004 155 155 076 2 62 150
266 340
052 3 37 365 340 014 150
300 006
341 341 341 007 206 150
150 000 000
231
* * *
*
0 3063 ZX 03065 03067 03071 03073 03075 03077 03101 03103 03105
*
*
0 3107# 031 10 031 12
*
*
031 14':> 03115 031 17
*
*
03121# 03122 03124
*
*
03126# 03127 03130 03132 03134 03136# 03137 03141
*
*
03143# 03144 03145 03147 03151 03153# 03154 03156
TRAMSFE
ZO ZT ZY 3T3 TBB STB LD3 STB LDB 3TB TBE LDB AAD
MULTIPLY RIC JMP JMP
DIVIDE RIC JMP JMP
i'. TO ALL
03063
Zl
Zl + 1 7 Z2 Z4 7
Z# P..B
P>B DA ZY
P^B EA ZY
CONVERT TO BIN.ARY RIC JMP JMP
ADD RTR SKZ RIC JMP JMP RIC JMP JMP
SUBTRACT RTR SKZ RIC JMP JM? RIC JMP JMP
P..B CA ZY
A^A 6 P>B BG ZY PíB BA ZY
A>A 6 P..B BL ZY P^B BD ZY
SAVE rH'TURM ADDii
SAVE RETURM MODE
SET :'iODE RTM CODE STEP TO PHOPE:< JU:-P
FLOAT-POIMT
INTEGER
FLOAT-POIMT
INTEGER
V*—»««Íí iÆSBii-
0 3 1 6 0 # 03161 0 3 1 6 3
*
*
0 3 1 6 5 ^ 0 3 1 6 6 0 3 1 7 0
*
*
0 3 1 7 2 0 3 1 7 4 0 3 1 7 6 0 3 2 0 0 # 0 3 2 0 1
*
*
ZY 0 3 2 0 3 0 3 2 0 5 0 3 2 0 7 0 3211 0 3 2 1 3 # 0 3 2 1 4 Zl 0 3 2 1 6 Z2
Z4 Z7 Z# BA BD BP BG BL DA EA CA FA HA
232
MORMALIZE i i i r : P>B JMP 3 P JMP ZY
COMVEiHr R I C JMP JMP
EXPOMEMT LDB STB TBE RIC JMP
TO DECIMAL P..B FA ZY
Z7 7
P^B HA
RETUH(M POIMT FROM ALL ARITHMETIC RTM^S
03063 0 3070
03100 0 3110 03120 03130 03140 03150 03160 03170
03200 03210
306 215
007 152 203 010 000 275 051 146
051 206
LDB ST3 TBE ELB RIC ZR ZR ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
214 014 340 007
014 046 051 154 146 146 150 203
206 146 154 150 203 203 177 341
Z2 7
Zl B>P 2 1 665 670 71 1 4000 4 104 4177 431 1 4675 5046 5062 6275 7137 40 52
205 306
341 203 275 31 1 041 051 146 270
306 216
31 1 051 146 146 133 150 203 300
SET RETUHM MODE
EXIT
341 265 300
004 152 203 203 010 104 051 007
304 0 62 041 051 154 146 156 014
150 052 166 214
346 216 052 052
300 007 145 052
051 146 133 150 151 203 137 206
014
îT>;rsí;ii; tHîi»l»îtiU^SH^
233
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROGRAM T I T L E : 3UILD STATEMEMT MUMRE
STARTIMG L A B E L : YA
R TABLE
EMTiiY C0MDITI0M3:
ÍÆGISTERS - A = V
Y Z
MOT DEFIMHD MOT DEFIMED MOT DEFI\ED MOT DEFIMED
STORAGE LOCATIOMS -
I/ = ADDRESS OF STATEMEMT MUM3FR (IF AMY) IM 3UFFER
YS = CUHREMT ADDRESS OF STATEMEMT MUMBER TABLE
K* = CUH:iEMT ADDRE55 OF PROGRAM STORAGE
EXIT COMDITIONS:
REGISTERS • - A X Y Z
= LOST = LOST = LOST = LOST
STORAGE LOCATIOMS -YS = UPDATED ADDRESS OF STATEHEMT
MUM3ER TABLE
CORE REQUIREMEMTS: 140 OCTAL LOCATIOMS
LI.MKAGE: RIC P^B JMP YA
GENERAL DESCRIPTION:
THIS ROUTIME WILL PLACE THE STATEHEMT MU.M3ER (IF AMY) LOCATED IN COLUMMS 1--5 OF THE IM-STRUCTIOM IN THE STATEHEMT MUMHEH TABLE ALOMG WITH THE PROGHAM STORAGE ADDIiESS THAT 13 LOCATED IM K*. THE STATEMEMT MUMBER^ 1 TO 5 DIGITS^ WILL BE THE FIRST EMTRY IM THE TABLE. A COLOM (:)> OCTAL CODE 272:. 13 USED AS THE TERMIMATOR FOR THE STATEMEMT NUM3ER. FOLLOWIMG THE COLOM WILL BE TWO BYTES COMTAIMIMG THE PROGRAM STORAGE ADDRESS OF THE IMSTRUCTION ASSOCIATED WITH THE STATEME;MT NUMBER. THE LESS THAN SYM30L C<)> OCTAL CODE 274> 15 U5ED AS THE TERMINATOR FOR THE TABLE EMTRY. THE
f
234
*
*
*
*
*
*
*
*
rjUiuiEMr ADDilESS OF THE STATE: E\'r MUMRFil TA3HE WILL 3E UPDATED TO rHE MEXT AVAILA3LE ADDiiESS AMD AM EMD OF T' BLE MARK (0)> OCTAL CODE 300> IS PLACED IM THE TA3LE. rHH STATEHEMT MUi'- Eli TA3LE IS LOiArED AT THl": EMD OF HODE 3 AMD IF T;1H TA-^LE C;iOSSHS THE HMD OF 'Or'E 3 THH E/. IT 13 TO ERiiOR E2.
36461 YA 36463 36465 36467# 36471 36473# 36475 36477# 36500 3 6502 í* 36503#YB 36504 36505 36507# 3651 1 3 6512 36514# 36515# 36516# 36520 36522 36524#YC 36525# 36526 36527 36531 36533 36534 36536# 36540# 36541 3 6543 36545 36547# 36550 36552 36554# 36555# 36557
zo ZT ZY STB T33 STB ALD 3TB ALD ELB RT:i ELB RTli GOL SKM JMP ASU SKM JMP GOL GOS ALD STB RIC RIC RDC s z JMP LDB SKM JMP ALD GOS RIC LDB STB RIC LDB 3TB RIC ALD STB
36461
Yl
Yl+1 3^0 Y2 Z..5 I/ B>X YS 3..Y A..X 2 YC A>240 2 YC A^X A>Y B^l Y2 Y>Y X^X Z..Z 2 YB Y2 2 YE A:.272 A^Y Y^X K* 0>X x>x K*+l 0*X X^X B>274 O^X
SAVE RETUIiM ADDR
SET STMT# IMD OFF CTii FOR 5 STMT'/ CHAR
BUFFER ADDH OF STHT'
STMT'^ TBL ADDR
CHAR = BLAMK •SPACE^? MO-YES-
PUT # IM TBL
SET IMD
THRU V;ITH 5THT#? YES-MO-DID VJE FIMD STMTi'? Y E S -MO-
PUT • : • I ^ TBL
* *
* * PUT ADDR OF PROG STORAGE * IM TABLE
* *
PUT ' <' I^ 1" '
f
235
36561# 3 6562-^ 36564 3 6 5 6 6 # 3 6 5 6 7 3 6 5 7 1 3 6 5 7 3
*
*
3 6 5 7 5 3 6 5 7 7 3 6 6 0 1 # 3 6 6 0 2 # 3 6 6 0 3 # 3 6 6 0 4 # 3 6 6 0 5 3 6 6 0 6 3 6 6 1 0 YE 3 6 6 1 2 #
*
3 6 6 1 3 3 6 6 1 5 3 6 6 1 7
Yl Y2 Y3 I / K* YS E2
i i I C ALD STB RTR STB T 3 3 S T 3
X>K 3 ^ 3 0 0 0>X K>B YS
YS+1
PUT • § • IM T3L
UPDATE T3L ADDR
CHECK F0.\ EMD OF 3THT# T3L RTR RTR SHR SHR SHR SHR SKS JMP ELB R I C
COMSTAMTS ZR ZR ZR ZL ZL ZL ZL ZD
K>Y YY^Y Y Y Y Y 2 E2 Yl 3 . .P
USED 2 2 2 i \ l l 6 2 6 6 5 4 2 4 5 5
DID WE CROSS 7 7 7 7 ? MO-
YES-GO TO ERROR
EXIT
IM 3TMT# TA3LE RTMS
36461 36470
36500 36510 36520 36530 36540 36550 36560 36570
36600 36610 36620
315 213 014 205 315 214 022 000 315 215 023 005 161 077 043
161 240 315 103 214 341 000
254 1 1 1 215 355 010 227 050
044 155 010 215 1 12 320 022
200 124 122 1 1 1 341 000 300
11 1 200 050 155 226 050 320
155 214 057 210 320 022 000
124 022 131 02 1 000 274 046
326 062 175 213 145
062 052
062 052
062 145
125 052
145 145
030 001 155 272 050 320 301
254 014 205 301 255 010 321 010
055 052
HMl ;iii»*s''t-"^-n'iir.í;t:f;
236
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
36621 36623 36625 36627# 36630
YG
PROGRAM T I T L E : SEARCH STATEHEMT :JU:-:3EH TA3LE
STARTING LA3EL: YG
EMTRY COMDITIOMS:
REGISTEi'.S - A = MOT DEFIMED
X = ADDHESS OF STATEMEMT MUMBÎ^R Y = MOT DEFIMED Z = NOT DEFIMED
STORAGE LOCATIOMS -Y% = STAHTIMG ADDRESS OH STATEMEMT
NUM3ER TABLE
EXIT COMDITIOMS:
GISTERS • - A
X Y Z
= 0 (MO MATCH) 1 (MATCH)
= UMCHAMGED = LOST = LOST
STORAGE LOCATIOMS -Y-: = PROGHAM STORAGE ADDRES5 IF
A MATCH IS FOUMD
CORE REQUIREMEMTS: 130 OCTAL LOCATIOMS
LINKAGE: RIC P..B JMP YG
GENERAL DESCRIPTIOM:
THIS ROUTIME WILL SE.ARCH THE STATEMEMT MUMBER TA3LE TO DETEiiMIME IF THE STATEMEMT MUM3ER IMDEXED BY REGISTER X 13 IM THE TABLE. IF A MATCH 13 FOUMD THE PROGHAM STORAGE ADDHESS IS MOVED TO Y# AND THE A REGISTER 15 SET TO IMDI' CATE A MATCH. IF NOT A MATCH THE A REGISTER 13 SET TO ZERO.
ZO ZT ZY STB TBB STB RTR STB
3662
Yl
Yl + 1 X>B Y2
SAVE RETURN ADDR
i >ii iâ«sU>ti, H'Ttkklii«£ittk
231
36632 3 6 6 3 4 3 6 6 3 6 3 6 6 4 0 # 3 664l.r'YH 3 6642 3 6 6 4 4 # 3 6 6 4 5 3 6 6 4 6 3 6 6 5 0 # 3 6 6 5 1 3 6 6 5 3 36655 3 6 6 5 7 3 6 6 6 1 # 3 6 6 6 2 3 6 6 6 4 3 6 6 6 6 # 3 6 6 6 7 # 3 6 6 7 0 3 6 6 7 1 3 6 6 7 3 # 3 6 6 7 4 # 3 6 6 7 6 3 6 6 7 7
*
*
3 6 7 0 1 3 6 7 0 3 # 3 6 7 0 4 3 6 7 0 6 3 6 7 1 0 # 3 6 7 1 1 3 6 7 1 3 # 3 6 7 1 5
*
*
3 6 7 1 7 # Y I 3 6 7 2 0 3 6 7 2 2 # 3 6 7 2 4 3 6 7 2 5 3 6 7 2 7 # 3 6 7 3 0 # 3 6 7 3 2 3 6 7 3 3 3 6 7 3 5 3 6 7 3 7 # 3 6 7 4 0 3 6 7 4 2 # Y J
TJH3 STR E L 3 RTR GOL LD3 ASU SHZ JMP R I C R I C S T 3 TB3 STB R I C JMP ELB RTi-i RTii SKM JMP GOL ASU SKZ Ji'JP
Y2 + 1 Y7o B í Y A , Y O^X A..B 2 YI X>X Y..B Y3
Y3 + 1 P>Z ET Y3 B..Y A..A 2 YH A^Y A: .272 2 YI
SAVE STHT# AD.n;-i
START OF STMT-- TBL GET T3L CHAii GET TEST Ci'^H AiiH THEY =? Y E S -HO-GO STHP TiiiiU T3L
SAVE TBL ADDii
EMD OF STMT#?
Y E S -MO-
15 TBL CHAR • : ' ? YES-MATCH MO-GO STEP Tii.-iU TBL
WE HAVE FOUMD A MATCH-SET PROG STORAGE ADDR R I C GOL STB R I C GOL S T 3 ALD JMP
STEP THRU GOL R I C ASU SKZ JMP GOL ASU SKM jr«îp ELB RTR J.MP AZE
Y>Y B..Y Y# Y>Y B..Y Y# + l A^ 1 YK
TBL A^Y Y..Y A > 2 7 4 2 YI A^Y A>300 2 Y J Y2 B>X YH A
STEP TO DATA STOHAGE ADDR
SET MATCH IMD EXIT
» < » ?
Y E S -NO-
• ( } • ?
NO-Y E S -
STMT# ADDR
SET 'MO MATCH' IMD
36743 YK 36745# 36746 36750#
Y; Y# ET Yl Y2 Y3
EL3 RTR EL3 RIC ZL ZL ZL ZL ZL ZL ZD
Y2 B>X Yl B^P 6 52 660 1077 6613 6615 6617
EXIT
238
3 6621 36630 36640 36650 36660 36670
3 6700 36710 36720 36730 3 6740 36750
315 213 014 205 315 214 046 315 044 050 220 111
317 230 010 030 155 052
215 210 010 053 155
010 301 122 300 241
014 360 152 142 241
122 261 030 111 020
205 000 315 077 210
230 021 274 155 175
315 034 217 175 030
301 001 131 342 215
216 131 014 217 272
260 155 155 175 043
161 155 205 044 131
010 343 317 215 175
252 317 315 041 155
122 210 210 043 213
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
239
PHOGRAM TITLE: INITlALIZATIOM
STAHTING LA3EL: XX
EMTiiY COMDITIONS:
THI3 :iOUTIME 13 EMTHivHD l.'HHM TH:'': I MTH'iPRETEii IS IMITIALIZED AMD AFTER THH i REC ISI OH" MACiiO
EXIT COMDITIONS:
AT EXIT ALL STORAGE LOCATIOMS ARE SET
CORE REQUIREMENTS: 223 OCTAL LOCATIOMS
LINKAGE: RIC P>Z Ji'iP XX
*
*
*
*
36751 XX 36753# 36754 36756 36760 36762 3 6764 36766# 36767# 36770# 36771 36773 36775 36777# 37000#
GEMERAL DESCHIPTIOM:
THIS ROUTIME HESETS PROGliAM. STOHAGE. STACK: i TABLE HE 3UÍLT
DATA STO;iAGE.. AMD TiiE STATEMEMT MUM3 STiARTIMG ADDRESSES. THE W0R;< AHEAS
3A5ED OM THH PHECÍSIOM AMD THE START OF THE VAiiIAHLE T.ABLE 15 SEr. ALL SWITCHES AMD COUMTERS .ARE SET ACCORDIMGLY.
zo ZT ZY
36751
BUILD WORK .AREAS FOR ARGl:. .ARG2Í .ARG3. STORE THE ADDRESSES AS FOLLOWS:
AHGl IM A) ARG2 IM A= ARG3 IN K% ELB W*
ARGl WORK ADDR
LENGTH ADD 1 FOR EXP SAVE LENGTH
RTR STB TBB 3TB LDB RIC RTR AAD RTR STB TBB STB RTR AAD
B^X A)
A) + l P# B^B B>A X^B X>B A=
A = +l A>B X>B
ARG2 WORK ADDR
LEMGTH
.u;U«altl»i
240
37001# 37002 37004 37006
*
37010# 37011# 37ûl2# 37013 37015 37017
*
37021# 37023 X 3 702 5# 37026 37030 37031 37033# 3 7034# 37036 37040# 3 7041# 37043 37045 37047 37051 37053 37055 37057
*
37061 37063 37065 37067
*
37071 37073 37075 37077
*
37101 37103 37105 37107
*
37111# 37113 37115 37117
SET
5ET
RTR X,B 5 TB KÁ TBB STB K%+1 STAiiTIMG ADDR OF RTii AAD RTR 5 TB TBB STB UP ALD LDB AAD RDC SKZ JMP RIC ALD STB RIC ALD STB RDC STB STB TBB STB STB
A^B K>B
X..B A.7
A#!-r STAHTIMG
A>6 P# X^B A..A 2 X
>x B>21l\ 0>X
>x B : . 3 0 0 0>X X>B A / A*
AHG3 WORK ADDR
D;3L WO:iK AHEAS IM A:7 LEiJGTiI
3TAHT OF D3L WORK AiiEA
ADDR OF VA:i TBL IM A* AMD A/
LEMGTH
SET UP YE5-HO-STEP 1
PUT •<
3 l^SL HORK 'AiiEAS?
MORE 3YTE HOR EXP
IM.START ADDR
PUT EMD OF TBL IMD ((5)
ST^-RT OF VAH TBL A/+1 .A * +1
SET UP 5TMT# TABLE LDB Y% STB YS LDB Y%+1 STB YS+1
SET UP PROGHAM STORAGE LDB K# 3TB K* LDB K# + 1 STB K*+l
SET UP STACK ADDR LDB A ;
3 T B Ac§c LDB A ; + I STB A&+1
SET SWITCHES - CTRS - ETC OFF ALD B.»0 STB 13 STB U# STB K<
241
37121 37123 37125# 37127
*
37131 37133# 37134 37136# 37137 37141 37143 3 7146#A 3 7147 7 37150# 37151 3 7152 37154 3 7156# 3 7157# 37160 3 7162 37164# 37165 3 7170# 37171 37173#
K# K* K/ A% A* A/ Y% Y$ A) A = K% A# A; A& P# D< W* 13 U# <
ST3 ST3 ALD STB
BUILD DAT HL3 r.Tii LD3 AAD LDB RIC ALD RTR .AAD RDC SKZ JMP RIC AAD RTii ST3 T3B RTR AOR HTR STB RIC ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
K<+1 D< P> 1 13 + 1
\ STOiiAGE K/ B>í\ P^f
A^B P# B^X ' Y>4 X..B X..3 Y..Y 2 A í\>B K > 3 X..B
í V - ' ' ''•'• AiiHAS
A%
B..X X > 0 2 0 K>B A%+1 Z^P 6 2 4 6 2 6 6 3 2 6 3 6 6 4 0 6 4 2 6 5 2 6 5 4 6 7 1 6 7 3 6 7 5 6 7 7 7 0 1 7 0 3 7 2 2 7 2 5 7 3 0 7 3 2 7 3 4 3 3 6 3
5ET IMD :'. MODE
EXIT
242
36751 3 6760 36770
37000 37010 37020 37030 3 7040 37050 37060 37070
37100 371 10 37120 37130 37140 37150 37160 37170
161 301 046
025 040 300 131 050 242 241 255
227 304 363 333 322 056 301 046
330 272 301
04 6 025 021 156 022 301 341 341
341 022 306 161 010 131 236 301
04 3 341 27 3
301 04 6 006 02 3 300 240 252 224
301 000 364 2 32 115 156 014 237
301 322 014
275 301 341 050 320 014 301 301
301 301 301 042 004 146 205 054
271 010 20 5
014 277 322 022 000 205 254 226
303 332 325 341 112 010 043
014 155 301
205 014 025 27 4 010 301 341 341
341 301 02 2 322 004 150 004
205 042 27 4
301 205 010 320 251 243 253 225
302 334 001 02 4 046 025 071
025 040
27 6 301 200 000 301 301 301 301
301
306 301 341 025 046 020
rsmmm
243
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PiiOGRAM T I T L E : STEP PAST VARIABLE OR COMSTAMT
ST.AiiTING L.ABEL: AW
EMTRY COMDITIOMS:
REGISTERS - A = MOT DEFIMED X = ADDRESS OF V.ARIABLE OR
C0M3TAMT Y = MOT DEFIMED Z = NOT DEFIMED
EXIT CONDITIOMS
REGISTERS - A = LOST X = ADDRESS OF FIRST DELIMITER
AFTER VARI.ABLE OR COMSTAMT Y = LOST Z = LOST
CORE REQUIREMENTS
L I M K A G E :
2 3 OCT-AL LOC-ATIOMS
RIC JMP
P..B AW
5 6032 AW 56034 56036 56040#AX 5 6041# 56042 56044# 56045 5 6046 56050 56052# 56053 Al
ET
5 6032 56040 56050
GENERAL DESCRIPTION:
THIS HOUTINE WILL STEP TI E ^f^^SS IN THE X REGISTER PAST THE VARI.ABLE OR CO- JSTA. IT •
ZO 56032 ZT ZY STB Al TBB STB Al+1 RIC X..X RIC P^Z JMP ET RTR A^A SKN 2 JMP AX ELB Al RIC B>P ZR 2 ZL 1077 ZD
314 053 014 205 314 054 050 053 142 077 041 lU 154 040 174 053 052 052 145
S.AVE RETURN ADDR
CHECK FOR DELIMITER 15 CHAR DELIMITER?
YES-NO-
EXIT
IMINil
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
244
PROGHAM TITLE: ADD TWO TO STACK ADDRESS
STARTIMG LA3EL: AV
EMTRY COMDITIOMS:
STORAGE LOCAriOMS -• . = CUiiiiEMT ADDHES5 OF STACK
EXIT C O M D I T I O N S :
STORAGE LOCATIOMS -A& = MEXT AVAILA3LE ADDRHSS OF
5T'\CK
COiiE REQUI: iEMEMTS: 15 OCTAL LOCATIOMS
L I N K A G E : R I C
j:--: •:r
p>z AV
GEMERAL DESCii IPT I ON :
THIS ROUTIME WILL ADD TWO TO THE STACK ADDRESS IM AÃ.
56055 AV 56057 56061 56063 56065 56067 56071#
A&
zo ZT ZY ELB RIC RIC STB TBB 5T3 RIC ZL ZD
5605
A& B>A A^B Aâ
AÃ + 1
Z P 703
UPDATED ADDR
EXIT
56055 161 303 010 56060 105 010 150 301 303 014 205 301 56070 304 054
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
245
PROGRAM TITLE: SUBTRACT T\:0 FHOM STACK ADDRESS
STAliTING LABEL: AZ
ENTiiY CONDITIONS:
STORAGE LOCATIOMS -
AÃ = CUiiiiEMT ADDRESS OF STACK
EXIT CONDITIONS:
STORAGE LOC-ATIOMS -A& = PRECEDIMG ADDRESS OF STACK
CORE REQUIREMENTS: 16 OCTAL LOCATIOMS
LINKAGE: RIC P..Z JMP AZ
GENERAL DESCRIPTION:
THIS ROUTIME WILL SUBTRACT TWO FROM THE STACK ADDRESS IN A&.
5 6072 AZ 5 6074# 5 6075 56077 56101 5 6 1 0 3 56105 56107#
A&
zo ZT ZY ELB RTR RDC RDC STB TBB STB RIC ZL ZD
5607
Aâ Bí A A^A A^B A&
AÃ + 1 Z>P 703
EXIT
56072 161 303 042 010 200 010
56100 250 301 303 014 205 301 304 054
246
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
56110 AY 56112# 56113# 56114 56116 56120# 56121#
A&
PROGRAM T I T L E : P L A C E DELIMITER IM STACK
STARTIMG LABEL: AY
EMTRY COMDITIOMS:
REGISTERS • - A X Y Z
= DELIMITER = MOT DEFIMED = MOT DEFIMED = LIMKAGE
STORAGE LOCATIOMS -A& = CURREMT ADDRESS OF STACK
EXIT COMDITIOMS:
EGISTERS - A = LOST X = UMCHAMGED Y = LOST Z = LIMKAGE ADDRESS
CORE REQUIREMEMTS: 12 OCTAL LOCATIOMS
LIMKAGE: RIC P..Z JMP AY
GEMERAL DESCRIPTIOM:
THIS ROUTINE WILL PLACE THE DELIMITER IM THE A REGISTEii IN THE STACK AMD WILL PUT ALL OMES IN THE HIGH BYTE OF THE STACK.
ZO ZT ZY ELB RTR GOS RIC RDC GOS RIC ZL ZD
561
Aâ B>Y A..Y Y>Y B^A (\>Y Z^P 703
STACK ADDR PUT DELIMITER IN STACK STEP TO HIGH BYTE
PUT ALL ONES IN HIGH BYTE EXIT
56110 161 303 044 214 010 122 010 205 56120 214 054
>f—-ttsvge.mtvi^-.i ^MÍîiti^Í«i«i^4tí^îâ^âk
2i[l
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
PROQiAH T I T L E : UPDATE DATA ADDRHSS
STARTIMG L.ABEL: DU
EMTHY COMDITIOMS:
HEGISTEHS - A = MOT DEFIMED M = :JOr DEFIMED Y = MOr DHFIMHD Z = LIMKAGE
STOHAGE LOCATIOMS -
-A7> = CURREMT ADD.iHSS WITH IMTEGER OR F-P IMDlCûTOR MODE
CU;iREMT DATA STORAGH ADDIí' SS D< = MODE IMDIC.ATOR P# = LEMGTH OF DATA
EXIT CONDITIOMS:
REGI3TERS - A = LOST X = UMCHAMGED Y = LOST Z = LIMHAGE ADDRESS
STORAGE LOCATIOMS -A:7o = MEXT AVAIL-\3LE ADDHESS WITH
IMDICATOR = IMTEGER MODE NEXT AVAILABLE DATA STORAGE ADDRESS
CORE REQUIREME.MTS: 72 OCTAL LOCATIOMS
LIMiíAGE: RIC P:.Z JMP DU
GENERAL DESCRIPTIOM:
THIS ROUTIME WILL UPDATE THE DATA STORAGE ADDRESS IM A% BY THE LEMGTK OF THE PHHCISIOM IF THE CURREMT IMDICATOR 15 AM IMTEGHH OR 3Y PRECISIOM +1 IF THE CURREMT IMDICATOR 13 FLOATING POINT. IF THE CURRENT ADDRESS WILL CROSS THE EMD OF THE MODE A MODE CHAMGE WILL OCCUR AMD THE DATA STORAGE ADDRESS WíLL BE ADJUSTED ACCORDINGLY. IF THIS 13 THE SECOMD MODE CHAMGE THEN DATA STORAGE IS EXCEEDED AMD EXIT IS TO EHROR E4. THE IMDICATOR IM THE UPDATED ADDRESS 13 SET TO I.MTEGER.
•_""*="»«í*».
248
56122 DU 56124# 5 6 1 2 5 56127 56130 56132 56134# 5 6 1 3 5 DV 5 6 1 3 7 5 6 1 4 1 5 6 1 4 2 5 6 1 4 4 5 6 1 4 6 5 6 1 4 7 5 6 1 5 1 5 6 1 5 3 # 5 6 1 5 4 # 5 6 1 5 6 5 6 1 6 0 DW 5 6 1 6 2 5 6 1 6 3 56165 ' ^ 5 6 1 6 6 5 6 1 7 0 5 6 1 7 2 # 5 6 1 7 3 5 6 1 7 5 5 6 1 7 6 5 6 2 0 0 5 6 2 0 2 5 6 2 0 4 DX 5 6 2 0 6 # 5 6 2 0 7 5 621 1#
*
*
5 6 2 1 2 D2 5 6 2 1 3 D3
A% P # D< D* E4
ZO ZT ZY LDB RTiv LDB SKP HIC E L 3 RTR R I C RTR SKZ JMP LDB SKZ JMP EL3 AAD ALD STB RDC SKZ JMP RTR STB TBB RTR LDB SKZ LDB JMP LDB AOR RTR STB R I C
CONSTANTS ZC ZC ZL ZL ZL ZL ZL ZD
5 6 1 2 2
p,;' B..A A%+1 2 A^A A% B^Y Y..Y YY^B 2 DW D< 2 E4 D* Y^B 3 : . 1 D< A^A 2 DV Y^B A%
B:.Y D< 4 D3 DX D2 Y:.B Y..B A% + 1 Z>P
0 2 0 1 4 0 6 3 6 7 2 2 7 2 5 7 2 6 2 4 6 5
LHMGTH IMTEGEH OR F - P IMTEGHiî F - P - ADD 1 MOHE
LAST ADDR STHP ADDR DID WE CROSS 7 7 7 7 ? Y E S -MO-IST MODE CHAMGE? Y E S -MO-GO TO HHiiOR
5ET UP MEW MODE ADDR
SET IMD TO SHOW MODE CHAMGH STEPPED TO MEXT LOCATIOM? Y E S -MO-
WHICH MODE TO U5E EXISTIMG MODE NEW MODE
EXIT
MODE 1 FOR ADDR MODE 6 FOR ADDR
. l : t , | í t t
249
56122 56130 56140 56150 56160 56170
56200 5 6210
341 322 010 100 356 131 0 65 161
042 161 154 32 6
341 236 160 026
237 044 34 1 022
135 010 325 001
122 010 131 145 301 325
010 200 131 154 135 047 301 236 014 205 044 341 325 132 354 213
154 204 354 212 004 237 054 020 140
062 047 301
*
*
*
*
*
* . » -
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
250
PHOGRAM T I T L E : SUHSCiiIPT HOUTIMH
STAliTIMG L A 3 E L S :
^ A - SUHSCii IPT OM iiIGiiT OF = '•-'^ - .3UiHJC;iIPT OH LEET 0 ^ = n. T OH LEET OF = ^MOH M^CHO
EMTHY COMDITIOMS:
REGIST '^RS - VQNJE D E F r i E D
STOHAGE LOCATIOMS -
A) = ARGUMEMT 1 ADDHHSS COMTAIMIivG V'"~>LUE OF SU'^SCHI^T
A6 = STACK A D D H H S S ' + 2 ' 0 F FIHST AHi^AY EHT:-IY I- E'-TRY IS TO K^
t-? = AD.O'iESS OF FIHST ARRAY EMTHY IF EHTRY 15 TO :(3
p;; = LEMGTH OF EACH AHRHY EMTHY A7+1 = 1 (SU5SCHIPT I i'JDICATOli)
•EXIT COMDITIONS:
REGISTERS - ALL LOST
STORAGE LOCATIONS -A6 = ADDRESS OF STACK COMTAIMIMG
C HHECT ARRAY EMTRY î j EMTRY WAS TO KA
A? = CORRECT ARHAY ADDHESS ÍF EMTRY WAS TO KB
A7+1 = 0
COHE REHUIREMEMTS: 523 OCTAL LOCATIOMS
LINKAGE: RIC P:.B JMP KA (RIGHT OF =)
RIC P..B JMP K3 (LEFT OF = OR MACRO)
GENERAL DESCRIPTION:
THIS ROUTIME WILL UPDATE THE DATA ADDiiESS TO THE CORRECT AiiRAY ENTHY. THE VALUE OF THE SU3SCRIPT 13 MULTIPLIED BY THE LEMGTH OF EACH ARRAY EMTHY AMD THIS VALUE 13 ADDED TO THE STAHTIMG AiiRAY EMTRY. THIS ROUTIME WILL HAMDLE BOTH OME AND TWO DIMENSIOM ARRAY^S.
=r^»»»âfc
251
56214 KA 56216 56220 56222# 5 6224 56226 56230# 5 6231# 56232 5 6234 56236# 56237 56241 56243# 56244 5 6245 56247 5 6251 KB 56253 56255 56257# 56261 56263 56265 56267 56271 56273# 56274 56275 56277#KC 56301 56303 56305 56307# 5 6310 5 6312 56314# 5 6315 56317 56321# 56322# 5 6323 56325# 56326 56330 5 6331 56333#
ZO ZT ZY STB TB3 srH ALD ST3 ELB RTR HDC LD3 STB RDC LDB STB RTR s z Ji'JP V.IMP
ST3 TBB STB ALD STB LD3 STB LDB STB RTR s z JMP ALD STB STB ELB RTR LDB R I C R I C JMP LDB AAD RDC LDB RTR LDB SKP R I C GOS
5 6 2 1 4
Kl
K l + 1 B:. 1 K3 A6 B>K X>X 0>K K2 + 1 X>X 0>X K2 A..A 2 KV
c Kl
Kl + 1 3 ^ 0 K3 A? K2 A? + l K2 + 1 A^A 2 KV B..0
< K5 A = B>X P # B..A P. .Z GT P # X^B X^X P # B^A K2 + 1 2 A>A A>X
SAVE HETURM ADDH
SET IMD
1 OR 2 DIM? 1 - DIM 2 - D I M
5AVE HETURM ADDR
5ET IMD
1 OR 2 DIM? 1-DIM 2 - D I M
TURM SU3SCRIPT IMD OFF
ARG2 WORK AREA ADDR
LENGTH+1 FOR EXP
ZERO ARG2
LOW 3YTE OF ARG2
LEMGTH OF EACH .A.RRAY EMTRY INTEGER OR FLOAT-PT ARRAY?
INTEGER ADD 1 MORE FOR FLOAT-PT LENGTH IN ARG2
252
56334 56336# 56337 56341# 5 6342 5 6344 56346 56350# 5 6351# 56352 5 6354 56356# 56357 56361 56363# 56364 56366 5 6370 KF 56372 56374# 56375 56377 5 6401# 5 6402 56404 56406# 56407 5 6411# 5 6412 # 5 6414 56416 5 6420# 5 6421 56423 56425# 5 6 4 2 6 # 56427 5 6431 5 6 4 3 3 5 6 4 3 4 5 6 4 3 6 5 6 4 4 0 # 5 6 4 4 1 # 5 6442 5 6444 5 6446# 5 6 4 4 7 5 6 4 5 1 5 6 4 5 3 # 5 6 4 5 4
ELB RTR ELB RTR iiTR LD3 ST3 AZE RIC JMP RDC RDC ELB ST3 RDC TBB STB LDB STB RIC JMP RDC RDC LDB STB RDC LD3 RTR AND LDB AOR RTR STB ELB RTR RIC JMP LDB SKN JMP ELB RTR RDC LDB STB RDC LDB STB RTR STB
A) B>:\ A = 3^Y Y>:: Z - + 2 Z# A P..B ZX Z:.X X.. :•: K2 0..X X:.X
0>X Z* z# P>B K Y^X X..X 0>X K2 X>X K2 + 1 3;. A A>360 0>X A:,B A..B K2 + 1 K4 B^X P:.Z EM K3 2 KD A6 B..X X>X K2 + 1 0..X X..X K2 O^X X..B A6
AiiGl
AHG2 ARG3
SET r'iUHTIPLY HTM CODH SET IMTEGEH IMD
MULTIPLY SU3 BY LEMGTH
LOW BYTE OF AHGl WOHK AREA
PUT ADDR IM ARGl
SHT ADD RTM CODE
UPDATE ADDH TO AHRAY EMTHY
LOW BYTE OF ADDR
IND-MODE-HIGH B I T S OF ADDR CLEAH ADDR
SET MEW ADDR
DATA ADDR
CHECK ADDR CROSSIMG 7 7 7 7
253
56^!56 56460 56462 56464 KD 56466 5 6470 56472 56474 56476 56477 56501 56503 56505 56507 56511 KE 56513#
*
*
5 6514 KV 56516# 56517 56521# 56522 56524 56525 56527# 56530# 56531# 56532 56534 56536# 56537 56541# 5 6542 56545# 56546 5 6550,= ^ 56551
*
56553 56555# 5 6556# 56557
*
56561 56563# 56564 56566 56570# 56571
T33 ST3 JMP LDB 5TB LDB STB LDB 5KZ JMP LDB STH LDB STB ELB RIC
A6+1 KE K2 A? K2 + 1 A? + l K5 2 KE A; A& A; + I A& + 1 i
B..P
SAVE UPDATED AHHAY ADDR
RESET STACK ADDR
EXIT
STEP TO COLuMM DIMEMSIOM IM STORAGE ELH RTH LDB RTR LDB SKP R I C RTii AAD RTR STB T3B RTR LDB ÍÍT:Í AMD RTR AOR RTR STB
ADJUST DA EL3 RTR RIC JMP
ZERO ARG2 ELB RTR LDB RIC RIC JMP
-C.
B>X
P# 3..A K2 +1 2 A..A X^S A^B A^B K2
3.» A K2 + 1 B^X X:.3 60 X^B A..3 A..B K2 + 1
TA ADDR K4 B..X P..Z EN
A = B..X P# B..A P>Z GT
STAiiTIMG ADDR
LEMGTH IMTEGER OR F-P? IMTEGER F-P - ADD 1 MORE
STEP TO MEXT EMTRY
CLEAR OLD ADDR
NEW ADDR WITH IMD & MODS
IF NECES5ARY
ADJ ADDR
ZERO ARG2
254
* SUBTiiACT 1 Fi.OM iiOW VALUH
56573 56blSff 56576# 56577# 56601 56603 56605 5 6607-'> 56610
56612 5 6614# 5 6615// 5 6616# 56617
56621 56623 5 6625-^ 56626
*
*
56630 56632# 56633 56635 56636 56640 56642# 56643# 56644# 56645 56647 5 6651# 56652
56654 56656# 56657 56661# 56662# 56663# 56664# 56665# 56666 56670# 5 6671# 56672 5 6674 56676
LD3 AAD RDC ALD Si'i^ LDB STB iiIC JMP
LOW 3YTE OF Aliro
Ai.G2 = 1
SET SUB RTM CODE
P :>
X..B X:.X B^ 1 0 > ;•:
Z ^ i ^ + 1
Z^f P:.B
MOVE COL DIMEMSIOH TO AiiG2 ELB K4 RTR B..X ADDR OF COL DIMEMSIOM AZE A i i I C P: .B JMP ZF MOVE COL DIMEMSIOM TO ARG2
MULTIPLY HOW VALUE-1 TIMHS COL DIMHMSIOM LDB Z*+2 5TB Z# SET MULTIPLY RTN CODE H I C P 3 JMP K
MULTIPLY CORRECTED ROW V^^LUF BY LEMGTH OF EACH AHiiAY EMTRY
LDB p; iiTR B.,A LDB K2+1 SKP 2 RIC A:.A LDB P# AAD Y>3 RDC Y..Y GOS A:.Y LDB Z*+2 STB Z# RIC P>B JMP K
ADD TO STARTIMG ADDR ELB K2 RTR LDB AAD RDC GOS iiDC HTR TBB RTR GOS RDC STB JMP
B.. A P# Y^B Y^Y A..Y Y>Y A>B
B..A A..Y B^B K5 KF
LEMGTH IMTEGER OR F-P? IMTHGER F-P - ADD 1 MORE
LOW 3YTE OF ARG2 LEMGTH IM AiiG2
SET MULTIPLY RTM CODE
MULTIPLY VALUE BY LEMGTH
ADDR OF COL DIMEMSIOM
LOW BYTE OF .ARG2
PUT ADDR IM .ARG2
.,Î.Í!»WÎ. m
255
*
*
56700 56702 56704 56706 56710# 56711 56713: ; 56714 5 6716';^ 567l7r^ 56720 56722 56724# 5 6 7 2 5 KK
*
*
Kl K2 K3 K4 K5 A) A= A ; A& A? z# z* p # GT ZF EN ZX
< A6
USE AS LIMKAGE TO AiiITHMÍCT IC RTMS c T n 'rCK
5 6 7 2 7 5 6 7 3 1 5 6 7 3 3 5 6 7 3 4 5 6 7 3 6
STB r 3 B S T 3 ELB RTR EL3 RTR RTli AZE R I C JMP ELB R C ZR
iiK
KK+1 A) B>X A = 3:.Y X > Z A P. .B ZX KK B>P 2
CONSTANTS ZR ZR ZR ZA ZR ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZL ZD
2 l K2 1 6 7 1 6 7 3 7 0 1 7 0 3 7 0 7 7 1 1 7 1 2 7 2 2 7 7 6 2 2 2 4 2 3 5 0 3 0 6 3 3 3 6 3 4 2 5 5
ARGl ADDR
ARG2 ADDR A H G 3 ADDR
INTEGER I M D
LINK TO RTMS
RETURM
'W^
56214 56220 56230 56240 56250 5 6260 56270
315 327 315 330 043 055 000 ;u5
000
014 022 3 60 33 1
205 001 000 04 1
315 315 131
333 3 32 155
170 255 055 360 114 154
277 315 327 014 20S 315 330 022 315 333 341 307 315 331 341
310 315 332 04 1 131 155 114 022
256
56300 5 6310 56320 56330 56340 56350 56360 56370
000 341 322 135 273 020 331 341
306 322 025 010 044 051 320 312
363 010 055 100 010 146 000 301
315 105 341 2 04 332 0 63 055 31 1
336 0 53 322 161 341 010 014 051
161 141 042 271 314 213 205 155
273 376 355 04 3 301 055 32 0 300
043 341 332 161 311 175 000 010
56400 56410 5 6420 56430 5 6440 56450 56460 56470
212 332 040 350 043 331 310 355
055 042 315 355 055 320 256 332
3 60 037 3 32 333 355 000 155 301
000 3 60 175 1 1 1 332 04 6 1 1 1 310
315 3 60 334 155 32 0 310 355 355
331 000 043 064 000 255 331 336
055 004 053 170 055 014 301 131
355 060 144 255 355 205 307 155
56500 5 6510 56520 56530 5 6540 56550 56560 5 6570
11 1 304 322 024 332 040 350 053
341 175 042 040 043 315 161 141
301 327 355 315 004 332 273 376
301 052 3 32 331 03 1 175 04 3 341
303 175 135 014 360 334 341 322
341 331 010 205 046 043 322 025
302 043 100 0/12 004 053 010 055
301 341 046 355 060 144 105 022
56600 56610 56620 56630 56640 56650 56660 56670
5 6700 56710 56720 56730
001 155 224 341 341 311 322 042
320 300 341 322 322 051 026 214
315 325 043 161 146 063 145 052
000 175 314 042 026 155 056 010
014 273 175 145
341 334 301 355 056 300 214 2 55
313 043 31 1 332 214 175 056 315
301 020 051 135 341 331 040 336
205 315 326 044 010 331 325 052 052 052 331 015
31 1 051 155 010 314 042 014 154
051 144 300 100 301 341 205 370
161 271 020 051 145 052 331
Top Related