1 MQA=7501 2 MQL=7421 3 SWP=7521 4 / ############ ######### ######### 5 / ############ ######### ######### 6 / ### ### ### ### ### ### 7 / ### ### ### ### ### ### 8 / ### ### ### ### ### 9 / ### ### ### ### ### 10 / ############ ############### ######### 11 / ############ ############### ######### 12 / ### ### ### ### 13 / ### ### ### ### 14 / ### ### ### ### ### 15 / ### ### ### ### ### 16 / ### ### ### ######### 17 / ### ### ### ######### 18 / 19 / 20 / ######### ######### ### 21 / ######### ######### ### 22 / ### ### ### ### ### 23 / ### ### ### ### ### 24 / ### ### ### ### 25 / ### ### ### ### 26 / ### ############### ### 27 / ### ############### ### 28 / ### ### ### ### 29 / ### ### ### ### 30 / ### ### ### ### ### 31 / ### ### ### ### ### 32 / ######### ### ### ############### 33 / ######### ### ### ############### 34 / 35 / 36 / ######### 37 / ######### 38 / ### ### 39 / ### ### 40 / ### 41 / ### 42 / ######### ######### FROM N.WIRTH 43 / ######### ######### ETH - ZUERICH 44 / ### 45 / ### 46 / ### ### 47 / ### ### 48 / ######### 49 / ######### 50 / 51 / 52 /IMPLEMENTED ON A PDP-8/E COMPUTER WITH 28K-WORDS OF MEMORY 53 /BY 54 /PROF. HEINZ STEGBAUER 55 /HTL-MOEDLING, IN 1979 56 57 EJECT P A S C A L - S 58 VERSION=2 59 60 /C O R E L A Y O U T : 61 62 63 64 /FIELD 0 0000 - 5777 INTERPRETER 65 / 6000 - 6777 FILE- AND DEVICE BUFFERS 66 / 7000 - 7577 COMPILER (INSYMBOL, NEXTCH) 67 / 7600 - 7777 OS/8 - RESIDENT PART 68 69 /FIELD 1 0000 - 7577 INTERMEDIATE CODE 70 / 7600 - 7777 OS/8 - RESIDENT PART 71 72 /FIELD 2 0000 - 3777 SYMBOL-TABLE 73 / 4000 - XXXX STRING-TABLE 74 / XXXX - 6377 CONSTANT-TABLE 75 / 6400 - 7377 ARRAY-TABLE 76 / 7400 - 7777 BLOCK-TABLE 77 78 79 80 /AT COMPILETIME: 81 82 /FIELD 3 0000 - 3777 NAMES OF SYMBOL-TABLE 83 / 4000 - 7177 FSYS, SET-CONSTANTS, LISTS AND 84 / TABLES, ERROR ROUTINES 85 86 /FIELD 4 0000 - 6377 COMPILER 87 / 6400 - 7777 AUXILIARY ROUTINES 88 89 /FIELD 5 0000 - 7777 STACK FOR COMPILER OPERATION 90 91 /FIELD 6 0000 - 7777 LONG ERROR MESSAGES 92 93 94 95 /AT RUNTIME: 96 97 /FIELD 3 0000 - 7777 /S T A C K (4K WORDS OF 48 BITS) 98 /FIELD 4 0000 - 7777 99 /FIELD 5 0000 - 7777 100 /FIELD 6 0000 - 7777 101 102 103 CODEFIELD=10 104 TABLEFIELD=20 105 NAMEFIELD=30 106 SETFIELD=30 107 COMPFIELD=40 108 PUSHFIELD=50 109 ERRFIELD=60 110 STACKFIELD=30 111 /S T R U C T U R E O F T A B L E S : 112 113 /SYMBOL-TABLE (4 WORDS PER ENTRY, MAX. 512 ENTRIES) 114 /------------ 115 116 TAB=0000 117 118 LINK=TAB /WORD 0, BITS 0-11 119 OBJ=TAB+1 /WORD 1, BITS 0-5 120 TYP=TAB+1 /WORD 1, BITS 6-11 121 REF=TAB+2 /WORD 2, BITS 0-5 122 NORMAL=TAB+2 /WORD 2, BIT 6 123 LEV=TAB+2 /WORD 2, BITS 7-11 124 ADR=TAB+3 /WORD 3, BITS 0-11 125 126 127 /STRING-TABLE (ARRAY[0:N] OF CHAR, 6 BITS/CHAR,FROM 4000 UPWARDS) 128 /------------ 129 130 131 /CONSTANT-TABLE (4 WORDS PER ENTRY, FROM 6400 DOWNWARDS) 132 /-------------- 133 134 135 /ARRAY-TABLE (8 WORDS PER ENTRY, MAX. 64 ENTRIES) 136 /----------- 137 138 ATAB=6400 139 140 / /WORD 0 UNUSED! 141 INXTYP=ATAB+1 /WORD 1 142 ELTYP=ATAB+2 /WORD 2 143 ELREF=ATAB+3 /WORD 3 144 LOW=ATAB+4 /WORD 4 145 HIGH=ATAB+5 /WORD 5 146 ELSIZE=ATAB+6 /WORD 6 147 SIZE=ATAB+7 /WORD 7 148 149 150 /BLOCK-TABLE (4 WORDS PER ENTRY, MAX. 64 ENTRIES) 151 /----------- 152 153 BTAB=7400 154 155 LAST=BTAB /WORD 0 156 LASTPAR=BTAB+1 /WORD 1 157 PSIZE=BTAB+2 /WORD 2 158 VSIZE=BTAB+3 /WORD 3 159 /A S S E M B L E R D E F I N I T I O N S: 160 161 L0001=CLA CLL IAC 162 L0002=CLA STL RTL 163 L0003=CLA STL IAC RAL 164 L0004=CLA CLL IAC RTL 165 L0006=CLA STL IAC RTL 166 L0100=CLA CLL IAC BSW 167 L2000=CLA STL RTR 168 L4000=CLA STL RAR 169 L7777=CLA CLL CMA 170 L7776=CLA CLL CMA RAL 171 L7775=CLA CLL CMA RTL 172 L3777=CLA CLL CMA RAR 173 L5777=CLA CLL CMA RTR 174 /A R I T H M E T I C D E F I N I T I O N S: 175 176 177 /MEMORY REFERENCED INSTRUCTIONS: 178 179 FIXMRI GET=0000 180 FIXMRI ADD=1000 181 FIXMRI SUB=2000 182 FIXMRI MUL=3000 183 FIXMRI DIV=4000 184 FIXMRI MOD=5000 /ALSO: JMP=5000 185 FIXMRI PUT=6000 186 187 188 189 /OPERATE CLASS INSTRUCTIONS: 190 191 NORM=7200 /REAL 192 READREAL=7201 193 WRITEREAL=7202 194 TRUNC=7203 195 ROUND=7206 196 RSQUARE=7205 197 198 ZERO=7204 /BOTH TYPES 199 ABSVAL=7000 200 NEGATE=7004 201 WRITELINE=7006 202 203 READINTEGER=7001 /INTEGER 204 WRITEINTEGER=7002 205 FLOAT=7003 206 ISQUARE=7005 207 208 209 210 /SKIP - INSTRUCTIONS: 211 212 SKIP=SKP 213 SKEQ=SZA 214 SKNE=SNA 215 SKLT=SMA 216 SKLE=SMA SZA 217 SKGT=SPA SNA 218 SKGE=SPA 219 220 221 222 AAAAAA=JMS I 44 /ENTER MACRO MODE 223 EEEEEE=0000 /RETURN TO PDP8 MODE 224 225 INT=0177 226 REAL=7777 227 /C O M P I L E R D E F I N I T I O N S: 228 DECIMAL 229 /S Y M B O L S: 230 231 INTCON=0 232 REALCON=1 233 CHARCON=2 234 STRING=3 235 NOTSY=4 236 PLUS=5 237 MINUS=6 238 TIMES=7 239 IDIVSY=8 240 RDIVSY=9 241 IMODSY=10 242 ANDSY=11 243 ORSY=12 244 EQL=13 245 NEQ=14 246 GTR=15 247 GEQ=16 248 LSS=17 249 LEQ=18 250 LPARENT=19 251 RPARENT=20 252 LBRACK=21 253 RBRACK=22 254 COMMA=23 255 SEMICOLON=24 256 PERIOD=25 257 COLON=26 258 BECOMES=27 259 CONSTSY=28 260 TYPESY=29 261 VARSY=30 262 FUNCTIONSY=31 263 PROCEDURESY=32 264 ARRAYSY=33 265 RECRDSY=34 266 PROGRAMSY=35 267 IDENT=36 268 BEGINSY=37 269 IFSYM=38 270 CASESY=39 271 REPTSY=40 272 WHILSY=41 273 FORSY=42 274 ENDSY=43 275 ELSESY=44 276 UNTILSY=45 277 OFSY=46 278 DOSY=47 279 TOSY=48 280 DOWNTOSY=49 281 THENSY=50 282 283 /O B J E C T S: 284 285 KONSTANT=0 286 VARIABLE=1 287 TYPE1=2 288 PROZEDURE=3 289 FUNKTION=4 290 291 292 293 294 295 /T Y P E S: 296 297 NOTYP=0 298 INTS=1 299 REALS=2 300 BOOLS=3 301 CHARS=4 302 ARRAY=5 303 RECORD=6 304 305 306 307 308 309 /P R O C E D U R E S: 310 311 BLOCK=0 312 STATEMENT=1 313 ASSIGNMENT=2 314 COMPOUNDSTATEMENT=3 315 IFSTATEMENT=4 316 CASESTATEMENT=5 317 REPEATSTATEMENT=6 318 WHILESTATEMENT=7 319 FORSTATEMENT=8 320 STANDPROC=9 321 SELECTOR=10 322 CALL=11 323 STANDFCT=12 324 FACTOR=13 325 TERM=14 326 SIMPLEEXPRESSION=15 327 EXPRESSION=16 328 CONDECLARE=17 329 TYPDECLARE=18 330 VARDECLARE=19 331 PRODECLARE=20 332 CONSTANT=21 333 ARRAYTYP=22 334 TYPE=23 335 PARAMETERLIST=24 336 ONECASE=25 337 338 339 /P R O G R A M P A R A M E T E R S: 340 341 TMAX=512 /MAX. NUMBER OF IDENTIFIERS 342 AMAX=64 /MAX. NUMBER OF ARRAYS 343 BMAX=64 /MAX. NUMBER OF BLOCKS (PROCEDURES+RECORDS) 344 CMAX=1980 /MAX. SIZE OF INTERMEDIATE CODE 345 CSMAX=30 /MAX. NUMBER OF CASES 346 LMAX=16 /MAX. NUMBER OF LEVELS 347 LLNG=80 /MAX. LENGTH OF INPUT LINE 348 ALNG=8 /NO. OF SIGNIFICANT CHAR'S IN IDENTIFIERS 349 350 OCTAL 351 FIELD 0 352 /P A G E Z E R O : 353 354 *4 355 00004 0000 EOF, 0 /END OF FILE SWITCH (BOOLEAN) 356 00005 0001 EOLN, 1 /END OF LINE SWITCH ( - " - ) 357 00006 0000 CC, 0 /CHARACTER-COUNTER 358 00007 0000 ERRSW, 0 /ERROR IN LINE SWITCH 359 360 *10 361 00010 0000 XR10, 0 /ONE AUTOINDEX REGISTER 362 363 *20 364 00020 0000 PC, 0 /P R O G R A M - C O U N T E R 365 366 /I N S T R U C T I O N - R E G I S T E R 367 00021 0000 IRF, 0 /OP-CODE 368 00022 0000 IRX, 0 /LEVEL 369 00023 0000 IRY, 0 /ADDRESS OR VALUE 370 371 /S T A C K - P O I N T E R S 372 00024 0000 B, 0 /BASE INDEX 373 00025 0000 T, 0 /STACK POINTER (SIMPLE INDEX) 374 00026 0000 T3, 0 /= 4*T + 3 (ADDRESS OF WORD 3) 375 00027 0000 T3T, 0 /T3 FOR ROUTINE 'TOSTACK' 376 00030 0240 LOOK, 240 /NEXT CHARACTER (LOOK AHEAD) 377 378 /----------- PAGE 0 LOC'S OF ARITHMETIC PACKAGE ---------------- 379 *32 380 00032 0000 BCD, 0 /BINARY CODED DECIMAL DIGIT 381 00033 0240 CHAR, 240 /CURRENT CHARACTER 382 00034 0022 M, 22 /OUTPUT FORMAT PARAMETERS 383 00035 0000 N, 0 /(DEFAULT VALUES: M=18, N=0) 384 385 00036 0000 ACX, 0 / A C - R E G I S T E R 386 00037 0000 ACS, 0 387 00040 0000 AC0, 0 388 00041 0000 AC1, 0 389 00042 0000 AC2, 0 390 00043 0000 AC3, 0 391 392 00044 2200 INTERPC /POINTER TO MACRO-INTERPRETER 393 394 00045 0000 MQ1, 0 / M Q - R E G I S T E R 395 00046 0000 MQ2, 0 396 00047 0000 MQ3, 0 397 398 00050 0000 OP0, 0 / O P - R E G I S T E R 399 00051 0000 OP1, 0 400 00052 0000 OP2, 0 401 00053 0000 OP3, 0 402 00054 0000 OPX, 0 403 00055 0000 OPS, 0 404 00056 7774 MIN4, -4 /-4 (COUNTING WORDS) 405 00057 7734 MIN44, -44 /-36 (COUNTING BITS) 406 00060 7600 OS8, 7600 407 408 00061 0000 H1, 0 /4 GENERAL TEMPORARIES 409 00062 0000 H2, 0 410 00063 0000 H3, 0 411 00064 0000 H4, 0 412 413 /NEW INSTRUCTIONS USED ALSO BY ARITHMETIC PACKAGE: 414 415 HALVE=JMS I . /AC:=AC DIV 2 (SHIFT RIGHT) 416 00065 4136 RACR 417 DOUBLE=JMS I . /AC:=2*AC (SHIFT LEFT) 418 00066 4111 RACL 419 CLEAR=JMS I . /AC := 0 420 00067 2751 CLAC 421 LOAD=CLEAR /AC := CONTENTS OF ACCUMULATOR (12 BIT INT.) 422 423 READC=JMS I . /GET NEXT CHAR FROM INPUT DEVICE 424 00070 7501 PTREAD, XNEXTCH /XREAD AT RUNTIME 425 PRINTC=JMS I . /SEND CHAR TO OUTPUT DEVICE 426 00071 2133 PTPRINT,XPRINT 427 00072 2133 ZPRINT, XPRINT /CONSTANT POINTER TO XPRINT 428 CRLF=JMS I . 429 00073 2151 XCRLF 430 SNALF=JMS I . /SKIP ON NOT ALFABETIC CHAR. (LETTER) 431 00074 7331 XSNALF 432 SKDIG=JMS I . /SKIP ON DIGIT 433 00075 2122 XSKDIG 434 BREAK=JMS I . /CHECK FOR CTRL-C 435 00076 2155 XBREAK 436 HALT=JMS I . /RUN-TIME ERROR HANDLING 437 00077 7463 PTHALT, ERR21 /XHALT AT RUNTIME 438 /--------------------------------------------------------------- 439 440 441 /MACRO INSTRUCTIONS USED BY INTERPRETER: 442 443 *100 444 ERROR=JMS I . /NON FATAL COMPILER ERRORS 445 00100 7467 ZERROR 446 FATAL=JMS I . /FATAL COMPILER ERRORS 447 00101 7475 ZFATAL 448 OFTAB=JMS I . /GET INFO FROM SYMBOL-TABLE 449 00102 2000 ZOFTAB 450 OFATAB=JMS I . /GET INFO FROM ARRAY-TABLE 451 00103 2011 ZOFATAB 452 OFBTAB=JMS I . /GET INFO FROM BLOCK-TABLE 453 00104 2000 ZOFTAB 454 OFDISPLAY=JMS I . /GET INFO FROM DISPLAY 455 00105 2023 ZOFDISP 456 TODISPLAY=JMS I . /PUT INFO INTO DISPLAY 457 00106 2031 ZTODISP 458 GETCONST=JMS I . /GET CONSTANT 459 00107 2051 ZOFCONST 460 CONTINUE=JMP I . 461 00110 0245 ILOOP 462 BUMP=JMS I . /MOVE STACK POINTER 463 00111 1600 XBUMP 464 465 SDF=JMS . /CHANGE TO TOP OF STACK - DATA FIELD 466 00112 0000 0 467 00113 6201 XSDF, CDF /VARIABLE! 468 00114 5512 JMP I .-2 469 470 POPONE=JMS I . /POP ONE WORD (WORD 3 INTO AC) 471 00115 1664 XPOPONE 472 POPVAL=JMS I . /POP FOUR WORDS 473 00116 1705 XPOPVAL 474 POPNUM=JMS I . /POP NUMBER (=POP 4 WORDS AND UNPACK) 475 00117 1753 XPOPNUM 476 PUSHONE=JMS I . /PUSH ONE WORD 477 00120 1700 XPUSHONE 478 PUSHVAL=JMS I . /PUSH FOUR WORDS 479 00121 1730 XPUSHVAL 480 PUSHNUM=JMS I . /PUSH NUMBER (= PACK + PUSHVAL 481 00122 1757 XPUSHNUM 482 TOSTACK=JMS I . /INSERT ONE WORD INTO STACK[T3T] 483 00123 1765 XTOSTACK 484 OFCODE=JMS I . /GET INTERMEDIATE INSTRUCTION 485 00124 2041 XOFCODE 486 487 /LOCATIONS USED BY I/O-FILE HANDLING: 488 489 IBUFFER=6000 /INPUT FILE BUFFER 490 OBUFFER=7000 /OUTPUT FILE BUFFER 491 IDEVBUF=6400 /PAGE OF INPUT DEVICE HANDLER 492 ODEVBUF=6600 /PAGE OF OUTPUT DEVICE HANDLER 493 494 00125 0000 IDEVH, 0 /ENTRY POINT OF INPUT DEVICE HANDLER 495 00126 0000 ODEVH, 0 /ENTRY POINT OF OUTPUT DEVICE HANDLER 496 00127 0000 NAME, ZBLOCK 4 /NAME OF OUTPUT FILE 00130 0000 00131 0000 00132 0000 497 00133 0000 DEVNO, 0 /OUTPUT DEVICE NUMBER 498 00134 0000 LEMPTY, 0 / -LENGTH OF EMPTY 499 00135 0000 MBLOCKS,0 /COUNTING WRITTEN BLOCKS 500 00136 7000 OBP, OBUFFER /BUFFER POINTER (SEE PUTC) 501 00137 7775 OC3, -3 /3-CHARACTER SWITCH (SEE PUTC) 502 503 00140 3033 I37, DCA CHAR /HALT PROGRAM - CLOSE OUTPUT FILE 504 00141 1177 TAD [232 /WRITE EOF-MARK 505 00142 4471 PRINTC /FILL REST OF BUFFER WITH ZEROES 506 00143 1176 TAD [OBUFFER 507 00144 7041 CIA 508 00145 1136 TAD OBP 509 00146 7640 SZA CLA 510 00147 5142 JMP .-5 511 00150 7340 L7777 /COMPUTE ACTUAL LENGTH 512 00151 1134 TAD LEMPTY /OF OUTPUT FILE 513 00152 7041 CIA 514 00153 1135 TAD MBLOCKS 515 00154 3162 DCA ALOF 516 00155 6212 CIF 10 517 00156 1133 TAD DEVNO 518 00157 4575 JMS I [7700 /CALL USR TO CLOSE OUTPUT FILE 519 00160 0004 4 520 00161 0127 NAME 521 00162 0000 ALOF, 0 522 00163 4477 ERRORD, HALT 523 00164 5460 JMP I OS8 /RETURN TO KEYBOARD MONITOR 524 /INSTRUCTION DECODER AND DISPATCH ROUTINE 525 526 *200 527 00200 7300 ISTART, CLA CLL /STARTING ADDRESS 528 00201 3004 DCA EOF 529 00202 7301 L0001 530 00203 3005 DCA EOLN 531 00204 1174 TAD [240 532 00205 3033 DCA CHAR 533 00206 1174 TAD [240 534 00207 3030 DCA LOOK 535 00210 4467 CLEAR 536 00211 3025 DCA T /INITIALIZE THE STACK: 537 00212 4511 BUMP 538 00213 4521 PUSHVAL /S[1].I := 0 539 00214 4511 BUMP 540 00215 4521 PUSHVAL /S[2].I := 0 541 00216 4511 BUMP 542 00217 4521 PUSHVAL /S[3].I := 0 543 00220 4511 BUMP 544 00221 7301 L0001 545 00222 4504 OFBTAB;LAST 00223 7400 546 00224 3064 DCA H4 547 00225 1064 TAD H4 548 00226 4520 PUSHONE /S[4].I := BTAB[1].LAST 549 00227 3024 DCA B /B := 0 550 00230 7301 L0001 551 00231 3022 DCA IRX 552 00232 4506 TODISPLAY /DISPLAY[1] := 0 553 00233 7326 L0002 554 00234 4504 OFBTAB;VSIZE 00235 7403 555 00236 1273 TAD MIN2 556 00237 3025 DCA T 557 00240 4511 BUMP /T := BTAB[2].VSIZE - 1 558 00241 1064 TAD H4 559 00242 4502 OFTAB;ADR 00243 0003 560 00244 3020 DCA PC /PC := TAB[ S[4].I ].ADR 561 562 00245 4476 ILOOP, BREAK 563 00246 7100 CLL /GET CURRENT INSTRUCTION 564 00247 1020 TAD PC 565 00250 4524 OFCODE 566 00251 7421 MQL 567 00252 7501 MQA 568 00253 7002 BSW 569 00254 0173 AND [77 570 00255 3021 DCA IRF 571 00256 7501 MQA 572 00257 0173 AND [77 573 00260 3022 DCA IRX 574 00261 7120 STL 575 00262 1020 TAD PC 576 00263 4524 OFCODE 577 00264 3023 DCA IRY 578 00265 2020 ISZ PC /PC := PC + 1 579 580 00266 1272 TAD JUMP 581 00267 1021 TAD IRF 582 00270 3271 DCA .+1 583 00271 7402 HLT /JUMP TO INSTRUCTION ROUTINE 584 00272 5674 JUMP, JMP I ILIST 585 00273 7776 MIN2, -2 586 /INSTRUCTIONS OF STACK COMPUTER - ADDRESS TABLE: 587 588 00274 0374 ILIST, I00 /LOAD ADDRESS 589 00275 0401 I01 /LOAD VALUE 590 00276 0407 I02 /LOAD INDIRECT 591 00277 0416 I03 /UPDATE DISPLAY 592 00300 0000 ZBLOCK 4 /CODES 4 - 7 UNUSED! 00301 0000 00302 0000 00303 0000 593 00304 0440 I08 /CALL STANDERD FUNCTION 594 00305 0473 I09 /OFFSET 595 00306 0477 I10 /JUMP 596 00307 0502 I11 /CONDITIONAL JUMP 597 00310 0512 I12 /SWITCH CASE 598 00311 0245 ILOOP /CODE 13 USED INTERNALLY! 599 00312 0600 I14 /FOR1UP 600 00313 0634 I15 /FOR2UP 601 00314 0602 I16 /FOR1DOWN 602 00315 0640 I17 /FOR2DOWN 603 00316 0715 I18 /MARK STACK 604 00317 0734 I19 /CALL 605 00320 1020 I20 /INDEX1 606 00321 1022 I21 /INDEX 607 00322 1110 I22 /LOAD BLOCK 608 00323 1130 I23 /COPY BLOCK 609 00324 1155 I24 /LITERAL 610 00325 1162 I25 /LOAD CONSTANT 611 00326 1200 I26 /FLOAT 612 00327 1212 I27 /READ 613 00330 1225 I28 /WRITE STRING 614 00331 1240 I29 /WRITE1 (DEFAULT FIELD WIDTH) 615 00332 1246 I30 /WRITE2 ( :M ) 616 00333 1273 I31 /WRITE3 ( :M :N ) 617 00334 1310 I32 /EXIT PROCEDURE 618 00335 1312 I33 /EXIT FUNCTION 619 00336 1327 I34 /LOAD ABSOLUTE 620 00337 1333 I35 /LOGICAL NOT 621 00340 1341 I36 /NEGATE 622 00341 7600 PTI37, 7600 /HALT (BECOMES I37 IF FILE I/O!) 623 00342 1345 I38 /STORE 624 00343 0000 ZBLOCK 11 /CODES 39 - 47 UNUSED! 00344 0000 00345 0000 00346 0000 00347 0000 00350 0000 00351 0000 00352 0000 00353 0000 625 00354 1400 I48 /ARITHMETIC OPERATIONS 626 00355 1415 I49 /COMPARE INTEGERS 627 00356 1416 I50 /COMPARE REALS 628 00357 1433 I51 /LOGICAL OR 629 00360 1447 I52 /LOGICAL AND 630 00361 0000 ZBLOCK 10 /CODES 53 - 60 UNUSED! 00362 0000 00363 0000 00364 0000 00365 0000 00366 0000 00367 0000 00370 0000 631 00371 1167 I61 /ASCII 632 00372 1462 I62 /READLN 633 00373 1467 I63 /WRITELN 634 635 /INSTRUCTIONS OF STACK COMPUTER (A) 636 637 00374 4511 I00, BUMP /LOAD ADDRESS 638 00375 4505 OFDISPLAY 639 00376 1023 TAD IRY 640 00377 4520 PUSHONE 641 00400 5510 CONTINUE 642 643 00401 4511 I01, BUMP /LOAD VALUE 644 00402 4505 OFDISPLAY 645 00403 1023 TAD IRY 646 00404 4516 POPVAL 647 00405 4521 PUSHVAL 648 00406 5510 CONTINUE 649 650 00407 4511 I02, BUMP /LOAD INDIRECT 651 00410 4505 OFDISPLAY 652 00411 1023 TAD IRY 653 00412 4515 POPONE 654 00413 4516 POPVAL 655 00414 4521 PUSHVAL 656 00415 5510 CONTINUE 657 658 00416 1022 I03, TAD IRX /UPDATE DISPLAY 659 00417 7041 CIA 660 00420 1023 TAD IRY 661 00421 3061 DCA H1 662 00422 1024 TAD B 663 00423 3063 DCA H3 664 00424 1063 UPDIS, TAD H3 665 00425 4506 TODISPLAY 666 00426 7340 L7777 667 00427 1022 TAD IRX 668 00430 3022 DCA IRX 669 00431 7326 L0002 670 00432 1063 TAD H3 671 00433 4515 POPONE 672 00434 3063 DCA H3 673 00435 2061 ISZ H1 674 00436 5224 JMP UPDIS 675 00437 5510 CONTINUE 676 677 00440 1023 I08, TAD IRY /CALL STANDARD FUNCTION 678 00441 1377 TAD (JMS I STDFUNCT 679 00442 3244 DCA .+2 680 00443 4517 POPNUM 681 00444 4244 STFJMS, JMS . / J M S TO REQUESTED FUNCTION 682 00445 4522 PUSHNUM 683 00446 5510 CONTINUE 684 685 00447 3514 STDFUNCT,XABS /0 686 00450 3514 XABS /1 687 00451 4350 XISQU /2 688 00452 4354 XRSQU /3 689 00453 2115 XODD /4 690 00454 0567 XCHR /5 691 00455 0444 STFJMS /6 692 00456 0561 XSUCC /7 693 00457 0564 XPRED /8 694 00460 2545 XROUND /9 695 00461 2523 RTRUNC /10 696 00462 5234 XSIN /11 697 00463 5141 XCOS /12 698 00464 5000 XEXP /13 699 00465 4600 XLOG /14 700 00466 4400 XSQRT /15 701 00467 5400 XATN /16 702 00470 0551 XEOF /17 703 00471 0554 XEOLN /18 704 00472 2066 XRAND /19 705 706 00473 4515 I09, POPONE /OFFSET 707 00474 1023 TAD IRY 708 00475 4520 PUSHONE 709 00476 5510 CONTINUE 710 711 00477 1023 I10, TAD IRY /JUMP 712 00500 3020 DCA PC 713 00501 5510 CONTINUE 714 715 00502 4515 I11, POPONE /CONDITIONAL JUMP 716 00503 7110 CLL RAR 717 00504 1023 TAD IRY 718 00505 7420 SNL 719 00506 3020 DCA PC 720 00507 7340 L7777 721 00510 4511 BUMP 722 00511 5510 CONTINUE 723 724 00512 4516 I12, POPVAL /SWITCH CASE 725 00513 7330 L4000 726 00514 0041 AND AC1 727 00515 7104 CLL RAL 728 00516 1043 TAD AC3 729 00517 7430 SZL 730 00520 7041 CIA 731 00521 3061 DCA H1 732 00522 7340 L7777 733 00523 4511 BUMP 734 00524 7100 SCASE, CLL 735 00525 1023 TAD IRY 736 00526 4524 OFCODE 737 00527 1376 TAD (-1500 /-1300 738 00530 7640 SZA CLA 739 00531 4477 ERRORC, HALT /C A S E E R R O R ! 740 00532 7120 STL 741 00533 1023 TAD IRY 742 00534 4524 OFCODE 743 00535 7041 CIA 744 00536 1061 TAD H1 745 00537 7650 SNA CLA 746 00540 5344 JMP .+4 747 00541 2023 ISZ IRY 748 00542 2023 ISZ IRY /(INCREMENTS, DOESN'T SKIP!) 749 00543 5324 JMP SCASE 750 00544 7121 IAC STL 751 00545 1023 TAD IRY 752 00546 4524 OFCODE 753 00547 3020 DCA PC 754 00550 5510 CONTINUE 755 756 /I13 ... INTERNAL CODE (MARKS CASE SWITCH LIST) 757 758 759 00551 0000 XEOF, 0 760 00552 1004 TAD EOF 761 00553 5356 JMP .+3 762 00554 0000 XEOLN, 0 763 00555 1005 TAD EOLN 764 00556 4467 LOAD 765 00557 4511 BUMP 766 00560 5245 JMP STFJMS+1 767 768 00561 0000 XSUCC, 0 769 00562 7301 L0001 770 00563 5370 JMP XCHR+1 771 00564 0000 XPRED, 0 772 00565 7340 L7777 773 00566 5370 JMP XCHR+1 774 00567 0000 XCHR, 0 775 00570 1043 TAD AC3 776 00571 0173 AND [77 777 00572 4467 LOAD 778 00573 5245 JMP STFJMS+1 779 780 00576 6300 PAGE 00577 4647 781 /INSTRUCTIONS OF STACK COMPUTER (B+C) 782 783 00600 1276 I14, TAD UPSKIP /FOR1UP 784 00601 7410 SKP 785 00602 1277 I16, TAD DOSKIP /FOR1DOWN 786 00603 3215 DCA FORUD1 787 00604 7340 L7777 /COMMON ROUTINE: 788 00605 1025 TAD T 789 00606 4517 POPNUM 790 00607 4444 AAAAAAAAAAAAAAAA 791 00610 6106 PUT INT&FORH1 792 00611 0000 EEEEEEEEEEEEEEEE 793 00612 4517 POPNUM 794 00613 4444 AAAAAAAAAAAAAAAA 795 00614 2106 SUB INT&FORH1 796 00615 7510 FORUD1, SKGE /OR SKLE 797 00616 5226 JMP FOR1EX 798 00617 0106 GET INT&FORH1 799 00620 0000 EEEEEEEEEEEEEEEE 800 00621 7344 L7776 801 00622 1025 TAD T 802 00623 4515 POPONE 803 00624 4522 PUSHNUM 804 00625 5510 CONTINUE 805 806 00626 0000 FOR1EX, EEEEEEEEEEEEEEEE 807 00627 1023 TAD IRY 808 00630 3020 DCA PC 809 00631 7346 L7775 810 00632 4511 BUMP 811 00633 5510 CONTINUE 812 813 /NOTE THE STACK SITUATION: 814 / 815 / S[ T ] ... FINAL VALUE 816 / S[T-1] ... INITIAL VALUE 817 / S[T-2] ... ADDRESS OF CONTROL VARIABLE 818 819 00634 1300 I15, TAD UPADD /FOR2UP 820 00635 3253 DCA FORUD2 821 00636 1276 TAD UPSKIP 822 00637 5243 JMP .+4 823 00640 1301 I17, TAD DOSUB /FOR2DOWN 824 00641 3253 DCA FORUD2 825 00642 1277 TAD DOSKIP 826 00643 3261 DCA FORUD3 827 00644 7344 L7776 /COMMON ROUTINE: 828 00645 1025 TAD T 829 00646 4515 POPONE 830 00647 3062 DCA H2 831 00650 1062 TAD H2 832 00651 4517 POPNUM 833 00652 4444 AAAAAAAAAAAAAAAA 834 00653 1102 FORUD2, ADD INT&ONE /OR SUB INT&ONE 835 00654 6106 PUT INT&FORH1 836 00655 0000 EEEEEEEEEEEEEEEE 837 00656 4517 POPNUM 838 00657 4444 AAAAAAAAAAAAAAAA 839 00660 2106 SUB INT&FORH1 840 00661 7510 FORUD3, SKGE /OR SKLE 841 00662 5272 JMP FOR2EX 842 00663 0106 GET INT&FORH1 843 00664 0000 EEEEEEEEEEEEEEEE 844 00665 1062 TAD H2 845 00666 4522 PUSHNUM 846 00667 1023 TAD IRY 847 00670 3020 DCA PC 848 00671 5510 CONTINUE 849 850 00672 0000 FOR2EX, EEEEEEEEEEEEEEEE 851 00673 7346 L7775 852 00674 4511 BUMP 853 00675 5510 CONTINUE 854 855 00676 7510 UPSKIP, SKGE 856 00677 7540 DOSKIP, SKLE 857 00700 1102 UPADD, ADD INT&ONE 858 00701 2102 DOSUB, SUB INT&ONE 859 860 00702 0000 ONE, 0;0;0;1 00703 0000 00704 0000 00705 0001 861 00706 0000 FORH1, ZBLOCK 4 00707 0000 00710 0000 00711 0000 862 00712 7777 MINUS1, -1 863 00713 0077 BYTE, 77 864 00714 0017 LEVBITS,17 865 866 00715 7307 I18, L0004 /MARK STACK 867 00716 4511 BUMP 868 00717 1023 TAD IRY 869 00720 4502 OFTAB;REF 00721 0002 870 00722 7002 BSW 871 00723 0313 AND BYTE 872 00724 4502 OFTAB;VSIZE 00725 7403 873 00726 1312 TAD MINUS1 874 00727 4520 PUSHONE 875 00730 4511 BUMP 876 00731 1023 TAD IRY 877 00732 4520 PUSHONE 878 00733 5510 CONTINUE 879 880 00734 1023 I19, TAD IRY /CALL 881 00735 7041 CIA 882 00736 1025 TAD T 883 00737 3061 DCA H1 884 00740 7307 L0004 885 00741 1061 TAD H1 886 00742 4515 POPONE 887 00743 3062 DCA H2 888 00744 1062 TAD H2 889 00745 4502 OFTAB;LEV 00746 0002 890 00747 0314 AND LEVBITS 891 00750 3063 DCA H3 892 00751 7301 L0001 893 00752 1063 TAD H3 894 00753 3022 DCA IRX 895 00754 1061 TAD H1 896 00755 4506 TODISPLAY 897 00756 7325 L0003 898 00757 1061 TAD H1 899 00760 4515 POPONE 900 00761 1061 TAD H1 901 00762 3064 DCA H4 902 00763 7301 L0001 903 00764 1061 TAD H1 904 00765 3027 DCA T3T 905 00766 1020 TAD PC 906 00767 4523 TOSTACK 907 00770 2027 ISZ T3T 908 00771 1063 TAD H3 909 00772 3022 DCA IRX 910 00773 4505 OFDISPLAY 911 00774 4523 TOSTACK 912 00775 2027 ISZ T3T 913 00776 1024 TAD B 914 00777 4523 TOSTACK 915 /-------------------- FALL THROUGH PAGE BOUNDARY ------------- 916 01000 4467 CLEAR 917 01001 1025 TAD T 918 01002 7140 CMA CLL 919 01003 1064 TAD H4 920 01004 7620 SNL CLA 921 01005 5211 JMP .+4 922 01006 4511 BUMP 923 01007 4521 PUSHVAL 924 01010 5201 JMP .-7 925 01011 1061 TAD H1 926 01012 3024 DCA B 927 01013 1062 TAD H2 928 01014 4502 OFTAB;ADR 01015 0003 929 01016 3020 DCA PC 930 01017 5510 CONTINUE 931 932 01020 1377 I20, TAD (NOP /INDEX1 933 01021 7410 SKP 934 01022 1376 I21, TAD (JMS MULTY /INDEX 935 01023 3254 DCA INDEX1 936 01024 1023 TAD IRY /COMMON ROUTINE: 937 01025 4503 OFATAB;HIGH 01026 6405 938 01027 7040 CMA 939 01030 3061 DCA H1 940 01031 1023 TAD IRY 941 01032 4503 OFATAB;LOW 01033 6404 942 01034 1061 TAD H1 943 01035 7041 CIA 944 01036 3062 DCA H2 945 01037 4516 POPVAL 946 01040 7330 L4000 947 01041 0041 AND AC1 948 01042 7104 CLL RAL 949 01043 1043 TAD AC3 950 01044 7430 SZL 951 01045 7041 CIA 952 01046 1061 TAD H1 953 01047 7100 CLL 954 01050 1062 TAD H2 955 01051 3064 DCA RELADR 956 01052 7420 SNL 957 01053 4477 ERRORB, HALT /INDEX OUT OF BOUNDS! 958 01054 7000 INDEX1, NOP /OR JMS MULTY 959 01055 7340 L7777 960 01056 4511 BUMP 961 01057 4515 POPONE 962 01060 1064 TAD RELADR 963 01061 4520 PUSHONE 964 01062 5510 CONTINUE 965 966 RELADR=H4 967 968 01063 0000 MULTY, 0 969 01064 1023 TAD IRY 970 01065 4503 OFATAB;ELSIZE 01066 6406 971 01067 7110 CLL RAR 972 01070 7421 MQL 973 01071 1375 TAD (-14 /-12 (BITS) 974 01072 3063 DCA H3 975 01073 7420 MBIT, SNL 976 01074 5277 JMP .+3 977 01075 7100 CLL 978 01076 1064 TAD RELADR 979 01077 7010 RAR 980 01100 7521 SWP 981 01101 7010 RAR 982 01102 7521 SWP 983 01103 2063 ISZ H3 984 01104 5273 JMP MBIT 985 01105 7521 SWP 986 01106 3064 DCA RELADR 987 01107 5663 JMP I MULTY 988 989 01110 4515 I22, POPONE /LOAD BLOCK 990 01111 3061 DCA H1 991 01112 7340 L7777 992 01113 4511 BUMP 993 01114 1023 TAD IRY 994 01115 7040 CMA 995 01116 3062 DCA H2 996 01117 5325 JMP .+6 997 01120 4511 BUMP 998 01121 1061 TAD H1 999 01122 4516 POPVAL 1000 01123 4521 PUSHVAL 1001 01124 2061 ISZ H1 1002 01125 2062 ISZ H2 1003 01126 5320 JMP .-6 1004 01127 5510 CONTINUE 1005 1006 01130 7340 I23, L7777 /COPY BLOCK 1007 01131 1025 TAD T 1008 01132 4515 POPONE 1009 01133 3061 DCA H1 1010 01134 4515 POPONE 1011 01135 3062 DCA H2 1012 01136 1023 TAD IRY 1013 01137 7040 CMA 1014 01140 3063 DCA H3 1015 01141 5350 JMP .+7 1016 01142 1062 TAD H2 1017 01143 4516 POPVAL 1018 01144 1061 TAD H1 1019 01145 4521 PUSHVAL 1020 01146 2061 ISZ H1 1021 01147 2062 ISZ H2 1022 01150 2063 ISZ H3 1023 01151 5342 JMP .-7 1024 01152 7344 L7776 1025 01153 4511 BUMP 1026 01154 5510 CONTINUE 1027 1028 01155 4511 I24, BUMP /LITERAL (ADDRESSES ONLY!) 1029 01156 1023 TAD IRY 1030 01157 4467 LOAD 1031 01160 4521 PUSHVAL 1032 01161 5510 CONTINUE 1033 1034 01162 4511 I25, BUMP /LOAD CONSTANT 1035 01163 1023 TAD IRY 1036 01164 4507 GETCONSTANT 1037 01165 4521 PUSHVAL 1038 01166 5510 CONTINUE 1039 01167 4515 I61, POPONE /WRITE SPECIAL ASCII 1040 01170 4471 PRINTC 1041 01171 7340 L7777 1042 01172 4511 BUMP 1043 01173 5510 CONTINUE 1044 1045 1046 01175 7764 PAGE 01176 4263 01177 7000 1047 /INSTRUCTIONS OF STACK COMPUTER (D) 1048 1049 01200 1023 I26, TAD IRY /FLOAT 1050 01201 7041 CIA 1051 01202 1025 TAD T 1052 01203 3061 DCA H1 1053 01204 1061 TAD H1 1054 01205 4517 POPNUM 1055 JMS IFLOAT off page ^ 01206 4777 1056 01207 1061 TAD H1 1057 01210 4522 PUSHNUM 1058 01211 5510 CONTINUE 1059 1060 01212 1376 I27, TAD (JMS I READX-1 /READ 1061 01213 1023 TAD IRY 1062 01214 3215 DCA .+1 1063 01215 4621 JMS I READX 1064 01216 4515 POPONE 1065 01217 4522 PUSHNUM 1066 01220 5305 JMP EXI27 1067 1068 01221 3404 READX, IINP 1069 01222 2401 RINP 1070 01223 7000 NOP 1071 01224 1543 CINP 1072 1073 01225 4515 I28, POPONE /WRITE STRING 1074 01226 3034 DCA M 1075 01227 7340 L7777 1076 01230 4511 BUMP 1077 01231 4515 POPONE 1078 01232 7041 CIA 1079 01233 3035 DCA N 1080 01234 1023 TAD IRY 1081 01235 6221 CDF TABLEFIELD 1082 JMS WSTRING off page ^ 01236 4775 1083 01237 5305 JMP EXI27 1084 1085 01240 1374 I29, TAD (TAD DFW-1 /WRITE (STANDARD FIELD WIDTH) 1086 01241 1023 TAD IRY 1087 01242 3243 DCA .+1 1088 01243 1267 TAD DFW 1089 01244 3034 DCA M 1090 01245 5252 JMP WRGO 1091 1092 01246 4515 I30, POPONE /WRITE (SPECIFIED FIELD WIDTH) 1093 01247 3034 DCA M 1094 01250 7340 L7777 1095 01251 4511 BUMP 1096 01252 4517 WRGO, POPNUM 1097 01253 7340 L7777 1098 01254 4511 BUMP 1099 01255 3035 DCA N 1100 01256 1373 TAD (JMS I WRITEX-1 1101 01257 1023 TAD IRY 1102 01260 3261 DCA .+1 1103 01261 4663 JMS I WRITEX 1104 01262 5510 CONTINUE 1105 1106 01263 3416 WRITEX, IOUT 1107 01264 2600 ROUT 1108 01265 1355 BOUT 1109 01266 1551 COUT 1110 1111 01267 0012 DFW, 12 1112 01270 0022 22 1113 01271 0012 12 1114 01272 0001 1 1115 1116 01273 4515 I31, POPONE /WRITE ( X :M :N ) 1117 01274 3035 DCA N 1118 01275 7340 L7777 1119 01276 4511 BUMP 1120 01277 4515 POPONE 1121 01300 3034 DCA M 1122 01301 7340 L7777 1123 01302 4511 BUMP 1124 01303 4517 POPNUM 1125 01304 4664 JMS I WRITEX+1 /REAL ONLY! 1126 01305 7340 EXI27, L7777 1127 01306 4511 BUMP 1128 01307 5510 CONTINUE 1129 01310 7344 I32, L7776 /EXIT PROCEDURE 1130 01311 7410 SKP 1131 01312 7340 I33, L7777 /EXIT FUNCTION 1132 01313 1024 TAD B 1133 01314 3025 DCA T 1134 01315 4511 BUMP 1135 01316 7301 L0001 1136 01317 1024 TAD B 1137 01320 4515 POPONE 1138 01321 3020 DCA PC 1139 01322 7325 L0003 1140 01323 1024 TAD B 1141 01324 4515 POPONE 1142 01325 3024 DCA B 1143 01326 5510 CONTINUE 1144 1145 01327 4515 I34, POPONE /LOAD (ABSOLUTE) 1146 01330 4516 POPVAL 1147 01331 4521 PUSHVAL 1148 01332 5510 CONTINUE 1149 1150 01333 4515 I35, POPONE /LOGICAL NOT 1151 01334 7110 CLL RAR 1152 01335 7020 CML 1153 01336 7004 RAL 1154 01337 4520 PUSHONE 1155 01340 5510 CONTINUE 1156 1157 01341 4517 I36, POPNUM /NEGATE 1158 JMS XNEG off page ^ 01342 4772 1159 01343 4522 PUSHNUM 1160 01344 5510 CONTINUE 1161 1162 01345 4516 I38, POPVAL /STORE 1163 01346 7340 L7777 1164 01347 4511 BUMP 1165 01350 4515 POPONE 1166 01351 4521 PUSHVAL 1167 01352 7340 L7777 1168 01353 4511 BUMP 1169 01354 5510 CONTINUE 1170 1171 /I39 - I47 U N U S E D ! 1172 1173 1174 /B O O L E A N O U T P U T 1175 1176 01355 0000 BOUT, 0 1177 01356 1043 TAD AC3 1178 01357 1371 TAD (-5 1179 01360 3035 DCA N 1180 01361 1043 TAD AC3 1181 01362 7650 SNA CLA 1182 01363 7307 L0004 1183 01364 1370 TAD (TRUEFALSE^2 1184 JMS WSTRING off page ^ 01365 4775 1185 01366 5755 JMP I BOUT 1186 1187 01370 0706 PAGE 01371 7773 01372 3517 01373 4662 01374 1266 01375 1471 01376 4620 01377 2516 1188 /INSTRUCTIONS OF STACK COMPUTER (E) 1189 1190 01400 4517 I48, POPNUM /ARITHMETIC: 1191 JMS ENTR /INTEGER: off page ^ 01401 4777 1192 01402 7340 L7777 / + 48,1 1193 01403 4511 BUMP / - 48,2 1194 01404 4517 POPNUM / * 48,3 1195 01405 1376 TAD (MRITABL / DIV 48,4 1196 01406 1023 TAD IRY / MOD 48,5 1197 01407 3061 DCA H1 1198 01410 1461 TAD I H1 /REAL: 1199 01411 3061 DCA H1 / + 48,10 1200 01412 4461 JMS I H1 / - 48,11 1201 01413 4522 PUSHNUM / * 48,12 1202 01414 5510 CONTINUE / / 48,13 1203 1204 01415 1375 I49, TAD (ISUB-RSUB /COMPARE (INTEGER) 1205 01416 1374 I50, TAD (RSUB /COMPARE (REAL) 1206 01417 3061 DCA H1 / = 50,7440 1207 01420 4517 POPNUM / <> 50,7450 1208 JMS ENTR / < 50,7500 off page ^ 01421 4777 1209 01422 7340 L7777 / <= 50,7540 1210 01423 4511 BUMP / > 50,7550 1211 01424 4517 POPNUM / >= 50,7510 1212 01425 4461 JMS I H1 /SUBTRACT 1213 01426 1023 TAD IRY 1214 JMS BOOL off page ^ 01427 4773 1215 01430 4467 LOAD 1216 01431 4521 PUSHVAL 1217 01432 5510 CONTINUE 1218 1219 01433 4515 I51, POPONE /LOGICAL OR 1220 01434 3061 DCA H1 1221 01435 7340 L7777 1222 01436 4511 BUMP 1223 01437 4112 SDF 1224 01440 1061 TAD H1 1225 01441 7040 CMA 1226 01442 0426 AND I T3 1227 01443 1061 TAD H1 1228 01444 3426 DCA I T3 1229 01445 6201 CDF 1230 01446 5510 CONTINUE 1231 1232 01447 4515 I52, POPONE /LOGICAL AND 1233 01450 3061 DCA H1 1234 01451 7340 L7777 1235 01452 4511 BUMP 1236 01453 4112 SDF 1237 01454 1061 TAD H1 1238 01455 0426 AND I T3 1239 01456 3426 DCA I T3 1240 01457 6201 CDF 1241 01460 5510 CONTINUE 1242 1243 /I53 - I61 U N U S E D ! 1244 1245 01461 4470 READC 1246 01462 1005 I62, TAD EOLN /READLN 1247 01463 7650 SNA CLA 1248 01464 5261 JMP .-3 1249 01465 4470 READC 1250 01466 5510 CONTINUE 1251 1252 01467 4473 I63, CRLF /WRITELN 1253 01470 5510 CONTINUE 1254 /AUXILIARY ROUTINES FOR 'WRITE STRING' AND 'BOOLEAN OUTPUT' 1255 1256 01471 0000 WSTRING,0 1257 01472 3061 DCA H1 1258 01473 6214 RDF 1259 01474 1276 TAD CCDF0 1260 01475 3322 DCA STRFLD 1261 01476 6201 CCDF0, CDF 0 1262 01477 1034 TAD M 1263 01500 7450 SNA 1264 01501 5317 JMP NCHAR 1265 01502 1035 TAD N /M-N 1266 01503 7550 SPA SNA 1267 01504 5314 JMP PARTLY 1268 01505 7041 CIA 1269 01506 3062 DCA H2 1270 01507 1174 TAD [240 1271 01510 4471 PRINTC 1272 01511 2062 ISZ H2 1273 01512 5307 JMP .-3 1274 01513 5317 JMP NCHAR 1275 01514 7041 PARTLY, CIA / N-M 1276 01515 1035 TAD N /-N 1277 01516 3035 DCA N /= -M 1278 01517 1061 NCHAR, TAD H1 1279 01520 7130 STL RAR /STRING TABLE STARTS AT 4000! 1280 01521 3062 DCA H2 1281 01522 6221 STRFLD, CDF TABLEFIELD 1282 01523 1462 TAD I H2 1283 01524 6201 CDF 0 1284 01525 7420 SNL 1285 01526 7002 BSW 1286 01527 4334 JMS ASCII 1287 01530 2061 ISZ H1 1288 01531 2035 ISZ N 1289 01532 5317 JMP NCHAR 1290 01533 5671 JMP I WSTRING 1291 1292 01534 0000 ASCII, 0 1293 01535 0173 AND [77 1294 01536 1174 TAD [240 1295 01537 0173 AND [77 1296 01540 1174 TAD [240 1297 01541 4471 PRINTC 1298 01542 5734 JMP I ASCII 1299 /C H A R A C T E R I N P U T AND O U T P U T 1300 1301 1302 01543 0000 CINP, 0 1303 01544 4470 READC 1304 01545 1033 TAD CHAR 1305 01546 0173 AND [77 1306 01547 4467 LOAD 1307 01550 5743 JMP I CINP 1308 1309 01551 0000 COUT, 0 1310 01552 1034 TAD M 1311 01553 7550 SPA SNA 1312 01554 7301 L0001 1313 01555 7041 CIA 1314 01556 3062 DCA H2 1315 01557 5362 JMP .+3 1316 01560 1174 TAD [240 1317 01561 4471 PRINTC 1318 01562 2062 ISZ H2 1319 01563 5360 JMP .-3 1320 01564 1043 TAD AC3 1321 01565 4334 JMS ASCII 1322 01566 5751 JMP I COUT 1323 1324 01573 3556 PAGE 01574 3244 01575 0361 01576 2263 01577 3542 1325 /STACK INSTRUCTIONS 1326 1327 01600 0000 XBUMP, 0 1328 01601 7450 SNA /IF (AC)=0 1329 01602 7301 L0001 /THEN T:=T+1 1330 01603 7100 CLL /ELSE T:=T+(AC) 1331 01604 7510 SPA 1332 01605 7020 CML 1333 01606 1025 TAD T 1334 01607 3025 DCA T 1335 01610 7430 SZL 1336 01611 4477 ERRORA, HALT /S T A C K O V E R F L O W ! 1337 01612 1025 TAD T 1338 01613 7110 CLL RAR 1339 01614 7002 BSW 1340 01615 0377 AND (70 1341 01616 1376 TAD (CDF STACKFIELD 1342 01617 3113 DCA XSDF /SETUP CHANGE TO STACK FIELD INSTR. 1343 01620 1025 TAD T /AND BUILD 1344 01621 7124 STL RAL 1345 01622 7124 STL RAL 1346 01623 3026 DCA T3 /ADDRESS OF TOP ENTRY (LS WORD) 1347 01624 5600 JMP I XBUMP 1348 1349 ST3, 1350 01625 0000 ADDRESS,0 /COMPUTE FULL ADDRESS 1351 01626 7421 MQL /OF STACK LOCATION 1352 01627 7501 MQA /AND CHANGE DATA FIELD 1353 01630 7110 CLL RAR 1354 01631 7002 BSW 1355 01632 0377 AND (70 1356 01633 1376 TAD (CDF STACKFIELD 1357 01634 3240 DCA STCDF 1358 01635 7501 MQA 1359 01636 7124 STL RAL 1360 01637 7124 STL RAL 1361 01640 6231 STCDF, CDF STACKFIELD 1362 01641 5625 JMP I ADDRESS 1363 1364 01642 0000 PACK, 0 /PACK REAL OR INTEGER NUMBER 1365 01643 1036 TAD ACX /INTO AC0-4 (FOR PUSHING) 1366 01644 3040 DCA AC0 1367 01645 1037 TAD ACS 1368 01646 1041 TAD AC1 1369 01647 3041 DCA AC1 1370 01650 5642 JMP I PACK 1371 1372 01651 0000 UNPACK, 0 /UNPACK POPPED NUMBER 1373 01652 7330 L4000 /(EXTRACT SIGN, EXPONENT) 1374 01653 0041 AND AC1 1375 01654 3037 DCA ACS 1376 01655 7350 L3777 1377 01656 0041 AND AC1 1378 01657 3041 DCA AC1 1379 01660 1040 TAD AC0 1380 01661 3036 DCA ACX 1381 01662 3040 DCA AC0 1382 01663 5651 JMP I UNPACK 1383 1384 01664 0000 XPOPONE,0 1385 01665 7450 SNA 1386 01666 5274 JMP TOPONE 1387 01667 4225 JMS ADDRESS 1388 01670 3225 DCA ST3 1389 01671 1625 TAD I ST3 1390 01672 6201 CDF 1391 01673 5664 JMP I XPOPONE 1392 01674 4112 TOPONE, SDF 1393 01675 1426 TAD I T3 1394 01676 6201 CDF 1395 01677 5664 JMP I XPOPONE 1396 1397 01700 0000 XPUSHONE,0 1398 01701 4112 SDF 1399 01702 3426 DCA I T3 1400 01703 6201 CDF 1401 01704 5700 JMP I XPUSHONE 1402 1403 01705 0000 XPOPVAL,0 1404 01706 7450 SNA 1405 01707 5325 JMP TOPVAL 1406 01710 4225 JMS ADDRESS 1407 01711 1056 TAD MIN4 1408 01712 3010 DCA XR10 1409 01713 1410 TAD I XR10 1410 01714 3040 DCA AC0 1411 01715 1410 TAD I XR10 1412 01716 3041 DCA AC1 1413 01717 1410 TAD I XR10 1414 01720 3042 DCA AC2 1415 01721 1410 TAD I XR10 1416 01722 3043 DCA AC3 1417 01723 6201 CDF 1418 01724 5705 JMP I XPOPVAL 1419 01725 1026 TOPVAL, TAD T3 1420 01726 4112 SDF 1421 01727 5311 JMP XPOPVAL+4 1422 1423 01730 0000 XPUSHVAL,0 1424 01731 7450 SNA 1425 01732 5350 JMP ONTOP 1426 01733 4225 JMS ADDRESS 1427 01734 1056 TAD MIN4 1428 01735 3010 DCA XR10 1429 01736 1040 TAD AC0 1430 01737 3410 DCA I XR10 1431 01740 1041 TAD AC1 1432 01741 3410 DCA I XR10 1433 01742 1042 TAD AC2 1434 01743 3410 DCA I XR10 1435 01744 1043 TAD AC3 1436 01745 3410 DCA I XR10 1437 01746 6201 CDF 1438 01747 5730 JMP I XPUSHVAL 1439 01750 1026 ONTOP, TAD T3 1440 01751 4112 SDF 1441 01752 5334 JMP XPUSHVAL+4 1442 1443 01753 0000 XPOPNUM,0 1444 01754 4305 JMS XPOPVAL 1445 01755 4251 JMS UNPACK 1446 01756 5753 JMP I XPOPNUM 1447 1448 01757 0000 XPUSHNUM,0 1449 01760 7421 MQL 1450 01761 4242 JMS PACK 1451 01762 7501 MQA 1452 01763 4330 JMS XPUSHVAL 1453 01764 5757 JMP I XPUSHNUM 1454 1455 01765 0000 XTOSTACK,0 1456 01766 3242 DCA PACK /TEMP. SAVE VALUE 1457 01767 1027 TAD T3T 1458 01770 4225 JMS ADDRESS 1459 01771 3225 DCA ST3 1460 01772 1242 TAD PACK 1461 01773 3625 DCA I ST3 1462 01774 6201 CDF 1463 01775 5765 JMP I XTOSTACK 1464 1465 01776 6231 PAGE 01777 0070 1466 /TABLE INSTRUCTIONS 1467 1468 ZOFTAB, / AC := TAB[ AC ].REF 1469 02000 0000 ZOFBTAB,0 / AC := BTAB[ AC ].REF 1470 02001 7106 CLL RTL 1471 02002 1600 TAD I ZOFTAB /SELECTOR FOLLOWS CALL 1472 02003 3250 DCA LOC 1473 02004 2200 ISZ ZOFTAB 1474 02005 6221 CDF TABLEFIELD 1475 02006 1650 TAD I LOC 1476 02007 6201 CDF 1477 02010 5600 JMP I ZOFTAB 1478 1479 02011 0000 ZOFATAB,0 / AC := ATAB[ AC ].REF 1480 02012 7104 CLL RAL 1481 02013 7106 CLL RTL 1482 02014 1611 TAD I ZOFATAB /SELECTOR FOLLOWS CALL 1483 02015 3250 DCA LOC 1484 02016 2211 ISZ ZOFATAB 1485 02017 6221 CDF TABLEFIELD 1486 02020 1650 TAD I LOC 1487 02021 6201 CDF 1488 02022 5611 JMP I ZOFATAB 1489 1490 02023 0000 ZOFDISP,0 / AC := DISPLAY[ IRX ] 1491 02024 1377 TAD (DISPLAY 1492 02025 1022 TAD IRX 1493 02026 3250 DCA LOC 1494 02027 1650 TAD I LOC 1495 02030 5623 JMP I ZOFDISP 1496 1497 02031 0000 ZTODISP,0 / DISPLAY[ IRX ] := AC 1498 02032 7421 MQL 1499 02033 1377 TAD (DISPLAY 1500 02034 1022 TAD IRX 1501 02035 3250 DCA LOC 1502 02036 7501 MQA 1503 02037 3650 DCA I LOC 1504 02040 5631 JMP I ZTODISP 1505 1506 02041 0000 XOFCODE,0 / AC := CODE[ AC.LINK ] 1507 02042 7004 RAL /LINK=0 ... 1ST WORD 1508 02043 3250 DCA LOC /LINK=1 ... 2ND WORD 1509 02044 6211 CDF CODEFIELD 1510 02045 1650 TAD I LOC 1511 02046 6201 CDF 1512 02047 5641 JMP I XOFCODE 1513 1514 02050 0000 LOC, 0 /ADDRESS OF TABLE LOCATION 1515 1516 02051 0000 ZOFCONST,0 /ENTER WITH ADDRESS-1 IN AC 1517 02052 3010 DCA XR10 1518 02053 6221 CDF TABLEFIELD 1519 02054 1410 TAD I XR10 1520 02055 3040 DCA AC0 1521 02056 1410 TAD I XR10 1522 02057 3041 DCA AC1 1523 02060 1410 TAD I XR10 1524 02061 3042 DCA AC2 1525 02062 1410 TAD I XR10 1526 02063 3043 DCA AC3 1527 02064 6201 CDF 1528 02065 5651 JMP I ZOFCONST 1529 /PREDEFINED R A N D O M - NUMBER GENERATOR 1530 1531 02066 0000 XRAND, 0 1532 02067 1303 TAD DISMOV /DISABLE INTEGER- 1533 DCA INTMOV /MULTIPLY-OVERFLOW off page ^ 02070 3776 1534 02071 4444 AAAAAAAAAAAAAAAA 1535 02072 0105 GET INT&RN 1536 02073 3111 MUL INT&ALFA /MOD 2^35 ! 1537 02074 6105 PUT INT&RN 1538 02075 7200 NORM /0 < RANDOM: REAL < 1 1539 02076 0000 EEEEEEEEEEEEEEEE 1540 02077 1304 TAD ENAMOV /REENABLE 1541 DCA INTMOV off page ^ 02100 3776 1542 02101 4511 BUMP 1543 02102 5666 JMP I XRAND 1544 1545 02103 3040 DISMOV, DCA AC0 1546 02104 4307 ENAMOV, JMSSNAC 1547 1548 02105 0000 RN, 0000;3777;7777;7775 /2^35 - 3 (INTEGER) 02106 3777 02107 7777 02110 7775 1549 02111 0000 ALFA, 0000;0000;0100;0003 /2^18 + 3 (INTEGER) 02112 0000 02113 0100 02114 0003 1550 1551 1552 02115 0000 XODD, 0 1553 02116 7301 L0001 1554 02117 0043 AND AC3 1555 02120 4467 LOAD 1556 02121 5715 JMP I XODD 1557 1558 1559 02122 0000 XSKDIG, 0 /SKIP ON DIGIT 1560 02123 1033 TAD CHAR 1561 02124 1375 TAD (-"9-1 1562 02125 7100 CLL 1563 02126 1374 TAD ("9+1-"0 1564 02127 3032 DCA BCD 1565 02130 7630 SZL CLA 1566 02131 2322 ISZ XSKDIG 1567 02132 5722 JMP I XSKDIG 1568 1569 02133 0000 XPRINT, 0 /INTERNAL PRINTER HANDLER 1570 02134 7450 SNA 1571 02135 1033 TAD CHAR 1572 02136 6046 TLS 1573 02137 6041 TSF 1574 02140 5337 JMP .-1 1575 02141 1172 TAD [-215 1576 02142 7640 SZA CLA 1577 02143 5733 JMP I XPRINT 1578 02144 1171 TAD [212 1579 02145 5336 JMP XPRINT+3 1580 1581 02146 0000 SPRINT, 0 /SILENT PRINTER 1582 02147 7300 CLA CLL 1583 02150 5746 JMP I SPRINT 1584 1585 02151 0000 XCRLF, 0 /CARRIAGE RETURN & LINE FEED 1586 02152 1170 TAD [215 1587 02153 4471 PRINTC 1588 02154 5751 JMP I XCRLF 1589 1590 02155 0000 XBREAK, 0 /CHECK ^C AND ABORT 1591 02156 6031 KSF 1592 02157 5755 JMP I XBREAK 1593 02160 7200 CLA 1594 02161 6034 KRS 1595 02162 0167 AND [177 1596 02163 1373 TAD (-3 1597 02164 7640 SZA CLA 1598 02165 5755 JMP I XBREAK 1599 02166 5460 JMP I OS8 1600 1601 02173 7775 PAGE 02174 0012 02175 7506 02176 3643 02177 7400 1602 / A R I T H M E T I C P A C K A G E 1603 1604 02200 0000 INTERPC,0000 /PROGRAM COUNTER FOR MACRO-INSTRUCTIONS 1605 02201 7600 CPAGE, 7600 1606 02202 7640 SZA CLA 1607 02203 2200 NEXTINSTR, ISZ INTERPC /POINT TO NEXT INSTRUCTION 1608 02204 1600 TAD I INTERPC /GET CODE 1609 02205 7450 SNA /IF CODE=0000 1610 02206 5600 JMP I INTERPC /THEN RETURN TO PDP8-MODE 1611 02207 7106 CLL RTL /ELSE SHIFT CODE NXXX 1612 02210 7006 RTL 1613 02211 0377 AND (7 /TO EXTRACT OPERATION CODE N 1614 02212 3260 DCA OPCODE 1615 02213 1600 TAD I INTERPC /GET CODE AGAIN, 1616 02214 0376 AND (177 /MASK OUT REL.ADDRESS (OR FUNCTION CODE) 1617 02215 7421 MQL 1618 02216 1201 TAD CPAGE 1619 02217 0200 C200, AND INTERPC /CURRENT PAGE BITS 1620 02220 7501 MQA /+ RELATIVE ADDRESS 1621 02221 3262 DCA OPADDR /= ABS. ADDRESS OF OPERAND (IF MRI) 1622 02222 7420 SNL /IF D\I-BIT SET 1623 02223 5226 JMP .+3 1624 02224 1662 TAD I OPADDR /THEN DO INDIRECT ADDRESSING 1625 02225 3262 DCA OPADDR 1626 02226 1260 TAD OPCODE 1627 02227 1375 TAD (-7 1628 02230 7650 SNA CLA /IF CODE=7XXX 1629 02231 5301 JMP OPRTYP /THEN OPERATE CLASS INSTRUCTION 1630 02232 1662 MRITYP, TAD I OPADDR /ELSE MEMORY REFERENCED INSTR.: 1631 02233 3054 DCA OPX /LOAD AND UNPACK OPERAND 1632 02234 2262 ISZ OPADDR /INTO OP-REGISTER 1633 02235 7330 L4000 1634 02236 0662 AND I OPADDR 1635 02237 3055 DCA OPS 1636 02240 7350 L3777 1637 02241 0662 AND I OPADDR 1638 02242 3051 DCA OP1 1639 02243 2262 ISZ OPADDR 1640 02244 1662 TAD I OPADDR 1641 02245 3052 DCA OP2 1642 02246 2262 ISZ OPADDR 1643 02247 1662 TAD I OPADDR 1644 02250 3053 DCA OP3 1645 02251 1600 TAD I INTERPC /GET INSTRUCTION CODE AGAIN, 1646 02252 0217 AND C200 /CHECK INTEGER\REAL-BIT 1647 02253 7640 SZA CLA /AND BUILD A 1648 02254 1377 TAD (7 1649 02255 1260 TAD OPCODE 1650 02256 1374 TAD (JMS I MRITABL 1651 02257 3260 DCA .+1 1652 02260 4260 OPCODE, JMS . / J M S TO THE REQUESTED ROUTINE 1653 02261 5203 JMP NEXTINSTR 1654 02262 0000 OPADDR, 0 1655 1656 /TABLE OF INTEGER ARITHMETIC ROUTINES: 1657 02263 3525 MRITABL,OGET 1658 02264 3600 IADD 1659 02265 3625 ISUB 1660 02266 3631 IMUL 1661 02267 3652 IDIV 1662 02270 3672 IMOD 1663 02271 2351 OPUT 1664 1665 /TABLE OF REAL ARITHMETIC ROUTINES: 1666 02272 3525 OGET 1667 02273 3200 RADD 1668 02274 3244 RSUB 1669 02275 3255 RMUL 1670 02276 3302 RDIV 1671 02277 2344 OJUMP 1672 02300 2351 OPUT 1673 1674 02301 1600 OPRTYP, TAD I INTERPC /DECODE OPERATE INSTRUCTION 1675 02302 7420 SNL /BIT3 IS IN LINK (COMPLEMENTED!) 1676 02303 5341 JMP SKIPTYP /SKIP INSTR. CODES ARE 74XX, 75XX 1677 02304 7002 BSW /OPERATE INSTR. CODES ARE: 1678 02305 7012 RTR /7000 - 7006 (INTEGER) 1679 02306 7701 CLA MQA /7200 - 7206 (REAL) 1680 02307 0377 AND (7 /EXTENDED FUNCTIONS: 70X7 1681 02310 7004 RAL 1682 02311 1373 TAD (JMS I OPRTABL 1683 02312 3315 DCA .+3 1684 02313 1200 TAD INTERPC /SAVE PC, SINCE OPR'S MAY CAUSE 1685 02314 3321 DCA SAVEPC /RECURSIVE CALL OF INTERPRETER (1 LEVEL) 1686 02315 4315 OPRJMS, JMS . / J M S TO APPROPRIATE ROUTINE 1687 02316 1321 TAD SAVEPC /RESTORE PC 1688 02317 3200 DCA INTERPC 1689 02320 5203 JMP NEXTINSTR 1690 02321 0000 SAVEPC, 0 1691 1692 NOOP=OPCODE 1693 1694 /TABLE OF OPERATE CLASS INSTRUCTIONS: 1695 02322 3514 OPRTABL,XABS; RNORM 02323 3323 1696 02324 3404 IINP; RINP 02325 2401 1697 02326 3416 IOUT; ROUT 02327 2600 1698 02330 2516 IFLOAT; RTRUNC 02331 2523 1699 02332 3517 XNEG; CLAC 02333 2751 1700 02334 4350 XISQU; XRSQU 02335 4354 1701 02336 2151 XCRLF; XROUND 02337 2545 1702 02340 2260 NOOP /LINK TO FUNCTION DISPATCH ROUTINE 1703 IFDEF FUNCTS < 1704 *.-1 1705 FUNCTS /ENABLED ONLY IF FUNCTION PACKAGE PRESENT 1706 > 1707 1708 SKIPTYP,JMS BOOL /ALL SKIP INSTR. (INT & REAL) DONE HERE off page ^ 02341 4772 1709 02342 2200 ISZ INTERPC /(SEE ROUTINE 'BOOL' FOR COMMENTS) 1710 02343 5202 JMP NEXTINSTR-1 1711 1712 02344 0000 OJUMP, 0 /JUMP (WITHIN MACRO CODE!!!) 1713 02345 7346 L7775 1714 02346 1262 TAD OPADDR 1715 02347 3200 DCA INTERPC 1716 02350 5204 JMP NEXTINSTR+1 1717 1718 02351 0000 OPUT, 0 /STORE CONTENTS OF AC-REGISTER 1719 02352 7307 L0004 /AT SPECIFIED MEMORY ADDRESS 1720 02353 7041 CIA /-4 (OPADDR WAS MOVED AT MRITYP) 1721 02354 1262 TAD OPADDR 1722 02355 3010 DCA XR10 1723 02356 1036 TAD ACX 1724 02357 3410 DCA I XR10 1725 02360 1037 TAD ACS 1726 02361 1041 TAD AC1 1727 02362 3410 DCA I XR10 1728 02363 1042 TAD AC2 1729 02364 3410 DCA I XR10 1730 02365 1043 TAD AC3 1731 02366 3410 DCA I XR10 1732 02367 5751 JMP I OPUT 1733 1734 02372 3556 PAGE 02373 4722 02374 4663 02375 7771 02376 0177 02377 0007 1735 /R E A L N U M B E R I N P U T 1736 / 1737 /ACCEPTS A DECIMAL NUMBER IN ANY FORMAT, 1738 /CONVERTS IT TO INTERNAL BYNARY FLOATING POINT NOTATION 1739 /AND LEAVES IT IN THE AC-REGISTER. 1740 /LEADING BLANKS ARE IGNORED; THE FIRST 1741 /NON ACCEPTABLE CHARACTER TERMINATES THE NUMBER. 1742 1743 DC=MQ2 /DIGIT COUNTER 1744 OC=MQ3 /DIGIT EXCESS COUNTER 1745 02400 0000 DP, 0 /DECIMAL POINT POSITION 1746 1747 02401 7045 RINP, RETNUM /RETURN ADDR. SINCE COMPILER ENTERS AT 'FRACTN' 1748 02402 7610 SKP CLA 1749 02403 4470 READC /PASS OVER LEADING BLANKS 1750 02404 1033 TAD CHAR 1751 02405 1377 TAD (-240 1752 02406 7650 SNA CLA 1753 02407 5203 JMP .-4 1754 02410 4254 JMS PMXXX /PROCESS + - I N T E G E R PART 1755 02411 1047 TAD OC /COUNT LOOSEN DIGITS (IF THE INTERNAL 1756 02412 7041 CIA /REPRESENTATION EXCEEDS 35 BITS, 1757 02413 3046 DCA DC /FURTHER DIGITS ARE IGNORED, BUT 1758 02414 1033 TAD CHAR /THEIR CONTRIBUTION TO MAGNITUDE 1759 02415 1376 TAD (-". /MUST BE CONSIDERED!) 1760 02416 7640 SZA CLA /IF INTEGER FOLLOWED BY DECIMAL POINT 1761 02417 5222 JMP .+3 1762 02420 4470 READC 1763 02421 4274 FRACTN, JMS BCONV /THEN PROCESS F R A C T I O N PART 1764 02422 1046 TAD DC /COUNT DIGITS AFTER DEC. POINT 1765 02423 7041 CIA 1766 02424 3200 DCA DP /TO REMEMBER POSITION OF DEC. POINT 1767 02425 4316 JMS IFLOAT /NORMALIZE THE NUMBER 1768 02426 1033 TAD CHAR 1769 02427 1375 TAD (-"E 1770 02430 7640 SZA CLA /IF NEXT CHARACTER IS "E" 1771 02431 5251 JMP ADJUST 1772 02432 4444 AAAAAAAAAAAAAAAA 1773 PUT NUMBUF /THEN STORE NUMBER TEMPORARELY off page ^ 02433 6774 1774 02434 0000 EEEEEEEEEEEEEEEE 1775 02435 4470 READC 1776 02436 4254 JMS PMXXX /AND PROCESS S C A L E - F A C T O R 1777 02437 1037 TAD ACS 1778 02440 7104 CLL RAL 1779 02441 1043 TAD AC3 /GET IT FROM LOW ORDER WORD OF AC 1780 02442 7430 SZL /IF NEGATIVE SIGN 1781 02443 7041 CIA /THEN USE 2'S COMPLEMENT 1782 02444 1200 TAD DP /ADD IT TO CURRENT POS. OF DEC. POINT 1783 02445 3200 DCA DP 1784 02446 4444 AAAAAAAAAAAAAAAA 1785 GET NUMBUF /RECALL STORED MANTISSA off page ^ 02447 0774 1786 02450 0000 EEEEEEEEEEEEEEEE 1787 02451 1200 ADJUST, TAD DP /NOW CONVERT DEC. FLOATING POINT TO 1788 JMS SUP1 /TO BINARY FLOATING POINT NOTATION off page ^ 02452 4773 1789 02453 5601 JMP I RINP 1790 1791 1792 02454 0000 PMXXX, 0 /SIGNED INTEGER INPUT & CONVERSION 1793 02455 4467 CLEAR 1794 02456 3046 DCA DC 1795 02457 3047 DCA OC 1796 02460 1033 TAD CHAR 1797 02461 1372 TAD (-"+ 1798 02462 7450 SNA 1799 02463 5271 JMP .+6 1800 02464 7112 CLL RTR 1801 02465 7640 SZA CLA 1802 02466 5272 JMP .+4 1803 02467 7330 L4000 1804 02470 3037 DCA ACS 1805 02471 4470 READC 1806 02472 4274 JMS BCONV 1807 02473 5654 JMP I PMXXX 1808 1809 02474 0000 BCONV, 0 /UNSIGNED DIGIT STRING INPUT & CONVERSION 1810 02475 4475 SKDIG 1811 02476 5674 JMP I BCONV 1812 02477 1040 TAD AC0 1813 02500 7640 SZA CLA 1814 02501 5313 JMP OVER 1815 02502 7100 CLL 1816 JMS MUL10 off page ^ 02503 4771 1817 02504 1032 TAD BCD 1818 02505 3053 DCA OP3 1819 02506 3052 DCA OP2 1820 02507 3051 DCA OP1 1821 JMS BADD off page ^ 02510 4770 1822 02511 2046 ISZ DC 1823 02512 7410 SKP 1824 02513 2047 OVER, ISZ OC 1825 02514 4470 READC 1826 02515 5275 JMP BCONV+1 1827 /F L O A T AND T R U N C ROUTINES 1828 1829 1830 DISPLC=. 1831 02516 0000 IFLOAT, 0 /COMPENSATE 1832 02517 1367 TAD (43 /35 BITS DISPLACEMENT OF BINARY POINT 1833 02520 3036 DCA ACX /WITH EXPONENT 1834 JMS RNORM /AND NORMALIZE off page ^ 02521 4766 1835 02522 5716 JMP I IFLOAT 1836 1837 02523 0000 RTRUNC, 0 1838 02524 7300 CLA CLL 1839 02525 1036 TAD ACX 1840 02526 7550 SPA SNA /IF ABS(AC)<1 OR AC=0 1841 02527 5342 JMP LESS0 /THEN TRUNC(AC):=0 1842 02530 1057 TAD MIN44 1843 02531 3316 DCA DISPLC /-(DISPLACEMENT OF BINARY POINT + 1) 1844 02532 7630 SZL CLA /IF ABS(AC)>MAXINT 1845 JMP ERROR2 /THEN O V E R F L O W off page ^ 02533 5765 1846 02534 7410 SKP 1847 02535 4465 HALVE /ELSE ALIGN MANTISSA 1848 02536 2316 ISZ DISPLC 1849 02537 5335 JMP .-2 1850 02540 3036 DCA ACX /EXP=0 FOR INTEGERS 1851 02541 5723 JMP I RTRUNC 1852 02542 7200 LESS0, CLA 1853 02543 4467 CLEAR 1854 02544 5723 JMP I RTRUNC 1855 1856 02545 0000 XROUND, 0 1857 02546 7332 L2000 1858 02547 3051 DCA OP1 1859 02550 3052 DCA OP2 1860 02551 3053 DCA OP3 1861 02552 3054 DCA OPX /X>=0: 1862 02553 1037 TAD ACS /ROUND(X) = TRUNC(X+0.5) 1863 02554 3055 DCA OPS /X<0: 1864 JMS RADD /ROUND(X) = TRUNC(X-0.5) off page ^ 02555 4764 1865 02556 4323 JMS RTRUNC 1866 02557 5745 JMP I XROUND 1867 1868 02564 3200 PAGE 02565 3370 02566 3323 02567 0043 02570 4000 02571 4127 02572 7525 02573 4252 02574 2726 02575 7473 02576 7522 02577 7540 1869 /R E A L N U M B E R O U T P U T 1870 / 1871 /PRINTS FLOATING POINT NUMBER X (CONTENTS OF AC-REGISTER) 1872 /IN THE FORMAT SPECIFIED BY THE PARAMETERS M,N (PAGE 0) 1873 /PERFORMS LIKE THE PASCAL-STATEMENT 1874 / W R I T E ( X :M :N ) 1875 1876 1877 /M /MINIMUM FIELD WIDTH 1878 /N /FRACTION LENGTH 1879 S=MQ1 /-NUMBER OF LEADING BLANKS 1880 P=MQ2 /-NUMBER OF DIGITS PRECEDING THE DEC. POINT 1881 F=MQ3 /-NUMBER OF DIGITS FOLLOWING THE DEC. POINT 1882 1883 1884 02600 0000 ROUT, 0 1885 JMS FLCONV /BINARY TO DECIMAL FLOATING POINT off page ^ 02601 4777 1886 JMS EXBCD /EXTRACT BCD-DIGITS OF MANTISSA off page ^ 02602 4776 1887 02603 1035 TAD N 1888 02604 7550 SPA SNA /WHICH FORMAT REQUESTED? 1889 02605 5246 JMP FLOPNT 1890 02606 7041 FIXPNT, CIA / -99999.99999 1891 02607 3047 DCA F /F:=-N 1892 02610 1032 TAD DEXP 1893 02611 7510 SPA /IF DEXP>0 1894 02612 7200 CLA /THEN P:=-(DEXP+1) 1895 02613 7040 CMA /ELSE P:=-1 1896 02614 3046 DCA P 1897 02615 7344 L7776 /S:=-(M-N-P-2) 1898 02616 1047 TAD F 1899 02617 1046 TAD P 1900 02620 1034 TAD M 1901 02621 7041 CIA 1902 02622 3045 DCA S 1903 02623 1045 TAD S 1904 02624 7700 SMA CLA /IF S>=0 THEN USE FLOATING POINT FORMAT 1905 02625 5246 JMP FLOPNT /(NUMBER TOO LARGE FOR FIXED POINT!) 1906 02626 7326 L0002 1907 02627 1035 TAD N /ROUNDUP WITH (N+DEXP+1)TH DIGIT 1908 02630 1032 TAD DEXP 1909 02631 7550 SPA SNA /IF NOT WITHIN THE 11 DIGITS, THEN 1910 02632 5235 JMP .+3 1911 02633 1375 TAD (-13 /ROUNDUP WITH 11TH DIGIT 1912 02634 7500 SMA 1913 02635 7200 CLA 1914 02636 1374 TAD (13 1915 JMS UROUND off page ^ 02637 4773 1916 02640 5210 JMP FIXPNT+2 /ROUNDED MANTISSA = 10, CHECK WIDTH! 1917 02641 1032 TAD DEXP /BEGINNING AT DIGIT POS. NUMBUF+DEXP 1918 02642 7500 SMA /OR NUMBUF IF NUMBER >= 1 1919 02643 7200 CLA 1920 JMS XOUT /DO THE FIXED POINT OUTPUT off page ^ 02644 4772 1921 02645 5600 JMP I ROUT 1922 1923 1924 02646 7340 FLOPNT, L7777 / -9.999999999E+999 1925 02647 3046 DCA P /P:=-1 1926 02650 1034 TAD M 1927 02651 1371 TAD (-12 1928 02652 7510 SPA 1929 02653 7200 CLA 1930 02654 1370 TAD (12 1931 02655 3034 DCA M /IF M<10 THEN M:=10 1932 02656 1367 TAD (-11 1933 02657 3047 DCA F /F:=-9 1934 02660 1034 TAD M /S:=-(M-17) 1935 02661 1366 TAD (-21 1936 02662 7041 CIA 1937 02663 3045 DCA S 1938 02664 1045 TAD S 1939 02665 7710 SPA CLA /IF S>=0 THEN 1940 02666 5275 JMP .+7 1941 02667 7340 L7777 /S:=-1 1942 02670 3045 DCA S /F:=-(M-9) 1943 02671 1034 TAD M 1944 02672 1367 TAD (-11 1945 02673 7041 CIA 1946 02674 3047 DCA F 1947 02675 7344 L7776 1948 02676 1047 TAD F 1949 02677 7041 CIA 1950 JMS UROUND /ROUNDUP WITH (-F+1)TH DIGIT off page ^ 02700 4773 1951 02701 0022 STFW, 0022 /NOP (CARRY DOESN'T HARM!) 1952 JMS XOUT /OUTPUT THE MANTISSA off page ^ 02702 4772 1953 02703 1365 TAD ("E 1954 02704 4471 PRINTC /E 1955 02705 1032 TAD DEXP 1956 02706 7710 SPA CLA 1957 02707 7326 L0002 1958 02710 1364 TAD ("+ 1959 02711 4471 PRINTC /+ OR - 1960 02712 1032 TAD DEXP 1961 02713 7510 SPA 1962 02714 7041 CIA /MAKE DEXP POSITIVE 1963 02715 4351 JMS LDAC /LOAD IT IN AC-REGISTER (AS INTEGER) 1964 02716 7325 L0003 1965 02717 3034 DCA M /SETUP A FIELD WIDTH OF 3, 1966 02720 1363 TAD ("0-240 /CHANGE LEADING BLANKS TO ZEROES 1967 JMS IOUT /AND USE INTEGER OUTPUT ROUTINE off page ^ 02721 4762 1968 02722 1301 TAD STFW /TO PRINT THE CHARACTERISTIC. 1969 02723 3034 DCA M /THEN RESET STANDARD FIELD WIDTH 1970 02724 5600 JMP I ROUT 1971 1972 1973 1974 1975 /BUFFER FOR BCD-DIGITS: 1976 02725 0000 0 /IMPORTANT! (SEE ROUNDING) 1977 02726 0000 NUMBUF, ZBLOCK 13 02727 0000 02730 0000 02731 0000 02732 0000 02733 0000 02734 0000 02735 0000 02736 0000 02737 0000 02740 0000 1978 1979 1980 1981 02741 0004 TEN, 0004 /REAL CONSTANT OF 10.0 1982 02742 2400 2400 1983 02743 0000 0000 1984 02744 0000 0000 1985 1986 02745 7775 OPTEN, 7775 /REAL CONSTANT OF 0.1 (CURRENTLY NOT USED!) 1987 02746 3146 3146 1988 02747 3146 3146 1989 02750 3146 3146 1990 1991 LDAC, 1992 02751 0000 CLAC, 0 /LOAD OR CLEAR AC-REGISTER 1993 02752 3043 DCA AC3 1994 02753 3042 DCA AC2 1995 02754 3041 DCA AC1 1996 02755 3040 DCA AC0 1997 02756 3037 DCA ACS 1998 02757 3036 DCA ACX 1999 02760 5751 JMP I CLAC 2000 2001 02762 3416 PAGE 02763 0020 02764 0253 02765 0305 02766 7757 02767 7767 02770 0012 02771 7766 02772 3117 02773 3065 02774 0013 02775 7765 02776 3036 02777 3000 2002 /REAL NUMBER OUTPUT - AUXILIARY ROUTINES 2003 2004 XDPOS=XR10 /AUTOINDEXING DIGITS 2005 /DPOS=EXBCD /SIMPLE POINTER TO DIGITS 2006 /DIG0=DOUT /NUMBUF-1 OR NUMBUF-2 (FIRST DIGIT OF MANTISSA) 2007 DEXP=BCD /DECIMAL CHARACTERISTIC OF X 2008 DCNT=. /DIGIT COUNTER 2009 2010 03000 0000 FLCONV, 0 /CONVERT X*2^ACX ---> Z*10^DEXP, 2011 03001 3032 DCA DEXP /WITH 1<=Z<10: 2012 03002 1041 TAD AC1 2013 03003 7650 SNA CLA /IF NUMBER=0 THEN NO CONVERSION NECESSARY! 2014 03004 5600 JMP I FLCONV 2015 JMS SUP2 /DO SUPER CONVERSION off page ^ 03005 4777 2016 03006 1032 FLCLP, TAD DEXP 2017 03007 3032 DCA DEXP 2018 03010 1036 TAD ACX 2019 03011 7550 SPA SNA /NOTE INTERNAL BINARY NOTATION: 2020 03012 5231 JMP SMALL 2021 03013 1376 TAD (-4 / 1 ..... 0.1000B+1 2022 03014 7510 SPA /10 ..... 0.1010B+4 2023 03015 5222 JMP .+5 2024 03016 7640 SZA CLA 2025 03017 5224 JMP LARGE 2026 03020 1041 TAD AC1 /HIGH ORDER WORD FOR 10 2027 03021 1375 TAD (-2400 /IS 2400 OCTAL! 2028 03022 7710 SPA CLA 2029 03023 5600 JMP I FLCONV 2030 03024 4444 LARGE, AAAAAAAAAAAAAAAA 2031 DIV TEN /:10 (OR 'MUL OPTEN' *0.1) off page ^ 03025 4774 2032 03026 0000 EEEEEEEEEEEEEEEE 2033 03027 7301 L0001 2034 03030 5206 JMP FLCLP 2035 03031 4444 SMALL, AAAAAAAAAAAAAAAA 2036 MUL TEN /*10 off page ^ 03032 3774 2037 03033 0000 EEEEEEEEEEEEEEEE 2038 03034 7340 L7777 2039 03035 5206 JMP FLCLP 2040 2041 DPOS=. 2042 03036 0000 EXBCD, 0 /EXTRACT BCD-DIGITS OF MANTISSA 2043 03037 1036 TAD ACX 2044 03040 7040 CMA 2045 03041 3200 DCA DCNT 2046 03042 7120 STL /(MIGHT CORRECT ILL 11TH DEC. DIGIT!) 2047 03043 4466 DOUBLE /SHIFT OUT FIRST DIGIT 2048 03044 2200 ISZ DCNT 2049 03045 5242 JMP .-3 2050 03046 1373 TAD (NUMBUF-1 2051 03047 3010 DCA XDPOS 2052 03050 1372 TAD (-12 /10 DIGITS REMAINING 2053 03051 3200 DCA DCNT 2054 03052 3773 DCA I (NUMBUF-1 /LEADING 0 FOR ROUNDING CARRY 2055 03053 7410 SKP 2056 JMS MUL10 off page ^ 03054 4771 2057 03055 1040 TAD AC0 2058 03056 3410 DCA I XDPOS 2059 03057 3040 DCA AC0 2060 03060 2200 ISZ DCNT 2061 03061 5254 JMP .-5 2062 03062 1373 TAD (NUMBUF-1 /POINT TO FIRST DIGIT 2063 03063 3344 DCA DIG0 2064 03064 5636 JMP I EXBCD 2065 2066 03065 0000 UROUND, 0 /ROUNDUP. ENTRY WITH DIGIT NO. 2067 03066 1344 TAD DIG0 /WHERE TO START ROUNDING 2068 03067 3236 DCA DPOS /IN HARDWARE AC 2069 03070 1370 TAD (5 2070 03071 1372 CARRY, TAD (-12 2071 03072 1636 TAD I DPOS 2072 03073 7710 SPA CLA 2073 03074 5303 JMP OVR10 2074 03075 3636 DCA I DPOS 2075 03076 7340 L7777 2076 03077 1236 TAD DPOS 2077 03100 3236 DCA DPOS 2078 03101 2636 ISZ I DPOS 2079 03102 5271 JMP CARRY 2080 03103 1344 OVR10, TAD DIG0 2081 03104 7041 CIA 2082 03105 1236 TAD DPOS 2083 03106 7640 SZA CLA /CARRY TO A NEW FIRST DIGIT? 2084 03107 5315 JMP SKIPEX /NO 2085 03110 7340 L7777 2086 03111 1344 TAD DIG0 2087 03112 3344 DCA DIG0 2088 03113 2032 ISZ DEXP 2089 03114 5665 JMP I UROUND /MANTISSA=10 EXIT 2090 03115 2265 SKIPEX, ISZ UROUND /NORMAL EXIT 2091 03116 5665 JMP I UROUND 2092 2093 03117 0000 XOUT, 0 /OUTPUT. ENTRY WITH DIGIT NO. 2094 03120 1344 TAD DIG0 /WHERE TO START PRINTING 2095 03121 3010 DCA XDPOS /IN HARDWARE AC 2096 03122 1367 TAD (240 2097 03123 4471 PRINTC / -(S) BLANKS 2098 03124 2045 ISZ S 2099 03125 5322 JMP .-3 2100 03126 1037 TAD ACS 2101 03127 7710 SPA CLA 2102 03130 1366 TAD ("--240 2103 03131 1367 TAD (240 2104 03132 4471 PRINTC / THE SIGN (- OR BLANK) 2105 03133 4344 JMS DOUT / -(P) DIGITS (OR ZERO) 2106 03134 2046 ISZ P 2107 03135 5333 JMP .-2 2108 03136 1365 TAD (". / THE DECIMAL POINT 2109 03137 4471 PRINTC 2110 03140 4344 JMS DOUT / -(F) DIGITS (OR ZEROES) 2111 03141 2047 ISZ F 2112 03142 5340 JMP .-2 2113 03143 5717 JMP I XOUT 2114 2115 DIG0=. 2116 03144 0000 DOUT, 0 /IF XDPOS POINTS INTO BUFFER 2117 03145 1010 TAD XDPOS /THEN PRINT THE DIGIT 2118 03146 1364 TAD (-NUMBUF-12 /ELSE PRINT A ZERO 2119 03147 7100 CLL 2120 03150 1363 TAD (14 2121 03151 7200 CLA 2122 03152 1410 TAD I XDPOS 2123 03153 7420 SNL 2124 03154 7200 CLA 2125 03155 1362 TAD ("0 2126 03156 4471 PRINTC 2127 03157 5744 JMP I DOUT 2128 2129 03162 0260 PAGE 03163 0014 03164 5040 03165 0256 03166 0015 03167 0240 03170 0005 03171 4127 03172 7766 03173 2725 03174 2741 03175 5400 03176 7774 03177 4302 2130 /R E A L A R I T H M E T I C 2131 / 2132 /RADD: AC:=AC+OP 2133 /RSUB: AC:=AC-OP 2134 /RMUL: AC:=AC*OP 2135 /RDIV: AC:=AC/OP 2136 / 2137 /RNORM: NORMALIZE AC TO STANDARD FLOATING POINT FORMAT 2138 2139 2140 03200 0000 RADD, 0 2141 03201 1051 TAD OP1 2142 03202 7650 SNA CLA /IF OP=0 THEN DON'T WASTE TIME! 2143 03203 5600 JMP I RADD 2144 03204 1041 TAD AC1 2145 03205 7650 SNA CLA /IF AC=0 THEN SIMPLY ADD! 2146 03206 5231 JMP OPMAX 2147 03207 1036 TAD ACX /COMPARE MAGNITUDE OF OPERANDS 2148 03210 7041 CIA /AND STORE NEGATIVE DIFFERENCE 2149 03211 1054 TAD OPX 2150 03212 7500 SMA 2151 03213 5231 JMP OPMAX 2152 03214 3302 DCA RDIV /TO USE AS SHIFT COUNTER 2153 03215 1051 ACMAX, TAD OP1 /1/ ABS(AC)>ABS(OP) ---> SHIFT OP RIGHT 2154 03216 7110 CLL RAR 2155 03217 3051 DCA OP1 2156 03220 1052 TAD OP2 2157 03221 7010 RAR 2158 03222 3052 DCA OP2 2159 03223 1053 TAD OP3 2160 03224 7010 RAR 2161 03225 3053 DCA OP3 2162 03226 2302 ISZ RDIV 2163 03227 5215 JMP ACMAX 2164 03230 5241 JMP SETSGN 2165 03231 7040 OPMAX, CMA /2/ ABS(OP)>=ABS(AC) 2166 03232 3302 DCA RDIV 2167 03233 1054 TAD OPX /RESULT IS OF MAGNITUDE OF OP 2168 03234 3036 DCA ACX 2169 03235 7410 SKP 2170 03236 4465 HALVE /SHIFT AC RIGHT 2171 03237 2302 ISZ RDIV 2172 03240 5236 JMP .-2 2173 SETSGN, JMS OADD /MANTISSAS NOW ALIGNED! - ADD. off page ^ 03241 4777 2174 03242 4323 JMS RNORM /NORMALIZE RESULT 2175 03243 5600 JMP I RADD 2176 2177 03244 0000 RSUB, 0 2178 03245 4250 JMS OSUB /OP:=-OP 2179 03246 4200 JMS RADD /AC:=AC+(-OP) 2180 03247 5644 JMP I RSUB 2181 03250 0000 OSUB, 0 2182 03251 7330 L4000 2183 03252 1055 TAD OPS 2184 03253 3055 DCA OPS 2185 03254 5650 JMP I OSUB 2186 2187 03255 0000 RMUL, 0 2188 03256 1051 TAD OP1 2189 03257 7650 SNA CLA 2190 JMS CLAC off page ^ 03260 4776 2191 03261 1041 TAD AC1 2192 03262 7650 SNA CLA /IF OP=0 OR AC=0 2193 03263 5655 JMP I RMUL /THEN DON'T WASTE TIME! 2194 03264 3045 DCA MQ1 2195 03265 3046 DCA MQ2 /CLEAR MQ-REGISTER (FOR 'BMUL') 2196 03266 3047 DCA MQ3 2197 03267 1055 TAD OPS /SETUP SIGN OF PRODUCT 2198 03270 1037 TAD ACS 2199 03271 3037 DCA ACS 2200 03272 7340 L7777 2201 03273 1054 TAD OPX /COMPUTE EXPONENT OF PRODUCT 2202 03274 1036 TAD ACX 2203 03275 3036 DCA ACX 2204 03276 7301 L0001 2205 JMS BMUL /MULTIPLY MANTISSAS off page ^ 03277 4775 2206 03300 4323 JMS RNORM 2207 03301 5655 JMP I RMUL 2208 2209 03302 0000 RDIV, 0 2210 03303 1051 TAD OP1 2211 03304 7650 SNA CLA 2212 03305 4477 ERROR0, HALT /D I V I S I O N BY Z E R O ! 2213 03306 3045 DCA MQ1 2214 03307 3046 DCA MQ2 /CLEAR MQ-REGISTER (FOR 'BDIV') 2215 03310 3047 DCA MQ3 2216 03311 1055 TAD OPS /SETUP SIGN OF QUOTIENT 2217 03312 1037 TAD ACS 2218 03313 3037 DCA ACS 2219 03314 1054 TAD OPX /COMPUTE EXPONENT OF QUOTIENT 2220 03315 7041 CIA 2221 03316 1036 TAD ACX 2222 03317 3036 DCA ACX 2223 JMS BDIV /DIVIDE MANTISSAS off page ^ 03320 4774 2224 03321 4323 JMS RNORM 2225 03322 5702 JMP I RDIV 2226 2227 03323 0000 RNORM, 0 2228 03324 7300 CLA CLL 2229 03325 1041 TOOBIG, TAD AC1 2230 03326 0373 AND (4000 /(NO 'L4000' BECAUSE OF LINK!) 2231 03327 1040 TAD AC0 2232 03330 7650 SNA CLA /WHILE MANTISSA TOO BIG (>=1) 2233 03331 5336 JMP ROUNDUP 2234 03332 4465 HALVE /HALVE IT (SHIFT RIGHT) 2235 03333 2036 ISZ ACX /AND CORRECT THE EXPONENT (+1) 2236 03334 7000 NOP 2237 03335 5325 JMP TOOBIG 2238 03336 7430 ROUNDUP,SZL /IF A BINARY 1 WAS SHIFTED OUT 2239 03337 2043 ISZ AC3 /THEN ROUND MANTISSA 2240 03340 5345 JMP NULLAC 2241 03341 2042 ISZ AC2 2242 03342 5345 JMP NULLAC 2243 03343 2041 ISZ AC1 /(CAN'T SKIP!) 2244 03344 5324 JMP RNORM+1 2245 NULLAC, JMS SNAC /CHECK FOR NULL MANTISSA off page ^ 03345 4772 2246 03346 5360 JMP ISNULL 2247 03347 7332 TOOSMALL,L2000 2248 03350 0041 AND AC1 2249 03351 7640 SZA CLA /WHILE MANTISSA TOO SMALL (<0.5) 2250 03352 5361 JMP ISNULL+1 2251 03353 4466 DOUBLE /DOUBLE IT (SHIFT LEFT) 2252 03354 7340 L7777 /AND CORRECT THE EXPONENT (-1) 2253 03355 1036 TAD ACX 2254 03356 3036 DCA ACX 2255 03357 5347 JMP TOOSMALL 2256 ISNULL, JMS CLAC off page ^ 03360 4776 2257 03361 7332 L2000 /CHECK FOR OVER- OR UNDERFLOW 2258 03362 1036 TAD ACX 2259 03363 7700 SMA CLA 2260 03364 5723 JMP I RNORM /OKAY! 2261 03365 1036 TAD ACX 2262 03366 7710 SPA CLA 2263 03367 4477 ERROR1, HALT /U N D E R F L O W ! 2264 03370 4477 ERROR2, HALT /O V E R F L O W ! 2265 2266 03372 3707 PAGE 03373 4000 03374 4044 03375 4021 03376 2751 03377 3604 2267 /I N T E G E R I N P U T AND O U T P U T 2268 / 2269 / 2270 2271 /M /MINIMUM FIELD WITH 2272 03400 0000 DI, 0 /-NUMBER OF DIGITS TO PRINT 2273 03401 0000 SI, 0 /-NUMBER OF LEADING BLANKS 2274 03402 0240 LDBLANK,240 /OR OTHER LEADING CHARACTER 2275 03403 0000 NEGATIV,0 /IF NUMBER NEGATIVE THEN -1 ELSE 0 2276 2277 03404 0000 IINP, 0 2278 03405 7610 SKP CLA 2279 03406 4470 READC /IGNORE LEADING BLANKS 2280 03407 1033 TAD CHAR 2281 03410 1377 TAD (-240 2282 03411 7650 SNA CLA 2283 03412 5206 JMP .-4 2284 JMS PMXXX /INPUT +-0123456789 AND CONVERT TO BINARY off page ^ 03413 4776 2285 03414 4277 JMS INORM /CHECK OVERFLOW (MAXINT=34359738367) 2286 03415 5604 JMP I IINP 2287 2288 PTD=IINP 2289 2290 03416 0000 IOUT, 0 2291 03417 1174 TAD [240 /KLUDGE! CHOOSE THE LEADING CHARACTER 2292 03420 3202 DCA LDBLANK /WITH A TAD (XXX-240 BEFORE CALLING IOUT 2293 03421 1037 TAD ACS 2294 03422 7710 SPA CLA 2295 03423 7340 L7777 2296 03424 3203 DCA NEGATIV 2297 03425 1375 TAD (NUMBUF+12 2298 03426 3204 DCA PTD /POINT TO RIGHTMOST POS. OF BUFFER 2299 03427 3604 DCA I PTD /STORE A 0 CASE NUMBER=0 2300 DECONV, JMS SNAC off page ^ 03430 4774 2301 03431 5243 JMP OFORM 2302 03432 7340 L7777 2303 03433 1204 TAD PTD /DECREMENT POINTER 2304 03434 3204 DCA PTD 2305 03435 4444 AAAAAAAAAAAAAAAA 2306 03436 4110 DIV INT&IO /AC:=AC DIV 10 2307 03437 0000 EEEEEEEEEEEEEEEE 2308 03440 1047 TAD MQ3 2309 03441 7110 CLL RAR /GET REST OF ABOVE DIVISION 2310 03442 5227 JMP DECONV-1 /AND STORE AS BCD-DIGIT 2311 03443 1373 OFORM, TAD (-NUMBUF-12 2312 03444 1204 TAD PTD 2313 03445 7500 SMA 2314 03446 7340 L7777 /AT LEAST ONE DIGIT TO PRINT (THINK OF 0) 2315 03447 3200 DCA DI /DI:=-NUMBER OF DIGITS 2316 03450 1203 TAD NEGATIV /TAKE ACCOUNT OF EV. - SIGN 2317 03451 1034 TAD M 2318 03452 1200 TAD DI 2319 03453 7510 SPA /IF FIELD WIDTH < NO. OF DIGITS 2320 03454 7200 CLA /THEN SI:=-1 2321 03455 7040 CMA /ELSE SI:=-(FIELD WIDTH - DIGITS) - 1 2322 03456 3201 DCA SI 2323 03457 5262 JMP .+3 2324 03460 1202 LDCHAR, TAD LDBLANK 2325 03461 4471 PRINTC /LEADING BLANKS 2326 03462 2201 ISZ SI 2327 03463 5260 JMP LDCHAR 2328 03464 2203 EVMINS, ISZ NEGATIV 2329 03465 5270 JMP ODIGS 2330 03466 1372 TAD ("- 2331 03467 4471 PRINTC /MINUS SIGN (IF ANY) 2332 03470 1604 ODIGS, TAD I PTD 2333 03471 2204 ISZ PTD 2334 03472 1371 TAD ("0 2335 03473 4471 PRINTC /DIGIT STRING 2336 03474 2200 ISZ DI 2337 03475 5270 JMP ODIGS 2338 03476 5616 JMP I IOUT 2339 2340 03477 0000 INORM, 0 /INTEGER CLEARING HOUSE ROUTINE 2341 03500 7330 L4000 2342 03501 0041 AND AC1 2343 03502 1040 TAD AC0 2344 03503 7640 SZA CLA /IF AC0<>0 OR AC1>3777 THEN 2345 JMP ERROR2 /O V E R F L O W off page ^ 03504 5770 2346 JMS SNAC off page ^ 03505 4774 2347 03506 3037 DCA ACS /DON'T FORGET THE -0 PROBLEM! 2348 03507 5677 JMP I INORM 2349 2350 03510 0000 IO, 0000 /INTEGER CONSTANT OF 10 2351 03511 0000 0000 2352 03512 0000 0000 2353 03513 0012 0012 2354 /VARIOUS SECONDARY ROUTINES: 2355 2356 03514 0000 XABS, 0 /AC:=ABS(AC) 2357 03515 3037 DCA ACS 2358 03516 5714 JMP I XABS 2359 2360 03517 0000 XNEG, 0 /AC:=-AC (REAL AND INTEGER) 2361 03520 7330 L4000 2362 03521 1037 TAD ACS 2363 03522 3037 DCA ACS 2364 03523 4277 JMS INORM /BUT NOT AC:=-0 ! 2365 03524 5717 JMP I XNEG 2366 2367 03525 0000 OGET, 0 /COPY CONTENTS OF 2368 03526 3040 DCA AC0 /OP-REGISTER INTO AC-REGISTER 2369 03527 1051 TAD OP1 /(AC0 IS CLEARED!) 2370 03530 3041 DCA AC1 2371 03531 1052 TAD OP2 2372 03532 3042 DCA AC2 2373 03533 1053 TAD OP3 2374 03534 3043 DCA AC3 2375 03535 1055 TAD OPS 2376 03536 3037 DCA ACS 2377 03537 1054 TAD OPX 2378 03540 3036 DCA ACX 2379 03541 5725 JMP I OGET 2380 2381 03542 0000 ENTR, 0 /COPY CONTENTS OF 2382 03543 1041 TAD AC1 /AC-REGISTER INTO OP-REGISTER 2383 03544 3051 DCA OP1 /(AC0 UNCHANGED!) 2384 03545 1042 TAD AC2 2385 03546 3052 DCA OP2 2386 03547 1043 TAD AC3 2387 03550 3053 DCA OP3 2388 03551 1037 TAD ACS 2389 03552 3055 DCA OPS 2390 03553 1036 TAD ACX 2391 03554 3054 DCA OPX 2392 03555 5742 JMP I ENTR 2393 2394 03556 0000 BOOL, 0 /ENTER WITH SKIP-INSTRUCTION 2395 03557 3364 DCA OSKIP /IN HARDWARE AC 2396 JMS SNAC off page ^ 03560 4774 2397 03561 7410 SKP 2398 03562 7301 L0001 2399 03563 1037 TAD ACS 2400 03564 0000 OSKIP, 0000 2401 03565 7610 SKP CLA 2402 03566 7301 L0001 2403 03567 5756 JMP I BOOL /EXIT WITH HARDWARE AC=1 IF TRUE (SKIP) 2404 /OR AC=0 IF FALSE 2405 2406 03570 3370 PAGE 03571 0260 03572 0255 03573 5040 03574 3707 03575 2740 03576 2454 03577 7540 2407 /I N T E G E R A R I T H M E T I C 2408 / 2409 /IADD: AC:=AC+OP 2410 /ISUB: AC:=AC-OP 2411 /IMUL: AC:=AC*OP 2412 /IDIV: AC:=AC DIV OP 2413 /IMOD: AC:=AC MOD OP 2414 2415 2416 03600 0000 IADD, 0 2417 03601 4204 JMS OADD 2418 JMS INORM off page ^ 03602 4777 2419 03603 5600 JMP I IADD 2420 03604 0000 OADD, 0 2421 03605 1037 TAD ACS 2422 03606 1055 TAD OPS 2423 03607 7650 SNA CLA /IF BOTH OPERANDS HAVE THE SAME SIGN 2424 03610 5223 JMP SAMESGN /THEN SIMPLY ADD THEM 2425 03611 4351 JMS CMOP /ELSE COMPLEMENT ONE OF THEM (OP) 2426 JMS BADD /AND ADD off page ^ 03612 4776 2427 03613 1041 TAD AC1 /BUT TAKE CARE: 2428 03614 7700 SMA CLA /IF RESULT POSITIVE (IN 2'S COMPLEMENT) 2429 03615 5221 JMP .+4 /THEN OKAY 2430 03616 4331 JMS CMAC /ELSE COMPLEMENT AC 2431 03617 1055 TAD OPS /AND USE SIGN OF OP 2432 03620 3037 DCA ACS 2433 03621 3040 DCA AC0 /NO OVERFLOW IN THIS CASE! 2434 03622 5604 JMP I OADD 2435 SAMESGN,JMS BADD off page ^ 03623 4776 2436 03624 5604 JMP I OADD 2437 2438 03625 0000 ISUB, 0 2439 JMS OSUB /OP:=-OP off page ^ 03626 4775 2440 03627 4200 JMS IADD /AC:=AC+(-OP) 2441 03630 5625 JMP I ISUB 2442 2443 03631 0000 IMUL, 0 2444 03632 4320 JMS SNOP /IF OP=0 2445 03633 4467 CLEAR /THEN PRODUCT IS 0 2446 03634 3045 DCA MQ1 2447 03635 3046 DCA MQ2 /CLEAR MQ-REGISTER (BMUL NEEDS THAT!) 2448 03636 3047 DCA MQ3 2449 03637 1055 TAD OPS /SETUP SIGN OF PRODUCT 2450 03640 1037 TAD ACS 2451 03641 3037 DCA ACS 2452 JMS BMUL /MULTIPLY off page ^ 03642 4774 2453 03643 4307 INTMOV, JMS SNAC /IF HIGH ORDER WORDS OF PRODUCT <>0 2454 03644 7410 SKP 2455 JMP ERROR2 /THEN O V E R F L O W ! off page ^ 03645 5773 2456 JMS SWAP /GET LOW ORDER PART INTO AC off page ^ 03646 4772 2457 03647 4465 HALVE /(BMUL GIVES 2*PRODUCT!) 2458 JMS INORM off page ^ 03650 4777 2459 03651 5631 JMP I IMUL 2460 2461 2462 MODSGN=IMUL 2463 2464 03652 0000 IDIV, 0 2465 03653 4320 JMS SNOP 2466 03654 5566 JMP I [ERROR0 /D I V I S I O N BY Z E R O ! 2467 03655 4466 DOUBLE 2468 JMS SWAP /PUT 2*DIVIDEND INTO MQ-REGISTER off page ^ 03656 4772 2469 03657 3041 DCA AC1 /AND CLEAR AC (SEE BDIV INSTRUCTIONS) 2470 03660 3042 DCA AC2 2471 03661 3043 DCA AC3 2472 03662 1055 TAD OPS /SETUP SIGN OF QUOTIENT 2473 03663 1037 TAD ACS 2474 03664 3037 DCA ACS 2475 03665 1037 TAD ACS /PATCH: SERVES 2476 03666 3231 DCA MODSGN /FOR MOD-FUNCTION 2477 JMS BDIV /DIVIDE off page ^ 03667 4771 2478 JMS INORM off page ^ 03670 4777 2479 03671 5652 JMP I IDIV 2480 2481 03672 0000 IMOD, 0 2482 03673 4252 JMS IDIV /DIVIDE OP INTO AC 2483 JMS SWAP /GET 2*REST FROM MQ-REGISTER off page ^ 03674 4772 2484 03675 4465 HALVE /AND HALVE IT (SEE BDIV INSTR.) 2485 03676 1231 TAD MODSGN 2486 03677 7710 SPA CLA /IF REST NOT NEGATIVE 2487 03700 4307 JMS SNAC 2488 03701 5304 JMP MODOK /THEN OKAY 2489 JMS BADD /ELSE ADD OP TO MAKE IT POSITIVE off page ^ 03702 4776 2490 03703 4331 JMS CMAC /MORE PRECISELY: AC:=-(AC-OP) 2491 03704 3037 MODOK, DCA ACS /SIGN IS + 2492 03705 3040 DCA AC0 2493 03706 5672 JMP I IMOD 2494 /FOUR SECONDARY ROUTINES: 2495 2496 03707 0000 SNAC, 0 /SKIP ON NONZERO AC 2497 03710 1043 TAD AC3 2498 03711 7450 SNA 2499 03712 1042 TAD AC2 2500 03713 7450 SNA 2501 03714 1041 TAD AC1 2502 03715 7640 SZA CLA 2503 03716 2307 ISZ SNAC 2504 03717 5707 JMP I SNAC 2505 2506 03720 0000 SNOP, 0 /SKIP ON NONZERO OP 2507 03721 1053 TAD OP3 2508 03722 7450 SNA 2509 03723 1052 TAD OP2 2510 03724 7450 SNA 2511 03725 1051 TAD OP1 2512 03726 7640 SZA CLA 2513 03727 2320 ISZ SNOP 2514 03730 5720 JMP I SNOP 2515 2516 03731 0000 CMAC, 0 /2'S COMPLEMENT OF AC 2517 03732 7300 CLA CLL 2518 03733 1043 TAD AC3 2519 03734 7041 CIA 2520 03735 3043 DCA AC3 2521 03736 1042 TAD AC2 2522 03737 7040 CMA 2523 03740 7430 SZL 2524 03741 7101 IAC CLL 2525 03742 3042 DCA AC2 2526 03743 1041 TAD AC1 2527 03744 7040 CMA 2528 03745 7430 SZL 2529 03746 7101 IAC CLL 2530 03747 3041 DCA AC1 2531 03750 5731 JMP I CMAC 2532 2533 03751 0000 CMOP, 0 /2'S COMPLEMENT OF OP 2534 03752 7300 CLA CLL 2535 03753 1053 TAD OP3 2536 03754 7041 CIA 2537 03755 3053 DCA OP3 2538 03756 1052 TAD OP2 2539 03757 7040 CMA 2540 03760 7430 SZL 2541 03761 7101 IAC CLL 2542 03762 3052 DCA OP2 2543 03763 1051 TAD OP1 2544 03764 7040 CMA 2545 03765 7430 SZL 2546 03766 7101 IAC CLL 2547 03767 3051 DCA OP1 2548 03770 5751 JMP I CMOP 2549 2550 JMSSNAC=JMS SNAC 2551 2552 03771 4044 PAGE 03772 4154 03773 3370 03774 4021 03775 3250 03776 4000 03777 3477 2553 2554 2555 /B I N A R Y A D D I T I O N 2556 / 2557 /AC0!AC1!AC2!AC3 := AC1!AC2!AC3 + OP1!OP2!OP3 2558 2559 TEMP3=. 2560 2561 04000 0000 BADD, 0 2562 04001 7300 CLA CLL 2563 04002 1043 TAD AC3 2564 04003 1053 TAD OP3 2565 04004 3043 DCA AC3 2566 04005 7004 RAL 2567 04006 1042 TAD AC2 2568 04007 1052 TAD OP2 2569 04010 3042 DCA AC2 2570 04011 7004 RAL 2571 04012 1041 TAD AC1 2572 04013 1051 TAD OP1 2573 04014 3041 DCA AC1 2574 04015 7004 RAL 2575 04016 1040 TAD AC0 2576 04017 3040 DCA AC0 2577 04020 5600 JMP I BADD 2578 2579 2580 2581 2582 /B I N A R Y M U L T I P L I C A T I O N 2583 / 2584 /OP=FACTOR 2585 /FLOATING POINT: AC=FACTOR, MQ=0; AC=PRODUCT (HIGH ORDER) 2586 /INTEGER: AC=FACTOR, MQ=0; MQ=2*PRODUCT (LOW ORDER) 2587 2588 04021 0000 BMUL, 0 2589 04022 1057 TAD MIN44 /-36 2590 04023 3244 DCA BDIV 2591 04024 4354 JMS SWAP 2592 04025 4336 MULLP, JMS RACR 2593 04026 1045 TAD MQ1 2594 04027 7010 RAR 2595 04030 3045 DCA MQ1 2596 04031 1046 TAD MQ2 2597 04032 7010 RAR 2598 04033 3046 DCA MQ2 2599 04034 1047 TAD MQ3 2600 04035 7010 RAR 2601 04036 3047 DCA MQ3 2602 04037 7430 SZL 2603 04040 4200 JMS BADD 2604 04041 2244 ISZ BDIV 2605 04042 5225 JMP MULLP 2606 04043 5621 JMP I BMUL 2607 /B I N A R Y D I V I S I O N 2608 / 2609 /OP=DIVISOR 2610 /FLOATING POINT: AC=DIVIDEND, MQ=0; AC=QUOTIENT 2611 /INTEGER: AC=0, MQ=2*DIVIDEND; AC=QUOTIENT, MQ=2*REST 2612 2613 04044 0000 BDIV, 0 2614 04045 1057 TAD MIN44 /-36 2615 04046 3221 DCA BMUL 2616 JMS CMOP off page ^ 04047 4777 2617 04050 7100 DIVLP, CLL /COMPARE AC AND OP 2618 04051 1043 TAD AC3 2619 04052 1053 TAD OP3 2620 04053 3200 DCA TEMP3 /SAVE DIFFERENCE 2621 04054 7004 RAL 2622 04055 1042 TAD AC2 2623 04056 1052 TAD OP2 2624 04057 3327 DCA TEMP2 2625 04060 7004 RAL 2626 04061 1041 TAD AC1 2627 04062 1051 TAD OP1 2628 04063 7420 SNL /AC > OP? 2629 04064 5272 JMP .+6 2630 04065 3041 DCA AC1 /YES, SETUP DIFFERENCE 2631 04066 1327 TAD TEMP2 2632 04067 3042 DCA AC2 2633 04070 1200 TAD TEMP3 2634 04071 3043 DCA AC3 2635 04072 7200 CLA 2636 04073 1047 TAD MQ3 /SHIFT IN NEW BIT OF QUOTIENT 2637 04074 7004 RAL /AND DOUBLE DIVIDEND 2638 04075 3047 DCA MQ3 2639 04076 1046 TAD MQ2 2640 04077 7004 RAL 2641 04100 3046 DCA MQ2 2642 04101 1045 TAD MQ1 2643 04102 7004 RAL 2644 04103 3045 DCA MQ1 2645 04104 4311 JMS RACL 2646 04105 2221 ISZ BMUL 2647 04106 5250 JMP DIVLP 2648 04107 4354 JMS SWAP 2649 04110 5644 JMP I BDIV 2650 /OTHER BINARY OPERATIONS: 2651 2652 2653 2654 MUL2, 2655 04111 0000 RACL, 0 /SHIFT AC ONE BIT LEFT (=DOUBLE) 2656 04112 1043 TAD AC3 /TAKE CARE OF LINK CALLING RACL!!! 2657 04113 7004 RAL 2658 04114 3043 DCA AC3 2659 04115 1042 TAD AC2 2660 04116 7004 RAL 2661 04117 3042 DCA AC2 2662 04120 1041 TAD AC1 2663 04121 7004 RAL 2664 04122 3041 DCA AC1 2665 04123 1040 TAD AC0 2666 04124 7004 RAL 2667 04125 3040 DCA AC0 2668 04126 5711 JMP I RACL 2669 2670 2671 TEMP2=. 2672 2673 04127 0000 MUL10, 0 /AC TIMES 10 2674 JMS ENTR /LINK MUST BE 0 ON ENTRY!!! off page ^ 04130 4776 2675 04131 4311 JMS MUL2 2676 04132 4311 JMS MUL2 2677 04133 4200 JMS BADD 2678 04134 4311 JMS MUL2 2679 04135 5727 JMP I MUL10 2680 2681 2682 2683 2684 04136 0000 RACR, 0 /SHIFT AC ONE BIT RIGHT (=HALVE) 2685 04137 1040 TAD AC0 2686 04140 7110 CLL RAR 2687 04141 3040 DCA AC0 2688 04142 1041 TAD AC1 2689 04143 7010 RAR 2690 04144 3041 DCA AC1 2691 04145 1042 TAD AC2 2692 04146 7010 RAR 2693 04147 3042 DCA AC2 2694 04150 1043 TAD AC3 2695 04151 7010 RAR 2696 04152 3043 DCA AC3 2697 04153 5736 JMP I RACR 2698 2699 2700 2701 2702 2703 2704 2705 2706 04154 0000 SWAP, 0 /SWAP AC- AND MQ-REGISTER 2707 04155 1041 TAD AC1 2708 04156 7421 MQL 2709 04157 1045 TAD MQ1 2710 04160 3041 DCA AC1 2711 04161 1042 TAD AC2 2712 04162 7521 SWP 2713 04163 3045 DCA MQ1 2714 04164 1046 TAD MQ2 2715 04165 3042 DCA AC2 2716 04166 1043 TAD AC3 2717 04167 7521 SWP 2718 04170 3046 DCA MQ2 2719 04171 1047 TAD MQ3 2720 04172 3043 DCA AC3 2721 04173 7501 MQA 2722 04174 3047 DCA MQ3 2723 04175 5754 JMP I SWAP 2724 2725 04176 3542 PAGE 04177 3751 2726 / A R I T H M E T I C P A C K A G E 2727 /OPTION: 2728 / S U P E R C O N V E R S I O N O V E R L A Y 2729 2730 2731 /POWERS OF TEN TABLE: 2732 2733 04200 0004 P1E1, 0004;2400;0000;0000 / 1.0E+001 04201 2400 04202 0000 04203 0000 2734 04204 0007 0007;3100;0000;0000 / 1.0E+002 04205 3100 04206 0000 04207 0000 2735 04210 0016 0016;2342;0000;0000 / 1.0E+004 04211 2342 04212 0000 04213 0000 2736 04214 0033 0033;2765;7020;0000 / 1.0E+008 04215 2765 04216 7020 04217 0000 2737 04220 0066 0066;2160;6744;6770 / 1.0E+016 04221 2160 04222 6744 04223 6770 2738 04224 0153 0153;2356;1326;6501 / 1.0E+032 04225 2356 04226 1326 04227 6501 2739 04230 0325 0325;3023;6017;5120 / 1.0E+064 04231 3023 04232 6017 04233 5120 2740 04234 0652 0652;2235;6443;7114 / 1.0E+128 04235 2235 04236 6443 04237 7114 2741 04240 1523 P1E256, 1523;2523;7565;7735 / 1.0E+256 04241 2523 04242 7565 04243 7735 2742 04244 3245 3245;3430;6320;2565 / 1.0E+512 (SERVES AS A GUARD) 04245 3430 04246 6320 04247 2565 2743 2744 04250 0000 P1E2N, 0 /POINTER INTO TABLE 2745 04251 0000 DECP, 0 /DECIMAL CHARACTERISTIC 2746 /DEXP=BCD / --- " --- (SEE 'FLCONV') 2747 2748 04252 0000 SUP1, 0 /INPUT CONVERSION (OVERLAYS 'ADJUST') 2749 04253 7510 SPA /IF DECIMAL CHARACTERISTIC >= 0 2750 04254 5260 JMP .+4 2751 04255 3251 DCA DECP /THEN STORE AS IT IS 2752 04256 1377 TAD (MUL P1E1 /AND SETUP FOR MULTIPLY 2753 04257 5263 JMP .+4 /WITH POWERS OF 10 2754 04260 7041 CIA 2755 04261 3251 DCA DECP /ELSE MAKE IT POSITIVE 2756 04262 1376 TAD (DIV P1E1 /AND SETUP FOR DIVIDE 2757 04263 3274 DCA MD1E2N /BY POWERS OF 10 2758 04264 1251 ADJLP, TAD DECP 2759 04265 7450 SNA /WHILE DECP<>0 DO: 2760 04266 5652 JMP I SUP1 2761 04267 7110 CLL RAR /DECP:=DECP DIV 2 2762 04270 3251 DCA DECP 2763 04271 7420 SNL /IF DECP WAS ODD 2764 04272 5276 JMP .+4 2765 04273 4444 AAAAAAAAAAAAAAAA 2766 04274 3274 MD1E2N, MUL . /THEN MULTIPLY WITH (DIVIDE BY) 1.0E+2N 2767 04275 0000 EEEEEEEEEEEEEEEE 2768 04276 7307 L0004 2769 04277 1274 TAD MD1E2N /POINT TO NEXT POWER OF TEN 2770 04300 3274 DCA MD1E2N 2771 04301 5264 JMP ADJLP 2772 2773 2774 04302 0000 SUP2, 0 /OUTPUT CONVERSION (OVERLAYS 'FLCONV') 2775 04303 4444 AAAAAAAAAAAAAAAA 2776 04304 6333 PUT XAC /SAVE NUMBER IN AC 2777 04305 0000 EEEEEEEEEEEEEEEE 2778 04306 1333 TAD XAC /GET BINARY EXPONENT 2779 04307 7510 SPA /(2'S COMPLEMENT!) 2780 04310 7041 CIA /AND LOAD IT AS POSITIVE INTEGER 2781 04311 4467 LOAD /INTO AC-REGISTER 2782 04312 4444 AAAAAAAAAAAAAAAA/NOTE: LG(2) IS APPROXIMATED BY 1233/4096 2783 04313 3137 MUL INT&O1233 /*1233 2784 04314 0000 EEEEEEEEEEEEEEEE 2785 04315 7330 L4000 2786 04316 0333 AND XAC 2787 04317 7104 CLL RAL 2788 04320 1042 TAD AC2 /DIV 4096 2789 04321 7430 SZL /IF XAC<0 2790 04322 7040 CMA /THEN DEXP := -XAC*1233 DIV 4096 - 1 2791 04323 3032 DCA DEXP /ELSE DEXP := XAC*1233 DIV 4096 2792 04324 4444 AAAAAAAAAAAAAAAA 2793 04325 0333 GET XAC /RESTORE NUMBER 2794 04326 0000 EEEEEEEEEEEEEEEE 2795 04327 1032 TAD DEXP 2796 04330 7041 CIA 2797 04331 4252 JMS SUP1 /DO CONVERSION TO DECIMAL FLOATING POINT 2798 04332 5702 JMP I SUP2 2799 2800 04333 0000 XAC, ZBLOCK 4 04334 0000 04335 0000 04336 0000 2801 04337 0000 O1233, 0000;0000;0000;2321 /1233 (INTEGER) 04340 0000 04341 0000 04342 2321 2802 2803 2804 04343 2422 TRUEFALSE, TEXT /TRUEFALSE/ 04344 2505 04345 0601 04346 1423 04347 0500 2805 2806 2807 04350 0000 XISQU, 0 /AC := AC^2 (INTEGER) 2808 JMS ENTR off page ^ 04351 4775 2809 JMS IMUL off page ^ 04352 4774 2810 04353 5750 JMP I XISQU 2811 2812 04354 0000 XRSQU, 0 /AC := AC^2 (REAL) 2813 JMS ENTR off page ^ 04355 4775 2814 JMS RMUL off page ^ 04356 4773 2815 04357 5754 JMP I XRSQU 2816 2817 04373 3255 PAGE 04374 3631 04375 3542 04376 4200 04377 3200 2818 2819 /********************** 2820 / S Q U A R E R O O T 2821 / 2822 / AC := SQRT(AC) 2823 /********************** 2824 2825 2826 04400 0000 XSQRT, 0 2827 04401 1037 TAD ACS 2828 04402 7710 SPA CLA 2829 04403 4477 ERROR3, HALT /SQUARE ROOT OF N E G A T I V E NUMBER! 2830 04404 1041 TAD AC1 2831 04405 7650 SNA CLA 2832 04406 5600 JMP I XSQRT /DON'T WASTE TIME FOR SQRT(0)! 2833 04407 7301 L0001 2834 04410 1036 TAD ACX /TRANSFORM ARGUMENT TO THE FORM 2835 04411 7530 SPA SZL / 2^(2*N) * F WITH 0.25 <= F < 1 2836 04412 7020 CML 2837 04413 7010 RAR 2838 04414 3267 DCA ROOTX /SAVE N 2839 04415 7420 SNL /IF ODD(EXPONENT) 2840 04416 7340 L7777 /THEN ACX:=-1 (0.25 <= F < 0.5) 2841 04417 3036 DCA ACX /ELSE ACX:= 0 (0.5 <= F < 1 ) 2842 04420 4444 AAAAAAAAAAAAAAAA 2843 04421 6257 PUT SQARG /SAVE F 2844 04422 0000 EEEEEEEEEEEEEEEE 2845 04423 1036 TAD ACX /COMPUTE INITIAL VALUE X0 FOR NEWTON: 2846 04424 3253 DCA OPOINT5 /X0:=F + 0.25 (0.25 <= F < 0.5) 2847 04425 7340 L7777 /X0:=F/2 + 0.5 (0.5 <= F < 1 ) 2848 04426 3036 DCA ACX 2849 04427 4444 AAAAAAAAAAAAAAAA 2850 04430 1253 ADD OPOINT5 2851 04431 0000 EEEEEEEEEEEEEEEE 2852 04432 7346 L7775 /3 ITERATION LOOPS GUARANTEE 2853 04433 3253 DCA NEWTON /FULL PRECISION! (MAX. ERROR: 8.0E-13) 2854 04434 4444 SQLOOP, AAAAAAAAAAAAAAAA 2855 04435 6263 PUT X123 2856 04436 0257 GET SQARG 2857 04437 4263 DIV X123 2858 04440 1263 ADD X123 /X[I+1] := (F/X[I] + X[I])/2 2859 04441 0000 EEEEEEEEEEEEEEEE 2860 04442 7340 L7777 /HALVE BY ACX:=ACX - 1 2861 04443 1036 TAD ACX 2862 04444 3036 DCA ACX 2863 04445 2253 ISZ NEWTON /IF DONE 3 LOOPS 2864 04446 5234 JMP SQLOOP 2865 04447 1267 TAD ROOTX /THEN INSERT EXPONENT N OF ROOT 2866 04450 1036 TAD ACX 2867 04451 3036 DCA ACX 2868 04452 5600 JMP I XSQRT 2869 2870 NEWTON=. /LOOP COUNTER 2871 04453 0000 OPOINT5,0000 /CONSTANT OF 0.5 OR 0.25 (EXPONENT WORD 2872 04454 2000 2000 /SET AT EXECUTION TIME) 2873 04455 0000 0000 2874 04456 0000 0000 2875 04457 0000 SQARG, 0 /REDUCED ARGUMENT F 2876 04460 0000 0 2877 04461 0000 0 2878 04462 0000 0 2879 04463 0000 X123, 0 /TEMPORARY FOR APPROXIMATE VALUE 2880 04464 0000 0 2881 04465 0000 0 2882 04466 0000 0 2883 04467 0000 ROOTX, 0 /TEMPORARY FOR ROOT EXPONENT N 2884 2885 /********************************** 2886 / N A T U R A L L O G A R I T H M 2887 / 2888 / AC := LN(AC) 2889 /********************************** 2890 2891 2892 /TABLE OF CONSTANTS: 2893 2894 04470 0001 A0, 0001 /1.84375 2895 04471 3540 3540 2896 04472 0000 0000 2897 04473 0000 0000 2898 2899 04474 0000 LNA0, 0000 /0.611801541106 2900 04475 2344 2344 2901 04476 7603 7603 2902 04477 2325 2325 2903 2904 04500 0001 A1, 0001 /1.65625 2905 04501 3240 3240 2906 04502 0000 0000 2907 04503 0000 0000 2908 2909 04504 0000 LNA1, 0000 /0.504556010752 2910 04505 2011 2011 2911 04506 2512 2512 2912 04507 4551 4551 2913 2914 04510 0001 A2, 0001 /1.5 2915 04511 3000 3000 2916 04512 0000 0000 2917 04513 0000 0000 2918 2919 04514 7777 LNA2, 7777 /0.405465108108 2920 04515 3174 3174 2921 04516 6217 6217 2922 04517 5457 5457 2923 2924 04520 0001 A3, 0001 /1.375 2925 04521 2600 2600 2926 04522 0000 0000 2927 04523 0000 0000 2928 2929 04524 7777 LNA3, 7777 /0.318453731119 2930 04525 2430 2430 2931 04526 3057 3057 2932 04527 0207 0207 2933 2934 04530 0001 A4, 0001 /1.25 2935 04531 2400 2400 2936 04532 0000 0000 2937 04533 0000 0000 2938 2939 04534 7776 LNA4, 7776 /0.223143551314 2940 04535 3443 3443 2941 04536 7737 7737 2942 04537 0746 0746 2943 2944 04540 0001 A5, 0001 /1.1875 2945 04541 2300 2300 2946 04542 0000 0000 2947 04543 0000 0000 2948 2949 04544 7776 LNA5, 7776 /0.171850256927 2950 04545 2577 2577 2951 04546 6301 6301 2952 04547 6051 6051 2953 2954 04550 0001 A6, 0001 /1.09375 2955 04551 2140 2140 2956 04552 0000 0000 2957 04553 0000 0000 2958 2959 04554 7775 LNA6, 7775 /0.0896121586897 2960 04555 2674 2674 2961 04556 1512 1512 2962 04557 1271 1271 2963 2964 04560 0001 A7, 0001 /1.03125 2965 04561 2040 2040 2966 04562 0000 0000 2967 04563 0000 0000 2968 2969 04564 7773 LNA7, 7773 /0.0307716586668 2970 04565 3740 3740 2971 04566 5154 5154 2972 04567 1636 1636 2973 2974 2975 PAGE 2976 2977 04600 0000 XLOG, 0 2978 04601 1037 TAD ACS 2979 04602 1041 TAD AC1 2980 04603 7750 SPA SNA CLA 2981 04604 4477 ERROR4, HALT /LOGARITHM OF ZERO OR NEGATIVE NUMBER! 2982 04605 4444 AAAAAAAAAAAAAAAA 2983 04606 6275 PUT LNARG /SAVE ARGUMENT X = 2^N * F 2984 04607 0000 EEEEEEEEEEEEEEEE 2985 04610 3275 DCA LNARG /REDUCE TO FRACTION PART (0.5 <= F < 1) 2986 04611 7100 CLL 2987 04612 1036 TAD ACX /GET N (IN TWO'S COMPLEMENT!) 2988 04613 7510 SPA 2989 04614 7161 CIA STL 2990 JMS LDAC /LOAD IT AS INTEGER off page ^ 04615 4777 2991 04616 7010 RAR 2992 04617 3037 DCA ACS 2993 04620 4444 AAAAAAAAAAAAAAAA 2994 04621 7003 FLOAT /CONVERT TO REAL 2995 04622 3305 MUL LN2 /TIMES LN(2) 2996 04623 6301 PUT LNTEMP /AND SAVE IT 2997 04624 0000 EEEEEEEEEEEEEEEE 2998 04625 1276 LNLOOP, TAD LNARG+1 /FOR FURTHER REDUCTION OF THE ARGUMENT 2999 04626 0272 AND BIT234 /SELECT THE APPROPRIATE MULTIPLIERS A(K) 3000 04627 7112 CLL RTR /AND THEIR LOGARITHMS FROM A TABLE, 3001 04630 7012 RTR /ACCORDING TO THE RANGE OF F. 3002 04631 1376 TAD (A0 3003 04632 3273 DCA PTAK 3004 04633 7307 L0004 3005 04634 1273 TAD PTAK 3006 04635 3274 DCA PTLNAK 3007 04636 4444 AAAAAAAAAAAAAAAA 3008 04637 0301 GET LNTEMP 3009 04640 2674 SUB I PTLNAK /SUBTRACT LN( A(K) ) TO COMPENSATE 3010 04641 6301 PUT LNTEMP 3011 04642 0673 GET I PTAK /THE MULTIPLICATION WITH A(K) 3012 04643 3275 MUL LNARG /F' = A(K)* .... *F 3013 04644 6275 PUT LNARG 3014 04645 0000 EEEEEEEEEEEEEEEE 3015 04646 1036 TAD ACX 3016 04647 7650 SNA CLA 3017 04650 5225 JMP LNLOOP /IT IS GUARANTEED, THAT AFTER NO MORE 3018 04651 4444 AAAAAAAAAAAAAAAA/THAN T H R E E E MULTIPLICATIONS 3019 04652 2335 SUB ONEPT0 /F' FITS IN THE RANGE 3020 04653 6275 PUT LNARG / 0 <= F'-1 < 2^(-5) 3021 04654 3311 MUL LTC6 /NOW COMPUTE LN(F') VIA TAYLOR SERIES 3022 04655 1315 ADD LTC5 3023 04656 3275 MUL LNARG 3024 04657 1321 ADD LTC4 3025 04660 3275 MUL LNARG 3026 04661 1325 ADD LTC3 3027 04662 3275 MUL LNARG 3028 04663 1331 ADD LTC2 3029 04664 3275 MUL LNARG 3030 04665 1335 ADD ONEPT0 3031 04666 3275 MUL LNARG 3032 04667 1301 ADD LNTEMP /LN(X) = N*LN(2) - LN(A(K)) ... + LN(F') 3033 04670 0000 EEEEEEEEEEEEEEEE 3034 04671 5600 JMP I XLOG 3035 3036 04672 1600 BIT234, 1600 /MASK TO EXTRACT BITS 00XXX0000000 3037 04673 4470 PTAK, A0 /POINTER INTO TABLE 3038 04674 4474 PTLNAK, LNA0 / --- " --- 3039 3040 04675 0000 LNARG, 0 /ARGUMENT REGISTER 3041 04676 0000 0 3042 04677 0000 0 3043 04700 0000 0 3044 3045 04701 0000 LNTEMP, 0 /TEMPORARY 3046 04702 0000 0 3047 04703 0000 0 3048 04704 0000 0 3049 3050 04705 0000 LN2, 0000 /0.69314718 3051 04706 2613 2613 3052 04707 4413 4413 3053 04710 7676 7676 3054 3055 04711 7776 LTC6, 7776 / -1/6 3056 04712 6525 6525 3057 04713 2525 2525 3058 04714 2525 2525 3059 3060 04715 7776 LTC5, 7776 / 1/5 3061 04716 3146 3146 3062 04717 3146 3146 3063 04720 3146 3146 3064 3065 04721 7777 LTC4, 7777 / -1/4 3066 04722 6000 6000 3067 04723 0000 0000 3068 04724 0000 0000 3069 3070 04725 7777 LTC3, 7777 / 1/3 3071 04726 2525 2525 3072 04727 2525 2525 3073 04730 2525 2525 3074 3075 04731 0000 LTC2, 0000 / -1/2 3076 04732 6000 6000 3077 04733 0000 0000 3078 04734 0000 0000 3079 3080 /**************************************** 3081 / E X P O N E N T I A L F U N C T I O N 3082 / 3083 / AC := EXP(AC) 3084 /**************************************** 3085 3086 3087 ONEPT0, 3088 04735 0001 EX0B8, 0001 / 2^(0/8) = 1 3089 04736 2000 2000 3090 04737 0000 0000 3091 04740 0000 0000 3092 3093 04741 0001 EX1B8, 0001 / 2^(1/8) 3094 04742 2134 2134 3095 04743 5340 5340 3096 04744 7437 7437 3097 3098 04745 0001 EX2B8, 0001 / 2^(2/8) 3099 04746 2301 2301 3100 04747 5770 5770 3101 04750 1214 1214 3102 3103 04751 0001 EX3B8, 0001 / 2^(3/8) 3104 04752 2457 2457 3105 04753 7553 7553 3106 04754 2515 2515 3107 3108 04755 0001 EX4B8, 0001 / 2^(4/8) 3109 04756 2650 2650 3110 04757 1171 1171 3111 04760 4637 4637 3112 3113 04761 0001 EX5B8, 0001 / 2^(5/8) 3114 04762 3053 3053 3115 04763 1625 1625 3116 04764 0212 0212 3117 3118 04765 0001 EX6B8, 0001 / 2^(6/8) 3119 04766 3272 3272 3120 04767 1176 1176 3121 04770 3126 3126 3122 3123 04771 0001 EX7B8, 0001 / 2^(7/8) 3124 04772 3526 3526 3125 04773 0143 0143 3126 04774 3476 3476 3127 3128 3129 04776 4470 PAGE 04777 2751 3130 3131 3132 3133 05000 0000 XEXP, 0 3134 05001 3314 DCA TWO2N 3135 05002 1377 TAD (ONEPT0 3136 05003 3303 DCA TWO2M8 3137 05004 4444 AAAAAAAAAAAAAAAA 3138 05005 7450 SKNE 3139 05006 5273 JMP EXP0 /EXP(0)=1 3140 05007 3315 MUL LOG2E /X*LB(2) .... EXP(X) = 2^(X*LB(2)) 3141 05010 6304 PUT EXTEMP 3142 05011 7203 TRUNC /SPLIT PRODUCT INTO 3143 05012 6111 PUT INT&TWO2N-3 /INTEGER PART N 3144 05013 7003 FLOAT 3145 05014 2304 SUB EXTEMP /AND FRACTION F (0 <= F < 1) 3146 05015 7004 NEGATE 3147 05016 7500 SKLT 3148 05017 5226 JMP .+7 3149 ADD ONEPT0 off page ^ 05020 1777 3150 05021 0000 EEEEEEEEEEEEEEEE 3151 05022 1314 TAD TWO2N 3152 05023 7040 CMA 3153 05024 3314 DCA TWO2N 3154 05025 4444 AAAAAAAAAAAAAAAA 3155 05026 7450 SKNE 3156 05027 5273 JMP EXP0 3157 05030 0000 EEEEEEEEEEEEEEEE 3158 05031 7325 L0003 3159 05032 1036 TAD ACX 3160 05033 7550 SPA SNA /IF F>=1/8 THEN SPLIT F INTO 3161 05034 5252 JMP APPROX 3162 05035 7140 CMA CLL / M/8 + R (0 < M < 8, 0 <= R < 1/8) 3163 05036 3310 DCA EXREST 3164 05037 4466 DOUBLE 3165 05040 2310 ISZ EXREST 3166 05041 5237 JMP .-2 3167 05042 1040 TAD AC0 3168 05043 7106 CLL RTL 3169 05044 1377 TAD (ONEPT0 3170 05045 3303 DCA TWO2M8 /POINT TO 2^(M/8) IN TABLE 3171 05046 3040 DCA AC0 3172 05047 1376 TAD (-4 3173 05050 3036 DCA ACX 3174 JMS RNORM /NORMALIZE off page ^ 05051 4775 3175 05052 4444 APPROX, AAAAAAAAAAAAAAAA/COMPUTE 2^R BY A CONTINUED FRACTION 3176 05053 7450 SKNE 3177 05054 5273 JMP EXP0 3178 05055 6310 PUT EXREST 3179 05056 0335 GET EXD3 3180 05057 4310 DIV EXREST 3181 05060 1310 ADD EXREST 3182 05061 6304 PUT EXTEMP 3183 05062 0331 GET EXC3 3184 05063 4304 DIV EXTEMP 3185 05064 2310 SUB EXREST 3186 05065 1325 ADD EXB3 3187 05066 6304 PUT EXTEMP 3188 05067 0321 GET EXA3 3189 05070 4304 DIV EXTEMP 3190 SUB ONEPT0 off page ^ 05071 2777 3191 05072 7410 SKIP 3192 EXP0, GET ONEPT0 off page ^ 05073 0777 3193 05074 3703 MUL I TWO2M8 /MULTIPLY WITH 2^(M/8) 3194 05075 0000 EEEEEEEEEEEEEEEE 3195 05076 1036 TAD ACX 3196 05077 1314 TAD TWO2N /INSERT 2^N 3197 05100 3036 DCA ACX 3198 JMS RNORM /CHECK FOR OVERFLOW off page ^ 05101 4775 3199 05102 5600 JMP I XEXP /EXP(X) = 2^N * 2^(M/8) * 2^R 3200 3201 05103 0000 TWO2M8, 0 /POINTER TO TABLE 3202 3203 05104 0000 EXTEMP, 0 /ARGUMENT AND TEMPORARY 3204 05105 0000 0 3205 05106 0000 0 3206 05107 0000 0 3207 3208 05110 0000 EXREST, 0 /TEMPORARY REGISTER 3209 05111 0000 0 3210 05112 0000 0 3211 05113 0000 0 3212 05114 0000 TWO2N, 0000 /HOLDS N (MUST BE HERE!!!) 3213 3214 05115 0001 LOG2E, 0001 /1.442695040889 3215 05116 2705 2705 3216 05117 2435 2435 3217 05120 4512 4512 3218 3219 05121 0006 EXA3, 0006 /34.624680981335 3220 05122 2123 2123 3221 05123 7726 7726 3222 05124 1367 1367 3223 3224 05125 0005 EXB3, 0005 /17.312340490668 3225 05126 2123 2123 3226 05127 7726 7726 3227 05130 1367 1367 3228 3229 05131 0007 EXC3, 0007 /-104.068449050280 3230 05132 7201 7201 3231 05133 0605 0605 3232 05134 7007 7007 3233 3234 05135 0005 EXD3, 0005 /20.813689810056 3235 05136 2464 2464 3236 05137 0467 0467 3237 05140 7155 7155 3238 3239 /**************************** 3240 / S I N E AND C O S I N E 3241 / 3242 / AC := SIN(AC) 3243 / AC := COS(AC) = SIN(AC+PI/2) 3244 /**************************** 3245 3246 3247 05141 0000 XCOS, 0 3248 05142 4444 AAAAAAAAAAAAAAAA 3249 05143 1353 ADD PIS2 3250 05144 0000 EEEEEEEEEEEEEEEE 3251 JMS XSIN off page ^ 05145 4774 3252 05146 5741 JMP I XCOS 3253 3254 05147 0000 OPT5, 0000 /0.5 3255 05150 2000 2000 3256 05151 0000 0000 3257 05152 0000 0000 3258 3259 05153 0001 PIS2, 0001 / PI/2 3260 05154 3110 3110 3261 05155 3755 3755 3262 05156 2421 2421 3263 3264 05157 0002 PI, 0002 / PI 3265 05160 3110 3110 3266 05161 3755 3755 3267 05162 2421 2421 3268 3269 05163 0003 COS2, 0003 /-PI^2/2! 3270 05164 6357 6357 3271 05165 2363 2363 3272 05166 1157 1157 3273 3274 05167 0003 SIN3, 0003 /-PI^3/3! 3275 05170 6452 6452 3276 05171 7363 7363 3277 05172 4611 4611 3278 3279 05174 5234 PAGE 05175 3323 05176 7774 05177 4735 3280 3281 05200 0003 COS4, 0003 / PI^4/4! 3282 05201 2017 2017 3283 05202 0174 0174 3284 05203 1006 1006 3285 3286 05204 0002 SIN5, 0002 / PI^5/5! 3287 05205 2431 2431 3288 05206 5361 5361 3289 05207 4734 4734 3290 3291 05210 0001 COS6, 0001 /-PI^6/6! 3292 05211 6527 6527 3293 05212 2361 2361 3294 05213 7617 7617 3295 3296 05214 0000 SIN7, 0000 /-PI^7/7! 3297 05215 6313 6313 3298 05216 2263 2263 3299 05217 1630 1630 3300 3301 05220 7776 COS8, 7776 / PI^8/8! 3302 05221 3607 3607 3303 05222 6501 6501 3304 05223 5044 5044 3305 3306 05224 7775 SIN9, 7775 / PI^9/9! 3307 05225 2501 2501 3308 05226 7015 7015 3309 05227 1040 1040 3310 3311 05230 7773 COS10, 7773 /-PI^10/10! 3312 05231 7233 7233 3313 05232 2174 2174 3314 05233 5210 5210 3315 3316 SCARG=EXTEMP /ARGUMENT REGISTER 3317 3318 3319 05234 0000 XSIN, 0 3320 05235 1037 TAD ACS /SIN(-X) = -SIN(X), THUS 3321 05236 3364 DCA SCS /SAVE SIGN 3322 05237 3037 DCA ACS /AND MAKE ARGUMENT POSITIVE 3323 05240 4444 AAAAAAAAAAAAAAAA/NOW REDUCE ARGUMENT: 3324 DIV PI / X/PI = N + F (0 <= F < 1) off page ^ 05241 4777 3325 PUT SCARG /SIN(X) = (-1)^N * SIN(PI*F) off page ^ 05242 6776 3326 05243 7203 TRUNC 3327 05244 0000 EEEEEEEEEEEEEEEE 3328 05245 7301 L0001 3329 05246 0043 AND AC3 /IF ODD(N) THEN CHANGE SIGN 3330 05247 7112 CLL RTR 3331 05250 1364 TAD SCS 3332 05251 3364 DCA SCS 3333 05252 4444 AAAAAAAAAAAAAAAA 3334 05253 7003 FLOAT 3335 SUB SCARG /-F off page ^ 05254 2776 3336 05255 7450 SKNE 3337 05256 5356 JMP SCRET 3338 05257 0000 EEEEEEEEEEEEEEEE 3339 05260 1036 TAD ACX 3340 05261 7640 SZA CLA /IF F>=0.5 THEN 3341 05262 5266 JMP .+4 3342 05263 4444 AAAAAAAAAAAAAAAA 3343 ADD ONEPT0 /F := 1 - F off page ^ 05264 1775 3344 05265 0000 EEEEEEEEEEEEEEEE/ SIN(PI*F) = SIN(PI*(1-F)) 3345 05266 3037 DCA ACS /NOW ARG. REDUCED TO 0 <= F <= 0.5 3346 05267 7326 L0002 3347 05270 1036 TAD ACX 3348 05271 7710 SPA CLA /IF F<0.125 3349 05272 5341 JMP TAYSIN /THEN USE SINE-SERIES 3350 05273 4444 AAAAAAAAAAAAAAAA/ELSE SIN(PI*F) = COS(PI*(0.5-F)) 3351 SUB OPT5 off page ^ 05274 2774 3352 05275 0000 EEEEEEEEEEEEEEEE 3353 05276 3037 DCA ACS /F := 0.5 - F 3354 05277 7326 L0002 3355 05300 1036 TAD ACX 3356 05301 7710 SPA CLA /IF F<0.125 3357 05302 5307 JMP TAYCOS-1 /THEN USE COSINE-SERIES DIRECTLY 3358 05303 7340 L7777 /ELSE COS(PI*F) = 2 * COS(PI*F/2)^2 - 1 3359 05304 1036 TAD ACX 3360 05305 3036 DCA ACX /F := F/2 (1/16 <= F <= 3/16) 3361 05306 7340 L7777 3362 05307 3337 DCA HFLAG /SET HALVE ARGUMENT FLAG 3363 05310 4444 TAYCOS, AAAAAAAAAAAAAAAA 3364 PUT SCARG off page ^ 05311 6776 3365 MUL SCARG off page ^ 05312 3776 3366 05313 6365 PUT FQU /SQUARE ARG. 3367 05314 3230 MUL COS10 3368 05315 1220 ADD COS8 3369 05316 3365 MUL FQU 3370 05317 1210 ADD COS6 3371 05320 3365 MUL FQU 3372 05321 1200 ADD COS4 3373 05322 3365 MUL FQU 3374 ADD COS2 off page ^ 05323 1773 3375 05324 3365 MUL FQU 3376 ADD ONEPT0 off page ^ 05325 1775 3377 05326 0000 EEEEEEEEEEEEEEEE 3378 05327 2337 ISZ HFLAG /WAS F>=0.125? 3379 05330 5357 JMP SCRET+1 3380 05331 4444 AAAAAAAAAAAAAAAA/YES 3381 05332 6365 PUT FQU 3382 05333 3365 MUL FQU / (COS^2 - 3383 SUB OPT5 / - 0.5) off page ^ 05334 2774 3384 05335 0000 EEEEEEEEEEEEEEEE 3385 05336 2036 ISZ ACX / *2 3386 05337 7000 HFLAG, NOP 3387 05340 5357 JMP SCRET+1 3388 05341 4444 TAYSIN, AAAAAAAAAAAAAAAA 3389 PUT SCARG off page ^ 05342 6776 3390 MUL SCARG off page ^ 05343 3776 3391 05344 6365 PUT FQU 3392 05345 3224 MUL SIN9 3393 05346 1214 ADD SIN7 3394 05347 3365 MUL FQU 3395 05350 1204 ADD SIN5 3396 05351 3365 MUL FQU 3397 ADD SIN3 off page ^ 05352 1772 3398 05353 3365 MUL FQU 3399 ADD PI off page ^ 05354 1777 3400 MUL SCARG off page ^ 05355 3776 3401 05356 0000 SCRET, EEEEEEEEEEEEEEEE 3402 05357 1041 TAD AC1 3403 05360 7640 SZA CLA 3404 05361 1364 TAD SCS /INSERT SIGN (AVOID -0 !) 3405 05362 3037 DCA ACS 3406 05363 5634 JMP I XSIN 3407 3408 05364 0000 SCS, 0 /SIGN OF RESULT 3409 3410 05365 0000 FQU, 0 /TEMPORARY FOR SQUARES ARG. 3411 05366 0000 0 3412 05367 0000 0 3413 05370 0000 0 3414 3415 05372 5167 PAGE 05373 5163 05374 5147 05375 4735 05376 5104 05377 5157 3416 3417 /******************** 3418 / A R C T A N G E N T 3419 / 3420 / AC := ARCTAN(AC) 3421 /******************** 3422 3423 3424 3425 05400 0000 XATN, 0 3426 05401 1036 TAD ACX 3427 05402 1377 TAD (14 3428 05403 7710 SPA CLA /IF ARGUMENT VERY SMALL ( < 2^(-12) ) 3429 05404 5600 JMP I XATN /THEN ARCTAN(X)=X 3430 05405 1037 TAD ACS 3431 05406 3313 DCA ATNS /SAVE SIGN ... ARCTAN(-X) = -ARCTAN(X) 3432 05407 3037 DCA ACS /AND MAKE ARGUMENT POSITIVE 3433 05410 4444 AAAAAAAAAAAAAAAA 3434 05411 6315 PUT ATARG 3435 05412 0000 EEEEEEEEEEEEEEEE 3436 05413 1036 TAD ACX 3437 05414 7750 SPA SNA CLA /IF X>=1 3438 05415 5224 JMP .+7 3439 05416 4444 AAAAAAAAAAAAAAAA 3440 GET ONEPT0 /THEN X := 1/X off page ^ 05417 0776 3441 05420 4315 DIV ATARG /ARCTAN(X) = PI/2 - ARCTAN(1/X) 3442 05421 6315 PUT ATARG 3443 05422 0000 EEEEEEEEEEEEEEEE/NOW ARGUMENT REDUCED TO 0 < X <= 1 3444 05423 7340 L7777 3445 05424 3314 DCA GT1FLAG /FLAG ARGUMENT > 1 3446 05425 1036 TAD ACX 3447 05426 7710 SPA CLA /IF X>=0.5 THEN USE ADD.THEOREM: 3448 05427 5243 JMP ATN05 3449 05430 2315 ISZ ATARG /2*X 3450 05431 7000 ADDFLAG,NOP 3451 05432 4444 AAAAAAAAAAAAAAAA/ARCTAN(X) = ARCTAN(0.5) + ARCTAN( ... ) 3452 05433 1365 ADD TWOPT0 /X := (2*X-1)/(X+2) 3453 PUT EXTEMP off page ^ 05434 6775 3454 05435 0315 GET ATARG 3455 SUB ONEPT0 off page ^ 05436 2776 3456 DIV EXTEMP off page ^ 05437 4775 3457 05440 6315 PUT ATARG /ARGUMENT RANGE NOW 0 < X < 0.5 3458 05441 0000 EEEEEEEEEEEEEEEE 3459 05442 7340 L7777 3460 05443 3231 ATN05, DCA ADDFLAG 3461 05444 4444 AAAAAAAAAAAAAAAA/COMPUTE ARCTAN(X) BY CONTINUED FRACTION 3462 05445 3315 MUL ATARG 3463 PUT FQU off page ^ 05446 6774 3464 05447 1355 ADD ATB3 3465 PUT EXTEMP off page ^ 05450 6775 3466 05451 0335 GET ATA3 3467 DIV EXTEMP off page ^ 05452 4775 3468 05453 1351 ADD ATB2 3469 ADD FQU off page ^ 05454 1774 3470 PUT EXTEMP off page ^ 05455 6775 3471 05456 0331 GET ATA2 3472 DIV EXTEMP off page ^ 05457 4775 3473 05460 1345 ADD ATB1 3474 ADD FQU off page ^ 05461 1774 3475 PUT EXTEMP off page ^ 05462 6775 3476 05463 0325 GET ATA1 3477 DIV EXTEMP off page ^ 05464 4775 3478 05465 1341 ADD ATB0 3479 ADD FQU off page ^ 05466 1774 3480 PUT EXTEMP off page ^ 05467 6775 3481 05470 0321 GET ATA0 3482 05471 3315 MUL ATARG 3483 DIV EXTEMP off page ^ 05472 4775 3484 05473 0000 EEEEEEEEEEEEEEEE 3485 05474 2231 ISZ ADDFLAG /CORRECT RESULT IF NECESSARY 3486 05475 5301 JMP .+4 3487 05476 4444 AAAAAAAAAAAAAAAA 3488 05477 1361 ADD ATN0P5 3489 05500 0000 EEEEEEEEEEEEEEEE 3490 05501 2314 ISZ GT1FLAG /WAS X>1 ? 3491 05502 5310 JMP .+6 3492 05503 7330 L4000 /YES 3493 05504 3037 DCA ACS / -ARCTAN(X) 3494 05505 4444 AAAAAAAAAAAAAAAA 3495 ADD PIS2 / +PI/2 off page ^ 05506 1773 3496 05507 0000 EEEEEEEEEEEEEEEE 3497 05510 1313 TAD ATNS 3498 05511 3037 DCA ACS /INSERT SIGN 3499 05512 5600 JMP I XATN 3500 05513 0000 ATNS, 0 /TEMPORARY FOR SIGN 3501 05514 0000 GT1FLAG,0 3502 3503 05515 0000 ATARG, 0 /ARGUMENT REGISTER 3504 05516 0000 0 3505 05517 0000 0 3506 05520 0000 0 3507 05521 0004 ATA0, 0004 /12.37469388 3508 05522 3057 3057 3509 05523 7537 7537 3510 05524 4017 4017 3511 3512 05525 0007 ATA1, 0007 /-80.34270560 3513 05526 6405 6405 3514 05527 3673 3673 3515 05530 4343 4343 3516 3517 05531 0001 ATA2, 0001 /-1.191447224 3518 05532 6304 6304 3519 05533 0253 0253 3520 05534 6665 6665 3521 3522 05535 7775 ATA3, 7775 /-0.078335428 3523 05536 6403 6403 3524 05537 3451 3451 3525 05540 4461 4461 3526 3527 05541 0005 ATB0, 0005 /26.27277525 3528 05542 3221 3221 3529 05543 3522 3522 3530 05544 3121 3121 3531 3532 05545 0003 ATB1, 0003 /6.36441688 3533 05546 3135 3135 3534 05547 1757 1757 3535 05550 0565 0565 3536 3537 05551 0002 ATB2, 0002 /2.104518952 3538 05552 2065 2065 3539 05553 4070 4070 3540 05554 1015 1015 3541 3542 05555 0001 ATB3, 0001 /1.258464113 3543 05556 2410 2410 3544 05557 5255 5255 3545 05560 0370 0370 3546 3547 05561 7777 ATN0P5, 7777 /ARCTAN(0.5) 3548 05562 3553 3553 3549 05563 0634 0634 3550 05564 0530 0530 3551 3552 05565 0002 TWOPT0, 0002 /2.0 3553 05566 2000 2000 3554 05567 0000 0000 3555 05570 0000 0000 3556 3557 05573 5153 PAGE 05574 5365 05575 5104 05576 4735 05577 0014 3558 /I N P U T - O U T P U T ROUTINES FOR STANDARD FILES 3559 3560 05600 0000 GETC, 0 3561 05601 7300 CLA CLL 3562 05602 1030 TAD LOOK 3563 05603 3033 DCA CHAR 3564 05604 2256 ISZ IC3 3565 05605 5230 JMP G12 3566 05606 7346 G3, L7775 3567 05607 3256 DCA IC3 3568 05610 7344 L7776 3569 05611 1257 TAD IBP 3570 05612 3257 DCA IBP 3571 05613 1657 TAD I IBP 3572 05614 2257 ISZ IBP 3573 05615 0377 K377, AND (7400 /FIRST LITERAL ON THIS PAGE ---> 0377 3574 05616 7106 CLL RTL 3575 05617 7006 RTL 3576 05620 3343 DCA CHECK 3577 05621 1657 TAD I IBP 3578 05622 0377 AND (7400 3579 05623 1343 TAD CHECK 3580 05624 7006 RTL 3581 05625 7006 RTL 3582 05626 7004 RAL 3583 05627 5247 JMP GEXIT 3584 05630 1257 G12, TAD IBP 3585 05631 0215 AND K377 3586 05632 7640 SZA CLA 3587 05633 5246 JMP GEXIT-1 3588 05634 1376 TAD (IBUFFER 3589 05635 3257 DCA IBP 3590 05636 4525 JMS I IDEVH 3591 05637 0200 0200 3592 05640 6000 IBUFFER 3593 05641 0000 IBLOCK, 0 3594 05642 5253 JMP RDERR 3595 05643 2241 ISZ IBLOCK 3596 05644 7344 L7776 3597 05645 3256 DCA IC3 3598 05646 1657 TAD I IBP 3599 05647 2257 GEXIT, ISZ IBP 3600 05650 4343 JMS CHECK 3601 05651 5204 JMP GETC+4 3602 05652 5600 JMP I GETC 3603 05653 7700 RDERR, SMA CLA 3604 05654 5244 JMP GEXIT-3 3605 05655 4501 FATAL0, FATAL /FATAL READ ERROR! 3606 3607 05656 7775 IC3, -3 3608 05657 6000 IBP, IBUFFER 3609 3610 05660 0000 PUTC, 0 3611 05661 7450 SNA 3612 05662 1033 TAD CHAR 3613 05663 3343 DCA CHECK 3614 05664 1343 TAD CHECK 3615 05665 2137 ISZ OC3 3616 05666 5317 JMP PUT12 3617 05667 3006 DCA CC 3618 05670 7344 L7776 3619 05671 1136 TAD OBP 3620 05672 3136 DCA OBP 3621 05673 4330 JMS PUT3L 3622 05674 4330 JMS PUT3R 3623 05675 7346 L7775 3624 05676 3137 DCA OC3 3625 05677 1136 TAD OBP 3626 05700 0215 AND K377 3627 05701 7640 SZA CLA 3628 05702 5322 JMP PUXIT 3629 05703 2135 ISZ MBLOCKS 3630 05704 7410 SKP 3631 05705 5163 JMP ERRORD 3632 05706 4526 JMS I ODEVH 3633 05707 4200 4200 3634 05710 7000 OBUFFER 3635 05711 0000 OBLOCK, 0 3636 05712 5163 JMP ERRORD 3637 05713 2311 ISZ OBLOCK 3638 05714 1176 TAD [OBUFFER 3639 05715 3136 DCA OBP 3640 05716 5322 JMP PUXIT 3641 05717 0215 PUT12, AND K377 3642 05720 3536 DCA I OBP 3643 05721 2136 ISZ OBP 3644 05722 1343 PUXIT, TAD CHECK 3645 05723 1172 TAD [-215 3646 05724 7640 SZA CLA 3647 05725 5660 JMP I PUTC 3648 05726 1171 TAD [212 3649 05727 5261 JMP PUTC+1 3650 3651 PUT3L, 3652 05730 0000 PUT3R, 0 3653 05731 1006 TAD CC 3654 05732 7106 CLL RTL 3655 05733 7006 RTL 3656 05734 3006 DCA CC 3657 05735 1006 TAD CC 3658 05736 0377 AND (7400 3659 05737 1536 TAD I OBP 3660 05740 3536 DCA I OBP 3661 05741 2136 ISZ OBP 3662 05742 5730 JMP I PUT3R 3663 3664 /OC3, 0 /ON PAGE 0! 3665 /OBP, 0 / - " - 3666 05743 0000 CHECK, 0 3667 05744 0167 AND [177 3668 05745 7450 SNA 3669 05746 5743 JMP I CHECK 3670 05747 1375 TAD (-15 3671 05750 7450 SNA 3672 05751 5367 JMP CR 3673 05752 1375 TAD (15-32 3674 05753 7450 SNA 3675 05754 5365 JMP CR-2 3676 05755 1374 TAD (-6 3677 05756 7100 CLL 3678 05757 1174 TAD [240 3679 05760 3030 DCA LOOK 3680 05761 3005 CHEXIT, DCA EOLN 3681 05762 7420 SNL 3682 05763 2343 ISZ CHECK 3683 05764 5743 JMP I CHECK 3684 3685 05765 7301 L0001 /END OF FILE 3686 05766 3004 DCA EOF 3687 05767 1174 CR, TAD [240 /END OF LINE 3688 05770 3030 DCA LOOK 3689 05771 7301 L0001 /LINK=0! 3690 05772 5361 JMP CHEXIT 3691 3692 05774 7772 PAGE 05775 7763 05776 6000 05777 7400 3693 /THE ORGANIZATION OF THE FOLLOWING PAGES OF FIELD 0 3694 /DEMANDS SOME EXPLANATION: 3695 3696 3697 3698 / AT COMPILE TIME / AT RUNTIME / 3699 / / / 3700 /06000--------------------------/-------------------------------/ 3701 / STARTUP CODE, THEN / / 3702 / / I N P U T / 3703 /06200- I N P U T (SOURCE) -----/----- -----/ 3704 / F I L E B U F F E R / F I L E B U F F E R / 3705 / / / 3706 /06400--------------------------/-------------------------------/ 3707 / / INPUT / 3708 / I N P U T (SOURCE) / DEVICE HANDLER / 3709 /06600- -----/-------------------------------/ 3710 / D E V I C E / OUTPUT / 3711 / H A N D L E R / DEVICE HANDLER / 3712 /07000--------------------------/-------------------------------/ 3713 / / / 3714 / COMPILER PROCEDURES: / O U T P U T / 3715 /07200----- -----/----- -----/ 3716 / I N S Y M B O L / F I L E B U F F E R / 3717 / / / 3718 /07400----- AND -----/-------------------------------/ 3719 / / RUNTIME ERRORS / 3720 / N E X T C H / / 3721 /-------------------------------/-------------------------------/ 3722 3723 3724 3725 /AT COMPILATION TIME FOUR PAGES OF FIELD 6 ARE USED AS FOLLOWS: 3726 3727 /66400--- TEMPORARY STORAGE OF INPUT DEVICE HANDLER 3728 / 3729 /66600--- TEMPORARY STORAGE OF OUTPUT DEVICE HANDLER 3730 / 3731 /67400--- RUNTIME ERRORS 3732 / 3733 /67600--- INITIALIZATION OF RUNTIME SYSTEM 3734 3735 3736 3737 /DURING INITIALIZATION OF THE RUNTIME SYSTEM 3738 /THE FIRST THREE PAGES ARE SWAPPED INTO THEIR PLACE IN FIELD 0! 3739 /#############################################################/ 3740 /#############################################################/ 3741 /##### #####/ 3742 /##### S T A R T #####/ 3743 /##### #####/ 3744 /#############################################################/ 3745 /#############################################################/ 3746 3747 3748 3749 /IMPORTANT POINTS OF PROGRAM FLOW: 3750 3751 3752 /S T A R T (06000) /STARTING ADDRESS OF ENTIRE SYSTEM, 3753 /PROCESS I/O-SPECIFICATIONS 3754 3755 /M A I N (40200) /START OF COMPILER PROGRAM 3756 3757 3758 /E X P L A I N (60200) /COMPILATION REPORT 3759 3760 3761 /I N I T (67600) /INITIALIZATION OF RUNTIME SYSTEM 3762 3763 3764 /I S T A R T (00200) /START OF INTERPRETER 3765 3766 3767 3768 3769 /ONCE ONLY CODE!!! 3770 3771 USR=200 3772 3773 *IBUFFER 3774 06000 7300 START, CLA CLL /S T A R T I N G A D D R E S S 3775 06001 6212 CIF 10 3776 06002 4575 JMS I [7700 /LOCK USR IN MEMORY 3777 06003 0010 10 3778 06004 1377 TAD (1000 /RESET JOB STATUS WORD 3779 06005 3776 DCA I (7746 3780 06006 6212 CD, CIF 10 3781 06007 4775 JMS I (USR /CALL THE COMMAND DECODER 3782 06010 0005 5 3783 06011 2023 2023 /ASSUMED INPUT EXTENSION: .PS 3784 JMS HEADER off page ^ 06012 4774 3785 06013 6211 CDF 10 3786 06014 1773 TAD I (7600 3787 06015 7450 SNA /OUTPUT FILE SPECIFIED? 3788 06016 5263 JMP NOOUT 3789 06017 3133 DCA DEVNO /YES, SAVE DEVICE NUMBER 3790 06020 1373 TAD (7600 3791 06021 3010 DCA XR10 3792 06022 1410 TAD I XR10 /TRANSFER THE FILENAME 3793 06023 3127 DCA NAME 3794 06024 1410 TAD I XR10 3795 06025 3130 DCA NAME+1 3796 06026 1410 TAD I XR10 3797 06027 3131 DCA NAME+2 3798 06030 1410 TAD I XR10 3799 06031 3132 DCA NAME+3 3800 06032 6201 CDF 0 3801 06033 6212 CIF 10 3802 06034 1133 TAD DEVNO 3803 06035 4775 JMS I (USR /FETCH OUTPUT DEVICE HANDLER 3804 06036 0001 1 3805 06037 6600 OHEP, ODEVBUF /1 PAGE ONLY! 3806 JMP CDERR off page ^ 06040 5772 3807 06041 6212 CIF 10 3808 06042 1133 TAD DEVNO 3809 06043 4775 JMS I (USR /OPEN OUTPUT FILE 3810 06044 0003 3 3811 06045 0127 SBNO, NAME 3812 06046 0000 LEMP, 0 3813 JMP CDERR off page ^ 06047 5772 3814 06050 1237 TAD OHEP /GET ENTRY POINT 3815 06051 3126 DCA ODEVH 3816 06052 1245 TAD SBNO /GET STARTING BLOCK NUMBER 3817 06053 3771 DCA I (OBLOCK 3818 06054 1246 TAD LEMP /GET LENGTH OF EMPTY 3819 06055 3134 DCA LEMPTY 3820 06056 1134 TAD LEMPTY 3821 06057 7440 SZA 3822 06060 1370 TAD (-1 /SETUP BLOCK COUNTER 3823 06061 3135 DCA MBLOCKS /(=0 IF NOT A FILE DEVICE) 3824 06062 7410 SKP 3825 06063 2274 NOOUT, ISZ IHEP /ALLOW 2-PAGE INPUT HANDLER 3826 /IF NO OUTPUT FILE SPECIFIED! 3827 06064 6211 CDF 10 3828 06065 1767 TAD I (7621 3829 06066 7450 SNA /INPUT FILE SPECIFIED? 3830 06067 5304 JMP NOINP /NO, USE INTERN KEYBOARD HANDLER! 3831 06070 6201 CDF 0 3832 06071 6212 CIF 10 3833 06072 4775 JMS I (USR /FETCH INPUT DEVICE HANDLER 3834 06073 0001 1 3835 06074 6400 IHEP, IDEVBUF 3836 JMP CDERR off page ^ 06075 5772 3837 06076 6211 CDF 10 3838 06077 1766 TAD I (7622 /GET STARTING BLOCK NUMBER 3839 06100 6261 CDF 60 3840 06101 3765 DCA I (IIBLOCK 3841 06102 1274 TAD IHEP /GET ENTRY POINT 3842 06103 3764 DCA I (IIDEVH 3843 06104 6201 NOINP, CDF 0 /SAVE DEVICE HANDLERS 3844 06105 1734 TAD I F0T6 /IN FIELD 6 TO MAKE ROOM 3845 06106 6261 CDF 60 /FOR HANDLER OF SOURCE FILE 3846 06107 3734 DCA I F0T6 3847 06110 2334 ISZ F0T6 3848 06111 2335 ISZ C400 3849 06112 5304 JMP .-6 3850 06113 6211 CDF 10 3851 06114 1763 TAD I (7617 3852 06115 7450 SNA /SOURCE FILE SPECIFIED? 3853 JMP CDERR off page ^ 06116 5772 3854 06117 6201 CDF 0 3855 06120 6212 CIF 10 3856 06121 4775 JMS I (USR /FETCH HANDLER OF SOURCE FILE 3857 06122 0001 1 3858 06123 6401 SHEP, IDEVBUF+1 3859 JMP CDERR off page ^ 06124 5772 3860 06125 1323 TAD SHEP /GET ENTRY POINT 3861 06126 3125 DCA IDEVH 3862 06127 6211 CDF 10 3863 06130 1762 TAD I (7620 3864 06131 6201 CDF 0 3865 06132 3761 DCA I (IBLOCK 3866 JMP STARTC off page ^ 06133 5760 3867 3868 06134 6400 F0T6, IDEVBUF 3869 06135 7400 C400, -400 3870 3871 06160 6200 PAGE 06161 5641 06162 7620 06163 7617 06164 7664 06165 7665 06166 7622 06167 7621 06170 7777 06171 5711 06172 6212 06173 7600 06174 6600 06175 0200 06176 7746 06177 1000 3872 06200 6211 STARTC, CDF 10 /CHECK /S - OPTION 3873 06201 1777 TAD I (7644 3874 06202 6201 CDF 0 3875 06203 0376 AND (40 3876 06204 7650 SNA CLA 3877 06205 5210 JMP .+3 3878 06206 1375 TAD (SPRINT 3879 06207 3071 DCA PTPRINT 3880 06210 6243 CDF CIF COMPFIELD 3881 06211 5774 JMP I (MAIN /START COMPILER 3882 3883 06212 7300 CDERR, CLA CLL 3884 06213 6203 CDF CIF 0 3885 06214 4473 CRLF 3886 06215 1630 TAD I CTEXT 3887 06216 7450 SNA 3888 06217 5226 JMP .+7 3889 06220 7002 BSW 3890 JMS ASCII off page ^ 06221 4773 3891 06222 1630 TAD I CTEXT 3892 JMS ASCII off page ^ 06223 4773 3893 06224 2230 ISZ CTEXT 3894 06225 5215 JMP CDERR+3 3895 06226 4473 CRLF 3896 06227 5772 JMP I (7605 3897 06230 6231 CTEXT, .+1 3898 06231 0401 TEXT /DATEIANGABEN FEHLERHAFT BZW. UNVOLLSTAENDIG (EV. AUCH SYSTEMFEHLER)!/ 06232 2405 06233 1101 06234 1607 06235 0102 06236 0516 06237 4006 06240 0510 06241 1405 06242 2210 06243 0106 06244 2440 06245 0232 06246 2756 06247 4025 06250 1626 06251 1714 06252 1423 06253 2401 06254 0516 06255 0411 06256 0740 06257 5005 06260 2656 06261 4001 06262 2503 06263 1040 06264 2331 06265 2324 06266 0515 06267 0605 06270 1014 06271 0522 06272 5141 06273 0000 3899 06274 0000 0 3900 3901 06372 7605 PAGE 06373 1534 06374 0200 06375 2146 06376 0040 06377 7644 3902 /K E Y B O A R D I N P U T H A N D L E R 3903 3904 *IDEVBUF 3905 06400 0000 XREAD, 0 3906 06401 7300 CLA CLL 3907 06402 1030 TAD LOOK 3908 06403 3033 DCA CHAR 3909 06404 1005 TAD EOLN 3910 06405 7640 SZA CLA 3911 06406 5216 JMP XLINE 3912 06407 1757 REXIT, TAD I BP 3913 06410 2357 ISZ BP 3914 JMS CHECK off page ^ 06411 4777 3915 06412 5207 JMP .-3 3916 06413 5600 JMP I XREAD 3917 06414 1170 ERASE, TAD [215 3918 06415 4472 JMS I ZPRINT 3919 06416 1376 XLINE, TAD (IBUFFER 3920 06417 3357 DCA BP 3921 06420 1375 TAD ("? 3922 06421 4472 JMS I ZPRINT 3923 06422 1174 TAD [240 3924 06423 4472 JMS I ZPRINT 3925 06424 4346 XCHAR, JMS KEYBOARD 3926 06425 3757 DCA I BP 3927 06426 1757 TAD I BP 3928 06427 1374 TAD (-377 3929 06430 7650 SNA CLA / 'RUBOUT'? 3930 06431 5261 JMP RUBOUT 3931 06432 1757 TAD I BP 3932 06433 1373 TAD (-203 3933 06434 7450 SNA / 'CTRL-C'? 3934 06435 5460 JMP I OS8 3935 06436 1372 TAD (203-212 3936 06437 7450 SNA / 'LINE FEED'? 3937 06440 5305 JMP REPLAY 3938 06441 1371 TAD (212-215 3939 06442 7450 SNA / 'RETURN'? 3940 06443 5341 JMP RETURN 3941 06444 1370 TAD (215-225 3942 06445 7450 SNA / 'CTRL-U'? 3943 06446 5214 JMP ERASE 3944 06447 1367 TAD (225-232 3945 06450 7450 SNA / 'CTRL-Z'? 3946 06451 5331 JMP EOFILE 3947 06452 1366 TAD (232-240 3948 06453 7710 SPA CLA 3949 06454 5224 JMP XCHAR 3950 06455 1757 TAD I BP 3951 06456 4472 JMS I ZPRINT 3952 06457 2357 ISZ BP 3953 06460 5224 JMP XCHAR 3954 3955 06461 1365 RUBOUT, TAD ("\ 3956 06462 4472 JMS I ZPRINT 3957 06463 1357 TAD BP 3958 06464 1364 TAD (-IBUFFER 3959 06465 7650 SNA CLA 3960 06466 5274 JMP YCHAR 3961 06467 7340 L7777 3962 06470 1357 TAD BP 3963 06471 3357 DCA BP 3964 06472 1757 TAD I BP 3965 06473 4472 JMS I ZPRINT 3966 06474 4346 YCHAR, JMS KEYBOARD 3967 06475 3757 DCA I BP 3968 06476 1757 TAD I BP 3969 06477 1374 TAD (-377 3970 06500 7650 SNA CLA 3971 06501 5263 JMP RUBOUT+2 3972 06502 1365 TAD ("\ 3973 06503 4472 JMS I ZPRINT 3974 06504 5226 JMP XCHAR+2 3975 3976 06505 1357 REPLAY, TAD BP 3977 06506 1364 TAD (-IBUFFER 3978 06507 7450 SNA 3979 06510 5224 JMP XCHAR 3980 06511 7041 CIA 3981 06512 3346 DCA RC 3982 06513 1376 TAD (IBUFFER 3983 06514 3357 DCA BP 3984 06515 1170 TAD [215 3985 06516 4472 JMS I ZPRINT 3986 06517 1375 TAD ("? 3987 06520 4472 JMS I ZPRINT 3988 06521 1174 TAD [240 3989 06522 4472 JMS I ZPRINT 3990 06523 1757 TAD I BP 3991 06524 4472 JMS I ZPRINT 3992 06525 2357 ISZ BP 3993 06526 2346 ISZ RC 3994 06527 5323 JMP .-4 3995 06530 5224 JMP XCHAR 3996 3997 06531 1174 EOFILE, TAD [240 3998 06532 4472 JMS I ZPRINT 3999 06533 1363 TAD ("E 4000 06534 4472 JMS I ZPRINT 4001 06535 1362 TAD ("O 4002 06536 4472 JMS I ZPRINT 4003 06537 1361 TAD ("F 4004 06540 4472 JMS I ZPRINT 4005 06541 1170 RETURN, TAD [215 4006 06542 4472 JMS I ZPRINT 4007 06543 1376 TAD (IBUFFER 4008 06544 3357 DCA BP 4009 06545 5207 JMP REXIT 4010 4011 06546 0000 KEYBOARD,0 4012 06547 6031 KSF 4013 06550 5347 JMP .-1 4014 06551 6036 KRB 4015 06552 0167 AND [177 4016 06553 7450 SNA 4017 06554 5347 JMP KEYBOARD+1 4018 06555 1360 TAD (200 4019 06556 5746 JMP I KEYBOARD 4020 4021 06557 6000 BP, IBUFFER 4022 RC=KEYBOARD 4023 4024 06560 0200 PAGE 06561 0306 06562 0317 06563 0305 06564 2000 06565 0334 06566 7772 06567 7773 06570 7770 06571 7775 06572 7771 06573 7575 06574 7401 06575 0277 06576 6000 06577 5743 4025 /H E A D E R L I N E 4026 4027 *ODEVBUF 4028 06600 0000 HEADER, 0 /ONCE ONLY CODE! 4029 06601 6211 CDF 10 4030 06602 1777 TAD I (7666 /GET DATE WORD FROM MONITOR 4031 06603 6201 CDF 0 4032 06604 7450 SNA 4033 06605 5230 JMP WHEAD-1 4034 06606 7421 MQL 4035 06607 1376 TAD (HDATE 4036 06610 3010 DCA XR10 4037 06611 7501 MQA /YEAR 4038 06612 0375 AND (7 4039 06613 1374 TAD (116 /78 4040 06614 4252 JMS YYMMDD 4041 06615 7501 MQA /MONTH 4042 06616 7002 BSW 4043 06617 7012 RTR 4044 06620 0373 AND (17 4045 06621 4252 JMS YYMMDD 4046 06622 7501 MQA /DAY 4047 06623 7012 RTR 4048 06624 7010 RAR 4049 06625 0372 AND (37 4050 06626 4252 JMS YYMMDD 4051 06627 7410 SKP 4052 06630 3351 DCA HDATE 4053 06631 1371 WHEAD, TAD (PASCAL-1 4054 06632 3010 DCA XR10 4055 06633 1410 TAD I XR10 4056 06634 7450 SNA 4057 06635 5240 WHEND, JMP .+3 /BECOMES: JMP WHEXIT 4058 06636 4471 PRINTC 4059 06637 5233 JMP .-4 4060 06640 1330 TAD H240 4061 06641 4471 PRINTC 4062 06642 2363 ISZ BLANKS 4063 06643 5240 JMP .-3 4064 06644 1370 TAD (JMP WHEXIT 4065 06645 3235 DCA WHEND 4066 06646 5233 JMP WHEAD+2 4067 06647 4473 WHEXIT, CRLF 4068 06650 4473 CRLF 4069 06651 5600 JMP I HEADER 4070 4071 06652 0000 YYMMDD, 0 4072 06653 3362 DCA DAT01 4073 06654 3361 DCA DAT10 4074 06655 5260 JMP .+3 4075 06656 3362 DCA DAT01 4076 06657 2361 ISZ DAT10 4077 06660 1362 TAD DAT01 4078 06661 1367 TAD (-12 4079 06662 7500 SMA 4080 06663 5256 JMP .-5 4081 06664 7200 CLA 4082 06665 2010 ISZ XR10 4083 06666 1361 TAD DAT10 4084 06667 1332 TAD H260 4085 06670 3410 DCA I XR10 4086 06671 1362 TAD DAT01 4087 06672 1332 TAD H260 4088 06673 3410 DCA I XR10 4089 06674 5652 JMP I YYMMDD 4090 4091 H215=. 4092 06675 0215 PASCAL, 215;"P;240;"A;240;"S;240;"C;240;"A;240;"L 06676 0320 06677 0240 06700 0301 06701 0240 06702 0323 06703 0240 06704 0303 06705 0240 06706 0301 06707 0240 06710 0314 4093 06711 0240 240;"-;240;"S;240;240;240 06712 0255 06713 0240 06714 0323 06715 0240 06716 0240 06717 0240 4094 06720 0303 "C;"O;"M;"P;"I;"L;"E;"R 06721 0317 06722 0315 06723 0320 06724 0311 06725 0314 06726 0305 06727 0322 4095 06730 0240 H240, 240 4096 06731 0326 "V 4097 06732 0260 H260, "0 4098 06733 0262 VERSION+"0 4099 06734 0000 0000 4100 06735 0310 HTLMOE, "H;"T;"L;"-;"M;"O;"E;"D;"L;"I;"N;"G 06736 0324 06737 0314 06740 0255 06741 0315 06742 0317 06743 0305 06744 0304 06745 0314 06746 0311 06747 0316 06750 0307 4101 06751 0254 HDATE, ", /BECOMES: 0000 IF NO DATE SPECIFIED 4102 06752 0240 240 4103 06753 0000 0000 /YEAR 4104 06754 0000 0000 4105 06755 0255 "- 4106 06756 0000 0000 /MONTH 4107 06757 0000 0000 4108 06760 0255 "- 4109 06761 0000 DAT10, 0000 /DAY 4110 06762 0000 DAT01, 0000 4111 06763 7750 BLANKS, -30 /BECOMES 0000 4112 4113 06767 7766 PAGE 06770 5247 06771 6674 06772 0037 06773 0017 06774 0116 06775 0007 06776 6751 06777 7666 4114 /BEGIN OF COMPILER PROGRAM: T H E S C A N N E R 4115 4116 NEXTCH=READC 4117 4118 SY0=H1 /FIELD 0 REPRESENTATIVE OF 'SY' 4119 KSY=H2 4120 SPS=H3 4121 K=H4 4122 INTORINP=PC 4123 4124 *7000 4125 07000 7610 INSY0, SKP CLA 4126 07001 4470 NEXTCH 4127 07002 1033 TAD CHAR 4128 07003 1165 TAD [-240 4129 07004 7650 SNA CLA 4130 07005 5201 JMP .-4 4131 07006 4474 SNALF 4132 07007 5264 JMP WSYMBOL 4133 07010 4475 SKDIG 4134 JMP SPSYM off page ^ 07011 5777 4135 07012 1376 NUMBER, TAD (FRACTN 4136 07013 3020 DCA INTORINP 4137 07014 3061 DCA SY0 /0=INTCON 4138 JMS IINP off page ^ 07015 4775 4139 07016 1033 TAD CHAR 4140 07017 1374 TAD (-". 4141 07020 7640 SZA CLA 4142 07021 5235 JMP ECHAR 4143 07022 4470 NEXTCH 4144 07023 1033 TAD CHAR 4145 07024 1374 TAD (-". 4146 07025 7650 SNA CLA 4147 07026 5243 JMP RETNUM-2 4148 07027 7301 REALGO, L0001 4149 07030 3061 DCA SY0 /1=REALCON 4150 07031 1047 TAD OC 4151 07032 7041 CIA 4152 07033 3046 DCA DC 4153 07034 5420 JMP I INTORINP 4154 07035 2020 ECHAR, ISZ INTORINP 4155 07036 1033 TAD CHAR 4156 07037 1373 TAD (-"E 4157 07040 7650 SNA CLA 4158 07041 5227 JMP REALGO 4159 07042 5245 JMP RETNUM 4160 07043 1372 TAD (": 4161 07044 3033 DCA CHAR 4162 RETNUM, JMS PACK off page ^ 07045 4771 4163 07046 1370 TAD (NUM-1 4164 07047 3010 RETID, DCA XR10 4165 07050 6241 CDF COMPFIELD 4166 07051 1040 TAD AC0 4167 07052 3410 DCA I XR10 4168 07053 1041 TAD AC1 4169 07054 3410 DCA I XR10 4170 07055 1042 TAD AC2 4171 07056 3410 DCA I XR10 4172 07057 1043 TAD AC3 4173 07060 3410 DCA I XR10 4174 07061 1061 RETSYM, TAD SY0 4175 07062 6243 CDF CIF COMPFIELD 4176 07063 5767 JMP I (EXSY3 4177 07064 3064 WSYMBOL,DCA K /USE AC FOR ID IN FIELD 0 4178 07065 4467 CLEAR 4179 07066 1064 AZ09, TAD K 4180 07067 1366 TAD (-ALNG 4181 07070 7700 SMA CLA 4182 07071 5275 JMP .+4 4183 07072 7303 L0100 /=2*AC0, LINK=0 4184 JMS CPACK off page ^ 07073 4765 4185 07074 2064 ISZ K 4186 07075 4470 NEXTCH 4187 07076 4475 SKDIG 4188 07077 4474 SNALF 4189 07100 5266 JMP AZ09 4190 07101 7301 L0001 /BUILD HASH-CODE 4191 07102 1040 TAD AC0 4192 07103 7002 BSW 4193 07104 7006 RTL 4194 07105 7200 CLA 4195 07106 1040 TAD AC0 4196 07107 7002 BSW 4197 07110 1041 TAD AC1 4198 07111 0173 AND [77 4199 07112 7004 RAL 4200 07113 7421 MQL /IN MQ 4201 07114 7501 MQA 4202 07115 1364 TAD (KSYTABLE 4203 07116 3062 DCA KSY 4204 07117 7501 MQA 4205 07120 7106 CLL RTL 4206 07121 1363 TAD (HASHTABLE-1 4207 07122 3010 DCA XR10 4208 07123 6231 CDF NAMEFIELD 4209 07124 1410 TAD I XR10 4210 07125 7041 CIA 4211 07126 1040 TAD AC0 4212 07127 7640 SZA CLA 4213 07130 5352 JMP XIDENT 4214 07131 1410 TAD I XR10 4215 07132 7041 CIA 4216 07133 1041 TAD AC1 4217 07134 7640 SZA CLA 4218 07135 5352 JMP XIDENT 4219 07136 1410 TAD I XR10 4220 07137 7041 CIA 4221 07140 1042 TAD AC2 4222 07141 7640 SZA CLA 4223 07142 5352 JMP XIDENT 4224 07143 1410 TAD I XR10 4225 07144 7041 CIA 4226 07145 1043 TAD AC3 4227 07146 7640 SZA CLA 4228 07147 5352 JMP XIDENT 4229 07150 1462 TAD I KSY 4230 07151 5262 JMP RETSYM+1 4231 07152 1362 XIDENT, TAD (IDENT 4232 07153 3061 DCA SY0 4233 07154 1361 TAD (ID-1 4234 07155 5247 JMP RETID 4235 4236 07161 0037 PAGE 07162 0044 07163 4554 07164 5555 07165 7307 07166 7770 07167 7562 07170 0043 07171 1642 07172 0272 07173 7473 07174 7522 07175 3404 07176 2421 07177 7200 4237 07200 1033 SPSYM, TAD CHAR 4238 07201 1377 TAD (CHARTABLE-240 4239 07202 3063 DCA SPS 4240 07203 6231 CDF NAMEFIELD 4241 07204 1463 TAD I SPS 4242 07205 6201 CDF 0 4243 07206 7450 SNA 4244 07207 5217 JMP ILLCHAR 4245 07210 7510 SPA 4246 07211 5222 JMP DBLCHAR 4247 07212 3061 RETSPS, DCA SY0 4248 07213 4470 NEXTCH 4249 07214 1061 TAD SY0 4250 07215 6243 RETSNGL,CDF CIF COMPFIELD 4251 07216 5776 JMP I (EXSY3 4252 07217 4500 ILLCHAR,ERROR;30 /24 07220 0030 4253 07221 5775 JMP I (INSY0+1 4254 07222 3225 DBLCHAR,DCA .+3 4255 07223 4470 NEXTCH 4256 07224 1033 TAD CHAR 4257 07225 7402 HLT /JMP X 4258 4259 JMPCOL=JMP . 4260 07226 1374 CCOL, TAD (-"= 4261 07227 7640 SZA CLA 4262 07230 5233 JMP .+3 4263 07231 1373 TAD (BECOMES 4264 07232 5212 JMP RETSPS 4265 07233 1372 TAD (COLON 4266 07234 5215 JMP RETSNGL 4267 4268 JMPLSS=JMP . 4269 07235 1374 CLSS, TAD (-"= 4270 07236 7450 SNA 4271 07237 5245 JMP .+6 4272 07240 1371 TAD ("=-"> 4273 07241 7650 SNA CLA 4274 07242 5246 JMP .+4 4275 07243 1370 TAD (LSS 4276 07244 5215 JMP RETSNGL 4277 07245 7307 L0004 /LEQ=NEQ+4 4278 07246 1367 TAD (NEQ 4279 07247 5212 JMP RETSPS 4280 4281 JMPGTR=JMP . 4282 07250 1374 CGTR, TAD (-"= 4283 07251 7650 SNA CLA 4284 07252 5255 JMP .+3 4285 07253 1366 TAD (GTR 4286 07254 5215 JMP RETSNGL 4287 07255 1365 TAD (GEQ 4288 07256 5212 JMP RETSPS 4289 4290 JMPPER=JMP . 4291 07257 1364 CPER, TAD (-". 4292 07260 7650 SNA CLA 4293 07261 5264 JMP .+3 4294 07262 1363 TAD (PERIOD 4295 07263 5215 JMP RETSNGL 4296 07264 1372 TAD (COLON 4297 07265 5212 JMP RETSPS 4298 4299 JMPLPAR=JMP . 4300 07266 1362 CLPAR, TAD (-"* 4301 07267 7650 SNA CLA 4302 07270 5273 JMP .+3 4303 07271 1361 TAD (LPARENT 4304 07272 5215 JMP RETSNGL 4305 07273 4470 NEXTCH 4306 07274 1033 TAD CHAR 4307 07275 1362 TAD (-"* 4308 07276 7640 SZA CLA 4309 07277 5273 JMP .-4 4310 07300 4470 NEXTCH 4311 07301 1033 TAD CHAR 4312 07302 1360 TAD (-") 4313 07303 7640 SZA CLA 4314 07304 5274 JMP .-10 4315 07305 5775 JMP I (INSY0+1 4316 4317 4318 JMPAPOS=JMP I . 4319 07306 7400 CAPOS 4320 4321 4322 07307 0000 CPACK, 0 4323 07310 1064 TAD K 4324 07311 7010 RAR 4325 07312 3330 DCA CPP 4326 07313 1033 TAD CHAR 4327 07314 0173 AND [77 4328 07315 7430 SZL 4329 07316 5321 JMP .+3 4330 07317 7002 BSW 4331 07320 5325 JMP .+5 4332 07321 7421 MQL 4333 07322 1730 TAD I CPP 4334 07323 0175 AND [7700 4335 07324 7501 MQA 4336 07325 3730 DCA I CPP 4337 07326 6201 CDF 0 4338 07327 5707 JMP I CPACK 4339 07330 0000 CPP, 0 4340 4341 4342 07331 0000 XSNALF, 0 4343 07332 1033 TAD CHAR 4344 07333 1357 TAD (-"Z-1 4345 07334 7100 CLL 4346 07335 1372 TAD ("Z+1-"A 4347 07336 7620 SNL CLA 4348 07337 2331 ISZ XSNALF 4349 07340 5731 JMP I XSNALF 4350 4351 07357 7445 PAGE 07360 7527 07361 0023 07362 7526 07363 0031 07364 7522 07365 0020 07366 0017 07367 0016 07370 0021 07371 7777 07372 0032 07373 0033 07374 7503 07375 7001 07376 7562 07377 5665 4352 DISPLAY=7400 4353 4354 /-------- D I S P L A Y --------/ 4355 4356 /DISPLAY,ZBLOCK 20 /AT RUNTIME ONLY 4357 4358 /---------------------------------/ 4359 4360 4361 07400 0173 CAPOS, AND [77 4362 07401 4467 LOAD 4363 07402 3064 DCA K 4364 07403 7410 SKP 4365 07404 4470 LBL2, NEXTCH 4366 07405 1033 TAD CHAR 4367 07406 1377 TAD (-"" 4368 07407 7640 SZA CLA 4369 07410 5216 JMP .+6 4370 07411 4470 NEXTCH 4371 07412 1033 TAD CHAR 4372 07413 1377 TAD (-"" 4373 07414 7640 SZA CLA 4374 07415 5230 JMP LBL3 4375 07416 7120 STL 4376 07417 6241 CDF COMPFIELD 4377 07420 1776 TAD I (SX 4378 07421 6221 CDF TABLEFIELD 4379 JMS CPACK off page ^ 07422 4775 4380 07423 2064 ISZ K 4381 07424 1005 TAD EOLN 4382 07425 7650 SNA CLA 4383 07426 5204 JMP LBL2 4384 07427 3064 DCA K 4385 07430 7326 LBL3, L0002 /2=CHARCON 4386 07431 3061 DCA SY0 4387 07432 7340 L7777 4388 07433 1064 TAD K 4389 07434 7450 SNA 4390 JMP RETNUM off page ^ 07435 5774 4391 07436 7710 SPA CLA 4392 07437 5260 JMP ERR38 4393 07440 2061 ISZ SY0 /3=STRING 4394 07441 6241 CDF COMPFIELD 4395 07442 1776 TAD I (SX 4396 07443 4467 LOAD 4397 07444 1064 TAD K 4398 07445 3773 DCA I (SLENG 4399 07446 1776 TAD I (SX 4400 07447 1064 TAD K 4401 07450 3776 DCA I (SX 4402 07451 1776 TAD I (SX 4403 07452 7130 STL RAR 4404 07453 7041 CIA 4405 07454 1772 TAD I (C 4406 07455 7710 SPA CLA 4407 07456 4501 FATAL7, FATAL 4408 JMP RETNUM off page ^ 07457 5774 4409 07460 4500 ERR38, ERROR;46 /38 07461 0046 4410 07462 5265 JMP .+3 4411 07463 4500 ERR21, ERROR;25 /21 07464 0025 4412 07465 4467 CLEAR 4413 JMP RETNUM off page ^ 07466 5774 4414 4415 4416 07467 0000 ZERROR, 0 4417 07470 7300 CLA CLL 4418 07471 1667 TAD I ZERROR 4419 07472 6232 CIF SETFIELD 4420 07473 4771 JMS I (F3ERROR 4421 07474 5667 JMP I ZERROR 4422 4423 07475 0000 ZFATAL, 0 4424 07476 1275 TAD ZFATAL 4425 07477 6233 CDF CIF SETFIELD 4426 07500 5770 JMP I (F3FATAL 4427 07501 0000 XNEXTCH,0 4428 07502 4476 BREAK 4429 07503 2353 ISZ LL 4430 07504 5337 JMP NCH 4431 07505 1007 TAD ERRSW 4432 07506 7650 SNA CLA 4433 07507 5322 JMP NLN 4434 07510 1367 TAD (ERRLINE-1 4435 07511 3010 DCA XR10 4436 07512 6231 CDF SETFIELD 4437 07513 1410 TAD I XR10 4438 07514 6201 CDF 0 4439 07515 1174 TAD [240 4440 07516 4471 PRINTC 4441 07517 2007 ISZ ERRSW 4442 07520 5312 JMP .-6 4443 07521 4473 CRLF 4444 07522 1004 NLN, TAD EOF 4445 07523 7640 SZA CLA 4446 07524 4501 FATAL9, FATAL /PROGRAM INCOMPLETE! 4447 07525 3006 DCA CC 4448 07526 1366 TAD (5 4449 07527 3034 DCA M 4450 07530 6241 CDF COMPFIELD 4451 07531 1765 TAD I (LC 4452 07532 6201 CDF 0 4453 07533 4467 LOAD 4454 JMS IOUT off page ^ 07534 4764 4455 07535 4471 PRINTC /CHAR = 240 ! 4456 07536 4471 PRINTC 4457 07537 2006 NCH, ISZ CC 4458 07540 1005 TAD EOLN 4459 07541 7650 SNA CLA 4460 07542 5350 JMP .+6 4461 07543 4473 CRLF 4462 07544 7340 L7777 4463 07545 3353 DCA LL 4464 JMS GETC off page ^ 07546 4763 4465 07547 5701 JMP I XNEXTCH 4466 JMS GETC off page ^ 07550 4763 4467 07551 4471 PRINTC 4468 07552 5701 JMP I XNEXTCH 4469 07553 0000 LL, 0 4470 4471 07563 5600 PAGE 07564 3416 07565 0020 07566 0005 07567 6224 07570 6602 07571 6406 07572 0027 07573 0036 07574 7045 07575 7307 07576 0030 07577 7536 4472 00165 7540 FIELD 2 00166 3305 00167 0177 00170 0215 00171 0212 00172 7563 00173 0077 00174 0240 00175 7700 00176 7000 00177 0232 4473 4474 *TAB 4475 4476 /ENTRIES FOR PREDEFINED SYMBOLS: 4477 4478 20000 7777 -1; VARIABLE^100+NOTYP; 0040; 0 20001 0100 20002 0040 20003 0000 4479 20004 0000 0; KONSTANT^100+BOOLS; 0040; 0 20005 0003 20006 0040 20007 0000 4480 20010 0001 1; KONSTANT^100+BOOLS; 0040; 1 20011 0003 20012 0040 20013 0001 4481 20014 0002 2; TYPE1^100+REALS; 0040; 1 20015 0202 20016 0040 20017 0001 4482 20020 0003 3; TYPE1^100+CHARS; 0040; 1 20021 0204 20022 0040 20023 0001 4483 20024 0004 4; TYPE1^100+BOOLS; 0040; 1 20025 0203 20026 0040 20027 0001 4484 20030 0005 5; TYPE1^100+INTS; 0040; 1 20031 0201 20032 0040 20033 0001 4485 20034 0006 6; FUNKTION^100+REALS; 0040; 0 20035 0402 20036 0040 20037 0000 4486 20040 0007 7; FUNKTION^100+REALS; 0040; 2 20041 0402 20042 0040 20043 0002 4487 20044 0010 10; FUNKTION^100+BOOLS; 0040; 4 20045 0403 20046 0040 20047 0004 4488 20050 0011 11; FUNKTION^100+CHARS; 0040; 5 20051 0404 20052 0040 20053 0005 4489 20054 0012 12; FUNKTION^100+INTS; 0040; 6 20055 0401 20056 0040 20057 0006 4490 20060 0013 13; FUNKTION^100+CHARS; 0040; 7 20061 0404 20062 0040 20063 0007 4491 20064 0014 14; FUNKTION^100+CHARS; 0040; 10 20065 0404 20066 0040 20067 0010 4492 20070 0015 15; FUNKTION^100+INTS; 0040; 11 20071 0401 20072 0040 20073 0011 4493 20074 0016 16; FUNKTION^100+INTS; 0040; 12 20075 0401 20076 0040 20077 0012 4494 20100 0017 17; FUNKTION^100+REALS; 0040; 13 20101 0402 20102 0040 20103 0013 4495 20104 0020 20; FUNKTION^100+REALS; 0040; 14 20105 0402 20106 0040 20107 0014 4496 20110 0021 21; FUNKTION^100+REALS; 0040; 15 20111 0402 20112 0040 20113 0015 4497 20114 0022 22; FUNKTION^100+REALS; 0040; 16 20115 0402 20116 0040 20117 0016 4498 20120 0023 23; FUNKTION^100+REALS; 0040; 17 20121 0402 20122 0040 20123 0017 4499 20124 0024 24; FUNKTION^100+REALS; 0040; 20 20125 0402 20126 0040 20127 0020 4500 20130 0025 25; FUNKTION^100+BOOLS; 0040; 21 20131 0403 20132 0040 20133 0021 4501 20134 0026 26; FUNKTION^100+BOOLS; 0040; 22 20135 0403 20136 0040 20137 0022 4502 20140 0027 27; PROZEDURE^100+NOTYP; 0040; 1 20141 0300 20142 0040 20143 0001 4503 20144 0030 30; PROZEDURE^100+NOTYP; 0040; 2 20145 0300 20146 0040 20147 0002 4504 20150 0031 31; PROZEDURE^100+NOTYP; 0040; 3 20151 0300 20152 0040 20153 0003 4505 20154 0032 32; PROZEDURE^100+NOTYP; 0040; 4 20155 0300 20156 0040 20157 0004 4506 20160 0033 33; PROZEDURE^100+NOTYP; 0040; 5 20161 0300 20162 0040 20163 0005 4507 20164 0034 34; PROZEDURE^100+NOTYP; 0040; 6 20165 0300 20166 0040 20167 0006 4508 20170 0035 35; FUNKTION^100+REALS; 0040; 23 20171 0402 20172 0040 20173 0023 4509 20174 0036 36; PROZEDURE^100+NOTYP; 0040; 0 20175 0300 20176 0040 20177 0000 4510 FIELD 3 4511 4512 /N A M E S OF S Y M B O L - T A B L E 4513 4514 /THE FOLLOWING NAMES ARE PREDEFINED: 4515 *0 4516 30000 0000 TEXT /@@@@@@@@/ 30001 0000 30002 0000 30003 0000 30004 0000 4517 *.-1 4518 30004 0601 TEXT /FALSE@@@/ 30005 1423 30006 0500 30007 0000 30010 0000 4519 *.-1 4520 30010 2422 TEXT /TRUE@@@@/ 30011 2505 30012 0000 30013 0000 30014 0000 4521 *.-1 4522 30014 2205 TEXT /REAL@@@@/ 30015 0114 30016 0000 30017 0000 30020 0000 4523 *.-1 4524 30020 0310 TEXT /CHAR@@@@/ 30021 0122 30022 0000 30023 0000 30024 0000 4525 *.-1 4526 30024 0217 TEXT /BOOLEAN@/ 30025 1714 30026 0501 30027 1600 30030 0000 4527 *.-1 4528 30030 1116 TEXT /INTEGER@/ 30031 2405 30032 0705 30033 2200 30034 0000 4529 *.-1 4530 30034 0102 TEXT /ABS@@@@@/ 30035 2300 30036 0000 30037 0000 30040 0000 4531 *.-1 4532 30040 2321 TEXT /SQR@@@@@/ 30041 2200 30042 0000 30043 0000 30044 0000 4533 *.-1 4534 30044 1704 TEXT /ODD@@@@@/ 30045 0400 30046 0000 30047 0000 30050 0000 4535 *.-1 4536 30050 0310 TEXT /CHR@@@@@/ 30051 2200 30052 0000 30053 0000 30054 0000 4537 *.-1 4538 30054 1722 TEXT /ORD@@@@@/ 30055 0400 30056 0000 30057 0000 30060 0000 4539 *.-1 4540 30060 2325 TEXT /SUCC@@@@/ 30061 0303 30062 0000 30063 0000 30064 0000 4541 *.-1 4542 30064 2022 TEXT /PRED@@@@/ 30065 0504 30066 0000 30067 0000 30070 0000 4543 *.-1 4544 30070 2217 TEXT /ROUND@@@/ 30071 2516 30072 0400 30073 0000 30074 0000 4545 *.-1 4546 30074 2422 TEXT /TRUNC@@@/ 30075 2516 30076 0300 30077 0000 30100 0000 4547 *.-1 4548 30100 2311 TEXT /SIN@@@@@/ 30101 1600 30102 0000 30103 0000 30104 0000 4549 *.-1 4550 30104 0317 TEXT /COS@@@@@/ 30105 2300 30106 0000 30107 0000 30110 0000 4551 *.-1 4552 30110 0530 TEXT /EXP@@@@@/ 30111 2000 30112 0000 30113 0000 30114 0000 4553 *.-1 4554 30114 1416 TEXT /LN@@@@@@/ 30115 0000 30116 0000 30117 0000 30120 0000 4555 *.-1 4556 30120 2321 TEXT /SQRT@@@@/ 30121 2224 30122 0000 30123 0000 30124 0000 4557 *.-1 4558 30124 0122 TEXT /ARCTAN@@/ 30125 0324 30126 0116 30127 0000 30130 0000 4559 *.-1 4560 30130 0517 TEXT /EOF@@@@@/ 30131 0600 30132 0000 30133 0000 30134 0000 4561 *.-1 4562 30134 0517 TEXT /EOLN@@@@/ 30135 1416 30136 0000 30137 0000 30140 0000 4563 *.-1 4564 30140 2205 TEXT /READ@@@@/ 30141 0104 30142 0000 30143 0000 30144 0000 4565 *.-1 4566 30144 2205 TEXT /READLN@@/ 30145 0104 30146 1416 30147 0000 30150 0000 4567 *.-1 4568 30150 2722 TEXT /WRITE@@@/ 30151 1124 30152 0500 30153 0000 30154 0000 4569 *.-1 4570 30154 2722 TEXT /WRITELN@/ 30155 1124 30156 0514 30157 1600 30160 0000 4571 *.-1 4572 30160 1001 TEXT /HALT@@@@/ 30161 1424 30162 0000 30163 0000 30164 0000 4573 *.-1 4574 30164 0123 TEXT /ASCII@@@/ 30165 0311 30166 1100 30167 0000 30170 0000 4575 *.-1 4576 30170 2201 TEXT /RANDOM@@/ 30171 1604 30172 1715 30173 0000 30174 0000 4577 *.-1 4578 30174 0000 TEXT /@@@@@@@@/ 30175 0000 30176 0000 30177 0000 30200 0000 4579 /F S Y S AND S E T - C O N S T A N T S 4580 4581 *4000 4582 /---------------- 4583 34000 0000 FSYS, ZBLOCK 5 / M U S T BE AT 4000!!! 34001 0000 34002 0000 34003 0000 34004 0000 4584 /---------------- 4585 4586 34005 0000 S1US2, ZBLOCK 5 34006 0000 34007 0000 34010 0000 34011 0000 4587 4588 34012 0000 SET0, 0;0;0;0;0 34013 0000 34014 0000 34015 0000 34016 0000 4589 SET1, 4590 34017 7140 CONBGS, 7140;0000;0000;4000;0000 34020 0000 34021 0000 34022 4000 34023 0000 4591 SET2, 4592 34024 0000 TYPBGS, 0000;0000;0006;4000;0000 34025 0000 34026 0006 34027 4000 34030 0000 4593 SET3, 4594 34031 0000 BLOBGS, 0000;0000;0370;2000;0000 34032 0000 34033 0370 34034 2000 34035 0000 4595 SET4, 4596 34036 7200 FACBGS, 7200;0020;0000;4000;0000 34037 0020 34040 0000 34041 4000 34042 0000 4597 SET5, 4598 34043 0000 STATBGS,0000;0000;0000;3740;0000 34044 0000 34045 0000 34046 3740 34047 0000 4599 34050 0000 SET6, 0000;0001;1000;0000;0000 34051 0001 34052 1000 34053 0000 34054 0000 4600 34055 0000 SET7, 0000;0000;0370;6000;0000 34056 0000 34057 0370 34060 6000 34061 0000 4601 34062 0140 SET8, 0140;0000;0000;0000;0000 34063 0000 34064 0000 34065 0000 34066 0000 4602 34067 0000 SET9, 0000;0012;1000;0002;0000 34070 0012 34071 1000 34072 0002 34073 0000 4603 34074 0000 SET10, 0000;0013;0000;0002;0000 34075 0013 34076 0000 34077 0002 34100 0000 4604 34101 0000 SET11, 0000;0001;4000;4020;0000 34102 0001 34103 4000 34104 4020 34105 0000 4605 34106 0000 SET12, 0000;0000;4000;4020;0000 34107 0000 34110 4000 34111 4020 34112 0000 4606 34113 0000 SET13, 0000;0000;0040;4000;0000 34114 0000 34115 0040 34116 4000 34117 0000 4607 34120 0000 SET14, 0000;0010;0000;0000;0000 34121 0010 34122 0000 34123 0000 34124 0000 4608 34125 0000 SET15, 0000;0010;4000;0000;0000 34126 0010 34127 4000 34130 0000 34131 0000 4609 34132 0000 SET16, 0000;0001;0000;4000;0000 34133 0001 34134 0000 34135 4000 34136 0000 4610 34137 0000 SET17, 0000;0000;5000;0000;0000 34140 0000 34141 5000 34142 0000 34143 0000 4611 34144 0000 SET18, 0000;0000;0000;4000;0000 34145 0000 34146 0000 34147 4000 34150 0000 4612 34151 0000 SET19, 0000;0001;4000;4000;0000 34152 0001 34153 4000 34154 4000 34155 0000 4613 34156 0000 SET20, 0000;0000;4000;0000;0000 34157 0000 34160 4000 34161 0000 34162 0000 4614 34163 0000 SET21, 0000;0003;0000;0000;0000 34164 0003 34165 0000 34166 0000 34167 0000 4615 34170 0000 SET22, 0000;0024;2000;0000;0000 34171 0024 34172 2000 34173 0000 34174 0000 4616 34175 0000 SET23, 0000;0011;1000;0000;0000 34176 0011 34177 1000 34200 0000 34201 0000 4617 34202 0000 SET24, 0000;0011;0000;0000;0000 34203 0011 34204 0000 34205 0000 34206 0000 4618 34207 7000 SET25, 7000;0000;0000;0000;0000 34210 0000 34211 0000 34212 0000 34213 0000 4619 34214 0037 SET26, 0037;0000;0000;0000;0000 34215 0000 34216 0000 34217 0000 34220 0000 4620 34221 0140 SET27, 0140;4000;0000;0000;0000 34222 4000 34223 0000 34224 0000 34225 0000 4621 34226 0000 SET28, 0000;3740;0000;0000;0000 34227 3740 34230 0000 34231 0000 34232 0000 4622 34233 0000 SET29, 0000;2000;0400;0000;0000 34234 2000 34235 0400 34236 0000 34237 0000 4623 34240 0000 SET30, 0000;0000;4000;0020;0000 34241 0000 34242 4000 34243 0020 34244 0000 4624 34245 0000 SET31, 0000;0000;4000;3740;0000 34246 0000 34247 4000 34250 3740 34251 0000 4625 34252 0000 SET32, 0000;0000;0000;0001;1000 34253 0000 34254 0000 34255 0001 34256 1000 4626 34257 0000 SET33, 0000;0000;0000;0010;0000 34260 0000 34261 0000 34262 0010 34263 0000 4627 34264 0000 SET34, 0000;0001;1000;0002;0000 34265 0001 34266 1000 34267 0002 34270 0000 4628 34271 0000 SET35, 0000;0000;4000;0004;0000 34272 0000 34273 4000 34274 0004 34275 0000 4629 34276 0000 SET36, 0000;0000;0000;0001;0000 34277 0000 34300 0000 34301 0001 34302 0000 4630 34303 0000 SET37, 0000;0000;0400;0001;6000 34304 0000 34305 0400 34306 0001 34307 6000 4631 34310 0000 SET38, 0000;0000;0000;0001;6000 34311 0000 34312 0000 34313 0001 34314 6000 4632 34315 0000 SET39, 0000;0000;0000;0000;6000 34316 0000 34317 0000 34320 0000 34321 6000 4633 34322 0000 SET40, 0000;0000;0000;7740;0000 34323 0000 34324 0000 34325 7740 34326 0000 4634 34327 0000 SET41, 0000;0020;5000;0000;0000 34330 0020 34331 5000 34332 0000 34333 0000 4635 34334 0000 SET42, 0000;0000;0030;0000;0000 34335 0000 34336 0030 34337 0000 34340 0000 4636 34341 0000 SET43, 0000;0000;0000;2000;0000 34342 0000 34343 0000 34344 2000 34345 0000 4637 34346 0000 SET44, 0000;0000;0370;3740;0000 34347 0000 34350 0370 34351 3740 34352 0000 4638 34353 0000 SET45, 0000;0000;2000;0000;0000 34354 0000 34355 2000 34356 0000 34357 0000 4639 34360 0000 SET46, 0000;0001;4000;4000;0000 34361 0001 34362 4000 34363 4000 34364 0000 4640 /WORD- AND BIT-POSITION TABLE USED BY SET-ROUTINES: 4641 4642 34365 0000 SETTABL,0;4000 34366 4000 4643 34367 0000 0;2000 34370 2000 4644 34371 0000 0;1000 34372 1000 4645 34373 0000 0;0400 34374 0400 4646 34375 0000 0;0200 34376 0200 4647 34377 0000 0;0100 34400 0100 4648 34401 0000 0;0040 34402 0040 4649 34403 0000 0;0020 34404 0020 4650 34405 0000 0;0010 34406 0010 4651 34407 0000 0;0004 34410 0004 4652 34411 0000 0;0002 34412 0002 4653 34413 0000 0;0001 34414 0001 4654 4655 34415 0001 1;4000 34416 4000 4656 34417 0001 1;2000 34420 2000 4657 34421 0001 1;1000 34422 1000 4658 34423 0001 1;0400 34424 0400 4659 34425 0001 1;0200 34426 0200 4660 34427 0001 1;0100 34430 0100 4661 34431 0001 1;0040 34432 0040 4662 34433 0001 1;0020 34434 0020 4663 34435 0001 1;0010 34436 0010 4664 34437 0001 1;0004 34440 0004 4665 34441 0001 1;0002 34442 0002 4666 34443 0001 1;0001 34444 0001 4667 4668 34445 0002 2;4000 34446 4000 4669 34447 0002 2;2000 34450 2000 4670 34451 0002 2;1000 34452 1000 4671 34453 0002 2;0400 34454 0400 4672 34455 0002 2;0200 34456 0200 4673 34457 0002 2;0100 34460 0100 4674 34461 0002 2;0040 34462 0040 4675 34463 0002 2;0020 34464 0020 4676 34465 0002 2;0010 34466 0010 4677 34467 0002 2;0004 34470 0004 4678 34471 0002 2;0002 34472 0002 4679 34473 0002 2;0001 34474 0001 4680 4681 34475 0003 3;4000 34476 4000 4682 34477 0003 3;2000 34500 2000 4683 34501 0003 3;1000 34502 1000 4684 34503 0003 3;0400 34504 0400 4685 34505 0003 3;0200 34506 0200 4686 34507 0003 3;0100 34510 0100 4687 34511 0003 3;0040 34512 0040 4688 34513 0003 3;0020 34514 0020 4689 34515 0003 3;0010 34516 0010 4690 34517 0003 3;0004 34520 0004 4691 34521 0003 3;0002 34522 0002 4692 34523 0003 3;0001 34524 0001 4693 4694 34525 0004 4;4000 34526 4000 4695 34527 0004 4;2000 34530 2000 4696 34531 0004 4;1000 34532 1000 4697 34533 0004 4;0400 34534 0400 4698 34535 0004 4;0200 34536 0200 4699 34537 0004 4;0100 34540 0100 4700 34541 0004 4;0040 34542 0040 4701 34543 0004 4;0020 34544 0020 4702 34545 0004 4;0010 34546 0010 4703 34547 0004 4;0004 34550 0004 4704 34551 0004 4;0002 34552 0002 4705 34553 0004 4;0001 34554 0001 4706 /H A S H - T A B L E OF K E Y W O R D S 4707 4708 HASHTABLE=. 4709 4710 DECIMAL /ADDRESSES SPECIFIED IN DECIMAL! 4711 4712 34555 0000 ZBLOCK 128^4 /CLEAR UNUSED LOCATIONS! 34556 0000 34557 0000 34560 0000 34561 0000 34562 0000 34563 0000 34564 0000 34565 0000 34566 0000 34567 0000 34570 0000 34571 0000 34572 0000 34573 0000 34574 0000 34575 0000 34576 0000 34577 0000 34600 0000 34601 0000 34602 0000 34603 0000 34604 0000 34605 0000 34606 0000 34607 0000 34610 0000 34611 0000 34612 0000 34613 0000 34614 0000 34615 0000 34616 0000 34617 0000 34620 0000 34621 0000 34622 0000 34623 0000 34624 0000 34625 0000 34626 0000 34627 0000 34630 0000 34631 0000 34632 0000 34633 0000 34634 0000 34635 0000 34636 0000 34637 0000 34640 0000 34641 0000 34642 0000 34643 0000 34644 0000 34645 0000 34646 0000 34647 0000 34650 0000 34651 0000 34652 0000 34653 0000 34654 0000 34655 0000 34656 0000 34657 0000 34660 0000 34661 0000 34662 0000 34663 0000 34664 0000 34665 0000 34666 0000 34667 0000 34670 0000 34671 0000 34672 0000 34673 0000 34674 0000 34675 0000 34676 0000 34677 0000 34700 0000 34701 0000 34702 0000 34703 0000 34704 0000 34705 0000 34706 0000 34707 0000 34710 0000 34711 0000 34712 0000 34713 0000 34714 0000 34715 0000 34716 0000 34717 0000 34720 0000 34721 0000 34722 0000 34723 0000 34724 0000 34725 0000 34726 0000 34727 0000 34730 0000 34731 0000 34732 0000 34733 0000 34734 0000 34735 0000 34736 0000 34737 0000 34740 0000 34741 0000 34742 0000 34743 0000 34744 0000 34745 0000 34746 0000 34747 0000 34750 0000 34751 0000 34752 0000 34753 0000 34754 0000 34755 0000 34756 0000 34757 0000 34760 0000 34761 0000 34762 0000 34763 0000 34764 0000 34765 0000 34766 0000 34767 0000 34770 0000 34771 0000 34772 0000 34773 0000 34774 0000 34775 0000 34776 0000 34777 0000 35000 0000 35001 0000 35002 0000 35003 0000 35004 0000 35005 0000 35006 0000 35007 0000 35010 0000 35011 0000 35012 0000 35013 0000 35014 0000 35015 0000 35016 0000 35017 0000 35020 0000 35021 0000 35022 0000 35023 0000 35024 0000 35025 0000 35026 0000 35027 0000 35030 0000 35031 0000 35032 0000 35033 0000 35034 0000 35035 0000 35036 0000 35037 0000 35040 0000 35041 0000 35042 0000 35043 0000 35044 0000 35045 0000 35046 0000 35047 0000 35050 0000 35051 0000 35052 0000 35053 0000 35054 0000 35055 0000 35056 0000 35057 0000 35060 0000 35061 0000 35062 0000 35063 0000 35064 0000 35065 0000 35066 0000 35067 0000 35070 0000 35071 0000 35072 0000 35073 0000 35074 0000 35075 0000 35076 0000 35077 0000 35100 0000 35101 0000 35102 0000 35103 0000 35104 0000 35105 0000 35106 0000 35107 0000 35110 0000 35111 0000 35112 0000 35113 0000 35114 0000 35115 0000 35116 0000 35117 0000 35120 0000 35121 0000 35122 0000 35123 0000 35124 0000 35125 0000 35126 0000 35127 0000 35130 0000 35131 0000 35132 0000 35133 0000 35134 0000 35135 0000 35136 0000 35137 0000 35140 0000 35141 0000 35142 0000 35143 0000 35144 0000 35145 0000 35146 0000 35147 0000 35150 0000 35151 0000 35152 0000 35153 0000 35154 0000 35155 0000 35156 0000 35157 0000 35160 0000 35161 0000 35162 0000 35163 0000 35164 0000 35165 0000 35166 0000 35167 0000 35170 0000 35171 0000 35172 0000 35173 0000 35174 0000 35175 0000 35176 0000 35177 0000 35200 0000 35201 0000 35202 0000 35203 0000 35204 0000 35205 0000 35206 0000 35207 0000 35210 0000 35211 0000 35212 0000 35213 0000 35214 0000 35215 0000 35216 0000 35217 0000 35220 0000 35221 0000 35222 0000 35223 0000 35224 0000 35225 0000 35226 0000 35227 0000 35230 0000 35231 0000 35232 0000 35233 0000 35234 0000 35235 0000 35236 0000 35237 0000 35240 0000 35241 0000 35242 0000 35243 0000 35244 0000 35245 0000 35246 0000 35247 0000 35250 0000 35251 0000 35252 0000 35253 0000 35254 0000 35255 0000 35256 0000 35257 0000 35260 0000 35261 0000 35262 0000 35263 0000 35264 0000 35265 0000 35266 0000 35267 0000 35270 0000 35271 0000 35272 0000 35273 0000 35274 0000 35275 0000 35276 0000 35277 0000 35300 0000 35301 0000 35302 0000 35303 0000 35304 0000 35305 0000 35306 0000 35307 0000 35310 0000 35311 0000 35312 0000 35313 0000 35314 0000 35315 0000 35316 0000 35317 0000 35320 0000 35321 0000 35322 0000 35323 0000 35324 0000 35325 0000 35326 0000 35327 0000 35330 0000 35331 0000 35332 0000 35333 0000 35334 0000 35335 0000 35336 0000 35337 0000 35340 0000 35341 0000 35342 0000 35343 0000 35344 0000 35345 0000 35346 0000 35347 0000 35350 0000 35351 0000 35352 0000 35353 0000 35354 0000 35355 0000 35356 0000 35357 0000 35360 0000 35361 0000 35362 0000 35363 0000 35364 0000 35365 0000 35366 0000 35367 0000 35370 0000 35371 0000 35372 0000 35373 0000 35374 0000 35375 0000 35376 0000 35377 0000 35400 0000 35401 0000 35402 0000 35403 0000 35404 0000 35405 0000 35406 0000 35407 0000 35410 0000 35411 0000 35412 0000 35413 0000 35414 0000 35415 0000 35416 0000 35417 0000 35420 0000 35421 0000 35422 0000 35423 0000 35424 0000 35425 0000 35426 0000 35427 0000 35430 0000 35431 0000 35432 0000 35433 0000 35434 0000 35435 0000 35436 0000 35437 0000 35440 0000 35441 0000 35442 0000 35443 0000 35444 0000 35445 0000 35446 0000 35447 0000 35450 0000 35451 0000 35452 0000 35453 0000 35454 0000 35455 0000 35456 0000 35457 0000 35460 0000 35461 0000 35462 0000 35463 0000 35464 0000 35465 0000 35466 0000 35467 0000 35470 0000 35471 0000 35472 0000 35473 0000 35474 0000 35475 0000 35476 0000 35477 0000 35500 0000 35501 0000 35502 0000 35503 0000 35504 0000 35505 0000 35506 0000 35507 0000 35510 0000 35511 0000 35512 0000 35513 0000 35514 0000 35515 0000 35516 0000 35517 0000 35520 0000 35521 0000 35522 0000 35523 0000 35524 0000 35525 0000 35526 0000 35527 0000 35530 0000 35531 0000 35532 0000 35533 0000 35534 0000 35535 0000 35536 0000 35537 0000 35540 0000 35541 0000 35542 0000 35543 0000 35544 0000 35545 0000 35546 0000 35547 0000 35550 0000 35551 0000 35552 0000 35553 0000 35554 0000 4713 4714 KSYTABLE=. /REMEMBER END OF HASHTABLE 4715 4716 *2^4+HASHTABLE 4717 34565 0116 TEXT /AND/ 34566 0400 4718 *5^4+HASHTABLE 4719 34601 0122 TEXT /ARRAY/ 34602 2201 34603 3100 4720 *8^4+HASHTABLE 4721 34615 0411 TEXT /DIV/ 34616 2600 4722 *9^4+HASHTABLE 4723 34621 0417 TEXT /DO/ 34622 0000 4724 *10^4+HASHTABLE 4725 34625 0516 TEXT /END/ 34626 0400 4726 *13^4+HASHTABLE 4727 34641 0617 TEXT /FOR/ 34642 2200 4728 *16^4+HASHTABLE 4729 34655 0301 TEXT /CASE/ 34656 2305 34657 0000 4730 *18^4+HASHTABLE 4731 34665 1106 TEXT /IF/ 34666 0000 4732 *19^4+HASHTABLE 4733 34671 0625 TEXT /FUNCTION/ 34672 1603 34673 2411 34674 1716 34675 0000 4734 *20^4+HASHTABLE 4735 34675 0514 TEXT /ELSE/ 34676 2305 34677 0000 4736 *22^4+HASHTABLE 4737 34705 0205 TEXT /BEGIN/ 34706 0711 34707 1600 4738 *27^4+HASHTABLE 4739 34731 1517 TEXT /MOD/ 34732 0400 4740 *29^4+HASHTABLE 4741 34741 1617 TEXT /NOT/ 34742 2400 4742 *30^4+HASHTABLE 4743 34745 1706 TEXT /OF/ 34746 0000 4744 *31^4+HASHTABLE 4745 34751 1722 TEXT /OR/ 34752 0000 4746 *37^4+HASHTABLE 4747 35001 0417 TEXT /DOWNTO/ 35002 2716 35003 2417 35004 0000 4748 *39^4+HASHTABLE 4749 35011 2022 TEXT /PROCEDUR/ 35012 1703 35013 0504 35014 2522 35015 0000 4750 *41^4+HASHTABLE 4751 35021 2417 TEXT /TO/ 35022 0000 4752 *44^4+HASHTABLE 4753 35035 2601 TEXT /VAR/ 35036 2200 4754 *45^4+HASHTABLE 4755 35041 0317 TEXT /CONST/ 35042 1623 35043 2400 4756 *46^4+HASHTABLE 4757 35045 2205 TEXT /REPEAT/ 35046 2005 35047 0124 35050 0000 4758 *47^4+HASHTABLE 4759 35051 2022 TEXT /PROGRAM/ 35052 1707 35053 2201 35054 1500 4760 *51^4+HASHTABLE 4761 35071 2431 TEXT /TYPE/ 35072 2005 35073 0000 4762 *60^4+HASHTABLE 4763 35135 2516 TEXT /UNTIL/ 35136 2411 35137 1400 4764 *66^4+HASHTABLE 4765 35165 2205 TEXT /RECORD/ 35166 0317 35167 2204 35170 0000 4766 *68^4+HASHTABLE 4767 35175 2410 TEXT /THEN/ 35176 0516 35177 0000 4768 *70^4+HASHTABLE 4769 35205 2710 TEXT /WHILE/ 35206 1114 35207 0500 4770 /S Y M B O L - V A L U E S OF K E Y W O R D S 4771 4772 *KSYTABLE 4773 35555 0000 ZBLOCK 128 /FOR SAFETY! 35556 0000 35557 0000 35560 0000 35561 0000 35562 0000 35563 0000 35564 0000 35565 0000 35566 0000 35567 0000 35570 0000 35571 0000 35572 0000 35573 0000 35574 0000 35575 0000 35576 0000 35577 0000 35600 0000 35601 0000 35602 0000 35603 0000 35604 0000 35605 0000 35606 0000 35607 0000 35610 0000 35611 0000 35612 0000 35613 0000 35614 0000 35615 0000 35616 0000 35617 0000 35620 0000 35621 0000 35622 0000 35623 0000 35624 0000 35625 0000 35626 0000 35627 0000 35630 0000 35631 0000 35632 0000 35633 0000 35634 0000 35635 0000 35636 0000 35637 0000 35640 0000 35641 0000 35642 0000 35643 0000 35644 0000 35645 0000 35646 0000 35647 0000 35650 0000 35651 0000 35652 0000 35653 0000 35654 0000 35655 0000 35656 0000 35657 0000 35660 0000 35661 0000 35662 0000 35663 0000 35664 0000 35665 0000 35666 0000 35667 0000 35670 0000 35671 0000 35672 0000 35673 0000 35674 0000 35675 0000 35676 0000 35677 0000 35700 0000 35701 0000 35702 0000 35703 0000 35704 0000 35705 0000 35706 0000 35707 0000 35710 0000 35711 0000 35712 0000 35713 0000 35714 0000 35715 0000 35716 0000 35717 0000 35720 0000 35721 0000 35722 0000 35723 0000 35724 0000 35725 0000 35726 0000 35727 0000 35730 0000 35731 0000 35732 0000 35733 0000 35734 0000 35735 0000 35736 0000 35737 0000 35740 0000 35741 0000 35742 0000 35743 0000 35744 0000 35745 0000 35746 0000 35747 0000 35750 0000 35751 0000 35752 0000 35753 0000 35754 0000 4774 PUSHTABLE=. /REMEMBER END OF KSYTABLE 4775 4776 *2+KSYTABLE 4777 35557 0013 ANDSY 4778 *5+KSYTABLE 4779 35562 0041 ARRAYSY 4780 *8+KSYTABLE 4781 35565 0010 IDIVSY 4782 *9+KSYTABLE 4783 35566 0057 DOSY 4784 *10+KSYTABLE 4785 35567 0053 ENDSY 4786 *13+KSYTABLE 4787 35572 0052 FORSY 4788 *16+KSYTABLE 4789 35575 0047 CASESY 4790 *18+KSYTABLE 4791 35577 0046 IFSYM 4792 *19+KSYTABLE 4793 35600 0037 FUNCTIONSY 4794 *20+KSYTABLE 4795 35601 0054 ELSESY 4796 *22+KSYTABLE 4797 35603 0045 BEGINSY 4798 *27+KSYTABLE 4799 35610 0012 IMODSY 4800 *29+KSYTABLE 4801 35612 0004 NOTSY 4802 *30+KSYTABLE 4803 35613 0056 OFSY 4804 *31+KSYTABLE 4805 35614 0014 ORSY 4806 *37+KSYTABLE 4807 35622 0061 DOWNTOSY 4808 *39+KSYTABLE 4809 35624 0040 PROCEDURESY 4810 *41+KSYTABLE 4811 35626 0060 TOSY 4812 *44+KSYTABLE 4813 35631 0036 VARSY 4814 *45+KSYTABLE 4815 35632 0034 CONSTSY 4816 *46+KSYTABLE 4817 35633 0050 REPTSY 4818 *47+KSYTABLE 4819 35634 0043 PROGRAMSY 4820 *51+KSYTABLE 4821 35640 0035 TYPESY 4822 *60+KSYTABLE 4823 35651 0055 UNTILSY 4824 *66+KSYTABLE 4825 35657 0042 RECRDSY 4826 *68+KSYTABLE 4827 35661 0062 THENSY 4828 *70+KSYTABLE 4829 35663 0051 WHILSY 4830 4831 4832 OCTAL 4833 /P U S H T A B L E 4834 4835 /CONTAINS THE NECESSARY INFORMATIONS (USED BY PUSHJUMP AND POPJUMP) 4836 /TO CALL THE COMPILER PROCEDURES RECURSIVELY, 4837 /TO SAVE THE LOCAL VARIABLES, TO PASS EVENTUAL PARAMETERS 4838 /AND RETURN CONTROL TO MAINLINE. 4839 / 4840 /FOR EACH PROCEDURE THERE IS ONE ENTRY OF 4 WORDS: 4841 /WORD 1: ADDRESS OF FIRST LOCAL VARIABLE (= 1ST PARAMETER) - 1 4842 /WORD 2: - NUMBER OF LOCAL VAR'S (LOCATIONS) TO SAVE 4843 /WORD 3: NUMBER OF PARAMETERS ( + FSYS IF 1ST ONE IS A SET) 4844 / ( + 100*NO. OF VAR-PARAMETERS) 4845 /WORD 4: STARTING ADDRESS OF PROCEDURE 4846 4847 *PUSHTABLE 4848 4849 /BLOCK 4850 35755 0057 ISFUN-1; -5; FSYS+2; XBLOCK 35756 7773 35757 4002 35760 6122 4851 /STATEMENT 4852 35761 0000 0; 0; FSYS; XSTATEMENT 35762 0000 35763 4000 35764 6000 4853 /ASSIGNMENT 4854 35765 4177 LV-1; -6; 2; XASSIGNMENT 35766 7772 35767 0002 35770 4206 4855 /COMPOUNDSTATEMENT 4856 35771 0000 0; 0; 0; XCOMPOUND 35772 0000 35773 0000 35774 4340 4857 /IFSTATEMENT 4858 35775 4777 IXTYP-1; -4; 0; XIFSTATEMENT 35776 7774 35777 0000 36000 5004 4859 /CASESTATEMENT 4860 36001 4463 CASETAB-1; -137; 0; XCASESTATEMENT 36002 7641 36003 0000 36004 4623 4861 /REPEATSTATEMENT 4862 36005 5061 RXTYP-1; -3; 0; XREPEAT 36006 7775 36007 0000 36010 5065 4863 /WHILESTATEMENT 4864 36011 0154 WXTYP-1; -4; 0; XWHILE 36012 7774 36013 0000 36014 5134 4865 /FORSTATEMENT 4866 36015 5177 FXTYP-1; -6; 0; XFORSTATEMENT 36016 7772 36017 0000 36020 5206 4867 /STANDPROC 4868 36021 5377 PRCN-1; -5; 1; XSTPROC 36022 7773 36023 0001 36024 5405 4869 /SELECTOR 4870 36025 1777 SELVAR-1; -5; FSYS+200+1; XSELECT 36026 7773 36027 4201 36030 2005 4871 /CALL 4872 36031 0067 CALI-1; -5; FSYS+1; XCALL 36032 7773 36033 4001 36034 2240 4873 /STANDFCT 4874 36035 2577 FCTN-1; -2; 1; XSTFUN 36036 7776 36037 0001 36040 2602 4875 /FACTOR 4876 36041 0064 FACVAR-1; -3; FSYS+200+1; XFACTOR 36042 7775 36043 4201 36044 3000 4877 /TERM 4878 36045 3377 TRMXTYP-1; -4; FSYS+1; XTERM 36046 7774 36047 4001 36050 3404 4879 /SIMPLEEXPRESSION 4880 36051 3577 SIMXTYP-1; -4; FSYS+1; XSIMPLE 36052 7774 36053 4001 36054 3604 4881 /EXPRESSION 4882 36055 3777 EXPRVAR-1; -6; FSYS+200+1; XEXPRESSION 36056 7772 36057 4201 36060 4006 4883 /CONDECLARE 4884 36061 1242 CONREC-1; 0; 0; XCONDECL 36062 0000 36063 0000 36064 1250 4885 /TYPDECLARE 4886 36065 1322 DECTP-1; 0; 0; XTYPDECL 36066 0000 36067 0000 36070 1327 4887 /VARDECLARE 4888 36071 1577 VARTP-1; 0; 0; XVARDECL 36072 0000 36073 0000 36074 1605 4889 /PRODECLARE 4890 36075 1732 PROFUN-1; -1; 0; XPRODECL 36076 7777 36077 0000 36100 1671 4891 /CONSTANT 4892 36101 0377 CCON-1; 0; FSYS+1; XCONSTANT 36102 0000 36103 4001 36104 0402 4893 /ARRAYTYP 4894 36105 0577 ARRVAR-1; -6; 200+1; XARRAYTYP 36106 7772 36107 0201 36110 0620 4895 /TYPE 4896 36111 0142 TYPVAR-1; -12; FSYS+300+1; XTYPE 36112 7766 36113 4301 36114 1000 4897 /PARAMETERLIST 4898 36115 1377 PARTP-1; 0; 0; XPARAM 36116 0000 36117 0000 36120 1405 4899 /ONECASE 4900 36121 0000 0; 0; 0; XONECASE 36122 0000 36123 0000 36124 4727 4901 /TABLE OF S P E C I A L S Y M B O L S 4902 / 4903 /ONE ENTRY FOR EACH ASCII CHARACTER: 4904 / =0 ... FOR ILLEGAL CHAR'S 4905 / >0 ... (=SYMBOL VALUE) FOR SINGLE SPECIAL CHAR'S 4906 / <0 ... (=JMP TO ROUTINE) FOR DOUBLE CHAR'S, COMMENTS OR STRINGS 4907 4908 CHARTABLE=. 4909 4910 /SPACE ! " # $ % & ' ( ) * + , - . / 4911 36125 0000 0 4912 36126 0000 0 4913 36127 5706 JMPAPOS 4914 36130 0016 NEQ 4915 36131 0000 0 4916 36132 0000 0 4917 36133 0013 ANDSY 4918 36134 0000 0 4919 36135 5266 JMPLPAR 4920 36136 0024 RPARENT 4921 36137 0007 TIMES 4922 36140 0005 PLUS 4923 36141 0027 COMMA 4924 36142 0006 MINUS 4925 36143 5257 JMPPER 4926 36144 0011 RDIVSY 4927 4928 36145 0000 ZBLOCK "9-"0+1 /DIGITS ARE PROCESSED SEPARATELY! 36146 0000 36147 0000 36150 0000 36151 0000 36152 0000 36153 0000 36154 0000 36155 0000 36156 0000 4929 4930 /: ; < = > ? @ 4931 36157 5226 JMPCOL 4932 36160 0030 SEMICOLON 4933 36161 5235 JMPLSS 4934 36162 0015 EQL 4935 36163 5250 JMPGTR 4936 36164 0000 0 4937 36165 0000 0 4938 4939 36166 0000 ZBLOCK "Z-"A+1 /LETTERS ARE PROCESSED SEPARATELY! 36167 0000 36170 0000 36171 0000 36172 0000 36173 0000 36174 0000 36175 0000 36176 0000 36177 0000 36200 0000 36201 0000 36202 0000 36203 0000 36204 0000 36205 0000 36206 0000 36207 0000 36210 0000 36211 0000 36212 0000 36213 0000 36214 0000 36215 0000 36216 0000 36217 0000 4940 4941 /[ \ ] ^ _ 4942 36220 0025 LBRACK 4943 36221 0000 0 4944 36222 0026 RBRACK 4945 36223 0000 0 4946 36224 0000 0 4947 /C O M P I L E R E R R O R S (NOT FATAL) 4948 4949 /ERROR LINE BUFFER: 4950 4951 36225 0003 ERRLINE,"#-240; "#-240; "#-240; "#-240; "#-240; 0; 0 36226 0003 36227 0003 36230 0003 36231 0003 36232 0000 36233 0000 4952 36234 0000 ZBLOCK LLNG 36235 0000 36236 0000 36237 0000 36240 0000 36241 0000 36242 0000 36243 0000 36244 0000 36245 0000 36246 0000 36247 0000 36250 0000 36251 0000 36252 0000 36253 0000 36254 0000 36255 0000 36256 0000 36257 0000 36260 0000 36261 0000 36262 0000 36263 0000 36264 0000 36265 0000 36266 0000 36267 0000 36270 0000 36271 0000 36272 0000 36273 0000 36274 0000 36275 0000 36276 0000 36277 0000 36300 0000 36301 0000 36302 0000 36303 0000 36304 0000 36305 0000 36306 0000 36307 0000 36310 0000 36311 0000 36312 0000 36313 0000 36314 0000 36315 0000 36316 0000 36317 0000 36320 0000 36321 0000 36322 0000 36323 0000 36324 0000 36325 0000 36326 0000 36327 0000 36330 0000 36331 0000 36332 0000 36333 0000 36334 0000 36335 0000 36336 0000 36337 0000 36340 0000 36341 0000 36342 0000 36343 0000 36344 0000 36345 0000 36346 0000 36347 0000 36350 0000 36351 0000 36352 0000 36353 0000 4953 4954 4955 PAGE 4956 4957 /ERROR ROUTINE: 4958 4959 36400 0000 ERRNO, 0 /ERROR NUMBER 4960 36401 0000 ERRN01, 0 /ERROR NUMBER - UNITS 4961 36402 0000 ERRN10, 0 /ERROR NUMBER - TENS 4962 36403 0000 ERRPOS, 0 /POSITION OF ERROR 4963 36404 0000 ERRP, 0 4964 36405 0000 ERRC, 0 4965 /ERRSW, 0 /IN FIELD 0 4966 /ERRSUM,0 /IN FIELD 6 4967 4968 36406 0000 F3ERROR,0 4969 36407 3200 DCA ERRNO 4970 36410 6214 RDF 4971 36411 1377 TAD (CDF CIF 4972 36412 3275 DCA ERRCDI 4973 36413 6201 CDF 0 4974 36414 1776 TAD I (CC 4975 36415 1375 TAD (ERRLINE+5 4976 36416 3203 DCA ERRPOS 4977 36417 1774 TAD I (ERRSW 4978 36420 6231 CDF SETFIELD 4979 36421 7640 SZA CLA 4980 36422 5233 JMP ERRENT 4981 36423 1375 TAD (ERRLINE+5 4982 36424 3204 DCA ERRP 4983 36425 1373 TAD (-LLNG 4984 36426 3205 DCA ERRC 4985 36427 2204 ISZ ERRP 4986 36430 3604 DCA I ERRP 4987 36431 2205 ISZ ERRC 4988 36432 5227 JMP .-3 4989 36433 1200 ERRENT, TAD ERRNO 4990 36434 3201 DCA ERRN01 4991 36435 3202 DCA ERRN10 4992 36436 5241 JMP .+3 4993 36437 3201 DCA ERRN01 4994 36440 2202 ISZ ERRN10 4995 36441 1201 TAD ERRN01 4996 36442 1372 TAD (-12 /-10 4997 36443 7500 SMA 4998 36444 5237 JMP .-5 4999 36445 7200 CLA 5000 36446 1603 TAD I ERRPOS 5001 36447 7640 SZA CLA 5002 36450 5272 JMP ERREXIT /NO ROOM! 5003 36451 1371 TAD ("#-240 5004 36452 3603 DCA I ERRPOS 5005 36453 2203 ISZ ERRPOS 5006 36454 1202 TAD ERRN10 5007 36455 7450 SNA 5008 36456 5262 JMP .+4 5009 36457 1370 TAD ("0-240 5010 36460 3603 DCA I ERRPOS 5011 36461 2203 ISZ ERRPOS 5012 36462 1201 TAD ERRN01 5013 36463 1370 TAD ("0-240 5014 36464 3603 DCA I ERRPOS 5015 36465 1203 TAD ERRPOS 5016 36466 1367 TAD (-ERRLINE 5017 36467 7040 CMA 5018 36470 6201 CDF 0 5019 36471 3774 DCA I (ERRSW 5020 36472 6261 ERREXIT,CDF ERRFIELD 5021 36473 2600 ISZ I ERRNO /REMEMBER THIS ERROR 5022 36474 2766 ISZ I (ERRSUM /COUNT ERRORS 5023 36475 6203 ERRCDI, CDF CIF 0 5024 36476 5606 JMP I F3ERROR 5025 5026 36566 0074 PAGE 36567 1553 36570 0020 36571 0003 36572 7766 36573 7660 36574 0007 36575 6232 36576 0006 36577 6203 5027 /C O M P I L E R E R R O R S (FATAL) 5028 5029 36600 0000 FATADR, 0 5030 36601 0000 FATPOS, 0 5031 5032 36602 3200 F3FATAL,DCA FATADR 5033 36603 1271 TAD FHEAD 5034 36604 3266 DCA FTEXT 5035 36605 4237 JMS FCRLF 5036 36606 4237 JMS FCRLF 5037 36607 4245 JMS FMESG 5038 36610 1267 TAD FLIST 5039 36611 3201 DCA FATPOS 5040 36612 2201 ISZ FATPOS 5041 36613 1601 TAD I FATPOS 5042 36614 1200 TAD FATADR 5043 36615 7640 SZA CLA 5044 36616 5212 JMP .-4 5045 36617 1201 TAD FATPOS 5046 36620 1270 TAD FMFL 5047 36621 3201 DCA FATPOS 5048 36622 1601 TAD I FATPOS 5049 36623 3266 DCA FTEXT 5050 36624 4245 JMS FMESG 5051 36625 4237 JMS FCRLF 5052 36626 6263 CDF CIF ERRFIELD 5053 36627 5630 JMP I .+1 5054 36630 0233 FXPLAIN 5055 5056 36631 0000 FPRINT, 0 5057 36632 6046 TLS 5058 36633 6041 TSF 5059 36634 5233 JMP .-1 5060 36635 7300 CLA CLL 5061 36636 5631 JMP I FPRINT 5062 5063 36637 0000 FCRLF, 0 5064 36640 1272 TAD F215 5065 36641 4231 JMS FPRINT 5066 36642 1273 TAD F212 5067 36643 4231 JMS FPRINT 5068 36644 5637 JMP I FCRLF 5069 5070 36645 0000 FMESG, 0 5071 36646 1666 TAD I FTEXT 5072 36647 7002 BSW 5073 36650 4255 JMS FASCII 5074 36651 1666 TAD I FTEXT 5075 36652 4255 JMS FASCII 5076 36653 2266 ISZ FTEXT 5077 36654 5246 JMP FMESG+1 5078 5079 36655 0000 FASCII, 0 5080 36656 0275 AND F77 5081 36657 7450 SNA 5082 36660 5645 JMP I FMESG 5083 36661 1274 TAD F240 5084 36662 0275 AND F77 5085 36663 1274 TAD F240 5086 36664 4231 JMS FPRINT 5087 36665 5655 JMP I FASCII 5088 5089 36666 0000 FTEXT, 0 5090 5091 36667 6675 FLIST, FATLIST-1 5092 36670 0013 FMFL, FATMESG-FATLIST 5093 36671 6724 FHEAD, FNN 5094 36672 0215 F215, 215 5095 36673 0212 F212, 212 5096 36674 0240 F240, 240 5097 36675 0077 F77, 77 5098 5099 36676 2122 FATLIST,-FATAL0-1 5100 36677 0573 -FATAL1-1 5101 36700 0477 -FATAL2-1 5102 36701 0663 -FATAL3-1 5103 36702 0453 -FATAL4-1 5104 36703 6676 -FATAL5-1 5105 36704 0713 -FATAL6-1 5106 36705 0321 -FATAL7-1 5107 36706 1350 -FATAL8-1 5108 36707 0253 -FATAL9-1 5109 36710 3353 -FATALC-1 5110 5111 36711 6742 FATMESG,F00 5112 36712 6756 F01 5113 36713 6766 F02 5114 36714 7011 F03 5115 36715 7023 F04 5116 36716 7034 F05 5117 36717 7053 F06 5118 36720 7065 F07 5119 36721 7074 F08 5120 36722 7107 F09 5121 36723 7124 F0C 5122 5123 36724 1317 FNN, TEXT /KOMPILATION ABGEBROCHEN - / 36725 1520 36726 1114 36727 0124 36730 1117 36731 1640 36732 0102 36733 0705 36734 0222 36735 1703 36736 1005 36737 1640 36740 5540 36741 0000 5124 5125 36742 1501 F00, TEXT /MAGNETBAND-LESEFEHLER!/ 36743 0716 36744 0524 36745 0201 36746 1604 36747 5514 36750 0523 36751 0506 36752 0510 36753 1405 36754 2241 36755 0000 5126 36756 3225 F01, TEXT /ZU VIELE NAMEN!/ 36757 4026 36760 1105 36761 1405 36762 4016 36763 0115 36764 0516 36765 4100 5127 36766 3225 F02, TEXT /ZU VIELE PROZEDUREN UND\ODER RECORDS!/ 36767 4026 36770 1105 36771 1405 36772 4020 36773 2217 36774 3205 36775 0425 36776 2205 36777 1640 37000 2516 37001 0434 37002 1704 37003 0522 37004 4022 37005 0503 37006 1722 37007 0423 37010 4100 5128 37011 3225 F03, TEXT /ZU VIELE KONSTANTE!/ 37012 4026 37013 1105 37014 1405 37015 4013 37016 1716 37017 2324 37020 0116 37021 2405 37022 4100 5129 37023 3225 F04, TEXT /ZU VIELE ARRAYS!/ 37024 4026 37025 1105 37026 1405 37027 4001 37030 2222 37031 0131 37032 2341 37033 0000 5130 37034 3225 F05, TEXT /ZU VIELE UNTERPROGRAMMEBENEN!/ 37035 4026 37036 1105 37037 1405 37040 4025 37041 1624 37042 0522 37043 2022 37044 1707 37045 2201 37046 1515 37047 0502 37050 0516 37051 0516 37052 4100 5131 37053 2022 F06, TEXT /PROGRAMM ZU GROSS!/ 37054 1707 37055 2201 37056 1515 37057 4032 37060 2540 37061 0722 37062 1723 37063 2341 37064 0000 5132 37065 3225 F07, TEXT /ZU VIEL TEXT!/ 37066 4026 37067 1105 37070 1440 37071 2405 37072 3024 37073 4100 5133 37074 2022 F08, TEXT /PROGRAMM ZU KOMPLEX!/ 37075 1707 37076 2201 37077 1515 37100 4032 37101 2540 37102 1317 37103 1520 37104 1405 37105 3041 37106 0000 5134 37107 2022 F09, TEXT /PROGRAMM UNVOLLSTAENDIG!/ 37110 1707 37111 2201 37112 1515 37113 4025 37114 1626 37115 1714 37116 1423 37117 2401 37120 0516 37121 0411 37122 0741 37123 0000 5135 37124 3225 F0C, TEXT /ZU VIELE CASE-MARKEN!/ 37125 4026 37126 1105 37127 1405 37130 4003 37131 0123 37132 0555 37133 1501 37134 2213 37135 0516 37136 4100 5136 5137 PAGE 5138 FIELD 4 5139 5140 /P A G E Z E R O 5141 5142 /LOC'S 1 - 7 USED FOR TEMPORARY STORAGE! 5143 *7 5144 40007 0000 L, 0 5145 *10 5146 /XR10, /AUTOINDEX REGISTER (SEE FIELD 0!) 5147 40010 0000 0 5148 40011 0000 XR11, 0 / --- " --- 5149 40012 0000 XR12, 0 5150 5151 *20 5152 40020 0000 LC, 0 /L O C A T I O N C O U N T E R 5153 40021 0000 TEMP, 0 5154 /I N S T R U C T I O N - R E G I S T E R 5155 /IRX, 5156 40022 0000 0 /LEVEL 5157 /IRY, 5158 40023 0000 0 /ADDRESS OR VALUE 5159 5160 /I N D I C E S T O T A B L E S 5161 /B, /BLOCK TABLE 5162 40024 0001 0001 5163 /T, /SYMBOL TABLE 5164 40025 0037 0037 5165 A, /ARRAY TABLE 5166 40026 0000 0 5167 C, /CONSTANT TABLE 5168 40027 6377 ATAB-1 5169 SX, /STRING TABLE 5170 40030 0000 0 5171 40031 0000 J, 0 /TEMPORARY FOR T 5172 40032 0000 JA, 0 /TEMPORARY FOR A 5173 40033 0000 JB, 0 /TEMPORARY FOR B 5174 5175 40034 0000 LO, 0 /LOW BOUND OF ARRAY 5176 40035 0000 HI, 0 /HIGH BOUND OF ARRAY 5177 40036 0000 SLENG, 0 /LENGTH OF STRING 5178 5179 40037 0000 SY, 0 /C U R R E N T S Y M B O L 5180 5181 40040 0000 ID, 0;0;0;0 /C U R R E N T I D E N T I F I E R 40041 0000 40042 0000 40043 0000 5182 40044 0000 NUM, 0;0;0;0 /C O N S T A N T N U M B E R 40045 0000 40046 0000 40047 0000 5183 5184 *50 /U N P A C K E D E N T R Y OF SYMBOL TABLE 5185 40050 0000 LINK0, 0 5186 40051 0000 OBJ0, 0 5187 40052 0000 TYP0, 0 5188 40053 0000 REF0, 0 5189 40054 0000 NORM0, 0 5190 40055 0000 LEV0, 0 5191 40056 0000 ADR0, 0 5192 5193 40057 0000 JW, 0 /ADDRESS OF ENTRY (REMEMBERED FOR 'WITHEND') 5194 5195 *50 /U N P A C K E D E N T R Y OF ARRAY TABLE 5196 40050 0000 INXTP0, 0 5197 40051 0000 ELTYP0, 0 5198 40052 0000 ELREF0, 0 5199 40053 0000 LOW0, 0 5200 40054 0000 HIGH0, 0 5201 40055 0000 ELSIZ0, 0 5202 40056 0000 SIZE0, 0 5203 5204 40057 0000 JAW, 0 /ADDRESS OF ENTRY (REMEMBERED FOR 'WITHAEND') 5205 5206 /LOCAL VAR'S OF PROCEDURE B L O C K 5207 40060 0000 ISFUN, 0 5208 40061 0000 LEVEL, 0 5209 40062 0000 DX, 0 5210 40063 0000 PRT, 0 5211 40064 0000 PRB, 0 5212 5213 /LOCAL VAR'S OF PROCEDURE F A C T O R 5214 40065 0000 FACVAR, 0 5215 40066 0000 FACXTYP,0 5216 40067 0000 FACXREF,0 5217 5218 /LOCAL VAR'S OF PROCEDURE C A L L 5219 40070 0000 CALI, 0 5220 40071 0000 CALXTYP,0 5221 40072 0000 CALXREF,0 5222 40073 0000 CALASTP,0 5223 40074 0000 CALCP, 0 5224 5225 /LOCAL VAR'S OF P U S H J U M P AND P O P J U M P 5226 40075 0000 LOCAL, 0 5227 40076 0000 LENGTH, 0 5228 40077 0000 PARAM, 0 5229 5230 /M A C R O I N S T R U C T I O N S USED BY COMPILER 5231 5232 *100 5233 /ERROR=JMS I . /PARALLEL DEFINED WITH FIELD 0! 5234 40100 7545 XERROR 5235 /FATAL=JMS I . / -"- 5236 40101 7553 XFATAL 5237 /OFTAB=JMS I . / -"- 5238 40102 6616 XOFTAB 5239 /OFATAB=JMS I . / -"- 5240 40103 6645 XOFATAB 5241 /OFBTAB=JMS I . / -"- 5242 40104 6670 XOFBTAB 5243 /OFDISPLAY=JMS I . / -"- 5244 40105 6600 XOFDISP 5245 /TODISPLAY=JMS I . / -"- 5246 40106 6606 XTODISP 5247 /GETCONSTANT=JMS I . / -"- 5248 40107 7530 XOFCONST 5249 TOTAB=JMS I . /PUT INFO INTO SYMBOL TABLE 5250 40110 6631 XTOTAB 5251 TOATAB=JMS I . /PUT INFO INTO ARRAY TABLE 5252 40111 6661 XTOATAB 5253 TOBTAB=JMS I . /PUT INFO INTO BLOCK TABLE 5254 40112 6703 XTOBTAB 5255 WITHTABDO=JMS I . /GET AND UNPACK ENTRY OF SYMBOL TABLE 5256 40113 6711 XWITHTAB 5257 ENDWITH=JMS I . /PACK AND STORE ENTRY OF SYMBOL TABLE 5258 40114 6754 XENDWITH 5259 WITHATABDO=JMS I . /GET AND UNPACK ENTRY OF ARRAY TABLE 5260 40115 7000 XWITHATAB 5261 ENDAWITH=JMS I . /PACK AND STORE ENTRY OF ARRAY TABLE 5262 40116 7024 XENDAWITH 5263 TOCODE=JMS I . /INSERT ADDRESS INTO CODE[LC].IRY 5264 40117 7070 XTOCODE 5265 EMIT=JMS I . /OUTPUT INSTRUCTION OF INTERMEDIATE CODE 5266 40120 7043 XEMIT 5267 ENTER=JMS I . /ENTER ITEM INTO SYMBOL TABLE 5268 40121 7200 XENTER 5269 ENTERVARIABLE=JMS I . /ENTER VARIABLE INTO SYMBOL TABLE 5270 40122 7261 XENTVAR 5271 ENTERARRAY=JMS I . /INTO ARRAY TABLE 5272 40123 7311 XENTARR 5273 ENTERBLOCK=JMS I . /INTO BLOCK TABLE 5274 40124 7274 XENTBLO 5275 ENTERCONSTANT=JMS I . /INTO CONSTANT TABLE 5276 40125 7100 XENTCON 5277 SIGNEDINTEGER=JMS I . /MAKE SIGNED 12-BIT INTEGER OF (NUM) 5278 40126 7342 XSGNINT 5279 TEST=JMS I . /CHECK AND SKIP TO LEGAL FOLLOW SYMBOL 5280 40127 7636 XTEST 5281 TESTSEMICOLON=JMS I . 5282 40130 7600 XTSTSEM 5283 SKIP=JMS I . /SKIP TO LEGAL FOLLOW SYMBOL 5284 40131 7617 XSKIP 5285 SKIPIFSYIN=JMS I . /SKIP NEXT INSTR. IF SY IN SETX 5286 40132 7703 INSET 5287 UNION=JMS I . /SET UNION 5288 40133 7744 XUNION 5289 IFSY=JMS I . /IF SY=SYMBOL THEN NEXT INSTR. ELSE SKIP 5290 40134 7724 XIFSY 5291 IFSYNOT=JMS I . /IF SY<>SYMBOL THEN NEXT INSTR. ELSE SKIP 5292 40135 7734 XIFSYNOT 5293 LOCATE=JMS I . /LOCATE IDENTIFIER IN SYMBOL TABLE 5294 40136 7420 XLOCATE 5295 PUSHJUMP=JMS I . /RECURSIVE PROCEDURE CALL 5296 40137 6440 XPUSHJUMP 5297 POPJUMP=JMS I . /RETURN FROM PROCEDURE 5298 40140 6526 XPOPJUMP 5299 RESULTTYPE=JMS I . 5300 40141 2200 XRESULT 5301 INSYMBOL=JMS I . /SCANNER 5302 40142 7557 XINSYMBOL 5303 5304 /LOCAL VAR'S OF PROCEDURE T Y P E 5305 40143 0000 TYPVAR, 0 5306 40144 0000 TP, 0 5307 40145 0000 RF, 0 5308 40146 0000 SZ, 0 5309 40147 0000 ELTP, 0 5310 40150 0000 ELRF, 0 5311 40151 0000 ELSZ, 0 5312 40152 0000 OFFSET, 0 5313 40153 0000 TT0, 0 5314 40154 0000 TT1, 0 5315 5316 /LOCAL VAR'S OF PROCEDURE W H I L E - STATEMENT 5317 40155 0000 WXTYP, 0 5318 40156 0000 WXREF, 0 5319 40157 0000 WLC1, 0 5320 40160 0000 WLC2, 0 5321 /M A I N P R O G R A M OF COMPILER 5322 5323 *200 5324 40200 4542 MAIN, INSYMBOL 5325 40201 4535 IFSYNOT;PROGRAMSY;JMP MAIN3 40202 0043 40203 5273 5326 40204 4542 INSYMBOL 5327 40205 4535 IFSYNOT;IDENT;JMP MAIN2 40206 0044 40207 5270 5328 40210 4542 INSYMBOL 5329 40211 4534 IFSY;LPARENT;JMP .+4 40212 0023 40213 5217 5330 40214 4500 ERROR;11 /9 40215 0011 5331 40216 5232 JMP ENDOFH 5332 40217 4542 IOFILES,INSYMBOL 5333 40220 4534 IFSY;IDENT;JMP .+4 40221 0044 40222 5226 5334 40223 4500 ERROR;2 /2 40224 0002 5335 40225 7410 SKP 5336 40226 4542 INSYMBOL 5337 40227 4534 IFSY;COMMA;JMP IOFILES 40230 0027 40231 5217 5338 40232 4534 ENDOFH, IFSY;RPARENT;JMP .+4 40233 0024 40234 5240 5339 40235 4500 ERROR;4 /4 40236 0004 5340 40237 7410 SKP 5341 40240 4542 INSYMBOL 5342 40241 1377 MAINBL, TAD (BTAB+3 5343 40242 3010 DCA XR10 5344 40243 6221 CDF TABLEFIELD 5345 40244 1025 TAD T 5346 40245 3410 DCA I XR10 5347 40246 7301 L0001 5348 40247 3410 DCA I XR10 5349 40250 3410 DCA I XR10 5350 40251 3410 DCA I XR10 5351 40252 6241 CDF COMPFIELD 5352 40253 4537 PUSHJUMP;BLOCK 40254 0000 5353 40255 4346 SET44 5354 40256 0000 0 /FALSE 5355 40257 0001 1 5356 5357 40260 4535 IFSYNOT;PERIOD;ERROR;26 /22 40261 0031 40262 4500 40263 0026 5358 40264 4520 EMIT;45 /(37) 40265 0045 5359 40266 6263 CDF CIF ERRFIELD 5360 40267 5776 JMP I (EXPLAIN /DO THE COMPILATION REPORT 5361 5362 40270 4500 MAIN2, ERROR;2 /2 40271 0002 5363 40272 5241 JMP MAINBL 5364 5365 40273 4500 MAIN3, ERROR;3 /3 40274 0003 5366 40275 5241 JMP MAINBL 5367 /EXTENSION OF P U S H J U M P AND P O P J U M P ROUTINES 5368 5369 40276 0000 VARIN, 0 5370 40277 1077 TAD PARAM 5371 40300 0375 AND (700 5372 40301 7450 SNA 5373 40302 5676 JMP I VARIN 5374 40303 7002 BSW 5375 40304 7041 CIA 5376 40305 3076 DCA LENGTH 5377 40306 2075 ISZ LOCAL 5378 40307 7340 L7777 5379 40310 1475 TAD I LOCAL 5380 40311 3011 DCA XR11 5381 40312 1411 TAD I XR11 5382 40313 3410 DCA I XR10 5383 40314 2076 ISZ LENGTH 5384 40315 5312 JMP .-3 5385 40316 5676 JMP I VARIN 5386 5387 40317 0000 VARTM, 0 5388 40320 3357 DCA VARVAR 5389 40321 1077 TAD PARAM 5390 40322 0375 AND (700 5391 40323 7450 SNA 5392 40324 5717 JMP I VARTM 5393 40325 7002 BSW 5394 40326 7041 CIA 5395 40327 3276 DCA VARIN 5396 40330 1276 TAD VARIN 5397 40331 3357 DCA VARVAR 5398 40332 1075 TAD LOCAL 5399 40333 3010 DCA XR10 5400 40334 7340 L7777 5401 40335 1410 TAD I XR10 5402 40336 3011 DCA XR11 5403 40337 3012 DCA XR12 /USE LOC'S 1 - 7 FOR TEMP. STORAGE 5404 40340 1410 TAD I XR10 5405 40341 3412 DCA I XR12 5406 40342 2276 ISZ VARIN 5407 40343 5340 JMP .-3 5408 40344 5717 JMP I VARTM 5409 5410 40345 0000 VAREX, 0 5411 40346 1357 TAD VARVAR 5412 40347 7650 SNA CLA 5413 40350 5745 JMP I VAREX 5414 40351 3010 DCA XR10 5415 40352 1410 TAD I XR10 5416 40353 3411 DCA I XR11 5417 40354 2357 ISZ VARVAR 5418 40355 5352 JMP .-3 5419 40356 5745 JMP I VAREX 5420 5421 40357 0000 VARVAR, 0 5422 5423 40375 0700 PAGE 40376 0200 40377 7403 5424 /PROCEDURE C O N S T A N T 5425 / --------------- 5426 / 5427 /CALL: PUSHJUMP;CONSTANT 5428 / SETX 5429 / C /ADDRESS 5430 / 5431 /LOCAL VAR'S: FSYS 5432 40400 0000 CCON, 0 5433 40401 0000 SIGN, 0 5434 5435 40402 3600 XCONSTANT, DCA I CCON 5436 40403 1200 TAD CCON 5437 40404 3010 DCA XR10 5438 40405 3410 DCA I XR10 5439 40406 3410 DCA I XR10 5440 40407 3410 DCA I XR10 5441 40410 3410 DCA I XR10 5442 40411 4527 TEST;CONBGS;FSYS;62 /50 40412 4017 40413 4000 40414 0062 5443 40415 4532 SKIPIFSYIN;CONBGS 40416 4017 5444 40417 5343 JMP CON6 5445 40420 4535 IFSYNOT;CHARCON;JMP .+4 40421 0002 40422 5226 5446 40423 7307 L0004 /4=CHARS 5447 40424 3600 DCA I CCON 5448 40425 5324 JMP CON4 5449 40426 3201 DCA SIGN /+ 5450 40427 4532 SKIPIFSYIN;SET8 40430 4062 5451 40431 5237 JMP CON1 5452 40432 4534 IFSY;MINUS;L4000 40433 0006 40434 7330 5453 40435 3201 DCA SIGN 5454 40436 4542 INSYMBOL 5455 40437 4535 CON1, IFSYNOT;IDENT;JMP CON2 40440 0044 40441 5304 5456 40442 4536 LOCATE 5457 40443 7450 SNA 5458 40444 5336 JMP CON5-1 5459 40445 3031 DCA J 5460 40446 4502 OFTAB;OBJ 40447 0001 5461 40450 7421 MQL 5462 40451 7501 MQA 5463 40452 7002 BSW 5464 40453 0177 AND [77 5465 40454 1377 TAD (-KONSTANT 5466 40455 7650 SNA CLA 5467 40456 5262 JMP .+4 5468 40457 4500 ERROR;31 /25 40460 0031 5469 40461 5336 JMP CON5-1 5470 40462 7501 MQA 5471 40463 0177 AND [77 5472 40464 3600 DCA I CCON 5473 40465 4502 OFTAB;ADR 40466 0003 5474 40467 3047 DCA NUM+3 5475 40470 3046 DCA NUM+2 5476 40471 3045 DCA NUM+1 5477 40472 3044 DCA NUM 5478 40473 7344 L7776 /2=REALS 5479 40474 1600 TAD I CCON 5480 40475 7440 SZA 5481 40476 7001 IAC /1=INTS 5482 40477 7640 SZA CLA 5483 40500 5321 JMP CON3 5484 40501 1047 TAD NUM+3 5485 40502 4507 GETCONSTANT 5486 40503 5321 JMP CON3 5487 40504 4534 CON2, IFSY;INTCON;JMP CON3-2 40505 0000 40506 5317 5488 40507 4534 IFSY;REALCON;JMP CON3-3 40510 0001 40511 5316 5489 40512 4531 SKIP;FSYS;62 /50 40513 4000 40514 0062 5490 40515 5337 JMP CON5 5491 5492 40516 7301 L0001 5493 40517 7001 IAC 5494 40520 3600 DCA I CCON 5495 40521 1201 CON3, TAD SIGN 5496 40522 1045 TAD NUM+1 5497 40523 3045 DCA NUM+1 5498 40524 1200 CON4, TAD CCON 5499 40525 3010 DCA XR10 5500 40526 1044 TAD NUM 5501 40527 3410 DCA I XR10 5502 40530 1045 TAD NUM+1 5503 40531 3410 DCA I XR10 5504 40532 1046 TAD NUM+2 5505 40533 3410 DCA I XR10 5506 40534 1047 TAD NUM+3 5507 40535 3410 DCA I XR10 5508 5509 40536 4542 INSYMBOL 5510 40537 4527 CON5, TEST;FSYS;SET0;6 /6 40540 4000 40541 4012 40542 0006 5511 40543 4540 CON6, POPJUMP;CONSTANT 40544 0025 5512 5513 40577 0000 PAGE 5514 /PROCEDURE A R R A Y T Y P 5515 / --------------- 5516 / 5517 /CALL: PUSHJUMP;ARRAYTYP 5518 / REF /ADDRESS 5519 / SIZE /ADDRESS 5520 / 5521 /LOCAL VAR'S: 5522 40600 0000 ARRVAR, 0 5523 40601 0000 AREF, 0 5524 40602 0000 ARSZ, 0 5525 40603 0000 ALTP, 0 5526 40604 0000 ALRF, 0 5527 40605 0000 ALSZ, 0 5528 5529 40606 0000 LOWB, ZBLOCK 5 40607 0000 40610 0000 40611 0000 40612 0000 5530 40613 0000 HIGHB, ZBLOCK 5 40614 0000 40615 0000 40616 0000 40617 0000 5531 MULT=HIGHB 5532 5533 XARRAYTYP, 5534 40620 4537 PUSHJUMP;CONSTANT 40621 0025 5535 40622 0067 FSYS+SET9 5536 40623 0606 LOWB 5537 40624 7344 L7776 /2=REALS 5538 40625 1206 TAD LOWB 5539 40626 7640 SZA CLA 5540 40627 5240 JMP ARR1 5541 40630 4500 ERROR;33 /27 40631 0033 5542 40632 7301 L0001 /1=INTS 5543 40633 3206 DCA LOWB 5544 40634 3207 DCA LOWB+1 5545 40635 3210 DCA LOWB+2 5546 40636 3211 DCA LOWB+3 5547 40637 3212 DCA LOWB+4 5548 40640 4534 ARR1, IFSY;COLON;JMP .+4 40641 0032 40642 5246 5549 40643 4500 ERROR;15 /13 40644 0015 5550 40645 7410 SKP 5551 40646 4542 INSYMBOL 5552 40647 4537 PUSHJUMP;CONSTANT 40650 0025 5553 40651 0074 FSYS+SET10 5554 40652 0613 HIGHB 5555 40653 1213 TAD HIGHB 5556 40654 7041 CIA 5557 40655 1206 TAD LOWB 5558 40656 7650 SNA CLA 5559 40657 5272 JMP ARR2 5560 40660 4500 ERROR;33 /27 40661 0033 5561 40662 1207 TAD LOWB+1 5562 40663 3214 DCA HIGHB+1 5563 40664 1210 TAD LOWB+2 5564 40665 3215 DCA HIGHB+2 5565 40666 1211 TAD LOWB+3 5566 40667 3216 DCA HIGHB+3 5567 40670 1212 TAD LOWB+4 5568 40671 3217 DCA HIGHB+4 5569 40672 4526 ARR2, SIGNEDINTEGER;LOWB 40673 0606 5570 40674 3034 DCA LO 5571 40675 4526 SIGNEDINTEGER;HIGHB 40676 0613 5572 40677 3035 DCA HI 5573 40700 1206 TAD LOWB 5574 40701 4523 ENTERARRAY 5575 40702 1026 TAD A 5576 40703 3201 DCA AREF 5577 40704 4535 IFSYNOT;COMMA;JMP ARR3 40705 0027 40706 5316 5578 40707 4542 INSYMBOL 5579 40710 1176 TAD [ARRAY 5580 40711 3203 DCA ALTP 5581 40712 4537 PUSHJUMP;ARRAYTYP 40713 0026 5582 40714 0604 ALRF 5583 /ALSZ 5584 40715 5341 JMP ARR4 5585 40716 4534 ARR3, IFSY;RBRACK;JMP .+5 40717 0026 40720 5325 5586 40721 4500 ERROR;14 /12 40722 0014 5587 40723 4534 IFSY;RPARENT;INSYMBOL 40724 0024 40725 4542 5588 40726 4534 IFSY;OFSY;JMP .+4 40727 0056 40730 5334 5589 40731 4500 ERROR;10 /8 40732 0010 5590 40733 7410 SKP 5591 40734 4542 INSYMBOL 5592 40735 4537 PUSHJUMP;TYPE 40736 0027 5593 40737 4000 FSYS 5594 40740 0603 ALTP 5595 /ALRF 5596 /ALSZ 5597 40741 1201 ARR4, TAD AREF 5598 40742 3032 DCA JA 5599 40743 4515 WITHATABDO 5600 40744 1053 TAD LOW0 5601 40745 7041 CIA 5602 40746 1054 TAD HIGH0 5603 40747 7001 IAC 5604 40750 3021 DCA TEMP 5605 40751 1205 TAD ALSZ 5606 40752 7041 CIA 5607 40753 3213 DCA MULT 5608 40754 1021 TAD TEMP 5609 40755 2213 ISZ MULT 5610 40756 5354 JMP .-2 5611 40757 3202 DCA ARSZ 5612 40760 1202 TAD ARSZ 5613 40761 3056 DCA SIZE0 5614 40762 1203 TAD ALTP 5615 40763 3051 DCA ELTYP0 5616 40764 1204 TAD ALRF 5617 40765 3052 DCA ELREF0 5618 40766 1205 TAD ALSZ 5619 40767 3055 DCA ELSIZ0 5620 40770 4516 ENDAWITH 5621 40771 4540 POPJUMP;ARRAYTYP 40772 0026 5622 5623 PAGE 5624 /PROCEDURE T Y P E 5625 / ------- 5626 / 5627 /CALL: PUSHJUMP;TYPE 5628 / SETX 5629 / TYP /ADDRESS 5630 / REF / --"-- 5631 / SIZE / --"-- 5632 / 5633 /LOCAL VAR'S (ON PAGE ZERO!): 5634 / FSYS 5635 / TYPVAR, 0 5636 / TP, 0 5637 / RF, 0 5638 / SZ, 0 5639 / ELTP, 0 5640 / ELRF, 0 5641 / ELSZ, 0 5642 / OFFSET, 0 5643 / TT0, 0 5644 / TT1, 0 5645 5646 41000 3144 XTYPE, DCA TP /0=NOTYP 5647 41001 3145 DCA RF 5648 41002 3146 DCA SZ 5649 41003 4527 TEST;TYPBGS;FSYS;12 /10 41004 4024 41005 4000 41006 0012 5650 41007 4532 SKIPIFSYIN;TYPBGS 41010 4024 5651 41011 4540 POPJUMP;TYPE 41012 0027 5652 41013 4535 IFSYNOT;IDENT;JMP TYP1 41014 0044 41015 5246 5653 41016 4536 LOCATE 5654 41017 7450 SNA 5655 41020 5244 JMP TYP1-2 5656 41021 3031 DCA J 5657 41022 4513 WITHTABDO 5658 41023 1051 TAD OBJ0 5659 41024 1175 TAD [-TYPE1 5660 41025 7650 SNA CLA 5661 41026 5232 JMP .+4 5662 41027 4500 ERROR;35 /29 41030 0035 5663 41031 5244 JMP TYP1-2 5664 41032 1052 TAD TYP0 5665 41033 3144 DCA TP 5666 41034 1053 TAD REF0 5667 41035 3145 DCA RF 5668 41036 1056 TAD ADR0 5669 41037 3146 DCA SZ 5670 41040 1052 TAD TYP0 5671 41041 7650 SNA CLA 5672 41042 4500 ERROR;36 /30 41043 0036 5673 41044 4542 INSYMBOL 5674 JMP TYP7 off page ^ 41045 5777 5675 41046 4535 TYP1, IFSYNOT;ARRAYSY;JMP TYP2 41047 0041 41050 5270 5676 41051 4542 INSYMBOL 5677 41052 4534 IFSY;LBRACK;JMP .+5 41053 0025 41054 5261 5678 41055 4500 ERROR;13 /11 41056 0013 5679 41057 4534 IFSY;LPARENT;INSYMBOL 41060 0023 41061 4542 5680 41062 1176 TAD [ARRAY 5681 41063 3144 DCA TP 5682 41064 4537 PUSHJUMP;ARRAYTYP 41065 0026 5683 41066 0145 RF 5684 /SZ 5685 JMP TYP7 off page ^ 41067 5777 5686 41070 4542 TYP2, INSYMBOL 5687 41071 4524 ENTERBLOCK 5688 41072 7327 L0006 /6=RECORD 5689 41073 3144 DCA TP 5690 41074 1024 TAD B 5691 41075 3145 DCA RF 5692 41076 1061 TAD LEVEL 5693 41077 1174 TAD [-LMAX 5694 41100 7650 SNA CLA 5695 41101 4501 FATAL5, FATAL 5696 41102 2061 ISZ LEVEL 5697 41103 1024 TAD B 5698 41104 4506 TODISPLAY 5699 41105 3152 DCA OFFSET 5700 41106 4532 TYP3, SKIPIFSYIN;SET46;JMP TYP6 41107 4360 off page ^ 41110 5776 5701 41111 4535 IFSYNOT;IDENT;JMP TYP5 41112 0044 off page ^ 41113 5775 5702 41114 1025 TAD T 5703 41115 3153 DCA TT0 5704 41116 7410 SKP 5705 41117 4542 INSYMBOL 5706 41120 4522 ENTERVARIABLE 5707 41121 4534 IFSY;COMMA;JMP .-4 41122 0027 41123 5317 5708 41124 4534 IFSY;COLON;JMP .+4 41125 0032 41126 5332 5709 41127 4500 ERROR;5 /5 41130 0005 5710 41131 7410 SKP 5711 41132 4542 INSYMBOL 5712 41133 1025 TAD T 5713 41134 3154 DCA TT1 5714 41135 4537 PUSHJUMP;TYPE 41136 0027 5715 41137 0101 FSYS+SET11 5716 41140 0147 ELTP 5717 /ELRF 5718 /ELSZ 5719 41141 1153 TYP4, TAD TT0 5720 41142 7041 CIA 5721 41143 1154 TAD TT1 5722 41144 7750 SPA SNA CLA 5723 JMP TYP5 off page ^ 41145 5775 5724 41146 2153 ISZ TT0 5725 41147 1153 TAD TT0 5726 41150 4513 WITHTABDO 5727 41151 1147 TAD ELTP 5728 41152 3052 DCA TYP0 5729 41153 1150 TAD ELRF 5730 41154 3053 DCA REF0 5731 41155 1173 TAD [40 5732 41156 3054 DCA NORM0 5733 41157 1152 TAD OFFSET 5734 41160 3056 DCA ADR0 5735 41161 1152 TAD OFFSET 5736 41162 1151 TAD ELSZ 5737 41163 3152 DCA OFFSET 5738 41164 4514 ENDWITH 5739 41165 5341 JMP TYP4 5740 5741 41175 1200 PAGE 41176 1220 41177 1235 5742 5743 41200 4534 TYP5, IFSY;ENDSY;JMP TYP6 41201 0053 41202 5220 5744 41203 4534 IFSY;SEMICOLON;JMP .+5 41204 0030 41205 5212 5745 41206 4500 ERROR;16 /14 41207 0016 5746 41210 4534 IFSY;COMMA;INSYMBOL 41211 0027 41212 4542 5747 41213 4527 TEST;SET12;FSYS;6 /6 41214 4106 41215 4000 41216 0006 5748 JMP TYP3 off page ^ 41217 5777 5749 41220 1145 TYP6, TAD RF 5750 41221 3033 DCA JB 5751 41222 1152 TAD OFFSET 5752 41223 4512 TOBTAB;VSIZE 41224 7403 5753 41225 1152 TAD OFFSET 5754 41226 3146 DCA SZ 5755 41227 4512 TOBTAB;PSIZE 41230 7402 5756 41231 4542 INSYMBOL 5757 41232 7340 L7777 5758 41233 1061 TAD LEVEL 5759 41234 3061 DCA LEVEL 5760 41235 4527 TYP7, TEST;FSYS;SET0;6 /6 41236 4000 41237 4012 41240 0006 5761 41241 4540 POPJUMP;TYPE 41242 0027 5762 /PROCEDURE C O N D E C L 5763 / ------------- 5764 / 5765 /CALL: PUSHJUMP;CONDECL /NO ARG'S! 5766 / 5767 /LOCAL VAR'S: 5768 41243 0000 CONREC, ZBLOCK 5 41244 0000 41245 0000 41246 0000 41247 0000 5769 5770 41250 4542 XCONDECL, INSYMBOL 5771 41251 4527 TEST;SET18;BLOBGS;2 /2 41252 4144 41253 4031 41254 0002 5772 41255 4535 CDEC1, IFSYNOT;IDENT;POPJUMP;CONDECL 41256 0044 41257 4540 41260 0021 5773 41261 4521 ENTER;KONSTANT 41262 0000 5774 41263 4542 INSYMBOL 5775 41264 4534 IFSY;EQL;JMP .+5 41265 0015 41266 5273 5776 41267 4500 ERROR;20 /16 41270 0020 5777 41271 4534 IFSY;BECOMES;INSYMBOL 41272 0033 41273 4542 5778 41274 4537 PUSHJUMP;CONSTANT 41275 0025 5779 41276 0151 FSYS+SET19 5780 41277 1243 CONREC 5781 5782 41300 1025 TAD T 5783 41301 4513 WITHTABDO 5784 41302 1243 TAD CONREC /TYP 5785 41303 3052 DCA TYP0 5786 41304 3053 DCA REF0 5787 41305 7344 L7776 5788 41306 1243 TAD CONREC 5789 41307 7440 SZA 5790 41310 7001 IAC 5791 41311 7640 SZA CLA 5792 41312 5316 JMP .+4 5793 41313 4525 ENTERCONSTANT;CONREC 41314 1243 5794 41315 7410 SKP 5795 41316 1247 TAD CONREC+4 5796 41317 3056 DCA ADR0 5797 41320 4514 ENDWITH 5798 41321 4530 TESTSEMICOLON 5799 41322 5255 JMP CDEC1 5800 /PROCEDURE T Y P D E C L 5801 / ------------- 5802 / 5803 /CALL: PUSHJUMP;TYPDECL /NO ARG'S! 5804 / 5805 /LOCAL VAR'S: 5806 41323 0000 DECTP, 0 5807 41324 0000 DECRF, 0 5808 41325 0000 DECSZ, 0 5809 41326 0000 DT1, 0 5810 5811 41327 4542 XTYPDECL, INSYMBOL 5812 41330 4527 TEST;SET18;BLOBGS;2 /2 41331 4144 41332 4031 41333 0002 5813 41334 4535 TDEC1, IFSYNOT;IDENT;POPJUMP;TYPDECL 41335 0044 41336 4540 41337 0022 5814 41340 4521 ENTER;TYPE1 41341 0002 5815 41342 1025 TAD T 5816 41343 3326 DCA DT1 5817 41344 4542 INSYMBOL 5818 41345 4534 IFSY;EQL;JMP .+5 41346 0015 41347 5354 5819 41350 4500 ERROR;20 /16 41351 0020 5820 41352 4534 IFSY;BECOMES;INSYMBOL 41353 0033 41354 4542 5821 41355 4537 PUSHJUMP;TYPE 41356 0027 5822 41357 0151 FSYS+SET19 5823 41360 1323 DECTP 5824 /DECRF 5825 /DECSZ 5826 5827 41361 1326 TAD DT1 5828 41362 4513 WITHTABDO 5829 41363 1323 TAD DECTP 5830 41364 3052 DCA TYP0 5831 41365 1324 TAD DECRF 5832 41366 3053 DCA REF0 5833 41367 1325 TAD DECSZ 5834 41370 3056 DCA ADR0 5835 41371 4514 ENDWITH 5836 41372 4530 TESTSEMICOLON 5837 41373 5334 JMP TDEC1 5838 5839 41377 1106 PAGE 5840 /PROCEDURE P A R A M E T E R L I S T 5841 / ------------------------- 5842 / 5843 /CALL: PUSHJUMP;PARAMETERLIST /NO ARG'S! 5844 / 5845 /LOCAL VAR'S: 5846 41400 0000 PARTP, 0 5847 41401 0000 PARRF, 0 5848 41402 0000 PARSZ, 0 5849 41403 0000 PT0, 0 5850 41404 0000 VALPAR, 0 5851 5852 41405 4542 XPARAM, INSYMBOL 5853 41406 3200 DCA PARTP 5854 41407 3201 DCA PARRF 5855 41410 3202 DCA PARSZ 5856 41411 4527 TEST;SET13;FSYS+SET14;7 /7 41412 4113 41413 0120 41414 0007 5857 41415 4532 PAR1, SKIPIFSYIN;SET13 41416 4113 5858 41417 5361 JMP PAR5 5859 41420 4535 IFSYNOT;VARSY;JMP .+3 41421 0036 41422 5225 5860 41423 4542 INSYMBOL 5861 41424 7410 SKP 5862 41425 1173 TAD [40 5863 41426 3204 DCA VALPAR 5864 41427 1025 TAD T 5865 41430 3203 DCA PT0 5866 41431 4522 ENTERVARIABLE 5867 41432 4535 IFSYNOT;COMMA;JMP .+4 41433 0027 41434 5240 5868 41435 4542 INSYMBOL 5869 41436 4522 ENTERVARIABLE 5870 41437 5232 JMP .-5 5871 41440 4534 IFSY;COLON;JMP .+4 41441 0032 41442 5246 5872 41443 4500 ERROR;5 /5 41444 0005 5873 41445 5312 JMP PAR3 5874 41446 4542 INSYMBOL 5875 41447 4534 IFSY;IDENT;JMP .+4 41450 0044 41451 5255 5876 41452 4500 ERROR;2 /2 41453 0002 5877 41454 5306 JMP PAR2 5878 41455 4536 LOCATE 5879 41456 3031 DCA J 5880 41457 4542 INSYMBOL 5881 41460 1031 TAD J 5882 41461 7650 SNA CLA 5883 41462 5306 JMP PAR2 5884 41463 4513 WITHTABDO 5885 41464 1051 TAD OBJ0 5886 41465 1175 TAD [-TYPE1 5887 41466 7650 SNA CLA 5888 41467 5273 JMP .+4 5889 41470 4500 ERROR;35 /29 41471 0035 5890 41472 5306 JMP PAR2 5891 41473 1052 TAD TYP0 5892 41474 3200 DCA PARTP 5893 41475 1053 TAD REF0 5894 41476 3201 DCA PARRF 5895 41477 1204 TAD VALPAR 5896 41500 7640 SZA CLA 5897 41501 5304 JMP .+3 5898 41502 7301 L0001 5899 41503 7410 SKP 5900 41504 1056 TAD ADR0 5901 41505 3202 DCA PARSZ 5902 41506 4527 PAR2, TEST;SET15;FSYS+SET16;16 /14 41507 4125 41510 0132 41511 0016 5903 41512 1203 PAR3, TAD PT0 5904 41513 7041 CIA 5905 41514 1025 TAD T 5906 41515 7750 SPA SNA CLA 5907 41516 5341 JMP PAR4 5908 41517 2203 ISZ PT0 5909 41520 1203 TAD PT0 5910 41521 4513 WITHTABDO 5911 41522 1200 TAD PARTP 5912 41523 3052 DCA TYP0 5913 41524 1201 TAD PARRF 5914 41525 3053 DCA REF0 5915 41526 1204 TAD VALPAR 5916 41527 3054 DCA NORM0 5917 41530 1062 TAD DX 5918 41531 3056 DCA ADR0 5919 41532 1061 TAD LEVEL 5920 41533 3055 DCA LEV0 5921 41534 4514 ENDWITH 5922 41535 1062 TAD DX 5923 41536 1202 TAD PARSZ 5924 41537 3062 DCA DX 5925 41540 5312 JMP PAR3 5926 41541 4534 PAR4, IFSY;RPARENT;JMP PAR6 41542 0024 41543 5367 5927 41544 4534 IFSY;SEMICOLON;JMP .+5 41545 0030 41546 5353 5928 41547 4500 ERROR;16 /14 41550 0016 5929 41551 4534 IFSY;COMMA;INSYMBOL 41552 0027 41553 4542 5930 41554 4527 TEST;SET13;FSYS+SET14;6 /6 41555 4113 41556 0120 41557 0006 5931 41560 5215 JMP PAR1 5932 41561 4534 PAR5, IFSY;RPARENT;JMP PAR6 41562 0024 41563 5367 5933 41564 4500 ERROR;4 /4 41565 0004 5934 41566 5374 JMP .+6 5935 41567 4542 PAR6, INSYMBOL 5936 41570 4527 TEST;SET17;FSYS;6 /6 41571 4137 41572 4000 41573 0006 5937 41574 4540 POPJUMP;PARAMETERLIST 41575 0030 5938 5939 PAGE 5940 /PROCEDURE V A R D E C L 5941 / ------------- 5942 / 5943 /CALL: PUSHJUMP;VARDECL /NO ARG'S! 5944 / 5945 /LOCAL VAR'S: 5946 41600 0000 VARTP, 0 5947 41601 0000 VARRF, 0 5948 41602 0000 VARSZ, 0 5949 41603 0000 VT0, 0 5950 41604 0000 VT1, 0 5951 5952 41605 4542 XVARDECL, INSYMBOL 5953 41606 4535 IFSYNOT;IDENT;POPJUMP;VARDECL 41607 0044 41610 4540 41611 0023 5954 41612 1025 TAD T 5955 41613 3203 DCA VT0 5956 41614 4522 ENTERVARIABLE 5957 41615 4535 IFSYNOT;COMMA;JMP .+4 41616 0027 41617 5223 5958 41620 4542 INSYMBOL 5959 41621 4522 ENTERVARIABLE 5960 41622 5215 JMP .-5 5961 41623 4534 IFSY;COLON;JMP .+4 41624 0032 41625 5231 5962 41626 4500 ERROR;5 /5 41627 0005 5963 41630 7410 SKP 5964 41631 4542 INSYMBOL 5965 41632 1025 TAD T 5966 41633 3204 DCA VT1 5967 41634 4537 PUSHJUMP;TYPE 41635 0027 5968 41636 0151 FSYS+SET19 5969 41637 1600 VARTP 5970 /VARRF 5971 /VARSZ 5972 5973 41640 1203 VAR1, TAD VT0 5974 41641 7041 CIA 5975 41642 1204 TAD VT1 5976 41643 7750 SPA SNA CLA 5977 41644 5267 JMP VAR2 5978 41645 2203 ISZ VT0 5979 41646 1203 TAD VT0 5980 41647 4513 WITHTABDO 5981 41650 1200 TAD VARTP 5982 41651 3052 DCA TYP0 5983 41652 1201 TAD VARRF 5984 41653 3053 DCA REF0 5985 41654 1061 TAD LEVEL 5986 41655 3055 DCA LEV0 5987 41656 1062 TAD DX 5988 41657 3056 DCA ADR0 5989 41660 1173 TAD [40 5990 41661 3054 DCA NORM0 5991 41662 4514 ENDWITH 5992 41663 1202 TAD VARSZ 5993 41664 1062 TAD DX 5994 41665 3062 DCA DX 5995 41666 5240 JMP VAR1 5996 41667 4530 VAR2, TESTSEMICOLON 5997 41670 5206 JMP XVARDECL+1 5998 /PROCEDURE P R O D E C L 5999 / ------------- 6000 / 6001 /CALL: PUSHJUMP;PRODECL /NO ARG'S! 6002 / 6003 /LOCAL VAR'S: PROFUN, 0 /SEE BELOW! 6004 6005 41671 4534 XPRODECL, IFSY;FUNCTIONSY;L0001 41672 0037 41673 7301 6006 41674 3333 DCA PROFUN 6007 41675 4542 INSYMBOL 6008 41676 4534 IFSY;IDENT;JMP .+7 41677 0044 41700 5307 6009 41701 4500 ERROR;2 /2 41702 0002 6010 41703 3040 DCA ID 6011 41704 3041 DCA ID+1 6012 41705 3042 DCA ID+2 6013 41706 3043 DCA ID+3 6014 41707 1377 TAD (PROZEDURE 6015 41710 1333 TAD PROFUN 6016 41711 3313 DCA .+2 6017 41712 4521 ENTER;00 /FUNCTION OR PROCEDURE 41713 0000 6018 41714 1025 TAD T 6019 41715 3031 DCA J 6020 41716 4502 OFTAB;NORMAL 41717 0002 6021 41720 0376 AND (7737 6022 41721 1173 TAD [40 6023 41722 4510 TOTAB;NORMAL 41723 0002 6024 41724 4542 INSYMBOL 6025 41725 7301 L0001 6026 41726 1061 TAD LEVEL 6027 41727 3334 DCA .+5 6028 41730 4537 PUSHJUMP;BLOCK 41731 0000 6029 41732 0156 FSYS+SET20 6030 41733 0000 PROFUN, 0 6031 41734 0000 0 6032 6033 41735 4534 IFSY;SEMICOLON;JMP .+4 41736 0030 41737 5343 6034 41740 4500 ERROR;16 /14 41741 0016 6035 41742 7410 SKP 6036 41743 4542 INSYMBOL 6037 41744 1173 TAD [40 6038 41745 1333 TAD PROFUN 6039 41746 3350 DCA .+2 6040 41747 4520 EMIT;00 /*** (32) OR (33) ***/ 41750 0000 6041 41751 4540 POPJUMP;PRODECL 41752 0024 6042 6043 41776 7737 PAGE 41777 0003 6044 /PROCEDURE S E L E C T O R 6045 / --------------- 6046 / 6047 /CALL: PUSHJUMP;SELECTOR 6048 / SETX 6049 / V /ADDRESS 6050 / 6051 /LOCAL VAR'S: FSYS 6052 42000 0000 SELVAR, 0 6053 42001 0000 SELVTYP,0 6054 42002 0000 SELVREF,0 6055 42003 0000 SELXTYP,0 6056 42004 0000 SELXREF,0 6057 6058 42005 4535 XSELECT, IFSYNOT;PERIOD;JMP SEL2 42006 0031 42007 5262 6059 42010 4542 INSYMBOL /FIELD SELECTOR 6060 42011 4534 IFSY;IDENT;JMP .+4 42012 0044 42013 5217 6061 42014 4500 ERROR;2 /2 42015 0002 6062 42016 5351 JMP SEL5 6063 42017 1201 TAD SELVTYP 6064 42020 1172 TAD [-RECORD 6065 42021 7650 SNA CLA 6066 42022 5226 JMP .+4 6067 42023 4500 ERROR;37 /31 42024 0037 6068 42025 5260 JMP SEL1 6069 42026 1202 TAD SELVREF 6070 42027 4504 OFBTAB;LAST 42030 7400 6071 42031 3031 DCA J 6072 JMS ENTID off page ^ 42032 4777 6073 JMS CHKID off page ^ 42033 4776 6074 42034 5241 JMP .+5 6075 42035 4502 OFTAB;LINK 42036 0000 6076 42037 3031 DCA J 6077 42040 5233 JMP .-5 6078 42041 1031 TAD J 6079 42042 7650 SNA CLA 6080 42043 4500 ERROR;0 /0 42044 0000 6081 42045 4513 WITHTABDO 6082 42046 1052 TAD TYP0 6083 42047 3201 DCA SELVTYP 6084 42050 1053 TAD REF0 6085 42051 3202 DCA SELVREF 6086 42052 1056 TAD ADR0 6087 42053 7450 SNA 6088 42054 5260 JMP SEL1 6089 42055 3023 DCA IRY 6090 42056 4520 EMIT;11 /*** (9) ***/ 42057 0011 6091 42060 4542 SEL1, INSYMBOL 6092 42061 5351 JMP SEL5 6093 42062 4535 SEL2, IFSYNOT;LBRACK;ERROR;13 /11 42063 0025 42064 4500 42065 0013 6094 42066 4542 SEL3, INSYMBOL 6095 42067 4537 PUSHJUMP;EXPRESSION 42070 0020 6096 42071 0163 FSYS+SET21 6097 42072 2003 SELXTYP 6098 6099 42073 1201 TAD SELVTYP 6100 42074 1171 TAD [-ARRAY 6101 42075 7650 SNA CLA 6102 42076 5302 JMP .+4 6103 42077 4500 ERROR;34 /28 42100 0034 6104 42101 5336 JMP SEL4 6105 42102 1202 TAD SELVREF /ARRAY INDEX 6106 42103 3032 DCA JA 6107 42104 4503 OFATAB;INXTYP 42105 6401 6108 42106 7041 CIA 6109 42107 1203 TAD SELXTYP 6110 42110 7650 SNA CLA 6111 42111 5315 JMP .+4 6112 42112 4500 ERROR;32 /26 42113 0032 6113 42114 5330 JMP SEL6 6114 42115 1032 TAD JA 6115 42116 3023 DCA IRY 6116 42117 4503 OFATAB;ELSIZE 42120 6406 6117 42121 7110 CLL RAR /1 SCOMPARES! 6118 42122 7640 SZA CLA 6119 42123 7301 L0001 6120 42124 1375 TAD (24 6121 42125 3327 DCA .+2 6122 42126 4520 EMIT;00 /*** (20) OR (21) ***/ 42127 0000 6123 42130 4503 SEL6, OFATAB;ELTYP 42131 6402 6124 42132 3201 DCA SELVTYP 6125 42133 4503 OFATAB;ELREF 42134 6403 6126 42135 3202 DCA SELVREF 6127 42136 4534 SEL4, IFSY;COMMA;JMP SEL3 42137 0027 42140 5266 6128 42141 4534 IFSY;RBRACK;JMP .+5 42142 0026 42143 5350 6129 42144 4500 ERROR;14 /12 42145 0014 6130 42146 4534 IFSY;RPARENT;INSYMBOL 42147 0024 42150 4542 6131 42151 4532 SEL5, SKIPIFSYIN;SET22 42152 4170 6132 42153 7410 SKP 6133 42154 5205 JMP XSELECT 6134 42155 4527 TEST;FSYS;SET0;6 /6 42156 4000 42157 4012 42160 0006 6135 42161 4540 POPJUMP;SELECTOR 42162 0012 6136 6137 42175 0024 PAGE 42176 7474 42177 7455 6138 /FUNCTION R E S U L T T Y P E 6139 / ------------------- 6140 / 6141 /CALL: TAD XTYP 6142 / MQL 6143 / TAD YTYP 6144 / RESULTTYPE 6145 / 6146 /RETURNS RESULTTYPE IN ACCUMULATOR 6147 6148 42200 0000 XRESULT,0 6149 42201 7440 SZA 6150 42202 7521 SWP 6151 42203 7450 SNA 6152 42204 5600 JMP I XRESULT 6153 42205 1175 TAD [-2 /HERE: XTYP<>0 AND YTYP<>0, XTYP IN AC 6154 42206 7540 SMA SZA 6155 42207 5234 JMP RES33 6156 42210 7521 SWP /YTYP IN AC 6157 42211 1175 TAD [-2 6158 42212 7540 SMA SZA 6159 42213 5234 JMP RES33 6160 42214 7450 SNA /HERE ONLY INTS OR REALS, YTYP IN AC 6161 42215 5222 JMP .+5 /(7777 ... INTS, 0000 ... REALS) 6162 42216 7521 SWP 6163 42217 7640 SZA CLA 6164 42220 5232 JMP RES1 /INTS - INTS 6165 42221 5226 JMP .+5 /REALS - INTS 6166 42222 7521 SWP 6167 42223 7650 SNA CLA 6168 42224 5231 JMP .+5 /REALS - REALS 6169 42225 7301 L0001 /INTS - REALS 6170 42226 3023 DCA IRY 6171 42227 4520 EMIT;32 /*** (26,0) OR (26,1) ***/ 42230 0032 6172 42231 7001 IAC 6173 42232 7001 RES1, IAC 6174 42233 5600 JMP I XRESULT 6175 42234 7300 RES33, CLA CLL 6176 42235 4500 ERROR;41 /33 42236 0041 6177 42237 5600 JMP I XRESULT 6178 /PROCEDURE C A L L 6179 / ------- 6180 / 6181 /CALL: PUSHJUMP;CALL 6182 / SETX 6183 / I /VALUE 6184 / 6185 /LOCAL VAR'S (ON PAGE ZERO!): 6186 / FSYS 6187 / CALI, 0 6188 / CALXTYP,0 6189 / CALXREF,0 6190 / CALASTP,0 6191 / CALCP, 0 6192 6193 42240 1070 XCALL, TAD CALI 6194 42241 3023 DCA IRY 6195 42242 4520 EMIT;22 /*** (18,I) ***/ 42243 0022 6196 42244 1070 TAD CALI 6197 42245 4502 OFTAB;REF 42246 0002 6198 42247 7002 BSW 6199 42250 0177 AND [77 6200 42251 4504 OFBTAB;LASTPAR 42252 7401 6201 42253 3073 DCA CALASTP 6202 42254 1070 TAD CALI 6203 42255 3074 DCA CALCP 6204 42256 4535 IFSYNOT;LPARENT;JMP CAL5 42257 0023 off page ^ 42260 5777 6205 42261 4542 CAL1, INSYMBOL 6206 42262 1073 TAD CALASTP 6207 42263 7041 CIA 6208 42264 1074 TAD CALCP 6209 42265 7700 SMA CLA 6210 JMP CAL4-2 off page ^ 42266 5776 6211 42267 2074 ISZ CALCP 6212 42270 1074 TAD CALCP 6213 42271 4502 OFTAB;NORMAL 42272 0002 6214 42273 0173 AND [40 6215 42274 7650 SNA CLA 6216 JMP CAL3 off page ^ 42275 5775 6217 42276 4537 PUSHJUMP;EXPRESSION /VALUE PARAMETER 42277 0020 6218 42300 0175 FSYS+SET23 6219 42301 0071 CALXTYP 6220 6221 42302 1074 TAD CALCP 6222 42303 4502 OFTAB;TYP 42304 0001 6223 42305 0177 AND [77 6224 42306 3021 DCA TEMP 6225 42307 1021 TAD TEMP 6226 42310 7041 CIA 6227 42311 1071 TAD CALXTYP 6228 42312 7640 SZA CLA 6229 42313 5347 JMP CAL2 6230 42314 1074 TAD CALCP 6231 42315 4502 OFTAB;REF 42316 0002 6232 42317 7002 BSW 6233 42320 0177 AND [77 6234 42321 7041 CIA 6235 42322 1072 TAD CALXREF 6236 42323 7640 SZA CLA 6237 JMP CAL36 off page ^ 42324 5774 6238 42325 1071 TAD CALXTYP 6239 42326 1171 TAD [-ARRAY 6240 42327 7440 SZA 6241 42330 5335 JMP .+5 6242 42331 1072 TAD CALXREF 6243 42332 4503 OFATAB;SIZE 42333 6407 6244 42334 5343 JMP .+7 6245 42335 7110 CLL RAR /6=RECORD 6246 42336 7640 SZA CLA 6247 JMP CAL4 off page ^ 42337 5773 6248 42340 1072 TAD CALXREF 6249 42341 4504 OFBTAB;VSIZE 42342 7403 6250 42343 3023 DCA IRY 6251 42344 4520 EMIT;26 /*** (22,SIZE) ***/ 42345 0026 6252 JMP CAL4 off page ^ 42346 5773 6253 42347 7340 CAL2, L7777 /1=INTS 6254 42350 1071 TAD CALXTYP 6255 42351 7640 SZA CLA 6256 42352 5362 JMP .+10 6257 42353 7344 L7776 /2=REALS 6258 42354 1021 TAD TEMP 6259 42355 7640 SZA CLA 6260 42356 5362 JMP .+4 6261 42357 4520 EMIT;32 /*** (26,0) ***/ 42360 0032 6262 JMP CAL4 off page ^ 42361 5773 6263 42362 1071 TAD CALXTYP 6264 42363 7640 SZA CLA 6265 JMP CAL36 off page ^ 42364 5774 6266 JMP CAL4 off page ^ 42365 5773 6267 6268 42373 2474 PAGE 42374 2467 42375 2400 42376 2472 42377 2512 6269 6270 42400 4534 CAL3, IFSY;IDENT;JMP .+4 /VARIABLE PARAMETER 42401 0044 42402 5206 6271 42403 4500 ERROR;2 /2 42404 0002 6272 42405 5274 JMP CAL4 6273 42406 4536 LOCATE 6274 42407 3031 DCA J 6275 42410 4542 INSYMBOL 6276 42411 1031 TAD J 6277 42412 7650 SNA CLA 6278 42413 5274 JMP CAL4 6279 42414 4513 WITHTABDO 6280 42415 7340 L7777 /1=VARIABLE 6281 42416 1051 TAD OBJ0 6282 42417 7640 SZA CLA 6283 42420 4500 ERROR;45 /37 42421 0045 6284 42422 1052 TAD TYP0 6285 42423 3071 DCA CALXTYP 6286 42424 1053 TAD REF0 6287 42425 3072 DCA CALXREF 6288 42426 1055 TAD LEV0 6289 42427 3022 DCA IRX 6290 42430 1056 TAD ADR0 6291 42431 3023 DCA IRY 6292 42432 1054 TAD NORM0 6293 42433 7650 SNA CLA 6294 42434 7001 IAC 6295 42435 3237 DCA .+2 6296 42436 4520 EMIT;00 /*** (0,LEV,ADR) OR (1,LEV,ADR) ***/ 42437 0000 6297 42440 4532 SKIPIFSYIN;SET22 42441 4170 6298 42442 5247 JMP .+5 6299 42443 4537 PUSHJUMP;SELECTOR 42444 0012 6300 42445 0175 FSYS+SET23 6301 42446 0071 CALXTYP 6302 6303 42447 1074 TAD CALCP 6304 42450 4502 OFTAB;TYP 42451 0001 6305 42452 0177 AND [77 6306 42453 7041 CIA 6307 42454 1071 TAD CALXTYP 6308 42455 7640 SZA CLA 6309 42456 5267 JMP CAL36 6310 42457 1074 TAD CALCP 6311 42460 4502 OFTAB;REF 42461 0002 6312 42462 7002 BSW 6313 42463 0177 AND [77 6314 42464 7041 CIA 6315 42465 1072 TAD CALXREF 6316 42466 7640 SZA CLA 6317 42467 4500 CAL36, ERROR;44 /36 42470 0044 6318 42471 5274 JMP CAL4 6319 42472 4500 ERROR;47 /39 42473 0047 6320 42474 4527 CAL4, TEST;SET24;FSYS;6 /6 42475 4202 42476 4000 42477 0006 6321 42500 4534 IFSY;COMMA;JMP CAL1 42501 0027 off page ^ 42502 5777 6322 42503 4534 IFSY;RPARENT;JMP .+4 42504 0024 42505 5311 6323 42506 4500 ERROR;4 /4 42507 0004 6324 42510 7410 SKP 6325 42511 4542 INSYMBOL 6326 42512 1073 CAL5, TAD CALASTP 6327 42513 7041 CIA 6328 42514 1074 TAD CALCP 6329 42515 7710 SPA CLA 6330 42516 4500 ERROR;47 /39 42517 0047 6331 42520 1070 TAD CALI 6332 42521 4502 OFTAB;REF 42522 0002 6333 42523 3021 DCA TEMP 6334 42524 1021 TAD TEMP 6335 42525 7002 BSW 6336 42526 0177 AND [77 6337 42527 4502 OFTAB;PSIZE 42530 7402 6338 42531 1376 TAD (-1 6339 42532 3023 DCA IRY 6340 42533 4520 EMIT;23 /*** (19,PSIZE-1) ***/ 42534 0023 6341 42535 1021 TAD TEMP 6342 42536 0170 AND [17 6343 42537 7041 CIA 6344 42540 1061 TAD LEVEL 6345 42541 7750 SPA SNA CLA 6346 42542 5352 JMP CAL6 6347 42543 1061 TAD LEVEL 6348 42544 3022 DCA IRX /SWAPPED CONTENTS OF IRX AND IRY HERE! 6349 42545 1021 TAD TEMP /(SEE INTERPRETER AT I03) 6350 42546 0170 AND [17 6351 42547 3023 DCA IRY 6352 42550 4520 EMIT;3 /*** (3,LEV1,LEV2) ***/ 42551 0003 6353 42552 4540 CAL6, POPJUMP;CALL 42553 0013 6354 6355 42576 7777 PAGE 42577 2261 6356 /PROCEDURE S T A N D F C T 6357 / --------------- 6358 / 6359 /CALL: PUSHJUMP;STANDFCT 6360 / N /VALUE 6361 / 6362 /LOCAL VAR'S: 6363 42600 0000 FCTN, 0 /NUMBER OF STANDARD FUNCTION 6364 42601 0000 FCTJ, 0 6365 6366 42602 1200 XSTFUN, TAD FCTN 6367 42603 1377 TAD (-20 /-16 6368 42604 7740 SMA SZA CLA 6369 42605 5317 JMP STF17 6370 42606 4534 IFSY;LPARENT;JMP .+4 42607 0023 42610 5214 6371 42611 4500 ERROR;11 /9 42612 0011 6372 42613 7410 SKP 6373 42614 4542 INSYMBOL 6374 42615 1031 TAD J /J IS SET IN FACTOR 6375 42616 3201 DCA FCTJ 6376 42617 4537 PUSHJUMP;EXPRESSION 42620 0020 6377 42621 0120 FSYS+SET14 6378 42622 0066 FACXTYP 6379 6380 42623 1201 TAD FCTJ 6381 42624 3031 DCA J 6382 42625 7344 L7776 6383 42626 1200 TAD FCTN 6384 42627 7740 SMA SZA CLA 6385 42630 5243 JMP STF1 6386 /FCTN: 0,2 6387 42631 7307 L0004 /4=FUNKTION 6388 42632 7002 BSW /(MUST INSERT OBJ 6389 42633 1066 TAD FACXTYP /ALONG WITH TYP!) 6390 42634 4510 TOTAB;TYP 42635 0001 6391 42636 7344 L7776 /2=REALS 6392 42637 1066 TAD FACXTYP 6393 42640 7650 SNA CLA 6394 42641 2200 ISZ FCTN 6395 42642 5254 JMP STF2 6396 42643 1200 STF1, TAD FCTN 6397 42644 1376 TAD (-10 6398 42645 7750 SPA SNA CLA 6399 42646 5254 JMP STF2 /FCTN: 4,5,6,7,8 6400 42647 7340 L7777 /FCTN: 9,10,11, ... ,16 6401 42650 1066 TAD FACXTYP /1=INTS 6402 42651 7650 SNA CLA 6403 42652 4520 EMIT;32 /*** (26,0) ***/ 42653 0032 6404 42654 1375 STF2, TAD (TSET 6405 42655 1200 TAD FCTN 6406 42656 3021 DCA TEMP 6407 42657 1066 TAD FACXTYP 6408 42660 7124 STL RAL 6409 42661 1374 TAD (SETTABLE 6410 42662 3345 DCA ARGXTYP 6411 42663 1421 TAD I TEMP 6412 42664 6231 CDF SETFIELD 6413 42665 0745 AND I ARGXTYP 6414 42666 6241 CDF COMPFIELD 6415 42667 7650 SNA CLA 6416 42670 5276 JMP STF3 6417 42671 1200 TAD FCTN 6418 42672 3023 DCA IRY 6419 42673 4520 EMIT;10 /*** (8,N) ***/ 42674 0010 6420 42675 5302 JMP .+5 6421 42676 1066 STF3, TAD FACXTYP 6422 42677 7640 SZA CLA 6423 42700 4500 ERROR;60 /48 42701 0060 6424 42702 4534 IFSY;RPARENT;JMP .+4 42703 0024 42704 5310 6425 42705 4500 ERROR;4 /4 42706 0004 6426 42707 7410 SKP 6427 42710 4542 INSYMBOL 6428 42711 4502 STF4, OFTAB;TYP /(J STILL OKAY!?) 42712 0001 6429 42713 0177 AND [77 6430 42714 3066 DCA FACXTYP 6431 42715 4540 POPJUMP;STANDFCT 42716 0014 6432 6433 42717 1200 STF17, TAD FCTN 6434 42720 3023 DCA IRY 6435 42721 4520 EMIT;10 /*** (8,17) OR (8,18) OR (8,19) ***/ 42722 0010 6436 42723 5311 JMP STF4 6437 6438 6439 /TABLE OF LEGAL ARGUMENT TYPES: 6440 42724 3000 TSET, 3000 /0 6441 42725 3000 3000 6442 42726 3000 3000 /2 6443 42727 3000 3000 6444 42730 2000 2000 /4 6445 42731 2000 2000 /5 6446 42732 2600 2600 /6 6447 42733 0200 0200 /7 6448 42734 0200 0200 /8 6449 42735 3000 3000 /9 6450 42736 3000 3000 6451 42737 3000 3000 6452 42740 3000 3000 6453 42741 3000 3000 6454 42742 3000 3000 6455 42743 3000 3000 6456 42744 3000 3000 /16 6457 6458 42745 0000 ARGXTYP,0 6459 6460 42774 4365 PAGE 42775 2724 42776 7770 42777 7760 6461 /PROCEDURE F A C T O R 6462 / ----------- 6463 / 6464 /CALL: PUSHJUMP;FACTOR 6465 / SETX 6466 / X /ADDRESS 6467 / 6468 /LOCAL VAR'S (ON PAGE ZERO!): 6469 / FSYS 6470 / FACVAR, 0 6471 / FACXTYP,0 6472 / FACXREF,0 6473 6474 43000 3066 XFACTOR,DCA FACXTYP /0=NOTYP 6475 43001 3067 DCA FACXREF 6476 43002 4527 TEST;FACBGS;FSYS;72 /58 43003 4036 43004 4000 43005 0072 6477 43006 4532 FAC1, SKIPIFSYIN;FACBGS 43007 4036 6478 43010 4540 POPJUMP;FACTOR 43011 0015 6479 43012 4535 IFSYNOT;IDENT;JMP FAC2 43013 0044 off page ^ 43014 5777 6480 43015 4536 LOCATE 6481 43016 3031 DCA J 6482 43017 4542 INSYMBOL 6483 43020 4513 WITHTABDO 6484 43021 1051 TAD OBJ0 6485 43022 1376 TAD (JMP I FACTABL 6486 43023 3224 DCA .+1 6487 43024 7402 HLT 6488 6489 43025 3032 FACTABL,FKON 6490 43026 3051 FVAR 6491 43027 3117 FTYP 6492 43030 3117 FPRO 6493 43031 3122 FFUN 6494 6495 43032 1052 FKON, TAD TYP0 6496 43033 3066 DCA FACXTYP 6497 43034 3067 DCA FACXREF 6498 43035 1056 TAD ADR0 6499 43036 3023 DCA IRY 6500 43037 7340 L7777 /1=INTS 6501 43040 1052 TAD TYP0 6502 43041 7110 CLL RAR /2=REALS 6503 43042 7650 SNA CLA 6504 43043 7001 IAC 6505 43044 1375 TAD (30 6506 43045 3247 DCA .+2 6507 43046 4520 EMIT;00 /*** (24,ADR) OR (25,ADR) ***/ 43047 0000 6508 JMP FAC3 off page ^ 43050 5774 6509 6510 43051 1052 FVAR, TAD TYP0 6511 43052 3066 DCA FACXTYP 6512 43053 1053 TAD REF0 6513 43054 3067 DCA FACXREF 6514 43055 1055 TAD LEV0 6515 43056 3022 DCA IRX 6516 43057 1056 TAD ADR0 6517 43060 3023 DCA IRY 6518 43061 4532 SKIPIFSYIN;SET22 43062 4170 6519 43063 5304 JMP FVAR1 6520 43064 1054 TAD NORM0 6521 43065 7650 SNA CLA 6522 43066 7001 IAC 6523 43067 3271 DCA .+2 6524 43070 4520 EMIT;00 /*** (0,LEV,ADR) OR (1,LEV,ADR) ***/ 43071 0000 6525 43072 4537 PUSHJUMP;SELECTOR 43073 0012 6526 43074 4000 FSYS 6527 43075 0066 FACXTYP 6528 6529 43076 1066 TAD FACXTYP 6530 43077 1167 TAD [-4 /STANTYPS = NOTYP(0) ... CHAR(4) 6531 43100 7750 SPA SNA CLA 6532 43101 4520 EMIT;42 /*** (34) ***/ 43102 0042 6533 JMP FAC3 off page ^ 43103 5774 6534 43104 3315 FVAR1, DCA .+11 /F=0 6535 43105 1066 TAD FACXTYP 6536 43106 1167 TAD [-4 6537 43107 7750 SPA SNA CLA 6538 43110 2315 ISZ .+5 /F:=F+1 (IN STANTYPS!) 6539 43111 1054 TAD NORM0 6540 43112 7650 SNA CLA 6541 43113 2315 ISZ .+2 /F:=F+1 6542 43114 4520 EMIT;00 /*** (F,LEV,ADR) ***/ 43115 0000 6543 JMP FAC3 off page ^ 43116 5774 6544 6545 FTYP, 6546 43117 4500 FPRO, ERROR;54 /44 43120 0054 6547 JMP FAC3 off page ^ 43121 5774 6548 6549 43122 1052 FFUN, TAD TYP0 6550 43123 3066 DCA FACXTYP 6551 43124 1055 TAD LEV0 6552 43125 7650 SNA CLA 6553 43126 5336 JMP STFUN 6554 43127 1031 TAD J 6555 43130 3334 DCA .+4 6556 43131 4537 PUSHJUMP;CALL 43132 0013 6557 43133 4000 FSYS 6558 43134 0000 0 6559 JMP FAC3 off page ^ 43135 5774 6560 43136 1056 STFUN, TAD ADR0 6561 43137 3342 DCA .+3 6562 43140 4537 PUSHJUMP;STANDFCT 43141 0014 6563 43142 0000 0 6564 JMP FAC3 off page ^ 43143 5774 6565 6566 43174 3274 PAGE 43175 0030 43176 5625 43177 3200 6567 6568 43200 4532 FAC2, SKIPIFSYIN;SET25 43201 4207 6569 43202 5231 JMP FAC23 6570 43203 7344 L7776 /2=CHARCON 6571 43204 1037 TAD SY 6572 43205 7650 SNA CLA 6573 43206 5220 JMP FAC21 6574 43207 7301 L0001 6575 43210 1037 TAD SY 6576 43211 3066 DCA FACXTYP /INTS OR REALS 6577 43212 4525 ENTERCONSTANT;NUM-1 43213 0043 6578 43214 3023 DCA IRY 6579 43215 4520 EMIT;31 /*** (25,C) ***/ 43216 0031 6580 43217 5226 JMP FAC22 6581 43220 7307 FAC21, L0004 /4=CHARS 6582 43221 3066 DCA FACXTYP 6583 43222 1047 TAD NUM+3 6584 43223 3023 DCA IRY 6585 43224 4520 EMIT;30 /*** (24,NUM) ***/ 43225 0030 6586 43226 3067 FAC22, DCA FACXREF 6587 43227 4542 INSYMBOL 6588 43230 5274 JMP FAC3 6589 43231 4535 FAC23, IFSYNOT;LPARENT;JMP FAC24 43232 0023 43233 5251 6590 43234 4542 INSYMBOL 6591 43235 4537 PUSHJUMP;EXPRESSION 43236 0020 6592 43237 0120 FSYS+SET14 6593 43240 0066 FACXTYP 6594 6595 43241 4534 IFSY;RPARENT;JMP .+4 43242 0024 43243 5247 6596 43244 4500 ERROR;4 /4 43245 0004 6597 43246 5274 JMP FAC3 6598 43247 4542 INSYMBOL 6599 43250 5274 JMP FAC3 6600 43251 4535 FAC24, IFSYNOT;NOTSY;JMP FAC3 43252 0004 43253 5274 6601 43254 4542 INSYMBOL 6602 43255 4537 PUSHJUMP;FACTOR 43256 0015 6603 43257 4000 FSYS 6604 43260 0066 FACXTYP 6605 6606 43261 7346 L7775 /3=BOOLS 6607 43262 1066 TAD FACXTYP 6608 43263 7640 SZA CLA 6609 43264 5270 JMP .+4 6610 43265 4520 EMIT;43 /*** (35) ***/ 43266 0043 6611 43267 5274 JMP FAC3 6612 43270 1066 TAD FACXTYP 6613 43271 7640 SZA CLA 6614 43272 4500 ERROR;40 /32 43273 0040 6615 43274 4527 FAC3, TEST;FSYS;FACBGS;6 /6 43275 4000 43276 4036 43277 0006 6616 JMP FAC1 off page ^ 43300 5777 6617 6618 43377 3006 PAGE 6619 /PROCEDURE T E R M 6620 / ------- 6621 / 6622 /CALL: PUSHJUMP;TERM 6623 / SETX 6624 / X /ADDRESS 6625 / 6626 /LOCAL VAR'S: FSYS 6627 43400 0000 TRMXTYP,0 6628 43401 0000 TRMYTYP,0 6629 43402 0000 TRMYREF,0 6630 43403 0000 TRMOP, 0 6631 6632 43404 1200 XTERM, TAD TRMXTYP 6633 43405 3211 DCA .+4 6634 43406 4537 PUSHJUMP;FACTOR 43407 0015 6635 43410 0214 FSYS+SET26 6636 43411 0000 0 6637 6638 43412 4532 TRM1, SKIPIFSYIN;SET26 43413 4214 6639 43414 4540 POPJUMP;TERM 43415 0016 6640 43416 1037 TAD SY 6641 43417 3203 DCA TRMOP 6642 43420 4542 INSYMBOL 6643 43421 4537 PUSHJUMP;FACTOR 43422 0015 6644 43423 0214 FSYS+SET26 6645 43424 3401 TRMYTYP 6646 6647 43425 1203 TAD TRMOP 6648 43426 1377 TAD (JMP I OPTABL-TIMES 6649 43427 3230 DCA .+1 6650 43430 7402 HLT 6651 6652 43431 3436 OPTABL, XTIMES 6653 43432 3516 XIDIV 6654 43433 3456 XRDIV 6655 43434 3516 XIMOD 6656 43435 3534 XAND 6657 6658 43436 1600 XTIMES, TAD I TRMXTYP 6659 43437 7421 MQL 6660 43440 1201 TAD TRMYTYP 6661 43441 4541 RESULTTYPE 6662 43442 3600 DCA I TRMXTYP 6663 43443 1600 TAD I TRMXTYP 6664 43444 7450 SNA 6665 43445 5212 JMP TRM1 /NOTYP 6666 43446 1376 TAD (-1 6667 43447 7640 SZA CLA 6668 43450 1375 TAD (12-3 /REALS 6669 43451 1374 TAD (3 /INTS 6670 43452 3023 DCA IRY 6671 43453 4520 EMIT;60 /*** (48,3) OR (48,12) ***/ 43454 0060 6672 43455 5212 JMP TRM1 6673 6674 43456 7301 XRDIV, L0001 6675 43457 3023 DCA IRY 6676 43460 7340 L7777 /1=INTS 6677 43461 1600 TAD I TRMXTYP 6678 43462 7640 SZA CLA 6679 43463 5270 JMP .+5 6680 43464 4520 EMIT;32 /*** (26,1) ***/ 43465 0032 6681 43466 7326 L0002 /2=REALS 6682 43467 3600 DCA I TRMXTYP 6683 43470 3023 DCA IRY 6684 43471 7340 L7777 /1=INTS 6685 43472 1201 TAD TRMYTYP 6686 43473 7640 SZA CLA 6687 43474 5301 JMP .+5 6688 43475 4520 EMIT;32 /*** (26,0) ***/ 43476 0032 6689 43477 7326 L0002 /2=REALS 6690 43500 3201 DCA TRMYTYP 6691 43501 7344 L7776 /2=REALS 6692 43502 1600 TAD I TRMXTYP 6693 43503 7640 SZA CLA 6694 43504 5350 JMP XNOTYP-1 6695 43505 7344 L7776 6696 43506 1201 TAD TRMYTYP 6697 43507 7640 SZA CLA 6698 43510 5350 JMP XNOTYP-1 6699 43511 1373 TAD (13 6700 43512 3023 DCA IRY 6701 43513 4520 EMIT;60 /*** (48,13) ***/ 43514 0060 6702 43515 5212 JMP TRM1 6703 6704 XIDIV, 6705 43516 7340 XIMOD, L7777 /1=INTS 6706 43517 1600 TAD I TRMXTYP 6707 43520 7640 SZA CLA 6708 43521 5347 JMP XNOTYP-2 6709 43522 7340 L7777 6710 43523 1201 TAD TRMYTYP 6711 43524 7640 SZA CLA 6712 43525 5347 JMP XNOTYP-2 6713 43526 1203 TAD TRMOP 6714 43527 7110 CLL RAR 6715 43530 3023 DCA IRY 6716 43531 4520 EMIT;60 /*** (48,4) OR (48,5) ***/ 43532 0060 6717 43533 5212 JMP TRM1 6718 6719 43534 7346 XAND, L7775 /3=BOOLS 6720 43535 1600 TAD I TRMXTYP 6721 43536 7640 SZA CLA 6722 43537 5351 JMP XNOTYP 6723 43540 7346 L7775 6724 43541 1201 TAD TRMYTYP 6725 43542 7640 SZA CLA 6726 43543 5351 JMP XNOTYP 6727 43544 4520 EMIT;64 /*** (52) ***/ 43545 0064 6728 43546 5212 JMP TRM1 6729 6730 43547 7201 CLA IAC 6731 43550 7001 IAC 6732 43551 1173 XNOTYP, TAD [40 6733 43552 3360 DCA ERRTYP 6734 43553 1600 TAD I TRMXTYP 6735 43554 7640 SZA CLA 6736 43555 1201 TAD TRMYTYP 6737 43556 7640 SZA CLA 6738 43557 4500 ERROR 6739 43560 0000 ERRTYP, 00 /32, 33 OR 34 6740 43561 3600 DCA I TRMXTYP /0=NOTYP 6741 43562 5212 JMP TRM1 6742 6743 43573 0013 PAGE 43574 0003 43575 0007 43576 7777 43577 5622 6744 /PROCEDURE S I M P L E E X P R E S S I O N 6745 / ------------------------------- 6746 / 6747 /CALL: PUSHJUMP;SIMPLEEXPRESSION 6748 / SETX 6749 / X /ADDRESS 6750 / 6751 /LOCAL VAR'S: FSYS 6752 43600 0000 SIMXTYP,0 6753 43601 0000 SIMYTYP,0 6754 43602 0000 SIMYREF,0 6755 43603 0000 SIMOP, 0 6756 6757 43604 4532 XSIMPLE,SKIPIFSYIN;SET8 43605 4062 6758 43606 5235 JMP SIM1 6759 43607 1037 TAD SY 6760 43610 3203 DCA SIMOP 6761 43611 4542 INSYMBOL 6762 43612 1200 TAD SIMXTYP 6763 43613 3217 DCA .+4 6764 43614 4537 PUSHJUMP;TERM 43615 0016 6765 43616 0062 FSYS+SET8 6766 43617 0000 0 6767 6768 43620 7344 L7776 /2=REALS 6769 43621 1600 TAD I SIMXTYP 6770 43622 7750 SPA SNA CLA 6771 43623 5227 JMP .+4 6772 43624 4500 ERROR;41 /33 43625 0041 6773 43626 5243 JMP SIM2 6774 43627 1203 TAD SIMOP 6775 43630 1377 TAD (-MINUS 6776 43631 7650 SNA CLA 6777 43632 4520 EMIT;44 /*** (36) ***/ 43633 0044 6778 43634 5243 JMP SIM2 6779 43635 1200 SIM1, TAD SIMXTYP 6780 43636 3242 DCA .+4 6781 43637 4537 PUSHJUMP;TERM 43640 0016 6782 43641 0221 FSYS+SET27 6783 43642 0000 0 6784 6785 43643 4532 SIM2, SKIPIFSYIN;SET27 43644 4221 6786 43645 4540 POPJUMP;SIMPLEEXPRESSION 43646 0017 6787 43647 1037 TAD SY 6788 43650 3203 DCA SIMOP 6789 43651 4542 INSYMBOL 6790 43652 4537 PUSHJUMP;TERM 43653 0016 6791 43654 0221 FSYS+SET27 6792 43655 3601 SIMYTYP 6793 6794 43656 1203 TAD SIMOP 6795 43657 1376 TAD (-ORSY 6796 43660 7640 SZA CLA 6797 43661 5305 JMP SIM3 6798 43662 7346 L7775 /3=BOOLS 6799 43663 1600 TAD I SIMXTYP 6800 43664 7640 SZA CLA 6801 43665 5275 JMP NOTBOOL 6802 43666 7346 L7775 6803 43667 1201 TAD SIMYTYP 6804 43670 7640 SZA CLA 6805 43671 5275 JMP NOTBOOL 6806 43672 4520 EMIT;63 /*** (51) ***/ 43673 0063 6807 43674 5243 JMP SIM2 6808 43675 1600 NOTBOOL,TAD I SIMXTYP 6809 43676 7640 SZA CLA 6810 43677 1201 TAD SIMYTYP 6811 43700 7640 SZA CLA 6812 43701 4500 ERROR;40 /32 43702 0040 6813 43703 3600 DCA I SIMXTYP /0=NOTYP 6814 43704 5243 JMP SIM2 6815 43705 1600 SIM3, TAD I SIMXTYP 6816 43706 7421 MQL 6817 43707 1201 TAD SIMYTYP 6818 43710 4541 RESULTTYPE 6819 43711 3600 DCA I SIMXTYP 6820 43712 1600 TAD I SIMXTYP 6821 43713 7450 SNA 6822 43714 5243 JMP SIM2 6823 43715 7110 CLL RAR /NOW: 0...INTS, 1...REALS! 6824 43716 7640 SZA CLA 6825 43717 1375 TAD (7 6826 43720 1167 TAD [-4 6827 43721 1203 TAD SIMOP /+ ... 5, - ... 6 6828 43722 3023 DCA IRY 6829 43723 4520 EMIT;60 /*** (48,1) OR (48,2) OR (48,10) OR (48,11) ***/ 43724 0060 6830 43725 5243 JMP SIM2 6831 6832 43775 0007 PAGE 43776 7764 43777 7772 6833 /PROCEDURE E X P R E S S I O N 6834 / ------------------- 6835 / 6836 /CALL: PUSHJUMP;EXPRESSION 6837 / SETX 6838 / X /ADDRESS 6839 / 6840 /LOCAL VAR'S: FSYS 6841 44000 0000 EXPRVAR,0 6842 44001 0000 XTYP, 0 6843 44002 0000 XREF, 0 6844 44003 0000 YTYP, 0 6845 44004 0000 YREF, 0 6846 44005 0000 OP, 0 6847 6848 XEXPRESSION, 6849 44006 4537 PUSHJUMP;SIMPLEEXPRESSION 44007 0017 6850 44010 0226 FSYS+SET28 6851 44011 4001 XTYP 6852 6853 44012 4532 SKIPIFSYIN;SET28 44013 4226 6854 44014 4540 POPJUMP;EXPRESSION 44015 0020 6855 44016 1037 TAD SY 6856 44017 3205 DCA OP 6857 44020 4542 INSYMBOL 6858 44021 4537 PUSHJUMP;SIMPLEEXPRESSION 44022 0017 6859 44023 4000 FSYS 6860 44024 4003 YTYP 6861 6862 44025 7344 L7776 /2=REALS 6863 44026 1201 TAD XTYP 6864 44027 7450 SNA 6865 44030 5241 JMP EXPR1 6866 44031 1175 TAD [-2 /2+2=4=CHARS 6867 44032 7740 SMA SZA CLA 6868 44033 5241 JMP EXPR1 6869 44034 1201 TAD XTYP 6870 44035 7041 CIA 6871 44036 1203 TAD YTYP 6872 44037 7650 SNA CLA 6873 44040 5275 JMP IEXPR 6874 44041 7301 EXPR1, L0001 6875 44042 3023 DCA IRY 6876 44043 7340 L7777 /1=INTS 6877 44044 1201 TAD XTYP 6878 44045 7640 SZA CLA 6879 44046 5253 JMP .+5 6880 44047 4520 EMIT;32 /*** (26,1) ***/ 44050 0032 6881 44051 7326 L0002 /2=REALS 6882 44052 3201 DCA XTYP 6883 44053 3023 DCA IRY 6884 44054 7340 L7777 /1=INTS 6885 44055 1203 TAD YTYP 6886 44056 7640 SZA CLA 6887 44057 5264 JMP .+5 6888 44060 4520 EMIT;32 /*** (26,0) ***/ 44061 0032 6889 44062 7326 L0002 /2=REALS 6890 44063 3203 DCA YTYP 6891 44064 7344 L7776 /2=REALS 6892 44065 1201 TAD XTYP 6893 44066 7640 SZA CLA 6894 44067 5312 JMP ILLTYP 6895 44070 7344 L7776 6896 44071 1203 TAD YTYP 6897 44072 7640 SZA CLA 6898 44073 5312 JMP ILLTYP 6899 44074 7301 REXPR, L0001 6900 44075 1377 IEXPR, TAD (61 6901 44076 3305 DCA I61R62 6902 44077 1205 TAD OP 6903 44100 1376 TAD (TAD RELTABL-EQL 6904 44101 3302 DCA .+1 6905 44102 0000 0000 /TAD RELTABL (MODIFIED INSTR.!) 6906 44103 3023 DCA IRY 6907 44104 4520 EMIT 6908 44105 0000 I61R62, 00 /*** (49,OP) OR (50,OP) ***/ 6909 44106 7325 EXPR3, L0003 /3=BOOLS 6910 44107 3201 DCA XTYP 6911 44110 4540 POPJUMP;EXPRESSION 44111 0020 6912 6913 44112 4500 ILLTYP, ERROR;43 /35 44113 0043 6914 44114 5306 JMP EXPR3 6915 6916 44115 7440 RELTABL,SZA 6917 44116 7450 SNA 6918 44117 7550 SPA SNA 6919 44120 7510 SPA 6920 44121 7500 SMA 6921 44122 7540 SMA SZA 6922 6923 44176 1300 PAGE 44177 0061 6924 /PROCEDURE A S S I G N M E N T 6925 / ------------------- 6926 / 6927 /CALL: PUSHJUMP;ASSIGNMENT 6928 / LEV /VALUE 6929 / ADR /- " - 6930 / 6931 /LOCAL VAR'S: 6932 44200 0000 LV, 0 6933 44201 0000 AD, 0 6934 44202 0000 AXTYP, 0 6935 44203 0000 AXREF, 0 6936 44204 0000 AYTYP, 0 6937 44205 0000 AYREF, 0 6938 6939 XASSIGNMENT, 6940 44206 4502 OFTAB;TYP /J IS SET IN STATEMENT 44207 0001 6941 44210 0177 AND [77 6942 44211 3202 DCA AXTYP 6943 44212 4502 OFTAB;REF 44213 0002 6944 44214 7002 BSW 6945 44215 0177 AND [77 6946 44216 3203 DCA AXREF 6947 44217 1200 TAD LV 6948 44220 3022 DCA IRX 6949 44221 1201 TAD AD 6950 44222 3023 DCA IRY 6951 44223 4502 OFTAB;NORMAL 44224 0002 6952 44225 0173 AND [40 6953 44226 7650 SNA CLA 6954 44227 7001 IAC 6955 44230 3232 DCA .+2 6956 44231 4520 EMIT;00 /*** (0,LV,AD) OR (1,LV,AD) ***/ 44232 0000 6957 44233 4532 SKIPIFSYIN;SET22 44234 4170 6958 44235 5242 JMP .+5 6959 44236 4537 PUSHJUMP;SELECTOR 44237 0012 6960 44240 0233 FSYS+SET29 6961 44241 4202 AXTYP 6962 6963 44242 4534 IFSY;BECOMES;JMP .+5 44243 0033 44244 5251 6964 44245 4500 ERROR;63 /51 44246 0063 6965 44247 4534 IFSY;EQL;INSYMBOL 44250 0015 44251 4542 6966 44252 4537 PUSHJUMP;EXPRESSION 44253 0020 6967 44254 4000 FSYS 6968 44255 4204 AYTYP 6969 6970 44256 1202 TAD AXTYP 6971 44257 7041 CIA 6972 44260 1204 TAD AYTYP 6973 44261 7640 SZA CLA 6974 44262 5313 JMP ASS1 6975 44263 1202 TAD AXTYP 6976 44264 1171 TAD [-ARRAY 6977 44265 7710 SPA CLA 6978 44266 5325 JMP ASS2-2 6979 44267 1203 TAD AXREF /ARRAY- OR RECORD-VARIABLE 6980 44270 7041 CIA 6981 44271 1205 TAD AYREF 6982 44272 7640 SZA CLA 6983 44273 5335 JMP ASSERR 6984 44274 1202 TAD AXTYP 6985 44275 1171 TAD [-ARRAY 6986 44276 7640 SZA CLA 6987 44277 5304 JMP .+5 6988 44300 1203 TAD AXREF /ARRAY 6989 44301 4503 OFATAB;SIZE 44302 6407 6990 44303 5307 JMP .+4 6991 44304 1203 TAD AXREF /RECORD 6992 44305 4504 OFBTAB;VSIZE 44306 7403 6993 44307 3023 DCA IRY 6994 44310 4520 EMIT;27 /*** (23,SIZE) ***/ 44311 0027 6995 44312 5327 JMP ASS2 6996 44313 7344 ASS1, L7776 /2=REALS 6997 44314 1202 TAD AXTYP 6998 44315 7640 SZA CLA 6999 44316 5331 JMP ASS3 7000 44317 7340 L7777 /1=INTS 7001 44320 1204 TAD AYTYP 7002 44321 7640 SZA CLA 7003 44322 5331 JMP ASS3 7004 44323 4520 EMIT;32 /*** (26,0) ***/ 44324 0032 7005 44325 4520 EMIT;46 /*** (38) ***/ 44326 0046 7006 44327 4540 ASS2, POPJUMP;ASSIGNMENT 44330 0002 7007 7008 44331 1202 ASS3, TAD AXTYP 7009 44332 7640 SZA CLA 7010 44333 1204 TAD AYTYP 7011 44334 7640 SZA CLA 7012 44335 4500 ASSERR, ERROR;56 /46 44336 0056 7013 44337 5327 JMP ASS2 7014 /PROCEDURE C O M P O U N D S T A T E M E N T 7015 / --------------------------------- 7016 / 7017 /CALL: PUSHJUMP;COMPOUNDSTATEMENT /NO ARG'S! 7018 / 7019 /NO LOCAL VAR'S! 7020 7021 XCOMPOUNDSTATEMENT, 7022 44340 4542 INSYMBOL 7023 44341 4537 PUSHJUMP;STATEMENT 44342 0001 7024 44343 0240 FSYS+SET30 7025 7026 44344 4532 SKIPIFSYIN;SET31 44345 4245 7027 44346 5355 JMP CMP1 7028 44347 4534 IFSY;SEMICOLON;JMP XCOMPOUNDSTATEMENT 44350 0030 44351 5340 7029 44352 4500 ERROR;16 /14 44353 0016 7030 44354 5341 JMP XCOMPOUNDSTATEMENT+1 7031 44355 4534 CMP1, IFSY;ENDSY;JMP .+4 44356 0053 44357 5363 7032 44360 4500 ERROR;71 /57 44361 0071 7033 44362 7410 SKP 7034 44363 4542 INSYMBOL 7035 44364 4540 POPJUMP;COMPOUNDSTATEMENT 44365 0003 7036 7037 PAGE 7038 /PROCEDURE C A S E L A B E L 7039 / ----------------- 7040 / 7041 /CALL: JMS CASELABEL /NOT RECURSIVE! 7042 / 7043 /LOCAL VAR'S: 7044 44400 0000 LAB, ZBLOCK 5 44401 0000 44402 0000 44403 0000 44404 0000 7045 7046 44405 0000 CASELABEL, 0 7047 44406 4537 PUSHJUMP;CONSTANT 44407 0025 7048 44410 0050 FSYS+SET6 7049 44411 4400 LAB 7050 7051 44412 1200 TAD LAB 7052 44413 7041 CIA 7053 44414 1661 TAD I CCXTYP 7054 44415 7640 SZA CLA 7055 44416 5255 JMP LABERR 7056 44417 1660 TAD I CCI 7057 44420 3011 DCA XR11 7058 44421 1011 TAD XR11 7059 44422 1262 TAD CLIMIT 7060 44423 7650 SNA CLA 7061 44424 4501 FATALC, FATAL /TOO MUCH CASE-LABELS! 7062 44425 4526 SIGNEDINTEGER;LAB 44426 4400 7063 44427 3021 DCA TEMP 7064 44430 1021 TAD TEMP 7065 44431 3411 DCA I XR11 7066 44432 1020 TAD LC 7067 44433 3411 DCA I XR11 7068 44434 1011 TAD XR11 7069 44435 3660 DCA I CCI 7070 44436 1263 TAD CTABM1 7071 44437 3011 DCA XR11 7072 44440 1411 TAD I XR11 7073 44441 2011 ISZ XR11 7074 44442 7041 CIA 7075 44443 1021 TAD TEMP 7076 44444 7640 SZA CLA 7077 44445 5240 JMP .-5 7078 44446 1011 TAD XR11 7079 44447 7041 CIA 7080 44450 1660 TAD I CCI 7081 44451 7640 SZA CLA 7082 44452 4500 ERROR;1 /1 44453 0001 7083 44454 5605 JMP I CASELABEL 7084 44455 4500 LABERR, ERROR;57 /47 44456 0057 7085 44457 5605 JMP I CASELABEL 7086 44460 4621 CCI, CI 7087 44461 4616 CCXTYP, CXTYP 7088 44462 3221 CLIMIT, -2^CSMAX-CASETAB+1 7089 44463 4463 CTABM1, CASETAB-1 7090 /PROCEDURE C A S E S T A T E M E N T 7091 / ------------------------- 7092 / 7093 /CALL: PUSHJUMP;CASESTATEMENT /NO ARG'S! 7094 / 7095 /LOCAL VAR'S: 7096 44464 0000 CASETAB, ZBLOCK CSMAX^2 44465 0000 44466 0000 44467 0000 44470 0000 44471 0000 44472 0000 44473 0000 44474 0000 44475 0000 44476 0000 44477 0000 44500 0000 44501 0000 44502 0000 44503 0000 44504 0000 44505 0000 44506 0000 44507 0000 44510 0000 44511 0000 44512 0000 44513 0000 44514 0000 44515 0000 44516 0000 44517 0000 44520 0000 44521 0000 44522 0000 44523 0000 44524 0000 44525 0000 44526 0000 44527 0000 44530 0000 44531 0000 44532 0000 44533 0000 44534 0000 44535 0000 44536 0000 44537 0000 44540 0000 44541 0000 44542 0000 44543 0000 44544 0000 44545 0000 44546 0000 44547 0000 44550 0000 44551 0000 44552 0000 44553 0000 44554 0000 44555 0000 44556 0000 44557 0000 7097 44560 0000 EXITTAB, ZBLOCK CSMAX 44561 0000 44562 0000 44563 0000 44564 0000 44565 0000 44566 0000 44567 0000 44570 0000 44571 0000 44572 0000 44573 0000 44574 0000 44575 0000 44576 0000 44577 0000 44600 0000 44601 0000 44602 0000 44603 0000 44604 0000 44605 0000 44606 0000 44607 0000 44610 0000 44611 0000 44612 0000 44613 0000 44614 0000 44615 0000 7098 44616 0000 CXTYP, 0 7099 44617 0000 CXREF, 0 7100 44620 0000 CLC1, 0 7101 44621 0000 CI, 0 7102 44622 0000 CJ, 0 7103 7104 44623 4542 XCASESTATEMENT, INSYMBOL 7105 44624 1377 TAD (CASETAB-1 7106 44625 3221 DCA CI 7107 44626 1376 TAD (EXITTAB-1 7108 44627 3222 DCA CJ 7109 44630 4537 PUSHJUMP;EXPRESSION 44631 0020 7110 44632 0264 FSYS+SET34 7111 44633 4616 CXTYP 7112 7113 44634 7344 L7776 /2=REALS 7114 44635 1216 TAD CXTYP 7115 44636 7450 SNA 7116 44637 5242 JMP .+3 7117 44640 1175 TAD [-2 /2+2=4=CHARS (LAST STANTYP) 7118 44641 7740 SMA SZA CLA 7119 44642 4500 ERROR;27 /23 44643 0027 7120 44644 1020 TAD LC 7121 44645 3220 DCA CLC1 7122 44646 4520 EMIT;14 /*** (12) ***/ 44647 0014 7123 44650 4534 IFSY;OFSY;JMP CAS1 44651 0056 44652 5256 7124 44653 4500 ERROR;10 /8 44654 0010 7125 44655 7410 SKP 7126 44656 4542 CAS1, INSYMBOL 7127 44657 4537 PUSHJUMP;ONECASE 44660 0031 7128 44661 4534 IFSY;SEMICOLON;JMP CAS1 44662 0030 44663 5256 7129 44664 1220 TAD CLC1 7130 44665 4517 TOCODE 7131 44666 1377 TAD (CASETAB-1 7132 44667 3011 DCA XR11 7133 44670 1011 CAS2, TAD XR11 7134 44671 7041 CIA 7135 44672 1221 TAD CI 7136 44673 7650 SNA CLA 7137 44674 5302 JMP CAS3 7138 44675 1411 TAD I XR11 7139 44676 3023 DCA IRY 7140 44677 4520 EMIT;15 /*** (13) ***/ 44700 0015 7141 44701 5270 JMP CAS2 7142 44702 4520 CAS3, EMIT;12 /*** (10) ***/ 44703 0012 7143 44704 1376 TAD (EXITTAB-1 7144 44705 3011 DCA XR11 7145 44706 1011 CAS4, TAD XR11 7146 44707 7041 CIA 7147 44710 1222 TAD CJ 7148 44711 7650 SNA CLA 7149 44712 5316 JMP CAS5 7150 44713 1411 TAD I XR11 7151 44714 4517 TOCODE 7152 44715 5306 JMP CAS4 7153 44716 4534 CAS5, IFSY;ENDSY;JMP .+4 44717 0053 44720 5324 7154 44721 4500 ERROR;71 /57 44722 0071 7155 44723 7410 SKP 7156 44724 4542 INSYMBOL 7157 44725 4540 POPJUMP;CASESTATEMENT 44726 0005 7158 /PROCEDURE O N E C A S E 7159 / ------------- 7160 / 7161 /CALL: PUSHJUMP;ONECASE /NO ARG'S! 7162 / 7163 /NO LOCAL VAR'S! (USES SOME VAR'S OF 'CASESTATEMENT') 7164 7165 44727 4532 XONECASE, SKIPIFSYIN;CONBGS 44730 4017 7166 44731 5357 JMP ONE2 7167 44732 7410 SKP 7168 44733 4542 ONE1, INSYMBOL 7169 JMS CASELABEL off page ^ 44734 4775 7170 44735 4534 IFSY;COMMA;JMP ONE1 44736 0027 44737 5333 7171 44740 4534 IFSY;COLON;JMP .+4 44741 0032 44742 5346 7172 44743 4500 ERROR;5 /5 44744 0005 7173 44745 7410 SKP 7174 44746 4542 INSYMBOL 7175 44747 4537 PUSHJUMP;STATEMENT 44750 0001 7176 44751 0240 FSYS+SET30 7177 7178 44752 2222 ISZ CJ 7179 44753 1020 TAD LC 7180 44754 3622 DCA I CJ 7181 44755 4520 EMIT;12 /*** (10) ***/ 44756 0012 7182 44757 4540 ONE2, POPJUMP;ONECASE 44760 0031 7183 7184 44775 4405 PAGE 44776 4557 44777 4463 7185 /PROCEDURE I F S T A T E M E N T 7186 / --------------------- 7187 / 7188 /CALL: PUSHJUMP;IFSTATEMENT /NO ARG'S! 7189 / 7190 /LOCAL VAR'S: 7191 45000 0000 IXTYP, 0 7192 45001 0000 IXREF, 0 7193 45002 0000 ILC1, 0 7194 45003 0000 ILC2, 0 7195 7196 XIFSTATEMENT, 7197 45004 4542 INSYMBOL 7198 45005 4537 PUSHJUMP;EXPRESSION 45006 0020 7199 45007 0252 FSYS+SET32 7200 45010 5000 IXTYP 7201 7202 45011 1200 TAD IXTYP 7203 45012 7450 SNA 7204 45013 5220 JMP .+5 7205 45014 1166 TAD [-BOOLS 7206 45015 7640 SZA CLA 7207 45016 4500 ERROR;21 /17 45017 0021 7208 45020 1020 TAD LC 7209 45021 3202 DCA ILC1 7210 45022 4520 EMIT;13 /*** (11) ***/ 45023 0013 7211 45024 4534 IFSY;THENSY;JMP .+5 45025 0062 45026 5233 7212 45027 4500 ERROR;64 /52 45030 0064 7213 45031 4534 IFSY;DOSY;INSYMBOL 45032 0057 45033 4542 7214 45034 4537 PUSHJUMP;STATEMENT 45035 0001 7215 45036 0257 FSYS+SET33 7216 7217 45037 4535 IFSYNOT;ELSESY;JMP IF1 45040 0054 45041 5260 7218 45042 4542 INSYMBOL 7219 45043 1020 TAD LC 7220 45044 3203 DCA ILC2 7221 45045 4520 EMIT;12 /*** (10) ***/ 45046 0012 7222 45047 1202 TAD ILC1 7223 45050 4517 TOCODE /*** CODE[ILC1] := LC ***/ 7224 45051 4537 PUSHJUMP;STATEMENT 45052 0001 7225 45053 4000 FSYS 7226 7227 45054 1203 TAD ILC2 7228 45055 4517 TOCODE /*** CODE[ILC2] := LC ***/ 7229 45056 4540 POPJUMP;IFSTATEMENT 45057 0004 7230 45060 1202 IF1, TAD ILC1 7231 45061 5255 JMP .-4 /*** CODE[ILC1] := LC ***/ 7232 /PROCEDURE R E P E A T S T A T E M E N T 7233 / ----------------------------- 7234 / 7235 /CALL: PUSHJUMP;REPEATSTATEMENT /NO ARG'S! 7236 / 7237 /LOCAL VAR'S: 7238 45062 0000 RXTYP, 0 7239 45063 0000 RXREF, 0 7240 45064 0000 RLC1, 0 7241 7242 45065 1020 XREPEAT,TAD LC 7243 45066 3264 DCA RLC1 7244 45067 4542 INSYMBOL 7245 45070 4537 PUSHJUMP;STATEMENT 45071 0001 7246 45072 0271 FSYS+SET35 7247 7248 45073 4532 SKIPIFSYIN;SET31 45074 4245 7249 45075 5304 JMP REP1 7250 45076 4534 IFSY;SEMICOLON;JMP XREPEAT+2 45077 0030 45100 5267 7251 45101 4500 ERROR;16 /14 45102 0016 7252 45103 5270 JMP XREPEAT+3 7253 45104 4535 REP1, IFSYNOT;UNTILSY;JMP REPERR 45105 0055 45106 5330 7254 45107 4542 INSYMBOL 7255 45110 4537 PUSHJUMP;EXPRESSION 45111 0020 7256 45112 4000 FSYS 7257 45113 5062 RXTYP 7258 7259 45114 1262 TAD RXTYP 7260 45115 7450 SNA 7261 45116 5323 JMP .+5 7262 45117 1166 TAD [-BOOLS 7263 45120 7640 SZA CLA 7264 45121 4500 ERROR;21 /17 45122 0021 7265 45123 1264 TAD RLC1 7266 45124 3023 DCA IRY 7267 45125 4520 EMIT;13 /*** (11,RLC1) ***/ 45126 0013 7268 45127 5332 JMP .+3 7269 45130 4500 REPERR, ERROR;65 /53 45131 0065 7270 45132 4540 POPJUMP;REPEATSTATEMENT 45133 0006 7271 /PROCEDURE W H I L E S T A T E M E N T 7272 / --------------------------- 7273 / 7274 /CALL: PUSHJUMP;WHILESTATEMENT /NO ARG'S! 7275 / 7276 /LOCAL VAR'S (ON PAGE ZERO!): 7277 / WXTYP, 0 7278 / WXREF, 0 7279 / WLC1, 0 7280 / WLC2, 0 7281 7282 XWHILESTATEMENT, 7283 45134 4542 INSYMBOL 7284 45135 1020 TAD LC 7285 45136 3157 DCA WLC1 7286 45137 4537 PUSHJUMP;EXPRESSION 45140 0020 7287 45141 0276 FSYS+SET36 7288 45142 0155 WXTYP 7289 7290 45143 1155 TAD WXTYP 7291 45144 7450 SNA 7292 45145 5352 JMP .+5 7293 45146 1166 TAD [-BOOLS 7294 45147 7640 SZA CLA 7295 45150 4500 ERROR;21 /17 45151 0021 7296 45152 1020 TAD LC 7297 45153 3160 DCA WLC2 7298 45154 4520 EMIT;13 /*** (11) ***/ 45155 0013 7299 45156 4534 IFSY;DOSY;JMP .+4 45157 0057 45160 5364 7300 45161 4500 ERROR;66 /54 45162 0066 7301 45163 7410 SKP 7302 45164 4542 INSYMBOL 7303 45165 4537 PUSHJUMP;STATEMENT 45166 0001 7304 45167 4000 FSYS 7305 7306 45170 1157 TAD WLC1 7307 45171 3023 DCA IRY 7308 45172 4520 EMIT;12 /*** (10,WLC1) ***/ 45173 0012 7309 45174 1160 TAD WLC2 7310 45175 4517 TOCODE /*** CODE[WLC2] := LC ***/ 7311 45176 4540 POPJUMP;WHILESTATEMENT 45177 0007 7312 7313 PAGE 7314 /PROCEDURE F O R S T A T E M E N T 7315 / ----------------------- 7316 / 7317 /CALL: PUSHJUMP;FORSTATEMENT /NO ARG'S! 7318 / 7319 /LOCAL VAR'S: 7320 45200 0000 FXTYP, 0 7321 45201 0000 FXREF, 0 7322 45202 0000 CVT, 0 7323 45203 0000 FLC1, 0 7324 45204 0000 FLC2, 0 7325 45205 0000 FF, 0 7326 7327 XFORSTATEMENT, 7328 45206 4542 INSYMBOL 7329 45207 4535 IFSYNOT;IDENT;JMP FOR2 45210 0044 45211 5253 7330 45212 4536 LOCATE 7331 45213 3031 DCA J 7332 45214 4542 INSYMBOL 7333 45215 1031 TAD J 7334 45216 7650 SNA CLA 7335 45217 5250 JMP FOR1+2 7336 45220 4513 WITHTABDO 7337 45221 7340 L7777 /1=VARIABLE 7338 45222 1051 TAD OBJ0 7339 45223 7640 SZA CLA 7340 45224 5246 JMP FOR1 7341 45225 1052 TAD TYP0 7342 45226 3202 DCA CVT 7343 45227 1055 TAD LEV0 7344 45230 3022 DCA IRX 7345 45231 1056 TAD ADR0 7346 45232 3023 DCA IRY 7347 45233 4520 EMIT;0 /*** (0,LEV,ADR) ***/ 45234 0000 7348 45235 7344 L7776 /2=REALS 7349 45236 1202 TAD CVT 7350 45237 7450 SNA 7351 45240 5243 JMP .+3 7352 45241 1175 TAD [-2 /2+2=4=CHARS (LAST STANTYP) 7353 45242 7740 SMA SZA CLA 7354 45243 4500 ERROR;22 /18 45244 0022 7355 45245 5256 JMP FOR3 7356 45246 4500 FOR1, ERROR;45 /37 45247 0045 7357 45250 7301 L0001 /1=INTS 7358 45251 3202 DCA CVT 7359 45252 5256 JMP FOR3 7360 45253 4531 FOR2, SKIP;FSYS+SET37;2 /2 45254 0303 45255 0002 7361 45256 4535 FOR3, IFSYNOT;BECOMES;JMP FOR4 45257 0033 45260 5275 7362 45261 4542 INSYMBOL 7363 45262 4537 PUSHJUMP;EXPRESSION 45263 0020 7364 45264 0310 FSYS+SET38 7365 45265 5200 FXTYP 7366 7367 45266 1200 TAD FXTYP 7368 45267 7041 CIA 7369 45270 1202 TAD CVT 7370 45271 7640 SZA CLA 7371 45272 4500 ERROR;23 /19 45273 0023 7372 45274 5300 JMP FOR5 7373 45275 4531 FOR4, SKIP;FSYS+SET38;63 /51 45276 0310 45277 0063 7374 45300 1377 FOR5, TAD (16 /14 7375 45301 3205 DCA FF 7376 45302 4532 SKIPIFSYIN;SET39 45303 4315 7377 45304 5326 JMP FOR6 7378 45305 4534 IFSY;DOWNTOSY;L0002 45306 0061 45307 7326 7379 45310 1377 TAD (16 7380 45311 3205 DCA FF 7381 45312 4542 INSYMBOL 7382 45313 4537 PUSHJUMP;EXPRESSION 45314 0020 7383 45315 0276 FSYS+SET36 7384 45316 5200 FXTYP 7385 7386 45317 1200 TAD FXTYP 7387 45320 7041 CIA 7388 45321 1202 TAD CVT 7389 45322 7640 SZA CLA 7390 45323 4500 ERROR;23 /19 45324 0023 7391 45325 5331 JMP FOR7 7392 45326 4531 FOR6, SKIP;FSYS+SET36;67 /55 45327 0276 45330 0067 7393 45331 1020 FOR7, TAD LC 7394 45332 3203 DCA FLC1 7395 45333 1205 TAD FF 7396 45334 3336 DCA .+2 7397 45335 4520 EMIT;00 /*** (14) OR (16) ***/ 45336 0000 7398 45337 4534 IFSY;DOSY;JMP .+4 45340 0057 45341 5345 7399 45342 4500 ERROR;66 /54 45343 0066 7400 45344 7410 SKP 7401 45345 4542 INSYMBOL 7402 45346 1020 TAD LC 7403 45347 3204 DCA FLC2 7404 45350 4537 PUSHJUMP;STATEMENT 45351 0001 7405 45352 4000 FSYS 7406 7407 45353 1204 TAD FLC2 7408 45354 3023 DCA IRY 7409 45355 7301 L0001 7410 45356 1205 TAD FF 7411 45357 3361 DCA .+2 7412 45360 4520 EMIT;00 /*** (15,FLC2) OR (17,FLC2) ***/ 45361 0000 7413 45362 1203 TAD FLC1 7414 45363 4517 TOCODE /*** CODE[FLC1] := LC ***/ 7415 45364 4540 POPJUMP;FORSTATEMENT 45365 0010 7416 7417 45377 0016 PAGE 7418 /PROCEDURE S T A N D P R O C 7419 / ----------------- 7420 / 7421 /CALL: PUSHJUMP;STANDPROC 7422 / I /VALUE 7423 / 7424 /LOCAL VAR'S: 7425 45400 0000 PRCN, 0 7426 45401 0000 SPXTYP, 0 7427 45402 0000 SPXREF, 0 7428 45403 0000 SPYTYP, 0 7429 45404 0000 SPYREF, 0 7430 7431 45405 1200 XSTPROC,TAD PRCN 7432 45406 1377 TAD (JMP I STPRTAB-1 7433 45407 3210 DCA .+1 7434 45410 7402 HLT 7435 7436 45411 5417 STPRTAB,SPREAD 7437 45412 5417 SPREAD 7438 45413 5600 SPWRITE 7439 45414 5600 SPWRITE 7440 45415 5572 SPHALT 7441 45416 5537 SPASCII 7442 7443 45417 4535 SPREAD, IFSYNOT;LPARENT;JMP SPR3 45420 0023 45421 5330 7444 45422 4542 SPR1, INSYMBOL 7445 45423 4534 IFSY;IDENT;JMP .+4 45424 0044 45425 5231 7446 45426 4500 ERROR;2 /2 45427 0002 7447 45430 5312 JMP SPR2 7448 45431 4536 LOCATE 7449 45432 3031 DCA J 7450 45433 4542 INSYMBOL 7451 45434 1031 TAD J 7452 45435 7650 SNA CLA 7453 45436 5312 JMP SPR2 7454 45437 4513 WITHTABDO 7455 45440 7340 L7777 /1=VARIABLE 7456 45441 1051 TAD OBJ0 7457 45442 7650 SNA CLA 7458 45443 5247 JMP .+4 7459 45444 4500 ERROR;45 /37 45445 0045 7460 45446 5312 JMP SPR2 7461 45447 1052 TAD TYP0 7462 45450 3201 DCA SPXTYP 7463 45451 1053 TAD REF0 7464 45452 3202 DCA SPXREF 7465 45453 1055 TAD LEV0 7466 45454 3022 DCA IRX 7467 45455 1056 TAD ADR0 7468 45456 3023 DCA IRY 7469 45457 1054 TAD NORM0 7470 45460 7650 SNA CLA 7471 45461 7001 IAC 7472 45462 3264 DCA .+2 7473 45463 4520 EMIT;00 /*** (0,LEV,ADR) OR (1,LEV,ADR) ***/ 45464 0000 7474 45465 4532 SKIPIFSYIN;SET22 45466 4170 7475 45467 5274 JMP .+5 7476 45470 4537 PUSHJUMP;SELECTOR 45471 0012 7477 45472 0202 FSYS+SET24 7478 45473 5401 SPXTYP 7479 7480 45474 7346 L7775 /3=BOOLS 7481 45475 1201 TAD SPXTYP 7482 45476 7450 SNA 7483 45477 5310 JMP SPR2-2 7484 45500 1376 TAD (-1 /4=CHARS (LAST STANTYP) 7485 45501 7740 SMA SZA CLA 7486 45502 5310 JMP SPR2-2 7487 45503 1201 TAD SPXTYP 7488 45504 3023 DCA IRY 7489 45505 4520 EMIT;33 /*** (27,TYP) ***/ 45506 0033 7490 45507 5312 JMP SPR2 7491 45510 4500 ERROR;50 /40 45511 0050 7492 45512 4527 SPR2, TEST;SET24;FSYS;6 /6 45513 4202 45514 4000 45515 0006 7493 45516 4534 IFSY;COMMA;JMP SPR1 45517 0027 45520 5222 7494 45521 4534 IFSY;RPARENT;JMP .+4 45522 0024 45523 5327 7495 45524 4500 ERROR;4 /4 45525 0004 7496 45526 7410 SKP 7497 45527 4542 INSYMBOL 7498 45530 7344 SPR3, L7776 /-2 7499 45531 1200 TAD PRCN 7500 45532 7650 SNA CLA 7501 45533 4520 EMIT;76 /*** (62) ***/ 45534 0076 7502 45535 4540 POPJUMP;STANDPROC 45536 0011 7503 45537 4535 SPASCII,IFSYNOT;LPARENT;JMP SPASC2 45540 0023 45541 5370 7504 45542 4542 SPASC1, INSYMBOL 7505 45543 4537 PUSHJUMP;EXPRESSION 45544 0020 7506 45545 0202 FSYS+SET24 7507 45546 5401 SPXTYP 7508 7509 45547 7340 L7777 /1=INTS 7510 45550 1201 TAD SPXTYP 7511 45551 7640 SZA CLA 7512 45552 4500 ERROR;53 /43 45553 0053 7513 45554 4520 EMIT;75 /*** (61) ***/ 45555 0075 7514 45556 4534 IFSY;COMMA;JMP SPASC1 45557 0027 45560 5342 7515 45561 4534 IFSY;RPARENT;JMP .+4 45562 0024 45563 5367 7516 45564 4500 ERROR;4 /4 45565 0004 7517 45566 7410 SKP 7518 45567 4542 INSYMBOL 7519 45570 4540 SPASC2, POPJUMP;STANDPROC 45571 0011 7520 7521 7522 45572 4520 SPHALT, EMIT;45 /*** (37) ***/ 45573 0045 7523 45574 4540 POPJUMP;STANDPROC 45575 0011 7524 7525 45576 7777 PAGE 45577 5610 7526 45600 4535 SPWRITE,IFSYNOT;LPARENT;JMP SPW5 45601 0023 45602 5340 7527 45603 4542 SPW1, INSYMBOL 7528 45604 4535 IFSYNOT;STRING;JMP SPW2 45605 0003 45606 5244 7529 45607 1036 TAD SLENG 7530 45610 3023 DCA IRY 7531 45611 4520 EMIT;30 /*** (24,SLENG) ***/ 45612 0030 7532 45613 1047 TAD NUM+3 7533 45614 3243 DCA STRNUM 7534 45615 4542 INSYMBOL 7535 45616 4535 IFSYNOT;COLON;JMP SPW1A 45617 0032 45620 5234 7536 45621 4542 INSYMBOL 7537 45622 4537 PUSHJUMP;EXPRESSION 45623 0020 7538 45624 0202 FSYS+SET24 7539 45625 5403 SPYTYP 7540 7541 45626 7340 L7777 /1=INTS 7542 TAD SPYTYP off page ^ 45627 1777 7543 45630 7640 SZA CLA 7544 45631 4500 ERROR;53 /43 45632 0053 7545 45633 5236 JMP .+3 7546 45634 4520 SPW1A, EMIT;30 /*** (24,0) ***/ 45635 0030 7547 45636 1243 TAD STRNUM 7548 45637 3023 DCA IRY 7549 45640 4520 EMIT;34 /*** (28,NUM) ***/ 45641 0034 7550 45642 5326 JMP SPW4 7551 45643 0000 STRNUM, 0 7552 7553 45644 4537 SPW2, PUSHJUMP;EXPRESSION 45645 0020 7554 45646 0175 FSYS+SET23 7555 45647 5401 SPXTYP 7556 7557 TAD SPXTYP off page ^ 45650 1776 7558 45651 1167 TAD [-CHARS 7559 45652 7740 SMA SZA CLA 7560 45653 4500 ERROR;51 /41 45654 0051 7561 45655 4535 IFSYNOT;COLON;JMP SPW3+1 45656 0032 45657 5320 7562 45660 4542 INSYMBOL 7563 45661 4537 PUSHJUMP;EXPRESSION 45662 0020 7564 45663 0175 FSYS+SET23 7565 45664 5403 SPYTYP 7566 7567 45665 7340 L7777 /1=INTS 7568 TAD SPYTYP off page ^ 45666 1777 7569 45667 7640 SZA CLA 7570 45670 4500 ERROR;53 /43 45671 0053 7571 45672 4535 IFSYNOT;COLON;JMP SPW3 45673 0032 45674 5317 7572 45675 7344 L7776 /2=REALS 7573 TAD SPXTYP off page ^ 45676 1776 7574 45677 7640 SZA CLA 7575 45700 4500 ERROR;52 /42 45701 0052 7576 45702 4542 INSYMBOL 7577 45703 4537 PUSHJUMP;EXPRESSION 45704 0020 7578 45705 0202 FSYS+SET24 7579 45706 5403 SPYTYP 7580 7581 45707 7340 L7777 /1=INTS 7582 TAD SPYTYP off page ^ 45710 1777 7583 45711 7640 SZA CLA 7584 45712 4500 ERROR;53 /43 45713 0053 7585 45714 4520 EMIT;37 /*** (31) ***/ 45715 0037 7586 45716 5326 JMP SPW4 7587 45717 7301 SPW3, L0001 7588 45720 1375 TAD (35 7589 45721 3325 DCA .+4 7590 TAD SPXTYP off page ^ 45722 1776 7591 45723 3023 DCA IRY 7592 45724 4520 EMIT;00 /*** (29,TYP) OR (30,TYP) ***/ 45725 0000 7593 45726 4534 SPW4, IFSY;COMMA;JMP SPW1 45727 0027 45730 5203 7594 45731 4534 IFSY;RPARENT;JMP .+4 45732 0024 45733 5337 7595 45734 4500 ERROR;4 /4 45735 0004 7596 45736 7410 SKP 7597 45737 4542 INSYMBOL 7598 SPW5, TAD PRCN off page ^ 45740 1774 7599 45741 1167 TAD [-4 7600 45742 7650 SNA CLA 7601 45743 4520 EMIT;77 /*** (63) ***/ 45744 0077 7602 45745 4540 POPJUMP;STANDPROC 45746 0011 7603 7604 45774 5400 PAGE 45775 0035 45776 5401 45777 5403 7605 /PROCEDURE S T A T E M E N T 7606 / ----------------- 7607 / 7608 /CALL: PUSHJUMP;STATEMENT 7609 / SETX 7610 / 7611 /NO LOCAL VAR'S! 7612 XSTATEMENT, 7613 46000 4532 SKIPIFSYIN;SET40 46001 4322 7614 46002 5305 JMP STAT2 7615 46003 4535 IFSYNOT;IDENT;JMP STAT1 46004 0044 46005 5300 7616 46006 4536 LOCATE 7617 46007 3031 DCA J 7618 46010 4542 INSYMBOL 7619 46011 1031 TAD J 7620 46012 7650 SNA CLA 7621 46013 5305 JMP STAT2 7622 46014 4513 WITHTABDO 7623 46015 1051 TAD OBJ0 7624 46016 1226 TAD JMPOBJ 7625 46017 3220 DCA .+1 7626 46020 7402 HLT 7627 7628 46021 6027 OBJTABL,IDCON 7629 46022 6032 IDVAR 7630 46023 6027 IDTYP 7631 46024 6043 IDPRO 7632 46025 6063 IDFUN 7633 7634 46026 5621 JMPOBJ, JMP I OBJTABL 7635 7636 IDCON, 7637 46027 4500 IDTYP, ERROR;55 /45 46030 0055 7638 46031 5305 JMP STAT2 7639 7640 46032 1055 IDVAR, TAD LEV0 7641 46033 3240 DCA .+5 7642 46034 1056 TAD ADR0 7643 46035 3241 DCA .+4 7644 46036 4537 PUSHJUMP;ASSIGNMENT 46037 0002 7645 46040 0000 0 7646 46041 0000 0 7647 46042 5305 JMP STAT2 7648 7649 46043 1055 IDPRO, TAD LEV0 7650 46044 7650 SNA CLA 7651 46045 5255 JMP IDPRO1 7652 46046 1031 TAD J 7653 46047 3253 DCA .+4 7654 46050 4537 PUSHJUMP;CALL 46051 0013 7655 46052 4000 FSYS 7656 46053 0000 0 7657 46054 5305 JMP STAT2 7658 7659 46055 1056 IDPRO1, TAD ADR0 7660 46056 3261 DCA .+3 7661 46057 4537 PUSHJUMP;STANDPROC 46060 0011 7662 46061 0000 0 7663 46062 5305 JMP STAT2 7664 7665 46063 4505 IDFUN, OFDISPLAY 7666 46064 7041 CIA 7667 46065 1053 TAD REF0 7668 46066 7640 SZA CLA 7669 46067 5227 JMP IDTYP 7670 46070 7301 L0001 7671 46071 1055 TAD LEV0 7672 46072 3275 DCA .+3 7673 46073 4537 PUSHJUMP;ASSIGNMENT 46074 0002 7674 46075 0000 0 7675 46076 0000 0000 /ALWAYS 0! 7676 46077 5305 JMP STAT2 7677 7678 46100 1037 STAT1, TAD SY 7679 46101 1313 TAD STATNO 7680 46102 3304 DCA .+2 7681 46103 4537 PUSHJUMP;00 46104 0000 7682 46105 4527 STAT2, TEST;FSYS;SET0;16 /14 46106 4000 46107 4012 46110 0016 7683 46111 4540 POPJUMP;STATEMENT 46112 0001 7684 7685 46113 7736 STATNO, COMPOUNDSTATEMENT-BEGINSY 7686 /PROCEDURE B L O C K 7687 / --------- 7688 / 7689 /CALL: PUSHJUMP;BLOCK 7690 / SETX 7691 / ISFUN /VALUE 7692 / LEVEL /VALUE 7693 / 7694 /LOCAL VAR'S (ON PAGE ZERO!): 7695 / FSYS 7696 / ISFUN, 0 7697 / LEVEL, 0 7698 / DX, 0 7699 / PRT, 0 7700 / PRB, 0 7701 7702 46114 7760 MAXLEV, -LMAX /CONSTANT 7703 46115 1101 TOFAT5, FATAL5 7704 46116 0005 C0005, 5 7705 46117 6243 BLK1, BLO1 7706 46120 6251 BLK2, BLO2 7707 46121 6247 BLK2M2, BLO2-2 7708 7709 46122 1316 XBLOCK, TAD C0005 7710 46123 3062 DCA DX 7711 46124 1025 TAD T 7712 46125 3063 DCA PRT 7713 46126 1061 TAD LEVEL 7714 46127 1314 TAD MAXLEV 7715 46130 7740 SMA SZA CLA 7716 46131 5715 JMP I TOFAT5 /TOO MUCH LEVELS! 7717 46132 4527 TEST;SET41;FSYS;7 /7 46133 4327 46134 4000 46135 0007 7718 46136 4524 ENTERBLOCK 7719 46137 1024 TAD B 7720 46140 4506 TODISPLAY 7721 46141 1024 TAD B 7722 46142 3064 DCA PRB 7723 46143 1063 TAD PRT 7724 46144 4513 WITHTABDO 7725 46145 3052 DCA TYP0 /0=NOTYP 7726 46146 1064 TAD PRB 7727 46147 3053 DCA REF0 7728 46150 4514 ENDWITH 7729 46151 4534 IFSY;LPARENT;PUSHJUMP;PARAMETERLIST 46152 0023 46153 4537 46154 0030 7730 46155 1064 TAD PRB 7731 46156 3033 DCA JB 7732 46157 1025 TAD T 7733 46160 4512 TOBTAB;LASTPAR 46161 7401 7734 46162 1062 TAD DX 7735 46163 4512 TOBTAB;PSIZE 46164 7402 7736 46165 1060 TAD ISFUN 7737 46166 7650 SNA CLA 7738 46167 5720 JMP I BLK2 7739 46170 4535 IFSYNOT;COLON;JMP I BLK2M2 46171 0032 46172 5721 7740 46173 4542 INSYMBOL 7741 46174 4535 IFSYNOT;IDENT;JMP I BLK1 46175 0044 46176 5717 7742 46177 4536 LOCATE 7743 46200 3031 DCA J 7744 46201 4542 INSYMBOL 7745 46202 1031 TAD J 7746 46203 7650 SNA CLA 7747 46204 5251 JMP BLO2 7748 46205 4502 OFTAB;OBJ 46206 0001 7749 46207 7002 BSW 7750 46210 0177 AND [77 7751 46211 1175 TAD [-2 /2=TYPE1 7752 46212 7650 SNA CLA 7753 46213 5217 JMP .+4 7754 46214 4500 ERROR;35 /29 46215 0035 7755 46216 5251 JMP BLO2 7756 46217 4502 OFTAB;TYP 46220 0001 7757 46221 0177 AND [77 7758 46222 3021 DCA TEMP 7759 46223 1021 TAD TEMP 7760 46224 1167 TAD [-4 7761 46225 7750 SPA SNA CLA 7762 46226 5232 JMP .+4 7763 46227 4500 ERROR;17 /15 46230 0017 7764 46231 5251 JMP BLO2 7765 46232 1063 TAD PRT 7766 46233 3031 DCA J 7767 46234 7325 L0003 /3=PROZEDURE 7768 46235 1060 TAD ISFUN 7769 46236 7002 BSW 7770 46237 1021 TAD TEMP 7771 46240 4510 TOTAB;TYP 46241 0001 7772 46242 5251 JMP BLO2 7773 46243 4531 BLO1, SKIP;FSYS+SET20;2 /2 46244 0156 46245 0002 7774 46246 5251 JMP BLO2 7775 46247 4500 ERROR;5 /5 46250 0005 7776 46251 4534 BLO2, IFSY;SEMICOLON;JMP .+4 46252 0030 46253 5257 7777 46254 4500 ERROR;16 /14 46255 0016 7778 46256 7410 SKP 7779 46257 4542 INSYMBOL 7780 46260 4534 BLO3, IFSY;CONSTSY;PUSHJUMP;CONDECL 46261 0034 46262 4537 46263 0021 7781 46264 4534 IFSY;TYPESY;PUSHJUMP;TYPDECL 46265 0035 46266 4537 46267 0022 7782 46270 4534 IFSY;VARSY;PUSHJUMP;VARDECL 46271 0036 46272 4537 46273 0023 7783 46274 1064 TAD PRB 7784 46275 3033 DCA JB 7785 46276 1062 TAD DX 7786 46277 4512 TOBTAB;VSIZE 46300 7403 7787 46301 4532 BLO4, SKIPIFSYIN;SET42 46302 4334 7788 46303 5307 JMP .+4 7789 46304 4537 PUSHJUMP;PRODECL 46305 0024 7790 46306 5301 JMP BLO4 7791 46307 4527 TEST;SET43;SET44;70 /56 46310 4341 46311 4346 46312 0070 7792 46313 4532 SKIPIFSYIN;STATBGS 46314 4043 7793 46315 5260 JMP BLO3 7794 46316 1063 TAD PRT 7795 46317 3031 DCA J 7796 46320 1020 TAD LC 7797 46321 4510 TOTAB;ADR 46322 0003 7798 46323 4542 BLO5, INSYMBOL 7799 46324 4537 PUSHJUMP;STATEMENT 46325 0001 7800 46326 0240 FSYS+SET30 7801 46327 4532 SKIPIFSYIN;SET31 46330 4245 7802 46331 5340 JMP BLO6 7803 46332 4534 IFSY;SEMICOLON;JMP BLO5 46333 0030 46334 5323 7804 46335 4500 ERROR;16 /14 46336 0016 7805 46337 5324 JMP BLO5+1 7806 46340 4534 BLO6, IFSY;ENDSY;JMP .+4 46341 0053 46342 5346 7807 46343 4500 ERROR;71 /57 46344 0071 7808 46345 7410 SKP 7809 46346 4542 INSYMBOL 7810 46347 4527 TEST;FSYS+SET45;SET0;6 /6 46350 0353 46351 4012 46352 0006 7811 46353 4540 POPJUMP;BLOCK 46354 0000 7812 7813 PAGE 7814 /M A C R O - I N S T R U C T I O N S : 7815 7816 7817 /P U S H J U M P /RECURSIVE CALL OF COMPILER PROCEDURES 7818 /CALL: PUSHJUMP;NAME 7819 /P O P J U M P /RETURN FROM PROCEDURE 7820 /CALL: POPJUMP;NAME 7821 7822 7823 /LOCAL, 0 /START OF LOCAL VARIABLES - 1 7824 /LENGTH, 0 / - NO. OF LOC'S TO PUSH (EXCL. FSYS) 7825 /PARAM, 0 /NO. OF PARAMETERS + 4000 (IF 1ST ONE IS A SET) 7826 46400 0000 PSTART, 0 /STARTING ADDRESS OF PROCEDURE 7827 7828 46401 0000 PPP, 0 /STACK POINTER (POINTS ALWAYS TO 1ST FREE LOC.) 7829 7830 7831 46402 0000 CONTROL,0 7832 46403 7106 CLL RTL 7833 46404 1377 TAD (PUSHTABLE-1 7834 46405 3010 DCA XR10 7835 46406 6231 CDF SETFIELD 7836 46407 1410 TAD I XR10 7837 46410 3075 DCA LOCAL 7838 46411 1410 TAD I XR10 7839 46412 3076 DCA LENGTH 7840 46413 1410 TAD I XR10 7841 46414 3077 DCA PARAM 7842 46415 1410 TAD I XR10 7843 46416 3200 DCA PSTART 7844 46417 6241 CDF COMPFIELD 7845 46420 5602 JMP I CONTROL 7846 7847 46421 0000 PUSH, 0 7848 46422 6251 CDF PUSHFIELD 7849 46423 3601 DCA I PPP 7850 46424 6241 CDF COMPFIELD 7851 46425 2201 ISZ PPP 7852 46426 5621 JMP I PUSH 7853 46427 4501 FATAL8, FATAL /PROGRAMM TOO COMPLEX ---> STACK FULL! 7854 7855 46430 0000 POP, 0 7856 46431 7340 L7777 7857 46432 1201 TAD PPP 7858 46433 3201 DCA PPP 7859 46434 6251 CDF PUSHFIELD 7860 46435 1601 TAD I PPP 7861 46436 6241 CDF COMPFIELD 7862 46437 5630 JMP I POP 7863 7864 46440 0000 XPUSHJ, 0 7865 46441 1640 TAD I XPUSHJ 7866 46442 2240 ISZ XPUSHJ 7867 46443 4202 JMS CONTROL 7868 46444 1076 TAD LENGTH 7869 46445 7650 SNA CLA 7870 46446 5255 JMP PUFSYS 7871 46447 1075 TAD LOCAL 7872 46450 3010 DCA XR10 7873 46451 1410 TAD I XR10 7874 46452 4221 JMS PUSH /PUSH LOCAL VARIABLES (IF ANY) 7875 46453 2076 ISZ LENGTH 7876 46454 5251 JMP .-3 7877 46455 1077 PUFSYS, TAD PARAM 7878 46456 7700 SMA CLA 7879 46457 5305 JMP GETPAR 7880 46460 7350 L3777 /FSYS-1 7881 46461 3010 DCA XR10 7882 46462 1171 TAD [-5 7883 46463 3076 DCA LENGTH 7884 46464 6231 CDF SETFIELD 7885 46465 1410 TAD I XR10 7886 46466 4221 JMS PUSH /PUSH FSYS (IF NECESSARY) 7887 46467 2076 ISZ LENGTH 7888 46470 5264 JMP .-4 7889 46471 7330 GEFSYS, L4000 /GET SET-ARGUMENT (IF PRESENT) 7890 46472 3302 DCA SETA 7891 46473 1640 TAD I XPUSHJ 7892 46474 7510 SPA 7893 46475 3302 DCA SETA /<0: FSYS OR SETX ONLY 7894 46476 1302 TAD SETA />0: FSYS+SETX 7895 46477 3303 DCA SETB 7896 46500 2240 ISZ XPUSHJ 7897 46501 4533 UNION 7898 46502 4000 SETA, FSYS 7899 46503 4012 SETB, SET0 7900 46504 4000 FSYS 7901 46505 1077 GETPAR, TAD PARAM /GET PARAMETERS 7902 46506 0177 AND [77 7903 46507 7450 SNA 7904 46510 5323 JMP RECALL 7905 46511 7041 CIA 7906 46512 3076 DCA LENGTH 7907 46513 1075 TAD LOCAL 7908 46514 3010 DCA XR10 7909 46515 1640 TAD I XPUSHJ 7910 46516 2240 ISZ XPUSHJ 7911 46517 3410 DCA I XR10 7912 46520 2076 ISZ LENGTH 7913 46521 5315 JMP .-4 7914 JMS VARIN /PASS VAR-PARAMETERS (IF ANY) off page ^ 46522 4776 7915 46523 1240 RECALL, TAD XPUSHJ 7916 46524 4221 JMS PUSH /PUSH RETURN ADDRESS 7917 46525 5600 JMP I PSTART /AND J U M P TO PROCEDURE 7918 7919 46526 0000 XPOPJUMP,0 7920 46527 1726 TAD I XPOPJUMP 7921 46530 4202 JMS CONTROL 7922 46531 4230 JMS POP /GET RETURN ADDRESS 7923 46532 3200 DCA PSTART 7924 46533 1077 TAD PARAM 7925 46534 7700 SMA CLA 7926 46535 5353 JMP POVAR 7927 46536 1375 TAD (FSYS+4 7928 46537 3221 DCA PUSH /(MIS)USE THIS FREE LOC. 7929 46540 1171 TAD [-5 7930 46541 3202 DCA CONTROL 7931 46542 4230 JMS POP /POP FSYS (IF IT WAS PUSHED) 7932 46543 6231 CDF SETFIELD 7933 46544 3621 DCA I PUSH 7934 46545 7340 L7777 7935 46546 1221 TAD PUSH 7936 46547 3221 DCA PUSH 7937 46550 2202 ISZ CONTROL 7938 46551 5342 JMP .-7 7939 46552 6241 CDF COMPFIELD 7940 POVAR, JMS VARTM /TEMP. STORE VAR-PARAMETERS off page ^ 46553 4774 7941 46554 1076 TAD LENGTH 7942 46555 7450 SNA 7943 46556 5600 JMP I PSTART 7944 46557 7041 CIA 7945 46560 1075 TAD LOCAL 7946 46561 3221 DCA PUSH 7947 46562 4230 JMS POP /POP LOCAL VARIABLES (IF ANY) 7948 46563 3621 DCA I PUSH 7949 46564 7340 L7777 7950 46565 1221 TAD PUSH 7951 46566 3221 DCA PUSH 7952 46567 2076 ISZ LENGTH 7953 46570 5362 JMP .-6 7954 JMS VAREX /PASS VAR-PARAMETERS (IF ANY) off page ^ 46571 4773 7955 46572 5600 JMP I PSTART /R E T U R N 7956 7957 46573 0345 PAGE 46574 0317 46575 4004 46576 0276 46577 5754 7958 /M A C R O - I N S T R U C T I O N S : 7959 7960 7961 /O F D I S P L A Y /AC := DISPLAY[LEVEL] 7962 7963 /T O D I S P L A Y /DISPLAY[LEVEL] := AC 7964 7965 /O F T A B /AC := TAB[AC].SEL, IF AC=0 GET TAB[J].SEL 7966 7967 /T O T A B /TAB[J].SEL := AC 7968 7969 /O F A T A B /AC := ATAB[AC].SEL, IF AC=0 GET ATAB[JA].SEL 7970 7971 /T O A T A B /ATAB[JA].SEL := AC 7972 7973 /O F B T A B /AC := BTAB[AC].SEL, IF AC=0 GET BTAB[JB].SEL 7974 7975 /T O B T A B /BTAB[JB].SEL := AC 7976 7977 /W I T H T A B D O /GET AND UNPACK TAB[AC] OR TAB[J] 7978 7979 /E N D W I T H /PACK AND STORE UNPACKED ENTRY OF TAB 7980 7981 46600 0000 XOFDISP,0 7982 46601 1377 TAD (DISPLAY 7983 46602 1061 TAD LEVEL 7984 46603 3261 DCA QQ 7985 46604 1661 TAD I QQ 7986 46605 5600 JMP I XOFDISP 7987 7988 46606 0000 XTODISP,0 7989 46607 7421 MQL 7990 46610 1377 TAD (DISPLAY 7991 46611 1061 TAD LEVEL 7992 46612 3261 DCA QQ 7993 46613 7501 MQA 7994 46614 3661 DCA I QQ 7995 46615 5606 JMP I XTODISP 7996 7997 46616 0000 XOFTAB, 0 7998 46617 7450 SNA 7999 46620 1031 TAD J 8000 46621 7106 CLL RTL 8001 46622 1616 TAD I XOFTAB 8002 46623 3261 DCA QQ 8003 46624 2216 ISZ XOFTAB 8004 46625 6221 CDF TABLEFIELD 8005 46626 1661 TAD I QQ 8006 46627 6241 CDF COMPFIELD 8007 46630 5616 JMP I XOFTAB 8008 8009 46631 0000 XTOTAB, 0 8010 46632 7421 MQL 8011 46633 1031 TAD J 8012 46634 7106 CLL RTL 8013 46635 1631 TAD I XTOTAB 8014 46636 3261 DCA QQ 8015 46637 2231 ISZ XTOTAB 8016 46640 6221 CDF TABLEFIELD 8017 46641 7501 MQA 8018 46642 3661 DCA I QQ 8019 46643 6241 CDF COMPFIELD 8020 46644 5631 JMP I XTOTAB 8021 8022 46645 0000 XOFATAB,0 8023 46646 7450 SNA 8024 46647 1032 TAD JA 8025 46650 7104 CLL RAL 8026 46651 7106 CLL RTL 8027 46652 1645 TAD I XOFATAB 8028 46653 3261 DCA QQ 8029 46654 2245 ISZ XOFATAB 8030 46655 6221 CDF TABLEFIELD 8031 46656 1661 TAD I QQ 8032 46657 6241 CDF COMPFIELD 8033 46660 5645 JMP I XOFATAB 8034 8035 QQ=. 8036 46661 0000 XTOATAB,0 8037 46662 7421 MQL 8038 46663 1261 TAD XTOATAB 8039 46664 3231 DCA XTOTAB 8040 46665 1032 TAD JA 8041 46666 7104 CLL RAL 8042 46667 5234 JMP XTOTAB+3 8043 8044 46670 0000 XOFBTAB,0 8045 46671 7450 SNA 8046 46672 1033 TAD JB 8047 46673 7106 CLL RTL 8048 46674 1670 TAD I XOFBTAB 8049 46675 3261 DCA QQ 8050 46676 2270 ISZ XOFBTAB 8051 46677 6221 CDF TABLEFIELD 8052 46700 1661 TAD I QQ 8053 46701 6241 CDF COMPFIELD 8054 46702 5670 JMP I XOFBTAB 8055 8056 46703 0000 XTOBTAB,0 8057 46704 7421 MQL 8058 46705 1303 TAD XTOBTAB 8059 46706 3231 DCA XTOTAB 8060 46707 1033 TAD JB 8061 46710 5234 JMP XTOTAB+3 8062 8063 46711 0000 XWITHTAB,0 8064 46712 7450 SNA 8065 46713 1031 TAD J 8066 46714 7106 CLL RTL 8067 46715 3057 DCA JW /SYMBOL TABLE STARTS AT 0000 ! 8068 46716 1057 TAD JW 8069 46717 3010 DCA XR10 8070 46720 6221 CDF TABLEFIELD 8071 46721 1457 TAD I JW 8072 46722 3050 DCA LINK0 8073 46723 1410 TAD I XR10 8074 46724 7421 MQL 8075 46725 7501 MQA 8076 46726 7002 BSW 8077 46727 0177 AND [77 8078 46730 3051 DCA OBJ0 8079 46731 7501 MQA 8080 46732 0177 AND [77 8081 46733 3052 DCA TYP0 8082 46734 1410 TAD I XR10 8083 46735 7421 MQL 8084 46736 7501 MQA 8085 46737 7002 BSW 8086 46740 0177 AND [77 8087 46741 3053 DCA REF0 8088 46742 7501 MQA 8089 46743 0173 AND [40 8090 46744 3054 DCA NORM0 8091 46745 7501 MQA 8092 46746 0170 AND [17 8093 46747 3055 DCA LEV0 8094 46750 1410 TAD I XR10 8095 46751 3056 DCA ADR0 8096 46752 6241 CDF COMPFIELD 8097 46753 5711 JMP I XWITHTAB 8098 8099 46754 0000 XENDWITH,0 8100 46755 1057 TAD JW 8101 46756 3010 DCA XR10 8102 46757 6221 CDF TABLEFIELD 8103 46760 1050 TAD LINK0 8104 46761 3457 DCA I JW 8105 46762 1051 TAD OBJ0 8106 46763 7002 BSW 8107 46764 1052 TAD TYP0 8108 46765 3410 DCA I XR10 8109 46766 1053 TAD REF0 8110 46767 7002 BSW 8111 46770 1054 TAD NORM0 8112 46771 1055 TAD LEV0 8113 46772 3410 DCA I XR10 8114 46773 1056 TAD ADR0 8115 46774 3410 DCA I XR10 8116 46775 6241 CDF COMPFIELD 8117 46776 5754 JMP I XENDWITH 8118 8119 46777 7400 PAGE 8120 /M A C R O - I N S T R U C T I O N S : 8121 8122 /W I T H A T A B D O /GET AND UNPACK ATAB[JA] 8123 8124 /E N D A W I T H /PACK AND STORE UNPACKED ENTRY OF ATAB 8125 8126 /E M I T /EMIT INTERMEDIATE CODE (F,IRX,IRY) 8127 /CALL: EMIT;F 8128 8129 /T O C O D E /CODE[AC].IRY := LC 8130 8131 /E N T E R C O N S T A N T /ENTER REAL OR INTEGER INTO CONSTANT TABLE 8132 /CALL: ENTERCONSTANT;ADDRESS-1 8133 8134 8135 47000 0000 XWITHATAB,0 8136 47001 1032 TAD JA 8137 47002 7104 CLL RAL 8138 47003 7106 CLL RTL 8139 47004 1377 TAD (ATAB 8140 47005 3057 DCA JAW 8141 47006 1057 TAD JAW 8142 47007 3010 DCA XR10 8143 47010 1165 TAD [-7 8144 47011 3270 DCA QR 8145 47012 1376 TAD (DCA INXTP0 8146 47013 3216 DCA .+3 8147 47014 6221 CDF TABLEFIELD 8148 47015 1410 TAD I XR10 8149 47016 0000 0000 /DCA INXTP0 (MODIFIED INSTR.!) 8150 47017 2216 ISZ .-1 8151 47020 2270 ISZ QR 8152 47021 5215 JMP .-4 8153 47022 6241 CDF COMPFIELD 8154 47023 5600 JMP I XWITHATAB 8155 8156 47024 0000 XENDAW, 0 8157 47025 1057 TAD JAW 8158 47026 3010 DCA XR10 8159 47027 1165 TAD [-7 8160 47030 3270 DCA QR 8161 47031 1375 TAD (TAD INXTP0 8162 47032 3234 DCA .+2 8163 47033 6221 CDF TABLEFIELD 8164 47034 0000 0000 /TAD INXTP0 (MODIFIED INSTR.!) 8165 47035 3410 DCA I XR10 8166 47036 2234 ISZ .-2 8167 47037 2270 ISZ QR 8168 47040 5234 JMP .-4 8169 47041 6241 CDF COMPFIELD 8170 47042 5624 JMP I XENDAW 8171 8172 47043 0000 XEMIT, 0 8173 47044 1020 TAD LC 8174 47045 7104 CLL RAL 8175 47046 3270 DCA XTOCODE 8176 47047 1643 TAD I XEMIT /GET OP-CODE 8177 47050 7002 BSW 8178 47051 1022 TAD IRX 8179 47052 6211 CDF CODEFIELD 8180 47053 3670 DCA I XTOCODE 8181 47054 2270 ISZ XTOCODE 8182 47055 1023 TAD IRY 8183 47056 3670 DCA I XTOCODE 8184 47057 6241 CDF COMPFIELD 8185 47060 2020 ISZ LC 8186 47061 1020 TAD LC 8187 47062 1374 TAD (-CMAX 8188 47063 7740 SMA SZA CLA 8189 47064 4501 FATAL6, FATAL /PROGRAM TOO LONG! 8190 47065 3022 DCA IRX 8191 47066 3023 DCA IRY 8192 47067 5643 JMP I XEMIT 8193 8194 QR=. 8195 47070 0000 XTOCODE,0 8196 47071 7124 STL RAL 8197 47072 3243 DCA XEMIT 8198 47073 6211 CDF CODEFIELD 8199 47074 1020 TAD LC 8200 47075 3643 DCA I XEMIT 8201 47076 6241 CDF COMPFIELD 8202 47077 5670 JMP I XTOCODE 8203 8204 CENTRY=XWITHATAB 8205 CTEMP=XENDAW 8206 FOUR=XEMIT 8207 8208 47100 0000 XENTCON,0 8209 47101 1700 TAD I XENTCON 8210 47102 3010 DCA XR10 8211 47103 2300 ISZ XENTCON 8212 47104 1027 TAD C 8213 47105 1167 TAD [-4 8214 47106 3200 DCA CENTRY 8215 47107 1030 TAD SX 8216 47110 7130 STL RAR 8217 47111 7041 CIA 8218 47112 1200 TAD CENTRY 8219 47113 7710 SPA CLA 8220 47114 4501 FATAL3, FATAL /TOO MUCH CONSTANTS! 8221 47115 1167 TAD [-4 8222 47116 3243 DCA FOUR 8223 47117 1200 TAD CENTRY 8224 47120 3012 DCA XR12 8225 47121 1410 TAD I XR10 8226 47122 6221 CDF TABLEFIELD 8227 47123 3412 DCA I XR12 8228 47124 6241 CDF COMPFIELD 8229 47125 2243 ISZ FOUR 8230 47126 5321 JMP .-5 8231 47127 1200 TAD CENTRY 8232 47130 3224 DCA CTEMP 8233 47131 6221 CDF TABLEFIELD 8234 47132 7307 SEARCH, L0004 8235 47133 1224 TAD CTEMP 8236 47134 3224 DCA CTEMP 8237 47135 1224 TAD CTEMP 8238 47136 1373 TAD (-ATAB+1 8239 47137 7700 SMA CLA 8240 47140 5360 JMP NOTFOUND 8241 47141 1167 TAD [-4 8242 47142 3243 DCA FOUR 8243 47143 1200 TAD CENTRY 8244 47144 3010 DCA XR10 8245 47145 1224 TAD CTEMP 8246 47146 3012 DCA XR12 8247 47147 1410 TAD I XR10 8248 47150 7041 CIA 8249 47151 1412 TAD I XR12 8250 47152 7640 SZA CLA 8251 47153 5332 JMP SEARCH 8252 47154 2243 ISZ FOUR 8253 47155 5347 JMP .-6 8254 47156 1224 TAD CTEMP /FOUND 8255 47157 5363 JMP .+4 8256 47160 1200 NOTFOUND,TAD CENTRY 8257 47161 3027 DCA C 8258 47162 1200 TAD CENTRY 8259 47163 6241 CDF COMPFIELD 8260 47164 5700 JMP I XENTCON 8261 8262 47173 1401 PAGE 47174 4104 47175 1050 47176 3050 47177 6400 8263 /M A C R O - I N S T R U C T I O N S : 8264 8265 8266 /E N T E R /ENTER OBJEJT INTO SYMBOL TABLE 8267 /CALL: ENTER;OBJ 8268 8269 /E N T E R V A R I A B L E 8270 8271 /E N T E R B L O C K 8272 8273 /E N T E R A R R A Y 8274 8275 /S I G N E D I N T E G E R /MAKE 12-BIT SIGNED INTEGER OF CONSTANT 8276 /CALL: SIGNEDINTEGER;ADDRESS-1 8277 8278 8279 47200 0000 XENTER, 0 8280 47201 1025 TAD T 8281 47202 1377 TAD (-TMAX 8282 47203 7700 SMA CLA 8283 47204 4501 FATAL1, FATAL /SYMBOL TABLE FULL! 8284 JMS ENTID off page ^ 47205 4776 8285 47206 4505 OFDISPLAY 8286 47207 4504 OFBTAB;LAST 47210 7400 8287 47211 3031 DCA J 8288 47212 1031 TAD J 8289 47213 3007 DCA L 8290 JMS CHKID off page ^ 47214 4775 8291 47215 5222 JMP .+5 8292 47216 4502 OFTAB;LINK 47217 0000 8293 47220 3031 DCA J 8294 47221 5214 JMP .-5 8295 47222 1031 TAD J 8296 47223 7650 SNA CLA 8297 47224 5230 JMP .+4 8298 47225 4500 ERROR;1 /1 47226 0001 8299 47227 5600 JMP I XENTER 8300 47230 2025 ISZ T 8301 47231 1025 TAD T 8302 JMS ENTID off page ^ 47232 4776 8303 47233 1600 TAD I XENTER 8304 47234 7421 MQL 8305 47235 7350 L3777 8306 47236 1025 TAD T 8307 47237 7126 STL RTL /4*T - 1 8308 47240 3010 DCA XR10 8309 47241 6221 CDF TABLEFIELD 8310 47242 1007 TAD L /LINK 8311 47243 3410 DCA I XR10 8312 47244 7501 MQA 8313 47245 7002 BSW /OBJ, TYP (0=NOTYP) 8314 47246 3410 DCA I XR10 8315 47247 1061 TAD LEVEL /REF=0, NORMAL=0, LEVEL 8316 47250 3410 DCA I XR10 8317 47251 3410 DCA I XR10 /ADR=0 8318 47252 6241 CDF COMPFIELD 8319 47253 4505 OFDISPLAY 8320 47254 3033 DCA JB 8321 47255 1025 TAD T 8322 47256 4512 TOBTAB;LAST 47257 7400 8323 47260 5600 JMP I XENTER 8324 8325 47261 0000 XENTVAR,0 8326 47262 4534 IFSY;IDENT;JMP .+4 47263 0044 47264 5270 8327 47265 4500 ERROR;2 /2 47266 0002 8328 47267 5661 JMP I XENTVAR 8329 47270 4521 ENTER;VARIABLE 47271 0001 8330 47272 4542 INSYMBOL 8331 47273 5661 JMP I XENTVAR 8332 8333 47274 0000 XENTBLO,0 8334 47275 1024 TAD B 8335 47276 1374 TAD (-BMAX 8336 47277 7700 SMA CLA 8337 47300 4501 FATAL2, FATAL /TOO MUCH BLOCKS! 8338 47301 2024 ISZ B 8339 47302 1024 TAD B 8340 47303 3033 DCA JB 8341 47304 4512 TOBTAB;LAST 47305 7400 8342 47306 4512 TOBTAB;LASTPAR 47307 7401 8343 47310 5674 JMP I XENTBLO 8344 8345 ATP=XENTBLO 8346 47311 0000 XENTARR,0 8347 47312 3274 DCA ATP 8348 47313 1034 TAD LO 8349 47314 7041 CIA 8350 47315 1035 TAD HI 8351 47316 7710 SPA CLA 8352 47317 4500 ERROR;33 /27 47320 0033 8353 47321 1026 TAD A 8354 47322 1374 TAD (-AMAX 8355 47323 7700 SMA CLA 8356 47324 4501 FATAL4, FATAL 8357 47325 2026 ISZ A 8358 47326 1026 TAD A 8359 47327 3032 DCA JA 8360 47330 1274 TAD ATP 8361 47331 4511 TOATAB;INXTYP 47332 6401 8362 47333 1034 TAD LO 8363 47334 4511 TOATAB;LOW 47335 6404 8364 47336 1035 TAD HI 8365 47337 4511 TOATAB;HIGH 47340 6405 8366 47341 5711 JMP I XENTARR 8367 8368 47342 0000 XSGNINT,0 8369 47343 7301 L0001 /LINK=0! 8370 47344 1742 TAD I XSGNINT 8371 47345 2342 ISZ XSGNINT 8372 47346 3010 DCA XR10 8373 47347 1410 TAD I XR10 8374 47350 7440 SZA 8375 47351 1164 TAD [4000 /LINK=1? ---> NEGATIVE 8376 47352 7640 SZA CLA 8377 47353 5365 JMP ERR49 8378 47354 1410 TAD I XR10 8379 47355 7640 SZA CLA 8380 47356 5365 JMP ERR49 8381 47357 1410 TAD I XR10 8382 47360 7510 SPA 8383 47361 5365 JMP ERR49 8384 47362 7430 SZL 8385 47363 7041 CIA 8386 47364 5742 JMP I XSGNINT 8387 47365 4500 ERR49, ERROR;61 /49 47366 0061 8388 47367 5742 JMP I XSGNINT 8389 8390 47374 7700 PAGE 47375 7474 47376 7455 47377 7000 8391 /-------- D I S P L A Y --------/ 8392 / 8393 *7400 8394 IFNZRO DISPLAY-. 8395 47400 0001 1 /DISPLAY[0] := 1 8396 47401 0000 ZBLOCK 17 47402 0000 47403 0000 47404 0000 47405 0000 47406 0000 47407 0000 47410 0000 47411 0000 47412 0000 47413 0000 47414 0000 47415 0000 47416 0000 47417 0000 8397 8398 /---------------------------------/ 8399 8400 8401 /M A C R O - I N S T R U C T I O N S : 8402 8403 8404 /L O C A T E /LOCATE IDENTIFIER IN SYMBOL TABLE 8405 /EXITS WITH TABLE INDEX IN AC 8406 8407 /E N T I D /TAB[AC].NAME := ID 8408 8409 /C H K I D /SKIP IF TAB[J].NAME <> ID 8410 8411 /G E T C O N S T A N T /NUM := CTAB[AC] 8412 8413 8414 47420 0000 XLOCATE,0 8415 47421 1061 TAD LEVEL 8416 47422 3007 DCA L 8417 47423 4255 JMS ENTID 8418 47424 1007 NSCOPE, TAD L 8419 47425 1377 TAD (TAD DISPLAY 8420 47426 3227 DCA .+1 8421 47427 0000 0000 /TAD DISPLAY (MODIFIED INSTR.!) 8422 47430 4504 OFBTAB;LAST 47431 7400 8423 47432 3031 DCA J 8424 47433 4274 JMS CHKID 8425 47434 5241 JMP .+5 8426 47435 4502 OFTAB;LINK 47436 0000 8427 47437 3031 DCA J 8428 47440 5233 JMP .-5 8429 47441 7340 L7777 8430 47442 1007 TAD L 8431 47443 3007 DCA L 8432 47444 1031 TAD J 8433 47445 7440 SZA 8434 47446 5620 JMP I XLOCATE 8435 47447 1007 TAD L 8436 47450 7700 SMA CLA 8437 47451 5224 JMP NSCOPE 8438 47452 4500 ERROR;0 0 47453 0000 8439 47454 5620 JMP I XLOCATE 8440 8441 47455 0000 ENTID, 0 8442 47456 7106 CLL RTL 8443 47457 1376 TAD (-1 8444 47460 3010 DCA XR10 8445 47461 6231 CDF NAMEFIELD 8446 47462 1040 TAD ID 8447 47463 3410 DCA I XR10 8448 47464 1041 TAD ID+1 8449 47465 3410 DCA I XR10 8450 47466 1042 TAD ID+2 8451 47467 3410 DCA I XR10 8452 47470 1043 TAD ID+3 8453 47471 3410 DCA I XR10 8454 47472 6241 CDF COMPFIELD 8455 47473 5655 JMP I ENTID 8456 8457 47474 0000 CHKID, 0 8458 47475 1031 TAD J 8459 47476 7106 CLL RTL 8460 47477 1376 TAD (-1 8461 47500 3010 DCA XR10 8462 47501 6231 CDF NAMEFIELD 8463 47502 1410 TAD I XR10 8464 47503 7041 CIA 8465 47504 1040 TAD ID 8466 47505 7640 SZA CLA 8467 47506 5325 JMP NOTEQL 8468 47507 1410 TAD I XR10 8469 47510 7041 CIA 8470 47511 1041 TAD ID+1 8471 47512 7640 SZA CLA 8472 47513 5325 JMP NOTEQL 8473 47514 1410 TAD I XR10 8474 47515 7041 CIA 8475 47516 1042 TAD ID+2 8476 47517 7640 SZA CLA 8477 47520 5325 JMP NOTEQL 8478 47521 1410 TAD I XR10 8479 47522 7041 CIA 8480 47523 1043 TAD ID+3 8481 47524 7640 SZA CLA 8482 47525 2274 NOTEQL, ISZ CHKID 8483 47526 6241 CDF COMPFIELD 8484 47527 5674 JMP I CHKID 8485 8486 47530 0000 XOFCONST,0 8487 47531 3010 DCA XR10 8488 47532 6221 CDF TABLEFIELD 8489 47533 1410 TAD I XR10 8490 47534 3044 DCA NUM 8491 47535 1410 TAD I XR10 8492 47536 3045 DCA NUM+1 8493 47537 1410 TAD I XR10 8494 47540 3046 DCA NUM+2 8495 47541 1410 TAD I XR10 8496 47542 3047 DCA NUM+3 8497 47543 6241 CDF COMPFIELD 8498 47544 5730 JMP I XOFCONST 8499 8500 47545 0000 XERROR, 0 8501 47546 7300 CLA CLL 8502 47547 1745 TAD I XERROR 8503 47550 6232 CIF SETFIELD 8504 47551 4775 JMS I (F3ERROR 8505 47552 5745 JMP I XERROR 8506 8507 47553 0000 XFATAL, 0 8508 47554 1353 TAD XFATAL 8509 47555 6233 CDF CIF SETFIELD 8510 47556 5774 JMP I (F3FATAL 8511 8512 47557 0000 XINSYMBOL,0 8513 47560 6203 CDF CIF 0 8514 47561 5773 JMP I (INSY0 8515 47562 3037 EXSY3, DCA SY 8516 47563 5757 JMP I XINSYMBOL 8517 8518 47573 7000 PAGE 47574 6602 47575 6406 47576 7777 47577 1200 8519 /M A C R O - I N S T R U C T I O N S : 8520 8521 8522 /T E S T S E M I C O L O N 8523 8524 /S K I P /CALL: SKIP;SETX;N 8525 8526 /T E S T /CALL: TEST;SETX;SETY;N 8527 8528 /S K I P I F S Y I N /CALL: SKIPIFSYIN;SETX 8529 8530 /I F S Y /CALL: IFSY;SYMBOL 8531 8532 /I F S Y N O T /CALL: IFSYNOT;SYMBOL 8533 8534 /U N I O N /CALL: UNION;SET1;SET2;S1US2 8535 8536 47600 0000 XTSTSEM,0 8537 47601 4534 IFSY;SEMICOLON;JMP .+6 47602 0030 47603 5211 8538 47604 4500 ERROR;16 /14 47605 0016 8539 47606 4532 SKIPIFSYIN;SET6 47607 4050 8540 47610 7410 SKP 8541 47611 4542 INSYMBOL 8542 47612 4527 TEST;SET7;FSYS;6 /6 47613 4055 47614 4000 47615 0006 8543 47616 5600 JMP I XTSTSEM 8544 8545 47617 0000 XSKIP, 0 8546 47620 1617 TAD I XSKIP 8547 47621 4270 JMS FSYSUSETX 8548 47622 3233 DCA .+11 8549 47623 2217 ISZ XSKIP 8550 47624 1617 TAD I XSKIP 8551 47625 3227 DCA .+2 8552 47626 4500 ERROR;00 /N 47627 0000 8553 47630 7410 SKP 8554 47631 4542 INSYMBOL 8555 47632 4532 SKIPIFSYIN;00 47633 0000 8556 47634 5231 JMP .-3 8557 47635 5617 JMP I XSKIP 8558 8559 47636 0000 XTEST, 0 8560 47637 1636 TAD I XTEST 8561 47640 4270 JMS FSYSUSETX 8562 47641 3244 DCA .+3 8563 47642 2236 ISZ XTEST 8564 47643 4532 SKIPIFSYIN;00 47644 0000 8565 47645 7410 SKP 8566 47646 5266 JMP XTST1 8567 47647 1244 TAD .-3 8568 47650 3256 DCA S1 8569 47651 1636 TAD I XTEST 8570 47652 4270 JMS FSYSUSETX 8571 47653 3257 DCA S2 8572 47654 2236 ISZ XTEST 8573 47655 4533 UNION 8574 47656 0000 S1, 0 8575 47657 0000 S2, 0 8576 47660 4005 S1US2 8577 47661 1636 TAD I XTEST 8578 47662 3265 DCA .+3 8579 47663 4531 SKIP;S1US2;00 /N 47664 4005 47665 0000 8580 47666 2236 XTST1, ISZ XTEST 8581 47667 5636 JMP I XTEST 8582 8583 47670 0000 FSYSUSETX, 0 8584 47671 7510 SPA 8585 47672 5670 JMP I FSYSUSETX 8586 47673 1164 TAD [4000 8587 47674 3277 DCA .+3 8588 47675 4533 UNION 8589 47676 4000 FSYS 8590 47677 0000 0 8591 47700 4005 S1US2 8592 47701 1300 TAD .-1 8593 47702 5670 JMP I FSYSUSETX 8594 8595 47703 0000 INSET, 0 8596 47704 1037 TAD SY 8597 47705 7104 CLL RAL 8598 47706 1377 TAD (SETTABLE 8599 47707 3257 DCA S2 8600 47710 1703 TAD I INSET 8601 47711 2303 ISZ INSET 8602 47712 6231 CDF SETFIELD 8603 47713 1657 TAD I S2 8604 47714 3256 DCA S1 /ADDRESS OF RELATIVE SET WORD 8605 47715 2257 ISZ S2 /ADDRESS OF BIT POS. REL. TO SY 8606 47716 1656 TAD I S1 8607 47717 0657 AND I S2 8608 47720 7640 SZA CLA 8609 47721 2303 ISZ INSET 8610 47722 6241 CDF COMPFIELD 8611 47723 5703 JMP I INSET 8612 8613 47724 0000 XIFSY, 0 8614 47725 1037 TAD SY 8615 47726 7041 CIA 8616 47727 1724 TAD I XIFSY 8617 47730 7640 SZA CLA 8618 47731 2324 ISZ XIFSY 8619 47732 2324 ISZ XIFSY 8620 47733 5724 JMP I XIFSY 8621 8622 47734 0000 XIFSYNOT,0 8623 47735 1037 TAD SY 8624 47736 7041 CIA 8625 47737 1734 TAD I XIFSYNOT 8626 47740 7650 SNA CLA 8627 47741 2334 ISZ XIFSYNOT 8628 47742 2334 ISZ XIFSYNOT 8629 47743 5734 JMP I XIFSYNOT 8630 8631 XSA=XIFSY /NORMAL LOC. 8632 XSB=XR10 /AUTO INDEX 8633 XSU=XR12 / - " - 8634 FIVE=XIFSYNOT 8635 8636 47744 0000 XUNION, 0 8637 47745 1744 TAD I XUNION 8638 47746 3324 DCA XSA 8639 47747 2344 ISZ XUNION 8640 47750 7340 L7777 8641 47751 1744 TAD I XUNION 8642 47752 3010 DCA XSB 8643 47753 2344 ISZ XUNION 8644 47754 7340 L7777 8645 47755 1744 TAD I XUNION 8646 47756 3012 DCA XSU 8647 47757 2344 ISZ XUNION 8648 47760 1171 TAD [-5 8649 47761 3334 DCA FIVE 8650 47762 6231 CDF SETFIELD 8651 47763 1724 TAD I XSA 8652 47764 7040 CMA 8653 47765 0410 AND I XSB 8654 47766 1724 TAD I XSA 8655 47767 3412 DCA I XSU 8656 47770 2324 ISZ XSA 8657 47771 2334 ISZ FIVE 8658 47772 5363 JMP .-7 8659 47773 6241 CDF COMPFIELD 8660 47774 5744 JMP I XUNION 8661 8662 47777 4365 PAGE 8663 /L O N G E R R O R M E S S A G E S 8664 8665 40164 4000 FIELD 6 40165 7771 40166 7775 40167 7774 40170 0017 40171 7773 40172 7772 40173 0040 40174 7760 40175 7776 40176 0005 40177 0077 8666 *0 8667 8668 60000 0000 ZBLOCK 73 /ERROR COUNTERS 60001 0000 60002 0000 60003 0000 60004 0000 60005 0000 60006 0000 60007 0000 60010 0000 60011 0000 60012 0000 60013 0000 60014 0000 60015 0000 60016 0000 60017 0000 60020 0000 60021 0000 60022 0000 60023 0000 60024 0000 60025 0000 60026 0000 60027 0000 60030 0000 60031 0000 60032 0000 60033 0000 60034 0000 60035 0000 60036 0000 60037 0000 60040 0000 60041 0000 60042 0000 60043 0000 60044 0000 60045 0000 60046 0000 60047 0000 60050 0000 60051 0000 60052 0000 60053 0000 60054 0000 60055 0000 60056 0000 60057 0000 60060 0000 60061 0000 60062 0000 60063 0000 60064 0000 60065 0000 60066 0000 60067 0000 60070 0000 60071 0000 60072 0000 8669 60073 7777 7777 /GUARD 8670 60074 0000 ERRSUM, 0 /NUMBER OF DETECTED ERRORS 8671 8672 *100 /ADDRESS LIST OF ERROR MESSAGES 8673 60100 0400 E00 8674 60101 0424 E01 8675 60102 0457 E02 8676 60103 0467 E03 8677 60104 0527 E04 8678 60105 0565 E05 8679 60106 0626 E06 8680 60107 0663 E07 8681 60110 0727 E08 8682 60111 0747 E09 8683 60112 1005 E10 8684 60113 1044 E11 8685 60114 1102 E12 8686 60115 1140 E13 8687 60116 1202 E14 8688 60117 1216 E15 8689 60120 1263 E16 8690 60121 1321 E17 8691 60122 1366 E18 8692 60123 1440 E19 8693 60124 1505 E20 8694 60125 1551 E21 8695 60126 1620 E22 8696 60127 1671 E23 8697 60130 1735 E24 8698 60131 1751 E25 8699 60132 2024 E26 8700 60133 2073 E27 8701 60134 2141 E28 8702 60135 2201 E29 8703 60136 2250 E30 8704 60137 2274 E31 8705 60140 2343 E32 8706 60141 2403 E33 8707 60142 2456 E34 8708 60143 2513 E35 8709 60144 2544 E36 8710 60145 2604 E37 8711 60146 2622 E38 8712 60147 2655 E39 8713 60150 2716 E40 8714 60151 2763 E41 8715 60152 3031 E42 8716 60153 3067 E43 8717 60154 3126 E44 8718 60155 3165 E45 8719 60156 3237 E46 8720 60157 3266 E47 8721 60160 3333 E48 8722 60161 3373 E49 8723 60162 3437 E50 8724 60163 3501 E51 8725 60164 3541 E52 8726 60165 3562 E53 8727 60166 3603 E54 8728 60167 3623 E55 8729 60170 3652 E56 8730 60171 3673 E57 8731 60172 3713 E58 8732 8733 *200 8734 60200 7300 EXPLAIN,CLA CLL 8735 60201 1074 TAD ERRSUM 8736 60202 7650 SNA CLA 8737 60203 5244 JMP EXCOMP 8738 60204 4263 JMS ECRLF 8739 60205 4263 JMS ECRLF 8740 60206 1377 TAD (EHEAD 8741 60207 3312 DCA ETEXT 8742 60210 4271 JMS EMESG 8743 60211 4263 JMS ECRLF 8744 60212 4263 JMS ECRLF 8745 60213 3243 DCA ENN 8746 60214 7410 SKP 8747 60215 2243 ELINE, ISZ ENN 8748 60216 1643 TAD I ENN 8749 60217 7510 SPA 8750 60220 5237 JMP EXOS8 8751 60221 7650 SNA CLA /SKP CLA ---> PRINT ALL! 8752 60222 5215 JMP ELINE 8753 60223 7203 CLA IAC BSW /L0100 8754 60224 1243 TAD ENN 8755 60225 3312 DCA ETEXT 8756 60226 1712 TAD I ETEXT 8757 60227 3312 DCA ETEXT 8758 60230 4271 JMS EMESG 8759 60231 4263 JMS ECRLF 8760 60232 5215 JMP ELINE 8761 8762 60233 7300 FXPLAIN,CLA CLL 8763 60234 1074 TAD ERRSUM 8764 60235 7640 SZA CLA 8765 60236 5205 JMP EXPLAIN+5 8766 60237 7300 EXOS8, CLA CLL 8767 60240 4263 JMS ECRLF 8768 60241 6203 CDF CIF 0 8769 60242 5776 JMP I (7605 8770 60243 0000 ENN, 0 8771 8772 60244 4263 EXCOMP, JMS ECRLF 8773 60245 4263 JMS ECRLF 8774 60246 1375 TAD (EOKAY 8775 60247 3312 DCA ETEXT 8776 60250 4271 JMS EMESG 8777 60251 4263 JMS ECRLF 8778 60252 4263 JMS ECRLF 8779 60253 6263 CDF CIF 60 8780 60254 5774 JMP I (INIT /INITIALIZE RUNTIME SYSTEM 8781 8782 60255 0000 EPRINT, 0 8783 60256 6046 TLS 8784 60257 6041 TSF 8785 60260 5257 JMP .-1 8786 60261 7300 CLA CLL 8787 60262 5655 JMP I EPRINT 8788 8789 60263 0000 ECRLF, 0 8790 60264 1373 TAD (215 8791 60265 4255 JMS EPRINT 8792 60266 1372 TAD (212 8793 60267 4255 JMS EPRINT 8794 60270 5663 JMP I ECRLF 8795 8796 60271 0000 EMESG, 0 8797 60272 1712 TAD I ETEXT 8798 60273 7002 BSW 8799 60274 4301 JMS EASCII 8800 60275 1712 TAD I ETEXT 8801 60276 4301 JMS EASCII 8802 60277 2312 ISZ ETEXT 8803 60300 5272 JMP EMESG+1 8804 8805 60301 0000 EASCII, 0 8806 60302 0371 AND (77 8807 60303 7450 SNA 8808 60304 5671 JMP I EMESG 8809 60305 1370 TAD (240 8810 60306 0371 AND (77 8811 60307 1370 TAD (240 8812 60310 4255 JMS EPRINT 8813 60311 5701 JMP I EASCII 8814 60312 0000 ETEXT, 0 8815 8816 60313 1317 EOKAY, TEXT /KOMPILATION EINWANDFREI!/ 60314 1520 60315 1114 60316 0124 60317 1117 60320 1640 60321 0511 60322 1627 60323 0116 60324 0406 60325 2205 60326 1141 60327 0000 8817 8818 60330 0522 EHEAD, TEXT /ERKLAERUNG DER FEHLER:/ 60331 1314 60332 0105 60333 2225 60334 1607 60335 4004 60336 0522 60337 4006 60340 0510 60341 1405 60342 2272 60343 0000 8819 8820 60370 0240 PAGE 60371 0077 60372 0212 60373 0215 60374 7600 60375 0313 60376 7605 60377 0330 8821 8822 /L O N G E R R O R M E S S A G E S 8823 / 8824 /(MADE INVISIBLE BY 'XLIST' TO SAVE PAPER IN ASSEMBLY LISTING!) 8825 8950 XLIST 8951 /R U N T I M E E R R O R S (ALWAYS FATAL!) 8952 8953 *DISPLAY 8954 /-------- D I S P L A Y --------/ 8955 67400 0000 ZBLOCK 20 67401 0000 67402 0000 67403 0000 67404 0000 67405 0000 67406 0000 67407 0000 67410 0000 67411 0000 67412 0000 67413 0000 67414 0000 67415 0000 67416 0000 67417 0000 8956 /---------------------------------/ 8957 8958 67420 0000 XHALT, 0 8959 67421 7300 CLA CLL 8960 67422 1072 TAD ZPRINT 8961 67423 3071 DCA PTPRINT /SWITCH TO TERMINAL OUTPUT! 8962 67424 1377 TAD (HLTLIST-1 8963 67425 3266 DCA HTEXT 8964 67426 2266 ISZ HTEXT 8965 67427 1666 TAD I HTEXT 8966 67430 1220 TAD XHALT 8967 67431 7640 SZA CLA 8968 67432 5226 JMP .-4 8969 67433 2266 ISZ HTEXT 8970 67434 1666 TAD I HTEXT 8971 67435 3266 DCA HTEXT 8972 67436 4473 CRLF 8973 67437 4473 CRLF 8974 67440 4254 JMS HMESG 8975 67441 1376 TAD (HLTAT 8976 67442 3266 DCA HTEXT 8977 67443 4254 JMS HMESG 8978 67444 7301 L0001 8979 67445 3034 DCA M 8980 67446 7340 L7777 8981 67447 1020 TAD PC 8982 67450 4467 LOAD 8983 JMS IOUT off page ^ 67451 4775 8984 67452 4473 CRLF 8985 67453 5460 JMP I OS8 8986 8987 67454 0000 HMESG, 0 8988 67455 1666 TAD I HTEXT 8989 67456 7450 SNA 8990 67457 5654 JMP I HMESG 8991 67460 7002 BSW 8992 JMS ASCII off page ^ 67461 4774 8993 67462 1666 TAD I HTEXT 8994 JMS ASCII off page ^ 67463 4774 8995 67464 2266 ISZ HTEXT 8996 67465 5255 JMP HMESG+1 8997 67466 0000 HTEXT, 0 8998 8999 67467 4472 HLTLIST,-ERROR0-1; HLT0 67470 7511 9000 67471 4410 -ERROR1-1; HLT1 67472 7521 9001 67473 4407 -ERROR2-1; HLT2 67474 7527 9002 67475 3374 -ERROR3-1; HLT3 67476 7534 9003 67477 3173 -ERROR4-1; HLT4 67500 7537 9004 67501 6166 -ERRORA-1; HLTA 67502 7541 9005 67503 6724 -ERRORB-1; HLTB 67504 7550 9006 67505 7246 -ERRORC-1; HLTC 67506 7554 9007 67507 7614 -ERRORD-1; HLTD 67510 7557 9008 9009 67511 0411 HLT0, TEXT /DIVISION BY 0 / 67512 2611 67513 2311 67514 1716 67515 4002 67516 3140 67517 6040 67520 0000 9010 67521 2516 HLT1, TEXT /UNDERFLOW / 67522 0405 67523 2206 67524 1417 67525 2740 67526 0000 9011 67527 1726 HLT2, TEXT /OVERFLOW/ 67530 0522 67531 0614 67532 1727 67533 0000 9012 67534 2321 HLT3, TEXT /SQRT/ 67535 2224 67536 0000 9013 67537 1416 HLT4, TEXT /LN/ 67540 0000 9014 67541 1505 HLTA, TEXT /MEMORY FULL / 67542 1517 67543 2231 67544 4006 67545 2514 67546 1440 67547 0000 9015 67550 4011 HLTB, TEXT / INDEX/ 67551 1604 67552 0530 67553 0000 9016 67554 0301 HLTC, TEXT /CASE/ 67555 2305 67556 0000 9017 67557 0611 HLTD, TEXT /FILE/ 67560 1405 67561 0000 9018 9019 67562 4005 HLTAT, TEXT / ERROR AT / 67563 2222 67564 1722 67565 4001 67566 2440 67567 0000 9020 9021 67574 1534 PAGE 67575 3416 67576 7562 67577 7466 9022 /I N I T I A L I Z A T I O N OF R U N T I M E - S Y S T E M 9023 9024 67600 7300 INIT, CLA CLL 9025 67601 6211 CDF 10 9026 67602 1777 TAD I (7621 9027 67603 6201 CDF 0 9028 67604 7650 SNA CLA /IF INPUT FILE SPECIFIED 9029 67605 5222 JMP INITKB 9030 67606 1264 TAD IIDEVH /THEN SETUP FILE INPUT 9031 67607 3776 DCA I (IDEVH 9032 67610 1265 TAD IIBLOCK 9033 67611 3775 DCA I (IBLOCK 9034 67612 1374 TAD (JMP ERRORD 9035 67613 3773 DCA I (FATAL0 9036 67614 1372 TAD (IBUFFER 9037 67615 3771 DCA I (IBP 9038 67616 7346 L7775 9039 67617 3770 DCA I (IC3 9040 67620 1367 TAD (GETC 9041 67621 7410 SKP 9042 67622 1366 INITKB, TAD (XREAD /ELSE KEYBOARD INPUT 9043 67623 3765 DCA I (PTREAD 9044 67624 6211 CDF 10 9045 67625 1764 TAD I (7600 9046 67626 6201 CDF 0 9047 67627 7650 SNA CLA /IF OUTPUT FILE SPECIFIED 9048 67630 5235 JMP INITPR 9049 67631 1363 TAD (I37 /THEN SETUP FILE OUTPUT 9050 67632 3762 DCA I (PTI37 9051 67633 1361 TAD (PUTC 9052 67634 7410 SKP 9053 67635 1360 INITPR, TAD (XPRINT /ELSE USE PRINTER 9054 67636 3757 DCA I (PTPRINT 9055 67637 1356 TAD (XHALT 9056 67640 3755 DCA I (PTHALT /ACTIVATE RUNTIME ERRORS 9057 67641 6261 INITDH, CDF 60 /TRANSFER DEVICE HANDLER(S) 9058 67642 1666 TAD I F6T0 /AND RUNTIME ERROR ROUTINE 9059 67643 6201 CDF 0 /TO THEIR PLACE IN FIELD 0 9060 67644 3666 DCA I F6T0 9061 67645 2266 ISZ F6T0 9062 67646 2267 ISZ C1200 9063 67647 5241 JMP .-6 9064 67650 1354 INITST, TAD (CDF CIF 0 /CHANGE STARTING ADDRESS 9065 67651 3753 DCA I (7744 /TO START OF INTERPRETER 9066 67652 1352 TAD (ISTART 9067 67653 3751 DCA I (7745 9068 67654 3750 DCA I (7746 /CORRECT JOB STATUS WORD 9069 67655 6211 CDF 10 /(MAKE IT RESTARTABLE) 9070 67656 1747 TAD I (7643 9071 67657 0346 AND (20 /CHECK /H - OPTION 9072 67660 6203 CDF CIF 0 9073 67661 7640 SZA CLA 9074 67662 5764 JMP I (7600 /RETURN TO OS8 MONITOR 9075 67663 5752 JMP I (ISTART /START INTERPRETER 9076 9077 67664 0000 IIDEVH, 0 9078 67665 0000 IIBLOCK,0 9079 67666 6400 F6T0, IDEVBUF 9080 67667 6600 C1200, -1200 9081 9082 67746 0020 PAGE 67747 7643 67750 7746 67751 7745 67752 0200 67753 7744 67754 6203 67755 0077 67756 7420 67757 0071 67760 2133 67761 5660 67762 0341 67763 0140 67764 7600 67765 0070 67766 6400 67767 5600 67770 5656 67771 5657 67772 6000 67773 5655 67774 5163 67775 5641 67776 0125 67777 7621 9083 $