MAINLUP
IDENT MAINLUP MAINLUP 1
TITLE MICRO-PROCESSOR MAINLUP 2
*CALL,SNODEF MAINLUP 3
* LOWCORE MAINLUP 4
EXT ISVB1,ISVX5 MAINLUP 5
* ERROR MAINLUP 6
EXT NOEND MAINLUP 7
EXT ERR2,ERR3,ERR4,ERR6,ERR7,ERR9 MAINLUP 8
EXT ERR13,ERR14,ERR19 MAINLUP 9
EXT ERR21,ERR27,ERR28 MAINLUP 10
EXT ERR32,ERR37,ERR38 MAINLUP 11
EXT ADDS1,SUBTRS,DIVS,MULTS,EXP MAINLUP 12
* MAINLUP MAINLUP 13
ENTRY NEXTMIC,SNDMIC,FAIL MAINLUP 14
ENTRY CHEK,SCATS,MCOPTBL,JPB1,SKIPONE MAINLUP 15
ENTRY PMFOUND,PMABT MAINLUP 16
ENTRY CTSFSS0 MAINLUP 17
ENTRY ITYWD,SSTYWD MAINLUP 18
ENTRY LUNDF,LRET,LFRET,LNRET,LEND MAINLUP 19
ENTRY SACHEK,PMSF,TENTO10 MAINLUP 20
ENTRY CALL,CALLA MAINLUP 21
ENTRY NULL0,STAK2,SELSTR MAINLUP 22
ENTRY END. MAINLUP 23
* STORMAN MAINLUP 24
EXT PUSHSTK,RESERVE,MORFREE,GETSTAK,GRBCOLL,RESHB MAINLUP 25
EXT HBC,SELFCHK MAINLUP 26
* UTILITY MAINLUP 27
EXT ITOS,SSTOS,STOSFX6,PTOPX4,ICX1X6,ZROX7,SSTOSF,ITOSF MAINLUP 28
EXT ITOSFTP,SOPERND,X1VALUE,FREESVD,SASSIGN,INDRCT,INDRX MAINLUP 29
EXT SEARCH,FREESTR MAINLUP 30
EXT DECFIL,SCHHBC MAINLUP 31
* PATMAT MAINLUP 32
EXT PRDPM,DOLPM,ENDEXPM,ALTPM,EXPPM,ARBPM,LENPM,POSPM MAINLUP 33
EXT RPOSPM,TABPM,REMPM,BALPM,FAILPM,FENCEPM,ABORTPM MAINLUP 34
EXT ARBNOPM,STARPM,LITPM,ANYPM,NTANYPM,SPANPM,BREAKPM MAINLUP 35
EXT ENTER,SETSIPI,NALTPMP MAINLUP 36
* IO MAINLUP 37
EXT INPUT,OUTPUT,CLOSALL MAINLUP 38
EXT RTERROR MAINLUP 39
EXT LSCMOUT MAINLUP 40
* DECLARE SOME PARAMETERS MAINLUP 41
MARK EQU 377777B . LARGEST POSITIVE ADDRESS MAINLUP 42
EJECT MAINLUP 43
TITLE TABLE OF MICRO-OPERATIONS MAINLUP 44
MACRO MICOP,A,B,C,D,E MAINLUP 45
A EQU *-MCOPTBL MAINLUP 46
IFC EQ,/E// MAINLUP 47
+ VFD 12/0400B,18/B,7/C,5/D,18/B . = EQ B0,B0,B ... MAINLUP 48
ELSE MAINLUP 49
+ VFD 30/-1,7/C,5/D,18/B MAINLUP 50
ENDIF MAINLUP 51
ENDM MAINLUP 52
MCOPTBL BSS 0 MAINLUP 53
XNOOP MICOP NOOP,0,2 MAINLUP 54
XCATCHK MICOP CATCHEK,0,0 MAINLUP 55
XALTCHK MICOP ALTCHEK,0,0 MAINLUP 56
XPMCHK MICOP PMCHEK,0,0 MAINLUP 57
XASCHK MICOP ASCHEK,0,0 MAINLUP 58
XMCHEK MICOP MCHEK,0,0 MAINLUP 59
XDCHEK MICOP DCHEK,0,0 MAINLUP 60
XCONCAT MICOP CONCAT,0,0 MAINLUP 61
XALT MICOP ALTER,0,0 MAINLUP 62
XADD MICOP ADD,0,0 MAINLUP 63
XSUBTR MICOP SUBTR,0,0 MAINLUP 64
XUNADD MICOP UNADD,0,0 MAINLUP 65
XUNSUB MICOP UNSUB,0,0 MAINLUP 66
XMULT MICOP MULT,0,0 MAINLUP 67
XDIV MICOP DIV,0,0 MAINLUP 68
XEXP MICOP EXP,0,0 MAINLUP 69
XPM MICOP PM,0,0 MAINLUP 70
XPRD MICOP PRD,0,6 MAINLUP 71
XDOL MICOP DOL,0,6 MAINLUP 72
XSTAR MICOP STAR,0,6 MAINLUP 73
XASGN MICOP ASGN,0,4 MAINLUP 74
XASGNPM MICOP ASGNPM,0,4 MAINLUP 75
XSUBCM MICOP SUBCOM,0,0 MAINLUP 76
XPARAM MICOP PARAM,0,0 MAINLUP 77
XSKIP MICOP SKIP,0,0 MAINLUP 78
XINDRCN MICOP INDRCN,0,0 MAINLUP 79
XINDRCV MICOP INDRCV,XINDRCN,2 MAINLUP 80
XNOEND MICOP END,0,0 MAINLUP 81
XZERO MICOP ZERO,0,2 MAINLUP 82
XNULL MICOP NULL,0,2 MAINLUP 83
XARRAY MICOP ARRAY,0,1 MAINLUP 84
XARRAYN MICOP ARRAYN,0,2 MAINLUP 85
XARRAYV MICOP ARRAYV,XARRAYN,3 MAINLUP 86
XCALL MICOP CALL,0,12B,SPEC MAINLUP 87
XNAME MICOP NAME,0,1 MAINLUP 88
XOPRND MICOP OPRND,XNAME,23B MAINLUP 89
XGOX EQU *-MCOPTBL-1 MAINLUP 90
XGOS MICOP GOS,0,2,SPEC MAINLUP 91
XGOF MICOP GOF,0,2,SPEC MAINLUP 92
XGOTO MICOP GOTO,0,2,SPEC MAINLUP 93
XGOTOT MICOP GOTOT,0,2 MAINLUP 94
XGOTOC MICOP GOTOC,0,2 MAINLUP 95
XGOREL MICOP GOREL,0,2 MAINLUP 96
XNOFAIL MICOP NOFAIL,0,2 MAINLUP 97
TITLE MICRO PROCESSOR: MAIN LOOP MAINLUP 98
* MAINLUP 99
NEXTMIC SA5 A5-1 . NEXT MICRO-OPERATION MAINLUP 100
SB1 X5 . OPERATION PART MAINLUP 101
AX5 18 . ADDRESS PART MAINLUP 102
NG X5,NEWRULE . BRANCH IF END OF RULE MAINLUP 103
JP B1+0 . BRANCH TO THE CODE FOR THE MICOP MAINLUP 104
* MAINLUP 105
NOOP EQU NEXTMIC MAINLUP 106
* MAINLUP 107
NEWRULE SA1 STCOUNT . BUMP STCOUNT MAINLUP 108
SA2 INTRPT . AND CHECK AGAINST INTRPT MAINLUP 109
MX0 59 MAINLUP 110
IX7 X1-X0 MAINLUP 111
IX2 X1-X2 MAINLUP 112
SA7 A1 MAINLUP 113
PL X2,SERVICE . BRANCH IF INTERRUPT MAINLUP 114
JP B1 MAINLUP 115
* MAINLUP 116
GOTO SB1 GOTO1 . GOTO TERMINATES THE RULE MAINLUP 117
PL X5,NEWRULE MAINLUP 118
GOTO1 SA4 X5+0 . FETCH CPD MAINLUP 119
SB2 A5 . SAVE A5 IN CASE OF UNDEF ERROR MAINLUP 120
SA5 X4 . FETCH MICOP ADDRESSED MAINLUP 121
SB1 X5 . SEE ALSO NEXTMIC MAINLUP 122
AX5 18 MAINLUP 123
NG X5,NEWRULE MAINLUP 124
JP B1 MAINLUP 125
* MAINLUP 126
* THE GOS AND GOTO MICOP CODES MUST BE DIFFERENT MAINLUP 127
GOS EQ GOTO . SLIGHTLY DIFFERENT THAN GOTO MAINLUP 128
* MAINLUP 129
SNDMIC SA5 A5 . HIGH ORDER MICRO-INSTRUCTION MAINLUP 130
MX0 55 MAINLUP 131
LX5 6 MAINLUP 132
BX1 -X0*X5 . MASK OFF OPERATION CODE MAINLUP 133
AX5 42 . ADDRESS PART OF X5 MAINLUP 134
SB1 X1 . MCOPTBL CONTAINS EQ JUMPS TO THE MAINLUP 135
JP B1+MCOPTBL . CODE FOR THE PARTICULAR MICOP MAINLUP 136
* MAINLUP 137
* THE NEXT FEW WORDS ARE ADDRESSED BY STANDARD MAINLUP 138
* LABELS. THE FORMAT IS THAT OF A MICOP. MAINLUP 139
LUNDF VFD 24/0,18/0,18/UNDFLB . UNDEFINED LABEL MAINLUP 140
LRET VFD 24/0,18/-1,18/RETURN MAINLUP 141
LFRET VFD 24/0,18/-2,18/RETURN MAINLUP 142
LNRET VFD 24/0,18/-3,18/RETURN MAINLUP 143
LEND VFD 24/0,18/0,18/END MAINLUP 144
* MAINLUP 145
UNDFLB SA5 B2 . RESET A5 TO OFFENDING MICOP MAINLUP 146
ERR10 ERROR 10 . UNDEFINED LABEL MAINLUP 147
* MAINLUP 148
FAIL SA1 INFAIL . FAILURE IN CURRENT RULE MAINLUP 149
NG X1,ERR9 . ERROR IF IN GO TO PART MAINLUP 150
CALL SSKIP . SKIP OPERANDS ON THE STACK MAINLUP 151
SB2 GOF MAINLUP 152
SB4 GOTO MAINLUP 153
SA5 A5 . REFETCH CURRENT MICOP WORD MAINLUP 154
SB3 X5 . MICOP RIGHT ACTION MAINLUP 155
JP FAIL2A MAINLUP 156
FAIL2 SA5 A5-1 . SKIP MICOPS UNTIL END OF THE RULE MAINLUP 157
SB3 X5+0 . OR A GOF JUMP IS FOUND. MAINLUP 158
FAIL2A EQ B2,B3,FAIL3 . GOF JUMP MAINLUP 159
EQ B3,B4,FAIL3 . UNCONDITIONAL JUMP MAINLUP 160
PL X5,FAIL2 MAINLUP 161
EQ NEXTMIC MAINLUP 162
FAIL3 AX5 18 MAINLUP 163
SX5 X5 MAINLUP 164
PL X5,GOTO1 . SPECIAL STOP-SCAN GOF IF NEGATIVE MAINLUP 165
GOF EQ NEXTMIC . GOF IS IGNORED OTHERWISE MAINLUP 166
* MAINLUP 167
GOREL SB5 A5 . MICRO OPERATION RELATIVE GOTO MAINLUP 168
SA5 X5+B5 MAINLUP 169
EQ NEXTMIC MAINLUP 170
* MAINLUP 171
* CALL IS THE LAST OF BRANCH TYPE MICOPS MAINLUP 172
CALL RJ SPARAM . MICRO OPERATION- CALL MAINLUP 173
CALLA SA4 X5 . FETCH FUD MAINLUP 174
PL X4,CALL0 . BRANCH IF NOT STANDARD PROCEDURE MAINLUP 175
* CALL STANDARD PROCEDURE MAINLUP 176
LX5 19 MAINLUP 177
SB1 X4 MAINLUP 178
NG X5,CALLST1 . BRANCH IF N BIT IN MICOP IS SET MAINLUP 179
AX5 18+19 . NUMBER OF PARAMS TO X5 MAINLUP 180
JPB1 JP B1 MAINLUP 181
CALLST1 LX4 2 . CHECK IF NRETURN IS ALLOWED MAINLUP 182
AX5 18+19 MAINLUP 183
NG X4,JPB1 MAINLUP 184
ERR25 ERROR 25 . ERROR- NRETURN EXPECTED MAINLUP 185
* MAINLUP 186
* INTERRUPT SERVICE, CALL HBC OR SELFCHECK AS REQUIRED MAINLUP 187
SERVICE SA2 STLIM MAINLUP 188
SA3 STATWD MAINLUP 189
IX2 X1-X2 MAINLUP 190
PL X2,ERR19 . ERROR, STATEMENT LIMIT EXCEEDED MAINLUP 191
MX7 0 MAINLUP 192
SA2 A5 . FIND OUT IF X5 POINTED TO BY A5 MAINLUP 193
AX2 18 MAINLUP 194
IX2 X2-X5 MAINLUP 195
ZR X2,SRVC . A5 POINTS TO X5 MAINLUP 196
MX7 1 . SIGNAL X5 IS HEAP BLOCK POINTER MAINLUP 197
SRVC SX0 B1 MAINLUP 198
BX7 X7+X0 . SAVE B1 AND FLAG FOR X5 MAINLUP 199
SA7 ISVB1 MAINLUP 200
BX7 X5 . NOW SAVE X5 MAINLUP 201
SA7 ISVX5 MAINLUP 202
XX IFNE TRCFLG,0 MAINLUP 203
SX6 STATTRC MAINLUP 204
BX4 X6*X3 MAINLUP 205
ZR X4,SRVC0 . TRACE NOT SCHEDULED MAINLUP 206
BX6 -X6*X3 MAINLUP 207
SA6 A3 MAINLUP 208
TRACE . TURN ON TRACE MAINLUP 209
TRACE LIST . AND SET MODE TO -LIST- MAINLUP 210
SRVC0 LX3 60-1 MAINLUP 211
XX ELSE MAINLUP 212
LX3 60-1 MAINLUP 213
XX ENDIF MAINLUP 214
PL X3,SRVC1 MAINLUP 215
RJ HBC . CALL HBC IF SCHEDULED MAINLUP 216
SRVC1 SA3 STATWD MAINLUP 217
SX7 STATHBC MAINLUP 218
BX7 -X7*X3 . TURN HBC BIT OFF MAINLUP 219
SA7 A3+0 MAINLUP 220
LX3 60-2 MAINLUP 221
PL X3,SRVC2 MAINLUP 222
RJ SELFCHK . CALL SELFCHECK IF STATSC BIT IS SETMAINLUP 223
SA1 STCOUNT . NEXT INTERRUPT MAINLUP 224
SA2 FREQWD . FREQ STATEMENTS FROM NOW MAINLUP 225
IX3 X1+X2 MAINLUP 226
JP SRVC3 MAINLUP 227
SRVC2 SA3 STLIM . OR AT STLIM MAINLUP 228
SRVC3 BX7 X3 MAINLUP 229
SA7 INTRPT MAINLUP 230
SA1 ISVB1 MAINLUP 231
SB1 X1 . RESTORE B1 MAINLUP 232
NG X1,SRVC4 . RESTORE X5 FROM ISVX5 MAINLUP 233
SA5 A5 . RESTORE X5 FROM A5 MAINLUP 234
AX5 18 . FORMAT X5 PROPERLY MAINLUP 235
JP B1 MAINLUP 236
SRVC4 SA1 ISVX5 MAINLUP 237
BX5 X1 . RESTORE X5 MAINLUP 238
JP B1 MAINLUP 239
* MAINLUP 240
* MICRO OPERATION-SKIP MAINLUP 241
* SKIP OPERANDS IN STACK. RELEASE SF TYPE STRINGS, MAINLUP 242
* DECREMENT REFERENCE COUNTS FOR ATY, DTY AND NTY. MAINLUP 243
SKIP SB1 NEXTMIC . RETURN ADDRESS FOR SSKIP MAINLUP 244
SSKIP SA1 B6 MAINLUP 245
NG X1,JPB1 . FINISHED IF RETURN INFO MAINLUP 246
SB2 X1 . BYPASS TO B2 MAINLUP 247
ZR X1,JPB1 . FINISHED IF BOTTOM OF STACK MAINLUP 248
AX1 55 . TYPE TO X1 MAINLUP 249
SB6 B6-B2 MAINLUP 250
SX0 X1-ATY MAINLUP 251
ZR X1,SSKIP2 . BRANCH IF SF TYPE MAINLUP 252
NG X0,SSKIP . BRANCH IF NOT ATY, DTY ETC. MAINLUP 253
SX0 X1-CTY MAINLUP 254
PL X0,SSKIP MAINLUP 255
SB3 B6+B2 MAINLUP 256
SB3 B3-1 . B3 POINTS TO ATY ETC. SVD MAINLUP 257
RJ FREESTR . DECR. REF. COUNT MAINLUP 258
JP SSKIP MAINLUP 259
SSKIP2 SA1 A1-1 MAINLUP 260
SX7 B7 . THIS IS HOW TO RELEASE MAINLUP 261
SB7 X1 . A LIST WITH SVD IN X1 MAINLUP 262
AX1 18 MAINLUP 263
SA7 X1 MAINLUP 264
EQ SSKIP MAINLUP 265
* MAINLUP 266
NOFAIL MX7 1 . MICRO OPERATION MAINLUP 267
SA7 INFAIL . SET VARIABLE TO SIGNAL ERROR MAINLUP 268
EQ SNDMIC . ON FAILURE (IN GO TO PART) MAINLUP 269
* MAINLUP 270
GOTOC SA1 B6 . MICRO OPERATION MAINLUP 271
AX1 55 . TRANSFER CONTROL TO TRANSLATED MAINLUP 272
SB1 X1-CTY . CODE MAINLUP 273
NE B1,B0,ERR34 . TOP OPERAND HAS TO BE OF CODE TYPE MAINLUP 274
SX6 B6-1 . ADDRESS OF CPD TO X6 MAINLUP 275
* NOW SIMULATE A GOTO WITH OPERAND = THE CONTENTS OF X6. MAINLUP 276
GOTOC1 MX0 60-18 . INSERT NEW OPERAND MAINLUP 277
BX5 X0*X5 . INTO X5, MAINLUP 278
BX5 X5+X6 . PRESERVING THE RULE BIT MAINLUP 279
BX7 X7-X7 . =0 MAINLUP 280
SA7 INFAIL . REALLOW FAILURES MAINLUP 281
SB6 B6-2 . REMOVE TOP OPERAND MAINLUP 282
JP GOTO MAINLUP 283
* MAINLUP 284
GOTOT SA2 GTTWD . MICRO OPERATION MAINLUP 285
SB3 GTTSW . GO TO THE LABEL DESCRIBED AT THE MAINLUP 286
EQ CHEK . TOP OF THE STACK MAINLUP 287
* MAINLUP 288
GTTWD SWITCH GTTSW,2,1,3,3,0,0,0,0,0,0,0,0,0,0,0 MAINLUP 289
ERR34 ERROR 34 . 0, P,I,R,A,D,N,C MAINLUP 290
+ RJ SCATS . 1, S MAINLUP 291
+ SA4 B6-1 . 2, SF MAINLUP 292
EQ GOTOT1 MAINLUP 293
+ SA4 B6-1 . 3, SS,SI MAINLUP 294
SA4 X4+0 MAINLUP 295
* NOTE: B4 CONTAINS 0 IFF TYPE IS SF MAINLUP 296
GOTOT1 SX0 LBLTYP . SEARCH FOR LABEL TYPE MAINLUP 297
BX1 X4 . FIRST TO B5 MAINLUP 298
SB5 X4 MAINLUP 299
AX1 36 MAINLUP 300
LX0 55 MAINLUP 301
SB3 X1 . LENGTH TO B3 MAINLUP 302
RJ SEARCH . PERFORM SEARCH MAINLUP 303
ZR X1,ERR10 . ERROR IF NOT FOUND MAINLUP 304
SX6 X1 . ADDRESS OF CPD TO X6 (SEE GOTOC1) MAINLUP 305
SX7 B7 MAINLUP 306
NE B4,B0,GOTOC1 MAINLUP 307
SB7 X4 . RELEASE OPERAND IF SF MAINLUP 308
AX4 18 MAINLUP 309
SA7 X4 MAINLUP 310
EQ GOTOC1 . COMPLETE GO TO MAINLUP 311
* MAINLUP 312
* MICRO-OPERATION END MAINLUP 313
* NORMAL END OF EXECUTION. MAINLUP 314
END RJ CLOSALL . TERMINATE ALL OUTPUT-TYPE FILES MAINLUP 315
RJ LSCMOUT MAINLUP 316
END. SX7 3LEND . MONITOR REQUEST TO QOUT MAINLUP 317
LX7 42 MAINLUP 318
ENDLOOP SA7 1 MAINLUP 319
JP ENDLOOP . IDLE MAINLUP 320
TITLE MICRO PROCESSOR: ACTIONS MAINLUP 321
CATCHEK SB3 CATCSW . MICRO OPERATION MAINLUP 322
SA2 CATCWD . CHECK LEFT OPERAND FOR CONCAT MAINLUP 323
* MAINLUP 324
* CHEK MAINLUP 325
* DISPATCH ON TYPE OF TOP OPERAND MAINLUP 326
* PARAM: B3 POINTS TO THE DISPATCH VECTOR MAINLUP 327
* X2 CONTAINS THE TYPE CLASSES AS GENERATED BY MAINLUP 328
* THE -SWITCH- MACRO MAINLUP 329
* RESULT: B4 IS 0 IFF TYPE WAS SF MAINLUP 330
* X0,X1,X2,B4 MAINLUP 331
* MAINLUP 332
CHEK SA1 B6+0 . FETCH TOP OPERAND MAINLUP 333
AX1 55 . TYPE PART TO X1 MAINLUP 334
LX1 2 MAINLUP 335
SB4 X1+0 . GO TO STORE(X2(X1)+B3) MAINLUP 336
AX2 B4,X2 . MAINLUP 337
MX0 56 . X2 IS TREATED HERE AS A LINEAR MAINLUP 338
BX2 -X0*X2 . ARRAY OF 4 BIT INTEGERS MAINLUP 339
SB3 X2+B3 MAINLUP 340
JP B3 MAINLUP 341
* MAINLUP 342
CATCWD SWITCH CATCSW,2,1,3,3,2,2,2,0,2,2,2,2,2,0,0 MAINLUP 343
* MAINLUP 344
+ SB1 NEXTMIC . 0, I MAINLUP 345
EQ ITOSFTP MAINLUP 346
+ RJ SCATS . 1, S MAINLUP 347
+ EQ NEXTMIC . 2, SF,P,R,A,D,N,C MAINLUP 348
CATCSS SA1 B6-1 . 3, SS,SI MAINLUP 349
SX7 2 MAINLUP 350
SA2 X1 MAINLUP 351
SA7 B6 . STORE SF TYPE HEADING MAINLUP 352
RJ SSTOSF . COPY THE STRING MAINLUP 353
SA6 B6-1 . STORE THE SVD OF THE COPY MAINLUP 354
EQ NEXTMIC MAINLUP 355
* MAINLUP 356
SCATS NO MAINLUP 357
+ SA1 B6 MAINLUP 358
SB4 X1-1 . STRING LENGTH TO B4 MAINLUP 359
SB2 B6-B4 . FIRST MAINLUP 360
SB3 B6-1 . LAST MAINLUP 361
NZ B4,SCATS1 . IF NULL STRING THEN ONE MAINLUP 362
SA0 1 . MORE WORD HAS TO BE RESERVED MAINLUP 363
RJ RESERVE . IN THE STACK MAINLUP 364
SCATS1 SB6 B2+1 . NEW SF TYPE STACK ENTRY CONSISTS MAINLUP 365
RJ STOSFX6 . OF TWO WORDS MAINLUP 366
SX7 2 MAINLUP 367
SA6 B6-1 . THE SVD MAINLUP 368
SA7 B6 . AND THE HEADING MAINLUP 369
SB4 B0 . ZERO IN B4 SIGNALS SF TYPE USUALLY MAINLUP 370
EQ SCATS MAINLUP 371
* MAINLUP 372
ALTCHEK SB3 ALTCSW . MICRO OPERATION CHECK LEFT MAINLUP 373
SA2 ALTCWD . OPERAND FOR ALTERNATION MAINLUP 374
SB2 B6 . B2 IS USED BELOW MAINLUP 375
EQ CHEK MAINLUP 376
* MAINLUP 377
ALTCWD SWITCH ALTCSW,2,8,1,1,5,3,4,7,0,0,0,0,0,0,0 MAINLUP 378
+ ERROR 12 . 0, R,A,D,N,C MAINLUP 379
+ SA4 B6-1 MAINLUP 380
EQ ALTCSS . 1, SS MAINLUP 381
+ SX4 B6-1 MAINLUP 382
EQ ALTCSF . 2, SF MAINLUP 383
+ SA1 B6 MAINLUP 384
SB4 X1 MAINLUP 385
EQ ALTCPA . 3, PA MAINLUP 386
+ MX0 60 MAINLUP 387
EQ ALTCS1 . 4, PE MAINLUP 388
+ SB1 1 MAINLUP 389
SX0 B0-B1 MAINLUP 390
SA2 B6 MAINLUP 391
+ SB4 X2 MAINLUP 392
EQ ALTCS2 . 5, PS MAINLUP 393
+ RJ ITOS . 7, I MAINLUP 394
+ SX0 0 . 8, S MAINLUP 395
SB2 B6 MAINLUP 396
* X0=-1 IFF PE, X0=-0 IFF PA ELSE X0=0 MAINLUP 397
ALTCS1 SB1 2 MAINLUP 398
SA2 B6 MAINLUP 399
SB4 X2 MAINLUP 400
ALTCS2 SA0 3 . RESERVE LOCATIONS FOR ALT AND MAINLUP 401
RJ RESERVE . PERHAPS LIT OR EXP, AND MAINLUP 402
SB6 B2+B1 . PERHAPS ENDEXP MAINLUP 403
SB3 B4+B1 MAINLUP 404
SB3 B6-B3 MAINLUP 405
ALTCS3 SB2 B2-1 . PUSH TOP OPERAND DOWN B1 WORDS MAINLUP 406
EQ B2,B3,ALTCS4 MAINLUP 407
SA1 B2 MAINLUP 408
BX7 X1 MAINLUP 409
SA7 A1+B1 MAINLUP 410
EQ ALTCS3 MAINLUP 411
ALTCS4 PL X0,ALTCSS2 . BRANCH IF S OR I MAINLUP 412
SX6 ALTPM MAINLUP 413
LX6 48 MAINLUP 414
ZR X0,ALTCPE1 . BRANCH IF PE MAINLUP 415
SA6 B6-B4 . PS MAINLUP 416
EQ ALTCSS3 MAINLUP 417
ALTCPE1 SX7 EXPPM MAINLUP 418
SB1 1 MAINLUP 419
LX7 48 MAINLUP 420
SX1 B4+B1 MAINLUP 421
BX7 X1+X7 . PUT EXP AND ENDEXP BRACKETS MAINLUP 422
SA7 B6-B4 . AROUND THE PATTERN EXPRESSION MAINLUP 423
SA6 A7-B1 . ALTPM IN X6 MAINLUP 424
SX7 ENDEXPM MAINLUP 425
LX7 48 MAINLUP 426
SA7 B6 MAINLUP 427
SB6 B6+B1 . LOCATION ALREADY RESERVED MAINLUP 428
SB1 3 MAINLUP 429
JP ALTCSS3 MAINLUP 430
* MAINLUP 431
* SS OR SF TYPE, X4 IS THE ADDRESS OF THE SVD MAINLUP 432
* CONVERT STRING INTO PATTERN MAINLUP 433
* MAINLUP 434
* MAINLUP 435
ALTCSS BSS 0 MAINLUP 436
ALTCSF SA1 X4 . FETCH DESCRIPTOR MAINLUP 437
AX1 36 MAINLUP 438
SB1 2 MAINLUP 439
SB5 X1 . LENGTH TO B5 MAINLUP 440
SA0 X1+1 MAINLUP 441
RJ RESERVE MAINLUP 442
SA1 X4 . HAVE TO FETCH SVD AGAIN SINCE MAINLUP 443
BX4 X1 . IT MIGHT HAVE CHANGED MAINLUP 444
RJ SSTOS . CONVERT THE LIST INTO S FORMAT MAINLUP 445
SB3 B4 MAINLUP 446
SB4 A0 MAINLUP 447
NE B3,B0,ALTCSS2 . RELEASE IF SF MAINLUP 448
SX7 B7 MAINLUP 449
SB7 X4 MAINLUP 450
AX4 18 MAINLUP 451
SA7 X4 MAINLUP 452
ALTCSS2 SX6 ALTPM MAINLUP 453
SX7 LITPM MAINLUP 454
LX7 48 . COMMON PROGRAM TO PLACE THE MAINLUP 455
SX1 B4 . ALT AND LIT PM OPERATIONS MAINLUP 456
LX6 48 MAINLUP 457
BX7 X7+X1 MAINLUP 458
SA7 B6-B4 MAINLUP 459
SA6 A7-1 MAINLUP 460
ALTCSS3 SX7 PETY . PUT HEADER WORD INTO THE STACK MAINLUP 461
LX7 55 . PE TYPE IS TO FOOL HBC OTHERWISE MAINLUP 462
SX4 B4+B1 . IT IS IGNORED MAINLUP 463
BX7 X4+X7 MAINLUP 464
SA7 B6 MAINLUP 465
JP NEXTMIC MAINLUP 466
* PA. B4=LEFT OPERAND STACK ENTRY BYPASS MAINLUP 467
ALTCPA AX1 18 . UNPACK PA PARAMETER MAINLUP 468
SB3 B6 MAINLUP 469
SB1 X1 . INTO B1 MAINLUP 470
SB2 B6-B1 MAINLUP 471
SA0 1 MAINLUP 472
RJ RESERVE MAINLUP 473
ALTCPA1 SA1 B3-1 MAINLUP 474
BX7 X1 MAINLUP 475
SA7 B3 MAINLUP 476
SB3 B3-1 MAINLUP 477
NE B3,B2,ALTCPA1 MAINLUP 478
SX7 ALTPM . PUT ALT OPERATION IN THE FRONT MAINLUP 479
LX7 48 . OF THE LAST ELEMENT (B1 POINTS MAINLUP 480
SA7 B2 . TO THE BEGINNING OF IT RELATIVE MAINLUP 481
SB3 EXPPM-1777B . TO THE END OF THE PATTERN MAINLUP 482
SB5 ARBNOPM-1777B MAINLUP 483
SB1 B6-B4 MAINLUP 484
MX0 12 MAINLUP 485
SA2 B1 MAINLUP 486
BX2 X0*X2 MAINLUP 487
ALTCPA2 SB1 B1+1 . LINK ALL ALT OPERATIONS ON THE MAINLUP 488
ALTCPA3 EQ B1,B6,ALTCPA6 . ZERO LEVEL TOGETHER MAINLUP 489
SA1 B1 MAINLUP 490
UX7 B2,X1 MAINLUP 491
ID X1,ALTCPA2 . PRDPM OR DOLPM MAINLUP 492
GE B0,B2,ALTCPA5 MAINLUP 493
ALTCPA4 SB1 X1+B1 . ANY, SPAN OR THE LIKE MAINLUP 494
EQ ALTCPA3 MAINLUP 495
ALTCPA5 EQ B2,B3,ALTCPA4 MAINLUP 496
EQ B2,B5,ALTCPA4 . EXP OR ARBNO MAINLUP 497
SB2 B2+NALTPMP . =-ALTPM+1777B MAINLUP 498
NE B2,B0,ALTCPA2 . ANYTHING ELSE MAINLUP 499
SB2 A2 MAINLUP 500
SX3 B1-B2 . A2 HOLDS THE LINK MAINLUP 501
BX7 X2+X3 MAINLUP 502
SA7 A2 MAINLUP 503
SA2 A1 MAINLUP 504
BX2 X0*X2 MAINLUP 505
EQ ALTCPA2 MAINLUP 506
ALTCPA6 SB1 1 . END OF SCAN MAINLUP 507
BX7 X2 . MARK END OF LIST WITH ZERO LINK MAINLUP 508
SA7 A2 MAINLUP 509
EQ ALTCSS3 MAINLUP 510
* MAINLUP 511
PMCHEK SB3 PMCSW . MICRO INSTRUCTION MAINLUP 512
SA2 PMCWD . CHECK LEFT OPERAND FOR PATTERN MAINLUP 513
EQ CHEK . MATCH MAINLUP 514
* MAINLUP 515
* SWITCH FOR PMCHECK,IN GENERAL EVERYTHING IS PUT INTO S FORMAT MAINLUP 516
PMCWD SWITCH PMCSW,3,2,4,4,0,0,0,1,0,0,0,0,0,0,0 MAINLUP 517
+ ERROR 15 . 0, P,R,A,D,N,C MAINLUP 518
+ RJ ITOS . 1, I MAINLUP 519
+ SA1 B6 . 2, S MAINLUP 520
BX6 X1 MAINLUP 521
EQ PMC1 MAINLUP 522
+ SX4 B6-1 MAINLUP 523
EQ PMCSF . 3, SF MAINLUP 524
+ SA4 B6-1 . 4, SS,SI MAINLUP 525
PMCSF SA1 X4 MAINLUP 526
AX1 36 MAINLUP 527
SB5 X1 MAINLUP 528
SA0 X1-1 . B6 MAY BE DECREASED IN FACT MAINLUP 529
RJ RESERVE MAINLUP 530
SA1 X4 MAINLUP 531
BX4 X1 MAINLUP 532
RJ SSTOS . CONVERT TO S FORMAT MAINLUP 533
SX2 A0+2 MAINLUP 534
NE B4,B0,PMCSF1 . RELEASE IF SF MAINLUP 535
SX7 B7 . RELEASE IS DONE BY CHAINING THE MAINLUP 536
SB7 X4 . END OF LIST TO THE FREE CHAIN MAINLUP 537
AX4 18 . AND SETTING B7 TO THE BEGINNING MAINLUP 538
SA7 X4 . OF THE LIST. MAINLUP 539
PMCSF1 SX6 STY . STRING HEADER WORD INTO X6 MAINLUP 540
LX6 55 MAINLUP 541
BX6 X2+X6 MAINLUP 542
PMC1 SX5 X5 . PACK ADDRESS OF OPERAND MAINLUP 543
SA1 UA . OR UA IF IT IS ZERO INTO MAINLUP 544
LX5 18 . THE HEADING MAINLUP 545
LX1 18 MAINLUP 546
NZ X5,PMC2 MAINLUP 547
BX5 X1 MAINLUP 548
PMC2 BX6 X6+X5 MAINLUP 549
SA6 B6 MAINLUP 550
EQ NEXTMIC MAINLUP 551
* MAINLUP 552
* MAINLUP 553
* THE FOLLOWING PROCEDURE CHECKS THE OPERANDS FOR ARITHMETIC MAINLUP 554
* OPERATIONS (EXCEPT **). NUMBERS WITH ABS VALUE LESS THAN MAINLUP 555
* X0 WILL BE REPRESENTED AS BINARY INTEGERS WHILE LARGE MAINLUP 556
* NUMBERS WILL BE HANDLED IN STRING FORM. A0 CONTAINS LOG(X0) MAINLUP 557
* - MAINLUP 558
* MAINLUP 559
SACHEK1 SX0 2 . RETURN INTEGER TYPE MAINLUP 560
BX7 X7+X0 MAINLUP 561
SACHEK NO . ENTRY MAINLUP 562
+ SA3 B6 MAINLUP 563
SA2 ARITWD . SWITCH ON TYPE OF TOP OPERAND MAINLUP 564
AX3 55 MAINLUP 565
LX3 2 MAINLUP 566
SB4 X3 MAINLUP 567
AX2 B4,X2 MAINLUP 568
MX3 56 MAINLUP 569
BX2 -X3*X2 MAINLUP 570
SB3 X2 MAINLUP 571
JP B3+ARITSW MAINLUP 572
* MAINLUP 573
ARITWD SWITCH ARITSW,3,5,2,4,0,0,0,6,1,0,0,0,0,0 MAINLUP 574
ERR47 ERROR 47 . 0, P,A,D,N,C MAINLUP 575
+ SX7 B0 . 1, R MAINLUP 576
EQ SACHEK MAINLUP 577
+ SA4 B6-1 . 2, SS MAINLUP 578
EQ ACHEKSF MAINLUP 579
+ SX4 B6-1 . 3, SF MAINLUP 580
EQ ACHEKSF MAINLUP 581
+ SA4 B6-1 . 4, SI MAINLUP 582
EQ ACHEKSI MAINLUP 583
+ SA1 B6 . 5, S MAINLUP 584
SB5 X1 MAINLUP 585
EQ ACHEKS MAINLUP 586
+ SA1 B6-1 . 6, I MAINLUP 587
PL X1,ACHEKI1 MAINLUP 588
BX1 -X1 . ABS VALUE MAINLUP 589
ACHEKI1 IX0 X1-X0 MAINLUP 590
SX7 ITY MAINLUP 591
LX7 55 MAINLUP 592
NG X0,SACHEK1 . LESS THAN X0, RETURN INTEGER TYPE MAINLUP 593
RJ ITOS . ELSE CONVERT TO STRING. MAINLUP 594
EQ SACHEK MAINLUP 595
ACHEKSI SA2 X4 . SI FORMAT MAINLUP 596
SA1 X2-1 . TEST INTEGER PART FIRST MAINLUP 597
IX0 X1-X0 MAINLUP 598
PL X0,ACSI1 . IF TOO BIG, GO GET THE STRING PART MAINLUP 599
BX6 X1 MAINLUP 600
SA6 A4 MAINLUP 601
ACHKSI1 SX7 ITY . ELSE PUT THE INTEGER TO THE MAINLUP 602
SX0 2 . TOP OF THE STACK MAINLUP 603
LX7 55 MAINLUP 604
BX7 X0+X7 MAINLUP 605
SA7 B6+0 MAINLUP 606
EQ SACHEK . RETURN MAINLUP 607
ACSI1 BX4 X2 MAINLUP 608
AX4 36 . LENGTH OF THE STRING TO X4 MAINLUP 609
SB5 X4+0 MAINLUP 610
SA0 X4-1 . RESERVE SPACE MAINLUP 611
RJ RESERVE . (AO MAY BE NEGATIVE) MAINLUP 612
BX1 X2 MAINLUP 613
RJ SSTOS . CONVERT SI TO S MAINLUP 614
SX1 X4+1 MAINLUP 615
EQ ACHEKS5 . GO TO FORM AN S TYPE HEADING MAINLUP 616
* MAINLUP 617
ACHEKS SB1 0 . PROCESS A NUMBER GIVEN IN S FORM MAINLUP 618
SB2 0 . SET STATE AND COUNT TO ZERO MAINLUP 619
SB3 B6-B5 . NORMALIZED STRING WILL BE STORED MAINLUP 620
SX2 B0 . FROM B0. X2 IS BINARY VALUE MAINLUP 621
SB4 ACHEKSR . RETURN ADDRESS MAINLUP 622
ACHEKSR SB5 B5-1 MAINLUP 623
EQ B5,B0,ACHEKS1 MAINLUP 624
SA1 B6-B5 . EXAMINE ALL CHARACTERS MAINLUP 625
EQ DIGIT MAINLUP 626
* MAINLUP 627
ACHEKSF SA1 X4 . RESERVE SPACE IN STACK FOR MAINLUP 628
AX1 36 . LONGEST POSSIBLE RESULT MAINLUP 629
SB5 A0 . SAVE A0 MAINLUP 630
SA0 X1 MAINLUP 631
RJ RESERVE MAINLUP 632
SA4 X4 MAINLUP 633
BX0 X4 MAINLUP 634
SB3 A0+0 MAINLUP 635
BX6 X4 MAINLUP 636
SA0 B5 MAINLUP 637
SB5 B4 . B5 IS 0 IFF SF MAINLUP 638
SB3 B6-B3 MAINLUP 639
SB3 B3-2 MAINLUP 640
SB1 B0 . INITIALIZE DIGIT COUNT MAINLUP 641
SB4 ACHKSFR . RETURN ADDRESS MAINLUP 642
SB2 B0 . STATE MAINLUP 643
SX2 B0 . BINARY VALUE MAINLUP 644
ACHKSF2 ZR X0,ACHKSF3 MAINLUP 645
SA4 X0+0 . NEXT WORD FROM THE LIST MAINLUP 646
SX0 X4 MAINLUP 647
BX4 X4-X0 MAINLUP 648
ACHKSFR MX3 54 . UNPACK CHARACTERS AND CALL DIGIT MAINLUP 649
LX4 6 MAINLUP 650
BX1 -X3*X4 MAINLUP 651
NZ X1,DIGIT MAINLUP 652
EQ ACHKSF2 MAINLUP 653
ACHKSF3 NE B5,B0,ACHEKS1 . RELEASE LIST IF SF MAINLUP 654
SX7 B7 MAINLUP 655
SB7 X6 MAINLUP 656
AX6 18 MAINLUP 657
SA7 X6 MAINLUP 658
EQ ACHEKS1 MAINLUP 659
* MAINLUP 660
DIGIT SX7 X1+0 . OPEN SUBROUTINE TO CONVERT MAINLUP 661
SX1 X1-1R+ . STRINGS TO INTEGERS MAINLUP 662
PL X1,DIGIT2 . BRANCH IF NOT DIGIT MAINLUP 663
SX1 X1+10 MAINLUP 664
NG X1,DERR2 . ERROR IF LETTER MAINLUP 665
NZ X1,DIGIT4 . IGNORE LEADING BLANKS MAINLUP 666
GE B0,B2,DIGIT3 MAINLUP 667
DIGIT4 BX3 X2 MAINLUP 668
SB2 B4 MAINLUP 669
LX2 2 . MULTIPLY ACCUMULATED VALUE BY 10 MAINLUP 670
IX2 X2+X3 . AND ADD NEW DIGIT MAINLUP 671
LX2 1 MAINLUP 672
IX2 X2+X1 MAINLUP 673
DIGIT1 SB1 B1+1 . BUMP DIGIT COUNT MAINLUP 674
SA7 B1+B3 . STORE NEXT DIGIT MAINLUP 675
DIGIT6 JP B4 . RETURN MAINLUP 676
DIGIT2 NE B2,B0,DERR2 . ERROR IF AFTER SIGN MAINLUP 677
SX3 X1-1 MAINLUP 678
DIGIT3 SB2 -1 . SET STATE TO AFTER SIGN MAINLUP 679
ZR X1,DIGIT6 . IGNORE + MAINLUP 680
ZR X3,DIGIT1 . BRANCH IF - MAINLUP 681
DERR2 SB6 B3 . RESET B6 TO LAST GOOD ENTRY MAINLUP 682
JP ERR2 MAINLUP 683
* MAINLUP 684
ACHEKS1 SB6 B3+B1 . AFTER CONVERSION MAINLUP 685
EQ B1,B0,ACHEKS3 . BRANCH IF NULL STRING MAINLUP 686
SA1 B3+1 . PICK UP FIRST CHARACTER MAINLUP 687
SX1 X1-1R- MAINLUP 688
NZ X1,ACHEKS2 . BYPASS IF NOT - MAINLUP 689
BX0 X0-X0 MAINLUP 690
SB1 B1-1 MAINLUP 691
IX2 X0-X2 . CHANGE THE SIGN OF THE BINARY VALUEMAINLUP 692
ACHEKS2 SX0 A0-B1 MAINLUP 693
NG X0,ACHEKS4 . TOO LONG, PRODUCE S TYPE RESULT MAINLUP 694
ACHEKS3 SB6 B3+2 MAINLUP 695
BX6 X2 MAINLUP 696
SA6 B6-1 . I TYPE RESULT OT8ERWISE MAINLUP 697
EQ ACHKSI1 MAINLUP 698
ACHEKS4 SX1 B1+1 MAINLUP 699
ACHEKS5 SX7 STY . S TYPE HEADING TO X7 USING X1 MAINLUP 700
SB6 B6+1 MAINLUP 701
LX7 55 MAINLUP 702
BX7 X7+X1 MAINLUP 703
SA7 B6 MAINLUP 704
EQ SACHEK MAINLUP 705
* MAINLUP 706
ALTER SB3 ALTSW . MICRO OPERATION MAINLUP 707
SA2 ALTWD . ALTERNATION MAINLUP 708
EQ CHEK MAINLUP 709
* MAINLUP 710
ALTWD SWITCH ALTSW,7,5,8,8,0,1,2,4,3,3,3,3,3,3,3 MAINLUP 711
+ SB3 0 . 0, PS MAINLUP 712
+ SA4 B6 MAINLUP 713
SB2 X4 MAINLUP 714
EQ ALTPA1 . 1, PA MAINLUP 715
+ SA1 B6 MAINLUP 716
SB2 X1 MAINLUP 717
EQ ALTPE1 . 2, PE MAINLUP 718
+ ERROR 12 . 3, R,A,D,N,C MAINLUP 719
+ RJ ITOS . 4, I MAINLUP 720
+ SA1 B6 . 5, S MAINLUP 721
SB2 X1 MAINLUP 722
SA2 B6-B2 MAINLUP 723
SB1 X2 MAINLUP 724
EQ ALTS2 MAINLUP 725
+ SX4 B6-1 MAINLUP 726
EQ ALTSS1 . 6, SF MAINLUP 727
+ SA4 B6-1 MAINLUP 728
SB3 0 . 7, SS,SI MAINLUP 729
ALTSS1 SA1 B6-2 MAINLUP 730
SA2 X4 MAINLUP 731
SB1 X1 . CONVERT THE LIST STRUCTURE INTO MAINLUP 732
SB2 A1 . A LIT OPERATION MAINLUP 733
AX2 36 MAINLUP 734
SB5 X2 MAINLUP 735
SA0 X2-1 MAINLUP 736
RJ RESERVE MAINLUP 737
SA1 X4 MAINLUP 738
BX4 X1 MAINLUP 739
RJ SSTOS MAINLUP 740
SB2 B6-B2 MAINLUP 741
EQ B3,B0,ALTS2 . RELEASE LIST IF SF MAINLUP 742
SX7 B7 MAINLUP 743
SB7 X4 MAINLUP 744
AX4 18 MAINLUP 745
SA7 X4 MAINLUP 746
ALTS2 SX7 LITPM MAINLUP 747
LX7 48 MAINLUP 748
SX0 B2 . PREPARE ALT PARAMETER MAINLUP 749
SX1 B2+0 MAINLUP 750
BX7 X1+X7 MAINLUP 751
SA7 B6-B2 MAINLUP 752
* PS JOINS AT THIS POINT... MAINLUP 753
ALTS3 SX6 PATY . INSERT PA TYPE HEADING MAINLUP 754
LX6 55 MAINLUP 755
LX0 18 MAINLUP 756
SX1 B2+B1 MAINLUP 757
BX6 X0+X6 MAINLUP 758
BX6 X1+X6 MAINLUP 759
SB1 B2+B1 . UPDATE THE CHAIN OF ALT MAINLUP 760
SB1 B6-B1 . OPERATIONS. ALL ALT-S WILL POINT MAINLUP 761
SA6 B6+0 . TO THE END OF THE PATTERN+1 MAINLUP 762
SB1 B1+1 MAINLUP 763
MX0 12 MAINLUP 764
ALTS5 SA1 B1 MAINLUP 765
SB2 X1 MAINLUP 766
SX2 B6-B1 MAINLUP 767
BX7 X0*X1 MAINLUP 768
BX7 X2+X7 MAINLUP 769
SA7 A1+0 MAINLUP 770
SB1 A1+B2 MAINLUP 771
NE B2,B0,ALTS5 MAINLUP 772
EQ NEXTMIC MAINLUP 773
* PA OR PS (B3=0 IFF PS), B2=STACK BYPASS OF RIGHT OPERAND MAINLUP 774
ALTPA1 SA3 B6-B2 MAINLUP 775
SB4 B6-B2 MAINLUP 776
SB2 B2-1 MAINLUP 777
SX0 B2 MAINLUP 778
SB1 X3 MAINLUP 779
SB6 B6-1 MAINLUP 780
ALTPA2 SB4 B4+1 . POP THE PATTERN ONE WORD UP MAINLUP 781
SA1 B4 MAINLUP 782
BX7 X1 MAINLUP 783
SA7 A1-1 MAINLUP 784
NE B4,B6,ALTPA2 MAINLUP 785
EQ B0,B3,ALTS3 . BRANCH IF SIMPLE PATTERN MAINLUP 786
AX4 18 . THE RESULT PARAMETER IS THE MAINLUP 787
SX0 X4 . PARAMETER OF THE SECOND MAINLUP 788
JP ALTS3 . OPERAND IN THIS CASE. MAINLUP 789
* PE. B2=RIGHT OPERAND STACK ENTRY BYPASS MAINLUP 790
ALTPE1 SA3 B6-B2 MAINLUP 791
SB3 B6-B2 MAINLUP 792
SB1 X3 . PUT EXP AND ENDEX BRACKETS MAINLUP 793
SA0 1 . AROUND THE PATTERN EXPRESSION MAINLUP 794
RJ RESERVE MAINLUP 795
SX7 EXPPM MAINLUP 796
SB2 B2+1 MAINLUP 797
LX7 48 MAINLUP 798
SX0 B2 MAINLUP 799
SX6 ENDEXPM MAINLUP 800
BX7 X0+X7 MAINLUP 801
LX6 48 MAINLUP 802
SA7 B3 MAINLUP 803
SA6 B6-1 MAINLUP 804
EQ ALTS3 MAINLUP 805
* MAINLUP 806
ASCHEK SA1 TENTO9 . MICRO OPERATION MAINLUP 807
SA0 9 . CHECK OPERAND FOR ADDITION AND MAINLUP 808
ACHEK1 BX0 X1 . SUBTRACTION MAINLUP 809
RJ SACHEK MAINLUP 810
EQ NEXTMIC MAINLUP 811
* MAINLUP 812
MCHEK SA1 TENTO10 . MICRO OPERATION MAINLUP 813
SA0 10 . =LOG10 OF X0 MAINLUP 814
EQ ACHEK1 MAINLUP 815
* MAINLUP 816
DCHEK SA1 TENTO10 . MICRO OPERATION MAINLUP 817
SA0 10 . CHECK OPERAND FOR DIVISION MAINLUP 818
EQ ACHEK1 MAINLUP 819
* MAINLUP 820
TENTO9 DATA 1000000000 MAINLUP 821
TENTO10 DATA 10000000000 MAINLUP 822
* MAINLUP 823
* MAINLUP 824
UNSUB SB1 SUBTR . MICRO OPERATION UNARY MINUS MAINLUP 825
EQ UNX MAINLUP 826
UNADD SB1 ADD . MICRO OPERATION UNARY PLUS MAINLUP 827
UNX SA1 B6+0 . TEST FOR REAL OPERAND MAINLUP 828
BX7 X1 MAINLUP 829
AX1 55 MAINLUP 830
SX1 X1-RTY MAINLUP 831
NZ X1,JPB1 MAINLUP 832
SA7 B6-2 . CHANGE LEFTOPERAND TO REAL MAINLUP 833
JP B1 . TYPE MAINLUP 834
* MAINLUP 835
* MAINLUP 836
* MAINLUP 837
* MAINLUP 838
ADD SA1 TENTO9 . MICRO OPERATION + MAINLUP 839
SA0 9 MAINLUP 840
BX0 X1 MAINLUP 841
RJ SACHEK . CHECK RIGHT OPERAND MAINLUP 842
SA1 B6-2 MAINLUP 843
LX7 3 MAINLUP 844
LX1 3 MAINLUP 845
PL X7,ADDSR1 . BRANCH IF ANY OF THE OPERANDS MAINLUP 846
PL X1,ADDSR1 MAINLUP 847
SA1 B6-1 MAINLUP 848
SA2 B6-3 MAINLUP 849
IX7 X1+X2 . ADD THE INTEGERS MAINLUP 850
ADDEXIT BX1 X1-X1 MAINLUP 851
IX7 X1+X7 . ENSURE NO MINUS ZERO MAINLUP 852
SA7 A2+0 MAINLUP 853
SB6 B6-2 MAINLUP 854
EQ NEXTMIC MAINLUP 855
* MAINLUP 856
SUBTR SA1 TENTO9 . MICRO OPERATION - MAINLUP 857
SA0 9 MAINLUP 858
BX0 X1 MAINLUP 859
RJ SACHEK . CHECK RIGHT OPERAND MAINLUP 860
SB2 SUBTR1 MAINLUP 861
EQ ARITH MAINLUP 862
+ EQ SUBTRS . BRANCH IF STRING SUBTRACTION MAINLUP 863
+ FX7 X2-X1 . REAL OPERANDS MAINLUP 864
EQ ARITH4 MAINLUP 865
SUBTR1 IX7 X2-X1 MAINLUP 866
EQ ADDEXIT MAINLUP 867
* MAINLUP 868
MULT SA1 TENTO10 . MICRO OPERATION * MAINLUP 869
SA0 10 . =LOG10 OF X0 MAINLUP 870
BX0 X1 MAINLUP 871
RJ SACHEK . OPERAND CHECK AS ABOVE MAINLUP 872
SB2 MULT1 MAINLUP 873
EQ ARITH MAINLUP 874
+ EQ MULTS . BRANCH IF STRING MULTIPLICATION MAINLUP 875
+ FX7 X2*X1 . REAL OPERANDS MAINLUP 876
EQ ARITH4 MAINLUP 877
MULT1 PX1 X1 . PERFORM INTEGER MULTIPLICATION MAINLUP 878
PX2 X2 MAINLUP 879
DX7 X1*X2 MAINLUP 880
UX7 X7 MAINLUP 881
FX3 X1*X2 MAINLUP 882
SA1 TENTO10 MAINLUP 883
BX2 X7 MAINLUP 884
AX2 59 . FILL X2 WITH SIGN OF THE PRODUCT MAINLUP 885
BX2 X2-X7 . ABSOLUTE VALUE OF THE PRODUCT MAINLUP 886
IX1 X2-X1 . ABS(PRODUCT) - 10@10 MAINLUP 887
NX3 X3 MAINLUP 888
NZ X3,ERR32 MAINLUP 889
PL X1,ERR32 . TOO BIG WITHOUT STRING ARITHMETIC MAINLUP 890
EQ ADDEXIT MAINLUP 891
* MAINLUP 892
DIV SA1 TENTO10 . MICRO OPERATION / MAINLUP 893
SA0 10 . =LOG10 OF X0 MAINLUP 894
BX0 X1 MAINLUP 895
RJ SACHEK . OPERAND CHECK AS ABOVE MAINLUP 896
SB2 DIV1 MAINLUP 897
EQ ARITH MAINLUP 898
+ EQ DIVS . BRANCH IF STRING DIVISION MAINLUP 899
+ FX7 X2/X1 . REAL OPERANDS MAINLUP 900
EQ ARITH4 MAINLUP 901
DIV1 ZR X1,ERR3 . ERROR - DIVISION BY ZERO MAINLUP 902
PX1 X1 . INTEGER DIVISION MAINLUP 903
PX2 X2 MAINLUP 904
NX1 X1 MAINLUP 905
FX7 X2/X1 MAINLUP 906
UX7 B3,X7 MAINLUP 907
LX7 B3,X7 MAINLUP 908
EQ ADDEXIT MAINLUP 909
* MAINLUP 910
* USED ONLY BY SUBTR,MULT AND DIV MAINLUP 911
* MAINLUP 912
ARITH SA1 B6-2 . SAME AS IN ADD MAINLUP 913
LX1 3 MAINLUP 914
LX7 3 MAINLUP 915
PL X7,ARITH1 MAINLUP 916
PL X1,ARITH1 . OF THE OPERANDS IS AN INTEGER MAINLUP 917
SA1 B6-1 MAINLUP 918
SA2 B6-3 MAINLUP 919
JP B2 MAINLUP 920
ARITH1 LX1 59 MAINLUP 921
NZ X7,ARITH3 MAINLUP 922
NG X1,ERR38 MAINLUP 923
SA1 B6-1 MAINLUP 924
SA2 B6-3 MAINLUP 925
JP B2-1 MAINLUP 926
ARITH3 JP B2-2 MAINLUP 927
* MAINLUP 928
* MAINLUP 929
ADDSR1 LX1 59 MAINLUP 930
NZ X7,ADDS1 MAINLUP 931
NG X1,ERR38 MAINLUP 932
SA1 B6-1 MAINLUP 933
SA2 B6-3 MAINLUP 934
FX7 X1+X2 . PERFORM REAL ADDITION MAINLUP 935
ARITH4 OR X7,ERR37 MAINLUP 936
ID X7,ERR37 MAINLUP 937
NX7 X7 . NORMALIZE IN CASE OP WAS + OR - MAINLUP 938
JP ADDEXIT MAINLUP 939
* MAINLUP 940
* MAINLUP 941
CONCAT SA4 B6 . RIGHT OPERAND HEADING MAINLUP 942
SB5 X4 MAINLUP 943
AX4 55 MAINLUP 944
SA3 B6-B5 . LEFT OPERAND HEADING MAINLUP 945
AX3 55 . NOTE, A3 IS USED BELOW MAINLUP 946
SB3 X4 MAINLUP 947
NZ X3,CONC1 . SPECIAL TREATMENT FOR SF CAT SS MAINLUP 948
SX0 X4-SSTY MAINLUP 949
ZR X0,CTSFSS MAINLUP 950
CONC1 LX3 2 . UNPACK TYPES MAINLUP 951
LX4 2 MAINLUP 952
SB2 X3 MAINLUP 953
MX0 56 MAINLUP 954
SA1 CATWD MAINLUP 955
AX1 B2,X1 MAINLUP 956
BX1 -X0*X1 . SELECT SWITCH WORD DEPENDING ON MAINLUP 957
SA2 X1+CATSW1 . LEFT OPERAND TYPE MAINLUP 958
SB3 X4 MAINLUP 959
AX1 B3,X2 MAINLUP 960
BX1 -X0*X1 . SWITCH ON RIGHT OPERAND TYPE MAINLUP 961
SB2 X1 MAINLUP 962
JP B2+CATSW2 MAINLUP 963
* MAINLUP 964
CATWD SWITCH CATSW1,1,0,0,0,2,2,2,0,0,0,0,0,0,0,0 LEFT OP MAINLUP 965
SWITCH DUMMY1,7,8,7,7,0,0,0,0,0,0,0,0,0,0,0 R,A,D,N,C MAINLUP 966
SWITCH DUMMY2,14,12,14,14,1,1,1,10,6,6,6,6,6,6,6 SF MAINLUP 967
SWITCH CATSW2,5,4,5,5,2,2,2,3,0,0,0,0,0,0,0 PS,PA,PE MAINLUP 968
* MAINLUP 969
* TYPE X HERE DENOTES R,A,D,N,C P IS AS USUAL MAINLUP 970
* MAINLUP 971
+ ERROR 1 . 0, XX,XP,PX,XI,XSI MAINLUP 972
+ SA4 A3-1 . 1, SFP MAINLUP 973
EQ CATSFP MAINLUP 974
CATPP2 SB1 B6-B5 . 2, PP MAINLUP 975
SA2 B6-B5 MAINLUP 976
EQ CATPP MAINLUP 977
+ RJ ITOS . 3, PI MAINLUP 978
+ SA4 B6 . 4, PS MAINLUP 979
SB1 X4 MAINLUP 980
EQ CATPS MAINLUP 981
SX4 B6-1 . 5, PSF, PSS, PSI MAINLUP 982
EQ CATPSF MAINLUP 983
+ SA1 B6-3 . 6, SFX MAINLUP 984
EQ CATSFR MAINLUP 985
+ SA1 B6-1 . 7, XSF,XSS MAINLUP 986
EQ CATSFR1 MAINLUP 987
+ SA1 B6+0 . 8, XS MAINLUP 988
SX1 X1-1 MAINLUP 989
SB6 B6-1 MAINLUP 990
EQ CATSFR2 MAINLUP 991
+ SA1 B6-1 . 10, SFI MAINLUP 992
RJ ITOSF MAINLUP 993
SA6 B6-1 MAINLUP 994
EQ *+2 MAINLUP 995
+ RJ SCATS . 12, SFS MAINLUP 996
+ SB3 0 MAINLUP 997
CTSFSS SA4 B6-3 . 14, SFSS,SFSI,SFSF MAINLUP 998
AX4 18 MAINLUP 999
SA4 X4 . FETCH LAST WORD OF LEFTOPERAND MAINLUP 1000
SA2 B6-1 . SVD OF RIGHT OPERAND TO X2 MAINLUP 1001
SB5 CTSFSSR . RETURN ADDRESS MAINLUP 1002
* MAINLUP 1003
* THE FOLLOWING CODE SEQUENCE MAY BE CALLED AS MAINLUP 1004
* A SUBROUTINE. MAINLUP 1005
* X2,X4,A4,B5,B3 HAVE TO BE SET UP. MAINLUP 1006
* X0,X1,X2,X3,X4,X5,X6,X7,B1,B2,B4 ARE DESTROYED MAINLUP 1007
CTSFSS0 MX0 6 MAINLUP 1008
BX7 X4 MAINLUP 1009
SB1 60 MAINLUP 1010
CTSFSS1 BX6 X4*X0 . COUNT THE NUMBER OF CHARACTERS MAINLUP 1011
ZR X6,CTSFSS2 . IN THE LAST WORD OF THE LEFT OP. MAINLUP 1012
LX4 6 MAINLUP 1013
SB1 B1-6 MAINLUP 1014
EQ CTSFSS1 . RIGHT SHIFT TO B1 MAINLUP 1015
CTSFSS2 SB2 B1-18 . LEFT SHIFT TO B2 MAINLUP 1016
SX3 A4+0 . NOTE HOW X3 IS USED MAINLUP 1017
EQ B3,B0,CATSF . SKIP IF SF ON RIGHT MAINLUP 1018
SA2 X2+0 MAINLUP 1019
* MAINLUP 1020
CATSF SB4 B1-6 MAINLUP 1021
AX6 X0,B4 . MASK FOR RIGHT SHIFT MAINLUP 1022
BX5 X6 MAINLUP 1023
LX5 18 . MASK FOR LEFT SHIFT MAINLUP 1024
SX4 B7 MAINLUP 1025
MX0 42 . MASK FOR ADDRESS FIELD MAINLUP 1026
CATSF4 SX2 X2 . TAKE NEXT WORD FROM RIGHT OPERAND MAINLUP 1027
ZR X2,CATSF5 MAINLUP 1028
SA2 X2 MAINLUP 1029
CATSF5 BX1 X2*X6 . PREPARE FOR RIGHT SHIFT MAINLUP 1030
LX1 B1,X1 . RIGHT SHIFT MAINLUP 1031
BX7 X7+X1 . ADD TO REST OF PREVIOUS WORD MAINLUP 1032
BX1 -X0*X1 MAINLUP 1033
BX7 X0*X7 MAINLUP 1034
ZR X1,CATSF8 . READY IF LAST 18 BITS ARE ZERO MAINLUP 1035
SB7 X4 MAINLUP 1036
SA1 X4 . GET NEXT FREE WORD MAINLUP 1037
BX7 X7+X4 . ADD LINK TO LAST WORD MAINLUP 1038
ZR X1,CATSF7 MAINLUP 1039
CATSF6 BX4 -X0*X1 MAINLUP 1040
SA7 X3 . AND STORE MAINLUP 1041
SX3 A1 MAINLUP 1042
BX1 -X5*X2 . PREPARE FOR LEFT SHIFT MAINLUP 1043
LX7 B2,X1 . LEFT SHIFT MAINLUP 1044
EQ CATSF4 . LOOP MAINLUP 1045
CATSF7 RJ MORFREE MAINLUP 1046
EQ CATSF6 MAINLUP 1047
CATSF8 SB7 X4 MAINLUP 1048
JP B5 . RETURN FROM CATSF MAINLUP 1049
* MAINLUP 1050
CTSFSSR SA7 X3 . STORE LAST WORD MAINLUP 1051
SA1 B6-1 MAINLUP 1052
SA2 X1 MAINLUP 1053
NE B3,B0,CTSFSS9 . RELEASE RIGHT OPERAND IF SF MAINLUP 1054
BX2 X1 MAINLUP 1055
SX7 B7 MAINLUP 1056
SB7 X1 MAINLUP 1057
AX1 18 MAINLUP 1058
SA7 X1 MAINLUP 1059
CTSFSS9 SA4 B6-3 . LEFT OPERAND SVD MAINLUP 1060
SB6 B6-2 MAINLUP 1061
AX2 36 . LENGTH OF RIGHT OPERAND MAINLUP 1062
BX2 -X0*X2 MAINLUP 1063
LX3 18 MAINLUP 1064
LX0 18 MAINLUP 1065
LX2 36 MAINLUP 1066
BX6 X0*X4 . MASK LAST OFF MAINLUP 1067
IX6 X6+X2 . TOTAL LENGTH MAINLUP 1068
BX6 X6+X3 . ADD LAST TO SVD MAINLUP 1069
SA6 A4 . STORE RESULT SVD MAINLUP 1070
SA1 MXLNGTH MAINLUP 1071
AX6 36 . CHECK LENGTH AGAINST LIMIT MAINLUP 1072
IX1 X1-X6 MAINLUP 1073
PL X1,NEXTMIC MAINLUP 1074
ERR18 ERROR 18 MAINLUP 1075
* MAINLUP 1076
CATSFR SA2 A1+B5 . RELEASE LEFT OPERAND MAINLUP 1077
SA4 B6 . RESULT EQUALS TO RIGHT MAINLUP 1078
BX6 X2 . OPERAND MAINLUP 1079
BX7 X4 . NOTE - B5 HAPPENS TO CONTAIN 2 MAINLUP 1080
SA6 A1 MAINLUP 1081
SA7 A3 MAINLUP 1082
SX4 -1 . MAKE X4 NEGATIVE MAINLUP 1083
* KLUDGE TO FIX SFX CONCATENATION MAINLUP 1084
* NEED TO RELEASE STRING STORAGE USED BY TEMPORARY STRING MAINLUP 1085
SA1 X1 . FETCH THE TEMPOARY STRING MAINLUP 1086
* RELEASE THE STRING STORAGE MAINLUP 1087
SX7 B7 MAINLUP 1088
SB7 A1 MAINLUP 1089
SA7 A1 MAINLUP 1090
* MUST JUMP AROUND THE FETCH AS X1 SHOULD NOW HAVE ZERO IN IT MAINLUP 1091
JP CATSFR1A MAINLUP 1092
CATSFR1 SA1 X1 . ERROR IF SF DOES NOT CONTAIN ZERO MAINLUP 1093
CATSFR1A SB6 B6-B5 . REMOVE RIGHT OPERAND MAINLUP 1094
NE B3,B0,CATSFR2 . RELEASE RIGHT OPERAND IF SF MAINLUP 1095
SX7 B7 MAINLUP 1096
SX4 B0-B6 . MAKE X4 NEGATIVE MAINLUP 1097
SB7 A1 MAINLUP 1098
SA7 A1 MAINLUP 1099
CATSFR2 NG X4,CATSFR3 MAINLUP 1100
SA1 X1+0 . VALUE TO X1 IF SS OR SI MAINLUP 1101
CATSFR3 ZR X1,NEXTMIC . ERROR IF X1 NOT ZERO MAINLUP 1102
EQ ERR13 MAINLUP 1103
* MAINLUP 1104
CATPP SB1 B1+1 MAINLUP 1105
SA1 B1+0 MAINLUP 1106
EQ B1,B6,CATPP1 . PUSH RIGHT OPERAND ONE WORD UP MAINLUP 1107
BX6 X1 . IN THE STACK MAINLUP 1108
SA6 B1-1 MAINLUP 1109
EQ CATPP MAINLUP 1110
CATPP1 SB1 X2-1 . RESULT IS OF PE TYPE MAINLUP 1111
SB6 B6-1 MAINLUP 1112
SX6 X1+B1 . CALCULATE BYPASS MAINLUP 1113
JP CATPS1 MAINLUP 1114
* MAINLUP 1115
CATPS SA3 B6-B1 MAINLUP 1116
SX0 LITPM . CONVERT STRING TO A LITPM OPERATIONMAINLUP 1117
SX6 B1 . OVERWRITING THE HEADING MAINLUP 1118
LX0 48 . OF THE LEFT OPERAND PATTERN MAINLUP 1119
BX6 X6+X0 MAINLUP 1120
SA6 A3 MAINLUP 1121
SX6 X3+B1 . CALCULATE BYPASS MAINLUP 1122
* X6=STACK BYPASS OF RESULT MAINLUP 1123
CATPS1 SX0 PETY . FORM AND STORE PE HEADING MAINLUP 1124
LX0 55 MAINLUP 1125
BX6 X6+X0 MAINLUP 1126
SA6 B6 MAINLUP 1127
EQ NEXTMIC MAINLUP 1128
* MAINLUP 1129
CATPSF EQ B3,B0,CATPSF2 . BRANCH IF SF MAINLUP 1130
SA4 X4+0 MAINLUP 1131
CATPSF2 SA1 X4 MAINLUP 1132
AX1 36 . LENGTH OF RIGHT OP STRING TO X1 MAINLUP 1133
SA0 X1-1 MAINLUP 1134
SA3 A3 . LEFT OPERAND HEADING MAINLUP 1135
SB1 X1+1 . LENGTH + 1 MAINLUP 1136
SB5 X1 . LENGTH FOR SSTOS MAINLUP 1137
SB4 X3 . BYPASS OF LEFT OPERAND MAINLUP 1138
RJ RESERVE . RESERVE LENGTH - 1 WORDS MAINLUP 1139
SA1 X4 . TAKE SVD AFRESH MAINLUP 1140
BX4 X1 MAINLUP 1141
RJ SSTOS . BREAK DOWN THE STRING MAINLUP 1142
SX6 LITPM . ONE CHARACTER PER WORD MAINLUP 1143
NE B3,B0,CATPSF1 . RELEASE RIGHT OPERAND IF SF MAINLUP 1144
SX7 B7 MAINLUP 1145
SB7 X4 MAINLUP 1146
AX4 18 MAINLUP 1147
SA7 X4 MAINLUP 1148
CATPSF1 SX0 B1 MAINLUP 1149
LX6 48 MAINLUP 1150
BX7 X0+X6 MAINLUP 1151
SX6 B4+B1 . NEW BYPASS FOR HEADING MAINLUP 1152
SA7 B6-B1 . STORE LITPM MAINLUP 1153
EQ CATPS1 MAINLUP 1154
* MAINLUP 1155
CATSFP AX4 36 MAINLUP 1156
SB5 X4 MAINLUP 1157
SB2 A4+0 MAINLUP 1158
SB4 A3+1 MAINLUP 1159
EQ B5,B0,CATSFP2 . BRANCH IF SF IS OF ZERO LENGTH MAINLUP 1160
SA0 X4-1 MAINLUP 1161
SB1 B6 MAINLUP 1162
SB3 A0 MAINLUP 1163
RJ RESERVE . RESERVE SPACE FOR LITPM MAINLUP 1164
CATSFP1 SB1 B1-1 . DISPLACE THE PATTERN B3 WORDS MAINLUP 1165
SA1 B1 . TOWARD THE HIGH CORE MAINLUP 1166
BX6 X1 MAINLUP 1167
SA6 A1+B3 MAINLUP 1168
NE B1,B4,CATSFP1 MAINLUP 1169
SA1 B2 . FETCH THE SVD AFRESH MAINLUP 1170
SB4 B6 . SAVE B6 MAINLUP 1171
BX4 X1 MAINLUP 1172
SB6 A6 MAINLUP 1173
SX6 B7 MAINLUP 1174
RJ SSTOS . BREAK DOWN THE STRING MAINLUP 1175
SB7 X4 . RELEASE LEFT OPERAND MAINLUP 1176
AX4 18 MAINLUP 1177
SA6 X4 MAINLUP 1178
SB6 B4 . RESTORE B6 MAINLUP 1179
SX0 LITPM . FORM AND STORE LITPM MAINLUP 1180
LX0 48 MAINLUP 1181
SB2 B6-B2 MAINLUP 1182
SX7 B3+2 MAINLUP 1183
BX7 X7+X0 MAINLUP 1184
SA7 B6-B2 MAINLUP 1185
SX6 B2+1 . AND THE HEADING MAINLUP 1186
EQ CATPS1 MAINLUP 1187
* MAINLUP 1188
CATSFP2 SA1 A4 . USE CATPP TO DISPLACE THE MAINLUP 1189
SX7 B7 . PATTERN TOWARDS LOW CORE MAINLUP 1190
SB7 X1 MAINLUP 1191
SA7 X1 MAINLUP 1192
SX6 LITPM MAINLUP 1193
LX6 48 MAINLUP 1194
SX0 1 MAINLUP 1195
BX6 X0+X6 MAINLUP 1196
SA1 B6 MAINLUP 1197
SA6 A4 MAINLUP 1198
SB5 X1 MAINLUP 1199
EQ CATPP2 MAINLUP 1200
* MAINLUP 1201
* THE FOLLOWING IS THE INITIALIZATION AND DRIVER CODE MAINLUP 1202
* FOR THE PATTERN MATCH FUNCTION MAINLUP 1203
* MAINLUP 1204
PM SB3 PMSW . MICRO OPERATION MAINLUP 1205
SA2 PMWD . PATTERN MATCH MAINLUP 1206
SB1 PM1 . RETURN FOR STOP MAINLUP 1207
EQ CHEK . SWITCH ON RIGHT OPERAND TYPE MAINLUP 1208
* MAINLUP 1209
* SWITCH FOR PATTERN MATCH RIGHT OPERAND MAINLUP 1210
* MAINLUP 1211
PMWD SWITCH PMSW,0,5,1,1,3,3,3,4,2,2,2,2,2,2,2 MAINLUP 1212
+ SX4 B6-1 MAINLUP 1213
EQ PMSF . 0, SF MAINLUP 1214
+ SA4 B6-1 MAINLUP 1215
EQ PMSSSI . 1, SS,SI MAINLUP 1216
+ ERROR 16 . 2, R,A,D,N,C MAINLUP 1217
+ EQ PM1 . 3, PS,PE,PA MAINLUP 1218
+ RJ ITOS . 4, I MAINLUP 1219
SB1 PM1 . 5, S MAINLUP 1220
* MAINLUP 1221
* THE FOLLOWING CODE FORMS A SIMPLE PATTERN USING THE TOP MAINLUP 1222
* OPERAND STRING. ACTUALLY A LIT PM OPERATION IS CREATED MAINLUP 1223
* THE RETURN ADDRESS IS IN B1 MAINLUP 1224
* MAINLUP 1225
STOP SA0 1 MAINLUP 1226
RJ RESERVE . PUSH THE STRING DOWN ONE WORD MAINLUP 1227
SA1 B6-1 MAINLUP 1228
SB4 X1 . STACK BYPASS TO B4 MAINLUP 1229
SB2 B0 MAINLUP 1230
SB5 X1-1 MAINLUP 1231
EQ B2,B5,STOP2 . BRANCH IF STRING IS EMPTY MAINLUP 1232
STOP1 SA1 A1-1 . LOOP B4-1 TIMES MAINLUP 1233
SB2 B2+1 MAINLUP 1234
BX7 X1 MAINLUP 1235
SA7 B6-B2 MAINLUP 1236
NE B2,B5,STOP1 MAINLUP 1237
STOP2 SX1 LITPM MAINLUP 1238
LX1 48 . LIT OPERATION WITH PROPER MAINLUP 1239
SX7 B4 . BYPASS PART TO X7 MAINLUP 1240
BX7 X1+X7 MAINLUP 1241
SX1 PSTY MAINLUP 1242
SA7 B6-B4 . PUT IT TO THE FRONT OF THE STRING MAINLUP 1243
LX1 55 MAINLUP 1244
SX6 B4+1 MAINLUP 1245
BX6 X1+X6 . PS HEADER WORD MAINLUP 1246
SA6 B6 MAINLUP 1247
JP B1 . RETURN MAINLUP 1248
* MAINLUP 1249
* SS,SI AND SF TYPES HAVE TO BE CONVERTED INTO S FORM. AN EXTRA MAINLUP 1250
* WORD IN THE FRONT OF THE STRING WILL BE ALLOWED FOR THE MAINLUP 1251
* LIT OPERATION. THE LIST HOLDING SF WILL BE RELEASED MAINLUP 1252
* MAINLUP 1253
PMSSSI BSS 0 MAINLUP 1254
* MAINLUP 1255
PMSF SA1 X4 . X4 IS THE ADDRESS WHERE THE SVD MAINLUP 1256
AX1 36 . CAN BE FOUND MAINLUP 1257
SA0 X1 . MAINLUP 1258
RJ RESERVE MAINLUP 1259
SA1 X4 . SVD MIGHT HAVE CHANGED MAINLUP 1260
BX4 X1 MAINLUP 1261
SB5 A0 MAINLUP 1262
RJ SSTOS . CONVERT TO S FORMAT MAINLUP 1263
NE B4,B0,PMSF1 . RELEASE LIST IF SF MAINLUP 1264
SX7 B7 MAINLUP 1265
SB7 X4 MAINLUP 1266
AX4 18 MAINLUP 1267
SA7 X4 MAINLUP 1268
PMSF1 SB4 A0+1 MAINLUP 1269
EQ STOP2 . GO TREAT LIKE S MAINLUP 1270
* MAINLUP 1271
* RETURN HERE WHEN RIGHT OP IS A PATTERN MAINLUP 1272
PM1 SA1 B6 . PREPARE THE RIGHT OPERAND MAINLUP 1273
SB2 X1 MAINLUP 1274
SX7 B6+1 . INITI AL VALUE FOR PCHAIN MAINLUP 1275
SB5 B6-B2 . FIRST ELEMENT IN THE PATTERN-1 MAINLUP 1276
SB4 B6-B2 MAINLUP 1277
SA7 PCHAIN MAINLUP 1278
SA0 2 . THE HEADING OF THE RIGHT OPERAND MAINLUP 1279
RJ RESERVE . WILL BE OVERWRITTEN MAINLUP 1280
PM1F SX1 ENDEXPM . THIS ENDEX TERMINATES THE PATTERN MAINLUP 1281
BX6 X6-X6 MAINLUP 1282
LX1 48 MAINLUP 1283
SA6 B6-1 . STORE END OF PCHAIN MAINLUP 1284
SX2 PSTY MAINLUP 1285
BX7 X7+X1 MAINLUP 1286
SX6 B6-B5 MAINLUP 1287
LX2 55 MAINLUP 1288
SA7 B6-2 MAINLUP 1289
BX6 X6+X2 MAINLUP 1290
SA6 B6 . STORE A TEMPORARY HEADING MAINLUP 1291
PM1A SB4 B4+1 MAINLUP 1292
PM1B EQ B4,B6,PM2 . FETCH ELEMENTS ONE BY ONE MAINLUP 1293
SA1 B4 MAINLUP 1294
UX5 X1,B3 MAINLUP 1295
ID X1,PM1A . SKIP $ AND . MAINLUP 1296
GE B0,B3,PM1C . BRANCH IF NOT STRING ARGUMENTED MAINLUP 1297
SB4 B4+X1 . ELEMENT (LIT,ANY ETC.) MAINLUP 1298
EQ PM1B MAINLUP 1299
PM1C NE B3,B0,PM1A . BRANCH IF NOT STAR (*) MAINLUP 1300
SA1 X5+0 . OPERAND OF STAR MAINLUP 1301
BX3 X1 MAINLUP 1302
AX3 55 . TYPE OF OPERAND MAINLUP 1303
SX3 X3-4 MAINLUP 1304
NG X3,PM1A . BRANCH IF SS,SI MAINLUP 1305
SX3 X3-3 MAINLUP 1306
NG X3,PM1D . BRANCH IF PS,PE,PA MAINLUP 1307
NZ X3,PM1A . BRANCH IF NOT I MAINLUP 1308
MX0 6 MAINLUP 1309
BX1 -X0*X1 . REPLACE I TYPE VALUE WITH SS MAINLUP 1310
RJ ITOSF MAINLUP 1311
SX1 SSTY MAINLUP 1312
LX1 55 MAINLUP 1313
BX6 X1+X6 MAINLUP 1314
SA6 X5 MAINLUP 1315
EQ PM1A MAINLUP 1316
PM1D SA2 PCHAIN . SEARCH PCHAIN FOR THE SAME PATTERN MAINLUP 1317
PM1E SA3 X2 MAINLUP 1318
SX2 X3 MAINLUP 1319
AX3 18 MAINLUP 1320
BX0 X3-X5 MAINLUP 1321
ZR X0,PM1A . BRANCH IF FOUND MAINLUP 1322
NZ X2,PM1E MAINLUP 1323
SB1 A3 . ADDRESS OF LAST LINK TO B1 MAINLUP 1324
SX4 X5 MAINLUP 1325
RJ PTOPX4 . LOAD THE PATTERN TO THE STACK MAINLUP 1326
SA0 B6-B5 . RESERVE 3 MORE LOCATIONS MAINLUP 1327
SA0 A0+3 . (NOTE THAT B6-A0 WILL POINT TO MAINLUP 1328
SB6 B5 . B5 IN GETSTAK) MAINLUP 1329
SX6 MARK MAINLUP 1330
RJ RESERVE MAINLUP 1331
SX7 B6-1 . LINK THE PATTERN TO PCHAIN MAINLUP 1332
LX5 18 MAINLUP 1333
BX7 X7+X5 MAINLUP 1334
SA7 B1 MAINLUP 1335
SA6 B1+1 . INITIALIZE HOPE MAINLUP 1336
BX7 X7-X7 . SET ADDRESS OF TERMINATING ENDEX MAINLUP 1337
EQ PM1F . TO ZERO MAINLUP 1338
* MAINLUP 1339
* B5 POINTS TO THE HEADING OF THE LEFT OP MAINLUP 1340
PM2 SX7 A5 . SAVE A5 MAINLUP 1341
SA7 PMA5 MAINLUP 1342
SA1 B5 MAINLUP 1343
SB2 X1 MAINLUP 1344
SX6 B5-B2 . SBASE POINTS TO THE FIRST CHAR-1 MAINLUP 1345
SA6 SBASE . INITIALIZE STRING BASE MAINLUP 1346
SB4 B5+1 . INDEX MAINLUP 1347
SB3 B5-1 . STRING LENGTH MAINLUP 1348
SX7 B3 MAINLUP 1349
SA7 SLENGTH MAINLUP 1350
BX3 X3-X3 . SIX MAINLUP 1351
SB1 B0 . SIB MAINLUP 1352
BX7 X7-X7 MAINLUP 1353
SA7 PIB . PIX MAINLUP 1354
SA7 PIX . PIB MAINLUP 1355
SA2 MAXSTAK MAINLUP 1356
SB5 X2 . B5 IS MAXSTAK MAINLUP 1357
SA4 ANCHOR MAINLUP 1358
SB5 B0-B5 . (POSITIVE REPRESENTATION) MAINLUP 1359
BX5 X5-X5 . LOCP, LOCS ARE ZERO MAINLUP 1360
SA0 X6+1 MAINLUP 1361
PM2A SX7 A0 MAINLUP 1362
SA7 SPOS . STORE POS IN FIRST LEVEL MAINLUP 1363
SX0 B4 MAINLUP 1364
LX0 18 MAINLUP 1365
BX7 X7+X0 MAINLUP 1366
RJ ENTER . TRY TO MATCH THE PATTERN MAINLUP 1367
NZ X4,PMABT . FAILURE IF PATTERN FAILS IN MAINLUP 1368
SB2 A0+0 . ANCHORED MODE MAINLUP 1369
SA1 LENFAIL MAINLUP 1370
SA0 B2+1 MAINLUP 1371
LT B3,B2,PMABT MAINLUP 1372
ZR X1,PMABT . TEST ON LENGTH FAILURE MAINLUP 1373
SX7 PM2A . RESET P AND S STACKS MAINLUP 1374
EQ SETSIPI MAINLUP 1375
PMABT SX5 0 . GET RID OF P AND S STACKS MAINLUP 1376
SX7 PM2B MAINLUP 1377
EQ SETSIPI MAINLUP 1378
PM2B SB6 B3+1 . RESET B6 MAINLUP 1379
SA1 PMA5 MAINLUP 1380
SA5 X1 . RESTORE A5 MAINLUP 1381
EQ FAIL . SIGNAL FAILURE MAINLUP 1382
PMFOUND SB6 B3+2 . RESET B6 (PROVIDE 1 WORD FOR MAINLUP 1383
SX7 A0-1 . THE RESULT) MAINLUP 1384
SA4 PIX MAINLUP 1385
SA7 PMFA0 MAINLUP 1386
PMF1 ZR X4,PMF2 . GO THROUGH THE P CHAIN AND MAINLUP 1387
SA4 X4 . PERFORM (.) TYPE ASSIGNMENTS MAINLUP 1388
SA3 X4 . ADDRESS OF VARIABLE TO X3 MAINLUP 1389
AX4 18 MAINLUP 1390
SB2 X4 . FIRST MAINLUP 1391
AX4 18 MAINLUP 1392
SB3 X4 . LAST MAINLUP 1393
BX7 X3 MAINLUP 1394
SX6 A3 MAINLUP 1395
SA7 PMFX4 MAINLUP 1396
SA6 PMFA4 MAINLUP 1397
RJ STOSFX6 . CONVERT INTO SF FORMAT MAINLUP 1398
SA6 TEMPDOL MAINLUP 1399
SB2 A6+1 MAINLUP 1400
SA6 B2 MAINLUP 1401
AX3 18 . PREPARE ADDRESS OF VARIABLE MAINLUP 1402
RJ SASSIGN . AND ASSIGN MAINLUP 1403
SA4 PMFX4 MAINLUP 1404
SX4 X4 MAINLUP 1405
SX7 B7 MAINLUP 1406
NZ X4,PMF1 . GO BACK IF NOT END OF CHAIN MAINLUP 1407
SA1 PIX MAINLUP 1408
SA2 PMFA4 MAINLUP 1409
SB7 X1 MAINLUP 1410
SA7 X2 MAINLUP 1411
PMF2 SA1 PMFA0 MAINLUP 1412
SA4 SBASE . PACK THE RELATIVE FWA AND LWA OF MAINLUP 1413
SA2 SPOS . SUBSTRING MATCHED INTO THE MAINLUP 1414
SA3 PMFHD . HEADING MAINLUP 1415
IX1 X1-X4 MAINLUP 1416
IX2 X2-X4 MAINLUP 1417
LX1 18 MAINLUP 1418
BX1 X1+X2 MAINLUP 1419
SA5 PMA5 MAINLUP 1420
LX1 18 MAINLUP 1421
SA5 X5 MAINLUP 1422
BX7 X1+X3 MAINLUP 1423
SA7 B6 . STORE THE HEADING MAINLUP 1424
EQ NEXTMIC MAINLUP 1425
* MAINLUP 1426
PMFHD VFD 5/SPECTY,55/1 MAINLUP 1427
* END PATTERN MATCH DRIVER... MAINLUP 1428
STAR SX7 STARPM . MICRO OPERATION STAR MAINLUP 1429
EQ PRD1 MAINLUP 1430
* MAINLUP 1431
DOL SX7 DOLPM MICRO OPERATION DOL MAINLUP 1432
EQ PRD1 MAINLUP 1433
* MAINLUP 1434
PRD SX7 PRDPM MICRO OPERATION PERIOD MAINLUP 1435
PRD1 SX5 X5 MAINLUP 1436
LX7 48 MAINLUP 1437
SB1 PRD4 RETURN ADDRESS OF STOP MAINLUP 1438
NZ X5,PRD2 BRANCH IF ADDRESS IS GIVEN MAINLUP 1439
SB6 B6-2 . IF NOT, USE TOPOPERAND NAME MAINLUP 1440
SA1 B6+1 . INSTEAD. NOTE THAT REFERENCE COUNTMAINLUP 1441
SX5 X1+0 . IS NOT DECREMENTED. MAINLUP 1442
PRD2 BX7 X7+X5 MAINLUP 1443
DF X7,STAR1 . BRANCH IF STAR MAINLUP 1444
BX5 X7 . PACK PM OP. INTO X5 MAINLUP 1445
SA2 PRDWD MAINLUP 1446
SB3 PRDSW MAINLUP 1447
JP CHEK . DISPATCH ON LEFT OPERAND TYPE MAINLUP 1448
* MAINLUP 1449
PRDWD SWITCH PRDSW,3,2,4,4,5,6,6,1,0,0,0,0,0,0,0 MAINLUP 1450
* MAINLUP 1451
+ ERROR 45 . 0, R,A,D,N,C MAINLUP 1452
+ RJ ITOS . 1, I MAINLUP 1453
+ SB1 PRD4 . 2, S MAINLUP 1454
EQ STOP MAINLUP 1455
+ SX4 B6-1 3, SF MAINLUP 1456
EQ PMSF MAINLUP 1457
+ SA4 B6-1 4, SS,SI MAINLUP 1458
EQ PMSSSI MAINLUP 1459
+ EQ PRD4 5, PS MAINLUP 1460
+ SA2 B6 6, PE,PA MAINLUP 1461
SB1 X2 EXPPM BRACKETS HAVE TO BE MAINLUP 1462
SB2 B6-B1 INSERTED AROUND THE PATTERN MAINLUP 1463
SB3 B6 MAINLUP 1464
SA0 2 RESERVE TWO WORDS FOR THE BRACKETS MAINLUP 1465
RJ RESERVE MAINLUP 1466
SB4 1 MAINLUP 1467
SX0 EXPPM MAINLUP 1468
PRD3 SB3 B3-B4 PUSH PATTERN ONE WORD TOWARDS MAINLUP 1469
SA1 B3 HIGH CORE MAINLUP 1470
EQ B2,B3,PRD5 MAINLUP 1471
BX7 X1 MAINLUP 1472
SA7 B3+B4 MAINLUP 1473
EQ PRD3 MAINLUP 1474
PRD5 SX7 ENDEXPM MAINLUP 1475
SX2 PSTY MAINLUP 1476
LX0 48 MAINLUP 1477
LX7 48 MAINLUP 1478
LX2 55 MAINLUP 1479
SA7 B6-B4 STORE ENDEXPM MAINLUP 1480
SX6 B1+B4 MAINLUP 1481
SX7 X6+B4 MAINLUP 1482
BX6 X6+X0 MAINLUP 1483
BX7 X7+X2 MAINLUP 1484
SA6 B2+B4 STORE EXPPM MAINLUP 1485
SA7 B6+0 STORE HEADING MAINLUP 1486
* THE TOP OPERAND IS PS NOW... MAINLUP 1487
PRD4 SA0 1 COMMON PART MAINLUP 1488
RJ RESERVE RESERVE ONE WORD FOR PRD OR DOL MAINLUP 1489
SA1 B6-1 MAINLUP 1490
BX7 X5 MAINLUP 1491
SX0 A0 MAINLUP 1492
SA7 A1 STORE PRD OR DOL MAINLUP 1493
IX6 X1+X0 BUMP BYPASS MAINLUP 1494
SA6 B6+0 MAINLUP 1495
EQ SNDMIC MAINLUP 1496
* MAINLUP 1497
STAR1 SA0 2 . STAR CREATES A PE TYPE ENTRY MAINLUP 1498
RJ RESERVE IN THE STACK MAINLUP 1499
SX6 PETY MAINLUP 1500
SX1 A0 MAINLUP 1501
LX6 55 MAINLUP 1502
BX6 X1+X6 MAINLUP 1503
SA7 B6-1 MAINLUP 1504
SA6 B6 MAINLUP 1505
EQ SNDMIC MAINLUP 1506
* MAINLUP 1507
* MAINLUP 1508
NULL SB1 SNDMIC . MICRO OPERATION NULL MAINLUP 1509
RJ ZROX7 MAINLUP 1510
NULL0 MX0 5 MAINLUP 1511
BX2 X2-X2 . PUT AN SF TYPE ENTRY MAINLUP 1512
BX7 -X0*X7 . TO THE TOP OF THE STACK MAINLUP 1513
* MAINLUP 1514
* CREATE TWO WORD ENTRY IN THE STACK MAINLUP 1515
* PARAM: X2 TYPE OF THE ENTRY MAINLUP 1516
* X7 WORD 0 OF THE ENTRY MAINLUP 1517
* RETURN B1 MAINLUP 1518
STAK2 SA0 2 MAINLUP 1519
RJ RESERVE MAINLUP 1520
SX6 2 MAINLUP 1521
SA7 B6-1 MAINLUP 1522
BX6 X6+X2 MAINLUP 1523
SA6 B6 MAINLUP 1524
JP B1 MAINLUP 1525
* . MICRO OPERATION ZERO MAINLUP 1526
ZERO SX2 ITY . SAME WITH A 0 VALUED INTEGER MAINLUP 1527
SX7 B0 MAINLUP 1528
LX2 55 MAINLUP 1529
SB1 SNDMIC MAINLUP 1530
JP STAK2 MAINLUP 1531
* . MICRO OPERATION NAME MAINLUP 1532
NAME SX1 X5 . SAME WITH A NAME IN X5 MAINLUP 1533
SB1 SNDMIC MAINLUP 1534
* MAINLUP 1535
X1NAME BX7 X1 . SAME WITH A NAME IN X1 MAINLUP 1536
SX2 NTY MAINLUP 1537
LX2 55 MAINLUP 1538
BX7 X7+X2 MAINLUP 1539
JP STAK2 MAINLUP 1540
* MAINLUP 1541
* MAINLUP 1542
* MICRO OPERATION: ARRAY LEFT BRACKET MAINLUP 1543
ARRAY SA1 X5 MAINLUP 1544
BX7 X1 MAINLUP 1545
AX1 55 MAINLUP 1546
BX6 X6-X6 MAINLUP 1547
SX1 X1-ATY . ERROR, LEFT OPERAND MAINLUP 1548
NZ X1,ERR4 . IS NOT AN ARRAY MAINLUP 1549
SA0 4 . RESERVE SPACE FOR 4 WORD MAINLUP 1550
RJ RESERVE . SELECTOR STACK ENTRY MAINLUP 1551
SA7 B6-1 . STORE ATY SVD MAINLUP 1552
SA6 B6-2 . SET SELECTOR TO ZERO MAINLUP 1553
SA6 B6-3 . SET SUBSCRIPT NUMBER TO ZERO MAINLUP 1554
SA1 ATYWD MAINLUP 1555
AX7 18 MAINLUP 1556
MX0 59 . =-1 MAINLUP 1557
BX6 X1 MAINLUP 1558
SA2 X7 . FETCH WORD 0 OF STRUCTURE MAINLUP 1559
SA6 B6 . STORE ATY STACK HEADING MAINLUP 1560
IX7 X2-X0 . INCREMENT REFERENCE COUNT MAINLUP 1561
SA7 A2 . NO NEED TO CHECK FOR OVERFLOW HERE MAINLUP 1562
JP NEXTMIC MAINLUP 1563
ATYWD VFD 5/ATY,55/4 MAINLUP 1564
* MAINLUP 1565
SUBCOM SB1 1 . MICRO OPERATION: SUBSCRIPT COMMA MAINLUP 1566
RJ SARRAY MAINLUP 1567
NG X4,ERR6 . ERROR, TOO MANY SUBSCRIPTS MAINLUP 1568
SA4 A4+B1 . FETCH MULTIPLIER MAINLUP 1569
PX6 X6 . OLD SELECTOR+X-L MAINLUP 1570
AX4 36 MAINLUP 1571
SX1 X4 . U-L+1 MAINLUP 1572
PX1 X1 MAINLUP 1573
DX6 X1*X6 MAINLUP 1574
UX6 X6 MAINLUP 1575
SA6 A2 . STORE NEW VECTOR SUM MAINLUP 1576
EQ NEXTMIC MAINLUP 1577
* MAINLUP 1578
ARRAYN MX5 1 . MICRO OPERATION: ARRAY NAME MAINLUP 1579
JP ARRAYV1 MAINLUP 1580
* MAINLUP 1581
ARRAYV SX5 0 . MICRO OPERATION: ARRAY VALUE MAINLUP 1582
ARRAYV1 SB1 1 MAINLUP 1583
RJ SARRAY MAINLUP 1584
PL X4,ERR7 . ERROR, TOO FEW SUBSCRIPTS MAINLUP 1585
SA1 B6-1 MAINLUP 1586
SB6 A3-B1 MAINLUP 1587
AX1 18 . BASE TO X1 MAINLUP 1588
SB1 SNDMIC MAINLUP 1589
* MAINLUP 1590
* SELSTR MAINLUP 1591
* SELECT ELEMENT OF A STRUCTURE MAINLUP 1592
* PARAM: X1 IS THE BASE FOR THE STRUCTURE MAINLUP 1593
* X6 IS THE SELECTOR FOR THE ELEMENT-1 MAINLUP 1594
* X5 IS POSITIVE IF THE VALUE OF THE ELEMENT IS MAINLUP 1595
* DESIRED, OTHERWISE THE RESULT WILL BE A NAME MAINLUP 1596
* B1 IS THE RETURN ADDRESS MAINLUP 1597
* MAINLUP 1598
SELSTR NG X5,SELSTRN . BRANCH IF NAME IS DESIRED MAINLUP 1599
SA2 X1 . FETCH WORD 0 OF STRUCTURE MAINLUP 1600
MX0 59 . =-1 MAINLUP 1601
IX4 X1+X6 MAINLUP 1602
SX6 X4+1 MAINLUP 1603
SX4 X4+1 MAINLUP 1604
SA6 UA . SAVE ADDRESS FOR PMCHEK MAINLUP 1605
IX7 X0+X2 . DECREMENT REF. COUNT MAINLUP 1606
SX0 X7 MAINLUP 1607
SA7 A2 MAINLUP 1608
NZ X0,SOPERND . GET VALUE IF NOT ZERO MAINLUP 1609
BX6 X6-X6 MAINLUP 1610
SA6 A6 . CLEAR UA, STRUCTURE DOES NOT EXIST MAINLUP 1611
RJ SCHHBC . SCHEDULE HBC MAINLUP 1612
JP SOPERND MAINLUP 1613
SELSTRN SX2 X1 MAINLUP 1614
SX1 X1+1 . CREATE NTY SVD MAINLUP 1615
LX2 18 MAINLUP 1616
IX1 X1+X6 MAINLUP 1617
BX1 X1+X2 MAINLUP 1618
JP X1NAME MAINLUP 1619
* MAINLUP 1620
* SARRAY MAINLUP 1621
* PROCESS ARRAY SUBSCRIPTS MAINLUP 1622
* PARAM: B1=1 MAINLUP 1623
* RESULTS: X6 NEW SELECTOR MAINLUP 1624
* X4(A4) CURRENT DIMENSION WORD MAINLUP 1625
* X5 IS SAVED MAINLUP 1626
SARRAY DATA 0 MAINLUP 1627
SARRAY1 SA1 B6 . OPERAND IS SITY USUALLY MAINLUP 1628
AX1 55 MAINLUP 1629
SX1 X1-SITY MAINLUP 1630
NZ X1,SARRAY2 MAINLUP 1631
SA1 B6-B1 . INDEX VALUE X MAINLUP 1632
SA1 X1 MAINLUP 1633
SA1 X1-1 MAINLUP 1634
SB6 B6-2 MAINLUP 1635
SARRAY3 SA4 B6-B1 . FETCH ATY SVD MAINLUP 1636
SB2 X4 . DOPE POINTER TO B2 MAINLUP 1637
SA2 A4-B1 . OLD SELECTOR MAINLUP 1638
SA3 A2-B1 . SUBSCRIPT NUMBER MAINLUP 1639
SX7 X3+B1 . INCREMENT SN MAINLUP 1640
SA4 X7+B2 . FETCH DIMENSION WORD MAINLUP 1641
SA7 A3 MAINLUP 1642
SX3 X4 . UPPER LIMIT MAINLUP 1643
AX4 18 MAINLUP 1644
SX7 X4 . LOWER LIMIT MAINLUP 1645
IX3 X3-X1 MAINLUP 1646
IX0 X1-X7 MAINLUP 1647
IX6 X2+X0 . ADD X-L TO SELECTOR MAINLUP 1648
NG X3,FAIL . FAIL IF OUT OF BOUNDS MAINLUP 1649
PL X0,SARRAY MAINLUP 1650
JP FAIL MAINLUP 1651
* MAINLUP 1652
SARRAY2 SA1 TENTO9 . CHECK SUBSCRIPT VALUE MAINLUP 1653
SA0 9 MAINLUP 1654
BX0 X1 MAINLUP 1655
RJ SACHEK MAINLUP 1656
ZR X7,ERR47 . ERROR IF REAL MAINLUP 1657
SA1 B6-1 MAINLUP 1658
SB1 1 MAINLUP 1659
SB6 A1-B1 MAINLUP 1660
LX7 3 MAINLUP 1661
NG X7,SARRAY3 MAINLUP 1662
JP FAIL . IF S TYPE, IT IS TOO BIG MAINLUP 1663
* MAINLUP 1664
* MAINLUP 1665
* MAINLUP 1666
INDRCN RJ INDRCT . MICRO OPERATION INDIRECT NAME MAINLUP 1667
SB1 SNDMIC MAINLUP 1668
EQ X1NAME MAINLUP 1669
* MAINLUP 1670
INDRCV RJ INDRCT . MICRO OPERATION: INDIRECT VALUE MAINLUP 1671
EQ X1VALUE MAINLUP 1672
* MAINLUP 1673
OPRND SX1 X5 . MICRO OPERATION OPERAND VALUE MAINLUP 1674
EQ X1VALUE MAINLUP 1675
* MAINLUP 1676
ASGN SX3 X5+0 . MICRO OPERATION ASSIGN MAINLUP 1677
ZR X3,ASGN1 MAINLUP 1678
SB2 B6 MAINLUP 1679
RJ SASSIGN MAINLUP 1680
SA1 B6 . SKIP ASSIGNED VALUE MAINLUP 1681
SB1 X1+0 MAINLUP 1682
SB6 B6-B1 MAINLUP 1683
EQ NEXTMIC MAINLUP 1684
SB2 X1+1 MAINLUP 1685
ASGN1 SA1 B6 . FETCH LEFTOPERAND NAME MAINLUP 1686
SB2 X1 MAINLUP 1687
SB2 B2+1 MAINLUP 1688
SA3 B6-B2 MAINLUP 1689
SB2 B6 MAINLUP 1690
RJ SASSIGN . PERFORM ASSIGNMENT MAINLUP 1691
SA1 B6 . SKIP BOTH OPERANDS MAINLUP 1692
SB2 X1 MAINLUP 1693
SB6 B6-B2 MAINLUP 1694
CALL SSKIP,,NEXTMIC MAINLUP 1695
* MAINLUP 1696
ASGNPM SB3 ASPMSW . MICRO OPERATION MAINLUP 1697
SA2 ASPMWD . ASSIGNMENT WITH A PATTERN MATCH MAINLUP 1698
EQ CHEK . LEFT OPERAND MAINLUP 1699
* MAINLUP 1700
ASPMWD SWITCH ASPMSW,3,2,4,4,0,0,0,1,0,0,0,0,0,0,0 MAINLUP 1701
* MAINLUP 1702
+ ERROR 46 . 0, P,R,A,N,D,C MAINLUP 1703
+ SB1 *+2 . 1, I MAINLUP 1704
EQ ITOSFTP MAINLUP 1705
+ RJ SCATS . 2, S MAINLUP 1706
+ SX4 B6-1 . 3, SF MAINLUP 1707
EQ ASPM0 MAINLUP 1708
+ SA4 B6-1 . 4, SS,SI MAINLUP 1709
ASPM0 SA2 B6-3 MAINLUP 1710
SA3 B6-2 MAINLUP 1711
SB3 X2 MAINLUP 1712
SB5 A2-B3 . STRING BASE MAINLUP 1713
AX3 18 MAINLUP 1714
SB2 X3+B5 . FIRST CHARACTER MATCHED MAINLUP 1715
SB3 B7 . FIRST OF RESULT STRING MAINLUP 1716
BX7 X7-X7 . OUTPUT WORD MAINLUP 1717
SB4 48 . OUTPUT POSITION COUNT MAINLUP 1718
ASPM1 SA0 X3-1 . LENGTH IS BEING ACCUMULATED IN A0 MAINLUP 1719
ASPM2 SB5 B5+1 MAINLUP 1720
GE B5,B2,ASPM5 . END PACK MAINLUP 1721
SA2 B5+0 . NEXT CHAR MAINLUP 1722
SB4 B4-6 MAINLUP 1723
NE B4,B0,ASPM4 . BYPASS IF WORD IS NOT FULL MAINLUP 1724
SA1 B7+0 MAINLUP 1725
NZ X1,ASPM3 . GET A FREE WORD MAINLUP 1726
RJ MORFREE MAINLUP 1727
ASPM3 SX1 X1 MAINLUP 1728
SB7 X1 MAINLUP 1729
LX7 18 MAINLUP 1730
BX6 X7+X1 . ADD LINK MAINLUP 1731
BX7 X7-X7 MAINLUP 1732
SA6 A1 . STORE OUTPUT WORD MAINLUP 1733
SB4 42 MAINLUP 1734
ASPM4 LX7 6 . PACK CHAR INTO OUTPUT WORD MAINLUP 1735
BX7 X7+X2 MAINLUP 1736
EQ ASPM2 MAINLUP 1737
ASPM5 LX7 12 MAINLUP 1738
LX7 X7,B4 . LEFT JUSTIFY LAST WORD MAINLUP 1739
SA1 B7+0 MAINLUP 1740
NZ X1,ASPM6 . GET A FREE WORD MAINLUP 1741
RJ MORFREE MAINLUP 1742
ASPM6 SB7 X1 MAINLUP 1743
EQ B3,B0,ASPM8 . EXIT IF FLAG IS SET MAINLUP 1744
MX0 6 . OTHERWISE PREPARE FOR CONCATENA- MAINLUP 1745
SA2 X4 . TION MAINLUP 1746
SX3 A1 MAINLUP 1747
SB5 ASPMR . RETURN TO B5 MAINLUP 1748
BX4 X2 MAINLUP 1749
AX4 36 MAINLUP 1750
SB2 X4 MAINLUP 1751
SA0 A0+B2 . SUM LENGTHS IN A0 MAINLUP 1752
SB2 B4-6 . SET SHIFTS FOR CONCAT MAINLUP 1753
SB1 B2+18 MAINLUP 1754
EQ CATSF . PERFORM CONCATENATION MAINLUP 1755
ASPMR SX6 B7 . UPON RETURN AN EXTRA WORD HAS MAINLUP 1756
SB7 X3 . BEEN RESERVED, RELEASE IT MAINLUP 1757
SA6 X3 MAINLUP 1758
MX0 6 MAINLUP 1759
SX5 B3 . FIRST TO X5 MAINLUP 1760
SB3 B0 . SET FLAG TO EXIT MAINLUP 1761
SA1 B6-2 MAINLUP 1762
SA2 B6-3 MAINLUP 1763
AX1 36 . LAST CHARACTER MATCHED TO B5 MAINLUP 1764
SB5 X2 MAINLUP 1765
SB2 A2 MAINLUP 1766
SB5 A2-B5 MAINLUP 1767
SB5 B5+X1 MAINLUP 1768
SB1 B2-B5 MAINLUP 1769
SX3 A0+B1 . FINAL LENGTH + 1 MAINLUP 1770
SB4 48 MAINLUP 1771
ASPM7 BX1 X0*X7 . RIGHT JUSTIFY LAST WORD MAINLUP 1772
ZR X1,ASPM1 MAINLUP 1773
LX7 6 MAINLUP 1774
SB4 B4-6 MAINLUP 1775
EQ ASPM7 MAINLUP 1776
ASPM8 SA7 A1+0 MAINLUP 1777
SA3 B6-3 MAINLUP 1778
SX1 A1 . LAST MAINLUP 1779
SX2 A0 . LENGTH MAINLUP 1780
LX1 18 MAINLUP 1781
LX2 36 MAINLUP 1782
BX6 X5+X2 MAINLUP 1783
BX6 X6+X1 . FORM SVD IN B6 MAINLUP 1784
SA6 TEMPDOL MAINLUP 1785
SB2 TEMPDOL+1 MAINLUP 1786
SA6 B2 MAINLUP 1787
AX3 18 MAINLUP 1788
SX3 X3+0 MAINLUP 1789
ZR X3,ERR25 . LEFT OPERAND NOT VARIABLE MAINLUP 1790
RJ SASSIGN . PERFORM ASSIGNMENT MAINLUP 1791
EQ SKIP . SKIP ENTRIES IN THE STACK MAINLUP 1792
* MAINLUP 1793
* MAINLUP 1794
PARAM RJ SPARAM . MICRO OPERATION MAINLUP 1795
EQ NEXTMIC . PARAMETER COMMA MAINLUP 1796
* MAINLUP 1797
SPARAM NO MAINLUP 1798
+ SA2 PRMWD . SWITCH ON TYPE OF TOPOPERAND MAINLUP 1799
SB3 PRMSW MAINLUP 1800
EQ CHEK MAINLUP 1801
* MAINLUP 1802
PRMWD SWITCH PRMSW,1,0,2,3,1,1,1,1,1,1,1,1,1,1,1 MAINLUP 1803
+ RJ SCATS . 0, S MAINLUP 1804
+ EQ SPARAM . 1, SF,PS,PA,PE,I,R,A,D,N,C MAINLUP 1805
+ SA1 B6-1 . 2, SS MAINLUP 1806
EQ PRMSS MAINLUP 1807
+ SA1 B6-1 . 3, SI MAINLUP 1808
SA3 ITYWD . REPLACE SI BY I MAINLUP 1809
SA2 X1+1 . HEADING TO X3, INTEGER TO X2 MAINLUP 1810
BX7 X3 MAINLUP 1811
BX6 X2 MAINLUP 1812
SA7 B6 MAINLUP 1813
SA6 A1 MAINLUP 1814
EQ SPARAM MAINLUP 1815
PRMSS SX7 2 . MAKE A COPY OF SS MAINLUP 1816
SA2 X1 MAINLUP 1817
SA7 B6 . SF TYPE HEADING MAINLUP 1818
RJ SSTOSF MAINLUP 1819
SA6 B6-1 MAINLUP 1820
EQ SPARAM MAINLUP 1821
* MAINLUP 1822
SSTYWD VFD 5/SSTY,55/2 . SS TYPE HEADING MAINLUP 1823
ITYWD VFD 5/ITY,55/2 . I TYPE HEADING MAINLUP 1824
* MAINLUP 1825
* MICRO OPERATION CALL, CONTINUED... MAINLUP 1826
* MAINLUP 1827
CALL0 AX5 18 MAINLUP 1828
SB1 X5 . NUMBER OF ACTUAL PARAMETERS TO B1 MAINLUP 1829
BX1 X4 MAINLUP 1830
LX1 1 MAINLUP 1831
NG X1,FIELD . BRANCH IF FIELD SELECTOR MAINLUP 1832
AX1 19 . NUMBER OF FORMAL PARAMETERS MAINLUP 1833
SB2 X1 MAINLUP 1834
CALL0A LT B2,B1,CALL7 . BRANCH IF TOO MANY ACTUAL PARAMS MAINLUP 1835
SB5 B6 MAINLUP 1836
SA3 B5 MAINLUP 1837
CALL1 EQ B1,B0,CALL2 MAINLUP 1838
SB4 X3 . LINK ACTUAL PARAMETERS MAINLUP 1839
SX7 B4 . TOGETHER IN REVERSE ORDER. MAINLUP 1840
SX6 B5 MAINLUP 1841
SB5 B5-B4 MAINLUP 1842
SB1 B1-1 MAINLUP 1843
EQ B1,B0,CALL2 MAINLUP 1844
LX7 36 MAINLUP 1845
SA3 B5 MAINLUP 1846
BX7 X3+X7 MAINLUP 1847
SA7 A3 MAINLUP 1848
EQ CALL1 MAINLUP 1849
CALL2 AX1 18 MAINLUP 1850
SB1 X1+B5 . APPETITE IS IN X1 MAINLUP 1851
AX1 19 MAINLUP 1852
SX3 B6-B5 . X3=0 IFF NO PARAMS MAINLUP 1853
NZ X1,DATCON . BRANCH IF NOT PROCEDURE CALL MAINLUP 1854
GE B6,B1,CALL3 . MAKE SURE THAT THERE WILL BE MAINLUP 1855
SA0 B1-B6 . ENOUGH SPACE FOR THE RETURN INFO. MAINLUP 1856
RJ RESERVE MAINLUP 1857
CALL3 SA4 A4 . PROCEDURE DESCRIPTION MIGHT HAVE MAINLUP 1858
SB1 X4 . CHANGED MAINLUP 1859
SB2 X6 MAINLUP 1860
SX6 B5 MAINLUP 1861
SA6 CALLB5P MAINLUP 1862
ZR X3,CALL5 . BRANCH IF NO PARAMS MAINLUP 1863
CALL4 SA3 B1 . THIS LOOP TAKES THE ACTUAL MAINLUP 1864
AX3 18 . PARAMETERS AND ASSIGNS THEM TO MAINLUP 1865
SA1 X3 . THE FORMAL VARIABLES FROM THE MAINLUP 1866
SX7 B0 . LEFT TO THE RIGHT. THE ORIGINAL MAINLUP 1867
BX5 X1 . DESCRIPTORS AS WELL AS THEIR MAINLUP 1868
SA7 A1 . ADDRESSES ARE SAVED IN THE STACK MAINLUP 1869
RJ SASSIGN MAINLUP 1870
SA2 B2 MAINLUP 1871
AX2 36 . LINK TO NEXT ACTUAL PARAM MAINLUP 1872
SB2 X2+B2 MAINLUP 1873
BX7 X5 MAINLUP 1874
SB5 B5+2 MAINLUP 1875
SA7 B5-1 . STORE ORIGINAL DESCRIPTOR MAINLUP 1876
SB3 X2 MAINLUP 1877
SA2 B1 MAINLUP 1878
SB1 X2 . FORMAL ADDRESSES ARE TAKEN FROM MAINLUP 1879
AX2 18 . THIS LIST MAINLUP 1880
BX7 X2 MAINLUP 1881
SA7 B5 . STORE FORMAL ADDRESS MAINLUP 1882
NE B3,B0,CALL4 . ZERO MARKS END OF PARAM-LINK MAINLUP 1883
CALL5 SA2 B1 . IF THERE ARE LESS ACTUALS THAN MAINLUP 1884
NG X2,CALL6 . FORMALS,NULL VALUE IS SIMULATED MAINLUP 1885
SB1 X2 . FOR THE REST MAINLUP 1886
SB5 B5+2 MAINLUP 1887
AX2 18 MAINLUP 1888
SA3 X2 MAINLUP 1889
BX7 X3 MAINLUP 1890
SA7 B5-1 MAINLUP 1891
SX7 X2 MAINLUP 1892
SA7 B5 MAINLUP 1893
RJ ZROX7 MAINLUP 1894
SA7 X2 MAINLUP 1895
EQ CALL5 MAINLUP 1896
CALL6 SA1 INFAIL . SYSTEM VARIABLES HAVE TO BE MAINLUP 1897
SX7 A5 . STACKED AS WELL MAINLUP 1898
LX1 60-18 . INFAIL TO F3 MAINLUP 1899
BX6 X6-X6 MAINLUP 1900
SA6 INFAIL . CLEAR INFAIL MAINLUP 1901
LX7 18 MAINLUP 1902
BX7 X1+X7 MAINLUP 1903
AX2 18 . ADDRESS OF ENTRY LABEL TO X2 MAINLUP 1904
SB6 B5+1 . NEW B6 MAINLUP 1905
MX0 1 . STACK TYPE: RETURN INFORMATION MAINLUP 1906
SA1 CALLB5P MAINLUP 1907
SB5 X1 MAINLUP 1908
SX1 B6-B5 . BYPASS VALUE MAINLUP 1909
BX7 X7+X0 MAINLUP 1910
BX7 X7+X1 MAINLUP 1911
SX5 X2 MAINLUP 1912
SA7 B6 MAINLUP 1913
SB1 GOTO1 MAINLUP 1914
JP NEWRULE MAINLUP 1915
* MAINLUP 1916
CALL7 CALL SKIPONE,B5 MAINLUP 1917
SB1 B1-1 . DECREMENT NO. OF ACTUALS MAINLUP 1918
BX1 X4 MAINLUP 1919
AX1 18 . RESTORE X1 MAINLUP 1920
JP CALL0A MAINLUP 1921
* MAINLUP 1922
* SKIP THE LAST ACTUAL PARAMETER... MAINLUP 1923
* THIS CODE IS SIMILAR TO SSKIP, BUT SLOWER MAINLUP 1924
* RETURN: B5 MAINLUP 1925
* X0,X1,X2,X3,X7,B3,B4 MAINLUP 1926
* MAINLUP 1927
SKIPONE SA1 B6 MAINLUP 1928
SB4 X1 MAINLUP 1929
AX1 55 MAINLUP 1930
SB6 B6-B4 MAINLUP 1931
SX0 X1-ATY MAINLUP 1932
ZR X1,CALL8 . BRANCH IF SF MAINLUP 1933
NG X0,CALL9 MAINLUP 1934
SX0 X1-CTY MAINLUP 1935
CALL8 PL X0,CALL9 MAINLUP 1936
SB3 B6+B4 . RELEASE ATY, DTY, NTY OR SFTY SVD. MAINLUP 1937
SB3 B3-1 MAINLUP 1938
RJ FREESTR MAINLUP 1939
CALL9 JP B5 . RETURN MAINLUP 1940
* MAINLUP 1941
* DATA CONSTRUCTOR CALL... MAINLUP 1942
* X4 CONTAINS THE DATATYP FUD MAINLUP 1943
* X6 POINTS TO THE STACK ENTRY OF THE FIRST PARAM IF ANY MAINLUP 1944
* B2 IS THE NUMBER OF FIELDS MAINLUP 1945
* MAINLUP 1946
DATCON SX1 X1-DATATYP MAINLUP 1947
NZ X1,ERR14 . BRANCH IF FUNCTION IS UNDEFINED MAINLUP 1948
LX5 37 MAINLUP 1949
NG X5,ERR28 . CANNOT GIVE NAME RESULT MAINLUP 1950
SB4 X6 MAINLUP 1951
SB5 B5-B6 . RELATIVE TO B6 SINCE THE MAINLUP 1952
SB4 B4-B6 . STACK MAY MOVE DURING RESHB. MAINLUP 1953
SB1 B2+1 MAINLUP 1954
RJ RESHB MAINLUP 1955
SB2 B4+B6 . SAME AS X6 ABOVE MAINLUP 1956
SX2 B1 . BYPASS FOR THE HB MAINLUP 1957
SB1 B1-1 MAINLUP 1958
SX5 B3 . BASE OF STRUCTURE MAINLUP 1959
SX6 X4 . POINTER TO THE DOPE VECTOR MAINLUP 1960
LX5 18 MAINLUP 1961
LX2 36 MAINLUP 1962
BX7 X6+X5 . PREPARE DTY SVD RESULT MAINLUP 1963
SA7 DATAWD MAINLUP 1964
LX6 18 MAINLUP 1965
SX0 STRTYP MAINLUP 1966
SX7 1 . REFERENCE COUNT MAINLUP 1967
LX0 55 MAINLUP 1968
BX7 X7+X6 . + DOPE POINTER MAINLUP 1969
BX7 X7+X2 . + BYPASS MAINLUP 1970
BX7 X7+X0 . + STRTYP MAINLUP 1971
LX5 60-18 MAINLUP 1972
SA7 X5 . IS WORD 0 OF THE STRUCTURE MAINLUP 1973
EQ B1,B0,DATA5 MAINLUP 1974
DATA3 SB1 B1-1 . MUCH LIKE TO A PROCEDURE CALL MAINLUP 1975
SX5 X5+1 . THE PARAMETERS ARE ASSIGNED TO MAINLUP 1976
SX6 B0 . NEW VARIABLES MAINLUP 1977
BX3 X5 MAINLUP 1978
SA6 X5 MAINLUP 1979
RJ SASSIGN MAINLUP 1980
SA2 B2 . LINK TO THE NEXT PARAMETER MAINLUP 1981
AX2 36 MAINLUP 1982
SB2 X2+B2 MAINLUP 1983
SB3 X2 MAINLUP 1984
NE B3,B0,DATA3 MAINLUP 1985
EQ B1,B0,DATA5 MAINLUP 1986
DATA4 SX5 X5+1 . NULL STRINGS WILL BE SUBSTITUTED MAINLUP 1987
RJ ZROX7 . FOR MISSING PARAMETERS MAINLUP 1988
SA7 X5 MAINLUP 1989
SB1 B1-1 MAINLUP 1990
NE B1,B0,DATA4 MAINLUP 1991
DATA5 SX0 DTY . PUT A REFERENCE TO THE NEW MAINLUP 1992
SB6 B5+B6 . DATA STRUCTURE TO THE TOP OF MAINLUP 1993
LX0 55 . THE STACK MAINLUP 1994
SA0 2 MAINLUP 1995
RJ RESERVE MAINLUP 1996
SA2 DATAWD MAINLUP 1997
SX1 A0 MAINLUP 1998
BX6 X0+X1 MAINLUP 1999
BX7 X0+X2 MAINLUP 2000
SA6 B6 MAINLUP 2001
SA7 B6-1 MAINLUP 2002
EQ NEXTMIC MAINLUP 2003
* MAINLUP 2004
* FIELD SELECTOR FUNCTION MAINLUP 2005
* X4=FUD, X5=CALL MICOP RSHIFT 36, B1=NO. OF ACTUALS MAINLUP 2006
* MAINLUP 2007
FIELD SA1 B6 MAINLUP 2008
SB2 1 MAINLUP 2009
AX1 55 MAINLUP 2010
NE B1,B2,FIELD3 . WE WANT ONLY A SINGLE MAINLUP 2011
SX1 X1-DTY . DTY ARGUMENT MAINLUP 2012
NZ X1,ERR21 MAINLUP 2013
SA1 B6-B2 . FETCH DTY SVD MAINLUP 2014
SB6 A1-B2 MAINLUP 2015
SB3 X1 . DOPE POINTER IN SVD MAINLUP 2016
BX2 X1 MAINLUP 2017
LX5 37 . N BIT TO SIGN MAINLUP 2018
AX1 18 MAINLUP 2019
FIELD1 SX3 X4 . NEXT MAINLUP 2020
AX4 18 MAINLUP 2021
SB4 X4+0 . DOPE POINTER IN FUD MAINLUP 2022
EQ B3,B4,FIELD2 . BRANCH IF FUD IS APPLICABLE MAINLUP 2023
SA4 X3+0 . NEXT ON LIST MAINLUP 2024
NZ X3,FIELD1 MAINLUP 2025
ERROR 22 . NO SUCH FIELD IN THIS DATA STRUC. MAINLUP 2026
FIELD2 AX4 18 . FIELD SELECTOR TO X6 MAINLUP 2027
SX6 X4-1 MAINLUP 2028
CALL SELSTR,,NEXTMIC MAINLUP 2029
* MAINLUP 2030
FIELD3 SB1 B1-1 . DECREMENT NO. OF ACTUALS MAINLUP 2031
CALL SKIPONE,B5,FIELD . (SAVES X4,X5,B1) MAINLUP 2032
* MAINLUP 2033
RETURN SA2 B6 MAINLUP 2034
SB5 X2 MAINLUP 2035
PL X2,RERR23 . ERROR, RETURN FROM LEVEL 0 MAINLUP 2036
SB5 B6-B5 MAINLUP 2037
SB6 B6-1 MAINLUP 2038
SB1 B5 MAINLUP 2039
XRET1 SB1 B1+2 . LOOP FOR RELEASING FORMAL MAINLUP 2040
GE B1,B6,XRET3 . PARAMETERS, AND FOR RESTORING MAINLUP 2041
XRET4 SA3 B1 . THEIR DESCRIPTORS FROM THE STACK MAINLUP 2042
RJ FREESVD MAINLUP 2043
GE B4,B0,XRET2 MAINLUP 2044
SA1 X3 . I/O TYPE NEEDS EXTRA TREATMENT MAINLUP 2045
SX7 B7 MAINLUP 2046
SB7 X1 MAINLUP 2047
SA7 X1 MAINLUP 2048
RJ DECFIL MAINLUP 2049
XRET2 SA2 B1-1 MAINLUP 2050
BX6 X2 MAINLUP 2051
SA6 X3 MAINLUP 2052
EQ XRET1 MAINLUP 2053
XRET3 SB3 X5+2 . RELEASE PROCEDURE VALUE MAINLUP 2054
NE B3,B0,XRET5 . IF FRETURN MAINLUP 2055
SX5 B0 MAINLUP 2056
EQ XRET4 MAINLUP 2057
XRET5 SB4 1 . CONSTANT 1 FOR A WHILE MAINLUP 2058
SA3 B6+B4 . SYSTEM VARIABLES MAINLUP 2059
SA2 B6-B4 . SVD OF PROCEDURE VALUE MAINLUP 2060
SA1 B6 . ADDRESS OF PROCEDURE VALUE MAINLUP 2061
AX3 18 MAINLUP 2062
SA5 X3 . RETURN ADDRESS TO A5 MAINLUP 2063
MX0 1 MAINLUP 2064
LX3 36 . STACKED INFAIL TO SIGN BIT MAINLUP 2065
BX7 X0*X3 MAINLUP 2066
MX0 59 MAINLUP 2067
* THE EFFECT OF THE NEXT INSTRUCTION IS INTERESTING ONLY IF THIS MAINLUP 2068
* CALL IS THE LEFT OPERAND OF A PM ASSIGNMENT MAINLUP 2069
SA7 UA . CLEAR UA MAINLUP 2070
SA4 STCOUNT . DECREASE STCOUNT MAINLUP 2071
SA7 INFAIL MAINLUP 2072
SB6 B5 MAINLUP 2073
IX7 X0+X4 MAINLUP 2074
SA7 A4 MAINLUP 2075
BX7 X2 . SVD TO X7 MAINLUP 2076
LT B4,B3,FAIL . FINISHED IF FRETURN MAINLUP 2077
SA2 MINHS MAINLUP 2078
SA3 X1 MAINLUP 2079
SA7 X1 . RESTORE ORIGINAL VALUE OF PRO- MAINLUP 2080
SX4 X2 . CEDURE NAME MAINLUP 2081
BX6 X3 MAINLUP 2082
LX5 1 . CHECK NAME BIT MAINLUP 2083
AX3 55 MAINLUP 2084
GE B3,B0,XRET6 . BRANCH IF NOT NRETURN MAINLUP 2085
BX5 -X5 MAINLUP 2086
SX3 X3-NTY MAINLUP 2087
NG X5,XRET9 . BRANCH IF VALUE IS NEEDED MAINLUP 2088
ZR X3,XRET8 . UNLESS NAME OR STRING MAINLUP 2089
SX7 X3+NTY-SSTY . MAINLUP 2090
NZ X7,RERR26 . NRETURN VALUE ERROR MAINLUP 2091
JP XRET7 . NOTE THAT X3 NE 0 MAINLUP 2092
XRET6 NG X5,RERR25 . ERROR, NO NRETURN WHEN NAME IS MAINLUP 2093
. NEEDED MAINLUP 2094
SX3 X3-SSTY . BRANCH IF VALUE IS NOT A STRING MAINLUP 2095
NZ X3,XRET8 MAINLUP 2096
XRET7 SX7 2 MAINLUP 2097
SB6 X7+B6 . STACK SF TYPE ENTRY MAINLUP 2098
MX0 6 . CLEAR SS TYPE BITS MAINLUP 2099
SA7 B6 MAINLUP 2100
BX6 -X0*X6 MAINLUP 2101
SA6 B6-1 MAINLUP 2102
ZR X3,NEXTMIC . FINISHED IF NOT NRETURN MAINLUP 2103
AX6 18+18 . RIGHT JUSTIFY CLENGTH MAINLUP 2104
ZR X6,RERR27 . ERROR, INDIRECT THROUGH NULL STRINGMAINLUP 2105
RJ INDRCT . CONVERT SF TO N MAINLUP 2106
CALL X1NAME,,NEXTMIC . NRETURN COMPLETE MAINLUP 2107
XRET8 SA6 X4+0 . PUT PROCEDURE VALUE TO THE TOP OF MAINLUP 2108
CALL SOPERND . THE STACK. NOTE THAT THE SVD IS MAINLUP 2109
. STORED AT MINHS WHERE AN EVENTUAL MAINLUP 2110
XRETR BX3 X4 . GARBAGE COLLECTION CAN FIND IT MAINLUP 2111
RJ FREESVD . RELEASE PROCEDURE VALUE MAINLUP 2112
BX7 X7-X7 MAINLUP 2113
SA7 X3 . CLEAR XWRD MAINLUP 2114
GE B4,B0,NEXTMIC . I/O TYPE NEEDS EXTRA TREATMENT MAINLUP 2115
SA4 X3 MAINLUP 2116
SX7 B7 MAINLUP 2117
SB7 X4 MAINLUP 2118
SA7 X4 MAINLUP 2119
EQ NEXTMIC MAINLUP 2120
XRET9 SX4 X6+0 . VALUE OF NRETURN MAINLUP 2121
SB1 NEXTMIC MAINLUP 2122
SA6 UA . NOTE NRETURN FOR PMCHECK MAINLUP 2123
EQ SOPERND MAINLUP 2124
* MAINLUP 2125
* ERRORS IN RETURNING; A5 MUST BE RESET TO THE VALUE IN B2. MAINLUP 2126
RERR23 SA5 B2+0 MAINLUP 2127
ERROR 23 . RETURN FROM LEVEL ZERO MAINLUP 2128
* MAINLUP 2129
RERR25 SA5 B2 MAINLUP 2130
NO MAINLUP 2131
JP ERR25 . NO NRETURN WHEN NAME IS NEEDED MAINLUP 2132
* MAINLUP 2133
RERR26 SA5 B2+0 MAINLUP 2134
ERROR 26 . NRETURN VALUE ERROR MAINLUP 2135
* MAINLUP 2136
RERR27 SA5 B2 MAINLUP 2137
NO MAINLUP 2138
JP ERR27 . INDIRECT THROUGH NULL STRING MAINLUP 2139
* MAINLUP 2140
* MAINLUP 2141
END MAINLUP 2142