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