interpreter for the spc-12 computer walter patrick

261
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 '

Upload: others

Post on 23-Dec-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

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 * * *

*

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

r'-Tf*^*

íw