2000F_main Lst Pt1_Aug73 2000F Main Pt1 Aug73
2000F_mainLstPt1_Aug73 2000F_mainLstPt1_Aug73
User Manual: 2000F_mainLstPt1_Aug73
Open the PDF directly: View PDF
.
Page Count: 416
| Download | |
| Open PDF In Browser | View PDF |
2000F (OPTION 200/205) TSB SYSTEM
(REV A)
BINARY TAPES
24337-60001
24337-60002
24337-60003
SOURCE TAPES
24337-80001
24337-80002
24337-80003
24337-80004
24337-80005
24337-80006
24337-80007
24337-80008
24337-80009
24337-80010
24337-80011
24337-80012
24337-80013
24337-80014
24337-80015
24337-80016
24337-80017
24337-80018
24337-80019
24337-80020
24337-80021
24337-80022
24337-80023
24337-80024
24337-80025
24337-80026
24337-80027
24337-80028
24337-80029
24337-80030
24337-80031
24337-80032
24337-80033
24337-80034
24337-80035
24337-80036
24337-80037
24337-80038
24337-80039
24337-80040
24337-80041
24337-80042
24337-80043
24337-80044
24337-80045
SOURCE TAPES
CONTINUED
SOURCE LISTING
24337-80046
24337-80047
24337-80048
24337-80049
24337-80050
24337-80051
24337.-80052
24337-90001
PAGE 0001
ASH8,A,B,L
0001
*.
NO ERROHS*
2000f (OPTION
280/285)
TselVlrEM
PAGE 0002 #01
ASMB,A,S,L
20~0F (OPTION 200/200) T88 SYSTEM
0001
VERSION A 8/1/73
0002*
ORG 2002B
0003 02002
0004.
0005* LINKAGE INFORMATION USED BY THE 158 LOADER AND THE
0006.
0007*
0008
0009
0010
0011
00t2
0013
0014
0015
0016
MAG TAPE DUMP.
~2002
~75000
0200J
02004
02005
02006
02007
0201A
072037
000024
057326
057331
001567
171224
0011
02011 001224
02012 070340
02013 114732
0018
0019
02014 031234
02015 000015
OEF
OEF
ASS
OEF
OEF
OfF
ABS
OEF
OEF
JSB
OEF
ABS
LIBRA
SYSTEM LIBRARY PROGRAM ORIGIN
COM6
a> SYSTEM LIBRARY DIIC ADDRESSES
TTY01.TTY00
LENGTH OF A TTY TABLE
TTy00.?DISC
ADDRESS OF USER DISC ADORES
TTY00+1ID
ADDRESS OF ID-NAME
LNAME
ADDRESS OF USER.OEPENDENT ITEMS
USER.PROGS.!
LENGTH Of SWAP AREA
USER
CORE ADDRESS OF SWAP AREA
TSB
SYSTEM STARTING ADDRESS
POWIN,I
TO GO INTO LOC 4.
GMgB
MESSAGE BUFFER GETTER
,SLPL-LIBRA
NUMBER OF LIBRARy PROGRAMS
PAGE 0003
#~1
BASE PAGE
EQU
EQU 1
DE:.ATH fQU 0
FTEL FQU 15
0034
00000
00001
00000
00011
00002
PJ0002
00003
00004
00905
00006
00007
00010
00011
00012
0035
00013 107713
0036
00014 114630
0021
0022
0023
0024
1lJ025
0026
1tJ027
0028
0029
0030
"031
0032
0033
"
A
B
ORG 2
HLT DEATH+2
.JMP
HLT 4,C
HLT OEATH ... 5
102002
024002
103004
102005
10 77 0 6
107707
1141 3 4
102011
114756
.·1
CLoC
CLC
JSB
HLT
JSB
CLC
CLOCK JsB
CH1
CH2
1 SC
A REGISTER ADDRESS
B REGISTER ADDRESS
FILE TABLE ENTRY L.EN1H
fOR SYSTEM
PROTECTION
CHANGED BY lOADER.
PARITY ERROR
6,C
7,e
COMMUNICATION FROM tlO PROCESSOR
DEATH"+118
T35DR,I
CONSOL.E LINK
R140 R ,I
138,C
CLKDR,I
CLOCKLINK
0~38.
0039.*
TE.MPORARIEs AND
0040.
0041 00030
0042 00030 000000 LTEMP
0043 00050 000000 MOVES
0044 0012151 00121000 MOVED
0045 00052 000000 10
0046 00053 000000 MID
0047 00054 001210013 T35CP
00 4 8 00055 090000 TJ5LC
0049 00056 000000 PBPr R
0059 00057 000000
iIMER
SBHED
0051 00060 00121000
0052 000 6 1 000000 SCHL
005J
0054
0055
0056
0057
0058
0059
0060
0061
00 6 2
006 3
01064
0065
0066
000 6 2 00001210
00063 00012100
00064 00012100
00965 12100000
0130 6 6 000000
00067 000000
00010 0012112100
00071 000000
000 7 2 000000
000 7 3 000000
00014 000000
00075 000000
00076 000000
0t1077 000000
TTQ
SCHID
SCHP
seNT
SCHT
POINTERS
oRG 308
BSS 16
eSS t
BSS t
aSS 1
BSS 1
BSS 1
sss
1
BSS 1
aSS t
TEMPS USED BY NONRESIDENT FUNCS.
SOURCE ANO DESTINATION
FOR MOvEw ROUTINE.
USED FOR RESULTS 0' GiTID ROUTIN
T35 BUFfER PNTR FOR LISR.PROGS.
RESULT OF T35tH ROUTINE.
POINTER TO END OF CURRENT PROGRA
POINTS TO CLOCK OF ACTIVE USER,
BSS 1
BSS 1
ass 1
BSS 1
BSS 1
BSS 1
BSS 1
SCHPP BSS 1
CMA
BSS 1
CMS
BSS 1
CME
aSs 1
SVCH2 BSS 1
TeNT ass 1
IDTAD Bss 1
lOlL'" aSS 1
STDAP
ass 1
DISC ADDRESS
lOT TRACK L.ENGTH
SYSTEM TABLE DISC ADDRESS POINTR
a> IDT
->
PAGE 0004 #01
BASE PAGE
0069 •••••••••••••••••••••••••••••••••••••• * •••••••••• *•• ********* •••••• *
1r1070*
0071*
0072.
0073*
"~74.
BEGINNING OF EQUIPMENT TABLE
THE NEXT SECTION, ORIGINfD AT 1008, CONSTITUTES THE RESIDENT
INFORMATION ABOUT THE DISC RESIDENT TABLES, THESE TABLES ARE
INITIALIZED By THE VARIOuS LOADERS AND THEIR CONTENTS ARE
WRITTEN ON DISC BY THE SLEEP ROUTINE.
0075*
0076*
0077.
0078 00100
ORG 100B
~0100
000000
IDEe
BSS 12
0085
0~114
e00000
NIOT
sSS 1
0087
00115
~00000
NOIRT ass 1
NUMBER OF DIRECTORY TRACKS/DISC
0089
(~0116
0000"'0
ADTAl ess 24
0090.
0091.
ADT DISC ADDREss TA8LE
EACH J WORD ENTRV CONSISTS OFt
1) DISC
0092*
0093.
0094 00120
LENGTH IN .WORD~
POINTS TO LENGTH OF DISC
0079
0080*
0081*
0082*
0083.
0084*
2)
ADTlN EQU AOTAT+2
0014 6 000000
~0156 000000
00160 000000
00161 000000
00166 000000
01211 67 000000
00170 000000
001 7 1 000000
DKTBL 8SS 8
OADSL 8S~ 2
DLNSL as 1
sysIO BSS 5
MAGSC BSS 1
NPORT sss 1
yEAR BSS 1
DATIM aSS 2
0106 00173 000000
0101 00174 000000
0108.
HOATE BSS 1
SLEPT ess 1
0096
01tl97
0"'98
0099
0100
0101
0102
0103
0104.
0105*
0109*
0110.
10 TABLE HEADERS
EACH 4 wORD ENTRy CONSISTS Qfl
1)· FIRST 10 ON THE TRACK
2) DISC
3)
ADDRESS
4) LENGTH IN eWORDS
NUMBER OF IO TRACKS
END OF THE EQUIPMENT
ADDRESS
J)
TABL~
~111* ••• **.*.**.** •••• *.***** •• ** •• **.****.* •• **.******* ••
1d112.
0113
0114
0115
0116
0117
0118
011 9
0120
0121
ia122.
0123.
00175 000000
00176 000000
00177 01210000
00200 000000
00201 000000
00202 000000
00203 000000
00204 00000121
0121205 000000
LOBSA BSS 1
LsrDA
BSS
MHAO BSS
GMQ8P BSS
D1sCA BSS
DISCB
aSs
"
DISc SELECT CODE/UNIT NUMBER
DISC ADDREss OF SYSTEM LIBRARy
DISC LENGTH OF SYSTEM LIBRARY
SYSTEM IDENTIFICATION
MAG TAPE SELECT cODE
-NUMBER OF AVAILABLE PORTS
CURRENT yEAR • 0 TO 99
TWO WORD ENTRY FOR TIME Of YEAR
1) HOUR OF YEAR
2) # OF 100M8 UNITS IN HOUR
LAST HIBERNATE DATE
o SEZ SLEPT, ·1 SfZ NO
1
1
1
1
1
MBUSY BSS 1
MWORD BSS 1
OREDP BSS 1
*••••••• ******
DIsC BOOTSTRAP ADDREss
LOADER SEGMENT TABLE ADDREss
ADDRESS OF M. H. DISC TABLE
a> MESSAGE BUffER GETTER
ADDRESS OF DISC DRIVER [NTRY
DISC DRIVER INTERRUPT ENTRY ADOR
OI8C DRIVER BUSY FLAG
DISC REQUESTED WORD COUNT
DISC AUTO RESTART ROUTINE
.>
END OF AREA THAT MUST CORRESpOND WITH THE LOADER
PAGE 0005 #01
BASE PAGE
0124*
0125 ••••••••••••••••••••••••••••••••••••• * ••••••••••••• * •• ****.***.*.***
0126*
0127
~0206
031060
DISCZ DEF ZDISC
0128*
0129*
DISC ERROR ROUTINE POINTERS
0130.·
0131.
0132 00207 061234 SICKp OfF SICK
0133 00210 060524 PTZAP OEF JETPT
0134 00211 060647 SLVAG OfF SALVG
0135 00212 061.303 DEADP OEF DEAD
SYSTEM TRACK CAN'T BE READ
SWAP TRACK CAN'T BE READ/WRITTEN
SYSTEM TRACK CAN'T BE WRITTEN
SYSTEM TRACKS INCOMPATAILE
~137.
0138*.
~139 •••
0140 ••
0141*
0142.
01 43*
0144.
0145.
0146.
0147*
0148.
MUERTO
ALL SYSTEM HALTS CAN BE REFERENCED By THE LA8EL 'DEATH'. THE
FOLLOwING IS A LIST OF THE NALTS AND THEIR MEANINGS A$ ~ELL
AS AN INDICATION OF POSSIBLE RECOVERY OR A MESSAGEDf DOOM,
2
.. ERRONEOUS, NON.RECOVERABLE SYSTEM TRANSFER HAS OCCURRED
5
• A PARITY lRROR HAS OCCURRED,
CHECK THE HAROWARE,
1t)149.
0150.
0151.
0152*
0153.
0154.
0155.
0156.
0157.
0158*
0159.
~160*
0161*
0162.
0163.
0164.
0165.
0166*
0167.
0168*
0169.
0170.
0171*
0172.
0173.
l1B. UNEXPECTED INTERRUPT FROM THE PROCESSOR INTERCONNECT,
TAKE A COLD oUMP OF TMIS UNRECOVERABLE SYSTEM.
308 • DISC DRIVER IS BUSY,
318
w
RECOVERy NOT POSSIBLE.
DISC CALLED IS NOT PRESENT,
NO WAY TO RECOVER,
328 .. DISC ERROR WHI~E WRITING A SySTEM TRACK. SySTEM
TRACK HAS BEEN HOVED AND ALL TABLES HAVE BEEN
UPDATED. RECOVERY IS POSSI8LE.
338
~
DISC ERROR WHILE READING TRACK OR WRITING NONESSENTIAL TRACK. RECOVERY IS POSSIBLE.
348
~
DISC ERROR CAUSING THE SYSTEM TABLES TO BE INCOMPATABLE. RECOVERY IS OUT OF THE QUESTION.
358
~
A DIRECTORy TRACK COULD NOT BE FOUND.
IMPOSSIBLE.
36B • PQWERFAIL HAS OCCURRED.
RECOVERy IS
CHECK RESTART SWITCH POSITION,
378 - BAD AOT DISC ADDRESS GENERATED.
RECOVERy. NO WAy.
PAGE 0096 #01
BASE PAGE
017~.
1/0 PROCESSOR SEND DRIVER OPCOOES
0176.·
0177.
OCT 000000
OUTPUT CHARACTER
0178 00213 "00000 OCR
91,9
S180
0181
0182
018 3
0184
0185
0i66
121187
0188
0189
0190
0191
0192
0193
0194
01 95
°1 9 6
0197
"19S
0199
02°0
0201
0202
0203
0204
0205
02°6
0207
020 8
0209
0210
0211*
00214
00215
00216
00217
00220
00221
00220
00224
00225
0022 6
VJ0227
00230
00231
00232
00233
00234
00235
0°236
00231
0°24 0
00241
,,0242
00243
~0244
STE
GTC
PHO
SPE
sap
RBP
F8P
00222 i60000
00223 160001
16 0 002
160003
160004
160005
16 0 006
160007
1 6 0010
16 00 11
1 600 12
160013
1 60 °14
160015
160016
160017
160020
160021
16 00 22
00245 160023
0024 6 16 0024
00247 160025
00250 16 002 6
02 1 16 002 7
"
5
00252
160030
IN!
UIR
UNR
IwT
HUU
UL.O
Eeo
ECF
TPO
ILl
NUC
KAO
ALI
OWl
IBF
Psc
LPR
LPD
LPS
BKS
Ct'iS
STP
GRP
ABT
WTP
KSN
0213*
0214 ••
OCT 020000
OCT 040000
OCT 060001
OCT 100000
OCT 120000
OCT 140000
EQU SSP
oti
160000
160001
160002
160003
160084
OCT 160095
OCT 16 00 S6
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
nCT
OCT
OCT
oCT
OCT
OCT
160007
160t)10
16 00 11
1 60 °12
160013
1 600 14
160015
160016
160017
160020
160021
16 0022
OCT 160823
OCT 16 0024
OCT 16002b
OCT 16 002 6
OCT 16 002 7
OCT 160030
OCT 16"031
STAAT TIMING ENTER
GET CHARACTER
PHONES TIME
BAUD RATE INFO
SAVE BUFFER POINTER
RESTORE BuFFER POINT£R
FREE SAVED SPACE
INliIALIZE SySTEM
USER IS RUNNING
USER NOT RUNNING
INPuT wAIT
HANG USER UP
uSER LOGGED ON
ECHO-ON
ECHO.OFf
TAPE MODE ON
ILLEGAL INPUT1
NEW USER CAl.LED
KILL ALL OUTPUT
ALLOW INPUT
OUTPUT wAlT
IS BUFFER FULL?
LINE PRINTER sELECT tODE
LINE PRINTER REQUEST
LINE PRINTER DISCONNECT
LINE PRINTER STATUS
BACKSPACE IN BUFFER
CHARACTER SIZE
SUBTyPE INFO
GET RECEIVE PARAMETER
USER IS BEING ABORTED
wHAT TERMINAL TyPE?
1/0 PROCESSOR CORI DUMP
SYSTEM STATUS VARIABLES
0215*
0216 00253
0217 00254
0218 00255
0219 00256
000000
000000
000000
000000
PRIST
LfLAG
MAIN
LIB
~00000
DIRWD NQP
00260 000000
HQDIS NOP
0220*
rtJ221 00257
0222*
0223
020000
""0000
06000"
100000
120000
140000
NOP
NOP
NOP
NQP
0224*
0225.
0226 24000
022 7 75000
UL.EN
EQU 10240
LIBRA E-QU 15 000 8
LP INDICATOR
INDICATES USER IN CORE'i IF NONE
.> DISC ADDREss of L.IBRARY
PROGRAM IN CORE o IF NONE
DISC ADDRESS oJ DIRECTORY
TRACK IN CORE, S l ' NONE
• 0 UNLESS HEAD OF QUEUE
IS DISCONNECTED
a>
LENGTH OF USER AREA
SYSTEM LIBRARY PROGRAM ADDRESS
PAGE "'007 #01
BASE PAGE
~229*
11'230**
8231***
0232**
0233.
0234
POINTERS ANO TEMPORARIES
00261 000000
0235*
0236 00262 000000
0237*
0238 00263 000277
0239 00264 000000 .
0240 00265 000266
0241 0°266 005122
0242 00267 042501
00270 042131
0243 0027-1 000272
02 44 00272 000272
0245 00273 A77777
0246 00273
0247.
TTY TABLE
0248**
0249*
0250 00274 000000
0251 00275 00000ttl
0252
00276 0021000
0253 00277 000000
0254 00300 000000
0255.
TJ5FG NOP
TIMEF NOP
T35lN OEF T351.K
LCHCR NOP
RE.ADy OEF *+1
OCT 5122
ASC 2,EADy
MLINK DfF .+1
OfF *
OCT 77777
EQU MLINK+2
INF
FO~
ASR.35 DRIVER
PStuDO.FLAG,HUST BE 11
WORDS BEFORE Tl5CL
• 1 wHEN CURRENT PROGRAM
18 TIMED
If-R
POINTS TO BASIC QUEUE ENTRV.
LINK TO HEAD Of QUEUE.
MAX. PRIORITY USED FOR Q INSERTS
ENTRY FOR TTY35
PSEUDO CLOCK_
T35CL NOP
TJ5RS Nap
T355T NOP
T35LK NOP
T3 5PR NOP
RESTART ADDRESS
STATUS
LINK
PRIORITY
00301 17 1 45 2
00302 171562
00303 074625
T3582 ABS TJ5BF+T35BF CHAR POINTER TO TTV35 BUFFER
T35ND ASS T35BF+T35BF+72 POINTS TO END OF SUFFER
POINTS TO WORD ADDRESS OF ~U'FER
T3581 OEF T358F
02 63
0264
00047
00352
0031214 000000
003 0 5 12156572
00306 056267
MESLN EQU
EQU
MSQCT oCT
MSQPl OEF
HSQP3 DfF
HSQND DEf
M8QBS OEF
02 56
0257
0258
0260
0261
0262
0265
00307 056641
0266
00310 e56267
0268
0 26 9
0279
00311 0121121000
00312 000000
00313 000000
MESBN
T35Ft NOP
T35F2 ~OP
T35F3
NOP
39
LENGTH OF OPERATOR MESSAGES
ME SL N. ME SLN+ ME SL, N+ ME SL N+ ME·SL N+ME SL N
PI
MESSAGE COUNT£R
MSGHD+MESBN-MESLN
MSQHD
MSQHD+MESBN LIMITS
MSQHD
OF MESSAGE QUEUE
SYSTEM
CONSOLE
FLAGS
PAGE
0008 #01
BASE PAGE
0272*
GENERAL USAGE CONSTANTS
0273.·
0214.
SUP
0275
0276 00314 160010 M8184 DEC -8184
0277 00315 111000 H512 DEC .512
0278 00316 11740~ M256 DEC .256
OCT _140
0279 00317 177640 M96
0280 00320 177700 0100 OCT .100
DEC .73
0281 00321 177667 M73
OCT .72
0282 00322 171706 072
0283 00322
11728 EQU 072
0284 00323 117144
DEC .28,-27,-26,-25,_24,-23,.22,-21
0285 00333 177754
DEC .20,.19,.18,-17,.16,.15,.14,.13,.12,.11
0286 00345 177766
DEC .10,.9,.8,.7,.6,.5,.',.3,.2,.1
0281 00357 000000 •
DEC 0,1,2,3,4,5,6,7,8,9
0288 00311 000012
DEC 10,11,12,13,14,15,16,1 7 ,18,19
0289 00403 000024
DEC 20,21,22,23,24,25,26,27,28,29
0290 00415 000036
DEC 30,31,32,33,34,35,36,37,38,39
0291 00427 000050
DEC 40,41,42,43,44,45,46,47,48,49
0292 00441 000062
DEC 50,51
0293 00443 011610 .5000 DEC 5000
81T14 E.QU GTe
~294
00215
0295 00360
lABOR EQU .+1
0296 00361
IINPT EQU .+2
rd297 00362
XOUTW EQU .+3
0298 00363
XSYNT EQU .... 4
0299 00355
XDISC EQU .-2
XENTO EQU .-3
0300 00354
0301
00353
XPl,iN EQU
UNS
0302
.-4
PAGE
0009 #01
BASE PAGE
0304*
1!i305.
0306*. LANGUAGE PRoCtSSOR CONSTAN18 AND ADDREssts
0301.
030 8 0~444 001577 DFILT OEF FLSTS
0309 00445 033027 SBJTB OEF _FaC
0310 00446 031131 SYNTA DEf SYNTX
DEF "SaCK
0311 00447 033463
A0450
177740
MJ2
0312
DEC .32
0313 00451 033304
OEF *f"RCR
DEC 58
0314 00452 000072 .58
OEF
033335
.FPOP
21315 021453
OCT
73
0316 00454 000073 B73
OEF *VROP
0317 00455 034131
0318 ~0456 000074 060
DEC 60
2133603
0319 00457
OEF _ARID
OCT 77
00460 000077 877
0320
OEF _PGIN
0321 00461 034506
0322 00462 900100 8100 OCT 100
DEF tlTBSR
0323 00463 034603
OCT 105
0324 00464 00010!) E
OEF _GTPF
0325 00465 fa34473
DEC 72
0326 00466 0001t0 .72
0327 00467 035214
DEF #LPCK
0328 00470 000140 .140 OCT 1421
OEF .RPCK
0329 00471 034740
0339 00472 000144 .100 DEC 1210
OfF *LTR
0331 00413 034716
0332 00474 000177 B177 OCT 177
OEF #STOP
0333 00475 034730
0334 00476 000200 8 2 00 OCT 200
DfF .eRST
0335 00477 034210
0336 00500 000377 B377 OCT 377
OEF t#OGCK
0337 005~1 034752
4
0338
00502 000400
OCT 400
OEF #LTCK
0339 00503 034764 8
0340 00504 000177 8717 OCT 771
0341 00505 035205
OEF #SBPU
1f}342 00506 001000 1;1000 OCT 1000
OEF #SYCK
0343 00507 9134174
0344 00510 001130 0 6 00 DEC 600
OfF #FINC
0345 00511 04,3627
0346 ~12J512 001177 B1777 OCT 1717
0347 00513 052717
DEF #NMCK
0348 00514 002000 8200" OCT 2000
0349 00515 053111
oEF #MB10
0350 00516 003000 83000 OCT 3000
OEF *0810
0351 00517 053265
0352 00520 004000 84000 OCT 4000
OEF #NRHL
0353 00521 053141
0354 "'0522 020000 820M OCT 2 0 000
0355 00523 053202
OfF .PACK
0356 00524 030000 830M oct 3000ra
0357 00525 052670
OEF #Ov FL
0358
00526 1 0 624 0 D361< ASS 3 0 000+6000
0359
00527 034240
OEF 'DlPR
°"
PAGE
~011cl
#~1
BASE PAGE
0360
00530 030060
1d361
00531 034421
00532 020040
00533 036131
0362
0363
0364
036·5
0366
0367
8368
0369
0370
0311
0372
21373
0374
0375
0316
0371
0378
0379
0380
00534
00535
00536
00!537
00540
00541
00542
00543
00544
00545
~0546
0388
00547
00550
00551
00552
00553
00554
00555
00556
00557
00560
00561
00562
00563
00564
0389
00565
0390
0381
0382
0383
21384
0385
0386
0381
03 9 2
00566
00567
00570
0393
00571
0394
03 9 5
00572
00573
210574
00515
00576
00577
00600
0391
0396
0391
0398
0399
0400
0401
04°2
0403
04 0 4
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
00601
045000
037001
062000
036441
041000
036573
060000
035173
070000
"33607
0440Q10
A33635
100003
033647
073000
2142377
012000
043547
013000
044006
022000
043426
055090
044661
174003
VJ44612
100777
043347
077000
043330
100017
042350
065000
042020
051000
042111
010000
043571
01601210
043747
043 000
044721
006°2
00603
006 0 4
00605
00606 07 5000
00607 043650
006 10 17 5 0021
00611 043643
00612 176000
00613 043657
006 14 07 43 12
,,0615 043711
00616 A34400
00617 044635
ASC00 ASC 1,00
DEF *FOPS
ASC8R ASC 1,
OEF *SSYM
COHOP OCT 45000
OfF ,ASyM
DATOP OCT 62010
DEF *DCMP
OIMOP OCT 47000
OEF *PNST
ENDOP OCT
OEF
FILOP OCT
OfF
IMGOP OCT
OfF
INlFL OCT
60000
,CUSP
70000
.STRI
44000
.RSTO
100003
OEF 'GTST
LETOP OCT
DEF
LBOP OCT
OEF
LPOP OCT
OEF
MULOP OCT
73000
.FORM
12000
IIISTST
13000
*SBFX
22000
DE.F #PSTR
NXTOP OCT 55000
OEF
OCT
OEF
OPOMK OCT
OEF
OFOP
.OUCK
174003
*TRST
108777
_CMPR
OPMSK OCT 77000
DEF "PCHK
PDFFL OCT 100017
DEF *FTCH
PRTOP OCT 65000
OEF #STDP
REMOP OCT 51000
OEF "FOAT
RPOP OCT 10000
DEF *fSCH
SCOMM OCT 16000
OEF #PSHS
USEOP OCT 43000
DEF #ARIN
'LIB- OfF LIBRA
OEF ,6NOP
#ILlS! DEF LIBRA,I
OEF .STTP
M2800 OCT 176000
DEF .OPCK
ABCK OEF A8CHI<
OEF #RSCK
ACC5A oEF ACCS5
OfF .FAD
PAGE "011 *01
BASE PAGE
0416 ~0620 034307
8417 A0621 044641
0418 00622 053340
0419 00623 2144675
0420 00624 053505
0421 00625 044107
0422 00626 053475
0423 00e21 044130
0424 00630 010024
0425 00631 044017
0426 09632 070041
0427 00633 0521010
0428 00634 070045
0429 00635 050826
0430 00636 070617
0431 ·00631 050345
0432 00640 000030
0433 00641 050436
0434 00642 069524
0435 00643 050416
21436 00644 057324
0437 09645 942355
0438 00646 0017 0 3
0439 00641 051523
0440 00650 001643
0441 00651 051647
0442 00652 041653
0443 00653 051013
0444 00654 091560
0445 00655 051146
0446' 00656 042203
0441 00657 051164
0448 00660 033360
0 44 9 00661 042246
0450 00662 042622
0451 00663 050474
0452 00664 12101364
0453 00665 050466
0454 00666 072041
0455 00667 050450
0456 "'0670 001650
0457 00671 060370
0458 00672 003230
0459 00613 052614
0460 00674 021230
0461 00675 052651
0462 00676 901230
0463 00677 042373
0464 00100 101230
0465 00701 934516
0466 00702 2172231
0467 00703 047303
0468 00704 012331
0469 00705 047252
0470 00706 072330
0471 00707 045122
ACCSA
ANOl
AlAB
ATHEN
CLKDR
DClt,
OCLC2
DEH
OLTEM
DTT32
DTTY0
E HS 3 2
ERstA
ExITA
FCUCA
FOT4A
FOPBS
FRET
FSCHA
FUSS
IHB
L1024
L8192
LIBD
LI8DI
LOGBG
LOGND
LOGPl
DEF
OEF
OEF
OEF
OEF
OEF
DEF
OEF
OEF
OEF
OEF
OfF
DEF
OEF
OEF
OEF
OEF
OEF
ACCST
IWFSB
NOT
NFMP
TAB
*f'DV
THEN
*FLUN
eLKIN
,If IX
CLCl
liENOl
CLC2
.NMOT
EH
'GTOG
LTEHP
NOTLN
oEf TTYJ2
OEF tlEDLM
OEF TTY00
OEF .STPT
OEF ERSEC+3 2
DEF *EXP
OfF ERSEC
OEF #LOG
OfF ExIT
OfF IICHEB
OEF FCUC
DE' #IENT
OEF FOAT4
OEF IIPWR2
OfF QU OTE.2
OfF *INCL
DEF FOR10
OEF "GTCR
OEF FSCH
OEF #BKSP
OEF COM6+2
POINTER TO DIIC ADDRESS Of Fuss
OEF 'OTeR
OEf HB
OEF !flOTIN
OEF LIBUS·1024
DEF *MeOT
OEF LIBUS+8192
OEF #OTST
OEF LIBuS
OEF NSINI
OEF LIBUS,I
OEF flSlDI
PO!NTS TO BEGINNING OF LOGaR
DfF LOGGR
OfF *RDIH
OEF lOGGR+64 POINTS TO ENO OF LOG&R
OEF .VCHK
DfF LOGGR+6J POINTERS TO FIRST AND
OfF .SERR
PAGE 0012 #01
0412
0473
0474
0475
0476
0477
0478
0479
0~8"
0 4 81
0482
0483
0484
0485
0486
0487
0488
0489
0490
0491
0 4 92
0493
0494
0495
0496
0497
0498
0499
05"0
a501
05 02
0503
0504
0505
0506
0507
0508
0b09
0510
0511
0512
0513
,,514
0515
0516
0517
051 8
0519
0520
0521
0522
0523
0524
0525
0526
0527
00710
00711
00712
00713
00714
00715
00716
00717
00720
0°7 21
00722
00723
00724
00725
00726
00727
00730
00131
00732
00733
00734
00735
00736
013737
00740
00741
00142
00743
00744
00745
00746
00747
00,50
RASE PAGE
072330
052677
025230
045112
025063
034550
025224
034571
053317
042043
100001
044055
071623
044324
002000
044442
053516
04A505
056653
035043
062025
037056
062000
043636
011470
056000
071444
056010
074152
056022
07 1 724
056064
072025
00751 056072
00752 134213
00153 056103
00754 074460
00755 Pl56124
00756 051133
00757 056150
B0760 057113
00761 033667
00762 0 4 0031
00763 035017
00764 031753
00765 054006
00766 040055
00767 041027
0077f2' 154360
00771 035223
00772 0000PJ0
00773 073307
00774 116550
00775 043606
00776 154000
00777 051743
LOGP2 OfF
OfF
LULEN OEF
DEF
LW97 OEF
OEF
LWAUS OEF
OEF
MCBOP OEF
OEF
ONE! OEF
OEF
OUTCH DEF
oEF
PBUFF OEF
OEF
POFNS oEF
DEF
powIN OEF
OEF
R140R OfF
S14SC
oEF
OEF
OEF
SCHfN OEF
OfF
SCHIN OfF
seHle
SCaM!
SCOM5
STBAS
TJ5CH
T35DR
TTY35
XECtA
LAST ENTRIES IN LOGGR
L,OGGR+63
.CHOU
LIBUS+UlEN
"HOVE
USER+ULEN-97
*RECR
USER+ULE.N
,FILR
MeBOS
'VlFI
t, I
*RQST
_CUTC
-FILS
PROGB+l
.GTTY
PROFS
'WRSU
POW
'ALCO
R14CM
'RSTP
S14SH
jFENC
8CHEQ
ttMTGl
SCHIQ
LINKAGE FOR INPUT REQUEST.
OE.F *OTLI
OEF
DEF
OEF
DEF
DEF
OfF
OEF
OfF
DEF
OfF
OfF
OEF
OEF
DEF
OEF
SCHLQ
*RUND
COMI
.OTBl
COM5·1
*OTCL
SYNTS.428,I
#DSCH
T35CQ
jMCHR
7TT2
tlEVEP
1T135
*USCK
XECl
OEF 'PFSH
OEF
XEC31
Xfc3
OEF *fRMT
XEC5I OfF XEC5
OfF #EPRU
MAX SN DEC .10010
OEF MSLeK
LOGer NOP
OEF tlLCDL
MLIBO ASS ",LIBuS
OEF *FCUC
HULEN ABS .ULEN
Dff tlEOAB
NUMBER OF ELEMENTS IN LOGGR
PAGE 0013 #01
0528
0529
0530*
0531.·
BASE PAGE
01000 12500k1
00736
FUNCTION EXECUTION ENTRY ADDRESSES
0532*
~100t
050523
0536
0537
01002
01003
01004
01005
0538
~1006
0539
0540
0541
0542
0543
0544
0545
0546
0541
0 54 8
0549
0550
01001
050610
050553
051213
051411
051521
051645
050660
01011 052010
01012 050663
01013 050743
01014 051016
01015 001023
01016 051027
01017 050617
01020 051204
01021 051202
0102~ 052076
0552
0553
0554
0555
01023
01024
01025
01026
0~56
01021 100000
01030 000376
0533
0534
0535
0f)57
0558
0 55 9
0560
0561
0562
0563
0564
POFBS JMP PDFTB .. l,1
S14LP EQU SIAse
01010
023420
001750
PDF-Ts OEF ETAB
OEF E_LIN
OEF ESPA
OfF ElAN
DEF EATN
OEF
OEF
Off
OfF
OEF
OEF
OEF
lDVSR DEF
DfF
OEF
01031 0 4 0000
01032 000000
00320
00316
00356
00355
01027
00514
EASS
ESQR
EINT
ERND
ESGN
DVSRS
DEC 1000
MNEG
OEC 100
DEC 10
OCT 100000
HALF
OCT 376
DEC 0.5
" ....
M64
EQU 0100
HIMSK EQU M256
EOF
EQU ,-I
EOR
EQU ... 2
BIT15 EQU MNEG
A00" EQU 82000
0566. THE FOLLOWING CONSTANTS ARE MASKS
FOR THE 8IT .. FLAG WORD
IN EACH USER'S TTY TABLE
0568*
0569 00350
0510 00361
0571 00363
-0572 00367
0513 00377
0574 00411
0575 00462
0576 00476
0577 00502
0578 0050 6
0579 00612
0580 00520
0581 00600
~AY
DVSRS DEC 10000
0565*
0567*
'LEN' IS DONE IN A SPECIAL
ETYP
ETIM
OEF ESIN
OfF ECOS
DEF EBRK
0""144
000012
EExp
EloG
TERR EQU .+1
CFLAG EQU .... 2
HFLAG EQU ,+4
TAPEF EQU ,+8
UNA8T EQU ."'16
OUTWT EQU ,+32
COMt4 EQU s100
ABTRY EQU 8200
DFcHK EQU 8400
CHNFG EQU e1080
PUALT EQU M2080
MBUST EQU 84000
PBFLG £QU 'RPOP
TAPE ERROR
COMPILE MODE
SHELLO IS RUNNING
USER IN TAPE MODE
UNABLE TO A80RT
OUTPUT BUFFER FULL
COMMUNICATION fROM 21S.'
ABORT ATTEMPT
CHECK FOR DIRTY fILES
CHAIN RUNNING
PROGRAM UNALTERED
MBUSY POSITIVE
ABORT CAPABILITY DISABLED
PAGE 0014 #V'l1
RASE PAGE
CBFLG EQU 820M
0582 00522
0583*
0584*. ERROR JUMP TABLE
0585*
0586 01033 001472 St.RRS OEF SERR
0587
0588
0588
0588
01034 001472
01035 001472
1.31036 001412
0588
01937
01040
01041
01042
01043
1iJ588
0588
0588
0588
0588
0588
0588
11'588
0588
0588
0588
0588
0588
01045
01046
"1947
01050
01051
01052
et1053
01054
0588
01055
0588
0588
01056
01057
01061tl
01061
0588
0588
0588
0588
0588
0588
0588
0588
0588
0588
a588
0588
0588
0588
0588
0589
0590
0591
0591
0591
0591
0591
0591
0591
0591
0691
0591
0591
0591
0591
"'1044
01062
101063
01064
01065
012166
01067
01070
001472
001472
001472
001472
001472
001412
001472
001472
001472
001472
001472
001472
001472
001472
ta01472
001472
001472
001472
001472
0014472
001472
001412
001412
001472
001472
001472
01071 00.1472
01072
01073
01074
01075
01076
010 7 7
001412
0211472
001412
001472
001412
001472
0t10P' 001472
01101
01t02
01103
01104
01105
01106
01101
01110
01111
01112
01113
01114
001472
011472
001472
001412
001472
001472
001472
21014472
001472
0211472
001472
001412
RERRS
REP
OEF
DEF
DEF
DfF
DEF
DEF
oEF
oEF
DEF
DfF
OEF
DEF
oEF
OEF
OEF
DEF
OEF
OEF
OEF
OEF
DEF
OEF
OfF
OEF
DEF
OEF
OEF
OEF
OEF
DEF
OEF
OEF
OEF
OfF
OEF
OEF
REP
oEF
OEF
35
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERf(
SERR
SERR
SERR
SERR
SERR
50
SERR
sERR
OfF SERR
OEF SERR
DEF SERR
OEF SERR
OEF SERR
DEF SERR
oEF SERR
OEF SERR
OEF SERR
OEF SERR
OEF SERR
"BREAK· COMMAND GIVEN
PAGE 0015 #01
0591
0591
0591
1591
0591
0591
0591
0591
0591
0591
0591
0591
0691
0591
0591
0591
0591
0591
0691
0591
0591
05 9 1
0591
0591
05 9 1
0691
0591
0591
0591
0591
0591
0591
0591
0691
a591
0591
0591
0592
0593
0594
0594
059.0594
0594
0594
0594
0594
0594
0594
0594
0594
(d594
0594
0595
0596
1i2591
BASE PAGE
01162
001472
001472
001472
001472
081472
001472
001472·
001472
001472
001472
001412
001412
001412
001472
001472
001412
001472
001472
001472
001472
"01412
001412
001412
001472
001472
001412
001472
001412
001472
001472
001472
001472
001472
£101472
2101472
801472
001472
001472 FERRS
01163
01164
01165
01166
01167
01170
01171
01172
01173
01114
01115
01176
01177
01200
01201
001412
001472
001472
001472
001472
0e1472
001412
001472
001 4 72
001472
001472
0£11472
001412
001472
001 4 72
01115
"1116
01117
01120
01121
01122
01123
01124
A1125
01126
01121
01130
01131
01132
01133
01134
01135
01136
01137
01140
01141
011 4 2
01143
01144
01145
01146
01141
01150
01151
01152
01153
01154
01155
01156
01151
01160
01161
011202 001472
OEF SERR
OEF SERR
OEF SERR
DEF SERR
OEF SERR
OEF SERR
DEF SERR
OEF SERR
OEF SERR
DEF SERR
DEF
OEF
OfF
DEF
OEF
OEF
OEF
OEF
DEF
OEF
OEF
DE'
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
SERR
oEF SERf<
OEF SERR
OEF SERR
OEF SERR
OEF SERR
DE.F SERR
DEF SERR
OfF SERR
OEf SERR
DEF SERR
OfF SERR
DEF SERR
OEF SERR
OEF SERR
OEF SERR
OEF SERR
REP 14
DEF SERR
OEF SERR
OEf SERR
DEF
OEF
OEF
DEF
OEF
DEF
OEF
OEF
DEF
oEF
OfF
WERRS OEF
REP
OEF
SERR
SERR
SERR
sERR
SERR
SERR
sERR
SERR
SERR
sERR
SERR
SERR
9
SERR
PAGE 0016 #01
0597
0591
0597
0Sg7
0597
BASE PAGE
DE'
OEF SERR
OEF SERR
DEF SERR
OEF SERR
OEF SERR
0597
1i11203 001472
01204 001472
01205 001412
01206 001472
01201 001412
01210 001472
01211 001472
0597
01212 001472
SERR
0597
SERR
OEF SERR
OEF
PAGE 0017 #02
1002
8003
1804
"005
0006
0001
0008
.,809
USER AREA
01213 001224
01214 101224
01224
01224
0122. 005610
01225 000310
01226 000080
USE
USEI
USER
AREG
eRES
EREG
OEF
OEF
ORG
EGU
USER
USER,I
12248
..
DEC 3000
DEC 200
NOP
NOP
LIBUS EQu •
01221 0002100
01230
PRE&
01232 2100000
01233 124447
012 34 0000013
01235 124451
saseK
S010
0811.
8812*· SUBRoUTINE RETURN ADDRESSES
0e13.
Nap
0014 01230 2100000 FSC
1015 01231 124445
JHP •• JTD,I
0016
0011
0018
11119
0020
0021
"022
0023
00 2 4
0025
0126
1027
1028
1132
01245 124461
01246 000000
01241 124463
01250 000000
01251 124465
01252 000010
8833
0034
0035
80 36
01253
01254
01255
01256
0029
1030
111031
8031
8038
8839
0040
8041
804 2
0043
11044
9145
"046
8047
0048
0049
BI50
0051
8052
1053
0054
Lo
01236 00918"
01237 124463
01240 090080
01241 124455
01242 000000
01243 124457
01244 002100"
0055
0056
0051
124461
000000
FRCUR
FPQP
VAROP
ARRID
PRGIN
T8SRH
GETPF
LPCK
RPCK
\24411
008000
01257 124473
01260 000080
°12 6 1 124415
01262 000010
01263 124417
01264 0081e0
01265 12.501
LTR
STROP
CHRST
DIGCI<
NOP
JMP
NOP
JHP
NOP
JMP
NOP
JMP
NOP
JMP
NOP
JMP
NOP
JMP
NOP
JMP
NaP
JMP
NOP
JMP
NOP
JMP
NOP
JMP
NOP
JMP
NOP
JHP
NOP
JMP
NOP
JMP
NOP
JHP
01266 000000
01267 124593
LETCK
000000
SBPUO
01211 12 45 0 5
01272 000e00
01273 124501
SYMCK
01214 000080
01215 124511
01276 000000
01277 124513
01300 000000
01301 124515
01302 000000
01303 12451 1
FINCH NOP
JMP
NUMCK NQP
JMP
MBY10 NOP
JMP
Davl0 NOP
JMP
~1210
.-JTD,I
•• JTD,I
•• JTD,I
•• JTD,I
•• JTD,l
.·JTO,I
•• JTD,I
... JTD,I
•• JTD,l
.-JTD,I
•• JTD,I
.·JTD,I
.·JTD,I
•• JTD,I
"·JTD,1
.·JTD,I
•• JTD,I
*.JTD,I
•• JTD,I
.·JTD,I
.·JTD,I
SYSTEM LEVEL CODE
FEATURE LEVEL CODE
PAGE 0018 .02
USER AREA
S8Se
1059
1161
1161
01304 000000
013e5 124521
01306 001000
1162
01311
1164
01312 088090
81313 124527
01314 000000
01315 124531
01316 0130000
01317 124533
61320 000111
01321 124535
01322 000000
01323 124537
01324 000000
01325 124541
013 2 6 000800
.,,63
",,65
8066
0067
BI68
,,"69
".,. ......
DD''''
0071
0172
0073
0014
0175
0076
01307
12~5a3
010e."
01311 124525
",,77
01327 124543
0078
01330 0se000
0119
00e0
1881
01331 124645
01 3.3 2 0021080
1083
8884
11333 1245.7
11334 098800
21 1335 124551
01336 000180
0085
01337 124553
0086
01340 000800
8e82
""87
013 4 1 124566
008a
01342
01343
01344
01345
01346
0097
1098
0099
0100
0101
0080"0
124557
000000
124561
001880
01347 124563
01351 000100
01351 124565
01352 008000
01353 124567
PJ1354 000000
01355 124571
211356 000000
01.357 124573
"102
01360 000000
0089
eSg0
0091
0092
0093
"094
0095
0"96
8103
01 0 4
0105
0106
9101
0108
0109
0110
0111
8112
0113
211361 124515
01 362
01363
01364
01365
01366
01367
01370
01371
01372
000000
124577
0000"0
124601
000000
124603
000000
12'605
000000
01313 124607
NORML NOP
JMP
.PACK NOP
JHP
OVFLW NOP
JMP
DELPR NOP
JMP
FNDPS NOP
JMP
SSyMT NOP
JMP
ASVMT NOP
JMP
DCMPL NOP
JMP
PRNST NOP
JMP
CUSP NOP
JHP
STRID NOP
JMP
RSTOP NOP
JMP
GETST NOP
JMP
FORMX NOP
JMP
STSTR NOP
JMP
SBFIX NOP
JMP
PSTR NOP
JHP
OUCHK NOP
JMP
TRSTR NOP
JMP
COMPR NOP
JMP
PCHK NOP
JMP
FETCH NOP
JMP
SETDP NOP
JMP
FOATA NOP
JMP
FSCH NOP
JMP
PSHST NOP
JMP
ARINV NOP
JMP
BINOP NOP
JMP
.-JTD,I
.-JTO,I
·•• JTD,I
•• JTD,I
.·JTD,I
.·JTD,I
*.JTD,I
•• JTD,1
•• JTO,1
*.JTD,I
•• JTD,I
•• JTD,I
•• JTO,I
•• JTD,I
•• JTD,I
•• JTD,I
•• JTD,I
.-JTD,I
•• JTD,I
•• JTO,I
•• JTD,I
.-JTD,I
•• JTD,I
•• JTD,I
•• JTD,I
.·JTD,I
.-JTD,I
*-JTD,I
PAGE 0019 #02
USER
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
01 2 8
0129
0130
0131
0132
0133
0134
0135
01374 000000
01375 124611
0136
000000
0137~
00A0~0
01377
01400
01401
01402
01403
01404
01405
124613
0000~0
01407
01410
01411
01412
01413
01414
01415
124623
°1 59
~1452
0161
0162
0163
0164
01453
01454
01455
01456
0140
0141
0142
1ti143
0144
0145
0146
0147
0148
0149
~150
0151
8152
0153
0154
0155
0156
0157
0158
0165
0166
0167
01 6 8
0169
000000
STTOP NOP
JHP .·JTD,I
opeHK NOP
JMP .-JTD,I
RseHK NOP
JMP ... JTD,I
.FAD NOP
.IMP *.JTD,l
.... s8
NOP
.JMP
.FMP
.FDV
124625
NOP
*-JTD,I
JHP *-JTD,I
NOP
JMp *·JTD,l
124633
.FLUN NOP
JMP * .. JTD,I
If Ix Nap
JHP .-JTD,I
ENQUT NOP
JMp .-JTD,I
000000
NU~OT
000000
124627
000000
124631
01416 A00000
0160
01 38
0139
124615
000000
124617
000000
124621
01406
e1417
"'1420
01421
01422
01423
et14 2 4
01425
01426
"1421
0143'"
01431
01432
01433
01434
01435
01436
01437
01440
01441
01442
01443
01444
01445
01446
01447
01450
014 5 1
0137
000000
AR~A
124635
GETDG
124637
000000
OUTlN
124641
000000
EDElM
124643
NOP
JMP
NOP
JMP
Nap
JMP
NOP
JMP
NOP
JMP
NOP
JHP
NOP
JMP
NOP
•• JTD,I
... JTD,I
*.JTD,I
*"'JTD,I
000000
SETPT
124645
0000QJ0
124647
.Ex P
000000
.LOG
00l!1000
.CHfH
124653
JHP .-JlO,I
.IENT NOP
JMP ... JTD,I
124651
0000~0
124655
000000
124657
000000
124661
000000
124663
000000
124665
000000
124667
000000
124671
000000
~1457 124673
01460 000000
01461 124615
01462 000000
01463 124677
.PWR2 NOP
JMP
INCAL Nap
JMP
GETeR NOP
JMP
RCKSP NOP
JMP
OUTeR NOP
JHP
aUTIN NOP
JMP
MeOUT NOP
... JTD,1
*-JTD,I
*-JTO,I
.... JTO,l
*"'JTD,I
.... JTO,I
• .. JTD,l
• .. JTO,I
*.JTD,l
.IMP ."JTD,I
OUTST NOP
JMp ··JTO,I
SINIT NOP
JMP ·"JTO,I
PAGE
0170
0171
0172
0173
0174
0175
0176
0177
a178
0179
0180
0181
0182
0~8J
0184
0185
0186
0187
0188
"'189
0190
0191
0192
0193
019 4
0195
0196
0197
0198
0199
0200
0201
0202
~203
0204
0205
0206
0207
0208
0209
0210
1t)211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
WJ223
0224
0225
(']020 #02
01464
01465
01466
VJ1467
014721
01471
01472
01473
01 474
01475
01476
01477
USFR AREA
000000
1247"1
000000
124703
0000021
124705
000~00
124707
000000
124711
1210000121
124713
01500 000000
1211501 124715
015 0 2 0210000
01503 124717
01504 "'0000k1
0151215 124721
01506 ~00000
01507 124723
01510 0021000
e11511 124725
01512 000000
01513 124727
01514 000000
0151~ 124731
01516 000000
01517 124733
~152~
000((J00
01521 124735
015 22 000000
01523 124737
01e24 000000
01525 124741
01526 000000
01527 124743
0153Q) 000000
01531 124745
01532 000000
01533 124747
01534 000000
01535 124751
01536 000000
01537 124753
01 54'"
01541
01542
01543
01544
01545
~1546
000~00
124755
000((!00
124757
000000
124761
000000
01547 124763
01550 000000
01551 124765
01 55 2 000000
01553 124767
BlOIN NOP
JMP
REDIM NOP
JMP
VCHK NOP
JMP
SERR NOP
JMP
CHOUF NOP
JMP
MOVER NOP
JMP
RECRf NOP
... J1D,1
*·JTD,I
*-JTD,I
.-JTO,I
•• JTO,I
.-JTD,I
·JMP
.·JTD,I
JMP
RQSTR NOP
JMP
FllST NOP
JMP
GTTYP NOP
JHP
WRBUF NOP
."'JTD,1
FIlRF NOP
JMP •• JTD,I
vlFIL NOP
JMP
... JTD,I
... J1D,I
··JTD,I
··JTD,I
ALCOM NOP
JMP ··JTD,I
RSTPT NOP
JMP ... JTO,I
NOP
FENCH
JMP .~JTO,I
MTGl NOP
JMP
Dll1
.-JTO,l
~OP
I
JMP ... JTO,1
ROUND NOP
.IMP
.-JTD,I
OUTaL NOP
JMp ··JTD,I
OUTCL NOP
.JMP * .. JTD,I
DSRCH NOP
JMP ... JTD,I
MCHAR NOP
JMP * ... JTD,1
EVEXP NOP
JMP *.JTD,I
USTCK NOP
JMp
PFSRH NOP
JMP
FRMAT NOP
JMP
EPRUS NOP
JMP
.-JTD,l
.-JTD,1
• .. JTD,1
*.JTD,I
PAGE 0021
0226
#~2
USER AREA
Vl1554 0021000
01555 124771
01556 000000
01557 124773
01560 0002100
01561 124775
01562 2100000
01563 124777
STLeK NOP
JMP ."JTD,1
LCDl.P NOP
.JMP ."JTO,I
FCUC NOP
JMp ... JTD,I
EDABR NOP
.JMP ... JTD,I
EQU FSC.SBJTa"'l
JTD
0227
0228
0229
0230
0231
0232
0233
0234 00564
0235*
0236*· GENtRAL USAGE INFORMATION
0231.
0238 01564 000000 RNDXl BSS 1
0239 0156 5 00000~ RNOX2 ass t
0240 01566 00001'0 .LNu M 8SS !
01567 000000 lNAME ass t.
0241
0242 01570 000000 CHRCT BSS 1
0243 01511 000040 BLANK OCT 40
0244 01572 000000 sBPTR BSS 1
0245 01573 000000 SYMTB BSS t
0 24 6 (11157 4 1300000 VALla BSS 1
°247 0157~ 0°2°00 SPROG OfF PROGB+l
0248 01516 000000 vLFLG BSS t
0249 01577 000000 FL.STS ass 4
0250 01603 000000 FILPT BSS 1
0251 P.!1604 000000 FIleT BSS 1
0252 0161215 000000 USESN BSS t
0253 01606 000000 NUMPT BSS 1
0254 01607 000000 ENOUF NOP
0255 01 6 10 00000121 ATIM BSS 1
0256 01611 000000 TEMP BSS 9
0257 01622 0000~0 XTEMP BSS 2
0258 016 24 000000 YTEMP BSS ~
0259 01626 000000 UTEMP BSS 2
0260 0163", 000000 X2TMP BSS 2
0261 0 1 6 32 000000 ATMP BSS 2
0262 01634 000000 BTMp BSS 2
0263 01636 000000 OTMP BSS 2
0264 01640 000000 BINOI BSS 1
0265 01641 1210000121 BIN02 BSS 1
0266 01642 125372
JHP BINOP,I
0267 01643 000000 ERSEC BSS 64
BSS 1
0268 01743 000000 CC
BSS 1
0269 01144 000000 eel
BSS 1
02 7 0 . 01745 000000 CC2
0271 01746 000000 eONTR BSS 1
0212 01747 000000 OP
BSS 1
0273 01750 000000 DPFLG BSS 1
0274 01751 t)00000 EOSTA BSS 1
_0275 01752 000000 FfL.G BSS 1
0276 01753 00012100 EST
BSS 1
0277 01754 0121000121 FFLG BSS 1
BSS 1
027S 01755 00000'" FSP
0279 01756 000000 IfSS ass I
02 8 0 01757 000000 IfSTR ess 1
BSS 1
02 8 1 0176 0 000000 NtH
30~BIT
RANDOM
INTEGER.
PAGE 0022 #02
USER AREA
0282 ~1761 000000 NUMl
0283 " 01762 0000~0 NUM2
0284 01763 00Q1000 " pet
0285
"'1164
000~00
0286
~116!5
0000A0
0287
0288
0289
01766
0090~0
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0301
0308
0309
0310
~17bl
~1770
000000
000000
01771 000000
131772 050000
tlI1773 054000
~1714 000000
1212000
01777
01027
0142Q1
"'1643
Pt1266
01316
01320
01322
01324
A1336
01360
01362
01614
01356
01300
01310
PC2
SAD
SijO
PMASK
RETCD
ASINP
DEFOP
FOROP
REpel
PHOGB
FlGaT
GFLAG
pINTG
SIGN
MANTt
MANT2
EXP
EXPON
fFLAG
NMTMP
NMPTR
NUMBF
DIGCT
NT0
0311
0312
01426
0313
0314
0315
0316
012 7 4
01430
01436
01440
OCTMP
LT0
LTI
lT2
lTJ
LT4
Ll5
0317
01442
LT6
0318
0319
0320
0321
01432
0155Qt
01444
0322
0323
0324
0325
0326
0327
0328*
0141210
01450
01374
01510
01512
01476
01472
01474
0329.* SYNTAX
0330.
0331 01574
0332 £)1616
0333 01470
0334 01615
0335 e1402
0336 01404
0337 01406
LT7
LTS
OT1
013
OGCNT
SOURC
DEST
TAPe
TApl
CUt
BSS 1
BSS t
BSS 1
BSS 1
HSS 1
BSS 1
BSS 1
RSS 1
BSS 1
OCT 500160
OCT 54000
ass t
ORG USER+554R
EQu .... 1
EQU MNEG
fQU NUMOT
EQU ERSEC
EQU LETCK
EQU SSYMT
EQU ASYHT
EQU DCMPL
EQU PRNST
EQu FORMx
F.QU sETDP
EQU FOAlA
EQU TEMP+j
EgU FETCH
fQU MBY10
EQU OVFLW
EQU RSCHK
EQU E"DELM
EQU FINCH
EQU SETPT
E.QU .tHEB
EQU .IENT
EQU .PWR2
EQU .EXP
Egu FRMAT
EQU INcAL
EQU BCKSP
EQU STTOP
EQU FILST
EQU GTTYP
fQU MOVER
EQU SERR
EQU CHOUF
INfORMATION TEMPORARIES
EQU VALlB
EQU lEMp+5
EQU VCHK
fQU Tt.MP+4
EQU .FAD
EQU .FSB
LNGTH EQU .FMP
ERRCT
sBuFA
SYNTQ
SSTAK
MAXCR
TABLE
PAGE 0023
ra338
0339
0340
1341
0342
0343
01~10
01432
01436
01440
01442
01306
0344
01412
0345
01617
0346.
0347.·
1102
USER
AREA
SM8GN
SLENG
COUNT
T8LPT
TSPTR
SBT0
Cl>FLG
pFLAG
EQU
EQU
EQU
EQU
EQU
.FDV
.EXP
.tHEB
.IENT
.PWR2
~QU .PACK
EQU .FLUN
EgU TEMp+6
COMPILE INFORMATION TEMPORARIES
0348.
0349 01234
0350
0351
01502
0 3 52
01230
v.l124'-
EQU FRcUR
E.QU FILRF
EQU ARRID
EQU FSC
E.QU FPOP
EQU VAROP
EQU TEMP
STHP2 EQU TEMP+l
VTMPt EQU TEMP
VlMp2 EQU TEMp+l
VTMP3 EQU TEMP+2
VTMP4 EQU TEMP ... 3
VTMPS EQU TEMP ...
COMSN EQU TEMP.4
STPTR EQU TEMP.S
COMpT EQU TEMp+5
STeTl EGU TEMP.6
8TC12 EQU TEJI4P+2
5TCT3 EQU TEMP+J
DCFLG EQU TEMP.6
INFST EQU FRMAT
FLINK
FILTS
STEND
SP1R
NSPTR
SlYPE
STMPl
0353 01236
0354 01240
0355 01611
0356 01612
0357 011611
0358 01612
0359 01613
0360 01614
0361 01615
0362 01615
0363 01616
0364 01616
0365 ~t6t7
0366 01613
0367 01614
0368 01617
0369 01550
0310.
0311.· EXECUTION INFORMATION TEMPORARIE.s
0372.
fCORE EQU S8SCK
0373 01232
0314 "'1500
fCI.JTR EQU RECRF
0 3 , 5 01240
RTRNQ EQU VAROP
EQU ARRID
RTNST
0376 01242
0371 01246
FORQ EQU TBSRH
0378 0125\1
fORST EgU GETPF
0379 01330
TMPST EQU STRIo
EQU RSTOP
OPOST
0380 01332
0381 01~64
OPTRQ EQU BLDIN
0382 01334
PRGCT EQU GETST
0383 01262
"CCNT EQU CHRST
0384
0385
0386
0387
"388
0389
0390
0391
0392
0393
211244
01611
01252
01254
01256
01212
01260
01476
01426
01420
EQU
EQU
EQU
EQU
EQU
EQU
TEMPt; EQU
GlMP EQU
FVT
EQU
EQU
£FN0
NXTDT
TEMPt
TEMP2
TE,ftIIPJ
TEMP4
TEMP5
PRGIN
TEMP
LPCK
RPCK
LTR
SYMCK
STROP
MOVER
fOELM
NUMOT
PAGE 0024 *02
0394
01422
0395
0396
0397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
~t424
0411
0412
0413
0414
0415
0416
0 4 17
0418
0419
0420
0421
0422
0423
8424
0425
0426
0427
0428
0429
0430
0431
0432
0433
0434
0435
0436
0437
043 8
0439
0440
0441
0442
01366
01456
t1142A
t{)1420
01476
01354
01550
01470
01456
01572
01350
01352
01312
01314
01622
01623
01340
01364
0163'-·
01633
01634
01635
01636
01637
~1630
USER AREA
EFNl
ffN2
EFNJ
INITf
' If-CNT
RSPTR
HeNT
INTMP
STRLN
EOL
EOPF
BSt
882
aS3
M10
MTI
.MT2
MT3
MOP
HEXIT
MHT"
MMT1
MHT2
MHT3
MMT4
MMT5
01631
01316
MMT6
HMT7
MMTS
01514
100
01362
IDI
01470
RD0
01400
. VTe
'11622
01624
01626
01344
~14J6
0144rf1
01442
01616
01617
01620
01402
01264
0126b
01614
01615
01644
0443
~1647
0444
0445
0446
r.1645
",447
01646
01650
01236
0448
01651
0449
1d1234
EQU GETDG
f"QU OUTLN
EQU PSHST
EQU MCOUT
~.QU NUMOT
EQU NUMOT
EQU MOVER
EQU PCHK
fQU FRMAT
EQU VCHK
EQU MCOUT
EQU SSPTR
EQU TRSTR
EQU COMPR
EQU DELPR
EQU FNDPS
f.QU XTEMP
EgU XTEMP+l
fQU STSTR
E:QU FSCH
EQU A1MP
EQU ATMP+l
EQU 8TMP
E.QU BTMP+1
EQU DTHP
EQU DTMp+l
fQU X2TMP
FQU )(2TMP+l
EQU OPCHK
f.QU WRBuF
EQU FDATA
EQU VCHK
EQU RSCHK
EQU XTEMP
EQU YTEHP
SCALR
MAXE
TOl
EgU
PIVEL EQU
EST1 EQU
EST2 EQU
ESTJ EQU
EGU
A1
EQU
A2
EQU
C1
EQU
F00
EQU
TTl
EQU
TT2
EgU
TTJ
EQU
TT4
RQl
EQU
EQU
RQ2
RQJ
EQU
EQU
RQ4
RQ5
EQU
F8ASE EQU
EORfL EQU
fILE" EQU
UTEMP
PSTR
.CHEB
.IENT
,PWR2
TEMP+f:j
TEMP.6
TEMP+7
.FAD
DIGCK~
LETCK
TEMp+J
TEMP.4
ERSEC+l
ERSEC+4
FRSEC+2
ERSEC+3
ERSEC+f)
FPOP
ERSEC+6
FRCUR
PAGE
0025 #02
8450
01520
0451
0452
0453
0454
0455
0456
01514
0457
01410
01466
01462
01432
0458
0459
0460
0461
1462
0463
0464
A.1652
01653
A1400
01376
"1~06
01344
01402
~1404
0465
01436
01440
0466
0461
0137b
0468
0469
0470
0471
e472
0413
0474
0475
01434
01643
01644
01 646
01647
01650
01726
01727
0173 0
0416
01731
"477
0478
0479
°1132
01133
9480
01737
0481
0482
0483
01749}
01741
048~
0485
0486
0487
0.t736
01742
01410
01550
01554
01466
LISER ·AREA
RCRD' EQU RSTPT
EQU WRBUF
VL0
t-gU
ERSEC+7
DADRR
fILl EQU ERSEC+e
EQU RSCHK
"'PT
EQU OPCHK
NQT
fQU
TNUlL
.FHP
TPRME EQU .fOV
EQU REDIM
PS0
EQU SINIT
PSt
EQU .EXP
CP0
EQU PSTR
CPt
THf-CH EQU .FAD
TRS0 EGU .F58
EQU .tHEA
RT0
EQU .IENT
RTl
LBTHP EQU .LOG
CTMP EQU OPCHK
EC
EQU ERSEC
EQU ERSEC+l
FST
SfLG EQU ERSEC+3
EXPW EQU ERSEC+4
HB
EQu ERSEC+5
HBp
EQU ERSEC+51
EQU ERSEC+S 2
lCH
NAO
Eau ERSEC+53
EQU ERSEC+54
NBD
N8LK EQU ERSEC+55
NH8W EQU ERSEC+56
NUMWI FQu ERSEC+59
NUMW2 EQU ERSEC .. 60
SNFLG EQU fRSEC+6t
TOTDG EQU ERSEC+62
DCTR EQU ERSEC+b3
ELeNT EQU VCHK
ORONO EQU FRMAT
ASaFP EQU STLCK
ASTYP EQU REDIM
46 WORD BUFFEt<
PAGt 0026
#~3
DIREC TABLE
0002*
0003**
8184* ••
DIREC TABLE
8005*·
0006*
DIREC IS A 560 WORD RESIDENT TABLE WHICH CONTAINS INFORMATION
0001*
ABOUT THE DIRECTORY. THE TABLE HAS 80 ENTRIES, ONE fOR EACH
0088*
~U,e9·
""11*
0011*
0,,12*
0013*
8014*
0015*
0016.
0011*
8018*
0819*
0021
0022
POSSIBLE DIRECTORY TRACK. EACH ENTRY IS SEVEN WORDS LONG AND
THE fOLLOWING STRUCTURE.
HAS
.1) LENGTH IN -WORDS
2) SAME AS FIRST
3)
FOUR WORDS OF
4)
DIRECTORY
5)
TRACK
6) DISC
7)
AODRESS
30000
30000 000000
0024
31051
0025
31060
ORG 300006
DIREC BSS 560
OIREL EQU *-7
OIREU EQU *
-> START OF LAST ENTRY
•• FIRST LOCATION BEYOND TAILE
PAGE 0027 #03
0027*
0028*
0029*
0030*
0031*
0032*
DISC DRIVER DRIVER
THIS ROUTINE CALLS THE REAL DISC DRIVER AND WAITS FOR THE
TRA~SFER TO 8~ SUCCESSFULLY COMPLETED.
THE CALLING SEQUENCE
TO THIS DRIVER IS AS fOLLOWS,
JSB 015CZ,1
0033*
A RfGISTER
~
MUST CONTAIN THE ADDRESS OF A DOUBLE
WORD CONTAINING THE DISC AODRES8 (SLOCK
NUMBER) OF THE FIRST REtORD OF TH~ TRANSFER.
B REGISTER
~
BITS 1410 - CORE ADDRESS AT WHICH THE
TRANSfER IS TO BEGIN.
BIT 15
~ TRANSFER CODE
1 • DISC REAO
(d • DISC WRITE
MWORO
~
MUST CONTAIN THE NEGATIVE NUMBER OF WORDS
TO BE TRANSfERRED,
MBUSY
~
SET TO .1 BY THE DISC DRIVER WHILE IT IS aUSY
0034*
0035*
0036*
0037*
003S*
0039*
00421*
0041*
0042*
0043*
0044*
0045*
0°46·
1rJ048
0049
0050
0051
00!;2
0053
0054
1iJ055
0056
0057
0058
31060 000000
31061 A70071
31062 114201
31063 102030
31064 102031
3106fS
31966
31067
3107 0
31e71
31072
060203
002020
027065
002003
037060
127060
lOISc NOP
STA STOAP
JSB DISCA,I
HLT OEATH+38B
HlT DfATH+31B
LOA
58A
MBUSY
JMP ... 2
SZA,RSS
lSZ ZOISC
JM.P ZOISC,I
SAVE POINTER
CALL DISC DRIVeR
DRIVER BUSy
DISC NOT PRESENT
WAIT FOR
COMPLETION
IF NO ERRORS, ADVANCE
RETURN ADDRESS
PAGE 0028 *03
OLOOK ROUTINES
0~60*
&061**
006"2***
ULOOK
0063*.
0064*
DLOOK SEARCHES'THE DIRECTORy FOR A PARTICULAR ENTRY,
0065*
0066*
DESIRED ENTRY IS D~FINEO SY LTEMP(IIJ),
0067*
ENTRY IS fOUND,
0068*
THE APPROPRIATE DIRECTORY TRACK IS IN CORE
"069*
0070*
CLTEMP+4) - POINTER TO DIREC ENTRY
(LTEMP+5) - DIRECTORY MEMORY ADDRESS OF ENTRY
0071*
DLOOK RETURNS TO P+i
0°12*
1013*
ENTRY JS NOT FOUNDs
(LTEPM+4). POINT AT THE lAST ENTRY
(LTEMP+5) LESS THAN THE GIVEN ENTRY
DLOOK RETURNS TO P+2
0074*
0075*
1016*
0011*
0079
0080
0081
0082
0083
0084
0085
0086
0e81
J1073 000000
31074 067230
31075 074034
31076 160001
0089
31077 002002
31100 027104
31101 064034
31102 044350
31103 021£175
OLOKB LDA
STA
LDA
ADA
LOB
JSB
31111
31112
31113
31114
31115
31116
0097
009S
0ftl99
0100
0101
0102
0103
0104
0105
0116
0101
0108
0110
0111
0112
0113
0114
0115
OLOK3
LTEMP+4
, .. 1
OLOKI
31130
31131
31132
31133
31134
31135
31110 000000
0094
00g5
0096
5ZA
JMP
DlOK2 LDB
ADS
JMP
31127 114211
0092
0093
0091"
DLOOI< NOP
LOB DIROL
OLOKI 8T8 LTEMP.4
LDA 8,1
OlOK3 IN8
LOA DLTEM
J8B DIRCH
JHP OLOK2
NOP
LOA lTEHP+4,1
CMA,INA
ADA LIBD
ADA .-12
SrA LTEMP+5
LOA LTEMP+4
ADA ,+5
CPA DIRWD
JMP Dl.OK4
LDA DIRWD
SZA,RSS
.JMP DL.OKB
LDB LIBD
JSB DlSCZ,I
JSB SLVAG,I
31104 006004
31105 06064&
31106 017203
31101 027101
"0ge
THE
160034
003004
040676
040343
070035
06 0034
31117 040364
31120 050251
31121 027137
31122 0 6 0257
31123 002003
31124 027130
31125 064676
31126 114206
160034
070204
060034
040364
064700
1142 0 6
SET LTEMP.4 TO POINT AT
LAST DIRECTORY TRACK
TEST fOR
EMPTy TRACK
NOT £:MPTY
BUMP BACK TO
NEXT TRACK
COMPARE THE FIRST
ENTRY ON THIS TRACK
TO THE DESIRED ENTRY
NOT ON THIS TRACK
fOUND THE
RIGHT TRACK
SET UP INITIAL
POINTER FOR
TRACK SCAN
GET DIRECTORY DISC
ADDRESS POINTER
IS THIS TRAC~ ALREADY IN COR!,
YES
NO w CHECK FOR ANY TRACK IN CORE
NONE, SO JUST READ IN NEW TRACK
yES, WRITE PREVIQUS
TRACK OUT TO DISC
DISC ERROR
LTE"'+4,I SET uP DIRECTORy TRACK
M~ORO
TRANSFER LENGTH
LTEMP+~
SET UP POINTER TO
,+5
DISC ADDRESS
LI8Dl
DISCl,l
READ IN DIRECTORY TRACK
PAGE
0116
~029
31136
#03
OLOOK ROUTINES
JS8 SICKP,I
1142~7
0118. NOW SEARCH DIRECTORY FOR DESIRED ~NTRY. A BINARY SEARCH IS USED,
0119. WITH LTEMP(l'ltb) USED AS POINTERS TO TH~ FIRST AND LAST OF ALL
012,,*
0121*
8122
0123
0124
0125
0126
0127
0128
0129
0130*
0131
0132
0133
0134
0135
01 36
0131
0138
0139
01 4 21
UNTESTED ENTRIES.
31137
31140
31141
31142
31143
31144
31145
31t46
060616
070046
060640
064035
017203
027147
037073
121073
31147 060035
3115~ 070047
31151 0600~6
31152 003004
31153 040047
31154 001100
31155 006400
31156 100 4 00
31157 000373
3116PJ 100200
31161 000373
311 6 2 0 4 0046
31163 070035
31164 064640
31165 0150046
31166 027176
21141
0142
0143
0144
0145*
0146 31167 017203
0147 31170 021173
0148 31171 027147
0149 31172 127073
0150*
0151 31173 060035
0152 31174 070046
0153 31175 027152
0154*
0155 31176 050676
0156 31177 017203
0157 31200 037073
01 5 8 31201 000000
0159 31202 127013
OLOK4 LOA
STA
LOA
LDB
JSB
JMP
ISZ
JHP
LIBD
LTEHP+14
DlTEM
LTEMP+S
DIRCM
DLOK5
OLOOK
OLOOK,l
DLOK5 LOA LTEMP+5
STA LTEMP+15
LDA LTEMP+14
DLOK6 CHA,INA
ADA LTEMP+t5
ARS
CLB .
DIV '. +12
MPy .+12
~DA
srA
LOB
CPA
JMP
SET POINTER TO BEGINNING OF
DIRECTORY.
TEST LAST ENTRY IN TRACK.
LAST ENTRY TOO BIG··START CHOP.
TOO SMALL~.IT'S THE ONE,
LAST ENTRy IS IT,
SET END POINTER.
COMPUTE DIFFER(NCE BETWEEN 'IRST. ,.
AND LAST ENTRIES,
DIVIDE 8YTWO.
ROUND TO A
MULTIPLE
OF TWELVE
LTEHP+t4·GET ADDRESS OF MIDDLE ENTRY.
LTEMP+5
SET INTO RESULT LOCA,10N.
DLTEM.
SETUP FOR JSB DIRCH.
.
LTEMP+14 TEST fOR ONLy 2 ENTRliS LEFT,
DLOK8
THERE ARE •• WEIYE GOT THE RESULT,
JSB DIRCH
JHP Ol.OK7
JMP OLOK5
JHPDL.OOK,I
TEST MIDWAy ENTRY.
TOO SHALL ••GO RESET LT£MP(l.).
TOO 81G~.GO RESET LTCMP(15).
EQUAL ... RETURN.
OLOK7 LOA LTEMP+5
STA lTEMP+14
JMP DLOK6
RESET lTEMP(14).
OLOKe CPA
JSB
ISZ
NOP
JMP
LIBO
0IRCM
DlOOK
If 'LTEMP(14)~>LTEHP, WE KNOW
IT'S LESS, SO wt SKIP TEST.
LESS THAN ENTRV.
oLOOK,I
EQUAL TO ENTRY,
PAGE 0030 #03
0161*
0162.
0163.
0164.
0165.
0166.
0161
0168
0169
0170
0171
0172
0113
0114
0115
0176
0177
0178
0179
0180
0181
0182
0183
0184
°1 8 5
0186
0187
0189
0190
0191
0192
DLOOK ROUTINES
DIRCM COMPARES THE 4 WORD ENTRIlS POINTED TO By A AND 8.
BIT 15 IS NOT USED. IT RETURNS AS FOLLOlttSI
P+1: Ac8
P+2: A>S
P+J A-a
31203 000000
31204 073232
31205 060353
31206 073231
31207 077233
31210 163233
31211 001665
31212 003004
31213 167232
31214 005665
31215 040001
31216 002002
31217 Cit27225
31220 031233
31221 037232
31222 037231
31223 027210
31224 037203
31225 002021
31226 037203
31227 121203
ELA,CLE,ERA
CMA,INA
LOB DIRC2,I
ELB,CLE,ERB
AOA 1
SZA
JMP DIRCA
ISZ DIRC5
ISZ DIRC2
ISZ DIRCI
JMP DIRC3
ISZ DIReM
DIRC4 SSA,RSS
ISZ DIReM
JMP DIReM,I
31230 031°51
31231 000000
31232 ~00000
31233 000000
DIRDL
OIRC1
OlRC2
OlRC5
DIReM NOP
STA DIRc2
LDA
1",,4
SET COUNTER.
STA DIRCl
ST8 DIRC5
OlRC3 LOA DIRe5,I
OEF
RSS
RSS
BSS
OIREL
1
1
1
SUBTRACT WORD FROM B
FROM WORD FROM A.
TEST FOR EQUAL.
NOT EQUAL-GO RETURN.
BUMP
POINTERS.
TEST FOR FINISHED.
DOUBLE ISZ FOR EQUAL.
ONE lSZ If •• B
NONE IF A SyNTAX ••
0341···
••
0342.
FAKE
0343 32017 060552 Lt.T0 LDA LETOP
A
0344 32020 111572
STA SBPTR,l
0345 32021 015450
JSB BCKSP
'LET'
ENABLE A
0346 322122 065572 LETS LDB SBPTR
8T8 SFLAG
STRING VARIABLE
0347 32023 077453
ISZ
MSFLG
TURN
ON 'MULTIPLE STORE' MODE
~31447
0348 32024
JSB
FSC
ANALYZE
FORMULA
0349 32025 015230
ISZ
SFLAG
STRING
VARIABLE
FOUND?
0350 32026 037453
JMP
LET 1
NO
0351 32027 026035
0352 322130 015272
YES, (8) IS LEFT AT .1
JSB SYMCK
DEF AssoP-t
0353 32031 033415
DEMAND ASSIGNMENT OPERATOR
0354 32032 115036
JSB SERRS+3,I NOT FOUND
.JSB RSTOP
RECORD A STRING OPERAND
0355 32033 015332
JMP EOST
OEMAND END OF STATEMENT
0356 32034 026037
ISZ SFLAG
DID A STORE OCCUR7
0357 32035 ~31453 LETt
0358 32036 115036
JsB sERRS+3,I NO
0359.·
0360.** CHECK fOR END OF STATEMENT •••
0361.·
••
0362 32037 050374 EOST CPA .+15B
END OF STATEMENT~
0363 32040 124620
JMP AceSA,l
YES
0364 32041 115037
JS8 SERRS.4,I NO
0365*
0366 •••
0367.. SYNTAX ••
0368**·
0369.
0370 32042 002400 DIMS CLA
FLAG AS OIM STATEMENT
0371.
0372 •••
.*
0373*. SyNTAX
0374 •• *
.*
*.
••
*.
*.
0375.
0376
0377
0378
0379
0380
0381
0382
0383
0384
0385
32043 ~71412
32044 077445
32045 061572
32046 073453
32047 015240
32050 115040
32051 026055
3212152 006400
32053 055412
32054 11512140
COMS
STASTB
LDA
STA
COFLG
DFLAG
sBPTR
SFLAG
fLAG AS COM STATEMENT
TURN ON 'DIM' MODE ( (8)-, )
ENABLE STHING
VARIABLE
sEEK VARIABLE OPERAND
.JsB VAROP
JSe SERRS+5,1 IMPROPER SUBSCRIPT
COMS0 JMP COMSi
ARRAY OR STRING FOUND
CLB
SIMPLE VARIABLE
cpa CDFLG
'DIM'?
JSB SERRS+5,1 YES .. ~ERROR
PAGE 0035
#~3
STATEMENT SYNTAX PROCESSORS
0386 32055 050374 COMS1 CPA .+158
0387 32056 124620
JMP AceSA,I
cce
0388 322157 007400
0389 32060 015272
JSB SYMCK
OEF COMMA':'t
0390 32061 033363
JSB sERRS+6,I
0391 32062 115041
.JHP COMS ... 2
0392 32063 026045
0393*
0394 •••
*.
0395 •• SyNTAX
0396.*.
0391.
0398 32064 015256 DEfS JSB LTR
0399 32065 115042
JsB SERRS+7,I
ALF,ALf
0400 32066 001727
0401 32067 031612
lOR TEMp+1
CPA FN
0402 32010 053375
0403 32011 002001
RSS
0404 32072 115042
JS8 SERR5+7,!
JSB LTR
0405 32073 015256
0406 32074 115042
JSB SERRS+7,I
0407 32075 061612
LOA TEMP+1
LOB ,58
0408 32076 064452
0409 32077 015260
JSB STROP
0410 32100 061613
t OA TEMP+2
NO, CARRIAGE RETURN fOLLOWS'
YES
NO
COMMA?
NO
YES
••
••
0411
iJ412
32101 "'15252
0413
32103 171572
32104 015240
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
04 2 4
0425
0426
0427
0428
3 2 102 031027
32105 000000
32106 115043
32107
3 21 10
32111
32112
32113
32114
015254
007400
015272
033415
115036
12160355
32115 041572
32116 160000
32117 0105~4
32120
32121
32122
32123
071617
015230
T~O
CHARACTERS
yEs
'FN' ?
NO
FOLLOWED BY A LETTER1
NO
yEs,
RECORD
FUNCTION
RETRIEvE FOLLOWING CHARACTER
JSB LPCK
DEMAND LEFT PARENTHESIS
lOR FLGST
SET fL.AG FOR
STA SBPTR,I
FORMAL PARAMETER
JSB VAROP
DEMAND A SIMPLE VARIABLE
NOP
NONE
JSB SERRS.8,I
FOUND
JS8 RPCK
DEMAND A RIGHT PARENTHESIS
ete
ASSlfiNMENT
OPERATOR
JSB S~MCK
NEXT?
DfF ASSOP.l
JaB SERRS+3,I NO
YES,
LOA .-2
ADA SBPTR
ISOLATE
LOA 0,1
AND SAVE
AND 8777
FORMAL
STA PFLAG
PARAMETER
JSB FSC
FETCH DEFINING FORMULA
JSB SBPUD
RECORD END~OF.FORHULA OPERAToR
JMP EOST
DEMAND END OF STATEMENT
015270
0429
026037
0430.
0431.*.
0432.* SyNTAX
0433.*.
0434.
0435 32124 0 6557 2
0436 32125 071457
0437 32126 12106400
0438 32127 060374
0439 32130 015262
0440 32131 000000
0441 32132 061612
f'IR5i
••
••
.*
IMAGS LOB SBPTR
STB ARVAD
cL8
SAVE CURRENT
BUFFER POINTER
LOA .... 158
JSB CHRST
SET OELIMETER
RECORD STRING CONSTANT
LDA TEMP'" 1
LENGTH
Nap
PAGE 0036 #03
1442
0443
0444
0445
04146
STATEMENT SYNTAX PROCESSORS
32133 040321
32134 002 0 21
32135 115072
32136 163457
32131 ('141612
32140 173457
ADA M73
SSA,RSS
>727
JSB SERRS+31,I YES
LDA ARYAD,I
NO,
ADA TEMP+l
RECORD
STA ARYAD,I
LENGTH
JMP ACCSA,I
0441
0448 32141 124620
0449.
0450 •••
0451.* & cGOSUB STATEMENT> SYNTAX
0452 •••
0453.
SAVE
0454 32142 A60220 GOTOS LOA SSP
0455 32143 064255
LOB MAIN
INS
0456 32144 006004
BUfFER
lOR 1,1
0451 32145 130"'01
0458 32146 114736
JSB S14SC,I
POINTER
SET INTtK MODE TO
ctA
0459 32147 003400
0460 32150 071420
STA-GFLAG
'EXIT ON ERROR'
0461 3215t (i)15244
JSe PRGIN
SEEK SEQUENCE NUMBER
0462 32152 026212
JMP GOT03
FOUND
eeB
NOT FOUND
0463 32153 007400
0464 32154 045572 GOTOl ADB sBpTR
BACK UP
0465 32155·075572
STB SBPTR
SYNTAX POINTER
0466 32156 161572
E.RASE
LOA SaPTR,I
ANO OPMSK
'INTEGER FOLLOWS'
0 4 67 32157 010570STA SBPTR,i
0468 32160 111572
FLAG
RESTORE
0 46 9 32161 060221
LDA RBP
LOB MAIN
0470 32162 064255
tNS
aUf'FER
0471 32163 00 6 004
lOR 1,1
0472 32164 130001
JSB 5145C,1
POINTER
0473 32165 114136
0474 32166 015230
.}S8 FSC
sEEK FORMULA
END-Of.RECORD?
CPA +158
0 47 5 32167 050374
•
0476 32170 1151it44
JSB SERRS+9,I
YES
NO, DO
0477 32111 001727
ALF,AlF
0478 32112 071612
srA TEMP+l
NEXT
0479 32113 015446
TWO
JSB GETCR
JSB SERRS+9,I
CHARACTERS
04 8 0 32174 115044
0481 32 t 15 03'1612
FORM
lOR TEMP+l
CPA OF
0482 32176 053377
'OF, t
RSS
YES
0483 321 1 1 002001
0484 32200 115044
JSB SERRS .. 9,I NO
0485 32201 060564
LDA. OfOP
RECORD
STA SBPTR,I
0 4 86 32292 171572
'OF' ANO
- JS8 SBPUD
0487 32203 015210
ADVANCE POINTER
0488 32204 015464 GOr02 JaB BlDIN
DEMAND A SEQUE~CE NUMBER
0489 32205 175572
STB sapTR,I
RECORD IT
0490 32206 015270
JSB SBPUD
COHMANEXT?
0491 32201 050433
CPA ,+44
0492 32210 026204
JMP GOT02
YES
JMP fOST
0493 32211 026037
NO, DEMAND ENO OF STATEMENT
0494 32212 050314 GOT03 CPA .+15B
END OF STATEMENT?
8495 32213 026217
JMP GOT04
YES
04 9 6 32214 071420
STA GFLAG
NO, RE.E~ABLE BAD INTfGER ERROR
0497 32215 ~64J5~
LOB .... 2
*.
••
••
PAGE
0498
0499
1580
0501
8502
0503
0504
~~37
N~3
STATEMENT
060220
064255
016004
130001
114136
124620
PROC~SSORS
JMP GOlDI
32216 026154
.32217
32220
32221
32222
32223
32224
~YNTAX
GOT04
LOA FBP
L08 MAIN
INB
lOR 1 , 1
JSB S14se,1
.JMP AceSA,1
950b.
fREE
SAVED
BUfFER SPACE
ACCEPT STATEMENT
••
0506 •••
0507 •• SYNTAX .*
0508 •••
0509.
lSI SBPTR
0510 32225 035572 IFS
0511 32226 015446
JSB GETeR
••
32227
32230
32231
322·32
32233
115072
171572
JSB
STA
063451
007400
015246
32234 026240
LDA
32235
32236
32231
3.2240
015502
115073
026265
0523
0524
0525
32242
0526
32245
045572
075572
\'1710453
015230
0521
0528
0529
32246
32247
32250
32251
0512
0513
0514
0515
0516
0517
0518
0519
0520
1521
0522
~530
0531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
05446
0547
015450
32241 007400
32243
32244
037453
026265
071612
06 4354
32252 17 1 572
32253 063736
32254 015246
3 2 255
0020~1
32256 A26264
3 22 57 061612
32260 064353
32261 015272
32262 033431
32263 115053
32264 015332
32265 171572
32266 035402
32267 060626
32270 007400
32271 015246
32272 115045
32273 015244
32274 026037
0548
0549
0550.
0551.·.
0552 ••
0553 •••
eca
JSB
JMp
JSB
JSB
JMP
JSB
eee
fElCH NEXi
CHARACTER
SERRS+31,! NONE FOUND
SBPTR,I
FOUND, SAVE IT
AENO
LOOK
FOR
TBSRH
'END'
IF0
NoT FOUND
FILRF
FOUND, GET FILE REFERENCE
SERRS+32,I NONE FOUND
IF1+1
fOUND
BCKSP
RESTORE
ADa SBpTR
STe sePTR
5T8
JsB
ISl
JHP
STA
LDB
STA
LDA
JSB
RSS
JMP
LOA
LDB
JSB
OEF
JSB
JSB
5TA
lSI
LDA
ece
JSB
JSB
JSB
JMP
SYNTAX
TO
ENTRY
STATUS
SFLAG
ENABLE STRING VARIABLE
sEEK DECIsION FORMULA
FsC
SFLAG
STRING VARIABLE FOUND?
NO
Ift.t
TEMp.1
yEs, SAvE NEXT CHARACTER
1 .. 3
MAXCR • 3 FROM FSC
SBPTR,1
MULTICHARACTER
MCREL
RELATIONAL
TBSHH
OPERATOR.,
NO
IF1
YES
TEMP+l
RETRIEVE CHARACTER
.~4
SINGLE CHARACTER
SYMCK
RELATIONAL
RELOS.l
nPERATOR1
SERRS+16,I NO
RSTOP
yES, RECORD A STRING OPERAND
SBPTR,I
sAvE NEXT CHARACTER
MAXCR
BUMP LIMIT TO FOUR CHARACTERS
ATHEN
LOOK
FOR
TBSRH
'THEN'
SERRS+10,1 NOT FOUND
PRGIN
DEMAND A SEQUENCE NUM8ER
EOST
DEMAND END OF STATEMENT
••
••
••
PAGE 0038 #03
STATEMENT SYNTAX PROCESSORS
0554*
0555 32275 015240
0556
0557
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568
e569
0570
0571
0572
0573
0574
0575
0576
0577
0578
6579
058ra
05 8 1
0582
0583
32276 000000
32277 115043
32300 001'00
32301 015272
32302
32303
32304
32305
033415
115036
015230
001727
32306 011612
32307 015446
32310 115046
32311 031612
32312 053316
32313 002001
32314 115046
32315 063740
32316 171572
32317 015230
32320 050374
32321 124620
32322 111572
32323 035402
3232" 063461
32325 007400
32326 015246
32327 11 5 047
3233~ 015230
32331 026037
FORS
JSB VAROP
SEEK A SIMPLE VARIABLE
NOP
NONE
JSB SERRS+8,I
'OUND
eca
DEMAND AN
JSB SYMCK
ASSIGNMENT
OfF ASSOP-l
OPERATOR
JSB SERRS+3,I NOT FOUND
JS8 FSC
RECORD INITIALIZATION FORMULA
ALF,ALF
00
NEXT
STA TEMP"l
TWO
JSB GETeR
JSB SERRS+l1,I
CHARACTERS
lOR TEMP.!
FORM
CPA TO
'TO' '1
RSS
YES
JSB SERRS.!1,l NO
LOA TOOP
RECORD
STA SBPTR,I
'TO'
JSB FSC
RECORD LIMIT FORMULA
END OF STATEMENT?
CPA ".+158
JMP AceSA,I
YES
STA SBPTR,I
NO, IS NEXT
tSz MAXCR
LOA ASTEP
SYMBOL
eCB
JSB TBSRH
'STEP' 1
JSB SERRS+t2,I NO
JS8 FSt
YES, RECORD STEP SIZE
JMP EOST
DEMAND END OF STATEMENT
8584.
0585***
0586** SyNTAX
0587 •• *
11588.
0589 32332 015240
0590 32333 000000
0591 32334 115043
0592 32335 026037
0593.
••••
••
NEXTS JSe VAROP
SEEK SIMPLE VARIABLE
NOT
NOP
JSB SERRS+8,1
FOUND
JMP EaST
DEMAND END OF STATEMENT
••
0594.*.
0595*. , cEND STATEMENT>, ••
0596**
AND eSTOP STATEMENT> SYNTAX
*.
0591***
0598.
RECORD NULL OPERAND
0599 32336 035572 ENDS ISZ SBPTR
JSB GETeR
END Of STATEMENT?
0600 32337 015446
0601 32340 124620
JMP AceSA,I
YES
JSB SERRS+4,'1 NO
0602 32341 115037
.*
*.
0603.
0604***
0605** SyNTAX ••
0606***
*~
0607*
0608 32342 ~15270 DATAS JSB SBPUO
0609
32343 00 2 400
(LA
INITIALlZE
PAGE 0039 #03
0610
0611
0 6 12
0613
0614
0615
0616
0617
0618
0619
0620
0 6 21
0622
0623
0624
0625
0626
0627
0 6 28
0629
0630
0631
0632
06 33
0634
0635
0636
0637
0638
0639
06421
STATEMENT SYNTAX PROCESSORS
32344 071266
32345 015446
32346 115050
32347 006404
32350 05".32
3235"1 026400
32352 007400
32353 050434
32354 026400
32355 01 5 2 76
32356 026373
32357
32360
32361
32362
32363
32364
115051
064354
045572
160001
031027
170001
32365 061612
32366 00 14 00
32367 015212
32370 033363
32371
CLB,INB
CPA .+43
'+'
cta
COMMA
?
yES
JMP DATA4
eeB
NO
CPA ,+45
' . ' '1
JMP DATA4
YES
NO, NUMBER?
DATAl JSB NUMCK
JMP DATAl
NO
JSB SERRS+14,I BAD EXPONENT
LOB .-3
NUMBER,
AOB sBpTR
MARK
LDA 1,1
PREVIOUS
lOR FLGST
OPERATOR AS
srA 1,1
'NUMBER FOLLOWS'
l.OA TEMP+1
RETRIEvE FOLLOwING CHARACTER
DATA2
JS8 SYMCK
OEF COMMA.t
JMP EOST
JMP DATAS
026~37
32372 026342
3237 3 0552 66
32374 002001
32315 115052
32376 015334
32377 026366
32400 075266
32401 015446
32402 115052
32403 026355
0641
0642.
0643* ••
0644*.
0645***
0646*
0 6 47 3240 4
0648 32405
0649
32406
0650 324 0 7
0651 3241'='
0652 32411
0653 32412
0654 32413
5TA SIGN
SIGN
JSS GETeR
REQUEST A CHARACT~R
JS8 SERRS+13,1 END.Of.INPUT CONDITION
DAlA3 cpa
RSS
.JS8
NEXT?
NO, DEMAND END OF STATEMENT
YES
SIGN
SIGN fOUND? ( CB) • 0 )
NO
SERRS+15,I YES
GETST
DEMAND A STRING CONSTANT
JSB
JMP DATA2
STe SIGN
RECORD SIGN
JSB GETeR
JSB SERRS+15,I ENO.OF@lNPUT CONDITION
JMP DATAl
••
*.
015500
026413
~50374
124 6 2 121
050454
026414
115041
~15450
READS
*.
RECRF
JMP READt
CpA ,+158
JMP Aces., I
CPA 873
JMP INPTS
JSB sERRS.6,I
JSB BCKSP
~JSB
READ FROM FILE?
NO
yES,
YES
NO, , J' ?
YES
NO
PAGE 0040 #03
STATEMENT SYNTAX PROCESSORS
0656.
0651* ••
0658** SYNTAX
0659.*.
0660*
0661 32414
0662 32415
066 3 32416
0664 32411
0665 32420
0666 32421
0 66 7 32422
0668 32423
0669 32424
0670 32425
0671*
0672***
0673**
0674*·.
121675.
06 7 6 32426
0617 32427
121678 32430
0679 32431
0680 32432
1216 a 1 32433
0682 32434
32435
0 6 83
0684 32436
0685 32437
9686 32440
0687 32441
0688 32442
121689 32443
0690 32444
0691 32 445
0692 32446
0693 32441
0694 32450
0 6 95 32451
0696 32452
06 97 32453
0698 32454
0699 324155
0700 32456
0701 32451
0702 32460
0703 32461
070~
32462
0705 32463
0706 32464
0707 32465
0708 32466
0709 32467
0710 32470
0711 32471
065572
077453
015240
115054
00000'-'
007400
••
••
••
INPTS LOB SBPTR
ENABLE STRING
STB SFLAG
VARIABLE
Jsa VAROP
SEEK VARIABLE OPERAND
JSB SERRS+17,I NONE FOUND
NOP
eee
Jsa
0152]2
033363
OfF' COMMA-1
~26037
~26414
JMP INPTS
.JMP
SYMCK
EOST
COMMA?
NO, DEMAND END OF STATEMENT
YES
••
**
••
0152,0
~15446
124620
015544
026460
0503'4
1246;?0
007 4 00
015272
033365
115075
015270
015446
115041
171572
015546
026451
071453
015230
0 5 0374
12462((}
007 4 00
015272
033363
PRINS JSB
JSB
JHP
JSB
JMp
CPA
JMP
eea
JSB
OEF
JSB
PRN10 JSB
JaB
JSB
STA
JSB
JMP
SSPUD
GETeR
ACCSA,I
USTCK
PRN01
.+158
AceSA,I
SYMCK
fOLLOWS?
SEMI-1
SERRS+34,I NO
SBPUD
GETeR
ADVANCE SYNTAX BUFFER POINTER
FETCH NEXT CHARACTER
SERRS+6,I NONE FOUND
SBPTR,I
SAVE CHARACTER
PFSRH
SEARCH FOR PRINT FUNCTION
PRN11
FOUND
ST8 SFLAG
JSB FSC
PRNlt CPA ,+158
JMP ACCSA,l
eea
ADVANCE SYNTAX SUFFER POINTER
fETCH NEXT CHARACTER
NONE fOUND
CHECK FOR USING STATEMENT
NONE fOUND
ENO OF STATEMENT?
YES
NO,
SEMI.COLON
SYMCK
ENABLE STRING VARIABLE
LOOK FOR FORMULA
CARRIAGE RETURN
YES
NO,
026441
015500
026471
JSB
DEF
JSB
JMP
JSB
JMP
COMMA.1
SERRS+6,I
PRN10
RECRF
PRIN0-t
007400
075502
050374
124620
050454
026472
8T8
FILRF
CpA
JMP
CPA
JMP
.+158
NULL. WRITE?
AceSA,I
YES
873
NO,
115041'
eee
COMMA?
NO, ERROR
YES
WRITE ONTO FIL.E?
NO
YES, SfT
'FILE' FLAG
YES
PRIN3
SERRS+6,I NO
115041
Jse
01545~
JSB BCKSP
'I'
?
FOLLO~S?
PAGE 0041 #03
0712
0713
0714
0715
a716
0117
0718
0719
0720
0721
0722
0723
0724
0725
0 7 26
0727
0728
0729
0730
0731
07 3 2
0733
073.
0735
0736
0737
0738
0739
0740
0741
0742
0743
0744
0745
0746
0747
0748
0749
0750
,,751
0752
0753
0754
0755
0756
0 7 57
0758
0759
0760
0761
0762
0763*
32412
32473
32474
32475
32416
32477
32500
32501
32502
32503
32504
32505
32 506
32507
32510
32511
32512
32513
32514
STATEMENT SYNTAX PROCeSSORS
015270
015446
026552
0e74A~
075617
05 0 421
002001
026520
()I15334
050374
i24620
007400
075617
050421
026502
064355
015272
033363
006401
32515 026472
32 5 1 6
32517
32520
32521
32522
32523
32524
32525
32526
32527
32530
32531
32532
32533
32534
32535
32536
32537
32540
32541
32542
32543
32544
32545
32546
32547
32550
32551
32552
32553
32554
17557 2
015270
035617
115041
171572
007400
035502
026536
075502
PRIN0 JSB SBPUD
JaB GETeR
JMP PRIN7
eea
srB pFLAG
CPA ,+428
RSS
JMP
PRINt JSB
CPA
JMP
cee
5T8
PRIN2 CPA
PRIN3
GETST
.+158
ACCSA,I
PFLAG
.+428
.1MP PRINt
LOB ,-2
JSB SYHCK
OfF COMMA.l
CL8,RSS
.JMP PRINe
STB
JSB
PRIN3 ISZ
JSB
STA
eCB
ISZ
JMP
STB
LOA
JSB
JMP
JSB
JSB
JMP
015546
026547
026545
015450
PRIN5 .JSB
007 4~HJ
045572
075572
077453
015230
050374
eCB
ADS
015246
026541
015270
015446
124620
0265~7
124620
026507
0355~2
124620
115030
8TB
PRINS 8T8
JSB
PRIN6 CPA
JMP
.JMP
PRIN7 ISZ
JMP
.J5B
" 1
yES
NO
RECORD A STRING CONSTANT
END OF STATEMENT?
YES
NO
" ?
YES
NO
COMMA OR
SEMICOLON1
NO
YES
ZERO NEXT WORD
SBPTR,I
SBPUD
PFlAG
FORMULA OR TAB PERMITTED?
sERRS+6,I NO
yES
SBpTR,I
FILRF
PRIN4
FILRF
AEND
TaSRH
PRINe
SBpuD
GETeR
AceSA,I
.JMP PRIN2
PRIN4 JaB pFSRH
JMP PRIN6
JMP PRIN8
063451
ADVANCE SYNTAX BUFFER POINTER
MORE STATEMENT?
NO
YES, ENABL.E
FORMULA AND TAB
'FIL.E'
MODE?
NO
YES, SET FLAG AGAIN
'END'
NO
?
yEs
FETCH NEXT
CHARACTER
sEARCH FOR PRINT FUNCTION
FOUND
NOT FOUND
RCKSP
BACKUP
TO POINT
SBPTR
FOLLOWING
SBPTR
LAST OPERATOR
Sf LAG
ENASLE STRING VARIABLE
fSC
RECORD FORMULA
.+158
ENO OF STATEMlNT1
AceSA,l
YES
PRIN2
NO
FILRF
'fILE' MODE?
ACCS~,I
NO
YES
SERRS ... 2, I
PAGE 0042
#~4
STATEMENT SYNTAX PROCESSORS
0002.
0003***
0004**
0005***
0006*
0007 32555
0008 32556
0009 32557
0010 32560
0011 32561
0012 32562
0013 32 56 3
0014 32564
0015 32565
0016 32566
.*
*.
.*
015256
115055
"-115266
026677
035572
001727
"'31612
171572
f{!60364
011402
0017
32567 063443
"018
0019
32570 064354
32571 015246
32572 115055
32573 050574
32514 e26621
32575 053741
325 16 0 2 66 05
32577 015500
0020
0021
0022
0023
0024
0025
0026
0~27
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
012149
0050
rd051
0052
0053
0054
0055
0056
\ij057
32600 12126604
32601 050454
32602 026605
32603 115041
32604 015450
3 2 6 0 5 0 02 4 0 4
32606 073445
32607 015242
32 610 ~15232
3 2 611 000000
32612 050374
32613 124620
32614 007400
32615 015272
32616 033363
32617 115041
32620 026607
32621 015270
32622 015446
32623 115041
32624 015544
32625 026652
32626 050374
32627 124620
32630 007400
32631 015272
3263? 033365
32633 115075
32634 015270
32635 015446
32636 i15041
32637 171572
JSB LTR
fIRSl TWO
JSB SERRS+t8,I CHARACTERS
JSB LETCK
LETTERS?
JMP MATS3
NO
lSZ SBPTR
YES,
AlF,ALF
RETRIEVE
lOR TEMP+1
FIRST CHARACTER
STA SBPTR,I
LOOK
LDA .+5
FOR
STA ~AXCR
'INPUT',
LOA MATIO
,READt,
LOB ,-3
OR
JSB TSSRH
'PRINT'
JSB SERRS+18,1 NONE FOUND
CPA PRTOP
IS IT 'PRINT'?
JMP MATS2
YES
CPA INPOP
NO, 'INPUT' '1
JMP MATSt.2
YES
JSB RECRF
NO, READ FROM FILE?
.J MP MAT S 1-3
NO
CPA 873
YES, t,' ?
JMP MATSt.2
yES
JSB SERRS+6,I NO
JSB BCKSP
CL.A,INA
TURN ON
srA DFLAG
'MATRIX SUBSCRIPT' MoDE
MATS1 JSB ARRID
RECORD AN ARRAY
JSB SBSCK
RECORD SUBSCRIPT
NOP
IF PRESENT
END Of STATEMENT?
CPA .+158
.}MP AceSA, I
YES
CCB
NO, DEMAND
.JSB SYMCK
COMMA
DfF COMMAfI!Il
.JSB SERRS+6,I NOT FOUND
JHp MATS1
MATS2 JSB 5BpUD
ADVANCE SYNTAX BUfFER poINTER
JSB GETeR
FETC~ NEXT CHARACTER
JSB SERRS+6,I NONE FOUND
JSB USTCK
CHECK fOR USING STATEMENT
JHP MAT13
NONE FOUND
cP~ ,+158
CARRIAGE RETURN 1
JMP ACCSA,I
YES
MATS
eea
sEMI ..
SYMCK
COLON
FOLLOWS?
SEMI-1
SERRS+34,1 NO
SBPUD
ADVANCE SYNTAX BUFFER POINTER
GETC~
fETCH NEXT CHARACTER
.1S8 SERRS+6,l NONE FOUND
STA SBPTR,I
SAVE CHARACTER
JSe
DEF
JSB
MAT12 JSB
JaB
PAGE
0058
121059
012160
0061
0062
0063
9064
1a065
·0066
0067
0068
0069
0070
0071
0072
0013
0014
0075
0076
0077
0078
121079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
21090
0091
0092
0093
0094
0095
0096
121097
0098
9099
0100
0101
~~43
32640
32641
32642
32643
32644
32645
32646
32647
32650
32651
32652
32653
32654
#04
STATEMENT SYNTAX PRUCESSORS
015546
002001
015242
050314
124620
007400
015272
033363
115041
026634
015500
026611
050454
32655 007401
32656 115041
32657
32 660
32661
32662
32663
075502
01 5 2 4 2
050314
124620
064355
32664 015272
033363
32665
32666
32667
32670
32671
32612
32673
32674
32675
32676
32677
32700
32701
32102
32703
32104
32105
115041
015446
026673
015450
026660
015270
035502
1246210
115035
065572
077457
06161~
171615
064435
015260
061613
3271216 001400
32707 015272
32710 ",33415
32711 115036
32112 015256
32713 026763
0102
32]14 015266
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
32715
32116
32717
32720
32721
32722
32723
026773
32724
~15246
035572
001727
~31612
171572
063442
064352
32725 115042
32726 001727
32727 A01723
JSB PFSRH
RSS
JSB ARRIO
CPA ,+1158
JHP AceSA,I
eee
JSB
DEF
JSB
JHp
MAi13 jSB
JMP
SYMCK
COMMA_1
SERRS+6,I
MAT12
RECRF
MATlt
CPA.B73
SEARCH FOR PRINT FUNCTION
FOUND
RECORD AN ARRAY
CARRIAGE RETURN FOLLOWS?
YES
NO,
COMMA?
NO, ERROR
yEs
WRliE ON FIL.E1
NO
CCB,RSS
YES,
yES
,JSB sERRS+6, 1
NO
STs FILRF
MATti'! JSB ARRID
CPA .... 158
.1 MPAC C5 A, I
LOB .-2
JSB SYMCK
OEF COMMA.1
JSB SERR8+6,I
JaB GETeR
JMP .+3
MATt1 JSB BCKSP
',- 'I
NOTE 'FILE' MODE
RECORD AN ARRAY
END OF STATEMENT?
YES
NO, DEMANO
COMMA OR
SEMICOLON
NOT FOUND
END OF STATEMENT?
YES
NO
.JMP MAT10
JSB SBPUO
ISZ FILRF
JMP AceSA,I
UPDATE POINTER
'FILE' MODE?
NO
.J8B SERRS+2, 1
MATS3 LOB
STa
LOA
STA
SBPTR
ARYAD
TEMP+1
SSlAK,I
LDB ,+46
JS8 STROP
LDA TEMp+2
eee
JSB SYMCK
OEF ASSOP .. 1
JSB SERRS+3,I
JSB LTR
.JMP MATS5
JSB LETCK
JMP MATse
lSZ SBPTR
ALF,AlF
lOR TE.MP.1
STA sBpTR,I
LOA MATFN
yEs
SAVE ADDRESS
OF ARRAY OPERAND
RECORD
ANO SAVE
THE ARRAY
IDENTIFIER
RETRIEVE
NEXT CHARACTER
AND TEST FOR
ASSIGNMENT OPERATOR
NOT FOUND
LETTER NEXT?
NO
YES, ANOTHER LETTER7
NO
YES,
CONCATENATE
LETTERS
AND
SEARCH FOR
AN ARRAY
JSB TBSRH
FUNCTION
,JS8 sERRS+7, I NONE FOUND
ALF,AlF
fOUND,
ALF,RAR
CONVERT
Lea ,-5
PAGE A044
0114
0115
0116
011}
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
01 3 0
0131
0132
0133
0134
0135
0136
0137
013a
0139
0140
0141
0142
0143
0144
0145
0146
32730
32731
32732
32733
32734
32735
32736
32737
32740
32741
32742
32743
32744
32745
32746
32747
32750
32 75 1
32752
32753
32754
32755
32756
32757
32760
32761
32762
32763
32764
32765
32766
32767
32770
32771
32172
#~4
STATEMENT SYNTAX PROCESSORS
030572
2107400
045572
1300~1
170001
011(J504
043744
002021
026750
~15446
124620
006404
077445
015232
115040
026037
00212103
17 1 615
015446
115061
015252
015242
015254
065612
155615
115PJ56
026037
015450
015250
007400
015272
033423
lOR
eea
AOB
lOR
STA
AND
PDFFL
saPTR
1,1
1,1
8777
ADA 0577
TO OPERAND
COMBINE
WITH
OPERATOR
AND RECORD
'INV'
OR
SSA,RSS
JHP MATS4
JSB GETeR
JHP ACeSA,!
CLB,INR
'TRN' 7
YES
NO, END OF STATEMENT?
YES
NO, TURN ON
STB DFLAG
'MATRIX SUBSCRIPT' MODE
JSB saseK
DEMAND SUBSCRIPT
JSB SERRS+5,I NONE FOUND
JMp EOST
DEMAND ENO OF STATEMENT
MATS4 SZA,RSS
ALLOW INVERSION
sTA SSTAK,I
INTO SELF
JSB GETeR
DEMAND
JSB sERRS+22'I LEFT
JSB LPCK
PARENTHESIS
JSB ARRID
DEMAND ARRAY
JSB RPCK
DEMAND RIGHT PARENTHESIS
LOB rEMP.l
sAME SOURCE AND
CPB SSTAK,I
DESTINATION ARRAYS?
JSB SERRS+19,I YES
JMp EaST
NO, DEMAND END OF STATMENT
MATS5 JSB BCKSP
BACK UP ANO
JSB GETPF
DEMAND PARENTHESIZED FORMULA
cee
SEEK
JSB SYMCt<
OEF TIMES.1
'*'
sERR8+20,1 NOT FOUND
ARRID
DEMAND ARRAY
EOST
DEMAND END OF STATEMENT
TEMP+l
RECORD
,+46
ARRAY
STROP
OPERAND
TEMp+2
END Of
,+15B
STATEMENT?
AceSA,l
YES
,-3
NO, SEEK
SYMeK
'.', ,_I,
PLUS-l
OR '.'
SERRS+21,I NOT FOUND
SET
FLAG TO FALSE
MULOP
'*' ?
MATS9
yEs
pFlAG
NO
ARRID
DEMAND ARRAY
7EMP+2
SAVE CHARACTER
0153
0154
0155
115057
015242
Ql26037
32113 061612
32774 064435
32775 015260
32776 061613
32777 050374
33000 124620
33001 064354
JSB
JSB
JMP
MATS6 LOA
LDB
JSB
LOA
CPA
JMP
0156
33002 01~272
0157
33003 033417
33004 115060
JSB
OEF
JSB
CLB
CPA
JMp
MATS7 STB
JSB
STA
ISl pF~AG
'*' ?
JMP MATsa
NO
LeA TEMP~l
VESt DOES ARRAy
~PA SSTAK,I
MATC~ LEFT-HAND sIDE?
JSB SERRS+19,1 YES
0147
0148
0149
0150
0151
0152
0158
0159
0160
0161
0162
0163
0164
33005 006400
3300';
33007
33010
33011
33012
0165
33013
0166
33014
0167
33015
33016
33017
0168
0169
050560
027022
075617
015242
07161J
035617
027020
061612
151615
115056
L08
'*'
PAGE
0170
0171
0172
0173
017 4
0175
0176
0Vl45 #04
3302~
S1 ATEME·NT
061613
33021 0260:57
33022 007400
33023 06 1 612
33"24 15 1 615
3302f) t 15056
33026 027010
SYNTAX PROCESSORS
MATS8 LOA TEMP .. 2
JMP EOST
MATS9
LOA Tt:MP+1
CPA 5STAK,I
NO, RETRIEVE CHARACTER
DEMAND END OF STATEMENT
SET '*' FLAG TO TRUE
DOES ARRAY
MATCH LEFT-HAND SIO~1
JMP MATS7
NO
eeB
.JS8 SERRS+1 9 ,1
PAGE 0046 #04
FORMULA SYNTAX CHECKER
0178.
0179 •••
0180 •• SyNTAX CHECKER
0181.·.
0182*
0183ft
0184.
01 85.
0186.
0187.
0188.
0189·
0190.
0191·
0192*
0193*
0194.
••
fSC ANALYZES THE INPUT STRING UNDER THE ASSUMPTION
THAT A LEGITIMATE FORMULA IS THERE. EXIT TO ERROR ON
UNRECOGNIZABLE OR OBVIOUSLY INCORRECT INpUT. ExIT TO
(P.l) WHEN CONTINUED INPUT CANNOT BE A PART Of THE
FORMULA AND THE INPUT SCANNED SO FAR FORMS A COMPLETE
FORMULA IN ITSELF CI.E" ••• A+B TO •• , EXITS AFTER
THE 'BI), ON EXIT (A) HOLDS THE FIRST CHARACTER NOT
PARSED INTO THE FORMULA, (8) • ~, AND SBPTR,l • ~
(ENO.OF.FORMULA OPERATOR), DURING THE FORMULA PARSE,
SSTAK,I HOLDS THE COUNT OF UNMATCHED LEFT PARENTHESES.
IF THE FIRST SYMBOL ENCOUNTERED IS A STRING VARIABLE,
EXIT TO ERROR IF IT IS NoT ENABLED ELSE RECORD THE
VARIABLE AND ANy FOLLO~ING SUBSCRIPT AND EXIT TO (P+l)
WITH THE NEXT CHARACTER IN (Al, (8) • ~1, AND SFLAG • -It
0195*
0196.
019 7 •
0198.
0199 33027 0024Qt0
0200 33030 171615
(21201
33PJ31 060362
0202 33032 071402
0203 33033 003400
0204 330134 013455
"020f)*
••
••
Cl.A
ST. SSTAK,l
LOA .+3
STA MAXCR
FSC1
ceA
STA UFLAG
••
SET LEFT PARENTHESIS
COUNT TO ZERO
SET MUlTICHARACTER SEARCH
TO MAXIMUM OF 3 CHAR4CTEAS
ENABLE
UNARY OPERATORS
••
•
0206 ••
0207.
SEeK VARIABLE OPERAND
0208 33035 015240 FSC2 .IS8 VAROP
JMP FSC7
fIRST CHARACTER NOT A LETTER
0209 33036 027142
JMP FSC1J-3
SUBSCRIPTED OR STRING VARIABLE
33037 021242
~210
JSB LETCK
SIMPLE VARIABLE, LETTER NEXT?
0211 33040 015266
JMP FSC13
NO
0212 33041 021245
0213.
0214 •• OoE.s 'AND', 'OR', 'MAX', OR 'MIN' FOLLOW
0215 ••
A SIMPLE VARIABLE?
0216.
0217 33042 064353
LOB .-4
33043 111572
~218
srA SBPTR,I sEARCH FOR
0219 33044 060720
LOA MCBOP
'AND', 'OR',
0220 3304b 015246
JSB TBSRH
'MAxt, AND 'MIN'
0221
33046 002001
RSS
NONE FOUND
.JMP FSC6
0222 33047 027137
FOUND
•
••
••
•
0223.
•
••
0224*. SEE IF OpERAND Is ~ FUNCTION RATHER
THAN A SIMPLE VARIABLE,
0225.·
0226*
LOA TEMP+2
0227 33050 06 1613
0228 33051 001727
AL.F1ALF
WERE
0229 33052 ~31612
lOR TEMP+1
TWO LETTERS
CPA FN
0230 33053 053375
'FN' 1
JMP FSC4
0231
33054 ~27104
YES
0232 33055 171572
STA S8PTR,I
NO,
0233 33056 060730
LOA POFNS
F~EDEF1NE;J
••
•
PAGE 0047 #04
FORMULA SyNTAX CHECK£R
0234
0235
33057 064340
33~6~ 015246
0236
33",61 ~272r;!2
33062 001727
0237
0238
33~H;3
001723
"30572
071612
007400
045572
015572
LOB ,-15
JSB TBSRH
JHP fSC!l
ALF,ALF
ALF,RAR
lOR PDFFL
STA TEMP"'!
0239
024 0
0241
1tl242
0243
0244
3306 4
33071
16~HH::J 1
0245
0246
0247
0248
0249
0250
LDA t,I
33072
33073
33074
33075
33076
33017
33100
33101
010570
031612
171572
AND OPMSK
331~2
~15250
02~1
0252
0253
0254
0255
1t1256
0257
0258
0259
0260
0261
0262
0263
~264
0265
02 66
02"67
0268
0269
0270
33"'65
33066
33067
33070
33103
33104
33105
33106
33107
33110
FSC3
eca
ADB SBPTR
STB SBPTR
lOR TEMP+l
STA SBpTR,!
LOA TEMP+1
~61612
NO
YES,
BUILD
NAME
SAVE FUNCTION
RETRIEvE
PREVIOUS
OPERATOROPERAND
REPLACE
OPERAND
wITH FUNCTION
053737
CPA LENCN
'LEN' ?
027114
JMP FSC0
YES
064346
077447
LOB •• 9
NO, TURN OFF
'MULTIpLE STORE' MODE
021245
015446
115042
015266
115042
040320
33111 0017ltH3
33112 040376
33113 027065
33114 ~35572
33115 015446
33116 115061
33117 015252
33120 A15256
33121 115063
33122 050423
33123 002001
33124 115063
33125 061612
33126 06 4432
FSC4
STB
JSB
JMP
JSB
JsB
JS8
.JSB
ADA
ALF
FSC0
MSFLG
GETPF
FSC13
GETeR
SERRS+7'I
lETCK
SERRS ... 7,1
D100
ADA .+176
JMP FSCJ
ISZ S~PTR
·JsB GETCR
JSB
JSB
JSB
JSB
CPA
RSS
JSB
LOA
LOB
JSB
SERHS+22,I
LPCK
DEMAND PARENTHSIZED
FORMULA
DOES
LETTER
NO
YES,
FOLLOW?
BUILD
FUNCTION
NAME
MOVE TO CORRECT PROGRAM WORD
RECORD
LEFT
PARENTHESIS
LTR
LETTER NEXT?
sERRS+24,1 NO
.+44B
YES, FOLLOWED BY'S' 1
yEs
SERRS+24,1 NO
0271
0272
TEMp+l
RECORD
0273
,+538
STRING
STROP
VARIABLE
0274 33127 ~15260
0275 33130 015446
JSB GETCR
RECORD
0276 33131 115062
JSB SERHS+23,I RIGHT
0277 33132 015254
JSB RPCK
PARENTHESIS
,JMP FSC8
0278 33t33 ~27162
0279.
•
0280 •• CHfCK FOR LEFT PARENTHESIS .*
0281*
• RECORD
0282 33134 ~60556 FSC~ LOA LPOP
'=1283 33135 171572
A '( t
STA SBpTR"I
0284 33136 135615
18l SSTAK,I
COUNT IT
0285 33137 c;,64346 FSC6 LOB .-g
TURN OFF
0286
33140 '1177447
5TB MSFLG
'MULTIPLE SlORE'
,.IMP FSC 1
0287 33141 027~33
MODE
~28H
33142 015270 FSC7 .IS 8 SBPUD
UPDATe POINTER
, (' ?
0289 33143 050427
CPA .+4~
PAGE V1(J148
#~4
CHt:.CK~.R
FORMULA SYNTAX
0290
3~i144
~21134
.JMP FSC5
0291
33145 053745
33146 027134
CPA 8133
yES
NO,
JMP FSC5
YES
0292
,t, "
0293*
*
0294.* CHECK FOR A NUMBER ••
121295*
CL.8
0296 33147 0064~0
SET ' . '
STB SIGN
AS SIGN
0297 33150 075266
0298 33151 015276
SEEK A NUMBER
JSB NUMCK
JHP FSC9
NOT FOUND
0299 33152 027165
03100 33i53 115051
JSB SERHS+14,I BAD EXPONENT
LDB SBpTR
RETRIEVE
0301 33154 065512
0302 33155 Pl44354
ADS .-3
PRECEDING
1. DA 1,1
33156 160001
OPERATOR
~303
lOR FLGBT
SET FLAG TO SAY
0304 33157 031027
03215 3316171 110001
STA 1,1
NUMBER FOLLOWS
030 6 3316 1 "'6 1 612
RETRIEVE CHARACTER
LDA TEMP+1
0301 33162 p}64346 FSC8 LDB e-9
TURN OFF
STB MSFLG
'MULTIPLE STORE'
0308 33163 077447
030 9 33164 027245
JMP FSC1J
MODE
•
03121*
0311**
0312*
0313
0314
0315
0316
0317
0318
0319
0320
0321
0322
121323
0324
CHECK FOR A UNARY OPERATOR
33165
33166
33167
33170
33171
33112
33173
33174
33175
33176
33171
33200
037455
115064
061372
050432
027175
050434
027176
115064
067373
175572
064346
077447
027035
FSC9
037455
027276
FSC11
UNARY OPERATORS PERMITTED?
SERRS+25,1 NO
UNMNC
yES LOAD UNARY MINUS OPCODE
lSI UFLAG
JSB
LOB
CPA
JMP
CPA
JMP
JS8
*.•
*
+43
'+'
?
"
*+4
yES
.+45
NO, ,~, ?
*+3
yES
SERRS+25,I NO
UNPLC
CONVERT (8) TO UNARy
SBPTR,I
RECORD UNARY OPERATOR
.w9
TURN OFF
LOB
STB
FSC10 LOB
STB MSflG
.JMP FSC2
'MULTIpLE STORE'
HODE
0325 33201
0326*
0327.· CHECK POSSJ~ILITY OF 'NOT' RATHER THAN
0328 ••
A SIMPLE VARIABLE
0329*
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
~34B
0341
0342
0343
03 44
0345
33202
33203
33204
33205
332 0 6
33207
33210
33211
33212
33213
33214
33215
33216
33217
33220
161572
001727
1 7 1572
060622
001400
015246
021276
171572
007400
045572
1600"1
010570
170001
33221 e27177
lSZ UFLAG
JMP FSC14.t
LOA SBpTR,I
ALF,AL.F
STA SBPTR,I
LOA ANOT
eCB
JSB TBSRH
JMP FSc14_1
STA SBPTR,l
eeB
'NOT'
NO
yES
.*•
.*
•
PERMITTED?
SEEK
'NOT'
'NOT' NOT FOUND
FOUND
ERASE
A08 SBPTR
LOA
ANO
STA
.]MP
1,1
OPMSX
1,1
FSc10
SPURIOUS
OPERAND
I.'
OPCODE
PAGE
0049 #V14
FORMULA SYNTAX CHECKE:R
03 4 6*
0347*. CHECK FOR RIGHT pARENTHESIS
0348.
0349 33222 064355 f' SC 12 LOB ... 2
JSB SYMCK
0350 33223 015212
DEF RPARN-t
0351 33224 033377
JMP FSC14
0352 33225 027277
0353 33226 0606((H1
LOA RPOP
STA saPTR,I
°354 33 22 1 171572
LDA .+41
0355 33230 060430
eea
0 3 56 33231 007400
03 57 33232 145615
ADB SSTAK,l
SSB
0358 33233 006020
0359 33234 027277
JMP FSc14
0360 33235 175615
ST8 SSTAK,I
JSB SBPUD
0361 33236 015270
JsB GETeR
0362 33237 015446
JMP FSC14
~363
33240 027277 .
.JMP FSC13
0364 33241 027245
0365.
0366.· CHECK FOR A BINARY OPERATOR
0367*
eeB
0368 33242 007400
cpa SFLAG
0369 33243 057453
0370 33244 125230
JMP FSC,I
0371 33245 050374 FSc13 CPA .+15B
13372 33246 027277
.JMP FSC14
STA UFLAG
0373 33247 073455
STA TEMP.1
0374 33250 071612
0375 33251 064350
LOB ... 7
STA SBPTR,l
0316 33252- 171572
LOA MCBOP
0377 33253 060720
0378 33254 "15246
JsB TBSRH
RSS
1d379 33255 002001
JMP fSC6
0380 33256 "27137
LOA TEMP.., 1
0381 33257 061612
LOB MSFLG
0382 33260 067447
0383 33261 015272
JsB SYMCK
0384 33262 033417
DEF PI.US·l
.JMP ·+4
0385 33263 027267
CpA EXPOP
0386 33264 053742
JMP FSC10
0387 33265 027177
.IMP FSC6
0388 33266 027137
ece
0389 33267 0074",O
0390 33270 015272
JSB SYMCK
. 0391 33271 033415
DEF ASSOP",l
.JMP
F'SC12
13392 33272 027222
0393 33273 060355
LOA .... 2
0394 33274 073453
5TA SFL,AG
JMP FSCl
0395 33275 ~)27VJ33
••"
•
t ) ,
OR
•1 , 1
NO
YES,
RECORD
RETRIEVE
MATCHING
.,
f ) ,
)
LEFT
PARENTHESIS'
NO
YES
UPDATE POINTER
FETCH NEXT
CHARACTER
...
••
•
STRING VARIABLE
JUST FOUND?
yEs
NO, END OF STATEMENT?
yES
NO, DISABLE UNARy ·OPERATORS
SAVE CHARACTER
SEARCH
FOR A
MULTICHARACTER
BINARY OPERATOR
NONE FOUND
FOUND
NO, RECOVER A CHARACTER
SINGLE
CHARACTER
BINARy OPERATOR?
NO
YES,
YEs
,, '
?
NO
AssIGNMENT
OPERATOR?
NO
YES, SET FLAG
To SAy
STORE OCCURRED
PAGE:. 0050 tH~4
"'397.
FORMULA SYNT AX CHECKlR
END OF fORMULA
~398.*
0399.
0 4 00
0401
0402
0403
"'404
33276 061613
33277 00641Z1~
33300 175572
33301 155615
33302 1252J0
~405
33303 115062
•
••
•LOA
FSCi"4
TEMP+2
RETRIEVE CHARACTER
CLB
RECORD
STB SBPTR,I
END-OF-FORMULA
cpa SSTAK,I ALL LEFT PARENTHESES
JMP FSC,I
YES
JSB SERRS+23,I NO
••
••
0406 ••
0407 ••• SAVE LOCAL VARIABLEs OF Fst •••
0408 ••
0409*
0410* SAVING MSfLG, UFLAG, VARUP, GE:.TPF,
RE"ENTRANT SlJRROUTINE,
(d4 11 *
0412* STACK BELOW TH~ ACTIVE
0413* CONTAINS THE NUMBEH OF
1d414.
0415 33304 035 615 #FRCR ISZ
0416 33305 04 5615
ADe
eMS
~417
33306 0~7000
~418
33307 ~44716
ADB
SSB
0419 33310 0060210
0420 33311 115033
JSB
0421
33312 067447
LOB
0422 33313 175615
STB
0423
33314 035610
lSI
LOB
0424 33315 ~67455
0425 33316 175615
STB
(d426 33317 035615
ISZ
LOB
04 2 7 333 20 "'6524°
ST~
0428 33321 175615
0429 33322 035615
IsZ
0430 33323 065250
LOB
0431 33324 175615
ST8
0432 33325 035615
lSZ
LOB
0433 33326 065230
STa
0434 33327 175615
ISZ
0435 3333'" 035615
0436 33331 ~0340~
eeA
ADA
0437 33332 043453
STA
0438 33333 ~73453
0439 33334 125234
JMP
0440 ••
0441...
AND FSC MAKES FSC A
THEY ARE SAVED ON THE SYNTAX
SYNTAX BUFfER. ON ENTRY (8)
WORDS TO BE SAVED.
SSTAK
SSTAK
SPACE
LEFT?
SERRS,I
MSFL.G
SSlAK,I
SSTAK
UFLAG
SSTAKII
SSTAK
VAROP
SSTAK,I
SSTAK
GETPF
SSTAK,I
SSTAK
FSC
SSTAK,I
SSTAK
SFLAG
SFLAG
FRCUR,l
RESTORE fsC LOCAL VARIA8LES
0446
0447
0448
0449
0450
0451
0452
INVERSt OF FRCUR.
33335 07 1 6t2
33336 06~615
33337 044351
3334t11 0756\5
33341
0~)6004
33342 160001
33343 073447
f('
usER
0442*·
0443."
0444*
0445.
SAVE PREVIOUS
SUFFICIENT
NO
YES, SAVE
'MULTIPLE STORE'
FI.AG
SAVE
'UNARY OPERATOR'
fLAG
SAVE
VAROP
RETURN ADDREsS
SAVE
GETPF
RETURN ADDRESS
SAVE
FSC
RETURN ADDRESS
DISABLE
SFLAG
VALUl
.*
•••
••
CAl IS SAVED BUT (8) IS NOT,
#FPOP STA TEMP+l
LOB SSTAK
A08 .",6
STB SSTAK
INB
LDA 1 , I
srA HSFLG
SAVE (A)
RESET
SYNTAX STACK
POINTER
RESTORE
w~ULTIPLE STORE'
FLAG
COUNT
PAGE 0051 #04
0453
04 5 4
0455
0456
0457
3.5344
33345
33346
33347
33J5~
FORMULA SYNTAX CHECKER
INS
006id04
160001
073455
006004
160001
LOA 1,1
srA UFLAG
INB
LOA 1,1
33351 ",71240
33352 "'''6~''4
STA VAROP
0460
33353 104200
Dl.D 1,1
0461
33354 100001
33355 071250
33356 L1;523~
0458
0459
0462
0463
0464
33357 031453
0465
33361 125236
3336~
0467 ••
0468.*.
INB
STA
STB
lSl
LDA
.JMP
~61612
GETPF
FSC
SFLAG
TEMP.l
FPOP, I
RESTORE
'UNARY OPERATOR'
FLAG
RESTORE
VAROP
RETURN ADDRESS
RESTORE GETPF
RETURN ADDRESS AND
FSC RETURN ADDRESS
RESTORE SFLAG VALUE
RESTORE CA,
••
•••
••
SINGLE CHARACTER AND/OR FORMULA OPERATORS
0469*·
0470.
~471*
0472·
0473*
°474·
0475.
BITS 1589 OF TH[ OCTAL wORD ARE THE OPERATOR CODE.
BITS 3-0 ARE THE PRECEDENCE FOR FORMULA OPERATORS,
THE ASCII WORD IS USED TO RECOGNIZE THE OPERATOR ON
INPUT AND TO PROVIDE THE PRINT NAME ON OUTPUT. THE
ORDERING OF THE TABLE FACILITATES SEARCHING,
1a476*
0477 33362 0131000
0478
0479
0480
0481
0482
0483
0484
33363 021040
002P100
33364
33360
33366
33361
026040
003 000
035441()
3337Ei\ 004000
33371 02144 0
~50J
0505
~506
ASC
3~H~0
1, ,
SEMICOLON
~24440
1, )
11v.101
ASC 1 , ]
RIGHT BRACKET
OCT 12"'13
LEFT BRACKET
33407 024040
0504
OCT
RPAR N OCT lkJ0Bl
v;497
0498
3341!?J
SEMI
OF-
33402 011001
33403 056440
33404 012"'13
3340tl 055440
\1499
COMMA
ASC 1 , ,
Pllel001
01400~
0491
0492
0493
0494
0495
0496
0500
0501
0502
OCT 2000
~41506
33372 0150Pt0
33313
33314
33375
33316
33377
33400
33401
334~6
ASC 1 , "
COMMA
011000
047106
052117
\1485
0490
STRING DEL.IMITER
HATCH OCT 4"00
ASC 1'#
llNMNC nCT 15000
UNPLC OCT 14000
RBOP uCT 11000
FN
ASC 1,NF
TO
ASC 1,10
~486
0487
0488
0489
QUOTE OCT 1000
l' Of
Ase
oCr
L~RAC
ASC l ' [
~1301j
~14011
33411 02~440
33412 015011
33413 026440
33414 016"'02
3341~ 026 0 40
33416 017lJ~2
3341 7 03644 0
Ase
SCMMA
ASSOP
HATCH SIGN
RIGHT PARENTHEsIs
OCT 1 JfrlI13
ABC 1 , (
OCT 14011
UNARY PLUS
ASC 1, ...
OCT 15011
UNARY
ASC 1, •
OCT 160~2
SUBSCRIPT SEPARATOR
Ase t , ,
OCT 17"'02
Ase 1'=
LEFT PARENTHESIS
~INUS
ASSiGNMENT
GPE~ATOR
PAGE 0052
121507
0508
0509
0510
0511
1()512
0513
0514
ta515
0516
1'111';41"7
'1.1'" 1 ,
1lJ51 8
0519
121520
00 2 1
~522
0523
0524
~525
0526
0527
0528
0 5 29
~530
!a531
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
33420
33421
33422
33423
33424
33425
33426
33427
J343~
33431
33432
33433
33434
3343b
33436
33437
33440
33441
.~4
FORMULA SYNTAX CHECKER
02~007
025440
021007
,,)2644l!)
022010
025040
023010
027440
024012
rl5704t')
~~250Q15
037040
Vt26005
036040
027~05
021440
030005
03644121
3344t! ~53573
33443
33444
33445
33446
33447
33450
33451
33452
33453
33454
33455
33456
33457
053432
032004
000000
033003
3346~
el40~H~b
00000~
034006
053421
03500 6
~00000
036005
000000
Vl37~05
~000.00
33461 0535~2
33462 04t@11
PLUS
OCT 20007
ASC
OCT 21007
ABC 1, •
TIMES OCT 22010
ASC
1,*
OCT 23010
Ase 1,1
OCT 24012
ASC
RELOS OCT
Ase
OCT
ABC
OCT
ASC
OCT
ABC
MATfN DEF
MAllO OfF
25005
MULTIPLICATION
DIVISION
EXPONENTIATION
GREATER THAN
1, >
26005
1, <
LESS THAN
27005
UNEQUAL
1, #
30005
t,.
EQUAL
MATFS
10STS
OCT 32004
OCT 33003
MSFLG NQP
neT
OEF
OCT
SFLAG NOP
OCT
UFLAG NOP
OCT
ARVAD NOP
OCT
ASTEP OfF
OCT
SUBTRACTION
l,f
DF-LAG NOP
AENO
ADDITION
j , ..
34006
AND
OR
MINIMUM
EOFOP
3500 6
MAXIMUM
36005
UNEQuAL
37005
GREATER THAN OR EQUAL
40O",5
LESS TAAN OR EQUAl..
STEP
41011
NOT
PAGE 0053
0003 ••
0004 •••
klItH1S ••
1d006.
0007.
0008*
0009.
0010*
0011*
0012.,.
ee13*
0014.
001 5*
0016.,.
0017*
0018.0019*
0020.
\t)(d21.
0022*
0023·
0024.
0025.
#~5
SYNTAX SUBROUTINES
SUBSCRIpT SYNTAX
••
•••
••
saseK ASSUMES A PRIOR ARRAY OPERAND REfERENCED THROUGH
THE POINTER ARVAD. ENTRY IS MADt WITH A CHARACTER IN
(A)' EXIT TO (P+l) IF THIS CHARACTER IS NOT 1(' OR '[',
OTHERWISE ANALYZE THE SUBSCRIPT WHICH MUST FOLLOW,
EXITING TO (P+2), saSCK HANDLES sOTH SINGLE AND DOUBLE
SUBSCRIpTS. Ir DFLAG." THE SUBSCRIpT Is FROM A
AND THE SOUNDS MUST BE POSITIVE
INTEGERS. If OFLAG-t THE SU~SCRIPT RE.OIMENSIONS A
MATRIX AND A COMMA SEPARATES THE TWO BOUNDS OF A
DOUBLE SUBSCRIpT AND AN END-OF.FORMULA OPERATOR
. FOLLOWS THE LAST BOUND, OTHERWISE A 'SUBSCRIPT'
COMMA SEpARATEs THE TWo pARTS of A DOUBLE SUBSCRIpT
ANO NO END.OF .FORMULA OPERATOR APPEARS,.. IN ALL CASES,
THE ARRAY OPERAND IS HARKED AS ONE- OR TWO-DIMENSIONAL,
IF THE SUBSCRIPT BELONGS TO A STRING VARIABLE IN A
, IT MUST HAVE ONE AND ONLY ONE BOUND
CONSISTING OF A POSITIVE INTEGER NOT LARGER THAN 72.
IN THIS CASE ARYAD HOLDS A DUMMY POINTER SINCE STRING
VARIABLES ARE NOT MARKED WITH DIMENSIONALITY.
0026.
0027
33463 064355
0028
33464 015272
0029
33465 033403
0030
33466 125232
0031
0032
33467 035232
33470 163457
33411 0.&10355
0033
0034
0035
33472 173457
33473 060554
33474 171572
33475 037445
0036
0037
0038 33476 006404
0039 33477 051445
0040 . 33500 027514
0041
33501 064366
0042 335 02 015 234
0043 33503 065232
0044 33504 115615
0045 33505 035 6 15
0046 33506 067457
0047 33507 175615
0048 33510 035615
0049 33511 060346
0050 33512 073447
1d051
33513 015230
0052 33514 007400
0053 33515 045615
00b4
33516 075615
0055
0056
0rl51
0058
33517 164001
33520 077451
#SBCK
LOB
JSa
DEF
JMP
,-2
SYMCK
LBRAC.l
SaSeK,!
ISZ saseK
LDA ARYAD,l
ADA ,-2
STA ARYAD,I
LOA LBOP
STA S8PTR,I
ISZ DFl.AG
ClB,INB
Cp8 DFLAG
JMP SBses
LOB ,.7
JSB FRCUR
,( ,
OR
, [' 'I
NO. RETURN TO (P+1)
YES, SET RETURN TO (P.2)
SET
ARRAY TO
SINGLE DIMENSION
RECORD
, ['
BUMP MAGIC FLAG
DIM
STATEMENT?
YES
NO, SAVE FSC
LOCAL VARIABLES
LOB saseK
SAVE
LOA •• 9
SAVE ARRAY
REFERENCE
RESERvE SPACE FOR
TURN OFF 'STORE
A~LOWED' MoDE
DEMAND SUBSCRIPT
RESTORE
STB
ISZ
LOB
STB
ISZ
SSTAK,!
SSTAK
ARYAD
SSTAK,I
SSTAK
STA MSFLG
JSB FSC
ece
ADS SSTAK
5r8 SSTAK
LOB 1, I
3:;521 067445
STB ARVAD
LOB DFLAG
33522 (2154361
CpB .... 2
RETURN
ADDRESS
ARRAy
REFERENCE
'HATPIX SUBSCRIPT'
MODE?
'(I
COUNT
pAGE
~054
#05
SYNTAX SUBROUTINES
0059
33523 027567
~060
33524 001~"0
33525 015272
33526 033413
33e27 021537
0061
0062
0063
PH,J64
0066
0066
0067
0068
10069
0010
0071
0012
0013
0074
0075
0076
0077
0078
0079
0080
0081
0082
00 8 3
0084
0085
33!531 0064c;,4
33532 057445
33533 021536
33534 015230
33535
33536
33537
33540
33541
33542
33543
33544
33545
002PJ01
015244
007401d
041445
077445
0106
33602 027537
0090
0091
0092
009 3
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
.JMP SBSe]
JSB F'SC
...
eeB
ADB DFLAG
sre DFLAG
cPa .+1
YES
NO, SEEK
'SUBSCRIPT'
COMMA
NONE FOUNO
SET ARRAY AS DOUBLY.SUBSCRIPTED
DIM
STATEMENT?
YES
NO, DEMAND SECOND SUBSCRIPT
R~e
~
SHSC3 JSB PRGIN
05436'1
1fJ105
~086
ece
JSB SYMCK
DEF SCMMA_t
JMP SBSC3+1
ISZ ARYAD,I
CLa,IN8
cpa Of'LAG
33!S30 137457
015270
064355
015272
33546 033377
33547 115062
33550 063374
33551 171572
33552 015270
33553 015446
33554 rtJ000V10
3355b 00640'"
33556 ~57445
33557 12 5232
33560 007400
33561 ~45615
33562 075615
33563 165615
33564 015232
33565 015236
33566 125232
33567 007400
33570 015272
33571 033363
33572 027537
33573 027530
33574 015244
335 7 5 03 7 4 53
33576 027524
33577 044321
33600 006021
33601 115071
0087
ki088
0089
JMP SBSC4
SaSCl
JSB SBPUD
LOB
.-2
DEMAND SECOND BOUND
RESTORE
ORIGINAL
OFLAG vALUE
'MATRIX SUBSCRIPT' MODE?
YES
DEMAND
JSB 8YMCK
' )' OR
OfF RPARN.l
')
.}SB SERRS+23,I
NOT FOUND
LOA RBOP
RECORD
')
STA SBpTR,I
.JS8 S8PUO
UPDATE POINTER
JSB GETeR
FETCH NEXT
NOP
CHARACTER
DIM
CLB
STATEMENT1
cPa DFLAG
,JMP saseK, I
YES
,
,
eeB
AOB SSTAK
STB SSTAK
LOB SSTAK,I
8r8 SBSCK
.}S8 FPOP
JMP SBSCK,I
SBSC4
eeB
JSB SYMCK
DEF
NO,
RESTORE
THE
RETURN
ADDREsS
RESTORE FSC
LOCAL VARIABLES
COMMA?
COMMA .. t
JMP saSC3+!
NO
JMP SBSCt+4
YES
DEMAND DECLARED BoUND
sBst5 JSB PRGIN
STRING VARIABLE?
ISZ SFLAG
JMP SBSCI
NO
ADB M73
YES, DOES BOUND
SSB,RSS
EXCEED 121
YES
.18B SERRS+3t1, I
.1MP SBSC3+ 1
NO
PAGE 00b5
0108*.
0109*..
#~5
SYNTAX SUBROUTINES
RECORD ARRAY IDENTIFIER
**
•••
~110 ••
**
0111*
tdl12* ARRAY IDENT"IfIlR LEFT IN TEMp.1, ARRAy OpERAND ADDRESS
VJI1J* PUT IN ARYAD. EXIT WITH FOLLOWING CHARACTER IN TEMP.2
0114* AND IN CAl.
0115*
0116 33603 015256 .ARID JSB LTR
FETCH IDENTIFIER
f2J 11 7
33604 11 5'" 6 5
.J SB SERR 5 +2 6 , I
NONE FOUND
LOB ARRID
SET
0iio 33600 065242
~119
33606 075330
SlB STRID
EXIT
0120*.
••
0121...
1d122*.
RECORD STRING IDENTIFItR
•••
.*
0123.
STRING IDlNTIFIER LtFr IN TEMP+1, SFLAG SET TO -I,
ExIT wITH FOLLO~ING CHARACTER IN (A). EXIT TO ERROR
IF A STRING VARIABLE IS NOT PERMITTED IN THIS CONTEXT.
0124*
~125.
0126*
0127·
0128 33607 050423
0129 33610 027620
0130 33611 061572
0131 33612 073457
0132 33613 061612
111133 33614 (164435
0134 33615 015260
0135 33616 061613
0136 33617 125330
0137 33620 063453
0138 33621 051572
0139 33622 0034 0 1
0140 33623 115066
0141 33624 073453
0142 33625 061612
0143 33626 ~64432
0144
33621 015260
0145
33630 0616t5
0146
~147
0148
0149
33631 073457
33632 01 5 446
336 33 A000~0
33634 1253.30
015,,*·
0151*..
RECORD A STRING OP[RAND
0152 ••
0153*
0154.
0155*
0156*
••
••
*.*
DEMAND A STRING VARIABLE OR A STRING CONSTANT. ExIT
TO ERROR IF NEITHER IS FOUND, ELSE EXIT WITh THE NEXT
CHARACTER IN (Al,
0157.
0162
33635 06 1 572
33636 c;,73453
3363} 015 2 4 0
33640 ~27644
33641 037453
0163
33642 115067
0158
0159
0160
0161
#STRI CPA .+448
'S' ?
JMP STRI!
YES
LOA S~PTR
NO, SET POINTER TO
STA ARYAD
VARIABLE LOCATION
LOA TEMP+1
RECORD
LOB ,+568
ARRAY
JSB STROP
VARIABLE
LOA TEMP+2
RETRIEVE FOLLOwING
JMP STRID,I
CHARACTER
STRIl LOA SflAG
STRING VARIABLE
CPA SBPTR
PERMITTED?
CCA,RSS
YES
JSS SERRS+27,1 NO
STA SFLAG
SET FLAG TO 'STRING OCCURREDI
LDA TEMP+1
RECORD
LOB +538
STRING
JSB §TROP
VARIABLE
LOA SSTAK
SET POINTER TO DUMMy
STA ARYAD
VARIABLE LOCATION
JSB GETeR
FETCH
NOP
NEXT
.IMP 5TRID,I
CHARACTER
#RSTO LOA SBPTR
STA SFLAG
JSB VAROP
SEEK
STRING
OPERAND
,]MP RSTO~
1ST CHARACTER NOT A LETTER
S7RING V~RIABLE?
ISZ SFLAG
.J58 SERRS+28,I NO
PAGE 0056 #05
SYNTAX SUBROUTINES
0164
33643 125332
0165
0166
33644 015270
33645 015334
33646 125332
0167
JMP
RSTQl JSB
JSB
.}MP
RS10P,1
SBpUD
GETST
RSTOP, I
~16d**
0169***
0170.*
0171.
YES
DEMAND A
STRING
CONSTANT
FETCH A STRING CONSTANT
••
***
••
tXIT TO ERROR IF CAl # ., UPON ENTRY. ELSE SAVE CURRENT
BUFFf.R POINTER AND PACK THE INPUT STRING INTO THE BUFFER
FOLLOwING THE !NITIAL BUFFER WORD. EX!T TO ERROR IF NO
CLOSING " IS FOUND, RECORD THE OPENING " ALONG ~ITH A
COUNT OF THE STRING CHARACTERS AND EXIT WITH THE NEXT
CHARACTER IN (A), EXIT TO ERROR IF STRING EXCEEDS
72 CHARACTERS.
0172.
0173*
"'174;1;
0175*
0176*
0177*
0178.,.
~179.
"'6557 2
0187
336 4 7
33650
33651
33652
33653
33654
33655
33656
0188
33657 "41612
0180
0181
0182
0183
0184
0185
0186
0189 33660
0190 3366\
0191 33662
0192 33663
0193 33664
0194 33665
0195 33666
0196.*
0197***
0198**
0199*
"'774157
050421
006401
115067
015262
115070
063362
113457
043743
002021
115071
015446
000000
125334
#GTST
LDB SBPTR
SAVE SYNTAX
5T8 ARyAD
BUFFER POINTER
CPA ,+428
" 1
CLB,RSS
yES, SET (8) • 0
JSB SERRS+28,I NO
JSa ChRST
RECORD STRING CONSTANT
JSB SERRS+29,I NO CLOSING QUOTE
LOA QUOTE
RECORD CHARACTER COUNT
ADA TEMP+1
ALONG WITH
STA
ARYAD,!
OPENING QUOTE
ADA 01111
MORE THAN 72
SSA,RSS
CHARACTERS?
JSB SERRS+30,I YES
JSB G£rCR
NO, FETCH
NOP
NEXT
JMp GErST,I
CHARACTER
CHECK FOR USING STATEMENT
••
•••
**
SCAN THE INPUT STRING FOR A USING OPERATOR, IF NONE FOUND, EXIT
TO (P+l) WITH THE INPUT STRING AND SYNTAX HUFFER AS UPON ENTRY.
OTHERWISE, CHECK FOR A LEGAL OPERATOR FOLLOwING THE 'ualNCt ANO
0203. EXIT TO (P.2) AFTeR SAVING IT IN THE SYNTAX BUFFER, WITH (Al
C THE NEXT CHARACTER.
~204*
0205 33667 171572 . #USCK STA SBPTR,I
(A) I NEXT CHARACTER
LOA +5
5 CHARA.CTERS
0206 3367~ 060364
srA AAXCR
0207 33671 A11402
ALLOWED
0200*
0201*
0202*
0208
0209
0210
0211
",212
0213
0214
3367 2 007 4 00
eeB
l.OOK
33673 063734
LOA USTHA
L.OOK
3367. 015246
33675 027725
33676 ~35544
JSB TBSRH
JMP USCKJ
IsZ USTCK
NOT FOUND
33677 015256
0215
33100 027712
33701 050423
0216
33702 002001
0217
0218
0219
33703 115075
33704 065572
337~5
077453
JSB LTR
JMP USCKI
~EXT
'usING'
CHARACTER LETTERt
NO
ePA .+441i
YES, 'Sf FOLLOWS?
yES
RSS
JSB Sf.RRS+34,I NO
LOB SaPTR
ENABLE STRING
STB Sf LAG
VARIABLE
PAGE 0057 #05
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
l?J231
0232
0233
0234
0235
0236
0237
023 8
023 9
0240
0241
SYNTAX SUBROUTINES
33706 015330
33707 015232
3311~ 000000
33711 125544
33712 050421
33713 021722
33714 015450
33715 007400
33716 ",,5420
33717 015244
33720 125544
33721 115075
33722 01527~
33723 015334
33724 125544
33725 0~74A0
33726 045572
33727 075572
33730 ~60362
33131 071402
33132 015450
33733 125544
JSB STRID
JSB sBseK
NOP
JMP USTCK,I
USCKl CPA .+428
.JMP USCK2
JsB BCKSp
eee
STB
.J8B
JMP
JSB
LJSCK2 .lS8
JSB
USCKJ
JMP
eca
ADS
srB
LOA
ST.
JSB
JMp
STORE STRING
QUOTE?
VES
SEARCH
FON
GFLAG .'
STATEMENT
PRGIN
NUMBER
USTCK,I
FOUND ONE
SERRS+j4,I NOT FOUND, ERROR
SBPUD
ADVANCE BUFFER POINTER
GETST
RECORD STRING CONTSTANT
USTCK,I
RESTORE
SBPTR
BUFFER
POINTER
SBPTR
.+3
RESET FOR
MAXCR
3 CHARACTERS
BCKSP
RESTORE INPUT STRING
USTCK,I
PAGE
1a243
0244
0245
0246
0247
0248
0249
0250
0251
0252
0058 #05
33734
33735
33736
33737
33740
33741
33742
33743
33744
33745
SY"lTAX
{)I53347
053343
",53332
100337
07600{d
063000
024000
176667
171201
000133
SlIBROUTINE::S
usrMA DEF
DfF
OEF
OCT
OCT
OCT
f.XPOP OCT
01111 OCT
D577 OCT
B133 OCT
STTYP
MCREL
LlNCN
TOOP
INPOP
USTMT
STYPS
MRELS
100337
70000
63000
24000
·1111
.577
133
PAGE 0059 #05
0254
~255
0256
0257
STATEMENT SYNTAX PROCESSORS
34000
3 4 000 00"133
34001 177645
34002 032051
ORG 34000B
t 33
.133
OCT
0133 OCT
DCOM0 DEF
SFLGA OEF
(lCT
D5J
M103
DEC
EOSTA OEF
ti~lJ3
COMS"
SFLAG
121258 34003 033453
.53
0259 34004 177725
0260 34005 177631
.103
fOST
0261 34006 "'32037
0262***
*.
0263*. SYNTAX *.
0264***
0265.
0266 34007 015446 RSTRS JSB GETeR
JMP RSTRt
0267 34010 026014
0268 34011 01·5450
JSB BCKsP
JSB PRGIN
0269 34012 015244
JMP EOSTA,I
0210 34013 12601216
0271 34014 035572 RSTRl ISl SBpTR
0272 34015 124620
.JMP AceSA,I
0273*
0274.**
*.
0275.* SYNTAX .• *
0276 •• *
0277.
END OF STATEMENT?
YES
NO, DEMANO
SEQUENCE NUMBER
DEMAND END ·OF STATEMENT
RECORD DUMMy OpERAND
••
0278
34016 002401
FILES CLA,RSS
0279*
0280***
0281.. SyNTAX
0282*·*
0283.
0284 34017 060374
0285
0286
REMS
34020 006404
34021 015262
0287 3 4 022 124620
0288.*.
0289.*
. 0290 •• *
0291.
0292 3 4 023 015332 CHANS
0293
34024 001400
0294 34025 015212
0295 34026 033363
0296 34027 126006
0297 J403~ 007400
0298 34031 176003
0299 34032 015230
0300
34033 126006
••••
••
LOA ,+15B
CLa,INa
JSB CHRST
JMP ACCSA,1
syNTAX
JSB
DfF
JMP
CCB
STB
JSB
SYMCK
COMMA_1
EOSTA,I
SFLGA'I
FSC
JMp EOSTA,!
1213010302 •••
SYNTAX
0303*.
03041'**
0307
0308
0309
34034
34035
34036
34037
DUMMY STATEMENT TERMINATOR
SET CHARACTER FLAG TO 'LOW HALF'
RECORO REMAINDER OF STATEMENT
AS A STRING
RfQUEST STRING OPERAND
COMMA FOllOWS?
A COMMAl
NO, DEMAND END~Of.STATEMENT
DISALLOW
STRING VARIABLES
GET A FORMULA FOR LINE NO,
DEMAND ENO-oF-8TATEMENT
••••
**
LiJ305.
0306
.** •
••
JSB RSTOP
cca
SUPPRESS BLANKS
015446
115076
035572
007 4~~0
ENTRS JSB GETeR
FETCH FIRST CHARACTER
JSB sERH3+35,1 NGNE FOUND
ISZ SsPTR
eCB
PAGE
0310
0311
0312
0313
0314
0315
0316
0317
031S
0319
0320
0321
0322
0323
0324
V)325
0326
0327
~328
0329
0330
0331
0332
0333
0334
0335
0336
13337
(;)338
0339
0340
~341
0342
0343
121344
0345
0346
~~60
#05
STATEMENT SYNTAX PROCESSORS
3404~
~15272
34041
34042
34043
34044
34045
34046
34047
34050
34051
34052
34053
0333 67
~26055
015240
115076
000000
~50374
026307
007400
015272
12133363
115041
34054 026061
j4055
34055 015451d
34056 00740v)
34057 045572
34rtt60 075572
34061
34061 015~30
34062 0074"'0
34063 015272
34064 033363
JSB SYMCK
FIRST CHARACTER A "'1
DfF HATCH-1
.}MP fNTRl
NO
,JS8 VAROP
YES, SEEK SIMPLE VARIABLE
JSB SERRS+35,I NONE FOUND
NOP
CPA .+158
CR FOLLOWS?
JMP ACCST
YES, ACCEPT STATMENT
NO
eca
COMMA?
JSB SYMCK
OfF COMMA·l
JS8 SERRS+6,I NO
JMP ENTR2
FNTRl EQU
*
JSB BCKSp
BACKUp ONE CHARACTER
eca
RESTORE
ADB SBpTR
BUFFER
POINTER
SaPTR
STa
ENTR2 EQU
.JSB
DEMAND A FORMULA
eeB
JSB
OfF
JSB
JSB
JSB
NOP
34065 115041
340 66 015240
34067 115076
34070 000000
SYMCK
COMMA FOLLOWS?
COMMA_t
SERRS ... 6,I NO
VAROP
DEMAND A SlMP~E VARIABLE
SERRS.35,I NONE FOUND
eee
34071 007400
3 4 072 eJ15272
3.073 ,,33363
SYMCK
COMMA FOLLOWS?
COMMA-1
SERRS ... 6,I NO
SBPTR .
YES, ENABLE
STB SFLGA,l
STRING VARIABLE
JSB VAROP
SEEK VARIABLE OPERAND
JSB SERRS+J5,I NONE FOUND
NOP
JMP EOSTA,1
OEMNAO END.OF.STATEMENT
JSB
OEF
JSB
LOB
34074 115041
34075 065572
34076 176003
34~77 015240
34100. 115076
34101 000000
34102 126006
121347.
0348.* ..
~349.*
SyNTAX
0350 •••
0351.
0352 34103 115074
US!NS JSB
SERRS+)],I
~"353.
0354...
SYNTAX
0355**
0356***
0351.
ki358
0361
0362
0363
0364
0365
34113 015231t1
kJ36B
USING ILLEGAL AS FIRST WORD
* ..
**
**
34t04
34105
34106
34107
34110
34111
34112
0359
*.
**
015332
007400
015272
~33363
115041
007400
176003
ASNS
JSB
eCB
JSB
DEF
JSB
RSTOP
SYMCK
RECORD
COMMA.1
A COMMA
SERRS+6,I NOT A COMMA
eeB
DISALLOW
SlB SFLGA,t
STRING VARIABL.E
JSB FSC
RECORD FuRMULA
PAGE 0061 #05
STATEMENT SYNTAX PROCESSORS
0366
34114 007400
0367
0368
34115 015212
34116 033363
34111 11!041
34120 015240
34121 115016
0369
03 7 0
0371
0372
0313
0314
0375
0316
0377
0378
34122 000000
34123 001400
34124 015272
34125 033363
34126 002001
34127 015332
3413CfJ 1"260216
CCS"
JSB
OfF
JSB
JS8
JSB
NOP
SyMCK
REtORD
COMMA.1
A COMMA
SERRS+6,t NOT A COMMA
VAROP
SEEK A NUMERIC OPERAND
SERRS+35,I
NONE FOUND
eee
JS8 SYMCK
OEF COMMA-1
RSS
JSB RSTOP
.1MP EOSTA,I
COMMA
NEXT?
DEMANO A STRING OPERAND
DEMAND END.OF.STATEMENT
PAGE 0062 #05
0380*.
0381...
SYNTAX SUBROUTINES
SEEK A VARIABLE OPERAND
••
•••
0382.·
0383.
0384*
0385*
~386.
0387*
0388.
0389*
0390*
0391*
0392*
0393*
0394.
~395.
0396*
0397*
0398.
0399
0400
0401
0402
0403
••
VAROP SCANS FOR AND RECORDS A VARIABLE OPERAND. IF
THE fIRST CHARACTER IS NOT A LETTER, EXIT IS TO (P+1)
WITH THE CHARACTER IN CAl. OTHERWISE A VARIABLE
OPERAND IS RECORDED AND UPON EXIT (A) CONTAINS THE
FOLLOWING CHARACTER. EXIT IS TO cP.2) AFTER FINDING
AN ARRAY OR STRING VARIABLE ALONG WITH ANY FOLLOWING
SUBSCRIPT. IF A SiRING VARIABLE IS FOUND AND SFLAG •
SBPTR, SET SFLAG • -1' IF SFLAG # S8PTR, NO STRING
VARIABLE IS PERMITTED AT THIS POINT. EXIT TO ERROR.
AFTER FINOING A SIMPLE VARIABLE EXIT TO (P+3) WITH
TEMp+2. CA) AND THE LAST CHARACTER OF THE SIMpLE
VARIABLE IN TEMP+1. IF INSIDE A ,
SIMPLE VARIABLES ARE COMPARED WITH THE PARAMETER AND
MATCHES ARE MARKED.
34131 015256
34132 125240
34133 035240
34134 050427
34135 026155
#VROP JSB
JMP
ISZ
CPA
JMP
LTR
YAROP,I
VAROP
.+508
yAR04
LETTER?
NO, EXIT VIA (P+l)
YES
'C'
?
yES
0404
34136 052000
0405
0406
0407
0408
0409
0410
0411
04 12
34137 026155
3414~ 050423
34141 026155
34142 035240
34143 015264
34144 026165
34145 061612
34146 0444 3 7
CPA BB1JJ
JMP VAR04
NO,. t. ?
YES
CPA ,+448
JMP yAR04
ISZ VARQP
JSB OIGCK
JMP VAR01
LOA TEMP+1
ADS ,+48
NO, 'S' 1
yES
NO
DIGIT NEXT?
NO
yES, LOAD LETTER,
RESTORE DIGIT,
34141 075612
STB TEMP.1
~413
0414
0415
0416
0417
0418
34150
34151
34152
34153
~419
34155
34156
34157
34160
34161
34162
34163
34164
34165
34166
34167
0420
0421
0422
0423
0424
0425
0426
0427
~42a
0429
0430
0 4 31
0432
0433
015260
015446
000000
071613
34154 026111
015330
015232
002001
125240
065240
056e02
115040
125240
061612
~64436
015260
34170 061613
0434
34171 006400
34t72 055617
34173 12524~
3417A 007400
0435
34175 045572
JSB
JSB
NOP
STA
JMP
VAR04 JSB
JSB
RSS
STROP
GETeR
ANO
RECORD
SIMPLE VARIABLE
fETCH
ANO SAVE
TEMP+2
NEXT
YAR02
CHARACTER
STRID
RECORD ARRAY OR STRING VARIABLE
saSeK
FETCH THE SUBSCRIpT
NO SUBSCRIPT
JMP VAROP,I
EXIT VIA (P+2)
LOB yAROP
wAg VAROP CALLED FOR
CPS OCOM0
DIM OR COM SYNTAX?
JSB sERRS.!,! yES •• ERROR
JMP VAROP,I
NO •• EXIT
VAROl LOA TEMP+l
RETRIEVE LETTER,
LOS ,+518
SET INO DIGIT',
JSB STROP
AND RECORD
LOA TEMP+2
sIMPLE VARIABLE
VAR02 CLB
INSIDE A
C~B PFLAG
'DEf' STATEMENT?
JMP VAR~P,I
NO, EXIT VIA (P~3)
eeB
YES,
ADe sBPTR
ISOLATE
PAGE
0436
0437
04Ja
0439
0440
0441
0442
0443
0444
0445
~063
#05
SYNTAX SUBROUTINES
34176 160001
34177 0105~4
34200 051617
34201 0262~4
34202 061613
34203 125240
34204
34205
342ta6
34207
160001
031027
1 7 0001
026202
LOA 1,1
CPA PFlAG
JMP •• 3
0449*
0450.
0451*
0452*
0453*
0454*
0455.
1£1456*
°457*
0458*
045 9"
0460*
04 6 1
0462
0463
04641
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0 4 82
0483
0484
yES
VAR03 LOA TEMP.2
JMP VAROP,I
lOA 1,1
lOR FLGBT
STA 1,1
JMP VAROJ
0446*.
0447***
0448*·
LATEST
OPERAND
. IS IT THE PARAMETER?
AND 8777
PROCESS CHARACTER STRING
NO, RETRIEVE CHARACTER
AND EXIT VIA (P+3)
FLAG
OPERAND
AS
PARAMETER
**
•••
*.
UPON ENTRy (A) caNT~INS THE STRING DELIMITER ANO (8)
INDICATES WHETHER THE fIRST CHARACTER IS TO BE STORED
IN THE LOWER HALF OF THE CURRENT BUFFER WORD ( (8) • 1)
OR THE UPPER HALF Of THE NEXT SUFFER WOR~ ( (8) • 0).
EXIT TO (p+l) ON EMPTYING THE INPUT STRING, EXIT TO
(P+2) ON FINDING THE STRING DELIMITER, BlANKS ARE NOT
STRIPPED OUT OF THE INPUT STRING IF (A) # 0 UPON ENTRy, UPON
EXIT SsPTR POINTS TO THE FIRST BUfFER WORD NOT cONTAINING PART OF
THE STRING WHILE TEMp.1 CONTAINS A COUNT OF THE STRING
CHARACTERS BIASED BY THE VALUE Of (8) UPON ENTRY.
34210
34211
34212
34213
34214
34215
34216
34217
34220
34221
34222
34223
34224
34225
0756 12
071613
064371
002002
075571
015446
026234
060001
A51613
026233
065612
006014
026227
015270
34226 001737
34227 131572
34230 171572
34231 075612
34~32 026215
34233 035262
34234 015270
3423~ 064417
34236 075571
34231 125262
'CRST STe TEMP"'1
ST. TEMP+2
LOB ,+10
SZA
STB BL.ANK
JSB GETeR
JMP CHRS3+1
LOA B
CpA TEMp+2
.JMP CHRS3
LOB TEMP+l
SLB,INB
JMP CHRS2
JSB SBPUO
ALF,SLA,ALF
lOR SBPTR,l
ST' SBPTR,I
STB TEHp.l
JMP CHRS1
CHRS3 ISZ CHRST
JSB sBpUD
LOB ,+408
STB 8LANK
JMP CHRST¥I
SET CHARACTER FLAG AND COUNTER
NOTE TERMINATOR CHARACTER
IF (A) # 0
STOP BLANK
SUPPRESSION
FETCH CHARACTER
NONE FOUND
ALLOw LOwER CASE
TERMINATOR?
YES
NO, COUNT CHARACTER
AND SELECT wORD HALF
lOW HALF
HIGH HALF, MOVE TO NEXT WORD
P08I1ION CHARACT~R AND SKIP
COMBINE WITH PREVIOUS CHARACTER
SAVE FLAG/COUNTER
SET EXIT TO (P.2)
ADVANCE POINTER
RESTORE BLANK
SUPPRESSION
pAGE 0064 #05
SYNTAX SUBROUTINES'
.*
0486*.
0487*·* DELETE SOME PROGRAM ***
0488*·
**
0489*
1449"" THAT PART OF THE PROGRAM REflRENCEO BY CORE LOCATIONS
(TEMp+l)+(A, THROUGH (TEMp+l)+(B).l INCLUSIVE IS
0491*
0492. DELETED BV SLIDING UP ALL OF THE PROGRAM FROM
(TEMP+l)+(B) TU (PBPTR)-l (I,E., THE REST OF THE
0 4 93*
0494.
0495*
PROGR4M FOLLOWING THE 'GAP'). PBPTR Is TH£N
UPDATED TO POINT TO LAST WORD +1 OF THE PROGRAM.
1fl496.
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506
0501
1tl508
0509
34240 041612
34241 071613
34242 045612
34243 054056
34244 026252
34245
34246
34247
34250
34251
34252
160001
171613
035613
2106004
026243
061613
34253 070056
34254 125312
#DLPR ADA TEMP·l
STA TEMP+2
ADS TEMP·l
CpB PBPTR
.JMP DELP2
LOA 1,1
STA TEMP.a,I
ISZ TEMP"2
INS
JMP DELPl
DELP2 LOA TEMP+2
STA PBPTR
.JMP OELPR,l
COMPUTE INITIAL
DESTINATION ADDRESS
COMPUTE INITIAL SOURCE ADDRESS
DONE?
YES
NO, TRANSFER
A WORD
BUMP
POINTERS
UPDATE
f!ND-Ofl·PROGRAM
POINTER
PAGE 0065 #05
0511.*
0512...
051J.*
~514
0515
0516
0511
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
0528
~529
0530
0531
0532
0533
0534
0535
0536
0537
0538
SyNTAX SUBROUTINES
STATEMENT SyNTAX ENTRY POINTS
34255
34256
34257
34260
34261
34262
34263
34264
34265
34266
34267
3427~
0341914
034t03
032124
032043
032022
032042
032064
034017
032142
032225
032275
032332
34271 032142
34272" 032336
34273 032336
34274 032336
34215 032342
34276 032414
34211 032404
34300 032426
34301 034007
34302 032555
34303 034016
343~4 034023
34305 034034
34306 1(132017
SYNTB OfF
DEF
DEF
OEF
OEF
DEF
DEF
DEF
DEF
ASNS
USINS
IMAGS
COMS
LETS
DIMS
DEFS
REMS
GOTOS
OfF IFS
OfF FORS
DfF NEXTS
OEF GOTOS
DEF ENDS
OfF ENOS
DfF ENDS
OEF OATAS
DEF INPTS
OfF REAOS
OEF PRINS
DfF RSTRS
OEF MATS
OfF FILES
OfF CHANS
OEF ENTRS
DEF LETa
**
•••
*.
ASSIGN
USING
IMAGE
COM
LET
DIM
OEF
REM
GOTO
IF
FOR
NEXT
GOSUB
RETURN
END
STOP
DATA
INPUT
READ
PRINT
RESTORE
MAT
FILES
CHAIN
ENTER
'IMPL.IED' LET
0539
0540··
0541... ACCEPT A STATEMENT * ••
0542 ••
0543.
0544. A CORRECT STATEMENT Is ADDEO TO THE PROGRAM SuFFER.
0545* IF ITS SEQUENCE NUMBER IS THE HIGHEST SO FAR, ONLY
0546. THE END~OF.PROGRAM POINTER REQUIRES CHANGE, SINCE THE
0547* STATEMENT IS TRANSLATED IMMEDIATELY BELOW THE PREVIOUS
0548. PROGRAM, OTHERWIsE THE NE~ STATEMENT Is INsERTED INTo
IF ITS
0549* THE PROGRAM IN PROPER SEQUENTIAL POS:TION
0550.
0551*
0552*
0553*
~554*
~555·
kl556*
0557·
0558*
0559*
••
••
SEQUENCE NUMBER COINCIDES wITH THAT OF A PREvIOUS
PROGRAM STATEMENT, IT REPLACES IT, WITH SPACE H~DE OR
DELETED IN THE PRoGRAM AS NECESSARY. ExIT TO EXEC.
IF STATEMENT LENGTH. 0 THE STATEMENT WAS REJECTED DUE TO
A STORAGE OvERFLOw IN TAPE MODE. IF IN KEyBOARD MOD! AND
SVMTd • 4 AT LEAST ONE OVER/UNDERF~OW OCCURRED WHILE ANALYZING
THE STATEMENT so EMIT THE ERROR' OTHERWIsE ECHO A LINE FEED.
IF IN TAPE MODE Movf THE START"OF-RECORO POINTER TO THE START
OF THE NEXT BuFFER ANO IF IT IS COMPLETED SYNTAX IT NOw, ELSE
EXIT TO EXEC.
0560*
05 61
0562
0563
0564
0565
0566
343~7
~656t6
34310 006004
34311 061616
34312 003~04
34313 041572
34314 00201(13
ACCST LDB SBUFA
INS
LDA SBuFA
CMA,INA
ADA SBPTR
SZA,RS8
COMpUTE
STATEMENT
LENGTH
UNPROCESSED STATEMENT?
PAGE 0066 #05
SYNTAX SUBROUTINES
0567
05b8
0569
0510
34315 026413
0571
0572
34321
34322
34323
3432.
34325
0513
0574
0575
0576
0577
0578
0579
121580
0581
0582
0583
0584
0585
0586
0587
0588
0589
0590
0591
0592
0593
0594
0595
0596
0597
0598
0599
0600
0601
0602
0603
0604
0605
0606
0601
0608
0609
0610
0611
121612
0b13
0614
0615
0616
0611
06is
0619
0 6 20
0621
0622
JMP
STA
STA
LOA
LOB
JSB
34316 1721001
34317 071613
34J2~ 06005b
166616
016314
34326 160001
34327
34330
34331
34332
003004
041613
002003
026340
34333 002021
34334 026351
34335
34336
34337
34340
34341
34342
34343
34344
34345
34346
34347
34350
34351
34352
34353
34354
34355
34356
34357
061613
1 64 001
015312
065616
160001
171612
035612
006004
055572
026400
026341
061613
041616
071616
041613
065572
071572
071613
003000
34360 040716
34361
34362
34363
34364
34365
JMP ACC54
,IMP ACCS2
026376
026350
006004
002020
115033
061616
070056
055612
ACCS6
t,I
TEMP+2
PBPTR
SBUFA,I
FNDPS
IN8
LOA t,I
CMA,INA
AOA TEt4p.2
SlA,RSS
.}MP Aces 1
SSA,RSS
.JMP AeCS2.t
LDA rEMp+2
LOB 1,1
.J8B OELPR
ACeSt LOB SBUFA
LOA 1,1
STA TEMp"1,l
ISZ TEMP+l
INS
CPB SBPTR
JMP ACCS~
JMP ACCS1+1
ACC52 LOA TEMP.2
ADA SBUfA
STA SBUfA
ADA TEMp .. 2
LOB sBPTR
STA SBpTR
STA TEMP+2
CMA
ADA lWAUS
SSA
JSB SERRS,I
LDA SBUFA
ACCS3
STA PBPTR
C~8
TEMP.1
34366 026340
JMP ACCSl
34367
34370
34371
34372
003400
CCA
041613
071613
ADA
STA
A08
LOA
STA
JHP
ACCS4 LOA
STA
ACCS 5 LOA
AND
52A
JMP
LOB
34373
34374
34375
34376
044356
160001
171613
026365
061572
34377 070056
34400 060367
34401 110255
34402 002002
34403 026413
34404 055573
TEHP.2
TEMP.2
.-1
1,1
TEMP"2,1
ACC83
YES
NO, STORE LENGTH IN STATEMENT
SAVE IT
FIND STATEMENTIS
SEQUfNTIAl
POsITION
APPEND STATEMENT TO PROGRAM
INSERT STATEMENT INTO PRoeRAM
REPLACE PRIOR STATEMENT
COMPARE LENGTH
OF NEw STATEMENT
wITH THAT OF OLD
EQUAL?
YES
NO, L.ONGER?
yES
NO, SHORTER
LOAD LENGTH OF OLD STATEMENT
DELETE EXTRA LENGTH
LOAD FIRST SOURCE ADDRESS
TRANSFER
A WORD
ADVANCE DESTINATION
AND SOURCE ADDRESSES
DONE?
YES
NO
LOAD SPACE REQUIREMENT
UPDATE POlNTER
TO NEw STATEMENT
REsET
END of STATEMENT
POINTER
INITIALIZE DESTINATION ADORESS
uSER
SPACE
OVERFLOW?
YES
NO, UPDATE POINTER
TO ENO.OF-PROQRAM
EVERYTHING MOVEO,
yEs
NO, BACK UP
SOURCE AND
DESTINATION
ADDRESSES
TRANSFER
A NORD
sBpTR
p8PTR
TAPEF
MAIN"l
REsET poINTER TO
LAST WORD+1 of PROGRAM
ACCS6
SyMTB
~ES
TAPE
MODE?
NO
PAGE 0067 #05
0623
0624
0625
0626
0627
0628
0629
0630
0631
34405
34406
34407
34410
34411
34412
34413
34414
SYNTAX SUBROUTINES
071573
054363
1151]7
06 0 311
015452
124740
064255
006004
34415 160001
34416 PJ30236
0632
0633 34417 114736
0634 34420 124740
0001*·
0002***
0003 ••
0094*
0005*
0006.
0021 7*
0008*
0009*
00121*
0011.
0012*
0013*
0014*
0015*
0016*
0017
0018
0019
0020
0021
02122
0023
0024
0025
0026
0021
0028
0029
0030
0031
0032
0033
003 4
~035
0036
0037
0038
0039
0040
0041
0042
STA SYMTB
RESET UNDER/OVERFLOW FLAG
UNDER/OVERFLOW ERROR(S)?
CPS .+4
JSB RERRS.32,I YES
LOA .+128
JS8 OUTCR
JMP SCHEN,I
ACCS6 LOB MAIN
IN8
LOA 1,1
lOR ALI
JSB 814SC,1
JMP SCHf:N,I
NO,
OUTPUT A
LINE FEED
ALLOW
MORE
INPUT
FIND A STATEMENT'S SEQUENTIAL POSITION
.*
•••
••
UPON ENTRy (Al POINTS TO THE LAST wORD.t OF THE PROGRAM
IF (8) IS LARGER THAN
ANY SEQUENCE NUMBER IN THE PROGRAM, EXIT TO (P.1) WITM
(8) pOINTING TO THE LAST wORD.l OF THE PROGRAM, IF (8)
FALLS BETWEEN lWO SEQUENCE NUMBERS, EXIT TO (P+2) WITH
(8) POINTING TO THE STATEMENT WITH A LARGER SEQUENCE
NUMBER, If A STATEMENT IN THE PROGRAM HAS THE SEQUENCE
NUMBER IN (B), EXIT TO (p+3) WITH (8) POINTING TO THIS
STATlMENT (IF IT IS AN EMBEDDED ERROR MESSAGE, STATEMENT
TYPE • 0, DECREMENT THE ERROR COUNT). IN ALL CAsE8 T£MP+1
• (8) UPON EXIT.
AND (8) HOLDS A SEQUENCE NUMBER.
34421
34422
34423
34424
34425
075612
IIFOPS STB TEMP+1
071614
STA TEMP+3
LOB PBPTR
064056
054726
026471
34426 065575
34427 055614
34430
34431
34432
34433
34434
34435
34436
34437
34440
34441
3444 2
34443
34444
34445
34446
3 444 7
34450
34451
34452
0043
34453
0044
34454
02 6 4 7 1
160001
003004
041612
002003
026446
002020
026470
060001
00200 4
1600tlJ0
~44000
015554
026427
060001
040361
160000
010570
002002
026467
003400
SAVE TEST SEQUENCE NUMBER
SAVE TERMINATION POINTER
CPS PBUFF
JMP FNOp4
LDB SPRaG
FND P l cPS TEMP .. J
JMP FNOP3+2
LDA 1,1
CMA"INA
ADA TEMp ... !
SZA,RSS
JHp FNDp2
5SA
JMP FNOP3+1
l,D.i\ B
INA
LOA
ADB
JSB
JMP
fNDP2 LOA
AOA
LOA
AND
A,I
START WITH FIRST WORD
PROGRAM EXHAUSTED?
YES, EXIT TO (p.t)
NO, Is
PROGRAM
SEQUENCE NUMBER
THE SAME'
yES, ExIT TO (p.3)
NO, GREATER~1
yES, EXIT TO (P+2)
NO, CHECK
STATEMENT
LENGTH AND
sET (8) TO
POINT TO NEXT
STATEMENT
A
STLCK
FNDPl
1
.+2
0,1
OPMSK
LOAD
STATEMENT
ERROR
STATEMENT1
SZA
JMP FNDP3
ceA
NO
YES,
PAGE 0068
0045
"046
0047
0048
0049
0050
#~6
34455
34456
34457
34460
SyNTAX SUBROUTINES
"41574
071574
002002
026467
34461 103100
0052
0053
0054
34462
34463
34464
34465
34466
0055
34467 035314
0051
060360
~0J000
110255
170255
102100
0056 34470 035314
0057 34471 075612
012158 34472 125314
0059.*
0060*.*
0061**
AOA
STA
SZA
JMP FNDpJ
elF
LDA TERR
eMA
AND MAIN,!
STA MAIN,I
STf o
FNDP3 lSI FNDPS
ISZ FNDPS
fNDP4 STB TEMP+1
JMP FNDPS,I
"
FElCH PARENTHESIZED FORMULA
0062*
0063*
0064*
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076**
ERRCT
EHReT
AN
END~OF~FORMULA
34473
34474
34475
34476
34477
34500
34501
34502
34503
34504
34505
YES·.
SET FLAG
TO SAY
INO
EMBEDDED ERRORS'
SAVE POINTER TO
FINAL STATEMENT sEEN
**
***
**
OPERATOR FOLLOWS THE FORMULA
115061
LOB
JSB
JSB
JSB
JSB
015252
,JS8
015230
015270
015254
JSB
JSB
JSB
015236
125250
JHP
064364
015234
015270
0154tt6
DECREMENT
ERROR COUNT
ONLY ERROR?
NO
Jse
,+5
SAvE fsC
FRCUR
LOCAL VARIABLES
SBPUO
UPDATE POINTER
GETeR
RECORD
SERRS+22,I LEFT
LPCK
PARENTHESIS
fSC
DEMAND FORMULA
SBPUD
RECORD END.OF.FORMULA OPERATOR
RPCK
RECORD RIGHT PARENTHESIS
FPOP
RESTORE Fse
GETPF,I
LOCAL VARIABLES
0077*** RECORD AN INTEGER ***
007S.·
**
0079*
0080* PRGIN FLAGS THE PREVIOUS OPERATOR TO SAy 'INTEGER FOLLOWS'.
00S1* STORE THE INTEGER ANO EXIT WITH IT IN (8) AND THE FOLLOWINQ
0082* CHARACTER IN (Al.
0083*
0084 345 0 6 16157 2 #PGIN LOA SBPTR,I
SET
0085 34507 030550
lOR INTfl
'INTEGER FOLLOWS0086 34510 171572
SlA SBPTR,I
FLAG
JSB SBPUD
0087 34511 01527~
ADVANCE POINTER
0088 34512 015464
~S8 BL.OIN
BuILD INTEGER
0089 34513 175572
8TB SBPTR'I
RECORD INTEGER
0090 34514 015270
JSB SBPUD
ADVANCE POINTER
JMP PRGIN,I
34515 125244
0091
PAGE 0069 #06- SyNTAX SUBROUTINES
0093*.
0094*.*
0095 ••
0096*
0107
0108
0109
34516
34517
34520
3452i
34522
0129*
9132*
0133*
01 34*
0135*
"'02400
071643
015446
026540
015264
34523 026540
34524 071644
34525 061643
34526 100200
34527 000371
34530 000040
34531 041644
34532 006043
34533 026517
34534 035420
34535 115034
34536 035244
34537 125244
34540 065643
34541 006103
34542 026534
34543 044770
34544 002040
34545 026534
34546 065643
34547 125464
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125**
0126 •• *
0127 ••
0128.
0130.
0131*
*BLOI CLA
STA
JSB
JMP
JSB
JMP
STA
LOA
MPY
INITIALIZE TO
PINTG
GETeR
BLOl2
DIGCK
PJLDI2
pINTG ••
PINTG
,+10
CLE
ADA pINTG.,
SEZ,SZ8,RSS
JMP "BLDI.l
lSI GFL,AG
JSB SERRS+-l,l
ISZ PRGIN
JMp PRGIN,I
LDB pINTG
CLE,SIB,RSS
JMP BLDlt
ADS MAXSN
SEz
JHP SLOI1
LOB PINTG
JMP SLDIN,I
ZERO INTEGER,
OIGIT1
NO
yES, SAvE IT
MULTIPly PREvIOUS
INTEGER BY 10
ADD IN
NEW OIGIT
OVERFL.OW?
NO
yEs, RETURN ON ERROR?
NO
YES, EXIT TO
(p.2) Of PRGIN
ZERO
INTEGER?
yES
NO, INTEGER
TOO LARGE1
YES
NO
.
••
***....
IF THE NEXT CHARACTER IS NOT 'I', RESTORE SBPTR AS UPON ENTRY
AND EXIT TO (P+l) WITH THE CHARACTER IN (A), OTHERWISE CHECK
CHARACTER RETURNED IN CA) FROM FILRF. IF IT IS A COMMA OR A
SEMICOLON RECORD IT, EXIT TO (P+2) WITH THE CHAR~cTER IN . THE
9419* AMOUNT OF COM STOHAGf NEEDED IS COMPUT~D, A POINTER (SPAOG) TO
0420* THE START Of THE PROGRAM IS CREATED AND THE PROGRAM IS SHIFTED TO
0421* HIGHER CORE TO ALLOW FOR THE COM STORAGE,
0422*
SAY NO COMMON
0423 35043 006400 #ALeo CLB
srB DEST
ALLOCATED VET.
0424 35044 075512
LDB pBufF
0425 35045 064726
0426 35046 075616
srB STPTR
POINTER To FIRST STATEMENT
0427 35047 1616t6 ALCOI LOA STPTR,I
sAVE STATEMENT
0428 3505A ~71566
NUMBER
STA .LNUM
0429 35051 035616
ISZ STPTR
0430 35052 145616
ADa STPTR,I
STa NSPTR
0431 35053 075236
POINTER TO NEXT STATEMENT
9432 35054 035616
ISZ STPTR
0433 35055 161616
LDA STPTR,I
EXTRACT
AND OPMSK
OPERATOR
0434 35056 010570
0435 35057 050534
CPA COMOP
COM STATEMENT?
yES
JMp ALCo2
0436 35060 027106
0437 35061 061512 ALC06 LOA DEST
GET TOTAL COMMON ALLOCATED
SZA,RSS
~XIT IF THERE WERE
0438 35062 002~"?J3
0439 35063 125516
NO COM STATEMENTS
.IMP ALCOM,!
PROGRAM BEGINNING MOVES BY
ADA PBUFF
044 0 35 0 64 04°7 2 6
STA SPROG
AMOUNT OF COMMON ALLOCATED.
0441 35065 071575
eee
0442 35066 007400
POINTER To FIRST
ADS PBPTR
WORD TO BE MOVED
0443 35067 044056
0444 35070 068001
LOA 1
POINTER ·TO
0445 35071 041512
ADA DEST
FIRST DESTINATION
0446 35072 071512
Sfi DEST
LOCATION
INA
RESET END Of
0447 35073 002004
STA PBPTR
0 44 8 3507 4 070056
PROGRAM POINTER.
MOyE A
0449 35015 160001 ALC00 LOA 1,1
0450 35076 171512
srA DEST,I
WORD
0451 35077 054726
DONE?
CPS P8UFF
JMP AL.COM,I
EXIT
0452 35100 12551 6
NO .... BU MP
0453 35101 044356
ADB .-1
0454
0455
35102
35103
351 8 4
35105
35106
351 0 7
003400
041512
071512
021075
161616
010376
002002
0464
35110
35111
35112
35113
35114
0465
0466
0467
35117
0456
0457
0458
0459
0460
0461
0462
0463
~468
0469
027122
035616
035616
161616
35115 002004
35116 001100
002~04
35120 035616
::)5121 027156
ceA
AOA DEST
STA DEST
JMP ALC00
ALC02 LOA STPTR,I
ANO ,+178
SZA
JMP AlC03
ISZ STPTR
ISZ STPTR
LDA STPTR,I
lNA
ARS
INA
lSI STPTR
.}MP AL.tO?" 1
POINTERS
AND LOOP
EX!RACT
OPERAND
STRING?
NO
yEs ....
EXTRACT
LENGTH
COMPUTE
STORAGE
REQUIRED
BUMP PAST RIGHT BRACKET
PAGE 0077 #c;,6
0470
0 4 71
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
-0483
35122
35123
SYNTAX SU8ROUTINES
~41l135J
0"2~20
~27127
35124
35125 00240 4
35126 027155
35127 035616
35130 035616
35131 165616
35132 035616
35133 161616
35i34 010570
3513b 050602
35136 027141
35137 060001
0484
35140 027150
35141 060001
0486 35142 035616
0487 35143 100200
35144 101616
0488 35145 006002
0489 - 35146 127172
04ge 351 4 7 03 56 1 6
0491 35150 000066
0492 35151 002 0 61
0493 35152 000035
0494 35153 127172
0495 35154 040361
0496 35155 001000
0497 35156 041512
0498 35157 071512
0499 35160 040472
0 5 00 35:i61 015326
0485
0501
0502
35162 035616
0503
35164 055236
0504
35165 0020OJ1
35166 027106
35167 054056
35170 027061
35171 027047
0505
0506
0507
0508
0509.
35163 065616
ALCOJ ADA •• 4
5SA
.JMP ALC04
CL.A,INA
JMP
ALCQ4 15·Z
ISZ
LOB
ISZ
LDA
AL.t07
STPTR
STPTR
STPTR,I
STPTR
STPTR,I
AND OPMSK
CPA SCOMM
JMP *+3
tDA t
JMP ALC,05.1
• LOA t
ISZ STPTR
MPY STPTR,I
SZB
JMP CUS1A,I
0
ALC 5 ISZ STPTR
CLE,ELA
SEZ,SSA,RSS
SLA,ERA
JMP CUSlA,I
ADA .+2
ALC07 AlS
ADA DEST
STA DEST
AOA
JSB
ISZ
LOB
CPS
.100
CUSP
MUST BE ARRAY
EXTRACT LENGTH
GET NEXT
OPERATOR
SUBSCRIPT COMMA?
YES
NO
COMPUTE
ARRAy
SIZE
TOO BIG7
YES
BUMP PAST
TOO BIG?
NO
YES
ALLOW 4 WOROS FOR DIMENSIONS
DOUBLE EVERYTHING
UPDATE
POINTER
CHECK FOR STORAGE OVERFLOW
STPTR
STPTR
NSPTR
END OF
STATEMENT
YES
RSS
JMP
CPS
JMP
JMP
SIMPl.E VARIABL.E?
NO
YES-- ALLOW T.-;O WORDS
ALC02
PBPTR
ALC06
ALeOl
NO
END Of PROGRAM?
yES
NO
0510 35172 035201 CUS1A OfF CUSPI
0511**
*0512*** iNSURE SPACE FOR NEW ENTRY ***
0513*.
**
0514*
0515* A CHtCK IS MADE THAT THE UNUSED USER SPACE IS AT
0516* LEAST AS LARGE AS THE NUMBER OF wORDS SPECIFIED aY
0517. (A) • EXIT TO ERROH IF NOT SO. (8) IS NOT CHANGED.
05 1a* ON NORMAL EXIT (~) CONTAINS ITS ENTRY VALUE + (PBPTR).
0519*
AT LEAST
0520 35173 040056 #CUSP ADA PBPTR
(A) WORDS
0521 35174 071474
SrA Cut
0522 35175 003000
eMA
Of AVAILABLE
ADA LWAUS
0523 35176 040716
USER
0524 35177 002021
SSA,RSS
SPACE?
PAGE 0078 #06
1525
0526
0527
052a
J520~
~2120J
35201
35202
352 0 3
35204
015322
115111
061474
125326
0529
0530**
0531.**
0532**
0533.
0534.
SYNTAX SUBROUTINES
JMp
CUSP1 JSB
JSB
LOA
JMP
.+3
yES
DCMPl
NO, OECOHPILE
RlRRS.10,1 OUT OF STORAGE
CU1
RETURN WITH NEW
CUSP,l
VALUE OF P8PTR
AOVANCE SyNTAX BUFFER POINTER
••
•••
**
(Al AND (8) REMAIN AS UPON ENTRY
0535.
0536 35205 Vl7 13 06 #SSPU STA SBT0
SAVE CA)
ISZ SBPTR
ADVANCE POINTER
0537 35206 035512
0538 35207 061572
BUFFER
LOA SSPTR
0539 35210 051470
OVERFLOW?
CPA SYNTQ
JSB SERRS+31,1 YES
0540 35211 115072
LOA SBT0
NO, RETRIEVE (A)
0541 35212 061306
~JMP SBPUD,1
0542 35213 125270
0543**
.
**
0544*** D~MAND A LEFT PARENTHESIS ***
0545.*
**
0546*
0547.
INSIST CHARACTER IN (A) BE 1(' OR '[I.
0548*
0549.
AS A '(I.
0550
35214 064355
RECORD IT
,( ,
LDB .-2
JSB SYMCK
OR
DfF LBRAC-l
, t' 'I
JSB SERRS+22,I NO
0551 35215 015272
0552 35216 033403
0553 35217 115061
LOA LPOP
YES, RECORD
0554 3522 0 060556
A '(I
STA SBPTR,I
0555 35221 171572
JMP LPCK,l
0556 35222 125252
0557.*
**
0558*** STATEMENT LENGTH CHECKER ***
05590Q0*
**
0560*
0561* CHECK THAT (A) (THE STATEMENT LENGTH) IS BETWEEN 3 AND 105.
0562* IF NOT, EXIT TO ERROR,
0563 35223 040354 *SLCK ADA .-3
5SA
0 5 6 4 35224 002020
0565 35225 115160
JSB RERRS+4y I I TOO SMALL
0566 35226 042005
ADA M103
f£'567 35221 002020
5SA
0568 3523A 125554
JMp STLCK,I
OK
0569 35231 115160
JSa RERRS+49,I TOO BIG
PAG~
0002
0003
~079
#07
COMPILATION ANn
ORG 360008
360ld0
36000 000371
PHH~5
J6001 037024
36002 V1J7(i1t~
Hkl06
36~03
~41b7J
0007
"''''08
j6rcH~4
"'75e1~5
~004
DECO~PIL'TION
360"'5 "'67"'0~
A.10 DEF .+10
APTR2 DE.F SYMT7
AP1R1 o~F SYMT6
r>ONEA nEF EXITJ
CSVHT OfF CSAV2
MATOP OCT b7A90
Vl~09*
0010* **************************
0011****
**
ifHiJi2*** ·CliMPILE' iHt: PROGRAM it.
0~13****
**
0014* **************************
~015.
0016*
0017.
0~18*
0~19*
0020*
0021*
0022*
~023*
0024*
0025*
0°26*
0027*
SyMTM=0 IMPLIES THE PROGRAM IS IN 'SOURCE's ALL OPERANDS ARf IN
SYMBOLIC FORM. SYMTa#0 AND SPTR:0 IMPLIES THE PROGRAM IS 'SEMl~
COMPILED': VARIABLE OPERANDS ARE POINTERS TO A SYMBOL TABLE ANO
STATLMENl REFERENCES ARE REPLACED BY ABSOLUTE POINTERS,
,
svMT~ = SPTR IMPLIEs THE PROGRAM Is 'COMPILED': THE SyMBOL TABLE
ENTRIES CONTAIN POINTERS TO A VALUE TABLE OR IN THE CASE OF
FUNCTIONS TO THE DEFINING fORMULA, AND A TABLE IS BUILT
CONTAINING INFU~MATJON FOR EACH FILE IN THE PROGRAM. BEfORE
BuILDING THE SyMBOL TABLE, THE INTERPRETER'S PROGRAM COUNTER
IS SlT TO THE STATE~ENT RlFERENCED BY THE 'RUN' COMMAND (THE
LOwEST NUMBERED STA1EHENT IS THE DEFAULT CHOICE).
0028.
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
""048
01049
"'-1050
0051
0052
~053
0054
0055
1d0b6
0057
36006 ~64726
360 0 7 05 40 56
3601~ 1261{HlJ3
3 6 011 006404
.3 6 012 0 75 334
36013 "15462
36~14 015446
3 6 eH5 026024
360.16 015450
36017 015464
3602(;1 075334
36 0 2 1 05 Pt 374
36~22 0020,,1
36023 115113
36024 1031til0
36025 160255
36 0 26 03 0 377
36027 170255
36030 10210~
36A31 064726
36032 055575
36033 015516
.)0034 061573
36Q135 002003
36036 "60056
36037 065334
3604'1 015314
36~4t 126003
.i6042 QI~00017J
CMPLE LOB PBUFF
NULL
CPS PBPTR
PROGRAM?
JMp DONEA,I
yES
CLB,INB
INITIALIZ~
STB PRGCT
PROGRAM COUNTER
JSB SINIT
sIMPLE
JSB GETCR
'RUN' ?
JMP CMP15
YES
JSB BCKSp
NO
JSB BLDIN
DEMAND AN INTEGER
STB PRGCT
SAVE STARTING STATEMENT
CPA .+15R
END Of RECORD?
RSS
yES
JS8 RERRS+12,1 NO
CMP15 elF 0
LOA MAIN,I
DON'T
lOR UNABT
ALLOW
STA MAIN,I
ABORTS
STF 0
LOB PBUfF
CPB SPROG
.JSB ALCOM
LDA SYMTa
5lA,RSS
LOA PBPTR
LOB PRGCT
.lsa FNDPS
JMP DONEA,I
NOP
NO, COM STORAGE ALLOCATtD?
NO-.. OO IT
GET SYMBOL TABLE POINTER
IS PROGRAM COMPILED 1
NO, USE PBPTR
GET STARTING STATEMENT NUMBER
SEEK REFERENCED STATEMENT
NOT WITHIN PROGRAM
SET
PAGE
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
~080
36043
36044
36 04 5
36046
360 4 7
36050
36051
36052
36053
~'6054
36055
#01
COMPILATION AND OECOMPILATION
~75334
060255
A02004
1600~0
030223
114736
061573
002003
026070
051230
002001
026 0 66
065771
0082
36056
36057
36060
36061
36062
36063
36064
36065
36066
36066
]60 67
36070
3 607 1
36072
0083
36073
0084
0085
0086
0087
36074 044341
36075 130~01
36076"17 00 01
36071 102100
0071
0072
0073
0074
0075
10076
0077
0078
00 79
0080
008 1
006003
027220
015520
061573
071230
!2J26433
071230
026422
071502
10 31 00
060361
~64272
STB PRGCT
CMP14 LOA MAIN
INA
LOA 0,1
lOR UIR
JSB 514lP,1
CMPL0 LOA SyMTB
SZA,RSS
JMP CMP00
CPA SPTR
RSS
JMP CMP16
LOB ASINP
SZS,RSS
JMP VALUE
.J5B RSTPT
PROGRAM COUNTER
TELL 2114
THAT USEH
IS RUNNING
PROGRAM
UNCOMPILED?
yES
NO, COMPILED?
YES
NO, MUST BE SEMI-COMPlLED
ASSIGN STATEMENT SEEN?
NO
YES, FAKE SEMI~COHPILED PROGRAM
LOA SYMTB
STA SPTR
.JMP CMP18
CMP16 EQU '*
STA SPTR
JMP CMP 17
CMP00 STA FILT8
elF 0
LOA CFLAG
LOB MLINK+l
ADa .... ?LINK
lOR 1 , I
STA 1,1
STF
"
SET
PRoGRAM MoDE
TO 'COMPILED'
PAGE 0081
0089*·
0090...
#~7
COMPILATION AND DECOMPILATION
BUILD THE SyMBOL TABLE
0091*·
0092.
0093. THE PROGRAM IS
*.
•••
••
ExAMINED STAT~MENT By STAT~MENT. ALL
VARIAALE OP~RANDS ARE REPLACED AY POINTERS (RELATIVE
0095* TO THE START Of THE SYMBOL TABLE) TO TWO WORD ENTRIES,
0096* SYMBOL TABLE ENTRIES KEEP THE SYHBOL IN THE FIRST WORD
0097. AND INFORMATION IN THE SECOND. FOR FUNCTIONS THE
009S- SECOND WORD CONTAINS A POINTER TO THE DEFINING FORMULA
0099.
(0 BEFORE FINDING THE cOfF STATEMENT», FOR SIMPLE
0100. VARIABLES THE SECOND WORD IS USED TO FORM A LINKED LIST
0101. OF uNMATCHED FOR~YARIA8LfS (OTHERWISE IT IS 0) WITH
0102* . FLINK POINTING TO THE INNERMOST NESTED FOR.VARIABLE.
0103* IF THE SIMPLE VARIABLE APPEARS IN A
0104. THE SECOND WORD IS SET TO -I, FOR ARRAY AND STRING
0105* VARIABLES THE SECOND WORD IS 0 UNLESS THE VARIABLE
0106- APPEARS IN A cDIM STATEMENT>, IN WHICH CASE IT
0107* POINTS TO THE DIMENSIONS IN THE CODE, OR IT APPEARS
0108. IN A , IN WHICH CASE IT IS THE
0109. NEGATION OF A POINTER TO THE DIMENSIONS.
0110* PROGRAM INTEGERS ARf REPLACED BY A POINTER TO THE
0111* STATEMENT THEY REFERENCE. ON EXIT TO VALUE OR DCMPL,
0112* SpTR POINTS TO THE FIRST WORD NOT PROCESSED.
0~94·
0113.
0114 36100 064056
0115 361°1 075573
0116.
LOB P~PTR
STB SYMTB
CREATE POINTER
TO SYMBOL TABLE
0117- COUNT NUMBER Of STATfMENTS IN PROGRAM
0118.
(LA, INA
INITIALIZE STATEMENT COUNTER
0119 36102 002404
LDB SPROG
0120 36103 065575
0121 36104 006004 CMP01 INS
MOVE TO
ADS
1,1
36105
1440fi'1
NEXT
0122
0123 36106 0 4435 6
ADB .-1
STATEMENT
CPB PBPTR
DONE?
0124 36107 054056
YES
.JMP CMPe2
0125 36110 026113
0126 361t1 002004
INA
NO .. -BUMP COUNTER
JMp CMp01
0127 36112 026104
DIVIDE # OF STATEMENTS
0128 36113 006400 CMP02 CLB
0129 36114 1004210
DIV .+32
INTO 32 PARTS
0130
0131
0132
1£1133
0134
0135
0136
0137
000417
007000
002003
006004
36121 002004
36122 071617
36115
36116
36117
36120
36123
~75613
36124 064650
36125 075606
eMS
SlA,RSS
INB
INA
STA
STB
LDB
STS
STCTl
STCT2
ERSc A
NUMPT
SET 8.~1.# Of OVERSIzE GROUPS,
BUT IF <32 STATEMENTS USE ••
SET A TO SIZE OF lARGER GROUP
SET COUNTER
SET POINTER TO TABLE
PAGE 0082 #07
0139*
0140*
0141*
0142*
·,,143*
0144*
0145
0146
01 41
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0161*
0168
0169
0170
0171
0172
COMPILATION AND OECOMPILATION
BUILD A TABLE Of 64 WORDS. THE FIRST 32 CONTAIN THE SEQUENCE
NUMBERS OF STATEMNTS WHICH DIVIDE THE PROGRAM INTO 32 ALMOST
EQUAL PARTS. THE SECOND 32 WORDS ARE THE ABSOLUTE ADDRESSES
OF THESE STATEMENTS
36126
36127
36130
36131
36132
36133
36134
36135
36136
36137
36140
36141
36142
36143
36144
36145
36146
36147
36150
36151
3 6 152
36153
061575
044417
170001
164000
175606
035606
035613
006401
007400
045617
075617
001000
36154
36155
36156
36151
36160
36161
002404
071234
015324
075614
065606
054646
026154
035614
002005
026127
14"'''00
040356
026146
Pl36404
002041
026237
tOA SPROG
CMP03 AOB .+32
STA 1,1
LOB 0,1
ST8 NUMPT,I
ISZ NUMPT
ISZ 5TCT2
ClB,RSS
SET ABSOLUTE ADDRESS INTO TABLE
SET SEQUENCE • INTQ TABLE
BUMP POINTERS
TEST fOR ANY MORE
OVERSIZE GROUPS
cOMPUTE SIZE OF NEXT GROUP
eeB
ADS STeTl
STB STeT 1
eHS
srB STeTl
LOB NUMPT
CPS ERS32
TEST FOR DONE
Jr-tP CMP04
ISz STeTl
INA,RSS
JMp CMp03
ADA 0,1
AOA .-1
JMP *-5
COMPUTE FIRST STATEMENT
IN NEXT GROUP
CMP04 ClA,INA
STA FLINK
JSB PRNST
OfF CMP11
SEZ,RSS
~JMP CMPL3
0173
0174*
0175 •• PROCESS NON~VARIABLE OPERAND
"176*
ADA .",,4
0177 3 6 162 040353
SSA,RSS
0178 36163 002021
0179 36164 026702
JHp PRNS2
0180 36165 035230 CMPll IsZ SPTR
0181 036166 065230
LOB SPTR
CP8 NSPTR
0182 3 6 167 055236
JMP CMP11
0183 36170 026404
0184 36171 064650
L.OB ERSCA
0185 36172 160001 CMP05 LOA 1,1
0186 36173 003000
eMA
0181 36174 141230
ADA SPTR,t
SSA,INA
0188 36175 Pl02024
JMP CMPa6
0189 36176 026206
0190 36177 006004
INS
0191 36200 054646
CPB ERS32
RSS
0192 36201 002A01
JMP CMP05
0193 36202 026172
ADS .... 31
0194 36203 044416
SET FOR.QUEU E TO EMPTY
INITIALIZE
.*•
COMPII.ATION
WAS FLAG BIT SET7
NO
• PROGRAM
INTEGER1
NO, MUST BE A pARAMETER
yES, HOVE
TO NEXT WORD
STATEMENT FINISHED?
YES
BEGIN SEARCH FOR REFERNECED 8THT
fIRST STATEMENT .>SOUGHT STATE.?
FOUND ONE
TEST FOR DONE
PAGE 0083 #07
0195
0196
0197
0198
0199
0200
0201
lt1202
0203
0204
0205
0206
0207
0208
0209
021 0
0211
0212
0213
0214
36204
3620b
36206
36207
3621A
36211
36212
36213
36214
36215
36216
36217
36220
36221
36222
36223
36224
36225
36226
36227
0215
3623ti'
0216
0217
0218
0219
0220
36231
36232
36233
36234
36235
36236
0221
0222*
0223.*
COMPILATION AND DECOMPILATION
061573
026215
044417
002003
026 2 3 0
054646
026235
160001
044356
164"01
071617
161230
006004
144001
044356
055611
026235
150001
026231
026220
164001
175230
035550
"26165
026702
015322
115077
0225
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
024 5
0246
0247
0248
0249
0250
CPS EHS32
JHP
LOA
ADS
CMP07 LOB
Sr A
LOA
CMP08 INB
ADB
CHPl2
1,1
.-1
t,I
STCTI
SPTR,1
ISZ INFST
JHP
JMP
CMPL2 JSB
JSB
36237
36240
36241
36242
36243
36244
36245
36246
36247
36250
36251
36252
36253
36254
36255
36256
36257
36260
36261
36262
36263
36264
36265
36266
36267
36270
CMPLt
PRNS2
OCMPL
RERRS,I
*.••
071611
CMPL3 STA STMPI
010376
1r350376
026326
002 0 03
026347
040353
002020
026 3 5 2
015316
035230
054534
026317
055773
026300
054562
002001
AND ,+178
0267~j
065234
00602~
00]004
055612
026270
015322
115100
065234
CPA ,+178
JHp CMpL6
SlA,RSS
JMP CMPL9.3
ADA ,-4
SSA
JMP
JSB
ISZ
CpB
JMP
CPS
JMP
CPS
STATEMENT IS IN LAST &ROUP
Sa> fIRST STATEMNT IN GROUP
TEST FOR FOUND
TEST FOR NOT THERE
ERROR
SET Aa> FIRST WORD BEYOND GROUP
SAVE END TEST
GET SEQUENCE NUMBER
BUMP STATEMENT POINTER
t,I
ADS ,-1
CPB STCTl
JMP CMPL2
CPA 1,1
JMP CMPa9+1
JMP CMP08
CMPQJ9 LOB 1,1
STB SPTR,I
PROCESS VARIAHLE OPERAND
0224"
0226
0227
0228
0229
0230
LOA SYMTB
JMP CHPe7
CMPSl) ADB .+32
8lA,RSS
JMP CMPeg
TEST FOR DONE
LABEL NOT FOUNO ... ERROR
TEST FOR FOUND
FOUND •• REPLACE INTEFER
IN 'USING' STATEMENT?
NO
yES
DECOMPILE
NONMEXISTENT STATEMENT NUMBER
SAVE SYMBOL
FUNCTION?
yES
NO, STRING VARIABLE'
yES
NO,
ARRAY?
CMPL9
SSYMT
SPTR
COHOP
CMP41
FOROP
CMPL4
NXTOP
RSS
JMP PRNS2+1
LOB FLINK
SSB
CMB,INB
CPS STMP2
JMP *+3
JSB DCMPL
JSB RERRS+l'I
LOB FLINK
YES
NO, COMPILE
SIMPLE VARIABLE
'COM'?
YES
NO, FOR.VARIABlE OF 'FORt?
YES
NO, FOR.VARIABLE 0' 'NEXT' 1
yES
NO
MAKE
POSITIVE
MATCH LATEST cFOR
STATEMENT~
1
yES
NO, DECOMPILE
NEXT NOT PRECEDED BY PROPER POR
PAG~
0251
0252
0253
025.-
0255
0256
0257
0258
0259
0260
0261
0262
0263
026~
0265
0266
0267
0268
0269
02 70
0271
0272
0273
0274
0275
0276
0277
0278
0279
92 8 0
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
02 91
0292
0293
0294
0295
0296
0297
0298
"299
0300
0301
0302
0303
0304
0305
0306
008 4 #07
COMPILATION AND DECOMPILATION
161 6 12
PJ71234
006020
007401
006400
175612
026703
1 6 1 6 12
00201212
2102007
926306
015322
115101
065612
161612
002020
001004
06 12 34
171612
075234
03524kJ
02671213
36271
36272
36273
36274
36275
36276
36277
36300
36301
36302
36303
36304
36305
36306
36307
36310
36311
36312
36313
36314
36'315
36316
36317
36320
36321
36322
36323
36324
36325
36326
36327
3633(t11
02 64 02
907400
174000
026703
015316
055772
002001
36332
026~"2
36332
36333
36334
36335
36336
36337
36340
36341
36342
36343
36344
36345
36346
36347
165612
3635~
2161612
164000
2106002
006002
026344
061612
035240
065230
044362
075230
174000
026703
035230
015322
115102
015316
035611
36351 0°2 001
36352 015320
36353 0023210
36354 054534
36355 026361
36356 054540
36357 002101
36360 026702
LDA STMP2,I
STA Fl.INK
SSB
CCa,RSS
eLB
sr B sr MP 2,I
JMP PRNS2+1
CHPL4 LDA STMP2,I
SZA
REMOVE
VARIABLE
WAS VARIABLE IN COMMONt
NO
NO
REsET AS sIMPLE VARIABLE
LOAD SECOND WORD OF TABLE ENTRY
ALREADy IN FOR-QUEUE1
COMMON VARIABLE
INA,SZA,RSS
JMP CMPL5
JSa DCMPL
DECOMPILE
Jsa RERRS+2'J NESTED "FOR'S· WITH SAME VARZABL
CMPL5 LDB STMP2
LOA STMP2,I
58A
CMB,INS
LOA FLINK
STA STMP2,1
SlB FLINK
ISZ STyPE
JMP PRNS2+1
CHP41 LOA STMP2
LOB A,I
SZB
GET POINTER
ALREADy IN COMMON7
JMP eMP10+1
eCB
STB
JMP
CMPL6 JSB
CPS
RSS
JMP
LOB
SIB
JMP
LOA
lSI
CMPl1 LOB
AOB
STB
STe
JMP
CMPL8 lSI
JSB
JSB
JSB
IsZ
A,I
PRNS2+1
SSYMT
DEFOP
PRNS2
sr Mp2,1
CMPL8
STMP2
STyPE
SPTR
.+3
SPTR
0,1
PRNS2+1
SPTR
DCMPL
RERRS.J,J
SSyMT
STMPt
RSS
CMPL9 JSB ASYMT
teE
CP8 COMOP
JMP CMP91
CPS DIMOP
CLE,RSS
JHP PRNS2
FLAG VARIABLE AS
CONTAINED IN COMMON
COMPILE FUNCTION NAME
fUNCTION DEFINITION?
YES
NO
PREVIOUSly
DEFINED?
YES
NO
DESTROy STATEMENT TyPE
ADVANCE
PROGRAM
POINTER
SAVE
POINTER
DECOMPILE
FUNCTION DEFINED TWICE
COMpILE STRING YARIABLE
sET TO 'sINGLY SUBsCRIPTED'
PROCESS POSSIBLE DECLARATION
COMPILE ARRAY VARIABLE
SET 'COM' FLAG
'COM'1
yES
NO, 'DIM'1
yES •• SET -DIM- FLAG
PAGE 0085 #07
COMPILATION AND DECOMPILATION
0307
36361 165612
0308
0309
36362 006002
36363 0264"'1
36364 065230
0318
0311
0312
0313
21314
0315
0316
0311
0318
0319
0320
36365
36366
36367
363 7 0
36371
36372
36373
36374
36375
~44361
002040
007004
17 56 12
065230
044361
061611
002011
04436i
36376 044361
0324
36377 2175230
36400 026704
36401 035230
36402 015322
0325
36403
0321
0322
0323
1151~3
CMP91 LOB STMP2,I
SZB
JMP CMP10
LOB SPTR
AOB .+2
SEl
CMB,INB
818 STMP2,I
LOB SPTR
ADe .+2
LOA STMP1
SLA,RSS
ADS .+2
ADS .+2
STB SPTR
JMP PRNS2 ... 2
CMP10 Isl SPTR
JSB OCHPl
JSB RERRS.4,I
0326.
0321**
PROCESS END OF STATEMENT
0328.
03 2 9
0330
0331
0332
0333
364 0 4 055573
36405 002001
36406 026606
36407 075230
36410 06 12 4"
0334 36411 050542
0335 36412 026415
0336 36413 015322
0331 36414 115104
0338 36415 002404
0339 36416 051234
0340 36417 026422
0341 36420 015322
0342 36421 115105
0343 36422
0344 36422 002400
0345 36423 07 1576
0346 36424 064056
0341 . 36425 075502
0348 36426 060212
0349 36427 040356
ft)350
0351
0352
10353*
36430 160000
36431 050401
36432 126004
WAS VARIABLE
PREVIOUSLY DIMENSIONED'
YES
NO, SAVE POINTER
TO DIMENSIONS
DIMENSIONED IN 'COM' 1
YES ... FLAG IT
NO
RESTORE
POINTER
RETRIEVE SYMBOL
ADVANCE
POINTER
PAST
ONE OR TWO
DECOMPILE
VARIABLE DEFINED TwICE
*
**
•
CHPlt cpa SYMTB
END OF PROGRAM?
yEs
RSS
JMP PRNSl
NO
STB SPTR
INSURE CORRECT SETTING fOR SPTR
LOA STYPE
LAST STATEMENT
CPA ENDOP
AN 'END' ?
JMP CMP12
YES
JSB DCMpL
NO, DECOMpILE
JSa RERRS+5,I MISSING 'ENOl
CMP12 CLA,INA
CPA FLINK
ALL FORS MATCHED?
JHP *+3
YES
JS8 DCMPL
DECOMPILE
JSB RERRS+6'I "ORt WITHOUT 'NEXT'
CMP17 EQU *
CLA
ST. VLFLG
MUST RUN VALUE.
LOB PBPTR
sET POINTER TO
END OF SyMBOL TABLE.
STB FILTB
LOA MLINK+l
IS C8AVE
ADA .+?STAT"'?l..INK
LOA 0,1
RUNNING
CPA .+5+CSAV-COH2
JMP CSVRT,I
YES.~EXIT TO IT
0354* FIlCT • -5 AT THIS POINT UNLEsS THE PROGRAM CONTAINS A
""355. , THE CALL TO seHlB,I LEAVES VALTS •
0356. FILTS.'.(NUMBER OF FILES REQuESTED). IF NO ?
JMP CMP13
NO
0362 36435 026444
PAGE
0363
0364
~365
0366
0367
1r1368
0369
0310
0311
0086 #07
COMPILATION AND DECOMPILATION
36436 114744
36437 072045
36440 115114
36441 115115
36442 115111
36443 021222
36444 0655 0 2
36445 015514
36446 027222
JSB
OfF
JSS
JSB
JSB
JMP
SCHLB,I
FILlS
REQUt:ST FILE TABLE
RERRS+13,I 8AO FORMAT OR ILLEGAL. NAME
RERRS+l.,I MISSING OR PROTECTED FILE
RERRS+10,I OUT OF STORAGE
SUCCESSFUL REQUEST
VALUE+2
CMP13 LDB FILTS
STB VAllS
JMP VALUE+2
SET VALUE TABLE
POINTER.
PAGE 0087 #07
0373.*
0374...
COMPILATION ANO DECOMPILATIQN
DECOMPILE ALL OR PART OF PROGRAM
••
*••
••
0375.*
0376*
0377.
121378*
0379*
0380*
121381*
0382*
121383*
038 4
0385
0386
0387
0388
03 8 9
0390
0391
0392
121393
0394
0395
0396
0397
.03 9 8
0399
0400
0491
0402
041213
0404
0405
IF CFlAG[I] • 0 PROGRAM IS IN SOURCE, EXIT IMMEDIATELy,
ELSE SET CFLAG[Il • 0 AND DECOMPILE PROGRAM. SPTR POINTS
INITIAllY TO LAST WORD+t OF COMPILED PROGRAM. ABSOLUTE
ADDRESSEs ARE REplACED BY THE SEQUENCE NUMBERS TO WHICH
THEY POINT, VARIABLE OPERAND POINTERS ARE REPLACED BY
THEIR SYMBOL. p8PTR IS SET TO LAST WORD+1 OF PROGRAM.
3644 7
36450
36451
36452
36453
36454
36455
36456
36457
36460
36461
36462
36463
36464
36465
36 4 66
3646 7
36470
36471
36472
36473
36474
060361
064212
044341
110001
002003
026552
103100
120001
170001
102100
060056
050726
026550
061230
002003
06 1 57 3
07 1230
~71502
015324
036606
006441
026514
LOA CfLAG
LOB MLINK+l
ADS ._?LINK
AND t,I
SZA,RSS
JMP DCMP4
elF 0
XOR 1,1
STA 1,1
5TF
~428
36515 101117
TO 'UNCOMPIL.ED'
NULL
PROGRAM?
YES
SPTRlJa TO FL.AG
SEHI ... COHPILED ?
YES •• RESET IT TO CORRECT VALUE
SET TERMINATION
ST. FIlTa
JSB PRNST
OEF PRNSl
CLB,SEZ,RSS
JMP DCMP2
0426.
36514 040356
NO
YES
SET PROGRAM MODE
lOA PBPTR
CPA pBUFF
JHP DCMP3+2
LOA SPTR
SZA,RSS
LOA SYMTB
STA SPTR
PROCESS VARIABLE OPERAND
0427
COMPILED?
((I
0406.
041217.. PROCESS NON-VARIABLE OPERAND
1d408.
ADA .... 4
0409 36475 040353
0410 36 4 76 002021
SSA,RSS
36477 026702
0411
JHp PRNS2
0412 36500 035230 DCMpl ISZ SpTR
0413 36501 065230
LOB SPTR
Cp8 FILTB
0414 36502 055502
JMP DCMP3
0415 36503 026546
epa NSPTR
0416 365~4 055236
JMP PRNS1~1
0417 36505 02 66 0 7
LOA SPTR,I
0418 36506 161230
LOA 0,1
0419 36507 160000
0420 36510 171230
STA SPTR,I
0421 36511 035550
IsZ INFST
JMP OCMPl
0422 36512 026500
JHP PRNS2
0423 36513 026702
0424.
0425..
PROGRAM
OCMP2 ADA .-1
RRR 15
•
ADDRESS
INITIALIZE
DECOMPILATION
WAS FLAG BIT SET?
NO
.".•
•PROGRAM
INTEGER?
NO
yEs, MOvE TO
NEXT WORD
DONE1
YES
NOt STATEMENT DONE'
YEs
NO, REPLACE
ABsoLUTE ADDREss
WITH SEQUENCE NUM8ER
IN 7
NO
YES
••
•
COMPUTE
SYMBOL TABLE
PAGE 0088
0429
0430
0431
0432
0433
0434
0435
0436
0437
0438
0439
0449
0441
0442
0443
0444
0445
9446
0447
0448
0449
0459
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
046 1
0462
0463
0464
0465
0466
0467
,,46S
0469
0470
0471
0472
0473
#~7
COMPILATION AND DECOMPILATION
36516 045573
36~17 161230
36520 010570
36521 130001
36522 t71230
36523 065240
36524 054540
36525 0265jl
36526 054534
36527 002001
36530 026702
36531 065230
36532 006004
36533 055502
36534 026546
36535 006004
36536 010376
36537 040353
36540 002021
36541 026702
35542 040363
36543 0020~3
36544 002004
36545 026374
36546 061573
36547 070056
36550 00240121
36551 071573
36552
36553
36554
36555
36556
36557
170632
064726
055575
026567
054 0 56
026561
36!6~
015512
36561
36562
36563
36564
36565
36566
36567
061515
075575
064"'56
015476
065512
014056
114614
3657~ 160634
36571 170632
36572 125322
ADB SYMTB
LOA SPTR,1
AND QPMSK
lOR
STA
LOB
CPS
1,1
SPTR,I
STypE
OIMOP
.JMP DCMP6
CPB COHOP
RSS
.JMP PRNS2
OCMP6 LOB SPTR
INB
CpS FILlB
JMP OCMPJ
INB
AND ,+178
ADA .-4
SSA,RSS
.JMP PRNS2
ADA ,+4
SZA,RSS
INA
JMP CMP10.e
DCMP3 LOA SYMTB
srA PBPTR
CLA
STA SYMT8
DCMP4 srA Delc1,I
LOB
CPB
JMP
CPB
PBUFF
SPROG
DCMPS
PBPTR
·JMP DCMP5
STB DEST
LOA SPROG
STB SPROG
LOB PBPTR
JsB MOVER
LOB DEST
STB PBPTR
DCMP5 JSB ABCK,I
LOA OCLC2,I
STA DeLc1,I
JMP OCMPL,1
ADDRESS
EXTRACT
OPERATOR
REPLACE OPERATOROPERAND pAIR IN CODE
'DIM' ,
yES
NO, 'COM'?
yES
NO
OONE1
YES
NO
STRING
SIMPLE
VARIABLE?
YES
NO, STRING
VARIABLE?
YES, SET TO SINGLE SUBSCRIPT MOO
SET ACTIVE USER AREA POINTER
TO LAST WORD.t OF PROGRAM
ZERO
POINTER
BL.OCK CLOCK
COMMON ALLOCATED?
NO
YES, NULL PROGRAM?
yES
NO
SET UP
POINTERS
FOR MOVE
REMOVE COMMON AREA
RESET -END.OF ...
PROGRAM POINTER
ABORT ATTEMPT DURING COMPILE?
NO ... UNBLOCK
CLOCK
PAGE 0089 #A7
COMPILATION AND DECOMPILATION
••
0475*.
0476 ••• PROCESS NEXT STATEMENT OF PROGRAM •••
0477 ••
0478.
0479. USED By CMPLE AND DCMPL TO SCAN THROUGH THE PROGRAM.
0480. A 'JSB PRNST' INITIALIZES THE SCAN. (P+l) IS A POINTER
0481* TO THE CODE FOR HANDLING THE ENO--OF-STATEMENT CONDITION,
0482* .LNUM HOtOS THE SEQUENCE NUMBER OF THE STATEMENT BEING
••
0483.
0484.
0485*
0486.
0487.
0488.
0489.
121 49 0
0 49 1
0492
0493
0494
121 49 5
0496
0497
0 4 98
0499
0500
0501
0502
0503
fE1504
0505
0506
0507
0508
0509
rtJ510
0511
0512
0513
0514
0515
0516
0517
0.518
0519
PROCESSED, SPTR POINTS TO THE WORD OF THE PROGRAM BEING
PROCESSED. PRNST HANDLES , ,
STRING CONSTANTS, NULL OPERANDS, NUMERICAL CONSTANTS, AND
. OTHER CASES EXIT TO (P+2), PRNST Is
RE~eNTERED DIRECTLY, LEAVING THE INITiALIZED tXli ADDRESSES
UNCHANGED THRoUGHOUT PROCESSING OF THE PROGRAM.
36573
36574
36575
36576
36577
36600
36601
36602
36603
36604
36605
36606
36607
36610
36611
36612
36613
36614
36615
36616
36617
36620
36621
36622
36623
36624
36625
161324
~71242
035324
060444
011603
002400
011615
011605
060352
071604
065575
015230
161230
071566
035230
145230
075236
035230
161230
010570
071240
050534
#PNST LOA
STA
lSZ
LOA
STA
CLA
STA
STA
LOA
STA
LDB
PRNSt STB
LDA
STA
lsZ
ADB
STB
Isl
LOA
AND
STA
CPA
PROCESSING ROUTINE
INITIALIZE POINTER TO
TABLE
INITIALIZE
COM FLAG
AND USING FLAG
INITIALIZE cFILES
STATEMENT> COUNTER
INITIAL PROGRAM POINTER
SET PROGRAM POINTER TO STATEMENT
SAVE STATEMENT
SEQUENCE NUMBER
COMpUTE
LENGTH
SAvE POINTER TO NEXT STATEMENT
EXTRACT
STATEMENT
TYPE
SAVE IT
'COM' ?
JMP •• 3
yEs
STB COMSN
.JMP PRNS4
LOB COMSN
SlB,RSS
NO.~CLEAR
JMP PRNS2+1
NO
065615
006003
36626 026 7 03
050546
36641 026704
0529
36642 050544
0530
36643 002001
RSS
0525
.-5
FILeT
SPROG
SPTR
SPTR,I
,LNUM
SPTR
SPTR,I
NSPTR
SPTR
SPTR,l
OPMSK
STypE
COMOP
END~OF.STATEMENT
075615
026634
0526
0527
0528
0523
1d524
COMSN
USESN
SET POINTER TO
~26624
LOB
ADB
STB
JSB
JSB
PRNS4 CPA
JMP
CPA
JMP
CPA
JMP
CPA
0520
0521
0522
PRNST,I
STEND
PRNST
DFILT
FILPT
36627 065230
3663~ 044355
36631 ~75230
36632 015322
36633 115151
36634 050516
36635 02 67 ,,4
36636 050536
36637 "'26704
3664~
COM FLAG.
NON.COM
STATEMENT SEEN?
SPTR
YES, RESET
,-2
STATEMENT
SPTR
POINTER
OCMPL
ERROR
RERRS+42,I 'COM' OUT OF ORDER
REMOP
IREM' 1
PRNS2+2
YES
DATOP
NO, DATA?
PRNS2+2
yES
IMGOP
NO, IMAGE?
PRNS2+2
yES
FILOP
NO,
LOB NSPTR
JMP PRNS2+2
PRNS5 LDB SPTR
CpA MATOP
INB,RSS
JMP .+3
LOA B,I
AND OPMSK
CPA PRTOP
INB,RSS
JMP PRNS6
LOA 1,1
AND OPMSK
CPA USEOP
CCA,RSS
RSS
STA usESN
PR NS6 aTA INFST
RSS
PROCESS NEXT WORD OF STATEMENT
36702
36703
36704
36105
36706
36707
035230
065230
055502
026546
055236
125242
36710 161230
36711
36112
36713
36714
36115
36716
36717
3672VJ
36721
j6722
36723
36724
36725
36726
36727
3673 0
010510
050506
026723
121230
002003
026702
001 265
"'02003
026337
125324
121230
"40362
001100
041230
071230
0267 0 3
NO
PRNS2 ISZ SPTR
LOB SPTR
cPs FILTs
JMP DCMP3
CPB NSPTR
JMP SlEND,I
LOA SPTR,I
AND OPMSK
CPA 81000
JMp PRNSJ
XOR sPTR,l
SZA,RSS
JMp PRNS2
RAL,CL.E,ERA
SZA,RSS
.JMP CMPL,1
JMP PRNST,I
PRNS3 xOR SPTR,I
ADA • +3
ARS
ADA SPTR
STA SPTR
JMP PRNS2+1
SKIP OyER REST
OF STATEMENT
'MAT' STATEMENT?
YES, BUMP TO NEXT WORD
NO
ExTRACT
OPERATOR
'PRINT' STATEMENT?
YES, BUMP TO NEXT WORD
NO
EXTRACT
OPERATOR
.USING. STATEMENT?
YES, SET (Al
NO
sET 'usING sEEN' FLAG
sET INTEGER FOLLOW! FLAG
*
**
* TO
MOYE
NEXT WORD
DECOMPILE FINISHED?
yES
NO, STATEMENT FINISHED?
YES
NO, ISOLATE
OPERATOR
"
"
yES
NO, GET OPERAND
NULL OPERAND?
yES
NO, PUT FLAG BIT IN
NUMBER?
yES
NO
ExTRACT L.ENGTH
COMPUTE
POINTER
TO CLOSING
QUOTE
(E)
PAGE 0091 #07
COMPIL~TI0N
AND DECOMPILATION
0581**
**
'COMPILE' A SYMBOL ***
0588***
0589**
0590*
0591* ENTER ~lTH A SyMBOLIC NAME IN STMPl AND SEARCH THE
IF NO ENTRY IS
0592* SYMeOL TABLE FOR A MATCHING ENTRY.
0593* FOUND, AppEND A NEW TWO WORD ENTRY WITH THE SYMBOL
0594* IN THE FIRST WORD AND 0 IN THE SECOND. THE SYMBOL IN
0595* THE PROGRAM IS REPLACED WITH THE ORDINAL NUMBER OF
ITS SYMBOL TABLE ENTRY, EXIT WITH THE NEW PROGRAM
0596*
••
059i*
WORD IN (A), A POINTER TO THE SECOND WORD OF THE
0598. TABLE ~NTRY IN STMP2, AND THE STATEMENT TYPE IN (8),
0599*
INSURE SPACE
0600 36731 060363 _*SSYM LDA ,+4
.JS8 ·CUSp
FOR NEW ENTRY
36732 015326
0601
LDA STMP1
RETRIEVE SYMBOL
0602 36733 061611
LDB SYMrB
0603 36734 065573
SYMBOL TABLE EXHAUSTED?
06 04 361 3 5 05 40 56 SYMT1 CPB PBPTR
yES
0605 36736 026755
.JMP sYMr3
0606 36737 15 00121 1
CPA t,I
NO, IS NEXT SYMBOL A MATCHl
JMp SyMTS
yES
0607 36740 026765
0608 36741 044361
AOB .+2
NO, HOVE
JMP SYMTt
TO NEXT ENTRY
0609 36742 026735
0610*
ttJ611** HANDLE UNMATCHED ARRAY SYMBOL
0612.
0613 36743 051611 SYMT2 CPA STMP1
RSS
0614 36744 002001
0615 36745 026755
JMP SYMT3
ISz PBPTR
0616 36746 034056
ISZ PBPTR
0617 367 41 034056
0618 36750 061612
LOA STMP2
INA,SZA
0619 36751 002006
JMP
SyMT4
0620 36752 "'26760
36 7 53 \7 0 001
0621
STA 1,1
ADB ,+2
0622 36754 044361
0623*
*
0624** CREATE A NEW TABLE ENTRY ••
ki625.
0626 36755 034056 SyMT3 ISz PBPTR *
0627 36756 034056
ISZ pBpTR
CLA
0628 36757 00240~
,,629 36760 006004 SYMT4 INB
STA 1,1
0630 36761 17A001
0631 36762 044356
ADB ,-I
0632 36763 0616tl
LOA STMPI
STA 1 , I
0633 36164 170001
0634*
'COMPILE' PROGRAM wORD ***
0635**
0636*
•
0637 36765 006~04 SYMT5 INB
~638
36166 075612
STB STMP2
",639
CMB
36767 et01Pt00
0640 3677V1 045573
ADS SYMTB
CMB,INB
0641
36771 007004
0642 36772 ~05100
8RS
•
••
*"DON'T KNOW" SYMBOLt
yES
NO, MAKE NORMAL TABLE ENTRY
ALLOCATE SPACE
FOR NEW ENTRY
WAS A SINGLE OR DOUBLE
SUBSCRIPTED ENTRY FOUND?
yES, INCLUDE POINTER IN ENTRy
NOp SAVE SPACE FOR LATER ENTRY
WITH NUMBER OF DIMENSIONS
ALLOCATE SPACE
FOR NEW ENTRY
INITIALIZE
SECOND
WORD
PUT SY"4BOl.
IN FIRST
WORD
COMPUTE
RELATIVE
ADDRESS
PAGE A092 *0'
0643
0644
0645
0646
06 4 7
0648
36173
36774
36175
36716
36717
370"~
COMPILATION AND DECOMPILATION
161230
010510
03 00P11
111230
06 5240
125316
LDA
AND
IOR
STA
LOB
JMP
SPTR,l
OPMSK
1
SPTR,I
STYPE
SSYMT,I
REPLACE SYMBOL
IN PROGRAM
wITH RELATIVE
ADDRESS
LOAD STATEMENT TYPE
PAGE 0093 #08
COMPILATION AND Of COMPILATION
0001*.
0002.*.
0003*.
0004*
0005*
0006*
0007*
0008*
0009*
0010*
0011*
0012*
~01J*
~014*
0~15.
0016*
0017*
0018*
0~19.
~020*
0021*
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
~035
0036
0037
0038
0039
004 0
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
PROCESS ARRAY SYMBOL
••
•••
••
ENTER WITH AN ARRAY NAME IN STMP1. IF A MATCHING
SYMSOL TABLE ENTRY EXISTS, PROCEED A8 IN SSYMT. ELSE IF
THE ARRAY IS SINGLY OR DOUBLY SUBSCRIPTED (LAST FOUR
BITS OF NAME ARE 0001 OR 0010): EXIT IS TO ERROR ON
FINDING A CONFLICTING ENTRY, ON FINDING ONLY A "DON-T
KNOW" ENTRY (LAST FOUR BITS 0011), PROCEED AS IN aSYMT,
pLACING THE APPROPRIATE ENTRY IN THE TWO WORDS ABOVE
T~E "DON'T KNOW" ENTRY AND SETTING A POINTER TO ITS
SECOND WORD INTO THf SECOND WORD OF THE "DON'T KNOW"
ENTRY. IF THE SYMBOL IS AN UNMATCHED "DON'T KNOW"
ARRAY NAME, APPEND A SYMBOL TABLE ENTRYI IF A SINGLY
OR DOUBLY SUBSCRIPTED VERSION OF THE ARRAY HAS BEEN
PREVIOUSLY FOUND, PLACE A POINTER TO THE SECOND wORD
OF THE PREVIOUS ENTRY INTO THE SECOND WORD OF THE ~EW
"DON'T KNOW" ENTRY' OTHERWISE LEAvE TWO WORDS ABOVE
THE NEW ENTRY,
37001 061320
37002 071316
31 0 03 003400
37004 071612
37005 062002
37006 071320
37~H~7 060363
37010 015326
31011 065573
37012 061611
372113 030362
37014 027027
37015 040355
37016 150001
31011 2127 0 3 2
37020 002"'04
37021 150001
37022 027032
37023 002004
37024 150~01
31025 027046
37026 044361
37027 054056
3703A 026743
37031 125320
370052 051611
37~j3 026765
37034 030362
37035 051611
31036 027041
31037 015322
:~7040 115112
37041 075612
37042 066001
37043 075320
tlASYM LDA ASYMT
STA SSYMT
CCA
STA STMP2
LOA ApTRt
STA ASYMT
LDA
JSB
LOB
LOA
lOR
.JMP
SYMT6 ADA
CPA
.JMP
INA
CPA
JMP
INA
SYMT7 CPA
JMP
,+4
CUSP
SyMTB
STMPi
,+3
SYMT1+3
,-2
1, I
SYMT8
1, I
SyMT8
t,I
SYHT9
ADe ,+2
CPS PBPTR
JMP SYMT2
SET RETURN
ADDRESS
SET HATCH
FLAG FALSE
INTIALIZE
SEARCH LOOP
INSURE SPACE
FOR NEW ENTRY
RETRIEVE SYMBOL
SET ARRAY SYMBOL
TO "DON'T KNOW"
MATCH AS
'SINGLE SUBSCRIPT.,
YES
NO, MATCH AS
'DOUBLE SUBSCRIPT'?
yES
NO, MATCH AS
"DON'T KNOW"?
YES
NO, MORE SYMBOL
TABLE ENTRIES1
NO
JMP ASYMT,I
YES
SYMT8 CPA STMP1
DOES ENTRY MATCH SYMBOL?
.IMP SYMT5
YES
lOR ,+3
NO, IS SYMBOL OF
CPA STMPl
TYPE "DON'T KNOW"?
JMP *+3
yES
NO, DECOMPILE
JSB DCMPL
JSB RERRS+l1,I SUBSCRIPT CONFLICT
STB STMP2
SAVE POINTER TO ENTRY
l.OB AplR2
CONTINUE- SEARCH
STB ASYMT
FOR POSSIBLE
PAGE
0~94
0051
37044
0058 37045
0059 37046
0060 J7~47
0061
3705'"
0062 37051
0063 37052
0064 37053
11'065 37054
0066 37055
0061**
0068.**
0069.*
007S.
0071*
0072*
0073*
0074*
0075*
~076.
#08
COMPILATION AND DECOMPILATION
065612
027026
05t611
026765
006004.
A600t711
044355
t14~00
"'02400
026761
LOB
JMP
SYMT9 CPA
JHP
INS
STMP2
SYMT7+2
STMPI
SYMT5
LOA 1
AOB .-2
S18 o,1
CLA
JMP SYMT4+1
"DONfT KNOW"
ENTRY
DOES ENTRY MATCH IVMeOL1
YES
NO, NEW ENTRY TO BE MADE
SET POINTER TO
NEW ENTRY INTO
"DON'T KNOW. ENTRy
MAKE NEW
ENTRV
.*....
**
USED By CSAVE TO RESTORE THE SyMBOL TABLE TO ITS APPEAR'"CE
BEFORE VALUE HAS BEEN RUN, I.E- THE POINTERS TO DIM AND COM
STATEMENTS ARE PLACED IN THE SECOND WORD OF ARRAY AND ITRING
ENTRIES IN THE SYMBOL TABLE, 'DON'T KNOW' ENTRIES.ARE LINKED
TO THE CORRESPONDING KNOWN ONE AND THE SECOND WORD OF DEFAULT
ENTRIES IS SET TO ZERO.
0077.
0078
37056 065575
0079
0080
37057 075230
"'081
0kl82
37061 027146
37062 035230
37063 145230
37064 075236
37065 035230
0083
0084
0085
0086
10087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0091
0098
~099
0100
0101
01t712
0103
0104
0105
0106
0107
0108
0109
~t10
0111
0112
37060
~55573
37066 16 12 3 0
37067 010570
372170 050534
37071 027'-"76
37072 050540
37073 002001
3707 4 027057
37075 006400
37076 075617
31077 161230
37100 010566
37t01 (2140356
37102 001000
37103 (2141573
37104 071611
37105 160000
3711lJ6 010376
37107 040353
3711(21 002020
37111 027124
37112 003400
37113 065611
37114 2106004
37115 170001
37116 065230
37117 0060((14
37t2~ 075230
*RSTp LOB SPRaG
STB SPTR
cPa SYHTB
JHP RSTP5
ISZ
SPTR
ADS SPTR,l
STB NSPTR
ISZ SPTR
LOA SPTR,1
AND OPMSK
CPA COMOP
.IMP RSTP1+1
CPA DIMOP
RSS
JMP #RSTP+1
RSTPI CLB
STB DCFLG
RSTP2 LDA SPTR,I
AND OPOMK
AOA .-1
ALS
ADA SYMTB
STA STMPt
LOA 0,1
AND .+178
ADA ... 4
SSA
JHP RSTP4
CCA
LDB STMPl
INS
STA 1, I
LOB SPTR
RSTP3 INS
STB SPTR
INITIALIZE PROGRAM
POINTER
FINISHED PROGRAM SCAN?
yES
NO ... COMPuTE
NExT STATMENT
POINTER
t:XTRACT
OPERATOR
'COM'?
YES
NO,
YES
'OI .."?
NO
SET COM.DIM FLAG
COMPUTE
POINTER
INTO
SYMBOL
TABLE
E.XTRACT
SYMBOL
SIMPLE
VARIABL.E?
NO
yEs
FLAG
AS
'IN
COMMON'
UPDATE
STArt:MENT
POINTER
PAGE 0095 M08
0113
0114
0115
0116
0117
011a
37121
37122
37123
37124
37125
COMPILATION AND DECOMPILATION
055236
027057
027077
~65230
044361
37126 061617
0119
0120
37127
0121
0122
37131 061611
37132 002004
37133 174000
37134 065230
37135 044363
37136 "'55236
37137 027057
0123
1d124
0125
°126
0127
0128
0129
0130
0131
0132
0133
0134*
0135*
0136.
0~2002
37130 001004
37140
~44356
37141 160001
37142 010570
37143 "'50602
3714.t 044361
37145 027117
111140
3715rl1 027214
0141
0142
0143
0144
31151 075611
0146
0147
0148
0149
0150
0151
~152
0153
0154
01 55
0156
0157
0158
0159
0160*
0161*
0162*
LOA DCFLG
SZA
(MA,INB
LOA STMPt
INA
STB A,I
LOB SPTR
ADS .+4
CPB NSPTR
JMP MRSTP+l
ADS .-1
LOA 1,1
AND OPMSK
CPA SCOMM
ADB .+2
JMP RSTP3
END OF STATEMENT?
yES
NO
SET POINTER
TO DIMENSION
-COM'?
YES.~COMPlEMENT POINT~R
STORE
IN SYMBOL
TABLE
FINISHED
STATEMENT?
yES
NO, TWODIMENSIONAL"
YES •• BUMP PAST SECOND DIMENSION
NO
SCAN SyMBOL TABLE FOR 'DON'T KNOW' ENTRIES AND
DEFAULT DIMENSION ENTRIES
0137*
0138 37 1 46 06557 3
01 3 9 371 4 7 0555 02
0145
cPS NSPTR
JMP *RSTP+l
JMP RSTP2
RSTP4 LOB SPTR
AOB ,+2
37152
31153
37154
37155
37156
37157
37160
31161
37162
37163
16A001
010376
RST P5 LOB SYMTB
CPS FILTs
.JMP RSTPg
5T8 STMPl
LDA 1,1
AND ,+178
050362
CPA .+3
027174
040354
JMP RsrP1
002021
027171
SSA,RSS
JMp RSTp6
tNB
006004
1600f11
003004
37164 041573
37165 002021
37166 027111
37167 002 400
37170 170001
37171 065611
37172 044361
37173 027147
PROC~SS
ADA •• 3
LOA t,I
CMA,INA
ADA SYMTB
SSA,RSS
JMP RSTP6
CLA
STA 1,1
RSTP6 LDB STHPI
ADS .+2
JMP RSTP5+t
INITIALIZE TABLE POINTER
FINISHED SYMBOL TABLE SCAN?
yES
NO •• SAvE POINTER
DON'T
KNOW
ENTRY?
yES
NO, STRING
OR ARRAY?
NO
YES
DEFAULT
DIMENSIONS?
NO
YES~~STORE
A ZERO
IN SYMBOL TABLE
BUMP TO
NEXT SYMBOL
'DON'T KNOw' ENTRY
~75612
0163
37174
0164
0165
0166
37175 065573
37176 003400
37177 141612
0167
3720~
150001
0168
37201
0272~7
RSTP7 STB STMP2
LOB SYMTB
CCA
AUA ST~P2,I
CPA 1,1
JMP RSTP8
IS THERE
A MATCHING
TWO.DIMENSIONAl
ENTRY?
yES
PAGE 0096 *08
0169
0170
0171
0172
1.1113
37202
37203
37204
37205
372~6
COMPILATION AND OECOMPILATION
040356
150001
ADA .-1
CPA 1, I
027207
JMp RSTp8
044361
ADa .+2
027116
.JMP RSTP1+2
0174
37207 006004
0175
0176
37210 061611
372\1 0020~4
37212 11412100
37213 2127171
37214 0024"'0
37215 071576
37216 074056
37217 125520
0177
0178
0179
0180
0181
0182
RSTP8 INS
LOA STMPI
INA
srB
0,1
NO, MATCHING ONE.
DIMENSIONAL ENTRY!
yES
No·-aUMP TO
NEXT SYMBOL
LINK 'DON'T
KNOW' ENTRY
WITH MATCHING
KNOWN ONE
.JMP RSTP6
RSTP9
elA
STA VLFLG
STs PBPTR
JMP RSTPT,I
SET SlORAGE
UNALLOCATED FLAG
RESET END~OF-PROGRAM POINiER
PAGE 0097 #08
COMPILATION AND DECOMPILATIQN
0184.·
0185 •••
BUILD THE VALUE TABLE
~186*.
0187*
0188.
0189.
0190·
0191*
0192.
0193~
0194*
0195*
0196*
01 97*
0198.
0199*
0200.
0201*
0202*
020 3*
~204*
~205·
0206*
0207*
0208.
0209*
0210*
0211*
0212.
f?J213.
0214*
0215.
0216*
0217*
~218*
0219*
0220*
'1221*
",222*
0223*
0224*
0225.
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
••
•••
••
IF NO VALUE TA~LE EXISTS, ONE IS BUILT FROM THE SyMBOL
TABLE AND INITIALIZED, IF IT ALREADY EXISTS, IT IS
INITIALIZED. IN BUILDING THE VALUE TABLE, EACH ENTRY
IN THE SYMBOL TABLE 18 CHECKED. FOR FUNCTIONS THE
EXISTENCE OF A DEFINING FORMULA IS CHECKED' fOR SIMPLE
VARIABLES TWO WbRDS ARE ALLOCATED AND SET TO 'UNDEFINED'
AND A POINTER TO THEM IS PLACED IN THE SECOND WORD OF
THE SYMBOL TABLt ENTRYJ FOR ARRAYS FOUR WORDS ARE
ALLOCATED FOR THE DfCLARED AND DYNAMIC DIMENSIONS,
THE DIMENSIONS AqE INITIALIZED EITHER FROM A
IN THE PROGRAM OR THE DEFAULT
DIMENSIONS, ARRAY SPACE IS ALLOCATED AT TWO WORDS PER
ARRAY ELEMENT CONTIGUOUS WITH THE DIMENsIONS, THE
ELEMlNTS ARE INITIALIZED TO 'UNDEFINED,' AND A
POI~TER TO THE FIRSl ELEMENT IS PLACED IN THE SECOND
WORo Of THE SYMBOL TABLE ENTRY; FOR STRINGS FOLLOW THE
PATTERN FOR ARRAYS WITH ONE WORD HOLDING THE PHYSICAL
DIMENSION IN BITS 15-8 AND THE DYNAMIC DIMENSION IN
BITS 7.0 (DIMENSION HERE MEANS LENGTH AS NUMBER OF
CHARACTERS), STRING SPACE IS ALLOCATED ONE WORD PER
TWO CHARACTERS, AND THE DYNAMIC LENGTH IS INITIALIZED
TO ZERO. FOR "DON,T KNOW" ARRAY ENTRIES, THE SECOND
WORD Of THE SYMBOL TABLE ENTRY IS COPIED FROM THE
ASSOCIATED sINGLY OR DOUBLY SUBSCRIpTED ENTRY (OR
EXIT TO ERROR IF NONE ~XISTS).
~OR VARIABLES WHICH HAVE 8EEN DECLARED IN A , STORAG~ IS ALLOCATED IN THE COMMON AREA
WHICH RESIDES AHEAD OF THE PROGRAM, FOR ARRAYS AND
STRIN~S, THIS AREA IS LEFT UNDISTURBED IF THE DIMENSIONS
DECLARED IN THl MATCH THOSE FOUND IN
THE cOMMON AREA, AND THE OYNAMIc DIMENSIONS ARE CONSISTENT
IF A VALUE TABLE ALREADY EXISTS, VARIABLES IN COMMON ARE
LEFT UNTOUCHED, VALUES OF SIMPLE VARIABLES AND ARRAY
ELEMENTS ARE SET TO 'UNDEFINED' AND DYNAMIC ARRAY
DIMENSIONS ARE SET TO DECLARED DIMENSIONS' THE DYNAMIC
LENGTHS OF STRINGS ARE SET TO ZERO, EXIT TO XEC IF
PROCESSING IS SATISFACTORILY COMPLETED.
37220
37221
37222
37223
37224
37225
37226
37227
37230
37231
3723?
37233
37234
37235
065232
~74056
064126
075616
065573
002001
VALUE Loa FCORE
STB PBPTR
,- LoB PBUFF
STB COMPT
LOB SYMTS
RSS
027554
VAL.Ut INS
CPB FILTS
JMP VAL99
LOA 1 , I
INS
SZA,RSS
JMP vAL14
01~376
ANO .+178
~06004
055502
027661
160001
0060~4
002003
INSURE CORRECT
SETTING FOR P8PTR
INITIALIZE
COMMON POINTER
SET (s) TO
SyMBOL TABLE
SYMBOL TABLE
EXHAU5TED"I
YES
NO, LOAD SYMBOL
POINT (8) TO VALUE TA8LE POINTER
NULL SYMBOL?
yES
NO
pAGE 0098 #08
COMpILATION AND OECOMpILATION
~242
37236 050376
37237 027300
37241li 002003
~243
37241 027556
0240
0241
CPA .+17B
JMP VALU4
SZA,RSS
JMP VALl5
ADA .-4
5SA
JMP VALU5
37242 kJ40353
0245 37243 002020
0246 37244 02 7 305
0247.
0248** INITIALIZE SIMPLE VARIABLE
0244
0249.
0250 37245 061576
0251 37 24 6 002003
fd252
0253
0254
111255
0256
0257
0258
0 25 9
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
02 7 2
0273
0274
0275
0276
~277*
37'247 ~27262
37250 160001
37251 003004
37252 040001
37253 002021
37254 027226
37255 16121001
37256 07 16 11
37257 0034P.10
37260 171611
37261 027226
37262 160001
37263 002020
37264 027273
31265 060361
37266 VJ15326
37267 ~70056
37270 040355
3727t 17000i
37272 027256
3727 3 06 1 616
37';74 170001
37275 040361
37276 071616
37277 027226
FUNCTION?
YES
NO, STRING VARIABLE?
YES
NO,
ARRAy?
YES
*
**
*
LOA vLFLG
SZA,RSS
.JMp VALU3
l.OA 1,1
CMA,INA
ADA 1
SSA,RSS
JHP VALut
LOA t,I
VALU2 STA VTMpt
CCA
STA VTMP1,I
JMP VALUt
VALU3 LOA 1 , I
SSA
JMP VAl31
LDA .+2
JSB CUSP
STA PBPTR
AOA ... 2
STA 1 , I
JMP VALU2
VALJt LOA COMPT
STA 1,1
ADA .... 2
STA COMPT
JMP VAlUt
SIMPLE VARIABLE
STORAGE ALLOCATED?
NO
YES
VARIABLE
IN
COMMON?
yES
NO
SAVE POINTER TO VALUE
SET
VALUE TO
UNDEFINED
VARIABLE
IN COMMON1
YES
NO •• ALLOCATE
STORAGE
FOR VALUE
PUT VALUE POINTER
INTO SYMBOL TABLE
ALLOCATE STORAGE
IN COMMON
UPDATE COMMON
POINTER
•
0278** CHECK FUNCTION *.
0279.
0280 37300 160VlVll VALU4 *LOA
0 2 81 37301 002002
SZA
JMP
~282
37302 027226
JSB
0283 37303 015322
0284 37304 115106
JSB
0285.
*
0286** INITIALIZE ARRAY **
0287.
*
111288 37305 050356 VALU5 CPA
0289 373 0 6 027545
.JMP
STS
rd290 37307 075611
0291 37310 002P.J04
INA
~292
STA
37311 071612
lDA
0293 37312 (}I61576
029 4 37 313 0~2002
5ZA
0295 37314 027405
JMP
1,1
WAS fOUNt TION
DEFINED?
yES
VALUI
DCMPL
NO, DECOMPILE
RERRS+7,1 UNDEFINED FUNCTION
.... 1
VAL13
VTMPI
VTMP2
VLFLG
VALi2
IS ARRAY TYPE "DON'T KNOW" 1
YES
NO, SAVE POINTER TO SyMBOL TABLE
SAVE INFOHMATION ON
NUMBER OF DIMENSIONS
STORAGE
ALLOCATED?
yES
PAGE 0099 #08
COMPILATION AND DECOMPILATIQN
0296
0297
0298
0299
37315 16001211
37316 002020
~300
37321 060056
37322 0716t3
0J01
0302
~303
"'304
0305
0306
0307
0308
0309
0310
~311
0312
0313
0314
0315
"'316
0317
0318
0319
0320
1tl321
37317 027421
37320 165611
LOA .+4
37324 015326
37325 070056
37326 171611
37327 12106003
37330 027402
.18B CUSP
37331 i6Vi00i
31332 044361
31333 035612
31334 006405
37335 164001
37336
37337
37340
37341
j7342
37343
37344
37345
37346
37347
37350
37351
171613
"'35613
175613
035613
171613
(135613
175613
10"200
101613
~060~3
002020
02741210
37352 071614
0326
37354
37355
37356
37357
37360
37361
37362
31j63
37364
37365
37366
37367
0328
0329
0330
0331
0332
0333
0334
0335
~336
0337
0338
0339
0340
0341
0342
0343
0344
0345
0346
0347
0348
~349
111350
SSA
JMP VAL5t
LOB VTMP1,I
LDA PBPTR
STA yTMP3
37323 "'60363
0322
0323
0324
0325
0327
LDA 1,1
yTMPJ,I
VTMP3
VTMP3,1
VTMP3
VTMPJ,I
VTMPJ,I
SZB,RSS
5SA
002020
027400
061614
LO-A VTMp4
071612
065613
~06004
004056
027370
003400
17A0(211
044361
035612
027361
065611
027226
3737v.t
37370 040443
0010~"
015326
3737 6 07 0 056
37377
37400
37401
37402
37403
ISZ VTHP3
STa
VALU7 ISZ
STA
tSZ
STB
MPY
JMp VAL10
STA VTMp4
CMA/INA
Sf A VTMP2
LDB VTMPJ
INB
CPB PBPTR
JMP VAlU9
VALU8 CCA
STA 1,1
ADB .+2
ISZ vrMP2
.JMP VAlU8
LOB vTMPI
JMP VAlUI
VALLJ9 E.QU •
ADA .5000
SSA
JMp VAL10
37353 003o",4
37371
37372
37373
37374
37375
ST. PBPTR
STA VTMP1,I
SZB,RSS
JMP VALli
LDA i,l
AD8 .+2
VALU6 ISZ VTMP2
CLB,INS,RSS
LOB 1,1
SlA VTMP3,I
027361
0115322
115107
060371
066000
ALS
JSB
STA
JMP
VAL10 JSB
.ISB
VALlt LOA
LOB
CUSP
PBPTR
vALu8
OCMPL
RERRS+8, I
.... 10
A.i0
NO
IN COMMON?
YES
~O, LOAD POINTER TO DIMENSIONS
SET POINTER TO
OIHENSIONENTRy
ALLOCATE
SPACE
FOR ENTRY
SyMBOL TABLE POINTER TO ARRAy
DEFAULT DIMENSIONS?
yES
NO, LOAD ROW DIMENSION
BUMP POINTER
TWO O'IMENSIONAl?
NO, SET COLUMN DIMENSION TO 1
yES, LOAD COLUMN DIMENSION
PUT
DECLARED DIMENSIONS
IN VALUE TABLE
PUT
DyNAMIC DIMENSIONS
IN
VALUE TABLE
COMPUTE NUMBER OF ARRAY ELEMENTS
TOO
LARGE?
yES
SAVE POSITIVE
ANO NEGATIVE
COUNT
HAS
ARRAY BEEN
ALLOCATED?
NO
INITIALIZE
ARRAy EL.EMENT
TO 'UNDEFINED'
DONE?
NO
yES
ARRAy
TOO LARGE1
yES
NO
ALLOCATE
SPACE
FOR ARRAY
DECOMPILE
ARRAY TOO LARGE
LOAD CA) WITH 10
LOAD (8) WITH
pAGE 0100 #08
0351
"3~2
16353
1()354
0355
.~3f>6
~357
Vl358
k1359
~j360
~361
0362
0363
0364
0365
COMpILATION AND DECOMPIlAT10N
37404 027333
3741.!'5 160~1lI1
37406 003~04
37407 ~40001
3741'" 0020'1
37411
.37412
37413
37414
37415
37416
37417
37420
37421
37422
37423
37424
.JMP VAlU6
VAL12 LOA 1,1
CMA,INA
~OA 1
SSA,RSS
.JMP V AlU 1
yES
t 616 11
LOA
ADA
STA
LOA
ISZ
LOB
NO."LOAD
040353
~71613
161613
035613
165613
027341
165611
007004
075 6 15
175611
VTMP1,I
.-4
VTMPJ
VTMPJ,l
VTMPJ
VTMPJ,l
JMP VALU7
VAL51 LOB VTMP1,I
CMB,INB
~373
37425 061616
37426 071613
37427 040363
37430 171611
37431 160001
37432 15t6t3
0374
37433 002001
0375
37434 027503
0376
37435 044361
ADS .... 2
0377
1r1378
37436
37437
37440
37441
LOA vTMP2
0369
0370
0371
03 72
0379
03 8 0
~381
03 8 2
0383
0384
03 8 5
0386
H387
0388
0389
03921
0391
0392
0393
",394
0395
0396
37442
37443
37444
37445
061612
027503
37446 161616
37447 100200
37450 101613
37451 006003
37452 002020
37453 0275V!3
37454 071614
37455 040443
37456 0020221
37457 027503
3746~ 035613
37461 161613
37462 035613
37463 100200
37464 101613
0398
0399
37465 006003
0400
0401
0402
0403
37467 027503
37470 003007
J747! ~2750J
37472 041614
37473 002020
37466 £10217120
SET
DIMENSION
POINTER
POSITIVE
SET
POINTER
IN SYMBOL
TABLE
PHYSICAL ROW DIMENSION
SAME AS DECLARED DIMENSION?
yES
NO
SZB,RSS
SSA
TOO
LARGE?
.JMP VAL52
yES
STA VTMP4
ADA ,50210
NO."SAV E SIZE
006405
155613
002001
DIMENSIONS
LOA COMPT,I
MPy VTMP3,I
CPA ,-..2
CLB,INB,RSS
LOB 1,1
ISZ VTMP3
CPS VTMP3,I
t 64001
035613
DECLARED
B-> SECOND DIMENSION
TWO
DIMENSIONAL1
NO.~SET COLUMN DIMENSION TO 1
YES"-~OAD COLUMN DIMENSION
PHYSICAL COLUMN DIMENSION
SAME AS DECLARED DIMENSION
YES
NO
COMPUTE SIZE OF
ARRAy AS DECLARED
(')50355
03 97
1i1404
IN COMMON1
027226
STB VTMP5
STS VTMP1,I
LOA COMPT
STA VTMPJ
ADA .+4
STA VTMPt,I
LOA t,I
CPA VTMP3,I
RSS
JMP VAL52
0366
0367
0368
ADDRESS OF 10
IS ARRAY
RSS
.IMP VAL52
58A
.JMP VAL52
lSZ
LOA
ISZ
MPY
VTMP3
VTMP3,I
VTMP3
VTMPJ,I
100
LARGE?
YES
NO
COMPUTE SIZE
AS SPECIFIED By
DYNAMIC DIMENSIONS
SZ8,RSS
TOO
55A
LARGE?
JMP VAL52
YES
CMA,INA,SlA,RSS
JMP VAL52
CHEESl ITI DYNAMIC DJM •
ADA VTMP4
DYNAMIC SIZE
5SA
> DECLARED SIZE
e
PAGE
0405
0406
0407
04218
~409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
~425
ki426
0427
~428
0429
0430
0431
"04J2
0433
0434
1iJ435
0436
0437
0438
0439
0440
0441
0442
0443
0444
04-45
0446
0447
0448
0449
0 4 50
0451
0452
0453
~101
#~8
COMPILATION ANO DECOMPILATION
37474 "27 5 03
3141 5 161611
37476 041614
37417 ~41614
375o", 071616
37501 A65611
37502 ~27226
37503 065615
37504 160001
37505 044361
37506 035612
37507
0064~5
37510 164001
37511 171616
3751~ 035616
37513 115616
37514 035616
37515 11161637516 035616
37517 175616
37520 100200
37521 101616
37522 006003
JMP
LOA
ADA
ADA
STA
VALb2
VTMP1,I
VTMP4
VTMP4
COMPT
LD8 VTMPI
JMP VALut
vAL52 LOB VTMP5
LOA t,l
ADB .+2
ISZ VTMP2
CLB,INB,RSS
LOB 1,1
STA COMPT,I
ISZ COMPT
5T8
ISZ
STA
ISZ
5T8
MPY
002020
SZB,RSS
S8A
JHp VAL10
(MA,INA
STA VTMP2
CMA,INA
ADA .5009
5SA
027400
JMP VALlO,
37523 ~02020
37524 027400
37525
37526
37527
37530
37531
37532
37533
37534
37535
37536
37537
37540
37541
37542
37543
37544
37545
37546
.]7547
3755A
COMPT,!
COMPT
COMPT,l
COMPT
COMPT,I
COMPT,l
00300 4
071612
003004
~40443
ISz COMPT
LOB COMPT
035616
065616
003400
170001
044361
035612
027536
075616
065611
027226
061576
002002
027226
160001
37551
160000
37552
37553
37554
37555
170001
027226
015322
115110
ceA
VAL53
ST. 1,1
.40B • +2
ISZ
JMP
srB
LOB
JMP
VAl13 LOA
VTMP2
vAL53
COMPT
VTMP1
VALUl
vLFLG
SZA
,JMP VALUl
LOA 1,1
LOA ~,l
STA 1,1
JMp VALut
vAL14 JSS DCMPL
Jse"
YES
• COMPT+4
UPOATE
COMMON POINTER
~ESTORE
(8)
ROW DIMENSION
S>
-> COLUMN DIMENSION
TWO.DIMENSIONAL?
NO~·LOAD DEFAULT DIMENSION
PUT
DECL.ARED
DIMENSIONS IN
COMMON AREA
PUT
DyNAMIC
DIMENSIONS IN
COMMON AREA
cOMPUTE NUMBER OF ARRAV ELEMENTS
TOO
LARGE?
yES
COMPLEMENT
Of NUMBER OF ELEMENTS
ARRAY
TOO
LARGE?
YES
NO
NO.~SAVE
INITIALIZE
ALL
ELEMENTS
TO
UNDEFINED
UPDATE COMMON POINTER
RESTORE (8)
STORAGE
ALLOCATED?
YES
NO, GET
AND STORE
POINTER TO
VALUE TA"BLE
DECOMPILE
RERRS"'g, I NUMBER OF DIMENSIONS NOT KNOWN
PAGE
~1~2
#08
COM.PILATION AND DECOMPILATION
•
0.55.
0456 •• INITIALIZE STRlNG VARIABLE ••
04!57.
045ij 37556 ~75611
VALIS STB VTMPI
045q
LOA VLFLG
37557 ~61576
0460 37!§6~ 0~20((12
5ZA
JMP
VALt7
37561
'-127611
0461
0462 37562 160001
LOA 1,1
saA
0463 37563 A02020
JMP
VALt8
0464 37564 027624
LOB VTMPt,I
~465
37565 165611
0466 37566 060056
LOA PBPTR
0467 37567 011613
STA VTMPJ
INA
0468 37570 00200 4
0469 37511 v.150716
CPA LWAUS
•
0470
0471
0472
fd473
0474
0475
0476
0477
~478
0479
0480
0481
04 82
04 83
0484
0485
0486
0487
~48ij
0489
0 4 9121
0491
~492
0493
0494
0495
0496
0497
0498
0499
37572 115111
37573
070~56
37574 1716t1
37575
37576
37577
37600
37601
37602
37603
37604
37605
37606
37607
006003
0024",5
16121001
171613
001727
002004
001100
015326
07 0056
06 5 6 11
376t~
027226
001727
37611 160001
37612 003004
37613 040001
37614 002021
37615 027226
37616 007400
37617 145611
37620 160001
37621 010316
37622 170001
37623 027607
37624 003004
37625 071613
31626 061616
37627 002004
3763~ 170001
37631 16 16 16
37632 001727
SAVE (8)
STORAGE
ALLOCATED?
YES
NO
IN COMMON?
YES
NO, SAVE LENGTH POINTER
SET POINTER TO
LENGTH ENiRV
MORE
USER SPACE?
JSB RERRS+10,1 NO
STA PBPTR
YES, SET POINTER TO STRING
STA VTMP1,I
INTO SYMBOL TABLE ENTRY
SZ8,RSS
DEFAULT LENGTH?
CLA,INA,RSS
YES, SET (A) - 1
LOA 1,1
NO, LOAD DECLARED LEN'TH
ALF,ALF
STORE P~YSICAL LENGTH
STA VTMP3,I
ALONG WITH ZERO
ALF,ALF
LOGICAL LENGTH
INA
ALLOCATE
ARS
SPACE
JSB CUSP
FOR
STA PBPTR
STRING
VAL16 LOB VTMPI
RESTORE
JMP VALUI
(8)
vALl7 LDA 1,1
CMA,INA
STRING
AOA 1
IN
SSA,RSS
COMMON?
JMP VALUl
YES
eca
NO •• RESET
ADS VTMP1,I
LOA 1,1
LOGICAL LENGTH
AND M256
STA 1,1
TO ZERO
.IMP vAL16
VALl8 CMA,INA
STA VTMPJ
LOA COMPT
IN~
StT POINTER POSITIVE
.> DIMENSION INFORMATION
SET VALUE
POINTER IN
SYMBOL TABLE
EXTRACT PHYSICAL
LENGTH FROM
COMMON AREA
SAME AS DECLARED lENGTH?
0503
0504
37633 01050.10
37634 1516t3
STA \,1
LOA COMPT,!
ALF,ALF
ANO 8377
CPA VTMPJ,l
0505
37635 0020",1
RSS
yES
0506
0507
37636 027647
37637 161616
3764~ 0105A0
37641 003004
3764f,) 141613
JMP VAL2"
LOA COMPT,!
AND 8377
CHA,INA
ADA VTMP3,I
NO
LOGICAL
0500
°5 0 1
l4502
050~
0589
0510
LENGTH .-
PAGE "'103 #08
0511
0512
0513
0514
0515
0516
0517
051a
0519
0520
0521
0522
0523
~524
0525
0526
0527
(1)528
t(J529
0530
0531
0532
0033
0534
0535
0536
0537
0538
0539
0540
0541
37643
37644
37645
37646
COfi4PILATION ANO
002020
027647
161613
027653
376 4 7 16 1 613
3765~
001727
37651
37652
37653
37654
171616
"'01727
002004
001100
37655
~02004
37656
37657
37660
37661
37661
37662
37663
37664
37665
041616
37666
37667
37670
37671
37672
37673
37674
37674
37675
37676
37677
2171616
021226
5SA
.IMP
VAL20
LDA VTMP3,I
JMP VAL19
VAL20 LOA VTMPJ,I
ALF,ALF
STA COMPT,I
ALF,ALf
VAL19 INA
ARS
tNA
AOA COMPT
STA COt4PT
.JMP VALUI
VAL99 EQU
061576
002002 .
027674
061605
f102003
027674
060056
071756
060466
015326
A7"''''56
002404
071576
060056
071232
DECO~PILATION
•
LDA VLFLG
SZA
JMP VAL98
LOA tlSESN
SZA,RSS
JMP VAL9a
LOA P8PTR
STA IFSS
LOA .72
JSB CUSP
STA PSPTR
VAL98 FQU •
(LA,INA
STA VLFLG
LOA Pf;PTR
STA FCORE
PHYSICAL LENGTH!
NO
LOAD PHySICAL LENGTH
RESET PHYSICAL LENGTH TO
OECLARED LENGTH AND
LOGICAL LENGTH TO ZERO
UPDATE:.
COMMON
POINiER
HAS STORAGE
BEEN ALLOCATED'
YES
NO, ANy tPRINT
USING' STATEMENTS?
NO
YES,
ALLOCATE
SPACE fOR
FORMAT
STACK
SAY STORAGE
ALLOCATED
POINTER TO ENO
OF FIXED TABLES
PAGE
01~4
#~8
MAIN EXECUTION LOOP
004,3.
0544. *************************
0545****
***
0546*** lXlCUTE THE PROGRAM *.*
0547.***
•••
0548* .************************
0549*
0550*
0551* THE CORE.RESIDENT fILE BUFFE~5 FOLLOW THE VALUE TABLEI ONE
0552* RECORD-SIZED BLOCK OF CORE 15 ALLOCATED FOR EACH FILE REQUESTED
0553* IN THE . FIVE STACKS EXIST DURING EXECUTIONI
0554* SINCE SiACK POINTERS ARE ASSUMED TO REFERENCE THE TOPMOST
ft1555* ENTRY IN THEIR STACK THEY APE INITIALLY SET ONE ENTRY BELON
k1556* THE PHYSICAL START OF THl STACK, THUS THE FIRST ENTRY ADVANCES
0557* A STACK POINTER TO THE FIRST WORD OF ITS STACK SPACE, GOSU8S
0558* QUEUE THEIR RETURN ADDRESSES IN THE RETURN STACK, WHICH HAS A
0559* FIXED LENGTH Of NIN~ WORDS ALLOCATED IMMEDIATELy FOLLOWING
°56°* THE FILE SUFFERS, THE FOR-STACK (SIX-WORD ENTRIES) CONTAINS
0561* ALL INFORMATION pERTAINING TO ACTIVE FOR-NEXT LOOpS' INITIALLY
0562* EMPTY, ITS CORE SPACE IS ALLOCATED DYNAMICALLY AS NEEDEO. THE
0563. TEMPORARY STACK HOLDS INTERMEDIATE RESULTS DURING FORMULA
0564* EVALUATION; IT IS INITIALIZED TO HOLD TEN TEMPORARIES AND
1d565* EXPANDS DyNAMICALLY AS NECESSARy. THE OPERAND AND O'iRATOR
0566'- STACKS FOLLOW WITH THEIR ONE-WORD ENTRIES OCCUPYING ALTERNATE
0567* LOCATIONS, EXPANDING INTO FREE USER SPACE ON A DEMAND BASIS,
056 8* THE TOP OF THE OPERATOR STACK, ALWAYS AT LEAST ONE WORD AHEAD
0569* OF THE OPERAND STACK, IS PBPTR SO THAT ALL ACliVE USER SPACE
°57°* IS KEPT WITHIN THE SWAP REGION. SINCE ALL STACKS EXCEPT THE
~571*
RETUHN STACK EXPAND DYNAMICALLY, STATIC AND DYNAMIC NES1ING
0580.-
IN THE FILE TABLE AND NOTIFy USER OF ANy REQUESTED FILES
0572* OF FORMULAS AND FOR-NEXT LOOPS IS FREELY PERMITTED UP TO
0573* THE EXHAUSTION OF USER SPACE.
0574*
0575 ••
**
0576*** INITIALIZE EXECUTION * ••
0577**
**
0518*
05 79* PRINT THt PROGRAM NAME.
INITIALIZE FILE STATUS INFORMATION
0581* WHIcH ARE REAO-ONLY, ALLOCATE A 64 WORD BUFfER FOR EACH fILE.
0582* ALLOCATE RUN~TIME STACKS, INITIALIZE POINTERS TO THE DATA BLOCK,
0583* AND MOVE TO A FRESH TELETYPE LINE.
0584*
0585 37700 002400
CLA
0586 37701 170632
STA DCle!,I
CLOCK
13581 3770~ 114614
JSB ABCK,I
ABORT ATTEMPT DURING COMPILE1
0588 3771t1.3 160634
NO ...... UNBLOCK
LOA oCLC2,I
0589
STA DCle1,I
CLOCK
377 0 4 17 0 632
0590 377~5 \60255
LOA MAIN,I
0591
37106 "10506
AND CHNFG
1tJ592 377rJ7 071252
ST. TE~P2
5 AVEe HAI NFL A·G
0593 37710 002003
SZA,RSS
WAS THIS PROGRAM CHAINED TO?
0594 37711 027717
JMP xEC01
NO
0595 37712 103100
elF 0
YES
0596
37713 120255
XOR MAIN,1
CLEAR
0591 37714 170255
CHAIN ~lAG
STA MAIN,I
STF 0
~598
37715 1132100
PAGE 0105 #08
0599
0600
1601
0602
0603
9604
0605
0606
0607
0608
0609
0610
0611
0612
06 1 3
0614
9615
0616
0617
0618
0619
0620
9621
0622
06 23
0624
0625
0626
0627
0628
0629
0630
0631
0632
0633
0634
0635
0636
0 63 7
e638
06 3 9
0b40
0641
8642
,,643
0644
0645
0646
0647
0648
0649
0650
0651
0652
0653
0654
37716
37717
37720
37721
37722
37723
37724
37725
37726
37727
37730
37731
3ii32
37733
37734
377 3 5
37736
37737
37740
37741
37742
37743
37744
37745
37746
37747
37758
37751
37752
37153
37154
37755
37756
37757
37760
37761
37762
MAIN EXECUTION lOOP
027734
060371
015452
061567
071426
040360
1600£10
010273
002003
021734
006400
015274
060354
015460
002 .. 00
07 15 00
°7 1242
07 1607
071771
065502
055514
027777
JMP XEcra
XEctal L.OA ,+128
JSB OUTeR
L.INE FEED
LOA LNAME
STA LT1
ADA .+?NAME-?IO
LOA A,I
REMOVE RUN.ONLY
AND INF
BIT ANO CHECK POR
SZA,RSS
NULL PROGRAM NAME
JMP XEca
XEC0
XEC2
0355021
061252
002002
027153
160001
002020
124766
061027
044363
110001
044354
160001
001423
1708211
044366
37763 015326
37764 07 0 056
37765 170001
37766 12106004
37767 170001
37770 006004
37771 002400
37772 170001
37773 044363
37774 1700°1
37715 006004
37776 0277.2
37777 061500
40000 01212003
40001 026007
."002 060502
40003 103100
40004 139255
40005 170255
DON'T PRINT NAME
ECHO
CLB
ST8
LOA
JSB
CLA
STA
STA
STA
STA
LOB
CPS
JHP
ISZ
LOA
aZA
lT2
.-3
OUT8T
FCNTR
RTNST
ENOUF
ASINp
'ILTB
vALTS
XECA
FCNTR
TEHP2
JMp )(EC3
LOA 1,1
SSA
XEC3
XEC4
.JMP XEC 5 I, I
LOA BIT15
AOB ,+4
STA B,I
ADa ,-3
LDA B,I
ALR,RAR
STA 8,1
ADS .+7
JSB CUSP
STA PBPTR
STA 1,1
INB
8TA 1,1
INS
CLA
STA 1,1
ADB .+4
STA 1,1
INB
JMP XEC2
LOA FCNTR
YES
NO
OUTPUT
PROGRAM
NAME
ZERO
FILE COUNTER
AND MESSAGE FLAG
TURN OFF OVER/UNDERFLOW
SET NO ASsIGN PROCESSED
LOAD ADDREss OF FILl TABLE
DONE7
YES
NO, COUNT 'ILE
WAS THIS PROGRAM CHAIN!D T01
yES
READ
ONLy?
YES
NO
SET NULL
RECORD ADDRESS
GET RECORD
SIzE AND
CLEAR BITS 14 AND 15
ANO STICK BACK IN FILE TABLE
ALLOCATE
BUFFER FOR
THE FILE
8ET
'RECORD FULL'
CONDITION
SET
'NO EOF ExIT'
CONDITION
POINT TO MASK
CLEAR PROTECT MASK
pOINT TO NEXT ENTRY
SZA,RSS
ARE THERE
ANY FILES?
.JMP XEC9
NO.
LOA DFCHK
elF "
lOR MAIN,I
STA MAIN,I
yES, SET
POSSIBLE DIRTY
fILES BIT IN
TTY TABI.E
PAGE 0106 #08
1655
0656
1657
0658
0659
0660
0661
0662
0663
0664
0665
0666
;661
0668
1669
9671
121671
0672
MAIN EXECUTION LOOP
40006 102100
40007 061252
40019 002002
4001t 026120
40012 060374
XEC9
40016 060371
016452
064056
044356
315240
40023 075242
40024 04436J
40025 075246
XEC8
40026 015430
421021 065515
8673 40030 01e360
1614.
067S ... EXECUTE STAT£MENT
0616 •.
0677.
0678.
0679.
WAS THIS PROGRAM CHAINED TO'
JHP )CEC8
yES
LOA ,.158
NO, OUTPUT A
CARRIAGE RETURN
JSB OUTeR
LOA ·,+128
JSB OUTeR
4S013 015452
40014 060311
40015 015452
40017
40020
40021
40622
STF "
LOA TEHP2
SZA
LDA
JSB
LDB
ADS
STe
STB
ADS
8T8
JSB
LOB
JSB
•
,+128
OUTeR
PBPTR
,-I
RTRNQ
RTNST
,+4
FORQ
IETPT
SPROG
aETDp
AND
TWO
LINE FEEOS·
SET POINTERS TO
TOP AND BOTTOM
OF RETURN STACK
SET
EXECUTION
POINTERS.
SET POINTERS TO
FIRST
**
*
SAVE SEQUENCE NUMBER FOR POSSIBLE USE By ERROR RQUTINE,
AOVANCE PROGRAM COUNTER TO NEXT STATEMENT AND BRANCH TO
CODE FOR EXECUTION OF CURRENT STATEMENT,
0680.
8681*
1682 40031 065334 XECl
0683 .0032 160001
1684 ."033 011566
8685 40034 060001
1686 40035 002004
1687 40036 160000
1688 40031 015554
0689 40040 060001
1690 40041 002104
0691 40042 144000
1692 40043 015334
1693 40044 002804
1694 40045 071611
0695 40046 161611
e696 40041 010510
0691 4 0 050 001727
069S 40051 001300·
8699 40052 043'66
0100 40053 011234
0701 40054 124000
0102.
0703** OUTPUT READwONLY
0704.
11705 ""055
0706 40056
0701 40057
0708 40060
0709 40061
8710 40062
075240
064212
044346
160001
2110612
05e514
LOB PRGCT
LOA 1,1
STA ,L·NUM
LOA 8
INA
LOA A,I
JSB STLCK
LDA 1
INA
ADS e,I
8T8 PRGeT
INA
STA TEMPt
LDA TEMPt,I
AND OPMSK
ALF,ALF
RAR
AOA XECBR
8TA FILE'
JMP e,I
.*
SAVE CURRENT
SEQUENCE
NUMBER
CHECK
STATEMENT
LENGTH
COMPUTE
ADDRESS
OF NEXT
STATEMENT
SET INTRASTATEMENT POINTER
COMPutE
BRANCH
ADDRESS
FOR CURRENT
STATEMENT· TYPE
SET 'NO FILE' FLAG·
BRANCH TO APPROPRIATE ROUTINE
*
XEt5 STe RTRNQ *
WARNING
LDB
A08
LOA
AND
CPA
SAVE (8)
MLINK.t
,.7IO.?lINK
1,1
GET ID
M2000
IS IT
A&0e
AN ,,'1
PAGE 0107 *08
11711
e112
1113
0114
.715
1716
0117
0118
0719
0720
,,721
1122
1123
0124
0125
0126
0721
40063
40064
40065
40066
40067
40010
40071
40012
"0073
40014
JMP XEC7
ISZ RTNST
JSB, WERAS+8,t
ceA
STA IftTNST
438
LOA
JSB UTeR
LOA FCNTR
026107
03!242
115211
003400
0712-12
060422
0.
015.52
061500
040345
002020
4"2175 026103
40076 060440
40011 015452
e731
0732
40110
2140425
002801
040452
12115482
06"411
015462
065240
12~764
yES
NO, FIRST TIME THROUGHt
yES, EMIT MESSAGE
8ET fLAG FOR
M£SSAGE SUPPRE8SION
OUTPUT
'*'
A
OUTPUT
ADA ,.10
S8A
JMP
LOA
JsB
LDA
40100 061500
401211
421102
40103
40104
40105
40106
40107
8728
·0729
0730
MAIN EXECUTION LOOP
FIL.E #>97
XEC6
,+618
OUTeR
FCNTR
AOA ,.468
RSS
XEC6
xEC7
ADA .58
JSB
LDA
JaB
LOB
JMP
OUTeR
,+408
OUTeR
RTRNQ
)(EC3t,I
NO
YES
OUTPUT A '1'
OUTPUT
SECOND
DIGIT
OUTPUT SINGLE DIGIT
OUTPUT
BLANK
RETRIEVE (8)
PAGE 0108 #09
STATEMENT EXECUTION PROCESSORS
e""2*
,,003*.*
~004.*
1009
0010
ELET
40113 015336
JSB fORMX
40114 026031
JMP XECl
1012.*.
eS13*.
EXECUTE
0i114***
e81S.
40115
40116
40117
40120
40121
ee17
0018
0019
0020
0021
0022
0023
40122
40123
40124
."125
0024
40126
4 0 127
40130
4 0 131
40132
1125
""26
8021
1128
035611
EIF1
015504
035236
035611
115236
1042""
ElF
101611
05.S42
002020
002405
026115
071410
40133 015356
0029
0030
0031
.*
**
ISZ TEMPt
JSB VLFIL.
ISZ 'BASE
ISZTEMP1
40134 002003
40135 026031
EOF
CPB ENQOP
SSA
CL.A,INA,RSS
JMP £IF1
STA EDL
J8B FETCH
SlA,RSS
JMP XECl
OPERATOR?
NO
YES
ALLOW8TRING CONSTANT
EVALUATE DECISION FORMULA
RESULTANT 'TRUE' 1
NO
0032*
0034.. EXECUTE
1035***
*·
0040*.
0041 ..
110 .. 2*
0043
40137 001400
40140 075416
0145
40141 065611
&046
,"'8048
47
0049
8150
40142 006"04
40143 161611
40144 010e66
40145 0505!5fJ
1154
0055
."146 026161
40141 015356
40150 015342
40151 026831
40152 045611
40153 0"6004
"056
40t54 060001
"051
efa52
0053
*.
**
.*
SET FLAG TO 'GOTe. MODE
EGOTO CLB,RSS
EXECUTE
0044
E'OSS
EOF LABEL
TO
FILE TABLE
STB FBASE,I
JMP XEC1
OLD TEMP1,1
""33**_
0036*
0037 40136 006401
0038.
0039 •• *
EVALUATE
FILE REQUEST
TRANSFER
LOS TEMP1,I
165611
026031
ALLOW STRING CONSTANT
IN FORMUL.A
EVALUATE
FORMUl.A
ClA,tNA
STA EOl
0011*
ei16
*..*
••
EXECUTE
0005* ••
0006.
9007 40111 002404
8008 40112 071410
.
••••
••
eea
SET FLAG TO
l.DA TEMP1,I
COMPUTE SIMPLE 8RANCH
'ADDRESS' ADDRESS
SIMPLE
BRANCH
STATEMENT?
STB GrMP
LDB TEMPt
INB
AND OPOMK
CPA INTFl
JMP EGOS!
JSB FETCH
JSS 8BFIX
JMP XECl
ADS TEMPt
IN8
LDA 1
'GOauS' MODE
yES
NO, COMPUTE
BRANCH INDEX
UNSUITABLE RE8U~T
COMPUTE
'ADDRESS'
ADDRESS
PAGE
0057
0058
~l~Q
4~155
#~9
STATEMENT EXECUTION PROCESSORS
003~00
0061
0062
40156 041334
40157 002020
40160 026031
40161 164001
40162 035476
0~63
4~163
~26032
1rJ064
0065
40164
40165
40166
40167
061334
035242
171242
0059
0060
0066
0067
0068 4017~
ft1069
40171
0070 40172
0071
40173
0072.
0073**.
0074.*
061242
040345
051240
115116
0260J2
~55250
026231
071420
075512
065250
044365
061512
040365
015476
061420
026230
161611
010504
0714 2 6
001000
041573
040356
160000
065250
055246
026225
150001
026174
40223 E44351
0101
0102
4022 4
4022 5
40226
40227
0111
~112
*.
*.
**
0100
0104
0105
0106
0107
0108
0109
0110
wITHIN
ADA PRGCT
STATEMENT
SSA
RANGEl
JMP XECl
NO
yES, LOAD BRANCH ADDRESS
FGOSI LOB 1,1
'I
ISZ GTMP
JMP XEC1.l
YES
LOA PRGCT
NO, STACK
RETURN
ISZ RTNST
STA RTNST,I
ADDRESS
NESTING
LOA RTNST
ADA .-10
10
CPA RTRNQ
DEEP?
.J5B RERRS+15,1
YES
Jt4P XEC1+1
NO
fXECUTE
0075.*.
0076.
0077 40114
0078 4017b
0079 40176
0080 40177
40200
0081
0082 40201
0083 40202
0084 40203
0085 40204
0086 40205
0087 40206
0088 40207
0089 40210
0090 4 0 211
1ti091
40212
0092 40213
0093 40214
0094 40215
0095 40216
0096 40217
0097 40220
0098 40221
0099 40222
0103
eM.
026217
065 2 5 0
044365
015430
4023~ 171250
40231 015336
40232 061250
4°233 002 0QJ 4
4 0 2 3 4 07 t.~$20
40235 040361
40236 V!71422
120237 040361
EFOR0 CPB FORST
JMP EFOR5+1
STA EfN0
STB DEST
LOB FORST
ADB .... 6
LOA DEST
ADA .+6
JSB MovEH
LOA EFNra
JMP EFOR5
EFOR LOA TE.MPt,!
AND B777
STA FVT
ALS
ADA SYMTB
ADA .-1
LOA
LOB
EFoRt CPS
JMP
CPA
JMP
ADB
JHP
EFOR2 LOB
0,1
FORST
FORQ
EFOR2
1, I
EFORQJ
.-6
EFORl
FORST ADS .+6
JSB
EFOR5 STA
JSB
LOA
INA
sErPT
FORST,I
FORMX
FORST
STA EFN0
ADA .+2
sr A EFNl
ADA .+2
TOP ENTRY?
yES
NO, SAVE (A)
SET DESTINATION ADDRESS
COMPUTE MOVE
TERMINATION ADDRESS
COMPUTE
SOURCE ADDRESS
DELETE FOR.TABLE ENTRY
RETRIEVE CAl
EXTRACT
AND SAVE THE
FOR-VARIABLE
COMpUTE
ADDREss
OF ITS
vALUE
LOAD POINTER TO FOR.STACK
AT BOTTOM Of fOR-STACK?
YES
NO, ENTRY FOR THIS FOR.VARIABLE?
yES
NO, CHECK
LOWER ENTRY
MOVE TO SPACE
FOR ENTRY
RESET ExECUTION POINTERS
SAvE ADDRESS OF VALUE IN ENTRy
INITIALIZE FOR.VARIABLE
SAvE. POINTERs TO
ENTRY FOR
LIMIT VALUE
AND-
STEP sIZE
SAVE ADDRESS OF
PAGE 0110
0113
~114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
#~9
STATEMENT
4~240 065334
40241 1'14000
40242 015356
40243 104400
4~'-44 101420
4024b ",61611
40246 V151JJ4
40247 026304
40250 015356
40251 104400
40252
40253
40254
40255
40256
40257
40260
40261
40262
40263
40264
40265
40266
035334
065334
006004
4~267
et50562
101422
006400
002020
007400
075424
1600~1
071366
044356
0145
0146
0147
0148
LOA
CPA
JMP
JS8
EFOR3 OST
Tf:..MPl
PRGCT
E.FOR6
FETCH
EFN1,!
IMPLICIT
STEP SIZE?
CLB
5SA
eea
STB EfN2
ISz PRGCT
LOB PRGCT
ffOR4 INS
LOA 1 , I
STA fFNJ
ADS .-1
AND OPMSK
CPA NXTOP
RSS
JMP EFOH4
XOR EFNJ
CPA FVT
RSS
JMP EFOR4
4°2 71 "26261
0144
fOLLOWING STATEMENl
IN ENTRY
COMPUTE AND SAVE
LIMIT VALUE
010510
40270 002001
0143
PRGCT
0,1
FETCH
Ef"N0,1
AOB 1,1
0136
0137
0138
0139
121 140
0141
0142
021366
051426
002001
0262~1
40276 044356
40277 075334
40300 165250
40301 104 2 "0
·40302 le0001
40303 026346
40304 061031
40305 064361
40306 026 2 5 1
ADS .-1
STB PRGeT
l.OB FORST,!
DLD t I I
JMP
EfOR6 LOA
LOB
JMP
ENEX3
HALF
.+2
EFOR3
0149.
0150.**
0151** EXECUTE
0152**.
0153*
0154
0155
01 56
0157
0158
0159
0160
0161
0162
0163
0164
0165
40307 161611
4031£'1 0105A4
40311 001000
40312 041573
40313 040356
40314 160000
4 0 315 06525 0
40316 055 24 6
40317 026031
4~320
150001
40321 026324
40322 044351
PROCESSORS
LOB
STB
JSB
05T
144001
0135
40272
4 0 273
40274
4 0 215
~XECUTION
SET SIGN FLAG
TO -1 fOR
NEGATIVE STEP SIZE,
o fOR POSITIVE STEP SIZE
LOAD
TyPE wORD OF
STATEMENT FOLLOWING
THE cFOR STATEMENT>
SAVE IT
COMPUTE POINTER
TO ITS SUCCESSOR
'I
yES
NO
SAME
FOR-VARIABLE?
yES
NO
SET PROGRAM COUNTER
PAST
LOAD
INITIAL VALUE OF
FOR.VARIABLE
LOAD
DEfAULT
Of 1.0
••
.***
ENEXT LOA TEMPt,l
AND B777
ALS
ADA SYMTB
AOA .-1
LOA Pt,I
l.OB FORST
ENEXI CPS FORQ
JMP XEC'1
CPA 1 , I
JMP F.NEX2
4DB • ",,6
yES
NO, COMPUTE STEP SIZE
AND SAVE VALUE
EXTRACT
fOR.VARIABLE
COMPUTE
ADDRESS
OF ITS
VALUE
LOAD POINTER TO FOR-STACK
BOTTOM OF STACK?
yES, IGNORE 'STATEMENT
NO, ~ATCHING ENTRY?
yES
NO,~HECK
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
°176
0177
~17a
0179
0180
0181
~182
0183
~184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
40323 026316
40324 071422
4~325 055250
40326 026331
40327 015430
40330 065250
40331 VJ06004
40332 075420
40333 044361
4033.4 060355
4 0 J35 071424
40336 t042~0
40337 10012101
40J4\t1 002020
40341 "'30424
40342 0154~2
40343 101422
40344 1044ftl0
40345 101422
40346 0154~4
40347 101420
40350 035424
40351 001600
4 0 352 00202~
40353 026360
40354 061250
40355 040364
40356 164000
4035 7 02612132
40J6~ 065250
40361 ~44351
40362 015430
40363 ,,26031
JMP
ENfX2 STA
CPB
JMP
JSB
LOB
INS
STB
ADB
fNEX1
EFNl
FORST
.+3
SETPT
FORST
LOWER ENTRY
SAVE FOR-VARIABLE VALUE ADDRESS
TOP ENTRy OF FOR. STACK?
YES
NO, RESET
EXECUTION POINTERS
SAVE ADDRESS
OF LIMIT VALUE
EfN0
.+2
SET SIGN FLAG TO SAY
POSITIVE STEP SIZE
LOA ."2
STA EfN2
DLD t,I
LOAD STEp SIZE
5SA
ISz
JSB
OfF
DST
EFN2
.fAD
EF N1,I
EFN1,I
fNEX3 JSB .Fsa
DfF EFN0,I
ISZ EFN2
ElA
5SA
JMP ENEX4
LOA FORST
SUBTRACT
LIMIT VALUE
IF STEP SIZE POSITIVE,
INVERT SIGN OF RESULT
LIMIT VALUE EXCEEDED?
yES
ADA .+5
ENEX4
POSITIVE?
NO, RESET SIGN FLAG
ADD STEp SIZE
TO VALUE OF FOR.VARIABLE
SAVE NEW VALUE
LOB
JMP
LOB
ADB
JsB
0,1
XEC1+1
FORST
.JMP
XECl
•• 6
SE.TPT
NO, LOAD ADDRESS
OF STATEMENT
FOLLOWING THE
0197*
k1198***
0199**
0200***
0201*
0202 4 03 64
0203 40365
0204 40366
13205 40367
0206 40J70
0207 4037t
0208 40372
0209*
**
**
**
06124 2
051240
115117
1640"0
040356
071242
026"'32
ERTRN LOA
CPA
. JSB
LOB
ADA
srA
JMP
RTNST
RETURN STACK
RTRNQ
EMPTY?
RERRS+16,I YES
0,1
NO, POP
.~1
RETURN ADDRESS
RTNST
FROM STACK
xEC1+1
~210***
**
**
**
0211**
~212.**
0213*
"'214
0215
0216 '
0217
1tl218
1d219
4037.3 002400
40374 071476
EINPT
~71456
E I NP!.
4~375
40376 002400
40377 071 4 70
40400 ~15444
CLA
STA
srA
MCN·r
INITF
CLA
STA SYN1Q
JSB INCAL
TURN OFF
MATRIX INPUT COUNTER
SAVE ADDRESS FLAG
REQUEST
FIRST
'.INPUT RECORD
PAGE 0112 #09
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
40401
40402
40403
40404
40405
40406
40407
1d231
0232
40414
40415
40416
0233
0234
0235
02 3 6
0237
0238
0239
0240
0 2 41
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
4041~
40411
40412
40413
40417
40420
40421
40422
40423
40424
40425
40426
STATEMENT EXECUTION PROCESSORS
035420
00 3 400
051456
026415
015336
165332
EINP2 ISZ
CCA
CPA
JMP
JSB
LDB
£lH~6020
SSB
026521
061332
040355
071332
075572
002400
071266
(1171354
026424
075266
015444
035420
015446
026422
007400
JMP
LDA
ADA
STA
IFCNT
INITF
EINPJ
FORMX
OPDST,I
EIN13
OPDST
,-2
OPDST
STB SBPTR
EINPJ (LA
STA
S1A
JMP
STB
JSB
SIGN
INlMP
EINP4
SIGN
INCAL
ISz IFeNT
.-3
EINP4 JSB GETCR
JMP
CCB
COUNT INPUT QUANTITy
MATRIX
INPUT'
yES
NO, EVALUATE NEXT ADDRESs
IS IT A
STRING VARIABLE?
YES
NO,
UNSTACK
ADDRESS
sAVE DESTINATION ADDREss
SET SIGN
TO POsITIvE
FLAG REQuEST FOR NUMBER
RESET SIGN TO POSITIVE
FETCH
FIRST
CHARACTER
TURN OFF
OVER/UNDERFLOW FLAG
40427 ()I75472
STB SERR
4043~
CpA ,+45
, .. , 1
.JMP E IN11
YES
NO
05~434
40431 026506
40432
40433
40434
40435
40436
006404
(2150432
0265 0 6
~15276
026471
40437 026475
40440 064417
40441 075571
40442 035476
40443 002001
40444 127771
40445 065611
40446 055334
40447 026512
40450 035472
40451 026456
40452 050374
40453 026400
40454 050433
40455 026465
40456 115201
40457 065420
CLB,INB
CPA ~+43
JMP EIN1i
EINP5 JSB NUMCK
JMP EINP1
JMP EINP8
EINP6 LOB ,+408
STB BLANK
ISZ MCNT
RSS
JMP MIOEN,I
EINP0 LOB TEMPt
CPB PRGCT
yES
DID OVER/UNDERfLOW OCCUR?
YES
NO, END OF INPUT RECORD?
YES
NO, COMMA NEXT?
YES
NO
OUTPUl NEXT
ITEM
NUMBEH
OUTPUT
CARRIAGE RETURN
.IMP E I NP2-1
,+548
CPA
JMP
EINP9 JSB
LOB
INS
J58
LOA
JSB
JMP
EIN10 JSB
JMP
JSB
JMP
060374
015452
026400
015446
026456
40,1467 015450
4~'47~ 0126401
NO, NUMBER?
NO
BAD EXPONE:NT
TURN ON
BLANK SUPPRESSION
MATRIX COMPLETED?
NO
YES
SATISFIED?
ISZ SERR
JMP EINP9
CPA ,+158
006~04
40462
40463
40464
40465
40466
YES
.JMP EIN12
40461 V]15454
4046e1
, ... , 1
EIN10
WERRS,I
IFCNT
QUlIN
.+158
OUTCR
EINP2 ... 1
GETeR'
EINP9
BCKSp
EINP2
END of INPUT RECORD?
YES
NO
PAGE 01tJ
1fJ276
0277
0278
0279
~280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
03221
0321
0322
03 2 3
~324
0325
0326
~327
~328
0329
0330
0331
40471
40472
40473
40474
40475
40476
40477
40500
40501
40502
4 0 5°3
40504
40505
4°5 0 6
40507
~09
STATEMENT
05Q1421
E.INP7 CPA ,+428
026470
055266
JMP
CPB
.JMP
EINP8 JSB
LDB
JSB
LOA
JSB
CLB
~26424
115201
065420
015454
060374
015452
006400
055354
026421
026535
075266
015446
40510 026475
40511 026435
4~512 050374
40513
40514
40515
40516
40511
4052 0
40521
40522
40523
40524
40525
40526
40527
4053(11
002401
115210
071570
060371
Q}15452
~260Jl
007000
160001
001727
01051210
003000
141330
"71410
003400
40531 015344
40532 065406
40533 075354
40534 026537
4Q1535
0154~4
40536 035420
~0537
4054~
015446
026535
4"541
40542
40543
40544
40545
40546
40547
AI2I7400
4(2155~
075472
050421
EIN13 CMS
LOA 1.,1
ALF,ALf
AND B377
eMA
ADA TMPST,I
STA
ceA
TPRME
JSB PSTR
LOB TNUlL
STB INTMP
JMP .+3
EIN14 JSB INCAl
ISZ IFCNT
JSB GETeR
JMP *-3
eeB
STB
SERR
CPA .+428
RSS
JSa
CLB
STB
LOA
JSB
40554 026600
40555 055462
40556 ~26574
EINP8
SIGN
EINP4
WERRS,I
IfCNT
QUTIN
,+158
OUTeR
JMP EINP4 .. J
JMP EIN14
EINli STB SIGN
JSB GETeR
JMP EINPS
JMP EINP5
EIN12 CPA ,+158
CLA,RSS
JSB WERRS+7,1
STA CHRCT
LOA .+12B
JSB OUTCR
JMP )(£C1
QI~200t
0554~6
PROCESSORS
cpa INTMP
015450
006400
075571
06371121
40551 01535121
40552 006400
40553
~XECUTION
CLB
RCt(SP
BLANK
FINeA
TRSTR
cpa TNULL
JMP EIN21
cps pst
4v.1557 071354
JMP fIN2~
SrA INTMP
4056VJ 003400
CCA
?
YES
NO, SIGN FOUND?
NO, IGNORE CHARACTER
yES
OUTPUT
ITEM NUMBER
OUTPUT
CARRIAGE RETURN
NUMBER
REQUESTED?
n
yES
NO
SAVE SIGN
OUT~Of.DATA
ERROR
END OF RECORD?
YES
NO
zERO CHARACTER COUNT
OUTPUT A
LINE FEED
EXTRACT
PHYSICAL
LENGTH OF
DESTINATION STRING
SET IT AS END
OF UNSPECIFIED
DESTINATION STRING
PREPARE
DESTINATION STRING
SAVE LENGTH
ALLOWANCE
FETCH
fIRST
CHARACTER
TURN OFF
OVER/UNDERFLOW FLAG
" ?
yES
NO, STRING BEGINS HERE
TURN OFF
BLANK SUPPREsSION
POINT TO INPUT BUFFER
TRANSfER STRING
ALL REQUESTED
CHARACTERS
TRANSFERRED?
YES
NO, TRANSFER LENGTH SPECIFIED?
NO
yES, SAvE (Al
FINISH
PAGE
0332
0333
0334
0335
0336
0337
0338
~114
40561
40562
40563
40564
40565
40566
40567
#09
STATEMENT EXECUTION PROCESSORS
071410
041406
071406
~60664
015350
~61354
~50374
0339 4057~ ~26440
0340 40571 015446
0341 40572 000000
0342 . 40573 (1126440
0343
0344
0345
034 6
0347
0348
lt1349
~350
0351
0352
0353
0354
"-'355
0356
0357
0358
40574 165260
40575 045406
40576 175260
40·577 02 6 5 67
40600 055462
40601 026607
40602 015446
40603 026440
40604 Ql50421
40605 026571
40606 026602
40607 015446
4061~ 026440
40611 050421
40612 026571
40613 061354
40614 071406
40615 061572
40616 071272
40617 060417
4062~ 071571
4 0 621 026475
ST"
ADA
STA
LDA
JSB
LOA
fIN18 CPA
JMP
EIN19 JSB
NOP
JHP
EIN20 LOB
AOB
STB
TPRME
TNULL
TNULL
FSCHA
TRSTR
INTMP
.+158
EINP6
GETCR
EINP6
TEMP6,I
TNULL
TEMP6,I
.JMP EIN1e
EIN21
cpa
pst
JMP fIN15
EIN16 JSB GETCR
.}MP fINP6
CPA .+428
JMP EIN19
JMP EIN16
EINt5 JSB GETCR
.JMP EINP6
CPA .+428
JMP EIN19
LOA INTHP
STA TNUll
LOA sBPTR
STA TEMP5
LOA .+408
srA BLANK
JMP EINP8
0359
0360
0361
kJ362
0363
0364
0365.
0366***
**
0367.* EXECUTE **
0368***
**
0369*
0370 4 0 622 015504 EREAD .JSB VLFIL
JMP EREA1
0371
40623 026640
JsB FORMX
0372 40624 015336
0373
40625 161332
L.OA nPDST,I
5SA
0374 40626 002020
0375 40627 026644
JMP ERfA2
STA SBPTR
0376 4 0 63 0 07 1 572
0377 4 0 6 31 061332
LOA OPDST
0378 40632 040355
ADA ... 2
STA OPOST
0379 40633 071332
0380 40 6 34 006 4 04
CLB,INB
JSB FDATA
0381 40635 015362
0382 4 0 6 3 6 1 0 4400
DST saPTR,l
421637 101572
0383
40640 "'61611 EREA1 LOA TEMP1
0384 4~641 VJ51334
CPA PRGCT
0385
JMP )(ECl
40642 026031
~1386
40643 ~l\26624
JMP EREAO+2
TRANSFER
WITH BLANKS
RESTORE (A)
TRANSFER ENDED BY ENO .. Of .. INPUT?
yES
NO, wAS A ..
EXIT WITH
NExT CHARACTER
SET LOGICAL
TO ACTUAL
STRING L.ENGTH
LENGTH OF TRANS,ER SpECIFIED?
NO
yES
IMPLIED CLOSING QUOTE
" ?
yES
NO, LOOK FOR " OR END-Of-INPUT
END-Of-INPUT NEXT1
YES
NO, CLOSING It ?
YES
NO, DESTINATION STRING EXCEEDED
RESTORE
DESTINATION STRING
PARAMETERS
sET To
SKIP BLANKS
LOOK FOR FILE REQUESl
FILE REQUEST FOUND
EVALUATE DESTINATION ADDREss
STRING
VARIABLE?
YES
NO, SAVE AND
UNSTACK
DESTINATION
ADDRESS
FETCH
NUMBER
ST:'RE NUMBER
ENO OF
STATEMENT?
yES
NO
PAGE
0387
038tt
0389
0390
0391
~392
~115
#09
STATEMENT EXECUTION PROCESSORS
40644 064361
40645 015362
40646 003400
40647 015344
40650 060664
40651 015350
40652 fl'26640
EHEA2 LOB .+2
.JS8 FOATA
eCA
.1S8 PSTR
lDA FSCHA
JSB TRSTR
JMP EREAl
PREPARE
SOURCE STRING
PREPARE
DESTINATION STRING
TRANSFER STRING
0393
0394.
0395.**
**
0396·· EXECUTE
0391 •• *
••
*.
'139~*
0399
0400
0401
0402
0403
0404
04S5
0406
0418
40653 002404
40654 015552
40655 002400
40656 071754
40657 015504
40660 021017
40661 "'26671
40662 061234
40 66 3 002021
40664 ~26670
4 0 665 002400
4°666 05 1 47 0
40667 015426
40670 003401
40671 002400
40672 071470
40673 161611
40674 12110566
40615 002002
40676 026722
",,419
413677 035611
0420
~421
40100 065611
40101 055334
0422
407212 0270t4
13423
40703 161611
40704 ~10570
4~705 050514
40706 026662
0407
040a
0409
04113
0411
0412
0413
0414
0415
0416
It'417
0424
0425
0426
0427
0428
~429
0430
0 4 31
0432
0433
0434
1cJ435
~436
0437
0 4 38
0439
0440
111441
0442
40707
40710
40711
40712
40713
40714
413715
40116
40717
40720
40721
40722
40723
40724
40125
40726
EPRIN CLA,INA
JSB EpRUS
CLA
STA FFlG
.JSB- VLF IL
JMP EPRI2+1
LOA FILE*
SSA,RSS
JMP EPRI2
CLA
CPA EOl
JSB EDELM
CCA,RSS
eLA
STA EOl
EPRI3 lOA TEMPt,I
AND OPDMK
~PRll
SZA
JMP EPRI5
ISz TEMP1
EPRI4
JMP EPR12
ANO OPMSK
cPA 82000
JMP EPRll
CpA 83000
026746
015336
165332
"06020
LOB TEMPt
cpa PRGCT
LOA TEMPi,I
050506
071470
FLAG AS
NON .. FORMATTED
VALIDATE FILE REQUEST
,JMP EPR 13
050516
026670
050542
027006
002003
026673
003400
041611
071611
003400
FLAG AS 'PRINT'
CHECK FOR usING STATEMENT
EPRI5
JMP EPRI2
CPA 81000
JMP EPRI8
CPA ENDOP
JMP EPRll
SZA,RSS
JMP fPRI3
eCA
ADA TEMpt
STA TEMP1
CCA
STA EOl
JSB FORMX
LDB OPDST,1
SSB
NO FILE REQUEST fOUND
FILE
MODE?
yES
NO, EXECUTE COMMA
UNLESS PRECEDED BY
A 'TAB' (EOl • 1)
TURN oFF tENO.OF.LINE' FLAG
TURN ON
'END~OF_LINE' FLAG
ExTRACT
NEXT OPERAND
NULL.?
NO, B~GINS FORMULA
yES
STATEMENT
FINISHED?
YES
NO, EXTRACT
NEXT OPERATOR
cOMMA?
YES
NO, sEMICOLON?
YES
NO f " 7
yES
NO, 'END' ?
yES
NO, NULL?
yES
NO, MUST BE FORMULA
REsET TO PRIOR
NULL OPERAND
TURN OFF
'TAB' FLAG
E.VALUATE FORMULA
IS IT A
STRING VARIABLE?
PAGE 0116
0443
0444
0445
171446
Pl447
044~
0449
0450
0451
0452
045 3
0454
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0 4 71
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483
A484
0485
0486
0487
0488
~489
11..
0490
0491
0492
1t' 4 93
0494
0495
0496
'1497
40727
40730
40731
40732
4"1 33
40734
40735
40736
40737
40740
40741
4°74 2
40743
40744
421145
4£'1746
40747
40750
40751
40752
40753
40754
40755
40756
40757
40760
40761
40 7 6 2
40763
40 76 4
40765
40766
40767
#~9
STATEME.NT EXECUTION
JMP EPRI8+1
JSB OPCHK
LOA fILESSA,RSS
JMP EPRI7
ISZ EOl
.JMP EPR I 4
OLD 1,1
026747
015376
0161234
002021
02 6 7 42
035470
~26700
10420~
1"0001
015416
JSB ENOUT
JMP EPRI4
~26700
075572
064355
"'15510
026700
015340
060355
015344
071256
075410
064354
061234
002021
026744
002400
EP~I7
8TB SBPTR
LOB
JSB
JMP
EPRI8 JSB
,-2
FILST
EPRI4
STSTR
L.DA _-2
JSB PSTR
STA TEMP4
SrB TPRME
LOB ... 3
LOA FILE,
SSA,RSS
061406
003004
041570
YES
NO, UNSTACK VALUE ADDRESS
TO BE WRITTEN
ON A FILE?
YES
NO, A 'TAB' "
YES (E.OL • 1 NOW)
NO, OUTPUT
A NUMBER
SAVE VALUE ADDRESS
WRITE 'NUMBER
ON fILE
STACK STRING CONSTANT
PREpARE
PRINT
STRING
PRESET TO WRITE ON FILE
TO BE WRITTEN
CLA
ON A FILE?
YES
NO, TURN ON
STA EOl
LOA TNULL
ENOU&H
JMP EPRI7+2
~71470
'ENO .. OF .. LINE' FLAG
(MA,INA
SPACE
ON
ADA CHRCT
ADA M7 4
~43772
002021
"'15424
027003
4077~ 015364
40771 060417
40772 ~50375
40773 0160371
40774 050376
40775 002001
40776 027002
40777 060374
410010 015452
41001 002400
41002 015452
41003 0354~6
41004 026770
41005 026700
41006 071651
41007 015512
41010 05121362
41011 026677
41012 007400
41013 026744
41014 03547fti
41015 015424
41016 026031
PROC~SSORS
SSA,RSS
JSB OUTlN
JMP EPR10
EPRI9 JSB FSCH
LOA .+408
CPA .+t68
LOA .+128
CPA .+178
RSS
~JMP
EPR10 .. t
LOA
JSB
CLA
JSB
EPR10 ISZ
OUTeR
TNULL
JMP
EPRI9
.+158
OUTeR
JMP EPR14
EPR11 STA EORFL
JSB
CPA
JMP
eCB
JMP
EPR12
CURRENT
LINE"
NO
YES
FElCH
CHARACTER
PSUEOO LINE FEED?
YES
PSUEDO CARRIAGE RETURN?
YES
NO
OUTPUT
CARRIAGE RETURN
AND A NUll
OUTPUT CHARACTER
MORE STRING?
YES
NO
fILE
GTTYP
.+3
EPRI4 .. 1
FULL?
ISz EOl
YES
NO. WRITE
ENO-OF .. FILE
'END",OF.LINE'
JSB OUTLN
JMP XECl
yES
NO
EPR17+2
fL.AG SET?
PAGE
0498
0499
0500
0501
0502
0503
0504
0505
~117
41017
*'19
STATEMENT fXECUTION PROCESSORS
~44347
41020 160001
4tPl21 ,,31027
41022
41023
41024
41025
41026
170001
065611
055334
026031
026670
EPR13 ADS
LDA
lOR
STA
LDB
CPB
.IMP
JMP
• .,8
8,1
RITl5
SET HUFFER
B,I
BIT
NULL
PRINT'l
yES
NO
TEMP1
PRGCT
XEC 1
EPRI2
0001.
0002.*
0003*.
0004 ••
0005*
EXIT TO (P+1)
0006*
0007.
0008*
~009
41027 071754
41030 ~65611
41031 160001
0012
41032
0013
0014
0015
0016
41033
41034 125552
0011
0018
0019
0020
0021
0022
0023
0024
0025
41040
41041
41042
410 4 3
41044
0027
0028
0029
0~30
~031
0032
0033
0034
0035
0036
0037
0038
0k' 3 9
0040
0041
0042
0043
0044
0045
0046
0047
0048
**
**
••
If NO USING OPERATOR FOUND, OTHERWISE PREPARE
fORMAl SPECIFICATION STRING AND CALL FORMATTED OUTPUT ROUTINE.
0010
0011
0026
DIR ...
TY
#EPRU STA FfLG
LOS TEMPt
SAVE fORMAT FLAG
l OA B, I
41036 125552
CPA PRTOP
JNB,RSS
JMP EPRUS,1
CPB PRGCT
JMP EPRUS,I
NULL OPERAND?
YES
NO, CAN'T BE USING S1ATEMENT
END OF STATEMENT7
YES
4\037
16~001
LDA B,1
NO,
010570
AND OPMSK
CPA USEOP
~b0574
~06005
4 10 35 ~55334
050604
002001
125552
1200~1
41045 075611
41~46
~02021
41~47
027065
41050 0060c;,4
4 10511 64 0" 1
41052 A44361
41053 16 000 1
41054 010570
41055 050546
4105(; "02001
41057 115145
41061(1
41061
41062
41063
41064
035611
035611
002400
071760
015550
4106~ 002003
41066 027135
41067 ~15336
41070 060355
41071 ~15344
41072 161260
41073 01~500
4t{l'74 1?l020ti13
41075 026 0 31
41e.76 003004
RSS
'USING'
OPERATOR
NEXT?
YES
JMP EPRUS,I
NO, EXIT
XQR B,I
GET OPERAND
5TB TEMPt
SAVE POINTER
SSA,RSS
INTEGER FOLLOWS?
JMP EPRUI
NO
INS
LOB B,I
GET ADDRESS OF IMAGE
ADS .+2
=> L~NGTH WORD
LOA R,I
ANO OPMSK
GET OPERATOR
CPA IMGOP
IMAGE?
RSS
yES
JSB RERRS+38,I NO, ERROR
ISZ TEMPt
BUMP TO POINT
ISZ TEMP1
TO FIRST OPERAND
CLA
STA NCH
JSB FRMAT
CALL FORMATTER
EPRUl SlA,RSS
NULL OPERAND?
JMP EPRU4
YES
JSB FORMX
NO, FETCH
LOA .-2
STRING
JSB PSTR
OPERAND
LOA TEMP6,I
GET
AND 8377
LENGTH
SIA,RSS
NULL STRING?
JMP XECl
YES
CMA,INA
NO, SAVE
ST~TEMENT
0049
0050
41077 071550
0051
0054
0055
0056
0057
0058
41101 "44361
41102 160001
41103 003004
41104 006004
41105 134001
41106 027112
41107 002400
41110 071760
0059
4111,1 02712!:j
0060
41112 140001
41113 002003
41114 026031
0052
0053
0~61
41100 rlI65330
0062
0063 41115
0064 41116
0065 41117
0066 4112~
0067 41121
0068 41122
0069 41123
0070 41124
00 7 1 41125
0072 41126
0073 41127
0074 4113V1
0075 41\31
0076 41132
0077 41133
0078 41134
0079 41135
0080 41136
0081
41137
0082 4tt4Q1
0083 41141
0084 41142
"085 41143
0086 41144
0087 41145
0088 41146
0089 41147
0090.
0091.·.
0092 ••
0093**·
0094.
0095 41150
0096 41151
0097
41152
0098 4t15j
°"99 41154
0100 41155
'1101 41156
0102 ..
0103 ....
0104 ••
STA 5TRLN
LD8 TMPST
ADB .+2
LOA B,I
CMA,INA
INB
ISZ A,I
JMP EPRU2
CLA
STA NCH
JMP EPRU3
EPRU2 ADA B,1
SZA,RSS
JMP XECl
"LENGTH
GET FIRST SUBSCRIPT
NEGATE IT
SECOND SUBSCRIPT EXIST?
yES
NO, SET
CHARACTER COUNT
COMPUTE DIFFERENCE
NULL. STRING?
yES
115153
071760
NO, NEGATIVE?
.ISB RERRS+44,I YES
STA NCH
NO, SAVE DIFFERENCE
P!03400
CCA
5SA
~02020
140001
041 55 0
~02021
115153
044356
160001
041550
002 0 2 1
115153
160001
065260
01555~
006004
160001
010566
002004
001100
041611
040361
071611
ADA B,1
SECOND
SUBSCRIPT
ADA STRLN
SSA,RSS
VALID1
J5B RERRS+44,I NO
EPRU3 ADB .-1
YES
LOA B,1
fIRST
ADA STR~N
SUBSCRIpT
SSA,RSS
VALID?
JSB RERRS+44,I NO
LOA B,I
YES, LOAD IT
LDB TEMP6
a> FIRST WORD OF STRING
JSB FRMAT
CALL FORMATTER
INS
a> 1ST WORD OF STRING
l,DA B,I
UPDATE
AND OPDMK
INA
INTRAARS
ADA
ADA
STA
CLA
SrA
JSB
002400
07176~
015550
STATEMENT
TEMPt
.... 2
TEMPt
POINTER
NCH
FRMAT
CALL FORMATTER
••
••
••
161611
03~611
065575
002020
165611
015360
02612131
E~STR
LDA TEMPt, I
lSZ TEMPt
LOB SPROG
SSA
LOB TEMP1,I
JSB SE'fOP
JM~ xEC1
**
.'1\'
LOAD FLAG WORD
ADVANCE STATEMENT POINfER
SET (B) TO START OF PROGRAM
'LABELLED RESTORE'
YES, RESET (8) TO STATEMENT
SET DATA POINTERS
PAGE 0119 #10
STATEMENT EXECUTION PROCESSORS
0105.**
01216.
0107 41 U57 161611
~108 . 41160 010566
01°9 41161 002~HlJ2
" 110 4116~ ~27214
0111 41163 065611
0112 41164 006004
0113 41165 160001
0114 41166 010510
0115 41167 ~50520
0116
4117!2' 002001
0117
0118
0119
41171 021214
41172 075611
0120
41174 165332
41175 075572
41176 061332
41177 040355
41200 071332
41'-01 064255
41202 00 6 004
41203 160001
41204 001727
41205 105120
41206 171572
41207 035572
41210 175572
41211 06 16tl
41212 051334
41213 026031
41214 QJ15356
41215 015414
41216 ~00000
41217 060001
41220 010500
41221 002003
41222 002004
41223 071610
41224 060255
41225 002004
41226 05 0 25 3
41227 115212
41230t 060400
41231 015452
41232 06(1)214
41233 031610
41234 114742
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0 14 9
0150
0151
0152
41173 015336
0153
0154
0155
0156
41235 027253
41236 015336
41237 165332
~157
41240
0158
01!:S9
4124\ 061332
41242 (JI40355
41243 VJ71332
~160
41235
~75572
.**
ElNTR L.DA
AND
SZA
JMP
LOB
INS
TE.MP1,I
OPDHK
EENT3
TEMPt
LDA 8,1
AND OPMSK
CPA 84000
RSS
JMP EENTJ
STB TEMPt
"S8 fORMX
LOB OPOST,I
STB SBpTR
LDA OPDST
lOA .-2
STA OPDST
LOB MAIN
INS
LOA 1,1
ALF,ALF
nCT 105120
srA SBPTR,I
ISZ SBPTR
S18 SBPTR,I
LOA TEMPt
CPA PRGCT
JMP XECl
EI:.NT3 JSB FETCH
JSB IFIX
NQP
LOA 1
AND B377
SZA,RSS
INA
STA ArlM
LOA MAIN
INA
CPA PRIST
JSB WERRS+9,1
LOA .+218
JSB OUTeR
LOA STE
lOR ATIM
JSB SCHIN,l
EN,Rr EQu *
JMP EENT6
JSB FORMX
LDB OPOST,I
STB S~PTR
LDA OPDST
ADA .-2
5TA OPOST
.>
FIRST OPERATOR
IS
NO
' *, PRESENT?
GET NEXT OPERATOR
'*'1
YES
NO
EVALUATE ADDRESS
a> SyMBOL
UNSTACK
ADDRESS
-> USERS TTY # IN TELETYPE TABLE
GET TTY t# AND
RIGHT JUSTIfY
CONVERT TO FLOATING POINT
STORE
TTY
NUMBER
ENTER STATEMENT
FINISHED?
yES
NO~.FETCH ALLOWED TIME
CONVERT
TO
SECONDS
MASK TO 8 BITS
IF 0, SET
TO 1
DOES THIS USER
HAVE THE
LINE PRINTER?
YES " RELEASE IT
OUTPUT
AN X-ON
START
ENTER
TIMING
INPUT ENTERED
TIMEOUT OCCUR EO
a> RESPONSE
TIME
UNSTACK
ADDRESS
PAGE 0120 #10
~161
0162
0163
0164
0165
0166
0167
016S
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
02fl13
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
41244
41245
41246
41247
4125 0
STATEMENT EXECUTION PHOCESSOHS
060316
105120
171572
~J5572
175572
41251 127252
41,52 041425
41253
41253 006400
41254 075571
41255 015446
41256 000000
41257 064417
41260 075571
41261 050362
41262 124652
41263 015450
41264 015336
41265 165332
41266 075572
41267 075420
41270 Pl61332
41271 040355
41272 071332
41273 064255
41274 044377
41275 160001
41276 105120
41277 171572
41300 035572
41301 175572
41302 015336
41303 165332
41304 006020
41305 027341
41306 061332
41307 040355
41310 071332
41311 075572
LDA
OCT
STA
ISl
STB
JMP
OEF
EE.NT6 EQU
CLa
STa
JSB
NOP
LOB
STB
CPA
JMP
JSB
JSB
LOB
STB
5T8
LOA
071266
015446
A27414
007400
075607
050434
027326
006404
050432
002001
027331
07 5266
015446
41330 027414
41331 0.15276
41332 000A00
SET
RESPONSE
TIME
TO
-256
•
BLANK
GETeR
.+408
BLANK
,+3
EXITA,I
BCKSP
FORMX
OPDST,I
SBpTR
RSPTR
OPOST
DON'T SUPPRESS
BLANKS
FIRST
CHARACTER A
SUPPRESS
BLANKS
CONTROL C1
YES
NO
EVALUATE ADDRESS
RESPONSE TIME
a>
UNSTACK
ADA , .. 2
STA
LOB
AoB
LOA
OCT
STA
lSI
STB
JSe
LOB
SSB
JMP
LOA
OPDST
MAIN
.+?RTIM
1,1
SBPTR
SBpTR,I
FORM X
OPoST,I
fEN10
OPDST
ADA ,-2
eea
STB ENOUF
CPA .+55a
JMP EENT7
CLB,INB
CPA .... 538
JMP EENTS
EENT7 STB SIGN
JSB GETeR
.IMP
GET RESPONSE
TIME
STORE
IT
EVALUATE ADDRESS
IS IT A
STRING VARIABLE?
YES
NO,
UNSTACK
ADDRESS
SAVE DESTINATION ADDRESS
SET SIGN
TO POSITIVE
FETCH FIRST CHARACTER
NONE FOUND.~ERROR
TURN OFF
OVER/UNDERFLOW FLAG
'-''1
YES
NO
'+'1
YES
RSS
EENT8
ADDRESS
105120
SBpTR,1
STA OPDST
STB SBPTR
CLA
STA SIGN
JSB GETeR
JMP EEN17
41312 002400
4 13 13
41314
41315
41316
41317
41320
41321
41322
41323
41324
41325
41326
41327
M256
105121£'
SSPTR,l
SBPTR
SBPTR,I
.+1,1
EEN1e
EEN11
JSB NUMCK
NOP
NO
SET SIGN
GET NEXT CHARACTER
NONE FOUND
NUMBER?
NQ""yERROR
,if>
PAG~~0121
#10
STATEMENT EXECUTION PROCESSORS
i0i.'~
0217
0218
0219
0220
Pl221
0222
0223
0224
0225
0226
0227
0228
0229
0230
41333
41334
41335
41336
41337
4134((1
41341
41342
41343
41344
41345
41346
41347
4135~
0231
41351
0232
"'233
41352
41353
0234
0235
41354
121236
41355
41356
0237
41357
027414
035607
027414
050374
027425
021414
007000
160001
A01127
010500
003000
141330
071410
003400
Qlt5344
065406
075354
!2106400
075571
063767
015350
0238
41360
0064~0
0239
41361
41362
41363
41364
41365
41366
41367
41370
41371
41372
41373
41374
41375
41376
41377
055406
027401
055462
027375
071354
0240
0241
0242
0243
0244
0245
02,46
0241
8248
02'49
0250
0251
0252
0253
02:54
02:55
0256
4140~
41401
41402
003400
071410
041406
071406
060664
~15350
027425
165260
045406
175260
027425
055462
027406
015446
027425
027403
015446
027425
061354
071406
061512
071272
161420
0257
414~3
0258
41404
41405
41406
41407
41410
41411
41412
41413
41414
41415 ~35420
41416 165420
41417 015370
4142~ t75420
41421 007400
41422 0454 20
((j259
0260
0261
0262
0263
0264
0265
0266
0267
02 6 8
~269
0270
0271
0272
JMP EEN17
ISZ ENOUF
JMP EEN17
CPA .+158
JMP EEN18
JMP EEN17
Et.:N10 eMB
LOA t,l
ALF,ALF
ANO 8377
eM.
AOA TMPST,I
STA TPRME
CCA
.IS 8 PSTR
LOB TNuLL
STB INTMP
CLB
STB BLANK
LOA FENC.
"S8 TRSTR
CLB
CPB TNULL
JMP EEN14
CPB
JMP
STA
ceA
srA
ADA
STA
LOA
JSB
JHP
E£N13 LOB
ADB
5T8
pst
EEN13
INTHP
TPRME
TNULL
TNULL
FSeHA
TRSTR
EEN18
TE MP 6,1
TNULL
TEMP6,I
BAD EXPONENT~~ERROR
DID OvER/UNDERFLOw OCCUR?
YES"·ERROR
NO, CARRIAGE RETURN FOLLOWS?
yES
NO ... E.RROR
EXTRACT
pHYSICAL
LENGTH OF
DESTINATION STRING
SET IT AS END
OF UNSPECIFIED
DESTINATION STRING
PREPARE
DESTINATION STRING
SAVE LENGTH
ALLOwANCE
TURN OFF
BLANK SUPPREssION
POINT TO ENTER CHAR ROUTINE
TRANSFER STRING
ALL REQUESTED
CHARACTERS TRANSFERRED?
YES
NO, TRANSFER LENGTH SPECIFIED?
NO
'lESe-SAVE CA)
FINISH
TRANSFER
WITH BLANKS
SET LOGICAL
TO ACtUAL
STRING LENGTH
.}MP fE-N18
EEN14 cPa
.IMP
E.EN15 JSB
JHP
.IMP
EEN16 JSB
JMP
LOA
STA
PS1
EEN16
GETCR
EEN18
EEN15
GETeR
EEN18
INTMP
TNULL
SSPTR
TEMP!'
LOA
STA
EEN17 LDA RSPTR,I
ISZ RSPTR
LOB RSPTR,I
,Jse AR:NV
STB RS?TR,I
eta
ADB RSPTR
LENGTH Of TRANSFER SPECIFIED1
NO
yES
CARRIAGE RETURN
LOOK FOR CARRIAGE RETURN
ENO.OF.INPUT NEXT?
YES
NO~.DESTINATlaN STRING EXCEEDED
RESTORE
DESTINATION STRING
PARAMETERS
TAKE
ARITHMETIC
INVERSE Of
RESPONSE TIME
STORE
IN
VALUE
PAGE 0122 #10
0273
0274
~275
0276
~277
~27a
0279
~280
0281
41423
41424
41425
41426
41427
4143 0
41431
41432
41433
STATEMENT
170001
EXECUTION PROCESSORS
STB ENOUF
002400
EEN18 CLA
STA CHRCT
lOA .+40H
~71570
060417
TABLE
STA 1,1
~75607
~71571
STA BLANK
P.02400
(LA
~15452
~26031
JSB OUTeR
CLEAR OVER/UNDERFLOW FLAG
ZERO CHARACTER
COUNTER
RESTORE
BLANK SUPPR~SSION
OUTPUT A
NULL.
JMP XEC1
0282*
0283...
••
0284.. EXECUTE ••
0285...
.*
0286*
0287 41434
0288
0289
0290
0291
0292
41434
41435
41436
41437
EASN
060354
A71440
071771
067765
41440 063764
[Qu.
LOA .-3
STA LT5
ST. ASINP
LOB ASBFA
~29J
~294
41441
41441 170001
LOA OBLNK
EASN0 EQU •
STA B,I
0295
0296
0297
0298
0299
0300
0301
0302
41442 006004
INB
41443 035440
41444 ~27441
41445 002404
41446 071470
41447 015336
4145@ 060355
0313
41451
41452
41453
41454
41455
41456
41457
41460
41461
41462
41463
41464
0314
41465
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312"
0315
0316
0317
0318
0319
0320
0321
41466
41467
~326
~327
41470
41471
41472
41473
41474
41474
41475
41476
41477
41477
41500
0328
4150J
~322
0323
0324
0325
015344
071256
002400
011466
054356
021514
075410
065256
004~65
160001
002041
001727
010500
006404
050423
027474
~50431
006005
027477
075466
035256
035410
061410
040366
002~20
SET FLAG TO SAY ASSIGN OCCURRED
BLANK OUT 3 WORDS
ISZ LT5
JMP EASN0
CLA,INA
STA EOl
JSB FORMX
l.OA .-2
JSB PSTR
STA TEMP4
CLA
STA ASTYP
CPB ,-1
JMP EAS02
STB TPRME
LOB TEMP4
CLE,ERB
LOA 8,1
ALLOW STRING
CONSTANT
EVALUATE STRING
PREPARE STRING OPERAND
SORCE POINTER
INITIALIZE TO
LOCAL LIBRARY
NULL STRING?
YES
SAVE STRING LENGTH
GET FIRST
SAVE
CHARACTER
SEZ,RSS
ALF,ALF
ANO 8377
CLB,INB
CPA .+448
JMP EAS01
CP4 .+52e
INB,RSS
JMP EAS00
EAS01 EQU •
STB ASTYP
ISZ TEMP4
ISZ TPRME
EAS00 FQU •
LDA TPRHE
ADA .+7
SSA
OF STRING
SET FOR PUBLIC LIBRARy
'S'1
YES
NO, '*11
YES, SET FOR GROUP LIBRARY
NO
SAVE LIBRARY TYPE
BUMP SOURCE POINTER
BUMP LENGTH
LENGtH
~
61
PAGE 012j #10
STATEM~NT
0329
41502 01212400
0330
0331
0332
0333
0334
0335
4 1 503 04035121
415"'4 "'71410
0336
0337
033tJ
0339
0340
0341
0342
0343
0344
0345
0346
0347
93 4 8
0349
035121
0351
~352
0353
0354
0355
0356
0357
0358
0359
036121
0361
0362
0363
0364
0365
0366
0367
41~05
~7141216
41506 063765
41507 011554
41510 A010f210
41511 071272
41512 060654
41513 015350
41514 015356
41515 015342
41516 064506
41517 075550
41520 015336
41521161332
41522 071633
41523 050363
41524 105120
41525 104400
41526 101633
41527 015316
41530 061550
41531 003000
41532 041500
41533 003021
41534 026031
41535 006400
41536 061550
41537 100200
41540 000376
41541
41542
41543
41544
41545
41546
41547
41550
41551
41552
41553
41554
41555
41556
041502
040364
071236
040362
164000
e4 03 S 0
160000
001423
41561
41562
41563
41564
41565
41566
41567
003004
040001
071645
015514
061236
040352
071236
006400
174000
040375
174000
075770
114744
072047
"27646
0381
t1157~
035770
03 82
41571
03577~
036~
0369
0370
0371
0372
0373
0374
0375
0376
0377
el7a
0379
0380
41557
41560
EXECUTION PROCESSORS
CLA
AOA
STA
STA
LOA
5TA
ALS
STA
LOA
JSB
EAS02 JS8
JSB
,.,.7
yES,
NO
TPRME
TNULL
ASBFA
ASBFP
POINTER TO
NAME. BUfFER
TEMP5
FCUCA
TRSTR
FETCH
5BFIX
DESTlNATION STRING POINTER
UPPER CASE CHARACTERS ONLY
MOVE NAME
EVALUATE NUMERIC OPERAND
ROUND TO INTEGER
LDB 81000
STB ORONO
.)SB FORMX
LOA
STA
LOA
OCT
OST
OPOST,l
ATMP.l
,+4
105120
ATMP+l,I
JSB OPCHK
LOA ORONO
eMA
ADA FCNTR
CMA,SSA,RSS
JMP xEC1
CL8
LOA ORONO
MPy ,+FTEL
ADA FILTS
ADA +5
STA 'BASE
ADA ,+3
LOB 0,1
AOA ,"'7
LOA 0,1
ALR,RAR
CMA,INA
ADA 1
STA RQ3
JSB WRBuF
LOA FBASE
ADA , .. 5
STA FSASE
CLB
STB 0,1
ADA ,+14
STB 0,1
STa RETCD
Jse sCHLB,I
OEF ASNI8
JMP [ASN4
ISZ PETco
rSZRETCD
SET
TO 6
SAVE SPECIFIED ORDINAL NUM8ER
LEAVE NEXT VARIABLE ON TOP Of ST
SAVE ADDRESS OF USER VARIABLE
DEFAULT
RETURN CODE
TO
~ON.EXISTENT
FILE
UNSTACK VALUE ADDRESS
DOES
REQUESTED
fILE
EXIST?
NO, DONE
LOCATE
CORRECT
FeB
DIsC ADDREss AND SAVE IT
GET CURRENT BUFFER ADDREss
CLEAR BITS 15 AND 14
WRITE OUT RE.CORD
RESTORE
FCB
POINTER
INITIALIZE
INITIALIZE PROTECTMASK TO 0
INITIALIZE RETURN CODE
CALL IN
ASS·IGN OVERL.AY
FILE RECORD SIZE TOO LARGE
FILE DOESN'T EXIST OR PROTECTED
'READ ONLY' ~ GROUP OR A000
PAGE
~124
#10
STATEMENT EXECUTION PROCESSORS
0383
41572 035770
0384
41573 061611
0385
0389
41574
41575
41576
41577
41600
1rJ390
4t6~1
0391
0392
41603
0386
0387
~J88
0393
1ii394
0395
0396
0397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
1d409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
41602
416~4
41605
41606
41607
41610
41611
41612
41613
41614
41615
41616
41617
41620.1
41621
41622
41623
41624
41625
41626
41627
4163~
051334
027644
1600~0
010570
050514
002001
027644
002404
071470
015336
06 0 355
Q.l15344
011256
075410
063765
011554
001000
011 2 7 2
060354
Vl71440
065554
063764
170001
0060~4
'-"35440
027622
060350
071406
~60664
41631 015350
41632
41633
41634
41635
41636
41637
41640
41641
41642
41643
061554
002004
104200
\00000
141554
~20001
030221
065236
"44375
17~001
ISZ
LOA
CPA
JMP
LOA
AND
CPA
RETCD
TEMPt
PRGCT
fASNJ
0,1
(lPMSK
B2000
'READ ONLV' • FILE IN USE
END OF STATEMENT?
YES
TEST FOR A COMMA
COMMA FOLLOWING?
RSS
.IMP f ASNJ
CLA,INA
STA EOl
JS8 FORMX
LDA ... 2
.)5B PSTR
STA
STB
LOA
STA
TEMP4
TPRME
ASBFA
ASBFP
~.L.S
STA
LOA
STA
LOB
TEMp5
.... 3
lT5
ASBFP
NO
ALLOW
STRING CONSTANT
VES, ~VALUATE STRING OpERAND
PREPARE
SOURCE
STRING
GET CHARACTER
POINTER TO
PASSWORD' BUFFER
LDA OBLNK
STA 1,1
INS
ISl lT5
JMP *-3
FILL PASSWORD
BUFfER WITH
BLANKS
LOA .-7
SET LENGTH (IN CHARACTERS)
OF PASSWORD BUFFER
STA
LOA
JSB
LOA
INA
DlD
TNULL
FSCHA
TRSTR
ASBFp
MOVE PASSWORD TO BUFFER
~,I
ADA AS8fp,I
XOR !
lOR RBP
LOB FBASE
ADB ,+14
STA t,I
ADD WORD1 AND WORD2
EXCLUSIVE OR • WORD3
INCLUsivE OR BITS 14 AND 15
STORE PROTECTMASK IN FeB
0424.
0425
0426
0427
EASN3 LDA RETCO
41645 002001
RSS
0428
41646 060364
41647 105120
0429
4165~
1044~0
41651
101633
41652
'~26031
0430
I..
41644 06177 0
EASN4 LOA .+5
OCT 1~5120
DST ATKP.l,I
JMP XECl
A • RETURN COOE
fLOAT RETURN CODE ANO
STORE IN USER VARIA8LE
DONE
PAGE 0125 #10
11'
STATEMENT FXECUTION
0432*
0433*·*
0434*. COMPLETE EXe;CUTION
~435* ••
~436*
~4J7
1ri4J8
\t1439
"'440
0441
0442
0443
0444
0445
0446
0447
044ij
0449
0450
0451
0452
0453
0454
0455
0456
0457
'0458
0459
0460
0461
0462
0463
0464
0465
0466
0 4 67
0468
0469
0470
0471
0 4 72
0473
0474
0475
0476
0477
0478
0479
0480
lr1 4 81
0482
0483
0484
416f)3
41653
41654
41655
41656
41657
4166eJ
41661
41662
41663
41664
41665
41666
41661
41670
41671
41672
41673
41674
41675
41676
41677
41700
41701
41702
41703
41704
41705
41706
41707
41710
41711
41712
41713
41714
417 1 5
41716
41717
4172.C?I
41721
41722
41723
41124
41725
41726
41727
41730
41731
~485
41732
kJ486
0487
41733
41]34
fXIT
103tf.iJ0
160255
030377
170255
102100
061500
003000
071500
002004
071550
061232
065502
044364
*.
.*
••
f- QU
elF
LOA
lOR
STA
STF
LOA
CMA
STA
INA
STA
LOA
LOB
•
~
MAIN,!
UNABT
MAIN,!
'-'
FCNTR
NUMBER OF FILES
SAVE 2'S COMp~EMENT fOR
LCD's FILE COUNT
LoAD FIRST BuFfER ADDRESS
LOAD POINTER TO
FIRST DISC ADORESS (lOW WORD)
fRMAT
FCORE
FILlS
~35500
027750
015556
006400
174632
114614
160634
170632
.JMP
160255
010363
002002
003401
060353
064255
006004
064253
002001
027721
063735
071426
060345
0216400
,,74253
006400
075274
01546'"
060255
002004
160000
030224
114736
060363
064255
015562
12 4 740
EXIT2
JS8 LCOlP
EXIT3 (LB
srB
ABORTS
SET COUNTER TO
lIS COMPLEMENT
ADS .+5
JSB
LOA
STA
LOA
STA
LOA
AND
INHIBIT
FCNTR
EXIT0 ISZ FCNTR
~63773
~71426
PROCESSO~S
DCle1,I
ABCK,I
DCLC2,I
DClel,I
EXITt
LTl
ur
MORE FILES?
YES
UPOATE LAST CHANGE DATE
OUTPUT
COMPLETION
MAIN,1
HFLAG
MESSAGE UNLESS
sHELLO PROGRAM
SZA
CCA,RSS
LDA .-4
LOB MAIN
INS
CPS PRIST
UOES USER
HAVE LP?
RSS
JMP
LOA
STA
LOA
CLB
EXIT4
EXT1A
lTI
.-10
NO.
YES.
RELEASE IT AND
PRINT MESSAGE
STB PRIST
EXIT. CLB
STB LT2
JSB OUTST
LOA MAIN
INA
LOA 0,1
lOR uNR
JSB S14LP,I
l.OA .+4
LOB MAIN
JSB EOABR
JMP SCHEN,I
TELL 2114
THAT USER IS
FINISHED RUNNING
CLEAR PBFLG AND CeFlG
BITS.
PAGE 01'6 #10
0488
0489
0490
0491
1tJ492
0493
0494
",,495
0496
04g7
0498
21499
0500
0501
0502
121503
0504
0505
0506
0507
0508
taf>10
0511
111512
(d513
0b14
0515
0516
0517
41735
41736
41737
4174{r1
41741
41742
41743
41743
41144
41745
41746
41747
41750
41751
STATEMENT EXECUTION PROCESSORS
041735
011423
006412
EXTIA OEF •
oCT 11423
OCT 6412
ASC 3,LP FRE
046t2~
020106
~511~5
EXT1
~424t2
006412
042117
047105
006412
075236
071645
41752 015514
41 7 53 065236
41754 044372
41755 160001
41756 001423
41757 003004
41760 044366
41761 140001
41762 044354
41763 027670
41764 0~0040
41765 001737
41766 142254
41767 001522
41770 VJ01274
41771 046174
41772 177666
41773 041743
f:QU
•
OCT 42412
OCT (;412
ASC 2, DONt:.
OCT 6412
EXIT2 STB FBASE
STA RQ3
JSB WR8UF
. LOB FBASE
ADB .+FTEL-4
LOA 1,1
ALR,RAR
CMA,INA
ADB ,+7
ADA 1,1
ADB .-3
JMP EXIT0
OCT
DEF
DfF
OEF
OfF
OfF
M74
DEC
EXIT1 DfF
DBLNK
ASSFA
XECBR
FENCA
FINeA
MIOEN
WRITE
OUT
RECORD
GET RECORD
SIZE OF NEXT FILE
CLEAR BITS 14 AND 15
GET END OF FILE BUFfER
COMPUTE FILE BUFfER STARTING ADD
POINT B TO FIRST DISC ADDRESS
20040
ERSEC+60
XECTB.42A,I
FENCH
f- INCH
MID7
-74
EXT1
PAGE 0127 #11
0002
0003
1lt004
0005
H006
k1007
1rJ00ij
UTILITY ROUTINES
42000
42000 142672
42001 177712
42~02
041673
42003 ~"~00~)
42004 t7767'A.
42~05 000111
ORG
ARBAS OfF
OCT
066
EXTJA D~F
ITEHP BSS
M72
.73
420006
FOJT.12B,I
.66
EXIT3
1
DEt .72
DEC 73
~009.
••
16010 ••
~011***
EXtCUTE
0012.*
0013*
0014
0015
0016
0017
001ij
k1019
0020
0021
~~22
0023
42~06
42~07
114744
~72~51
42010 115146
42011 115157
42012 115147
42013 11515~
42014
4-2015
42016
42017
115156
115161
126017
036051
***
**
t\T~'"
ECHAN .J88 SCHLB,1
CALL SYSTEM TO EXECUTE ""v,,",
OEF CHLIB
JSB RERRS+J9,1
.JSB pERRS+48,I
JSB
JSB
JSB
JSB
JMP
RERRS+40,1
RERRS+41,I
Ri::RRS+47,I
RERRS+50,I BAD LINe NUMBER
.+1,1
GO COMPILE IT
OEF CMPL0
0024.*
0025 •• *
0026.*
0027*
0"'28*
'/1'129.
0030.
\1'131.
0032*
"'033*
0034
0035
00.36
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0"'47
~048
0049
SET POINTERS TO DATA STATEMENT
SlARTING wITH THE STATEMENT REFERENCED BY (8) uPON
ENTRY, FIND THE NEXT AND SET THE DATA
BLOCK POINTERS APPROPRIATELY. IF NO
IS FOUND, SET lHE POINTERS To THl 'OUT OF DATA'
CONFIGURATION AND ExIT wITH (A) • -1.
42020 055573
42021 026037
42022 044361
42023
42024
42025
42026
160001
044356
010570
Cil50536
42027 026033
42030
42031
42032
42033
42034
42035
42036
144001
044356
026020
160001
{l!060~4
003004
002 00 5
42037 0034~0
4204'" ~71262
42041 075244
#STDP CPS
JMP
ADB
LOA
SYMTS
SETD2
.+2
1, I
ADS ,-1
AND OPMSK
CPA OATOP
JMP SETD!
ADB 1 , I
A08 ... 1
JMP #SToP
SETD! L.OA 1,1
INB
CMA,INA
INA,RSS
sEr02 CCA
STA DceNT
STB NxTDT
0052
42042 125360
.JMP SE TOp, I
0053.*
**
~004***
VALIDATE A fILE REQUEST *.*
0055.*
**
il"HS0
L:i051
l_
~056.
0057.
.*.••••
EXIT TO (P+2) IF (TE MP
t, . .
l
PROGRAM EXHAUS1ED?
YES, SET 'OUT Of DATA' CONDITION
NO,
STATEMENT
OF
TYPE
'DATA'?
YES
NO, COMPUTE
ADDRESS OF
NtXT STATEMENT
LOAD ST~TEMfNT LENGTH
SET
DATA
COUNTER
TO
1.STATEMENT LENGTH
SET POINTER ONE WORD
ABOVE FlRST DATA CONSTANT
DOES Not; BEGIN A FILE REFERENCE,
PAGE "'128 #11
ELSE EVALUATE THE FILE REFERE~CE AND VERIFY ITS CORRESPONDENCE
WITH A REQUESTED FILE. IF A REcORD REFERENCE IS ALSO PRESENT,
EVALuATE 11 AND CALL FOR ITS SWAPPING INTO THE CORE BUfFER,
0058*
005 9*
0060*
0061.
0062
1t!)063
0f)64
0065
0066
0067
0068
0069
02170
0071
0072
0013
0074
0075
0076
0077
0078
0079
13080
0i181
0082
0083
0084
0085
~086
0087
0088
0089
0090
0091
0092
0093
\1094
0095
0096
0097
0098
0099
UTILITy ROUTIN'ES
4204j
42044
42A45
42046
42047
42050
~65611
006f?104
055334
#VLFI L.OB TEMPt
INB
CpS PRGCT
160001
010570
-42053
42054
42055
42056
42057
03550 4
42061
42062
42063
42064
006400
075514
035611
125504
0"'740~
161611
~10570
42060 050574
JMP VLFll
VLFIA ISZ VLf'IL
JMP VLFIL,I
VLFIl eC8
LDA TEMPt,l
AND OPMSK
CPA PRTOP
42105 015356
421~f)
~15342
A '"
?
NO, tXIT
TO (P+2)
SET
'11.0 • 0
FOR
'PRINT',
El.SE
5TB
FILE'
LOA TEMPi, I
AND OPMSK
CPA 92000
JMP VLFIJ
ceB
VLfI2 5TB
SSB
LOB
LOA
ISZ
eMA
JSB
JMP
VLFI3 JSB
JSB
fETCH DATA ITtM
YES, SAVE IT
NEXT
OPERATOR
A COMMA?
YES
NO, USE NULL RECORD
.-2
RECORD?
YES, DO NOT ADJUST FILE POINTER
f'ILE*
VL0
WRITE REQUEST?
NUL.L
yES
RQSTR
VLFIL,1
FtTCH
SBFIX
LDB INF
JMP VLFI2
42107 064273
42110 026075
0100.*
0101***
0102.*
YES
VL0
'ILl .. -1
EVALUATE
ISZ TEMP1
JSB FETCH
FILE REFERENCE
JsB sBFIx
15.BIT INTEGER?
JSB RERRS+35,I NO
015356
42104 125504
OPERATOR
(LB
STB
42065 015342
42066 115142
42067 075234
42070 161611
42071 01057L1
42072 050514
42013 026105
42"74 007400
42075 075520
42076 006020
42077 064355
42100 061234
42101 035514
42102 003000
42103 015506
NEXT
.JMP VLf'I0
LOA I, I
AND OPMSK
CPA 84000
026053
42051 el50520
42052 026055
IS
VALIDATE FILE/RECORD REQUEST
EVALUATE RECORD REFERENCE
15 e 81T INTEGER?
NO, LOAD IMPOSSIBLE RECORD
YES
**
***
**
0103.
0104.
0105*
0106*
12J107·
0108*
0109*
01 ua*
0111
0112
0113
UPON ENTRY (B) • 1 IF A NUMBER 15 REQUESTED OR eBl • 2 If A
STRING IS REQUESTED. FDATA FILLS THE REQUEST FROM A fILE IF
ONE IS REFERENCED By THE CALLER, ELSE FROM THE DATA BLOCK.
TYPE MATCH IS CHECKED. NUMBERS RETURN IN CA) AND (8), STRINGS
ARE PREPARED AS SOURCE STRINGS. FOATA MOVES TO NEW FILE
RECORDS OR S AS NECESSARY.
~612J4
#fDAT LOA FILE#
42112 002021
42113 026164
SSA,RSS
JMP FDAT3
42111
READ FROM
FILE?
YES
PAGE 0129
Iil1
UTILITY ROUTINES
035262
026125
0130
0131
42114
42115
42116
42117
42120
42121
42t22
42123
42124
42125
42126
42127
421J0
42131
42132
42133
42134
42135
0132
42136 104200
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
012a
~129
075212
065244
015360
065272
035262
002~01
115124
035262
161244
035244
005300
020001
}(OR t
00202~
SSA
DATA?
JSB RE.RRS+22,I NO
SSB,RSS
YES, STRING?
YES
.IMP FDAT2
OLD NXTDT,l
NO, LOAD NUMBt.R
115125
006~21
~26144
42137
42140
42141
42142
42143
42144
42145
42146
42147
101244
035244
035244
035262
125362
161244
035244
12165244
0141
005000
42150 075256
0142
42151
~10500
~14J
42152 003000
42153 071410
4215 4 0030et4
42155 001100
42156 064000
0133
0134
rall5
~136
0137
0138
0139
0140
0144
01 4 5
0146
0147
0148
0149
0150
0151
0152
1tl153
0154
0155
0156
0157
~158
0159
0160
~161
0162
0163
0164
~165
~166
0167
~168
42157
42160
42161
42162
041244
071244
045262
42163
125362
061236
040364
160000
071767
075272
42164
42165
42166
42167
42170
42171
42172
.i2173
42174
.i2175
42176
42177
4 221!1 eI
NO, DATA IN CURRENT STATEMENT?
lSZ DCCNT
yES
JMP FDATI
ST8 TEMPS
NO, SAVE (8)
LOB NXTDT
MOVE TO NEXT
JSB SETDP
cDATA STATEMENT>
LOB TEMP5
RETRIEVE (8)
ISl DCCNT
DATA FOUND?
yES
RSS
JSB RERRS ... 21,I NO, OUT OF DATA
INCREMENT COUNTER
fOATt tSz DCCNT
CORRECT
LOA NXTDT,I
ISZ NXTDT
RBR
TYPE OF
£'175262
065520
075651
015512
051272
026213
050363
026203
050362
42201 002001
4220t! 115125
4 220 j 171 35 2 36
ISZ NXTOT
lSI NXTDT
. ISZ DCCNT
JMP FDATA,I
FDAT2 LOA NXTDT,I
ISZ
LOB NxTDT
NxTDT
BlS
5TB TEMp4
AND 8377
eMA
~TA TPRME
CMA,INA
UPDATE
. POINTER
LOAD STRING LENGTH
SET
START.OfwaSTRING
CHARACTER
ADDRESS
SET
TRANSFER STRING
LENGTH
UPDATE
ARS
LOB
ADA
STA
ADB
STB
JHP
FDAT3 LOA
~
NXTDT
NXTDT
DCCNT
DCCNT
FDATA,I
FBASE
OAlA
POINTERS
GET
ADA .+5
PROTECT
MASK
SAVE DATA REQUEST TYPE
GET TYPE
Of NEXT ITEM
IN FIL.E
MATCHING TyPES?
YES
NO, ENO .. OF ... RECORD1
YES
NO, END.OF.FIL.E?
YES
RSS
NO, TYPE MISMATCH
.JSB RE~RS+2211
fDAT4 ISZ FBASE
LOAD
LOA 0,1
STA PMASK
srB TEMP5
LOB RCRD*
STB EORFL
JSB GTTYP
CPA TEMPS
JMP FOAT5
CPA .+4
JMP FDAT4
CPA .... 3
PAGE
0169
0170
0171
0172
!d173
0174
a175
0176
0177
~178
~179
0180
!dlSl
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
·0192
0193
0194
0195
0196
0197
!d19S
0199
0200
0201
~13Vl
42204
42205
42206
42207
42210
42211
42212
42213
42214
42215
42216
42217
42220
42221
42222
42223
42224
42225
42226
42227
42230
42231
42232
42233
42234
42235
42236
42237
42240
42241
42242
42243
42244
42245
#11
UTILI1Y ROUTINES
EOf/fOR ADDRESS
NULL?
RERRS+37,I
YES, UNPROTECTED EOF/EOR
NO .
PRGCT
FORST
CLEAN UP
SETPT
EXECUTION STACKS
165236
LOB FBASE,1
~06003
SZB,RSS
115144
075334
065250
JSB
015430
124762
165236
002011
026231
104200
t"00~1
0020~3
"'26226
0121767
101100
021767
101100
t.35236
135236
125362
160001
006004
005000
07 5 256
005100
STB
LOB
JSB
JMP xECIA,1
FOAl5 LOB FBASE,!
SLA,RSS
LOAD DATA ADDRESS
STRING?
JMP FDAr6
yES
DLD t,l
NO, LOAD NUMBER
SZA,RSS
.IMP FOAT7
ZEROS ARE
NOT MASKEU
XOR
pMASK
MASK
SWP
XOR PMASK
SWP
FOAT] ISZ FBASE,I
lSZ FBASE,l
.JMp FOATA,I
FUAT6 LOA t , I
INS
BLS
ST8 TEMP4
DATA
ADJUST RECORD POINTER
PAST DATA
LOAD STRING HEADER
SET
SOURCE
ADDRESS
BRS
01B500
ANO 8377
003000
071410
003004
001100
044000
175236
125362
CMA
STA TPRME
CMA,INA
ARS
ADB {{I
5T8 F8 ASE,!
.}MP FOATA,I
SET
TRANSFER
LENGTH
ADJUST
RECORD POINtER
PAST
STRING
PAGE 0131 #11
UTILITY ROUTINES
••
0203 ••
0204...
•••
••
REQUEST AN INPUT RECORD
0205 ••
~206.
SERVICES REQUESTS FOR TELETyPE INPUT. IF (A) • 0 EMIT A'"
AND 'X-ON' ELSE EMIT A L1NE FEED, TWO '1', AND AN -X-ON',
0201*
~208·
021!19.
021rJ
0211
0212
1a213
0214
0215
0216
ft1217
t1218
0219
0220
0221
0222
0223
~224
0225
0226
0227
~228
~229
0230
0231
0232
0233
((1234
0235
0236
0237
0238
0239
0240
0241
0242
02 4 3
0244
0245
0246
0247
0248
0249
0250.·
42246 072003
42247 ~60255
4225~ 002004
42251 050253
42252 115212
42253 0620eJ
42254 002002
42255 0263~5
42256 "'61570
42257 0420e4
42260 002020
42261 026266
42262 et60374
42263 015452
42264 060371
42265 015452
42266 060460
42267 015452
42270 060400
42271 ~15452
42272 12102400
42273 071570
42274 07 1 420
42275 12160225
42276 114742
42277 015446
4230((J 026305
423~1 050362
42302 124652
42303 "'15450
42304 125444
423 0 5 06°255
42306 002004
4 230 7 05 02 5 3
42310 115212
42311 060371
42312 015452
42313 060460
42314 015452
42315 026266
0251...
#INCL STA ITEMP
SAVE FLAG
DOES THIS USER
LOA MAIN
INA
HAVE THE
CPA PRIST
LINE PRINTeR,
JSB WERRS+9,I YES • RELEASE IT
LOA ITEMP
SZA
JMP INCL2
LOA CHRCT
ADA M72
55A
JMP INCLl
LOA .+15B
·JSB OUTeR
lOA .+128
JSB OUTeR
INCLt LDA 877
JSB OUTeR
LDA ,+218
JSB OUTeR
CLA
STA CHRCT
STA IFCNT
LDA IWT
JSB SCHIN,I
JSB GETeR
JMP INCl2
NO
YES
LINE
FULL?
NO
YES, OUTPUT
CARRIAGE RETURN
AND
LINE fEED
OUTPUT
,?
f
OUTPUT
AN X.ON
RESET
OUTPUT CHARACTER COUNTER
AND INPUT ITEM COUNTER
REQUEST INPUT RECORD
FIRST
CHARACTER A
CPA .+3
'CONTROL C. 1
.JMP EXITA,I
YES, TERMINATE EXECUTION
JSB BCKSP
NO, RETURN
TO CALLER
JMP INCAL,I
IF USER
LOA MAIN
INA
HAS THE
CPA PRIST
L.INE PRINTER,
JSB WERRS ... 9,I
RELEASE IT
OUTPUT A
LOA .+128
JSB OUTCR
LINE FEED
LOA B71
AND
.158 OUTCR
A '1'
JMP INCLl
.*
••
EASN
EXECUTION BRANCH TABLE
0252 ••
0253 42316 041434
025 4 42317 ~400Jl
1a255 42320 040031
0256 42321 £'140031
~257
42322 040111
0258 42323 040031
RESTORE FLAG
INITIAL REQUEST?
Xf.:CTB OEF
DEF
OEF
OfF
OfF
DfF
**.
)(EC1
A.SSIGN
USING
IMAGE
XECl
COM
ELfT
LET
XECl
XECl
DIM
PAGE 0132 #11
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
42324
42Jt?5
42326
42327
42330
42331
42332
42333
42334
42335
42336
42337
42340
42341
42342
42343
42344
42345
UTILITY ROUTINES
0140031
040031
040136
040124
~40207
0403~7
04Q1137
04 0 364
041653
041653
040031
04 0 373
040622
0 40 65 3
041150
046023
040031
DEF Xf:.Cl
DE.F XECl
OEF EGOTO
OfF ElF
OEF EFOR
OfF ENEXT
DEF EGOSB
DEF ERTRN
OfF EXIT
OfF EXIT
OfF XECl
DfF EINPT
OEF EREA£)
OfF EPRIN
OEF FRSTR
DfF EMAT
OEF XfC1 .
OEF ECHAN
OfF EENTR
OEF ELfT
0270
0271
0272
0273
0274
0275
~42k)06
0276
VJ271 42346 041157
0278 42347 040111
0279.*
0280.*. FETCH FORMULA VALUE
END
STOP
DATA
INPUT
READ
PRINT
RESTORE
HAT
fILES
CHAIN
ENTER
'IMPL.IED'
••
L~T
•• *
0281**
0282*
DEF
REM
GOTO
IF
FOR
NEXT
GOSU B
RETURN
••
RETURN wITH THE RfSULT IN (A) AND (8)
~283.
~284.
0285
0286
0287
VJ288
42350
~15336
42351 015376
42352 104200
42353 100001
42354 125356
0289 ••
0290...
#F1CH JSe FORMX
JSB OPCHK
OLD t,I
JMP FETCH,!
SET EXECUTION POINTERS
0291.·
1r1292.
0293*
1d294*
0295.
0296*
0297
0298
0299
0300
0301
0302
1d303
0304
0305
0306
0307
0308
lii30g
0310
EVALUATE FORMULA
UNSTACK ADDRESS
LOAD RESULT
••
•••
••
SETS POINTERS TO THOSE STACKS WHUSE LOCATION MAY CHANGE
EXECUTION, USUALLY DUl TO INITIATION OR COMPLETION
OF FOR-LOOPS.
DURI~G
42355
42356
42357
42360
42361
42362
42363
42364
42365
42366
42367
075250
044363
075330
044403
075332
044362
075464
007000
044716
006020
115111
4237~ 065464
42371 07 4 056
42372 125430
~311.*
~312.**
~J13*.
#STPT STB FORST
ADB .+4
STB TMPST
ADS .+20
STB OPDST
ADS .+3
STs OPTRQ
eMS
ADS LWAUS
SET TOP Of FOR-STACK
SET POINTER TO TOP
,
OF TEMPORARy ST ACK
sET POINTER TO TOP
OF OPERAND STACK
SET POINTER TO BOTTOM
OF OPERATOR STACK
OUT
OF
STORAGE?
JSB RERRS+t0 . . 1 YES
Loa nPTRQ
NO, SET POINTER TO TOP
5TB PBPTR
OF OPERATOR STACK
JMP SETPT,I
5SB
INITIALIZE FOR PROGRAM MODIFICATION
••
•••
••
PAGE 0133 #11
0314
03 1 5
0316
~317
UTILITY ROUTINES
42373 (l}60417
42374 071571
42375 07142 0
42376 125462
#SINI LOA .... 408
STA BLANK
STA GFLAG
Jr1P SINlT,I
TURN ON
BLANK SUPPRESSION.
TURN OFF INTEGER ERROR.SUPPRESS
PAGE 0134 #11
0319.·
0320**.
~321*·
0322*
0323*
0324*
0325*
0326*
0327*
0328*
0329*
0330*
0331*
0332*
0333*
0334.
0335*
0336*
033 7*
0338*
0339*
0340.
FORMULA EVALUATION ROUTINES
EVALUATt A FORMULA
••
••
•••
ENTER WITH TEMPt POINTING TO THE FIRST OPE~AND OF THE
FORMULA. UPERATORS AND THE ADDRESSES OF OPERANDS ARE
STACKED SEPARATELY. OpERAND ADDRESSES ARE STACKED A8
SOON AS THE OPERAND IS SCANNED. AN OPERATOR IS NOT
STACKED WHILE THE OpERATOR ON TOp OF THE STACK HAS EQUAL
OR HIGHER PRECEOENCf, INSTEAD THE LATTER IS UNSTACKEO
AND EXECUTED, THUS AN OPERATOR FORtES EXECUTION OF THOSE
PREVIOUSLY STACKED, DOWN TO THE LATEST ONE STACKED WHICH
HAS A LOWER PRECEDENCE, THE OPERATOR STACK IS INITIALIZED
WITH AN END.OF.FORMULA (LOWEST PRECEDENCE) OPERATOR. THE
ACTION OF OPERATORS IS IN GENERAL TO COM8INE THE TOP TWO
OPEHANDs sTACKED. THE ADDRESS OF THE PARTIAL RESULT THUS
OeTAINED REPLACES TH~ ADDRESSES OF ITS CONSTITUENT OPERANDS
ON THE STACK (VALUES Of PARTIAL RESULTS ARE KEPT ON THE
TEMPORARY STACK), UPON EXIT TEMP1 POINTS TO THE FIRST PROGRAM
WORD WHOSE OPERATOR DOES NOT MANIPULATE THE STACK (THIS
MA Y f3E AN END-Of I!I'FORMULA, 'THEN', 'OF', EtC.).
0341 42377 015366 #FORM JSB PSHST
0342 42400 006400
tLB
0343 42401 174056
STa PBPTR,1
0344.
*
0345*. PROCESS NEXT OPERAND
0346*
*
0347 42402 161611 FORMj LDA TEMpt,I
0348 42403 03b6t1
ISZ TEMp1
034 9 424VJ4 01~56b
AND OPDMK
SZA,RSS
0350 42405 002(~e3
0351 4241.16 026447
JMP FORM2
03~2
42407 035332
ISZ OPOST
0353 424t~ 035332
ISZ OPDST
S5A
0354 42411 00202 0
.*
STACK
BEGINNING~OF~FORHULA
OPERATOR
EXTRACT
NEXT
OPERAND
NULL OPERAND?
YES
NO, BUMP POINTER
TO OPERAND STACK
VARIABLE OPERAND?
NO
Jt1P fORM6
0355 42412 026525
0356*
0357*. STACK NON-fUNCTION VAWIABLE OPERAND ADDRESS
~358*
.**
*
0359*
FOR SIMPLE VARIABLES,
51360* THE ADDRESSES STACKED ARE AS FOLLOWS,
0361. A POINTER TO THE VALUE; FOR ARRAYS, THE BASE ADDRESS' FOR
0362* STR1NG VARIABLES, THE NEGATION OF THE BASE ADDRESS.
0363*
ADA .-1
0364 42413 A40356
COMPUTE
ALS
POINTERS
0365 42414 001000
~366
ADA SyMTB
42415 041573
TO SYMBOL
0367 42416 06400~
LOB PI
TABLE
0368 42417 006004
INS
ENTRY
0369 42420 160000
PROGRAMMER,.
LDA 0,1
AND .+178
l-1370 42421 010376
DEFINED
0 3 ,1 42422 ~50376
CPA 0+ 1 78
FUNCTION?
0372 42423 026557
JMP FORMS
YES
0373 42424 164~01
t>.tO, lOAD VALU~ POINTER
L 08 t , I
0374 42425 ~02002
STRING VARIABLE?
SZA
PAGE 0135 #11
0375
0376
0377
037t5
0379
0380
0381
0382
0383
0 38 4
0385
0386
0387
42426
42427
4243A
42431
42432
42433
42434
42435
FO~MULA
026446
~61611
051334
026436
161611
010570
050554
026445
42436 075256
42437 015400
42440 002400
42441 ~074A0
42442 104400
42443 101330
42444 065256
42445 007004
42446 175332
EVALUAT10N ROUTINES
FORH2.1
TEMP1
PRGCT
FORM0
LDA TEMPt,!
AND OPMSK
CPA LBOP
JHP FORM2 .. 2
FORMA STB TE.MP4
JSB RSCHK
eLA
JMP
LDA
CPA
JMP
eeB
DST TMPST,1
NO
YES, END
OF FORMULA?
YES
NO,
FOLLOWED BY
SUBSCRIPT?
YES
NO
CREATE TEMPORARY
RECORD
(0,-1)
LOB TEMP4
0388
RETRIEVE AND
eMB,INS
NEGATE STRING ADDRESS
0389
STB OPDST,I
STACK ADDRESS
0390
0391*
*
0392** PROCESS NEXT OPERATOR .*
0393*
*
FORMULA
0394 4 2 447 061611 F'ORM2 lOA TEMPt
2
0
PRGCT
051334
CPA
0395
EXHAUSTED?
4 45
JMP FORM3
YES
0396 42451 026465
LOA TEMP1,1
NO,
0397 42452 161611
0398 42453 010570
4ND OPMSt<.
EXTRACT
ALF,ALF
0399 42454 001727
NEXT
0400 42455 0640tH1
LOB 0
OPERATOR
CPA .... 2
STRING CONSTANT?
42456 ~50361
0401
1d402 42457 026657
JMP FOR13
YES
ADA .-208
NO, NON.FORMULA
0403 4246~ Pl40337
1d404 42461 002020
58A
OPERATOR?
CLB
0405 42462 0064,,0
yES
NO, NON-FORMULA
ADA 066
0406 42463 042001
OPERATOR?
0407 42464 002021
SSA,RSS
yES
0408 42465 006400 FORM3 CLB
NO
CLA
0409 42466 002400
SZB,RSS
ENO-OF·FORMULA?
04 10 4 2 467 1210 6 00 3
JMP •• 4
yES
0411
42470 026474
0412 42471 044660
NO, LOAD OPERATOR
ADB FOPBS
INFORMATION WORD
LOA 1,1
0413 42472 160001
0414 42473 010500
ANO 8377
SAVE
0415 42474 071252
ST. TEMP2
PRIORITY
XOR 1,1
SAVE
0416 42475 120001
041 7 424 7 6 001100
ARS
INTERNAL
0418 42477 071254
STA TEMP3
NAME
0419*
*
0420 •• STACK PRESENT OR EXECUTE PREVIOUS OPERATOR
**
~421.
0422
0423
0424
0425
0426
0421
0428
0429
42500
42501
42502
42503
42504
42505
160056
010500
003000
,,41252
0et2020
026515
4251!1b 061252
42507 ~50372
FORM4 LOA PBPTR,I
AND a377
eMA
ADA TEMP2
SSA
JMP FORMS
LOA TEMP2
CPA .+138
DOES OPERATOR *
ON TOP
OF STACK
HAVE HIGHER
PRIORITY?
YES
NO
CORRECT
PAGE 0136 #11
FORMULA EVALUATION ROUTINES
CLA,INA
0430 4251~ 002404
STACK PRIORITY
0431
ADD NAME
42511 031254
lOR TEMP)
0432 42512 015366
JSB PSHST
STACK
STA PBPTR,!
OPERATOR
0433 42513 170056
0434 42514 026402
JMP FORM1
POP
0435 42515 160056 fORM5 LOA PBPTR,I
0436 42516 064355
OPERATOR
LOB .-2
A08 PBPTR
fROM TOP
0437 42517 044056
0438 42520 014056
ST8 pBpTR
OF STACK
ALF,ALF
BRANCH
0439 42521 001727
0440 42522 010500
AND 8371
TO
APPROPRIATE
ADA ARBAS
0441 42523 042000
~JHP 0, I
0442 42524 1240((t0
ROUTINE
0443.
0444 •• STACK CONSTANT OR pARAM~TER ADDRESS *.
0445.
0446*
0447. FOR NUMERICAL CONSTANTS STACK A POINTlR TO THE VALUE
0448* tMBEDDED IN THE PROGRAM, FOR PARAMETERS STACK THE
04491r PA~AMETER ADDRESS.
0450.
ERASE FLAG Bl1
0451
42525 001665 FORM6 ~LA,CLE,ERA
CONSTANT?
5ZA
0 4 52 42526 002002
JMP FORM7
NO
0453 42527 026534
0454 42530 065611
LOB TEMPt
YES,
0455 42531 035611
ISZ TEMPt
STACK
0456 42532 035611
ISZ TEMPt
ADDRESS
0457 42533 026446
JMP FORM2.1
0458 42534 011252 FORM7 STA TEMP2
PRE0459 42535 010376
AND .+178
DEFINED
1t1460 42536 050376
CPA .+178
FUNCTION?
yES
0461
42537 026542
JMP *"'3
LOB OPTRQ,I
0462 42540 165464
NO, STACK
JMP FORH2_1
0463 42541 026446
PARAMETER ADDRESS
•
•
0464.
0465*
0466*
0467.
~468·
0469.
FOR FUNCTIONS RECURSION ON FORMX EVALUATES THE PARAMETER
AND, FOR PROGRAMMER DEFINED fUNCTIONS, THE VALUE.
FUNCTION VALUES ARE LEFT ON THE TEMPORARY STACK AND A
POINTER THERETO 15 PLACED ON THE OPERAND STACK.
'LEN' IS HANDLED IN A SPECIAL WAY.
0470*
0471.
~472**
EVALUATE PRE-OEFINED FUNCTION
0473*
0474
0475
0476
0477
0478
0479
0480
~481
0482
0483
0484
1tj485
42542
42543
42544
42545
42546
42547
021252
001727
001700
050374
026636
041000
4255~ 015366
42551 170056
42552 061336
42553 \71332
42554 ~15336
42555
~15314
XOR TEMP2
ALF,ALF
ALF
CPA .+158
JMP FOR12
ADA PDFBS
JSB PSHST
STA PBPTR,I
LOA FORMX
srA OPOST,!
JSB FCHMx
.JSB STTOP
•
**
•IDENTIFY
FUNCTION
,LEN q ?
YES
NO, STACK
JUMPlO
ENTRY POINT
SAVE FORMX
RETURN ADDRESS
EVA~UATE ARGUMENT
'BRANCH TO
PAGE 0137
0486
~11
FORMULA EVALUATIDN ROUTINES
42556 124A5b
.IMP PBPTR,I
, I
SUBROUTINE
PAGE
~138
#1J
FORMuLA [VALUATION ROUTINES
..
..
"'488.
",489 •• ~, V AL1I ATE Pq 0 GRAM MER - 0 EfIN ED fUN CTION ••
0490.
FORM8 LOA 1 , I
0491
LOAD ADDRESS OF FORMULA
42~57 1600~1
0492 42!S60 1(\15366
JSB PSHST
SAvE VALUE of
0493 42561 ~653J~
LOB TMPST
CURRENT poINTER TO
STB PBPTR,l
TE.MPORARY STACK
0494 42562 174056
JSB PSHST
0495
SAVE ADDRESS OF
42563 ~15366
42564 170056
rtJ 4 96
51A PBPTR,I
DEFINING FORMULA
0497 42565 061336
LDA FORMX
SAVE FORMX
0498
0499
0500
0501
0502
0503
~504
0505
0506
050 7
1t1508
0509
~f)10
0511
0512
0513
~514
0515
~516
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526*
425 66
42567
42510
42571
4257~
171332
015336
161332
165464
175332
42573 171464
42574 ~51330
42575 015400
42576 061611
425 77 16 405 6
4260~ 075611
42601 170056
42602 015336
42603 165332
42604 060355
42 6 05 041332
42606 071332
42607 161332
4261~ t71464
42611 175332
42612 160056
42613 071611
42 614 06 005 6
42615 040355
42 616 07 0 056
42617 160056
42()2(~ 071330
42621 015374
OPOST,I
JSB FORMX
tDA OPuS",I
LOB OPTRQ,I
STB OPOST,1
STA OPTRQ,I
CPA TMPST
JSB RSCHK
LOA TEMPt
LOB PBPTR,I
5T8 TEMPt
STA
STA PBPTR,l
JSB FORMX
LDB OPDST,I
LOA .... 2
ADA OPOS1
STA OPDST
LOA OPOST,I
STA OPTRQ,I
STS OPDST,l
LDA PBPTR,1
srA TEMPI
LOA PBPTR
ADA .... 2
STA PBPTR
.LDA PBPTR,!
S1A TMPST
JaB STTOP
RETURN ADDRESS
EVALUATE ARGUMENT
SWAP
OLD AND NEW
ARGUMENT
ADDRESSES
PROT~CT PARAMETER
ON TEMPORARy STACK
SWAP ADDRESSES
OF CURRENT
AND FUNCTION
FORMULAS
EVALUATE FUNCTION
POP
OPERAND
STACK,
SAVING
RESULT ADDRESS
ANO ADDRESS OF
OLD PARAMETER
RESTORE
FORMULA POINtER
POP
OPERATOR
STACK
RESTORE ORIGINAL
TEMPORARy STACK POINTER
LOAD fUNCTION RESULT
0527 •• RECORD RESULT OF FUNCTION ••*
0528*
•
0529.
0530* PRl.DEFINEO FUNCTIONS RETURN TO THIS POINT wITH THEIR
0531*, RESULT IN CAl AND (8).
0532*
0533 42622 104400 FOR10 OST TMPST,I
SAVE RESUL.T
42623 101330
0534 42624 161332
LDA OPOST,I
RESTORE FORM X
0535 42625 071336
STA FORH}(
RETURN ADDRESS
0536 42626 061330
LOA TMPST
RECORD LOCATION
~537
42627 171332
STA OPDST,I
OF RESULT
0538 42630 "64056
LDB PBPTR
POP
0539 42631 044355
AOB .-2
FUNCTION
0540 42632 fi'74056
5T8 PBPTR
ADDRESS
0541 42633 035611
ISZ TEMPi
OF RESULT
0542 42634 035611
ISZ TEMPt
ON TOP OF'
PAGE 0139 1#11
~54J
FORMULA EVALUATION ROUTINES
42635 026447
0544*
•
OPERAND STACK
JMP FORM2
••
0b45.· f'VALlJATE 'LEN'
0546.
,,547 42636 fd1540'1 FOR12 * JSB
~548
LOA
42631 161611
0549 42640 010566
AND
0550
42641 040356
ADA
0f)Sl 42642 001000
Al.S
ADA
0552 42643 041513
INA
0553 42644 002004
05b4 42645 1600100
LOA
ADA
0555 42646 ~40356
0556 42647 160000
LOA
AND
0551 4265A 010500
OCT
0558 42651 105120
0559 42652 104400
OST
42653 101330
RSCHK
TEMPI,!
OPOMK
CREATE SPACE ON TEMPORARV STACK
FIND
STRING'S
SYMBOL.
.-1
syMTB
0;1
,-1
0,1
TABLE
ENTRY
LOAD ADDRESS
OF STRING
EXTRACT
STRING
L.ENGTH
8377
105120.
TMPST,I
io1560
42654 061330
LOA TMPST
0561
42655 111332
STA OPOST,I
JMP FOR12-J
0562 42656 026633
0563*
0564 •• PRoCESS STRING CONSTANT
STACK
STRING L.ENGTH
ADDRESS
OF RESULT
STACK
•
**
•
0565*
0566*
0567*
1d568*
0569*
0570*
ViS71*
0572*
0573*
0574*
0575*
0576*
0571.
0518.
WHEN STRING CONSTANTS ARE STACKED, AN APPROPRIATE
ENTRY 15 PLACED ON THE TEMPORARY STACK SO THAT ALL
STRING OPlRANDS HAVf THE SAM~ FORMa A NEGATED BASE
AODR~SS ON THF OPERAND STACK AND A TWO WORD ENTRY ON
THE TEMPORARy STACK CONTAINING THE START.Of.STRING
ANO ENO-OF-STRING DESIGNATORS BIASED BY .1 (DEfAULT
START-of-STRING DEsIGNATORS HAVE A STACK VALUE of I,
DEFAULT ENO.OF.STRING DESIGNATORS HAVE A STACK VALUE
OF -1). IN THE CASE OF SUBSCRIPTED STRING vARIABLES,
THE TEMPORARY IS CREATED. WHEN THE '1' IS SCANNED' TME
ENTRY fOR NQ.N-SUBSCR IpTED STRl NG o-pERANDS IS CREATED
WHEN THEY ARf SCANNED.
rd579*
0580
0581
~b82
0583
42657
42660
42661
42662
002404
051470
015340
026465
FOR13 CLA,INA
CpA EOl
JSB STSTR
JMP FORM3
PRINT STATEMENT
STRING CONSTANT?
NO, STACK STRING CONSTANT
EXECUTE END-Of-FORMULA
PAGE
~140
0585*
0586 ••
#11
RECO~O
FORMULA EVALUATION ROUTINES
RESUlT Of OPERATION
0587.
0588.
OPERATORS CRlATING
~589.
•
•
••
IN1ERM~DIAT~
~ESULTS
RETURN TO
HfR~.
0590.
STACK
05 9 1 4266j ~353J2 FURt4 ISl OPDST
lSZ OPDST
TEMPORARY
0b 9 2 42664 035332
0593 42665 104400
08T THPST,l
REsULT
~2666 101330
LOA TMPST
0594 42667 ~61330
SAVE
0595
42670 171332
STA OPOST,I
ADDRESS ON
JHP FORM4
OFERAND STACK
0596 42671 026500
0597.
0598 •• EXIT FORMULA EVALUATOR
0599*
0600*
THIS wORD IS ACTUALLY PART OF THE FORMULA OPERATOR JUMP
0601*
•
••
•
TASLl.
~602·
THE WORDS BETWEEN IT AND FOJT CORRESPOND TO
0603* opERATORS WHICH ARE NoT EXECUTEO, So
0604. TO UTILIZE THIS SPACE.
0605*
OEF FORMX,1
0606 42672 101336
0607.·
0608... SET LOGICAL VALUES •••
CoDE IS INSERTED HERE
••
06((19 ••
0610
0611
0612
0613
rtt614
0615
0616 ••
42673
42674
42675
42676
42671
42700
0617...
el0240~
FALSE CLA
006400
026663
061031
064361
02666 3
(LB
0622.*
0623**·
0626
427~5
0627
42706
0628
0629
427~7
0630
,,631
0632
~633
0634
0635
~b36
10637
0638
0639
TRUE
4271'"
42711
42712
42713
42714
42715
42716
42717
4272(.1
4,2721
42722
DA HALF
LDB .... 2
JMP FOR14
l
.*.*
JMP FOR14
FOJT
.JUMP T ABLt:.
'043265
OfF
ofF
DfF
DfF
OfF
OfF
OfF
DfF
DfF
OEF
DEF
OEF
OEF
DEF
~43255
OEf" EEQL
~42734
042402
042500
042701
042743
043017
043125
043131
043134
043137
C'J43142
043243
~43247
ZERO
LoAD
1.0
• ••
EUHIN JSB STrOp
JSB ARINV
fORMULA OPERATOR
0624 ••
0625
42704
LOAD
JMP FOR14
EXECUTE UNARV.
0618*.
0619
42701 015374
0620 42702 ~15370
0621
42703 026663
.*
ELBRC
FORMi
FORM~
EUMIN
ESCMA
f:STR
EFAO
EFSB
EFMP
FFDV
UNSTACK AND LOAD TOP OF STACK
NEGATE IT
STORE IT
.*.••••
[
(
UNARY +
UNARY •
SUBSCRIPT COMMA
ASSIGNMENT OPERATOR
+
•
•I
E.PWR
t
EGTRT
>
ELST
<
#
ENEQL
'.
PAGE
"'040
0041
0642
~643
~644
~o4b
~b46
0647
~648
~141
#11
FORMULA EVALUATION ROUTINES
NOP
OfF EAND
OfF EIOR
OEF EMIN
DEF EMAX
DEF ENEQL
OfF EGORE
OEF fLORE
DfF ENOT
42723 000000
42724 043312
42725 043J2~
42726 (il433~0
42727 ~4J271
427Jt1 04326b
42731 ~4J251
42732 043261
42733 0433,6
0649 ••
0650...
~XlCUTE
LEFT BRACKEr
UNUSED
AND
OR
MIN
MAX
<>
>-
e.
NOT
.*
•••
0651*·
••
0652*
0653* LOAD A DEFAULT SECOND SUBSCRIPT AND ENTER THE CODE FOR
0654*
0655*
0656
10657
0658
06b9
121660
0661
A SUBSCRIPT
42734
42735
42736
42137
061332
04035b
160000
007400
42740 002021
4 2 741 006400
42742 026753
0662
0663*.
0b64...
~671·
~672.
L!)682
0683
0684
0685
L1686
0687
0688
0689
0690
0691
~692
1d693
0694
-1
fOR A
STRING,
o
CLB
JMP fSCM1
FOR
AN ARRAY
*.
***
••
80TH SUBSCRIPTS ARE ROUNDED TO INTEGERS ANO TESTED TO BE
POSITIVE. FOR STRINGS, THE TWO INTEGERS ARE SAVED ON THE
TEMPORARY STACK AS A PSUEDO.ENTRV LATER USED BY PSTR. FOR
ARRAYS, THE SUBSCRIPTS ARE CHECKED AND IF WITHIN THE cURRENT
BOUNDS THEY ARE COMBINED WITH THE BASE ADDRESS Of THE ARRAY,
THE ARRAy ELEMlNT ADDRESS THEN RtplAC~S THE BASE AODRESS ON
THE OPERAND STACK, UNSUITABLE SUBSCRIPTS EXIT TO THE ERROR
ROUTINE.
0673*
0614*
0675*
0676 42743 015)76
0677 4 2 744 10 4 2 00
0678
0679
0680
0681
LOAD
fl8RC LOA OPDST
ADA .-2
LOA 0,1
eCB
SSA,RSS
ExECUTE SUBSCRIpT COMMA
~665*.
0666*
0667*
0668.
0669.
0670.
COM~A.
42745 100001
42746 015342
42747 115120
42750 060056
42751 040355
42752 070056
42753 075256
42754 015374
42755 015342
42 , 5 6 115120
42157 175330
4276~ t61332
.12761 002021
42762 026770
42763 061330
42764 002~~4
42765 ",65256
42 766
1740~0
ESCMA JSB OPCHK
OLD 1,1
UNSTACK
SECOND SUBSCRIPT
JSB SSFIX
ROUND TO INTEGER
JSe RERRS+17,1 UNSUITABLE RESULT
LOA PBPTR
UN8TACK
ADA .~2
THE
STA PBPTR
, l'
SAVE RESULT
ESCMt STB TEMP4
JSB STTOP
POP FIRST SUBSCRIpT
JSB SBfIX
ROUND TO INTEGER
JSB RERRS+17,I UNSUITABLE RESULT
STB TMPST,I
STORE IN TEMPORARY STACK
LDA OPOST,I
STRING
SSA,RSS
VARIABLE?
JMP ESCM2
NO, ARRAY VARIABLE
LOA TMPST
yES,
INA
SAVE
LOB TEMP4
SECOND SUBSCRIPT IN
STB 0,1
TEMPORARY STACK
pAGE 0142 #11
0095
~696
0691
~69a
0699
~700
0701
0702
0703
0704
0705
0706
0707
0708
0709
0710
0711
{tj712
0713
0714
0715
0716
42767
42170
42771
42172
42173
42774
42775
42776
42777
43000
43001
43002
43003
43004
43005
43006
430((t7
43010
43011
026402
~40355
fSCM~
104200
43013
43014
43015
43016
115120
075272
007004
045256
006021
115120
161330
1002~0
0rd1272
AOA TEMP4
ALS
ADA OPDST,I
STA OPOST,l
LOA TMPST
ADA •• 2
STA TMPST
JMP FORM1
041256
001000
141332
061330
040355
011330
026402
EXE.CUTE STORE
43017 065252
4302~
~060A2
0025
~k'26
43~j3
0019
0~20
0021
0022
~023
r1024
••
•••
••
ADD COLUMN DISPLACEMENT
DOUBLE FOR CORE WORDS
STORE ACTUAL
ELEMENT ADDRESS
POP UNUSED
TEMPORARY
STACK
ENTRY
IN ORDER TO AlLO~ MULTIPLE ASSIGNMENT STATEMENTS, NO
ASSIGNMlNT CAN TAKE PLACE UNTIL THE RIGHT-HAND FORMULA
IS ~VAlUATED' I.E. ONLY AN ENO-OF~FORMULA OPERATOR CAN
FORCE AN ASSIGNMENT OPlRATOR OfF OF THE STACK. ASSIGNMENTS
MAY tlE NUMERICAL TO NUMERICAL TYPE OPERAND, IN WHICH CASE
THE ASSIGNED QUANTITY IS SAVED FOR POSSIBLE ADDITIONAL
ASSIGNMENTS; OR STRING TO STRING OPERAND. IN THE LATTER
CASE AN INTERMEDIATE STRING IS NECESSARY IF THE HEAD OF
THE DESTINATION STRING LIES IN THE TAIL OF THE ACTUAL
SOURCE STRING.
027120
055254
027036
161332
071260
43~26 104200
43027 101254
43030 104400
43~31 10126'"
43032 £161332
0018
LOAD COLUMN
AND ROW ROUNDS
(MA,INA
IS SPECIFIED
AUA THPST,l
ROW
SSA,RSS
LEGAL?
JSB RERRS+17,I NO
STB TEMP5
YES
CMB,tNB
IS SPECIfIED
ADB TEMP4
COLUMN
SSB,RSS
LEGAL?
JSB RERRS+17,I NO
LOA TMPST,l
YES, COMPUTE ROW
~pY TEMP5
DISPLACEMENT
~015*
0016
0017
JMP FORMI
ADA .-2
OLD A,I
10~0~0
003004
141330
002021
43012 171332
0001**
0002**.
0003**
"004*
liHJ05*
0006*
0007*
0008.
0009·
0010*
0011*
0012*
0013*
0014*
FORMULA fVALUATION ROUTINES
43021
43022
43023
43024
43025
QJ40355
0027
43034 071332
0~28
~029
43P1Jb 0265P10
0030
4312137
43036 161332
~0~020
ESTR
LOB TEMP2
SZB
.JMP ESTR5
CPS
JMP
ESTRt LDA
STA
DLD
!
TEMP3
ESTR2
OPOST,I
TEMP6
TEMP3,I
NEXT OPERATOR AN
ENO",OF .. FOHMUlA?
NO
yES, fIRST STORE OF FORMULA!
YES
NO, SET
DESTINATION ADDRESS
TRANSFER
DST TE.MP6,I
THE NUMBER
LOA OPDST
ADA .: .. 2
STA OPDST
JMP FORM4
LDA OPOST,I
SSA
UNSTACK
DESTINAlION
CPERAND
STRING
OPERANDS?
PAGE 0143 #12
0031
0032
0033
161634
0~35
0036
"037
0~38
0039
0040
0041
0042
0043
0044
0045
0046
0047
1d048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
~060
0eJ61
0062
0063
0064
0065
0066
0061
0068
0ft169
007121
0071
0072
0073
13074
0075
0076
0077
0078
00 7 9
0080
1(1081
FORMULA EVALUATION ROUTINES
43040 "'27044
43~41 A15376
43042 075254
43043 021024
43044 060355
43t'145 015344
43~46 ",,71256
43047 075410
4305'" ~03400
43051 015344
43052 06 4 056
43053 075436
43054 061256
43055 003000
43~56 04 1272
43057 0B2a20
43060 027113
43061 041410
43062 040361
43063 002021
43064 021113
43065 c;,61272
43066 071440
4 3 067 006004
43~70
005000
43071
43012
43073
4307 4
43075
43",76
43071
43100
43101
43102
43103
",75272
061406
071442
003004
ARS
.}S8 CUSP
~01100
015326
070056
060664
015350
061442
0714~6
43104 071410
061436
002004
001000
071256
061440
43112 071272
43113 060664
43114 015350
43105
43106
43107
43110
43111
43115 061436
4311 6 07 005 6
43117 026515
4312~
ESTR3
,J8B OPCHK
5T8 TEMP3
JMP ESTRI
fSTR3 LDA •• 2
JSB PSTR
STA TEMP4
ST8 TPRMf
CCA
JSB PSTR
LDB PBPTR
5TB EST1
LOA TEMP4
eMA
ADA TEMP5
SSA
JHP ESTR4
ADA TPRME
ADA .+2
SSA,RSS
JMP ESTR4
LOA TEMP5
STA EST2
INS
Bls
5T8 TEMP5
LOA TNUlL
STA EST3
CMA,INA
.JMP
034056
43121 (1)34056
43122 063125
0082 43123 170056
0083 43124 0265~6
0084.
0085 43125 0~7402
0086··
STA
LOA
JSB
LOA
PBPTR
FSCHA
THSTR
ESTJ
srA TNULl
STA TPRME
l.OA EST!
INA
ALS
STA TEMP4
LOA EST2
STA TEMP5
ESTR4 LDA FSCHA
JSB TRSTR
LDA EST1
STA PBPTR
JMP FORM5
fSTR5 ISZ PS-PTR
ISZ PBPTR
LOA BASSO
STA PBPTR,l
JMP FORM4+6
BASSO OCT 7402
**
yES
NO, UNSTAC~ SOURCE
AND SAVE VALUE ADDRESS
PREPARE
SOURCE
STRING
PREPARE
DESTINATION STRING
SAVE CORE
POINTER
TRANSFER
TO
HIGHER
CORE?
NO
YES,
OVERLAPPING
TR4NSFER1
NO
YES, SAVE
DESTINATION ADDRESS
SET DESTINATION
ADDRESS TO START
Of' FREE CORE
SAVE TRANSFER
LENGTH
ALLOCATE
SPACE FOR
INTERMEDIATE
STRING
TRANSfER STRING TO FREE CORE
RESTORE TRANSFER
LENGTH
RESET ACTUAL SOURCE LENGTH
SET SOURCE
ADDRESS TO
INTERMEDIATE
STRING
RESTORE ORIGINAL.
DESTINATION STRING
COMPLETE TRANSFER
RESTORE FREE
CORE POINTER
lXECUTE END.OF.FORMUlA
OEFER
EXECUTION
PAGE 0144 #12
FORMULA EVALUATION
0087... EXECUTE +
0088*·
~~89
43126 015J72
~~90
43127 ~1S402
0091
431J~ ~2666J
0092*·
0093*.. EXlCUTE0094*.
009S 43131 015372
0096 43132 015404
0091 43133 ~26663
0098 ••
0099*.. EXEcUTE.
0100*.
0101 43134 ~15372
0102 43135 0154~6
0103 43136 026663
0104.·
0105*.* EXlCUTE I
0106 ••
0107 4 3 137 015372
0108 43140 015410
0109 43141 026663
0110*.
0111*.. EXECUTE f
0112.*
0113.
0114*.
REAL POWER
•••
••
E-f-AD
~OUTINES
JSB RINOP
JSB .FAD
JMP FOR14
••
***
.*
BINOP
JSB .FSB
JMP F OR14
,JSB
EFSB
••
• ••
••
JSB BINOP
JSB .FMP
JMP FOR14
EFMP
••
•••
**
.JS8 BINOP
JSB .FDV
JMP fOR14
EFDV
*.
*.*
.*
•
•
**
0115*
0116*
0117* EXIT TO ERROR IF RASE IS NEGATIVE. E.l.SE COMPUTE
0118* RESULT AS EtCPOWER.LNCBASE)),
0119.
1£1120 43142 165332 EPwR LOB OPDST,I
LOAD
POWER
OLD 1,1
0121 43143 104200
43144 100001
JSB IFIX
1NTEGE.R?
0122 43145 015414
0123 43146 027151
JMP
NO
SOS
43147 11212301
yES, 16 .. 81T1
~124
0125 43150 027164
JMP IPWR
YES
JSB BINOP
NO, UNSTACK
~126
43151 015372
0127 43152 002001
RSS
ARGUMENTS
JSB PCHK
CHECK ARGUMENTS
0128 43153 015354
0129 43154 LJl02020
SSA
NEGATIVE 8ASE?
JSB RERRS+30,1 YES
0130 ·43155 115135
LOB BINOI
NO, LOAD BASE ADDRESS
43156 065640
~131
43157
015434
0132
JSB .LOG
TAKE NATUAL LOG
Vl133 43160 015406
JSB ,FMP
MULTIPLY
0134 d3161 101641
BY POWER
DEF BIN02,I
01 35 43162 01543 2
JSB ,EX?
EXPONENTIATE
JMP FOR14
0136 43163 026663
0137.
..
~lJ8.*
0139*
0140*
0141*
••....
PAGE 0145 #12
FORMULA EVALUATION ROUTINES
0142* TO SPEED PROCESS.
0143* FOR ~INAL RESULT.
·0144*
0145 43164 ,,75264 IPWR
0146
43165
0147
0148
43166 007004
0149
015e
43167
43170
43171
43172
43173
43174
43175
43176
43177
00602~
015372
002001
RSS
0168
0169
l£1170
0171
~172
43217
~64361
k117J
0174
0175
43220
43221
43222
43223
43224
43225
43226
43227
015410
0153
0154
0155
0156
rl'157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0176
0177
0178
~179
0180
0181
0182
0183
0184
0185
01 8 6
0187
0188
0189
0190
13191
001614
026663
075266
061640
065641
015406
001614
071614
43231 075615
43232 ~65266
43233 027206
4 3 2 3 4 06164 0
43235 065641
43236 0154e16
43237 001640
43240 071640
43241 "'756 4 1
43242 027202
4323~
STB TTl
SSB
CMB,INB
STB TT2
JSB BINOP
~75266
015354
065640
071640
075641
061031
071614
43200 060361
43201 ~716t5
43202 065266
43203 004031
43204 027223
43205 075266
43206 006e102
43207 027234
43210 061264
43211 002020
43212 027216
43213 061614
43214 065615
43215 026663
43216 ~610Jl
0151
0152
IF POWER IS NEGATIVE., TAKE RECIPROCAL
.1SB PCHK
LOB BINOI
ST. BINot
SAVE SIGN
FORM ABSOLUTE.
VALUE OF POWER
SAVE IT
UNSTACK
ARGUMENTS
CHECK ARGUMENTS
STORE
BAsE
STB BIN02
LOA HALF
INITIALIZE
STA TT3
RESULT
TO
t .0
LO. .+2
STA 1T4
IPWRt LOB TT2
SlB,BRS
JMP IPWR4
STB TT2
IP wR2 SZB
JMP
LDA
55A
JMP
LDA
IPWR5
TTl
IPWR3
TT3
LDB TT4
JMP FOR14
LOA
IPwR3
HALF
LDB .+2
JSB .FDV
DIVIDE POWER
BY 2
ODD POWER
EVEN POWER
ZERO?
NO
YES
POSITIVE POwER?
NO
YES, RETURN
WITH
RESULT
TAKE
REC'IPROCAL
FOR
FINAL
OEF TT3
JMP FOR14
IPWR4 STS TT2
LOA BINOl
LOB BI N0 2
JSB .FMP
OfF TT3
STA TT3
STB TT4
LOB
JMP
IPWR5 LOA
LOB
JSB
OEF
STA
STB
JHP
TT2
IPWR2
BINOI
BIN02
RESULT
SAVE POWER
LOAD
BASE
MULTIPLY BY
RESULT SO FAR
SAVE NEW
PARTIAL
RESULT
SQUARE
.FMP
BINOl
BASE
BINOi
BIN02
RECORD
NEW
IPWRl
BASE
pAGE
~146
#12
FORMULA EVALUATION RoUTINES
0193**
0194...
EX~CUTE
>
*.
•••
••
EGTRT
0195.*
0196 43243 015352
0197 43244 002020
0198 43245 A26673
0199 43246 027266
0200 ••
0201**. EXECUTE <
0202 ••
0203 43247 015352 ElST
0204 4325~ 0030~1
0205 ••
0206.** EXECUTE >c
••
JSB COMPR
SSA
JMP FALSE
JMP ENEQL+l
COMPARE OPERANDS
.158 COMPR
CMA,RSS
COMPARE OPERANDS
REVERSE COMPARISON SENSE
c ?
YES
NO
•••
*.
.*
0207 ••
0208 43251 015352
0209 43252 002020
0210
0211
43253 026673
43254 026616
0212 ••
0213...
EXECUTE.
0214 ••
0215 43255
0216 43256
0217 43257
0218 43260
0219.*
0220*..
0221*·
EXECUTE <.
0222 43261
0223 43262
0224 43263
0225 43264
0226**
0227...
015352
002002
026613
026676
015352
002020
026676
027256
EXECUTE
#
•••
*.
EGQRE JSB COMPR
55A
.]MP FALSE
••
•••
••
EEQL
NO
JSB COMPR
COMPARE OPERANDS
SZA
• ?
*.
ElORE JSB COMPR
SSA
JMP TRUE
JMP EEQL"'l
*.••
JSB COMPR
0239
43274 027304
0240
43275 1 04 2 00
COMPARE OPERANDS
>NO
?
YES
JHP TRUE
JHP FALSE
COMPARE OPERANDS
?
NO
YES
JSB BINOP
SUBTRACT THE
SSA,RSS
JMP ARGI
OLD BIN02,I
TOP OPERAND LARGER?
SZA
.---.
43272 015404
43273 002021
NO
YES
•• *
OR <>
0228**
0229 43265 015352 ENEQL
0230 43266 002002
0231
43267 026676
0232 43270 026673
0233.*
0234.*. EXECUTE 'MAX'
0235.*
0236 43271 015372 EMAX
0237
023a
YES
.IMP TRUE
JMP FALSE
JMP TRUE
••
•••
COMPARE OPERANDS
c 1
••
JaB .Fsa
43276 101641
43277 026663
JMP FOR14
0241
0242·*
••
0243... ExECUTE 'MIN'
* ••
0244 ••
0245 43300 015372 EMIN .1SB BINOP
0246 43301 015404
JSB ,FsB
SSA,RSS
0247 43302 002021
••
II
ToP TWo opERANDS
NO
YES, RETRIEVE
ITS VALUE
SUBTRACT THE
TOP TWO OPERANDS
iTOP~OPERAND: LARGER!
PAGE 0147 #12
0248
0249
025rtJ
0251
0252
~253
43303
43304
43305
43306
43307
43310
43311
FORMULA EVALUATION ROUTINES
02727 5
035332
035332
ARG1
165332
104200
\00001
026665
0254.*
JMP
ISl
ISZ
LOB
OLD
ARG2
OPDST
OPDST
OPOST,I
1,1
.IMP
fO~14+2
EXECUTE 'AND' •••
0256.*
**
1tJ257 43312 015372 EAND JSB BINOP
0258 43313 002001
RSS
SZA,RSS
0259 413314 002003
JMP FALSE
0260 43315 026673
LOA BIN02,1
0261
43316 161641
0262 43317 027266
JMP ENEQL+l
0263.*
**
0264*.* EXECUTE tORt * ••
0265**
**
0266 43320 015372 flOR .JSB BINOP
0267 43321 002001
RSS
",277.*
0278.**
EXECUTE 'NOT'
0287
~288
~289
0290
0291
0292
0293
0294
0295
0296
0297
0298
~299
OPERAND
ENOT
UNSTACK
OPERANDS
TOP OPERAND ZERO?
YES
NO, CHECK
NEXT-TO·TOP OPERAND
UNSTACK
OPER.NDS
TOP OPERAND
YES
NO, CHECK
NON~ZERO?
NEXT~TO~TOP
••
OPERAND
••
JSB STTOP
JMP EEQL+l
.*.
LOAD TOP OPERAND
GO TO CHECK
**
**
INSURES THAT AtS HAS ACCEPTABLE ARGUMENTS. A-Bille IS A NON.
RECOvERABLE ERROR. A'0 AND 8c0 PRINTS-A WARNING MEssAGE AND
RETURNS THE MAXIMUM POSITIVE NUMBER AS THE RESULT.
VJ284*
0285 43330 0756 40
~286
VALUE OF
NEXT.TO.TOP
•••
INSURE VALID POwERING
0279.*
0281*
0282*
0283*
.}MP TRUE
LOA BIN02,I
JMP ENEQL+l
43325 027266
0274..
0275 43326 ~15374
0276 43327 ~27256
0280*
SZA
43322 002002
43323 026616
43324 16!6 4 1
0272*·
0273...
RETRIEVE
**
~255**.
0268
0269
0270
0271
NO
YES,
43331
43332
43333
43334
43335
43336
43337
43340
43341
43342
43343
43344
43345
43346
165641
002002
027344
006~H.1I3
115134
006021
026673
115203
060273
064355
026663
006003
026676
125354
#PCHI< STB BINOl
LOAD HIGH PART
LOB BIN02,I
OF POWER
SZA
BASE ZERO?
JMP PCHKl
NO
Sl8,RSS
YES, POWER ZERO?
JSB RERRS+29,1 YES
SSB,RSS
NO, pOwER pOSITIvE?
JMP FALSE
YES
JSB WERRS+2,I NO
LOA INF
USE POSITIVE
LOB .-2
JHP FOR14
PCHKl 5IB,RSS
JMP TRUE
JMp pCHK, I
INFINITY
FOR RESULT
POWER ZERO?
YES, TAKE RESULT AS 1.0
NO:
PAGE A148 #12
0301**
0302***
FORMULA EVALUATION ROU1INES
COMPARE TOP opERANDS OF STACK
~303.*
0304.
0305.
~306.
ON fXIT CA) IS NEGATIVE IF THE TOP OPERAND Of THE
STACK IS GREATlR THAN T~E NEXT-TO-TOP OPERANO,
POSITIVE IF IT IS LfSS, AND lfRO IF THEy ARE EQUAL.
0307.
0308.
0309 43347 161332
0310 43350 002020
43351 021355
0311
43352 015372
~312
0313 43353 015404
0314 43354 125352
0315 43355 PJ60355
0316 43356 015344
0317 43357 ~71256
0318 4336~ 07541121
0319 43361 061406
0320
f'321
f'322
111323
0324
0325
V3326
0327
0328
1d329
0330
0331
0332
43362 071432
43363 060355
43364 015344
43365 075344
43366 035330
43367 035330
43370
43311
43372
43373
43314
035432
027374
006400
027377
015364
43375 060417
43376 064000
0340
0341
0342
43377 035406
43400 027410
43401 0024P.t0
43402 007004
43403 0400A1
43404 002003
43405 006003
43406 125352
43407 027370
4341~ 061344
0343
0344
43411 002006
43412 027415
0345
0346
0347
0348
0349
0350
0351
43413
43414
43415
43416
0333
0334
0335
0336
0337
0 33 8
0339
0352
0353
0354
0355
••
•••
••
060417
027402
071344
061272
43417 000065
43420 160000
43421 002041
43422 001727
43423 01(;1500
43424 ~35272
43425 ~274o.t2
#CMPR LOA OPDST,1
5SA
.}MP COMP1
JSB BINOP
JSB .FSB
.IMP COMPR,I
COMPt LOA .-2
JSB PSTR
STA TEMP4
ST8 TPRME
LOA TNUL.L
STA CP0
LOA .-2
.JSB PSTH
STB CPt
ISZ TMPST
ISZ THPST
COMP2 ISZ CP0
JMP COMPJ
CLB
JMP COMP4
COMP3 .1S8 FSCH
LDA .+408
LDB
COMP4 ISZ TNULL
"
.JMP COMP6
(LA
COMPS CMB,INS
ADA 1
SZA,RSS
SZB,RSS
JMP COMPR,I
JMP COMP2
COMP6 LDA CP1
INA,SZA
JMP COMP1
l.OA .... 40B
JHP COMPS
COMP7 srA CPt
LOA TEMPS
STRING
ARGUMENTS?
YES
NO, COMPARE
NUMERICAL
OPERANDS
PREPARE
COMPARISON
STRING
SAVE SPECIFIED
LENGTH
PREPARE
TEST STRING
SAVE ACTUAL LENGTH
RESERVE SPACE
FOR RESULT
MORE SPECIFIED STRING?
vEs
NO, LOAD A
NULL CHARACTER
LOAD NEXT
CO~PARISON
CHARACTER
MORE SPECIFIED TEST STRING?
YES
NO, LOAD NULL CHARACtER
COMPARE
CHARACTERS
EXIT ON NOT EQUAL
OR 80TH NULL
CHARACTERS
MORE ACTUAL
TEST STRING?
YES
NO, LOAD A BLANK
E)(TRACT
CLE~ERA
LDA 0,1
SEZ,RSS
AlF,ALF
AND 8377
ISl TEMP5
JMP CQMPS
NEXT
TEST
CHARACTER
PAGE 0149 #12
FORMULA EVALUATION ROUTINES
*.*.
0357 ••
0358.*. PREPARE STRING OPERAND
0359**
*.
0360*
0361* THE STRING ADDRESS ON TOP OF THE OPERAND STACK IS COMBINED
0362* WITH THE SUBSCRIPTS IN A PSUEDO.ENTRY ON THE TEMPORARY STACK
CA) • • 2 UPON ENTRY FOR A SOURCE
0363. TO FORM A STRING OPERAND.
0364. STRING, CA) • ·1 FOR A DESTINATION STRING. THE ADDRESS OF
0365. THE FIRST CHARACTER OF THE STRING OPERAND IS LEFT IN TEMPel
0366. FOR SOURCE STRINGS (A) • TEMP5 UPON EXIT. THE REQUESTED
0367* STRING LENGTH (IN CHARACTERS) IS LEFT IN TNULL, FOR SOURCE
03 68* STRINGS THE ACTUAL STRING lENGTH -(WHICH MAY 8E LESS THAN THE
0369* REQUf:.STED LENGTH) Is IN (8) UPON ExIT. THE FOL.LOwING
0370. CONDITIONS EXIT TO ERROR: NEGATIVE SlRING LENGTH, REQUESTED
0371* DESTINATION STRING WOULD EXCEED PHYSICAL STRING BOUNDARY, OR
0372* REfJUESTED DESTINATION STRING WOULD PRODUCE A STRING QUANTITY
THE LOGICAL LENGTH OF A
0373. wITH TwO uNCONNECTED PARTS.
0374* DESTINATION STRING IS ADJUSTED AS NEEDED.
0375*
0376
43426 071466 #PSTR STA PS0
SAVE MoDE FLAG
0377 43427 015376
JSe OPCHK
UN.TACK OPERAND
0378 43430 075462
STB pst
SET fLAG POSITIVE
BLS
SAVE ADDRESS OF FIRST
0379 43431 005000
5T8 TEMP5
CHARACTER Of STRING
0380 43432 075272
BRS
SAVE
0381 43433 0051021
ADB .... 1
POINTER TO
0382 43434 044356
03 83 43435 07 5 260
STe TEMP6
STRING LENGTH
43436 065330
LOB TMPST
0384
LOAD
ADB ,+2
START.Of.STRING
0385 43437 044361
3
t
,
I
0
DESIGNATOR
1621001
LOA
0386
4 44
0387 43441 ~7140~
STA MPT
SAVE IT
ADA TEMP5
0388
43442 VJ41272
RECORD CHARACTER ADDRESS
STA TEMP5
OF START.OF.STRING
0389 4344.1 '171272
0390
43444 A71572
SBpTR
SAvE ADDREsS
STA
INS
LOAD
43445 006004
0391
LOA t,l
END-Of-STRING DESIGNATOR
43446 16~H~01
tJ392
INA,SlA
~393
43447 002006
SPECIFIED?
0 3 94 43450 027463
JMP PSTR2
YES
CCA
NO
0395 43451 003400
CPA PS"
tSOuRCE' MODE?
0396 43452 051466
JMP
NO
0397 43453 027457
PSTRt
LOA TEMP6,I
yES, LOAD STRING.S
0398 43454 161260
0399 43455 010500
AND 8377
LOGICAL LENGTH
JMP PSTR2
1tl400 43456 027463
SET FLAG TO -1
0401 43457 071462 PSTRt STA PSt
LOA TPRME
COMPUTE
0402 43460 061410
0403 . 43461 003000
eMA
ENO·OF-STRING
0404 43462 041400
ADA MPT
DESIGNATOR
0405 43463 071376 PSTR2 STA NQT
SAvE IT
eMA
0406 43464 003000
IS LENGTH
0407 43465 Ql41400
ADA MPT
OF SPECIFIED STRING
SSA,RSS
43466 002021
NEGATIVE?
~408
0409 43467 115121
.JSB RERRS+ 18,1 yES
13410 43470 PJ714~6
STA TNUlL
ADA ,73
>721
1tl411 43471 042005
58A
0412 43472 002020
PAGE
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425
0426
0421
0428
0429
0430
0431
0432
0433
0434
0435
0436
""437
0438
0439
0440
0441
0442
0443
~444
0445
0446
0447
0448
0449
0450
0451
0452
0453
0454
~455
0456
~150
43413
43474
43475
43476
43477
FORMULA [VALUATION ROUTINES
t15123
161260
010500
00300~
035466
002004
43501 041400
43502 002021
43503 027522
4350~
~3504
161260
43505 035466
43506 001727
43507 010500
43510 003000
43511 041376
43512 006404
43513 055466
43514 ~27527
43515 0654A6
43516 ~02004
43517 002021
43520 Qt44000
43521 027525
43522 035466
43523 115122
43524 ~07400
43525 061272
43526 125344
4~i527 002021
43530 115123
43531 035462
43532 027540
43533 161260
43534 010316
43535 ~31376
43536 171260
43537 125344
4354" 161260
43541 010500
4 3 542 00300~
43543 041376
43544 002021
43545 027533
43546 125344
0457.*
0458***
~459**
#12
PSTR3
PSTR4
PSTR5
PSTR6
PSTR7
JSB RERRS+20,I
LOA TEMP6,1
DOES
AND 8311
START.OF~STRING
eMA
CHARACTER
ISZ PS0
RELATE TO
INA
PREVIOUS
ADA MPT
VALUE
SSA,RSS
OF STRING.,
JHP PSTR3
NO
LOA TEMP6,I
YES, EXTRACT
ISZ PS0
END-OFALF,ALF
PERMITTED.STRING
ANO-S377
DESIGNATOR
eMA
COMPUTE DIFfERENCE FROM
ADA NQT
END OF SPECIFIED STRING ~1
CLB,INS
'SOURCE'
CpB pse
MODE?
JMP PSTR5
NO
LOB TNULL
YES, SPECIFIED SOURCE STRING
INA
CONTAINED WITHIN
SSA,RSS
DEFINED SOURCE STRING?
ADB 0
NO, CORRECT LENGTH
JMP PSTR4
OF ACTUAL SOURCE STRING
ISZ PS0
'SOURCE' MODE?
JSB RERRS+19,I NO
eeB
yES, SET ACTUAL LENGTH TO e
LOA TEMP5
LOAD START.OF.STRING
JMP PSTR,I
CHARACTER ADDRESS
SSA,RSS
PHYSICAL STORAGE OVERFLOW?
JSB RERRS+20,I YES
ISZ PS1
ENO~OF.STRING SPECIFIED?
JMp PSTR7
yES
LOA TEMP6,I
NO,
AND M256
RESET
lOR NQT
LOGICAL LENGTH
STA TEMP6,I
OF STRING
JHP PSTR,I
LOA TEMP6,I
IS NEW
AND 8377
DESTINATION
eMA
S1RING
ADA NQT
LONGER
SSA,RSS
THAN OLD?
JMP PSTR6
YES
JMP PSTR,!
NO
STACK STRING CONSTANT
**
***
**
0460*
0461* SEE NOTE AT FORt3 OF ROUTINE FORMX
0462*
0463 43547 17.135332 #STST rsz OPDST
STACk
0464 43550 035332
ISl OPOST
NEGA'TIVE
0465 43551 ~61611
LDA TEMPt
OF
0466 43552 003~00
eMA
SlRI'NG
0467 43553 171332
srA OPDST, I.
ADDRESS
0468 43554 1616"11
LDA TEMPt" Ii
COMPUTE
PAGE 0151 *12
0469
0470
0471
0472
0 4 73
0474
0475
0476
0477
0478
0479
43555
4 3 556
43557
43560
43 561
43562
43563
43564
43565
43566
43567
43570
FORMULA FVALUATION ROUTINES
010500
007400
0440A0
040362
001100
041611
071611
015400
002400
104490
101330
125340
AND 8377
ST~ING
eea
LENGTH
.1
ADB 0
ADA
ARS
ADA
STA
JSB
CLA
OST
.+3
UPDATE
TEMP1
TEMPt
RSCHK
INTRA-STATEMENT
POINTER
pAST STRING
CREATE TEMPORARY
RECORD
TMPST,I
(0,(8) )
JMP STSTR,I
••
0481... FErCH SOURCE CHARACTER •••
0482.·
*.
0483*
0484. CHARACTER ADDRESS IN TEM P4, SOURCE CHARACTER COUNT
0485* IN TPRME (IN l'S COMPLEMENT), EXIT TO (P+l) ON NO
0486. MORE CHARACTERS (TPRME • .1) ELsE ExIT TO (p+2) wITH
0487. NEXT CHARACTER IN (A),
0488.
MORE
0489 43571 06141 0 MFSCH LOA TPRME
INA,SZA,RSS
CHARACTERS?
0 49 0 43572 00200 7
JMP FSCH,1
NO
0491 43513 125364
STA TPRME
YES, UPDATE CHARACTER COUNT
0492 43574 0714t0
LDA TEMP4
LOAD CHARACTER
0493 43575 061256
0494 43576 00006 5
CLE,ERA
ADDRESS
0495 43577 160000
LOA 0,1
ExTRACT
0496 43600 002041
SEZ,RSS
NEXT
ALF,ALF
CHARACTER
0497 43601 001727
0498 43602 010500
AND 8317
0499 43603 035256
ISZ TEMP4
UPDATE CHARACTER ADDRESS
ISZ FSCH
0500
43604 035364
JHp FSCH,l
0501 43605 125364
048~.·
0502 ••
0503...
FETCH SOURCE CHARACTER (UPPER CASE)
0504 ••
0505.
°5 0 6*
0507.
0508.
0509
0510
0511
0512
0013
0514
0515
0516
0517
0518
0519
~520
0521
~522
0523
*.
***
**
SAME AS FSCH, EXCEPT LOWER CASE CHARACTERS ARE CONVERTED TO
UppER CASE, USED By CHAIN AND AssIGN STATEMENTs.
43606
43607
43610
43611
43612
43613
4361.1
43615
4 3 616
43617
43620
43621
43622
061410
002007
125560
071410
061256
000065
160000
002041
001727
LOA TPRME
INA,SlA,RSS
JMP FeuC,I
srA TPRME
LOA TEMP"
CLE,ERA
LOA A,I
SEZ,RSS
ALF,ALf
MORE
CHARACTERS?
NO
YES, UPDATE CHARACTER COUNT
LOAD CHARACTER
ADDRESS
EXTRACT
NEXT
CHARACTER
AND B377
010500
04 0 317
002021
SSA,RSS
LOwER CASE
04121450
.ADA fl.i32
NO'
ADA .140
I SZ TEMP4;
UPDATE CHARACTER ADDRESS
43623 040470
43624 "'35256
ADA M96
YES
PAGE 0152 #t2
0524
FORMULA EVALUATION
43625 035560
ROUTI~ES
ISZ Feuc
JHP FCUC,I
0525 43626 125560
ta526.*
*.
0527.** FETCH INPUT CHARACTER * ••
0528.*
.*
0529.
0530*
0531*
°532'"
0533",
EXITS NORMALLY TO (P+2) WITH NEXT INPUT CHARACTER IN (A),
IF T~E CHARACT£R IS A M OR THE INPUT RECORD IS EMPTY,
EXIT TO TRSTR,I (TH~ ONLY CALLER WHO CAN ENCOUNTER THIS
CONDITION).
0534.
0535
0536
0537
0538
0539
0540
0541
43621
43630
43631
43 6 3 2
43633
43634
43635
~J5274
015446
125350
060001
050421
125350
125214
#FINC lSI FINCH
JSB GETeR
JMp TRSTR,I
tDA B
CPA .+428
.JMP TRSTR,I
JMP FINCH,I
FETCH NEXT CHARACTER
NONE IN BUfFER
ALLOW LOWER CASE
" ?
yES, TERMINAL EXIT
NO
PAGE
~153
#12
FORMULA EVALUATION ROUTINES
..*.
...
0543 ••
0544*.* FETCH lNTER CHARACTER
0545**
*.
0546*
0f>47. SAME AS FINCH EXCEPT IT DOES NOT CHECH FOR A QUOTE
1d548*
0549
0550
0551
0552
0553
43636 035522
43637 015446
43640 125350
43641 060001
43642 125522
0554.",
0555.**
*fENC ISZ
JSB
JMP
LOA
JMP
FETCH TOP OF STACK
0556**
FENCH
GE.TCR
TRSTR,l
B
FENCH,I
fETCH NEXT CHARACTER
NONE IN BUFFER
ALLOW LOWER CASE
CHARACTER FOUND
**.
**
0557*
EXIT wITH TOP OPERAND IN (A) AND (8) AFTER UNSTACKING
IT. CREATE EMPTY SPACE ON TEMPORARY STACK FOR FUTURE
INTERMEDIATE RESULT.
~558.
"559·
0560*
1i1561.
0562
0563
0564
0565
0566**
43643 015376
43644 015400
43645
t0420~
43646 100001
43647 125374
0567***
0568**
#STTP JSB OPCHK
JSB RSCHK
OLD t,l
UNSTACK OPERAND
CREATE SPACE FOR TEMPORARY
LOAD TOP OPERAND
JMP STTOP,I
EXECUTE A BINARY OPERATOR
~569.
0~70*
0572.
0573*
0574.
0575*
0576*
0578
0579
0580
~581
0582
~583
AND (8),
43650
43651
43652
43653
161372
071640
035372
015376
43654 075641
43655 015374
43656 025640
.SNOP LOA 8INOP,1
ST. SINOI
ISZ BINOP
JSB
STB
JSB
JMp
OPCHK
BIN02
STTOP
BINOt
0584.·
~585*..
0586**
0587.
0588*
0589*
059"*
0591*
~592.
••
ON ENTRY (P+I' cONTAINS A SUBROUTINE CALL FOR A BINARY
OpERATION. THE TOp TWO OpERANDS ON THE STACK ARE
UNSTACKED AND V~RIFIEO AS NOT BEING 'UNDEFINED.'
THE
APPROPRIATE SUBROUTINE IS CALLED WITH THE TOP ARGUMENT'S
ADDRESS IN BI N0 2 AND THE NEXT~TO-TOP ARGUMENT.S VALUE IN
(A) ANO (8). EXIT IS TO (P.2) WITH THE RESULT IN CA)
0571*
0~77
.*
*.*
VERIfY LEGITIMACY OF OPERAND
SAVE
SUBROUTINE
CALL
SAVE ADDRESS OF
TOP OPERAND
fETCH NEXT OPERAND
EXECUTE SUBROUTINE
.**
**
.*
THE VALUE REFERENCED By THE TOP OF THE OPERAND STACK
IS CHECKED. EXIT TO ERROR IF VALUE IS 'UNDEFINED.'
ELSE REMOVE OPERAND ADDRESS FROM STACK AND REMOVE VALUE
FROM TOP OF TEMPORARY STACK, IF IT IS THERE. EXIT
WITH OPERAND ADDRESS IN (8),
0593*
0594 43657 165332
~595
43660 006020
0596 43661 027704
0597 4366~ 160001
NOPCK LOB OPOST,l
SSB
JMP OPCH3.,1
LOA 1,1
!l"RING
OPERAND?
y£s:
NO,· .;H"lGH;·PART OF
PAGE 0154 #t2
FORMULA EVALUATION ROUTINES
43663 001222
RAL,RAL
IS
INA
OPERAND
43664 002004
RAR,SLA
0600
4366!5 0013t0
NORMALIzED?
0601 43666 027676
JMP OPCHI
YES
0602 . 43667 051027
CPA 81T15
WAS FIRST WORD ZERO
0603 43670 "'06005
INB,RSS
YES
0604 43671 115126
JSB RERRS+23,I NO·~ERROR
LOA 1,1
SECOND
0606 43672 160001
0606 43673 002002
SlA
WORD ZERO?
JSB RERRS+23,I NO •• ERROR
0607 43674 115126
0608 43675 044356
ADS ,-1
YES-~RE8TORE OPERAND ADDRESS
0609 43676 055330 OPCHt cpa TMPST
TEMPORARY?
JMP OPCH3
YES
0610 43677 027705
OPCH2
LOA
OPOST
NO,
061332
0611
43700
0612 43701 040355
ADA .-2
UNSTACK
0613 43702 071332
STA OPDST
OPERAND
0614 43703 125376
JMP OPCHK,I
ADDRESS
eMB,INB
SET ADDRESS TRUE
0615 43704 007004
UNSTACK
0616 43705 061330 OPCH3 LOA iMPST
0617 43706 040355
ADA .-2
TEMPORARY
0618
43707 071330
STA TMPST
OPERAND
JMP OPCH2
0619 43710 027700
0620*.
.*'
0621*.* ALLOCATE AN lNTRy ON THE TEMPORARy STACK .**
0622*·
**
0623*
(8) IS UNCHANGED UPON ExIT. ON STACK OvERFLOW,
0624*
0625* THE OPERATOR AND OPERAND STACKS ARE MOVED TO HIGHER
0626* CORE TO MAKE ROOM FOR FIVE MORE TEMPORARY ENTRIES,
0627*
0628 43711 061330 #RSCK LOA TMPST
ADVANCE
0629 43712 040361
ADA .... 2
POINTER TO
0630 43713 071330
STA TMPST
NEXT ENTRY
INA
STACK
0631 43714 002004
CPA OPTRQ
0632 43115 051464
OvERFLOw?
RSS
YES
0633 43716 002001
JMP RSCHK,I
NO
0634 43717 125400
0635 43720 075436
STB RT0
SAVE (8)
LOB PBPTR
0636 43721 2164056
LOAD SOURCE AODRESS
0637 43722 0621371
LOA •• 10
ALLOCATE SPACE FOR
JSB CUSP
0638 43723 015326
FIVE MORE
063 9 43724 010056
STA PBPTR
TEMPORARIES
0640 43725 071440
STA RTt
SAVE DESTINATIoN ADDRESS
43 7 2 6 16 00 01 RSCHI LOA 1,1
TRANSFER
06 41
0642 43727 171440
STA RT1,I
A WORD
0643 43730 055330
CPB TMPST
DONE?
0644 4373t 027731
JMP RSCH2
YES
0645 43732 003400
NO, DECREMENT
ceA
0646 43733 041440
ADA RTI
DESTINATION
~647
43734 071440
STA RT1
AND SQURCE
0648 43735 044356
ADS .81
ADDRESSES
JHP RSCHt
0649 43136 027726 '
0650 43737 061332 RSCH2 LOA OPDST
CORRECT·
0651
43740 040371
ADA .+10
0652 43741 011332
STA OPDST
STACK
0653 43742 061464
LDA OPTRQ
0598
0599
pAGE 0155 *12
0654
0655
0656
43743
43744
43745
43746
FORMULA fVALUATION ROUTINES
040371
AOA .+10
011·464
STA OPTRQ
LDS RTe
JMP RSCHK,I
POINTERS
065436
RESTORE (8)
0657
12540"
0658.*
**
0659.** PUSH DOWN OP[RATOR STACK ***
0669.*
0661*
0662* ALLOCATE AN ENTRy ON THE OPERATOR STACK.
(Al 18
0663* NOT CHANGE.D.
0664*
0665
43747 064056 *PSHS LOB PBPTR
ADVANCE
0666 43750 044361
AD8 .+2
STACK POINTER
eMS
0667 43751 007000
USER
0668 43752 044716
ADS LWAUS
SPAtE
0669 43753 006020
SSB
OVERfLOW?
~670
43754 115111
JSB RERRS+10,1 YES
ISZ PBPTR
43755 034056
NO, ALLOCATE
0671
0672 43756 034056 .
ISZ PBPTR
STORAGE
JMP PSHST,I
43757 125366
0673
••
PAGE 0156 #13
0002 44000
0003 44000
0004 44001
0005 44002
0006 44003
0007 44004
0008 44005
0009 ••
0010...
0011.·
0012.
0013*
0014*
0015*
0016*
18017*
0018
0019
0020
0021
0022
0023
0024
0025
0026
EXECUTION UTILITY ROUTINES
077600
176745
177734
171715
177761
072221
~OUNO
SHSK
QRG 440008
OCT 77600
SE.RRA
RERRA
FERRA
WERRA
OSERR
ABS
ABS
ABS
ABS
OEF
.SERRS
SERRS.RlRRS
RERRS.FERf, (8) HOLDS THE INTEGER BIASED BY
.1.
44006
44007
44010
44011
44012
44013
44014
44015
44016
015414
125342
002002
125342
002041
044356
006021
035342
125342
J8B IFIX
JMP SBFIX,I
SZA
JMP SBFIX,I
SEl,RSS
ADB .-1
·SSB,RSS
lSI SBFIX
JMP SBFIX,I
TRUNCATE NUMBER
NUMBER TOO LARGE
INTEGER OVERFLOW?
YES
NO, ROUNDING BIT?
NO, BIAS INTEGER BY -I
yES, POSITIVE RESULT?
YES
NO
PAGE 0157 #13
0028.*
0029 •• *
EXECUTION UTILITY ROUTINES
INTEGERIZE A NUMBER
0030.*
0031.
0032.
0033.
0034.
9035*
0036.
0031*
0038,0039w
0040.
8841
8042
9043
0844
1045
0046
9041
0048
0049
0.,50
""51
0052
",,53
1854
44017 071280
44020
44021
44022
44023
44024
102191
01!S412
002020
026846
040337
44025 ·002020
44026 t 0 31 0 1
44027 040347
441£'30
44031
44032
44e33
44034
002021
125414
040347
071322
061260
026042
0055
4~035
44036 000071
44031 002200
0062
1863
1164
8065
0066
"061
0068
0069
ai70
.*
ENTER WITH A FLOATING POINT NUMBER IN CAl AND (B).
IF EXPONENT EXCEEDS 23, NUMBER HAS INTEGER SIGNIFICANCEI
EXIT TO (P+l1, ALL OTHER CASES EXIT TO (P+2) WITH 32-SIT
INTEGER RIGHT JUSTIFIED IN CA) AND (8). ON EXIT (0) • 0
IF NUMBER IS EXACTLY REpRESENTA'LE AS A 16-81T INTEGER.
IF EXPONENT IS NEGATIVE, TRUNCAtE TO e OR -I APPROPRIATELY
AND LET. (0) • 1. OTHERWISE RIGHT JUSTIFy INTEGER AND EXIT
WITH LAST BIT LOST IN (El.
1056
"057
1058
0059
0,,60
1161
.*
•••
'IFIX STA TEMP6
STO
JSB .FLUN
SSA
JHP IFIX3
ADA .-16
SSA
eLO
ADA ,-8
SSA,RSS
JMP IFIX,I
ADA ,-8
STA ExP
LDA TEMPe
JMP IFIX2
IF'I XI CLE,SLA,ARS
tME
44040 004 9 35
SLB,ERB
44041
44042
44043
44044
44045
44046
44047
STO
44058
44051
44052
44053
44054
102101
035322
02&2136
035414
125414
061260
002 12°
003401
002401
00'~"1
006400
026044
IfIX2 ISl Exp
JMP IFIXI
ISZ IF IX
JMp IFlx,I
IFIX3 LOA TEMP6
CLE,SSA
CCA,RSS
CLA,RSS
CCB,RS8
CL8
JMP IFIX3.2
SAVE CA)
SET 'NOT ONE. WORD INTEGER' MODf
UNPACK (I)
NEGATIVE EXPONENT'
YES
NO, £XPONENET
c.
c.
15?
YES
NO, EXPONENT
231
NO, ALL SIGNIFICANC! IS INTEGER
YES, MOVE BINARY POINT TO END Of
(8) AND SAVE SHIFT COUNT
RETRIEVE CA)
SHIFT CA) RIGHT
SHIFT
(B) RIGHT
LOST A 1
ALL 8HIFTS DONE7
NO
YES
RETRIEvE (A)
TRUNCATE
TO
.1
OR
PAGE 0158 #13
EXECUTION UTILITY ROUTINES
••
0072*·
0013*·. REQUEST A RECORD •••
0014*.
0075*
0076* UPON ENTRy (Al HOLDS A FILE NUMBER (POSITIVE FOR A READ
0077. REQUEST, NEGATIV~ fOR A WRITE REQUEST) AND (8) SPECIFIES
VALIDATION OF THE FILE'S EXISTENCE ( (8) • -2) OR THE FILE
0"'18.
0079* HECQRD TO BE PUT IN THE FILE BUFFER ( (8) • -1 REQUESTS
THE RECORD WHICH FOLLOWS THE ONE CURRENTLY IN THE BUFFER,
0080*
(B) >a " R[QUESTS RECORD (8)+1). EXIT TO ERROR IF THE
0081*
FILE
DOES NOT EXIST OR A WRITE REQUEST IS GIVEN FOR A
0082.
READ-ONLY
FILE. EXIT TO THE END~OF.FILE CODE IF THE
0°83*
0084* REQUESTED RECORD DOES NOT EXIST.
OTHERWI, THE DIRTY
••
~085.
0086.
0087*
0088*
0089*
0090*
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
01"'1
0102
0103
0104
1d105
0106
0101
010d
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
ld126
BIT IS EXAMINlD TO DETERMINE IF THE FILE BUFFER SHOULD
BE WRITTEN RACK TO DISC.
A READ REQUEST REAOS THE REQUESTED RECORD INTO THE 8UfFER;
A WRITE REQUEST MERELY INITIALIZES THE BUFFER TO 'EMpTY'.
THE FILE TARLE IS UPDATED TO REFLECT THE CHANGES.
44055
44056
44051
44060
44061
44062
44063
44064
44065
44066
075647
007400
002~20
006401
003000
075644
041500
003021
115142
041500
44~61 1210200
44070 000316
44';'71 041502
44072 ~712J6
44073 161236
44074 002003
44075 115142
44076 065236
44077 2144363
44100 075236
44101 001500
44102 2102020
44103 055644
44104 001675
44105 115143
44106 065647
441~1 054355
4411~ 026320
44111 035647
44112 ~26137
44113 165236
44114 055~27
44115 026136
44116 035236
44111 165236
44120 035236
44121 035236
#RQST STB RQ2
eCB
5S A
CLB,RSS
eMA
STB RQl
AOA FCNTR
CMA,SSA,RSS
SAVE RECORD REFERENCE
GET l'S COMPLEMENT
OF fILE NUMBER AND
SET RQt • -1 FOR A
READ REQUEST OR 0
FOR A WRITE REQUEST
DOES REQUESTED
FILE EXIST?
JSB RERR5+35,I NO
ADA FCNTR
YES
MPY .+FTEL
SET POINTER
ADA FILTS
STA FBASE
TO FILE TABLE
ENTRY
LOA FBASE,I
LOAD NUMBER Of RECORDS
SZA,RSS
DOES FILE EXIST?
JSB RERRS+35,I
LOB FBASE
ADB .+4
ST8 FBASE
eCB,elE
REAOeONLY FILE?
RQl
YES, READ REQUEST?
ELA,CLE,SLA,ERA
YES, CLEAR BIT 15 AND SKIp
JSB RERRS+J6,I NO
LOB RQ2
FILE VALIDATION
CPB .-2
ONL.Y?
yEs
JMP RQST9
lSZ RQ2
NO, RECORD spECIFIE07
.JMP RQST2
YES
LDB FBASE,!
NO, GET HIGH OLD RECORD ADDRESS
cpa BIT15
NULL RECORD?
JMP RQST6
YES
ISZ FMASE
NO, COMPUTE
LOB FSASE,!
RECORD'S
DISTANCE
ISz FHASE
ISZ FBASE·
FROM
SSA
cpa
PAGE 0159 *13
0127
0128
0129
0130
0131
0132
0133
"134
1d135
0136
0137
0138
0139
0140
0141
0142
0143
0144
01.5
0146
0147
0148
0149
0150
~151
0152
0153
0154
0155
0156
"'157
0158
0159
0160
0161
~162
0163
0164
0165
0166
0167
1rl16t3
0169
~170
01 7 1
017 2
0173
0174
~175
1lJ176
0177
0178
~179
0180
°181
0182
F.XECUTION UTILITY ROUTINES
44122 007000
44123 145236
44124 007000
.44125 060350
44126 041236
44127 160000
44130 A01665
44131 ~04010
44132 044000
44133 004065
44134 006004
44135 026142
44136 006400
44137 035236
44140 03S236
44141 035236
44142 003004
44143 040001
44144 002020
44145 026151
44146 035236
44147 035236
44150 124656
44151 040001
44152 030360
44153 005000
44154 002020
44155 0621001
44156 007400
44157 045236
44160 1640~1
44161 000040
44162 141236
44163 071647
44164 002040
44165 006004
44166 075646
44167 064351
44170 ~45236
44171 164001
44172 ~05423
44173 007004
44174 075650
44175, 12135236
44176145236
44177 035236
4420ft' 175236
44201
~75645
44202
44203
44204
44205
44206
44207
44210
44211
065236
A44353
075236
044356
164001
0550~7
02 6 214
151236
eMB
ADS FBASE,I
eMS
LDA .-7
ADA FBASE
LOA A,I
ELA,CLE,ERA
SLB
ADB A
CLE,ERB
INB
JMP RQST7
RQSi6 Ci.a
RQST2 ISl FBASE
ISZ FBASE
lSI FBASE
RQST7 CMA,INA
ADA 1
SSA
JHP
ISZ
lSI
JMP
ADA
lOR
BlS
SSA
LDA
ecs
•• 4
F8ASE
Fl\lASE
FOT4A,!
1
.+1
1
AOB FBASE
LOB a,1
elf
AOA FBASE,l
STA RQ2
SEl
INS
STB RQ4
LOB .-6
ADS FBASE
LOB B,I
BlR,RaR
eMB,INB
STB RQ5
ISl FBASE.
ADB FBASE,I
ISZ FBASE
S18 FBASE,!
STB RQ3
LOB FBASE
ADB ,-4
STB FBASE
ADB .-1
LOB
cPS
JMP
CPA
8,1
BIT15
RQS15
FBASE,I
FIRST
RECORD
GET IRECORD
'. COUNT BACK
INTO A
CLEAR BIT 15
NUMBER
NO RECORD IN CORE
ADJUST POINTER
TO LOW WORD
OF BAS! ADDRESS
DOES
RECORD
EXIST?
YES
NO, CORRECT F8A8E
FOR Eof EXIT CHECK
COMPUTE RELATIVE
DISC
ADDRESS
OF NEW RECORD
GET HIGH
DISC
ADDRESS
COMPUTE LOw DISC ADDRESS
SAVE IT
INCREMENT IF
CARRy FROM
LOW ADD
GET
NEGATIVE
Of BUfFER
'SIZE
SAVE IT
SET POINTER
TO BfGINNING
OF RECORD BUFFER
SAVE ADDRESS Of BUFFER
MOVE TO
DISC
ADDRESSES
IS ANY
RECORD
"
IN CORE?
NO, SKIP COMPARE AND "RITE
OLD AND NEW RECORDS THE SAME?
PAGE
0183
0184
0185
0186
~187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208
0209
0210
0211
0212
0213
016~
44212
44213
44214
44214
44215
44216
44217
44220
44221
44222
#13
EXECUTION UTILITy ROUTINES
el26236
015514
035644
026241
~65650
10310~
44224 045027
44225 1142it11
44226 102030
44227 102031
44230 060203
44231 002020
44232 026230
002003
026244
115154
035644
002001
026311
064355
44242 175645
44243 2126311
44244 065236
44245 044370
44246 160001
44247
yES
NO,
~RITE
OLD RECORD TO DISC
RQS15 EQU •
060362
040650
074204
44223 065645
44233
44234
44235
44236
44237
44240
44241
JMP RQST3
JSS WRaUF
~02003
0214 4425A 026311
0215 44251 071767
0216 44252 044351
0217 44253 075236
0218 44254 065645
0219 44255 155236
0220 44256 026306
0221 44257 160001
0222 44260 050355
0223 44261 026306
0224 44262 050356
0225 44263 02630 6
0226 44264 010316
0227 44265 050506
0228 44266 026271
0229 44~67 044361
0230 44270 026255
0231
44271 160~01
0232 44272 A10500
0233 44273 040362
0234 44274 001100
0235 44275 0400A1
0236 . 44276 071632
0237 44277 006004
0238 44300 055632
lSl RQl
JMP RQST4
LDB RQ~
elF
READ REQUEST?
NO
GET NEGATIVE BUFFER SIZE
0
LOA ,+3
ADA ERSCA
STB MWORD
LOB RQ3
GET ADDRESS
OF DOUBLE WORD ADDRESS
STORE WORD COUNT
GET CORE ADDREss
ADe 81T15
AND READ 8IT
JSB DISCA,I
READ
HLT DEATH+308
IN
HLT.DEATH+31B
REQUESTED
LOA "8USY
RECORD
5SA
JMP *-2
SZA,RSS
SKIP ON ERROR
JHP RQST5
JSB RERRS+45,I GO INDICATE ERROR
RQST3 ISZ RQl
WRITE REQUEST?
RSS
JMP
RQS14 LOB
STB
JMP
yES
RQS14
fOR
RQ3,I
RQS14
RGST5 LOB FBASE
ADa .+9
NO, GO FINISH UP
SCRATCH RECORD
WITH ENOwOF-RECORO MARK
GO FINISH UP
GET
LOA B,l
5ZA,RSS
JMP RQS14
STA PHASK
PROTECT
MASK
IS IT ZERO?
VES, SKIP MASKING
NO, SAVE MASK
ADB .-6
STB FBASE
ADJUST FBASE TO
BUFFER LIMIT POINTER
LOB RQ3
RYSll CPS FBASE,I
JMP
LOA
CPA
JMP
CPA
RQS13
1,1
EOR
RQS13
EOF
CPA
JMP
ADB
JMP
LOA
B1000
.+3
.JMP RQS 1J
AND M256
,+2
RQSll
1,1
DONE 1
YES
NO
EOR ?
EOF 1
STRING 1
SKIP TWO WORDS
yES
AND 8377
ADA .+3
ARS
ADA 1
srA
RQS12 INB
ATP4P
cpa ATMP
MASK
PAGE 0161 #13
EXECUTION UTILITY ROUTINES
0239
0240
44301 026255
44302 160001
0241
0242
0243
0244
44303 021767
JHp RQS11
LOA 1 , I
)COR PMASK
44304 170001
STA 1, I
.0245
6246
~247
0248
0249
0250
121251
0252
02S3
0254
121255
0256
0251
0258
44305 026277
44306 061236
44307 040354
44310 071236
44311
44311 061647
44312 171236
44313 2161646
44314 007400
44315 045236
44316 075236
44317 170001
44320 065236
44321 044364
44322 075236
44323 125506
JMP RQS12
RQS13 LOA FBASE
ADA , .. 3
STA FBAsE
STRING
RESTORE
FBA5E
RQS14 EQU
*
LOA RQ2
STA FBASE,I
LOA RQ4
eeB
ADS
RQST9
STB
STA
LOB
ADS
NEW RECORD INTO FILE TABLE
FBASE
FBASE
8,1
FBASE
,+5
5TB FBASE
JMP RQSTR,I
MOVE POINTER
TO REFERENCE
RECORD POINTER
PAGE 0162 #13
E:XECUTION UTILITY ROUTINES
••
0260.*
0261.*. STORE ITEM IN fILl
••
0262.*
••
!a263.
0264. UPON ENTRy (8) INnICATES WHAT IS TO BE WRITTEN ON THE fILEI
02 65* (B) s ·1 WRITfS AN ENO~OF·FILE MARK, (8) • -2 HRITES A Twa0266* WORD FLOATING POINT NUMBER, (B) • ~J WRITEs A STRING. IF
121267* THE RECORD CANNOT ACCOMMODATE THE QUANTITY, A SERIAL WRITE
0268* WILL PLACE IT IN THE FOLLOWING RECORD WHILE A RECORb WRITE
0269* WILL EXIT TO THE END-Of-FILE CODE.
0270*
121271 44324 ~75653 #FlLS STB FILl
SAVE REQUEST TYPE
0272 44325 065236
GET
LOB FBASE
ADS .+5
PROTECT
0273. 44326 044364
LOB 1,1
MASK
0274 44327 164001
0275 44330 'lJ75767
STB PMASK
eeB
LOAD
0276 44331 007400
ADS FBASE
ACTIvE AND LIMIT
0277 44332 045236
0278 44333 104200
OLD 1 , I
RECORD POINTERS
44334 100001
CPA 1
RECORD FULL?
0279 44335 050001
12128121 44336 026430
.JMP FILS1
YES
0281
44337 075652
STB DADRR
NO, SAVE AcTIVE POINTER
0282 44340 035653
ISZ FILT
EOf REQUEST?
0283 44341 026352
JMP FILS2
NO
eCA
yES, OVERLAy PREVIOUS
0284 44342 003400
0285 44343 170001
srA 1,1
EOR OR EOF WITH EOf MARK
0286 44344 065236 FILS7 LOB FBASE
MAKE POINTER TO SECOND WORD OF
FIL[ TABLE ENTRY,
0287 44345 044347
ADS .-8
0288 44346 160001
LOA B,l
SET BUFFER
0289 44347 03i027
lOR BIT15
DIRTY
STA. t,I
0290 4435~ 170001
BIT,
~291
44351 125510
JMP FILST,I
0292 44352 035653 FILS2 IsZ FILl
STRING?
0293 44353 026413
YES
JMP FILS6
NO
ADS .+2
0294 44354 044361
CMA,INA
COMPARE PROSPECTIVE
0295 44355 0030 0 4
ADA 1
0296 44356 040001
ACTIvE POINTER wITH
0297 44357 ~03004
CMA,INA
ENO-OF-RECORO POINTER
0298 44360 002~20
OvERFLOW?
SSA
0299 44361 026423
YES
JMP FILS"
0300 44362 175236
5T8 FBASf,I
NO, SAVE NlW AcTIVE PUINTER
SZA,RSS
44363 002003
RECORD EXACTLY FUll?
0301
yES
44364 026367
0302
JMP FILS4
0303 44365 06~355
LOA EOR
NO, FOLLOW ENTRY SPACE
STA t,I
WITH EOR MARK
~304
44366 1700~1
STRING?
44367 035653 FILS4 ISZ FILl
~305
~306
4437~ ki26400
JMP FILS5
NO
yEs
0307 44371 061406
LOA TNULL
CMA
COMPUTE AND
44312 003000
~308
~309
44373 030506
JOR 81000
STORE STRING
0310 44374 17165~
STA DAORR,I
HEADER WORD
LOA FSCHA
TRANSFER
0311 44375 060664
0312 44376 015350
Js8 TRSTR,
STRING
0313 44377 026344
JMP FILS7
1d314 444010 1",4200 FILS5 OLD S8PTRfli
TRANSFER
•
PAGE 0163 #13
0315
0316
0317
0318
0319
0320
0321
0322
0323
~324
0325
0326
0321
~328
0329
0330
0331
0332
0333
0334
0335
0336
0331
0338
0339
44401
44402
44403
44404
44405
44406
44407
44410
44411
44412
44413
44414
44415
44416
44417
44420
444 2 1
44422
44423
44424
44425
44426
44427
44430
44431
44432
44433
44434
44435
44436
44437
EXECU1ION UTILITY ROUTINES
101572
002003
026410
SZA,RSS
021767
XOR PMASK
SWP
.jMP FIl5A
101100
021767
101100
104400
101652
026344
006004
005000
075272
007004
045406
007004
005100
026355
060355
111652
xOR PMASK
JMP FILS1
FILS6 INS
BlS
STB TEMP5
(MB,INa
ADS TNULL
CMB,INB
BRS
.]MP F ILS3
FILS0 LOA EOR
STA
LDA
ADA
STA
041653
071653
055520
002001
124656
061234
003000
015506
026325
MASK
DATA
SWP
fILSA OST OADRR,I
060355
007400
ZEROS ARE
NOT MASKED
FILSl
cee
DADRR,I
.... 2
FILT
FILT
CPB RCRD.
RSS
JMP FOT4A,I
NUMBER
COMPUTE
DESTINATION
ADDRESS
COMPUTE
RECORD
SPACE
REQUIRED
INSURE EOR MARK
ENDS PRESENT RECORD
RESTORE
REQUEST
TYPE
SERIAL WRITE?
YES
NO
0340
REQUEST
LOA FILE*
eMA
RECORD
0341
0342
JSB RQSTR
TO WRITE
0343
JMP #FILS+l
0344**
**
0345**. GET NEXT FIll ITEM TypE
0346.*
*.
0347*
THE ~EXl ITEM IN TH~ FILE, NUMBER, STRING, END.OF~FILE, OR
0348*
0349. END-OF.RECORD, IS IDENTIFIED AND UPON EXIT (A) -1,2,3, OR 4
EORFL. ~1 WILL IGNORE END.Of~REcORD'8 ANO
0350. RESPECTIVELY.
~351*
.* .
RETURN WITH THE FIRST OF THE OTHER ITEMS ENCOUNTERED.
0352.
0353
0354
0355
0356
0 3 57
0358
0359
0360
0361
0362
0363
0364
,,-
0365
~366
0367
44440
44441
44442
44443
44444
061234
015506
007400
045236
1 0 4 200
44445 100001
44446 0500li'1
44447 026463
4445~
160001
44451 006404
44452 050355
44453 026463
'44454
050356
44455 0265"'1
44456 010316
44457 ~50506
GTTY1 LOA FILEJSB RQSTR
#GTTY eCB
ADS FBASE
DLD 1,1
CPA 1
.IMP GTTVJ
LOA 1,1
CLB,INB
CPA EOR
JMP GTTYJ
CpA EoF
.IMP GTTY4
REGUlST
NEXT RECORD
LOAD ACTIVE
AND LIMIT
RECORD POINTERS
PHySICAL END OF RECORD?
YES
NO, lOAD WORD
OF RECORD
ENO""OF-RECORO?
YeS
NO, END PMASK WORD
.> WORDS/RECORD WORD
SET FILE
DIRTy BIT
CLEAR DIRTV BITS AND
GET NEG. REt. LENGTH
WRITE
RECORD
TO
DISC
SKIP ON ERROR
JHP WRBUF,I
JSB RERR8+46,I GO INDICATE ERROR
TRANSFER A STRING
.*
*.*
••
THE NUMBER OF CHARACTERS SPECIFIED BY THULL (IN 1'5
COMPLEMENT) IS TRANSFERRED FROM THE SOURCE STRING TO
A DESTINATION STRING BEGINNING WITH THE CHARACTER
ADDRESSED BY TEMPS,
9474·
0475.
0476 44612 071~e2
9477 44613 035.,,6
0478 44614 002001
0479
JMP WRBU6
AND M256
~26562
44615 125350
'TRST STA TRfCH
tSl TNULl.
RSS
JMP TRSTR,I
SAVE SUBROUTINE tALL
MORE TRANSFER .STRING?
YES
NO
PAGE V,166 #13
0480
0481
0482
048]
0484
0485
0486
0487
0488
0489
0490
rj491
0492
13493
049 4
44616
44617
44620
44621
44622
44623
44624
44625
44626
44627
44630
44631
44632
44633
44634
EXECUTION uTILIly ROUTINES
115402
06 0 417
071404
065272
004065
160001
002041
001727
010316
031404
002041
001727
i70001
035272
026613
JSB THFCH,I
LOA .+408
STA TRS0
LDB TEMP5
eLE,ERB
LOA 1,1
SEZ,RSS
AL.F,ALF
AND M256
JOR TRSe
SEZ,RSS
ALF,ALF
SiA 1,i
IsZ TEMP5
JMP #TRST+l
FETCH A SOURCE CHARACTER
NONE LEFT, LOAD A BLANK·
SAVE IT
LOAD
DESTINATION
WORD
SAVE
OTHER
CHARACTER
COM8INE WITH
NEW CHARACTER
AND STORE
l.iII .................
WU"LI
INCREMENT DESTINATION ADDRESS
PAGE 0167 #13
ARITHMETIC SUaROUTINE.S
0496**
ADD TWO FLOATING POINT NUMBERS
0497***
0498**
0499 44635 071616 #fAD STA A1
SET POINTER TO 2ND ARGUMENT.
LOA .FAD,I
1d5rrJ0 44636 161402
STA A2
0~01
44637 071617
LOA A1
111502 4464~ 061616
0503 44641 105~00
oCT 105000
CALL HARDWARE ROUTINE.
0504 44642 101617
Dff A2,1
0505
44643 035402
ISZ • FAD
SET RETURN ADDRESS •
SOC
~506
44644 102201
05~7
44645 A15346
JSB DUCHK
OVERfLOW OR UNDERFLOW'
0500 44646 i25402
JMP • FAD,!
RETURN •
0509**
0510***
SUBTRACT TWO fLOATING POINT NUMBERS
1d51l**
0512 44647
0513 4465~
0514 44651
0515 44652
1t)516 4465]
0017 44654
0518 44655
1t)519 44656
0520 44657
0521 44660
0522**
0523***
0524***
071616
1614Q14
071617
061616
1050210
101617
035404
102201
015346
125404
srA
A2
LOA Ai
OCT 105020
DEF A2,1
CALL HARDWARE ROUTINE,
lSI • FSS
SET RETURN ADDRESS •
SOC
JSB
JMP
OVERFLOW OR UNDERFLOWl
RETURN,
DlTERMINES It OVERFLOW OR UNDERfLOW
HAS TO BE GIVEN.
#UUCK STA A1
5T8 A2
~532
44663 002002
4466A 026672
44665 015474
44666 115207
44667
0bJ3
44667
~61616
LOA A1
0534
0535
44670
44671
44672
44672
44673
065617
l.OB A2
0·529
~5J0
0531
~536
0537
0538
0639
SET POINTER TO 2ND ARGUMENT.
M~SSAGl
13525**
0526 44661 071616
0527 44662 075617
~528
STA A1
LOA .FSB,l
125346
015474
115206
4467A ~26667
SZA
SAVE REGISTERS.
OVER. OR UNDERFLOW?
JMP OUCK2
JSB CHOUF
.JSB WE:RRS+6, I
DuCKt EQU •
JMP OUCHK,I
OUCK2 lQU •
.JSB CHOUf
.JSB
wERRS+5, I
UNDERFLOW! CHECK STATUS,
RE.INSTATE REGISTERS.
RETURN.
OVERFLOW! CHECK STA.TUS •
JMP OUCKI
0540**
0541**
**
0542*** MULTIPLY TWO FLOATING POINT NUMBERS * ••
\lto43**
**
SET POINTER TO 2ND ARGUMENT
0544 44675 0 7 161 6 #fMP srA A1
0545 44676 161406
LOA .fMP,I
0546 44677 071617
STA A2
0547 4470~ 061616
LOA A1
OCT 105040
0548 4471t31 105040
CALL HARDWARt ROUTINE.
0549 44102 101617
OEF .2,1
ISZ • fMP
SE.T R.ETURN ADDRESS •
0550
44703 Ql354~6
~551
SOC
44704 102201
PAGE
0552
~168
#13
ARITHMETIC SUBROUTINES
44700 015346
JSB OUCHK
OVERFLOW OR UNDERFLOW,
0553 44706 125406
JMP .FMP,I
RETURN,
1i)554 ••
0555...
DIVIDE TWO FLOATING POINT NUMBERS
~556**
0b57
44707 071616
0558
4471"
44711
44712
4471..5
44714
44715
44716
44717
0559
0560
0561
0562
0563
~564
0565
0566 4472~
0567*.
0568.*.
161410
071617
061616
105060
101617
&135410
102201
015346
125410
*FOY
STA A1
LOA ,fOY,1
STA A2
LOA A1
OCT 105060
OEF A2,1
ISZ ,FDV
SET POINTER TO 2ND ARGUMENT
CALL HARDWARE ROUTINE,
SET RETURN ADDRESS.
SOC
JSB QUCrtiK
OVERflOW OR UNDERFLOWl
JMP .FOv,1
TAKE ARITHME1IC INVERSE
••
RETURN,
***
**
0569*·
0570*
0571* ENTER WITH A FLOATING POINT NUMBER IN (A) ABO (B),
0f>72* EXIT WITH ITS ARITHMETIC INVERSE IN (A) AND (8).
~573*
V)574
1d575
0576
",,577
0578
0579
44721
44722
44723
44724
44725
44726
44727
~580**
~581.*.
104400
001620
002400
006400
105020
001620
125370
STORE NUMBER.
#ARIN OST C1
CLA
CLB
OCT 105020
OfF C1
JMP ARINV,I
UNPACK LOW wORD OF NUMBER
**
.**
**
A-0.
8.0.
CALL SUBTRACT HARDWARi ROUTINE
0582·*
0583*
0584. ENTER WITH LOW wORD OF FLOATING POINT NUMBER IN (8),
0585* EXIT WITH EXPONENT IN (A) AND MANTISSA IN (8).
0586*
0587 44730 00240~ tiFLUN CLA
EXTRACT
0588 44731 101050
lSR 8
EXPONENT
ALf,AlF
0589 44732 001727
IN CAl AND
MANTISSA IN (8)
ALF,BLF
10590
44733 005727
SLA,RAR
NEGATIVE EXPONENT?
0591
44734 000033
0592 44735 03200k1
lOR SMSK
yES, FILL IN LEADING BITS
059.3
44736 125412
JMP .FlUN,I
NO
PAGE 0169 #14
0002*
0003*
0004*
0005*
0006*
ERROR ROUTINES
WHIl.E Hf.ADING A PRO(;RAM IN 'TAPE' HODE, ERRONEOUS STATEMENTS
ARE ~fPLAC£D WITH ERROR PSUEDO·STATEMENTS. THESE ARE THREE
WORD 'STATEMENTS'I THE STATEMENT NUMBER, THE LENGTH (ALwAYS
3), AND THE ERROR NUMBER. SINCE BITS 15.9 ARE CLEAR IN WORD
THREE, ERRORS HAVE A STATEMENT TYPE Of 0. ERRCT HOLDS A
COUNT Of THE EMBEDDED ERRORS AND THE USER'S 81r OF TERR IS
SET IF ANY EMBEDDED ERRORS EXIST. ADDITIONALLY, THE 'OUT.OF.
STORAGE' ERROR SETS SYMTB c 1 To ASSIST SYNTAX. ALL STATEMENTS
WITH A SEQUENCl NUMBER OF ZERO WILL BE cOLlAPS~D INTO A SINGLE
ERROR AND UNDER/OVERFLOWS IN NUMERICAL CONSTANTS ARE NOT
REPORTED.
1a007*
0008*
0009*
0010*
0011*
0012*
0013*
0014*
0kJ15**
**
liJ016.** OUTPUT TAPE MODE ERRORS •••
0k.l17**
**
0018*
0019* UPON ENTRy ALL EMBEDDED ERRORS ARE STRIPPED FROM THE PROGRAM
0020* ANO STORED BELOW IT AS TWO-WORD QUANTITIES (THE LENGTH WORD
0021* IS DROPPED). FOLLO~ING THIS THE ERRORS ARE PRINTED ONE 8Y
0022* ONE WITH LINE NU""'eERS. AFTER PRINTING Al.l ERRORS (OR, IF THE
0023* USER ABORTS THE ERROR PRINTING, AFTER' THE USER TYPES THE NEXT
"-1024* LINE) EVERYTHING IS CLEANED UP AND A MESSAGE PRINTED TO SAY
0025* THE LAST RECEIVED INpUT HAS BEEN IGNORED.
0026*
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036*
0~37*.
0038.
0039
~040
0041
0042
0043
~044
0~45
0046
0047
0048
0049
0050
0051
0052
~053
0054
0055
0056
0 05 7
PAGE 0170 #14
fRROR ROUTINES
0059
44773 006004
44774 Pl5471b
INB
CPS LWAUS
~H16"
44775 (i'27070
.}MP
O",61
~54116
IN8
CPS LWAUS
"066
44776
44777
45000
45001
45002
45003
0067
45~04
0068
4500~
0069
45006
0070
45007
0071
45010
45011
45012
45013
45014
027010
074056
164000
175476
035476
040361
164000
175476
065510
003400
041574
071574
002002
JMP
STa
LOB
SrB
lSZ
AOA
LOB
STa
LOB
CCA
ADA
STA
SZA
45~15
'~26150
~0~8
~062
1a063
0064
ftJ065
0072
0073
0074
007 5
0076
0077
0078
0079
0080
0081
0082*
~083**
0084*
0085
0086
0087
0088
0089
0~60~4
45~16 055230
45017 027023
45020 061510
45021 065230
45PJ22 015476
45023 063042
45024 071472
45025 062004
45026 042003
0094
003004
r;)71440·
007400
075442
165230
075566
0095
45035
~35230
0096
0097
00 9 8
0099
0100
0101
0102
0103
01(114
0105
45036
45037
45040
45041
45042
45(1)43
45044
45045
45046
45047
161230
071430
006400
027200
045043
el62003
003004
041440
0106
010 7
451{t50 061230
0091
0092
0093
0108
0109
0110
~111
0112
~113
e1,I
TRANSfER
LINE NUMBER
PBPTR
TAP0,I
TAP0
,+2
0,1
TAPa, I
SOURC
TAPEl
COUNTER
•
•
RETAD
NO
yES, PROGRAM REMAINING?
NO
YES, SLIDE UP
OVER LAST
£:.RRORCS)
**
STA SERR
LOA WERRA
ADA FERRA
CMA,INA
STA LT5
TAPE4 CCt3
LT6
LOB SPTR,I
STB
S'TB .LNu M
SPTR
SPTR,I
LTJ
SERR1+3
*+1
FERRA
CMA,INA
ADA LT5
0135230
ISZ SPTR
LOA SPTH
CPA PBPTR
1031~~
06036~
ERROR
ALL ERRORS DELETED?
ST. LT5
45051 050056
TRANSFER
ERROR
NUMBER
RETRIEVE POINTER TO STATEMENT
DECREMENT
ERRCT
ERRCT
LOA SOURC
LOB SPTR
JSB MOVER
ISZ
LOA
STA
CL8
JMP
RETAD DfF
LOA
ERROR?
NO
YES, APPENO TWO WORDS
JMP TAPE3
TAPE3 t DA
TO TRANSFtR
TAPE.7
071440
45052 002001
45,,53 0271'031
45~54 061512
4505b 070056
45~~56
45~57
TAPE7
CPB SPTR
OUTPUT ERROR MESSAGES
45027
45030
45031
45032
450133
45034
009~
JMP
SPACE
USER
RSS
JMP TAPE4
TAPES LOA DlST
STA PBPTR
elf 0
LOA TERR
SET
RETURN ADDRESS
FAKE
'WARNING ONLY'
ERROR MODE
FORCE
LINE NUMBER
MAKE LINE NUMBER OF
CURRENT ERROR ACCESSIBLE
LOAD
ERROR NUMBER
lXIT TO
ERROR PRINTER
RESTORE
,WARNING
ONLY'
MODE
MORE
ERRORS?
NO
YES
CORRECT POINTER TO
LAST WORD +1 OF PROGRAM
)'JRN
PAGE 0171 #14
0114
0115
0116
0117
0118
0119*
~120
0121
ERROR ROUTINES
45~62
17A255
45063 102101lt
45064 115140
4506b 075512
45066 060001
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
45067
45070
45071
45072
45073
45074
45075
45A76
0133
0134
45102 064056
0135
0136
01 37
0138
0139
0140
eMA
AND
STA
STF
JSB
45060 003o,,0
45061 110255
TAPE6 STB DEST
JMP TAPE2
STA TAPt
CMA,INA
AOA DEST
STA TAPB
AOA SPTR
026771
071472
003004
041512
071476
041230
071230
45103
45104
45105
45t PJ 6
45107
065512
074056
06151.0
040354
071512
45111 026772
4511~
0141*·
~142**.
~143**
MOVE BLOCK TO LOWER CORE
~147*
0150
0151
0152
0153
45112
4 5 11j
45114
45115
45116
075141
1 64 000
175512
035512
002004
~155
45117 051741
4512f1 125476
0156
45121 027113
0154
*.
*.
UPON ENTRy (H) POINTS TO THE LAST wORD +1 TO BE MOvED AND
CAl POINTS TO TH~ FIRST WORD TO BE MOVED, DEST POINTS TO THE
FIRST WORD Of THE DESTINATION SPACE.
0148*
k1149
IT
RESET POINTER TO
LAST WORD .1 OF PROGRAM
SET POINTER TO
NEXT STATEMENT
TO NEW VALUE
RETRIEVE SOURCE ADDRESS
RECLAIM
SPACE
sET NEw POINTER TO
PROTECTED AREA
COMPUTE POINTER TO
CURRENT ERROR STATEMENT
SET NEw DESTINATION POINTER
.**
~144.
0145*
01 46*
EMIT PARTING SHOT
AND SAVE
5TA SPTR
015476
OFF
SAVE SoURCE ADDRESS
COMPUTE SIZE OF AREA
TO SE RECLAIMED
LOB SOURC
A08 TAPe
5T8 SOURC
LOA TAP1
LOB PBPTR
JSB MovER
LDB DEST
STB PBPTR
LOA SOURC
AOA ,~3
srA OEST
JMP TAPE2+1
061472
FLAG
SET DESTINATION POINTER
TO fIRST ERROR ENCOUNTERED
LOA 2
06 5 510
45077 045476
45100 075510
45101
ERROR
MAIN,!
MAIN,l
"
RERR5+JJ,I
.MOVE
5T8
ETEMP
LDB
STB
ISl
INA
CPA
JMP
JMP
e,I
OEST,l
DEST
ETEMP
SAVE POINTER TO LAST WORD + 1
TRANSFER
WORD
BUMP
POINTERS
qONE?
MovER,I
yES
#MOVE+l
NO
PAGE
~172
0158.·
0159.*.
,~ 160.*
~161
#14
ERROR ROUTINES
OUTPUT AN ERROR MESSAGE
**
..
1ti162*
*
01 6 3
!a164.
0165*
0166.
016 7*
0168*
0169*
la170.
1tt17!.
0172*
THE fRROH IS IDENTIfIED VIA THl RELATIVE JUMP THROUGH THE ERROR
JUMP TABLE. IF THE ERROR 15 A SYNTAX TYPE AND THE USER IS IN
'TAPE' MODE, THE fRROR IS EMBEDDED IN THE PROGRAM AS A PSEUDO.
STATEMENT FOR LATER PRINTOUT AND THE ~RROR FLAGS ARE ApJUSTED
AS APPROPRIATE. OTHERWISE, THE DISC BLOCK CONTAINING THE ERRQR
MESSAGE IS READ INTO CORE (IF IT IS NOT ALREADY THERE) AND THE
MESSAGE IS PLAC[D IN A USER BUFFER FOR PRINTOUT. IF A SyNTAX
ERROR IS IDENTIFIED IN THE 'KEY' HOOE, 'ERROR' IS PRINTED AND INP
REQUESTED. THE ER~OH HESSAG~ IS PRINTED IF THE REPLY IS OTHER
THAN A SIMPLE CARRIAGE RETURN. IF THE LENGTH WORD OF THE ERROR
MESSAGE IS POSITIVl THE CURRENT LINE NUMBER IS APPENDED.
~173.
!a174
~175
0176
0177
0178
0179
45122 0034~0
45123 041472
45124 160000
4512.5 042001
45126 010504
45121 071430
eeA
~420~2
AOA
srA
ADA
AOA
0180
4513~
~181
45131 £'171440
45132 ~42003
45133 042004
45134 002021
0182
VJ183
0184
0165
0186
0187
1d190
45141 002t)01
45142 027154
~191
45143 063454
0192
0193
45144 ~71426
45145 ~06400
45146 075274
45147 074253
45150 060351
45151 ~15460
45152 060243
45153 114736
45154 061440
45155 002021
45156 027175
45157 "'60367
4516~ 110255
45161 ('I020~2
45'62 027414
45163 006400
45164 ri175274
45165 06344 2
451 6 6 ~71426
45167 ~60j54
45170 015460
45171 ~60225
0195
~196
~197
0198
1a199
(,l20~
0201
~202
VJ203
~204
0205
02VJ6
~207
0208
ii1209
0210
~211
0212
0213
ERROR NUMBER
Rt:RRA
LT5
FERRA
WERRA
SSA,RS8
JMP SERR0
LDA MAIN
INA
CPA
RSS
JMP
LOA
STA
CLB
srB
STB
~50~53
~189
AND SAVE
srA LT3
45135 027154
45t40
COMPUTE
ADA sERR
LOA ~,l
ADA SERRA
AND B777
45136 ~60255
45137 '-1020C?14
0188
0194
*.
***
PRIST
SERR0
SLPMS
LTI
LT2
PRIST
WARNING
ERROR?
YES
DOES THIS
USER HAVE
THElP1
NO
YES
OUTPUT
MESSAGE
LOA • "",6
JSB QUTST
LDA LPD
JSB 8148C,1
SERR0
LDA LT5
SSA,RSS
JMP SERRI
LDA TAPEF
AND MAIN,I
8ZA
J'MP Sf..RR6
CLB
STB
LOA
STA
LDA
JSB
LDA
LT2
AStER
LTt
.-3
OUTST
IWT
TO USER
TELL I/O PROCESSOR
TO REMOVE USER
SYNTAX
ERROR?
NO
YES
TAPE
MOOE:.?
YES
NO
OUTPUT
'ERROR'
·ANn
WAIT
FOR
PAGE 0173 #14
ERROR ROUTINES
45172 114742
0214
JSB SCHIN,I
0215 45173 015446
JSB GETeR
0216 45174 027305
JMP SE.RR4
0217.
VJ218.* PRINT THE MESSAGE
0219.
0220
0221
0222
45175 06143~
45176 C?J06400
45177 075442
0223
45200
0660~5
0224
0225
0226
45201
45202
4520J
452t14
45205
45206
45207
45210
45211
45212
45213
45214
~40450
0227
0228
0241
45222 100200
~233
0234
0235
0236
0237
0238
0239
0242
0243
0244
1d245
0246
0247
0248
0249
0250
0251
0252
45232
45233
45234
000377
040606
065512
075742
06465fl)
0 1 5512
064000
044377
015476
065742
45235
~755t2
45223
45224
45225
45226
45227
45230
45231
0254
45236 06144 0
45237 ~02021
45240 1c127360
~255
45241 002 4 0121
0256
0257
45242 015452
k1253
0258
~259
45243 ~60350
45244 071426
SER1A
SERiA
.+2
LT3
SERA
cPs LIB
JMP SE.RtB
STB LIB
LOA B
LOB M512
STB MWORD
LDB "LIB#
'ADS MNEG
JSB DISCZ,1
JSB SICKP,I
SERIB LOA LT3
MPy .+16
AOA _LIB#
LOB DEST
STB ETMPl
LDB ERSCA
STA
LOA
JSB
ISZ
LT1
.+408
OUTeR
LTt
STA LI1
eCB
0266
45254
16~000
~267
4525!; 002e20
45256 027261
LOA 0,1
SSA
JMP *+3
~263
0264
~265
0268
06065~
FIx DISC ADDRESS POINTER
STORE NUMBER
OF WORDS
FIX CORE ADDRESS POINTER
AND 'READ' INDICATOR
READ ERROR MESSAGf INTO CORE
BAD LUCK
LOAD
ERROR MESSAGE
SAvE
DEST
INTO
OUTPUT
BUFFER
RESTORE
DEST
ExECUTION ERROR?
yf:.s
NO, OUTPUT
A NUlL~
LOA ... 7
071426
0262
THE
NOT fOUND YET
IS MESSAGE IN CORE?
YES
ADS .+16
JSB MovER
LOB fTMPl
STB DEST
LOA LT5
SSA,RSS
JMP SERR5
CLA
JSB OUTCR
QH374~0
Vl260
CLEAR 'LINE
NUMBER' FLAG
CALCULATE
ON NEXT BLOCK
STe DEST
LOB A
45245
45246
45247
45250
45251
45252
45253
~261
060417
015452
035426
027245
ADA M32
5SA
JMP
ADS
STA
JMP
~44361
0240
0230
0231
0232
LT3
CLB
STB Lr6
LOB OSERR
SERA
ti102020
027207
071430
027201
054256
027221
074256
060001
064315
",74204
4521b 064606
45216 045027
45217 11421C16
45220 114207
45221 ~61430
0229
SERR1
•
••
•
LOA
INPUT.
CARRIAGE RETURN ONLY?
YES
.IMP .... j
SERR2 LOA ERSCA
OUTPUT
7
~LANKS.
STORE MESSAGE
ADDRESS
LINE NUMBER?
NO
PAGE 0174 #14
ERROR ROUTINES
0269
45257 075442
~27rl!
~271
4526 0 003004
45261 006400
0272
0273
L-]274
0275
45262 075274
45263 015460
45264 035442
45265 027275
45266 ~6J446
0276
0277
(6278
0279
0280
0281
0282
0283
0284
0285
0286
0287
(6288
SfB LT6
CHA,INA
CLB
STB
.J88
ISZ
JMP
LOA
OUTST
LT6
SERR3
LINEA
STA LTt
CLB
LOA .-5
JSB OUTST
45267 071426
45270 006400
45271 060352
45272 015460
45273 065566
45274 ~15454
45275 061440
45276 042003
LT2
LDB .l,..NUM
JSB aUlIN
002020
SERR3 LOA LT5
AOA FERRA
STA LT5
ADA WERRA
SZA,RSS
JMP sERRe
LDA .... 158
JSB OUTeR
SERR4 LOA .... 128
JSB OUTeR
LDA LT5
SSA
027347
.JMP SEH 13
45277 071440
453((10 042004
45301 002003
0295
45302
45303
45304
45305
453 0 6
45307
45310
45311
0296
0297
45312 04200 4
AOA WERRA
45313 002020
5SA
JMP SERR9
0289
0290
0291
0292
0293
~294
027316
060374
015452
060371
015452
061440
121300
031211
v.s302
45314 027320
002400
45316 071570
45317 125472
45320 0({)64012J
0303
45321 061757
121304
45322 101101
0305
45323 071426
45324 06176k.1
0298
0299
121306
0307
0308
(LA
4531~
45325 "'03004
4'5326 071760
0309
45327
006~02
SZB
0310
4533~
027340
"'311
45 33 1
JMP SERif
E.QU •
~312
45331 1 6 1 4 2 6
45332 001727
45333 01 0 500
453J4 015452
45335 035760
45336 002001
0313
031 4
~315
0316
1f)317
45337 027340
\1318
0319
45340
k1320
0321
161426
45341 01 '15~0
0322
45342 015452
0323
45343 035426
45344 035760
0324
4534~
LDA
oUTPUT
ERROR
MESSAGE
LINE NUMBER FLAG SET?
NO
YES
PRINT
" IN LINE "
OUTPUT
LINE NUMBER
'BAD
INPUT'
ERROR
yES
OUTPUT
CARRIAGE RETURN
OUTPUT
LINE FEED
RUN
ERROR?
yES
NO, WARNING
ONly?
NO, FORMAT ERROR
yES
sERR8 STA CHRCT
JMP SERR,l
SERR9 CLB
LOA IfSTR
RRR 1
STA LTt
LDA NCH
CMA,INA
STA NCH
SlRl~
yES, SET FLAG
LT1,1
ALF,ALF
AND BJ71
JSB OUTeR
lsz NCH
RSS
.JMP SER 12
SER11 EQU ...
LOA LT1,I
AND [3377
JSB OUTeR
ISZ LT1
ISz NCH
CONVERT
CHARACTER
SAVE POINTER
SAVE
NUM8ER OF
CHARACTERS
START wITH HIGHT BYTE?
YES
FETCH
LEfT
CHAR
OUTPUT IT
FINIsHED ALL CHARS?
NO
yES
FETCH RIGHT
CHARACTER
OUTPUT IT
BUMP PO-IN:TER
FINISHED ALL CHARS?
PAGE
0325
0326
0327
0328
0329
033 0
0331
0332
Ir1J33
0334
"'335
0336
0337
~175
#14
ERROR ROUTINES
45345 027331
45346
45346 ~15534
45347
45347 103100
4535~ 160255
45351 VJ3Q1377
45352 170255
45353 1~2100
45354 06150{d
45355 071550
45356 ~15556
45357 i2474kl
.IMP SER10
SE:.R12 EQU ..
JSB OUTCl
5t:Rl~i
NO
OUTPUl CR.LF
EQU ..
elF
LOA
lOR
SiA
STF
LOA
STA
JSB
~
MAIN,l
UNABT
MAIN,l
0
FCNTR
FRMAT
LCDlP
jMP SCHEN,i
DISALLOW
ABOt LP FREE MESSAGE
..
..
PAGE 0177 #14
l!!)400·
0401
0402
MATRIX EXECUTION
46000
46000 040512
46001 040450
46p!02 040375
4600~~ 177713
ORG 460006
E:NOIN
MINP2
MINPI
065
OfF EIN12
OfF EfNP0+3
OEF EINPl
0403
OCT -65
1tJ404
0405.
0406.**
0407 •• EXE:CUTE
••
**
••
~408.**
0409.
0410 46"'1t14
46005
~411
0412 46006
0413 46007
0414 46"1~
0415 46011
0416 46012
1()417 46013
46014
~41a
0419
"'46323
046325
047212
~47215
~47227
047220
el47232
041433
0400~0
4602~
~4?6
46026
FI.0 A DfF F1.0
Fl.0 DEC 1,O
EMAT
~02002
~26206
LOA TEMPi,I
ANO OPDMK
SZA
JMP EMATt
IDfNTIFY MATRIX I/O
0429.
~430
0431
0432
0433
0434
0435
~436
0437
0438
0439
0440
0441
0442
~443
0444
0445
0446
0447*
0448**
0449*
04f)0
0451
~452
ceA
SrA ELCNT
.lsB EpRUS
LOA TEMPt,!
OPERAND
NULL?
NO
CHECK
FOR
'MAT PRINT usING'·
COMPUTE AND SAVE
INPUT •• 2
READ ·-1
PRINT. 0
AND 877
ADA 065
STA MTl
SSA,INA,5ZA
STA MT0
Mlot
JSB VLFIL
NOP
l.OA TEMPt,I
AND OPDMK
SZA,RSS
.IMP )efC1A,!
PREPARE A MATRIX FOR I/O
46050 ~01000
46051 041573
46052 ~40356
FIRST
1/0 TY·PEI
RRR 9
0000~0
161611
46045 01li'566
4604n A02003
46~47 124762
.*•
lSZ *TEMPi
46027 035611
46~3(,l1 003400
46031 071470
46032 r115552
46033 161611
46034 101111
46035 010460
46036 042003
46037 071314
4 6 040 002026
46041 071312
461iJ42 01550 4
46~43
46~44
MAOO
MSUB
SMUll
IDN
MCPY
+lE.6
F0.0A DEF F0.0
F0.0 DEC 0.0
0427*
~42t3.*
MLOP2
MlOP3
Vt00002
0422.
0423 46023 161611
1iJ424 46024 010566
~425
OEF
DEF
OfF
OEF
DEF
OfF
OfF
DEC
157133
46015 046016
46016 000000
46017 "'0121000
46020 046021
46~21
46~22
MLP2A
HLP3A
MADDA
MSUBA
SMUlA
IDNA
MCPYA
TOLC
*.••
ALS
ADA SYM'S
ADA .-1
SAVE flAG
IF 'INPUT'
PROCESS ANY
FILE. REQUEST
LOAD NEXT
IDENTIFIER
ZERO?
YES
LOAD
BASE:. ADDRESS
OF ARRAY
PAGE 0178 #14
0453
0454
V)455
0456
0457
~4~8
0459
0460
1d461
~462
0463
0464
0465
0466
0467
~46a
0469
V)470
~471
0472
0473
46015j
46054
46055
46,,56
46"'57
46060
MATRIX EXECUTION
164000
0144 3 55
~75572
061611
0020~4
051334
46061 002400
46~62 160000
460163 010570
46064 ~65314
46~65 006003
46066
46067
46070
46"'71
46072
46073
46074
46075
46076
~26121
~50554
015466
161572
035572
100200
101572
035572
003004
46(i}77 071476
LOB
ADB
STB
LOA
INA
gj,I
.-2
saPTR
TEMP1
wORD Of
CLA
LOA 0,1
AND OPMSK
LOS MTl
SZB,RSS
JMP MI02
CPA LBOP
JSB
LDA
ISZ
MPY
REDIM
SBPTR,!
SBPTR
SBPTR,I
~·480
v.1481 46105 126002
0482 46i06 041312
0483 46107 126001
0484.
k:1485**
NO, LOAD CAl WITH
FO~LOWING OPERATOR
MAT
PRINT?
yES
NO, ; (, NEXi OPERATOR?
YES, REDIMENSION ARRAY
SET POINTER
TO FIRST ELEMENT
Of ARRAY
WHILE COMPUTING
ISZ
*
MT0
RSS
JMP MINP1,I
ADA MT0
JMP MINP2,I
OF .
•
MAT
READ?
YES
fIRST MATRIX TO BE INPUT'
NO
YES
RETRIEvE
SAVED CHARACTER
**
Cl...B,INB *
.lS8 FOAT A
DST saPTR,I
ISZ SBPTR
lSZ SBPTR
ISZ MCNT
JMP Mlo9
JMP MI07
CPA BJA00
cea
NUMBER
ELEMENTS
STA MeNT
CCA
READ VALUES fOR MATRIX
0486*
0487 4611~ 006404 MI09
0488 46111 015362
0489 46112 104400
46113 101572 .
0490 4 6 114 ~35572
0491 46115 ~J5572
0492 46116 035476
0493 46117 026110
1(J494 4612~ 026174
Vl495*
0496 46121 05~5t6 MI02
0497 46122 ~07400
049t3
46123 075476
",499 46124 065572
0500 46125 015470
46126 161572
it1501
0502 46127 035572
4613Cil 003004
0503
0504 46131 A713t2
46132 161572
~50f>
0506 46133 035572
yES
ISZ SBPlR
CHA,INA
.
46103 P!35312
46104 002001
STATEMENT?
CPA· .PRGCT
46100 0103400
CPA MTl
0474 46101 051314
JMP MI09
0475 46102 02611~
0476·
0477*. INPUT VALUES FOR MATRIx **
0478*
0479
SAVE POINTER TO
DYNAMIC DIMENSIONS
LAST
STB MeNT
LDB sBpTR
JSB VCHK
LOA SBPTR,I
ISZ SBPTR
(MA,INA
STA Ml~
LOA SBPTR~I
ISZ SBPTR
FETCH
CONSTANT
STORE
IT
DONE?
NO
YES
,"
FOLLOWING ARRAV,
yES
NO, TREAT AS COMMA
VALIDATE
ARHAy ELf-HENTS
SAVE
COUNT
OF
ROWS
pAGf "1791114
0507
HATRIX EXECUTION
461j4 ~65234
46135 00602vJ
4613'; 026151
0508
0509
0510*
0511*· WRITE MATRIX ON
0512*
0513 46137 10020id
4614~
~514
~515
1IJ516
0517
0518
~519
~~20
Vjf)21
LOB FILE*
WRITE ON
JMP MI03
NO
SSB
FILE
MPy
A
•
fILE?
*.
•
MT~
SET
~01312
46141 ~71476
46142 064355
4 6 143 015510
46144 2135572
46145 035572
46146 V'35476
46147 026142
46150 (126174
MI04
STA MCNT
.-2
ELE.MENT COUNTER
WRITE ELEMENT
SBPTR
SBPTR
MCNT
.JMP MI04
.IMP MI07
HOVE TO
LOB
JSB
ISZ
ISZ
ISZ
FILST
TO FILE
NEXT ELE.MfNT
MATRIX DONE?
NO
YES
PAGE
~523.
~524.*
~180.
#t4
~RIlf
MATRIX
EXECUTIO~
*
**
MATRIX ON TllETypE
0525.
*
(MA,INA
SAVE
COLUMN COUNT
SET COLUMN COUNT
MIa)
0527
4 6 152
~~3V'Vl4
~7162J
\(J528
0529
46153 071622
d6154 026160
MI08
~b3(1
4615!; "'0240'"
MI05
(LA
0531
0532
0533
40156 ",51476
46157 ~15426
MIOo
CPA MeNT
.JSA EDELM
DLD SbPTR,I
1d526
46151
~b34
0~35
0536
L15J7
~538
VJo39
vH>40
~541
~542
~543
0544.
~545..
4616(11
1042~ld
STA
STA MT2
.JMP MI06
46161 101572
46162 ~'15416
IsZ
lSZ
ISZ
.)MP
.ISS
JSB
4 6 16'; i~35622
46166 Vl2b155
SBPTR
sBPTR
MT2
MOvE 10
NEXT E.LEMENT
ROW DONE?
NO
YES, DOUBLE
MIO~
OUTLN
OUlLN
l.OA MTJ
46 167 "'15424
46170 ~~15424
4 6 171 061623
4 6 172 035312
46173 ~26153
SPACE
MATRrx DONE?
NO
ISZ MTV'
MIo8
~JMP
CHfCK FOw MORE
"MATwlC~s
*
**
VJ552.
05bJ
t16~~2
~554
46?03 ~"553 1 4
V)555
i\62~4
1260~0
lSZ TEMPt*
l DB TEMPt
CPS PRGCT
JMP *+3
srA MT0
JMP MIGt
LOB .-2
CPS MT1
.}MP ENDIN,J
~556
46205 124762
.JMP XEC1A,I
~549
\1)550
\155j
46176 r,55334
46,77 Vl26202
4620V1 071312
46201 026"44
~643~5
MIn7
•
wJ~57.
~55t3**
~559.
VJ566
46206 064762
46207 ~75364
46210 001000
46211 041573
46212 040356
46213 164000
46214 ~44355
~567
46215 075572
0560
~561
0562
~o63
~564
1t1565
",56d
4~21n
~569
46217 161611
9135611
00202~
Lijb10
4622'"
0571
0572
40221 02645b
46222 ~66004
~573
4022~"i
t~75j40
~574
46224
46225
46226
~35~tl
~105b6
0575
1£1576
1f)571
fMATl LDB
STB
ALS
ADA
AvA
PHINT
ELtMENi
JSB E.NOUT
46163 035572
46164 035572
0546.
111547 46174 035611
~548
46175 0b5611
MT~i
X£C1A
MlXIT
*.
*
SYMTA
.-1
LDB 0,1
ADS .-2
STB sst
ISZ TE:.MPI
LDA TEMPt,!
58A
JMp fMAT6
LDB MLP2A
fMAT2 5TH fvtDP
~k:l20\13
ISl TEMPt
AND OPDMK
SlA,RSS
462;>7 v12644b
.IMP FMA T5
STATtMENT
FINISHED1
YES
NO, SAVE (A)
MATHIX
INPUT?
YES
NO
SET MAIN LOOP TO
STATEMENT EXIT MODE
COMPUTE
POINTER
10
OESTINATION
MATRIx
"MATRIX
fUNCTION?
yES
NO, SET OPERATION
JUMP TO 'REPLACE' MODE
SCALAR
MULT!PLICATION?
yES
PAGE 1t11 8 1 # 1 4
MATRIX l )( f-. CUT I () N
Vl57~
46~3l"
057Q
46231
00 UHH1
914157.5
~~80
46232
~4~356
t
46233 t 04'-100
~582
46234 044355
46235 Vl75350
0~)8
V1583
0584
ALS
ADA
AOA
LOB
AD8
STa
JSB
LOA
CPA
SYMTB
.-1
~,l
.-2
AS2
vCHK
TEMP1
PRGCr
~585
46236 Ql1547v'
4 6 ~ J 7 k1 b 1 0 1 1
"'5R6
A624~
0587
0588
[MAT]
LDA TEMPt,!
AND OPOMK
~590
~591
46241 ~26277
46242 t61n11
46?4.i 01~56b
46244 0~lVJ00
4624~
~592
~593
46246 04"'356
46247 t 04001c.1
ADA SYMTti
ADA .-1
0594
4625(.1
~595
~591
46251 ~7~352
46252 ~lo470
46253 \61611
k1598
46~54
01 ~)570
AND OFJMSK
~599
4625':)
~15V"56~1
CPA MULOP
.jMP EMAT4
RRL 6
vl589
0596
(~51.
334
..JMP
POINTE~
TO fIRST
SOURCE
MATRIX
VALIDATE ITS ELEMENTS
END OF
STATEMf:.NT1
yES
NO
COMPUTE
AL.S
(-141573
POINTE.R TO
SECOND
lOB til,!
ADB .-2
044355
SOUf(CE. MATRIX
srB BS3
.Jst; VCHK
LOA
0600 46256 ~'26~i34
46251 1 if}"" 1 C)b
.-1601
0602*
~6~3.*
NO
COMPUlE
SET Up 1v1A TR I X ADD,
TEMPt,I
VALIDATE ITS lLEMENTS
MATRIX
MlJlrtPLICATION1
YE.S
NO
SUHTRAC T, OR REPLACE
0bVJ4.
~605
46260
v,b6~Hi\6
~6~6
~6f717
46261
vH12c;,~0
06~H~
vjtlt19
VJO 1 1.1
46262 0660.£:'17
46263 r:75340
46264 "65572
462fifl
1. 6~)001
k1611
0612
46,66 151352
v)bt3
vJb14
4627111 115112
46271 035352
46272 1640~1
0615
46267 V'06~h~5
LDB MADDA
SSA
I DB MSUSA
srB MOP
***
*
RECORD
'MATRIX ADD'
OR 'MATRIX SUBTRACT'
OPERATION JUMP
LDB AS1
t.OA 1,1
CPA H5J,1
ROW
COMPATldILITV?
IN~,RSS
YES
JS8 RERRS.tl,I NO
ISz RS3
LOB 1,1
COLUMN
CPS RSJ,I
COMPATIBILITY?
RSS
YES
JSB RlRRS.l1,1 NO
ISz BSj
£MAT3 LOA 852,1
ROW
CPA ASt,I
COMPATIBILITy?
~616
~617
4o:?7 ~i 1~~j52
V,l618
46275 115112
~619
t1 6? 7 6
iib2e!
46277 161350
",621
4630V' 151572
0622
\1623
4 6 3 VI 1 00 t.' "H~ 1
46.3021.15112
RSS
YES
.J SB R £ R~ S+ 1 t , I
NO
0624
4 6 3 ~1.~ (~ 3 5 35'1
V16~5
46304
~626
463{-1'i 100200
403C,,t; ! 0135@
ISz RS2
18Z RS1
MPY RS:?,}
COMPUTE NUMBER
of MATRIX ELEMENTS
1.1627
463~7 16b35VJ
403111' 155572
LDB RS2,I
CPH RSt,r
CMA,INA,RSS
COLUMN
COMPATIBILITY?
YES
~b28
4627 4:1
~fI2~H~
1
(135352
{~35572
062q
4 f) 3 1 1 ;" ~) 3 ~ it) :,
L-)oj(;'
~1o~~1
463\2
46 ] l'
06.52
4 63 1 4 f1 35 :3 b ~'
tl~112
~~ 11 is 7 6
.JSB Ri:RRS+l1,1
STA
~CNT
IS7 HS2
~~o
SAVE 2'5 COMpLEMENT OF sIZE
PAGE 01R2
~633
#t4
MATRIX EXECUTION
46315 ~j5572
TSZ AS1
PAGE 0183 #15
ilI~H~
MATRIX EXECUTION
1*
VJ0~2**
AS~IGN
MATHJX VALUE
~1r1~j.
*.•
...
r)~H14*
~~0b.
0006*
frH!'l07.
MOP HOLDS A POINTfR TO (ODE wHICH COMPUTES ONE ELEMENl Of THE
DESTINATION MATRIX ANO' WETURNS IT IN (Al ANO (B). HEXIT
HOLDS TH[ tXIT ADORfSS SET BY TH[ CALLER,
liH~08.
~~1d9
0010
0011
~012
~013
0014
~015
0~16
~017
0018
0019
0020
46316 104200
MLQOP DLD BS2,1
LOAD lLEMENT OF SOURCE MATRIX
463\7
46320
46321
46322
46323
46324
46325
46326
JMP
MLOPt ISZ
lSZ
MLOP2 ISZ
ISZ
MLOP3 OST
MOP,1
BS3
BSJ
BS2
BS2
8S1,I
JUMP TO OPERATION
MOVE TO NEXT ELEMENT
OF SECOND SOURCE MATRiX
MOVE TO NEXT ELEMENT
OF FIRST SOURCE MATRIX
RECORD EL.EMENT
TSZ
ISZ
lSZ
JMP
BSl
BSt
MCNT
MLOOP
OF DESTINATION MATRlX
AND MOVE TO NEXT ELEMENT
DONE?
NO
yES
101350
125340
~J5352
035352
03535~
035350
104400
101572
46327 035572
46330 ~35572
46331 035476
46332 0263t6
46333 125364
.JMP HEXIT,!
0~21.
0022*.
!d1023*
0024
~025
~1t1~6
0027
W~28
0029
00,~0
Y,031
~032
0033
0034
vH135
t1036
0037
0038
I()VJ3g
0k'J40
0041
~042
0043
~044
0045
0046
0047
0048
0049
005 0
0051
0052
1!10b3
COMPUTE MATRIX PROOUCT
46334 161~72
46335 151350
46336
46337
46340
46341
46342
46343
46344
46345
003005
115112
~716J2
035572
035350
161350
t513n2
003005
46346 1151t2
46347 071633
4635~ 071634
463b1 ~01000
46352 '~71630
46353 10~20e
46354 101572
46355 ~40361
46356 071631
46357 0.35352
46 3 6 ~) 1 61 5 7 2
46361 151.352
46362 k1030105
46363 115112
46364 071635
46]65 ~71636
46366 0v.l3004
46367 001000
46370 071637
46371 '135572
46372 035350
...
••
•
EMAT4 LDA 8S1,1
DESTINATION MATRIX
CPA 882,1
ROw COMPATIBILITY7
YES
CMA,INA,RSS
JSB RERRS+l1,I NO
STA MMT0
SAVE ROW COUNTER
ISz 851
lSZ BS2
LDA 8S2,1
CPA 853,1
INNER PRODUCT
COMPATIBILITy?
CMA,INA,RSS
YES
JSB RERRS+l1,I NO
ST. MMTl
SAVE INNER PRODUCl
STA MMT2
COUNTERS
ALS
SAVE ROW
STA MMT6
BACK UP AMOUNT
MPY BS1,1
SAVE COLUMN
ADA .+2
BACK UP
STA MMT7
AMOUNT
lSz BS3
LOA BS1,1
DESTINATION MATRIX
CPA 853,I
COLUMN COMPATIBILITy?
CMA,INA,RSS
yES
JSB REHR~+11,I NO
STA MMT3
SAVE COLUMN
STA MMT4
COUNTERS
(MA,INA
SAVE CQLUMN
ALS
AOVANCE
5TA ~MT5
AMOUNl
ISZ AS1
MOVE TO
ISZ RS2
. ·~IRST ELEMENT
PAGE
0L154
0055
0056
0057
~1R4
~1b
MAT~IX
46j73 0.Jt)J52
46374 065352
46375 ~75376
46376 104200
0058
46377 046016
46401£1 104400
46401101572
~059
464~2
~060
0061
0062
0063
1d064
01tJ65
0066
~067
0068
~069
0070
ft1071
01072
0073
0074
0075
0076
0077
0078
0079.
008v;
0081
~rlI82
0083
~084
0085
0086
0087
0~88
0089
0090
~091
46403
46404
46405
46406
46407
4641(11
46411
46412
4641J
46414
46415
10420~
1~1350
tx~rUTION
MPRI
OLD FId.0
DST 851,1
MPR2
DLD B52,I
035350
tsz BS2
~35350
15Z
JSB
DfF
JSB
1A15400
101352
~154"'2
Df:F 8S1,I
1044~~
OST 851,1
1~1572
~165J52
t DB AS3
ADS MMrb
STB AS3
TSZ MMT2
JMp MpR2
ISl Bst
lSZ Bst
LOB MMTl
STB MMT2
ISZ MMT4
.JMp MPR3
LOB MMT3
S'TB MMT 4
ISZ ~MT0
~26442
.JMP MPR4
.J MP XE C 1 A , 1
124762
06535~
ri45630
075350
065352
4644Ci' 045631
46441 002001
46442 065376
46443 075352
46444 026376
MPR3
LOB BS2
ADB MMT6
5TB BS2
LOB SS3
MPR4
ADB MMTI
RSS
LDB MMT8
SrB BS3
.JMP MPRl
01092*
~093.*
0094*
0095
S~T
uP SCALAR MULTIPLICATION
~15J56
EMAT5 JSB FETCH
1t1096
46446 t044~0
46447 0V11622
DST SCALR
0097
4645~
ISZ TEMPi
ISZ TEMP1
LOA TEMP!,1
LDB SMULA
0098
0099
0100
~101
6{)
4644~
035611
46451 ~35611
46452 161611
4645:i ~66010
46454 "126223
.JMp
ELEMENT TO ZERO
COMPUTE
TERM
OF
RS2
.FMP
HS3,I
.FAD
101572
O}45637
46416 Ci)75J52
46417 ~J5634
46420 Ci12641tJ2
46421 035572
46422 035572
46423 065633
46424 075634
46425 "35636
46426 026434
46427 065635
46430 07~636
46431 (/135632
A643?
46433
46434
464j5
46436
46437
OF MATRICES
SAVE FIRST.ELEMENT ADDRESS
OF SECOND SOURCE MATRIX
INITIALIZ~ DESTINATION
ISZ AS3
LOB RS3
STB MMT8
INNER
PRODUCT
ADD IN PREVIOUS
RUNNING SUM
SAVE RUNNING SUM
ADVANCE 10
NEXT ROW OF
SECOND SOURCE MATRIX
INNER PRODUCT COMPLETE?
NO
yES, MOVE TO NEXT
DESTINATION ELEMENT
RESET INNER PRODUCT
TERM COUNTER
ROW COMPLETE?
NO
yES, RESET
COLUMN COuNTER
DONE?
NO
YES
BACK UP
TO BEGINNING OF RO~ OF
fIRST SOURCE MATRIX
BACK UP TO BEGINNING
OF NEXT COLUMN
Of SECOND SOURCE MATRIX
BACK UP TO FIRST ELEMENT
...
••
•COMPUTE"
SAVE
AND
SCALAR
LOAD OPERATION JUMP
PROCESS
FOLLOWING
MATRIX
f~~AT2
102*
~103
1t1104
46455 101104
46456 010416
EMAT6 RRR 4
AND .+37B
COMPUTE
MATRIX
PAGE 0185 #15
MATRIX EXECUTION
~105
46451 040330
0106
46460 071514
~107
4646t 002021
46462 026521
0108
0109*
~110*·
ADA ,-218
STA 100
SSA,RSS
JMP EMAT8
SET UP MATRIX INITIALIZATION
0111*
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
°124
0125
01 2 6
0127
0126
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
46463 065611
46464 006004
46465 ~55334
LDB TEMPt
INS
CpB PRGCT
46466 002001
RSS
46467 015466
46470 161572
46471
46472
46473
46474
46475
46476
011362
035572
100200
101572
003004
071416
46477 035514
465"0 026512
46501 161512
465 02 05 13 6 2
46503 003001
46504
46505
46506
46507
46510
46511
46512
115127
071514
003400
071362
062011
026515
062006
46513 066020
46514 035514
46515 066015
46516 075350
46517
~7134"
0140 4652~ 026315
0141*
0142 46521 035611
0143
46522 161611
0144
0145
46523
46524
46525
46526
0146
0147
010566
001000
041573
040356
T .....
~NVL
JSB
LOA
STA
ISl
MPY
REDIM
0
...........
Oijl,J.
ID1
881
BS1,I
EMATa lSZ
LOA
AND
ALS
AOA
TEMPt
TEMP1,I
OPDMK
REDIMENsIONING?
NO
yES
COMPUTE
NUMBER
OF ELEMENTS
IN 2'5
COMPUTE
POINTER
SYMTB
0151
0152
0153
0154
,46532 015410
46533 165572
46534 005000
46535 075635
JSB VCHK
LOB 881,1
BlB
STB MMTJ
0155
46536 005100
BRS
0156
46537 035572
0157
46540 161572
0158
0159
46541 151350
4654? ~03005
lSl BSt
LOA BS1,I
CPA 882,1
CMA,INA,RSS
0150
***
*
TO
ADA .-1
LOB 0,1
ADB .-2
0149
TypE
MATRIX INITIALIZATION?
NO
CMA,INA
COMPLEMENT
STA MeNT
SAVE IT
ISZ 100
'IDN' ?
JMP EMAT7
NO
LOA BS1,1
YES
CPA 101
SQUARE MATRIX?
CHA,RSS
yES
JSB RERRS+24,I NO
STA rD0
SET
ceA
DIAGONAL
srA IDI
COUNTER
LOA IDNA
LOAD OPERATION JUMP
JMP •• 4
EMAT7 LOA MLP3A
RECORD
LOB Fl.0A
CORRECT CONSTANT.
ISZ 100
0.0 FOR 'ZER'
1,0 FOR 'CONt
LOB F0.0A
STB BS2
0,0 FOR 'ION'
srA MOP
REtORD OPERATION JUMP
JMP MLOOP-l
46527 164000
46530 044355
46531 075350
0148
FUNCTION
STB BS2
SOURCE
MATRIX
VALIDATE IT
LOAD DESTINATION ROW DIMENSION
SAVE COLUMN
ADVANCE AMOUNT
ARE COLUMNS OF DESTINATION
lNO ROWS OF SOURCE EQUAL?
YE~,
PAGE 01a6 #15
MATRIX EXECUTION
0160
0161
0162
46543 115112
46544 071633
0163
46546 035350
46547 155350
46545 071634
0164
4655A 0070PJ5
46551 115112
~16S
0166
0167
01 6 8
0169
0170
rAt".
.,.,
A
0172
0173
0174
0175
0176
0177
121178
0179
0180
0181
46552 075632
46553 1121020121
46554 001635
46555 035350
46556 065514
46557 006003
46560 026610
46561 040361
46562 071636
46563 035572
46564 2126572
·46565 065633
46566 075634
46567 065350
46570 045636
46571 075350
0182*
0183*.
0185
0186
0187
0186
0189
0190
0191
0192
0193
0194
0195
0196
0197*
0198*.
46572 104200
101350
46573
46574
46575
46576
46577
46600
46601
46602
46603
46604
46605
46606
~203
0204
0205
0206
0207
020t4
0209
0210
0211
0212
SZS,RSS
JMP INV
ADA .+2
STA MMT4
ISZ 8S1
JMP TRN
LOB MMTl
TRN1
TRANSFER
10.4400
OST BS1,I
IaZ Bst
ISZ Bst
LOB BS2
ADS MMTJ
8r8 BS2
ISZ MMT2
JMP TRN
ISZ MMT0
JMP TRNl
JMp XECIA,1
INVERT A MATRIX
46610 064000
46611 001100
46612 071476
46613 061572
46614 071352
46615 061330
46616 040361
46617 071572
46620 0030",4
46621 040716
46622 040001
46623 003021
46624 115111
INV
RESET
**
OLD '* 8S2,1
...
065350
045635
075350
035634
026572
035632
026565
46607 124762
YES, SAVE COLUMN
BACK UP AMOUNT
FOR SOURCE MATRIX
STB BS2
ADB MMT4
TRN
, TRN' "
NO
COUNTER
BACK UP TO
FIRST ELEMENT
OF NEXT COLUMN
STe MMT2
LOB BS2
101572
035572
035572
0199*
0201
02\12
ISZ BS2
LOB 100
TRANSPOSE A MATRIX
0184*
0200
JS8 HERRS.11,I NO
STA MMTl
SAVE DESTINATION MATRIX
STA·MMT2
COLUMN COUNTERS
ISZ BS2
ARE ROWS Of DESTINATION AND
CPR 882,1
COLUMNS OF SOURCE EQUAL'
CMB,INB,RSS
YES
JSB RERRS+l1,I NO
S18 MMT0
SAVE ROW COUNTER
MPY MMT3
SAVE COLUMN BACK UP
.*•
ELEMENT
ADVANCE TO
NEXT ELEMENT
Of COLUMN
COLUMN TRANSFERRED'
NO
YES, DONE?
NO
yES
*
LOB 0
AHS
STA MeNT
LOA B"SI
STA BS3
LOA TMPST
ADA .+2
STA BSl
CMA,INA
ADA LWAUS
ADA 1
CMA,SSA,RS8
.J88 RERRS+10, I
SAVE 2'$ COMPLEMENT
OF NUMBER OF
ELEMENTS IN ~ATRIX
SAVE ADDRESS OF
DESTINATION MATRIX
SET ADDRESS
OF FREE CORE
AS BASE ADDRESS
SUFFICIENTFREE CORE
. : TO COpy
SOURCE MATRIX'I
NO
PAGE 0187 #15 . MATRIX EXlCUTION
0213
111214
0215
0216
0211
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
02 46
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
46625
46626
4662 7
46630
46631
46632
46633
46634
46635
46636
46637
46640
46641
46642
46643
46644
46645
46646
46647
46650
46651
46652
46653
46654
46655
46656
46657
46660
46661
46662
46663
46664
46665
46666
46667
46670
46671
46672
46673
46674
46675
46676
46677
46700
46701
46702
46703
46704
46705
46706
46707
46110
46711
46112
46713
46714
AOA L.,.AUS
PBPTR
040716
070056
006400
075624
075625
STA
(LB
062012
071340
062637
071364
026316
046640
104200
001624
0154",6
046013
104400
001626
INV1
STe
5T8
LOA
STA
LOA
STA
JMP
OEF
OLD
MAXE
MAXE+l
MCPYA
MOP
INV1
HEXIT
MLOOP
*+1
MAxE
JSB .FMP
OfF TOLC
DST TUL
003400
ceA
071514
041352
071572
003004
041330
003004
071352
062661
071364
026470
046662
065330
044361
060001
075350
045352
075572
006400
075514
026703
061514
040355
071514
061632
071634
061344
041635
040361
071344
071636
006400
075624
075625
065633
075637
071630
STA 100'
10420l'
101630
INV2
INV3
INV4
INV5
AOA 8SJ
STA BS1
CMA,INA
ADA TMPST
CMA,INA
srA BS3
LOA INV2
STA MEXIT
JMP INVL
OEF .+1
LOB TMPST
ADS ,+2
LDA 1
STB BS2
AOB aS3
STa eS 1
CLB
STB 100
JMP INV4
LOA ID0
ADA .-2
STA 100
LOA MMT0
STA MMT2
LOA PIVEL
ADA MMTJ
ADA ,+2
STA PIVEL
STA MMT4
CLB
STa MAXE
STB MAXE+1
LOB MMTI
ST8 MHT5
STA MMT6
OLD MMT6,I
YES, INCL.UDE IT
IN SWAP AREA
SET 'MAXIMUM ELEMENT'
VAL.UE TO
ZERO
SET UP TO
COpy MATRIX,
FIND MAXIMUM (ABSOLUTE
VALUE) ELEMENT,
AND RETURN
COMPUTE
RELATIVE
TOLERANCE
RESTORE
DESTINATION
BASE ADDRESS
COMPUTE DIFfERENCE
BETWEEN BASE ADDRESSES
OF SOURCE (COPIED)
AND DESTINATION
MATRICES
SET DESTINATION MATRIX
TO IDENTITY AND RETURN
SAVE
BASE ADDRESS
OF SOURCE
MATRIX
SAVE BASE ADDRESS OF
DESTINATION MATRIX
SET PIVOT ELEMENT
BIAS TO ZERO
SET BIAS
FOR NEXT
PIVOT EL.EMENT
INITIALIZE COUNTER TO
2'S COMPLEMENT OF COLUMNS
UPDATE PIVOT
ADDRESS
TO NEXT
DIAGONAL ELEMENT
INITIALIZE
PIVOT EL.EMENT
AS MAXIMUM
IN COLUMN
SET COUNTE~ TO SEARCH
REMAINDER OF COLUMN
LOAD
ELEMENT
PAGE 0188 #15
0266
0267
0268
46715
46716
46711
46720
02 6 9 46721
0270 46122
0271 46723
0272 46724
0273 46725
0274 46726
46727
0275 46730
46131
0276 46732
0277 46733
0278 46734
0279 46735
0280 46736
0281 46737
0282 46740
0283 46741
0284 . 46742
0285 46743
0286 46744
0287 46745
0288 46746
0289 46747
0290 46750
0291 46751
0292 46752
0293 46753
ftJ294 46754
0295
46755
46756
0296 46751
46760
0297 46761
46762
0298 46763
46764
0299 46165
46166
0300 46767
46770
46771
0301
46772
03 0 2 46773
46774
46775
0303
46776
0304
46771
0305
0306
MATHIX EXEcUTION
002020
SSA
JSB ARINV
DST SCALR
GET
ABSOLUTE
JSB .FSB
SUBTRACT
PREVIOUS MAXIMUM
015370
104400
001622
015404
001624
OEF MAXE
002002
SZA
RESULT
JMP INV6
DLD SCALR
POSITIVE?
NO
YES, RECORD
SSA
002020
026734
104200
001622
104400
VALUE
DST MAXE
NEw MAXIMUM
0211624
061630
071636
061630
041635
035637
026712
065344
045514
075631
045352
075637
075362
061636
051344
027017
041514
071376
041352
071630
104200
101637
10440()
001622
104200
101630
104400
tNV6
LOA MMT6
STA MMT4
LDA MMT6
AOA MMT3
ISl MMT5
JMP INV5
LDB PIVEL
ADS 100
STe MMT7
ADS BS3
STB MMT5
STB ID1
LOA MMT4
CPA PIVEL
JMP INV8
ADA 100
5.l A MHT8
ADA aSJ
STA MMT6
INV7
OL.D MMT5,1
AND ITS
LOCATION
MOVE TO NEXT
ELEMENT OF COLUMN
COLUMN DONE?
NO
YES
SET POINTERS
TO OLD
PIVOT ROWS OF
80TH MATRICES
NEEO TO
SWAP ROWS?
NO
YES, StT POINTERS
TO NEW
PIVOT ROWS OF
BOTH MATRICES
SWAP
DST SCALR
OLD MMT6,I
ROW
OST MMT5,I
101637
104200
001622
DLD SCALR
11214400
D8T MHT6,I
101630
104200
OLD MMT7,I
ELEMENT
OF
101631
104400
001622
OST SCAL.R
10420\l1
101376
OLD M.MT8,1
104400
470VJc" 101631
47001 104200
47002 001622
OST MMT7,1
47003 104400
4701214 101376
DST MMT8,1
OLD SCALR
EACH
MATRIX
.....
,
,
PAGE. 0189 #15
('
~ ,
MATRIX EXECUTION
0307
47005 035637
0308
8309
0310
~i'006
035637
47001
47010
47011
47012
47013
035630
A35630
ISZ MMT5
ISZ MMT5
ISZ MMT6
tSz MMT6
035631
ISz MMT1
0311
0312
0313
03'14
0315
0316
0317
0318
47022 001626
0321
115131
0322
0323
0324
0 32 5
0326
0321
0328
0329
0330
0331
0332
0333
0334
0335
0336
~337
0338"
0339
0340
0341
0342
0343
0344
03 4 5
0346
0347
0348
~349
0350
0351
0352
0353
0354
0355
47023
47024
41025
47026
47027
47030
47031
47032
41033
47034
ISZ MMT8
ISZ MMT2
INV8
104200
046021
101344
47055
47056
47057
47 0 6 0
47061
47062
47063
47064
47065
47066
47067
41070
47071
47072
47,,73
47e174
035630
104200
101630
015406
001624
104400
101630
035637
027041
061362
071630
061632
071634
071637
104200
101630
002003
027070
015406
001624
104400
101630
035630
035630
035637
027060
065572
POINTERS
,FSB
NO
YES
PIVOT EL.EMENT
8M"ALLER THAN
RERRS+26,I
TOLERANCE?
YES
Fl.e
NO
OST MAXE
COMPU1E
INVERSE OF
PIVOT ELEMENT
LOA MMTl
INA,SZA,RSS
LAST
PIVOT?
JMP INV1"
INV9
ROW SWAPPED?
TOl
JSB ,FOV
OfF PIVEl,I
015410
104400
001624
061633
002007
47035 021053
47036 071631
41937 061344
47040 07163~
47042
47043
47044
47045
47046
47047
47050
47051
47052
47053
47054
JMp INV7
OLD MAXE
JSB
OfF
55A
JSB
OLD
002020
41041 035630
FOUR
ISZ MMT8
035376
0319
0320
ALL
ISZ MMT7
035631
47014 035376
47015 035634
47016 026155
41011 104200
47020 001624
47021 015404
BUMP
STA
LOA
STA
ISZ
ISZ
MMT5
PIVEL
MMT6
MMT6
MMT6
OLD MMT6,I
JSB .FMP
OfF MAXE
DST MMT6,I
ISZ MMT5
JMP INV9
INV10 LOA IDI
STA MMT6
LDA MMT0
STA MMT2
STA MMT5
INVII OLD MMT6,I
yES
NO, PREPARE
TO SCALE
PIVOT ROW
MOVE TO NEXT
ELEMENT OF ROW
MULTIPLY
BY l/PIVOT
AND STORE
NEw VALUE
ROW DONE?
NO
yES
SET
COUNTERS
SCALE ELEMENTS OF
SlA,RSS
JMP INV12
JSB .FHP
OfF MAxE
DST MMT6,I
TNV12 rsz
lSZ
lSZ
JMP
LDB
MMT6
PIVOT ROW
OF DESTINATION
MATRIX
MMT6
MMT5
INV11
eSt
ROW DONE?
NO
yES, SET POINTER TO
PAGE 0190 #15
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
47075
47076
41077
47t0e
47101
47102
47103
471£14
47105
47106
47107
MATRIX EXECUTION
075400
061350
003004
041514
003004
071376
051344
021206
011631
104200
101631
1ti3~6
47110 002003
0367
47111
47112
47113
47114
47115
47116
47117
47120
47121
47122
47123
47124
47125
47126
47127
027206
104400
001622
061633
2102007
027144
071637
061344
0380 47130
0381 . 47131
0382 4713 2
47133'
0383 47134
47135
0384 47136
0385
47137
0386 47140
47141
0387 47142
0388 47143
0389 47144
0390
47145
47146
0391
0392 47147
0393 47150
47151
0394
41152
0395
47153
03~6
47154
0397 41155
0398 47156
47151
0399 47160
015406
0368
0369
0370
0371
0312
0373
0314
0315
0376
0371
0378
0379
47161
0400
0401
0402
47162
47163
47164
071630
035630
035630
035631
035631
104200
001622
101630
104400
001624
104200
101631
015404
01211624
104400
101631
035637
021122
061362
0716 30
061632
071636
104200
101630
092003
027166
015406
001622
104400
001624
104200
101400
015404
001624
104400
STB VTe
LOA 852
CHA,INA
ADA 1D0
CHA,INA
INV13 STA MMT8
CPA PIVEL
JMP INV19
STA MMT7
OLD MHT1,1
SZA,RSS
JMP INV!9
OST SCALR
DESTINATION ARRAY
SET POINTER'
TO PIVOT COL.UMN
IN FIRST ROW
OF SOURCE
MATRIX
PIVOT ROW?
yES
NO
LOAD MULTIPLIER FOR PIVOT ROW
ZERO?
yES'
NO, SAVE MULTIPLIER
LOA MMTI
INA,SZA,RSS
JMP INV15
LAST
STA MMT5
NO, Sl·T POINTER TO
PIVEL
MMT6
MHT6
MMT6
MMT1
ISZ MMT7
OLD sCALR
LOA
STA
INV14 ISZ
ISl
ISZ
ROW1
YES
PIVOT ELEMENT IN
SOURCE MATRIX
MOVE
TO
NEXT
COLUMN
COMpUTE
JSB .FMP
DEF HMT6,1
'OST MAXE
TRANSfORMED
OLD MMT7,1
JSB .Fsa
OEF MAXE
DST MMT7,1
lSZ MMT5
.JMP INV14
INV1!5 LOA 101
STA MHT6
LOA MHT0
STA MMT4
INV16 OLD MMT6,1
EL.EMENT
ROW DONE!
NO
YES, SET POINTER TO PIVOT
'ROW OF DESTINATION MATRIX
SET
COUNTfR
COMPUTE
5ZA,RSS
JHp INV11
JSB .FMP
OEF SCAL.R
oST MAXE
TRANSFORMED
OLD vr0,I
JSB .FSB
DEF MAXE
oST vT0,I
ELEMENT
PAGE 0191 *15
0403
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0411
0418
0419
042(,3
~421
MATRIX EXECUTION
47165 101400
47166 035400
41161 035400
47170 035630
47171 03!5630
47172 035636
47173 021150
47114 061376
47175 041635
47176 035634
47117 027102
47200 035633
47201 026673
47202 061330
47203 040406
47204 070056
47205 124762
47206 061400
47207 041635
47210 P.l71400
47211 027114
ISZ
ISZ
ISZ
lSZ
ISZ
JMP
INV1R LDA
ADA
ISZ
INV17
MOVE
TO
\lT0
VT0
MMT6
MMT6
NEXT
COLUMN
ROW DONE!
MMT4
NO
YES, MOVE TO NEXT
ROW IN SOURCE MATRIX
ALL ROWS TRAN8FORMED?
INV16
MMT8
MMT3
MMT2
,JMP INVt3
ISZ MMTI
JMp INV3
LOA TMPST
ADA ,+23
ST. PBPTR
JMP XECI A,I
INV19 LOA VT0
ADA MMT3
srA VT0
JMP INV18
0422
0423.
0424 •• CODE TO COMpUTE AN ELEMENT
0425.
0426 47212 015402 MAOD JSB ,fAD
DEF 883,1
0427 47213 101352
0428 47214 026321
JMP MLOP1
0429*
MSUB JSB FSa
0430 47215 015404
OfF ~S3,I
47216 101352
0431
JMP MLOPl
0432 47217 026321
iit433.
0434 47220 035362
ISZ 101
IDN
JMP MLOP3
0435 47221 026325
LDA ID0
0436 47222 061514
S'TA lOt
0437 47223 rtJ71362
104200
OLD Fl.0
0438 47224
47225 046021
JMP MLOP3
0439 47226 026325
0440.,
47227 ~15406 SMULT JSB FMP
0441
•
0442 47230 001622
OEF SCALR
JMP MLOP2
0 4 43 47231 026323
0444*
0445 47232 002020 MCPY 55A
0446 47233 015370
JSB ARINV
DST SCALR
0447 47234 10440121
47235 001622
JSB .FSa
0448 47236 015404
DEF MAXE
0449 47237 001624
0450 47240 002002
SZA
0451
47241 002020
SSA
.IMP MCPYl
0452 47242 027247
0453 47243 104200
OLD SCALR
47244 001622
0454 47245 104400
DST MAxE
NO
YES, MATRIX INVERTED?
NO
yES
RELEASE EXTRA
CORE
ADVANCE TO
NEXT ROW OF
DESTINATION
MATRIX
*
**
*
ADD
SOURCE
EL.EMENTS
SUBTRACT
SOURCE
ELEMENTS
DIAGONAL ELEMENT?
NO
yES, RESET
DIAGONAL. COUNTER
LOAD
1.0
MULTIPLY
SOURCE ELEMENT
BY SCALAR
GET
ABSOLUTE
VALUE
SUBTRACT
PREVIOUS
MAXIMUM
POSIT1VE RESULT,?
NO
YES, RECORD
NEw MAXIMUM
PAGE
~192
#lb
MATRIX EXECUTION
47246 001624
~455
47247
0456
47250 101350
47251 126004
10420~
MCPYI OLD 882,1
JMP MLP2A,I
0457.·
0458...
0459.*
0460*
0461.
°462.
0463*
RELOAD VALUE
CHECK VALIDITY Of MATRIX
.*
••
•• *
ENTER WITH (B) POINTING TO THe DyNAMIC .RRAy DIMENSIONS,
COMPUTE THE NUMBER OF ELEMENTS AND CHECK EACH ONE. EXIT
To ERROR IF ANy ELEMENT HAS VALuE 'UNDEFINED'.
ttJ464*
0465 47252 160001
0466 47253 006004
1t)467 47254 075400
21468 47255 100200
47256 101400
0469 47257 065400
0470 47260 003000
0471
47261 071400
0472 47262 035400
21413
47263 006005
0474 47264 125470
0475 47265 160001
0476 47266 001222
0477 47267 002004
0418 47270 001310
0479 47271 027301
0480 47212 051027
0481
47273 006005
0482 47274 115126
21483
47275 160001
0484 47276 002002
0485 47277 1 t"5126
0486 47300 027262
0487 47301 006004
0488 47302 027262
#VCHK LOA 1,1
INS
arB VT0
LOAD ROW DIMENSION
MPY VT0,I
MULTIPLY BY
LOB VT0
COLUMN DIMENSION
SAVE l~S COMPLEMENT
OF' MATRIX SIzE
eMA
STA VT0
VCHKl ISZ VT0
INB,RSS
JMp VCHK,I
LDA 1,1
RAL,RAL
DONEl
NO, MOVE TO NExT ELEMENT
yES
IS
INA
OPERAND
RAR,SlA
NORMALIZEO,
JMP VCHK2
YES
CpA BIT15
MAyBE, WAS FIRST WORD ZERO?
INB,RSS
YES
JSB RERRS+2J,I NO~~ERROR
LOA 1,1
SECOND
SZA
wO~Q ZERO?
JSB RERRS+23,I NO.~ERROR
JMP VCHKl
VCHK2 INB
JMP VCHKl
PAGE 0193 *15
0490 ••
0491.·.
0492.·
0493*
0494.
0 4 95*
0496.
0497fr
0498*
04 99*
0500.
0501 ..
MATRIX EXECUTION
REDIMENSION A MATRIX
47303 035611
47304 015356
0506
0507
41307 006004
47305 015342
47306 115120
0508
47310 175512
41311 015470
0509
47312 035512
0510
47313 165611
47314 006003
47315 027321
0512
0513
0514
47316 015356
47317 015342
0515
47320 115120
0516
47321
47322
47323
47324
47325
47326
47327
47330
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
0528
0 5 29
.*
UPON'ENTRy CT[MP1)+1 POINTS TO THE REDIMENSION SUBSCRIPT IN
THE PROGRAM AND SBPTR POINTS TO THE CURRENT DYNAMIC DIMENSIONS
OF THE ARRAY, T~E SUBSCRIPT BOUNDS ARE EVALUATED, ROUNDED,
AND RECORDED, IF THE NUMBER OF ELEMENTS IS WITHIN THE
PHYSICAL ARRAY ALLOWANCf,.EXIT WITH TEMP1 POINTING TO THE
WORD FOLLOWING THE SUBSCRIPT AND SsPTR AS UPON ENTRV, ELSE
ExIT TO ERROR.
0502
0503
0504
0505
0511
••
•••
006004
175512
061410
100200
101572
006003
003025
115130
47331 071470
47332
47333
47334
47335
065572
044354
160001
006004
47336 075512
47337 100200
47340 101572
05 30
05 31
0532
0533
0534
41345 035611
0535
47346 t25466
47341. PJ35572
47342 041 4 7 0
47343 002020
47344 115130
#HDIM t5l TEMPt
JSB FETCH
JSB SBFIX
COMPUTE NEW
ROW DIMENSION
15
81T INTEGER • 01
JSB RERRS+17,I NO
INS
YES, SAVE
STB SBPTR,!
TRUE VALUE
srB R00
IN ARRAy
ISZ SBpTR
ENTRY
LOB TEMP1,I
EXPLICIT NEW
SZB,RSS
COLUMN DIMENSION?
JMP RDIH1
NO
JSB FETCH
YES,
JSB SBFIX
COMPUTE
JSB RERRS+17,I
IT
ROIHl INS
SAVE TRUE VALUE
srB SBPTR,I
IN ARRAy ENTRy
LOA ROe
COMPuTE
MPY SePTR,I
NUMBER OF
SZB,RSS
ELEMENTS
CMA,SSA,INA,RSS
SPECIFIED
JSB RERRS+25,1 TOO MANY
STA RDe
LOB 8BPTR
RESET
ADB .-3
ARRAY POINTER
LOA 1,1
AND COMPUTE
INB
NUMBER OF
STB SBPTR
MPY SBPTR,I
ISZ
ADA
SSA
JSB
ISl
JMP
SBPTR
RD0
ELEMENTS
AVAILABLE
FOR ARRAY
SUFFICIENT
PHySICAL SPACE?
RERRS+25,I NO
TEMPt
yES
REDIM,I
PAGE 0194 #16
OUTPUT ROUTINES
ORG 5000AB
0002
50~0~
~003
!)000t.1
174~~0
Pl5247~'
0004
500~1
1tJ1tJ05
50002 001614
0006
00217
!;0003 000112
50004 ~00113
HMASK OCT 1740A~
LCALL OfF LIS10-1
NMt3FA OfF NUMBF
DEC
DEC
DEC
0008 50005 177670
DEC
0009 50006 177666
0010 50007 \76030 M1000 DEC
0011**
**
0012***" PRINT A NUMBER ***
.74
.75
MM72
MM74
74
75
.. 72
.74
.1000
0013 ••
**
0014.
0015. ENTER WITH A FLOATING POINT NUMBER IN (A) AND (8). PRINT THE
0016* NUMA~R AND APPEND BLANKS TO REACH THE PRINT POSITION 8PECIFIED
0017* By -EOPF ON RETURN FROM NUMOl.
0018*
0019 !:50010 002300 #ENOT ceE
JSB NUMOT
0020
00011 015420
0021
JMP •• 3
50012 "'26015
LDA ,+406
OUTCR
060417
~022
fj0~IJ
0023
0024
0025
0026
0027
0028
0029.
1ti030
b0014 015452
b0015 065456
50016 045570
50017 006002
50020 026013
50021 125 4 16
·J8B
50022 114631
50023 116373
50024 102756
50025 002050
MINFX Ole
~031
0032.*
0033***
0034**
0°37·
0~38*
003 9*
0040.
0041.
004 2
0043
0044
0045
0046
0047
SZB
JMP
.-5
JMP ENOUT,I
**
ENTER wITH A FLOATING POINT NUMBER IN (A) AND (8) AND (E) • 1
IF • SIGN IS WANTED. DETERMINE THE FORM OF THt NUMBER AND
SET EOPF ACCORDINGLY. NON.INTEGERS ARE ROUNDED AFTER CONVERSION
TO DECIMAL.
TRAILING ZEROS ARE SUPPRESSED ON NUMBERS WITHOUT
ExPONENTS (AND ON NUMBERS wITH ExPONENTS IF CALLED FROM 'LIST'>,
0049
~051a
50036 002001
RSS
0051
b0037 060417
50040 ~71266
50041 (!161614
50042 075615
5~043 015414
STA
LOA
NUMOI STB
JSB
0053
0054
0055
NO
YES
***
**
#NMOl STA NUMBF
SEZ,RSS
JMP NUMOl
SSA,RSS
JMP •• 5
JSB ARINV
STA NUMBF
LOA ,+55e
0~52
FULL?
~0.09999g959
5 0 0 2 6 071614
00027 002041
5003~ 026042
5~031 002021
f:i0032 026037
50033 015370
50034 07161 4
50035 060434
0~48
OUTPUT
A BLANK
FIELD
MAXFX DEC "999999.5
OUTPUT A NUMBER
0035.
0036*
LOB EopF
ADB CHRcT
ENABLE SIGN
OUTPUT NUMBER
LOA
.... 408
SIGN
NUMBF
NUMBF+l
IFlx
SAVE HIGH MANTISSA
SIGN?
NO
YES, NEGATIVE NUMBER,
NO
YES, NEGATE NUMBER
SAVE HIGH MANTISSA
LOAD '-'
LOAO '+'
SAVE SIGN
RETRIEVE HIGH MANTISSA
SAVE LOw MANTISSA
INTEGER?
PAGE 0195 #16
OUTPUT ROUTINES
0056 50044 026070
00 5 7 50045 102201
0958 50046 026070
0059.
0060.* OUTPUT AN INTEGER
0061*
0062 50047 ~75614
0063 50050 046007
0~64
50051 060365
0065 50052 006021
0066 50053 040362
0067 50054 041570
0068 50055 e03004
0069 50056 071456
0070 50057 042003
0071 50060 002020
0072 50061 016424
0073 50062 061266
0074 50063 002002
0075 b0064 015452
0076 50065 065614
0077 50066 015454
007$ 50067 125420
0019.
0080 •• OUTPUT A FLOATING
0081·
0082 fS0070 060355 NUM02
0083 50071 071336
0084 ~0072 104200
50073 001614
0085 50074 015402
0086 50075 050024
0081 50076 002021
0088 50077 026106
0089 50100 104200
50101 001614
0090 50102 015402
"-1091 50103 050022
0092 0 0 104 002021
0093 50105 035336
0094 50106 104200 NUMOJ
50107 001614
0095 5°110 071316
0096 50111 015412
0097 50112 075320
0098 50113 071322
0099 50114 002400
0100 50115 071324
0101 50116 051322
0102 50117 026141
0103 50120 015300
ffJ104 50121 061322
0105 50122 003026
0106 fS012 ~i 026126
0107 S0124 035324
0108 ~0125 026120
JMP NUM02
SOC
JMP NUM02
•
NO
YES, 16-81T INTEGER!
NO
••
STB'" NUMBF
ADS M1000
LOA ,+6
SSB,RSS
ADA ,+3
ADA CHRCT
CMA,INA
STA EOPF
ADA ,74
SSA
J8B
OUTLN
LDA SIGN
SZA
JSB
LOB
JS8
JMP
OUTeR
NUMBF
aUTIN
NUMOT,I
POINT NUMBER
LOA , .. 2
STA FFLAG
OLD NUMBF
JSB .FAD
OEF MAXFX
SSA,RSS
JMP NUM03
OLD NUMBF
JS8 .FAD
DfF MINFx
SSA,RSS
IsZ FFL,AG
OLD NUMBf
STA
JSB
STB
STA
CLA
STA
CPA
JMP
JS8
MANT1
.FLUN
MANr2
EXP
SAVE INTEGER
3 DIGIT INTEGER?
NO
COMPUTE END.OF.FIELD
SAVE
IT
ENOUGH
ROOM?
NO
YES
SIGN?
yES, OUTPUT IT
NO
OUTPUT THE INTEGER
*
**
*
SET
'FIXED'
FLAG FALSE
LOAD NUMBER
IS NUMBER
LESS THAN
999999.5 "I
NO
YES, IS
NUMBER
LESS THAN
0,09999995 'I
NO, SET AFlxEDI FLAG TRUE
LOAD NUMBER
UNPACK
NUMBER
INITIALIZE
DECIMAL. EXPONENT
ZERO ExPONENT1
NUM05
YES
MBY10
NO
LOA EXP
MULTIPLY
CMA,SSA,INA,SZA
NUMBER BY 10
JMP *.3
UNTIL IT IS
ISZ EXPON
GREATER
JMP NUMOB
THAN 1
EXPQN
ExP
PAGE 0196 #16
OUTPUT ROUTINES
0109
0110
0111
0112
0113
50126 015302
011.
0115
50133 026141
0116
0117
50135 015302
50136 003400
BI1S
0119
50137 041324
0120
0121
0122
0123
~124
012!5
0126.
0127.*
012S*
ti0127 061324
50130 065322
50131 007004
50132 006021
00134 071324
!)014~
026130
50141 003008
50142 071324
50143 064351
50144 075356
50145 066002
50146 2175362
50147 0154122
50150 040431
0131
00151 171362
50152 ~35362
50153 035356
f)0154 026147
50155 015422
50156 040352
50157 00202~
5016~ 026201
0132
0133
0134
0135
0136
0137
0138
0139.
0140*.
0142
0143
0144
g145
0146
0147
~148
0149
1t1150
0151
0152
0153
015 4
1d155
0156
0157
0158
0159
0160
0161
0162
0163
0164
50161
00162
b0163
b0164
50165
ti0t66
065362
044356
160001
002004
050452
002001
~0167 026200
50170 056002
50171 026175
50172 06~437
50173
50174
50170
50176
50t77
50200
502~1
170001
~26162
03 5 3 24
000000
060440
170~01
061324
002021
0.02v.13 026221
~0204 071360
50205 060437
50206 065362
~0202
50207 035360
By 10
UNTIL
IT IS
LESS
THAN
ADA EXPON
JMP
NUM05 eMA
SrA
L08
ST8
LOB
STB
NUM06 JSB
AOA
STA
ISZ
ISZ
JMP
JSB
ADA
1
NU~04
SET ExPONENT
TO TRUE vALuE.l
SET DIGIT
ExPON
,.6
OIGCT
NMBFA
NMPTR
.*•
•
Gf:.TDG
,+608
NMPTR,l
NMPTR
DIGCT
NUM06
GETOG
.... 5
COUNTER
SET BUFFER
POINTER
STORE A
DECIMAL.
DIGIT
sIXTH DIGIT1
NO
YES,
NEXT DIGIT
,.. 5 'I
SSA
JMP NUM09+1
ROUND ASCII MANTISSA
l?J141*
OIVIDE
NUM8ER
ceA
CONVERT MANTISSA TO ASCII
0129
0130
DIVIDE By 10
JSB DBYle
LOA ExPON
NUM04 LOB EXP
CMB,INB
SSB,RSS
JMP NUM05
STA EXPON
JSB DBYl0
•
••
NO
*
LOB NMPTR
NUM07 ADS .-1
LOA 1,1
INA
CPA ,58
RSS
JMP NUM09
cpa NMBFA
JMP NUMoa
LOA .+608
STA 1,1
.JMP NUM07
NUMOa ISZ EXPON
NOP
LOA .+618
NUM09 STA 1,1
LOA ExPON
SSA,RSS
JHP NMOll
STA NMTMP
LOAD LAST
DIGIT
INCREMENT IT
WAS IT A 91
YES
NO
LEADING DIGIT?
YES
NO, OVERLAY
A"
BUMP DECIMAL
EXPONENT AND
OVERLAY A 1
Is NUMBER
LESS THAN 1 ?
NO
YES
LOA .+608
LOB NMPTR
NMoltl ISZ NM1MP
cOUNT ZEROS
PAGE 0197 #\6
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
01 8 7
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201*
0202.*
OUTPUT ROUTINES
50210
50211
50212
50213
521214
50215
50216
50217
50220
50221
50222
000000
044356
150001
026207
061360
002020
026221
003400
071336
064373
035336
~022J
044352
50224
50225
50226
50227
50230
50231
50232
50233
50234
50235
50236
50237
50240
50241
50242
50243
50244
50245
50246
50247
045570
007004
075456
046004
006020
015424
061266
002002
015452
064350
075356
065362
003400
051336
026247
061324
003000
071360
026261
071360
5~250 062001
50251 051420
!:S0252 026261
S025J 026303
NOP
ADB .",1
CPA 1,1
JMP NM010
LOA NHTHP
5SA
JMP NM011
ceA
STA FFlAG
NMOll LOB ,+12
IsZ FtLAG
ADS ;+3
AD8 CHRCT
CMB,INB
STB fOPF
ADS ,75
SSB
JSB OUTLN
LOA SIGN
SZA
JsB
LOB
STe
LOB
ceA
JMP •• 5
LOA EXPON
eMA
STA NMTMP
·JMP NMO 16
STA NMTMP
LOA LCAL.L
CPA NU~OT
JMP NM016
.JMP NM014
.*•
*
NM012 LOA OIGeT
INA
CPA NMTMP
.IMP .+6
STA
NM016 ADB
LOA
CPA
DIGCT
,.1
1,1
.+608
~JMP
NMO 12
ceA
CPA FFlAG
JMP NM014
LOA EXPON
SSA,RSS
.IMP NMO i 4
STA NMTMP
.
DIGIT 81
YES
NO, ALL SIGNIFICANCE
IN'SIX DIGITS'
NO
YES, SET
'FIXED' FLAG TRU£
COMPUTE
FIELD
WIDTH
SAVE
END""OF.FIElO
MARKER
ENOUGH
ROOM?
NO
YES
SIGN?
yEs, OUTPUT IT
SET OUTPUT
DIGIT COUNTER
FIxED
CPA FFLAG
DELETE TRAILING ZEROS
0203*
0204 ~0254 061356
0205 se255 002004
0206 50256 051360
0207 50257 026265
°2°8 50260 07 1 356
0209 50261 044356
0210 50262 160001
0211 ~0263 050437
0212 50264 026254
0213 50265 003400
0214 50266 051336
0215 50267 026303
0216 50270 061324
~217
50271 002021
'0218 50212 026303
0219 50273 ~71360
0220*
OUTeR
.-1
DIGCT
NMPTR
PLUS 1
LAST
FORMAT?
NO
yES, sET
INDICATOR TO
DECIMAL POINT
sET INDICATOR FOR DECIMAL. poINT
CALLED
FROM 'LIST' .,
YES
NO
AT RIGHT Of
DECIMAL
POINT?
NO
YES, DELETE ZERO
LAST
DIGIT
07
YES
NO, FIXED
FORMAT?
NO
yES, LEADING
DECIMAL POINT?
NO
YES, SET LEADING ZEROS COUNTER
PAGE 0198 #16
OUTPUT ROUTINES
0221·* OUTPUT MANTISSA
0222.
0223 50274 060435
022A
50275 002001
0225
0226
0227
0228
0229
0230
0231
0232
0233
50276 060437
50277 015452
0234
0235
0236
0231
0238
0239
0240
0241
br2J300 035360
50301 026276
50302 035356
~0303 0662102
50304 075362
~03i05 026312
50306 035360
50307 026312
50310 060435
~0311 026314
5 0 312 161362
50313 035362
50314 015452
~0315 035356
50316 026306
50317 03 5 33 6
~0320 125420
.*
•LDA
,+568
RSS
NM013 LOA ,+60B
JSB OUTCR
NMTMP
NM013
OIGeT
NMBFA
5T8 NMPTR
JMP .... 5
NM015 ISZ NMTMp
JMP ·+3
LOA .+568
JMP .+3
LOA NMPTR,I
ISl NMPTR
JaB OUTeR
ISZ DIGCT
JHP NM015
ISl FFLAG
JMP NUMOT,I
ISZ
JMP
ISZ
NM014 LDB
0242
0243
0244.
0245 •• OUTPUT THE EXPONENT
0246.
LOA E
0247 00321 060464
0248 00322 015452
JSB OUTeR
LOA +558
0249 50323 060434
LOB EXPON
0250 50324 065324
0251 50325 006020
SSB
CMB,INB,RSS
0252 00326 001005
0253 50327 060432
LOA .+538
0254 50330 075324
STB ExPON
..
OUTPUT A
DECIMAL POINT
OUTPUT
A ZERO
MORE LEADING ZEROS?
yES
NO, COUNT DECIMAL POINT
SET
DIGIT POINTER
DECIMAL poINT NEXT?
NO
YES, LOAD IT
LOAD NEXT
DIGIT
OUTPUT CHARACTER
MORE DIGITS?
YES
NO, EXPONENT?
NO
••.
0255
0256
0251
0258
0259
0260
0261
0262
0263
0264
0265
0266..
50331 015452
50332 061324
CL.8
OIV ,+10
50335 000371
~0336 040437
~0337 044437
50340 075324
50341 015452
b0342 061324
50343 015452
00344 125420
~271.
~273
EXPONENT
SIGN
JSB OUTeR
LOA EXPON
JSB OUTeR
.*.
EXPONENT'S
10'S DIGIT
OUTPUT IT
OUTPUT
l'S DIGIT
JMP NUMOT,1
••
.*
COMPUTl NExT DECIMAL DIGIT AND RETURN WITH IT IN (Al,
suBTHACT IT OUT of THE NUMBER.
0272*
0274
0275
ADA .+608
ADe ,+608
STB EXPON
GET DIGIT TO OUTPUT
~269.
0270.
AN
COf'4 P UTE
50333 006400
50334 1004('10
0267.**
0268 ••
JSB OUTeR
LOA EXPON
OUTPUT AN 'E'
OUTPUT
50345 015300
50346 065322
00347 007004
#GTDG JSB MBY10
LOB EXP
CMB,INB
MUl.TIPLY BY 10
GET EXPONENT IN (8)
AS NEGATIVE
PAGE 0199 #16
0276
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286
!S0350
S0351
50352
50353
50354
50355
OUTPUT ROUTINES
012000
001200
c;,06024
026351
010500
JMP *'"2
~71402
STA FD0
ti0356 065322
LDB EXP
eMB,INS
RAR
SSB,INB
S0357 007004
~0360 001300
50361 006024
50362 026360
0287
50363 Vl213iO
0288
0289
50364
50365
50366
50367
0290
0291
AND HMASK
RAL
SSe,INB
065320
015304
061402
125422
AND 8377
JMP •• 2
XOR MANTI
LDB ~ANT2
JSB NORML
LOA .FD0
JMP GErOG,I
RETAIN HIGH 5 BITS
NORMALIZE TO 8IT 15
ROTATE INTEGER
INTO (A)
EXTRACT
DIGIT
ROTATE
SACK
REMOVE-.
DIGIT
NORMALIZE REMAINDER
LOAD (A) WITH DIGIT
PAGE 0200 #16
9293.·
0294 •••
OUTPUT ROUTINES
..*••
••
OUTPUT AN INTEGER
0295.*
0296.
0297*
ENTER WITH. POSITIVE INTEGER IN (8).
0298. LEADING ZEROS,
0299.
0300 50370 060353 #OTIN
0301 50371 011374
0302 50372 061015
0303 50373 071444
0304 50374 002400
0305 50375 011452
0306 50376 101040 OUTII
030·7 00371 100400
50400 101444
0308 50401 07545rd
0309 50402 051452
0310 b0403 026406
0311 50404 040437
0312 50405 015452
0313 50406 065450 OUT12
0314 50.07 035444
0315 50410 035374
0316 50411 026376
0317 50412 060001
0318 00413 040437
0319 50414 015452
0320 50415 125454
0321*·
0322*.*
SPACE FOR A COMMA
0323 ••
0324.
0325* MOVE
0326· NEXT
0327*
03 2 8 5 0 4 1 6
0329 50417
0330 50420
0331
50421
0332 ~0422
0333 5~423
0334 50424
0335 50425
0336 50426
0337 f)0427
0338 50430
0339 !:)0'-31
0340 50432
0341 50433
0342 ~0434
0343 50435
OUTPUT IT WITHOUT
LOA ,-4
SET DIGIT
COUNTER
SET DIVISOR
"" ......
SUPPRESS
STA DGCNT
LOA LOYSR
STA OTt
"I
j,
ADDRESS
ZEROS
STA oUTeR
LSR 16
DIy OTt,l
DIVIDE INTEGER BY
CURRENT DIVISOR
STB 013
OUTeR
SAVE THE REMAINDER
LEADING ZER01
CPA
JMP
AOA
JSB
LOB
OUT12
,+608
OUTeR
OT3
ISZ OTl
IsZ DGCNT
JMP OUTIl
LOA 1
ADA ,+608
JSB OUTeR
JMP CUTIN,I
yES
NO, T'URN OFF ZERO SU,PRESS
OUTPUT DIGIT
RETRIEVE REMAINDER
SET fOR NEXT DIVISOR
ALL DIVISOR$ USED?
NO
yES
OUTPUt
LAST DIGIT
••
•••
.*
TO THE NEXT FIELD OF 15 ON THE PRINT LINE OR TO THE
LINE IF THE CURRENT ONE IS EXHAUSTED.
06557 0
00600l
125426
044340
006021
026417
015410
060417
0154S2
035470
026425
065570
046006
006921
015424
125426
#EDlH LOB CHRCT
SZB,RSS
JMP EDEL.M,I
AOB .-15
SSB,RSS
JMP #EDLM+l
STB EOl
LDA ,+408
J8B OUTeR
ISZ EOl
JMP .... 3
LOB CHRCT
ADS MM74
SSB,RSS
JS8 OUTLN
JMP EDEL.M.I I
LOAD CURRENT CHARACTER COUNT
ZERO'l
yES, AT START OF ZONE
NO, SUBTRACT ZONE WIDTH
NON.NEGATIVE RtSULTt
yES
NO, SAvE COUNT
OUTPUT
A BLANK
ZONE FULL?
NO
yES,
PAST THE
END OF LINE?
yEs
NO
PAGE 0201 #16
0345..
0346...
OUTPUT ROUTINES
••
OUTPUT AN ENO.OF-LINE
ta3.'.*
0348 !504J6 06e4!56
0349 ~0437 045570
03~0
b044~ 015456
0351 !S0441 ",60402
0352 00442 915452
0353 50443 060314
0354 !S0444 015452
0355 0 9 445 06 0 371
0361.*
1tJ372
0313
037~
0375
0376
03 71
1tJ378
0379
0380
0381
0382*.
••
LOB EOPF
A08 CHRCT
5T8 fOPf'
LOA ,+238
J8B OUTeR
LOA .+158
JS8 OUTeR
LOA ,+128
JSB OUTeR
.IMP QUTLN,I
0356 50446 015452
0351 50447 125424
0358*.
0359*.. OUTPUT A CHARACTER
0361*
0362*
03 63*
0364.
0365*
0366*
0 3 61
0368
0369
031e
0311
•••
RESET
END.Of.FIELD
MARKER
OUTPUT
AN X.OFF
OUTPUT A
CARRIAGE RETURN
AND A
LINE FEED
••
*••
••
OUTPUT THE CHARACTER IN (A). NON.PRINTING CHARACTERS DO NOT
COUNT AGAINST THE 72 CHARACT~RS PER LINE. A CARRIAG[ RETURN
('CONTROL A. IN A STRING OR AN END-OF-LINE, FOR EXAMPLE)
RESETS THE PRINT POSITION TO 0.
!oj 04 5 0 071310
50451 050474
60452 026456
!)0453 010470
5045 4 002002
!S0455 035570
*OTCR STA OCTMP
CPA 8117
JMP OTtRA
AND .140
SZA
ISZ CHRCT
50456
EQU •
521456 006400
!S0451 061310
5 0 46 0 05 0 374
Ct.!
LOA OCTMP
CPA ,+158
ST8 CHRCT
LDB ML.INK+l
AOB ,,,,?L.INK
JSB OUTCH,I
JMP OUTCR,I
5 04 6 1 07557 0
50462 064212
~0463 044341
!S0464 114124
50465 125452
0383...
BACKSPACE IN BUFFER
0384t*·
0385*
SAVE CHARACTER
CHECK FOR
RUBOUT
NON.PRINTING
CHARACTER1
NO, COUNT IT
RETRIEVE CHARACTER
CARRIAGE RETURN?
YES, ZERO CHARACTER COUNT
••
***
••
0386. BACKSPACE IN BUFFER
0387.
0388
0389
VJ390
0391
0392
0393
50466 060255
~0467 002004
50470 t60000
50471 030245
50472 114736
50413 125450
#BI(SP
LOA MAIN
tNA
LOA ",1
lOR BKS
JSB 51;al.p,I
JMP BCKsp,I
TELL 2114
TO BACKSPACE
IN BUFFER
PAGE 0202 *16
OUTPUT ROUTINES
.*.
0395**
**
0J96 ••• FETCH NEXT BUFFER CHARACTER
*.
0391**
0398*
0399. THE NEXT CHARACTER fROM TH~ INPUT BUFFER IS FETCHED. NORMAL
0400* EXIT IS TO (P+2) WITH THE CHARACTER IN (Al. 8LANKS ARE SKIPPED
0401. IF 'BLANK' • 40 OCrAl, A 'CARRIAGE RETURN' EXITS TO (P+l)
0402 50474 060215 'STeR LOA GTe
LOAD OPCODE
0403 50475 064255
LOB MAIN
FOR GET CHARACTER
0404 50476 006004
INB
.> TTy
0405 50417 130001
lOR 1,1
TTY
IN 8ITS 12-8
CLB
BLOCK
0406 ~0500 006400
*
0407
0408
0409
0410
50501 174632
50502 114736
50503 102311
~0504
026503
STB Delel,I
JSB S14SC,I
SFS CH2
JHP .-1
50505 102511
50506 164634
50507 174632
S0510 051571
50511 026474
50512 050374
50513 125446
LIA CH2
0418
0419
50514 064000
LOB 0
0420
0422
50516
50517
50520
0423
0424
50522
0411
0412
0413
0414
04 1 5
0416
0417
0421
~0515
50521
040317
002021
040450
040470
035446
125446
LOB DCLC2,I
STB Dele1,I
CPA BLANK
JMP _GTCR
CPA ,+158
JMP GETeR,I
AOA M96
SSA,RSS
ADA MJ2
ADA ,140
ISZ GETeR
JMP GETeR,I
*
CLOCK
CALL 2114 DRIVER
WAIT FOR
RESPONSE
LOAD CHARACTER
UNBLOCK
CLOCK
BLANK?
YES •• IGNORE IT
NO, CARRIAGE RETURN'
yES
COpy
CHAR TO B
LOWER CASE
MAKE INTO uPPER CASE
NO~·EXIT
TO (P+2)
PAGE 0203 #16
LIBRARy FUNCTIONS
0426. •
0427**
•
EXECUTE TAB (X)
9428* •
0429
~0523
~0524
015440
0430
0431
060273
50525 006400
0432
50526 075470
0433
50527 065754
043A
50530 006002
50531 026536
0435
0436
0437
0438
0439
0440
ETAB
50532 066005
50533
50534
5 0 535
50536
044000
006021
026550
003004
0441
50537 041570
0442
0443
50540 002021
50541 026551
0444
0445
50542 011434
50543 060417
0446
50544 015452
0447
50545 035434
0448
0449
0450
0 4 51
0452
50546 026543
~0547 002001
50550 015424
50551 061027
50552 124662
0453.
•
•
JSB
LOA
CLB
SlB
LOB
SZB
JHP
LOB
,lENT
INF
EOL
FFLG
ETAB2
INTEGERIZE ARGUMENT
ARG :. 32767
SET FLAG TO
'TAB OCCURREO'
GET FORMAT FLAG
IN FORMATTER 1
YES
MM72
AOS A
SSB,RSS
JMP £TAB4-1
ETAB2 CMA,INA
ADA CHRCT
SSA,RSS
JMP ETA84
STALBTHP
ETA8t LOA ,+408
JSB OUTeR
lSI LBTHP
JMP ETAS1
RSI
JSB OUTLN
ETA84 LDA 81T15
JMP FRET,l
YES, GO TO NEXT LINE
NO
ANY BLANKS
REQUIRED?
NO
yES
OUTPUT
A BLANK
DONE7
NO
yES
SO OPCHK DOESN'T BARF
*
0454.. EXECUTE SPA(X)
•
0455 50553 015440 ESpA
04b6 5 0 55 4 060213
0457 50555 006400
0458 50556 075470
0459 50557 002003
0 4 60 50560 026606
0461 50561 002020
0462 50562 026606
0463 5B563 003004
0464 ~0564 071774
0465 50565 065754
0 4 66 50566 006002
0467 ~0567 026576
0468 50570 040466
0469 50571 065570
0470 50572 007004
0471 50573 040001
0472 50574 002020
0473 5 0 575 026605
0474 50576 061571 ESPAI
0475 50577 015452
0476 50600 035774
0477 50601 A26576
0418 b0602 003400
0479 50603 071774
0480 50604 002001
0481 50605 015424
JSB ,lENT
LOA INF
CLB
Sle EOL
SZA,RSS
JMP ESPA4
'SSA
JMP ESPA4
CMA,INA
STA REPeT
LOB FFLG
SZB
JMP ESPA!
AOA ,72
LOB CHRCT
eMB,INB
ADA 1
INTEGERIZE ARGuMENT
ARG
32761
FUNCTION FLAG
TO ExECUTED
IS IT ZERO .,
YES
NO, NEGATIvE!
YES
NO
OUTPUT
)I
SET
NO
SPACING PAST
END OF LINE 1
SSA
JMP
LDA
JSB
ISl
JMP
ctA
STA
ESPA4"'1
BLANK
OUTeR
REPel
ESPA1
REPeT
RSS
JSB OUTLN
RESET
REPel
PAGE 0204 *16
0482
0483
LIBRARY FUNCTIONS
50606 061021
50607 124662
ESPA4
0484*
0488
0489
0490
0491
04 92
0493
0494
0495
0496
0497
0498
0499
0500
0501
0502
0503
0504
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
rtJ521
0522
0523
0524
0525
0526
0527
~:X~:ClJTf
50610
50611
50612
50613
50614
5 0 615
50616
50617"
lIN(X)
015440
060502
006400
075470
002021
026632
0405912
002020
002400
040316
011774
060371
50620
50621
50622
50623
50624 015452
~0625 035774
50626 026623
50627 0'13400
50630 071774
50631 026656
50632 040316
0 0 633 002 0 2 1
50634 002400
50635 040502
50636 002002
50637 026647
50640 060374
50641 015452
50642 002400
50643 015452
50644 002400
50645 071570
50646 026656
50647 003004
50650 071774
50651 015534
50652 035774
50653 026651
50654 003400
50655 071774
50656 061027
50657 124662
BIT15
SO OPCHK DOESN'T BARF
JMP FRET,l
0485.
0486*.
0481.
LOA
•*
•
ELIN*
.JS8 .IENT
INTEGERIZE ARGUMENT
LOA 8400
CL8
SET FUNCTION FLAG
STB EOl
SSA,RSS
JMP fLINt
ADA 8400
S5A
CLA
ADA M256
srA
to EXECUTED
NO, NEGATIVE 'I
NO
REpeT
LOA ,+12 8
JSB OUTeR
ISZ REPeT
JMP *-3
ceA
srA REPel
JMP ELIN2
ElINt ADA M256
SSA,RSS
CLA
REPeT "LINEFEfDS
REINITtALIZE REPeT
YES
ARGUMENT > 2 56 ?
ADA 8400
SZA
JMP
LDA
JSB
CL.A
JSB
OUTeR
Ct.A
STA
CHRCT
ELIN3
.+158
OUTeR
JMP ElIN2
ELIN3 CMA,INA
sTA REPeT
Js"8 OUTCL.
ISl REPeT
yES
OUTPUT
eR-LF's
JMP ... 2
ceA
STA REPeT
ELIN2 LOA BIT15
JMP FRET,I
RESET
REPeT
SO OPCHK DOESN'T BARF
PAGE 0205 #17
LIBRARY FUNCTIONS
0002* •
0003.* COMPUTE ABS(X)
0004. •
002020
0A05
~~66~
0006
0007
b066t 015310
~0662 124662
01tl08*
*
0009.*
001S.
0011*
0012*
00130014
0015
0016
0017
0018
0019
0020
0821
0022
0023
0024
0025
50663
50664
50665
50666
b0667
50670
50671
50672
50673
50674
50615
50676
50677
50100
507QJl
50102
50703
50704
0036
bra706
0837
0038
0039
0040
0041
0042
0043 .
50107
50710
50711
50712
50713
50714
50715
50716
50717
50120
50721
50722
50723
50724
50125
5 0 126
50727
50730
50731
50732
007 33
0048
0049
0050
0051
0052
0053
0054
075434
015414
026674
015434
064416
075322
065434
015306
124662
061260
065434
124662
fINT
JSB ARINV
JMP FRET,1
*
~0705
0154t4
115152
002002
115152
060001
°1°362
050001
002001
115152
042736
124000
060172
040526
006400
100400
000510
026734
060171
006400
100400
000407
060001
026134
060171
006400
100400
0004,,7
002001
06°17 0
ST8 LSTMP
JSB IFIX
JMP
STe
LOB
STB
LOB
JSB
JMP
EINT1
LBTMP
.+31
EXP
LBTMP
.PACK
FRET,I
EINTt LDA TEMP6
LOB L8THP
JMP FRET,I
EXECUTE TIMeX)
0028*
0029
0030
0031
0032
0033
0034
0035
0046
0047
•
•
SSA
ARGUMENT NEGATIVE1
yES, NEGATE IT
NO
ENTER WITH NUMBER IN (Al AND (Bl. EXIT WITH FLOATING
POINT fORM OF ENTlER IN CA) AND (B).
0021**
~045
**
EABS
COMPUTE INT(X)
0026. *
0044
•
ETIM
SAVE (8)
TAKE ENTlER
ALL SIGNIFICANCE IN MANTISSA
SAVE (8)
CORRECT FOR
BINARY POINT BIA8
RETRlEVE (Bl
NORMALIZE AND PACK
RETRIEVE
NUMBER
••
•
JSB IFIX
INTEGERIZE ARGUMENT
JSB RERRS.43,I ILLEGAL ARGUMENT
SZA
JSB RERRS+43,I ILLEGAL ARGUMENT
LDA 1
18 ARGUMENT
AND • +3
;C1I3
CPA 1
AND
>-01
YES
RSS
JSB RERRS+43,I NO •• ILLEGAl ARGUMENT
ADA DTMT8
BRANCH TO
JMP ~,l
APPROPRIATE ROUTINE
LDA DATIH.1
OF 100 MS
ADA 036K
UNITS
CL8
CONyERT
DIV 0600
TO MINUTES
*
JMP ETIM3+1
ElIM1 LOA DATIM
CL.B
DIv .+24
LOA
JMP
ETIM2 LDA
CLB
DIV
1
ElIM3+1
OATIH
.+24
HOURS OF YEAR
CONVERT
TO DAYS
REMAINDER IS HOUR 0' DAy
HOURS OF YEAR
CONVERT
TO DAYS
RSS
ETIM3 LDA YEAR
GET YEAR
PAGE 0206 #17
0055
0056
LIBRARY FUNCTIONS
50734 105120
S0735 124662
0051
OCT 105120
JHP
OTMT8 OEF
OfF
OfF
OEF
OEF
FRET,l
*.1,1
CONVERT TO FLOATING POINT
EXIT WITH RESULT IN (A, AND (8)
50736 150137
ETIM0
0058 50737 050712
0
ElIM!
0059 ~0140 A5072
0060 t;0741 050726
ETIM2
0061
50742 050733
ETIM3
0062* •
0063.. COMPUTE RND(X) *•
0064. ..
0065.
ee66* THE RANDOM NUMBlR FUNCTION COMPUTES A RANDOM NUMBER FROM THE
•
0067.
0068.
0069.
0070.
0071.
0072
0°7 3
0°7 4
0075
0076
0077
0078
0079
0080
0A81
0082
0083
0084
0085
0086
FORMULAS:
X(N)CA.Xc N.l)+C(MOD 2t30)
RND .X/2t30 MIN (1-2t-23)
50743
50 , 43 002021
!S01 44 026751
50745 005265
50746 001600
5 0 747 07 1564
5075~ 075565
5 0 751
50751 061564
50752 100200
!S0753 051013
5 0 754 071564
b0755 061565
50]56 100200
50757 051012
50760 041564
50761 043014
5 0 762 071564
50763 002500
50164 071322
50165 061565
50766 ' 100200
,50767 051013
009 2 5 0 170 043 01 5
0093 50171 002040
0"94 50772 006004
0087
0088
9089
009"
0091
0095
0096
0097
0098
0099
0100
0101
0102
1d103
0104
0105
0106
0107
50773 001265
50774 071565
b0775 0135600
ERND
EQU •
SSA,RSS
JMP ERNO!
R8L,CL.E,ERB
fLA
STA RNOXl
STB RNDX2
ERNDt EQU •
LDA RNDX1
MPy RNDA2
COMp:UTE FIRS'T
CROSS PRODUCT.
ADA RNOXt
ADA RNoel
STA RNDXt
CLA,CL.E
ADD IN FIRST,
ADD IN HIGH PART OF C.
SAVE TOTAL. (THIS 1$ HIGH PART).
S'TA
exp
sET EXP,".
LOA RNDX2
MPY,RNDA2
cOMPUTE LOW ORDER .ROOUCT.
ADA RNDC2
SEZ
ADD IN LOW PART OF C.
ADO ANY CARRY INTO
INS
RAL,CLE,ERA
STA RNOX2
E•• (15),A(15).0.
00177 005665
51000 076564
510~t 001200
STB RNDX1
RAL
054361
002001
124662
060273
A NEW SEED
SAVE (ONLY NEED lOW ORDER PART)
COMPUTE 2ND
CROSS PROOUCT.
50776 045564
51004
51005
51006
51001
YES, USE PREVIOUS VALUE
NO, MAKE A
STA RNDXl
LOA RNDX2
MPY RNDAt
ELB
ADe RNOXt
ELB,CLE,ERa
!:S1002 101100
51003 015306
POSITIVE ARGUMENT,
swp
JSB .PACK
cpa .+2
RSS
JMP FRE'T, 1
LOA INF
B.
SAVE LoW QRDER RESULT.
SHIFT HIGH ORDER PART & ADD IN
PREVIOUS TOTAL.
CLEAR BIT 15 AND STORE.
SHIFT A ADJACENT TO B.
EXCHANGE REGISTERS ANP
PACK,
TEST fOR RESULT_t.a
EXIT IF NOT,
SET RESULT TO 1-2'.23
PAGE 0207 #17
LIBRARY FUNCTIONS
0108
5101~
0109
0110*
0111*
0112
0113
0114
51011 124662
51012
b1013
51014
51015
064316
002722
007335
016441
007701
LOB M256
JHP FRET,I
RNDAt DEC 1490
RNOA2 DEC 3805
RNOCl OCT 16441
RNDC2 OCT 7101
A
A
C
C
DIV
MOD
OIV
MOD
2t15
2'15
2t15
2t15
0115
0116. *
•
0117.. COMPUTE SGN(X) •
011S. •
•
0119.
0120. ENTER WITH ARGUMENT IN CA) AND CB). IF ARGUMENT IS
0121* NEGATIVE RETURN .1.0, IF ZERO RETURN 0, IF POSITIVE
0122. RETURN 1,121 •
0123*
0124 ~1016 006400 ESGN CLB
CLEAR LOW pART OF NUMBER
ZERO.,
SZA,RSS
0125 51017 002003
0126 51020 124662
JMP FRET,I
VES, RETURN "
0121 51021 002021
SSA,RSS
POSITIVE?
YES, LOAD EXPONENT 'OR .,
LOB .+2
0128 ~1022 064361
LDA Ft..G8T
NO, LOAD HIGH PART OF .1
0129 51023 061027
0130 51024 0060212
SZB
WAS ARGUMENT POSITIVE1
RAR
yES, SET RESULT TO .1
0131 51025 001300
0132 51026 124662
NO
JMP FRET,1
0133* *
0134..
COMPUTE TYP(X)
0135* •
0136.
0137.
01 38*
0139.
0140*
0141.
0142.
0143.
0144.
UPON ENTRy CAl AND (8) HOLD A FILE NUMBER IN FLOATING POINT
FORM,
FILE 0 REFERS TO THE S.
OF~RECORD
RESPECTIVELY,
0148
51032
51033
51034
51035
0153
0154
0155
0156
0157
0158
015 9
0160
0161
0162
0163
IF THE FILE NUMBER IS POSITIVE; RETURN
WITH THE VALUE CORRESPONDING TO THE FIRST ITEM FOUND OF, ONE
OF THE FIRST THREE TYpES.
51027 075434
51030 065234
51031 075643
0150
0151
015 2
IF THE FILE
NU M8E R IS NEGATIVE RETURN 1.0, 2.0, 3.O, OR 4.0 IF THE NEKT
ITEM. IN THE FILE IS A NUMBER, STRING, EMD-Of.'ILEj OR ENO.·
0145
0146
0141
0149
•
•*
002003
027063
001400
002020
~11:S6 006400
51037 075651
51040 065434
51041 002020
51042 015370
51043 015342
51044 115142
51045
51046
51047
51050
51051
075234
061234
064355
015506
015512
ETYP
STB LBTMP
LOB FILE*
STB pINTG
SZA,RSS
JMP ETYPl
eeB
59A
CLB
5T8 EORFL
LDB lBTHp
S8A
JaB ARINV
J98 8aFIX
JSB RERRS+35,1
STB
LOA
LDB
JSB
JSB
FILE#
FILE'
,.2
RQSiR
GTTYP
SAVE
(e)
SAvE VALuE
of fILl.
'DATA' FILE1
YES
NO, IGNORE
END.Of.RECORDS
UNLESS ARGUMENT
IS NEGATIVE
RETRIEvE (8)
TAKE ABSOLUTE VALUE
Of ARGUMENT
15-81T INTEG£R?
NO
YES
VALIDAtE
f'ILE
GET TypE
PAGE 0208 #17
LIBRARY FUNCTIONS
0164
0165
51052
~65643
51~53
075234
0166
0167
~1054
5105·~
105120
0168
0169
51056
0170
5106~
0171
0172
51061
51062
~17J
51063
0174
0175
0176
0177
0118
0179
0180
51064
51065
51066
51067
51070 006021
51071 060361
51972 027052
51051
124662
060362
065244
055513
027052
015:560
003400
051262
021056
165244
002404
ETYPt LOB
STe
OCT
JMP
ETYP2 LOA
LOB
CPS
JMP
JSe
ETYPJ ceA
CPA
PINTG
FIlE*
1 0 5120
FRET,I
,.3
NXTDT
SYMTB
ETYPI
SETOP
DCCNT
JMP !ryP2
LOB NxTDT,I
CLA,INA
SS8,RSS
LOA .+2
.JMP ETYPl
RESTORE
FILE,
RETURN TYPE IN
FLOATING POINT FORM
OUT-OF-OATA
CONDITION?
yES, CA) • 3
NO, SEEK NEXT
HORE DATA IN
CURRENT STATEMENT!
NO
yES, LOAD TyPE WORD
SET NUMBER
NUMBER?
NO, SET FOR STRING
PAGE 0209 #17
LIBRARy FUNCTIONS
0182.·
*.
0183**. COMPUTE CHEBYSHEV(X) *.*
0184.·
*.
0185 51073 015406 tlCHE8 JSB ,FMP
0186 51074 051366
OEF K2
0187 51075 104400
OST X2TMP
51076 001630
LOB .CHEB,I
0188 51071 165436
8T8 CTMP
0189 51100 015316
OLD 1,1
0190 51101 104200
51102 100001
0191 51103 104400
OST DTMP
!)1104 001636
CLA
0192 51105 002400
0193 51106 011634
STA BTMP
0194 51107 071635
STA 8TMP"'1
0195 51110 035376 CHEBt tSZ CTMP
0196 Sl111 035376
ISZ CTMP
LDA CTMP,l
0197 51112 161376
SZA,RSS
0198 !i1113 002003
JHP CHEB2
0199 51114 027136
OLD BTMp
0200 51115 104200
51116 001634
05T ATMP
0201 51117 104400
51120 001632
OLD DTMP
0202 51121 104200
51122,001636
OST BTMP
0203 51123 104400
51124 001634
JS8 ,FMP
0204 51125 015406
0205 51126 001630
OfF X2THP
0206 51127 015404
JSB ,FSa
DEF ATMP
0207 51130 001632'
0208 51131 015402
JSB ,FAD
OfF CTMP,1
0209 51132 101376
0210 51133 104400
OST DTMP
51134 001636
JMP CHEBl
0211 51135 02711 0
0212 51136 104200 CHEB2 OLD OTMp
51137 001636
JSB ,FS8
0213 51140 015404
0214 51141 001632
OfF ATMP
0215 51142 015406
JSB .FMP
OfF HALF
0216 h1143 001031
0217 51144 035436
ISZ .CHEB
0218 51145 125436
.JMP .CHES,I
0221**
.*
0222*** LIBRARy ENTIER *.*
0223**
**
0224*
0225. ENTER WITH NUMBER IN (A) AND (8)_
0226* THEN EXIT TO (P+l), EL.SE EXIT TO
0227* ENTlER Or THE ARGUMENT IN (A10
~22a.
X2TMP • )(*2
POINTER TO COEfFICIENt TABLE
DTMP .. COEFF(N)
8 • "
CeN) • 01
YES
NO
A .. B
B • 0
o • tOEFF(N)-A+B*X2
IF ExPONENT> 14
THE
(P~2)"'ITH
PAGE 0210 #17
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
LIBRARY fUNCTIONS
51146 071434
51147 060001
5115~
010500
51151
51152
51t53
51154
51155
000033
027156
040340
002021
125440
51156 035440
51157 061434
51160 015414
#IENT STA LBTMP
LoA 1
AND 8377
SlA,RAR
JHP IENT1
ADA .... 15
SSA,RSS
JMP .lENT,I
IENTl I8Z ,lENT
LOA
JS8
NOP
LOA
JMP
51161 000000
51162 060001
51163 125440
LBTMP
IF Ix
1
,lENT,1
SAVE (A)
EXTRACT
EXPONENT
NEGATIVE?
YES
NO, LESS THAN
OR EQUAL TO 1.7
NO
YES
RESTORE CA)
TAKE ENTlER
LOAD INTEGER
INTO CA)
0244 ••
**
~245 •• *
MULTIpLY BY A POwER OF 2 ***
0246**
••
0247*
0248* ENTER WITH NUMBER IN CA) AND (8), AUGMENT EXPONENT
02 4 9* BY THE VALUE POINTED TO BY (P+l) AND EXIT TO (P.2).
0250* NO CHECK ON EXPONENT UNDERFLOw OR OvERFLOW,
02f)1.
SZA,RSS
ARGUMENT ZERO?
0252 51164 002003
JMP
PwR2A
0253 51165 A27200
yEs, RETURN 0
STA X2TMP
NO, SAyE HIGH PART OF MANTISSA
0254 51166 071630
025·5 51167 015412
.JS8 ,FlUN
UNPACK LOW pART of NUM8£R
0256 5117~ 075631
STB X2THP+.1
SAVE LOW MANTISSA
0257 51171 165442
LDB .PWR2,1
COMPUTE NEW
0258 51172 140001
ADA 1,1
ExPONENT
0259 51173 00t200
RAL
POSITION
AND el17
AND MASK IT
~260
51174 010500
0261 51175 070001
COMPUTE NEw lOw
STA 1
ADS X2TMP+l
0262 51176 045631
PART of NUMBER
0263 51177 061630
LOA X2THP
RETRIEVE HIGH MANTISSA
0264 51200 035442 PWR2A ISZ .PWR2
JMP .PWR2,I
0265 51201 125442
0266* *
0267*. COMPUTE COS(X) * *
0268. *
•
0269 51202 015402 EtaS J5B FAD
0270 51203 051470
OEF PIBY2
0271* *
0272** COMPUTE SIN (X) •
0273.
*
0274 51204
01540 6
0275 51205 051254
~276
51206 104400
51207 001622
0277 51210015402
0278 51211 051364
0279 51212 01.5442
0280 51213 000355
0281 51214 015440
0282 51215 115136
ESIN*
COMPUTE
SIN()(+PI/2)
JSB .FMP
DEF TOPI
08T XTEMP
JSB ,FAD
OEF Kl
J8B .PWR2
OfF ,-2 .
JSB ,lENT
JSB RERRS+31,I
EXPONENT EXCEEDS 14
PAGE 0211 #17
0283
0284
0285
0286
0287
0288
0289
0290
0291
0292
QI~n:1
"""7-
0294
0295
0296
0297
k!29S
0299
0300
0301
0302
0303
51216
51217
51220
51221
LIBRARY FUNCTIONS
051256
015402
51222 210 1622
51223 104400
51224 001622
51225 015404
51226 0'1364
51227 002020
51230 027237
0316
JSB .rSS
OEF XTEMP
DST XTEMP
51234 001622
51235 104400
51236 001622
51237 104200
t;1240 001622
51241 015406
-.
X<11
YES
NO
X • 2-)(
OEF XTEMP
JSB .PWR2
015442
DEF .... 1
JSB .FSB
DEF t<1
JSB .CHEa
DEF COEF2
JS8 ,FMP
OfF XTEMP
JMp FRET,l
000360
015404
051364
TOPI
DEC .636619772
MM4
DEC .4.
ANS .. X.CHEBV (·2*Xt2 -1 )
2/PI
COEF2 DEC 1.1 8 496E.,.6
DEC wl.365875E.4
DEC 9.11 8 01 6 E... J
157365
OfC .,2 8 52 6 15692
51266 133371
51267 014777
51270 050656
DEC 2,5525579248
51271 107004
51272 000000
OCr 0
*
0321
0322
01273 015406
51214 051362
0323
51275 104400
t)1276 001622
0324 51277 015402
0325 . 51300 051364
0326 51301 015442
X.4*ENTIER«(X.1)/~)
.JSS .FMP
0317
031d. *
0319 •• COMPUTE TAN(X)
0320*
X•
ESINl OLD XTEMP
51242 001622
51243
51244
51245
01246
51247
51250
~1265
0315
JSB .FSB
OEF Kl
5SA
JMP ESINl
OLD K2
51231 104200
51232 051366
51233 01541214
015436
0305
051260
0306 51251 015406
0307 51252 001622
030a ~1253 124662
0309.
0310 51254 050574
51255 141000
0311 51256 10000~
01257 000004
0312 51260 047605
51261 072733
0313 51262 134143
b1263 104751
0314 !j1264 045261
0304
OCT 105120
JS8 .FMP
DEF MM4
JSB ,FAD
OfF XTEMP
DST XTEHp
1215120
015406
•
*
•
ETAN
JSB .FMP
OEF FOPI
QST XTEMP
JSB ,FAD
DEF Kl
.JSB .PWR2
4/PI
PAGE 02\2 #17
LIBRARY FUNCTIONS
0327
0328
0329
51302 000355
!)1303 015440
0330
0331
0332
0333
0334
0335
0336
51305 105120
51306 015310
51307 015442
51310 000361
51311 015402
,,"l~'7
..,.."
0338
0339
034ld
0341
51304 115136
0343
0344
0345
51324
51325
51326
51327
51330
51331
51332
~349
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360
0362
015404
001622
104400
SSA
JMP ETAN2
DLD K2
JS8 .fSB
OEF XTEMP
ETANt OST YTEMP
J8B
DfF
JSB
DEF
JSB
OfF
JSB
DEF
JSB
XCI?
YES'
NO
Y • 2-X
•FMP
YTEMP
.FMP
K2
,FSB
Kl
.CHEa
COEf0
,FMP
DEF yrEMP
DST YTEMP
Y .. V.CHEBV(2*Vt2 -1)
LDA LBTMP
SSA
.JMP ETAN3
DLD Kl
X1311 07eliS
0373
~1372 06&03~
DEC 2.013766E-7
0374
61373 176125
b1314 051035
DEC 2. 8 04 8 16E-6
0375
0376
0377
0378
~t375
030335
51376
51317
51400
51401
51402
51403
05015~
11~745
51~04
DEC 3.906637E_5
DEC 5.441 7 038E .. 4
043523
052355
076112
DEC 7.5 86 101578E.3
065163
0 6 6520
DEC .10 67 53 9 2 8 57
51405 163773
5140 6 0 7 0512
51407 014002
0380 51410 000000
0381* *
0382** COMPUTE ATN(X)
0383* *
0384 51411 104400 EATN
51412 001622
0385 51413 060001
0386 5 1 4 1 4 010500
0387 b1415 071434
0388 51416 002002
0389 51417 000010
0390 51420 027455
0391 51421 104200
51422 051364
0392 51423 015410
0393 51424 001622
9394 51425 104400 EAT'Nt
514126 001626
0395 51427 015406
0396 51430 001626
0397 51431 015406
0398 51432 051366
0399 51433 015404
0400 51434 051364
0401 51435 015436
0402 51436 051474
0403 51431 015406
0404 t;1440 001626
040 5 5 1441 104400
f)1442 001624
0406 51443 061434
0407 51444 002002
0408 51445 000010
0409 51446 021460
0410 51447 061622
0411 b1450 002020
0412 51451 027463
0413 51452 104200
51453 051470
0414 51454 027465
0379
•
•
•
0415
51455 104200
DEC 1. 77 0147422 7
OCT 0
DST xTEMP
LDA 1
AND 8377
STA LBTMP
SZA
SLA
JMP EATN2
DLD Kl
JSB ,FDV
OEF xrE.Hp
08T UTEMP
ABS(X) > 1?
NO
yES
u •
l/X
JSB ,FMP
DEF UTEMP
JaB .FMP
OEF K2
JSB ,FSB
OfF Kl
JSB .CHEB
OEF tOEFt
.J98 .fMP
OEF UTEMP
DST YTEHP
Y • U·CHEBY(2*ut2 -t)
LOA LBTMP
SZA
sLA
JMp EATN3
ABS(X)
NO
LDA XTEMP
yES
SSA
X<01
YES
NO
JHP EATN4
OLD PIBY2
JMP EATN4+2
EATN2 OL.D xTEMP
>
11
PAGE 0214 #17
0416
0411
0418
0419
LIBRARY FUNCTIONS
t;1456 001622
51457 021425
S1460 104200
~1461 001624
51462 124662
b1463 104200
51464 051472
0420 51465 015404
9421 51466 001624
0422 51467 12 4 662
0423.
0424
0425
514 7 0 06220 7
51471 166402
51472 115570
51473 011402
JMP EATNl
EATN3 DLD yTEHP
U ,
JMP FRET,l
AN8 • Y
JSB .FSB
OfF YTEMP
JMP FRET,!
ANS
EATN4 OLD MP2
DEC .1.51079632 68
MP2
0428
51476 056335
51477 156323
51500 131601
0 4 29
51502 040033
DEC 3.821037E .. 6
0430
51503 035737
51504 111013
51505 123343
DEC -2.6215196E-S
0431
51506
DEC 8.64888E .. e
DEC ",56.99t 86E .. a
t)1501 131731
DEC 1. 8 5142 9 1E.4
0605~2
51507 000351
0151° 122573
51511 062757
0433 S1512 055471
b151J 107365
0434 51514 111620
51515 147373
0435 51516 e70320
51511 155002
0436 51520 000000
0437 • •
0438 ••. COMputE EXpCX)
DEC "1_3 8 11 9 5 021 4£-3
0432
0445
0446
0447
044~
015~32
51522 124662
51523 015406
51524 051643
01525 104400
51526 001622
51527 015440
51530 027622
51531 071434
515 3 2 105120
0449
~1533 11214400
51534 001624
0450
51535 061434
0451
0452
51536 043631
0453
lt1454
51537 002021
51540 027622
ti1541 043632
.PI/2
COEFl DEC -1,33034E-a
0427
0441
0442
0443
0444
.PI/2.Y
PI/2
51474 106671
51475 102315
•
I
PIBY2 DEC 1.5707963268
0426
0439.
1£'440 51521
X
DEC ,011135 8 4206
DEC _.1058929245
DEC 1.762747174
OCT 0
*
*
•
EEXp
#EXP
JSB
JMP
JS8
OEF
D8T
.EXp
FRET,I
.FMP
L2E
XTEMP
JSB ,lENT
JMp ,E)(p2
STA LBTMP
OCT 105120
DST yr EMP
X
III
ARG*LOG2(E)
y • ENTIERCX)
LDA LBTHP
ADA M124
SSA.,RSS
.IMP • EXP2
X >. 1241
yES
ADA .244
NO
PAGE 0215 #17
0455
045&
0457
04fSS
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0411
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
i.
0482
0483
0484
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0 4 95
0496
0497
0498
0499
~500
1d50i.
LIBRARy FUNCTIONS
51542 002020
51543 021617
S1544
t0420~
~t545
001622
51546
51547
51550
51551
51552
51553
51554
015404
001624
10440L1
001622
015406
001622
104400
~1555 001626
51556 015402
51557 051633
~1560 104400
51561 001624
51562 10420~
51563 051635
51564 015410
51565 001624
51566 104400
51567 001624
51570 104200
b151t 051637
S1572 2115406
51573 001626
51574 015402
51575 051641
51576 015404
51577 001622
!:)1600 015404
51601 001624
51602 104400
51603 001624
01604 104200
51605 001622
51606 015410
01607 001624
51610 015402
51611 001fti31
51612 035434
51613 0000021
51614 015442
51615 001434
51616 125432
51617 002400
!;1620 006400
51621 125432
51622 061434
51623 002020
51624 027 6 1 7
51625 115205
51626 060273
51627 064355
51630 125432
SSA
JMp ."Expt
OLD XTEMP
X < -120"1
yES
NO
JSB ,FSB
OEF YTEMP
DST XTEMP
X • XwENTIEReX)
JSB .FMP
OEF XTEMP
OST UTEMP
U • Xf2
JSB ,FAD
OEF AAAA
DST YTEMP
OLD
BBBS
JSB .FOV
.OfF YTEMp
OST YTEMP
OLD
Y " Xt2+AAAA
Y • BBBB/Y
eccc
JSB
DEF
JSB
OfF
JSB
OfF
.FMP
UTEMP
.FAD
DODD
.FS8
XTEMP
.158 .FSB
OEF yrEHP
OST YTEHP
Y • • X.DDDO+Cccc.xta.v
DLD XTEHP
JSB .FOY
OEF YTEHp
JS8 .FAD
OfF HALF
ISZ L.Br MP
NOP
JSB PWR2
DEF LBTMP
JMP .EXP,I
ANS •
to.S4X/Y)*2tENTIER(ARG.LE)
ANS •
"
.EXP1 CL.A
CLB
JHP
.EXP2 LOA
SSA
JMP
JSB
LOA
LOB
.EXP,I
LBTMP
.E XP l
LARGE ARGUMENT
NEGATIVE?
YES
•• 2
ANS
WERRS+4,I
INF
JMp • Exp, I .
NO
• POSITIVE INFINITY
PAGE 0216 #17
LIBRARY FUNCTIONS
51631 177604
~1632 000364
51633 053552
516J~ 160416
M124
AAAA
DEC -124
DEC 244
DEC 81.417 4 91202
~505
B1635 046477
51636 016424
BBBS
DEC 61 7 • 97 22695
ki506
!S1637 043372
51640 070371
ecce
DEC .03465735 9 03
0507
51641
51642
51643
51644
DDDD
DEC 9.9545957821
L2E
DEC 1.442 695 040 9
0502
0503
0504
0508
047643
001410
056125
017002
.244
PAGE 0217 #18
LIBRARy FUNCTIONS
•
•
0002* •
0003*· COMPUTE LOG(X) *
0004.
*
0005 51645 015434 ELOG
0006 51646 124662
0007 51647 002003 .LOG
B00t) 51650 021724
0009 fS1651 00202 0
0010 ~1652 115132
0011 51653 071622
0012 51654 015412
0013 51655 075623
0014 51656 1 0 512 0
0015 51657 104400
51660 001624
0016 51661 104200
ei1662 001622
0017 51663 015402
0018 51664 051731
0019 5 1 665 104400
51666 001626
0020 51667 10420121
51670 001622
0021 51671 015404
0022 51672 051731
0023 51673 015410
0024 51614 001626
002 5 5 1 615 1 0 44 00
51676 001626
0026 51671 ~15406
0027 51700 001626
0028 51701 016404
0029 51702 051741
0030 51703 104400
51704 001622
.0031 01705 104200
01706 051737
0032 51707 015410
0~33
51710 001622
0034 51711 015402
0035 51712 ·051735
0036 51713 015406
0037 51714 001626
0038 51715 015404
0039 51716 001031
0040 51717 015402
0041 5172~ 001624
0042 51721 015406
0043 51722 051733
10044
51723 125434
0045 51724 115202 .LOGt
0046 51725 061027
0047 b1726 067730
0048 51727 125434
0049*
0050 ~173e1 ~VJVl776 8776
JSB ,LOG
JMP FRET,I
SZA,RSS
JMP .lOG1
SSA
JSa
ST.
JSB
srB
OCT
DST
NON.ZtRO ARGUMENT?
NO
YES, POSITIVE ARGUMENT?
RERRS+27,I NO
YES,
XTEMP
,FLUN
SAVE MANTISSA
xrEMP+1
AND FLOATED
EXPONENT
1 0 5120
YTEMp
SEpARATELY
OLD XTEMP
JSB ,FAD
DEF R22
OST UTEMP
U • X+SQRCrt).5)
OLD XTEHP
JSB
DEF
JSB
DEF
OST
,FSS
R22
.FDV
UTEMP
UTEMP
U • (X-SQR(0.S)/U
JSB FMP
•
DfF urEMP
.JS8 .FSB
DEF eec
OST XTEMp
OLD M8
~JS8
.FOV
DEF XTEHP
,JSB .FAD
DEF AAA
JSB
OEF
JSB
OfF
JSB
DfF
JSB
DEF
JMP
.FMP
UTEMP
,FsB
HALf
.FAD
YTEMP
,FMP
LE2
AN! • LOG(2).
,l.OG,l
(MANTISSA.e.5.U.(AAA+MB/X»
.J5B WERRS+l,I
LOA MNEG
LOB 8776
ANS • NEGATIVE INFINITY
JMP .~OG,I
OCT 776
PAGE 0218 #18
0051
0052
0053
0054
0055
LIBRARY
055202
075000
054271
006000
051260
037402
125606
51140. 044404
~1741 06e010
51142 063002
01731
5.1732
51133
51734
51135
51736
51737
~·UNCTIONS
R22
DEC ,707106781
SQR(0.5)
LE2
DEC .69314 7 1806
LOG BASE E
AAA
DEC 1.292007QJ987
MH
DEC .2.6398571035
eec
DEC 1,6567626301
(2)
PAGE
f?l219 #18
UTILITY ROUTINE
g0e7.
0058.
0059.
006".
0061.
0062.
0063.
0064*
0065.
0066.
0061.
9068*
0069.
ENTER WITHI
(A).t IF PBfLG HAS TO BE SET,
(A)a2 IF PBFLG HAS TO
(A)1!'4
IF PBfLG
t;1143
51743 103100
51744 002011
51745 Pl27751
0~14
0077
0078
0019
0080
0081
0082
"083
0084
0085
0086*
0087*
tBFlG HAVE TO Bf CLEARED,
C"vtT WITH ORIGINAL CONTENTS
IN 8,
,-""I
0071
0075
0076
CLEARED,
(8). pOINTER TO ?FLAG
0070
0012
0073
AND
BE
51146 060600
51741 130001
51750 027756
5 1151 001310
S1752 060600
51153 060524
51154 003000
S1755 110001
51756
51756 170001
51157 102100
51760 125562
#tOAS EQU •
elF 0
SL.A,RSS
JMP *+4
LDA PBFLG
lOR B,l
JMP *fDBl
RAR,SlA
LOA PBfLG
LOA 830 M
eMA
AND B,l
#fDBI EQU •
STA 8,1
STF 0
JMp EDABR,I
BIT;;0 SET1
YES. SET P8FLG.
NO. 81T#1 SET?
YES. CLEAR PBFLg.
NO. CLEAR PBFLG AND CBFLG.
STORE ?FLAG
ExIT.
~ORD
8ACt<.
PAGE 0220 #18
LIBRARY FUNCTIONS
QRG 520008
52000
52000 063146
52001 000063
52002 000120
8120
0095
52003 177716
52004 177107
D62
M71B
0096
~2005
0090
0091
0092
0093
0094
000776
0097
52006 00~106
0098 52007 000116
0099. •
0100 ••
......... .
Ut'''''
0102
*
002003
52010
0103
0104
0105
52011 124662
52012 002020
52013 115133
0106
52014 071622
52015 015412
52016 000031
0101
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
52017 026055
52020 040356
52021 071434
52022 075623
52023 061622
52024 015406
52025 052070
52026 016402
52021 052074
52030 104400
52031 001624
52032 104200
52045
52046
52047
52050
0131
0132
0133
0134
0135
0136
0137
0138
0139
01-40
0141
•
•
•
ESQR
DLD XTEMP
JSB .FOV
OEF YTEMp
JSB' .FAD
OEF YTEMP
JSB ,PWR2
OEF .-1
DST YTEHP
Y • (Y+X/Y)/2
OLD XTEMP
001622
015410
001624
015402
~2051 001624
52052 015442
52053 001434
52054 124662
52055 071434
52056 04450~
52057 075623
52060 061622
52061 015406
52062 052066
52063 015402
SlA,RSS
JMP FRET,I
XW 01
YES, ANS 11 0
58A
NO, X < 01
JSB RERRS+28,I YES
NO
STA XTEMP
JSB .FLUN
SI.A,ARS
EXPONENT 0001
JMP ESQR2
YES
ADA .-1
NO
STA lBTMP
ExPONENT/2 -1
srB XTEHP.,t MANTISSA SAVED
LOA XTEMP
JSB .FMP
OEF SA2
JSB ,FAD
OEF SB2
Y • SB2+8A2*X
ESQRt oST YTEMP
001624
02036 015402
52037 001624
52040 015442
52041 000356
52042 104400
52043 001624
0128
0129
"Pit
OCT 106
OCT 116
N
~2035
b2044 10420~
oCT 63
OCT 120
OCT -62
OCT .71
88716 OCT 776
F
52033 001622
52034 015410
0127
0130
863
COMPUTE SQR(X)
..,
. 0108
0109
TENTH OCT 63146
JSB
OEF
JSe
OfF
JSB
.FDV
YTEMp
.FAO
YTEMP
.PWR2
DEF LBTMP
ESQR2
JMP
STA
ADB
ST8
LOA
JSB
OfF
FRET,I
LBTHP
ANS • CP+F/P)*2tESQ0
EXPONENT/2
8317
XTEMp+l
XTEMP
,FMP
SAl
.J58 ,FAD
MANTlSSA/2 SAVED
PAGE 0221 #18
LIBRARY FUNCTIONS
52064 052072
0143 52065 026030
0144*
0142
0145
01.6
52066 070000
52067 000000
52010 045000
Ql00000
~2012 043524
52073 046317
52e14 066000
52015 g!00377
OfF SSI
JMP ESQRt
SAl
DEC .875
SA2
DEC .578125
SBI
DEC ,27863
SB2
DEC .421875
y •
SBt.SAt*X
~2011
0141
0148
0149*
*
*
0150 •• COMPUTE BRK(X) •
0151* •
•
0152*
0153.
0154.
01 55*
0156.
0157.
ENTER wITH ARGUMENT IN A AND B.
IF X=0, DISABLE ABORT CAPABILITY,
IF X>0, ENABLE ABORT CAPABILITY,
IF X<0, DO NOT DISABLE OR ENABLE BUT JUST
RETURN A VALUE,
0158*
0159*
0160*
0161*
RETURN WITHI
1-
0 IF ABORT CAPABILITY WAS DISABLED PREVIOUS
TO EVALUATION.
2.
+1 IF ABORT CAPABILITY WAS ENABLED PREVIOUS
TO EVALUATION.
0162.
01.63.
0164.
0165.
0166*
0161
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
5 20 76 07 1622
52077 160255
52100 010600
52101 006400
52102 002003
52103 064361
52104 061027
52105 006003
EBHK
ST, XTEMP
LDA MAIN,!
STORE HIGH PART OF ARGUMENT,
Aw tFLAG
AND PBFL,.G
eLB
SZA,RSS
LOB ,+2
LOA FlG6T
SZ8,RSS
PBFLG BIT SET?
NO. SET CB).EXPONENT OF .1,
yES. SET (A).1900108.
WAS PBFLG SET?
52106 002400
52107 001300
52110 104400
52111 001624
eLA
RAR
DST YTEMP
NO. SET RETURN VALUE TO .1.
SAVE,
.
52112 064255
52113 061622
LDB MAIN
LDA XTEMP
yES,
SET
RETURN VALUE TO I.
0178.
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
52114 002002
SZA
(8).> ? FLAG
RETRIEVE HIGH pART Of ARGUMENT.
ARGUMENT-a?
52115 026130
5 21 16 002404
52117 015562
JMP EBRKt
CLA,INA
JSB EDABR
YES, SET PBFlG TO I(.DISABLE
ABORT).
52120 103100
eL.F 0
52121 044374
52122 164001
AOB ,.?STAT
LOB B,I
52123 003400
52124 050001
ceA
52125 126137
52126 102100
52127 026134
.JMP SUSPN, I
STF 0
s ••
'lSTAT
B- 1STAT
CpA B
JMP EBRK2
QUIT IF ABORT REQUEST,
PAGE 0222 #18
0193
0194
0195
0196
0191
0198
0199
0200
0201·
0202.
0203
0204*
0205.
LIBRARY FUNCTIONS
b2130
52130 002020
52131 026134
52132 060361
52133 015562
52134
5 2 134 1 0 4 2 00
EBRKl EQU •
5SA.
JMP
LOA
JSB
EBRK2 EQU
OLD
52135 001624
52136 124662
52137 071662
EBRK2
,+2
EDABR
•YTEMP
JMP FRET,!
SUSPN
OEF
SUSP
NO. ARGUMENT >0 OR 401
2002
1tJ256 52176 026226
0257 52177 015450
0258 52200 015464
0259 522~1 050374
0260 52202 026234
0261
52203 050433
0262 52204 002001
SZA
LOB gyMTS
STB LT6
LOB
STa
JSB
JMP
CLB
CPA
JMP
CpA
81T15
LT7
GETeR
LISCQ
SAvE
TO
LAST WORD +1
OF PROGRAM
GET LARGE SEQUENCE NUMBER
SET ENDING SEQUENCE NUMBER
STARTING LINE NUMBER? .
NO
.+548
CHECK FOR COMMA
FIRST STATEMENT NUMBER OMITTED.
8120
PAGINATION?
YES
BACK UP FOR FIRST STATEMENT NUMB
FETCH INTEGER
CHECK FOR CARRIAGE RETURN
yES, fNO OF COMMAND
COMMA FOLLOWS?
LIsCM
LISCP
JSB BCKSP
JSB BlDIN
CPA .... 15B
JMP LISCR
CPA ,+54B
RSS
.JMP
**
yES
PAGE 0224 #18
LIST ROUTINES
0263
52205 115113
0264
0265
52206
0266
0267
0268
0269
0270
0271
0272
0273
0214
0215
0276
0277
0218
0279
0280
0281
"282
0283
52206
52207
52210
52211
52212
52213
52214
!S2215
075430
015446
116113
052002
026226
015450
015464
0072100
~2216 075432
52211 0 503 7 4
52220 ~26233
b2221 015446
52222 115113
52223 052002
62224 002001
6222S 115113
52226
ti2226 062004
62227 071550
JSB RERRS+12,I
LISCM EQU •
SAVE STARTING SEQUENCE NUMBER
STB LT3
JSB GETeR
GET THE NEXT CHARACTER
JSB RERRS+12,I
CPA 8120
CHECK FOR P
JMP LISCP
PAGINATION
JSB BCKSP
BACK UP FOR SECOND STATEMENT'
JSB BLOIN
GET INTEGER
eMS
SAVE ENDING SEQUENCE NUMBER
ST8 LT7
END OF RECORD?
CPA ,+158
JMP lISCQ
YES
JSB GETCR
NO, GET NEXT CHARACTER
JSB RERHS+12,I
CPA 8120
PAGINATION1
YES
RSS
JSB RERRS+12,1 NO
LISCP EQU
SET L.INE COUNTER
LOA M71B
ST. lT8
•
52230 015446
JS8 GETeR
0285
0286
52231 002001
52232 115113
RSS
0281
52233
52233 065430
0284
0288
0289
0290
0291
52234
52234 061442
52235 015314
52236 026575
JSB RERRS+12,I
LISCQ EQU
GET BACK STARTING SEQUENCE NUMBER
LOB LTJ
llSCR EQU
LDA
0299*
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318.
52243 061567
52244 071426
~2245
040360
52246 160000
52241 010273
52250 002003
5 22 5 1 026260
52252 006400
52253 075274
52254 060354
S2255 015460
52256 060374
52257 015452
52260
522613 060371
52261 ~l15452
52262 060371
b2263 015452
•
•lT6
SEEK
STATEMENT
ALL LINE NUMBERS < GIVEN INTEGER
SAVE DESIRED
STARTING POINT
OUTPUT A
L.INE FEED
JSB FNDPS
JMP LIS16
NOP
5T8 LT3
LDA .+128
JSB OUTeR
0292
0293 52237 000000
0294 52240 015430
0295 52241 060371
0296 6224\2 015452
0297.
0298.* OUTPUT PROGRAM NAME
0300
TEST FOR END OF LINE
•
•
LNAME
••
LOA
STA LT1
ADA .+1NAME.?ID
LDA A,I
REMOVE RUN-ONLY
AND INF
BIT AND CHECK FOR
SZA,RSS
NULL PROGRAM NAME
JMP LISCU
YES
CLB
NO
ST8 LT2
OUTPUT
LOA .-3
PROGRAM
JSB DUTST
NAME
LDA .+158
OUTPUT
JSB OUTeR
CARRIAGE RETURN
LISCU EQU •
LOA .+128
JSB OUTeR
LDA .+128
JSB OUTeR
AND
•
DOUBLE
LINE
FEED
PAGE 0225 #18
LIST
~OUTINES
0319** OUTPUT LEAOER IF 'PUNCH'
**
0320*
*
CLA
0321 52264 002400
CPA lT0
0322 52265 051400
0323
0324
0325
0326
0327
0328
0329
0330
033i
0332.
0333*·
03344,.
52266
52267
52270
52271
52272
52273
52274
071356
03 4 8
0349
0350
0351
0352
0353
035A
.}S8 OUTeR
IS! OIGeT
JMP •• 3
035356
026271
065430
522;0 015426
LOB LT3
sr! ... , ..
I .,.. •
•
••
•
LlST2 LDB
yES
NO,
OUTPUT
FEEO
FRAMES
FOR
L.EADER
SET pOIN1ERTO
STARTING POINT
MAIN LIST LOOP
055442
LTl
CPS LT6
026563 .
.IMP LIS1S
065426
165426
52303 045432
523i2
5 2312
52313
52314
52315
52316
5 2 317
52320
060311
015452·
035550
026312
060322
07155 0
523410
LOB LTl,1
ADB Lr1
SSB, RSS'
JMP LIS1S
lSI
JMP
LOA
STA
LISpF EgU
LOA
lT8
LISPM
.we
LT8
•
.+12B
.JSB OUTeR
PROGRAM
EXHAUSTED?
YES
GET LINE NUMBER
CHECK FOR END OF LIsTING
sKIp IF NOT DONE vET
STOP ~ISTING HERE
CHECK FOR NEWPAGE
NOT YET
OUTPUT A
BUNCH OF .
ISZ LT8
JMP LISPF
LDA M726
L.INE FEEDS
RESET LINE COUNTER
STA LT8
LISPM EQU •
03S5.
0356 5 2 3 20 165426
0351 52321 015454
0358 52322 060417
0359 52323 015452
03621 52324 035426
0361 52325 161426
0362 52326 015554
0363 52327 161426
0364 5233((1 0030~4
0 3 6 5 52331 002004
0366 5 233 2 071274
0361 52333 026336
0368 !S2334 165426
0369 52335 015454
0370 52336 035.426
0371 52337 035274
0372
0373
0374
eLA
002400
015452
0340 52304 006021
0341 !52305 026563·
0342-.
0343 523°6 03555 0
0344 52307 026320
0345 t)2310 060341
0346 5.2311 071550
0347
JMP LIST2.2
LDA M728
STA DIGCT
~2275
. 0335 52277
0336 52300
0337 . 52.301
0338 62302
0339
026275
060322
'LIST'
MODE?
026354
5 234 1 002404
52342 051 4 00
LDB LT1,I
JSB QUTIN
LDA .+408
JSB OUTeR
lSI LT1
LOA LT1,I
JsB SlLCK
LOA LTI,I
CHA,INA
INA
STA LT2
JMP LIST3
LOB LTI,1
JSB QUlIN
LISTJ lSI LTl
IsZ LT2
JMP LlST4
CLA,INA
CPA LT0
NO, OUTPUT
LINE NUMBER
OUTPUT
BLANK
CHECK
STATEMENT
LENGTH
LENGTH
COUNTER
FOR
STATEMENT.
OUTPUT
BOUND
MORE OF
STATEMENT?
yES
XPUNtH?
PAGE 0226 #18
1d315
0376
iJ377
~2343
!)2J44
!S2345
62346
52347
LIST ROUTINES
0020t.iJl
026347
06Qt4Q12
015452
060374
015452
060371
015452
026217
0318
0379
0380 ~2350
0381 52351
0382 52352
0383 52353
0384*
0385*. IDENTIFY OPERATOR
i13861i
0387
0388
0389
0390
0391
0392
0393
~394
039 5
0396
0397
0398
0399
0400
0401
~402
0403
0404
1t)405
0406
0401.
0408*·.
·0409.
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
52354
52355
52356
52357
52360
S2361
52362
52363
52364
52365
161 4 26
010570
002003
026400
050552
026376
001727
042003
002021
026532
52366 042001
52367 040660
5237A 160000
52371 001727
52312 01047 4
52373 050421
52314 026600
52375 002001
52316 060417
52377 015452
LOA
.J88
LOA
JSB
LOA
JSB
JMP
.+2J8
OUTeR
,+158
OUTCR
.+128
OUTeR
LIST2
*.*
•
JMP LISTS .. 2
ALF,ALF
ADA 0<>2
SSA,RSS
JMP LIS12
ADA 863
ADA FOPBS
LOA 0,1
Al.F,ALF
AND B177
CPA .... 428
JMP LIS14
RSS
LOA .+408
JSB OUTCR
LISTS
•
•
LOA
LTt,I
AND OPDMK
STA LTJ
52403 002020
5SA
.JMP LIST9
52406 055430
52407
5 2 41171
52411
52412
52413
52414
026336
05544°
026417
040356
001000
041513
CLB
CpB
JMP
CPS
JMP
ADA
ALS
AOA
LOA
STA
LIST SYMBOLIC OPERAND
0427.
0428 52417 010572
0429 52420 050376
0430 !)2421 026445
EXTRACT
OPERATOR
NULLOPERATOR1
YES
NO, 'IMPLIED' LET!
yE8, OUTPUT A BLANK
NO,
SINGLE.CHARACTER
OPERATOR?
NO
YES,
EXTRACT
ASCII
CODE
" ?
YES
NO
LOAD
It
BLANK
••
52404 026452
52405 006400
0423 52415 160000
0424 52416 ~71430
0425*
0426 ••
yES
NO
OUTPUT
X.OFF
NO,
OUTPUT A
CARRIAGE RETURN
AND LINE FEED
LISTA LDA tTl,1
AND OPMSK
SZA,RSS
JMP LIST5
CPA LETOP
IDENTIfy OPERAND
524"~ 161426
52401 010566
52402 011430
RSS
.JMP •• 3
LT3
LISTJ
LT5
LIST0
,-1
SYMTB
0,1
lT3
EXTRACT.
OPERAND
FLAG f;lIT SET?
YES
NO, NULL
OPERAND?
YES
NO, 'COMPILED' ?
NO
yES
LOAD
ACTUAL
SYMBOL
SAVE SyMBOL
.*
•
LISTA AND PDFFL
CPA .... 178
.JMP LIST8
ISOLATE TYPE PART
FUNCTION?
yES
PAGE 0227 #18
LIST ROUTINES
0431
0432
0433
0434
0435
0438
0437
04 3 8
52422 061430
0439
!S2432 0263"36
0440
0441
52433 002003
52434 026443
fJtAA"
0443
0444
0445
1tj446
",,447
02435 040352
52436 002020
02437 026336
5244(11 ~40437
02441 015452
~2442 026336
044ij
5244~~
52423 101104
LlST6 LOA LT3
RRR 4
AND .+378
ADA 8100
b2424 010416
b2425 £'140462
~2426
JSB OUTCR
015452
COMPUTE
ASCII FOR
LETTER
OUTPUT LETTER
LDA LT3
ti2427 061430
52430 010376
t) 2 4 3 t 050376
r:1 """" ,
NO, .
AND .+178
CPA .+17B
.IMP LIST3
SZA,RSS
FUNCTION?
YES
NO, STRING VARIA8LE1
.JHP LIST7
AOA ; .. 5
5SA
.IMP "LISTJ
yES
ADA .+608
~449
~2444
0450
0451
0452
0453
5244b
OUTCH
JMP LIST3
~60423
LIST? LOA • .,.,44B
JMP ·"3
~26441
062006 ,LISTS LIJA F
~2446
~15452
04 5 4
~2451
.JSB
.JsB
NO
DIGIT?
NO
YES,
OUTPUT IT
LOAD ASCII , S ,
OUTPUl
oUteR
52447 062007
LOA
5245'" 015452
.JSS OUTeR
'FN'
N
JMP LIST6
026422
•
*.
~455.
LIST CONSTANT OPE"RAND OR PARAMETER
0456*.
0457.
1tJ45d
"-1459
52452
0460
52454
52455
52456
52457
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0471
0412
0473
0474
0475
0476
0477
0478
0479
0480
0481
~482
~'"
0483
0484
0485
001665 "
52 4 53 0102002
026471
011570
071266
035426
00
~
~
52462 101426
52463 035426
52464 035274
52465 002120
!S2466 A023~0
52467 ~15420
52470 026336·
52471 010376
52472 050362
52473 026504
52474 ~50376
52475 0020l'Jl
52476 026422
02477 061431£'
525~0 001722
52501 064624
!)2502 015456
52503 026336
52504 Pl35426
52505 035274
525 0 6 06143:6
LISTg FLA,CLE,ERA
SZA
JMP LIS1"
STA CHRCT
STA SIGN
IsZ LTl
ISl LT2
OLD LT1,I
•
CLEAR FLAG BIT
CONSTANT?
NO
VES,"SET
FOR NO SIGN
LOAD"
CONSTANT
lSI LT1
ISZ LT2
CL~,SSA
LlS1~
ceE
JSB
JMP
AND
CPA
NUMOT
LlST3
.+178
.... 3
.JMP LIS11
CPA .+178
NEGATIVE NUM8ER?
yES, ENABLE SIGN
oUTPUT THE CONSTANT
ISOLATE TYPE PART
PROGRAM INTEGER?
yES
NO, PRE-DEFINED ,UNCTION1
RSS
yES
JMP LlST6
LDA LT3
ALF,RAL
LOB AlAB
.ISB f\4COUT
NO, MUST BE A PARAMETER SyMBOL
OUTPUT
JMf;' LIST3
LIS1! lSI LT1
ISZ LT2
LOA LT4
FUNCTION
SyMBOL
RESTORE OPERA70R
pAGE
0486
ra487
048a
0489
0490
0491
~492
0493
0494
0495
0228 #18
LIST RoUTINES
CPA
JMP
CPA
JMP
lOA
LOB
52507 050540
52510 026334
52511 050534
52512 026334
62513 061440
S2514 165426
52515 002002
52516 164001
S2517 015454
52520 035426
62521 035214
52522 002001
aZA
DIMOP
LIST3-2
COMOP
?
YES
NO, 'COM'?
LISTJ-2
yES
LT5
NO
LOAD PROSPECTIVE INTEGER
PROGRAM 'COMPILED' -,
LT1,I
LOB 1, I
JSB QUTIN
yES
OUTPUT INTEGER
MORE
ISZ LTl
0496
ISZ LT2
0497
RSS
0498 52523 026341
JMP LIST3+3
0499 52524 061436
LOA LT.
0500 52525 050694
CPA U8EOP
0501 52526 026384
JMP LIST4
LDA ,+548
05212 52527 060433
JSB OUTeR
0503 52530 015452
JMP LIStl.7
0504 52531 026513
0505*
0506*. LIST MULTICHARACTER OPERATOR
0507.
la50d
52532 060417
0509
52533
52534
52 535
52536
S2537
5254 0
52541
52542
52543
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
052d
05 2 9
It:)
530
015452
161426
064120
0154!56
060411
065436
52547
52550
52551
52552
52553
5 2 554
52555
52556
5 2 557
525 6 0
52561
52562
LOA
LOB
CPS
JMP
054576
026S57
054544
52544 026556
52545
52546
LIS12 lOA .+408
JSB OUTeR
LOA LT1,I
LOB MCBOP
JSB MCOUT
054546
026551
015452
026400
006400
cpa
JMP
cpa
01 546 0
026336
015452
007400
0 6 1274
~n
."'v
LISTING
'USING' 7
yES
EMIT
A COMMA
*
**
• OUTPUT
A BI.ANK
OUTPUT
MULTtCHARACTER
OPERATOR
.+408
LT4
REMQP
WAS IT
1.1913
YES
NO, 'FILES' 7
A ' REM' 1
FIlOP
LIS13-1
IMGOP
JHP LISl8
JSB OUTeR
JMp LIST5
LISle CLB
yES
NO, 'IMAGE'?
YES
NO, OUTPUT A BLANK
LOA LT2
061274
0020216
STATEMENT'?
YES
INA,8ZA
JSB
JMP
JSB
LIS13 etB
LOA
JSB
JMP
0531
015460
0532
026336
0533.
0534** OUTPUT TRAILER IF
0535.
0536 52563
LIS15
0537 52563 ""2400
0538 52564 051400
~539
52565 124740
0540 52566 060322
0541
52567 071356
OUTPUT IMAGE STRING
OUTST
LISTJ
OUTeR
OUTPUT A BLANK
OUTPUT
THE
REMARK
LT2
QUTST
lISTJ
'PUNCH'
EQU •
*
**
*
CLA
CPA LT0
JMP SCHEN,I
LDA M72B
STA DIGCT
'LIST'
MODE?
YES
NO,
OUTPUT
PAGE 0229 #18
0542
0543
0544
0545
~2570
52571
52572
52573
52574
LIST ROUTINES
002400
015452
035356
CLA
JSB OUTeR
ISZ DIGCT
026570
JHP .·3
0546
124740
0547.
0048 b2575 060371
0549 52576 015452
~550
52577 124740
LIS16 LOA .+128
JsB OUTeR
JMP seHEN,I
0561
0562
0563
0564
0565
ECHO
LINE
FEED
•
LIST A STRING CONSTANT
0553*
0554 5260~ 015452
0555 52601 161426
0556 ~2602 010500
0559
0560
TRAILER
JMP seHEN,I
0551.
0552..
~557
~558
FEED
FRAMES
FOR
52603 002003
52604 026611
52605 003004
~2606 001100
52607 006400
52610 015460
52611 060421
52612 015452
52613 026336
0566.·
0567...
••
*
LlS14 JSB OUTeR
LOA LT1,I
AND B377
SZA,RSS
JMP LIS1]
CHA,INA
ARS
(LB
JSB OUTST
LIS17 LOA .+428
JsB OUTeR
JMP LIST3
LIST A MULTICHARACTER SyMBOL
OUTPUT n
COMPUTE
WORDS
OF
STRING
OUTPUT
STRING
yES, OUTPUT IT
••
•••
**
0568**
0569.
0570. UPON ENTRY CA) HOLDS A WORD CONTAINING A SYMBOL CODE AND (8)
0571* HOLDS A POINTER TO THE PRINT NAME TA8LE. THE SYMBOL IS FOUND
0512* IN THE TABLE AND ITS ASCII FORM OUTPUT.
0573.
0574 52614 010570 ~MCOl AND OPMSK
SAVE
0575 52615 071436
STA LT4
SyMBOL
0576 5261616~001 MeoTt LOA 1,1
DESIRED
0577 52617 01057~
ANO OPMSKTASLE
0578
52620 051436
0579
0580
0581
0582
52621 026630
52622 160001
~2e23 010366
52624 040362
52 625 001100
52626 044000
52627 026616
52630 160001
52631 010366
52632 003004
52633 001100
52634 071430
52635 075460
52636 035460
52637 161460
52640 ~01727
52641 015452
52642 161460
52643 0105~0
0583
l
0584
0585
0586
0587
0588
0589
0590
0591
0592
0593
0594
0595
~596
0591
CPA LT4
JMP MCOT2
LOA 1,1
AND .+7
AOA .+3
ARB
ADS ~
JMP MeOTl
MCOT2 LDA 1,1
AND .+7
CMA,INA
ARS
STA LT3
5T8 OUlST
MCOT3 lSI OUTsr
LDA OUTST,I
AlF,ALF
J S8 OUTe R
LOA OUTsr,l
AND B377
ENTRY?
YES
NO,
COMPUTE
AODRESS
OF NEXT
ENTRY
COMPUTE
COUNT
OF
ASCII
WORDs
sAVE ASCII SYMBOL ADDREsS
MOVE TO NEXT WORD OF SYMBOL
OUTPUT
HIGH
oUTPUT
~ow
CHARACTER
PAGE
0598
0599
0600
~601
0602
~2J0
02644
52645
52646
h2647
52650
#18
LIST ROUTINES
~02002
SZA
015452
035430
026636
125456
JSB
ISZ
JMP
JMP
0603 ••
0604*..
0605",.
0606.
0607.
06°8*
06i09"
°610*
0611*
0612
0613
0614
0615
0616
0617
0618
0619
0620
0621
0622
0623
0624
0625
0626
LIST A STRING.
.*.
••
••
OUTeR
LT3
MCOTJ
MCOUT,I
IF NOT
NULL
MORE SyMBOL?
yES
NO
UPON ENTRy CA) HOLDS A NEGATIvE wORD COUNT OF THE STRING. IF
(8) # 0 THE STRING BEGINS WITH THE LOW HALf OF CLTl),1 , IF
(Bj • 0 IT BEGINS WITH THE HIGH HAlF OF THE WORD FOLLOWING
(L T 1) , 1 . A TRA IL ING NUll CHARAC TER WILL-- NOT 8E PRINTED.
5 2 65 1 071436
02652
006~02
52653
52654
52655
52656
52657
52660
026661
035426
SZB
.JMP Or5T2
SAVE STRING WORD COUNT
• REM' ?
yES
orS11 ISZ LTl
NO, MovE TO
NExT PROGRAM WORD
OUTPUT
HIGH
OT8T2
OUTPUT
LOW CHARACTER
035274
161426
001127
015452
161426
52662 010500
52663 002002
52664 015452
52665 035436
52666 026654
52667 125460
~2661
*OTST STA LT4
ISZ LT2
LOA. lTl,I
ALF,ALF'
JSB OUTeR
LOA LT1,I
AND 8377
IF NOT
5Z·
JSB OUTeR
ISZ lT4
.JMP OTST 1
JMP QUTST,I
NULL.
MORE STRING?
yES
NO
PAGE
~231
#t9
AsCII TO BINARY NUMBER CONVERSION
0002 ••
0003.*.
HANDLE OVERFLOW
0004*.
0005.
**
CA) CONTAINS THE HIGH MANTISSA UPON ENTRY. (Al AND
(e) CONTAIN THE LARGEST REPRESENTABLE NUMBER OF
APPROPRIATE SIGN, PACKED, UPON EXIT.
9006*
0001*
0008.
0009.
0010 ~2670 064355
0011 52611 002020
0012 52672 066005
0013 52673 030213
0014 52674 002020
0015 52615 061027
0016
52676
0011.*
0018.**
*OVFL LDB
SSA
LDB 88776
lOR !NF
5SA
LDA MNEG
JMP OVFLW,I
12~310
CHECK OVER/UNDERFLOWS
••
•••
.*
0019 ••
0020.
EXIT TO CP+l) IF STATUS IS NOT SYNTAX,
SETTING SYMTa • 4 IF IN KEYBOARD MODE.
REPORTED IF IN TApE MODE,
0021.
0022.
0023.
0024.
002S
52611 061561
0026
0027
0028
0029
52700 040367
52701 164000
52,02 054363
~2703 002001
52104 026113
0030
0031
0032
••
•••
#CHOU LDA lNAME
RSS
yES
JMP. CHOU1
LOA TAPEF
AND MAIN,!
52705 060367
52706 110255
0033
52107 002003
52110 075573.
SZA,RSS
ST8 SYMTB
0035
52711 035474
0036
52712 125474
liZ CHOUF
JMP CHOUF,I
0031
52113 035601
CHOUI ISZ ENOU F
0038
52714 002001
52715 035474
52116 125474
RSS
0039
lSZ CHOUF
NO
TAPE
NO
MODE?
ARE wE ExECUTING ENTER STATE1
NO
yES •• SUPPRESS ERROR
JMP CHOUF,I
~041.*
0042...
COMPUTE
ADA .+1STAT.110
STATUS
LOB 0,1
CPS .+4
SYNTAX'
0034
0040
ELSE EXIT TO cp.a),
T~E.E ERRORS ARE NOT
LOOK FOR A NUMBER
••
•••
0043..
••
0~44.
0045.
0046.
0047.
004 8*
~049.
0050.
~051.
~052·
0053.
0054*
0055.
0056.
~057
NUMCK LOOKS FOR AN UNSIGNED NUMBER, sIGN MUST BE sET
BY THE CALLER (SIGN. -1 FOR NEGATIVE, ELSE POSITIVE).
CA) CONTAINS A CHARACTER UPON ENTRY, IF IT IS NEITHER
A DIGIT NOR A DECIMAL POINT, EXIT IS TO (P+l) WITH
(A) UNCHANGED AND (8) • 0. ExIT Is TO ERROR ON FINDING
AN EXPONENT PART OF INCORRECT FORMAT,
ZERO REPLACES AN
UNDERFLOw, THE LARGEST REPRESENTABLE NUMBER OF THE
APPROPRIATE SIGN REPLACES AN OVERFLOW, AFTER STORING A
FLoATING poINT NUMBER IN M AND M+l (WHERE sePTR,! • M)
EXIT IS TO (p.2) WITH THE NEXT INPUT STRING CHARACTER
IN CA) AND TEMP+l.
02717 006400
#NMCK
C~B
·ZERO
PAGE 0232 #19
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
~"UII.&:.n
IOIaV'"
0070
0071
0072
52120 075322
52721 015316
52722 075320
!)2723 075324
!;2724 075612
52725 007400
5 2 726 07575 0
52727 050435
52730 035750
52731 026735
52732 002400
52733 071324
52734 026712
52735 015264
52136 021006
0076
0077
0078
0079
52731 035324
52740 100033
52741 071613
52742 015300
52743 065322
52144 006003
52745 027001
~080
~2746
044353
0081
0082
0083
0084
0085
52747
52750
52751
52752
!)2753
52154
52155
52756
52 7 5 7
007000
0073
0074
0075
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
061613
075613
006400
035613
e26776
000040
045320
1031el
!)2760 002040
52761 002004
52762 041316
52 763 102301
52164 026771
52765 000065
52766 005500
5 2 767 "35322
5277", 000000
52771 015304
52772 035612
52773 015446
52174 027055
52775 026727
52776 000065
52777 005500
530rt:10 026753
STB EXP
ST8 MANTi
STB MANT2
STB EXPON
5rB TEMp+l
eCB
STB OPFLG
NUMCt CPA .+568
ISZ DPFLG
JMP NUMC2
CL.A
srA
EXPON
JMP NUMC4+1
NUMC2 JSB OIGel<
JMP NUMei'
ISZ ExPON
ASL 11
STA TEMP+2
JSB MBYl0
LOB ExP
SZB,RSS
JMP NUMC6
ADS ,-4
CHS
LOA rEMP+2
STB TE,.,p+2
CL.B
NUMC3 ISZ TEMP+"2
JMP NUMC5
eL,f
ADB MANT2
CLO
SEZ
INA
ADA MANTt
sos
.JMP NUMC4
CL.E,ERA
ERa
lSl EXP
NOP
NUMC4 .J8B NORML
tSZ TEMP+1
JsB GETeR
JHp NUM12-t
ERB
JMP NUMC3
NUMC6 LOA .... 4
STA EXP
LDA TEMP+2
530tdl 060363
0108
53002
fS3003
53004
!)3005
5 3 006
liI61613
006400
026771
006400
JMP NUMC4
NUMC7 CLB
!)3~H:l7
075613
STB
0110
0111
0112
0113
~71322
ALL
COMPONENTS
OF THE
NUMBER
'NUMBER FLAG' FALSE
SET 'DECIMAL POINT'
FL.AG FALSE
DECIMAL POINT?
SET
yES
NO
ZERO POST~DECIMAL
DIGIT
COUNTER
DIGIT?
NO
yES, COUNT DIGIT
LEFT-JUSTIFY DIGIT
AND SAVE IT
MULTIPLY PREVIOUS NUMBER BY 10
ZERO
EXPONENT'
YES
NO,
SAVE
SHIFT
COUNT
CLEAR LOWER MANTISSA
ALL. SHIFTS DONE?
NO
YES, ADD IN
LOW PART
OF NUMBER
OvERFLOw FROM (8)7
YES
ADD IN HIGH PART OF MANTISSA
OVERFL.OW?
NO
YES, CORRECT
MANTISSA
AND BUMP
ExPONENT
NORMALIZE THE NUMBER
SET 'NUMBER FLAG' TRUE
FETCH CHARACTER
NONE FOUND
.IMp NUMC 1
NUMC5 ClE,ERA
0107
~11219
It
ASCII TO BINARY NUMtJER CONVERSION
(L.B
TEMP+2
SHIFT
DIGIT
RIGHT
SET
EXPONENT
LOAD
NUMBER
SET EXPONENT
SIGN TO , ... '
PAGE 0233 #19
0114
0115
0116
0111
03010 055612
53011 125216
bJA12 0S0464
53013 002001
63014 027056
DIGIT OR DECIMAL PoINT FOUNDt
NO
RSS
YES
NO
FETCH CHARACTER
NONE FOUND
0136
0137
0138
53040 100200
0139
0140
53041 000371
53042 041612
53043 071612
53044 015446
53Q145 021051
0120
0121
0122
0123
"124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0141
0142
0143
0144
0145
0146
0147
63015 015446
!SJ016 027115
53011 050432
~3046
015264
53047 002001
53050 027115
53051 065612
53052 035613
0148
53053 007004
0149
53054 002001
53055 006400
5 3 056 071612
53057 035750
53060 045324
53061 006003
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
53062 027077
53063 006020
53064 027"73
53065 007004
53066 015324
53067 015302
5307VJ 035324
53071 027067
53012 027077
53073 07 5 324
5312114 0153A0
53075 035324
53076 027074
53077 061316
CONVE~SION
CPB TEMP"'1
JMP NUMCK,I
CPA E
JMP NUM12
JSB GETeR
JMP NUM16
CPA .... 538
53020 027025
JMP NUMC8
CPA .+558
!:S3021 050434
CCA,RSS
53022 003401
JMP NUMC9
53023 02;027
53024 071613.
STA TEMP+2
53025 015446 NUMCe JSB GETeR
~3026 021115
JMP NUM16
53027 015264 NUMC9 JSB OIGCK
JMP NUM16
53030 027115
03031 071612
sr A TEMP+1
53032 015446
JSB GETeR
~3033 027051
LJMP NUMll
JSB DIGCK
53034 015264
.JMP NUM11
53035 0127051
l.OA TEMP.1
53036 061612
STB TEMP+1
53037 (lI75612
0118
0119
l
ASCII TO BINARy NUMBER
• E' 'I
... , 'I
YES
NO, 'II1II' 1
YES
NO
SET EXPONENT SIGN TO
FETCH CHARACTER
NONE FOUND
DIGIT?
NO
yEs, sAVE IT
DIGIT?
NO
YES, MULTIPLY
PREVIOUS DIGIT
8Y 11
MPY ,+10
AOD IN NEW DIGIT
EXPONENT
ADA TEMP"'1
STA TEMP+l
SAVE
JSB GETeR
JMP NUM11
JSB DIGCK
THIRD DIGIT1
RSS
JMP NUM16
NUM11 LOB TEMP ... 1
ISZ TEMP+2
CMB,tNB
NUM13 STB
JSB
ISZ
JMP
NUH14 LOA
NO
YES
LOAD EXPONENT
POSITIVE?
yES, COMPLEMENT IT
NO
RSS
CLB
NUM12 STA TEMP+1
lSZ OpFLG
ADa EXPON
SlB,RSS
JMP NUM14
SSB
JMP NUM13
CMB,INB
STB
JSB
ISl
JMP
JMP
~.,
ExPON
OBY10
EXPON
•• 2
NUM14
EXPON
MBY10
ExPON
*-2
MANTi
SAVE CHARACTER
DECIMAL POINT FOUND'
yES, CORRECT EXPON£NT
NO, ZERO EXPONENT1
YES
NO, POSITIVE EXPONENT,
YES
NO, SET
COUNTER
DIvIDE NUMBER By 11
DONE?
NO
YES
SET COUNTER
MULTIPLY NUMBER BY 10
DONE?
NO
LOAD
PAGE 0234 #19
0169
8170
0171
1It172
0173
0174
1tJ17e
0176
0177
0178
0179
0180
0181
0182
ASCII TO BINARY NUMBER
53100 065320
53101 035266
53102 027106
531"3 00301210
ti3104
0070~7
~31A5
002004
53106 01531216
5 3 107
53110
Sl111
53112
17t572
01527121
175512
015270
53113 e61612
53114 035276
53115 035276
ta183. 53116 125276
0184**
0185**.
LOB MANT2
ISZ SIGN
0189*
JSB
srB
JSB
LOA
SBPUD
sBPTR,1
SBPUD
TEMP.l
ISl NUMCK
NUM16 tsz NUHCK
JMP NUMCK,I
MULTIpLY UNPACKED NUMBER BY 10
0213
0214
MANTlSSA
POSITIVE?
NUMBER IN
DESTINATION
ADDRESS
RETRIEVE CHARACtER
••
•••
••
THE FLOATING POINT NUMBER IN HANTt, MANT2, ANDExP
IS MULTIPLIED BY 10.
0190*
01 91
53117 061316
0192 53120 002003
0193 !S3121 125300
0194 53122 065322
0195 53123 044362
0196 03124 075322
°1 9 7 ~3125 06532°
0198 53126 000065
0199 53127 005500
02"" 53130 000065
53131 005540
020t
0202 53132 045320
0203 5 3 133 0020.,0
0204 53134 002004
0205 53135 041316
0206 53136 002°21
0201 5 3 137 027144
0208 53140 0~0065
0209 53141 005500
0210 53142 035322
0211 53143 000000
0212
.
JMP NU M15
yES
CMA
NO, COMPLEMENT
CMB,INa,SZB,RSS THE
INA
NUMBER
NUM15 JSB .PACK
NORMALIZE AND PACK
STA SBPTR,l
STORE
0186 ••
0187.
0188*
CONVE~SION
!S3144 07131 6
53145 075320
53146 125300
LOA MANTt
SZA,RSS
JMP MBY10,!
LOB Ex P
A08 ,+3
STB EXP
LOB MANT2
CL.E,ERA
ERe
CLE,ERA
ERB,CLE
ADB MANT2
SEZ
INA
ADA MANTt
SSA,RSS
JMP MBY01
CLE,ERA
ERB
ISZ ExP
NOP
MBY01 STA MANT1
STB MANT2
JMP MBYle,I
LOAD HIGH MANTISSA
ZERO NUMBER?
YES
NO,
MUL.TIPLY
fiV 8
LOAD LOW MANTISSA
DIvIDE
BY
4
·ADD INTO
80TH REGISTERS
PRODUCING
·1.25
CORRECT
*
ON
OVERFLOW
STORE
MANTISSA
MANTISSA
pAGE 0235 #19
ASCII TO BINARY NUMBER CONVERSION
0216 ••
0217...
0218 ••
0219.
0228.
0221.
0222_
NORMALIZE
UNPACKE~
0226
0227
0228
0229
0230
0231
0232
.*.••
••
ENTER WITH NUMBER IN (A), (8), AND EXP. EXIT WITH
NORMALIZED NU~8ER IN MANT1, MANT2, ANO EXP (MANTISSA
IS LEFT IN (A) AND (8) AS WELL).
0223.
0224
0225
NUMBER
53147 071300
53150 002400
53151 071613
53152 061300
53153 002003
53154 006002
53155 027163
53156 071322
53157 071316
531 6 0 075320
53161 125304
~3t62 03!561J
53163 004066
b3164 001600
53165 002061
53166 021162
53167 002060
53170 027162
53171 001500
53112 005540
53173 071316
53174 061613
53175 003004
53176 041322
53177 071322
53200 061316
53201 021160
#NRMI.
srA NTe
SET
LEFT-SHIFT
COUNTER
CLA
STA TEMP+2
LOA NT"
SZA,RSS
TO ZERO
SZB
JMP
STA
STA
NORM! STB
JMP
NORM2 ISZ
NORM2+1
EXP
MANTt
MANT2
NORML.,I
TEMP.er2
IF NUMBER
IS ZERO,
CLEAR
EVERYTHING
STORE
MANTISSA
0233
0234
0235
COUNT A LEFT SHIFT
CLE,ELB
ROTATE CA)
0236
0237
fLA
AND (8) LEFT
SEZ,SSA,RSS
0238
TWO HIGHEST BITS
JMP NORM2
YES, POSITIVE UNNORMALIZED
0239
SEZ,SSA
0240
NO,· TWO HIGHEST BITS 17
JMP NORM2
yES, NEGATIVE UNNORMALIZ!D
0241
0242
NO, NORMALIZE
ERA
MANTISSA
fRB,CLE
0243
0244
COMPUTE
sr A MANTt
0245
LDA TEMP+2
CMA,INA
CORRECTED
0246
AOA Exp
0247
0248
STA EXP
EXPONENT
0249
LDA MANTt
0250
JMP NORM1
0251 ••
0252... NORMALIzE AND PACK NUMBER
0253.·
.*
0254.
0255* NUMBER IN (A), (8), ANO EXP ON ENTRy. ON EXIT (Al
0256* AND (6) CONTAIN THE NORMALIZED, ROUNDED, AND PACKED
0257* NUMBER. UNDERFLOw BECOMES A ZERO, OvERFL.Ow BECOMES
0258* THE LARGEST REPRESNTABlE NUMBER OF APPROPRIATE SIGN.
0259.
NORMALIZE NUMBER
0260 b3202 015304 #PACK JSB NORML
0261 53203 002103
Cl.E,SZA,RSS
ZERO?
0262 53204 125306
JMP .PACK,I
YES
ADS B177
NO, ROUND
~26J
53205 044474
0264 53206 002021
SSA,RSS
POSITIVE?
INB
YES, FINISH ROUND
0265 53207 006004
CLO
0266 53210 103101
SEZ
ON OVERFLOW FROM (8)
0267 53211 002040
0268 53212 002104
Cl.E,INA
CORRECT CA)
80S
0269 53213 102301
OVERFLOW?C (A)-118BI8, (8).& )
1d270 5321~ 001200
RAL
TWO HIGH BITS
0271
5 3 215 002031
I'
.",.••
SSA,SLA,RSS
80'K 11 ( IF CA' WAS 141'80 )
PAGE 0236 #19
0272
0273
~J216
ASCII TO BINARY NUMBER CONVERSION
027221
53217 002300
0274
53220 001130
0275
0276
0211
b3221 001300
~3222 071613
b322J 1 0 1 0 50
~278
b3224 0~5727
0279
b3225 061322
0280
b3226 002040
0281
0282
0283
53227 040356
b3230 102201
53231 002004
0284
0285
0286
53232
53233
53234
53235
S3236
53231
040476
002020
027253
~3241
001200
010500
044000
061613
051027
002001
125306
055030
027260
125306
0287
0288
0289
0290
ADA M256
021260
53240 040476
53253 015474
0302
0303
0304
0305
0306
53254 115207
53255002400
~3256 096400
53251 125306
53260 015474
53261 115206
53262 061613
5 3 263 015310
53264 125306
0310
0311.·
JMP PACK3
SSA,RSS
JMP PACK4
0301
0309
INA
ADA 8200
SSA
002021
53242
53243
53244
53245
53246
53247
53250
53251
53252
0307
soc
040316
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0308
JMP PACK1
teE
ARS,SLA,ALS
PACK1 RAR
ST. TEMP+2
LSR 8
SLF,BLF
LOA EXP
SEl
ADA ... 1
0312.**
ADA 8200
RAL
AND 8377
AD8 "
sAvE
(A)
DELETE 8 LOW 8ITS
OF MANTIsSA
DECREM!NT
EXPONENT
ON (l)
*0
INCREMENT
EXPONENT ON OVERflOW
EXPONENT
UNDERFLOW1
YES
NO, EXPONENT
QVERP;LOW?
YES
NO, RESTORE EXPONENT
POSITION
EXPONENT AND
ADD l.OW M·ANT I 88A
RETRIEVE HIGH MANTISSA
RSS
NEGATIVE
JMP
cPS
JMP
JMP
PACK3 JSB
JSB
,PACK,I
MNEG+l
PACK~
.PACK,!
CHOUF
wERRS+6,I
Cl.A
tLB
JHP
PACK4 JSB
JSB
LoA
,PACK,I
OVERFLOW,
YES
NO
CHECK STATUS
ZERO RESUL.T
ON UNDERFL.OW
CHOUF
CHECK STATUS
wERRS+5,I
TEMP+2
RETRIEVE HIGH MANTISSA
JS8 OVFL.W
JHP ,PACKiI
DIVIDE UNpACKED NUMBER BY 10
**
***
**
0315. INVERSE OF MBYl0
0316.0317 0 32 65 061316
0318
0319
0320
0321
0322
0323
53266 002003
0324
53274 000065
53275 1002 00
53276 052000
53277 000066
0326
SET (Al • 100000 AND SKIP
UNDOES RAL AB'OvE
LOA TEMP+2
CPA MNEG
0313.*
0314.
0325
NO
yES
53267 125302
~3210 0 6 4355
53211 045322
t53272 07 5 322
53273 061320
STB EXP
LOA MANT2
(LE,ERA
MPY TENTH
RETURN
ON
ZERO
ADD EXPONENT
Of" 1/10 TO
THAT OF NUMBER
JUSTIFY
LOWER MANTISSA
MULTIPLY BY l/1e
CLE,ELA
SHIFT
LOA MANT1
SZA,RSS
JMPOBY10,I
LOB "2
Aoe
~xp
PAGE 0237 #19
0327
0328
0329
0330
0331
9332
0333
ASCII TO BINARY NUMBER CONVERSION
53300 005640
53301 040001
AOA 1
SEl
0336
53302
53303
53304
53305
53306
533£17
53310
53311
53312
a~~7
"'",",t"
¥''V'W''.~
SEZ
INS
53315 015304
53316 125302
SWP
JSB NORML
.JMp DBYl0,I
0334
0335
u ......... -
033a
0339
0340
002040
006104
075320
12161316
100200
052000
ELB,CLE
040001
CLE,INB
STB MANT2
LOA MANT1
MPY TENTH
AOA 1
041320
ADA MANT2
002040
006004
53314 101100
BACK
ADD IN EQUIVALENT OF
LOWER MANTISSA.
TENTH*2'(_16)
AND ROUND TO 16 BITS
DO
SAME TO
HIGM MANTISSA
PERFORM EFFECTIVE
SUM OF DOUBLE-LENGTH
PRODUCTS
SWAP tA) AND
NORMALIZE
RESULT
(e)
pAGE 0238 *t9
PRINT NAME TABLE
0342 ••
*.
0343*** PRINT NAME TABLE FOR MULTICHARACTER SYMBOLS
0344.*
0345.
0346. BITS 15.9 OF THE 'OCT' WORD ARE THE BASIC OPERATOR
0341* CODES OF THE SYMBOLS. BITS 2." ARE THE LENGT~ IN
THE ASCII VERSION (PRINT
0348. CHARACTERS OF THE SYMBOLS.
0349* NAME) FOLLOWS.
ta350.
0351*
*
0352.*
8353*
0354 53317 032003 MeBOS OCT 32003
AND
ASC
0355 53320 040516
I,AN
OCT 420021
0356 53321 042000
0357 53322 033002
OR
OCT 33002
ASC 1,OR
0358 533 2 3 047522
MIN
0359 53324 034003
OCT 34003
Ase 1,MI
0360 53325 046511
OCT 47000
0361 b3326 041000
OCT 35003
MAX
0362 53327 035003
ASC 1, MA
0363 53330 046501
OCT 54000
0364 53331 054000
0365 53332 036002
UNEGJUAL
OCT 36002
ASC t,c.
0366 53333 036076
0367 53334 A37002
GREATER THAN OR EQUAL
oCT 37002
ASC 1, ••
0368 53335 037075
0369 53336 040002
LESS THAN OR EQUAL
OCT 40002
ASC I, <.
0310 53337 A36015
•••
.*
*.*
0371*
0372.·
MULTICHARACTER UNARY OPERATOR
1tl373.
0374
0375·
0376·
53340 041003
53341 04 7 11 7
53342 052000
NOT
OCT 41003
ASC t,NO
oCT 52000
•••
•
0377.
031S •• STATEMENT TYPES
0379.
0380 53343 042006 STyPS OCT 42006
0381 53344 04 0 523
Ase 3,ASSIGN
53345 051511
0382
0383
53346 043516
53347 043005
53350 052523
•
•
**
USTMT OCT 43005
ASSIGN
..,
USING
ASC 2,USIN
53351 044516
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393
53352
5 3 353
53354
53355
043400
044005
044515
OCT 43400
OCT 44005
ASC 2,IMAG
IMAGE
040507
53356 042400
5 3 357 045003
53360 041517
5336\ 046400
53362 ~46003
53363 046105
53364 052000
OCT 42400
OCT 45003
Ast 1, CO
OCT 46400
OCT 46003
ASC
1,LE
OCT 52000
COM
LET
PAGE 0239 #19
0394
0395
0396
0391
·0398
0399
0400
0401
0402
~403
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0411
0418
0419
0420
0421
53365
53366
53367
53370
53311
53372
53373
!S3374
53375
53376
53377
53400
53401
53402
53403
53404
53405
53406
53401
53410
53411
53412
53413
53414
5 34 15
53416
53417
53420
53421
53422
53423
53424
53425
53426
0422
0423
0424
0425
0426
0427
0428
0429
0430
0431
0432
0433
0434
04 3 5
k1436
0431
53427
53430
53431
53432
53433
53434
53435
53436
53437
53440
53441
53442
53443
53444
5 344 5
53446
53447
53450
53451
5 3 452
53453
PRINT NAME TABLE
047003
042111
046400
050003
0421215
043000
OCT 47003
ASC 1,01
OCT 46400
OCT !50003
Ase 1, DE
OCT 43""0
051003
051105
OCT
046400
052004
043517
052117
053002
044506
054003
043117
0510210
055004
047105
A54124
056005
04351 7
051525
041000
051006
051105
052125
051116
060003
042 5 1 6
042000
061004
051524
047520
062004
0421 0 1
052101
063005
044 5 1 6
12159125
052000
064004
051105
040504
065005
05 0 122
OCT 46400
OCT 52004
Ase 2,GOTO
Ase
51003
D1M
DEF
REM
1; RE
OCT 53002
ASC 1,IF
OCT 54003
GOTO
IF
FOR
ASC 1,FO
OCT 51000
OCT 55004
ASC 2,NEXT
NEXT
OCT 56005
Ase 2,GOSU
GOSu B
OCT 41000
OCT 57006
ASC 3,RETURN
RETURN
EOFOP OCT 60003
Ase t, EN
OCT
42000
END
OCT 61004
Ase 2,STOP
STOP
OCT 62004
ASC 2,DATA
DATA
IOSTS OCT 63005
ASC 2,INPU
OCT 52000
oCT
64004
ASC 2,REAO
INPUT
REAO
OCT 65005
Ase 2,PRIN
PRINT
OCT 52000
OCT 66007
RESTORE
~44516
052000
066007
051105
ASC 3,RESTOR
051524
041522
04240'"
0670,,3
046501
534·54 ",52000
OCT 4241d0
OCT 67003
ASC 1, MA
OCT 52000
MAT
PAGE
0438
0439
0440
0441
0442
0443
024~
#19 ·PRINT NAME TABLE
53455
53456·
53457
53460
5 3 461
53462
53463
53464
5 3 465
070005
043111
046105
051400
071005
041510
040511
0446
0447
53467
53470
5 3 411
041000
072005
042516
052105
051000
073001
0448
534~2
000000-
0444
0445
0449.
0450**
0451*
53466
~3473
0140e2
0453
0454
0455
63474
53475
53476
53477
53500
535°1
53502
53503
5350-4
0475~6
0457
0458
0459
FILlS
OCT 51400
OCT 71005
ASC 2,CHAl
CHAIN
OCT
417000
OCT 72005
ASC
2,ENTE
ENTER
OCT 51000
OCT 13001
OCT
'IMPLIED' LET
"
•
••
•
74002
MISCELLANEOUS OPERATORS
0452
0456
OCT 70005
Ase 2,FII.E
075004
OCT
THEN
ASC 1,OF
OCT 15004
ASC 2,THEN
STEp
OCT 16002
ASC t,TO
oCT 77004
Ase 2,STEP
0521121
042516
076002
05211 7
077004
051524
OF
TO
042520
0460",
0461.· PREDEFINED FUNCTIONS. BITS 13.9 ARE USED
FOR INTERNAL IDENTIfICATION
0462**
0463_
0464 53505 001003 TAB
OCT 1003
TAB
ASC 1,TA
0465 !S3506 0521'-"1
0466 53507 041000
OCT A1000
OCT 2003
0467 !S3510 002003
LIN
0468 53511 046111
ASC 1, L1
OCT 47000
0469 53512 047000
0470 53513 003003
OCT 3003
SPA
0471 53514 051520
ASC I,SP
OCT .0400
0472 53515 040400
3
12104003
PROFS
OCT 4 003
TAN
0473 5 516
0474 53517 052101
ASC 1,TA
OCT 47000
0475 53520 047000
3
21
OCT 5003
005003
ATN
0476 5 5
0477 53522 040524
ASC 1,AT
OCT 47000
0478 53523 047000
3
OCT 6003
EXP
0479 5 5 2 4 006003
0480 53525 042530
Ast 1,Ex
OCT 50000
0481 53526 050000
0482 53527 007003
OCT 7003
LOG
ASC l,lO
0483 S3530 046117
OCT 43400
0484 53531 043400
0485 53532 010003
OCT 10003
ASS
0486 53533 0412'502
ASC 1,AB
0487 53534 051400
OCT 51400
~48a
53535 011003
OCT 11003
SQR
...
••
••
•
PAGE '-'1241 *19
,
PRINT NAME TABLE
0489
53536 051521
53537 05100~
0491 5 3 54 0 012003
0492 53541 044516
0493 53~42 052000
0494 53543 013003
0495 53544 051116
0496 53545 042000
0497 53546 014003
0498· 53547 051507
0499 53550 047000
~49"
0590
53551 015003
05 0 1
0502
0503
0504
53552 0461 0 5
53553 0410((10
53554 016003
53555 052131
53556 050000
5 3 557 011003
53560 052111
53561 046400
53562 0.20003
53563 051511
53564 047000
53565 021003
53566 041517
53567 051400
53570 022003
53571 041122
53572 045400
0505
0506
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
0518.
0519*· MATRIX FUNCTIONS
kJ52e*
0521 ~J573 02400J MATF!
0522 53574 0551 0 5
0523 53575 051000
",524 53576 025003
0525 53577 04151 7
0526 53600 041000
0521 53601 026003
0528 53602 044504
0529 536 0 3 047000
0530 53604 027003
0531 53605 044516
0532 53606 053000
0533 53607 030003
0534 53610 052122
0535 53611 047000
ASC I,S(.I
OCT 51000
OCT 12003
ASC 1,IN
OCT 52000
INT
OCT 13003
RND
ASC
t, RN
OCT 42000
OCT 14003
Ase
OCT 470.00
OCT 15003
ASC t,LE
oCT 47000
OCT 16003
ASC i,TY
OCT 50000
OCT 17003
ASC
SGN
1,SG
1,Tl
OCT 40400
OCT 20003
LEN
TYP
TIM
SIN
ASC 1,51
OCT 47000
OCT 21003
COS
OCT 51400
OCT 22003
ASC 1,8R
BRK
. ASC 1,eo
OCT 40400
•••
* 24003
OCT
ASC l,lE
OCT 51000
OCT 25003
ABC 1,CO
OCT 47000
OCT 26903
ZER
CON
ION
ASC 1,10
OCT 47000
OCT 27003
ASC 1,IN
OCT 53000
OCT 30003
ASC 1,TR
otT 47000
INV
TRN
PAGE 0242 #20
0002
0003
0004
0005
0006
0007
0008
0009*
0010*
0°11·
0012*
00130014*
0015*
115016*
0017*
001S.
0019*
0020*
0021
0022
0023
1tJ024
0025
0026
0027
0028
0029
0030
0031
0032
se33
0034
0035
0036
0037
0038
0039
0040
0041
004 2
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
~..
0055
0056
0057
FORMATTED OUTPUT ROUTINE
04000
54000 000130
54001 000123
54002 000104
54003 000101
54004 177722
54095 000111
.x
S
0
.A
M46
•• 73
ORG 540008
OCT
oCT
OCT
OCT
130
123
104
101
DEC .. 46
DEC 73
THE ADDRESS OF THE FIRST WORD OF THE FORMAT
STRING IS IN (8) UPON ENTRY.
THE FORMATTER
EXTRACTS THE NUMBER Of CHARACTERS IN THE STRING
AND THEN EXTRACTS THE fORMAT SPECIFICATIONS
ONE BY ONE. AS EACH SPECIfICATION 18 EXTRACTED,
IT IS LOADED INTO A STACK, ONE CHARACTER PER
WORD ANO CHECKED FOR SYNTAX ERRORS. THE
TypE OF SpECIFICATION IS DETERMINED AT THIS
TIME AND THE SPECIFICATION IS THEN EXECUTED
FROM THE STACK,
54006 Pl75643
54007 006004
~4010 004066
*FRHT ST8 EC
INS
CLE,ElB
54011 044000
ADB A
54012 003004
54013 071743
CMA,INA
STA CC
54014 075757
54016 2165760
5T8 IFSTR
STB Op
LOB NCH
54017 006002
SZB
54020 026027
54021 161643
54022 010500
AND B377
54015 075747
JMP FHa
LOA Ee,l
050432
026055
CPA .... 538
YES
NO, COMPUTE 1$
OF CHARACTERS
IN .FORMAT
STRING
NULL STRING?
YES, IGNORE IT
INITIALIZE
CHARACTER COUNTER
CONTROL CHARACTER
EXPRESSION COUNTER
START OF PARENTHESIS LEVEL 1
START OF PAR!NTHESIS .L!V.~L a
REPETITION COUNT fOR LEVEL 1
REPETITION COuNt 'OR L£vE~ a
STRING FLAG
DELIMITER sEARCH
IGNORE BLANKS
GET THE
FIRST CHARACTER
DELIMITER FOUND 7
YES
IS CHARACTER A PLUS 7
JMP FMTl
yES
050434
CPA ,+558
54023 041743
54024 071760
54025 002003
~4026 027674
54021 002400
FM0
54030 071743
54031 071746
54034 071745
54035 071763
54036 071764
071646
015536
102101
061644
015540
051747
"27673
026 e 55
050422
ADA CC
STA NCH
SZA,RSS
JMP FMENO+l
eLl
STA
54032 071643
54033 071744
54031
54040
54041
54042
54043
54044
54045
54046
54047
54050
54051
54052
SAVE POINTER TO STRING
MAKE INTO
CHARACTER POINTER
ADD IN STARTING CHARACTER
SAVE STARTING
CHARACTER
SAVE IN FORMAT STRING ADDREss
AND DELIMITER POINTER
.
MAyBE
FMT2
STA
STA
STA
STA
STA
STA
STA
JsB
STO
LOA
JSB
CpA
cc
CONTR
EC
eel
CC2
PCt
PC2
SFLG
OSRCH
FST
MCHAR
Dp
.JMP FMENO
JMP fMTl
CPA .+438
IS IT A MINUS ?
YES
NO, IS IT A NUMBER SIGN
PAGE 0243 #20
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068.
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
1tJ083
0084
0085
0086
0087
FORMATTED OUTPUT ROUTINE
54055 065743
055760
~4057 115162
54060 071746
54061 035644
~4062 061644
54063 102101
54064 01554~
54065 051747
54"166 002001
54067 026073
54070
54071
54072
54073
54074
103101
061747
015540
050433
002001
!:i4075 115163
54076 035747
54077 035743
54100 065743
54101 055760
54102 115162
!S4103 061747
01 55 3 6
003400
0090
t;4113
~7t766
0091
0092
0093
00 9 4
0095
0096
0097
0098
0099
0100
0101
0102
54114 071765
54115 ~71740
54116 071730
54117 071731
0089
0103
0104
0105
0106
0107
01°8
0109
0110
0111
0112
0113
FMTl
~4056
541 0 4
54105
54106
54107
54110
B0S8
RSS
54053 002001
04054 026105
071750
071752
002004
54111 071761
54112 071762
54120
54121
54122
54123
002004
071774
061756
071755
54124 061644
54125 102101
54126 015540
54127 051747
54130 115162
54131 050421
5 4 132 0020Al
b4t33 £126177
54134
~65747
~4135
~4136
001004
A45644
54137 045743
~4140 075743
54141 035644
54142 061743
JMP FMTJ
LDB CC
cpa NCH
JSB FERRS,I
STA CONTR
ISZ FST
LOA FST
STO
JSB MCHAR
CPA DP
RSS
JMP FMT01
CLO
LOA DP
JSB MCHAR
FMT0t CPA .+548
RSS
JSBFERRS+l,I
ISZ oP
ISl CC
LOB CC
cpa
.NCH
.JS8 FERRS, I
FMT3
LOA
JSB
eCA
ST.
STA
INA
STA
STA
STA
DP
DSRCH
DpFlG
EFlAG
NUMt
NuM2
SBD
STA SAO
STA SNFLG
STA NAD
STA NBD
INA
STA REpeT
LDA IFSS
sr. FSP
LOA FST
STO
JSB MCHAR
CpA Dp
JSB FERRS,I
CPA .+42B
RSS
JMP FMT0
LOB DP
eMB,INB
A08 FST
ADS CC
STB CC
FMT16 lSZ FST
LOA CC
YES
NO
END
of
STRING 1
YES, ERROR
SAVE CARR. CONTROL CHARACTER
INCREMENT STRING POINTER
IGNORE BLANKS
GET NEXT CHARACTER
DELIMITER FOUND ?
YES
NO, CHARACTER FOUND 7
GET
THE
DELIMITER
IS IT A COMMA?
yES
NO, ERROR
INCREMENT DELIMITER POINTER
AND CHARACTER COUNTER
ALL CHARACTERS USED 7
YES, ERROR
NO
FINO NEXT DELIMITING CHARACTER
INITIALIZE
FIxED FlAG
FLOATING FLAG
PRE.DECIMAL POINT 0 COUNTER
POST_DECIMAl POINT DCQUNTER
S BEFORE D COUNTER
S AFTER 0 COUNTER
SIGN FL.AG
POST.DECIMAL ZERO COUNTER
PRE-DECIMAL POINT DIGIT COUNTE
. REpETITION COUNT
FORMAT STACK
POINTER
GET NON-DELIMITING
CHARACTER
IGNORING Bl.ANKS
IS IT A DELIMITER 1
YES
IS IT A QUOTE?
YES
NO
RESET
CHARACTER
COUNTER
INCREMENT STRING POINTER
ALL
PAGE
r
~244
#20
FORMATTED OUTPUT ROUTINE
0127
54143 051760
b4144 115164
54145 035743
54146 0,61644
54147 103101
54150 015540
54151 171755
54152 035755
54153 050421
54154002001
54155 ~26141
b4156 035644
54157 035743
54160 061743
0128
54161
0129
0130
54162 026435
54163 061644
54164 071747
54165 015536
54166 ~61644
54167 051747
54170 02643f)
5 4 171 102101
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0131
0132
0133
0134
0135
0136
05176~
0137
0138
0139
54172 015540
54173 061644
01140
0141
0142
54175 026435
54176 115163
54177 0522101
0·143
54200
54201
54202
54203
54204
0144
0145
0146
0147
014~
0149
0150
0151
0152
0153
0154
0155
0156
1rl157
01 5 8
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
54174 055747
026330
050435
026316
050464
026325
54205 015264
b4206 026255
54207 071774
!)4210 035644
54211 061644
54212 051747
54213 115165
54214 102101
54215 015540
54216 ~51747
54217 115165
5422(.1 015264
~4221 026243
54222 061774
t;4223 075774
54224 100200
54225 000371
54226 041774
54227 071774
54230 035644
54231 061644
5423~ 051747
CPA NCH
CHARACTERS USED ?
JSB FERRS+2,! yES, ERROR
ISZ CC
INCREMENT CHARACTER COUNTER
LOA FST
OON'T IGNORE BLANKS
eLO
JSB MCHAR
srA FSP,I
1St FSP
CPA .+42B
GET NEXT CHARACTER
LOAD CHARACTER ONTO STACK
RSS
.JMP
YES
NO
INCREMENT STRING POINTER
AND CHARACTER COUNTER
ISZ
IsZ
LOA
CPA
FMT16
FST
CC
CC
NCH
,JMp FMT46
LOA
STA
JSB
LOA
CPA
JMP
STO
FST
Dp
DSRCH
FST
DP
fMT46
JSB MCHAR
LOA FSl
CPS DP
JMP FMT46
JSB FERRS+1,I
CpA S
.JMP FMT14
CPA .+568
JMP FMT9
CPA E
JMP FMTt3
JaB DIGCK
JHP FMT6
STA R[pCr
INCREMENT STACK POINTER
IS IT A " ?
AL.L
CHARACTERS USED ?
yES
RESET
DELIMITER
POINTER
NEXT CHARACTER
A DELIMITER 7
yES
IGNORE. BLANKS
FETCH A FORMAT STRING CHARACTER
WOULD IT BE
A DELIMITER ?
YES
NO, ERROR
IS IT AN S ?
yES
IS IT A • ?
YES
IS IT AN E?
YES
IS IT A DIGIT?
NO
yEs, STORE IN REpeT
INCREMENT STRING POINTER
LOA FST
NEXT CHARACTER
CPA DP
A DELIMITER ?
JaB FERRS+3,1 yES, ERROR
ISz FST
STO
JsB MCHAR
IGNORE BLANKS
GET NEXT CHARACTER
IS 11 A DELIMITER 1
CpA Op
JSB FERRS+3,I
JSB DIGCK
IS IT A' DIGIT ?
JMP FMT5
NO
LDA REPer
yES,
STB REPeT
MULTIPLY PREVIOUS
MPY .+126
DIGIT BY 10
ADA
REPeT
ADD IN ONES OIGIT
STA
ISZ
LOA
CPA
REPeT
FST
FST
DP
INCREMENT STRING POINTER
NEXT CHARACTER
A DELIMITER 7
PAGE 0245 #20
0169
~170
0171
0172
0173
1i'174
0175
0176
0177
0178
~179
~180
0181
0182
0183
0184
~185
0186
0187
0188
0189
0190
~191
0192
0193
0194
0195
0196
0197
0198
0199
FORMATTED nUTPUT ROUTINE
~4234
54236 (;)51747
54237 115165
5424~ 015264
~4241 002001
54242 115166
b4243 065774
54244 0'06003
54245 115167
54246 044321
!:S4247 006021
54250 115166
~4251 046005
54252 '-"07004
54253 175750
54254 035755
04255
~52PJ00
54256 12126276
~4257 a52003
54260
54261
54262
54263
0126321
052002
002001
026340
54264 065750
~4265 006002
54266 026273
5 4 267 065762
54270 045774
54271 075762
""200
54272 026276
0201
0202
0203
02 0 4
0205
0206
0207
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
~4273
~4274
065761
045774
54275
54276
54277
54300
54301
54302
54303
~75761
022~
0221
0222
0223
V)224
JSB
STO
JSB
CPA
JSB
JSB
11516 5
1'12101
54235 015540
~4233
~4J04
54305
54306
54307
~4310
54311
006404
075774
171755
035644
035755
061644
051747
026313
102101
015540
051747
002001
b4312 026177
54313
54314
54315
04316
54317
54320
b4321
04322
065755
075753
026343
035750
115170
026300
~65646
006003
FERRS+3,I YES, ERROR
IGNORE BLANKS
MCHAR
GET NEXT CHARACTER
DP
IS IT A DELIMITER?
FERRS+3,I
DIGCK
THIRD DIGIT?
RSS
JSB FERRS+4,1
REPCT
SZe,RSS
JSB FERRS+5,I
ADB M73
SSB,RSS
JSB FERRS.4,I
ADS •• 73
CMa,INS
STB FsP,I
ISZ Fsp
FMT6 CPA.X
JMP FMT8
CPA .A
JMP FMT10
CPA 0
RSS
JMP FMT15
LOB DPFlG
SiB
JMP FMT7
LDB NUM2
ADB REPeT
5TB NUM2
JMP FMT8
FMr7 LOB NUM1
ADS REPeT
srB Nu Ml
fMT8 cLa,INS
STB REPeT
STA FSP,I
lSZ FST
ISZ FSP
LOA FST
CPA DP
JMP fMT08
5TO
Jse MCHAR
CPA DP
RSS
JMP FMT0
FMT08 LOB FSp
sra EST
JMP FMT18
FMT9 ISZ oPFLG
JSB FERRS+6,I
JMP FMTB.2
FMT10 LOB SFLG
SlB,RSS
FMT5
YES, ERROR
l.DB
REPeT ZERO 1
YES
NO. GREATER
THAN 721
YES
RESTORE REPeT
SET NUMBER FLAG
LOAD ONTO fORMAT STACK
INCREMENT STACK POINTER
IS NEXT CHARACTER AN X ?
yES
IS IT AN A ?
yES
IS IT A 0 ?
YES
NO
DPFLG • • 11
YES
ADD REPel TO
POST.OECIMAL
DIGIT COUNTER
ADD REPel TO
PRE~DECIMAL
DIGIT COUNTER
REINITIALIZE
REPeT
LOAD CHARACTER ONTO STACK
INCREMENT STRING POINTER
AND STACK POINTER
NEXT CHARACTER
A DELIMITER ?
y~S
IGNORE BLANKS
GET NEXT CHARACTER
Is IT A DELIMITER?
YES
SET ENO OF STACK MARK
oPFLG •
NO
YES
IS SfLG
~1
1
PAGE
r
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245
0246
0247
0248
0249
025a
0251
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
0275
0276
0277
0278
0279
0280
~246
~4323
~4324
54325
54326
!)4327
b4330
!)4331
!54332
~4333
b4J34
54335
54336
54337
54340
54341
54342
54343
!)4344
54345
54346
54347
54350
b4351
54352
54353
54354
54355
54356
54357
54360
54361
54362
54363
54364
54365
54366
54367
~4370
5 4 371
#20
FORMATTED OUTPUT ROUTINE
035646
026276
035752
115171
026300
065761
045762
006003
035766
065766
006003
035765
026300
050427
027433
FMT13
FMt14
FMT15
115172
061756
071755
003400
071774
041646
002003
026500
040355
002021
026502
061761
041762
002003
026457
015542
027673
115173
eJ71316
071736
015412
071322
061316
002021
54372 026414
5437~~ 060434
54374 071266
54375 007104
54376 061316
54377 003000
~4400 002041
!)4401 026411
54402 002004
54403 102301
54404 026411
54405 000065
~4406 005500
54407 ~35322
b4410 000000
5 44 11 071316
04412 071736
FMT18
15Z SFLG
JMP FMT8
ISl EFLAG
JSB FERRS+7,I
JMP FMT8+2
LOB NUMI
ADB NUM2
SZ8,RSS
tSl SBD
LOB SBo
SlB,RSS
!5Z SAD
.JMP FMT8+2
CPA ,+50B
JMP FMT95
JSB FERRS+8,I
LDA IfSS
srA FSP
CCA
STA REPeT
ADA SFLG
SZA,RSS
JMP FMT24
ADA • .,2
SSA,RSS
JMP FMT25
LDA NUMI
ADA NUM2
SlA,RSS
JMP FMT20
JSB fVEXp
yES, INCREMENT IT
NO
EFLAGa ... 11
NO
YES
ANY D'S FOUND?
NO, INCREMENT BEFORE COUNTER
ANY S'S BEFORE AD?
NO, INcREMENT AFTER tOUNTER
I~ CHARACTER A ( ?
YES
NO, ILLEGAL CHARAClER
REINITIALIZE
STACK POINTER
AND
REPCT
SFLG • 1 ?
YES
SFLG • 3 ?
YES
NO, ANY
D'S
FOUND 1
NO
EVALUATE EXPRESSION
.JMP FMEND
NONE FOUND
JsB FERRS+9,I STING... ERROR
STA MANTI
IF NUMBER
srA NUMwl
SAVE HIGN MANTISSA
JSB .FLUN
UNPACK NUMBER
STA Exp
AND SAVE THE EXPONENT
LOA MANTI
IS THE NUMBER NEGATIVE ?
SSA,RSS
JMP FMTJl
NO
YES, SET SIGN TO MINUS
LDA 1+55B
STA ~IGN .
AND
CMB,CLE,INB
COMPLEMENT
LOA MANTt
eMA
OVERFL.OW FROM
SEZ,RSS
LOW MANTISSA ?
JMP FMT31-J
NO
INA
yES, OVERFLOW FROM
SOS
HIGH MANTISSA ?
JMP FMT31 .. 3
NO
CLE,ERA
YES, SHIFT RIGHT
ERB
AND
BUMp EXPONENT
IsZ EXP
NOP
STA MANTi
STA NUMWl
SAVE HIGH MANTISSA
PAGE 0247 #20
FORMATTED OUTPUT ROUTINE
0289
0290
0291
~4413 026416
54414 06~432
54415 071266
~4416 075320
54417 075737
54420 061322
54421 ~71647
54422 0064~4
54423 "75643
54424 060670
54425 071726
0292
:>44 2 6 0~·""""
0"'0'"
0281
0282
0283
0284
0285
0286
0287
0288
.JMP .... 3
fMT31 LOA .+53B
STA SIGN
STB MANT2
STB NU~W2
LOA E"XP
STA EXPW
CLB,INa
STB
LOA
STA
LOA
EC
IHB
HBP
EFLAG
SZA,RSS
k'J293 54427 002003
JMP FMT62
0294 54430 027210
LOA OPflG
0295 54431 061750
SZA,RSS
0296 544 32 002003
0297 54433 027047
JMP FMT45
0298 54434 026551
JMP FHT30
0299.*
**
0300*.* OUTPUT A LITE:RAL STRING *.*
0301*·
**
0302 ~4435 061756 FHT46 LOA IFSS
0303 . 54436 071755
STA FSp
0304 54437 161755
LDA FSp,I
CPA
031215 54440 050421
,+428
0306 54441 027332
JMP FMT90
0307 54442 050375
CPA .+166
LOA ,+128
0308 54443 060371
54444
050376
0309
CPA ,+17B
RSS
54445 002001
0310
JMP FMT47
0311 54446 026454
0312 54447 060402
LOA ,+238
JSB OUTeR
0313 54450 015452
0314 54451 060374
LOA .+15B
121315 ~4452 015452
JSB OUTeR
CLA
0316 54453 002400
FMT47 EQU
0317 54454
121318 54454 015452
JSB OUTeR
~319
!:>4455 035755
ISZ FSP
JMp FMT46+2
0320 54456 026437
0321 ••
0322.** OUTPUT A 8LANK SPECIFICATION
0323**
0324 54457 161755 FMT20 LOA FSP,I
0325 54460 01212021
SSA,RSS
0326 54461 12126465
JMP FMT21
0327 ~4462 07177 4
STA REPCl
0328 ~4463 035755
lSZ FSP
0329 5 44 6 4 t61755
LOA fSP,I
•
0330
~4465
0331
0333
"'334
0335
h4466
54467
54470
54471
54472
~336
~441j
0332
"".
052~00
002~01
115172
015532
003400
071774
061755
SET SIGN
TO Pl.US
SAVE LOW MANTISSA
AND EXPONENT
SET EXPRESSION
FOUND FLAG
HOLDING BUFFER
POINTER
EfL.AG
SET
"I
YES
DPFL.G
SET
YES
NO
RESET
STACK pOINTER
TOP OF STACK
A .. ?
YES, DONE WITH THIS SPEC
IS IT A PSEUDO-LINE'fEO 1
YES, MAKE IT A LINEFEfD
IS IT A PSEUDO CARRIAGE RETURN ?
YES
NO
OUTPUT AN X-OFF
OUTPUT A
CARRIAGE RETURN
AND A NuLL,
NO, OUTPUT THE CHARACTER
INCREMENT STACK POINTER
NO
**
***
**
LOAD TOP OF STACK
IS IT A NUMBER 1
NO
YES, STORE NUMBER IN REPeT
INCREMENT STACK POINTER
LOAD NEW TOP OF STACK
IS IT AN )( 1
FMT21 CPA .x
yES
RSS
JSB FERRs ... 8,I NO, ERROR
JSB QUTBl
CCA
REINITIALIzE
REPeT
SIA REPeT
LDA FSp
END
PAGE 0248 #20
FORMATTED oUTPUT ROUTINE
~337
54474 051753
033S
54475 027332
54416 161755
0340 54477 026457
0341.*
0342... OUTPUT A STRING
0343.*
0339
0344
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
54500
54500 ~15542
54501 027673
54502
545~2 2e6405
54503 115200
54504 075643
54505 161755
54506 002021
54507
54510
54511
54512
026513
071774
035755
54521 002001
54522 115173
54523 035755
54524
54524 015364
54525 061571
54526 050375
54527 06 0 371
54530 050376
0372
54531 002001
0373
54532 026540
54533 060402
54534 015452
54535 060374
54536 015452
0374
0375
0376
0377
0378
0379
0380
0381
~4537
0385
0386
b4546 051753
0387
~4547
0382
0383
0384
LOA FsP,I
RSS
~JMP
027332
FMT27
JSB aUTBl
JMP FMT28
FMT27 CPA .A
RSS
JS8 FERRS.9,I
ISl FSP
FMT05 EQU
JSB FSCH
LOA BLANK
•
CPA ,+168
LOA .+128
CPA .+178
RSS
JMP
LOA
JSB
LOA
FMT29
.+238
oUTeR
,+158
.JSB OUTeR
FHT29
54540 015452
54541 035774
f:i4542 026524
54543 01213400
54544 071774
54545 061755
yES
LOAD
NE~
TOP OF STACK
**
***
**
CPA • X
002400
54540
FMTge
FSP,I
FMT20
JSB EVEXP
EVALUATE NEXT EXPRESSION
JMP FMEND
NONE fOUND
FMl25 EQU *
CLB,INB;RSS
SET THE EXPRESSION
JSB FERRS+14,I
STB EC
FOUND FLAG
LOA FSP,I
LOAD TOP OF STACK
SSA,RSS
IS IT A NUMBER ?
JMP FMT26
NO
STA REPeT
YES
ISl FSP
INCREMENT STACK POINTER
161755
54520 052003
OF STACK
EST
FMT24 EQU •
54513 052000
b4514 002001
54515 926520
54516 015532
54517 026543
CPA
JMP
LOA
JMP
FMT28
CLA
EQU *
JsB OUTeR
ISl REpCT
JMp FMT05
ceA
STA REPeT
LOA FSP
CPA EST
.JMP FMT90
JMP FMT25
0388 04550 0265~2
0389.*
0390.*. PRtPARE AN INTEG~R FOR OUTPUT
0391.*
0392 ~4551 0~2400 FMT30 CLA
LOAD NEW TOP OF STACK
IS IT AN X ?
YES
NO
IS IT AN A ?
YES
NO, EHHOR
INCREMENT STACK PoINTER
FETCH STRING CHARACTER
NO, FETCH A BLANK
IS IT A PSEUDO-LINEFEED ,
YES, MAKE IT A LINffEEb
IS IT A PSEUDO CARRIAGE RETURN ?
YES
NO
OUTPUT AN X.OFF
OUTPUT A
CARRIAGE RETURN
AND A NuL.l.
OUTPUT CHARACTER
REpel usEO up· "
NO
REINITIALIZE
REPel
END of
STACK ?
NO
**
*.*
**
INITIALIZE
PRE~OECIMAL
POINT
PAGE 0249 #20
0393
0]94
0395
0396
0.397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424·
0425
0426
0427
0428
0429
0430
FORMATTED OUTPUT ROUTINE
b4552 071324
54553 "'03400
54554 041322
54555 002021
54556 026565
54551 060437
b4560 171726
54561 035726
54562 003400
54563 071733
54564 026576
54565 015526
54566 071324
54567 071733
54570 015422
b4571 040437
54572 171726
54573 035726
54574 035324
54575
54576
54577
54600
54601
54602
54603
54604
54605
54606
026570
061761
041733
flI65766
045765
006092
026612
065266
054432
026612
54607 040356
b4610 006404
54611 075740
54612 210 2 0 2"
54613 027570
b4614
54615
54616
54617
071732
01553 0
0020'01
027570
0431 54620 064670
0432 54621 075726
0433**
0434***
DIGIT COUNTER
STA EXPON
CCA
ADA EXP
SSA,RSS
JMP FMTJ2
LOA .+60B
STA HBP,I
lSZ HBP
CCA
EXPONENT ZERO OR NEGATIVE?
NO
YES, LOAD A
ZERO
INCREMENT BUFFER POINTER
NUMBER OF BUFFER WORDS
STA NHBW
IS ONE
.JMP FHT33
fMT32 JSB DTLI
STA
srA
EXPON
NHBW
JSB GETOG
ADA .+608
STA
HBP,I
lSZ HBP
ISZ EXPON
JMP FMT32+3
LOA NUMl
ADA NHBW
LOB SBD
ADS SAD
SlB
JMP FMT43
LOB SIGN
CPS .+538
JMP FMT43
ADA ... 1
CL.B,INB
STB SNFLG
FMT43 SSA
JMP FMT80
5TA NBLK
JS'B ROUND
RSS
JMP FMT80
LOB tHB
5TB HBp
SAVE NUMBER
OF DIGITS
GET DIGIT
CONVERT TO ASCII
STORE IN HOLD BUFFER
ALL DIGITS
FOUND '1
NO
COMPUTE NUMBER OF
LEADING BLANKS
ANy S'S
FOUND ?
yES
NO, NUMBER POSITIVE 1
YES
NO, SAVE ROOM
FOR
PRINTING SIGN
NUMBER OF BLANKS NEGATIVE 1
YES
NO
ROUND NUMBER IN BUFFER
NO ROOM FOR CARRY FROM ROUND
REINITIALIZE
HOLO BUFFER POINTER
**
***
...
OUTPUT NUMBER FROM HOLDING BUFfER
0435**
0436 04622 161755
0437 54623 052001
0438 546 2 4 002001
0439 54625 026645
0440 54626 035755
0441 54627 061740
0 4 42 54630 002002
0443 b4631 Vl26777
0444 b4632 065766
((}445 54633 ~06002
0446 54634 026642
0447 54635 061266
0448 54636 015452
FMT34 LOA FSP,I
CPA'S
RSS
JMp FMT36
ISZ FSp
LDA
SZA
LOAD TOP OF FORMAT STACK
IS IT AN S ?
YES
NO
INCREMENT STACK POINTER
SNfLG
SNFl..G
=0
?
JMP FMT59
LOB SBO
NO, IGNORE THE S
yES, ANy S'S BEFORE AD?
SZB
JMP FMT.35
y~s
LOA SIGN
JSB OUTeR
NO, OUTPUT S'IGN
IMMEDIATELY
PAGE 0250 #20
9449
0450
121451
121452
121453
04f>4
121455
FORMATTED OUTPUT ROU1INE
f)4637 060361
LDA ,+2
54640
54e41
54642
54643
54644
STA SNFLG
121717421
026717
0B741210
075740
026622
54645 002021
JMP FMT59
FMTl5
eee
ST8 SNFLG
JMP FHTJ4
FHT36 SSA,RSS
JMP FMT06
STA REPel
121460
54646 026652
54647 011774
54650 035755
54651 161755
54652 052000
0461
54653 002001
RSS
0462
54654 026661
54655 015532
JMP FMT37
JSB OUTBL
9456
0457
0458
0459
·0463
121464
121465
0466
0467
0468
0469
0470
0471
121472
0473
0474
0475
0476
0477
9478
121479
9480
0481
9482
0483
121484
0485
0486
0487
0488
0489
0490
0491
0492
0493
0494
0495
0496
0497
0498
121499
0500
0501
0502
9503
0504
54656 003400
54657 071774
54660 026777
54661 052002
54662 0212001
54663 026753
5 4 66 4 03 5755
54665 00341210
SET 8NfLG TO 2
ISZ Fsp
LDA Fsp,l
FMT06 CPA .X
etA
STA REPeT
JMP FMT59
FMT37 CPA 0
RSS
.JMP FMT57
151 fSP
SET SNFLG TO -1
TOP OF STACK A NUMBER 1
NO
yES, STORE IN REPeT
INCREMENT STACK PoINTER
LOAD NEW TOP of STACK
Is TOP AN X .,
YES
NO
REINITIALIZE
REPeT
TOP Of STACK AD?
YES
NO
INCREMENT STACK POINTER
007400
12145732
075732
026746
54677 061732
eCA
ADA
SSA
JMP
LOA
JSB
eCB
AOB
STB
JMP
fMT07 LOA
54700 12102020
5SA
54701 026713
5471212 003400
04703 071732
JMP FMT56
yES
CCA
NO, DECREMENT
BLANK COUNT
~4666
54667
54670
54671
54672
54673
54674
54675
54676
041732
00212120
026677
061571
"'15452
NBLK
NUMBER of BLlNKS > 0 1
FMT07
NO
YES, OUTPUT A
BLANK
DECREMENT
BLANK
COUNT
BLANK
OUTCR
NBLK
NBLK
FMT40
NBLK
STA NBLK
NUMBER OF BLANKS
LEss THAN ZERO 1
54704 007400
54705 055740
eea
cPS SNFLG
SNFLG • • t ?
54706
54707
54710
54711
JMP FMT02
yES
ADB SNFLG
SNFLG • 1 ?
026717
045740
006003
. SlB,RSS
026746
54712 026723
JMP FHT40
JMP FMT58
54713 007400
54714 045740
!)4715 006002
54716 026723
54717 061266
5472~ 015452
54721 060361
!:>4722 071740
54723 0b0670
FHT56 ceB
ADS SNFLG
f>4724 04Q1435
54725 051726
04726 026777
SZB
JMP FMTbB
fMT02 LOA SIGN
JSB OUTeR
LOA .+2
STA SNFLG
fMT58 LOA IHH
ADA .. +46
CPA HSP
JMP FMT59
yES
NO
SNFLG • 1 ?
NO
yEs, OUTPUT
SIGN AND
SET SNFLG
TO 2
E.ND
OF
BuFFER ?
PAGE
0505
0506
0507
ra508
0509
0510
0511
121512
0513
0514
0515
0516
0517
0518
~251
54727
54730
54731
54732
!;4733
b4734
!s4735
54736
!)4737
5474Q1
54741
#20
FORMATrlD OUTPUT ROUTINE
002002
026746
002404
"'51750
026746
003400
041324
0010
0011
0012
0013
0014
~4763
0P.:6020
0015
0016
54764
fj4765
54766
54767
54770
54771
54772
54773
54774
54775
54776
04777
55000
55001
026770
044356
0060",2
026774
0003
0004
012105
"006
0007
0008
. 0009
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0~32
0033
0034
0035
0036
0037
0038
0039
0040
0041
CPA DP"'-LG
JMP FMT40
ceA
AOA ExPON
LOB IHB,!
CPB ,.608
54742 164670
54743 054437
54744 002400
!l4745 071324
54746 035774
54747 026665
54750 003400
54751 071774
54152 026777
54753 065750
54754 006002
54755 027003
54756 050435
54757 002001
54760 027003
54761 035755
54762 065740
0519
0001
0002
LOA HBP,I
JSB OUTeR
ISZ HBP
LOA EFLAG
SZA
JMP FMT40
CLA,INA
161726
015452
035726
061752
061266
015452
060361
071740
060435
015452
035750
061755
"'51753
027332
55002 026622
55003 035755
55004 015452
55005 061755
55006 051753
55007 027025
55010 161755
55011 002021
55012 027016
55 01 3 035755
55014 071774
55015 161755
55016 052000
CLA
STA
fMT40 lSI
JMP
CCA
STA
JMP
ExPON
REpCT
FMT37.4
REPeT
FMT59
FMT57 LDB DPFlG
SZB
JMP
CPA
RSS
JMP
ISZ
LOB
SSB
FMT42
.+56B
FMT42
Fsp
SNFLG
JMP FM00
ADB .. -1
SZB
JMP FH01 .
LDA SIGN
JSB OUTeR
LOA .+2
STA SNFLG
fM01 LDA ,+568
JSB OUTeR
IsZ OpFLG
FMT59 LDA FSp
CPA EST
JMP FMT90
JMP FMTJ4
FMT42 ISl Fsp
JSB OUTeR
FMT76 LOA FSP
CpA EST
JMP FMT78
L.OA FSP,I
SSA,RSS
JMP fM02
ISZ FSP
STA REPel
LOA FsP,I
FM02 CPA.x
FM00
OUTPUT A
DIGIT
INCREMENT HOLD BUFFER POINTER
IS THIS A
FLoATING poINT SPECIFICATIoN 1
NO
YES, HAS THE DECIMAL POINT
BEEN FOUND YET ?
YES
NO, DECREMENT
DECIMAL
IS THE
NUMBER ZERO?
yES, ZERO ExPONENT
EXPONENT
REpel • 0 .,
NO
YES,REINITIALIZE
REPel
FIXED POINT
SPECIFICATION 1
NO
TOP OF STACK A DECIMAL POINT ?
YES
NO
INCREMENT STACK pOINTER
SNFI..G • • 1 1
YES
NO, • 1 ?
NO
yES, OUTPUT
SIGN
SET SNFLG
TO 2
OUTPUT
DECIMAL POINT
INCREMENT FLAG TO sHow D.p. FaUN
END OF
STACK
yES
NO
INCREMENT STACK pOINTER
OUTPUT AN E
END OF
STACK ?
yES
NO, TOP of
STACK A NUMBER 1
NO
YES, INCREMENT STACK POINTER
STORE NUMBER
GET NEw TOP OF STACK
IS IT AN x ?
PAGE 0252 #21
0042
0043
0044
0045
0046
0047
0048
1lI049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
55017
b5020
55A21
55022
55023
55024
55025
55026
b5027
55030
55031
55032
55033
55034
55035
55"'36
55037
55040
55041
55042
55043
55044
55045
55(.'146
0065**
0066.**
0088
0089
0090
0091
0092
0093
0094
0095
0096
002001
115171
015532
003400
071774
027005
060434
065324
006020
001005
~60432
075324
015452
061324
006400
100400
000371
rtl40431
044437
075324
~15452
061324
015452
027332
RSS
yES
JSB FERRS+7,1 NO, ERROR
JSB DUTBl
ceA
RESET
STA REPeT
REPel
JMP FMT76
FMT78 LOA .+55B
LOB EXPON
SSB
CMB,INB,RSS
LDA , .. 538
5TB EXPON
JSB OUleR
LOA ExPON
CLB
002400
071324
071730
051322
027161
065322
00602 0
027156
015526
071324
071731
015422
040437
171726
035726
035324
027062
065762
006003
~5072 027126
55073 060670
55074 040435
55075 051726
55076 027116
55077 e6f)730
5510~ 0024((10
55101 006003
551~2 027106
!'55103 044356
OUTPUT
AN
EXPONENT
SIGN
COMPUTE
DIY .+12B
ADA .+608
ADS .+608
STB EXPON
JSB
LOA
JSB
JMP
OUTeR
ExPON
OUTeR
FMT90
PREpARE FIXED POINT NUMBER
0067**
0068 55047
0069 55050
0070 55051
0071 55052
0072 55053
0073 55054
0074 55055
0075 55056
0076 55057
0077 55060
0078 55061
0079 55062
0080 55063
0081 55064
0082 55065
0083 55066
0084 55067
0085 55070
0,,86 55071
0087
FORMAT TEO OUTPUT ROUTINE
FMT45 CLA
STA EXPON
STA NAO
CPA ExP
JMP FMT61+3
LOB ExP
SSB
JMP FMT6t
JSB DTL!
STA EXPON
STA NBO
JSB GETDG
FM03
ADA .+608
STA HBP,I
ISZ HBP
ISZ EXPON
JMP FM03
FMT50 LoB NUM2
SZB,RSS
JMP FMT51
LOA IHB
ADA .+46
CPA HBP
.IMP FM04
L.DB NAD
CLA
SZ8,RSS
JMP *+4
ADS .-1
EXPONENT'S
l~)lS
DIGIT
OUTPUT IT
OUTPUT l'S OI&IT
**
***
** SET
PRE~DECIMAL POINT
DIGIT COUNTER
ZERO COUNTER
zERO ExPONENT ?
YES
NO
EXPONENT. NEGATIVE
YES
LOAD
PRE~OECIHAL
POINT
DIGITS
INTO
HOLD
BUFFER
ANY D'S AFTER
DECIMAL POINT 'I
NO
END
OF
BUFFER 'I
YES
LEADING
ZEROES
AFTER
DECIMAL
POINT
PAGE 0253 #21
0097
0098
0099
0100
0101
0102
0103
9104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
21122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
55104
55105
55106
55107
55110
55111
5511'55113
55114
55115
55116
55117
h5120
55121
55122
551 2 3
55124
55125
55126
55127
55130
55131
55132
55133
55134
55135
55136
55137
55140
55141
55142
55143
55144
55145
55146
55147
55150
55151
55152
55153
55154
55155
55156
55157
55160
55161
55162
FORMATTED OUTPUT ROU1INl
075730
002001
015422
040437
171726
007400
045762
075762
035726
027071
061762
003004
071774
015532
003400
071774
041755
071755
061731
041761
065766
045765
006002
027142
065266
054432
027142
040356
006404
075740
002020
027570
071732
007400
045730
006020
015530
002001
027570
060670
071726
026622
015524
061324
071730
065761
006~H~3
55163 027070
55164 061762
55165
55166
55167
55170
55171
55172
55173
002003
027201
054360
002001
027201
061765
041766
STB NAO
RSS
JSB GETDG
ADA ,+608
srA HBP,I
eee
FM04
ADS NUM2
srB NUM2
ISZ HBP
JMP FMT5""1
LOA NUM2
CMA,INA
STA REPel
JsB DUTal
ceA
STA REPel
ADA FSP
STA Fsp
FMT51 LOA NBO
ADA NUMI
LOB SBD
ADS SAD
SZB
JHP
LOB
CPB
JMP
FMT54
SIGN
,+538
FMT54
ADA .-1
CLB,INS
STB SNFlG
fMT54 S8A
JMP FMT80
srA NBLK
eee
ADB NAD
SSB
JSB ROUND
YES
LOAD
POST-DECIMAL POINT
DIGITS
INTO
HOLD
BUFF'ER
OUTPUT BLANKS
TO
FILL FIELD
REINITIALIZE
REPeT
CORRECT
STACK pOINTER
caMPUl NUMBER
OF LEADING BLANKS
ANY S'S
FOUND 'I
YES
NO, NUMBER
POSITIVE ?
YES
NO, LEAVE ROOM FOR
SIGN TO BE PRINTED ANO
SET SNFI..G TO 1
NUMBER OF BLANKS NEGATIVE ?
YES
NO,
NEXT DIGIT A
LEADING ZERO 1
NO, ROUND NUMBER
, RSS
JMP
LoA
STA
JMP
6
FMT 1 JSB
fMT80
IHB
HBp
FMT34
MTGl
NO ROOM FOR CARRy FROM ROUND
RESET HOLD
BuFFER POINTER
GO OUTPUT THE NUMBER
l.OA EXPON
srA NAD
LOB NUM1
SZB,RSS
JMP FMT50
LOA NUM2
SZA,RSS
JMP FMT55
CPB ,+1
ANY D'S FOUND
BEFORE THE DECIMAL POINT 1
NO
YES, ANY D'S FOUND
AFTER THE DECIMAL POINT 1
NO
YES, ONLY ONE OF THEM 7
RSS
JMP FMl55
LOA SAD
ADA SSD
NO
YES, ANY SIS 'OUNO 7
PAGE 0254 #21
FORMATTED OUTPUT ROUTINE
0161
0162
0163
55174
55175
55176
55177
55200
55201
55202
55203
55204
55205
55206
0104
b5207 027070
0153
0154
0155
0156
0157
0158
0159
0160
002002
021201
061266
05 0 434
027070
060437
171726
035726
003400
041761
071761
SZA
JMp FMT55
SIGN
CPA ,+558
JMP FMTS0
FMT55 LOA ,+60 S
STA HBP,I
ISZ Hap
ceA
ADA
STA
JHP FMi50
L.OA
~165.·
0166 •• *
PREPARE fLOATING POINT NUMBER
0167.*
0168 55210
0169 55211
0170 55212
0171 55213
0172 55214
!d17l 55215
0174 55216
0175
0176
0177
0178
0179
l'I~2400
071324
051322
027216
015524
015526
003004
55217 071324
55220 061761
55221 ~41762
55222 071741
55223 061766
041765
002002
027246
061266
050432
027246
0189
55224
55225
55226
55227
55230
55231
55232
55233
55234
55235
0190
55236 075761
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208
55237
55240
55241
55242
55243
0180
0181
0182
0183
1d184
0185
0186
0187
01813
007400
~5252
JMP
LOA
CPA
JMP
ceB
FMT61
SIGN
,+538
FMT67
ADB NUMI
~"6020
SSB
027570
003400
041741
071741
002kH~3
027570
075740
061762
003004
064365
0440A0
006020
55253 027273
55254 061741
b5255 040347
55256 002020
55257 027265
b5260 064350
NEGATIVE 1
YES
NO, LOAD PRE~DECIHAL POINT
ZERO INTO BUFFER
DECREASE NUMBER OF
D'S AVAILABLE FOR sIGN
AND BLANKS BEFORE DECIMAL PT
*.
***
*.
INITIALIZE DECIMAL
EXPONENT
ZERO EXPONENT 'I
yES
SAVE DECIMAL EXPONENT
GET
TOTAL NUMBER
OF DIGIT8
ANY S'S FOUND?
SZA
045761
55244 006404
55245
55246
55247
55250
55251
FMT62 CLA
STA EXPON
CPA EXP
JMP .... 3
JSB MTGI
JSB OTl1
CMA,INA
STA ExPON
LOA NuMl
ADA NUM2
STA rOTDG
LDA sBD
ADA SAD
yES
NO, NUMBER
JMP
FMT80
STe NUMl
ctA
ADA TOTOG
sr A TOTDG
SZA,RSS
JMP FMT80
ClS,INB
8T8 SNFLG
FMT67 LOA NUM2
CMA,INA
LDB .+6
ADB 0
YES
NO, NUM8ER
POSITIVE 'I
YES
NO, LEAVE ROOM
FOR SIGN
NONE '1
YES
NO, DECREMENT
TOTAL NUMBER OF 0'$
AVAILABLE FOR SIGN
AND BLANKS BEFORE DEC, PT.
SET SNFLG
TO 1
NUM2
> 7
?
SSB
JMP FMT70
LOA TOTDG
YES
YES, TOTAL NUMBER OF D'S
> 7 ?
ADA
SSA
JMP FMT68
LOB
NO
PREPARE TO GET
PAGE 0255 #21
FORMATTED OUTPUT ROUTINE
0209
0210
t)5261 075742
~5262 01£12004
0211 ~5263 071732
0212 55264 2127314
0213 ~5265 061741
0214 ~5266 003004
0215 55267 071142
0216 55270 0216400
1£1217 55271 2175132
0218 55272 021314
0219 !l5273 "'65761
0220 55274 006002
0221 55275 040356
0222 55276 071742
0223 ~5277 006002
0224 55300 044356
0225 55301 075732
0226 55302 061142
0221 55303 040435
0228 55304 002021
0229 55305 027314
0230 55306 071774
0231 55307 015532
0232 5531'" 041755
0233 55311 071755
023455312 062004
0235 55313 071142
0236 55314
0237 55314 003400
0238 ~5315 071774
0239 55316 015422
0240 55317 040437
0241 55320 17 1 7 2 6
0242 55321 ~35726
0243 55322 035742
0244 55323 021314
0245 55324 015530
0246 55325 002001
0247 55326 021570
0248 55327 060670
0249 55330 071726
0250!l5331 026622
0251**
0252**. HANDLE END
STB DCTR
INA
STA NBLK
JMP FMT72
FHT68 LOA TOTDG
CMA,INA
STA DCTR
55332
55333
55334
55335
55336
55337
55340
t>5341
55342
55343
55344
002400
071646
061743
051760
002001
"'27357
061744
002002
115174
065643
006003
DIGITS
PREPARE TO GET
CLB
TOTOG DIGITS
SET NUMBER OF BLANKS
SZB
ANy D'S BEFORE
DECIMAL. POINT 1
STB NBLK
JMP FMT72
FMT70 LOB NUMl
TO ZERO
ADA •• 1
srA DCTR
yES, INCREMENT NUMBER OF DIGITS
SZB
A08 ... 1
SET
ST8 NBLK
LOA DCTR
ADA • +46
SSA,RSS
JMP FMT72
STA REPer
JSB DurBl
ADA FSP
STA FsP
LOA M46
STA OCTR
fMT12 EQU *
eeA
STA REPeT
JS8 GETOG
AOA .+60 8
STA HBP,I
ISZ HaP
ISZ DCTR
JMp FMT72
JSB ROUND
~REPARE
TO GET NUM2 DIGITS
BLANK
COUNT
MORE THAN
FOURTY-SIX
DIGITS NEEDED 1
NO
yEs, OUTPUT NECESSARy BLANKS
CORRECT
STACK POINTER
SET DCTR
TO 46
REINITIALIZE
REPeT
CONVERT TO ASCII
STORE IN HOLD BUFFER
INCREMENT SUFFER POINTER
ALL DIGITS GOT 'I
NO
yEs, ROUND THE NUMBER IN BUFFER
RSS
JMP FMT80
LOA IHB
STA HBp
.JMP FMT34
OF SPECIFICATION
0253 ••
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
SEVEN
NUMBER OF BLANKS
BECOMES TOTDG • 1
NO ROOM FOR CARRY FROM ROUND
RESET
BuFFER POINTER
**
*.*
*.
CLA
STA SFLG
STRING FLAG
tOA CC
ENF OF
CPA NCH
FORMAT STRING 1
RSS
YES
JMP FMT92
NO
LOA eCl
yES, pARENTHESIS
SlA
BALANCED 1
JSB FERRS+!0,I NO, ERROR
FMT9t LOB EC
ANy EXPRESSIONS
5lB,RSS
USED?
FMT90
PAGE
~256
0265
0266
0267
0268
0269
0270
0271
0272
0273
0274
55345
55346
55347
55350
55351
55352
f)5353
55354
05355
55356
!lI275
121276
55357
5536'-'1
0277
0278
0279
55361
55362
55363
0280
0281
0282
0283
0284
55364
55365
55366
55367
55370
55371
55372
55 3 7 3
55374
0285
0286
121 2 81
0288
0289
0290
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
ta3l7
0318
0319 .. •
#21
FORMATTED OUTPUT ROUTINE
027673
065751
006"'03
027673
002400
071643
071743
061757
071747
026040
061747
IA31"1
015540
050430
027470
071727
050433
027373
050436
002001
115163
015534
PJ35743
061743
051760
55375
55376 027424
S5377 0 3 57 4 7
55400 015536
55401 102101
55402 061644
55403 01554 0
55404 051747
55405 0020U11
55406 027415
55407 061743
55410 051760
55411 027424
55412 061747
55413 103101
55414 015540
55415 050445
55416 115162
55417 050436
55420 027424
05421 050430
55422 027470
55423 026105
55424 061727
55425 050433
55426 115162
55427 061743
55430 051760
55431 027340
55432 027372
~320*.*
JMP FMEND
LOB EDSTA
SIB,RSS
JMP FMEND
CLA
STA EC
STA CC
LDA IfSTR
STA DP
JMP FMT2
LOA Dp
CLO
JSB MCHAR
CPA .+518
JMP FMT91
STA LCH
CPA ,+548
JMP FMT93+1
CPA .+578
RSS
NO
END OF
STATEMENT?
YES
yES, CLEAR EC
RESET
DELIMITER POINTER
GET THE
DELIMITING CHARACTER
NOT IGNORING BLANKS
IS IT A RIGHT PARENTHESIS
yES
NO, SAVE THE CHARACTER
IS IT A COMMA 'I
yES
IS IT A SLASH 1
yES
JSB FERRS+l,I NO, ERROR EXIT
FMT93 JSB OUTCL
tSl CC
INCREMENT CHARACTER COUNTER
All CHARACTERS
LOA CC
CPA NCH
USED 1
JMP FMT94
YES
ISZ DP
INCREMENT DELIMITER POINTER
JSB DSRCH
FIND NEXT DELIMITER
STO
IGNORE BLANKS
LOA FST
JSB MCHAR
NEXT CHARACTER
CPA DP
IS IT A DELIMITER
yES
RSS
JMP
LOA
CPA
JMP
LOA
CLO
JSB
FM11 CPA
JSB
CPA
JMP
CPA
JMP
JMP
FMT94 LOA
CPA
JSB
LOA
C,PA
JMP
JMP
FMl1
CC
NCH
NO
AI.L CHARACTERS
FMT94
yES
Dp
MCHAR
,+54
FERRS,I
USED 'I
NO, GET DELIMITING
CHARACTER
IGNORING BL.ANKS
IS IT A COMMA
.+ 57 8
YES, ERROR
NO, A SLASH
,+518
NO, A RIGHT PARENTHESIS ?
FMr94
FMT91
FMT3
LCH
,+548
FERRS,I
CC
yES
yES
LAST CHARACTER
A COMMA ?
NO, ALL CHARACTERS
NCH
FMT09
USED 'I
yES
FMT93
NO
HANDLE GROUPS OF SPECIFICATIONS
.. *
***
PAGE 0257 #21
0321*·
0322 55433
0323 55434
0324 55435
0325 55436
0326 55437
0327 55440
0328 55441
0329 55442
0330 55443
0331 55444
0332
0333
FORMATTED OUTPUT ROUTINE
003400
041755
051156
002001
115175
061744
002002
021454
0337
55452 075763
0338
"339
0340
55453 02611215
55454 061745
55455 01212002
0341
55456 115176
55457 035644
55460 0121 3 400
55461 041757
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
0372
0373
0374
0375
0376
55462
55463
55464
55465
55466
55467
55470
55471
003000
041644
071745
065774
075764
02611215
061764
002003
55472 021530
55473 040356
55474 12171764
55475 002003
55476 021505
55477 065745
55500
55501
55502
55503
55504
55505
55506
55507
55510
55511
075143
045757
015747
015536
026105
002400
0 7 1745
011646
035743
06174.3
55512 051760
11516 3
12135747
55513
55514
55515
55516
55517
55520
55521
015536
102101
~61644
015540
12151747
LOA eCI
yES, FIRST LEVEL
5ZA
OF PARENTHESIS 'I
NO
INCREMENT STRING POINTER
FIND CHARACTER COUNT
uP TO AND INCLuDING
JMP
ISl
CCA
ADA
eMA
ADA
FMT96
FST
IfSTR
FST
STA CC'1
LEFT
PARENTHEsis
LOB REPeT
STB pct
065774
0343
0353
JSB FERRS+l1,I NO, ERROR
071744
0342
.*
SECOND
CHARACTER
IN STACK ?
RSS
003000
041644
0335
0336
0344
0345
0346
0347
0348
03 49
0350
0351
0352
CpA IF'SS
035644
003400
55445 041751
55446
55447
55450
55451
0334
FMT96 CCA
ADA FSp
FMT9f)
JMP
LOA
SZA
STORE REPETITION
COUNT
FMTJ
PROCESS STRING
SECOND L.EVEL
CC2
OF PARENTHESIS
FERRS+12,I NO, ERROR
JSB
ISZ FST
ceA
ADA IFSTR
eMA
AOA PST
STA
LDB
STS
JMP
CC2
REPeT
PC2
FMT3
FMT97 LOA PC2
SZA,RSS
JMP FMT98
ADA _",I
STA PC2
SIA,RSS
JMP FMT99
LDB CC2
STB CC
ADS IFSTR
STB oP
JSB DSRCH
JMP FMT3
FINO CHARACTER COUNT
UP TO AND
INCL.UDING
LEFT
PARENTHESIS
STORE REPETITION
COUNT
SECOND LEVEL OF
PARENTHESIS 1
NO
YES, REPEAT IT
RESET
CHARACTER COUNTER
AND STRING POINTE.R
REPROCESS PARENTHESIZED STRING,
CLEAR SECOND
STA CC2
LEVEL POINTER
STA SFLG
AND STRING FLAG
ISZ CC
INCREMENT CHARACTER COUNTER
LOA CC
ALL CHARACTERS
CPA NCH
USED 1
JSB FERRS+l,I YES, ERROR
ISZ DP
NO, POINT TO DELIMITER
JSB DSRCH
FINO NEXT DELIMITER
5TO
GET NExT
LOA FST
NON.BLANK
JaB MCHAR
CHARACTER
CPA Dp
IS IT A DELIMITER ?
FHT99 CL.A
PAGE 0258 #21
0377
0378
0379
0380
0381
0382
0383
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393
0394
0395
0396
0397
0398
0399
0400
0401
0402
0403
13404
0405
0406
0407
0408
0409
0410
((J411
0412
0413
0414
0415.*
FORMATTED OUTPUT ROUTINE
55522 (1102001
55523 021362
55524 065743
55525
55526
55527
55530
55531
55532
55533
55534
55535
55536
55537
55540
55541
55542
55543
55544
055160
115174
027357
061763
002003
115177
040356
071763
002003
027545
065744
075743
045757
075747
015536
026105
~5545 002400
55546 071744
55547 071646
55550 035743
55551 035747
55552 061743
55553 051760
55554 027343
55555 015536
55556 t021~1
55557 061644
55560 015540
55561 051747
55562 002001
55563 027362
55564 065743
55565 055760
55566 027343
55567 027357
0416...
RSS
yES
JMP FMT92+3
MAyBE
LOR CC
ALL
CPB NCH
CHARACTERS USED ?
JSB FERRS+10,I YES, ERROR
JMP FMT92
NO, INVESTIGATE THE CHARACTER
FMTge LOA PCt
FIRST LEVEL
SZA,RSS
OF PARENTHESIS 1
JSB FERRS+13,I NO, ERROR
ADA .-1
YES, REPEAT IT
STA pel
5ZA,RSS
.JMP FMT00
LOB eCI
RESET
STB CC
CHARACTER COUNTER
ADB IFSTR
STB DP
JS8 OSRCH
JMP FMTJ
REPROCESS PARENTHESIZED STRING
FMT00 CLA
CLEAR FIRST
STA eel
STA SFLG
IsZ CC
ISZ
LOA
CPA
JMP
JsB
5TO
LOA
JSB
CPA
DP
CC
NCH
FMT91
DSRCH
FST
MCHAR
OP
RSS
JMP
LOB
CPB
JMP
JMP
FMT92+J
ec
NCH
FMT91
FMT92
OUTPUT NUMBER IN DEFAULT FORMAT
0417.·
0418 5557(}J
0419 55571
0420 55572
0421 55573
0422 55574
04 2 3 55575
0424 55576
0425 55577
0426 55600
0427 55601
0428 55602
0429 55603
0430 55604
0431 55605
0432 55606
061736
071316
066737
07 53 20
061647
~71322
00240£1
CJt71324
071752
051322
027605
015524
015526
003000
071324
FMT80
LOA NUMWl
STA MANTt
LOB NUMW2
STS MANT2
LOA EXPW
STA EXP
CL.A
EXPON
EFLAG
CpA EXP
JMP .+3
JsB MTGl
JSB DTLl
STA
STA
CMA
STA
EXPON
LEVEL POINTER
AND STRING FLAG
INCREMENT CHARACTER COUNTER
poINT TO DELIMITER
ALL
CHARACTERS USED ,
yES
NO, FIND NEXT DELIMITER
GET NEXT
NON.BLANK
CHARACTER
IS IT A DELIMITER 1
YES
NO
ALL
CHARACTERS usED ?
yES
NO, INVESTIGATE THE FOUND CHARAC
••
.*
**.
LOAD
SAVED
NUMBER
CLEAR
DECIMAL EXPONENT
sET FLOATING poINT
ZERO EXPONENT .,
YES
PAGE 0259 #21
FORMATTED OUTPUT ROUTINE
0433
~5607
0434
0435
55610 060610
!:S5611 071726
55612 160351
seet3 071141
55614 818422
55e15 840437
55616 171726
55&17 135126
55620 035141
55621 027614
0436
0437
0438
0439
0448
04.1
0442
0443
015534
0444
0445
0446
0441
0448
0449
55622 060361
55623 171732
55624 815530
0458
0451
04152
0453
0454
0455
55630 060670
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0461
0468
0469
0410
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482
0483
0484
0485
0486
0487
55525 880000
55626 061266
55627 015452
55631
55632
55633
55634
55135
55636
55637
55640
55641
811726
161728
015452
035726
060435
015452
060352
071741
161726
55642 015452
55643 035726
55644
55645
55646
55647
035741
"27641
060464
55651
55652
55653
55654
55655
865324
116020
081005
015452
55650 060434
068432
075324
55656 015452
55657 061324
55660
55661
55662
55663
55664
55665
LDA IHB
STA HBP
LDA .-6
aTA TOTDeI
Jae GETDG
ADA ,+808
STA H8P,I
tSZ HBP
ISZ TOTDG
JMP ·•• 5
LDA .+2
STA NBLK
JaB ROUND
NOP
LOA SIGN
JaB OUTeR
LDA IHB
STA HBp
LDA
JIB
liZ
LDA
JIB
LDA
STA
LDA
H8p,I
OUTCR
HBP
,+568
OUTeR
,-5
TOTDG
HBP,I
OUTtR
JIB
lIZ HBP
ISZ TOTDG
JHP *.4
LOA E
JSB OUTeR
LDA .+558
LOB EXPON
sse
CMB,IN8,RSS
LDA ,+f538
ST8 EXPON
JIB OUTtR
LDA EXPON
0064210
CLB
100400
DIV .+128
000371
040431
ADA .+608
044437
075324
ADa .... 608
55666 015452
55667 061324
55670
55671
55672
55673
55674
55675
55676
JIB OUTCL
015452
015534
021332
061746
002002
027700
015534
ST8
JSB
LOA
JSB
JSB
JMP
fMEND LOA
EXPON
OUTeR
EXPON
OUTeR
OUTCl
FMT90
CONTR
SZA
.JMP .+3
JSB OUTCL
RElET HOLD
SUfFER poINTER
PREPARE TO GET
SIX DIGITS
GET
SIX
DIGITS
8ET NBLK TO
WHERE IT wONT CAUSE TROUBLE
ROUND NUMBER IN HoLD BUFFER
'OutPUT
IIGN
INITIALIZE
HOLD BuFFER PQINTER
OUTPUT
DIGIT
tNCR!MENT HOLD BUFfER POINTER
OUTPUT
DECIMAL POINT
PREPARE TO OUTPUT
'IVE DIGITS
OUTPUT
FIVE
DIGITS
OUTPUT
AN E
OUTPUT
EXPONENT
SIGN
GET BOTH ExPONENT DIGITS
CONVERT BOTH
TO ASCII
OUTPUT 10'S DIGIT
OUTPUT l'S DIGIT
yES, CONTROl.
CHARACTER FOUND ,
YES
NO
pAGE
0488
0489
049"
0491
04g2
0493
0494
0495
0496
0407
0498
0499
05""
0501
0502
0583
0514
0505
0506
026~
#21
FORMATTED OUTpUT ROUTINE
JMP XECIA,I
CPA ,+53 8
55677 124762
55100 (JJ50432
RIa
55701 002001
55702
S!703
5!5704
55705
55706
55701
55710
JMP FH1111
021714
LDA .+238
16141212
015452
860314
JIB OUTCR
LDA .... 158
JIB OUTeR
915452
882400
015452
~ei'11 882401
55112 01157S
&:ll., • '2
"""".l~
55714
55715
55116
55117
55720
55121
124762
050434
082001
124762
96e371
015452
124762
eLl
J8B
OUTCR
JMP
CPA
Ria
JMP
LDA
JSB
JHP
Xft,A,l
.+558
eLA
ST. CHRCT
FHII
xEC1A,I
+128
OUTeR
)eEC1A,I
18 CARRIAGE
CONTROL A +
NO
YES
OUTPUT AN X-OFF
AND A
CARRIAGE RfrURN
AND A
NULL.
IS IT A MINUS 7
YES
OUTPUT A
. LINEFEEO
pAGE 0261 #22
FORMATTER uTILITV ROUTINES
ORG
0002 56ri10~
0003**
0004...
0005.*
0006*
0001*
0~e8*
0009*
••
MAKE A NUMBER LESS THAN 1
0012
0013
0014
0015
0016
0017
0018
0019*
0020*
0°21*
0022.
56000 0153Ql0
56001 061322
560212 003026
56003 026006
56004 035324
!S6005 025525
56006 015J~2
56007 125524
.*
#MTGl JS8 MBY10
LOA EXP
MULTIPL.Y
CMA,SSA,INA,SIA
NUMBER BY 10
JMP .... 3
UNTIl. IT IS
GREATER
ISZ EXPON
THAN 1
JMP MTG1+1
DIVIDE By 10
JSB DBY10
JMP MTG1,1
DIVIDE AN UNPACKED FLOATING POINT NUMBER
IN MANTI, MANT2 AND EXP BY 10 UNTIL IT IS
LESS THAN 1
0023*
0024 5 6 010 0 6 1324
0025 56011 065322
0026 56012 001004
0027
0028
0029
0030
***
MULTIPLY AN UNPACKED FLOATING POINT
NUMBER IN MANTt, MANT2 AND EXP BY 10 UNTIL
IT IS GREATER THAN 1. THEN DIVIDE BY 10
0011.
0011
~60"'0a
5 6 013 006021
56014 125526
~6015
071324
0031
!)6016 015302
56017 003400
0032
56020 041324
0033
56"21 026011
#lDlll LOA EXPON
DTL10 LOB EXP
(MB,INS
SSB,RSS
JHP DTI..1,1
STA EXPON
JSB DBYl0
ceA
ADA ExPQN
JHP DTL10
DIVIDE
NUMBER
BY 10
UNTIL
IT IS
lESS
THAN
1
PAGE 0262 #22
FORMATTER UTILITY ROUTINES
.*
••
0035*.
0036*.* ROUND AsCII NUMBER *.*
0037**
0038*
0039* NUM~E::R STORED ONE ASCII DIGIT PER WORD IN
004"* HOLDING BUFFER. ROUTINE GETS NEXT DIGIT
0041* AND ROUNDS IF IT IS >- 5.
IF THERE IS A CARRY TO .N EXTRA DIGIT AND NO
0042*
OTHERWISE RETURN
0043* ROOM EXISTS, EXIT IS TO (P+l),
0044* TO (P+21.
0045.
GET NEXT DIGIT
0046 56022 A15422 MRUNO JSB GETDG
ADA ... 5
IS IT >- 5 1
0047 ~6023 040352
SSA
0048 56024 002020
JMP ROUND,I
0049 56025 125530
DECREMENT HOLD
eCA
v.l 0 50
56026 003 400
0051 56027 041726
BUFfER POINTER
ADA HBP
LOAD NEXT DIGIT
0052 ti6030 164000 ROND! LOB 0,1
56031 006004
0053
INS
INCREMENT IT
CPS
WAS
IT A 9 ?
56032
054452
.58
"'054
0055 56033 026036
JMP .+J
YES
STa 0,1
NO, SAVE IT
0056 56034 1740"'0
JMp ROUND,I
0057 !)6035 125530
AND RETURN
OVERL.AY
00 5 8 56036 064437
LOB .+608
518 0, I
A 0
0059 56037 174000
CpA tHB
LEADING DIGIT ,
0060 56040 050670
JMP *+3
YES
0061 S6~41 026P144
ADA .-1
NO, DECREMENT POINTER
0062 56042 040356
JMP ROND!
0063 b6()143 "'26030
0064 56044 064440
OVERLAY A
LDB .... 618
STB 0,1
ONE
0065 56045 174000
0066 56046 064437
LOAD
LOB ,+606
0067 56047 175726
STa Hap, I
EXTRA ZERO
0068 56"'50 065752
FLOATING POINT
LOB fFLAG
SPECIFICATION?
0069 ~605t 006002
SZB
NO
.IMP ROND2
0070 56052 026056
INCREME~T EXPONENT
ti605~i 035324
0071
lSZ ExPON
0072 56054 000000
NOP
JHP ROUND,I
0073 5 6 05b 125530
0074 56056 007400 RON02 eeB
IS NBLK
ADS NBLK
0075 56057 045732
L.Ess
SSB
THAN 1 1
0076 56060 006020
0077 . 56061 035530
15Z ROUND
NO, RETURN TO (P+2)
STe NBLK
YES, KEEP DECREMENTED
0078 56062 075732
JMP ROUND,I
1.1079 56063 125530
VALUE
PAGE e263 #22
0081*·
0082*·0083*.
0084*
~085*
02186.
0087*
0088*
0089.
0090
0091
0092
0093
0094
((1095
0096*
0097.
0098*
0099
0100
01211
0102
0103
0104
0105
0106
0107
0108
FORMATTER UTILITY ROUTINES
OUTPUT BLANKS
••
•••
••
OUTPUTS THE NUMBER OF BLANKS SPECIFIED
BY THE NEGATIVE OF REPe T• THE STACK POINTER
IS INCREMENTED AND REPeT HAS THE VALUE ZERO
UPON EXIT.
56 0 6 4 '03 5755
56065 061571
56066 015452
56067 035774
56070 ~26065
~6071 125532
#OTBl ISZ
LOA
JSB
ISZ
.JMP
.JMP
FSP
BLANK
OUTCR
REpeT
··3
OUTBl,1
INCREMENT STACK POINTER
OUTPUT A
BLANK
REpel UsED UP 1·
OUTPUT X.OFF, CARRIAGE RETURN, LINE FEED
56072
56072
56073
56074
56075
56076
#OTCL
060402
015452
060374
015452
060371
56077 015452
5610~
002400
071570
56102 125534
~6101
EQU •
LOA .+23B
JSB OUTeR
LOA .+158
JSB OUTeR
LOA .+128
JSB OUTeR
ClA
STA CHRCT
JMP OUTCt.,I
PAGE
~264
0110..
0111...
0112 ••
1t1113.
#22
FORMATTER UTILITY ROUTINES
SEARCH FOR A DELIMITING CHARACTER
0115*
0116.
0117*
0118.
~119.
0125
~126
0127
0128
0129
~6t((J3
061747
~71644
56104
56105 103101
56106 015540
56101 050433
5 6 11 0
56111
56112
56113
56114
125536
050436
125536
050430
125536
0130
0131
0132
t)6115 QJ35747
56116 035743
0133
56120 065743
56121 0557613
56122 125536
0134
0135
0136
••
BEGINS SEA~CH AT CHARACTER Dp. WHEN A COMMA
OR SLASH IS FOUND, OP IS SET TO POINT TO THAT
CHARACT~R.
CHARACTERS ARE COUNTED ANO IF THE
END OF THE STRING IS ENCOUNTERED BEFORE A
DELI~ITER IS FOUND, A FLAG IS SET
0114.
0120
0121
0122
0123
0124
.*
•••
06117 061747
56123 026106
0137 ••
0138.**
#OSCH LOA OP
STA FST
SER1
CL.O
.ISB MCHAR
CPA .... 548
JMP OSRCH,I
CPA .... 578
JMp OSRCH,I
CPA .... 518
JMP DSRCH,I
lSI DP
ISZ CC
LOA OP
LOB CC
CPS NCH
JMP DSRCH,I
JMP SERl
MASK OUT A CHARACTER
0139 ••
0140*
••
SET STRING POINTER TO
FIRST CHARACTER
DON'T IGNORE BLANKS
GET STRING CHARACTER
IS IT A COMMA ?
YES
NO, IS IT A SLASH ?
yES
NO, IS IT A RIGHT PARENTHESIS 7
YES
NO, INCREMENT DELIMITER POINTER
AND CHARACTER COUNTER
ALL CHARACTERS USED 1
YES
NO
*.*
*.
0141* . GET NEXT CHARACTER FROM FORMAT STRING
0142* ADDRESS OF CHARACTER IS IN (A). CHARACTER IS
0143. RETURNED IN CA)
0144.
SHIFT ADDRESS RIGHT
CL.E,ERA
0145 ~6124 000065
0146 56125 164000
LOB 0,1
LOAD WORD FROM STRING
SEZ,RSS
HIGH CHARACTER 7
0141 56126 002041
0148 t)61'27 005727·
YES, SWITCH POSITIONS
BL.F,BLF
NO
LOA 1
l1149 56130 060e01
0150 S6131 010.500
AND 9377
MASK OUT ~OW CHARACTER
SOs
SHOULD BLANKS BE IGNORED ?
0151 56132 102301
JMp MCHAR,I
0152 ~6133 125540
CPA BLANK
YES, IS CHARACTER A BL.ANK 1
0153 56134 051571
JMP MCHRl
YES
0154 56135 026143
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
56136 040317
56137 002~21
S6140 040450
56141 040470
56142 125540
56143·
56143 035644
06144 061644
56145 051747
06146 125540
56147 025541
ADA M96
SSA,RSS
ADA MJ2
ADA .140
JMP MCHAR,I
MCHRl EQU *
ISZ FST
LOA fST
CPA DP
JMp MCHAR,I
.JMP MCHAR ... 1
NO
LOWER CASE?
YES
NO
INCREMENT STRING POINTER
NEXT CHARACTER
A DELIMITER ?
yES, RETURN
IGNORE THE.BLANK
PAGE 0265 #22
FORMATTER UTILITY ROUTINES
0166.·
0167**.
EVALUATE fXPHtSSION
••
••
•••
01613 ••
0169*
0170* EXTRACT THE NEXT VARIABLE TO BE OUTPUT BY THE fORMATTER. IF
~171.
la172*
017 3 *
~174.
NnNf FOUND, EXIT TO (P.l). IF A
(P+2) AFTER PREPARING THE STRING
QUANTITY IS FOUND, EXIT TO (P+3)
EOSTA IS SET TO 0 IF THIS IS THE
0175*
~176
_,.."7"7
VJl"
56150
0178
56151 (:'102020
!)6152 026212
56153 065611
56154 055334
b6155 125542
56156 0034(1\0
56157 071470
56160 "15336
56161 165332
b6162 006020
0179
0180
0181
0182
"183
0184
0185
0186
0187
5615~~
061754
0188
0189
56163 026177
t)J190
56165 035470
56164 015376
0191
~6166
0192
0193
0194
56167
56170
56171
56172
56173
56174
b6l75
56176
0195
0196
01 9 7
0198
0199
0200
0201
0202
0203
0204
02 0 5
0206
0207
0208
0209
0210
"'211
0212
0213
0214
0215
0216
0217
0218
0219
0220
~6177
026153
061611
05-1334
0024~0
071751
104200
100001
~35542
026210
060355
5620A
56201
56202
56203
015344
011256
~6204
055334
006400
075751
!)62 0 5
56206
56207
56210
56210
56211
075410
065611
065410
035542
125542
56212 035470
56213 026244
55214
56215
56216
56217
56220
56221
065611
055334
125542
161611
010566
002003
!)6222 125542
!)6223 002020
.EVEp EQU •
LOA FFLG
SSA
JMP
LOB
CPS
JMP
EVEX5
TEMPt
PRGCT
EVExp,I
CCA
STA EOL
JSB FORMX
LOB OPDST,I
SSB
JMP
JSB
ISZ
JMP
LOA
CPA
CLA
STA
fVEX3
OPCHK
EOL
EVEX0
TEMPt
MAT
PRINT?
YES
END OF STATEMENT1
yES
TURN OFF
FUNCTION FLAG
EVALUATE FORMULA
IS IT A
STRING VARIABLE ?
yES
NO, UNSTACK VALUE ADDRESS
A FUNCTION '1
LAST VARIABLE?
PRGCT
EDSTA
Dl.D 1 , 1
ISZ EVEXP
.JMP EVEX4
EVEX3 l.OA .-2
JSB PSTR
STA TEMP4
STa
LOB
CPS
CLB
STB
LOB
EVEX4 EQU
ISZ
JMP
EVEX5 ISZ
JMP
EVEX6 LOB
CPS
JHP
LOA
STRING IS FOUND, EXIT TO
FOR OUTPUT. I' A NUMERIC
WITH THE NUMBER IF CAl AND (8).
LAST VARIABLE IN THE STATEMENT,
TPRME
TEMPt
PRGCT
fOSlA
TPRME
•
EVEXP
EVEXP,I
ELCNT
EVEX7
TEMPt
PRGCT
EVExp,I
TEMpt,I
YES
NO
NO, LOAD NUMBER
RETURN TO (P+J)
PREPARE
PRINT
STRING
ENO OF
STATEMENTl
yES
NO
RETURN TO
(P.2)
FINISHED CURRENT MATRIX?
NO
YES
END OF STATEMENT?
yES
GET NEXT OPERAND
AND OPDMI<
SZA,RSS
JMP EVEXP,I
5SA
NULL
YES
NO, FUNCTION?
PAGE 0266 #22
0224
56224
56225
!:)6226
!S6227
0225
5623 0
0226
0227
0228
!)62Jl
0221
0222
0223
0229
0230
0231
56232
56233
56234
56235
56236
"'£,,\"1.7
OJ"',.."
5624 0
FORMATTER UTILITY ROUTINES
JMP
ALS
ADA
ADA
LOB
ADS
STB
JSB
LOA
026262
0131000
041573
040356
16 4000
044355
075572
015470
161572
035572
SYMTB
.-1
A,I
.-2
SBPTR
VCHK
SBPTR,l
ISZ SBPTR
MPY SBPTR,I
1002021
101512
03557 2
56241 003004
EVEX8
56245 051470
ISZ SBPTR
CMA,INA
STA ELCNT
1SZ TEMPt
EVEX7 CCA
CPA ELCNT
0238
56246 002001
RSS
0239
0240
56247 026253
023 2
0233
0234
0235
0236
0237
~241
56242 071470
56243 035611
56244 003400
56250 061611
56251 051334
56252 002400
56253
0242
0243
0244
56253 071751
0245
56254 104200
0246
56255 10.1572
5 6 256 035572
56257 035572
0247
024tt
0249
0250
0251
56260 035542
56261 026210
56262 003400
56263 071470
0252
0253
~6264
015336
56265
~15376
0254
56266 026214
0255.
0256.
MESSAGE BUFFER
0251*
0258 56267 000000 MSQHD
0259 5664t
0260.
0261 56641 020134 RYRSL
0262 ~6642 160000 TBITS
0263 56643 1202100 B120K
0264 56644 130000 Bil0K
0265 00222
B160K
0266 56645 000137 BKSPC
0267 !:)6646 000000 TTA
",268 56647 000000
T18
0269 t)6650 0000e0 TTE
0270 56651 000000 TOG
0271 ~6652 000000 TADR
SAVE POINTER TO
DYNAMIC DIMENSIONS
VALIDATE ARRAy ELEMENTS
SET POINTER
TO FIRST ELEMENT
OF ARRAY
WHIL.E COMPUTING
NUMBER OF
EL.EMENTS
BUMP TO NEXT OPERAND
LAST
ELEMENT?
yES
JHP EVEX9
LOA TEMPI
CPA PRGCT
CLA
EVEX9 EQU *
STA EDSTA
OLD SBPTR,I
EYEX8
YES
NO, LOAD
BASE ADDRESS
OF ARRAy
NO
END OF
STATEMENT1
YES
NO
GET NUMBER
ISZ SBPTR
ISZ SBPTR
BUMP TO
NEXT ELEMENT
ISZ EVEXP
JMP EVEX4
EXIT
ST. EOl
JSB FORMX
JsB OpCHK
.JMP EVEX6
TURN OFF
FUNCTION FLAG
EVALUATE FUNCTION
REMOVE ARGUMENT FROM TEMp STACK
GET NEXT OPERAND
ceA
BSS
MESBN
BSS 0
ASC 1 ,
\
OCT 160000
OCT 120000
OCT 130000
EQU INI
OCT 137
BSS t
BSS !
ass 1
ass 1
BSS 1
PAGt
~267
#22
POWER FAIL/RESTART ROUTINE
~273* THE POWER FAIL/RESTART ROUTINE INSURES A LOGICAL SHUTDOWN AND
0274* RESTART OF THE SYSTEM IN CASE OF POWER FAIL.
0276
~277
~27~
56653 000000
56654 1022P4
56655 026726
POW
8FC 4
JMP POWl
INTERRUPT ENTRY POINT,
TEST FOR FAILOR RESTART.
TRANSFER TO RESTART SECTION.
SAVE REGISTERS TEMPORARILY.
NOP
0279*
0280* POWER FAIL SECTION.
1t1283
",284
~285
0286
0287
ir1288
1&289
0290
!:)6656
104400
OST POWl
56657
56660
56661
56662
56663
56664
56665
56666
56667
057055
005520
ERB,BLS
102201
SOC
56670
56671
56672
56673
06614
56675
56676
062653
043107
INS
006004
002400
053054
026670
(LA
CPA
JMP
STA
JMP
073054
026724
POWfF
*+3
POWFF
POW2
IF POWFF WAS NONZERO,
INTERRUPT WAS FROM POWER FAIL.
~291.
VJ292
0293
0294
0295
0296
0297
0298
LDA POW
ADA powDt
TEST FOR INTERRUPT OUT OF
RESTART SECTION.
SSA
002020
026677
043110
002020
026724
JHP *+4
ADA POW02
S8A
JMP POW2
56677 077061
56700 104200
56701 051055
56702 104400
56703 057057
S6704 062653
~6705 0731362
56706 102501
56707 073065
STB PQWEO
OL.D POwl
NORMAL FAIL.
FAILED FROM RESTART SECTION,
~299.
0300
~301
0303
0304
0305
~306
itt307.
0308 56710
V1309.
~.j10
56711
';;6712
~311
0312 56113
0313 56714
0314 ~6715
STA POWP
LIA 01
STA POWSW
102211
030361
102212
030363
102214
SFC CH2
lOR +2
sFC 1SC
lOR .... 4
SFC CLOCK
tOR ,+208
STA POWFL
CLB
SFC ~
030377
~b717
073063
V)317
56720
0064~0
((1318
~6721
~319
t'6722
1022l~0
~67~1Qt
1r1320
0321*
~6723
077052
~322
~6724
1067~4
1,1323
~6725
102036
REGISTERS,
LOA POw
CLA
~6716
FAILURE.~SAVE
DST POWAB
00240H1
111315
0316
NORMAL
l.OB STF0
srB POWND
puw2
CLC 4
HLl OEATH+J6R.
L.OAD AND SAVE
THE SWITCH REGISTER
GET FLAGS FOR ALL DEVICES THAT
CAN INTERRUPT.
CHECK SEND CHANNEL
BIT 1 FOR CHANNEL 11
CHECK FLAG ON CONSOLE TTY.
BIT 2 FOR TTY
CHECK TIME BASE GENERATOR
SIT 4 FOR TIME BASE GENERATOR
IF INTERRUPT IS SET, STORE
STf 0 INTO POWNOJ ELSE NOP,
PAGE 0268 #22
0325*
REST~RT
~327
~6726
POwER
0329
~J30
0331
0332
POWI
ei673J 002004
56734 073055
56135 060362
~6136 102614
56137 063063
~333
0334
0335
~336
0331
0338
{~339
~340
ROUTINE
SECTION
102704
b6727 063065
~673~ 102601
56731 060366
56732 013056
~328
FAIL/REST~RT
8TC
LOA
OTA
LOA
SrA
INA
SrA
LOA
OTA
LOA
STA
4
POWSw
OJ1
,+1
POWJ
POWI
.+3
CLOCK
POWFL
POWF
RESET FOR
PO~ER
FAIL.
FETCH AND RESTORE
THE SWITCH REGISTER
INITIALIZE J AS A POWER FAIL POI
T!R AND 1 AS OMA POINTER,
RESET CLOCK FREQUENCy.
COpy FLAGS,
t)C140
56141
56142
56143
56744
073064
066642
010363
002003
106612
56746
56147
56750
56751
001300
073064
002020
026763
RAR
STA POWF
JMP POW5
FLAG SET.
56752
t)6753
56754
56155
06756
56757
56160
56161
56762
063055
LOA POWI
ADA CLF0
STA *+1
PRODUCE eLF INSTRucTION.
043012
072755
000000
063055
050373
027021
031055
026145
LOB T8ITS
AND ,+4
SZA,RSS
OTB 1SC
IF ASR.35 FLAG WAS CLEAR, SET UP
THE CORRECT STATE OF THE A8RJ5
. OTHERWISE LEAVE IT SET IN THE
INPUT STATE ...
0341
0342*
0343* NOW TEST THE INDIVIDUAL 10 FLAGS. IF A FLAG WAS CLEAR, WE PERFORM
0344. A eLF OPERATION, IF IT WAS SET, WE TAKE STRONGER ACTION,
0345.
0346 56145 063064 POW4 LOA POWF
GET "ORO CONTAINING FLAGS, THE
0347
0348
~349
0350
l~J51
0352
*
~353
0354
~355
0356
0357
0358
0359
0360
ONE TO BE TESTED IS IN BIT 0 AND
I. ITS SELECT CODE.
5SA
NOP
Pow6
LOA POWI
CPA
JMP
ISZ
JMp
.+148
POW14
POWI
POW4
EXECUTE elF,
TEST fOR DONE.
CHECK FOR CLOCK LOCATION
DONE.
OTHERWISE, SUMP I AND LOOP.
~361*
0362* FLAG WAS SET. TEST IF ROUTINE HAD ACTUALLY BEEN
0363* ENTERED. IF so, PERFORM A DUMMY INTERRUPT TO PRE0364· VENT IT FROM BEING REENTERED.
~365.
0366
~367
V:l368
56163 067066
06764 047~56
56765 164 001
0369
~6766
~370
56767 067066
5677~ 04 7 0 55
56771 003000
06772 140001
56773 002021
56774 026756
56775 044364
56776 140001
56777 002020
57000 026756
0371
",372
~313
"'374
0375
~376
0377
~378
1.1379
If}j8~.
POW5
LOB poWrB
ADS POwJ
LOB 1,1
lOA 1, I
160001
LDB POWTS
ADS POWI
CMA
ADA 1,1
COMPUTE LOCATION OF RETURN AD.
DRESS OF HIGHEST PRIORITV ROU~
TINE NOT YET TESTED.
GET ITS RETURN ADDRESS
POINT TO RET.ADR. OF TEST ROUTIN
TEST FOR INTERRUPT OUT OF THAT
ROUTINE.
SSA,RSS
JMP POW6
ADB5
ADB .+5
NO--INTERHUPT WAS PENDING.
BUMP INDEX REGISTER
ADA 1,1
5SA
JMP POW6
NOT INTERRUPTED,
PAGE 0269 #22
~381*
POWER FAIL/RESTART ROUTINE
PERFORM DUMMY INTERRUPT TO PREVENT AN UNWANTED ONE LATER,
0382*
~383
~7001
062775
~384
57002
173~55
0385
57003 063055
57004 043111
510"5 013007
57006 020520
57007 102700
5101121 102100
S1011 013013
57012 103100
0386
0387
0388
03 8 9
0390
0391
0392
0393
57013 106700
57014 160001
57015 173055
~394
0395
0396
0397
S7016 063055
57017 073056
51020 026756
0398
0399*
~~00.*.
~401.*.
040~
~7021
0405
0406
0407
57021
51022
57023
57024
57025
57026
S7027
0412
0413
~414
~415
~416
~7032
~70Jj
0417
~418
~419
042'0
0421
0422
0423
STA
1°3710
06~073
102714
S7A34
5703b
57036
57037
57040
102712
062642
102612
037054
063112
067062
~1041
1142~5
57042 002400
~7~45
0427
SET UP STC AND CLC.
STefa
POWST
CREATE CLC.
SET DEVICE CONTROL
ENABLE INTERRUPT CAUSING AD85 TO
COMPUTE ADR, OF CORRECT INT, VAL
DISABLE INTERRUPT.
DISABLE DEVICE.
GET CORRECT INTERRUPT CONTENTS
STORE IN INTERRUPT CELL.
uPDATE INTERRUPT CHAIN
POINTER,
GO TEST NEXT DEVICE.
84000
o
"powCL
pOW14 EQU *
8TC CHt,e
LDA SvCH2
OTA CH2
STF CH2
LDA POwFL
AND .+2
SZA,RSS
STC CH2,c
CLC CH2
8TC CLOCK
STC 1sC
LOA T8ITS
OTA 1SC
ISZ pOwFF
LOA POFFP
LOB POWP
JSB OREDP,1
CLA
57043 073054
~428
paWl
ClF0 eL.F o
POWCL CLC o
LOA 1 , I
STA POWI,I
LOA POwl
STA POWJ
JMP POW6
ST. POWFF
~424***
RESTORE REGISTERS.
0425 ~7044 063061
LOA
0426
PLACE ADB5 IN INTERRUPT CELL
POwI,I
AND RESTART INTERCONNECT.
202611
102111
063063
010361
002003
57030 103711
57031 106711
0411
STA
LOA
ADA
STA
XOR
paWST 8TC
STF0 STF
HAVE DONE ALL DUMMY INTERRUPTS,
SET CONTROL ON CLOCK AND TTY.
0402.*.
0403.
~408
04~9
~410
LOA ADB5
1031~1
CLO
57046 000036
102101
STO
PowEO
RESTART FIRST CHANNEL
PUT wORD BACK OUT ON CH2
LOAD FLAG wORD
LEAVE BIT 1
SKIP IF FLAG SET
OTHERWISE, TELL OTHER MACHINE
wANT NO INTERRUPT
RE.ESTABLISH PREVIOUS
STATE OF ASR35
sET IN CAsE OF ANOTHER pF
GET POINTER TO POWFF
GET POWER FAIL LOCATION
GO DO DISC STUFF
SAY NOT RESTARTING
'E'
AND
OVfRFLOW
SLA,FLA
~7047
~7~50 104200
DLD POWAB
~7~5 t r-157~57
~43~.**
RESET INTERRUPT SYSTf M TO SAMF AS BlFORE
~431
5705? 000000 POwNO NOP
OR STf 0.
0432 ~7~5j 127062
JMP PQWP,I
RETURN.
~433
~7~54
POw4~ EQU
0429
~434
'1435
FAll.
*
..
~71"'~4
0~HHH~0
PUwFF
NOP
SET
TO
1 DURING DISC RECALL,
PAG~
~27~
#22
POWER FAIL/RESTARl HOUTINt
",436
57055 ~0fcHtHHJ
~437
57056
57057
571(161
57062
57063
57064
57'2165
v.J438
~439
04140
0441
000"'~0
000000
00~000
000000
000000
0210Q100
000000
0442
0443
0444*
0445 57066 057060
0446*
POWI
BSS 1
POWJ
POWAB
POWED
PUwP
POWFL
8SS 1
ass 2
powF
POWSw
BSS 1
BSS t
BSB 1
BSS t
BSS 1
PQWTS Off *w6
POINTER TO DEVICE 8EING TESTED.
POINTER TO INTERRUPT CHAIN.
TEMPS TO HOLD vALUES Of A&S,
TEMP TO HOLD VALUE OF E&O.
TEMP TO HOLD vALuE OF P
TEMP TO HOLD STATE OF 1/0 FLAGS.
COpy of powFL.
TEMP TO HOLD SWITCH REGISTER
poINTER TO FOllOWING TA8LE
THIS TABLE POINTS TO THE ENTRY POINTS FOR
THE INTERRUPT ROUTINES.
0447*"
0448*
0449.
0450
~7067
0451
0452
0453
57"7~
057062
06'2025
5712171 062025
57072 057133
0454 57073 00121009
L1455 ~7074 07121024
1r1456*
OfF POWP
DEF R14CM
OfF R14CM
POWER FAIL·RTN.AOR.
INTERCONNECT RETURN ADDRESS
DEF ?TT2
TTY RTN,ADR.
NO INTERRUPT OCCURS ON THIS CHN.
CLK RTN,ADR.
8SS t
OfF CLKIN
~457.
THIS SECTION GIvES THE LENGTH OF EACH ROUTINE
SO THAT POWER FAIL CAN DETERMINE WHETHER
THAT ROUTINEs INTERRUPT HAD ACTUALLY OCCURRED
OR WAS STILL PENDING AT THE TIME OF THE POWER fAILURE,
0458*
~459*
~460t1r
~461.
0462t1r
~463
57075 000220
000000
':}7077 000166
t)71~~ 1210121000
57101 0121012130
ABS
ABS
ASs
BSS
ASS
R14EO-R14CM
0
NO SUCH ROUTINE
TTYEO.?TT2+1
WITHIN INTERRUPT
1
NO INTERRUPT OCCURS ON THIS CHN.
CLKED.ClKIN+l
ROUTINES.
57102
b7103
t>7104
t>7105
57106
JSB
HLT
JSB
CLC
JSB
R14DR,I
DEATH+I1B
T35DR,I
138,C
ClKDR,I
0464
~711J76
0465
0466
0467
~468*
0469
0470
0471
0412
0473
0474*
L1475
0476
114734
112120tl
114756
107713
11463121
57107 121052
fi1477
!)711 Ci1 177652
~7111 102700
k1478
57112 057054
PUWDI
POW02
STC0
POFFp
ASS .. PQW1
ASS PQW1.PQW40
STC ~
OfF powfF
PAGE 0271 #23
SYSTEM CONSOLE DRIVER
W002. THE SYSTEM CONSOLE DRIVER CONTROLS ALL TRANSMISSION OF DATA 8i.
0003 • TWEEN THE SYSTEM CONSOLE (ASR-35) AND TH~ SYSTEM, IT HANDLES ALL
~"!t04. • 10 FOR THE DEVICE AND PROVIDfS fOR COMMUNICATl~N 0' MESSAGES TO
0005. THF SYST~M, THE fOLLOWING VARIABLES ARE SIGNIFICANT,
0006.
0007. Tj5Fl1 .0 DURING INPUT, -1 OUHING OUTPUT.
0008. T35F2: NORMALLY 0, IT IS SET TO .1 WHEN A COMPLETE MESSAGE HAS
0009*
BEEN RECEIVED. UNTIL IT IS CLEARED BY THE SYSTtM, ALL FURTHER INPUT 15 INHIBITED.
0010*
0011. T35F3: NORMALLY 0, IT IS SET TO ~1 WHEN A COMPLETE MESSAGE HAS
BEEN RECEIVED.
UNTIL IT IS CLEARED By THE OUTPUT
INITIALIZATION SECTION OF THIS DRIVER, LOG AND MESSAGE
ENTRIES ARE HELD Offi
TOGI
NOT USED DURING INPUT. DURING OUTPUT, BIT 0 • 0 If NEXT
CHARACTER IS ON LEFT, 1 IF ON RIGHT.
TAORI NOT USED DURING INPUT. DURING OUTPUT, TADR(1418) POINTS TO
THE WORO FROM WHICH THE NEXT CHARACTER WILL BE TAKEN,
BIT 15-1 FOR PUNCH & PRINT, 0 FOR PRINT ONLY.
TCNT: DURING INPUT, TtNT-' OF CHARS IN SO FAR, DURING OUTPUT,
TCNT(1410).# OF CHARS REMAINING TO BE OUTPut, BIT 15-0
IF A CRlF IS TO BE APPENDED, 1 IF NOT.
T6ITS: CONTAINS CURRENT CONTROL BITS,
120000 -> PRINT
130000· •• PUNCH ANO PRINT
160000 -> INPUT
002 7* TTA,TTS,TTEa USED TO SAVE THE VALUES Of A,8,E REGISTERS DU~lNG
INTERRUPTS,
0028*
~012*
0013*
0014.
0015*
0016*
001,,.
001a.
0019.
0020.
0021.
0022.
0023.
0024.
0025.
0026.
0029.
0030* CALLING SEQUENC~I
0031JSS TTYJ5,I A~* OF CHARS (aIT 15.0 FOR CRLF, 1 FOR NONE)
B.BUFFER ADDRESS (BIT 15-1 FOR PUNCHING)
0032*
0033.
0034. INPUT MESSAGES ARE STORED IN THE 72 CHARACTER BUfFER T35BF.
0035.
0037
57113 000000
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048.
0049.
0050.
0051*
57114 103100
0052
57115 070074
57116 076652
5·7117 003400
57120 070311
57121 063113
57122 073133
57123 002400
57124 072651
57125 070313
1 TT35 NOP
elF 0
STA TeNT
STe TADR
ceA
STA T35F1
LOA 1TT35
STA ?TT2
CL.A
STA TOG
STA T35F3
ENTRY POINT FOR OUTPUT.
INHIBIT INTERRUPT.
SET UP INITIAL PARAMETERS,
SET FLAG TO SAY
OUTPUT.
COpy RETURN ADDRESS INTO THAT OF
INTERRUPT SECTION.
SET TOG TO SAY LEFT HA.ND CHAR.
TEST FOR PENDING INPUT. IF THERE IS ANy, EXIT IMMEDIATELy AND LET
THE INTERRUPT TRIGGER THE FIRST OUTPUT CHARACTER.
0053
57126 102512
57127 002021
00~4
5713~
027157
0055
57131 102100
0056
57132 127113
LI. 1sC
SSA,RSS
JMP TT18
STF 0
JMP 1TT35,1
NONE PENDING •• GO OUTPuT 1ST CHAR
PAGE 0212 #23
SYSTEM CONSOLE DRIVER
0057.
0058* INTERRUpT SECTION
0059*
0060 57133 ~00000 ?TT2
0061 ~71J4 072646
0062
~7135
006J
57136 001500
57137 07266~
0064
0065
0066
0067
006 8
0069
0ra70
0071
0072
0073
0074
0075·
076647
5714(;1 060311
57141 211212003
57\42 021235
b7143 102512
57144 064276
t>7145 054362
57146 064300
57147 001004
~7150 044440
57151 006021
57152 050500
57153 021157
. 57154 12102400
012176
0077
0078 57155 070312
012179 57156 070?76
0088.
0081 . 57157 060 0 74
~082
0083
0084
0085
012186
012187
0088
0089
0090
0091
0092
121093
57160
57161
57162
57163
57164
NOP
STA TTA
STS TTB
ERA
STA TTE
LOA T35F1
SZA,RSS
JMP TT17
LIA ?St
LDB T358T
CPS ~OUTW
LOB T35PR
CMB,INS
SAVE REGISTERS.
TEST FLAG TO DETERMINf If
INPUT OR OUTPUT,
INPUT
LOAD BACK LINE STATUS DURING OUT
GET CONSOLE STATUS
IF OUTPUT WAIT
USE PRIORITY
ADS .+XSYNT~.+1+ROS-COM2
SSB,RSS
CPA 8377
JMP TTt8
CLA
STA T35f2
STA T358T
TT18
001265
012121211212
027212
002040
~27t76
LOA TeNT
RAL,CLE,ERA
SZA
JMP TT5
SEZ
JMP TT6
STA TOG
57165 072651
~7166 A60362
LOA .+3
lOR 81T15
57167 031027
57170 070074
57171 062652
57172 "'11027
ti7173 033321
STA TeNT
LOA TADR
AND BIT15
SKIP IF ABORT NOT ALLOWED
CHECK FOR A KEY STRUCK
NO INPUT, CONTINUE ON
CLEAR CONTINUEING OUTPUT FLAG
SET CONSOLE STATUS TO IDLE
GET
#
OF CHARS LEFT.
COPy CRLF BIT INTO E.
ANY CHARS LEFT?
YES •• GO OUTPUT NEXT ONE,
NO •• WANT CRLF1
NO •• GO RESET FOR INPUT.
SET UP OUTPUT OF CRLf.
3 CHARS WITH
NO CRLF FOLLOWING.
KEEP PRINT/PUNCH BIT.
IOR TTXCP
STA TADR
0094 57174 072652
JMP TT18
0095 57175 2127157
0096.
0097* END OF OUTPUT~-RESET FOR INPUT,
01219a.
0099
01121121
121101
57176 070074
57177 070311
011214
011215
57204 001600
0106
0101
011218
0109
57205
0103
011121
0111.
~62646
57206 066647
51207 103712
51210 102100
57211 127133
ST. TeNT
STA T35F1
LOA Bf60K
57200 060222
57201 072642
57202 102612
!57203 062650
0102
TT6
TT8
TT10
STA T8ITS
?SC
LOA TTE
OTA
SET COUNTER TO SAY NO CHARS IN.
SET FLAG TO SAy INPUT.
GET CONTROL BITS FOR INPUT.
SAVE.
OUTPUT TO CONSOLE.
RESTORE REGISTERS,
F-LA
LDA TTA
LOB TT8
STe ?se,c
STF '"
JMP ?TT2,1
0112* OUTPUT NEXT CHARACTER
ENABLE DEVICE,
ENABLE INTERRUPT.
EXIT.
pAGE 0273 #23
0113*
0114
0115
0116
0117
0118
1ii119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133.
0134.
0135.
0136
01 37
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
1r1150*
0151.·
57212
57213
57214
57215
57216
57217
67220
57221
57222
57223
57224
57225
SYSTEM CONSOLE DRIVER
003400
Tlb
040074
07121074
066652
062643
005275
062644
072642
102612
160001
066651
0040112'
57226 036652
57227 006011
57230 001727
57231 036651
51232 010474
57233 030476
57234 027202
1T15
CCA
DECREMENT
ADA TeNT
COUNTER.
ST. TCNT
LOB TADR
GET POINTER TO OUTPUT BUFFER.
LOA B120K
GET BITS FOR PRINT ONLY,
RBL,CLE,SLB,ERB
TEST & CLEAR BIT 15 OF B.
LOA B130K
GET PRINT/PUNCH BITS,
STA TBITS
SAVE CONTROL BITS.
OTA 1SC
OUTPUT TO DEVICE.
LOA 1,1
GET WORD CONTAINING CHARACTER.
LOB TOG
GET LE'T/RIGHT TOGGLE,
SLB
IF RIGHT CHARACTER,
lSZ TAOR
BUMP POINTER.
SLB,RSS
IF LEFT CHARACTER,
ALF,ALF
posITION ON RIGHT,
ISZ TOG
REVERSE TOGGLE SENSE.
ANO 8177
KEEP BITS e.0 ANO
lOR 8208
SET BIT 7.
JMP TT8
GO OUTPUT CHARACTER,
CHARACTER HAS BEEN INPUT.
57235 060312
57236
57237
57240
57241
57242
57243
57244
102-101
00£1010
027203
102512
010474
001400
050371
57245 027203
57246 050474
57247
57250
57251
57252
027203
TT17
LOA TJ5F2
MIA 1
IGNORE CHARACTER IF T31fl IS. -SET
OR SWITCH a 18 SET.
SLA
JHP TT10
LIA 1SC
AND B171
ete
CpA .... 128
JMP TT10
GET CHARACTER IN A.
PREPARE .1 IN 8,
IGNORE Lf, RUBOUT, NULL,
xo".
CPA 8177
JMP TT10
002002
SZA
050402
0212P)3
CPA .+238
JMp TT1"
TEST FOR 'CONTROL X'
0152.
rd153
57253 050407
0154 57254 021310
0155.
0156 57255 052645
0157 57256 027276
0158 57257 05'-"374
t1159 5726P1 074312
0160 57261 050374
0161 57262 074313
0162.
~163~
CPA .... 308
JMP TT11
CPA BKSPC
.JMP TT12
CPA .+158
135f2
CPA .+15B
srB
TEST FOR CRt
sET COMMuNICATION FLAG.
BTB T35F3
NOW INSERT CHARACTER IN BUFFER.
0164~
'l__
0165
0166
0167
01 6 8
57263 064074
57264 054466
51265 027203
57266 004065
cpa .72
LOB TeNT
GET COUNT IN B.
DON'T IF BUFFER 18 fULL
JMP TT10
CLE,ERB
MOVE LEFT/RIGHT BIT TO E, AND
pAGE 0274 #23
SYSTEM CONSOLE DRIVER
0169
0170
57267
~44303
~7270
002041
£1171
0172
0173
0174
0175
0176*
0177.
21178*
0179
l?J!80
0181
£1182
0183
0184
57271
57272
57273
57274
001737
130001
03407 4
170001
57275 027203
TT16
ADS T35Bl
SEZ,RSS
ALF,SLA,ALF
lOR 1,1
lSZ TeNT
STA 1,1
JMP TT10
COMPUTE ADORESS OF DESTINATION,
LEFT/RIGHT TEST,
LEFT.
RIGHT,
BUMP COUNTER,
STORE IN BUFFER.
GO EXIT,
LOB TeNT
GET CHARACTER COUNT
IGNORE IF NO CHARS YET.
HANDLE BACKSPACE.
.
57276 064074
1J7277
6730Qt
57301
57302
!:S730J
573£14
TT12
fd06003
sze,RSS
021203
JMP TT10
044356
014074
ADB ,-I
STB TeNT
CLE,ERB
ADS T3581
LOA 1,1
AND HIMSK
0B4065
044303
0185
0186 b7305 160001
0187 51306 010316
0188 57307 027274
.IMP
0189.
0190.. HANDLE 'CONTROL X'
0191*
TT11 5T8
0192 57310 074311
0193 ~7311 002400
CL.A
STA
0194 57312 070074
STA
0195 57313 072652
LOA
0196 57314 062643
STA
0197 57315 072642
OTA
0198 !S7316 1£12612
0199 57317 062641
LOA
0200 5732'" 027232 TTyED JMP
02211 57321 057322 TTXCP DEF
OCT
0202 ~7322 011415
OCT
0203 57323 005000
GET NEW TeNT,
CLEAR RIGHT HALF OF NEW DESTIN.
ATION,
TT16
T35Fl
TeNT
TAOR
B120 K
TBITS
1SC
RVRSL
TT15
.+1
011415
005000
SET OUTPUT FLAG,
SET TeNT FOR CRLF AFTER ",",
SET FOR NO PUNCHING.
SET fOR PRINT ONLY~
GO OUTPUT
il'"
pAGE 0275 #23
0205
TELETYpE TABLES
SUP
0206.
0207*
0208.
0209.
0210*
THE T~LETYPE TABLES CONTAIN IN CORE INFORMATION FOR SYSTEM USERS.
EACH OF THE 32 USERS HAS 1 TABLE, CONTAINING THE FOLLOWING
ENTRIE.SI
(?FLAG MUST BE FIRST, AND ?CLOC THROUGH ?PLEV MUST
BE CONTIGUOUS.)
0212
00000
121214.
0215.
0216.
.0217.
0218*
121219.
0220.
0221*
0222.
0223*
0224."
9225.
0226.
0227.
0228.
0230
?FLAG £QU "
CONTAINS ALL BIT FLAGS FOR USER
TERR
CFLAG
HFLAG
TApEF
UNABT
oUTWT
., 001211
012102
• 0004
II
• 12112110
• 012120
0040
II
COll414 • 0100
ABTRY • 0200
OfCHK • 121400
CHNFG • 1000
PUAlT • 2 000
MBUST • 4000
0113901
TAPE ERROR
COMPILE MODE
HELLO IS RUNNING
USER IN TAPE MODE
UNABLE TO ABORT
OUTPUT BUFFER FULL
2114 COMMUNICATION
ABORT ATTEMPT
DIRTY FILES CHECK
CHAIN RUNNING
PROGRAM UNALTERED
MBUSy POSITIVE
?TNUM EQU ?FLAG.l
TELETypE
0234
002102
DISC ADDRESS OF THIS USER.S SWAP AREA
00004
?PROG EgU ?OISC+2
POINTS TO LAST USED WORD OF CORE PROGRAM.
0240*
0242
00005
00006
00011
00013
0260*
?TIME EQU ?NAME+3
?CLOC EQU ?TIHE+2
USER'S TIMEOUT CLOCK.
0256*
0258
?NAME EQU ?10+1
STARTING lIME
0252.
0254
EQU ?PROG+l
8 CHAR PROGRAM NAME
0248.
0250
?IO
USER 1D.
0244*
0246
IN BITS 12-8,
?DISC EQU ?TNUM+l
0236.
0238
#
0o,,14
?RSTR EgU ?CLOC+l
RESTART ADDRESS FOR SUSPENDED PROGRAMS.
PAGE 0276 #23
0262
00015
00(fJJt6
A0017
~QU
?STAT+1
?PLEV EQU ?LINK+l
FOR PROGRAMS ON Q, CONTAINS PRIORITY LEVEL, FOR
SUSpENDED PRoGRAMS CONTAINS PROGRAM TYpE.
0273.
0274*
0276
?LINK
POINTS TO LINK POSITION OF NEXT ENTRY ON QUEUE,
0269*
0271
?8rAT EQU ?RSTR+l
tJSER STATUS--WHEN ON Q INDICATED PROGRAM TYPE'
WHEN NOT ON Q INDICATED REASON WHy.
0264*
0265.
0261
TELETyPE TABLES
00020
0278.
0219.
0280 00021
0281 ..
0282*
?RTIM EQU ?PLEV+l
RESPONSE TIME FOR ENTER STATEMENT
?TEMP EQU ?RTIH+l
TEMPORARIES FOR LIBRARy ROUTINES
PAGE 0277 #23
TtLETypE TABLES
OCT 0
OCT 0
OCT 0,~,~,0,~,0,0,~,~,0,0,0,0,0
OCT 0,0,0,0
0284
0285
0286
0287
0288.
57324 0~0000
57325 000000
57326 000000
b7344 000000
TTY~0
0289
029ta
~7350
57351 000400
0291
0292
57352 000000
57370 000000
T1Y01 OCT 0
OCT 4~0
OCT 0,0,O,O,0,0,0,O,O,O,0,0,0,0
OCT 0,0,0,0
000000
0293.
0294
tJI?QIl\
u .. ..,. .......
57374
57375
57376
57414
0000(110
TTv02
0010P10
0296
000000
0297
000000
0298.
0299 57420 000000
0300 57421 001400
0301 57422 000000
0302 57440 000000
0303.
0304 57444 0k:10flJ00
0305 57445 002000
0306 57446 0100000
0307 57464 000000
0308*
0309 5747~ 000000
0310 ~7471 002400
0311
07472 000000
0312 !)7510 000000
0313."
0314 57514 000000
0315 57515 003000
0316 S7516 000000
0317 ~7534 000000
0318.
'0319 57540 000000
0320 57541 ~03400
0321 57542 000000
0322 5756~ 000000
0323.
0324 57564 0ld0000
0325 57565 0040P10
03 2 6 57566 000CJ100
0327 57604 000000
0328.
0329 57610 000000
0330 B7611 004400
0331 57612 000000
0332 57630 000000
121333*
0334 57634 000000
0335 57635 005"'00
0336 57636 000000
Ja337 57654 000000
0338.
~339
~766~ 000000
OCT 0
OCT 1000
OCT 0,O,0,0,0,0,0,0,0,O,O,0,0,0
OCT 0,0,0,0
TTY03 OCT 0
OCT 1400
OCT 0,0,0,0,O,0,0,0,0,0,O,O,O,0
OCT 0,0,0,0
TTY04 OCT 0
OCT 2000
OCT 0,0,0,0,~,0,A,0,0,0,0,0,0,0
OCT 0,0,0,0
TTY05 OCT ~
OCT 2400
OCT 0,0,O,O,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
TTY06 OCT PI
OCT 3000
OCT
0,0,0,0,~,0,0,0,0,0,0,0,0,0
OCT 0,0,O,0
TTY07 OCT 0
OCT 3400
OCT ~,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
TTY08 OCT 0
OCT 4~00
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
TTY09 OCT
0
OCT 4400
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
TTV1~
OCT
OCT 5000
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,1
'"
OCT
TTytl OCT
~,0,0,0
0
PAGE 0278 #23
0340
0341
0342
03.43.
0344
0345
0346
L
OCT 5400
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
57661 005400
51662 000000
5770V1 000000
57704 000000
006000
57706 0"'0000
57724 000000
TTy12 otT
000000
006400
TTY1J OCT PI
OCT 6400
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
000000
A00000
000000
007000
"
OCT 6~00
OCT 0,0,0,0,A,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
~770S
0347
0348.
0349 5773V1
0350 57731
57732
0351
0352 57750
0353.
0354 57754
0355 57755
0356 51756
0351 57774
0358.
0359 60000
0360 60001
0361 60002
0362 60020
0363*
0364 60024
0365 60025
0366 60026
0367 60044
0368.
0369 60050
0370 60051
0371 60052
0372 60070
0373*
0374 60074
0375 60075
0376 60076
0377 60114
0378 ..
0379 6012~
0380 60121
0381 60122
0382 60140
0383.
0384 60144
0385 60145
0386 60146
0381 60164
0388*
0389 60170
0390 60171
0391
0392
TELETYPE TABLES
TTY14 OCT 0
0000A0
OCT 7000
OCT ~,0,0,0,~,0,0,0,0,B,0,0,0,0
OCT 0,0,0,0
000000
007400
000000
000000
TTY15 OCT 0
OCT 1400
OCT 0,0,0,0,0,0,0,0,0,0,0,9,0,0
OCT O,O,0,0
000000
TTY16 OCT
~00000
OCT 10000
OCT 0,0,0,0,0,0,0,0,0,O,O,O,0,0
OCT ",0,0,0
0121000
000000
000000
000000
TTy1? OCT 0
OCT 10400
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,21
OCT 0,0,0,0
010400
000000
000000
000000
011000
2100000
TTy18 OCT
OCT 11000
OCT 0,0,0,0,0,0,9,0,0,0,0,0,0,0
"
OCT 0,0,0,0
000000
000000
011400
((J
TTY19 OCT 0
OCT 11400
OCT ~,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0.,0,0,O
000000
0000A0
OCT
000000
012000
00000121
000000
TTy'20
000000
TTy21 OCT 0
012400
60172 2100000
60210 000000
0393*
0394 60214 000000
0395 60215 0130021
0
OCT 12000
OCT 0,0,0,0,0,0,0,0,1,.0,O,O,1,0
OCT 0,0,0,0
OCT 12400
OCT ~,0,0,0,A,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
TTy22 OCT 0
OCT 13000
PAGE
0279 #23
TELETypE TABLES
60216 0000('10
60234 000000
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
0398.
0399 60240 000000
0400 60241 PJ1340"
60242 000000
0401
0402 60260 000000
TTy23 OCT 0
OCT 13400
OCT ~,0,0,0,A,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
0396
9391
0403.
"404
0405
0406
0407
0408.
60264
60265
60266
60304
000000
014000
000000
0000€!'0
lTY24 OCT
OCT 14000
OCT 0,0,0,0,0,0,121,0,0,0,0,0,0,0
"
OCT 0,0,0,0
60310 000000
6 0 311 014400
60312 000000
60330 0000~0
TTy25 OCT "-'
(lCT 14400
OCr 0,0,0,0,0,121,0,0,0,0,0,0,0,0
OCT 0,0,0,0
0413.
0414 60334 000000
0415 60335 015000
0416 6"336 000000
,,417 60354 000000
TTY26 OCT
OCT 15000
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
041219
0410
0411
0412
041S"
0419
0420
0421
0422
0423*
0424
0425
0426
60360 000000
60361 015400
60362 000000
60400 000000
60404 000000
60405
01600~
60406 000000
0421 60424 000000
0428*
0429
0430
60430 00e000
6043 1 016400
60432 0000~0
-0431
0432 6045e1 000"00
0433*
0434 60454 000000
0435
0436
0437
"
TT-,,27 OCT
OCT 15400
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
"
T1V28 OCT
OCT
OCT
OCT
0
16000
0,0,0,0,0,0,0,0,0,0,0,0,0,1
0,0,0,0
T1'y29 OCT ~
OCT 16400
OCT 0,0,0,0,~,0,0,0,0,9,0,0,0,0
oCT 0,0,0,0
60455 017000
60456 000'-"00
60474 000000
TTy30 OCT 0
OCT 17000
OCT ~,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0
60500 A000A0
60501 017400
60502 000000
60520 000000
60524
TTy31 OCT
OCT
OCT
OCT
TTY32 E.QU
~438.
0439
0440
0441
0442
0443
~
17400
0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0
•
ENTRY. IT
0446* IS POINTED TO BY THE LAST AcTUAL ELEMENT, AND POINTS TO THE FIRST.
0447. wHEN THE. QuEuE IS OTHERwISE EMPTy, THE DuMMy LINK POINTS TO
0448* ITSELf.
0445. THE QUEUE ALWAYS CONTAINS AT LEAST ONE ENTRY, A DUMMY
PAGE 0280 #23
SWAP TRACK ERROR USER ZAPPER
0450 •
. 0451.·
JETTISON PORT
~452**.
0453 ••
0454.
0455.
0456.
0457.
04Sd*
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0410
0471
0472
0473
0414
0475
0476
0477
0418
0479
0480
0481
0 4 82
0483
0484
0 4 85
0486
0 4 87
0488
0489
0490
0491
0492
0493
0494
0 4 95
0496
0497
0498
0499
0500*
0501*
0502*
0503
0504
THIS ROUTINl IS CALLED WH~N A DISC TRANSFER TO OR fROM A
USER'S SWAP TRACK HAS FAILED. THE ROUTINE SETS THE USER'S
PORT TO AN UNAVAILABLE STATUS AND CLEARS HIS FUSS TA8LE.
ENTER WI·TH TTY TABLE ADDRESS IN 8.
60524 0000riJ0
6 0 525
60526
60527
60530
60531
60532
60533
60534
60535
60536
6"'537
60540
60541
60542
064272
076624
116623
066624
044356
9.160353
110001
044347
002400
070255
170001
Pl44352
170001
060612
6'1543 070204
60544 060666
60545 064700
60~46
60547
60550
60551
1;0552
60553
60554
60555
60556
60557
60560
60561
60562
60563
60564
60565
60566
60567
60570
60.571
60572
114206
017234
066624
044342
160001
001727
072624
001720
040676
072625
002400
064450
172625
036625
006006
026562
060666
064676
114206
017 2 34
062624
60573 017477
JlTPT NOP
LOB
STS
JSB
LOB
Aoe
LOA
STA
AOB
ClA
STA
STA
ADS
STA
LOA
STA
LOA
MLINK+l
TAKE THIS
JETTI
USER OFF
JDEQU,I
THE QUEUE
JETli
.+?STAT-?LINK -> STATUS WORD
XPUN
SET PORT TO
B,1
UNAVAILABLE
.+110 .. 18TAT
MAIN
B,I
SAY NOBODY IN CORE
CLEAR 10
.+?FLAG .. ?ID
B,I
CLEAR FLAGS ~ORD
M2000
READ IN
MWORD
THE FUSS TABLE
FUSS
LOB LIBol
JSB DISCZ,I
JSB SICK
IT'S STUCK ON THE DISC, GIVE UP
LOB JETl1
GET TABLE POINTER AGAIN
ADB .+?TNUM.?LINK
LOA BII
GET THE PORT NUMBER
ALF,ALF
STA JETTt
SAVE IT
ALF,ALS
TIMES 32
ADA LIBD
STA JETT2
CLA
ZERO OUT
LOB MJ2
·THIS CLOD'S PART
STA JETT2,I
OF THE FUSS
lSZ JETT2
TABLE
INB,SZB
JHP •• 3
LDA
LDB
JSB
JSB
LOA
JSB
FUSS
LIBO
DISCZ,l
SICK
JETTI
TCRIR
WRITE THE FUSS
TA8LE BACK TO
THE DISC
DARN, IT'S STUCK IN CORE,
GET PORT NUMBER
ANO GO INFORM VICTIM
CROAK
ALSO INFORM THE SYSTEM OPERATOR WHAT WE'VE DONE.
60574 103100
60575 114200
elF
Ii)
.J SB GMQBP, I
GO GET POINTER To MESSAGE
Q
PAGE 0281 #23
0505
0506
0507
0508
0512'9
0510
0511
0512
0513
0514
0515
0516
0517
0518
0519
0520
0521
0522
0523
0f)25
0526
0521
0528
0529
0530
0531
0532
0533
0534
0535
SWAP TRACK ERROR USER ZAPPER
60576
60577
60600
60601
60602
60604
60605
60606
60607
60610
60611
60612
60613
60614
60615
60616
60617
60620
60621
126622
072625
062624
006400
100400
001727
0400Bl
040530
072634
60622
60623
60624
60625
60626
60627
60630
60631
60634
60635
60646
070360
071610
000000
000000
060627
000036
JHP JSCH1,1
STA JETT2
LOA· JETTi
CL8
OIV .+10
ALF,ALf
JEll
006006
026613
126622
05 0 11 7
000000
020115
"06412
IT
JSCH1
JDEQU
JETT!
JETT2
JETHS
TO
ASCII
INSERT IT INTO THE MESSAGE
GET ADDRESS OF
STUFF TO BE MOVED
MOVE
IT
INTO
THE
MESSAGE
QUEUE
BUFFER
DONE, RETURN TO.SCHEDULAR
ADA ASC00
036625
006412
CONVERT
ADA B
062626
012624
064337
162624
172625
036624
NO ROOM, SORRY
SAVE POINTER TO AVAIl.ABLE BUFFER
GET PORT NUMBER
STA JETNO
LOA JETMS
STA JETT1
LOB .-16
LOA JElTl,I
STA JETT2,I
lSZ JETTI
ISZ JETT2
INB,SZ8
JMP JETl
JMP JSCH1,I
OEF 5tH1
OEF OEQUE
ass
ass
t
1
OfF *+1
DEC 30
OCT 6412
Ase
3,PORT
CR LF
#
JETNO BSS 1
ASe g, HADE UNAVAILABLE.
OCT 6412
CR LF
PAGE 0282 #24
0002*
0003..0004*
0005*
0006.
IiHc107 *
0008*
0009*
0010*
01'11*
0012.
0013*
0014*
001 5*
0~' 16*
0~17*
001ij*
0019*
0020*
SYSTEM DEATH
~MERGENCY
TRACK
G~ABaEH
THE SALVG ROUTINE IS CALLED WHEN A SYSTEM TRACK WITH VITAL
IN~ORMATION, SUCH AS A DIRECTORY OR lOT TRACK, CANNOT BE
WRITTEN BACK TO ITS AsSIGNED DISC ADDRESS, BUT WHEN RECOVERY
MIGHT BE POSSIBLE IF THE INfORMATION CAN BE SAVED. SALVG
ASSUMES THE FOLLOWING POINTERS HAVE BEEN SET:
LIBUS • STARTING CORE ADDRESS OF THE TRACK
MWORO • NEGATIVE L~NGTH OF THE TRACK IN CORE
STOAP • ADDRESS OF A DOUBLE WORD CONTAINING
THE TRACK'S DISC ADDRESS
SALV G READS THE ADT IN PIECES INTO THE UPPER 2K OF THE USER
AR~A AND SEARCHES FOR AN ENTRy LARG~ ENOUGH TO HOLD THE TRACK.
IF AN ENTRY IS FOUND, THE TRACK IS WRITTEN TO DISC AND ITS NEW
ADDRESS IS STORED INTO THE DOUBLE WORD LOCATION POINTED TO BY
STDAP (SYSTEM TABLE DISC ADDRESS POINTER.) THE ADT 18 THEN
UpDATED BY RETURNING spACE FOR THE OLD TRACk AND CLAI"ING SPACE
FOR THE NEW ONE.
0021~
0022*
0023*
0024.
0025*
0°26*
SALVG CALLS CLNOr TO PRINT ANy REMAINING SYSTEM MESSAGES AND
AN INDICATION OF SALVG'S SUCCESS OR FAILURE, AND THEN HALTS.
THE THREE POSSiBLE HALTS HAVE THE FOLLOWING MEANINGSI
328 - RECOVERY POSSIBLl BY BOOTING UP FROM DISC
~ RECOVERY POSSIBLE By LOADING FRoM MAG TApE
34B • RECOVERY IS OUT OF THE QUESTION
338
0027*
0028*
0029*
0031
0032
0033
0034
0035
0036
0037
00 3 8
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
00~9
0050
0051
0052
0053
0054
0055
0056
0057
60647
6065(?!
60651
6065'60653
000000
002400
170632
060"77
60654
60655
6 0 656
60660
60662
60663
60664
60665
6 0 666
60667
60670
6 0 672
60674
60675
60676
60677
60700
60701
60702
060204
0 7 3216
104200
104400
073215
060347
073217
063221
073222
04 0 361
073223
104200
104400
163223
,,73227
067227
006003
026744
047231
00602121
60703 026706
60704 063227
60705 PJ06401
SALVG NOP
elA
STA
LOA
STA
LOA
STA
DLD
DST
LOA
STA
LOA
SAL"! STA
ADA
BLOCK
Dele',I
STDAP
SALAD
MWORD
SALLN
STDAP,I
SOADR
... a
seNTi
SADTP
SADTA
.+2
SADTL
OLD SADTA,I
08T SAOA,I
LOA SADTl,I
STA SADL
SAL02 LOB SADL
5ZB,RSS
JMP SAL05
AD8 D1536
SSB
JMP SAL03
LOA SAOL
ClB,RSS
STA
,CLOCK
SAVE ADDRESS
POINTER AND
DISC LENGTH OF
TRACK TO BE SALVAGED
SAVE DISC ADDRESS
FOR FADT ROUTINE
INITIALIZE ADT
TRACK COUNTER
INITIALIZE ADT
ADDRESS poINTER
INITIALIZE ADT
LENGTH POINTER
INITIALIZE
CURRENT DISC
ADDREss AND
LENGTH
B .. .# OF WORDS LEFT
ANY MORE ON THIS TRAtK?
NO
REDUCE COUNT BY 6 BLOCKS
ANY LEFT?
yES
NO, GlT ORIGINAL LENGTH
SET ADJUSTED" LENGtH TO zERO
PAGE 0283 #24
005~
0059
0060
0061
0062
0063
0064
0065
0066
0061
0068
6rl'706
60707
60710
60711
60712
60714
60715
60716
60117
60720
60721
SYSTEM DEATH EMERGENCY TRACK GRABBER
063230
070204
077227
007400
100400
073220
063224
064614
046027
114206
026750
SAL03 LOA M1536
STA M~ORD
5T8 SADL
eca
DIv .+3
STA SCNT2
LOA SAD A
LOB L8192
ADB 8IT15
JSB DISCZ,I
JMP DOOM
02169*
0010 ••
CHECK ADT FOR A LARGE ENOUGH
0071.
LOB L8192
0072 60722 064674
0073 60123 044361 SAL04 ADS .+2
LOA B,I
0074 60724 160001
ADA M32
0075 60725 040450
0076 60726 002021
SSA,RSS
JMP SAL06
0077 60727 026756
0078 60730 006004
INS
lSz SCNT2
0079 60731 037220
JMP SAL04
0080 60732 P.J26123
0081 60733 104200
DLO SAOA,I
elf
0082 60735 00sa40
0083 60736 044365
ADB .+6
0084 60737 002040
SEZ
0085 60140 002004
INA
DST SADA,I
0086 60741 104400
JHP SAl02
0087 60743 026676
MAXIMUM LENGTH FOR READ
SET DISC LENGTH WORD
SAVE ADJUSTED TRACK LENGTH
COMPUTE AOT
.
ENTRY COUNT
AND SAVE IT
->
DISC
ADDRESS
• CORE ADDRESS
ADO READ BIT
READ ADT CHUNK
DISC FAILURE • FLUSH SYSTEM
ENTRY
START OF TABLE
LENGTH WORD
• LENGTH
IS THIS ENTRY LARGE ENOUGH
FOR THE ~YSTEM TRACK?
YES
a>
a>
NO, ANY ENTRIES LEfT?
YES
ADJUST
DISC
ADDRESS
FOR NEXT
6 BLOCK
CHUNK
CHECK NEXT CHUNK
0088*
0089 ••
ADJUST POINTERS FOR CHECKING NEXT ADT TRACK
0090.
0091 60144 063222 sALes LDA SADlA
0092 60745 04 0 362
ADA .+3
0093 60146 031217
ANY TRACKS L.EFT?
ISZ SeNTt
0094 60747 026665
JMP SAL0!
YES
0095.
THIS SySTEM IS B~YONO HELP
0096*.
0091.
0098 60750 1~3100 DOOM CLF 0
LDB SALf'A
0~99
GET ADDRESS Of FAILURE MESSAGE
60751 067156
JSB
CLNOT
PRINT MESSAGES
0100 60752 017412
LOA
SALVG
GET
THE CALLING ADDRESS
60753
062647
0101
0102 60754 102034
HLT DEATH+348 EXPIRE
JMP ... 1
NO CHANCEl
0103 60755 026754
0105.
0106 ••
A
0101.
0108 60756
0109 60757
0110 fi076e1
0111 60761
0112 621763
NEW TRACK HAS BEEN FOUND
170001
044355
077222
104200
104400
SAL06 STA
AD8
ST8
OLD
DST
B,l
.-2
SAOlA
B,I
SALAD,!
UPDATE ENTRy.S LENGTH WORD
DISC ADDRESs
SAVE POINTER
PUT NEW DISC ADDRESS IN SALVAGED
TRACK,S CORE RESIDENT TABLE
a>
PAGE 0284 #24
0113
0114
0115
0116
0117
011a
0119
0120
0121
SYSTEM DEATH EMERGENCY TRACK GRABBER
60765 000040
6 0 766 044417
60767 002040
60770 002004
60771
60773
60774
60775
104400
060204
073227
063216
0122
0123
60776 070204
60777 063215
61000 064676
0i24
0125
61002 026750
611001 114206
eLf
ADS ,+32
SEZ
INA
DST
LOA
STA
LOA
STA
LOA
lOB
JSB
JMP
upDATE
ENTRY'S
DISC
ADDRESS
sADrA,I
MWORD
SAOL
SALLN
MWORD
SALAD
LISO
DISCZ,l
DOOM
WORDs
SAYE LENGTH OF AOT CHUNK
THAT ENTRY WAS FOUND ON
SET TRANSfER LENGTH OF
TRACK TO BE SALVAGED
FOR TRACK
-> NEw DIsC ADDRESS
-> CORE LOCAtION
SALVAGE THE TRACK
DANG ITI TUBE THIS SYSTEM
0127.
TRACK HAS BEEN SALVAGED • NOw uPDATE ADT
0128*.
0129.
LOA gAOL.
SET TRANSFER L.ENGTH
0130 61003 063227
STA MWORD
01 3 1 61004 070 20 4
OF UPDATED ADT CHUNK
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
61005 063224
61006 064674
61007 114206
61010 027035
61011 111232
61012 160043
61013 070204
61014 060044
61015 064700
61016 114206
61017 0272135
6102~ 060417
61021 070045
61022 111233
61023 ~60044
61024 064676
0147
0148 6102.5 114206
0149 61026 027035
0150*
0151*
0152*.
0153*
0154
01 55
0156
0157
0 15 a
0159
0161*
0162*.
0163*
0164
0165
0166
0167
LOA SADA
L.OB L8192
JSB OISCZ,I
JMP sPsuc
JSB SFAOT,I
LOA SOLPR,I
STA MWORD
LOA SDAPR
LOB LIBDI
.J5B DISCl, I
JMP
LOA
STA
JSB
LOA
LOB
JSB
spsuc
.+32
SOAlN
SRBAT,I
SDAPR
LIBD
DISCZ,l
.JMP SPSUC
.> DIsC ADDREss of AOT CHUNK
• CORE ADDRESS
WRITE TO DISC
BLEw IT
FIND ADT OF SALVAGED TRACK
SET TRANSFER
WORD
.>READLENGTH
ADT DISC ADDRESS
IN
ADT TRACK
MORE PROBLEMS
SET AMOUNT TO
BE RETURNED
RETURN THE BLOCKS
WRITE THE
UPDATED TRACK
TO THE DISC
FOUR OUT OF FIVE AIN'T
BAD FOR A SICK DISC
THE ADT HAs BEEN UPDATED
61027
6 1 030
61031
61032
103100
067 043
017412
062647
61033 102032
027033
61~34
elF 0
LOB SALSU
Js8 CLNOT
LOA SALVG
HlT DEATH+32a
JMP ... 1
LOAD ADDRESS OF cOMPLETE SUCCESS
OUTPUT MESSAGEs
LOAD CALLING ADDRESS
KICK OFF
THE ADT COulD NOT BE UPDATED
61035 103100
61036 067111
61037 017412
6104'1 062647
SPsuC elF
LOB
JSB
LOA
0
SALPS
CLNOT
SALVG
LOAD ADDRESS OF PARTIAL SUCCESS
PRINT MESSAGES
LOAD CALLING ADDRESS
PAGE 0285 #24
SYSTEM DEATH EMERGENCY TRACK GRABBER
0168
0169
61041 102033
61042 027041
121111
0172
0173
61043
61044
61045
6 10 46
61067
0174
0175
0176
0177
0179
0180
0181
0182
0183
0184
0186
0187
0188
0189
01 9 0
0191
0192
0194
0195
0196
0197
0198
0199
0200
0201
0202
1212 °3
0204
121205
0206
02 0 7
0208
0209
·0210
0211
HLT DEATH+33B DIE
JMP .-1
61070 005123
6 1 071 046105
SALSU DEF ·+1
DEC 72
OCT 6412
ASC 17,MOVED SYSTEM TRACK.
EMERGENCY DIS
C.CR
OCT 41415
IF .. S
OCT 5123
ASC 16,LEf:.P AND THEN BOOT UP FROM DISC.
61111
61112
61113
61114
61133
61134
('161112
000106
006412
0465\7
006412
0465Vltl
SAlPS OfF
OEC
OCT
ASC
OCT
Ase
61156
61157
61160
61161
61175
61176
61177
061151
2106412
04 15 01
027015
005122
042503
SALFA DEF .+1
DEC 58
OCT 6412
ASC 12,CAN'T WRITE SYSTEM TRACK
OCT 27015
•• CR
OCT 5122
LF.R
ASC t4,ECOVERY OUT OF THE QUESTION.
000000
SALAD BSS 1
0" 0·0 121 fa
SAL.LN BSS 1
sCNTt OCT 0
61215
6121 6
61217
61220
~61044
000110
006412
"'46517
12141415
000072
000000
000000
61221 000116
61222 000000
61223 000000
61224
61225
61227
61230
61231
00043
00044
061225
00121000
SCNT2
SADTP
SADTA
SAoTL
SADA
000000
SAOL
11500121
M1536
003000
00045
0004 6
61232 072357
61233 072415
01536
8DLPR
SOAPR
SDALN
SDAOR
SFADT
OCT
OfF
BSS
BSS
OfF
BSS
sSS
DEC
DEC
EQU
EQU
EQu
EQU
OfF
*+1
70
6412
15,MOVlD SYSTEM TRACK. EMERGENCY
6412
18,MAG TAPE SLEEP ANO RELOAD FROM TAPE.
.> ADOR, OF TRACK TO Bf SALVAGED
• LENGTH OF TRACK 10 BE SALVAGED
0
ADrAT
1
1
.+1
2
a" ADT TABLE
AOT DISC ADDRESS POINTER
ADT TRACK LENGTH POINTER
.,. ADDRESS OF CURRENT AOT CHUNK
1
• ADT TRACK REMAINDER'S LENGTH
.1536
1536
LTEMP+l1
LTEMP+12
LTEMP+13
LTEMP+14
FADT
SRBAT OEF RBADT
-DI.PTR
• OAPTR
• DALEN
• OADDR
a> FIND AOT ROUTINE
.~
RETURN BLOCK TO ADT ROUTINE
PAGE 0286 *24
SYSTEM DEATH EMERGENCY TRACK GRABBER
THIS ROUTINE IS CALLED WHEN THE SYSTEM CANNOT CONTINUE
OPERATING BUT MAY BE ABLE TO BE RESUSCITATED.
0216
0217
0218
0219
0220
0221
0222
0223.
0220225
0226
0227
0228
0230*
0231*
0232.
0233*
0235
0236
0237
0238
0239
0240
0241
61234 000000
61236 067243
61237 017412
61240 063234
61241 102033
61242 027241
61243 i2i6i244
61244 000073
61245 006412
61246 041501
61271 020122
0249.
0250.
02 5 1 *
0252.
0253.
0255
0256
0257
0258
0259
0260
0261
0262.
0263
0264
0265
02 66
NOP
elF
LDB
JSB
LOA
HLT
JMP
SICKM OfF
DEC
OCT
ASC
ASC
0
sICKM
ClNOT
SICK
DEATH+33s
•• 1
DISABLE INTERRUPTS
GET ADDREsS of OPTIMISTIC MESSAG
GO PRINT MESSAGES
A GETS CALLING ADDRESS
CROAK
.+1
59
6412
19,CAN'T ACCEss SYSTEM SEGMENT OR TABLE.
10, RECOVERy POSSIBLE.
THIS ROUTINE IS CALLED WHEN THE SYSTEM CANNOT CONTINUE
OPERATING ANO HAS ALTERED ITS TABLEs IN SUCH A WAY THAT
THEY CONTAIN CONFLIcTING INFORMATION ANti RESUSCITATION IS
IMPOSSIBLE,
61303
61304
61305
61306
61307
61310
61311
000000
103100
067312
~17412
063303
102034
021310
0242.
0243 61312 061313
121244 61313 000063
0245 61314 Pl06412
024 6
0241
SICK
61235 103100
613t5 05 1 5 31
61J4~ 044515
DEAD
NOP
elF
LOB
JSB
LOA
HLT
0
DEADM
CLNOT
DEAD
DEATH+34B
DISABLE INTERRUPTS
GET ADDRESS OF PESSIMISTIC MfSAG
GO PRINT MESSAGES
A GETS CALLING ADDRE$3.
PASS AWAY
J"'P .·1
DEADM OEF .+1
DEC
OCT
Ase
ASC
•
51
6412
19,5YSTfM TABLES INCOMPATIBLE.
6,lMPOSSIBLE.
RECOVERY
THIS ROUTINE IS CALLED WHEN THE SYSTEM HAS BLOWN IT WRITING
THE DISCS. THE SITUATION
IS SIMILAR TO THOSE WHIcH CALL "DEAD", aUT SINCE LOCKEDSLOCK8
TABLEs ARE I"'MORTAL, THE OPERATOR MUST BE INFORMED THAT ONE
HAS BEEN DAMAGED.
ON THE LOCKED BLOCKS TABLE OF ONE OF
61346 000000
61347 103100
61350 067355
6 1 35 1.
61352
61353
61354
0 1 7 4 12
063346
61355
61356
61357
6 13 6 0
061356
000066
006412
102034
027353
046117
MDEAD NOP
elF
LOB
JSB
LOA
HLT
JMP
0
MDEDM
CLNOT
MDEAD
DEATH+348
.-1
MDE-OM OfF .+1
DEC 54
DISABLE INTERRUPTS
GET ADDRESS OF WARNING MESSAGE
GO PRINT MESSAGES
A GETS CALLING ADDDRESS
HUERTO
OCT 6412
ASC 16,lOCKED BLOCKS TABLE DESTROYED.
PAGE 0287 #24
9267
6140~
SYSTEM DEATH EMERGENCY TRACK GRABBER
051105
ASC 10,RECOVERy IMPOSSIBLE.
PAGE 0288 #24
0269*
0270fr
0271*
0272*
0273*
0274*
0275*
0277
0278
0279
SYSTEM DEATH
0282
0283
0284
0285
0286
61423 027442
0281
61424
61425
61426
61427
61430
61431
61432
61433
61434
~280
0288
0289
0290
0291
0 2 92
0293
°294
0295
0296
0291
PRINTER
THIS ROUTINE SENDS A SYSTEM DEATH MESSAGE TO THE USERS,
NEXT, IT COMPLETES ANY OUTPUT WHICH HAS BEEN STARTED
BY THE SYSTEM CONSOLE DRIVER. IT THEN PRINTS ANY MESSAGES
REMAINING IN THE MESSAGE BUFFER. If IT IS ENTERED WITH (8)
NONZERO, IT WILL LAST PRINT THE ASCII STRING WHOSE LENGTH
IS POINTED TO BY (8) AND WHICH STARTS IN THE WORD FOLLOWING
THIS LENGTH.
61412
61413
61414
61415
61416
61417
61420
61421
61422
0281
HfSSAG~
000000
002400
t70632
077473
003400
017477
103100
060311
002021
CLNOT
NQP
CLA
STA Dele1,1
STB CLNB
ceA
JSB TCRIR
elF 0
LOA T35Ft
SSA,RSS
.JMp CLN 1
SFS 1SC
JMP ... 1
LOA CLADR,I
elE,ELA
lOB CLTOG,I
SLB
INA
STA SYCBA
LOB TeNT
STB SYCCC
LOB CLN1P
518 SYCON
LOA SYBIT,l
102312
027424
16 34 7 4
000066
167475
004010
002004
073723
064074
61435 077722
61436 067476
BLOCK
CLOCK
SAVE SpECIAL MESSAGE pOINTER
INFORM USERS OF
SYSTEM DEATH
WAS SYSTEM CONSOLE DRIVER
DOING INPUT OR OUTPUT?
INPUT, Go CHECK FOR MESSAGES
OUTPUT, WAIT FOR CURRENT
CHARACTER TO BE OUTPUT
GET CHARACTER POINTER
DOUBLE FOR SyCON AND lOSE BIT 15
GET LEFT.RIGHT WORD
WHERE IS NEXT CHARACTER?
ON THE RIGHT. BUMP POINTRE
SAVE POINTER FOR sVeON
GET REMAINING CHARACTER COUNT
AND STORE FOR SYeON
GET RETURN ADDREsS
AND STORE IN SyeON
GET CURRENT OUTPUT CONTROL BITS
JUMP INTO MIDDLE OF ROUTINE
0298 61437 077656
0299 61440 163724
0300 61441 "27664
JMP SVC3
0301*
COME HERE TO CHECK FOR MORE MESSAGES IN QUEUE
0302*
0303.
0304 61442 003400
0305
0306
0301
0308
0309
0310
61443
61444
61445
61446
61447
0311
0312
0313
0314
0315
61451 054307
61452 064310
0311
61457 027442
0321
0322
0323
MSQCT
.-1
Cl.N2
MSQCT
MSQPl
.+MESL.N
cPa MSQNO
LOB MSQBG
STB MSQPl
LOA B,I
INS
JSB SYCON
JMP CLNI
61453 11374305
61454 160001
61455 006004
61456 011656
eeA
AOA
CPA
JMP
STA
LOB
ADB
6145", 044426
0316
0318*
0319*
0320.
CLNI
040304
050356
027460
070304
064305
ARE THERE MESSAGEs
IN THE
QUEUE?
NO
YES, DECREMENT THE COUNT
BUMP POINTER
TO NEXT MESSAGE BUFFER
WRAP AROUND?
YES
SAVE NEW CURRENT MESSAGE POINTeR
GET CHARACTER COUNT INTO A
POINTER TO FIRST WORO INTO B
GO OUTPUT IT
CHECK FOR MORE
COME HERE TO PRINT FINAL SPECIAL MESSAGE
6146~ 067473
61461 006003
61462 "27466
CLN2
LOB CLNB
SZB,RSS
JMP CLN3
GET SPECIAL BUFFER poINTER
IS THERE A MESSAGE?
NO
PAGE 0289 #24
0324
0325
0326
0327
0328
0329
0330
a331
0332*
0333*
0334
i0335
0336
0337
61463
61464
61465
61466
61467
61410
61471
61472
SySTEM
160001
006004
01 1 656
002400
017656
011656
017656
127412
61413 000000
.: . . . '7 ..
,,56652
61415 056651
61476 06 144 2
Ol"'tif
D~~ATH·
CLN3
CLNB
LDA
IN8
JS8
CLA
JSB
JSB
JSB
JMP
MESSAGE PRINTER
8,1
SYCON
SYCON
SYCON
SyCON
CLNOT,I
BSS 1
CLADR OfF TADR
CLTOG oEF TOG
cLN1P DEF CLNI
yES, G~T CHARACTER COUNT
BUMP POINTER TO FIRST MES, WORD
GO OUTPUT IT
FINALLy,
OUTPUT 3
"AGONIZING DEATHCRLF'S AND
RETURN
8 REG. SAVE WORD
POINTER TO 1TT35'8 CHAR POINTER
POINT~R TO 11T35'8 LEFT.RIGHT WD
RETURN ADDRESS FOR FAKE SYCON CL
PAGE
~290
0348
0349
0350
0351
0352
0353
0354
0355
0356.
0357
e35a
0359
0360
0361 *
0362
0363
0364
0365
0366*
0367
0368
0369
0370
0371
0372
0373*
0374
0375
0376
0377
0378
0379
0380
0381
0382
0383
0384
0385
0386*
0387
0388
0389
0390
0391
0392
0393
SYSTEM DEATH OR SWAP TRACK ERROR TOWN CRIER
THIS ROUTINE IS CALLED TO INFORM ALL USERS THAT THE SYSTEM
IS GOING DOWN BECAUSE OF A HARDWARE FAILURE OR TO INFORM A
SINGLE USER THAT HIS PORT IS BEING HADE UNAVAILABLE (BECAUSE
OF A SWAP TRACK ERROR),
IT MUST BE ENTERED WITH THE AFFECTED
PORT NUMBER IN A IN THE LATTER CASE OR WITH A.-I TO INFORM
ALL USERS OF SYSTEM DEATH,
0339*
0340*
0341*
0342*
0343*
0344*
0346
0347
~24
61477 000000
61500 073647
61501 003002
61502 027511
61503
61504
61505
61506
61507
61510
073647
064167
07765 0
060417
067626
027515
TCRIR NOP
STA TCRPT
CMA,SZA
JMP TeR1
STA lCRPT
LOB NPORT
STB TCRPC
LOA ,+32
LOB TCRSO
JMP TCR2
ceA
61511 0034~0
61512 073650
61513 060424
61514067602
TCRt
61515
61516
61517
61520
003000
073651
004066
077652
TCR2
61521
61522
61523
61524
61525
61526
060374
017552
060371
017552
060371
017552
LOA
JSB
LOA
JSB
LOA
JSB
61527 037651
ISZ
RSS
JHP
LOB
ISZ
.
6153~
STA lCRPC
LDA
002001
61531 027543
61532 067652
61533 037652
61534 004065
61535 160001
61536 002041
61537 001727
61540 010474
61541 017552
61542 027527
61543
61544
61545
61546
61547
060374
017552
060371
017552
"60371
6155~ 017552
61551 127477
.+37
LOB TCRPU
SINGLE PORT BEING ZAPPED
SET PORT COUNT TO -I
GET LENGTH OF MESSAGE
AND POINTER TO IT
CMA
SAVE .MESSAGE
STA TeRCC
CLE,ELB
STe TCRSA
SAVE MESSAGE
BUFFER CHARACTER POINTER
,+158
TCROT
,+128
rCROT
,+126
TCROT
TCRCC
TCR4
TeRSA
TCRS'
CLE,ERB
LDA 8,1
SEZ,RSS
ALF,ALF
AND B177
JSB TeROl
.IMP TCR3
TCR4
SAVE PORT NUMBER
IS THIS A SYSTEM DEATH1
NO, GO SET UP FOR 1 PORT NEWS
yES, SET FIRST PORT TO ZERO
GET COUNT OF PORTS TO G£T NEWS
ANO SET IT INTO TCRPt
GET L~NGTH OF MESSAGE (CHARS)
AND POINTER TO MESSAGE
LOA
JSB
LOA
JSB
LOA
JSB
JHP
.+158
TeROT
,-+128
TCROT
.+128
TeROT
TeRIR,I
LENGTH-l
PRECEDE
MESSAGE
wITH
CR
Lf
LF
ARE THERE MORE CHARACTERS?
YES
NO, GO FINISH UP
GET BUFFER POINTER
BUMP IT
CALCULATE WORD ADDRESS
GET 2 CHARACTERS
WHICH ONE?
LEFT ONEI MOVE IT
ISOLATE CHARACTER
GO SEND IT
CHECK FOR MORE
SEND
USER(S)
FINAL
GASP
FORM
FEEDS
PAGE 0291 #24
SYSTEM DEATH OR SWAP TRACK ERROR TOWN CRIER
0394*
0395 61552 000000
0396 61553 073653
0397 61554 063650
0398 61555 013654
0399 61556 063647
0400 6,1557 073655
0401 61560 063655
0402 61561 12101721
0403 61562 ~30240
0404 61563 114736
f.lA~K
1rI~1rI'"
0406
0407
0408
0409
0410
0411
0412
0413
0414
0413
0416
0417
0418
61554
61565
61566
61567
61570
61571
61572
61573
61574
61575
61576
6 1 577
SFS CH2
JMP ... 1
LIA CH2
002002
SZA
0432
JMP TeRS
l,OA TCR04
ALF,ALF
lOR OCR
lOR TCR02
JSB S14SC,I
lSZ TCR04
ISZ TCR03
JMP TCR5
JMP TCROT,1
027560
063655
001727
030213
033653
114736
037655
037654
61600 027560
61601 127552
0423 61626 061627
0424 61627 044101
0425*
0426 61647 000000
0427 61650 000000
0428 61651 01210000
0429 61652 000000
61653 000et0i\
61654 0,00000
61655 000000
COME
SAVE
SAVE
OF
HERE TO OUTPUT CHAR IN
CHARACTER
NUMBER
PORTS
AND FIRST
PORT
ASK 2114 IF
THIS USER'S BUFFER
~
IS FULL
.JS8 S14SC, I
102311
027564
102511
0419*
0420*
0 4 21 61602 061603
0422 61603 044101
0430
0431
TCROT NOP
STA TCR02
LOA TCRPC
STA TCR03
LOA TCRPT
STA TCR04
TCR5 LOA TCR04
AlF,ALF
lOR ISF
TCRPU OfF
ASC
TCRSO OfF
ASC
TeRPT
TCRPC
TeRce
TCRBA
TCR02
TeR03
TCR04
GET RESPONsE
yES, GO ASK AGAIN
NO, GET PORT "
OUTPUT CODE
AND CHARACTER
GO SEND IT
BUMP PORT NUMBER
OUTPUT TO ANOTHER?
yES
NO, RETURN
.+1
t9,HAROWARE FAILURE ~~ PORT UNAVAILABLE.
.+1
16,HARDWARE FAILURE ... SYSTEM DOWN.
BSS 1
BSS 1
BSS 1
ass 1
BSS t
8SS 1
BSS 1
•
NUMBER OF FIRST PORT TO GET NEws
TOTAL
OF PORTS TO RECEIY! NEWS
LENGTH OF MESSAGE
MESSAGE CHARACTER POINTER
OUTPUT CHARACTER
ROUTINE
TEMPS
*
PAGE
r
0434*
0435*
0436*
0438
~439
0440
0441
",442
0443
0444
0445
0446
0 44 7
0448
0449
0450
04 51
~452
0453
0454
0455
0456
0457
0458
0459
~292
#24
SYSTEM DEATH TELETYPE DRIVER
UPON ENTRY (A) HOLDS THE NUMBER OF CHARACTERS TO BE OUTPUT.
BIT 15 OF A • 0 FOR X·OFF eR LF AFTER OUTPUT.
eB) POINTS TO THE FIRST WORD OF THE BUFFER TO BE OUTPUT.
61656 000000
61657 073722
6166121 004066
61661 077723
61662 060220
61663 173724
61664 102612
61665 063-722
61666 001265
61667 002003
61670 027711
61671 Ql03400
61672 043722
61673 073722
61674 067723
61675 037723
61676 004065
61677 160001
61700 002041
61701 001727
61702 010474
61703 030476
61704 102612
61705 103712
61706 102312
61701 027706
61710 021665
0460
0461
0462
0463
0464
0465*
0466.
0467 61711
0468 61712
0469 61713
0470 61714
0471
61715
0472 61716
0473 61717
0474 61720
0475 61721
0476*
0477*
0478 61722
ff'479 61723
0480 61724
0481 61725
0482 61726
0483 61727
0484
SYCON NOP
STA svcct
CLE,ELB
STB SyeSA
LDA SBP
sTA SYBIT,I
SYC3 OTA 1SC
BYe1 LOA sYeec
RAL, eLE', ERA
SZA,RSS
JMp sYC2
ceA
ADA sycec
STA sycec
LDB sytSA
ISZ SYCBA
CLE,ERB
LOA B,I
SEZ,RSS
AL.F,ALF
AND 8177
lOR 8200
OTA 1SC
STe ?St,C
SFS 1SC
.JMP .... 1
JMP SYC1
002040
127656
060362
031027
073722
067725
004066
077723
027665
SyC2
000000
000000
056642
SYCCC
SYCBA
SYaIT
SYCCL
061726
011415
005~H'J0
SEz
.IMP SYCON, I
L.OA .+3
lOR BI115
STA SYCCC
LOB sveCl
CLE,ELB
STB SyCBA
JHP SYCl
BSS
Bss
OfF
OEF
OCT
OCT
UNS
1
t
TBITS
... 1
011415
0fd5000
SET CHARACTER COUNT
INITIALIZE
CHARACTER POINTER
BITS FOR "PRINT ONLY"
SAVE THEM
SEND THEM
HAVE ALL CHARACTERS
(COpy CRLF 8IT INTO E)
BEEN OUTPUT7
yES, GO SEE ASOUT CRLF
NO, DECREMENT
CHARACTER COUNT
COMPU-TE
WORD.CHARACTER
ADDRESS
LOAD WORD
POSITION
CHARACTER
EXTRACT CHARACTER
ADD IN BIT 7
OUTPUT IT
REQUEST CHARACTER TRANSfER
WAIT FOR
COMPLETION FLAG
GO DO NEXT CHARACTER
WANT CRLF1
NO, RETURN
yES, 3 CHARACTERS
WITH NO CRLF
FOLLOWING
ADDREss OF
X-OFF CR LF
GO OUTPUT THESE
COUNT OF CHARACTERS TO BE OUTPUT
CURRENT CHARACTER POINTER
POINTER TO CURRENT CONTROL 8ITS
x.OFF CR
l.F
PAGE 0293 #24
0486.
DRIVERS
CO~MUNICATIONS
~487.
THESt ROUTINES ARE USED FOR COMMUNICATION BETWEEN THE 2114
0488.
AND 2116
0489.
0490. 21\6 TO 2114 SEND DRIVER
0491.
0492 62000
0493 62000 000000
049. 62001 1213100
0495
62002 070073
0496 62003 076245
0497 62004 164632
04 9 8 62005 005726
0499 62006 006400
0500 62007 174632
0501
0502
05~3
0504
05 0 5
0506
0507
1(J50a
0509
0510
0511
0512
0513
0514.
ORG 620008
Sl4SH NOP
eLF 0
STA SVCH2
518 SVBC2
LOB DCLCt,I
BLF,ELB
CLB
STB DCLC1,I
6201((1 102100
62011 102311
sr,
6 2 012
62013
6 2 014
62015
62016
62017
JMP
OTA CH2
026011
102611
1 03 711
106711
164634
103100
62020 002040
62021 174632
62022 066245
62023 102100
62024 126000
SAVE COMMUNICATION
GET CLOCK WORD
IF IT IS A JMP, BIT 12
WILL BE SET
BLOCK CLOCK
0
·-1
SFS CH2
STC CH2,C
wAlT FOR ACKNOwLEDGMENT
OF PREVIOUS TRAN&MISSION
OUTPUT wORD
INTERRUPT OTHER MACHINE
CLC CH2
LOB OCLC2,I
elF QJ
SEZ
STB Dele1,I
LOB SVBC2
STF 0
JMp SlASH, I
UNBLOCK CLOCK UNLESS IT WAS
BLOCKED WHEN wE ENTERED
ExIT
0515. 2114 TO 2116 RECEIVE DRIVER
0516.
0517 62025 000000
05ta 62026 070070
0519 62027 07 40 71
0520 62030 001520
R14CM NOP
STA eMA
ERA,ALS
SOC
0521
62031 102201
0522
62032 002004
0525
~524
62033 070012
62034 102510
62035 001723
INA
STA CME
Ll. CH1
ALF,R"R
0526
62036 010366
AND .+7
0523
0527 62037 042041
052a 62040 124000
0529.
0530 62041 162042
0531 62042 062062
0532 62043 062017
0533 62044 062145
0534
0535
0536
0537
0538
62045
62046
62047
62050
62051
062154
062166
062204
062052
062052
SAVE
STB eMS
AOA CMTBL
JMP 0,1
CMTBl. DE'
OEF
OEF
DEF
OEF
DEF
OEF
OEF
.+1,1
HVL
ABR
BFL
aFE
ETO
UHU
R14RT
OEF R14RT
A,8,E
AND OVERFLOw
LOAD REQUEST wORD
OPCODE IN BITS a.e,
MASK TO THREE 8ITS
"DO ON DECODE TABLE POINTER
BRANCH TO APPROPRIATE ROUTINE
HAVE LINE
USER ABORTED
BUFFER FULL
BUFFER EMPTY
ENTER STATEMENT TIMED OUT
USER HUNG UP
PAGE 0294 #24
0040*
0541*
0542*
0543
0544
0545
0546
0547
0548
0549
0550
t'IOIrr.
COMMUNICATIONS DRIVERS
ALWAYS RETURNS HERE
62~52 060072
62053 103101
62054 0000136
62055 102101
62056 060070
62057 0164071
62060 103710
62061 126025
R14RT LOA eME
CLO
SLA,ELA
5TO
LOA CMA
LOB eMS
STC CH1,e
JMP R14CM,I
RESTORE
A,B,E
AND OVERFl.OW
ACKNOWLEDGE RECEIPT
EXIT
~
1rJ'O.1'O.1'.
0552. 2114 HAS A LINE
0553.
0554 62062 016227 HVL
JSB
62063
002002
SZA
"555
CPA
0556 62064 2150361
RSS
0557 62065 002001
JMP
0558 62066 026052
LOA
0559 62067 160001
lOR
0560 62070 030462
0561 '62071 170001
srA
0562 62072 1212510
LIA
0563 62013 010500
AND
ADB
0564 62074 044377
0565 62075 170001
STA
JMP
0566 62076 026052
t1567.
0568* USE~'S ABORT REQUEST
0569.
JSB
0570 62077 016227 ABR
0571 62100 160001
LOA
0572
62t(.11 010524
0573
0574
0575
0576
0577
0578
621~2
0579
0580
fti581
0582
0583
0584
0585
0586
0587
0588
0589
05921
0591
0592
62111 030476
62112 170001
026052
ASRt
044374
160001
050363
026052
040344
62121 002020
62122 026135
62123 060412
62124 003004
0593
62125 140001
0594
62126 002020
0595
62127
~26052
%INPT
R14RT
1,1
COM14
1,1
CHI
8377
,+7RTIM
1,1
R14RT
FOTTy
1,1
AND B30M
050600
62103 026052
62104 160001
62105 010377
62106 002003
62107 026114
6211~ 160001
62113
62114
62114
62115
62116
62117
62120
FOTTY
B.~ FIRST wORD OF TTY TABLE
SKIP IF STATUS IS IDLE.
NO SKIP IF INPUT WAIT
IDLE OR WAITING FOR INPUT
IGNORE
SET 2114
COMMUNICATION
BIT
STORE RESPONSE
TIME IN TTY
TABLE ("0 IF NO
ENTER TIMING)
RETURN TO 211. DRIVER
B.> FIRST WORD OF TTy TABLE
CPA PBFLG
CBFL Ga 0 AND PBFLG-l1
JMP R14RT
YES, ABORT NOT ALLOWEDt
LOA 8', I
NO. ABORT POSIBLE'
AND UNABT
UNA8LE TO
SZA,RSS
ABORT?
JMP ABRl
NO
LOA t,l
lOR ABTRY
DELAY ABORT
STA 1,1
ATtEMPT
JMP R14RT
RETURN TO 2114 DRIYER
EQU •
ADB ,+19TAT
B.> STATUS
LOA 1,1
A • STATUS
CPA XSYNT
CHECK FOR SYNTAX.
JMp R14RT
CAN'T ABORT OUT OF syNTAX,
ADA .+.-XSyNT-l.COMJ+COH2
SSA
SKIP IF LIBRARY PROGRAM.
JMP ABR2
OTHERWISE ABORT ALWAyS ALLOWED,
LOA ,+%SYNT-.+l+CATwCOM2
CMA,INA
ABQRTABLE
AOA B,I
LIBRARY
SSA
PROGRAH1
JMP R14RT
NO
pAGE 0295 #24
COMMUNICATIONS DRIVERS
0596
6213~
\60001
0591
62131
~0J004
059d
0599
0600
0601
0602
0603
0604
0605
0606
62132 rlI4Q1421£1
62t33 "02020
I'll ... ,.. . .
IfJOtCl,
LOA B,I
MAYBE
CMA,INA
ADA .+XSYNT-.+l+STA.CQM2
5SA
b2tJ4 0126052
A~R2
62135
621J~ 044342
62136 t6A001
62137 030462
62140
62141
62142
62143
62144
170001
044374
003400
170001
026052
.)MP R 14HT
NO
E.QU.
ADS .-1STAT
LOA 1;1
lOR COM14
B.> fLAGS
SET 2114
STA 1,1
ADS .+15TAl
eCA
5rA 1,1
SET
STATUS TO
ABORTING
0608
.JMP R14RT
0609
0610.
0611. BUFFER IS FULL
0612.
0613 62145 016227 BFL
JSB F01TY
121614 62146 050362
CPA XOUTW
JMP R14RT
0615 62147 026052
0616 62150 160001
LOA 1,1
lOR OUTWT
0617 62t51 030417
STA t,I
061a 62152 170001
0619 62153 026052
JMp R14RT
0620.
0621.
0622. BUFFER IS EMpTY AGAIN
0623.
JSB FDTTY
0624 62154 016227 BFE
0625 62155 050362
CPA XOUTW
CCA,CCE,RSS
0626 62156 003701
0627 62157 003500
CCA,CLE
XOR OUTWT
0628 62160 020417
0629 62161 110001
AND 1,1
0630 62162 002040
SEZ
lOR COM14
0631 62163 030462
0632 6216 4 110001
STA t,I
0633 62160 A26052
JMP .R14RT
0634. ENTER STATEMENT lIMED OUT
0635*
•
0636 62166 016227 ETO
.J5 8 FOrTY
ADS .... ?RSTR
0637 62167 044373
0638 62170 160001
LOA 1,1
CPA Dt::NRT
0639 62171 052246
06 4 0 62172 0l2J20~1
RSS
~641
62173 026052
JMP R14RT
0642 62174 044343
A08 .-?RSTR
LDA 1,1
0643 62175 160001
JOR COM14
0644 62176 030462
4
STA 1,1
06 5 62177 170001
0646 62200 044374
AoB .+15TAT
0647 62201 060354
LOA XENTO
0648 62202 17~001
STA t,l
~649
62203 026052
JMP R14RT
COMMUNICATIONS
BIT
RETRUN TO 2114 DRIVER
B .~FIRST wORD OF TTY TABLE
IGNORE IF
ALREADY OUTPUT WAIT
SET
OUTPUT
WAIT BIT
RETURN TO 2114 DRIVER
B.~ fIRST WORO OF TTY TABLE
CHEcK FOR STATUS OUTPUT WAIT
A ".1, E .. 1
A .... 1, E ..
CLEAR OUTPUT
WAIT BIT
IF STATUS _ 10UTW, TMEN DON'T
51.1
SET 2114
COMMUNICATIONS BIT
RETURN TO 2114 DRIVER
Ba. fIRST WORD Of TTY TABLE
B -> RESTART ADDRESS
A • RESTART ADDRESS
wAITING FOR ENTER1
YES, SET COM BIT.
NO, MUST SE MISTAKE,
SET 2114
COMMUNICATIONS
BIT
SET
STATUS TO
ENTER TIMEOUT
RETURN TO 211~ DRIVER
PAGE 0296 #24
0651"
0652.*
0653*
065'-
0655
0656
0657
0658
0659
0660
0661
0662
0663
0b64
0665
0666
0667
0668
0669
0670
0671*
0672
COMMUNICATIONS DRIVERS
USER HUNG UP
JSB FOlTY
ADB .... ?LINK
CpA XSyNT
JMP UHUl
62204 016227
62205 044375
62206 050363
62207 026213
62210 040344
62211 002020
62212 026215
ADA
62213 054272
62214 026225
62215 044356
62216 060355
62217 170001
62220 044342
62221 160001
62222 030462
62223 170001
62224 026052
UHUl
62225 074260
UHU3
UHU2
CAN'T OIsCONNECT
OUT OF SYNTAX
.+.~XSYNT.l.COM3+COM2
SSA
LIBRARY PROGRAM RUNNING'
JMP UHlJ2
NO
CPS MLINK+1
YES, IS USER HEAD OF QUEUE?
UHU3
yES
JMP
ADS •• ?STAT-?LINK NO
SET STATUS
LDA XDl8C
STA
B,I
AOB
LOA
lOR
STA
JMP
,.?FLAG.1STAT
B,1
SET 1/0
COM14
COMMUNICATIONS
B,I
BIT
R14HT
RETURN
TO DISCONNECT
STB HQDIS
0673 62226 026052
JMP R14RT
0674..
••
0675. FIND FIRST WORD OF TTY TABLE.
0676..
SET DISCONNECT FLAG
••
0677. EXIT WITH (B) .> FIRST WORD OF TELETyPE TABLE
0678*
CA) • USERS STATUS
0679*
0680
0681
0682
0683
0684
0685
0686
0681
0688
0689
069 0
0691
0692
0693
62227 000000
6223(}1 102510
62231 001727
62232 010416
62233 1002PJ0
62234 000403
62235 064000
62236 044644
62237 060001
6224 0 040374
62241 160000
6 2242
62243
62244
622 4 5
62245
050353
026052
126227
FOTTY NOP
LIA CH1
ALF,ALF
LOAD REQUEST WORD
TTV* IN 4.0
MASK TO 5 BITS
AND ,+37B
MPy .+TTY01-TTy00
LOB "
A08
LOA
ADA
LOA
CPA
JMP
JHP
R14ED EQU
SVBC2 8SS
OENRT OEF
OTTY0
1
.+15TAT
0,1
IPUN
R14RT
FDlTY,I
•
COMPUl LOCATION
OF FLAG WORD
A .> FLAGS
A .> STATUS
A • STATUS
CHECK FOR PORT UNAVAILABLE
IGNORE IF SO
0694
t
0210000
0695 62246 041235
ENTRT
WHERE ENTER WAITS.
0696*
0697. ROUTINE TO CLEAR PBFLG & CbFlG BITS AND TO TELL
0698* THE OTHER MACHINE ABOUT THE ABORT.
0699*
0700 62247 000000 TRNOF NOP
ADB ... 1STAT
0701 62250 044342
elF 0
0702 62251 103100
LOA 830M
0703 62252 060524
C~EAR PBFLG & CBFLG
0704 6225,~ "03000
eMA
BITS.
0705 62254 110001
AND 8,1
PAGE 0297 *24
0706
0707
0708
0709
0710
0711
0712.
0713.
~2255
COMMUNICATIONS DRIVERS
170001
0060214
160001
0.130251
114136
62262 126247
62256
62257
62260
6226t
ST. B,I
INB
LDA B,I
lOR AST
JS8 S14SC,I
JMP TRNOF,I
a••
7TNUM
.- 7TNUM
TELL OTHER
M.CHIN~.
PAGE 0298 #25
0002
0003
0004
0005
0006
0007
0008
~009
0010
0011
0012
SCHEDULER
ORG
70000
000140
17772 0
177737
177645
106051
70~05 071540
700A6 047040
70007 0431(IJ6
70010 020100
70011 030040
7A000
70001
70002
'0003
70004
0013
,~~a1~
..... ..., ..... 072037
0014
70013
70014
70015
70016
7 001 7
70020
70021
70022
0015
0016
0017
0018
0019
0020
0021
0022
057324
000000
177776
000000
~00000
000000
072024
rti74252
70023 0162247
7000~B
OCT 14~
M608 OCT -60
M41B OCT .. 41
M133B OCT .. 133
MCOM2 ASS .COM2
M36K
ABS ... JrlH,HH,..6000
ASCIN ASC t, N
ASCFF ASC tIFf
Ases. ASe 1,
ASC0B ASC 1,0
OCOM6 OEF COM6
TTYCK ABS TTY00
OUTM1 ASS 1
TE.MPS USED BY ourCH ROUTINE.
)(
OCT -2
CTEMP sss 1
SMAIN OCT 01
CURRENT Slt4APR DRUM TRANSFER FLAG
FMAIN OCT 0
OLD TOp OF Q fLAGS pOINTER
XCOM5 OEF COM5-2
INSQA DEF INSE.Q
TRNFP OEF TRNOF
B140
,
PAGE 0299 #20
""24.
0025"""260021.
0028.
0029.
00J0.
0031*
0033
0034
0~35
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
SCHEDULER
THE CLOCK DRIVER IS THE CENTRAL POINT THROUGH WHICH CONTROL IS
PASSED TO THE SCHEDULER. ENTRY COMES TO THE DRIVER WHENEVER THE
CLOCK (REAL TIM~ SCALAR) INTERRUPTS. THIS EVENT OCCURS EVERY
100 MS. BESIDES GIVING CONTROL TO THE SCHEDULER, THE CLOCK
DRIVER ALSO HAS THE TASK OF UPDATING THE TIME OF DAY CLOCK.
THIS CLOCK IS A TWO WORD ENTRY WHOSE VALUE IS AS fOLLO~SI
DATI M8 24.0AY+HOUR
DATIM.t.600*MIN+10*SEC.36000
10024 000000
10025 072016
70026 034172
70021 026034
70030 062005
702131 010172
70032 034171
70033 000000
10034 036015
eL.KIN NOP
STA CTEMP
ISZ DATIM+l
JMP CLC0
LDA M36K
STA OATIM+l
ISZ DATIM
Clca
70035 026042
70036 060355
70037 072015
10040 062 0 16
NOP
ISZ X
JMP CLC1"'1
LOA ,-2
5TA X
LOA CTEMP
ENTRY POINT.
SAVE A.
BUMP 100M8 COUNTER
NO PROBLEM IF NO SKIP
RESET 100MS COUNTER,
BUMP HR COUNTER.
JUST IN CASE.
ENTER SCHEDULER THIS TIME1
NO
YES, RESET
RESET SKIP WORD
RESET A
0047., THE NEXT INSTRUCTION 15 NORMAL~Y A JHP. WHEN THE
0048. SCHEDULER IS RUNNING, HOWEVER, IT PREVENTS ITSELF
0049. FROM BEING REENTERED BY "INSERTING A NOP,
0051
0052
0054
70041
10042
70043
10044
0056
70045 026046
0053
0058.
0059.
0060.
000000
062016
103114
126024
70046 071224
70047 0024V10
0064
7005~ 072041
10051 062024
70052 071227
~071
111072
CLC2
NOP
tOA CTEMP
elF CLOCK
JMp ClKIN,I
RESET A
ALLOW ANOTHER CLOCK INTERRUPT,
RETURN,
JMP SCHED
USED TO INSERT IN CLC1.
THE SCHEDULER SECTION OF TSB DETERMINES WHICH
PROGRAM IS TO RUN NExT. FIRST IT CLEARS CLC1,
ALLOWING THE CLOCK TO CONTINUE INTERRUPTING.
,
0062
0063
0065
0066
0067
0068
0069
0070
CLCl
70053 103114
70054 075225
70055 001520
70PJ56 102201
70057 002004
7006", Ql71226
SCHEO STA AREG
CLA
STA CLe1
LOA eLKIN
STA PREG
eLKED elF CLOCK
STB BREG
ERA,ALS
sOC
INA
STA EREG
0kJ73
70061 064272
t DB MLINK+l
0074
70062 044341
70063 076020
ADS ... ?LINK
STB FMAIN
1ti075
SAVE A-REGISTER,
INSERT NOP IN CLCl TO PREVENT
REENTERING SCHED.
SAVE THE PROGRAM COUNTER
ALSO,
NOW LET THE CLOCK IN AGAIN,
SAVE 8 REGISTER,
E.REGISTER,
AND OVERFL.OW REGISTER.
GET POINTER
TO FLAG WORO
PAGE 0300 #25
SCHEDULER
LOA TIMEF
GET TIMER FLAG.
70064 060262
SZA
IF 0, THIS IS NOT A TIMED PROG.
0077 7°065 002002
ISZ TIMER,I
IF NOT 0, BUMP TIMER.
0078 70066 134057
0079 70067 026360
JMP 8CHl
If NOT OUT OF TIME, SKIP
ROTATING THE RUN QUEUE
0080*
0081*
AT THIS POINT WE HAVE DISCOVERED THAT THE PROGRAM THAT HAS
0082*
0083*
AE[N RUNNING HAS EXHAUSTED ITS TIME LIMIT. THE NEXT STEP IS
TO ADJUST THE QUEUE SO THAT THIS PROGRAM IS MOVED TO THE
0084*
BOTTOM, THIS IS ACcOMPLISHED BY DELETING THE PROGRAM
0085*
FROM THE QUEUE AND THEN REINSERTING IT WITH ITS NEW PRIORITY.
0086*
0076
t:llnlO"7--...
lCJKlO' ..
70070 V'164272
70071 et06004
0088
0089
0090
0091
0092
7007J 170001
70074 044356
~093
70075
1600~1
0094
70072
~60363
0~95
70076 070272
70077 116022
0096
7010{(t 017251
0097
0098*
701~"
0100*
0101.,.
0102*
0103
0104
~105
0106
0107
0108
0109
SCH3
026360
LDB
INS
LOA
STA
ADS
LOA
STA
JSB
JSB
JMP
MLINK+l
.+4
1,1
GET THE ADDRESS OF PRIORITY
FOR THE CURRENT PROGRAM,
SET IT TO LdW PRIORITY.
,+?LINK~?PLEV
1,1
MLINK+l
INSQA,I
SWAPR
SCHl
GET THE LINK FROM THE CURRENT
PROGRAM AND STORE IT IN MLINK+t
INSERT USER IN QUEUE
START EARLY SWAPPING
CHECK FOR COMMUNICATION
FROM 1/0 PROCESSOR
TEST fOR ANY TTV35 BUSINESS
70102
70102
70103
70104
70105
70106
70107
7"110
5tHS1 fQU •
064644
Ql76013
003400
050311
026271
050313
026222
SCH5
LDB
STe
eCA
CPA
JMP
CPA
DTTV0
TTYCK
T35F1
SCH15
T35F3
JUST fINISHED CHECKING TTYS
REINITIALIZE
POINTER
TEST FOR DRIVER BUSY
DRIVER IS BUSY,
.JMp sCH 16
COMMAND ENTERED BUT NOT STARTED
0110
0111*
0112. WHEN T35F1-0, THE CONSOLE IS QUIET SO WE CAN 00 LOGGING.
0113*
0114 70111 040304
0115 70112 050356
0116 70113 026126
0117*
011S.
~121
0122
0123
0124
0125
0126
0127
,,",128
0129
CPA .-1
.JMP SCH52
TEST FOR ANY ENTRIES ON MESSAGE
MESSAGE QUEUE EMPTy
oUTPUT AN ELEMENT OF THE MESSAGE QUEUE
0119*
0120
ADA MSQCT
70114
70115
70116
70117
70120
70121
70122
70123
70124
70125
0130.
v.l131 70126
070304
064305
044426
054307
064310
074305
1600~1
00 6 004
114760
026271
Sf A
LOB
ADB
CPB
LOB
STB
LOA
INB
MSQCT
MSQPl
.+MESLN
MSGND
MSQBG
MSQP1
B,I
.JSB TTY35, I
JMP SCH15
SCH52 E.gU •
DEcREMENT MESSAGE COUNTER
ADVANCE MESSAGE POINTER
If AT END OF BUFFER
THEN WRAP AROUND
SET UP NEW ADDRESS
GET ADDRESS AND
LENGTH OF MESSAGE
AND OUTPUT IT
PAGE 0301 #25
0132
0133
0134
0135.
0136*
SCHEDULER
70126 "'40772
70127 050356
70130 026222
121142
0143
°144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0151
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
"1168
0169
0170
flI171
0172
0173
0174
0175
0176
0177
0178
0179
0180
70131
70132
70133
70134
70135
10136
7 0 137
070772
060706
0020~4
050704
060702
07C't706
16 0 706
7014~
066006
70141 002020
70142 066007
70143 016212
70144
70145
70146
70147
10150
70151
721152
101052
010416
042010
072213
160706
010512
006400
10153 100400
70154 000371
70155 005127
10156 0A6011
70157 076215
70160 017063
7 0 161 072214
10162 034706
70163 160106
,0164 010416
7!a165 017063
70166 072221
70167 160706
70170 006400
70171 101025
70172 100400
7"173 000456
70174 174706
7 0 175 017 0 6 3
70176 072216
70177 160706
70200 017063
70201 072217
70202 060405
702"'3 066206
70204 114760
70205
~26271
0182
0183
0184
0185
JMP SCH16
T[8T FOR ANY tNTRIES IN LOGTABLE
LOG TABLE IS EMPTy.
SET UP lOG BUFFER
0137.
0138
0139
0140
0141
ADA LOGeT
CPA .-1
70206 1702~7
70207 025052
STA LOGCT
LOA LOGPl
INA
DECREMENT LOG COUNTER.
BUMP LOG POINTeR
CPA L.OGND
IF AT END,
WRAP AROUND.
LOA
STA
LOA
LOB
SSA
LOB
5T8
LOGBG
lOGPl
LOGPt,I
ASCIN
ASCfF
lOGBF+3
LSR 10
.AND
ADA
STA
LOA
AND
eLB
OIV
TEST FOR LOGON
OR LOGOUT.
SHIFT LOG CHAR TO LEAST 5 BITS •
MASK OFF OTHER STUFF,
CONVERT TO ASCII.
.+378
ASCBA
LOG8F+4
LOGP1,I
81777
GET ACCOUNT NUMBER AGAIN,
KEEP ONLY. PART,
.+10
GET 1ST 2 DIGITS IN AI LAST IN B
BlF,BLF
ADS ASC0B
STe LOGBF+6
SET UP LAST DIGIT AS
ASCII LEFT HALF.
.JS8 #L TEN
CONVERT FIRST"2 TO ASCII ALSO
STA
ISZ
LOA
AND
JSB
STA
LOA
eLB
LOGBF+5
LOGPl
LOGP1,I
.+318
lfiLTEN
lOGBF+10
LOGPt,I
NOW GET THE TIME.
GET TERMINAL NUMBER
CONyERT ANO STORE IN BufFER,
ASR 5
oIV 060
STe
JSB
STA
LOA
JSB
STA
LOG P1,I
NLTEN
LOG8F.7
SAYE SECOND HALF
CONVERT FIRST HALF TO ASCII.
LOGP1,I
,lTEN
LOGBF+8
CONVERT 2ND HALF TO ASCII,
LOA .+22
LOB LOGR2
SCH21 Jse TTYJ5,I
TO PRINT THE
STUFF.
JMP SCH15
SUP
LOGR2 OEF *+1,1
BUFFER ADDRESS
LOGBF ASC 11,**LOGOFF A123 0930 *01
UNS
(I.~PUNCH)
PAGe 0302 #25
B187*
0188*.
0189*
0190
0191
0192
0193
0194
0195
0196
0191
0198
0199*
0200*
SCHEDULER
TTY35 110 COMPLETE
10222
70223
7 0 224
10225
10226
70227
70230
70231
;0232
050312
SCHl6 CPA T35F2
0020~1
RSS
026271
060276
064300
050362
026254
002002
026271
JMP
LOA
LOB
CPA
JMP
SCH15
T35ST
T35PR
,OUTW
SCH23
SZA
JMP 5CH15
TEST DRIVER COMMUNICATE FLAG.
GET CONSOLE STATUS,
IF OUTPUT WAIT,
GO SET HIM UP,
IF NOT IDLE wEVE ALREAOy
QUEUfD HIM!
TTY35 INPUT COMMAND
0201*
0202
0203
70233 060301
0204
7~235
0205
0206
0207
0208
0209
0210
0211
70236 07 00 6 1
70234 el70060
t~60J02
70237 V)60417
10240 070064
7 0 241 017111
70242 026262
70243 026264
70244 026264
LOA
5TA
LOA
STA
LOA
STA.
J5B
JMP
JMP
JMP
121212*
0213* SET UP QUEUE ENTRY FOR
L-J214.
'f3582
SBHED
T35ND
SCHL
.... 408
SCHP
SCOM
8CH17
SCH18
SCHl8
POINTER TO FIRST CHARACTER
OF CONSOLE BUFFER,
POINTER TO ENO Of
CONSOLE BUFFER.
INITIALIZE COMMAND
HOL.DER,
GET COMMAND,
BLANK LINE
ERROR
ERROR
CONsoLE.
0223
721255 060361
0224
70256 070300
70257 064263
7 0 260 026077
70261 106056
LOA SBHEO
SET POINTER fOR
STA T35CP
T35CR.
LOA .... 408
SET UP THE LAST
STA T35LC
CHARACTER AS A BLANK
LOA #LIB*
SET RESTART ADDRESS.
STA T35RS
AOB SCH19
SfT PHOGRAM STATUS
seH23 srB T355T
TYPE.
LDA .+2
SET PRIORITY.
STA T35PR
LOB T35LN
GO INSERT IN QUEUE
JMP SCH3
SCH19 ASS .COM2+XSYNT_ •• 1
0229
70262
SCH17 LOA ONE!
0230
0231
0232
70263 002001
~233
70266 074312
0234
0235
70267 064636
70270 026204
13215
. 0216
0217
021tJ
0219
0220
0221
0222
0225
0226
0221
10245 060060
70246 070054
70247 060417
70250 070055
10251
70252
70253
70254
060606
070275
046261
074276
06~722
70264 ",60363
70265 006400
OUTPUT LINE FEED
RSS
seHl8 LOA .+4
CLB
STB T35F2
L080EH
JMP SCH21
OUTPUT ERROR MESSAGE
PAGE
#25
~J03
SCHEDULER
0237*
0238.
0239 70271
~17251
SCH15 JSB SWAPR
0240*
0241*
0242*
0244*
0245*
0246*
0247*
0249
0250
0251
0252
0253
0254
THE PROGRAM TO RUN IS AT THE HEAD OF THE QUEUE, ANO aWAPR HAS
GUARANTEED THAT IT IS IN CORE. THE FOLLowING SECTION OF CODE
SETS IT uP TO RUN, ANO ALSO SETS uP THE CLOCK DRIvER SO THAT
FUTURE INTERRUPTS WILL GO BACK INTO THE SCHEDULER,
70273
70274
70275
70276
70277
060272
LOA
ADA
0271
0272
0273
0274
0275
0276
0277
0278
0279
0280
0281
0282
0283
028 4
0285
·0286
STA
040356
164000
70300 044344
0266
0267
0268
0269
0270
INHIBIT INTERRUPT,
RESTORE A CJMP SCHED. IN THE
CLC1
CLOCK INTERRUPT ROUTINE.
MLINK+l
GET THE STATUS
.+1STAT-?lINK
OF THIS PROGRAM
A,I
AND CHECK TO SEE
.+,-xSyNT+COM2.COM3.t IF IT 18 TyPE III
.+1PLEV-?STAT
LDA CLC2
10301 040361
70302 006020
70303 026306
70304 006400
70305 174000
70306 040354
70301 164000
70310 ~06002
70311 075227
70312 006400
70313 1140021
0265
o
062045
072041
0256
0257
0258
0259 .
0261
0262
0263
0264
elF
70272 103100
0255
0260
CHECK FOR ANYTHING TO DO, IF NOT
SWAPR WILL GO TO 8CHi AGAIN,
IT WILL RETURN HERE Jf THERE IS
AN EXECUTABLE PROGRAM IN CORE,
70314 074262
70315 002004
70316 164000.
70317 0 .. 0355
70320 070057
70321 054364
7 0 322 03426 2
70323 040344
70324 064000
703 2 5 160001
70326 010520
70327 070203
70330 061226
7 0 33 1 10 3101
7 0 332 000036
70333 102101
70334 061224
70335 065225
70336 102100
70337 125227
LOB
ADB
ADA
SSB
SCH2
JMP SCH2
NOT TyPE 111
CLB
IT IS, SO SET THIS
STe A,I
USER'S PRlORITY TO ZERO
ADA .+?RSTR.1PLEV GET RESTART ADDRESS
LOB 0,1
IF NOT 0, PUT IT IN PREG
SZB
·TO START UP PROPERLY.
STB PREG
CLB
PUT 0 INTO TABLE IN ANY CASE
STB ~,I
STe TIMEF
SET TO SAY NO TIMING,
INA
GET PROGRAM STATUS.
LDB 0,1
ADA .... ?ClOC .. ?STAT
SET TIMER POINTER,
STA TIMER
CPS XSYNT+l
IF STATUS IS RUN, SET
ISZ TIMEF
TIHEFLAG FOR CLOCKING,
ADA .-?CLOC
SAVE FLAGS
LOB A
POINTER
LOA B,I
RESTORE
AND MBUST
DISC BUSY
STA ~BUSY
FLAG
LOA EREG
RESTORE E
CLO
AND OVERFLOW
SLA,ELA
REGISTERS,
STO
LOA AREG
RESTORE A AND
LOB BREG
B REG,
STF 0
ENABLE INTERRUPT AND
JMP PREG,I
TRANSFER TO PROGRAM,
PAGE 0304 #25
SCHEDULER
0288.
0289.*
0290.
0291
0292
0293
0294
0295
0296
0297
0298
0299
0300
0301
0302
0303
START OF SYSTEM
060362
102614
103114
206711
106712
103 4 5 060167
70346 003000
70347 001727
10340
70341
70342
70343
70344
TSB
70350 030222
70351 114736
70352 102311
LDA .+3
OTA CLOCK
8TC CLOCK,e
CLC CH2
CLC ?SC
L.DA NPORT
eMA
AlF,ALF
lOR INI
JSB S14SC,1
BFS CH2
JMP
8TC CH1,e
.·1
10353 026352
70354 103710
START CLOCK COUNTING IN
100 MS UNITS.
START CLOCK
A • NUMBER OF LEGAL PORTS • 1
PLUG IN INITIALIZATION COOl,
wE'RE STARTING
WAIT FOR 2114
TO FINISH
0304 70355 060365
LOA ,+6
START SYSTEM
LOB READY
TELETYPE BY OUTPUTTING
0305 70356 064265
0306 70357 114760
JSB TTY35,I
READy MESSAr;E~
0307.
0308.
THIS SECTION IS THE BEGINNING OF THE MAIN pART OF THE SCHEDULER. CONTROL ALWAYS COMES HERE TO EXAMINE THE TTQ UNTIL IT'S
0309*
0310*
EXHAUSTED, OR WHEN THERE IS NOTHING TO DO. SWAPR ALWAYS COHES
0311.
TO THIS POINT ~HEN THE QUEUE IS EMPTY OR THE FIRST PROGRAM ON
THE QUEUE IS ABSENT,
0312*
0313. THIS SECTION ACTUALLY PROCESSES A TTQ ENTRY, THERE ARE SEVERAL
0314* KINOS OF ENTRIES WHICH MAY BE CLASSIFIED AS FOLLOWS,
0315*
1) ABORT. THIS IS INDICATED By THE TELETyPE STATUS BEING"
0316.
0317.
-1. THE ACTION TAKEN IS TO STOP THE PROGRAM (IF IT IS
IN THE QUEUE), AND TO INITIATE THE ABORT MESSAGE.
031S*
0319*
0320*
0321.
0322*
0323*
0324*
0325.
0326.
0327.
0328.
0329*
0330*
0331*
0332*
0333*
~334*
2) OUTPUT TERMINATE • THIS IS INDICATED By THE STATUS BEING
XOUTW. THE TTQ ENTRY REALLY MEANS THAT THE OUTPUT BUFFER
IS ALMOST EMpTY. THE PROGRAM IS pLACED 8ACK ON THE QUEUE
ACCORDING TO ITS PRIORITY,
3) INPUT • THIS IS INDICATED By STATUS BEING IINPT, IT INDI-
CATES THAT A USER PROGRAM OR SYSTEM PROGRAM THAT HAS
REQUESTED INPUT HAS GOTTEN IT. THE PROGRAM IS PLACED IN
THE QUEUE.
4) COMMAND • WHEN STATUS IS XIDlE, EITHER A COMMAND OR
A SYNTAX STATEMENT HAS BEEN ENTERED, THESE CAN eE DISTIN.
GuISHED By THE FIRST NON BLANK INPUT CHARACTER, WHICH IS
A DIGIT ONLY IF SYNTAX HAS BEEN ENTERED,
1r1336*
5) DISCONNECT e THIS IS INDICATED By STATUS BEING XDISC.
THE ACTION TAKEN IS TO CALL THE BYE ROUTINE
0337.
°338*
0339*
034"*
6) ENTER TIMEOUT ~ THIS IS INDICATED BY THE STATUS 8EING
IENTO. THE RESTART ADDRESS IS BUMpED AND THE PROGRAM IS
PLACED ON THE QUEUE.
0335.
~341·
0342
(11343
7036~
102100
70361 A66013
SCH1
STF 0
LOB TTYCK
PAGE 0305 #25
0344
0345
0 34 6
SCHEDULER
0351
70363
70364
70365
10366
10367
7037et
70371
0352
0353
70372 044333
70373 103100
~354
70374
70375
70376
70377
70400
70401
70402
70403
70404
"341
""348
0349
ItJJ~0
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0311
0372
0373*
0374*
HAVE ALL TELETYPES BEEN CHECKED?
YES
LOA 1,1
LOAD STATUS FOR THIS USER
ADB .+TTY0t-TTY00 GfNERATE ADDRESS FOR NEXT
STB TTYCK
USER
AND COM14
COMMUNICATION FROM 21141
SlA,RSS
SKIP IF SO
JMP SCHl
NO •• CHECK NEXT ONE
ADB .+TTY00-TTYBl MOVE ADDRESS BACK TO THIS u
CPS OTT32
JMP SCHSt
70362 054642
026102
160001
"44403
~7601J
"'10462
et020~J
02636~
elF 0
XOR
STA
STB
ADB
STB
ADB
LOA
ADA
1,1
CLEAR
t,I
COM14 BIT
TTQ
SAVE TABLE ADDRESS
STORE 10
.+11D
SCHIO
ADDRESS
.+?STATp?ID
1,1
A-STATUS
.-4
MAKE SURE
SSA,RSS
STATUS<4
JMP SCH1
IGNORE OTHERwISE
ADA •• 2
BRANCH TO SECTION
JMP 0,1
TO HANDLE REQUEST
OEF •• 8
JMp 9CH4
ENTER TIMEOUT
.JMP SCH8
DISCONNECT
ABORT
JMP SCH7
JMP SCH6
COMMAND
.]MP SCH5
ABORTING
NOp
INPUT
120001
170001
074062
044364
07 4 063
044367
160001
040353
002021
70405 026360
10406 042410
704,,7 124000
70410 07042 0
70411 026527
70412 026512
70413 026431
70414 026533
7 0 415 0261°4
70416 000000
COOF TO HANDLE INPUT OR OUTPUT.
0375.
0376 70d17
~377
7121420
0378 70421
0379 70422
0380 70423
0381
70424
0382 70425
0383 70426
0384 70427
0385 7043~
044361
160001
044355
170001
102100
044361
002400
170001
ADB
SCH51 LOA
ADB
srA
STF
.+?PLEV-?STAT
1,1
GET ACTUAL STATUS
.+?STAT.?PLEV
t,l
sET ACTUAL STATUS
'"
ADS .+?PlEV~?STAT
CLA
SET PRIORITY TO B
STA 1,1
ADS .+?LINK.?PLEV
JMP SCH3
GO INSERT USER IN QUEUE
~44356
026077
0386*
0387*
CODE TO HANDLE ABORT
0388.
0389 70431 102100
0390 70432 006004
0391
70433 017610
0392 70434 06 4 062
0393 70435 060417
0394 70436 003000
0395
0396
0397
70437 1031"'0
70440 110001
70441 170001
0398
0399
70442 006004
70443 16tH~01.
SCH7
STF
INS
JSB
LOB
LOA
eMA
elF
0
DEQUE
TTQ
OUTWT
S·:'LINK
REMOVE USER FROM QUEUE.
CLEAR
OUTPUT
~
AND 1,1
STA 1,1
INB
LOA B,1
WAIT
BIT
GET TTY NUM8.ER
PAGE 0306 #25
0400
0401
0402
~403
~404
040~
SCHEOULER
7Q1445
10446
10447
7045Q1
114136
044356
0606A2
110001
70451 002003
0406
0401
0408
0409
0410
0411
0412
0413
0414
0415
0416
10452 026413
70453 060377
10454 130001
0417
044356
042021
160000
170001
044361
026017
0418
0419
0420
0421
0422
0423
0424
0425
lOR KAO
JSB 514SC,1
AD8 .-1
lOA OFtHK
AND t,I
SZA,RSS
70444 030235
.JMP sCH15
LOA
lOR
STA
STF
ADB
CLA
STA
ADB
LDA
STA
ADB
ADA
LOA
STA
ADB
JMP
70455 170001
70456 102100
70457 044316
70460 002400
70461 170001
70462
70463
70464
70465
10466
70467
70470
70411
70472
70473
70413
70474
70475
044355
060370
170001
044314
170001
116023
0426
0427*
0428 70476 054253
0429 70477 017227
0430 70500 064062
0431 70501 060347
0432 70502 ~17073
0433 70503 006412
0434 70504 051524
705~5 047520
0435
70506 006412
-043 6
70507 06 40 6 2
0437 70510 ~17711
0438 70511 026360
UNABT
B,1
8,1
KILL OUTPUT
NEED TO UPDATE CHANGE DATE,
NO
YES
DISALL.OW
ABORTS
0
.+?PLEV
B,l
SET PRIORITy TO 0
•• ?STAT.?PLEV
.+ISyNT~.+1+UCDA8.COM2
B,1
SET STATUS TO LAST CHANGE DATE
.+?RSTR-?STAT
XCOM5
FIND POSITION IN TABLE
A,I
GET RESTART ADDRESS
B,l
SAVE IT
.+?LINK_?RSTR
SCH3
GO INSERT IN QUEUE
SCH75 EQU •
SET STATUS
ADS .+18TAT
STA 1,1
JSS TRNFP,I
CLEAR PBFLG & CBFlG 8ITS
cpa PRIST
JSB SCLPR
LOB TTQ
LOA .",,8
JSB TyPE
OCT 6412
Ase 2,STOP
OCT 6412
LOB TTQ
AND TELL OTHER MACHINE.
USER HAVE LP?
YES,
NO. PRINT ABORT
MESSAGE
CRLF
CRL.F
SCRATCH If $HELLO IS RUNNING
JS8 HTEST
JMP SCH1
~439.
0440*.
CODE TO SET uP FORCED DISCONNECT
0441.
0442 70512 044360
0443
70513 017610
0444
044 5
0446
0447
70514 064062
70515 060377
~448
70516 030476
70517 030502
70520 003000
0449
0450
0451
70521 110001
70522 170001
70523 102100
0452
70524 060~01
70525 040373
70526 026766
0453
0454
SCH8
ADS
JSB
LOB
LDA
lOR
.+?LINK~?STAT
DEQUE
TTQ
UNABT
ABTRY
lOR DFCHK
REMOVE FROM QUEUE
CLEAR
ABORT
CMA
AND 1,1
STA 1,1
STF 0
fLAGS
LOA 1
ADA .+?RSTR
JMP SCH61
GO SET UP STARTING INFO.
PAGE 0307 #25
0455.
0456.
0457*
0458
0459
0460
0461
0462*
0463*
0464.
0465.
0466
0467
0 4 68
0469
04 7 0
0471
0 4 72
0473
0474
0475.
0476*
0477*
0478.
0479
0480
0481
0482
0483
0484
l1485
0486
0487
0488
0489
0490
0491
0492
0493
0494
~4g5
0496
SCHEDULER
CODE TO HANDLE ENTER TIMEOUT
70527 044356
70530
70531 ~44362
10532 026420
",500
051211
0502
0503
0504
0505
0506
"'507
0508
0509
",510
ADB
ISZ
ADB
JMP
.+?RSTR-?STAT
1,1
BUMp RESTART ADDRESS
.+?pLEV.?RSTR
SCH51
GO RESTORE STATUI
CODE TO HANDLE COMMANDS.
70533 102100
70534 0 02 400
SCH6
7°5 3 5 07 00 6 0
70536 ~70064
7°537 017 1 11
70540 026566
SYF '"
CLA
STA SBHED
STA SCHP
.ISB SCOM
JMP seHle
705-41 0265 44
10542 026611
10543 026623
JMP SCH9
JMP EHERR
JMP SCH11
FLAG BUFFER HEAD TO
SAY BUFFER IN 2114
INITIALIZE TO HOLD CHARACTERS
INTERPRET COMMAND
EM-PTy LINE.
FIRST CARACTER A DIGIT
INVALID COMMAND.
COMMAND IS OK.
THE FIRST CHARACTER·IS A DIGIT. THIS MEANS THE LINE
WE HAVE TO QUEUE IT AS SUCH,
70544 064062
7054b 060612
70546 003000
70547 110001
70550 170001
70551 044316
70552 002400
70553 150063
70554 026627
70555 17121001
70556 044354
70557 060446
70560 170001
70561 044360
70562 060363
70563 170001
70564 00601214
70565 026017
0497.
0498
0499
SCH4
lJ40~1
70566 064062
70567 060361
7121570 110001
70571 006004
7k1572 002003
70573 026603
70574 160001
70~75 030215
70576 114736
70577 160001
7060~
030236
706"'1 114736
70602 026360
SCH9
TTQ
LDA PUALT
IS SyNTAX AND
LDB
CMA
AND
STA
ADS
CLA
CPA
JMP
STA
ADB
LOA
STA
A.OB
LOA
STA
INS
JMP
B,I
B,I
,+?PLEV
REMOVE
PROGRAM
UNALTERED
FLAG
B•• PRIORITY
SET PRIORITY TO 0
IF NO ID, GO LOG IN,
SCHID,l
SCH25
1,1
,+?RSTR-?pLEV SET UP STARTING ADDRESS
SYNTA
FOR SYNTAX
1,1
.+?STAT~?RSTR
XSYNT
1,1
SCH3
SCH30 LOB TTQ
LOA TAP~F
AND B,I
INS
SZA,RSS
JMP SCH31
LOA 1,1
lOR GTC
JSB S14SC,I
LOA 1,1
lOR ALI
JSB 814SC,I
JMP SCH1
SET STATUS TO
SyNTAX,
GO INSERT IN QUEUE.
TEST FOR TAPE MODE IF NULL LINE,
NO TAPE • GO EMIT LINE FEED
SPACE.
PAST
CARRIAGE RETURN
INFORM 2114
THAT MORE INPUT
IS ALLOWABLE
PAGE 0308 #25
SCHf::DULER
0511*
IF USER HAS LP,
0512 70603 054253 SCH31 CPB PRIST
1a513 70604 017227
JSB SCLPR
REL..EASE IT
OUTPUT A LINE FEED.
70605 060371 SCH20 LOA .+12B
~514
LDB TTQ
0515 70606 rtJ6 4 062
JSB DUTCH,1
0516 70607 114724
JMP 5CHl
0511 70610 Pl26360
0518*
0519. COME HERE WHEN ANY ILLEGAL INPUT IS FOUND.
0520*
0521 70611 064062 EHERR LOB TTQ
",01..::.." 005004
INB
0522 '''''VIr..
CPB PRIST
IF USER HAS LP,
0523 70613 054253
0524 10614 017227
.JSB SCLPR
REL.EASE IT
LOA .-6
0525 70615 060351
JSB TYPE
0526 7~616 017073
0527 70617 005077 E.H
(111)
OCT 5077,37477,6412
7062~ 037477
70621 006412
JMP 5CH1
0528 70622 026360
0529.
~530*
0531*
0532
0533
0534
0535
0536
0537
05 3 8
0539
~54"
0541
0542
0543
0544
",545
~546
~547
0548
0549
0550
~551
H552
~)553
~554
0555
21556
0557
fl)558
0559
COME HERE WHEN A LEGITIMATE COMMAND IS fOUND
10623
70624
70625
10626
70627
70630
70631
70632
7063:3
70634
10635
10636
70637
70640
70641
70642
70643
160063
002003
056642
026644
060337
017013
005120
046105
040523
042440
046117
SCH11 LOA SCHIO,I
SZA,RSS
cpa HI
PRoCESS COMMAND ONLY IF
10*0 OR
HELLO cOMMANO.
JMP SCH22
SCH25 LDA ... 16
PRINT LOG IN MESSAGE
JSB TyPE
OCT 5120
LF-P
Ase 6,LEASE LOG IN
~43440
044516
006412
026360
071750
071734
10644 064062
'0645 1600~1
70646 010367
70647 ~02003
70650 026671
70651 "'06004
70652 160001
70653 030233
70654 114736
70655 102311
70656 026655
70657 102511
70660 rfl02002
70661 026611
7056? 103100
70663 0443 56
HI
OCT 6412
JMP 5CH1
OfF HELLO
DTAPR OEF CTAPR
SCH22 LOB TTQ
LDA 1,1
AND TAPEF
rAPE
MODE?
SZA,RS5
.JMP SCH24
INB
LOA 1,1
lOR ILl
.JSB 5145C,1
SFS CH2
JMP .-1
LIA CH2
SZA
JMP E:HERR
elF
(21
AD8
_-1
NO
YES .... CHECK
FOR ADDITIONAL
INPUT
WAIT FOR
ACKNOWLEDGMENT
ILLEGAL INPUT?
YES
NO
PAGE 0309 #25
0560
0561
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
SCHEDULER
10664 060367
10665 003000
70666 110001
70667 170001
70670 102100
70671 160064
70672 053750
70673 026707
70674 053724
70675 026707
70676 053751
70677 026707
70700 160001
70701 010360
0574 70702 002003
0575 70703 026713
0576*
0~77
70704 062643
0578 70705 070064
0579 70706 026713
0580*
0581 70707 060360
0582 70710 003000
0583 70711 110001
0584 7 0 712 170001
0585 70713 044365
0586 70714 160001
0587 70715 002021
0588 70716 026732
ra589 70717 160064
0590 10720 053143
0591 70721 026746
0592 10722 053744
0593 70723 026746
~594
70724 053730
0595
70725 026746
0596 70726 053731
0597 70727 026746
0598 70730 053732
0599 10731 026746
0600.
0601 70732 064064
0602 70733 046004
0603 70734 006021
0604 70735 026756
0605 70736 060062
0606 70737 002004
0607 7074'" 050253
0608 70741 ·017227
~609
70742 ~64064
el6121
70743 0 4 6745
0611 70744 124001
LOA TAPEF
CMA
AND 1 , I
STA 1 , I
STF 0
SCH24 LOA SCHP,I
CPA HELL.O
JMP SCH27
CPA seR
JHP SCH27
CPA BYE.
JMP SCH27
LOA 1,1
AND TERR
SZA,RSS
JMP SCH26
LDA DTAPR
STA SCHP
JMP SCH26
SCH27 LOA TERR
CHA
ANO 1,1
STA 1,1
SCH26 AD8 ,.?NAME
LOA 1,1
SSA,RSS
JMP SCH28
LDA SCHP,I
CPA SAVE
JMP SCH29
CPA CSA\'
JMP SCH29
CPA LIS
JHP SCH29
CPA PUN
JHP SCH29
CPA XPUN
JMP SCH29
CLEAR
TAPE.
FLAG
TEST FOR HElLO,BYE, OR 8CRATCH
OK TO PROCEDE IF ANy
OF THESE.
TEST FOR ANY TAPE ERRORS,
NO TAPE ERRORS •• CONTINUE.
OTHERWISE, SET UP FOR EXEC·uTION OF TAPE ERROR
PRINTOUT ROUTINE,
IF HELLO, BYE OR SCRATCH,
CLEAR TAPE
ERROR BIT
AND PROCEED
TEST FOR
RUN-ONLY PROGRAM,
NOT RUN.ONLY.
IF RUN-ONLY, DON'T
ALLOW THESE
COMMANDS.
0612
70745 100102
SCH28 LDB SCHP
ADB MCOM2
TEST fOR TYPE I COMMAND,
SSB,RSS
JMP SCH12
NOT TYPE It
LOA TTQ
INA
•• TyPE I COMMAND
**
CPA PRIST
IF USER HAS LP,
JSB SCLPR
RELEASE IT
LOB SCHP
COMPUTE STARTING ADDRESS
AOB *+2
FOR COMMAND PROCESSOR
JHP B,I
AND GO THERE
OfF COMS-COMi,I
0614
70746 060345
SCH29 LDA .'l1li10
0615
0616
0617
0618
0619
7074.7
70750
7 0 751
70752
70753
71(1754
70755
017073
005122
05251 6
020117
047114
JSB TYPE
OCT 5122
ASC J,UN ONL
054415
OCT 54415
026605
JMP SCH20
0621*
TypE II AND III
0622*·
0623.
0624 10756 ~44364 SCH12
0625 70157 060062
0626 70760 040374
0627 70761 174000
0628 70762 040356
0629 7"'63 044344
0630 10764 006020
0631 721765 026777
0632 7~766 064606 SeHel
(iJ633 70767 174000
0634 70770 064361
0635 70771 040362
SCH!4
0636 70772 1740e0
0637 70773 "'07400
0638 70774 044000
0639 70775 026077
0640 70776 072037
0641
70777 046776 SCH13
0642 7100~ 164001
0643 712101 174Q100
1tt644
71002 006404
",645 71003 026771
0646.
~647 • "SCRATCH" COMMAND
• ",648.
",649
71004 064062 #SCR
0650 71005 017007
0651 71006 026605
0652.
0653 71007 000000 StRAT
~654
71010 060612
0655 71011 003000
0656 71012 110001
0657 71013 t70001
0658 71014 060726
0 65 9 71015 054255
0660 71016 070056
0661
71017 044363
0662 7102V1 17~001
0663 71~21 044361
0664 71~22 002400
~665
0666
0001*
71023 17"'001
71024 127007
y.CR
COMMANDS
A08 XSYNT+1
DETERMINE PROGRAM STATUS.
LOA TTf.J
ADA .+18TAT
518 0,1
ADA .+?RSTR.?STAT A8>RESTART ADDRESS
Aoe .+ •• XSyNT+COM2.COM3-1
TyPE II OR III 11
sse
JMP SCH13
LOB #LIB#
5T8 0,1
LOB
ADA
STB
eeB
Aoe
JMP
OfF
ADB
LDB
TYPE II COMMAND
TYPE III COMMANDS HAV~ A STANOARD STARTING ADDRESS AND
.~2
PRIORITy 2.
,+?PLEV.?RSTR
0,1
GET LINK POINTER IN 8 AND GO
0
TO INSERT INTO QUEUE.
5CH)
COM3+COM5 w COMl
.-1
GET STARTING ADDRESs FOR TyPE
1,1
II COMMANDS,
5TB r;,,1
CLB,INB
JMP SCH14
GO SET PRIORITY TO 1
LOB TTQ
JS8 SCRAT
JMP SCH20
S.,..TTY TABLE.
PERFORM SCRATCH FUNCTION.
TERMINATE,
NOP
LOA PUALT
eMA
AND B,1
SCRATCH A PROGRAM (S_>USERS TTY)
REMOVE
STA B,I
LOA PBUFF
CPB MAIN
STA PBPTR
ADB
ST.
ADa
CLA
STA
JMP
.+?PROG
1,1
PROGRAM
uNALTERED
FLAG
IF MAIN.B, SET PBPTR I
S•• PROGEND
RESET TABLE(PROG)
.+?NAM~.?PROG
CLEAR
PROGRAM NAME
t,l
seRAT,1
PAGE 0311 #26
SCHEDULER
0002. "TAPE" COMMANO
0003*
0004 71025 103100 *TAp
0005
71026 064062
0006 71&')27 006004
0007 71030 16012101
0008 71031 03121252
0009 11032 114736
0010 71033 103100
0011 71034 102311
0012 71~35 021034
,.\YJoJV
0013 "'4II'!I~£
102511
0014 11037 002003
0015 71040 027051
0016 71041 060345
0017 71042 017073
0018 71043 005111
0019 71044 046114
71045 042507
71046 040514
0020 11047 006412
0021 7105~ 02 6 3 6 0
0022 71051 ~64062 #TA P1
0023 '1052 160001
0024 71053 030367
0025 71054 170001
0026 71055 102100
0027 71056 006004
0028 71057 160001
0029 71060 030232
0030 71061 114736
0031 71062 0266Qt5
1c1032.
"033*
0034
0035
0036
0037
0038
0039
0040
..
71063 000000
71064 006400
71065 100400
elF
LOB
INS
LOA
lOR
JS8
elF
0
TTQ
B,l
WTP
S14SC,I
0
SFS CH2
JMP ··1
LIA CH2
SZA,RSS
JMP *TAPl
LOA .-10
JSB TYPE
OCT 5111
ASC 3,LlEGAL
OCT
JMP
LOB
LOA
lOR
6412
SCHI
TTQ
1,1
TAPEF
STF
INS
LOA
lOR
JSB
JMP
"1 , I
OK
LF, I
CR, LF
PRINT MESSAGE & TERMINATE,
B _lit FLAG wORD
SET TAPE BIT
TELL
TPO
S14SC., I
SCH20
cLe
DIV .+10
ALF,ALF
ADA 1
ADA ASC00
JMP #LTE.N,I
71072 127 0 63
TYPE *1,
STA 1, I
!f#LTEN NOP
71066 000371
71067 001727
7107121 040001
71071 040530
B -> ?FLAG
Sa> ?TNUM
.a 1TNUH
ASK WHAT TYPE.
2114
TERMINATE.
*
CONvERT A FROM 1.99 TO ASCII.
GET FIRST D1&IT IN A,
SECOND IN B.
POSITION FIRST ON L.EFT,
ADD IN SECOND,
ADD IN ASCII BITS,
RETURN.
0042*
TypE
0043*·
0044*
0045.
0046. lyPE SENDS AN ENTIRE STRING TO A TELETyPE, IT IS CALLED AS FOllOwS
0047·
A.·'OF CHARS-~MUST END ON RIGHT HALF OF WORD
0048*
..TS8 TYPE
0049.
RETURN
0050*
0052
0053
71073 000000
71074 073110
TYPE
NOP
STA TYPEr
SAVE COUNTER
PAGE 0312 #26
SCHEDULER
0~54
71075 163073
0055
0056
71076
71077
11100
71101
71102
71103
71104
0051
0058
0059
0060
0061
0062
0063
0064
ge65
0067.
0068*.
067110
006011
001727
004S10
037073
064062
114124
,1105 A37110
71106 027075
71107 127013
71110 000000
TYPEL LOA TYPE,I
LOB TYPET
SL8,RSS
ALF,ALF
SL.B
ISZ
LOB
JSB
ISZ
JMP
JMP
TYPET NOP
TypE
TTQ
OUTCH,l
TYPET
TyPEL
TYPE,l
GET WORD CONTAINING CHAR,
GET COUNT IN 8,
IF COUNT IS EVEN, TAKE HIGH
CHARI
IF COUNT IS ODD,
BUMp TypE.
OUTPUT CHARACTER TO TTY
ANY MORE?
yES.
NO,
seoM
0~69.
0070* seOM SCANS A COMMAND INPUT BUfFER TO DETERMINE WHAT
0071* THE COMMAND IS. THE CALLING SEQUENCE TO SCOM lSI
0072*
0073*
0074_
0075*
0016.
0017",
JSB SCOM
FIRST CHARACTER A DIGIT>
NO LEGAL COMMAND>
COMMAND FOUNE-~8.COMHAND ADDRESS>
0078*
0079* SCOM ASSUMES THAT BEFORE IT IS CALLED, SBHED AND
0080* SCHL ARE INITIALIZED AS REQUIRED BY SCHAR"
AND
0081* SCHPa0 FOR NORMAL USERS AND OCT40 FOR CONSOLE,
0083
008 4
0085
0086
0fd87
0088
0089
0090
0091
0092
009 3
0094
0095
0096
0097
0098
0099
0100
71111 000000
71112 064354
71113
71114
71115
71116
71117
71120
71121
71122
71123
71124
71125
71126
71127
074065
0175410
127111
037111
042001
002020
ADA .-10
0107
ENTRY poINT,
INITIALIZE CHAR, COUNT TO .3
GET A CHARACTER.
NOT THERE_BLANK LINE,
BUMP SeOM TO POINT AT DIGIT RET.
TEST FOR FIRST CHAR A DIGIT,
AUTOMATIC FAILURE IF
< ASCB
002021
SSA,~SS
027136
JMP SCOME
06 4 06 4
IF <-ASC9, RETURN TO P+2 IF A
DIGIT, P.3 IF NOT
L,08 SCHP
SZB
CONS-OLE?
71143
0105
0106
SCNT
SCHAR
SCOM,I
SCOM
M60B
ISZ SCOM
0109
0104
STB
JSB
JMP
ISZ
ADA
SSA
040345
0108
0102
0103
Nop
LOB •.• 3
031111
006002
127111
71tJ~ 064062
71131 006004
71132 160001
71133 030245
71134 114736
71135 127111
71136 037111
71137 042002
7114t1 002~21
71141 127111
71142 040411
0101
SCaM
002~20
JMP SeOM,I
. LOS TTQ
INS
LOA 1,1
lOR BKS
JSB 8148C,1
JMP SCOM,I
SCOME ISZ SCOM
AOA M41B
SCOMR SSA,RSS
JMP SCOM,I
ADA .+328
SSA
YES
NO
TELL 2114
TO BACKSPACE
TEST fOR LETTER,
NOT AlETTER,
PAGE 0313 #26
1tJ110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120.
12'~' .......
0122.
~14C;;~W-
~123
0124
0125
0126
0121
0128
0129
0130
0131
0132
0133
0134
rdlJ5
0136
0137
0138
SCHEDULER
JMP SCOM,l
lOR SCHP
ISZ seNT
ALF,SlA,RAL
JMP SCOMA
5TA SCHP
JSB SCHAR
JMP SCOM,1
AOA M133B
JMP SCOM8
11144 121111
71145 030064
71146 034065
11147
71150
11151
71152
71153
71154
71155
001732
027156
070064
011540
127111
042003
027140
NOT A LETTER.
TEST fOR 3 LETTERS I~.
NO •• ROTATE FOR NEXT ONE.
YES~~GO TO SEARCH TABLE.
GET NEXT CHARACTER
FAIl..
SEARCH COMMAND TABLE
71156
71157
71160
71161
064746
002020
044431
150001
71162 021167
71163 054750
71164 127111
71165
71166
71167
71170
71171
71172
71173
71174
71175
~06004
021161
037111
2174064
017540
021176
'150434
SCOMA
LOB seOMI
e.)ltTABLE
5SA
ADB .... COM4 .. COMl
SCOMD CPA 1,·1
JMP SCOMC
COMMAND FOUND
CPB SCOM5
JMP seOM,l
ILLEGAL COMMAND
INS
JMP SCOMD
seOHC ISl SCOM
STa SCHP
JSB SCHAR
JMP *.4
CPA .... 55B
RSS
0139
002001
02 7 171
11176 C?l64064
LOB SCHP
0140
71177 121111
JMP SCOM,I
JHP
··4
RETURN O,K.
SAVE ADDRESS OF COMMAND.
SCAN
FOR CR
OR DASH.
PAGE 0314 #26
0142"
0143 ••
0144 •••
0145*.
0146.
01~7"
0148 ••
0149·
0150.
0151.·
0152.
0153*
0155
~156
0157
SCHEDULER
RELEASE LINE PRINTER
SCRLP. USER BUFFER MAy BE FULL
MLINK+l • POINTER TO USER
SCLpR - USER BUFFER EMpTY
TTQ • POINTER TO USER
71200 000000
71201 064272
0158
0159
0160
0161
71202 044341
11203 077246
71204 060351
71205 073247
11206 063245
~162
71207 073250
~163
71210 163250
71211 PJ01727
71212 0672 .. 6
71213 114724
11214 163250
71215 067246
71216 114724
71217 037250
7122k't 037247
71221 027210
71222 06024,3
0164
0165
0166
0167
0168
0169
0170
~171
0172
0173
017 4
0175
0176
0179
71227 00"000
712J~ 060343
71231 017073
11232 011423
71233 005114
71234 050040
712J5 043122
0184
0185
0186
0187
0188
0189
~190
0192
0193
0194
71236 0425rt'5
71237 006412
71240 060243
71241 114736
71242 002400
71243 07025 3
71244 127227
71245 071232
71246 000000
71247 000000
STB RI.PFW
LOA ._6
STA RLPCT
LDA LPMES
STA RLPTR
LOA RLPTR,1
ALF,ALF
LOB RLPFW
JS8 OUTCH,I
LOA
LOB
JSB
ISZ
RlPTR,I
RlPFW
OUTCH,I
RlPTR
ISZ RLPCT
JMP
LDA
JSB
ClA
STA
JMP
71225 070253
71226 127200
0183
RLP
71223 11 4 736
71224 002400
0177
0180
0181
0182
SCRLP NOP
LOB MLINK+1
ADS ,_?L..INK
RLP
LPD
S14SC,I
PRIST
SCRLP,I
INITIALIZE
POINTER TO
USER'S Fl.AG WORD
SET COUNTER
INITIALIZE POINTER
TO MEsSAGE BUFFER
LOAD NEXT WORD FROM THE BUFFER
A-LEFT CHARACTER
III> FLAG WORD
OUTPUT CHARACTER
A-RIGHT CHARACTER
a>FLAG WORD
OUTPUT CHARACTER
INCREMENT POINTER
DONE?
NO
yES, TELL 1/0 PRoc£seOR
TO REMOVE USER FROM LP
REMOVE. USER FROM
SYSTEM INDICATOR
SClPR NOP
LDA .-12
JSB TYPE
LPM
OCT 11423
OCT 5114
ASC J,p FRE.E
OCT 6412
LOA
LPD
JSB S148C,1
CLA
STA PRIST
JMP SClPR,I
LPMES OfF LPM
RLPFW ass 1
RLPCT 8SS 1
A ... # OF CHARACTERS
OUTPUT MESSAGE
X-OFF, X-OFF
IF, L
CR, LF
TELL 1/0 PROCESSOR TO
REMOVE USER FROM LP
REMOVE USER FROM
SYSTEM INDICATOR
PAGE 0315 #26
0195
SCHEDULER
71250 000000
RLPTR
ass
1
PAGE 0316 #26
SCHEDULER
0197.
fa19tJ**
0199***
SWAPR
0200**
0201.
0202* THE swAPR ROUTINE IS CALLED FROM VARIOUS POINTS IN THE SCHEDU~ER
0203* IN ORDER TO DETERMINE IF A PROGRAM IS READY TO RUN, IT IS ALSO
0204. CALLED WHENEVER THE QUEUE IS UPDATED. THE FUNCTION OF SWAPR IS TO
0205* DETERMINE IF THERE IS • PROGRAM ON THE QUEUE, AND IF 80, IS THE
0206* PROGRAM AT THE HEAD OF THE QUEUE READY TO RUN. IF SAID PROGRAM IS
0207* NOT READY, SWAPR INITIATES THE NECESSARY DRUM TRANSFERS, SWAPR IN0208* DICATES WHETHER A PROGRAM CAN8E RUN OR NOT AS FOLLOWS:
0209*
0210*
READY
: NORMA.L RETURN
0211*
NOT READYs TRANSFER TO 8CH1
0213
71251 000000
0217
0218
71252
11253
71254
71255
71256
0214
0215
0216
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
~230
0231
0232
0233
0234
0235
0236
0 23 7
0238
0239
0240
0241
02412
060203
002f'20
Pl26360
066017
006002
71257 0121324
71260 066020
71261 006003
71262 027216
71263 060520
71264 003000
71265 103100
11266 112 0 2"
71267 064203
71270 006002
71271 030520
71272 172020
71273 1021~0
71274 006400
71275 076020
71276 064272
71277 054271
71300 026360
71301 060313
71302 050356
71303 027335
71304 060772
71305 030311
0243
71306 054263
71307 002003
0244
71310 021335
0246
0247
71313 040440
0245
0248
71311 060276
71312 003004
0249
0250
71314 002020
71315 027335
71316 017610
0251
71317 060276
SWAPR Nap
LOA MBU8Y
SSA
JMP SCHI
LOB SMAIN
SZB
JMP SWAP5
LOB FMAIN
SZ8,RSS
JMP SWAP?
LOA MBUST
eMA
elF 0
AND FMAIN,1
LOB MBUSY
SZB
lOR MBUST
STA FMAIN,I
STF ~
CLB
S18
SWAP7 LOB
CPS
JHp
FMAIN
MLINK+l
HlINK
SCHl
LOA T35F3
TEST FOR
DISC BUSY
WAIT FOR TRANSFER COMPLETION
WAS SWAPR DOING A TRANSFER?
YES, GO CHECK SUCCESS
NO, HAVE WE SAVED
DRIVER FLAGS FOR THIS USER1
YES, DON'T SAVE CURRENT ONES
NO, SAVE DISC
"NOT BUSy"
FLAG IN
THIS USERfS
FLAGS WORD
sAy DRIvER
FLAGS SAVED
GET FIRST QUEUE ENTRY
TEST FOR QUEUE fMPTY.
EMPTY.wNOTHING TO Do.
HAS A COMMAND BEEN
ENTERED BUT NOT STARTED?
YES • GO START IT
CPA .-1
JMP SWAP4
LOA lOGCT
NO, IS THERE
lOR 135Ft
CURRENT OR
CPB T35lN
IMMINENT
SZA,RS8
OUTPUT TO TTY35?
JMP SWAP4
NO
LOA T358T
GET THE STATUS
CMA,INA
ADA .+XSYNT~.+1.ROSwCOM2
5SA
CHECK TO SEE IF THIS IS
JMP swAp4
A ROUTINE THAT CAN'T BE DEQUEO
JSB DEQUE
suaPEND UNTIL ITS DONE.
LOA T358T
PAGE 0317 #26
0252
0253
0254
0255
0256*
0257
0258
0259
0260
0261
0262
VI~""
Sol .............
0264
0265
71320
71321
71322
71323
SCHEDULER
0103013
STA
l.DA
STA
JMP
060362
070216
021252
71324 00240"
71325 072017
71326 050203
71327 027276
71330 010203
11331 006020
71332 114207
11333 124210
71334 026360
T35PR
IOUTW
T355T
SWAPR+1
SWAPS CLA
STA SHAIN
CPA MBUSy
JMP SWAP?
STA MBUSY
SSB
JSB SICKP,I
JMP PTZAP,I
JHP SCHl
CLEAR "SWAPR INVOKED
TRANSFER- FL.AG
WAS DISC TRANSFER SUCCESSFU~1
YES, CONTINUE
NO, CLEAR MBUSY FOR KICKS
WERE WE SWAPPING A USER'
NO, GO "FOLD CON GRAtIA
YES, GO FLUSH HIM OR HER
0267 71335 044356 SWAP4 ADB ,+?STAT~?LINK _> STATUS OF FIRST ENTRY
0268 71336 16001211
LDA 1,1
A-STATUS
CPA , .. 2
TEST fOR SPECIAL DISCONNECT,
0269 71331 05121355
0270 71340 0604~6
LOA XSYNT+1+BYE-COM2
ADA .·5.COM2~COM3 TES' FOR TYPE II OR III.
0271 71341 040344
SSA,RSS
0272 71342 002021
JMP SWAp3
0273 71343 027406
PROGRAM IS OF TYPE III.
TEST FOR PROGRAM IN CORE.
ADS ,-1STAT
0274 71344 044342
0275 71346 054255
CPB MAIN
JMP SWAPR,I
PROGRAM PRESENT,
0276 71346 121251
0277 71347 060255
LDA MAIN
FIND OUT WHAT PROGRAM IS,
IS ANy PROGRAM PRESENT?
SZA
0278 71350 002002
0279 71351 027372
YES,
JMP SWAP!
ST8 MAIN
SET MAIN TO NEW PROGRAM.
0280 71352 074255
0281*
INITIATE DISC TO CORE TRANSFER
0282**
0283.
STB SMAIN
SAVE TABLE OF USER IN QUESTION
0284 71353 076017
ADS .+?PROG
B.~PROGRAM ENO LOCATION,
0285 71354 044363
0286 71355 160001
LOA 1,1
COMPUTE NUMBER OF
STA PBPTR
0287 71356 070056
0288 71357 003000
WORDS IN PROGRAM,
eMA
ADA USE
0289 71360 12141213
0290 11361 ,,70204
STA MWORO
SAVE -LENGTH
0291 71362 044355
AD8 ,+?DISC",,?PROG
A •• DISC ADDRESS
LDA B
0292 71363 060001
0293 71364 065214
LOB USEI
a.CORE ADDRESS
CALL DISC DRIVER
0294 71365 114201 SWAP8 JSB DISCA,I
0295 71366 102030
HLT DEATH+308 ORIVER BUSY
HLT OEATH+31B OISC NOT PRESENT
0296 71361 102031
JMP 8CH1
RETURN BUSY.
0297 71370 026360
0299*
"300*"
0301*
0302
0303
0304
0305
0306
INITIATE CORE TO DISC TRANSFER
7137\ 060255
71372
71373
71374
71375
07 2 017
SWAP2 LOA MAIN
SWAP1
STA
SHAIN
0064A0
CLB
A74255
040363
STB MAIN
ADA .+?PROG
SAVE TABLE => OF USER
SET MAIN TO SAy
NO USER IN CORE
SAVE PROGRAM
PAGE 0318 #26
0307
0308
0309
0310
0311
0312
0313
0314
0316.
0317.·
0318.
032rt'J
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
1a340
0341
13342
0343
0344
0345
0346
0347
0348
0349
0350
0351
SCHEDULER
LOB PBPTR
STB A,I
eMS
ADS USE
71376
71377
71400
71401
71402
71403
064056
174000
007000
045213
014204
040355
71404 065213
71405 027365
STa
ADA
LDB
JMP
END lOCATION
COMPUTE AND
SAVE. .TRANSFER
MWORO
LENGTH
.+1DISC .. ?PROG .> DISC ADDRESS
USE
• CORE ADDRESS
SWAPS
GO START DISC WRITE
TypE III PROGRAMS
71406
71406
71407
71410
11411
71412
71413
71414
11415
71415
71416
71417
71420
71421
71422
71423
71424
71425
71426
71427
71430
71431
71432
160001
050425
002401
027415
044361
170001
044355
044356
160001
050606
070264
044360
160001
050355
060406
040344
064255
006002
12127371
001000
042012
71.,33 050256
71434 127251
71435 070256
71436 064315
71437 0742"4
71440 007400
11441 076017
71442 064610
71443 027365
SWAPJ EQU *
LDA 8,1
GET STA.TUS
CpA .+XSYNT~.+1+0pE.COM2
ClA,RSS
SET PRIORITY TO 0 IF OPEN
JMP S.WAP6
ADS .+?PlEV-?STAT
STA B,l
ADa .+1STAT~?PLEV
SWAP6 EQU •
ADS .+?RSTR~1STAT B.> RESTART ADDRESS
LOA 8,1
CPA *lIB#
IF THIS A FRESH CALL,
STA LCHCR
ZAP THE LCHCR FLAG
ADB .+?STAT.?RSTR
lDA B,I
CPA ... 2
LOA XSYNT+l+8YE-COM2
ADA ._5.COM2.COH3
LOB MAIN
TEST FOR MAIN PROGRAM IN CORE
SZB
JMP SWAP2
GO TO WRITE OUT MAIN PROGRAM.
AlS
MULTIPLY BY 2
AOA OCOM6
A.~ LIBRARY PROGRAM DISC ADDRESS
CPA LIB
IS IT IN CORE?
JMP SWAPR,I
YEI-p.RETUAN PRESENT.
STA LIS
IF NOT, INITIATE REAO IN,
LDB M512
LENGTH OF PROGRAM • 512
8T8 MWORD
ce B
SMAIN • -I SEZ
STB SMAIN
READING LIBRARY PROGRAM
0353.
0354 ••
ENTRY POINT FOR
0355.
0356 71444 000000 SCHIQ
0357 71445 103100
0 3 58 714 4 6 064272
0359 71447 044342
0360 71450 130001
L.OB #L.IBI
JMP SWAPS
INITIATE DISC READ
INPUT REQUEST
NOP
elF 0
LOB MLINK+l
.08
INTERRUPT INHIBIT,
.+1TNUM~?LINK
lOR 1,1
TELL 2114
PAGE 0319 #26
SCHEDULER
0362
0363
11451 11413671452 103100
71453 044372
~361
0364
71454 063444
0365
0366
0361
0368
71455 170001
11456 006004
a369
0373
71461
71462
71463
71464
71465
!a374
0375
71466 170001
71467 027662
0370
0371
a"t"~
'IlJ~'G.
Al77.
037S*.
71457 160001
71460 002020
027662
044361
1702101
044355
060361
JSB
elF
ADB
LDA
STA
INB
LOA
5SA
JMP
ADB
STA
ADS
LOA
STA
JMP
Sl4se,I
ABOUT INPUT WAIT
0
.+1RSTR.?TNUM
SCHIQ
1,1
GET PROGRAM TYPE
1,1
QUIT IF ABORT REQUEST,
SUSP
.+?PLEV-?STAT
1,1
SET INTO PLEV.
,+?STAT.?PLEV
XINPT
CHANGE STATUS TO
1,1
INPUT wAIT,
SUSP
GO REMOVE FROM QUEUE.
ENTRY POINT FOR TERMINATION
0379.
0380
0381
0382
0383
0384
0385
0386
0381
0388
0389
0390
0391
71470
71471
71472
71473
71474
71475
71476
71477
103100
060260
002003
0275,,7
002400
070260
064272
044341
71500 160001
71501 030462
71502 170001
71503 044374
0392
71504 060355
0393
71505 110001
0394
0395
71506 027662
11501 060272
0396
71510
11511
71512
71S13
71514
71515
0397
0398
0399
0400
0401
0402
04 0 3
0404
0405
0406
0407
0408
0409
002001
021523
060254
002002
71516 "27521
012°4 1
11517
71520
71521
71522
11523
71524
71525
1fl410
11526
0411
0412
0413
0414
0415
11527
~416
040342
050253
71530
017200
002400
070254
064272
054263
027531
044341
017711
064272
71531 044356
71532 1602101
715 33 050 3 56
71534 027662
SCHEQ ClF 0
LOA HQOIS
SlA,RSS
JMP SCHQl
CLA
STA HQDIS
LDB ML.INK+l
ADB .·?LINK
LOA 1, I
DID THIS GUY TRY TO
DISCONNECT1
NO
yES
RESET DISCONNECT FLAG
SET
COMMUNICATIONS
lOR COM14
STA 1,1
BIT
ADS •• 1STAT
SET STATUS
LOA XOISC
STA 1, I
TO DISCONNECT
JMP SUSP
SCHQl LDA MlINK+l
DOES THIS
USER HAVE
ADA .+?TNUMII!II1LINK
CPA PRIST
THE LINE
RSS
PRINTER1
JMP SCHQ3
NO
YES .. IS THE LPR
LOA LFlAG
COMMAND FLAG SET1
SZA
JHP SCHQ2
YES
STA CLCl
NO, BLOCK CLOCK
JSB SCRLP
REMOVE USER FROM LP
CLA
CLEAR
STA lFlAG
FLAG
LOB MLINK+t
SCRATCH IF
CPB T35LN
JMP ·+4
AOB ."?lINK
THIS IS
JSB HTEST
SHELLO,
LOB MLINK+l
CHANGE
ADe .+?STAT~?LINK STATUS
LOA 1,1
CPA ... 1
QUIT IF A80RT REQUEST.
.}MP SUSP
PAGE 0320 #26
0417
0418
0419
SCHEDULER
71535 002400
71536 170001
71537 027662
CLA
STA 1,1
JMP SUSP
TO IDLE
PAGE 0321 #26
SCHEDULER
0421*
SCHAR
0422*·
0423.
0424* SCHAR FETCHES THE NEXT CHARACTER fROM A BUFFER. BUFFER
042 5* POINTERS FOR SCHAR ARE INITIALIZED AS fOLLOWS:
SBHED8> FIRST CHARACTER If TTY35, -0 OTHERWISE
0426*
SCHL,I8> END OF TTY35 BUFFER
0427.
0428*
0429* SCHAR CALLING SEQUENCE'
0430*
0431*
0432*
0433.
0435
0436
043 1
0438
JSB SCHAR
RETURN HERE IF CR
RETURN HERE IF ANY OTHER CHARACTER
71540 000000
71541 064060
71542 006003
71543 027562
0439
71544 004065
0440
71545 160001
71546 005610
0441
0442
ft1443
1lJ444
0445
0446
0447
0448
0449
0450
9451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
0467
0468
0469
0470
0471
0472
0473
0474
0475
SCHAR NOP
LOB SBHEO
SlB,RSS
JMPSCHRI
CLE,ERB
LDA 1,1
ELB,SLB
71547 002001
7155~ 001727
RSS
71551 010500
71552 050374
71553 127540
71554 006004
71555 074060
71556 050417
71557 027542
715601 037540
71561 127540
7 1 562 064062
71563 006004
AND 8377
11564 160001
71565
71566
11567
71570
030215
114736
102311
027567
71571 102511
11572
71573
71574
71575
71576
71577
71600
71601
71602
05 0 4 17
027564
050374
021604
040317
"02021
040450
042000
037540
'1603 127540
71604
71604 160001
71605 030245
716216 114736
71607 127540
ALF,ALF
CPA
JMP
INS
STe
CPA
JMP
ISZ
JMP
SCHRl LDB
.+158
SCHAR,I
88HED
.+408
SCHAR+2
SCHAR
SCHAR,I
TTQ
INB
LDA t,l
lOR GTe
JSB S14SC,1
SFS CH2
GET POINTER,
TTY351
NO
YES.·POSITION AS WORD POINTER
GET WORD CONTAINING CHARACTER,
REPOSITION POINTER ANO TEST
fOR UPPER OR LOWER.
MASK OUT CHARACTER.
RETURN IMMEDIATELY IF CR
BUMP
C~ARACTER
POINTER,
SKIP BLANKS
FETCH
CHARACTER
FROM 2114
WAIT FOR RESPONSE
JMP • .,.1
LIA
CPA
JMP
CPA
JMP
CH2
.+408
SCHR1+2
.+158
SCHR2
ADA M96
SSA,RSS
ADA M32
ADA 8140
ISZ SCHAR
JMP
SCHR2 EQU
LDA
lOR
SCHAR,!
•
1,1
BK8
JSB S14SC,I
JMP SCHAR,I
BLANK?
YES .. p.IGNORE IT
NO, CARRIAGE RETURN?
YES
CHECK FOR CODES
GREATER THAN 140.
CODE IS lOWER CASE, HAKE UPPER,
RESTORE ASCII CODES.
NOw.EXIT
TO (P+2)
B->TTY j
TELL 2114
TO BACKSPACE
PAGE 0322 #26
SCHEDULER
0477*
DEQUE
0478**
0479.
0480* DEQUE REMOVES A USER FROM THE QUEUE. IT IS CALLED WITH THE USER'S
0481* LINK ADDRESS IN 8.
0482*
0483 71610 0021000 OEQUf NOP
0484 71611 060271
GET POINTER TO FIRST ENTRY.
LOA Ml..INK
TEST FOR ENTRY FOUND.
0485 71612 154000 DEQ1 CP8 ",I
0486 11613 027620
JMP DEQ2
LINK TO NEXT ENTRY.
LOA 0,1
0487 71614 160000
CPA MLINK
TEST FOR END OF QUEYl.
0488 71615 05QJ211
NOT ON QUEUE.·RETURN.
0489 7 1 616 121610
JMP DEQUE,1
JMP DEQl
LOOP.
0490 71617 027612
0491 71620 164001 DEQ2 LOB ! , I
LINK AROUND THIS USER.
ST8 0,1
0492 71621 114000
JMP DEQUE,I
0493 71622 127610
PAGE 0323 #26
0495*
0496·
0497*
0498*
0499.
0500*
0501*
°5 0 2*
0503*
0504.
OUTPUT CHARACTER ROUTINE
THE QUTCH ROUTINE OUTPUTS A CHARACTER TO A USERtS
BUFFER IN THE 2114. THE CALLING SEQUENCE lSI
JSB QUTCH,I
A-CHARACTER TO BE OUTPUT
S.TTY TABLE ADDRESS.
DUTCH FIRST CHECKS TO MAKE SURE THAT TH~ 2114 CAN ACCEPT
CHARACTERS. IF NOT, THE USER IS PLACED IN OUTPUT WAtT STATUS
AND A TRANSFER IS MADE INTO THE SYSTEM TO DELETE TH! USER
FROM THE QUEUE
0505*
0507
0508
0509
0510
0511
0512
0513
0514
0515
0516
0517
71623
71624
7 16 2 5
71626
000000
10310(21
01 0 5 00
072014
71627 160001
71630 010417
71631 002002
71632 12'27641
716 33 006004
71634 160001
71635 032014
71636 030213
*OUTC NOP
eLF
0
1, I
MASK AND
SAvE CHARACTER
CAN 2114
TAKE THIS
CHARACTER?
OUTC1
NO
t,1
BUILD OUTPUT WORD
AND 8377
STA
LOA
AND
SZA
JMP
INS
LOA
lOR
lOR
OUlM!
QUTWT
OUTMI
YES
WIlH USER'S TTY
"
OCR
CHARACTER AND OPCODE.
0518
0519 71637 114736
~JS8 S14LP,1
CALL 2114 DRIVER
JMP *OUTC,I
0520 71640 127623
0521*
0522* TAKE CARE OF fULL BUfFER IN 2114
0523*
0524 71641 044374 OUTCt ADS ,+?STAT
rlJ525 71642 160001
LOA 1,1
0526 71643 002020
58.
IF ABORTED GO DIRECTLY
JMP SUSP
0527 71644 027662
TO SUSPEND.
ADB • +?PL.EV.?STAT MOVE STATUS TO
0528 71645 044361
0529 71646 170001
ST. 1,1
PLEV AND SET
0530 71647 044355
ADS ,+7STAT"'?PLEV
STATUS TO
0531 71650 0621362
LOA XOUTW
OUTWAIT.
0532 716 5 1 170001
STA 1 , I
0533 71652 003400
CtA
SET RETURN ADDRESS TO
34
3
043623
1
AOA -OUTt
RECALL OUTt
7 65
"5
0535 ,1654 044356
ADS .+?RSTR .. ?STAT
0536 71655 170001 .
STA 1,1
0537 71656 062014
LOA OUTHt
0538 71657 071224
STA AREG
0539 71660 044343
ADS ... ?RSTR
0540 71661 075225
STB BREG
0541 71662 160272 SUSP LOA MLINK+l,I
0542 71663 070272
STA MLINK+l
0543 71664 002400
CLA
L.OCK
STA CLel
0544 71665 072041
CLOCK
JMP 5CH1
0545 71666 026360
JUMP TO SCHEDULER
0546*
0547 71667 000000 SCHOQ NOP
OUTPUT SUSPEND REQUEST ENTRy,
0548 71670 103100
elF 0
TURN OFF INTERRUPT,
PAGE 0324 #26
0549
0550
0551
0552
0553
OUTPUT CHARACTER ROUTINE
71671 063667
71672 002004
71673
71673 073623
LDA
INA
SCHSQ EQU
ST.
LOB
ADB
LDA
lOR
STA
INS
SCHOQ
•#OUTe
ML.INK+l
,-?LINK
1,1
0558
71674 064272
71675 044341
71676 160001
71677 030417
71700 170001
71701 006004
0059
71102 160001
LDA 1 , I
f'lIr;;:£f'lI
,"."nI~
I., 'U..,
039237
0561
71704
71705
71706
71701
71710
114736
103100
064272
lOR
JSB
elF
LOB
ADB
JMP
0b54
0555
0556
0557
~~v~
0562
0563
0564
0565
0567.
0568*
0569.
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
044356
021642
SET UP RETURN ADDRESS.
OUTWT
1,1
SET OUTPUT WAIT BIT
PUT USER
01141
IN OUTPUT WAIT
0
NO INTERRUPTS DURING IUSPEND
MlINK+1
FOOL OUTeR INTO DOING THE WORK,
.+?STAT-?LINK
OUTCt+1
S14LP,1
HTEST SCRATCHES A PROGRAM IF THE ASSOCIATED HFLAG 8IT IS SET.
B POINTS TO THE USER'S TTY ADDRESS,
71711
71712
71713
71714
71715
71716
71717
71720
71721
71722
71723
000000
160001
010363
HTEST NOP
LOA 1,1
AND t-4FLAG
127711
SlA,RSS
JMP HTEST,1
103100
elF "
002003
120001
170001
102100
017007
127711
XOR t,I
STA t,I
GET HFLAG BIT,
RETURN IF HFLAG BIT .1,
CLEAR HFLAG BIT
STF "
.JSB stRAT
JMp HTEST,I
RETURN.
PAGE 0325 #27
COMMAND TABLE
0002.
0003 ••
0004 •••
0005 ••
0006.
0001. THIS TABLE CONSISTS OF TWO PARTS. PART 1 CONTAINS THE [NCODED
0008* SYMBOLIC COMMANDS. THESE ARE CODED AS THREE BYTES, EACH 8YTE
00°9· BEING OF LENGTH 5 BITS AND OF OCTAL VALUE 101 LESS THAN THE
0010. OCTAL VALUE OF THE CHARACTER, THE THREE ByTES ARE IN BIT POSI.
0011* TIONS 14-10,9-5, AND 4 eB , RESPEcTIVELY. BIT 15 IS SET TO lFOR
0012. COMMANDS THA~ ~RE LEGAL FOR THE SYSTEM CONSOLE.
0013.
0014· PART 1 IS ITSELf DIVIDED INTO 3 SECTIONS. COMMANDS IN SECTION 1
0015. ARE THOSE COMMANDS WHICH ARE HANDLED IMMEDIATELy By THE EXECUTIVE
0016* WITHOUT ANY DISC ACCESS. THOSE IN SECTION 2 ARE COMPILER COMMANDS
0017.
001S·
0019*
0020.
0021.
0022.
0023.
0024.
0025.
0026*
WHICH ARE RESIDENT BUT WHICH REgUIRE THE PROGRAM TO BE LOADED
COMMANDS IN SECTION 3 ARE SYSTEM COMMANDS ~HICH ARE
DISC RESI6ENT. ALL SYSTEM COMMANDS ARE OF THIS TypE AND MUST BE
LOCATED AFTER COM4.
FROM DISC
PART 2 OF THE COMMANO TABLE CONTAINS THE CORE STARTING ADDRiSSES
FOR THOSE COMMANDS IN SECTIONS 1 AND 2, AND THE TWO WORD DISC
ADDRESSES OF THOSE IN SECTION 3.
PART I
0021.
0028. SECTION I
0029.
0030 71724 044121
0031 71724
0032 7\725 046017
0033 71726 024230
COMI
seR
OCT
EQU
OCT
OCT
44121
COM!
46017
24230
SCRATCH
TAPE
KEY
~034.
0035.
0036*
0037
0038
0039
0040
0041
0042
0043*
0044.
0045.
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
SECTION II
71727
71730
71731
71732
71733
7 17 34
043215
026422
037215
0 5 676 4
177777
177777
OCT
oCT
PUN
OCT
XPUN OCT
UCDAB OCT
CTAPR OCT
COM2
LIS
26422
RUN
LIST
37215
PUNCH
43215
0 5 676 4
-1
·1
XPUNCH
FOR ABORT UPDATE CHANGE DATE
USED fOR TAPE ERROR PRINTOUT,
SECTION III
71735
71736
71737
7174 0
71741
11742
71743
71744
7 1 7 45
71746
71747
71750
177777
177777
177777
177777
177777
177777
COM3
044025
SAVE
005100
177777
014223
000757
~16213
COMFL
ASGNA
COMCH
CSAV
SAVO
HELLO
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
nCT
OCT
.1
... 1
.1
... 1
-1
"1
FOR LENGTH SECTION
FOR TWO HAlVES
OF FUSS TABLE
FOR FILES
ASSIGN
.1
14223
FOR CHAIN
SAVE
ClAVE
FOR SAVE OVERLAY
GET
757
16213
HELLO
44025
5100
APPEND
PAGE 0326 #27
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
02172
0073
0074
0075
0076
0077
0078
0079
IiH;tsa
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0"96
0097
00 9 8
0099
011210
0101
71751
71752
71753
71754
71755
71756
71757
71760
71761
,1762
71763
COMMAND TABLE
003404
024413
042215
032014
004023
BYE
CAT
026401
015056
006421
042217
045140
177777
ST.
7176 4 006213
71765
7 1766
71767
71770
71771
71772
71773
71774
71775
71776
71776
71777
72000
0464\4
037056
050657
03 4 744
026215
21121107
030222
A26761
036721
COM4
142217
10 6421
145140
72001 177777
12002 136721
72003 142722
72004 100655
72005
720~6
72007
72~IA
7 2 011
OPE::
142222
104340
'144544
1164"'1
132226
124413
131215
12012
72013
7 2 014 130556
72015 177777
72016 104717
72017 102222
7202 0 137221
72021 130006
72022 136356
,2023 13 7 0 5°
72024 144744
72025 103044
RCS
OCT 3404
OCT 24413
OCT 42215
OCT 32014
OCT 004023
OCT 26401
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
EQU
oCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCr
OCT
15056
6421
42217
45140
-I
6213
46414
37056
50651
347 4 4
2621e
10107
030222
26761
36721
•142217
1 0 6421
145140,~1
136721
142122
100655
142222
1"4340
144544
116401
BYE
KILL
RENUMBER
NAME
CATALOG
LIBRARY
GROUP
DIRECTORY • USER CONSOLE
REPORT • USER CONSOLE
STATUS • USER CONSOLE
STATUS OVERLAy • USER CONSOLE
DELETE
TIME
PROTECT
UNPROTECT
OPEN
LENGTH
ECHO
MESSAGE
LPRINTER
PORT"'U9ER CONSOLE
REPORT • SYSTEM CONSOLE
DIRECTORY • SYSTEM CONSOLE
STATUS- SYSTEM CONSOLE
PORT.SySTEM CONSOLE
ROSTER
ANNOUNCE
RESET
CHANGE
SLEEP
HIBERNATE
NEWIO
KILLIO
MUNLOCK
131215
130 55 6,.1 MLOCK
132226
124413
104717
102222
137221
130006
136356
1371215 0
\44744
103044
COPy
BESTOW
PURGE
MAGTApE
PHO
PRINTER
SPEED
BREAK
COMMAND TABLE
PAGE 0327 *27
0103.
r!
0104.
PART II
__
STARTING ADDRESSES
0105*
0106*
S.ECTION I
0197*
72026 071004
01a9 72027 071025
0119 72030 010605
0111*
0112* SECTION II
0113.
01A8
0114
0115
0116
0117
0118
0119
0120.
0121*
1£1122*
0123.
0124*
COM5
DEF .SCR
OEF _TAP
OEF SCH20
KEY
DfF CMPLE
OEF LIST
OEF PUNCH
OfF XPNCH
OfF ABUCD
72031 036006
72032 052143
72033 052142
72034 052140
72035 073506
12036 044737
OfF TAPER
SECTION III
THIS SECTION CONTAINS THE TWO WORD DISC ADDRESSES OF THE
LIBRARY ROUTINES, THIS TABLE IS FILLED BY THE LOADER.
0125.
8SS COM5.COM3+COM5.COM3
0126
72037 000000
COM6
0128
FILIB EQU COM6.COM3+COMFLp.COH3.COMFL
0129
12045
72051
0130
72047
ASNIB EQU COM6-COM3+ASGNA-COH3·ASGNA
0132
72221 000000
DSERA
0134
72231 000000
LOGGR SSS 64
CHL.IB EQU COM6.COM3+COMCH-COM3.COMCH
BSS 8
FILES
CHAIN
ASSIGN
ERROR MESSAGE DISC ADDRESSES
HOLDS INFO FOR LOGGING
PAGE 0328 #27
LIBRARV SUBROUTINES
01J6.
LIBRARV SUBROUTINE POINTERS AND TEMPORARIES
0131 ••
0138.
0139 72331 000000 LSTPl BSS 1
0140 72332 000000 LST P2 BSS t
0141 72333 000000 LSTP3 BSS 1
0142 72334 000000 LSTP4 8SS 1
0143 72335 000000 LSTP5 BSS 1
0144 000 35
TEeNT EQU LTEMP+5
• TABLE ENTRY COUNT (NEGATIVE)
OLPTR EQU LTEMP+l1 .> TO A TRACK LENGTH
0145 00043
0146
OAPTR EQU LTEMP+12
OALEN EQU LTEMP+13
DADDR E'QU LTEMP+14
EQU LTEMP+15
00044
0147 00045
0148 00046
0149.
0151
0152
0153
0154
0155
0156
0157
·0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
72336 000116
72337 000113
72340
72341
72342
72343
72344
72345
72346
72347
72350
72351
72352
72353
025130
000000
000000
000000
0000210
074434
074450
031073
074561
074516
070431
00~161
72354 160002
72355 005040
72356 ~30057
->
TO A TWO WORD DISC ADDRESS
• DISC ADDRESS LENGTH
CONTAINS A 2 WORD
DISC ADDRESS
OEF ADTAT
.> TO AOT ADDRESS TABLE
OfF IDEC"'11
a> LAST IDEe ENTRY TRACK LENGTH
OfF LIBUS+10176 DIRTY FILE NAMES BUFFER
BSS 1
COUNT of FILEs TO BECHECKEO
BSS 1
COUNT OF CHANGED (DIRTY) FIL!S
BSS 1
POINTER TO USER ID
aSs t
POINTER FOR LtD'S SEARCHES
OEF MOVEB
OEF MOVEW
OEF OLOOK
OEF LOUT
OfF LEN02
OEf 5CH7
DfF SYSID
M8190 DEC "'8190
lFSPA OCT 5040
ZERSL ASC 1,01
ADTAP
IDECL
DFNAM
lCOFC
DFCNT
LCOID
LeDBS
MOVFB
MOVFW
DLOKA
LOUTA
LEN2A
OSCH7
DSYID
PAGE
(11329 #27
LIBRARY SUBROUTINlS
0169.
0178.·
FIND ADT
0171.·.
0172.·
0173*
0114* THIS ROUTINE fINDS THE ADT THAT THE DISC ADDRESS CONTAINED IN
0175* DADDR SHOULD GO INTO, THE Rt-TURNED RESUL.TS ARE,
DAPTR -> ADT DISC ADDRESS
0176.
DLPTR a> AOT LENGTH
0177*
017S.
0179
018e
0181
0182
0183
0184
~185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0198
0199
0200
0201
1tl2~2
0203
0204
0205
0206
0207
72357
72360
72361
72362
72363
72364
72365
72366
72367
72370
72371
72372
72373
72374
72.375
72376
72377
72400
72401
72402
72403
72404
72405
72406
724 0 7
72410
7 2 411
72412
72413
12414
00B0r;,0
060346
OJ72331
060177
040437
070044
104200
100044
000065
005500
016611
FAOT
NOP
LDA
STA
LOA
ADA
FAUlt ST.
OLD
... 9
LSTPt
MHAD
.+48
DAPTR
DAPTR,I
CLE,ERA
ERB
JSB DASUB
SSA,RSS
JMP FADT3
LOA DAPTR
SET COUNT FOR
NUMBER OF ADTS
A .> DISC TABLES
START WITH LAST ENTRY
A .> DISC TABLE ENTRY
A8 • FIRST ADDRESS ON THIS DISC
CONVERT
TO BLOCKS
002021
026402
060044
040351
036331
026364
102037
026400
GO TRy NEXT DISC
FAOT2 HL.T DEATH+37S SETTER FINO DISC
JMP .... 1
062331
FAOT3 LDA LSTPl
~03000
0 503 67
026400
100200
000362
042336
070044
040361
070043
126357
ADA .... 6
RESULT POSITIVE, FOUND THE DISC
RESULT NEGITIVE,MOVE
TO PRECEEDING ENTRY
ISZ LSTPl
JMP FADT1
eMA
CPA ,+8
JMP FAOT2
MPy .+3
ADA ADrAP
STA DAPTR
AOA .+2
STA DLPTR
JMP FADT,l
CHECK FOR BAD
DISC
ADDRESS
GENERATE TABLE
ADDRESS FOR DISC
POINTER • AND
POINTER FOR
DISC LENGTH
PAGE 0330 #27
LIBRARY SUBROUTINES
0209.
0210**
·RETURN BLOCK TO ADT
0211***
0212**
0213*
0214* THIS ROUTINE ADDS A BLOCK OF DISC SPACE BACK INTO TH! lOT.
0215* THE ROUTINE ASSUMES THE FOLLOWING,
0216*
DAODR = 2 WORD DISC ADDRESS OF BLOCK TO BE ADDEO
0217*
DALEN • LENGTH OF THE BLOCK
0218*
OApTR .> 2 WORD DISC ADDRESS OF ADT TRACK
0219~
DLPTR _> LENGTH OF ~DT TRACK
0220.
".~~.
lJoC;C,,,
THE CORRECT AOT TRACK IS IN CORE
0222*
0223.
0224.
0225*
0226*
0228
0229
0230
0231
0232
0233
0234
0235
0236
023 7
",,238
0239
0240
0241
0242
THE ROUTINE R~TURNS WITH THE LENGTHS IN MWORO AND DLPTR,I BOTH
UPDATED, BUT THE TRACK IS NOT WRITTEN OUT.
72415 000000
72416 f2160B45
RBADT NOP
72417 0212003
72420 126415
72421 160043
SZA,RSS
JMP RBADT,l
LDA OLPTR,I
CMA,INA
ADA LI8D
STA lSTPl
LOB LISD
RAOTI STB LSTP2
CPB LSTPl
12422
72423
72424
72425
7 242 6
72427
72430
003004
040676
072331
064676
076 332
056331
026532
72431 104200
72432 172332
72433 016611
12434 002020
72435 026441
LOA DALEN
.JMP RAOT3
OLD LS·TP2, I
JSB DASUe
SSA
DON.T WASTE
TIME ON
ZERO L.ENGTH
GET AOT LENGTH
END OF ADT TRACK
8EGINNING OF AOT TRACK
B -> CURRENT ENTRY
CHECK FOR END OF TRACK
YES, INSERT INTRY AT END
GET OISC ADDRESS FOR THIS ENTRy
a>
a>
SUB. FROM ADDRESS BEING RETURNED
FAR ENOUGH?
YES, FOUND NEXT ENTRY GREATER
NO, ADVANCE
AOT POINTER
TO NEXT ENTRY
0243
JMP RADT2
LOB LSTP2
0244 72436 066332
0245 72437 044362
ADS .+3
JHP.RADTl
0246 7244~ 12126.426
0247*
0248*
CHECK TO SE~ IF THE NEw ENTRY IS
024 9*
ADJACENT TO THE FOLLOwING ENTRY
0250*
GET CURRENT DISC ADDRESS
0251 72441 104200 RADT2 DLD OADDR
72442 000046
eLE
0252 72443 000040
AD8 DALEN
ADO LENGTH OF RETURNED BLOCK
0253 12444 044045
1d254 72445 002040
SEZ
CHECK FOR
INA
0255 72446 002004
OVERFLOW
0256 7 2 447 15 2 33 2
CPA LSTP2,I
CHECK FOR MATCH
CLA,INA,RSS
0257 72450 002405
FIRST WORDS ARE EQUAL
0258 72451 026532
JMP RADT3
NO MATCH
0259 72452 042332
ADA LSTP2
CHECK SECOND
0260 7 2 453 1540~0
CPS A,I
WORD FOR HATCH
RSS
72454 002001
~261
yES, COMBINE THE THO ENTRIES
0262 72455 026532
JMP RADT3
NO, ENTRIES CAN'T BE COMBINED
PAGE 0331 #27
ij263.
0264*
0265*
0266 72456
72457
1ri267 72460
72461
0268 72462
0269 72463
0270 72464
72465
0271
0272 72466
0273*
0274*
0275.
02 76*
0277*
0278 72467
0279 72470
0280 72471
0281 72472
0282· 72473
0283 72414
0284 72475
72476
0285 72477
0286 72500
0287 72501
0288 72502
0289 72503
0290 72504
0291
72505
0292 72506
0293 72507
0294 72510
0295 7 2 511
0296.
t(J301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
COMBINE THIS ENTRY WITH THE NEXT ENTRY
1042AkJ
"'00046
OLD OADOR
1044'-"0
OST LSTP2,I
172332
066332
044361
060045
140001
170001
LOB lSTP2
ADS ,+2
LOA DALEN
ADA B,1
STA B,I
REPLACE THE NEXT ENTRy WITH
DISC ADDRESS Of RETURNED BLOCK
B -> LENGTH OF ENTRY
A .. RETURNED LENGTH
ADD RETURNED LENGTH
TO CURRENT LENGTH
CHECK TO SEE IF THE NEw ENTRY 18
ADJACENT TO THE PREVIOUS ENTRY
(DID RETURNED BLOCK BRIDGE THE GAP)
062332
0521676
126415
040356
072331
040355
104200
100000
000040
146331
002040
002004
152332
002405
126415
042332
154000
1302005
126415 .
LOA
CPA
JMP
ADA
STA
AOA
OLD
LSTP2
LIBD
RBADT,I
, .... 1
LSTPt
.-2
A,I
elf
ADB lSTP1,I
SEl
INA
CPA LSTP2,I
CLA,INA,RSS
JMP RBADT,I
ADA LSTP2
CPS A,I
INA,RSS
JMP RBADT,I
CHECK FOR NO
PREVIOUS ENTRY
NONE
-> PREVIOUS ENTRY
LENGTH
• PREVIOUS ENTRy DISC ADDRESS
ADD PREVIOUS LENGTH
TO PREVIOUS ADDRESS
CHECK FOR FIRST WORD MATCH
FIRST WORDS ARE EQUAL
NO HATCH
CHECK SECOND
WORD FOR MATCH
.> LENGTH OF COMBINED ENTRy
NO MATCH
COMBINE PREVIOUS ENTRy WITH THE COMBINED ENTRy
0297*
0298*
0299
03 00
LIBRARY SUBROUTINES
72512
725 1 3
72514
7 2515
72516
72517
72520
72521
72522
7 25 23
72524
72525
72526
72527
0312
tt'31J 72530
0314 72531
0315*
164000
04 0 354
144000
17 40 00
066332
074051
044362
074050
044774
144043
116346
160043
040362
170043
070204
126415
LDB
ADA
ADe
STB
LOB
STB
ADB
STB
ADB
ADS
.IS8
LDA
ADA
STA
STA
JMP
A,I
.-3
A,I
A,I
LSTP2
MOVED
.+3
MOVES
MLIBD
DLPTR,I
MOVFW, I
OLPTR,I
.+3
DLPTR,I
MWORO
RBADT,I
B • LENGTH of COMBINED ENTRY
A a> LENGTH OF PREVIOUS ENTRY
SUM AND THEN
UPDATE L.ENGTH
NOW SET UP FOR MOVE
COMBINED
ENTRY IS TO
BE REMOVED
COMPUTE LENGTH
OF MOVE
MOVe TABLE DOWN
A • CURRENT ADT LENGTH
SHORTEN AND
UPDATE AOT
UPDATE LENGTH WORD
PAGE 0332 #27
LIBRARY SUBROUTINES
0316*
NOT ADJACENT TO THE FOLLOWING ENTRY •
CHECK FOR COMBINABIlITY WITH PREVIOUS ENTRy
0317*
0318.
CHECK FOR NO
0319 72532 062332 RADTJ LOA LSTP2
0320 72533 ~50676
PREVIOUS ENTRY
CPA LISD
0321
72534 026560
0322
0323
72535 040356
72536 072331
0324
0325
72537 0421355
7254 0 121 4200
0326
72541 100000
72542 000040
0I~"7
IU .... c;.'
0328
0329
0330
0331
0332
0333
0334
0335
0336
033 7
0338
0339
72543 146331
72544 002040
72545 002004
72546 050046
72547 002001
72550 026560
72551 054047
72552 002001
72553 026560
72554 060'l45
72555 142331
72556 172331
72557 126415
JMP
ADA
STA
AOA
OLD
RADT4
•• 1
LSTP1
... 2
A,I
eLE
ADB LSTP!,I
sEZ
INA
CPA DADDR
RSS
JMP RADT4
CPB..._DAOOR+ 1
RSS
JMP RADT4
LOA DALEN
ADA LSTP1,I
STA LSTP1,1
JMP RBADT,I
NONE
.>
PREVIOUS ENTRy LENGTH
• PREVIOUS ENTRY DISC ADDRESS
ADO PREVIOUS LENGTH
TO PREVIOUS ADDRESS
CHECK FOR FIRST
WORD MATCH
NO MATCH
00 SECOND WORDS MATCH?
YES, ENTRIES CAN COMBINE
NO MATCH
COMPUTE NEW
l.ENGTH AND
UPDATE ENTRy
~J40.
THE NEW ENTRY IS NOT ADJACENT TO
THf FOLLOWING OR PREC~EDING ENTRY
MOVE TABLE IF POSSIBLE AND ,INSERT
0341*
0342*
0343*
0344.
0345
0346
0347
0348
0349
0350
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
~366
1d367
72560 164043
72561 056354
725,62
72563
72564
72565
72566
126415
007000
044676
074050
044362
72567 074051
72570 007004
72571 044361
72572 046332
72573 116345
72574 1042210
72575 000046
72576 104400
72577 172332
72600 066332
72601 044361
72602 060045
72603 170001
72604 160043
72605 040354
72606 170043
72607 070204
72610 126415
RAOT4 lOB DLPTR,l
CPB M8 1g0
.JMP RBADT, I
eMB
ADS LIBD
STe MOVES
ADS ,+3
STe MOVED
8
IF THERE IS NO RROM
TO EXPAND THE ADT,
THE SPACE IS LOST
SET UP FOR
THE MOVE
(Ma,INS
ADS .... 2
ADS LSTP2
JSB MOVFB,I
OLD DADOR
-OST LSTP2,I
MOVE TABLE UP TO MAKE ROOM
GET DISC ADDRESS AND
SET INTO THE ADT
LOB LSTP2
ADa .... 2
LOA DALEN
STA B,1
lOA DLPTR,I
ADA , ... 3
STA DLPTR,I
STA MWORO
JMP RBADT,I
GET LENGTH OF
NEW ENTRY AND
SET INTO AOT
INCREASE ADT
TRACK LENGTH
THREE WORDS
pAGE 0333 #27
lIBRARY SUHROUTINES
0369*
0370*.
~ISC ADDRESS SUBTRACTION
0371**.
0372**
0373.
THE TWO WORD DISC ADDRESS IN AS IS SUBTRACTED
0374*
FROM THE DISC ADDRESS IN DADOR AND DADDR+t
0375*
0376*
~377
72611 000000
72612 007104
~379
72613 003040
0380 72614 002004
, ".,.., 000040
0381 ..,?*,i"
0382 72616 044047
0383 12617 002040
0384 72620 002004
0385 ' 72621 040046
0386 72~22 126611
0378
..
DASUB
NOP
CMB,CLf,INB
CMA,SEZ
INA
eLE
ADS DADDR+l
SEZ
INA
ADD LOWER ADDRESS WORDS
ADA DADDR
ADD UPPER ADDRESS WORDS
JMP DASUB,I
PAGE 0334 #27
LIBRARY SUBROUTINES
0388*
0389*.
1tJ390***
R~TURN
TABLE TO ADT
0391**
~J92*
0393*
0394*
0395*
0396*
0397*
ki398*
0399*
0400.
0401*
0402*
0403.
THIS ROUTINE SCANS A TABLE AND PUTS DISC SPACE BACK INTO
THE AOTS. THE ROUTINE RETURNS ALL SPACE ON ONE ADT 8EFORE
WRITING IT BACK. THE DISC ADDRESS OF EACH ENTRY IS ZEROED
AS THE SpACE IS RETURNED. THE FORMAT OF THE TABL.E IS.
LIAUs+8192 I
~
•
•
~404.
0405.
0406.
0407*
0408
1tS409
0410
0411
0412
0413
111414
0415
0416
0417
0418
0419
0420
04 21
0422
'0423
0424
0425
04 2 6
0427
•
TEeNT - CONTAINS THE NEGATIVE NUMBER OF ENTRIES
72623 000000
72624 060035
72625 072333
72626 002003
72627 126623
72630 064674
72631 006004
72632 160001
72633 070045
72634 006004
72635 076~34
72636 104200
72637 1009101
72640 002003
72641 '006002
72642 002001
72643 026734
72644 104400
72645 000046
72646 002400
7 2 647 0064 00
72650 104401tJ
72651 172334
72652 016357
72653 104200
72654 100044
0430
7265fS 030091
0431
72656
72657
72660
72661
72662
72663
72664
72665
72666
0432
0433
0434
0435
0436
0437
",438
~439
(10)
LENGTH
, DISC
ADDRESS
I
I
002003
026734
160043
070204
060044
072335
064700
114206
~'26727
RTADT NOP
RTAot LOA TECNT
STA LSTP3
SZA,RSS
JMP RTADT,I
LOB L8192
INB
RTAD2 LOA B,l
STA DALEN
INS
STB lSTP4
DLD B,I
GET ENTRY COUNT
ANO SAVE IT
DON'T WASTE TIME
ON A NULL TABLE
LOAp TABLE BASE
-> DISC LENGTH Of FIRST ENTRY
GET LENGTH AND SAVE
FOR FACT AND RBADT
II> DISC ADDRESS
SAVE POINTER
GET THE DISC ADDRESS
SZB
RSS
CHECK FOR
NULL ENTRY
NON.ZERO ENTRY, RETURN SPACE
JMP RTNUL
oST DADDR
SAVE DISC ADDRESS FOR FADT,RBAOT
SZA,RSS
CLA
CLB
DST LSTP4,1
.JSB FADT
OLD OAPTR,I
lOR B
SZA,RSS
JMP RTNUL
LOA DLPTR,I
STA MWORO
LDA DAPTR
srA LSTP5
LOB LIBDI
JSB DISCZ,1
.JMP RTDER
NULL ENTRY
PREVENT SECOND
RETURN OF
SPACE
FIND THE CORRECT ADT TRACK
CHECK FOR
ExISTANCE
OF A01 TRACK
DOESN'T EXIST
GET THE ADT'S LENGTH AND
SET UP FOR DISC TRANSFER
.> DISC ADDRESS
SAVE POINTER
READ IN
AOT TRACK
DISC ERROR
PAGE 0335
"-'-
#~7
LIBRARY SUBROUTINES
JSB RBADT
RTAOJ ISz LSTPJ
RETURN BLOCK TO ADT
CHECK COUNTER
MOR! f:.NTRIES
0440
72667 016415
L1441
k1442
0444
7267V1 "'3633J
72671 026671
7 267 ') L~ 6 004 4
7267J 064676
~44b
72674 1142Q16
.158 DISCI, I
0446
72675 flt26727
72676 026624
.JMP RTDER
1fJ44J
0447
0449
0450
0451
0452
0453
0454
72677
~66334
72700 044362
72701 160001
72702 070045
72703 00612104
72704 076 3 34
0455
72705 104200
72706 100001
0456
0457
0463
72707
72710
72711
72712
72713
72714
7271!i
72716
72717
"'464
72720 002401
0465
72721 026670
72722 006400
04b8
0459
0460
0461
L1462
0466
0467
0468
0 46 9
0471
0472
0473
0474
0476
0477
0478
0479
0480
0481
002003
.JMP
RTAD~
DISC
DISC ERROR
SCAN TABLE UNTIL EMPTY
JMP RTADl
RTA04 LDB LSTP4
a> NEXT DISC LENGTH
GET LENGTH AND SAVE
FOR FAD! AND RBAD!
:I> DISC ADDRESS
SAVE UPDATED POINTER
GET DISC ADDRESS
ADS ,+3
LOA
STA
INB
STB
OLD
B,I
DALEN
lSTP4
8,1
CHECK FOR
NULL. ENTRY
NON.ZERO, RETURN SPAC~
NULL, GO TRY NEXT ENTRY
SAVE ADDRESS
SlA,RSS
~060"'2
SIB
002001
RSS
02667"-'
104400
JMP RTAD3
~00046
WRITE.ADT
BACK TO
LOA OAPTR
LOB LlBD
DST OADDR
JSB FADT
LOA DAPTR
CPA lSTP!5
72723 104400
(LB
OST LSTP4,I
FIND THE CORRECT ADT TRACK
DOES THIS ENTRY GO
ON THE ADT TRACK
CURRENTLY IN CORE?
NO .. - DEFER
YES • PREVENT
DOUBLE RETURNS
72724 172334
72725 0164t.5
72726 026670
JSB RBADT
JMP RTADJ
RETURN BLOCK TO ADT
PROCESS NEXT ENTRY
72727
7273'"
72731
72732
72733
72734
72735
72736
72737
016357
060044
052335
CLA,RSS
.JMP RTAD3
0024~0
RTDER CLA
0064Ct10
170043
104400
CLB
STA DLPTR,I
OS1 OAPTR,I
DISC ERROR DURING ADT 1/0
REMOVE ADT
TRACK fROM
ADTAT
100044
036333
00201211
126623
066334
RTNUL ISZ LSTP3
RSS
.JMP RT ADT,
LDB LSTP4
72740 044362
ADS .+3
72741 026632
JMP RTAD2
I
CHECK THE
COUNTER
DONE, NO MORE ENTRIES
GET THE TABlE POINTER
.> NEXT DISC LENGTH
TRY THIS ENTRY
PAGE 0336
~27
LIBRARy SUBROUTINES
""483.
0484.*
FINO lOT
1d485.*.
~486 ••
1l1487.
0488* lHtS ROUTINE FINDS WHICH 10
0489* READS THAT TRACK IN10 CORE,
0490* RETURNED RESUL1S AHE.
0491*
0492*
0493.
0494*
0495.
0496
0497
0498
04 99
0500
05 0 1
0502
0503
0504
1t1505
05~6
0507
0508
0509
0510
0511
0012
0513
0514*
V)b15
0516
~517
0518
0519
0520
0521
0522
TRAC~
ENT~R
IDTAD -> DISC ADDRESS
IDTLN .> LENGTH OF 10
MWORD = LENGTM OF 1D
LSTPl =~ IF 1D NOT ON
000000
060354
072331
062337
070076
16 40 00
7275~ 040354
72751 006003
72752 026760
72753 \64000
72754 007~04
72755 {lJ44052
72756 006021
72757 026764
7276£11 040356
72761 eJ36331
72762 ~'267 46
72763 \ll02004
FIDT
72764
7 2 7 65
72766
72767
72770
72771.
72772
72773
0020(214
FIDTJ INA
'17~Hi1I75
STA
164076
",74204
LOB
STB
LOB
JSB
JSB
72742
72743
72744
72745
72746
72747
06470V1
114206
114207
126742
THE SPECIFIED 10 IS ON AND
WITH THE IoCOOE IN ID. THE
OF lOT
TRACK
TRACK
ANy TRACK
NOP
LOA .-3
STA
LOA
FlOTt STA
LOB
LSTPl
IDECl
IDTLN
A,I
INITIALIZE:.
COUNTER
.> LAST IDEe ENTRY TRACK LENGTH
STORE IN POINTER
SKIP THIS ENTRY
ADA .... 3
SZB,RSS
.IMP F 10T2
lOS A, I
CMB,INS
ADB tD
SSB,RSS
JMP FIOT3
FIDT2 ADA .-1
lSZ LSTPI
,JMP f-"IDTI
INA
.JMP
IF THE TRACK
LENGTH IS ZERO
• FIRST 10 ON THIS TRACK
> OR <
?
FOUND THE TRACK
.> NEXT TRACK LENGTH
ANY. MOPE TRACKS?
YES
NO, READ IN 1ST TRACK AS DEFAULT
.> DISC ADDRESS
IDTAD
IDTLN,l
MW ORO
LIBDI
DIseZ,l
SICKP,I
FIOT,I
STORE IN POINTER
SET Olse DRIVER
TRANSfER LENGTH
READ loT
FROM DISC
BAD NEWS
RETURN
PAG~
0337 #27
0524*
0525**
LIBRARY SUBROUTINtS
SE:ARCH IDT
~526.*.
0527.*
0528.
0529* THIS ROUTINE SEARCHES THE ID TRACK IN CORE FOR THE IDCODE
0530. SPECIFIED BY 10, AND RETURNS WITH B POINTING TO IT.
IF 8 • 0,
~531.
~532·
THEN THE IDCODE WAS NOT FOUND.
TRACK LfNGTH,
MWORO MUST EQUAL THE NEGATIVE
~533.
~534
Vj535
0536
0537
V)538
0539
0540
0541
72774
72775
72776
72777
73000
73001
73002
000000
0642~4
007004
044676
,,60052
054676
027007
NOP
LDS MWORD
CMa,INS
ADB LIBD
LOA ID
SIDTt CPS LIBD
JMP 810T2
SlOT
ADS ,<1!98
0542
73Pl03 044347
73004 150001
CPA 8,1
0543
7300f> 126774
730v)6 0270~1
.JMP SLOT, 1
.IMP SlOT 1
~544
0545*
0546 73007 0eJ6400
0547 73"'10 126774
510T2 CLB
.IMP S lOT, I
E01+1
GET THE 10
START OF TABLE?
YES, NO SUCH 10
=> NEXT ENTRY
CHECK FOR 10
FOUND IT
TRY NEXT ENTRY
.>
10 DOE.S NOT
EXIST, 8=0
!f'b49.
VJ550 ••
"'051.*.
0052*·
0553*
0554* GCIOT READS THt PROP~R 10 TRACK INTO CORE, SEARCHES IT FOR
°555* THE cURRENT USER'S 10, AND RtTURNS WITH B POINTING TO IT.
~556*
IF
~562
~o63
0564
"'565
TH~
USER LOGGED OFF OR HIS 10 DOES NoT EXIST.
CH10000
GeIDT NOP
LOB MLINK+1
ADS .+?ID-?LINK
LOB B,1
GET USER'S ID
STS ID
ANO SAVE IT
SZB,RSS
RETURN WITH e-0 IF
JMP GeIDT,I
USER NOT LOGGED ON
JSB FIDT
FIND 10 TRACK
LOB L5TPt
RETURN WITH
SZB,RSS
a_0 IF TRACK
JMP GeIDT,I
NOT FOUND
JSB SlOT
SEARCH 10 TRACK
JMP GCIDT,l
A=~,
0557.
0558 73011
73-012
0 55 9
0560 73013
0561
73014
064272
044346
164001
7 31(115 07 4 052
73~16
006003
73017 127V'tl
10566
7302V1 ~16742
73021 066331
0567
0568
7302~
0060Ql3
73023
127~11
~569
0570
0001*
73024 016774
73025 12711111
PAGE 0338 #28
LIBRARY SUBROUTINES
0003*
0004*.
0005.*.
RfTURN TABLE TO lOT
0006**
0007*
0008. THIS ROUTINE SCANS A TABLE AND UPDATES THE AMOUNT OF DlSC SPACE
0009* IN USE FOR THE SPECIFIED IDS. THE FORMAT OF TH( TABLE IS,
LIBUS.S192 I (10)
0010*
I LENGTH
0011*
I OISC
0012*
I
ADDRESS
0013*
00i4.
•
0015*
•
0016.
•
0017."
TEeNT ~ CONTAINS THE NEGATIVE NUMBER OF ENTRIES
0018.
0019*
0020 73026 000000 RTIDT NOP
0021 73027 060035
LOA TECNT
GET CHARACTER
COUNT AND SAVE
STA LSTP2
0022 73030 072332
0023 73031 0022103
SZA,RSS
DON'T WASTE TlME
JMP RTIOT,!
ON A NULL TABLE
0024 73032 121026
0023 73033 064614
LOB L8192
WI> HEAo OF TABLE
5TB LSTP3
SAVE IN POINTER
0026 73034 076333
0027 73035 160001 RTID1 LOA 8,1
GET AND SAVE
STA ID
NEXT IDCOOE
"'028 73036 010052
0029 73037 016742
JSB FIOT
FIND 10 TRACK
SfARCH'OR 10
0030 73040 016774 RTID2 JSB SlOT
0031 73041 006003
sze,RSS
WAS 10 FOUND?
JMP RTID3
NO
0032 73042 021061
73043 044366
0033
ADB ,+1
.> SECTORS USED
LOA LSTPJ
a> TABLE ENTRy
0034 73044 ~62333
INA
73045 002004
0035
16000~
~~36
732146
0037
0038
73047 003004
0039
0040
0041
0042
0043
0044
0045
0046
0047.
0048
0049
0050
0051
0052
0053
1d054
0055
0056
73050 140001
73051 170001
73052 066333
7 3 053 044363
73054 076333
73055 160001
73056 070052
7 3 0 5 7 036332
73060 021040
73061
73062
73063
73064
73065
73066
73067
73070
73071
060075
064676
114206
114212
062332
002003
127026
066333
e27035
LOA A,I
CMA,INA
AOA B,I
STA B,I
LOB LSTP3
ADB ,+4
S1! LSTP3
LOA B,I
STA 10
ISZ LSTP2
jMP RTI02
RTID3 LOA 10TAO
LOB LISD
JSB DISCZ,1
JSB DEAOP,1
LOA lSTP2
5lA,RSS
.J MP RTID T, I
LOB LSTP3
JHP RTIO!
• LENGTH TO BE RETURNED
UPDATE
DISC SPACE
USED
SET POINTER
TO NEXT
ENTRy
GET AND
SAVE 10
OONE?
NO
.> DISC ADDRESS
WRITE OUT
to TRACK
BAD NEWS
WORK ALL. DONE1
YES. RETURN
NO, PROCESS
NEXT ENTRY
PAGE 0339 #28
LIBRARY SUBROUTINES
B05a.
"059 ••
e060.*.
0061*·
1062*
0063.
0064*
0065.
0066.
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
"086
0087
0088
0~89
009O
0091
0092
0093
0094
0095
0096
0097
009·8
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
St.T UP HEADING
HDBUF SETS UP THE HEADING FOR DIRECTORy, STATUS, AND REPORT
ON THE SYSTEM CONSOLE. THE HEADING CONSISTS OF THE S'8rEM
10, DATE, AND TIME.
73072
73073
730;4
73075
73076
73077
73100
73101
73102
73103
73104
73105
73106
73107
73110
73111
13112
73113
73114
73115
73116
13117
73120
13121
73122
73123
7 3 124
73125
73126
73121
73130
7313t
73132
73133
73134
73135
73136
000000
~60303
070041
062355
110041
060532
034041
170041
060303
040361
070051
062353
010050
064352
116346
060532
064041
044365
170001
044361
074041
060111
006400
100400
000407
074042
006400
1°04 00
000371
005727
046356
114041
01716!')
001400
044041
170001
044361
73137 074041
73140 060110
73141 017165
73142 170041
73143 060532
73144 034041
73145 170041
73146 060042
73147 017165
7 3 150 034041
HD8UF
NOP
LOA T3581
QT ...
u, "
I. . T~MD
..... o
, ... , . , ..... WI
INITIALIZE TTY
BUFFER POINTER
LF.SPACE
LOA LFSPA
STA LTEMP+9,I
TWO SPACES
LOA ASCBB
ISZ LTEMP+9
STA LTEMP+9,I
MOVE
LDA T3581
ADA .+2
SrA MOVED
SYSTEM
LOA OSYID
STA MOVES
1D TO
LOB ,-5
JSB MOVFW,I
BUFFER
TWO SPACES
LDA ASC88
LOB LTEMP+9
Aoe
.+6
srA 8,1
ADS .+2
STB LTEMP+9
LOA OATIM
DIV ,+24
GET HOUR OF YEAR
CONVERT
TO OAY
5T8 LTEMP+t0
CLB
DIV .+1 0
SAVE HOUR REMAINDER
GET LAST
DIGIT
eLB
SLF,BLF
ADS ZERSL
MERGE IN SLASH
STa LTEMP+9,1
JSB TONUM
FIRST TWO DIGITS OF DAY
eee
ADB LTEMP.9
STA B,I
AD8 ,+2
5T8 LTEMP.9
LOA YEAR
YEAR OF CENTURY
JSB TDNUM
STA LTEMP+9,I
LOA ASCBB
TWO SPACES
ISZ LTEMP+9
STA lTEMP+9,I
LOA LTEHP+10 HOUR OF DAY
JSB TDNUM
ISZ LTEMP+9
PAGE 0340 #28
0112
0113
0114
0115
. 0116
0117
0118
0119
0120
0121
0122
0123.
0124*
0125*
0126
0127
1a128
0129
0130
0131
0132
73151
73152
73153
73154
73155
73156
73157
LIBRARY SUBROUTINES
170041
060172
040526
006400
100400
000510
017165
7 3 160 034041
73161 170041
73162 060413
13163 ~64303
"?:1'&A 121012
,
........ AV-'"
STA
LTEMP+9,I
LOA DATIM+l
ADA 036K
Cl.8
DIV 0600
CONVERT
110 MS
UNITS TO
MINUTES
.IS8 TDNUM
OF HOUR
15Z LTEMP+9
STA LTEMP+9,I
28 CHARS IN HEADING
LOA .+28
LOB 13581
JMP HDBUF,1
CONVERT A NUMBER <100 TO ASCII
73165
73166
73167
13170
73171
73172
13173
13174
000000
006400
100400
000371
TDNUM NOP
(LS
DIV .+10
001727
ALF,ALF
040001
ADA 8
040530
AOA ASC00
JMP TDNUM,l
127165
FIRST DIGIT
SECOND DIGIT
ASCII OFFSET
PAGE 0341 #28
LIBRARY
SUAROUTIN~S
0134*
0135*.
0136*.*
0137*·
Blla.
01 39*
0140*
0141.
PRINT HEADING
UHDBF PRINTS THE HEADING FOR DIRECTORY, STATUS, AND REPORT
ON THE USER TERMINAL. THE HEADING CONSISTS Of THE SYSTEM
10, DATE, AND TIME.
01~2.
0143
0144
1c1145
0146
0147
0148
0149
0150
0151
0152
13115 00000~
13176 060311
73177 11635rd
73200 060417
73201 116350
73202 060417
73203 11635~
73204 060417
73205 116350
13206 062353
0153
73207 070040
0154
0155
73210 060352
73211 070041
0156
73212
73212 160040
73213 001727
73214 01°500
0157
0158
0159
0160
0161
0162
fd163
0164
°165
0166
0167
0168
0169
0170
0171
0172
0173
73215 116350
73216 16004 0
73217
7322 0
73221
73222
73223
73224
010501fl
11 6 35 0
Pl34040
034 0 41
021212
060417
73225 116350
73226 060417
73227 116350
73230 060171
0176
73231 006400
73232 100400
73233 000407
73234 074041
73235 006400
73236 100400
0177
7 3 237 0003,1
73240 074040
0174
0175
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
7 3 241 017274
73242 060040
73243 040437
73244 116350
73245 060436
73246 116350
73247 060170
73250 017214
73251 060417
73252 116350
UHDBF NOP
LOA .+128
JSB
LOA
JSB
LOA
JSB
LOA
JSB
LDA
STA
LOA
STA
LOUTA;I
,+408
LOUTA,I
.... 40B
LOUTA,I
,+488
LOUTA,I
DSYIO
LTEMP+8
.-5
LTEMP+9
LF
BL.ANt<
BLANK
BLANK
-> SYSTEM ID
5 WORDS
UHOBl fOQU *
LDA LTEHP+8,I OUTPUT
ALF,ALF
AND 8377
JSB
LOA
AND
JS8
ISZ
ISZ
JMP
LOA
JSB
LDA
JSB
LOA
LOUTA,I
LTEMP"8,I
SYSTEM
8377
LOUTA,I
LTEMP+8
lTEMP+9
UHDBl
,+408
LOUTA,I
.... 408
LOUTA,!
OATIH
eLI
10
BLANK
BLANK
GET HOuR OF yEAR
DIy .+24
CONvERT TO DAy
STB LTEMP+9
SAVE HOUR REMAINDER
(L8
OIY ,+10
1ST 2 DIGITS IN A, LAST IN B
STB
JSB
LDA
ADA
JSB
LOA
JSB
LOA
J8B
LTEMP+8
UTDNM
LTEHP+8
OUTPUT 1ST 2
,+60 8
lOUTA,I
OUTPUT LAST ONE
.... 578
, I'
LOUTA,I
YEAR
UTDNH
GET Yf.AR
LOA ,+468
JSB LOUTA,l
AND OUTPUT
BLANK
PAGE 0342 *28
0188
0189
019"
0191
0192
21193
0194
0195
0196
0197
e,9g
0199
0200
0201
0202
01203
13253
73254
732S5
732ee
73257
LIBRARY SUBROUTINES
060417
116350
060041
017214
060172
73260 040526
73261 006400
73262 100400
13263 000510
73264 017214
73265 060402
73266 11635l!J
73267 060374
7 3 270
73271
73272
73213
116 3 5 0
060311
116350
127175
LOA
JSB
LOA
JSB
LOA
.+408
LOUTA,I
lTEMP+Y
UTDNM
DATIM+l
AOA 036K
CLB
DIV 0600
JSB UTDNM
LOA .+238
JS8 LOUTA,!
LOA .+158
JS8 LOUTA,I
LOA ,+128
JSB l.OUTA,I
JMP UHDBF,I
BLANK
HOUR OF DAY
CONVERT
100MS
UNITS TO
MINUTES
OF HOUR
X_OFf
CR
IF
0204.
0205. CONVERT A #<100 TO ASCII AND OUTpUT IT
0206.
0207 73274 000000 UTDNM NOP
0208 13275 006400
CL8
0209 73276 100400
DIV ,+121
0210
0211
0212
0213
0214
0215
0216
73277
73300
73301
73302
73303
000371
074043
040437
116350
060043
73304 040437
73305 116350
73306 12727 4
ST8 LTEMP+l1
AOA .+608
JSB LOUTA,1
LOA LTEMP+l1
ADA .+60 8
JSB LOUTA,I
JMP UTDNM,I
PAGE 0343 #28
UPDATE LAST CHANGED DATE ROUTINE
0218*
UPDATE LAST CHANGED DATES IF NECESSARy
0219.
0220.
*LCDL EQU •
0221 73307
0222 7 3 307 064272
LOB MLINK+l
IS THERE
A NEED TO
0223 73310 044341
ADS ,-"LINK
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
k1240
0241
0242
0243
0244
0245
0246
0241
0248
0249
0250
0251
0252
0253
0254
0255
0256
0257
0258
0259
0260
0261
0262
0263
0264
026e
0266
0261
0268
0269
0270
73311
73312
13313
73314
73315
1621001
010502
002003
027361
044376
73316 "02400
73317 103100
73320 170001
73321 010262
73322 044355
73323 060363
73324 170001
73325 044346
LOA 8,1
AND DFCHK
SZA,RSS
JMP EXIT1
eLF o
STA B,I
STA TIMEF
B,I
WE WON'T GET SWAPPED
ADB .+1PROS.?STAT
STA
ADA USE
STA MWORO
73333 044355
73334 060001
73335 065213
73336 114206
73337 124210
73340 061550
A08
LOA
LOB
JSB
JMP
LOA
LOB
73341 064272
73343
73344
73345
73346
73347
73350
73351
13352
017367
021361
"02400
110632
060212
040345
164000
001000
73353 045213
73354 074204
73355 040355
73356 065214
73357 114206
73360 124210
73361
73361 002400
73362 170632
73363 114614
73364 160634
73365 17 0 632
73366 125556
SET PRIORITY TO 0
NO TIMING
ADe .+?STAT-?PlEV
SET STATUS TO SYNTAX 80
LOA ISYNT
73330 003000
73342 044346
LCD UPDATE
ADS .... 'PLEV
13331 041213
73332 070204
73327 170001
FOR POSSIBLE
CLA
LDA PBPTR
STA B,l
eMA
7 3 326 060056
CHECK FILES
A08
JSB
JMP
ClA
STA
BOUND INTO
TTy TABLE
CAl.CULATE LENGTH
'OR WRITE
TO DISC
.... ?DISC·1PROG
w> SWAP TRACK DISC ADDRESS
8
USE
DISCZ,1
PTZAp,I
OUTPUT USER
TO DISC
BLEw IT, Go ZAp UsER
FRMAT
GET FILE COUNT (.)
MlINK.1
GET POINTER
.+?IO-1lINK
TO ID WORD
LCD
GO uPDATE LAST CHANGED DATEs
EXIT7
CORE INTACT, EXIT
BLOCK
Dele1,I
CLOCK
MlINK+l
RESTORE
LOA
ADA .+1PRQG .. ?LINK
USER
LOB A,l
eMS
ADS USE
5T8 MWORD
SWAP
ADA ,+?DlSC-?PROG
LOB USEI
JSB DISCZ,1
AREA
JMP PTZAP,I
BLEW IT, GO ZAP US!A
EXIT1 EQU •
CLA
BI.OCK
STA
Dele!,I
STA
Delel,I
JSB ABCK,I
LOA DCLC2,I
JMP LCDLP,I
CLOCK
CHECK FOR ABORTS
UNBLOCK
CLOCK
PAGE 0344 #28
r
~
UPDATE L.AST CHANGED DATE ROUTINE
0272*
THIS ROUTINE ASSUMES THAT THE USER'S SWAP AREA IS IN CORE,
0273*
4
THAT THE B REGISTER POINTS TO HIS 10 WORD IN THE TELETYPE
027 *
TABLE, AND THAT A CONTAINS THE N!GATIyE OF THE NUMBER OF FILES
0275*
",276.
0271*
NOP
ENTRy POINT
8278 73367 000000 LCD
STA LCDFC
SAYE FILE COUNT
0279 7 3 37 0 0123f11
BTB LCDID
AND 10 POINTER
0280 73371 016343
0281 73312 002021
SSA,RSS
MAKE SURE THERE REALLY ARE
JMP LCD9
SOME FIL.ES
0282 73373 027452
CLA
INITIALIZE DIRTY
0283 13374 002400
STA DFCNT
0284 13375 072342
FILE COUNT TO ZERO
028 5 73376 062340
GET ADDRESS FOR FIRIT
LOA DFNAM
STA MOVED
DIRTY FILE'S NAME
0286 73377 070051
l.DB FIl.TS
GET START OF FILE TABLE
0287 7340A 065502
0288 7 3 401 006004
IN8
BUMP POINTER TO WORD 1
STB LCOBS
OF ENTRy AND ·SAYE
0289 73402 ,,76344
611290*
0291 73403 160001 LCDl LDA B,I
GET DIRTY FILE BIT
AND BIT14
HAS THIS FILE
0292 734 0 4 °1 0 215
5ZA
BEEN CHANGED?
0293 73405 002002
0294 73406 021462
JMP LCD2
YES
NO, POINT TO NEXT ENTRY
0295 73407 044376 LCOJ ADB ,+FTfL
0296 73410 036341
ISZ LCDFC
ARE THERE MORE FILES?
JMP LCOl
YEI, CHECK NEXT ONE
0297 13411 027403
0298 73412 062342
NO, WERE
LDA OPCNT
5ZA,RSS
0299 73413 002003
ANY DIRTY?
JHP l.CD9
NO, RETURN
0300 73414 027452
0301.
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
0319
0320
0321*
0322
0323
0324
0325
73415
7 3416
73417
73420
73421
73422
7 34 23
73424
7 342 5
13426
73427
73430
73431
73432
73433
73434
73435
73436
73437
13440
73441
ISZ LCD
CMA,INA
STA OFCNT
LOB DFNAM
037367
003004
072342
066340
076344
162343
070030
16012101
070031
006004
104200
100001
ST8 l,COBS
LCD6
73442 060257
73443 002003
73444 027452
73445 006400
LCDID,I
LTEMP
8,1
LTEMP+l
B,l
OST LTEHP+2
104400
000032
116347
027472
066344
044362
076344
036342
027424
LOA
SrA
LOA
STA
INB
OL.D
JS8 OLOKA,I
Leo5
lCD7
JMP
l.OB
ADa
STe
lC08S
,+3
LCDBS
ISZ OFCNT
JMP LCD6
LDA DIRWD
SZA,RSS
.JMP LCD9
CLB
yES, BUMP RETURN (COR! 18 0IFF)
SAVE NEGATIVE OF
DIRTY FILE COUNT
GET ADDRESS OF FIRST
DIRTY fILE'S NAME
STICK 10 IN LTEHP
FOR DLOOK
MOVE DIRTY
FILE'S
NAME
INTO
LTEMPS
GO HUNT FOR DIRECTORY !NTRY
FOUND IT
BUMP
POINTER TO
NEXT NAME
MORE DIRTY FILES?
YES, PROCESS NEXT ONE
NO, WRITE DIRECTORY TO
DISc IF ANY IS IN tORE
ELSE, RETURN
TELL DLOOK
PAGE 0345 #28
0326
0327
032S
0329
0330
0331
0332
0333
0334
0335
0336
0337
73446
73441
73450
73.51
73452
UPDATE lAST CHANGED DATE ROUTINE
074257
064676
114206
114211
066343
LC09
73453 044352
73454
73455
73456
73457
73460
060502
103100
120001
170001
102100
DIRWD
THERE ISN'T
WRITE TRACK
LI8D
DISCZ,1
TO DISC
SlVAG,I
BAD NEWS, TRY TO 8ALVAaE
CLEAR
LCDID
CHECK
.-110
LOA OFCHK
FOR
DIRTy
eLF 0
XOR 8,1
FILES
ST8
LOB
JSB
JSB
LOB
ADB
STA
e,l
STF "
JMP lCO,I
73461 121367
8IT
RETURN
0338.
MOVE NAME OF DIRTY FILE TO SAFE PLACE
0339*
0340*
0341 73462 036342 lCD2 ISZ DFCNT
BUMp DIRTY FILE COUNT
STB LCDBS
SAVE POINTER TO FILE TABLE ENTRY
0342 73463 076344
GET POINTER TO FILE NAME
ADS ,+10
0343 73464 11'44371
0344
73465 07 4050
5T8 .MOVES
0345
0346
0347
0348
73466
73467
73470
73471
LOB ,-3
~J49*
064354
116346
JSB MovFW,I
LOB LCOBS
JMP lC03
066344
027407
AND SET IN MOVEW'S SOURCE ADR
MOVE THE 3
NAME WORDS
GET ENTRY POINTER BACK
RETURN TO SCAN OF FILE TABLE
PROCESS A FOuND OIRECTORy ENTRy
0350*
0351.
0352
0353
03 5 4
0355
0356
0357
0358
0359
·73472
73413
7 34 7 4
73475
73476
73477
73500
73501
0360
73502
0361
0 3 62
0363
73503
73504
73505
060034
040364
07 02 57
064035
044361
1600~1
002021
027435
044363
060171
170001
027435
LCD5
LOA
AOA
STA
LOB
ADB
LOA
LTEMP,..4
,+5
DIRWD
LTEMP.5
,+2
8,1
SSA,RSS
JMP LCD1
ADB .... 4
LOA OATIM
STA B,I
JMP LCD7
TELL. DLOOK WHICH
DIRECTORY TRACK
GET
IS IN CORE
WOAD
2
IS THE ENTRY A FILE?
NO, GO PROCEss NEXT NAME
YES, UPDATE I.AST
CHANGED DATE IN
DIRECTORY ENTRY
GO PROCESS NEXT NAME
PAGE 0346 #28
0365.
0366*
0367*
0368.
0369
0370
0371
0372
0373
037~
0375
0376
0377
0378
037 9
0 3 80
0381
0382
0383
0384
0385
0386
0387
0388
0389
0390
0391
0392
0393
0394
0395
0396
0397
0398
UPDATE LAST CHANGED DATE ROUTINE
THIS ROUTINE SETS UP THINGS TO UPDATE THE LAST CHANGE DATE
WHEN A USER HAS ABORTED
73506
13507
13510
73511
73512
73513
73514
73515
73516
73517
73520
73521
73522
73523
73524
73525
73526
73521
73530
73531
73532
73533
73534
73535
73536
73537
7 3 54 0
73541
73542
73543
060255
040363
064056
174000
007000
045213
074204
040355
065213
114206
124210
061500
003004
VJ64255
044364
017367
080000
ABUCD LOA
AOA
LDB
STB
eMS
ADB
STB
ADA
LOB
MAIN
.+?PROG
pBPTR
A,1
SET BOUND IN
TTY TABLE
COMPUTE AND SET
TRANSFER LENGTH
!+?DISC~?PROG
_> DISC ADDRESS
USE
WRITE SWAP
JSB DISCZ,I
TRACK TO DISC
JMP PTZAP,I
BLEW IT, FLUSH USER
LOA FCNTR
CHA,INA
_# OF FILES
LOB MAIN
ADS .+110
a> ID WORD IN TTY TA8~E
JSB LCD
UPDATE LAST CHANGE DATE
NOP
elF B
LDB MAIN
STB TTQ
FOR SCHEDULER
LDA UNABT
lOR ABTRY
eMA
AND e,I
STA B,I
CLEAR ABORT FLAGS
103100
064255
074062
060377
030476
003000
110001
170001
USE
MWORO
CL.A
002400
01 02 55
170632
044374 .
STA MAIN
STA Dele1,I
AOS .+18r AT
USER NO LONGER IN CPRE
BLOCK CLOCK
•• STATUS WORD
126352
.JMP DSCH1, I
ENTER ABORT CODE IN SCHEDULER
0399.
0401
0402
0403
0404
04f(J5
0406
0407
0408
0410
0411
0412
73544
7 3 5 44
73545
73546
73547
73550
13551
SUP
MLKFL EgU
LOA
LOB
JMP
OfF
OCT
060410
~61547
126351
073550
005114
0415 0 3
73565
73565 005104
73566 044523
ASC
73601 000000
74004
.. +2
LEN2A,I
•• 1
5114
12,OCKEO BLOCKS TABLE FULL
DDERL EQU ..
OCT 5104
ASC
UNS
0413
0415
0416
•.... 25
FIL8F
11,ISC E:.RROR, CAN'T DO IT
BSS 131
ass
"
FILE BUFFER
PAGE 0347 #29
0002
0"03
0004
0005
0006
!a007
0la08
0009
0010
0011
0012
~013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026.
0027
0028
0029
0030
0031
0032
0033
0034.
0035
0036
02137
0038
0039
0040
0041
LIBRARY SUBROUTINES
LIBse 'EQU LTEMp+8
LisS' EQU LTEMP+9
00040
00041
000-45
14004 025055
14005 030055
74006 171645
740~7 001400
74010 A05040
74011 00£1000
74012 000000
14013 000000
74014 000000
14015 000'900
74016 074532
74017 031073
74020 072357
74021 072742
74022 073011
74023 073072
74024 061346
74025 073544
7 4 026 07 4 671
74027 072415
74030 0021116
74031
74032
74033
74034
74035
74036
74037
74040
74041
74043
74045
14046
74047
74050
072623
013026
071667
010360
072174
071662
073175
000000
000000
0021000
000000
0210000
074050
000000
LISpS
AseAM
AseaH
M133.
EQU
ASC
ASC
OCT
lTEMp+13
1, ••
BSS
BSS
BSS
OEF
OEF
OEF
DEF
OfF
DEF
OfF
OEF
OfF
OfF
OEF
RTAO
RTID
SCHOU
SCHR
8IoTP
OEF
OEF
OfF
OEF
OEF
suspp OfF
UHDBA DEF
1,0-
1
1
t
USED BY STATUS
uS[D By
STATUS WHILE SU8PfNDED
GeIDr
LINK TO DIRECTORY SEARCH ROUTINE
s> FINO ADT
II> FIND lOT
.> GET CURRENT USER.S IDT
LCHAR
DLOOK
FADT
flOT
HDBUF
MDEAD
Ml.KFL
CRLF
RBADT
AoTAT
RTAOT
RTIDT
SCHOQ
StH1
SlOT
.> RETURN BLOCK TO AOT
cYCLIC POINTER TO CURRENT
DISK ADT TRACK ADDRESS
.> RETURN TABLE TO ADT
.> RETURN TABLE TO IDT
-> SCHEDUL.ER
-> SEARCH lOT
SUSP
UHOBr
MlKCT BSS 1
MLKL.B BSS 2
MLKIN BSS 2
MLKLN BSS t·
MLKRO ass 1
MLKRP OfF .+1
ass
•
.133
PRTMI< OCT 1400
PLFBK OCT 5040
LTyPl BSS 1
LTYP2 BSS 1
STABf
STAV1
STAV2
OLCHR
DLOKP
FAOTP
FIOTP
GelD
HDBFA
MDEOP
MLFLA
PCRLF
RBAO
RKCYP
SEMI-COMpILED FLAG
START OF PROGRAM POINTER
END OF PROGRAM POINTER (P8PTR)
6
THESE
WORDs
ARE
USED
ey
HLOCK
PAGE 0348 #29
0043*
0044.
0045*
0046
0041
0048
0049
0050
0051
0052
0053
005 4
0055
0056
0057
0058
0059
0060
0061
0062
LIBRARY 8UBROUTINtS
RDPRG READS THE CURRENT USER INTO CORE.
14056 000000
14057 060272
14060 040345
74061 t64000
74062 074056
14063 007000
74064 045213
74065 014204
74065 006400
74067 174632
74070 040355
74071 065214
74012 114206
74073 124210
74074 160634
7 4 12115 110632
74076 126056
RDPRG NOP
lOA MLINK+1
AOA .+?PROG""llINK
GET PROGRAM BOUND
LDB A,I
518 PBPTR
CMS
COMPUTE
TRANSFER
ADS USE
8T8 ~WORO
LENGTH
CLB
BLOCK
STB DelC1,1
CLOCK
ADA .+?DISC·?PROG .~ DISC ADDRESS
READ IN
LDB USEI
USER
JSB DI8CI,1
JMP PTZAP,I
BLEW IT, ZAP THIS USER
LOA DCLC2,1
UNBLOCK SCHEDULER.
STA Delel,I
RETURN
JMP RDPRG,I
0063.-
0064.*
0065***
GETIO
0066.*
0067*
0068.
0069. GElID
SCANS THE INPUT BUFFER FOR AN ID NUMBER. IF NOT FOUND, IT
007,,* OUTPUTS A MESSAGE ANO TERMINATES,
0011* IF FOUND, THE RESULT IS PLACED IN 10, -RESULT
0072. IN MID, IF THE FOLLowING CHARACTER IS A cR, GElID SKIPS ON THE
0073* WAy BACK. IN ANY CASE, THE NEXT CHARACTER IS IN A.
0074* GETID USES LTEMP.12,t3,14,15.
0075*
0076
0077
0078
00044
00045
00041;
0079
001£'47
0081
0082
"'°8 3
0084
0085
0,,86
0087
0088
0089
0090
012191
00Q2
012193
GETtH
GETlt
GETI2
GETI3
74077 000000
74100 060212
74101 066016
14102 050263
74103 064754
74104 014044
74105
74106
74107
74110
74111
74112
14113
114044
EQU
EQU
EQU
EQU
LTEMP+12
LTEMP+13
LTEMP+14
LTEMP+15
GETID NOP
LOA Ml.INK.l
LOB OLCHR
CPA T35L.N
LDB T35CH
5T8 GETCH
JSB GETCH,I
JMP GTFER
0095
026616
042006
002021
026616
040411
002024
74114 026616 .
14115 100032
0096
74116 070045
STA GETl1
0097
0096
14117 060354
74120 070046
lDA .-3
0094
AOA M13J.
SSA,RSS
JMP GTFER
DETERMINE WHICH SCANNER TO USE
USE LeHAR IF
USER
SCAN INPUT BUFFER FOR FIRST
CHARACTER,
TEST FOR LETTER
ADA .... 328
SSA,INA
JMP GTFER
ASL 10
STA GETI2
-TELETYPE,
T35CH IF SYSTEM.
SAVE FOR LATER.
SET DIGIT
COUNTER.
PAGE 0349 #29
0099
0101
0101
0102
0103
0104
0105
0106
0107
011218
0109
0110
0111
10112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
LIBRARy SUBROUTINES
74121 006400
14122 014047
74123 114044
14124 026616
74125 040322
14126 002021
14127 026616
74130 040311
74131 002020
74132 026616
14133 064047
74134 0105222
74135 044047
CLB
GETI4 5T8 GETI3
JSB GETtH,I
JMP GTFER
AOA "'728
StA,RSS
JMP GTFER
ADA ,+10
5SA
JMP GTFER
LOB GETI3
RaL,RaL
74136 005200
ADB GETI3
RBL
74137 04400ta
ADS 0
034046
74141 026122
74142 044045
74143 074052
74144 007004
74145 014053
74146 116021
74147 114044
ISZ GETI2
JMP GETI4
AOB GElI!
7414~
74150 036077
74151 126077
STa IO
CMe,INB
STB MID
JSB FIOTP,I
JSB GETtH,l
ISZ GETID
JMP GETIO,l
SET NUMBER
TO 0.
GET NEXT CHAR,
fAll..
TEST FOR DIGIT
FAIL..
fAll.
GET PARTIAL VALUE.
MULTIPLY BY 10,
ADD IN NEW DIGIT,
TEST FOR DONE,
MERGE IN LETTER,
FIND ID TRACK
GET NEXT CHARACTER.
SKIP RETURN IF CRt
~124*
0125**
0126***
0121.·
0128.
0129",
0130.
0131.
0132.
0133",
SCHEDULE LIBRARY ROUTINE FOR EXECUTION
THIS ROUTINE IS CALLED By THE COMPILER WHEN IT WANTS TO EXECUTE
ONE OF THE FOLLOWING LIBRARY ROUTINES, CHAIN, FILES, OR AS8IGN.
THESE LIBR~RY ROUTINES ARE ALWAYS EXECUTED WITH A PRIORITY Of 0,
AS ALL LIBRARY ROUTINES ARE, THE CALLING SEQUENCE IS.
JSB SCHLB,I
OEF cPOINTER TO DISC ADDRESS OF
0134.
013 5*
0136*
!d137.
0138.
0139
01 4 0
0141
0142
~143
0144
74152
74 15 3
74154
74155
74156
74157
00~000
103100
064272
044341
160001
010462
7416~
0145
0146
0147
002002
74161 126036
74162 160001
~148
74163
7416 4
74165
74166
74167
7417Vt
74t71
0149
121150
0151
L1152
0153
0154
SCHlQ NOP
eLF o
LOB MLINK+l
ADB .-?LINK
LDA B,l
AND COM14
SZA
~44376
JMP SUSPP,I
LDA 1,1
lOR UNA8T
STA 1,1
ADB .... 1PLEv
002400
CL.A
030377
170001
ROUTINE~
~70262
srA TIMEF
170001
044355
STA
SUSPfND
IF USER
TRIED TO
ABORT
SET UNABLE
TO ABORT
BIT
NO TIMING.
1,1
sET PRIORITY TO 0
AOB .+?5TAT.?PLEV SET STATUS TO SYNTAX
PAGE 0350 #29
0155
~166
0157
0158
0159
0160
~161
0162
0163
0164
0165
0166
0167
0168
, 0169
0170
0171
0172
0173
0174
0175
0176
1211 77
0178
74172
74173
74174
7 4 175
LIBRARY SUBROUTINES
060363
170001
044346
960056
74176 170001
74177 0030~0
14200 041213
74201 070204
74202 044355
74203 06 0 001
74204 065213
74205 114206
74206 124210
74201 162152
74210 036152
74211 050256
74212 027000
74213 070256
74214 064315
74215 074204
74216 064610
74217 114206
74220 114207
14221 027000
LOA XSYNT
SO SCHEDULER DOESN'T KNOW
srA 1,1
WHAT WE'RE DOING,
AOB .+1PROG.1STAT
LOA PBPTR
8ET P8PTR IN TABLE.
STA B,I
eMA
COMPUTE
TRANSFER
MWORD
LENGTH
.+?DISC.1PROG
B
a> SWAP AREA DISC AODRESS
USE
SWAP USER
01SCZ,1
OUT OF CORE
PTZAP,l
NO GOOO, REMOVE THIS BUM
SCHLQ,t
.> LIBRARY ROUTINE DIsc ADDREsS
SCHLQ
LIB
IF ROUTINE IS ALREADY
LIBRA
IN CORE, TRANSFER TO IT
LIB
SET POINTER
M512
SET TRANSFER
MWORD
LENGTH
#LIBt
READ IN
D1SCz,I
LI8RARY ROUTINE
SlCKP,I
BAD NEWS
ADA USE
STA
ADS
LOA
LOB
JSB
JMP
LOA
IaZ
CPA
JMP
STA
LDB
STe
LOB
JSB
JSB
JMP LIBRA
0179.
COMPILER CALLED ROUTINES ALWAyS RETURN HERE
0189.·
0181*
0182 14222 1213100 SCMBl elF 0
LOB MLINK+t
01 8 3 74223 064272
ADB .+18TAT~?LINK
0184 74224 044356
0185 74225 134001
tSl 1,1
TRUE STATUS Is RUN
0186 74226 034262
lSZ TIMEF
sET FLAG FOR tIMING
0187 74227 044355
ADS .+?CLOC.?STAT
ISl 1,1
TIMED OUT1
0188 74230 134001
0189 74231 026250
JMP SCHBl
NO
AoB .+?PLEV~?CLOC
0190 74232 044363
0191 74233 060363
LOA ,.4
SET PRIORITY TO 4
STA B,l
0192 74234 1721001
0193
74235 044354
0194
0195
0196
0197
74236 062152
0198
0199
0200
0201
0202
0203
0204
0205
0206
74237 110001
74240 0024210
74241 170632
74242 10210kl
74243 064272
74244 160001
74245 070272
74246 016252
74247 126034
74250
74250 102100
74251 126152
ADB .+?HSTR_?PLEV
LOA SCHLQ
STA B,I
SET RESTART ADDRESS
CLA
STA DelCl,I
BLOCK CLOCK
STF '"
LOB MLINK+l
REMOVE
LDA B,r
USER FROM
srA MLINK+l
QUEUE
JSB INSEQ
INSERT AGAIN AT END
JMP SCHR,1
RETURN TO SCHEDULER
SCH81 EQU •
STF 0
JMP SCHLQ,I
RETURN TO LANGUAGE PROCESSOR
PAGE 0351 #29
LIBRARY SUBROUTINES
0208.
0209 ••
0210 •••
INSERT USER INTO THE QUEUE
0211' ••
0212*
0213*
0214* THIS SUBROUTINE INsERTS A USER INTO THE QUEUE IN ORDER OF HIS
0215*
1fJ216*
0211*
021S*
0219*
0220*
121221
0222
0223
0224
0225
0226
0227
0228
0229
0230
i'l231
0232
0233
0234
0235
0236
121237
023~
0239
0240
~241
0242
0243
0244
0245
0246
0247
0248
0249
0250
0251
1a252*
PRIORITY. WHEN wE ARRIVE HERE, THE 8 REGISTER POINTS TO THE LINK
WORD FOR THE USER, INSEQ TRANSFORMS THE USERS ENT£RIN& PRIORITY
(EP) TO ANEW PRIORITY (NP) BY THE FOLLOWING ALGORITHM.
NP • EP.NPORT/4
WHERE NPORT IS THE NEGATIVE MAXIMUM NUMBER OF PORTS.
74252
74253
74254
74255
74256
74257
000000
074061
044360
74261
74262
1426 3
74264
74265
74266
7 4 267
001121
074067
160001
t00200
7426I(J 000167
7421~
170067
003004
070067
064271
074064
16 40 01
054271
74271 026303
74272 060001
74273 040360
74274 0700-66
74275 160000
74276 040067
74277 002021
74300 026266
74301 134066
7431212 000000
74303 174061
74304 060061
74305
170064
74306 040354
74307 064345
74310 174000
74311 126252
INSEQ NOP
STB SCHL
SAVE LINK ADDRESS
ADS .+?PLEV"?LINK
STB SCHPR
SAVE PRIORITY ADDRESS
COMPUTE AND
LDA B,I
MPy NPORT
SAVE PRIORITy
ARS,ARS
BASED UPON THE
STA SCHPR,I
• OF AyAILABLEPORTS
CMA,INA
SAVE POSITIVE
STA SCHPR
VALUE FOR TEST
LOB MLINK
-. PHONY USER
SAVE LINK POINTER
INSl ' ST8 SCHP
LOB B,I
B .> NEXT USER
cpa MLINK
DID WE REACH END Of QUEUE'
JMP INS2
YES
LOA B
NO
ADA .+?PLEY-?LINK
STA SCHT
SAVE THIS USER'S PRIOR!TY ADOR,
... ,
LOA A,l
GET THE PRIORITY AND
ADA SCHPR
ADO THE TEST VALUE
SSA,RSS
IF >.
TRY THE
JMP INS1
LINK TO NEXT USER
ISZ SCHT,1
INCREMENT PRIORITY
NOP
OF PREVIOUS ENTRY
SET NEW ENTRY TO PO!NTTO USER
INS2 STB SCHl,I
LOA SCI"U.
STA SCHP,l
SET PREVIOUS ENTRY •• NEW ENTRY.
ADA .+?ClOC-1LINK SET NEW USERS CLOCK TO -18.
LOB .-10
STe 0,1
JMP INSEQ,I
, !
0253 ••
ABORT CHECK
0254***
0255*.
0256*
0257.
0258. TEST FOR ABORT ATTEMPT WHEN THEy wEREN'T
0259* THE SCHEDULER KNOW TO ABORT HIM
026121 14312 0000~0 ABCHK NOP
LOB ML I t.IK+ 1
CLEAR
0261 74313 064272
ADS ._?LINK
0262 74314 044341
ALLOwED~
IF 80, LET
PAGE 0352 #29
LIBRARY SUBROUTINES
0263
0264
0265
74315 ,,60377
74316 003000
74317 10310ki
0266
0267
74320 11 00 01
74321 110001
74322 102100
74323 010476
74324 0020~3
74325 126312
74326 10310k'
74327 030506
74330 003000
14331 110001
74332 030462
74333 170001
74334 002400
74335 170632
74336 044374
74337 003400
74340 170001
74341 102100
74342 126034
0268
0269
0270
0271
0272
0273
0214
0275
0276
0277
0278
0279
0280
0281
0282
0283
0284
LOA UNABT
eM.
UNABLE TO
elF A
ABORT
AND 1,1
STA t,I
STF 0
AND ABTRY
SlA,RSS
JMP ASCHK,I
eLF 21
lOR CHNFG
eM.
ANO t,I
rOR COM14
STA
CLA
STA
ADB
CCA
STA
STF
JMP
1,1
Dele1,I
.+?STAT
1,1
0
SCHR,I
FLAG
ABORT ATTEMPTED?
NO
YES
CLEAR ABORT
TRY FLAG
SET COM1" BIT
TO SIGNAL SCHEDULER
BLOCK
CLOCK
SET STATUS
TO ABORTING
RETURN TO SCHEDULER
0285*
0286.*
0287.*ta28tJ.*
0289.
0290.
0291.
0292.
Ld293.
02 9 4 *
SEMI-COMPILE CHECK
CHECK IF THE PROGRAM WHICH HAS JUST BEEN LOADED FROM THE USER
LIBRARY IS SEMl.COHPILED, AND SET THE NECESSARY COMPILER
VARIABLES. LIBse, LI8SP, AND LISPB ARE PASSED TO THIS ROUTINE
FROM THE LIBRARy ROUTINE WHICH CALLS IT (CHAIN, GET, OR HELLO)
0295.
0296
0297
0298
0299
0300
0301
03 02
, 0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317
0318
74343
74344
74345
74346
74347
74J5~
74351
74352
7 4 353
74354
74355
74356
74357
74360
74361
74362
74363
74364
74365
74366
74367
74370
74371
000000
103100
060040
002020
026362
002400
071573
060045
07 0 056
064272
044341
060361
003000
1100~1
026414
~60045
040350
070056
071502
164000
075573
002004
164000
SEMIC NOP
Cl.F o
LOA LIBSC
5SA
JMP SEHll
CLA
srA SYMTB
LOA LISPS
srA PBPTR
LOB MLINK+l
ADS .-?LINK
LDA CFLAG
eMA
SEMI.COMPILED?
YES
NO •• CLEAR OUT-OFSTORAGE FLAG
SET LENGTH
POINTER
SET
UNCOMPILED
BIT
AND 1 , I
JMP SEMIJ
SEMIl LOA LISPS
ADA .-7
PBPTR
STA FILTB
LOB 0,1
STB SYMTB
INA
LOB
STA
SET
LENGTH
POINTER
SET ENO-OFPROGRAM POINTER
SET cFILES
STATEMENT>
PAGE 0353 #29
0319
0320
0321
0322
0323
·0324
0325
0326
0327
0328
0329
r.a"Z"lI.tJI
'Q,J,JIJ
0331
0332
0333
(21334
(21335
74372
74373
74374
74375
74376
LIBRARY SUBROUTINES
075230
74377 002004
74400 164000
74401 175603
74402 035603
74403 03523kJ
74404 026377
74405 002004
74406 164000
74407 075605
74410 064272
74411 044341
74412 1600"1
0336
0337
0338
0339
0340
74413 030361
0341
0342
0343
74420 075575
74421 102100
0344.
0345*
0346·
0347.
0348
0 34 9
0350
0351
0352
0353
0354
0355
74414 030612
74415 170001
74416 074255
74417 064041
74422 126343
FILeT
LOB OFILT
COUNTER
POINTER TO
LOB ,,,,4
4
STB
075604
064444
075603
06.353
STa FILPT
STB
SEMI2 INA
LOB
STB
ISZ
ISZ
JMP
INA
LOB
STB
LOB
SPTR
0,1
lJSESN
MLINK+l
LOA
lOR
SEMI3 lOR
STA
5T8
LOB
STS
STF
JMP
1,1
CFLAG
PUALT
B,1
MAIN
LIBSP
SPROG
0
SEMIC,I
0,1
FILPT,1
FILPT
SPTR
SEMl2
STATEMENT.»
cFILES
STATEMENTS> POSSIBLE
STORE
POINTER
TO BUFFER (BIl 15 = 1 FOR PUNCHING)
74502
74503
74504
745215
74506
000000
114760
1031Ot0
062502
0'0275
74507 060276
74510 070300
74511 ('}60362
14512 070216
74513 126036
T35SP Nap
JSB TTY35,I
elF 0
LOA T35SP
STA T35RS
LOA T355T
STA TJBPR
LOA %OUTW
STA T358T
JMP SUSPP,I
FIRST OUTPUT,
MOVE RETURN AODR~SS
INTO TABLE.
MOVE STATUS INTO PRIORITY
SET STATUS TO OUTWAIT.
GO HANG
OUTPUT LF TO SYSTEM CONSOLf AND TERMINATE
PAGE 0356 #29
0439
0440
LIBRARy SUBROUTINES
LEND
LDA ONEI
0441
74514 060722
7 45 15 06 4 636
74516 114760
0442
0443
7452~
eLF
(LA
0444
0445
74522 12474'"
JMP SCHEN,I
7 4 517
1031~0
002400
4
7 521 070312
0446.
LDB DEH
LtND2 JS8 TTYJ5,I
OUTPUT THE
LINE FEED.
OUTPUT BUFFER AND TERMINATE
(21
STA T35F2
OUTPUT ILLEGAL FORMAT MESSAGE TO SYSTEM CONSOLE ANO TERMINATE
~447*·
0448*
0449 74523 060376
0450 74524 066713
0451
74525 026516
0452*
L.FRER LOA .+15
LDB LfRDF
JMP LEN02
OUTPUT DISC ERROR MESSAGE TO SySTEM CONSOLE AND TfRMINATE
0453.·
0454.
0455
0456
0457
0458
74526
74526 060414
74527 066531
74530 026516
0 4 59 7 4 531 073565
0460*
0461.·
0462**.
0463*·
0464*
~465.
0466*
"467*
0468*
0469*
0470*
",471*
0472*
0473
'.t,
0493
74556 c;,40470
0494
74557 036532
04 80
.+29
.+2
lEND2
OEF ODERL
LCHAR IS USED By LIBRARV PROGRAMS TO OBTAIN CHARACTERS FROM THE
USER'S INPUT BUFFER IN THE 1/0 PROCESSOR, EACH TIME IT IS
CALLED, IT FETCHEs THE NEXT CHARACTER, SKIps BLANKS, AND CONvERTS
LOWER CASE CHARACTERS TO UPPER CASE. THE CHARACTER IS LEFT IN
LCHCR AND A. WHEN A CR IS ENCOUNTERED, LCHAR RETURNS TO
OTHERWISE TO P+2.
0481
0482
0483
0484
0485
0 4 86
0487
0488
0489
0490
0491
0492
~479
•
USER TELETYPE INPUT ROUTINE
74532 000000
74533 060264
74534 050374
74535 126532
74536 064272
74537 044342
74540 160001
74541 030215
74542 114736
74543 102 311
74544 026543
74545 102511
74546 070264
14547 050417
7455~ 026536
14551 050374
74552 126532
74553 040317
74554 "02 0 21
74555 040450
0474
0475
0476
0477
0478
DDERR EQU
LOA
LOB
JMP
LCHAR NOP
LOA
CPA
JMP
LCHRt LOB
ADB
LOA
lOR
JSB
SFS
JMP
LIA
STA
LCHCR
.+158
lCHAR,1
MLINK+l
GET CARRIAGE RETURN FLAG
PREVIOUS RETURN?
YES
.+?T~UM-?LINK
1,1
GTe
8145C,1
CH2
... 1
CH2
LCHCR
CPA .... 408
LCHR2 JMP LCHRl
CPA .+15B
JMP LCHAR,l
ADA M96
SSA,RSS
ADA MJ2
ADA .14(»
lSI LCHAR
FETCH
CHARACTER
FROM 2114
WAIT FOR
REsPONSE
SET CARRIAGE RETURN FLAG
BLANK?
YES, IGNORE IT
NO, CARRIAGE RETURN
YES."EX I T'
LOWER CASE?
yES, CONVERT
NO
NO.-EXIT
PAGE 0357 #29
0495
7456~
LIBRARy SUBROUTINES
JMP LCHAR,I
126532
0496.
0497 ••
0498.*.
04t99 ••
0500.
1tJ501.
USFR TELETyPE OUTPUT ROUTINES
0502*. OUTPUT CHARACTER IN A TO USER'S TELETYPE
0503.
0504 74561 000000
0505 74562 064272
0506 74563 044341
0507
0508
0509*
0510*.
0511*
0512*
0513*
0514
0515
0516
0511
0518
0519
0520
0521
0522
0523
0524
0525
0526
0527
74564 114724
74565 126561
0530*.
74566
74567
74570
74571
74572
74573
74574
74575
74576
74577
74600
7461211
74602
74603
000000
LTYPR NOP
072011
076012
162012
001727
016561
STA LTYPt
STB LTYP2
LTYPJ LDA LTYP2,I
ALF,ALF
JSB LOUT
~541..
OUT.
ISZ LTYPt
ANY MORE'
002001
126566
162012
016561
036012
036011
026571
126566
RSS
.JMP
NO,
LTVPR,I
LOA LTYP2,I
.J9B
LOUT
ISZ LTYP2
ISZ LTYPl
JMP LTYP3
.JMP lTYPR,I
YES
SEND 2ND
CHAR,
BUMP POINTER.
ANY MOREl
yES
oUTPUT BUFFER AND CR-LF TO USER'S TELETyPE
A. .NUMBER OF CHARACTERS
B .> BUfFER
LTYPE NOP
JSB
LDA
LOB
JSB
JMP
LTYPR
, .. 2
PCRI.F
LTYPR
lTYPE,I
OUTPUT LF TO USER'S TTY AND TERMINATE
0542*
0543 74613 060371
0544 74614 016561
0545 74615 124740
lLEND LDA .+128
JSB LOUT
JMP SCHEN,I
0547.
0548..
1(,1549.
SAVE CHARACTER COUNT
SAVE BUfFER POINTER
GET FIRST
CHARACTER OF WORD
~36011
0533*
0534 74605 000000
0535 74606 "'16566
0536 14607 060355
0537 74610 066026
0538 74611 016566
0539 74612 126605
1d540*
NOP
LDB MLINK+l
ADS ~"?bINK
JSB OUTCH,I
JMP LOUT,I
OUTPUT BUFFER TO USER'S TELETYPE
A. .NUMBER OF CHARACTERS
B -> BUfFER
0528 74604
0529.
, 0531*
0532*
LOUT
ERROR MESSAGE TERMINAL
CU~CK
pAGE 0358 *29
LIBRARY SUBRoUTINES
0550 74616 060044
0551 74617 050754
0552 14620 ~2652J
0553*
0554 ••
0555.
0556
0557
GTFER LOA GETCH
CPA T35CH
JMP LFRER
IF SYSTEM TELETYPE, PRINT
ERROR MESSAGE THERE,
OUTPUT ILLEGAL FORMAT MESSAGE TO USER'S TTV AND TERMINATE
74621 060340
74622 066713
ILFER
LOA' ... 15
LOB LFROF
OTHERWISE PRINT IT ON
USER TELETYPE.
0558*
OUTPUT BUFFER AND CR.LF TO USER'S TTY AND TERMINATE
0559 ••
0560*
74623 ~16605 LIBER JSB LTyPE
0561
1.1562 74624 12474Ld
JMP SCHEN,l
TERMINATE.
0563*
0564**
BUFFERS AND MESSAGES
0565*.*
0566 ••
0567.
SUP
0568
BUFFER FOR INPUT AND REPLIES.
MUST FOLLOW T368F
0569
0570
74625 000000
74671 006412
T35BF BSS 36
CRLF OCT 6412
0512
0573
0574
74672 074673
74673 005111
74674 046114
HELK
0576
0577
0578
74703 074704
74704 005116
74705 047440
HELH
0580
74713 074714
74714 005111
74715 046114
LFRDf OEF .+1
OCT 5111
ASC 7,LLEGAl FORMAT
UNS
0581
0582
0583
0585
74724
OEF *.1
OCT 5111
ASC 7,LLEGAL ACCESS
OfF *.1
OCT 5116
ASC 6,0 TIME ,LEFT
BSS "
PAGE 0 3 59 #30
LIBRARY SIZES
0002.
0003*
0004.
0005·
0006.
THIS TABLE IS USED BY THE TSB PAPER TAPE LOADER, THE SLEEP
ROUTINE, AND THE MAG TAPE LOADER. IT CONTAINS THE LENGTHS Of
ALL THE REMAINING LIBRARy ROUTINES, AND ENABLES THE LOADER TO
ALLOCATE THE MINIMUM NUMBER Of DISC SECTORS FOR EACH OF THEM,
THE TABLE IS WRITTEN ON THE DISC AS THE FIRST LIBRARY ROUTINE,
0008
0009
0010
0011
0012
00i3
75000
ORG
75000 177703
75001 177000
75002 177000
75003 177216
0014
;5004 i77255
75005 177414
0015
75~06
0016
75007
75({11rtJ
75011
75012
0017
0018
0019
0020
0021
0022
0023
0024
0025
75013
75014
75015
75016
75017
75020
75021
177000
177000
177005
177433
177321
177267
177521
177460
177171
177653
177431
177431
177431
177332
177425
0026
0027
75022
0028
0029
75023
75024
0030
0031
0032
0"33
0034
0"'''35
75025 177010
0036
0037
0038
0039
0040
75026
75027
75030
75031
75032
7 5 033
75034
75035
75036
0041
75037
75",4VJ
0042
75041
0043
0044
75042
75043
75044
0045
0046
0041
0048
75e45
75046
75047
0049
7505~
0050
75051
75052
75053
0051
0052
75~54
0053
0054
75055
0055
75~56
0056
0057
75057
7506~
177010
177644
177644
177654
177654
177000
177717
177737
177655
177723
177625
177426
177416
177003
177003
177635
177663
177606
177614
177624
177362
177362
177135
177305
177202
1770Al
177111
LIBRA
LIBRA",SSLPL
DEC .512
TWO HALVES Of
ABS
DEC .512
ABS LIBRA .. SFLB
ASS
ABS
ABS
ABS
ABS
ABS
ABS
ASS
ABS
ABS
ABS
ASS
ASS
ABS
ABS
ABS
A8S
ABS
ABS
ABS
ABS
ABS
ASS
ABS
ABS
ABS
ASS
ABS
ABS
ABS
ABS
ABS
ABS
ABS
ABS
ABS
ASS
ASS
ASS
ASS
ASS
ABS
ASS
A.SS
ASS
LIBRA .. SASN
LIBRA-SCHN
LIBRA",SSAV
LIBRA.SSAV
LIBRA-SSSAV
LIBRA.sGET
LIBRA-SAPP
LIBRA.SHEL
LIBRAp.$ByE
LI8RA.SKIL
LIBRA .. SREN
LIBRA .. SNAM
LIBRA.SCAT
LIBRA_SCAT
LIBRA.SCAT
LIBRA .. SDIRS
LIBRA-SREPS
LIBRA-sSTAS
LIBRA-sSTAS
LIBRA",SDEL
LIBRA-STIM
lIBRA·SPRO
LIBRA .. SPRO
LISRA-SOPE
LIBRA-ILEN
LIBRA"'SECH
LIBRA.SMES
LIBRA-SLPR
LIBRA.SPORI
LIBRA.SREP
lIBRA.SDIR
LIBRA-SSTA
LIBRA.SSTA
LIBRA-SPQR
LIBRA..,SROS
LIBRAwSANN
LIBRA-SRES
LIBRA.-SCHA
LIBRA-SSLE
LIBRA .. SSLE
LIBRAfltSNEW
LIBRA .. SKID
LIBRAt!PSMUN
LI8RA.SMLO
LIBRA ... SSMLO
FUSS TABLE
SAVE OVERLAY.
GROUP
-,
MESSAGE
HIBERNATE
PAGE 0360 #30
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
15061
75062
75063
75064
75065
LIBRARY SIZES
177000
177000
177377
177130
\77747
75066 177716
75067 177417
75070 171671
752171 177000
75072 177000
0067
0067
"C;tlI"""
0067
0068
75074 177000
75075
,
••lIfJ, W
177000
ABS LIBRA-SCOP
LIBRA-SBES
ASS LIBRA.SPUR
A88 LIBRA-SHAG
ASS LIBRA"'!PHO
ASS LI8RA-SPRI
ABS LIBRA-SSPE
ASS LIBRA-SBRE
REP 4
DEC -512
DEC .512
DEC .-512
DEC .512
SSl,PL EQU •
,\BS
PAGE 0361 #30
0070*
0071*
0012*
0073*
0074*
0075*
0076.
0077
0078
0079
"080
0080
0080
0080
00 8 0
0fl80
0~80
0080
0080
0080
0080
FUSS
THF. FUSS TABLE CONTAINS A 32 WORD ENTRY FOR EACH PORT, THESE
WORDS ARE THE DISC ADDRESSES OF THE FILES HE IS CURRENTY USING.
A ZERO INDICATES NO FILE, THE TABLE IS READ OUT TO THE DISC
IN TWO HALVES, AND THEY ARE ASSUMED TO BE ON CONTIGUOUS
SECTORS, (THIS IS GU~RANTEED IF FUSS IS ONE OF THE FIRST
LIBRARY ROUTINES,
ORG LIBRA
SUP
REP 32
75000 000000
75020 000000
75040 000000
75~60 000000
75100 000000
75120 00~000
75140 000000
7516A 000000
752l?J0 000000
75220 0"~000
75240 000000
75260 000000
0080
0080
15300 000000
0080
75320 A00000
'0080
0080
75340 000000
75360 000000
7540~ 000000
75420 000000
75440 000000
75460 000000
0080
0080
0080
0080
0080
0080
0080
0080
00 8 0
0080
0080
008"
0080
0080
0080
0080
"081*
0082
0083
0084
0084
0084
0084
0084
0084
0084
0084
~084
~084
0084
75500 00£1000
75520 000000
75540 000000
75560 00000iZJ
75600 000~00
75620 000000
75640 000000
75660 000000
75100 000000
75720 0000210
75740 000000
7516~ 000000
7500C?1
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
A,0,0,0,0,0,0,0,0,0,0,0,0,e,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,e,0,0,0,0,0,e,e
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
~,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,O,O,0,1,0,0
0,0,0,0,0,0,0,0,0,0,0,8,.,8,0,0
0,O,O,0,0,0,0,0,0,0,O,0,0,0,0,0
O,O,0,0,O,O,0,0,0,0,0,0,0,O,8,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,.
0,0,O,O,0,0,0,0,0,0,0,1,8,1,1,8
0,0,0,0,~,0,0,0,0,0,0,0,0,0,1,0
~,0,0,0,0,0,0,0,0,0,0,0,0,0,0,e
0,0,0,0,0,0,0,0,0,0,0,O,0,0,0,8
0,0,0,0,0,O,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
0,O,O,O,0,0,0,0,0,0,0,0,0,1,0,0
0,0,0,0,0,0,0,0,0,0,0,O,0,0,0,0
0,0,0,O,O,0,0,0,0,0,0,0,0,0,0,0
0,0,0,O,O,O,0,0,0,0,0,0,0,0,0,0
0,0,0,0,0,0,0,0,0,0,0,1,0,0,0.1
0,0,0,O,O,0,0,0,0,0,0,0,0,1,',1
0,0,0,0,0,0,0,0,1,0,0,0,0,B,8i 0
0,0,O,O,0,0,0,0,&,0,0,0,0,0,8,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
0,0,O,0,0,0,0,0,0,0,0,0,0,1,1,0
0,0,0,0,0,0,0,0,0,0,8,8,0,e~l,e
0,0,0,0,0,0,1,0,0,0,0,0,0,8,1,0
0,O,0,0,0,0,0,0,0,0,0,0,0,1,8,0
ORG LIBRA
REP 32
75"00
75020
75040
75060
75100
75120
75140
7516(11
000000
000000
000000
000000
000000
000000
000000
000000
75200 000000
75220 000000
75240 0000~0
OCT
~,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT
~,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT
OCT
OCT
OCT
OCT
OCT
OCT
OCT
0,0,0,0,~,0,0,0,0,0,0,0,0,0,e,0
0,O,O,0,0,O,0,0,0,0,0,1,1,8,0,0
0,0,0,0,0,0,0,0,0,0,0,8,8,0,0,0
~,0,0,0,0,0,0,0,0,1,0,e,0,e,0,e
~,0,0,0,0,0,0,0,0,0,0,0,0,0,8,e
~,0,0,0,0,0,0,0,0,0,0,0,0,e,0,e
0,0,0,0,0,e,0,0,0,0,0,0,0,0,e,e
0,0 / 0,O,O,O,0,0,O,O,0,0,0,0,0,0
PAGE
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0084
0085
0362 #30
75260
75300
15320
15340
75360
15400
FUSS
000000
00B0~0
000000
000000
000000
000000
75420 0000"'0
75440 0000~1fJ
75460 000000
75500 000000
75520 000000
75540 000000
75560 000000
75600 0rz10000
75620
75640
75660
75700
75720
75740
75760
000000
0000CiJ0
000000
000000
000000
0000"'0
000000
OCT 0,0,0,0,0,0,0,0,0,0,~,0,0,0,e,0
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,8
OCT 0,0,A,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0,0,0,e,0,0,0,0,0,0,0,0,8
OCT 0,0,~,0,0,0,0,0,0,0,0,0,0,0,8,1
OCT
OCT
OCT
OCT
OCT
0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
~,0,0,0,0,0,0,0,0,0,0,B,0,0,e,e
0,0,0,0,0,0,0,0,0,0,0,8,0,O,0,0
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8
0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0
OCT 0,O,O,0,0,0,1,0,0,0,1,1,0,0,0,0
OCT 0,0,0,0,0,O,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0,0,0,0,0,0,0,8,0,0,1,1,0
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
OCT 0,0,0,0,0,0,0,0,0,1,0,O,0,0,0,1
OCT 0,0,0,0,0,0,0,0,0,O,O,0,0,1,1,1
OCT 0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
OCT 0,O,0,0,0,0,1,0,0,0,0,1,O,8,O,8
OCT 0,0,0,0,0,0,0,0,0,8,0,1,0,1,0,1
OCT 0,0,0,0,0,0,0,0,0,0,0,0,1,1,.,0
UNS
PAGE 0363 #30
~I
0087*
0088.
0089*
0090.
0091·
0092*
0093_
0094*
0095*
0096*
FILES
THE FILES ROUTINE IS USED BY THE BASIC COMPILER TO PROCESS FILES
STATEMENTS DURING PHASE II, THE PURPOSE OF THE ROUTINE 11 TO PRO.
VIDE THE COMPILER WITH INFORMATION ABOUT THE REQUESTED FILES. THIS
INFOHMATION CONSISTS OF THE FILE'S DISC ADDRESS, ITS LENGTH,
ANO ITS RECORD SIZE.
THE COMPILER PASSES PARAMETERS TO THE FILES ROUTINE A8 FOlLOW8.
FILCT •• 5+# OF FILES STATEMENTS
FILTBa>BEGINNING OF TABLE AREA FOR FILE INFO,
SCHLB,Ia>FIRST POSSIBLE RETURN ADDRESS.
01d97*
0098* THE CALLING SEQUENCE TO THE FILES ROUTINE IS AS FOLLOWSI
0099*
0100.
JSB seHLB,I
OEF FILlB
0101.
0102.
011213*
0104.
°1°5*
0107
01 (2U3*
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
75A00
ORG LIBRA
75000 063561
l.OA FILBP
STA FLBUf
STA FLBFP
LDA ... 17
alA FLBet
LOA FILeT
ADA , .. 5
CMA,INA
5TA FLBfC
LOA DFILT
STA FLBFF
75001 070036
75"02 07A037
75~H~3 060336
75004 070040
75005 061604
75006 040364
75007 003004
7501~ 070046
75011 060444
75012 070047
GET POINTER TO FILE BUFfER
sAVE BuFFER POINTER.
COUNTER FOR MAXIMUM NUMBER
FILES ALLOWED.
COUNT • e OF 'ILES STATEMENT
COUNT
NEGATIVE
SAVE COUNT
GET POINTER TO FILES
STATEMENT TABLE
SET
OF
GET
GET
GET
0120.
0121* INITIALIZATION IS COMPLETE. NOW BEGIN PROCESSING THE fILES STMTS,
13122*
0123 75013
fLBA EQU.
0124 75013 164047
LOB FLBFF,I
GET POINTER TO FILES STATEMENTS
eeA
'SET POINTER TO
75014 003400
~125
0126 75015 140001
ADA t,I
LAST CHAR ... 1 OF
75016
75017 001200
75020 070042
75021 006004
75022 005000
75023 e74043
0130
0131
0132
0133*
~134.
0 1 38
0139
0140
0141
INS
BLS
STB FLRCp
FILES STATEMENT.
INITIALIZE EOF STATEMENT POINTER
INITIALIZE POINTER TO
FILEs STATEMENT.
GET THf FILE NAME
0135ft
0136 75024 034040
~137
ADA 1
RAL
STA FLBP
04~001
0127
0128
0129
75025 002001
75026 02 71 77
750.27 060354
7503Q1 ~70041
75031 002400
FLBl
ISZ FLBC1
RSS
.IMP FLBa"'1
LDA ,.3
STA FLBC2
CLA
TEST FOR
TOO MANY
F·ILES
SET FLAG TO SAY
3 WORDS ALLOwED
PAGE 0364 #30
0142
0143
0144
0145
0146
0147
0148
0149
015121
75032
75033
75034
75035
15036
75037
75040
75041
0151
75043
15~43
0158
0159
070031
07003~
017527
050423
027060
050431
027064
050417
75042 027177
0152
r.t4 ... "l
u ... o ....
01 54
0155
0156
"'157
FILES
040030
;5044 001727
75045 170036
75PJ46 017527
75047 130036
7505~ 170036
75Q)51 034036
75052 017527
75053 034041
0160
0161 75Q154 027044
0162.
0163.
0164.
0165
0166
0167
0168*
01·69fr
Fl85
STA
STA
JSB
CPA
JMP
CPA
JMP
CPA
FLBCH
FLB!
FLBCH
.... 448
FLB2
.+528
Fl.B22
,+408
01a5
0186
0187
0188
0189
°190
0191
0192
BETTER NOT BE A BLANK.
FAIL IF IT IS.
FLB25 EQU ..
ADA FLB$
FL.S3 ALF,ALF
STA FLBUF,1
JSB FLBCH
lOR FlBUF,I
STA FLBUF,1
ISZ FLBUF
JaB FLBCH
ISZ FLBC2
JMP FLBJ
• OR S FLAG FIRST CHARACTER
POSITION ON LEFT
AND STORE IN BUFFER.
GET RIGHT CHARACTER
AND PACK IN.
BUMP BUFfER POINTER,
GET NEXT CHARACTER.
TEST FOR END OF FILE NAME,
75056 0271213
75057 027117
JMP FLee ... t
COME HERE IF 1ST CHARACTER
FLS2
LDA
STA
JSB
JMP
Is s
75 67
75070
75071
75072
75073
15074
75075
75076
75077
751 00
75101
IF 1ST CHAR IS S, SET FILl TO
8200
FLBS
FLBCH
FL.B5
INDICATE LIBRARY flLf.
GET NEXT CHAR,
*
JSB FLBCH
75066 017527
rl1
IF END OF FILE NAME, CHAR MUST
BE A BLANK.
FAIL IF NOT.
CPA .+406
JMP FLB4
75055 050417
0116. COME HERE IF 1ST CHARACTER Is
0177.
0178 75064 061027 FLB22 LOA BIT15
ST. FLBS
0179 75065 070030
0184
TEST FOR SNOWFLAKE
.JMP FL.BS ... 1
0174 75063 1£'21041
0175.
0183
GET FIRST CHAR.
TEST fOR DOLLAR SIGN.
TEST 7TH CHARACTER fOR BLANK
0170.
0171 75((160 060476
0172 7506\ 070030
0173 75062 017527
0180
0181
0182
CLEAR COMMA FL.AG.
CPA .+408
05 04 17
002401
027043
06435 0
17 0 036
034036
006006
027073
064502
174 0 36
002004
CLA,RSS
IF FIRST CHAR 18 ., ·I£T FILl TO
INDICATE GROUP LIBRARY FILE
GET NEXT CHARACTER
IS IT BLANK?
YES, * IS PLACE HOLDER
JMP FLB25
lOB ,"7
STA FLBUF,1
ISZ FLBUF
INB,sZB
JMP •• 3
NO, CONTINUE PROCESSING NAME.
CLEAR BUFFER
SINCE NO
FILE NOW
LOB B400
RESERVE 256 WORDS
IN CORE FOR FUTURE FILE
STB FLBUF,I
INA
JMP FLB26
75102 0271Q14
0193*
0194. THE FILE NAME HAS BEEN TESTED AS CORRECT AND STORED IN THE
0195.
TEMPORARY BUFfER
0196.
0197
75t~3
060364
FLBA
LOA •• 5
LEAVE ROOM FOR STORAGE
PAGE 0365 #30
0198
0199
0200
0201
0202
0203
021214
0205
75104
75104
75105
75106
75107
751-10
75111
75112
75113
FILES
040036
070036
060031
002002
027024
034047
034046
027013
FLB26 EQU *
ADA FLBUF
SrA FLBUr
LDA FLBCH
SZA
JMP FLBt
ISZ FL8FF
ISZ FLBFC
0206
0207.
0208. ALL FILE STATEMENTS
0209.
0210 75114 "'60040
0211 75115 0404010
0212 75116 003004
0213
0214
75117 ",70040
75120 070041
0215*
0216 75121 036152
0217
0218
,}MP
FLBA
HAVE NOW BEEN PROCESSED
LOA FLBCl
ADA .+17
CMA,INA
ST. FLBet
STA FLBC2
SET FILet TO EQUAL
OF FILES REQUESTED
ISZ SCHL.Q
BUMP RETURN ADDRESS $INC! WE'VE
NOW CHECKED FOR TYPE I ERRORS.
SET POINTER TO BUFFER AGAIN.
LOA FLBFP
75122 060037
75123 070036
OF FILE INFORMATION
FROM THE DIRECTORY
TEST FOR ANY MORE
FILES REQUESTED
yES IF COMMA WAS SEEN,
COUNT UP POINTER INTO TABLE
CHECK COUNTER
PROCESS ANOTHER FILES STATEMENT,
STA FLSUF
.*
0219*
0220* BEGIN BUILDING THE 'FILES' TABLE fOR THIS USER
0221*
0222 75124
0223 75125
0224 75126
0225 75127
0226.
0227
0228
0229
0230
~231
0232
0233
0234
0235
0236
0237
0238.
0239
0240
k1241
02042
0243
0244.
0245
0246
0241
0248
0249
0250
0251
75130
75131
75132
75133
75134
75135
751 3 6
75137
LOA MLINK+l
GET USER 10 AND SAVE IT.
ADA .+?ID .. ?LINK
LOA 0,1
STA FLBID
060272
040346
160000
A70044
164036
006003
027143
060044
006020
060514
005721
006020
7514'" 027147
75141 005727
75142 027165
75143
75143
75144
75145
75146
064036
044367
074036
027264
75147
75150
75151
75152
75153
75154
75155
75156
75157
005665
005727
174036
010512
006400
100400
000472
100200
000472
FLB6
LOB FLBUF,I
SZ8,RSS
JMP FLB27
LOA FLBIO
sse
LOA A000
BLF,BLF
sse
JHP FLB24
BLF,BLF
GET fIRST WORD OF FILE NAME,
18 THIS A PLACE HOLDfR
YES, SKIP DIRECTORY LOOKUP
IF BIT 15 OF FIRST WORD IS SET,
PERfORM SEARCH USING .811,
IF aIT 7 OF
FIRST WORD IS SET
sET UP FOR GROUP LIB sEARCH
ELSE RESTORE FIRST WORD
.JMP FLB23
FLB27 EQU '*
LOB FLBUp
ADB .+8
STB FLsUF
BUMP POINTER
TO NEXT TEMP
BUFFER ENTRY
JMP FLB28
FLB24 ELB,CLE,ERB
BLF,BLF
srB FLBUF,I
AND 81177
CLB
DIV ,100
MPy .10e
CLEAR BIT 1
AND
RESTORE TO TABLE
ISOLATE NUMERICAL PART OF 10
GET
PAGE 0366 #30
0253
0254
9255
0256
02&7
15160
15161
15162
75163
75164
75165
75166
"252
FILES
LIBRARIAN
06412100
l.DB A
060612
LOA M2000
010044
"30o,,,1
1640Jb
104400
000030
0258
75167 034036
0259
75170 104200
0260
75172 104400
AND FLBID
lOR 8
LOB FLBUF', I
FLS23 DST LTEMP
ISZ FLBUF
OLD FLBUF,I
USER
NUMBER
RESTORE FIRST WORD Of FILE NAME
GET NEXT 2 WORDS ALSO.
75171 100036
OST LTEHP+2
75i73 000032
0261*
0262 75174 116017
0263 75175 027203
121264.
0265 75176
0266 75177
0267 75200
0268 75201
0269 75202
027".
0271
0272
0273
0274
0275
0216
0277
0278
0279
0280
0281
0282
0283
0284
0285
0286
0287
0288
0289
0290
0291*
0292.
0293.
0294*
0295.
0296*
0297.
0298.
0299*
0300.
031211*
0302·
0303.
031214.
75203
75203
75204
75205
75206
75207
75210
75211
75212
75213
75214
75215
75216
75217
75220
7 5 221
75222
016056
FLB8
002400
070257
015322
026222
FLB1
060034
040364
070257
064035 .
044361
160001
002021
021176
060030
050044
027226
044356
160001
12102020
02717 6
044361
75223 160001
7f>224 002020
75225 027176
JS8 DLOKP,1
JMP FLB7
SEARCH FOR FILE
FOUND IT.
JSB RDPRG
CLA
STA DIRWD
JSB DCMpL
JMP SCHBL
FAILURE
EQu •
LOA LTEMP+4
ADA .+5
SrA OIRWD
l.OB LTEMP+5
AD8 ,+2
LOA t,I
SSA.,RSS
JMP FLBe
LOA LTEMP
CPA FLBIO
JMP FL.B9
A08 ,-1
LOA B,l
5SA
JMP FLBe
ADS .+2
LOA B,I
SSA
NO DIRECTORY BLOCK IN CORE NOW
LOAD POINTER TO DIREC ENTRY.
AND BUMP TO DISC ADDRESS
SET DIRHD FOR CLOOK
TEST TO SEE
IF THIS IS
REALLY A
FILE.
FAIl. If" NOT,
IS THIS THE
FILE OWNER?
yES
NO
IS THE FILE
PROTECTEO?
YES • FAIL
NO
18 THE. FILE
MASKED?
JMP FLB8
YES .. FAIL
THE FOLLOWING SECTION OF CODE FILLS EACH INTERIM 8 WORD
FILE TABLE WITH INFORMATION FROM THE DIRECTORY ENTRIES.
THE TABLE AppEARS AS FoLLowSS
1 fILE
2
;]
4
••
NAME
NOT USED
5
6
DISC
AODRESS
7 FILE LENGTH
8 RECORD SIZE
(NOTE: THE FILE NAME HAD
B~~N
INSERTED IN FLB3)
PAGE 0367 #30
0305
0306
0301
0308
0309
0310
0311
0312
0313
0314
0315
0316
0311
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
FILES
75226 034036
75227 034036
7523~ £')02400
75231 170036
75232 034036
75233 064035
75234 044367
75235 104200
75236 100e101
75237 104400
75240 100036
75241 064035
75242 044372
75243 034036
75244 034036
75245 060044
75246 050030
75247
75250
75251
15252
75253
75254
75255
75256
75257
75260
75261
75262
0329
0330
0331
0332 75263
0333*
002401
061027
130001
170036
P.l34036
044350
160001
170036
034036
016423
064035
044364
170001
FLB9
ISZ FLBUF
ISZ FLBUF
CLA
STA FLBUF,I
ISZ FLBUF
LOB LTEMP+5
ADe .+8
DLD B,I
DST FLBUF,I
LOB
ADS
ISZ
ISZ
LOA
LTEMP+5
,+11
FLBuF
FLaUF
FLBID
CPA LTEMP
Cl.A,RSS
LDA BIT15
lOR B,I
STA
ISZ
ADB
LOA
ST.
182
JSB
LOB
FI.BuF,I
FL8u F
."'7
B,1
FLBUF,l
FLeUF
DATE
LTEMP+5
AD8 ,+5
srA B,I
*
0334
75264
0335
75264 034040
lSI FL.Bc1
~336
75265 02713 0
JMP FLB6
0337.
0338.
033g.
0340.
0341
0342
0343
0344
0345
0346
0347
0348
0349
0350
0351
FLB28 E.QU
75266 060257
75267 002003
LOA OIRWD
5ZA,RSS
75270
75271
75272
75273
75274
75275
7527'6
75276
75277
JMP Fl,.82 9
027276
064676
114206
114211
002400
070257
036152
060041
0352
75300
070~40
75301
75302
75303
75304
75305
003004
0355
0356
0357
THE
UNUSED
WORD
BUMP BUFF POINTER TO WORD e
GET DISC ADDRESS AND
PUT IT IN THE BUFFER
GET DIRECTORY ENTRY PDINTER
ADJUST TO FILE LENGTH WORD
BUMP BUFFER POINTER
TO LENGTH SLOT
TEST FOR USER REFERENCE
10 PUBLIC OR GROUP FILE
NO,CLEAR BIT 15
yES, SET BIT 15
OR IN FILE LENGTH
STORE IT IN BUFFER
BUMP POINTER TO RECORD SIZE -SLOT
SAME FOR DIRECTORV POINTER
TRANSFER RECORD SIZE
TO BUFFER
BUMP POINTER TO NEXT ENTRY
GET DATE AND SET
INTO PURGE (LAST
REFERENCED)
DATE,
TEST FOR ANY MORE FILES.
Wt HAVE FOUND ALL THE FILES. WE NOW HAVE TO UPDATE THE FUSS TABLE.
FIRST CHECK TO SEE IF THE PROGRAM HAS ROOM ENOUGH FOR THE TABLE.
~353
0354
CLEAR
100200
000376
LOB LIBD
JSB DISCZ,I
JSe SLVAG,I
CLA
STA DIRWD
FLB29 EQU *
ISZ SCHLQ
LOA FLBC2
STA FLBet
CMA,INA
MPy ,+FTEL
040056
ADA PBPTR
003~Vl0
CMA
75306 040716
ADA LWAUS
WRITE DIRECTORY TO DISC
IF ANY IS IN CORE
OUTGOING CORE ADDRESS.
CAN'T DO IT, TRY TO SALVAGE
SAy DIRECTORy
NOT IN CORE
BUMP TO NEXT ERROR EXIT.
GET II OF FILES,
COMPUTE NEW VALUE OF PBPTR
TEST FOR OVERFLOW.
pAGE 0368 #30
FILES
SSA
JMP FLB8
0358 75307 002020
0359 75310 027176
0360.
0361 75311 036152
0362
0363
21364
0365
0366
0367
0368.
"""ft
IQ.;JU"l/I
0374
0375
0376
0377
0378
0379
0380
0381
0382
BUMP TO NORMAL RETURN ADDRESS,
INPUT FUSS TABLE
JSB SICKP,I
IT.S STUCK ON THE DISC
LOA
STA
LOA
LDB
JSB
.,c;: ..
LOA MLINK+1
DETERMINE USER _.
ADA .+1TNUM-?LINK
LDA 0,1
USER # IN BITS 12.8
ALF,ALF
RIGHT JUSTIFy USER •
Al.F,RAL
MULTIPLY USER # BY 32 AND
ADA LIBO
ADD LIBD TO POINT AT UIIR"
STA FLBFS
SECTION OF FUS$,
STA LTEMP
LOB M32
ZERO OUT USER'S SECTION
CLA
STA LTEHP,I
ISZ LTEMP
INB,SZB
050272
75321 040342
75322 160000
75323 001727
7 5 324 001722
75325 040676
75326 070045
75327 070030
75330 064450
75331 002400
75332 170030
75333 034030
75334 006006
75335 027332
0373
ISZ SCHlQ
M2000
MWORD
FUSS
75312 060612
75313 070204
75314 060666
75315 064700
75316 11420 6
75317 11421(17
,
0370
0 3 71
0372
FAIL •• PROGRAM TOO LARGE,
,,~
oJ.;JC:r"
LIBDl
DISCZ,1
JMP .·3
0383*
03 8 4 NOW CHECK TO SEE IF ANY OF THE REQUESTED FILES ARE BEING USED BY
0385. ANOTHER USER. IF THEy ARE, ~E ALLOw ONLy FILE READS BUT NO WRITES,
*
0386*
IF THE USER IS AN 'A', WE SKIP THE TEST. \
0387.
0388 75336 060044
0389
LOA FLBID
75337 010612
75340 050514
75341 027407
0390
0391
0392*
0393 75342 060037
0394 "75343
0395 75343 070036
AND M2000
CPA AltJ00
JMP FLBt0
LOA FLBFP
FLBlt Egu •
STA Fl.,BUF
0396.
0397
75344 164036
LOB FLBUF,I
0398
75345 006003
kl399
753~6
SZB,RSS
JMP FLa30
ADA ,+4
STA FL.,BUF
0400
027372
75347 04eJ36J
75350 070036
0401
0402*
0403 75351 064676
0404 75352 077562
04 0 5 7535 3 t042~0
75354 100036
0406 75355 153562
0407 75356 027366
0408 7"5357 037562
0409 75360 037562
0410 75361 060672
75362 053562
~411
0412 75363 027402
ADDRESS,
GET FIRST WORD OF NAME
pLACE HOLDER1
YES
NO, BUMP POINTER TO
DISC ADDRESS
LOB LISD
FUSCH
DLD FLBUF,I
PUT ADDRESS OF FUSS
INTO FUSS SEARCH ~glNTER
GET DISC ADDRESS
CPA FUSCH,I
.IMP FLat8
ISZ FUSCH
WORDS EQUAL?
YES, GO COMPARE LOWER
NO, BUMp
FUSS POINTER
GET FUSS END ADDRESS
HAVE WE EXHAUSTED FUSS?
YES, GO CHEC~ NEXT FILE
sra
FLB14
SET BUFFER POINTER.
FLB19 lSI FlJ5CH
LDA L1024
CPA fUSCH
JMP fLB13
UPPER
PAGE
0413
0414
0415
0416
0417
0418
0419*
0420
0421
0422
0423.
0424
0425
0426
0427
0428
~369
75364
75365
15366
75367
75370
75371
#30
FILES
tOA FLBUF,I
160036
JMP FLBt4
027355
037562 "FLB18 ISZ FUSCH
CPS FUSCH,I
151562
027374
JMP FLB12
027360
JMP FLB19
75372
75372 060365
75373 027403
FLB30 EQU •
LDA .+6
JMP FLBI3+1
75374
75375
75376
75377
75400
03412136
PJ34036
160036
031027
110036
Fl..S12 ISZ FLBUF
75401
75402
75403
75404
75405
75406
082401
060361
040361
040036
034040
027343
CLA,RSS
FLBt3 LOA .+2
0429.
0430
0431
0432
0433
0434
0435
ISZ FLBUF
LOA FLBUF,I
lOR BIT15
ST.A FLBUF,I
ADA .+2
ADA FLBUF
lSZ FLBt1
JMP FLBlt
NO, RESTORE UPPER ADDRE.S WORD
AND GO COMPARE AGAIN
BUMP TO LOW ADDRESS WORD
IS LOW ADDRESS ALSO EQUAL'
YES, GO 'LAG READ ONLY
NO, GO CHECK NEXT FILE
SUMP 8UFFER POINTER
TO LENGTH WORD
SET DISC LENGTH TO SAy
READ ONL.Y.
ADJUST BUFFER POINTER
TO NEXT FILE NAME
TEST fOR ANY MORE
~436.
0437. NOW UPDATE FUSS BY PLACING THE DISC ADDRESSES JUST REQUESTED
0438* INTO THE USER'S fUSS AREA.
0439*
SET COUNTER,
0440 75407 060041 FL810 LOA FL.BC2
0441
75410 070040
STA FLBCt
LDA FLBfp
0442 75411 060037
SET POINTER TO FIRST ONE.
fLB15 EQU •
0443 75412
0444 75412 040365
ADA • +6
GET FILE LENGTH
LOB 0,1
0445 75413 164000
044 6 75414 0403 55
ADA ,--2
A POINTS TO HIGH DISC ADDRESS
SSB,RSS
IF NOT READ ONLy,
0447 75415 006021
CLB,RSS
LEAVE BIT 15 0,
0 44 8 75416 006 401
LOB BIT15
ELSE SET IT.
.a449 ".75417 065027
ADS 0,1
0450 7542ffJ 144000
0451 75421 174045
ST8 FLSFS,I
AND PUT INTO TABLE,
8UMP
ISZ FL.-BFS
0452 75422 034045
0453 75423 002004
INA
POINTERS AND
LOB A,I
STORE LOW
0454 7542A 1642100
0455 75425 174045
DISC ADO~ESS
STB FLBFS,I
0456 75426 034045
ISZ FLBFS
REBUMP
POINTERS
12'457 75427 040362
ADA • +3
ISZ FLBCt
045d
TEST FOR DONE.
75430 034040
0459
75431 027412
JMP FLB15
046".
LOA FUSS
75432 060666
0461
0462 75433 064676
LOB LIeD
.J S B 0 I S CZ, I
0463 75434 114206
0464 75435 114207
JSB SICKP,I
THE FUSS TABLE IS STUCK IN COR!
0465*
0466
75436 016056
0467
0468
75437 061502
75440 071574
JSB RDPRG
LOA FIl4'3
STA VALlB
READ IN USER'S PROGRAM AGAIN,
PAGE
~370
#3121
FILES
064037
0414
0475
0476
0477
75441
75442
75442
]5443
75444
75445
75446
75441
75450
75451
75452
noA71Ol
v-y,v
75453 002016
0479
75454
7 5455
75456
75457
75460
75461
75462
75463
~469
0470
0471
04 7 2
0473
0 4 80
0481
0482
21 4 83
0484
0485
0486
0487
0488
0489
0490
0491
0492
0493
75472
75473
ADB ,+6
BUMP TO LENGTH WORD
GET LENGTH WORD AND R£CORD SIZE
104400
OST VALTS,I
STORE THEM IN
101574
035574
035574
ISZ VAL 1B
BUMP FILE
001665
04121355
040356
06412137
044363
2177562
ISZ VALTS
ELA,CLE,ERA
ADA .-2
SLA,!NA,SZA
ADA .... 1
FL8FP
LOB
00612104
ADB ,+4
STB FUSCH
INB
000040
eLE
140001
067562
LOB FusCH
ADA B,1
LDB B,I
LOA .... 4
ADA vALTS
STA VALTB
OL.D FUSCH,i
BASE DISC ADDRESS
INTO FILE TABLE
swP
75474
0496
75477 104400
DST VALTS,I
75500
755 0 1
75502
75503
101574
035574
061574
ISZ VALTB
LOA VALTS
75506
75507
75510
75511
75512
175574
034037
035574
104200
LOB FLBFP,I
srB vALTS,I
ISZ FLBFP
ISZ VAL.TS
DLD FLBFP,I
100037
75513 104400
DST vALTB,I
050"
0505
0506
0507
0508
0509
0510
0511
0512
0513
121514
051-5
0516
121517.
ADD RELATIVE LAST RECORD ADDRESS
B GETS HIGH DISC
DST VALTS,I
75475
75476 175562
0503
TABLE POINTER
REMOVE 8IT 15 FROM LENGTH
COMPUTE RELATIVE
ADDRESS OF LAST
LOGICAL, RECORD
GET THE ADDRESS
OF HIGH DISC ADDRESS
AND SAVE IT
GET POINTER TO LOW DISC ADD WD.
101100
104400
101574
060363
041574
071574
104200
0495
0498
0499
0500
0501
0502
FILE TABLE
ADDRESS WORD
IF LOW ADO OVERFLOW,
ADD 1 TO HIGH PART
STORE 80TH WOROS
OF DISC ADDRESS
SEZ
INB
0494
0497
GET BUFFER POINTER
Ol.D B,I
044365
104200
100001
75464 164001
002040
006004
15465
75466
75 4 67
75470
75471
LOB FLBFP
FLB16 E.QU •
040363
75504 071574
75505 164037
75514 101574
75515 061574
75516 040362
75517 071574
75520 064037
75521 044366
75522 074037
75523 "'34041
75524 021442
75525 070056
75526 026222
ADA .+4
STA VAL.TB
LDA
ADA
ST.
LOB
ADS
VALTS
• +FTEL.-12
VALTB
FLBFP
ADJUST POINTER
BUMP POINTERS
MOVE
FIL.E
NAME
INTO
TABLE
.+7
STB FLBFP
ISZ Fl..BC2
.IMP FLB16
STA P8PTR
JMP SCHBl
TEST fOR ANY MORE.
ADVANCE PBPTR TO
FIRST UNUSED WORD
PAGE 0371 #30
FILES
S51a.
0519. FLBCH GETS THE NEXT CHARACTER OUT OF THE FILES
052"· STATEMf.NT, IF FLaCH-I, IT ASSUMES A COMMA HAS BEEN
0521. SEEN AND RETURNS A BLANK, OTHERWISE IF THE CHARAC.
0522* TER IS A COMMA, IT SETS F~BCM AND RETURNS A BLANK.
0523. IT ALsO RETURNS BLANKS AT THE END OF THE CODE.
0524*
0525
0526
0527
75527 000000
75530 060417
75531 064031
i1529
75532 006002
75533 127527
0530
0531
75534 064043
75535 006004
0532
0533
0534
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
75536
75537
75540
75541
75542
75543
0528
75552 040450
75555 002001
15556 127527
0551*
0556
0551
0558
00030
00031
00036
0003 ,
00040
00041
0559
05 6 0
0004 2
00043
00044
0561
~0045
0562
00"46
0563 00047
ft:1564*
0565*
0566 75561 073601
0567*
0568 75562
0569 75562 000~00
FL..BCP
FL8IO
FLBFS
FLBFe
FLBFF
POINTER.
ROTATE If NECESSARY.
MASK,
JMP FLBCH,l
ISZ FL8CH
JMp FLBCH+1
FLBS
FLBCH
FLBU F
FLBFP
FLeet
FLBC2
FLaP
IF END OF STATEMENT,
RETURN A BLANK.
ALF,ALF
RSS
75557 034031
75560 027530
GET CHAR. POINTER,
OTHERWISE BUMP
GET NEXT CHAR,
SZA,RSS
JMP FLBCH"'t
AOA H96
SSA,RSS
ADA MJ2
ADA .140
CPA ,+548
75550 040317
75551 002 0 21
RETURN BLANK IF
FLBCH IS SET,
CLE,ERB
LOA t,l
SEZ,RSS
AND B177
75547 027530
75554 0!50433
0555
INS
CPB Fl.BP
JMP FL.BCH,I
STS FLBCP
002041
0541
055 3
0554
LOB fLBCP
75544 001727
75545 010474
75546 002003
0546
0552
LDB FL.BCH
SZB
tM. &:'1 gr... T
VI··..
, ........... '.,.
074043
004065
160001
75553 040470
055e
LDA .+408
054042
127527
0545
0548
0549
FLaCH NOP
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
LTEMP
LTEMP+l
SKIP ill S.
LOWER CASE?
yES, MAKE INTO UPPER CASE
NO
TEST FOR COMMA,
NOT A COMMA,
IF COMMA, SET FLAG AND GO
RETURN A BLANK,
• OR S FLAG
COMMA FLAG
LTEMP+7
LTEMP+8
INTERIM FILE TABLE INDEx
INTERIM FILE TABLE POINTER
FILE COUNTER (NEG)
LTEMP+9
LTEMP+10
LTEMP+l1
END OF FILE STATEMENT POINTER
FILE STATEMENT CHARACTER POINTER
LTEMP"'6
LTEHP+12
LTEHP+IJ
LTEMP+14
LTEHP+lf)
FILBP OfF FILaF
SFLB EQU *
FUSCH BSS 1
USER 10 STORAGE
POINTER TO USERS FUSS TABLE
FILE STATEMENT COUNTER (NEG)
POINT~R TO 4 WORD AREA CONTAIN.
ING POINTERS TO THE FILES
STATEMENTS
POINTER TO 131 WORD TEMPORARY
FILE TABLE BUFFER
FUSS TABLE SEARCH POINTER
PAGE 0372 #31
0003.
0004*
0005.
0006*
0007.
0008*
0009.
0010.
0011*
0012*
0013*
0014.
0015*
0016.
0017*
001S*
0019*
0020*
0021*
0022*
0023*
0024
0025
0026
0027
0028
4SSIGN
THE ASSIGN ROUTINE IS USED By THE BASIC STATEMENT EXECUTION PROCES
(PHASE Ill) TO PROCESS AN ASSIGN STATEMENT, THE PURPOSE OF THE ROU
TINE IS TO REPLACE THE INFORMATION CURRENTLY IN THE FILE CONTROL
BLOCK REFERENCED BY A SPECIFIED ORDINAL NUMHER WITH INFORMATION AB
THE NEW FILE BEING ASSIGNED TO THAT ORDINAL NUMBER. INPUT PARAMETE
TO THE ASSIGN ROUTINE ARE AS FOLLOWS,
ASBFP: a> BUFFER CONTAINING FILE NAME
ASNIO: 0- USER LIBRARY, 1- SYSTEM LIBRARY, 2- GROUP LIBRARY
ORONO: SPECIFIED ORDINAL NUMBER
FILlSI a> FILE lABLE
THE CALLING SEQUENCE TO THE ASSIGN ROUTINE IS AS
JSB SeHLB,I
OEf ASNIB
75000
ORG LIBRA
LOA MLINK+t
GET USER 10 AND STORE
75000 060272
ADA .+?lD ... ?LtNK
75001 04£1346
LOA 0,1
750"'2 160000
75003 070041
STA ASNIO
0029*
0~30
0031
0032
0033
0034
0035
0036
012137
003g
0039
, 0040
0041*
0042
0043
0044
0045
0046
0047
004 8
0049*
75004
75005
75006
75007
75010
75011
75012
75013
75014
75015
75016
75017
75020
013505
070030
060041
020030
006400
100400
000472
100200
000472
030030
070030
063514
073512
75021
75022
75023
75024
064041
061466
050360
064514
75025 1li50361
75026 V1640J0
75027 177512
AND HI6
STA LTf.MP
LOA ASNID
XOR LTEHP
CLB
DIV ,100
MPY .100
JOR
STA
LOA
STA
LTEMP
L1EHP
ASFBF
ASBUF
LOB ASNID
LOA ASTYP
CPA ,+1
IN LTEMP
INITIALIZE INFORMATION
BUFFER POINTER
GET USER ID
GET LIBRARY INDICATOR
SYSTEM LIBRARY?
yES
LOB LTEMP
STB ASaUF,I
yES
SAVE SPECIFIED
ORDINAL NUMBER
SAVE POINTER
l.OA ORONO
0051
0052
7503 1 07 00 37
75032 100200
STA ASaRO
MPy .+fTEL
~00376
75035 070036
75036 0132004
AND SAVE
GROUP LI8RARY?
061550
75034 041502
LI8RARY ID
CPA ,+2
75Q13~
75~33
LOSE NUMERICS
SAVE
GET THE 10 BACK
LOSE THE TOP
SET uP FOR DIvISION
PRODUCE GROUP
LDB A000
0050
0053
0054
0055
FOLLO~SI
ADA FILTB
ST. ASFCB
INA
STORE CORRECT 10 IN sUFFER
TO FIt.E TABL.E
ENTRY
PAGE 0373 #31
0056
0057
B058
"05g
0060
0061
0062
0063.
75037
75040
75041
15042
15043
75044
1504b
ASSIGN
L,OB A,I
164000
004066
004066
CLE,ELB
CL.E,ELB
RBR,RBR
STB ASSAV
SEZ,RS!
JMP ASN21
005323
011511
002041
027111
CLEAR
"DIRTY" RECORD AND
"OIRTY" FILE
BITS
SAVE OLD RECORD SIZE
DID WRITE OCCUR ON OLD 'ILI1
NO
0064* UPDATE LAST CHANGED DArE OF OLD FIL.E
0065.
21066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
00821
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
009 1
21092
75046
75047
75050
75051
75052
75053
75054
75055
75056
75057
75A60
75061
75 0 62
75063
75,,64
75065
75066
75067
75070
75071
75072
7 5 "73
75074
75075
75076
75077
074030
040311
164000
074031
002004
104200
108000
21094
0095
0096
0097
0098
0099
061554
LOA ASBFP
LOB A,I
ST8 lTEMP+10
INA
OLD 0,1
164000
074 0 42
002004
1042~0
1000021
.JSB
RSS
116017
002001
OLOKP,I
JMP ASN20
LOA LTEMP+4
027102
060034
ADA .+5
040364
070257
ST. OIRWD
L.OA DATIM
LOB LTEMP+5
060171
064~J5
104400
SAVE
NEw FILENAME
BEFORE SWAP
OCCURS
DST LTEMP ... 11
104400
000043
75101 170001
75102 060042
75 1°3 07 00 31
75104 104200
ADe
,+6
srA 1 , I
ASN20
LOA LTEMP+10
srA LTEMP+l
OLD lrEMp+l1
FIND DIRECTORY ENTRY FOR OLD FIt..
NOT FOUND
SAVE CURRENT
DIRECTORY TRACK
FOR OLOOK
GET HOUR OF YEAR
AND UPDATE
'L.AST CHANGE.
LOCATION
GET
NEw
DST LTEMP+2
000032
027121
065554
160001
75113 070031
75114 ('106004
75115 10420'"
75116
0100
FILE NAME
~00032
75100 044365
75106
7510 7
75110
75111
75112
YES, SET UP
LTEMP(0IJ)
WITH OLD
OST LTEMP+2
104400
75105 000043
0093
LOB ASNID
STB LTEMP
AOA .+10
LOB t?I,I
STB LTEMP+l
INA
OL.D 0,1
064041
.IMP ASN22
ASN2t LOB ASBFP
LOA 1 , I
STA LTEMP+l
INS
FILE NAME
OST LTEMP+2
L.TEMP(lIJ)
OLD 1 , I
IN
10~0(iltl
75117 104400
75120 000k'32
75121 163512
0101
0102 7 5 122 07°030
0103*
ASN22 LOA ASBUF,I
STA
LTE~P
SET APPROPRIATE
10 IN LTEMP
PAGE 0374 #31
0104
0105
ASSIGN
75123 116~t7
75124 006401
0106
7512!5 001400
0107
75126
15127
1513ti1
75131
75132
75133
75134
75135
75136
75137
75140
75141
75142
1 5 143
75144
75145
75146
75147
75150
75151
75152
75153
15154
75155
75156
75157
75160
75161
75162
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
9123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
75163
75164
75165
75166
75167
7 5 170
75171
75172
75173
75174
75175
75176
75177
7520VJ
75201
75202
060034
~40364
050257
027134
002400
010257
006003
0271.51
036152
060257
002003
027147
006400
07 4 2 5 7
064676
114206
114211
016056
027503
064035
044361
160001
002021
021136
06 4 035
160001
050041
027205
006004
16001211
002020
027136
044361
160001
002021
027222
064272
044347
160001
002021
027136
044351
1601il~1
010612
002003
75203 027136
0153 75204 027222
0154*
0155 75205 061611
0156 75206 051334
ri1157 75207 027222
0158 75210 160000
0159 75211 010570
JS8 DlOKP,I
CLB,RSS
cee
LOA LTEMP+4
ADA ,.5
CPA OIRWD
JMP ASN23
CLA
ST. DIRWD
ASN23 5ZB,RSS
JMP ASN4
ASN24 ISZ SCHL,Q
ASNJ LOA DIRWD
SZA,RSS
JMP ASN26
CLB
STB DIRWD
LOB LIBD
JSB DISCZ,1
JSB SLVAG,I
ASN26 JSB RDPRG
JMP ASN14
ASN4 LOB LTEMP+S
ADa ,+2
LOA 8,1
SSA,RSS
JMP ASN24
LOB LTEMP+5
LOA B,1
CPA ASNID
JMP ASN45
INB
LOA B,I
SEARCH FOR FILE
IF FOUND, CLEAR B
IF NOT, 8 GETS -1
GET CURRENT
DIRECTORY TRACK POINTER
SAME AS OTHER ONE?
YES (SO NONE HAS BEEN WRITTEN)
NO, 80 UPDATED ONE HAS·
BEEN WRITTEN OUT
IF ENTRY WAS FOUND
GO CHECK IT OUT
IS THERE A CHANGED
DIRECTORY TRACK IN tORE?
NO
yES, TELL DLOOK
THERE ISN'T
AND WRITE
IT OUT
BLEW ITl TRY TO SALVAGE
IS THE
ENTRY WE
FOUND
A FILE?
NO, fAIL
IS OWNER
TRYING TO
ACCESS FILE?
YES
NO, IS FILE
PROTECTED?
SSA
JMP ASN24
YES • FAll
LOA 8,1
SSA,RSS
IS MASK
BIT SET?
ADB ,+2
JMP ASN48
NO
LDB MLINK+l
yEs
ADB .+?NAME~?LINK
LOA 8,1
IS THIS FILE RUNNING
SSA,RSS
UNDER A PROTECTED PROGRAM?
JMP ASN24
NO • fAIL
ADB .+?FLAG~?NAME
LOA 8,1
GET PROGRAM
AND PUALT
UNALTERED BIT
SZA,RSS
HAS PROGRAM BEEN JIMMIED?
JMP ASN24
ATTEMPTED RIP.oFF, FAIL
JMP ASN48
ASN45 LOA
CPA
JMP
LOA
AND
TEMPt
PRGCT
ASN48
A,1
OPMSK
WAS A PROTECT
MASK REQUESTED?
NO
MAYBl
PAGE 0375 #31
0160
rl161
0162
0163
0164
0165
0166
0167
016S.
0169
0170
0·J"fl
.. •
0172
0173
0174
0115
0176
0177
0178
0179
0180
0181
0182
01 8 3
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
0206
0207
0208.
0209
0210
0211
0212
0213
0214
0215
75212
75213
75214
75215
75216
75217
ASSIGN
050514
002001
027222
064035
044362
160001
7522~
0312127
75221 170001
75222 064035
75223 044363
i5224
75225
75226
75227
7 5 230
75231
75232
75233
75234
75235
75236
75237
75240
75241
75242
75243
75244
15245
.~I':II~t2.
J.CK.ntlV ..
173512
003004
043511
002020
027137
036152
037512
002400
173512
A37512
044363
160001
173512
006004
A375t2
160001
173512
752 4 6 044361
75247
75250
75251
15252
75253
75254
75255
75256
75257
037512
164001
060041
050030
002001
045027
177512
016423
~6"0J5
044364
170001
002400
070257
060034
0 .. 0364
75266 064676
75267 114206
75270 114211
7526~
75261
75262
75263
75264
75265
75271
75272
75273
75274
75275
75276
75277
036152
060612
070204
060666
064700
114206
114207
CPA 8 2 000
COMMA
NEXT?
RSS
JMP
LDB
ADB
LOA
lOR
STA
ASN48
LTEMP+5
,+3
8,1
BIT15
B,I
ASN48 LOB LTEMP+o
ADB .... 4
I r\A
8-,
1..,,""
T
4
STA ASBUF,I
CMA,INA
ADA ASSAV
S5A
JMP ASNJ
ISZ SCHLQ
ISZ ASBUF
CLA
STA A58UF,I
ISZ ASBUF
ADS ,+4
LOA 1 , I
STA ASBUF,l
INS
ISZ ASBUF
LOA 1 , I
ST. ASBUF,1
ADS .+2
ISZ ASBUF
LOB t , I
LOA ASNIO
CPA LTEMP
RSS
ADB
STB
JSB
LDB
AOB
STA
CLA
STA
LDA
ADA
LOB
JSB
JSB
NO
YES
SET
MASK
BIT
GET L.OGICAL
Dl:rnan
~T7J:'
,'
,.".,." ... .............
AND SAVE IT
IS IT LARGER
THAN THE ALLOCATED
BUFFER?
YES, fAIL
NO
..
PUT
DISC
ADDRESS
IN
BUFFER
TEST FOR USER REFERENCE
TO PUBl.IC FILE
BIT15
ASBUF,I
SET BIT 15 OF LENGTH IF IT IS
DATE
LTEHP+5
GET DATE AND SET IN
PURGE LOCATION
STORE LENGTH IN BUFFER
.+5
1, I
DIRWD
LTEMP+4
.+5
LIBD
DISCI,1
SlVAG,I
ISZ 5CHLQ
LOA M2000
STA MWORD
LOA FUSS
LOB LIBDI
JSB DISCI,1
J8B SICKP,I
TELL OLOOK THAT NO DIRECTORY
TRACK 18 IN CORE AND
WRITE IT BACK
SCREWED UP - TRY TO SALVAGE
FILE EXISTS •• BUMP RETURN ADDRESS
INPUT FUSS TABLE
ITS STUCK ON THE DISC
PAGE
~376
#31
ASSIGN
121216.
0217 7530v.J 060272
0218 75301 043506
0219 15302 006400
0220 75303 100400
75304 000403
0221 753iH5 001122
0222 15306 040676
0223 75301 073507
0224 75310 064037
0225 15311 005000
0226 75312 04012101
9227 75313 070040
0228 75314 002400
121229 75315 096400
0230
0242
75331 027356
0243
0244
0245
0246
0247.
0248
0249
0250
0251
75332 150001
75333 027336
75334 044361
75341
006~04
0252
7534?
75343
75344
15345
150001
027346
006004
0257
0258
0259
0260
0261
0262
AL.F,RAl
ADA LISD
sr.
ADA 1
STA ASNFS
cLA
ASN6
ASN?
027323
75346
15346 077513
75347 060041
7535~
010612
75351
75352
15353
75354
75355
050514
"27356
163512
031027
173512
02 63
0264
0265
0266.
0267 75356 063512
0268 75357 040355
0269 75360 160000
ASN9
*
MULTIPLy USER, By 32 AND
ADD LI 80 TO POINT TO USER'S
SECTION OF fUSS
SET POINTER TO FUSS
ENTRY FOR THE
SPECIFIED ORDINAL NO.
CLB
08T ASNFS,I
ZERO OUT OLD FILE INFORMATION
CLA
SAY ENTRY NOT YET
STA ASNIF
75335 027326
75336 063512
75337 040356
75340 160000
ASUFS
LDB ASORO
BlS
75316 104400
15317 100040
0231*
0232 75320 002400
0233 75321 073513
0234.
0235 75322 064676
0236 75323 063512
0237 75324 040355
0238 75325 160000
0239 75326 057507
0241" 75327 044417
0241 75330 054672
0253
0254
0255
0256*
LOA MLINK+l
DETERMINE USER
ADA ASNSP
ell
DIV .+TTY0t_TTY00
FOUND IN FUSS TABLE
LOB LISD
LOA ASSUF
AOA .-2
LOA 0,1
cps ASUFS
ADB .+32
CPS L1024
JHP ASNit
CPA 1,1
JMP ASN9
ADB ,+2
JMP ASN7
LOA
AOA
LOA
INS
CPA
JMP
INB
JMP
ASBUF
,-I
0,1
USERS OWN FUSS
ALL FUSS CHECKED?
YES, NOT THERE
TEST F'OR THERE
IT IS
BUMP fUSS POINTER
LOOK AT NEXT ENTRY
GET 2ND WORD OF ADDREss
1,1
BUMP FuSS TO 2ND WORD
ARE THEY EQUAL?
ASN10
yES
ASN6+1
RETURN TO CHECKING FUSS
ASN10 EQU •
5T8 ASNIF
LOA ASNIO
AND M20k'0
CPA A000
JMP
LOA
lOR
STA
GET FIRST WORD OF DISC ADDRESS
SKIP ovER
ASNt1
ASBUF,1
BIT15
ASBuF,I
ASNlt LOA ASBUF
ADA .-2
LOA 0,1
MOVE TO NEXT FUSS ENTRY
SET TO SAY "IN FUSS·
IS THIS
AN "A"
USER?
YES
SET DISC LENGTH TO SAY
READ ONLY
GET HIGH DISC ADDRESS
PAGE 0371 #31
0270
0271
0212
0273
0274
0215
0276
0277
0278
0279
028(l1
0281
0282
0283
0284
0285
0286
0287
02 88
ASSIGN
167512
006021
027371
031027
064041
75366 054030
75367 027374
75370 027375
75371
75371 067513
75372 v.l06003
75373 W"_'IttJ,...,,,w ..
7 5 37 4
75374 036152
15375
75375 067512
75316 044356
75377 164001
7 5400 104400
75401 100040
75361
75362
15363
75364
75365
IJI"'''.''?
0289.
0290 75402 060666
0291 75403 064676
0292 75~04 114206
0293 15405 114207
0294.
0295 75406 016056
0296 75407 067512
0297 7541(,11 160001
0298 75411 t 70036
0299 75412 034036
0300 75413 044353
75414 164001
0301
0302 75415 174036
0303 75416 034036
0304 75417 001665
0305 75420 040355
0306 75421 002016
0307 75422 ~40356
0308 75423 067512
0309 75424 044355
0310 75425 077510
75426 006004
0311
0312 75427 0000413
0313 75430' 140001
0314 75431 167510
0315 75432 '-'02040
0316 75433 006"04
0317 75434 101100
0318 75435 104400
75436 100036
0319 75437 060036
0320
1a321
0322
75440 040363
75441 ~70036
75442 1 0 4 200
75443 175510
LOB ASBUF,I
SS8,RSS
JMP ASN30
lOR B1T15
LOB ASNID
cpa LTEMP
GET l.ENGTH
IF READ ONlYi
sET BIT 15 OF HIGH ADDRESS, AND
SKIP 1 OR BOTH RETURN INCREM
DEPENDING ON REASON FOR
JMP ASN31
JMP ASNJ2
ASNJ0 EQU •
LOB ASNIF
sze,RSS
lSZ SCHLQ
REAO.WRITE, WAS IT
IN FUSS?
NO: BUMP TWICE
ASN31 E:QU •
ISZ SCHLQ
ASN32 EQU •
LOB ASBUF
ADB .-1
LOB 1,1
DST ASNFS,I
LOA
LOB
JSB
JsB
GET LOW ADDRESS IN 8
STORE NEW FUSS INFORMATION
.FUSS
WRITE FUSS BACK TO DISC
LIBD
DISCZ,1
sICKP,I
CAN'T GET RID of IT
JSB ROPRG
READ USER.S PROGRAM SACK IN
LoB
LOA
STA
ISZ
GET LENGTH WORD
AND STORE IT
ASBUF
1,1
AsFCB,I
ASFCB
ADB , .. 4
LOB 1,1
5T8
AsFCB,I
ISZ ASFCB
ELA,CLE,ERA
ADA .-2
SlA,INA,SlA
ADA ,w1
LOB ASBUF
AOB
STB
INS
elE
ADA
LOB
SEl
.... 2
ASSCH
1,1
ASSCH,I
INB
sWP
DST AsFCB,l
GET NEW RECORD SIZE
AND STORE IT
REMOVE BIT 15 FROM LENGTH
COMPUTE RELATIVE
ADDRESS OF LAST
LOGICAL REcORD
GET ADDRESS
OF HIGH DISC ADDRESS
AND SAVE IT
GET POINTER TO LOW DISC ADDRESS
ADO RELATIVE LAST RECORD ADDRESS
B GETS HIGH DISC ADDREss WORD
IF LOW ADDRESS OVERFLOWS,
ADO 1 TO HIGH pART
STORE 80TH WORDS OF
DIsc ADDRESS
LOA ASP--CS
ADA ,+4
STA ASFCB
DLD ASSC!'i,I
STORE BASE DISC ADDRESS
~AGE
0323
0324
0325
0326
lti327
0328
0329
0330
0331
0332
0333
0334
0335
~336
0331
0338
0339
0340
0341
0342
0343
0344
0345
0346
0347
0348
0349
0350
0378 #31
75444
75445
75446
75447
75450
75451
75452
75453
15454
75455
75456
75457
7546~
75461
75462
75463
75464
75465
75466
75467
75470
75471
75472
75473
75474
75475
75476
75417
75500
75501
75502
ASSIGN
DST ASFCB,1
104400
100036
034036
060036
040354
065027
174000
063512
040353
067511
007004
144000
034036
160036
"40001
170036
034 0 36
170036
034036
002400
170036
034036
1SZ ASFCB
LOA ASFCB
ADA ,-;,
LOB BIT15
ST8 0,1
LOA ASBUF
ADA .",4
LOB ASSAV
CMS,INS
ADS 0,1
ISz ASFCB
LOA ASFCB,I
ADA 1
STA ASFCS,l
ISZ ASFCB
STA ASFtB,I
ISZ ASFC8
CLA
STA ASFCB,I
ISZ ASFCe
LOA ASBFP
Loa A,1
STe ASFCB,I
INA
ISl ASFCB
OLD 0,1
~61554
164000
174036
002004
034036
104200
10~000
INTO FILE TABLE
ADJUST POINTER
sET
'NULL RECORD'
CONDITION
COMPUTE DIFFERENCE BETWEEN
OLD AND NEW BUFFER SIZES
ADJUST BUFFER
ADDRESS
SET 'RECORD FULL' CONDITION
SET 'NO EOF EXIT'
CONDITION
MOVE
FIl.E NAME
TO
FILE TA8l!
OST ASFtB,I
104400 .
100036
0351*
0352
0353
0354
0355
0356
0357
0358*
0359
0360
75503
75503
75504
75505
75506
00036
ASN14 EQU ..
016312
026222
176000
'120436
JSB ABCHK
JMP SCHtJL
HI6
ASNSP ABS -TTY00-?LINK
AsFCB EQU LTEMp+6
pOINTER TO ORDINAL ENTRY IN FILE
00037
00040
ASQRD EGULTEMP+7
ASNFS EQU LTEMP+8
0362
~0041
0363
75507 000000
ASNID EQU LTEMP+9
ASUFS sSS 1
ASSC~ ass 1
0361*
ALL DONE
OCT 176000
TABL.E
ORDINAL FILE. IN FUSS ENTRY
POINTER TO ORDINAL ENTRY IN FUSS
TABLE
USER 10
POINTER TO USER FUSS ENTRY
POINTER TO DISC ADDRESS IN
TEMPORARY BuFFER
RECORD SIZE Of OLD FILE
BUFFER INDEX
CLEAR UNLESS FILE IN FUSS
0364 7551~ 0000~0
0365*
0366 75511 000000 ASSAV BSS 1
0367 75512 000000 ASaUF aSs t
0368
75513 000000 ASNIF sss 1
0369 75514 075515 ASFBF OEF *+1
BSS 6
TEMPORARy FILE TABLE INFORMATION
0370
75515 000000
0J71*
BUFFER
0372.
0373. LTEMP, LTEMP.l, LTEMP+2, L1EMP+3, LTEMP+4, LTEMP+5, LTEMP.10,
LTEMP+l1, AND LTEMP+12 AR: ALSO USED
0374·
0375*
PAGE
0376
~379
75523
#31
ASSIGN
SASN
EQU.
/
PAGE 0380 #31
0318*
0379*
0380*
0381*
0382*
0383*
0384
0385
~386
0387
0388
038;
0390
0391
0392
0393
0394
CHAIN
THE CHAIN ROUTINE IS USED BY THE BASIC COMPILER TO PROCESS A CHAIN
STATEMENT oURING PHASE III, THE PURPOSE OF THIS ROUTINE "IS TO
CHECK FOR THE REQUESTED PROGRAM ON THE USER'S PRIVATE LIBRARY OR
ON THE PUBLIC LI~RARy (IF THE NA~E IS PRECEDED By A OOLLAR SIGN)
OR ON THE GROUP LIBRARY (IF THE NAME IS PRECeDED BY A SNOWFLAKE),
IF THE PROGRAM IS FOUND IT IS LOADED AND COMPILATION 18 BEGUN.
15000
ORG LIBRA
1500~ 061500
LOA FCNTR
SET COUNTER TO
75001 003000
CHA
l'S COMPLEMENT OF
7500~ 011500
STA FCNTR
NUMBER 0' FILES
PUT 2tS COMPLEMENT INTO
75003 002004
INA
75004 070034
STA CNNP
SAFE KEEPING FOR LCD
75005 ~61232
LOA FCORE
LOAD FIRST BuFFER ADDRESS
75006 065502
LOB FILTB
LOAD poINTER 10
FIRST DISC ADDRESS (LOW WORD)
15007 044364
ADB ,+5
7501~ ~35500
CHN01 lSZ FCNTR
MORE FILES?
0396
75011 002001
75012 027027
75013 015236
0397
75014 071645
0395
0 398
0399
0400
0401
0402
0403
0404
0405
0406
0401
0408
0409
0410
0411
75015 015514
75016 065236
75017 044372
7502~ 160e01
75021 001423
75022 003004
75023 044366
75~24 140001
75025 ~44354
75026 ~27010
75027 064212
0412
044346
75031 074036
75032 044352
75033 16 0 001
0413
0414
0415
75035 002003
75036 027044
0416
0417
0418
0419
0420
7503~
75034 010502
75037
75040
75041
75042
060034
044364
117363
002001
75043 016056
0421
75044 160036
0422
0423
15045 070030
15046 060354
0424
0425
0426
75047
75050
75051
75052
75052
75053
0427
0428
0429
0430
~431
070034
063360
064640
006004
170001
75054 034034
75055 021052
RSS
yES
JMP CHAN0
STB FBASE
STA RQ3
JS& WR8UF
LOB FBASE
ADB .+FTEL~4
LOA 1,1
ALR,RAR
NO •• FINISHED DUMPING BUFFERS
WRITE
oUT
RECORD
CMA,INA
ADB .+7
ADA 1,1
ADe ,-3
JMP CHN01
CHAN0 LOB MLINK+l
ADB .+?IO-?LINK
srB CHNI
ADB .-?IO
LOA B,1
ANO DfCHK
SZA,RSS
=> USER 10
JMP CHN11
NO
LOA CHNP
ADB .+110
JSB LCDP,1
RSS
JSB ROPRG
CHN11 LOA CHNI,l
STA LTEMP
LDA .~3
STA
LOA
LOB
CHN00 EQU
CAN THERE BE
FILES WHOSE
LCO'S NEED
UPDATING?
GET NEGATIVE FILE COUNT
AND 10 POINTER
GO UPDATE LCD'S
CORE NOT CHANGED (OVERWRITTEN)
RESTORE USER AREA
GET USER'S 10
STORE IN LTEMP
CHNP
TWQSP
OLTEM
•
INB
STA 8,1
ISZ CHNP
INITIALIZE
NAME TO
BLANKS
JMP CHN00
0432
75056 002404
CLA,INA
~433
75057 071470
STA EOL
ALLOW STRING
CONSTANT
PAGE 0381 #31
0434
0435
0436
ta437
0438
~439
~440
0441
0442
0443
0444
0445
0446
0447
0448
0449
0450
k)451
0452
0453
0454
0455
0456
0457
045tt
0459
0460
0461
0462
121463
0464
0465
0466
0467
0468
0469
CHAIN
7506l'1 015336
JSB FORMX
75061 060355
LDA .-2
75062
75063
75e64
15065
15066
75067
15070
'5071
75012
004065
160001
012041
75~7J 001727
75074 010500
75075 0!S0423
75076 027116
75077 050431
75100 002001
75101 027122
75102 060030
75103 010512
15104 006400
75105 100400
75106 0004]2
75107 100200
75110 000472
75111 064000
15112 060612
15113 0100321
75116 060514
75117 070030
15120 035256
75121 1213541121
0481
75136 015350
75137
0472
0473
0474
0475
0476
0 4 77
0478
0480
0482
0483
04 8 4
0485
0486
0487
AND 8377
CPA .+448
JMP
CpA
RSS
JHP
tOA
061410
040366
002020
002 400
040350
071410
071406
~60640
002004
001000
071272
069654
751 3 7 00740~
7 5 14l!j 061611
75141 051334
75142 027147
75143 015356
75144
~15342
FIRST
CHARACTER
IS'?
CHAN2
,+528
YES
NO,
YES
CHAN3
LTE.MP
NO
GET USER'S 1D
CONvERT
AND B1777
CLB
DIV .100
TO
10
OF
GROUP·
LOB A
LOA M2000
ANO LTEMP
lOR 8
RSS
CHAN2
f~QU
LOA
STA
lSZ
lSZ
CHAN3 EQU
LDA
ADA
*
A000
LTEMP
TEMP4
TPRME
•
.+7
CLA
ADA ._7
STA TPRME
STA TNULL
LOA DL.lEM
INA
ALB
STA TEMP5
LOA FCUCA
JSB TRSTR
CHAN4 EQU •
LOA
CPA
JHP
JSB
JSB
LIBRARIAN
AND
SET UP FOR PUBLIC LI8RARY
SAVE 10
BUMP SOURCE POINTER
BUMP LENGTH
TPRME
5SA
cea
,*,"
IT
MPy .100
75114 03 0 001
15115 00201211
75116
.-1
JMP CHANA
STB TPRME
LOB TEMP4
Clf,ERB
LOA B,I
SEZ,RSS
ALF,ALF
027137
075410
065256
111479
0471
STA TEMP4
cpa
054356
75122
75122
75123
75124
75125
75126
75127
75130
75131
75132
,5133
75134
75135
0470
JS8 PSTR
015344
071256
EVA1.UATE STRING
PREPARE
STRING
SAVE SOURCE POINTER
NULL STRING?
YES
SAVE LENGTH
EXTRACT
TEMP1
PRGCT
CHAN5
FETCH
SBFIX
LENGTH > 61
YES, SET TO (;
NO
DESTINATION POINTER
UPPER CASE ONL,Y
TRANSFER STRING
SET FLAG FOR NO LINE NUMBER
END
YES
OF STATEMENT?
NO, GET LINE NUMBER
ROUND TO INTEGER
PAGE
~382
#31
CHAIN
0488
0489
75145 065023
75146 006004
1fJ490
75147
75147 071361
0491
0492
0493
0494
0495
0496
0497
0498
0499
75150 06157~
75151 073362
75152 116017
1~153
Pl02001
75154 027354
75155 064035
75156 044363
"710:.£'7
'oJIOJ'
t£nll'lI""i
.a.
""'Ur:.IICJ4
0500
75160 002021
0501
0502
051213
0504
0505
75161 ~21166
75162 160036
0506
~507
0508
0509
0510
0511
0512
i'5t6j 050030
75164 036152
75165 027354
75166 036152
75167 036152
15170 044355
75171 1600~1
75172 00212120
75173 027354
75174 036152
LOB
INS
CHANS EQU
S1e
LDA
STA
DVSRS
ILLEGAL LINE NUMBER
READJUST
•
PKCNT
SPROG
INWRD
SAVE THE LINE NUMBER
.J S8 OLOKP, 1
SEARCH DIRECTORY FOR PROGRAM
RSS
JMP CHAN7
PROGRAM NOT FOUND
LOB CHNPD
CHECK ILL-STORED
PROGRAM FLAG
ADB .... 4
LDA 8;!
SSA,RSS
JMP CHN14
LOA CHNI,I
CPA LTEMP
ISZ SCHLQ
.IMP CHAN?
CHN14 ISZ SCHL.Q
TSl SCHL,Q
ADB .-2
LOA 1,1
SSA
.IMP CHAN7
ISZ SCHL,Q
UNSUCCESSFULLY STORED?
NO; CONTINUE
GET USER'S ID
DOES HE O~N THE PROGRAM?
YES, BUMP TO ILL-STORED MESSAGE
NO, PRINT NONEXISTENT PROGRAM
pAST SECOND ERROR
AND ERROR 2.5
ENTRY IS A FILE
pAST THIRD ERROR
0513.
0514. FOUND CORRECT fNTRY. FIRST CHECK TO SEE IF IT FITS
0515.
0516
0b17
0518
0519
0520
052t
0522
0523
0524
0525
0526
13527
0528
0529
0530
0531
0532
121533
0534
0535
~536
75175 044356
75176 160001
75177 07 00 3 1
75200 044361
75201 160001
75202 c;,70040
75203 006004
75204
1600~1
75205 001665
75206 070041
75207 044366
7521~ 160001
75211 010042
75212
75213
15214
,5215
75216
,5217
1522£71
75221
0030~4
040041
070045
003004
064040
006021
027225
040716
0537
75222 0020'1
ill538
75223
75224
75225
75225
75226
~539
~5~0
0541
0542
0543
~27231
027354
ADB •• 1
.> FIRST WORD OF NAME
LOA B,l
STA LTEMP+l
ADB .+2
LOA 1,1
STA LIBSC
INS
LOA 1,1
ELA,CLE,ERA
STA LIBSP
ADS .+7
LDA 1,1
STA CHNLN
CMA,INA
ADA LIBSP
STA LISPB
CMA,INA
LOB LIBse
MOVE PROTECTED BIT
TO SAFE PLACE
-> THIRD WORD OF NAME
SS8,RSS
JHP CHN18
ADA LWAUS
SSA,RSS
JMP CHNlt
JMP CHAN7
CHN18 E.QU
040714
1302021
75227 "27231
*
ADA LW97
SSA,RS5
JMP CHN11
SAVE SEMI-
COMPILED FLAG
SAVE START.OF.
PROGRAM POINTER
GET PROGRAM LENGTH
COMPUTE FIRST
UNUSED WORD
COMPUTE NEGATIVE
SEMI·COMPILED?
NO
OK
TOO BIG
TOTAL LENGTH
COMPARE WITH MAX ALLOWED
P"GE PJ383 #31
0544
0545
0546
0547
054 8
0549
0550
0551
0b52
0553
CHAIN
75230 027354
75231
75231 036152
75232 016423
7 5 233 064035
15234 044364
15235 170001
15236 044362
75237 104200
75240 100001
JMP CHAN7
CHN11 EQU
ISZ SCHLQ
JSB DATE
LOB CHNPO
ADB .+5
75241 104400
DST CHNDI
75242 000046
0554
0555
0556
0551
~558
0559
0560
0561
0562
0563
0564
0565
0566
0567
1fJ568
0569
0570
0511
t1572
0573
0574
0575
0576
0577
0578
0579
1d580
0681
0582
0583
0584
05 8 5
0586
0587
0588
0589
75243
75244
75245
75246
75247
15250
75251
75252
75253
15254
75255
75256
75257
160034
070204
060034
040364
064616
1'1420 6
114207
064272
044345
160001
070037
063362
110001
752691 016056
75261
75262
75263
75264
75265
75266
75267
064042
074204
0640411
045027
06 33 57
114206
002001
7527V' 027276
75271
75272
75273
75274
75275
75276
75277
7 5 300
75301
75302
75303
75304
15305
75306
064272
044345
060037
170001
027354
160036
034036
06 4P1 31
050030
005665
174036
034036
104200
000032
75307 104400
•
STA 1 , I
AD8 ,+3
DLD B,I
PROGRAM TOO LARGE
PAST FOURTH ERROR
SET NEW DATE
INTO
DIRECTORY
SET
DISC
ADDRESS
LOA CHNP,I
WRITE DIRECTORY
STA f'o'WORD
BACK TO
LDA CHNP
DISC
AOA ,+5
LOB LIBD
JSB DISCZ,1
JSB SICKP,I
QUE PASA1
LOB MLINK+1 SET TO NULL. PROGRAM
ADB .+?PROG-?LINK
LOA B,I
SAVE CURRENT
STA CHNC
PROGRAM BOUND
LOA INWRD
STA 1 , I
JS8 RDPRG
LOB CHNLN
STB MWORD
LOB LlBSP
ADB BIT15
LOA CHNDP
JS8 DISCZ,l
RSS
READ IN FIXED AREA
READ
PROGRAM
FROM DISC
READ ERROR
JMP CHN13
LOB MLINK+l
ADB .+?PROG·?LINK
LOA CHNC
STA 8,1
JMP CHAN?
CHN13 LOA CHNI,1
GET USER'S ID
ISz CHNI
TO FIRSr WORD OF NAME
LOB LTEMP+l
GET FIRST WORD
CPA LTEMP
IF PROGRAM OWNER CLEAR
EL.B,CLE,ERS
RUN-ONLY BIT
srB CHNI,I
STORE FIRST WORD OF NAME
ISZ CHNI
BUMP POINTER TO NEXT WORD
DLD lrEMp+2 GET LAST 2 WORDS OF NAME
DST
CHNI,I
STORE IN TABLE
7531~
0590
1002136
75311 036152
0591
"'592
75312 016343
753 1 3 016312
0593*
0594* SET TO RUN
1d595*
lSZ SCHLQ
SEMIC
JSB ABCHK
.}5B
ABORT ATTEMPT?
PAGE
(I
0596
0597
0598
0599
0600
0601
0602
0603
0·604
0605
0606
0607
0608
0609
0b10
0611
0612
0613
0614
0615
0616
0617
0618
0619
0620
0621
0622
0623
0624
0625
~626
0627
0628
0629
0630
0631
"1632
0633
0634
0635
0636
0637
0638
0384 #31
CHAIN
eL.F
75314 103100
LOB
LOA
lOR
lOR
75315 064255
75316 160001
75317
15320
75321
75322
75323
75324
75325
75326
15327
030377·
030506
170001
STA
"
061573
002003
060056
067361
006020
8SB
JMP CHAN6
JSB FNOPS
JMP CHANg
NOP
75330 027335
75331 015314
75335 065575
75336 075334
75337 036152
15340
75340 0160417
75341 071571
75342 026222
75343 016312
'5344 060506
75346 003000
75346 064255
75347 103100
7535~ 110001
75351 170001
75352 102100
1 5 353 027340
75354 "'16056
75355 016312
75356 026222
75357 000046
75360 020040
75361 000000
75362 000000
75363 073367
00034
00035
0639
1d640 00036
06 4 1 00037
V}642
~0042
06 43 000 4 6
0644.
1,1
UNABT
CHNFG
1,1
STF
LOA SYMT8
SIA,RSS
LOA PBPTR
LOB PKCNT
102100
15332 027343
75333 000000
75334 002001
75335
"MAIN
RSS
•
CHAN6 EQu
LOB SPRaG
srB PRGCT
lSZ SCHL.Q
CHAN8 E'QU
DON'T Al.l.OW
ABORTS
DURING COMPILE
UNCOMPILED?
YES, USE PBPTR
LINE NUMBER
SPECIFIED?
NO
FIND REFERENCED STATEHNET
BAD LINE NUMBER
DEFAULT LINE NUMBER
sAvE FIRST STATEMENT
..
LOA ,+408
BLANK
JMP seHBl
CHANg .JSB ABCHK
LOA CHNFG
STA
eM.
LOB MAIN
elF
0
AND B,1
srA B,I
STF 0
JMP CHANS
CHAN, .158 RDPRG
JSB ABCHK
JMP SCHBL
CHNDp OEF CHNOI
TWOSP ASC 1,
PKCNT BSS 1
INWRD BSS 1
LCDP DEF LCD
CHNP EQU LTEMP+4
CHNPO EQU lTEMP+5
CHNI EQU lTEMP+6
CHNC EQU LTEMP"'1
CHNLN EQU LTEMP+10
CHNDI EQU LTEMP+14
LTEMP+15
CLEAR CHAIN FL.AG
READ BACK USER PROGRAM
ABORT ATTEMPT?
NO
PROGRAM LENGTH
DISC
ADDRESS
0645.
k1646.
Lil647.
~648
LTEMP, LTEMP+l, LTEMP+2 AND LrEMP+3 ARE ALSO uSED
75364
SCHN
fQu •
PAGE 0385 #32
SAVE
0002. THE SAVE COMMAND IS USED TO SAVE PROGRAMS IN THE US!RLI8RARY.
0003. THE PROCEDURE IS AS FOLLOWS;
1) CHECK THAT PROGRAM IS LISTABLE (OR 10.A000)I HAS A NAME,
0004.
0005.
AND ISN'T NULL,
2) DECOMpILE.
3) CHECK FOR lOT OR ADT OVERFLOW.
4) CHECK FOR DUPLICATELY NAMED PROGRAM,
5) UPDATE DIRECTORY,
6) UPDATE IDT AND AOT.
7) MOV~ PROGRAM TO LIBRARY AREA,
0006.,.
0007.
00013.
00Pl9*
1iJ010*
0011*
0012*
0013. STEP 5 IS WR!TTEN AS AN OVERLAY, WHICH IS CALLED WHENEVER THE PARTICULAR DIRECTORY TRACK NEEDED IS ALREADY FULL. ITS J08 IS TO GAR0015. BAGE COLLECT THE DIRECTORY TRACKS,
0~14.
0'-"17
750411(11
ORG LIBRA
0019
0020
0021
0022
0023
0024
0025
75000 064272
75001 044346
75002 074050
LOB M-LINK+1
'50~3
STB MOVES
ADB .... ?PROG.?ID
STB SAVP
ADS .... ?DISC .. ?PROG
STB sAVD
DLD MOVES,I
.-ID,8_1 ST WORD OF NAME.
044356
75004 074042
(,1027
75005 044355
750fJ6 074043
75007 104200
75010 100050
75011 006002
0028
75012 054532
CPS
0029
ki0J0
75013 027531
75014 164 0 42
~031
75015
.JMP SAV3
LOB SAVP,I
LDA .-11
CPS PBUFF
0~26
TEST FOR NO PROGRAM NAME
SZ8
~60344
0032 '5016 054726
0033 75017 ~27532
0034.
0~35.
B->LINK WORD,
ID LOCN.
ADS • _+ ? I D.? lIN K
ASCB~
TEST FOR
NUL.l. PROGRAM,
.JMP SAV4
WELL, AT LEAST THE PROGRAM HAS A NAME, NOW MAKE SURE IT IS
0036* DECOMPILED
0037.
13038 75020 ~16~56
0039 75"21 064042
75022 044353
ft1040
75023 160001
0~41
0042 75024 010361
0043 75025 002003
0044 75026 027044
kt045 15027 027 121 43
0046 75030 000011110
0047 15043 015322
sAve
JSB RDPRG
READ PROGRAM TO CORE.
LOB SAVP
TEST fOR COMPILED.
ADB .+?FLAG",?PROG
LOA 1 , I
AND CFLAG
SZA,RSS
JMP SAV5
JMP SAV5-1
ASS 11
JSB DCMPL
NOT COMPILED.
ROOM fOR CSAVE CODE
DECOMPILE IT.
0048ft
0049.,. NEXT MAKE SURE 'COMMON'
0050.,.
0051
0052
75044 ~65~75 SAV5
75045 054726 .
75046 015516
1r1053
0054*
0055* PUT
TH~
IS ALLOCATED IF NECESSARy
LOB SPROG
CP8 PdUFF
JSB ALtOM
COMMON
At-LOCATED?
NO •• OO IT
PROGRAM IN USERS SWAP AREA 50 SOME wORK CAN GET DONE
PAGE 0386 #32
SAVE
0056.
LOB PBPTR
RESET PROGRAM BOUND
0057 750)47 064056
ST8 SAVP,I
0058 75050 174042
INTO TABLE
CMB,INB
COMPUTE 1#
0059 75051 007004
ADS USE
OF WORDS
75052 045213
td060
21061 75053 074204
STB MWORD
0062 75054 060043
LOA SAVO
GET DISC ADDRESS POINTER
LOB USE
WRITE OUT TO
0063 75055 0652t3
0064 75056 114206
JSB DISCZ,I
SWAP TRACK
JMP PTZAP,I
BLEW IT • DUMP THIS DUDE
0065 75057 1242t(1
0066 75060 027104 SAV50 JMP SAV51
BSS 19
ROOM FOR CSAVE CODE
0067 75061 0000A0
0068*
0069tt DETERMINE IF THIS USER HAS ENOUGH ALLOCATED SPACE AVAILABLE TO
0070. SAVE THE PROGRAM,
0071*
COMPUTE
0072 75104 164042 SAV51 Lo8 SAVP,I
0073 75105 007004
CM8,INB
PROGRAM
0074 75106 045575
Aoe SPROG
L.ENGTH
STB SAVWD
SAVE IN
0075 75107 074040
. 0076 75110 101030
ASR 8
NEGATIVE WORDS AND
CMB,INB
POSITIVE
0077 75111 007004
818 SAvLN
0078 75112 076460
BLOCKS
0079 75113 065575
LOB SPROG
SAye: START.OF.
0080 75114 074042
STB SAVP
PROGRAM POINTER
0081*
0082 75115 116022
JSB GeID,1
GET USER lOT ENTRY
0083 75116 044366
ADS
GET DISC USED TO DATE.
0084 75117 160001
LOA 1,1
0085
75120 042460
ADA SAyLN
GET TOTAL AMOUNT TO
008 6 75121 003004
CHA,INA
USED AS A NEGATIVE QUANTITY
01387 75122 044356
ADS ,-I
elf
0088 75123 000040
0089 15124 140001
ADA 1,1
COMPARE WITH ALLOTMENT.
0090 15125 002040
SEl
0091
JMP SAV6
OK.
75126 027145
0092 75127 067132
LOB *.3
0093 15130 060334
LDA ... 19
0094 15131 026623
JMP LIBfR
DEF *+1
00 9 5 75132 075133
0096
75133 005114
OCT 5114
LF.L
0097 75134 "'44502
ASC 9,IBRARY SPACE FULL
75135 051101
75136 051131
75137 020123
75140 0501"'1
75141 041505
75142 020106
15143 052514
75144 046040
0098.
0099. SEARCH AOT FOR SPACE TO PUT THE PROGRAM.
.+'
I
~100*
(.1101
0102
0103
75145
75145 060347
75146 070044
SAV6
EQU
*
LOA
."'8
STA SAVDF
SET tOUNT OF POSSIBLE DI!K ADTS
PAGE 0387 #32
0113
75147
75147
'5150
75151
75152
75153
75154
75155
75156
75157
0114
1516e1
0115
0116
0117
15161
15162
75163
75164
",104
0105
0106
0107
0108
0109
0110
0111
0112
0118
0119
0120
0121
0122
0123
ta124
0125
~126
0127
0128
0129
0130
0131
0132
0133
~134
0135
0136
0137
75165
75166
75167
75170
75171
75172
75173
75174
75175
75175
75176
75177
7520~
75201
75202
75203
75204
SAVE
062030
040362
053553
063552
07212130
040361
070043
160043
002003
027205
070204
062030
064700
114206
114207
007400
160043
1 00 400
000352
07 21 2141
064676
044361
160001
0,,310~
042460
002041
027237
044362
034041
027175
75205
75205 034044
75206 027147
0138*
0139
~140
0141
0142
0143
L1144
0145
75201
75207 060337
75210 VJ67212
15211 A26623
75212 075213
75213 005123
75214 054523
SAVSA fQU
LOA
ADA
CPA
•
RKCYP
GET CYCLIC POINTER
AND ADVANCE
,+3
EALNA
IT TO THE
NEXT ENTRY
LDA EALCA
STA RKCYP
IN THE TABLE
ADA ,+AOTlN.ADTAT .)1 LENGTH WORD
STA SAVD
LOA SAVO,1
IS THIS DISK AVAILABLE
SZA,RSS
ZEAO srz NO AOT TABLE
JMP SAVBF
SO WE ADVANCE TO NEXT DISK
STA MWORD
OTHERWISE, SAVE LENGTH
LOA RKCYP
.,. DISC ADDRESS
LOB LIeDI
.J8B DISCZ, I
REAO IT IN
JSB SICKP,1
SORRY, IT'S STUCK ON THE DISC
ete
COMPUTE THE
ENTRy
LDA sAvO,1
COUNT
OI\' .+3
STA SAVe
LOB LISO
ADB .+2
'SAVBD EQU •
LOA 8,1
CHA,eLE
ADA SAVLN
SEZ,RSS
JMP SAV7
ADB .+3
ISZ SAVe
JMP SAVBD
SAVBF EQU •
lSz SAvDF
JMp SAVSA
SAV23 E.Qu
a>
a>
AND SAVE
FIRST ENTRY
LENGTH WORD
TEST THIS ENTRY FOR SI& ENOUGH
SKIP If TOO SHORT
GOTCHA
ADVANCE TO NEXT ENTRY
DECREMENT ENTRY COUNT
PROCESS NEXT ENTRY
PROCESS NEXT TRACK
TRIED ALL DISKS FOR ROOM1
NO, TRY THE NEXT ONE
*
LOA • -16
LOB .+2
PRINT "SySTEM OVERLOAD"
.JMP LIBER
D~F
*+1
OCT 5123
LF.S
ASC 7,YSTEM OVERLOAD
75215 052105
75216 ~46440
75217 047526
7522~ V142522
75221 046117
75222 040504
0146.
0147 75223 060337
1t114a
0149
"'-
~15e
0151
~152
75224
75225
75226
75227
7523((1
067226
026623
0 7 5227
005104
05252~
SAV12 LDA
LOB
JMP
PRINT "DUPLICATE ENTRY"
DfF *+1
OCT 5104
LF.O
ASC 7,UPLICATE ENTRY
PAGE 0388 #32
75231
75232
75233
75234
75235
75236
SAVE
0461t1
041501
052105
020105
047124
051131
e15J.
0154
0155
0156
0157
0158
0159
0160
0161
0162
75237
75237 062460
75240 003004
75241
75242
75243
75244
140001
010044
044355
074041
75~45 10420111
75246 100001
75247 1,,4400
75250 e00036
0163*
1d164
0165
0166
0167
0168
0169
75251
75252
75253
15254
75255
15256
060640
070051
06 4 353
016450
027260
000000
EQU •
LOA SAVLN
CMA,INA
ADA B,I
SAve:
NEGATIVE NUMBER OF
SECTORS LEFT
STA SAVDF
ADS ,-2
STB SAVe
Dl.D 8,1
SAVE LOCATION OF
DISK ADT ENTRY
GET DISK ADDRESS
DST SAvDS
AND SAvE
LOA
ST.
LOB
JSB
SAv10 JMP
DLTEM
~OvED
.-4
MOYEW
SAY11
ass 2
MOVE IO/NAME ENTRY TO
LTEMp(013).
ROOM FOR CSAvE CODE
~170.
0171. SEARCH THE DIRECTORy TO INSURE THE PROGRAM NAME DOES NOT ALREADY
0172* EXIST
0173*
~174
SAV1! EQu *.
7526'"
JaB DLOKP,I
0175 75260 116017
SEARCH f-OR ENTRY
0176 75261 027223
JMP gAV12
ENTRY FOUNO •• ILLEGAL.
0177*
LOB SAVI,I
0178 75262 16 4 034
IF TRACK IS FULL, GO 00
CPS M8184
OVERLAY SECTION.
0179 75263 054314
JMP SAv98
0180 75264 027545
1d181.
0182* EVERyTHING IS FINE, BUILD A NEW DIRECTORy ENTRy AND INSERT
0183.
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193*
0194
1(.1195
0196
0197
75265 007000
75266 044676
7526i 074050
75270
75271
75272
75273
75274
75275
044373
074051
007000
044407
044035
016434
75276 060640
75277 ~70050
75300 060035
0198
0199
75301 040373
75302 070051
75303 064353
0200
75304
~1645~
CM8
AD8
STB
ADB
STB
eM8
LISD
SET UP SOURCf FOR
HOVE.
,+12
SET UP DESTINATION
MOVES
MOVED
COMPUTE LENGTH,
ADB .+24
AOB SAYS
JSB MOVES
LOA DLTEH
STA MOVES
LOA
AOA
STA
LOB
JSB
SAYS
,+12
MOVED
.... 4
MOVEW
MOVE 5 WORDS IN fOR
NEW ENTRY.
PAGE 0389 #32
0201
0202
0203
8204
0205
0206
SAVE
1 5305 060042
75306 110051
75307 016423
03.051
'531t 110051
1531~
034051
0209
0210
0211
75312
75313
15314
75315
75316
75317
~?~
"'
753291
~34051
75321
75322
15323
75324
15325
75326
, 532 7
75330
104200
0201
0208
........
0213
1tl214
0215
0216
0217
0218
0219.
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
023121
0231 .
0232tr
060171
170051
~J4051
002400
17 00 51
000036
104400
100051
064051
044362
~60040
170001
7 5 331 160034
75332 040343
75333 170034
75.334 070204
75335 060034
75336 002004
75337 070051
75340 040363
75341 064676
75342 074050
75343 114206
75344 114212
LOA SAVP
STA MOVED,I
JiB DATE
ISZ MOVED
MOVED,I
ISZ MOVED
LOA OAT 1M
STA
STA MOVED,I
ISZ MOVED
CLA
STA MOVED,!
lSI MOVED
OLD
SAVDS
OST MOVED,l
STORE START-OF.
PROGRAM POINTER
STORE DATE IN ALIO.
LAIT REFERENCE OAT!
GET HOUR 0,- YEAR
LAST CHANGE DATE
ZERO
WORD 7
GET DISK ADDRESS FOR
WORDS 8 ANO 9
LOB MOVED
ADB ,+3
LOA SAVWD
srA B,I
l.DA SAVl,l
ADA .-12
STA
STA
LDA
INA
STA
ADA
LOB
SAVI,1
MwORD
SAvI
.JSS
DEADP,I
.> WORD 11
GET THE L.ENGTH WORO·FOR
WORD 11
ADJUST
DIRECTORY
LENGTH,
WRITE DIRECTORY BACK OUT.
MOVED
.+4
LIBD
STB MOVES
JSB DISCZ,1
WRITE OUT
FORGET IT
75345 064353
75346 016450
LOB .-4
RESET OIREC.
JSB MOVEW
0234
02350236* NOW UPDATE THE USER'S AMOUNT OF DISC SPACE USED
0237.
0238 75347
SAv21 fQU
0239 7 5 3 4 7 116 022
JSB GelD, I
READ IN THE IDT
ADS .+7
k1240 75350 044366
0241 75351 062460
LOA SAVLN
ADJUST AMOUNT
ADA B,I
0242 75352 140001
OF DISK SPACE USED
0 2 43. 75353 170001
srA t,I
0244*
0245 75354 061?l075
LOA IDTAD
GET DISC ADDRESS POINTER
02 .. 6 75355 064676
LOB LIBO
TO WRITE lOT BACK
JSB DISCZ,I
0247 75356 114206
TO THE DISC
0248 75357 114212
JSS DEAOP,I
THIS SYSTEM HAS HAD IT
0233
•
0249.
0250".
0251*
02 5 2
0253
0254
NEXT, UPDATE THE ADT
7536 0 16 0 043
7 5 361 070204
75362 062030
LOA SAVD,1
srA MWORO
l.OA RKtYP
FETCH THE LENGTH 0' TH!
ADT TRACK
GET THE DISC ADDRESS POINTER
PAGE 0390 #32
0255
0256
0257
0258.
~259
0260
~261
SAVE
75363 064700
15364 114206
75)65 027407
LOB LIBOI
JSB DISCI,I
JMP SAVl0
1536b 064ftl44
75367 0060"2
75370 027415
LOB SAVOF
0262.
0263 15371 064041
0264 75372 074051
0265 75373 044362
0266 15374 074050
0267 75375 044774
0268 75376 044204
0269 75371 016450
027fct*
0271
0272
0273
0274
0275
0276
0277
75400 060362
75401 164043
75 .. 02 044000
154f.?13 174043
75404 040204
754~5 070204
75406 027431
SZB
JHP SAVCF
LOB
SrB
ADB
SrB
ADB
ADB
AND READ IN THE
AOT TRACK AGAIN
CAN'T • MAKE IT DISAPPEAR
ADT ENTRY COMPLETELY USED?
NO, SHORTEN IT
SAve
MOvED
YES, REMOVE IT
,+3
SET UP POINTERS FOR MOVE
MOVES
MLIBD
MWORD
.JS8 MOVEW
LOA .... 3
LOB SAVD,1
ADB A
Sfa SAVO,1
ADA MWORO
STA MWORD
JMP SAvCG
CALCULATE THE NEEDED
WORD COUNT
SHORTEN THE APPROPRIATE COUNTS
SHORTEN THE TABLE ENTRY
AND
THE DISC DRIVER COUNT
0278.
0279
0280
0281
75407 006400
7541(;1 ~02400
75411 170043
1a282
75412 104400
CLA
STA SAVO,1
DST RKCVP,I
0283
75413 174030
75 .. 14 027435
JMP SAV31
1d284.
0285 75415
0286 754 1 5 104200
75416 100041
0287 75417 000040
0288 7542~ 046460
0289 75421 002040
0290
0291
0292
0293
0294
02 95
0296*
0297
0298
0299
0300
0301
0302.
70422 002004
75423 10440'"
75424 100041
7 5425 06 404 1
15426 044361
75421 060044
75 430 170001
75431
75431
75432
75433
75434
062030
064616
114206
027407
SAVle! CL.B
SAyCF EQu •
OLD SAVe,1
eLf
ADB SAVI.N
SEZ
INA
DST SAve,1
LOB SAve
ADS ,+2
LOA SAvDF
STA B,I
SAVCG EQu
LOA
LOB
JS8
•
RKCYP
LIeu
DISCZ,l
.}MP SAv30
ZERO OUT ADT'S LENGTH
AND DISC ADDRESS WORDS
MOVE UP THE OISK ADDRESS
By SAVlN BLOCKS
CHECK FOR OVERFLOW
AND UPDATE THE COUNT
.> L.ENGTH WORD
GET SAyED LENGTH
AND PLUG IN
GET OISC ADDRESS POINTER
AND WRITE THE OISK ADT
BACK TO THE DI8C
CAN.T • MAKE IT DISAPPEAR
0303* RETRIEvE THE USER'S PROGRAM FROM THE SWAP AREA & wRITE IT OUT TO
0304* THE SELECTED AREA ON DISC.
0305.
0306
75435 016056
SAV31 JSB RDPRG
0307
75436 060040
LOA SAYWD
READ USER PROGRAM AGAIN
WRITE IT OUT.
PAGE 0J91 -32
SAVE
0309
75437 070204
75440 021 4 63
0310
75441 000000
030tt
0311~
0312
0313
0314
0315
0316
0317
0318.
75463
75463 063555
75464 06412142
75465 114206
75466 002003
75467 026613
0319. IF
TH~
STA MWORO
SAV24 JMP SAV25
TO LIBRARY
ROOM FOR CSAVE COD!
BSS 18
SAV2S EQU *
LOA SAVOP
LOB SAVP
JSB DISCZ,1
SZA,RSS
JMP LLEND
WRITE TO DISC
TRANSFER SUCCESSFUL1
TRANSFER TO DISC WAS UNSUCCESSFUL, INDICATE 'BADLy SAVED
PRINT ERROR MESSAGE,"
0320. PROGRAM' IN THE OIRECTORY ENTRY AND
0321*
0322
75470 116017
0323
0324
75471 002001
75472 10 2 0 35
0325
75473 064035
75474 044363
75415 160001
75476 031027
0326
0327
0328
0329
0330
. VJ331
0332
0333
0334
0335
0336
0337
033S
0339
taJ4te
JSB DLOKP,I
RSS
H~T DEATH.l58
LOB LrEMP+5
ADa ,+4
LOA B,I
lOR 81T15
STA B,I
LOA LTEMP+4
ADA .+5
L.DB LIeD
75.77 170001
75500 060034
75501 040364
75502 064676
75503 114206
'5504 114211
75505 063557
75506 067510
75501 026623
75510 075511
75511 005125
75512 047123
75513 052503
NO, GO GET DIRECTORY ENTRV AGAIN
FOUND IT
NOT FOUND. TROUBLE
GET POINTER TO [NTRy
_> ENO OF COMMON POINTER
SET BIT 15 TO
INDICATE BADLY SAvED
PROGRAM
WRITE OUT
DIRECTORY TRACK
,JS8 DISCZ, I
JSB SLVAG,I
LOA SM31
CAN'T DO IT, TRY TO SALVAGE
LDB •• 2
JMP
DEF
OCT
ASC
LIBER
PRINT FAILURE
.+1
e125
LF-U
t5,NsuCCEssFuLI KILL AND REPEAT.
LOA
LOB
JMP
OfF
oCT
ASC
.-16
.... 2
lIBER
."1
5116
LF_N
7,0 PROGRAM NAME
75514 041505
75515 051523
75516
75517
75520
75521
75522
7552J
75524
75525
15526
15521
1553~
0341
0342
0343
0344
0345
0346
043125
046013
020113
044514
046040
040516
042040
051105
050105
040524
021040
75531 060337
SAV3
75532 067534
SAV~
75533 026623
75534 0 7 5535
75535 005116
75536 047440
75537 050122
7554~ 047507
75541 051101
PAGE 0392 #32
0341
0348
0349
0350
0351
0352
0353
0354
0355
035&
0357
0358
0359.
0369
0361
75542
15543
15544
75545
15545
SAVE
046440
041101
046505
SAVge EQU
75546 07 0 2 0 4
75547
75550
75551
75552
75553
75554
75555
75556
15557
063554
064610
027773
000116
000146
072057
000036
177012'5
177741
0370
0371
0372.
0373.
0374*
0375
0376.
0377*
0378
0379
0380
1r1381
0382
0383
0384
0385
8 M31
SAVOY
SAV99
ADTAT
DKTBL
COM6+SAVO-COM3.SAVO-COM3
SAVOS
-> DISK AODR!88
.507
DEC -31
00036
SAVDS E.QU LTEMP+ti
LTEMP+7
SAVWD EQU LTEMP"'8
SAVe EQU LTEMP+g
SAVp EQU LTEMP+t0
SAVD EQU LTEMP,.,11
SAVDF EQU LTEMP+12
00042
00043
00CfJ44
SET UP
OVERLAY.
#1.181
SAYI EQU LTEMP+4
SAyS EQU LTEMP .. 5
0364*
0 3 65 0004 0
0366 00041
0367.
0368*
0369
LOA
LOB
JMP
EALCA OEF
EAI.NA DEF
SAVOY DEF
SAyDp DEF
SM501 DEC
00034
00035
0362.
0363
..
LOA SM507
STA MWORD
063556
•• DIREC ENTRY OF TRACK IN CORE
-> DIRECTORY ENTRY P~ECE£DING
SPACE FOR NEW ENTRY
DISC
ADDRESS
LENGTH IN WORDS OF PROGRAM
NUMBER OF ENTRIES IN AoT (NEG)
& pOINTER TO DIsC ADDRESS OF 1ST
AVAILABLE LOCATION FOR STORAGE
START-oF.PROGRAM PoINTER
DISC ADDRESS POINTER
LTEMP, LTEMP+l, LTEMP+2, AND LTEMP.3 ARE ALSO USED HERE
SAVLN EQU T35CQ
74460
75773
75773
75773
75774
75775
75776
75777
76000
LENGTH IN Bl.OCKS OF PROGRAM
ORG l.. IBRA+!507
114206
SAV99 EQU *
JSB DIsCZ,1
HLT 178
102077
027000
027347
027207
SSAV
JMP LIBRA
JMP SAV21
JMP 8A\l23
EQU •
NORMAl. RETURN
ERROR RETURN
PAGE 0393 #32
CSAVE
LIBRARY
IN
SEMI.COMPILED
FORM.
CSAVE
BORROWS
CODE
FROM
SAVE
AND
MUST
L4388.
0389* fOLLOW IT.
0387. THE CSAVE COMMAND IS USED TO SAVE PROGRAMS IN THE USER
0390.
0391
0392
0393.
0394
0395
0396
0397
103398
75000
ORG LIBRA
1500'" 064272
LOB MLINK+l
75025
75025
7512126
7512127
75030
75031
75032
75033
75034
7512135
75036
ORG
SlA
JMP
LOB
CPS
JaB
LOB
STB
002002
021042
065575
1354126
015516
065515
0399
0400
0401
075334
0402
060417
0403
071571
0404
002400
0405 , 75037 071513
0406 75040 12 7 041
0401 75041 036070
0408 75042 061230
0409 75043 002002
0410 75044 015520
75045 002400
0411
121412 75046 071230
0413 75047 065502
0414*
0415 75060
0416 75060 12165502
121417 75061 044366
0418 75062 01217004
0419 75063 044116
0420 75064 006021
0421 75065 12127103
0422 75066 060335
0423 75067 061071
121424 75070 026623
0425 752171 075072
0426
0427
75072
75073
75074
75075
75076
005120
051117
SAV0
COMPILED'l
CSAYl
SPRaG
PBUFF
ALCOM
SPROG
PRGCT
LOA .+40B
STA BLANK
CLA
STA SyMTB
JMP *+1,1
oEF CMP00
CSAVl LOA SPTR
SZA
JSS RSTPT
CSAY2 CLA
STA SPTR
LOB FILlS
vES
NO, COMMON
ALLOCATED?
NO •• OO IT
SET PROGRAM
COUNTER
TURN ON
BLANK SUPPRESSION
CLEAR O.uT.OF
STORAGE FL.AG
GO COMPIL.E IT
SEMI.COMPILED?
RESTORE SYMBOL TABLE POINTERS
fL.AG AS
SEMI-COMPIL.ED
QRG SAV50
LOB F'ILTS
ADS .+7
CMB,INS
ADB LWAUS
SSB,RSS
TOO 61G?
NO
JMP CSAV4
VES
LOA ,-18
LOB .... 2
JMP lIBER
DEF *+1
OCT 5120
LF.P
Ase 8,ROGRAM TOO LARGE
0~3522
040515
020124
75077 047517
75100 020114
75101 040522
75102 043505
0428
751133
0429
75103 065502
75104 044366
0430
0431.
0432 75255
0433 75255 060033
k1434
75256 031027
0435
75257
~7003J
CSAV4 EQU •
LOB FILTB
ADa ,+1
ORG
LOA
lOR
STA.
SAV10
LTEMP+3
BIT15
LTEMP+3
FLAG NAME
TO INDICATE
SEMI-COMPILED
PAGE 0394 #32
0436*
8437
0438
0439
0440
0441
0442
0443
0444
0445
0446
0441
044 8
0449
0450
0451
0452
121453
0454
0455
0456
0451*
0458.
0459.
75440
75440
75441
75442
75443
15444
15445
75446
75447
CSAVE
ORG SAV24
06U502
065513
LOA FILlS
L08 SYMTB
174000
002004
Sr8 0,1
INA
12165604
114000
064444
075603
75450 064353
75451 075230
75452 002004
75453 1656AJ
75454 174000
75455 035603
75456 035230
15457 021452
75460 002004
75461 065605
15462 174000
CSAV3
LOB FILeT
STB 0,1
LOB OFII.T
5rB FILPT
LOB .l1li4
5r8 SpTR
INA
LOB FILPT,I
srB
0,1
ISZ FIi.PT
ISZ SPTR
JMP CSAYJ
INA
LOB USESN
srB e,I
FIRST WORD AFTER SYMBOL TABLE
SAVE END-OF
PROGRAM POINTER
.~
SAVE ## OF
1ST DIREC ENTRY
001500160017.
0018
0019
75001 040364
75002 164000
~020
75003
750QJ4
75005
75006
75007
75010
75011
7 5 012
75013
75014
0021
0022
0023
0024
0025
0026
00 2 1
0028
0029
0030
0031
01d32
0033
0034
0035
0036
1tJ037
0038
0039
0(d40
0041
01342*
0043fr
0044*
0045*
0046.
0047
0048
0049
0050
005 1
0052
0053
0054
0055
002104
CLE,INA
144000
002040
006004
ADB A,I
SEZ
INS
ADA .-6
SlB,RSS
JMP SUP2
040351
006003
027024
16 40 00
THE
DIRECTORY
TRACK
LOS. 0, I
077730
A67727
002041
044356
077727
037732
SUP2
053723
027030
040373
027002
.>
CLE,SlB,RSS
JMP SUP2-1
ADB SUPS
STB SUPS
LOB SUPS-l
SEZ,RSS
ADS .-1
STB SUPS-l
ISZ SUPS
006103
027023
7 5 015 (iJ47730
75016
75017
75020
75021
75022
75023
75024
75024
75025
75026
75027
DIRECTORY DISC ADDRESS
DOES
ADA • +5
SUP! "LOB A,l
EXIST?
NO
GET DIRECTORY LENGTH.
LENGTH ZERO?
yES
ADD TO
TOTAL.
INCREMENTING DOUBLE WORD QUANTIT
BUMP DIRECTORY TRACK COUNTER.
EQU.
CPA
JHP
ADA
JMP
SDIRL
.+3
LAST DIRECTORy TRACK1
YES
NO _ GO TO NEXT ONE,
.+12
SUP1
AT THIS POINT THE DOUBLEwORD Su P.1
CONTAINS 12 LESS THAN THE
SUP
TOTAL NUMBER OF WORDS IN ALL DIRECTORY TRACKS.
75030
75031
75032
75033
75034
7S03t)
0637321
067727
100 400
000373
007400
100400
75036 075732
LOA SUPS
LOB SUPS.t
DIV .+12
eee
GET TOTAL # OF DIRECTORy WORDS,
GET ENTRY COUNT IN A
DIV SUPB
COUNT < 65535
COMPUTE , IN EACH DIRECTORY.
75037 053715
7504~ 0060"3
CPA M682
SZB,RSS
TEST FOR FULL UP.
75041 053716
75"'42 ~27705
CPA M68:;
JMP SUP3
ALL TRACKS ARE FULL
pAGE 0396 #33
0056
0057
121058
0059
0060
7512143
75044
75(,345
75046
75047
75050
SUpERSAVE
040356
044356
AOA ... 1
ADB .-1
077732
STB SUPS
MPY ,+12
11210200
INCREASE * OF ENTRIES/TRACK 8Y 1
LET e COUNT HOW MANY WILL HAVE
THIS LARGER SIZE.
CONVERT TO -WORD SIZE
00k"373
AND SAVE
ST. SUPS
073730
0061*
0062* COMPUTE AN EVEN DISTRIBUTION Of ENTRIES OVER ALL AVAILABLE TRACKS
0063.
0064 75051 067722
0065 75052 044364
0066 75053 16121001
9067 75054 0121601214
0068 7512155 130001
0069 75056 002003
0070 75057 027065
0071
0072
0073
121074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084*
0085*
0086.
0087*
121088
0089
0090*
0091*
0092*
121093*
999.
0095
0096
7512160
75061
75062
75063
75064
063739
12137732
027065
12140373
073730
75065
75065 173733
75066 044351
75067 2157723
75070 027014
75071 044373
75072 031733
LOB SDIR0
ADe .+5
SUP4 LOA 1,1
IN8
lOR B,I
SZA,RSS
JMP SUP5
LOA SUPS
IsZ SUpS
JMP SUP 50
ADA ,+12
STA SUPS
SUP50 EQu •
SUPS STA 5UPP,I
AD8 ,.6
CPS SDIRL
JMP SUP6
ADB .~t2
ISZ suPP
JMP SUP4
75",73 021053
75074 063112
75075 073733
SUP6
LOA DEFNN
STA SUPP
063723
073735
040364
12112199
121100
75103 144000
0101
75104 002040
75105 006004
0103
12111214
121105
0106
15106 006002
15107 027112
SZB
.JMP SUP21
0197
75112
0108
0109
75112 040351
75113 073737
75114 002400
011212
0110
YES • DECREMENT BY 1 ENTRY
AND SAVE
STORE IN TABLE,
TE8T FOR DONE.
FINISHED
BUMP TO NEXT TRACK
BUMP TABLE POINTER ALIO,
SET UP POINTER
TO NN AGAIN,
SQUEEZE ALL THE DIRECTORY ENTRIES ONTO THE LAST MOST OF THE
AVAILABLE TRACKS.
16 40 00
75102 002104
f(J098
IF TRACK DOfS NOT EXIST
DO NOT INCLUDE IT
GET TRACK LENGTH
HAVE ALL BIG TRACKS BEEN PROCESS
THE TABLE POINTED TO BY DEfNN NOW CONTAINS THE NEW LENGTHS OF EACH
Of THE DIRECTORY TRACKS
LOA SOIRl
STA SUPKI
ADA ,.5
SUP20 EQU •
LOB A,I
CLE,INA
ADS A,l
SEZ
INB
0097
GET POINTER TO FIRST TRACK AGAIN
GET THE DISC ADDRESS
75076
75077
75100
75101
75101
75110 040347
75111 027101
ADA
JMP
SUP2i EQU
ADA
STA
CLA
.> 1ST TRACK
FOR READ
GET ADDRESS
ZERO?
NO, THE TRACK EXISTS
... a
SUP20
*
,.6
SUPLl
.> 1ST TRACK
#
FOR WRITE
OF WORDS IN BUFFER
PAGE 0397 #33
0111
0112 ..
0113
0114
0115
0116
0117
0118
0119
0120
0121
~122
0123
0124
0125
75115 073736
75116
75117
75117
75120
75121
7 5 122
75123
75124
75120
75126
75127
15130
75131
75132
75133
75134
75135
75136
0126
01 27
012$
0129
13130
0131.
0132 7 5 137
0133 75140
0134 75141
0135 7 5 142
0136 75143
0137 75144
0138 7 5 145
0139 75146
0140 75147
0141 75150
0142 75151
0143 75152
0144 75153
014 5 7515 4
0146
0147.
0148
01 49
0150
0151
0152
0153
0154
0155
0156
01 5 7
0158
0159
0160
0161
0162
0163
0164
0165
SUPERSAVE
063735
164000
006003
027262
0 4 7736
047720
006020
027156
164000
074204
047736
077736
044712
0452127
040364
114206
114212
STA SUPK2
LOA SUPKl
SUP22 EQU •
LOB A,1
SlB,RSS
JMP SUP27
ADB SUPK2
ADB S818 4
SSB
JMP SUP23
LOB A,I
STB MWORD
ADB SUPK2
5T8 SUPK2
ADS
ADB
ADA
JSB
JSB
LULEN
BIT15
.+5
DISCZ,1
DEADP,I
06 3 736
050314
CPA M8184
002001
RSS
02126 2
070294
067737
170001
044364
JMP
SlA
LOB
STA
ADB
LOA
060001
067721
114206
114212
006400
077736
75155 027245
75156
75156 007"04
75157 005121
7516~ ,,"5121
75161 005121
75162 005121
75163 077742
75164 005727
75165 077741
75166 144000
75167 074204
75170 047736
75171 044712
75172 074A50
75173 040364
75174 104200
75175 100000
75176 000040
75177 047742
INITIALIZED TO ZERO
LOA SUPK2
SUP27
MWORO
SUPlt
B,I
.+5
B
GET LENGTH FOR READ
ZERO?
YES
NO, ADO IN j OF WORDS IN BUF'ER
ARE THE NUMBER OF WORDS IN TH!
BUFFER ,. 81841
YES
NO, SET
LENGTH
UPDATE 1# OF
WORDS IN CORE
CORE ADDRESS
II> DISC ADDRESS
EXACTLY 8184
YES
NO
WOADS'
SET LENGTH
IN DIREC
-> DISC ADDRESS
ADDRESS
LOB X2056
CORE
JSB DISCZ,1
JSB DEADP,1
CLB
BUFFER NOW EMPTV
ST8 SUPK2
JMP SUP24
SUP23 EQU ."
CMa,INS
BRS,BRS
BRS,BRS
BRS,BRS
BRS,BRS
5T8 SUPES
BLF,BLF
STa SJPEX
ADS A,1
5T8 MWORD
ADS SUPK2
ADB LULEN
STB MOVES
ADA • +5
DLD A,l
elf
ADB SUPES
CONVERT TO POSITIVE VALUE
COMPUTE
NUMBER
OF
EXTRA
BLOCKS
COMPUTE II OF
EXTRA WORDS
##
OF WORDS
TO READ
COMPUTE
ADDRESS
Of' REMAINING
PAGE 0398 #33
0166
0167
01tHS
0169
0110
0171
0172
0173
SUPERSAVE
75205
75206
75207
75210
INA
DST SUPET
LOA
LOB
ADS
J8B
JSB
SUPEA
MOVES
81T15
DISCZ,I
OEADP,I
060001
LOA
STA
LOB
STA
ADB
LOA
M8184
MWORD
SUPL1
B,I
.+5
B
067721
LOB X2056
064050
045027
114206
114212
0174*
0175
0176
B177
01 78
0179
0180
0181
0182
0183
0184*
0185
0186
0187
0188
0189
0199
0191
0192
0193*
0194
0195
0196
0197
0198
0199
0200
0201
0202
75211 060314
75212 010204
75213 067737
75214
1700~1
75215
75216
75217
75220
75221
044364
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
LOB X2056
CMB,INB
ADS MOVES
STB SUPK2
LOA LULEN
ADA B
STA MOVED
JSB MOVEW
75225 077736
75226 060712
75227 040001
75230 070051
75231 016450
LOB SUPEX
CMB,INB
STB M~ORD
ADS SUPK2
ST8 SUPK2
ADS LULEN
ADS BIT15
L.DA SUPKt
AOA .+5
JSB DISCZ,1
.J5B DEAOP, I
067741
007004
074204
047736
2177736
044712
045027
063735
040364
0203 75243 114206
0204 75244 114212
0205.
0206 75245
0207
JSB DISCZ,1
JSB DEADP,I
114206
114212
75222 067721
75223 007004
75224 044050
75232
75233
75234
75235
75236
75237
75240
75241
75242
752 4 7
75250
75251
75252
75253
LOA .--2
SUP25
16 40 00
002104
144000
002040
006004
75254 006002
75255 027260
75256 040347
75257 027247
75260
75260 040351
.:.. DISC ADDHESS
CORE ADDRESS
##
OF WORDS
TO WRITE
SAVE IN DIREC
.>COREDISCADDREss
ADDRESS
* EXTRA
OF
WORDS
TO MOVE
DESTINATION POINTER
MOVE THEM
#.
OF WORDS
#
OF WORDS IN BUFFER
TO READ FROM
PARTIAL TRACK
CORE ADDRESS
:I> DISC ADDRESS
SUP24 EQU •
75245 060355
75246 043137
75247
WORDS
TO
READ
SEZ
75200 002040
75201 002004
75202 104400
15203 075744
15204 063743
ADA SUPll
EQU *
LOB A,I
CLE,INA
ADS A,I
SEl
BUMP TO NEXT
TRACK TO WRITE
GET ADDRESS
INB
SZB
ZER01
JMP SUP26
NO
ADA .-8
YES, MOVE TO NEXT ONE
JMP SUP25
SUP26 FQU •
AOA .-.6
BUMP TO LENGTH WORD
PAGE 0399 #33
0221
SUPERSAVE
75261 073737
9222*
0223
1224
0225
0226
0227
0228
0229
0230
0231*
0232
0233
0234
0235
0236
0237
0238
0239
0240
02.1
0242
0243
0244.
0245
0246
0247
0248
0249
0250
0251
0252
0253
0254
0255
0256
0251
0258
0259
026B
0261
0262
0263
0264
0265.
0266*
02 61*
0268.
026 9*
0270*
0271*
0272.
°273*
0274.
0275*
0276*
75262
75262
75263
75264
75265
75266
75267
75270
75270
75271
75272
75273
75274
75275
75276
75277
7 5 300
75301
063735
053722
021270
ADA ... ,
rlI73735
027117
STA SUPKt
JMP SUP22
063736
002003
027311
070204
067737
170001
044364
060001
063737
SAVE POINTER
•• CURRENT READ TRACK
LAST ONE
YES
NO, BUMP TO NEXT ONE
SUP28 EQU •
LOA SUPK2
SZA,RSS
JMP SUPJ0
srA MWORD
LOB SUPLI
STA B,I
AD8 ,.5
LOA B
L08 MWORD
AoB lULEN
# OF WORDS IN SUFFER
ZERO?
yES
NO, MUST WRITE OUT 8UFFER
SET LENGTH
IN DIREC
a> OISK ADDRESS
CORE ADDRESS
.IS8 0 lSCZ, I
JSB DEADP,I
LOA SUPLl
SUP29 EQU •
'153722
027326
040350
002001
75311 063737
75312
75313
75314
75315
75316
75317
75320
75321
75322
75323
75324
75325
SUP21 EQU *
LOA SUPKl
CPA SOIR0
JMP SUP28
040350
06 4 204
04 .. 712
75302 114206
75303 114212
75304
75305
75305
75306
75307
75310
75311
STA SUPLt
040364
164000
002104
144000
002040
096004
04 03 51
006003
021305
006400
174000
027305
CPA SDIR0
JMP SuP31
ADA .",7
RSS
SUP30 EQU •
LOA SUPLl
AOA ,+5
LOB A,I
CL!,INA
Aoa A,I
BEl
INS
ADA ,-6
SZB,RSS
JMP SU P29
CLB
STS A,I
JMP SUP29
LAST WRITE TRACK?
yES, DONE
NO, BUMP TO NEXT ONE
GET ADDRESS
ZERO?
yES
NO, SET
LENGTH 80
THE MAIN PART OF THE ALGORITHM CONSISTS OF TWO SECTIONS. IN THE
FIRST SECTION WE READ AS POSSIBLE INTO THE SWAP AREA. IN THE 2ND
SECTION WE WRITE OUT AS MUCH AS POSSIBLE, THE ENTIRE PROCEDURE IS
THEN REPEATED UNTIL WE ARE FINISHED. THE FOLLOWING MEANINGS ARE
ASSOCIATED WITH THESE VARIABLES'
SuPKla>OIREC ENTRy FOR TRACK BEING READ,
SUPL1a>OIREC ENTRY FOR TRACK BEING WRITTEN.
SUPK2-# OF WORDS READ SO FAR FROM Kl.
SUPL2a# OF WORDS wRITTEN SO FAR ON Lt.
SUP
-# OF WORDS IN CORE.
PAGE 0400 #33
0277.
0278.
0279
0280
0281
0282
0283
0284
0285
0286.
0287
0288
0289
0290
0291*
0292
0293
0294
0295
0296
SUPEHSAVE
supp a>
w#
OF WORDS TO BE WRITTEN ON Lt.
SUP31 EQU ..
75326
75326
75327
75330
75331
75332
75333
002400
073136
073740
063722
073735
073737
75334
75335
75336
75337
06374 0
003004
153733
027542
SUP1
75340
75341
75342
75343
75344
A63731
043726
SUP8
75345
75346
75347
75350
75351
067735
057724
027553
163735
043736
CLA
STA SUPK2
STA SUPL.2
LOA SDIR0
STA SUPKt
5TA SUPLl
2102021
027553
070204
0297.
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
03218
INITIALIZE
LENGTH
wORDS
INITIALIZE
DIREC
POINTERS
LDA SUPl2
CMA,INA
CPA SUPP,1
JMP SUP10
IS # OF WORDS WRITTEN SO FAR ON
L18# OF WORDs TO 8E HRITTEN7
LDA SUP
ADA STLE
SSA,RSS
JHP SUP11
SlA MWORO
IS THE SWAP AREA PULL
LOB SUPKt
CPS SDIRU
JMP SUPt1
LOA SUPK 1, I.
ADA SUPK2
75352 0i02002
SZA
75353
75354
75355
75356
75357
027360
044366
077735
073736
027340
JHP
ADB
STB
SrA
JMP
75360
75361
75362
15363
75364
75365
75366
75361
75370
75371
010001
007004
044204
006020
0273]0
060204
1340500
010316
002003
027553
SUP9
,+7
SUPKl
SUPK2
SUP8
YES.wGO ADVANCE Ltg
yES •• GO TO WRITE SECTION,
NO
SAVE •• OF CORE WORDS
AVAILABLE
tIP
.' ..
HAVE WE READ ALL OF THE TRACKS?
YES.~GO TO wRITE SECTION,
A.a., OF WORDS ON THIS TRACK,
A-.# NOT READ YET,
ENTIRE TRACK READt
NO,
YES"-BUMP Kl TO NEXT TRACK,
# OF WORDS READ TO 0,
TEST THIS TRACK,
SET
0309.
0310
0311
0312
0313
031 4
0315
0316
0317
0318
0319
0320.
0321
75372 070204
75373
063736
0322
21323 75374 006400
0324 75375 101030
0325 75376 073744
0326 7 5 377 0 6 7735
0327 75400 044364
0328 75401 10420~
75402 100001
0329 75403 000040
0330 75404 047744
754~5 002040
0331
SUP9
SrA 1
CMB,INB
ADe MWORD
SSB
S-•• OF WORDS NOT VET READ ON Kl
MAKE POSITIVE.
IS
OF WORDS ON TRACK • • OF
WORDS WE HAVE ROOM FOR?
*
SZA,RSS
JMP SUP1!
NO.~READ IN ENTIRE TAACK.
GET .* WE HAVE ROOM FOR.
REDUCE TO NEXT SMALLER
BLOCK SIZE,
IF WE CAN'T READ IN ANy, GO TO
WRITE SECTION,
STA MWORD
LOA SUPK2
CLB
SET WORD •• * OF WORDS. TO READ.
GET
OF WORDS READ SO FAR.
DIVIDE By 64 TO GET
JMP .+4
LOA MWORD
ADA 8377
AND M256
ASR 8
STA
LOB
ADS
OL.D
*
BLOCK ADDRESS.
SUPET
SUPKl
.+5
H,l
elE
ADB supEr
SEZ
GET DIRECTORY
TRACK ADORESS
PAGE 0401 #33
0332
0333
0334
0335
·0336
0337
0338
75406
75407
75410
75411
75412
75413
75414
75415
SUPERSAVE
002004
t 044·00
075744
063743
064700
047731
114206
114212
0339.
0340 75416 064204
INA
DST SUPET
LOA supEA
LOB LIBDI
ADB SUP
JSB DISCZ,I
JSB DEADP,I
LOB MWORO
CMB,INB
0341
75417 007004
r.a"A~
u.."
...
75420 047731
A08 SUP
0343
75421
75422
75423
75424
75425
077731
064204
007004
STB SUP
LOB MWORD
eMB,INB
75426
75427
75430
75431
75432
75433
75434
75435
75436
75437
75440
75441
75442
75443
75444
75445
75446
0344
0345
0346
0347
~47736
ADS SUPK2
077736
STB SUPK2
063734
002092
021340
063740
006400
100400
000373
060001
087004
077741
043731
006400
100400
000373
100200
000373
LOA SUPTG
0348*
0349
03S0
0351
0352
0353
0354
0355
0356
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367
0368
0369
0370
0371
0372
0373
0374
0375
0376
0377
0378
0379
040676
754147 043741
75450 006003
75451
75452
7545 3
75454
75455
75456
75456
75457
75460
75461
040343
073741
06464°
117125
027340
067741
077742
044343
077741
75462 044174
75463 006020
75464 027 4 71
75465 067741
75466 060640
0380 75467 117725
0381
75470 027456
0382.
0383 75471
SZA
JMP SUP8
LOA SUPL2
CL8
DIV ,+12
a> DISC ADDRESS
COMPUTE CORE LOCATION
TO READ INTO.
UPDATE # OF WORDS
IN CORE.
*
UPDATE
OF WORDS
READ FROM Ki.
HAVE WE INSERTED THE NEW ENTRY
YET?
YES.~GO TRY TO READ MORE,
GET THE AMOUNT ALREADY WRITT!N
ON THIS TRACK
FIND EXCESS· OVER EVEN ENTRy
LOA B
CMB,INB
STB SUPEX
AOA SUP
CLB
DIV .+12
GET THE COUNT
OF WORDS IN CORE
CONVERT TO ENTRY COUNT
t-1Py ,+12
AND BACK TO WORD COUNT
ADA LISD
AOA SUPEX
SO THAT WE LOOK AT
SZB,RSS
ADA ..... 12
STA SUPEx
LOB OL.TEM
JSB DIReS,I
JHP
SUPJ2 EQU
LOB
STB
ADa
ST8
ADS
sse
JMP
LOB
LOA
JS8
JMP
SUP8
*
SUPEX
SUPES
.-12
SUPEX
MLIBD
SUP3J
SUPEX
DLTEM
DIReS,I
SUP32
SUP33 EQU •
AN EVEN BOUNDARY
a> ID/NAME OF NEW ENTRY
GO COMPARE
DOESN'T GO ON THIS TRACK
GOES ON TH!S
TRACK, SO
SEARCH BACKWARDS
TO FIND
NO SKIP IF SEARCH DONE
OUT WHERE
COMPARE THIS ENTRY
NOT THIS ONE
PAGE 0402 #33
0384
0385
0386
0387
0388
75471
75472
75473
75474
75475
75476
75477
75500
75501
75502
75503
SUPERSAVE
037734
060676
043731
064000
040312
070051
040343
070050
007004
047742
S389
0390
0391
0392
0393
0394
~16434
0395*
0396 75504 063742
0397 75505 070051
0398 75506 060640
0399 75507 070050
0400 75510 064353
0401
75511 016450
0402 75512 060042
0403 75513 170051
0404 75514 034051
0405 75515 016423
0406 75516 170051
0407 75517 034051
0408 75520 060171
0409 7 5 521 170051
0410 75522 034051
75523 002400
0411
0412 75524 170051
0413 75525 034051
0414 75526 104200
75527 0110036
0415 75530 104400
75531 100051
0416 75532 064051
0417 75533 044362
0418 75534 060040
0419 75535 170001
0420 75536 063731
0421 75537 040373
0422 75540 073731
0423 75541 027340
0424.
0425.
0426.
0427 75542 063737
0428 75543 053723
0429 75544 027672
0430 75545 040366
0431 75546 073737
0432 75547 002400
0433 75550 073740
0434 75551 037733
0435 75552 027334
ISl
LOA
ADA
LOB
StJPTG
LIBD
SUP
A
SET TOGGLE TO SAY WE'VE INSERTED
COMPUTE DESTINATION
OF WORDS TO BE
MOVED
ADA ,+11
STA MOVED
ADA ,.12
STA MOVES
eMB,INB
ADS SUPES
JS8 MOVES
LOA
STA
LOA
STA
SUPfS
MOVED
DLTEM
MOVES
JSB
LOA
STA
ISZ
JSB
MOVE'"
SAVP
MOVEO,l
MOVED
toe , .. 4
STA
ISZ
LOA
STA
ISZ
DATE
MOVED,l
MOVED
DATlH
MOVED,I
MOvED
CLA
STA MOVED,I
lSI MO·VED
OLD SAVDS
DST MOVED,!
LOS
ADe
LDA
srA
LOA
MOVED
,+3
SAVWD
B,I
SUP
AOA ,+12
STA SUP
JHP SuP8
SUP10 LOA SUPLl
CPA SDIRL
JMP SuP16
AOA ..... 7
STA SUPLl
CLA
STA SUPL2
lSZ supp
JMP SUP7
COMPUTE SOURCE'
CALL REVERSE MOVER,
SET SOURCE
AT
LTEMP.
MOVE IN FIRST 4
WORDS,
STORE START.OF ...
PROGRAM POINTER
INSERT DATE IN WORD 5
AND
GET HOUR OF yEAR FOR
WORD 6
GET THE DISK ADDRES8AND 8ET IT
INTO wORDS 8 AND 9
.> WORD 11
GET L.ENGTH
AND STORE AWAY
UPDATE THE COUNT OF WORDS
IN CORE BY TWELVE
TEST fOR LAST TRACK.
ALL DONE.~GO CLEAN UP DIREC,
BUMP TO NEXT TRACK.
SET # OF WORDS WRITTEN SO FAR
TO 0,
BUMP POINTER TO WORDS TO BE
WRITTEN.
PAGE 0403 #33
SUPERSAVE
0437* THE NEXT SECTION IS THE OUTPUT SECTION, WE ONLY COME TO THIS SEC-
0438* lION WHEN wE HAVE DETERMINED THAT NO MORE CAN 8E READ, IN THIS
0439* PART WE WRITE OUT AS MUCH A8 POSSIBLE UNTIL WE HAVE EXHAUSTED ALL
0440* WE HAVE IN CORE OR WE REACH THE POINT WHEN FURTHER OUTPUT WOULD
0441* DESTROY INFORMATION NOT YET READ, IN THIS SECTION, THE VARiABLE
0442. SUPS = # OF WORDS THAT HAVE BEEN OUTPUT FROM "THE CURRENT CORE
0443. LOAD.
0445
0446
0447
0448
0449
75553 002400
75554 073730
75555 063740
75556 143733
75557 067737
75560 057735
75561
75562
75563
75564
0453
0404
0455
0456
0457
0458
0459
0460
0461
0462
0463
0464
0465
0466
04 61
0468
0469
0470*
LDB SUPL,l
CPS SUPKl
JMP SUP12
067730 SUP13 LOB SUPS
007004 "
eM8,INB
0450
0451
0452
SUP11 CLA
SUP15 STA SUPS
LOA SUPL2
ADA SUPP,1
027575
047731
75565 077732
75566 044000
75567 et06021
75570 027604
75571 063732
75572 010316
75573 003004
75574 027604
75575 067740
75576 007004
75577 047736
75600 044000
7 5 6 01 007025
75602 040001
75603 027562
SET # OF
ZERO,
~ORDS
OUTPUT SO FAR TO
SET WORD • .# OF WORDS LEFT
TO BE WRITTEN ON Lt.
TEST FOR W~ITING ON A TRACK NOT
COMPLETEL.Y READ.
WE ARE.
SET
e-*
Of WORDS LEFT IN CORE.
ADS SUP
ST8 SUPB
ADS 0
SSB,RSS
JMP SUP14
LOA SUPS
AND M256
CMA,INA
JMP SUP14
SUP12 LOB SUPL2
CMa,INS
ADB SUPK2
0471* A NOW CONTAINS -#
0412*
0473 75604 070204 SUP14
0474 75605 0212003
0475 75606 021655
0476 75607 003004
0477 75610 ~73732
0478 75611 063740
0479 75612 002002
0480 75613 027625
0481.
0482 75614 063737
0483 75615 0£12004
0484 75616 070051
0485 75617 060676
0486 75620 043730
0487 75621 070050
0488 75622 064353
0489 75623 016450
0490 75624 002400
0491*
SAVE IN B.
COMPARE WITH
#
WE WANT TO WRITE,
HAVE ENOUGH •• j IS IN A.
ONLY WRITE WHAT WE HAVE.
USE ONLY FULL BLOCK'S WORTH
MAKE NEGATIVE.
IF WRITING ON UNREAD TRACK, MAKE
SURE WE DON'T GO INTO UNREAD
AREA.
ADB0
CHB,SSB,INB,RSS
ADA 1
CHANGE A TO AVOID OVERLAY.
.JMP SUP13
OF WORDS WE'RE GOING TO WRITE.
STA MWORD
SZA,RSS
JMP SUP17
CMA,INA
STA SUPB
IF NO WORDS TO BE
WRITTEN GO TO SLID! CORE FOR
NEW INPUT.
LOA SUPL2
SZA
JMP SUP18
TEST FOR FIRST WRITE ON THIS
TRACK.
LOA SUPLl
INA
srA MOVED
LOA LIBD
IF FIRST WRITE,
ADA SUPS
STA MOVES
LOB .-4
JSB MOVEW
CLA
ADJUST DIREC TO TELL
NEW FIRST ENTRY ON THAT
TRACK.
PAGE 0404 #33
0492
0493
0494
04915
0496
0491
049a
0499
0500
0501
05e2
0503
0504
0505
0506
05e7
05e8
0509
0510
0511
0512
0513
75625
15626
75627
75630
75633 100001
75634 080040
75635 047744
75636 012040
75637 002004
75640
75541
75642
75643
75644
75645
75646
75647
75650
75651
0524
0527
0528
184400
075744
063743
064676
041730
114206
114212
063732
043740
073740
75652 063732
75653 043730
75654 027554
0514*
0525
0526
006400
101030
067737
044364
75631 013744
75632 11 4200
0515. COME
0516*
0517
0518
0519
0520
0521
0522
0523
SUPERSAVE
ASR 8
LOB SUPl1
CONVERT WORDS TO BLOCK
ADDRESS
ADD IN TRACK ADDRESS,
ADS •• 5
STA SuPET
DLD B,I
CLf
ADB supET
SEl
INA
DST SUPET
LOA SUPEA
LOB LISD
ADB SUPS
JSB DISCZ,1
JSB DEADP,I
LDA SUPB
ADA SUPL2
STA SUPL.2
LDA SUPB
ADA SUPS
JMP SUP15
.> DISC ADDRESS
COMPUTE CORE
ADDRESS.
OUTPUT TO DI8C
ADJUST • OF WOR080UTPUT TO
TRACK,
*
ADJUST
OF CORE WORDS WRITTEN
OUT SO FAR.
lOOP FOR ANy MORE WRITING.
HERE WHEN WE CAN'T WRITE ANyMORE.
75655 053730
75656 027334
75657 067730
75660 007004
75661 041731
75662 077731
75663 001004
75664 06 0 676
75665
75666
75667
75670
.,5611
SUP18 CLB
070051
043730
070050
016450
SUP17 CPA SUPS
JMP SUP?
LDB SUPS
CMB,INS
ADB SUP
STB SUP
CMB,INB
LDA LISD
STA MOVED
ADA SUPS
STA MOVES
JSB MOVEW
JMP SUP1
IF NOTHING WRITTEN AT ALL, GO TO
TRY AND READ AGAIN,
ADJUST # OF WORDS IN CORE,
MAKE NEGATIVE FOR eORE MOVE.
SET DESTINATION AND SOURCE.
0529
027334
0530.
0531* ALL TRACKS WRITTEN BACK. NOW uPDATE WORD COUNTS IN
0532. DIREC.
0533.
0534 75672
0535
0536
0537
0538
0539
0540
0541
0542
0543
0544
0545
SUP16 EQU •
75612 ,,63713
75673 073731
75674 067722
75675
75675 163712
75676 170001
75677
75700
75701
75702
75703
037712
044366
037731
027675
063717
LDA
STA
LDB
SUPLL EGU
l.OA
STA
ISZ
ADS
ISZ
JMP
LOA
Mae
SUP
sDIRe
•
DEFNN,I
B,I
DEFNN
.+1
SUP
SUPLl
SUPRl
SET COUNT
0' DIRECTORY TRAX
a> FIRST DIREC ENTRY
COpy NEW LENGTH WORDS INTO
THE DIREC TABLE ENTRIES
WIPE OUT "CONSTANT"
'
ADVANCE DIREC POINTER
SET UP RETURN ADDRESS.
PAGE
0546
0541
0548
0549
e550
0551
0552
0553
0554
0555
0556
0"101:'7
v...,,
0558
0559
0560
0561
0562
0563
0564
0565
0566
0567
0568
0569
0570
0571
0572
0573
0574
0575
0576
0577
0578
0579
0580
0581
0582
058 3
0584
0585
0405 #33
157214
15705
75705
75706
75707
75710
75711
75712
75713
75714
75715
SUPERSAVE
073772
SUP3
063714
~70204
060256
064610
027770
~73601
117660
177010
176526
75716 176525
75 7 1 7
75720
75721
75722
75723
75724
75725
75726
75727
75730
75731
75732
75733
75734
75735
75736
75737
75740
75741
75742
75743
75744
75770
75770
75770
7 5 77 1
75712
75773
02 777 6
011770
005240
030000
031051
0131060
03 1 2 0 3
154024
177771
177764
000000
000000
073601
000000
000000
000000
000000
ra00000
000000
000000
075744
2100000
1142'i6
114212
027777
STA SUPR
EQU •
LOA SM504
SET WORD COUNT
STA
LOA
LOB
JMP
.> DISC ADDRESS
MWORD
LIB
_LIBt
SUPRR
DEFNN DEF FILSF
DEC .a0
M8e
8M504 DEC .504
M682
M683
DEC .682
DEC !'-683
SUPRI JMP LIBRA+510 JUMP fOR NORMAL RETURN
S8184 DEC 8184
x2056 DEF LIBU8+uLEN .. 8184
SOIRe OfF DIREC
SOIRL OEF DIREL
SDIRU DEF DIREU
DIRCS DEF DIReM
STLE ABS .ULEN+20
OCT .1
SUpS DEC -12
SUp· OCT
SUPS OCT e
Supp DEF FILBF
SUPTG OCT 0
SUPK1 aSS 1
SUPK2 ass 1
SUPLt sss 1
SUPL2 Bsa 1
"
supEx ass
1
SUPES BSS 1
SUP!. DEF S'UPET
SUPET BSS 2
ORG LIBRA ... 504
SUPRR EQU •
JSB DIsCZ,1
JSe DEADP,I
SUPR ,JHP LIBRA+511
SSSAV EQU •
POINTER TO DISC ADDRESS
DOU 8 lEWORD TO HOI.D DISC ADDRESS
OVERLAY wITH ORIGINAL ROUTINE
CAN'T GET IT BACK, ARRGHI
SET FOR ERROR ROUTINE
PAGE 0406 *34
GET
0002. THE GtT ROUTINE IS RESPONSIBLE FOR LOADING A PROGRAM FROM THE
0003* USER LIBRARY. IT CAN BE USED TO LOAD FROM EITHER THE USER'S
0004* PRIVATE LIBRARY, THE ~ROUP LIBRARY, OR THE PUBLIC LIBRARY.
0005* IF THE PROGRAM 18 TO BE FROM THE USER'S GROUP LIBRARY THE
0006* PROGRAM NAME SHOULD BE PRECEDED BY A SNOMFLAKE (.).
IT IS TO
0007* BE FHOM THE PUBLIC LIBRARY, THE PROGRAM NAME SHOULD BE PRECEDED
0008* BY A DOLLAR SIGN (S).
iF
9010
75000
0012
00iJ
0014
75"00
75e0i
75002
75003
75004
75005
0015
8016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0048
0041*
0042
0043
0044
0045
0046
0047
ORG LIBRA
060272
040346
070036
160000
010030
060640
75006 002004
75007 070034
75010 060354
75011 070037
75012 016532
75"13 027035
75014 050423
75015 027050
75016 05 0 431
75017 027055
75020 001127
75021 170034
75022 01 65 32
GET3
75023 06'0417
75024 130034
75025 170034
75026 034034
75027 016532
752130 060417
75031 034031
75032 ~27020
75933 050417
75034 027074
75035 060342
75036
75037
75040
75041
GETI
067040
026623
075,,41
005111
75042 041126
75043 040514
75044 044504
75045 020116
75046 040515
75047 042440
LOA MLINK+l
GET USER'S 10.
ADA .+?IO.1L.iNK
STA GETI
LOA 0,1
STA lTEMP
STORE IN LTEMP.
LOA OLTEM
SET UP POINTER FOR NAM!.
INA
STA GETP
SET UP COUNTER,
LOA •• 3
SrA GETC
.lg8 LCHAR
GET FIRST INPUT CHAR.
ERROR IF NONE.
JHP GETl
CPA .+448
IF S GO TO SET UP FOR
JMP GET2
SEARCHING PUBLIC LI8RARY,
CPA ,+52B
IF * GO TO SfT UP FOR
JMP GETlA
SEARCHING GROUP L.IBRARY
ALF,ALF
SAVE CHARACTER IN TABL.E.
STA GElP,I
JSB LCHAR
GET RIGHT CHARACTER.
IF END CHANGE TO BLANK.
LOA ,+408
lOR GElP,I
STA GETP,I
ISZ GETP
BUMP POINTER.
JSB LCHAR
GET NEXT CHARACTER.
LOA ,+408
ISZ GETe
DO WE WANT ITl
JMP GET3
YES,
CPA ,+408
NO •• A SHOULD NOW 8E8LANK.
JMP GET4
LDA
LOB
JMP
OEF
OCT
ASC
,.13
*+2
LIBER
.+1
5111
6,NVALID NAME
0048*
0049. PUBLIC LIBRARY PROGRAM
"050*
0051
0052
7505~ 060514
75051 070030
GET2
LOA A000
STA LTEMP
SET UP FOR PUBLIC Ll8RARY SEARCH
PAGE 0407 #34
GET
00f>3
0054
75052 016532
75053 027035
0055
75054 027020
JSB LCHAR
JMP GETl
JMP GET3
GET fIRST CHAR OF NAME.
FAIL IF NONE,
9056.
"0e1.
GROUP LIBRARY PHOGRAM
0059
0060
0061
0062
75055 060030
75056 010512
75057 006400
0051.
7506~
100400
75061 000472
75062 1082021
75063 000 4 72
0064
0065
0066
75064 064000
GET14 LOA LTEMP
AND 81777
CLB
DIV .100
MPV .100
LOB
LOA
AND
lOR
ST.
JSB
JHP
JMP
75065
15066
752167
7507QJ
75071
75072
75073
060612
010030
75075
75076
75077
75100
061575
070043
116017
021133
LDA
STA
JSe
JMP
75101
75102
75103
75104
75105
75106
060337
067104
026623
075105
005116
GET19 LOA
LOB
JMP
DEF
A
M2090
LTEMP
GET USER'S ID
ISOLATE NUMERICAL PART
DIVIDE By 100 AND
MULTIPly BACK, DROPPING REMAIN
SAVE RESULTING MULTJPL! OF S81
GET UPPER 6 8ITS MASK
GET ALPHABETIC PART -OF,ID
MERGE NEW NUMERICAL PART
STORE LIBRARIAN 10
GET FIRST CHAR OF NAME
FAIL IF NONE
ELSE, CONtINUE
B
0061
030001
9068
070030
lTEMP
LCHAR
016532
0069
027035
0070
GET1
021020
0071
GETl
0072*
0073* AT THIS POINT THE 10 OF THE LIBRARY CONTAINING THE D!81REDPROGRAM
0074.
IS IN LTEMP AND THE PROGRAM NAME IS IN LTEMP+l, LTEMP+2, AND
0075.
LTEMP+3
0076.
0077 75074 016056 GET4 JS8 ROPRG
0078
0079
0080
0081
0082.
0083
0084
0085
0086
0087
0088
047440
SPROG
GETS
DLOKP,I
GET18
SAVE END.OF.
COMMON POINTER
SEARCH DIREcTORY FOR PROGRAM
•• 16
*+2
LIBER
.+1
OCT 5116
ASC 7,0 SUCH PROGRAM
75107 051525
75110 041510
0089
/(Ja90
0091
0092
0093
0094
75111
75112
75113
75114
75115
75116
75117
75120
75121
75122
75123
75124
75125
75126
75127
75130
020120
051117
043522
040515
060334
067120
026623
075121
005111
2146114
026523
052117
~51105
042040
050122
047507
GET22 LDA .... 19
LOB *+2
JMP
OEF
OCT
ASC
LIBER
.+1
5111
9,LL.STORED PROGRAM
PAGE A408 #34
GET
75131 051101
75132 046440
0095.
0096. THE PROPER DIRECTORy TRACK
THE PROGRAM ENTRY
0097*
me9S*
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113*
0114
0115
0116
0117
ftJ118
0119
0120*
0121*
0122*
0123
0124
0125
012 6
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
ra140
0141
0142
75133
75134
75135
75136
75137
75140
75141
75142
75143
75144
75145
064 0 35
044363
1600"1
002021
027144
160036
050030
027115
027101
044355
GETt8
GET9
160~01
75146 044 3 65
75147 002021
75150 021165
75151
75152
75153
75154
75155
15156
75157
75160
75161
75162
75163
75164
fOUND CORRECT ENTRy,
75165
75166
75167
75 1 7 0
75171
75172
75173
7 5 17 4
75175
75176
75177
75200
75201
75202
75203
75204
75205
75206
75207
75210
044350
160001
070031
044361
160001
070040
00600 4
16 00 01
001665
0702141
044366
160001
010042
003004
040041
070045
003004
~64040
006021
027215
GETPD
A08 .+4
LOA B,l
SSA,RSS
JMP GET9
LOA GETI,1
CPA LTEMP
JMP GET22
JMp GET19
ADB .-2
LOA 1,1
ADa .+6
SSA,RSS
JMP GET15
LD~
LDA
LOB
JMP
OEF
OCT
Ase
1360337
067154
026623
075155
005105
047124
051131
02al11
051440
040440
043111
046105
IS NOW IN CORE WITH GETPO POINTING TO
CHECK ILL-STORED
PROGRAM FLAG
UNSUCCESSFUlLY STORED1
NO, CONTINUE
YES, GET USER'S ID
DOES HE (OR SHE) ·OWN THE PROG?
YES, PRINT ILL.STOR!DPROGRAM
NO, PRINT NO SUCH PROGRAM
rEST FOR FILE
a>
DISC ADDRESS
SKIP IF FILE
.-16
*+2
LIBER
*+1
5105
LF.E
7,NTRY IS A FILE
CHECK TO SEE IF THE PROGRAM FITS
GETtS ADS .-7
LOA B,I
STA LTEMp+l
AD8 .+2
LOA 1 , I
STA LIBSe
INB
LOA 1,1
ELA,CLE,ERA
STA llBSP
ADS .+7
LOA 1,1
STA GETLN
CMA,INA
ADA LIBSP
STA LISPB
CMA,INA
-> FIRST WORD OF NAME
MOVE WITH PROTECTED FLAG
TO SAFE pLACE
.> THIRD WORD OF NAME
SAVE SEMI.
COMPIL.ED FLAG
RETRIEVE START.
OF-PROGRAM
POINTER
GET PROGRAM
L.ENGTH.
COMPUTE fIRST
UNUSED WORD
COMPUTE NEGATIVE
LOB LIBse
SSB,RSS
JMP Gt:T25
SEMI-COMPILED?
NO
PAGE 0409 #34
0143
0144
0145
0146
0141
0148
0149
0150·
0151
0152
0153
0154
0155
0156
0151
0158
GET
75211 040716
75212 002021
75213 027235
15214 027220
75215
75215 040714
75216 002021
75217 027235
75220
75220 060335
75221 0b7223
75 222 026623
75223 075224
75224 005120
051117
75225
75226
75227
75230
75231
75232
75233
ADA LWAUS
SSA,RSS
JMP GETI]
JMP GET26
GET2!5 EQU *
ADA LW97
SSA,RSS
JMP GET13
GET26 EQU
TOO BIG?
NO
yES
TOTAL LENGTH
COMPARE wITH MAX ALLO"!O.
OK
LDA
LDB
JMP LIBER
OfF *+1
OCT 5120
LF-P
Ase 8,ROGRAM TOO LARGE
043522
040515
020124
047517
020114
040522
75234 043505
0159.
0160. EVERyTHING CHECKS, GO GET THE PROGRAM
0161.
0162 75235
0163 75236
0164 75237
0165 75240
0166 75241
0167 75242
75243
0168 75244
75245
0169.
0170 75246
0171 75247
0112 75250
0173 75251
0174 75252
0175 75253
0176 75254
0177.
0178.
0179 75255
0180 75256
0181 75257
0182 75260
0183 75261
0184 75262
0185 75263
0186
0187
0188
0189
016423
064035
044364
1721001
044362
104200
100001
104400
000046
16 00 34
010204
060034
040364
064676
1141206
114207
GET13 JS8
LDB
AOB
STA
ADB
OLD
DATE
GETPD
.+5
1,1
.+3
B,I
DST GETDl
LOA GETP,I
STA MwORO
LDA GETP
ADA .+5
LOB LIBD
JSB 018CZ,1
JSB sICKP,I
SET NEW DATE
INTO
DIRECTORY.
GET PROGRAM
DISC
ADDRESS
WRITE DIRECTORY
BACK TO
DISC
HUy MAlOj
160001
070037
LOB MLINK+l
SET TO NULL PROGRAM
Aoa .+?PROG-1lINK
LOA B,I
SAVE PROGRAM
STA GETe
LENGTH
060043
LOA
170001
STA
016056
75264 064042
75265 074204
75266 064041
JSB
LOB
STB
LOB
064272
044345
75267 045027
GETS
1,1
RDPRG
GETlN
MWORD
LIBSP
ADS BIT15
READ IN CURRENT USER PROGRAM,
GET WORD COUNT
STORE WORD COUNT
GET START OF PROGRAM POINTER
AND READ BIT
PAGE 0410 *34
0190
0191
0192
0193
0194
0195
0196
0197
0198
0199
0200
0201
0202
0203
0204
0205
020 6
75270
75271
75272
75273
75274
75275
75276
75277
75300
GET
LOA GETDP
JSB DISCZ,1
063344
114206
002001
021327
RSS
JMP GET17
LDB MLINK+l
064212
044341
ADB
STB
ADB
LOA
074255
044363
060037
75301 1702101
75302 016056
75303 060450
STA
75323
~20114
~44502
.-7LI.Nt<
MAIN
,.,PROG
GETC
B,I
JS8 RDPRG
........... M32
LOB *+2
JMP LIBER
InA
75304 067306
75305 026623
15306 075301
75307 005125
75 310 0 4 1101
75311 041114
7531~ 042440
75313 052117
75314 020122
75315 042524
75316 051111
75317 042526
75320 042440
75321 043122
75322 047515
75324
GET PTR TO DISK ADDRESS
DEF *+1
OCT 5125
LF.U
ASe 15,NABlE TO RETRIEVE FROM LIBRARY
75325 051101
75326 051131
0207.
WRAP THINGS Up.
0208. THE PROGRAM IS NOW IN CORE,
0209.
0210 75327 160036 GET17 LOA GETI,I
GET USER'S
0211 753J~ 034036
FIRST WORD
ISZ GETI
0212
15331 064031
0215
75 332 05 0030
75333 005665
15334 174036
0213
0214
0216 . 75335
°2 1 7 75336
75337
0218 75340
0219
0220
0221
0222*
0223
0224
034036
1 0 42 00
000032
104400
75341 100036
75342 016343
15343 026613
LOB LTEMP+l
CPA LTEMP
ELB,CLE,ERB
STB GETI,I
ISZ GETI
OL.D LTEMP+2
GET IT
IF PROGRAM OWNER CLaAR
RUN .. ONL.y BIT,
STORE FIRST WORD OF NAME.
BUMP POINrER TO NEXT wORD.
GET LAST 2 WORDS OF NAME.
DST GETI,I
STORE IN TABLE.
75344 000046
JSB SEMIC
JMP lLEND
GETOP DEF GETDI
"0034
GETP
~QU
GETPO
GETI
GETC
GETLN
GETS
GETDI
EQU LrEMP ... e
EQU LTEMP+6
EQU LTEMP+7
00035
0225
00036
0226
00037
(1227
00042
0228
0229
~0046
00043
ID
OF NAME.
LrEMP.4
EQU lTEMP+10
EQU LTEf.:"'+ll
EQU LTEMP+14
TERMINATE,
DISK ADDRESS
->
.> DIREC ENTRy
.> DIRECTORY ENTRY
USER 10
COUNTER
PROGRAM LENGTH
a>
START.OF~PROGRAM
DISC
PAGE 0411 #34
GET
0230.
LTEMP+15
0231*
ADDRESS
0232.lTEMP, LTEMP+l, LTEMP+2, LTEMP+3, LTEMP+8 & LTEMP+9 ARE ALSO USED
0233.
0234
75345
SGET
EQU.
PAGE 0412 *34
0236*
0237*
0238.
023 9*
0240*
0241.
0242*
0243*
APPEND
THE APPEND COMMAND ALLOWS A USER TO APPEND A LIBRARY PROGRAM ON TO
THE END OF HIS CURRENT PROGRAM, THE FIRST STATEMENT OF THE NEW
PROGRAM MUST HAVE A SEQUNCE NUMBER GREATER THAN THAT OF TMEL.ST
STATEMENT OF THE ORIGINAL PROGRAM, IF THE NEW SECTION 18 PROTEcTED
THE ENTIRE PROGRAM WILL BE PROTECTED, SEMI.COMPILED PROGRAMS AND
PROGRAMS WITH COMMON MAY NOT 8E APPENDED
THE CODE FOR APPEND MUST FOLLOW THE CODE FOR "GET",
0245
75000
0246
0247
75000 060272
ORG LIBRA
LOA MLINK+l
ORG GETtS
THE CODE IS IDENTICAL TO "GETUP TO LOCATION GETlS
0248*
0249* THE PROPER DIRECTORy ENTRy IS NOW IN CORE AND IS
025,,*
GETPO.
0251*
0 2 52 75165 04435 2
0253 15166 160001
0254 75167 002021
0255 75170 027210
0256.
0257
0258
0259
0260
0261
0262
0263*
0264_
0265*
0266
0267
0268
0269
tt:1270*
0271
0272
75t7t
75172
75173
75174
75175
75116
75177
7520'"
15201
75202
75203
75204
75205
75206
75207
060331
067174
026623
,,7!St75
005123
042515
044455
041517
046520
044514
ADS
.~5
lDA t,l
SSA,RSS
JMP APPel
LDA
LOB
JMP
DEF
OCT
ASC
SEMI-COMPILED?
NO
*+2
LIBER
*+t
5123
LF_S
10,EMI.COHPILED
PROGRAM
042504
020120
051117
043522
040515
THE PROGRAM TO BE APPENDED IS NOT SEMI.COMPILED
APpal INS
LOA 1, I
CPA PBUFF
JMp APP02
LOA .-23
LDB * ... 2
JMP LIBER
0274
75214 060330
75215 ~67217
75216 026623
75217 07522121
0275
7522~
0276
.> THIRO WORD OF
... 22
006004
75211 160001
75212 050726
75213 021234
0273
POINTED TO By
7521~
005116
75221 047440
75222 041511
75223 046515
75224 ~47516
75225 020101
75226 el511~5
75227 040440
COMMON AREA?
NO
OfF *+1
OCT 5116
LF.N
ASC 11,0 COMMON AREA AL.LOWED
NAME
PAGE
~413
75230
75231
75232
75233
*34
APPEND
040514
046117
053505
042040
0277*
027S*
0219.
0280
0281
0282
75236 044364
0283
0284
75237 170001
7524 0 044353
0285
75241 160001
75242 070036
75243 PJ44366.
75244 104200
75245 100001
75246 104400
0286
0287
0288
0289
NOR DOES IT CONTAIN ANy COMMON STATEMENTS
75234 016423
75235 064035
75247
75250
75251
75252
75253
000046
06 4 035
044372
160001
070042
APP02 .JSB
LOB
AOa
Sf A
ADa
LOA
STA
ADB
DATE
GETPD
.+5
I,I
@-4
1,1
APPlS
.+7
OLD B,I
SAVE 'PROTECTED' eIT
GET
PROG~AM
DISC
DST GETDI
ADDRESS
LOB GETPD
AND
02 9 0
0291
0292
0293
0294*
0295.
0296*
0297
0298
0299
0300
75254
75255
75256
75257
0301
7526~
0302
75261 114206
75262 114211
LOA
STA
LOA
ADA
LOB
JSB
JSB
75263 016056
75264 12115322
JSB ROPRG
JSB DCMPl
0303
SET OATE OF LAST REFERENCE
INTO DIRECTORY ENTRY,
ADB ,+11
LOA 8,1
GETLN
PROGRAM
LENGTH·
STA
RETURN uPDATED DIRECTORy TO DISC
160034
070204
060034
04121364
064676
GETP,1
MWORD
GETP
WRITE DIRECTORY
BACK TO DISC
.+5
LIBD
DISCZ,1
SLVAG,I
BLEW IT, TRY TO SALVAGE
0304.
0305
0306
0307.
030S*
0309.
0310
0311
03 12
0313
0314
READ IN USER'S PRQGRAM ANO
DECOMPILe: IT.
CHECK IF COMBINED PROGRAMS wILL FIT IN CORE
75265
75266
75 2 67
75270
75271
75212
75273
75274
A60042
1211213004
04°°56
07121045
00301214
040714
0315
0316
902021
021315
0317
031S*
0319 75275 06121272
0320
0321
0322
75276 1214121341
75277 070255
75300 ~60335
0323
0324
0325
0326
75301 061303
75302 026623
75303 075304
75304 005120
LOA GETLN
CMA,INA
ADA PBPTR
STA LIBPS
CMA,INA
ADA LW97
SSA,RSS
JMP APPl
LOA
AOA
STA
LOA
LOB
JMP
DEF
MLINK+l
.... ?L.INK
MAIN
.-18
•• 2
LIBER
*.1
OCT 5120
TEST fOR PROGRAM TOO
LARGE.
LAIT WORO.1 OF COMBINED PROGS.
COMPUTE NEGATIvE
TOTAL LENGTH
COMPARE WITH MAX ALLOWED.
O,K,
SET MAIN TO SAY PROGRAM IN
CORE.
PAGE 0414 *34
0327
15305
75306
75301
75310
15311
75312
15313
15314
APPEND
051117
ASC 8,ROGRAM TOO LARGE
043522
2140615
020124
047517
020114
040522
043505
0328*
0329. EVERYTHING IS FINE. GO GET THE PROGRAM
0330*
Ql~"'t
GET LENGTH OF PROGRAM TO SE APPO
..,
......... 15315 064042 APPl LOB GE1'LN
0332 75316 07421214
STB MWORD
STORE WORD COUNT
LOB PBPTR
INITIATE
0333 15317 064056
ADS 81T15
0334 75320 045027
121335 75321 063456
LOA APPDP
DISK
JSB
DISCZ,I
READ
0336 75322 114206
JMP
APP9
UNABLE
TO READ PROGRAM
0337 75323 027403
0338."
0339. SCAN ORIGINAL PROGRAM
TO DETERMINE LAST SEQUENCE NUMBER.
121340*
LOA SPRQG
0341 75324 061575
03 4 2 75325 0020 0 4
INA
LOB PBPTR
0343 75326 064056
0344 75321 006004
INS
CPA
1
121345 75330 050001
121346 75331 021354
JMP APP2
CMA,INA
0347 75332 003004
ADA B
0348 75333 040001
SSA,RSS
121349 75334 002021
JMP APP5,,2
121350 15335 027341
00
LOA PBPTR
0351 75336 06 56
STA SPROG
0352 '5337 011575
0353 75340 027354
JMP APP2
0354*
LOA SPROG
0355 75341 061575
INA
0356 75342 002004
0351 15343 010031 App5 STA APPS
AOA 0,1
121358 75344 140000
9359 75345 2150001
CPA 1
RBS
121360 '5346 002001
JMP APP5
121361 75347 027343
0362*
CCA
0363 75350 003400
121364 75351 040037
ADA APPS
LDA 0,1
0365 75352 160000
0366 75353 003001
CMA,RSS
0367 75354 003400 APP2 ceA
0368*
121369* SEQUENCE NUMBER CHECK
0370*
0371
0372
121373
SET 8 TO POINT AT LENGTH OF
FIRST NEW PROGRAM,
IF EQUAL, PROGRAM 11 NULL, SO
IT'S OK.
IS SPROGJtPBPTR7
NO
YES, RESET SPROG
RESTORE
CA)
SAVE LOCN 0' THIS STATE. LENGTH.
l.INK TO NEXT ONE
IF SAVE AS 8, AP~81.LAST SlATE.
OTH£RWISf, LOOP.
GET SEQUENCE , OF LAST STATE.
MENT.
MAKE NEGATIVE AND SU8TRACT
ONE.
SET TO .1 (SEQNO •• ' IF NO PROG.
75355 140056
75356 002021
75357 021432
ADA PBPTR,I
SSA,RSS
JHP APP3
CHECK THAT FIRST SEQUENCE • 18
75360 060272
LOA MLINK+l
SET MAIN TO SAY PROGRAM IN
0374*
0375
A .> L.ENGTH OF
FIRST STATEMENT.
GREATER THAN LAST ONE OF OLD
PROGRAM,
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2003:07:18 15:16:28-07:00 Modify Date : 2009:08:17 13:59-07:00 Metadata Date : 2009:08:17 13:59-07:00 Producer : Adobe Acrobat 9.13 Paper Capture Plug-in Format : application/pdf Document ID : uuid:f7f0ed2f-4f7f-4fcf-9c7d-2bcafd9b7c1e Instance ID : uuid:41fcc2d4-c411-4d4c-8959-73d93305972b Page Layout : SinglePage Page Mode : UseOutlines Page Count : 416EXIF Metadata provided by EXIF.tools