1 /EDUSYSTEM 25 BASIC 2 /TC08 MNEMONICS : 3 DTSF= 6771 4 DTLB= 6774 5 DTXA= 6764 6 DTRB= 6772 7 DTRA= 6761 8 /DEFINITIONS 9 10 FIXMRI FGET=0000 /FLOATING INSTRUCTIONS 11 FIXMRI FADD=1000 12 FIXMRI FSUB=2000 13 FIXMRI FMUL=3000 14 FIXMRI FDIV=4000 15 FIXMRI FJMP=5000 16 FIXMRI FCMP=6000 17 FIXMRI FPUT=7000 18 19 FINT=JMS I 7 20 FEXT=0000 21 FXIT=0000 22 FNOR=6010 23 FSKP=6000 24 FSNE=6040 25 FSEQ=6050 26 FSGE=6100 27 FSLT=6110 28 FSGT=6140 29 FSLE=6150 30 31 DTLA=6766 32 CAF=6007 33 BSW=7002 34 MQL=7421 35 MQA=7501 36 37 SPL=6102 38 39 MTKF=6123 40 MTPF=6113 41 MTON=6117 42 MINT=6115 43 MINS=6125 44 MKSF=6111 45 MKRB=6116 46 MTSF=6121 47 MTCF=6122 48 MTLS=6126 49 50 L0001=CLL CLA IAC 51 L0002=CLL CLA CML RTL 52 /DON'T BE TEMPTED TO USE THESE. MICRO-PROGRAMMING ROTATES AND IAC'S 53 /ARE THE DEVIL'S HANDIWORK. 54 /(IN OTHER WORDS, IT'S A NO-NO ON A STRAIGHT 8) 55 /L0003=CLL CLA CML IAC RAL 56 /L0004=CLL CLA IAC RTL 57 L7777=CLL CLA CMA 58 L7776=CLL CLA CMA RAL 59 L7775=CLL CLA CMA RTL 60 L3777=CLL CLA CMA RAR 61 L5777=CLL CLA CMA RTR 62 L4000=CLL CLA CML RAR 63 L2000=CLL CLA CML RTR 64 65 SWAP=10 66 BUF=20 /USER DECTAPE BUFFERS 67 /PAGE ZERO 68 69 FIELD 0 70 71 PAGE 0 72 00000 0000 0 73 00001 5402 JMP I .+1 /INTERRUPT HANDLER 74 00002 4173 INTR8E 75 00003 0000 USER, 0 /INTERRUPT USER COUNTER 76 00004 0000 SIN, 0 /INTERRUPT TEMPORARY 77 00005 0000 TEMP1, 0 /INTERRUPT TEMP 78 00006 4155 TEMP2, USER0 /INTERRUPT TEMP 79 00007 5643 FPNT /FLOATING POINT 80 00010 0000 XREG, 0 /INTERRUPT XREG 81 00011 0000 XREG2, 0 /INTERRUPT XREG 82 00012 0000 XREG3, 0 /GENERAL XREG 83 00013 0000 FLTXR, 0 /FLOATING XREG 84 00014 0000 FLTXR2, 0 /FLOATING XREG 85 / CHANGING THE SWAP AREA??????? 86 /BE SURE TO TAKE A LOOK AT BEG800 87 /TO MAKE SURE THE AREAS ARE ALIGNED PROPERLY 88 /WITH THE DUMMY HERE!!!! 89 STSWAP=. /START OF SWAP 90 91 00015 7776 PDLXR, TOP /PUSH-DOWN XREG 92 00016 0000 AXIN, 0 /PACKING XREG 93 TEXTP=. /TEXT POINTERS 94 00017 0000 AXOUT, 0 /UNPACK XREG 95 00020 0000 GTEM, 0 /UNPACK SWITCH 96 00021 0000 XCT, 0 /UNPACK SWITCH 97 00022 0464 PC, READY /PROGRAM RESTART 98 00023 0000 ADD, 0 /PACK TEMPORARY 99 00024 0000 XCTIN, 0 /PACK SWITCH 100 SUBS=XCTIN /SUBSCRIPT 101 00025 0000 PT1, 0 /FLOATING POINTER 102 00026 0000 CHAR, 0 /CHARACTER 103 00027 0000 LINEPC, 0 /LINE POINTER 104 00030 0000 LINENO, 0 /LINE NUMBER 105 00031 0000 LASTLN, 0 /LAST LINE POINTER 106 MODE=LASTLN /FOR MINI-STRINGS 107 00032 0000 SPACSW, 0 /0 IS IGNORE SPACES 108 00033 7777 DINPUT, -1 /-1 FOR BREAK ON CR ONLY 109 /0 FOR BREAK ON ANY AND NO ECHO 110 00034 0000 OUTPUT, 0 /0 IS ECHO 111 00035 6036 XIOT, KRB /INPUT IOT 112 00036 0000 XFIELD, 0 /USER FIELD 113 00037 0000 DATAPC, 0 /LINE NUMBER OF DATA STATEMENT 114 00040 0000 0 /DATA POINTER 115 00041 0000 0 /DATA TEMPORARY 116 00042 0000 0 /DATA UNPACK SWITCH 117 00043 0000 0 /DATA CHARACTER 118 00044 0040 IPTRI, BUFFER /INPUT BUFFER FILL 119 00045 0040 IPTRO, BUFFER /INPUT BUFFER EMPTY 120 00046 0040 IPTR0, BUFFER /START OF BUFFER 121 00047 0000 OPTRI, BUFFER-40 /OUTPUT BUFFER FILL 122 00050 0000 OPTRO, BUFFER-40 /OUTPUT BUFFER EMPTY 123 00051 0000 TELSW, 0 /TTY BUSY SWITCH 124 00052 0000 PACKST, 0 /START OF PACKING 125 00053 0000 PACKND, 0 /POINTER TO END OF PACKING 126 00054 0164 BUFR, LINE1 /NEXT FREE SPACE 127 STARTV=BUFR /START OF VARIABLES 128 00055 0164 LASTV, LINE1 /LAST DEFINED VARIABLE 129 00056 7776 PDLST, TOP /START OF PUSH-DOWN 130 00057 0162 ALINE0, LINE0 /POINTER TO DUMMY LINE 131 00060 0100 COMBUF, BUFCOM /COMMAND BUFFER 132 00061 0000 PRNTC1, 0 /PRINT ZONE COUNT 133 00062 0000 ERLINE, 0 /ERROR LINE 134 00063 1617 NAME, 1617 /PROGRAM NAME 135 00064 1605 1605 136 00065 0000 0 137 00066 0560 EXTEN, 560 /EXTENSION OF FILE ON DECTAPE 138 READC=JMS I . 139 00067 3702 PREADC, XREADC 140 PRINTC=JMS I . 141 00070 7356 PPRINT, XPRNTC 142 FREE2=JMS I . 143 00071 6000 PFREE2, XFREE2 144 FREE13=JMS I . 145 00072 6007 PFREE3, XFREE3 146 147 00073 5400 BASE, 5400 148 00074 0000 IPNTR, 0 149 00075 0000 I3, 0 150 00076 0000 IBLK, 0 151 00077 0000 IBLKH, 0 152 00100 0000 OPNTR, 0 153 00101 0000 O3, 0 154 00102 0000 OBLK, 0 155 00103 0000 OBLKH, 0 156 00104 0000 OMAX, 0 157 00105 0464 CHAINP, READY /'CHAIN' POINTER 158 00106 0001 FRNDX, 0001 159 00107 0203 0203 160 00110 5555 5555 161 162 ENSWAP=.-1 /END OF SWAP 163 DECK=XFIELD /USER ON DECK 164 00111 0000 SORTCN, 0 /SORT CONSTANT 165 00112 0000 T1, 0 /THREE TEMPS 166 00113 0000 T2, 0 167 00114 0000 CNTR, 0 /COUNTER 168 00115 0000 T3, 0 169 00116 0000 THISOP, 0 /CURRENT OP 170 00117 0000 LASTOP, 0 /LAST OP 171 EFOP=CNTR /FUNCTION OP 172 00120 4154 LOOK, USER0-1 /USER BEING RUN OR LOOKED AT 173 /SET TO USER4-5+#USERS IN INIT 174 00121 4154 LOOKST, USER0-1 /TO RESET LOOKING 175 00122 6167 FLARGP, FLARG /POINTER TO TEMP FLAC 176 00123 5442 INTEGE, FIX /FIX THE FLAC ROUTINE 177 /KEEP THE NEXT 8 LOCATIONS TOGETHER PLEASE. 178 00124 0015 CCR, 15 /CR 179 00125 0007 C7, 7 /BELL 180 00126 0177 C177, 177 /RUBOUT 181 00127 0137 C137, 137 /BACK ARROW 182 00130 7777 LSTMOD, -1 /SET BY *INPUT* 183 IFNZRO STSWAP-15 184 STSWM1, 185 00131 0014 C14, 14 /FF 186 00132 0012 CLF, 12 /LINE FEED 187 00133 7766 M12, -12 /-10 DECIMAL 188 00134 0077 C77, 77 /RIGHT MASK 189 00135 7772 M6, -6 /MESSAGE LENGTH 190 00136 0010 C10, 10 191 00137 7770 M10, -10 192 00140 7700 M100, -100 /CHARACTER TEST 193 C7700=M100 /LEFT MASK 194 00141 7774 M4, -4 /CHARACTER COUNT 195 00142 0040 C40, 40 196 00143 0003 C3, 3 197 /NEW INSTRUCTIONS 198 GETC=JMS I . /UNPACK A CHAR 199 00144 4051 XGETC 200 SORTJ=JMS I . /SORT JUMP 201 00145 4735 XSORTJ 202 SORTC=JMS I . /SORT 203 00146 4705 ASORTC, XSORTC 204 PUSHA=JMS I . /SAVE AC 205 00147 1702 XPUSHA 206 PUSHJ=JMS I . /PUSH JUMP 207 00150 1715 XPUSHJ 208 PUSHF=JMS I . /SAVE FLOATING DATA 209 00151 1734 XPUSHF 210 POPA=JMS I . /RESTORE AC 211 00152 5367 XPOPA 212 POPJ=JMP I . /POP JUMP 213 00153 5703 XPOPJ 214 POPF=JMS I . /RESTORE FLOATING DATA 215 00154 4000 XPOPF 216 FLGET=JMS I . /FLOATING GET 217 00155 5141 XFLGET 218 FLPUT=JMS I . /FLOATING PUT 219 00156 6400 XFLPUT 220 ERROR=JMS I . /ERROR 221 00157 3525 XERROR 222 UDF=JMS I . /USER DATA FIELD 223 00160 3171 AUDF, XUDF 224 RTL6=JMS I . /SIX RAL*S 225 00161 5362 XRTL6 226 TESTN=JMS I . /TEST NUMERIC 227 00162 4031 XTESTN 228 TESTC=JMS I . /TEST CHAR 229 00163 4014 XTESTC 230 PACKC=JMS I . /PACK A CHAR 231 00164 3600 XPACKC 232 GETLN=JMS I . /GET A LINE NUMBER 233 00165 5661 XGETLN 234 TSTCCR=JMS I . /SKIP IF CR 235 00166 6431 CCRTST 236 TSTCOM=JMS I . /SKIP IF COMMA 237 00167 6423 COMTST 238 TSTALP=JMS I . /SKIP IF LETTER 239 00170 5747 ALPTST 240 COMMAN=JMS I . /DETERMINE COMMAND 241 00171 2000 MANCOM 242 FIND=JMS I . /FIND A STATEMENT 243 00172 4136 XFIND 244 GETNXT=JMS I . /GET NEXT LINE 245 00173 4107 NXTGET 246 FINDLN=JMS I . /FIND A LINE 247 00174 3457 XFINDL 248 TSTEND=JMS I . /TEST FOR END OF LINE 249 00175 6436 ENDTST 250 TSTLPR=JMS I . /SKIP IF L-PAREN 251 00176 3733 LPRTST 252 GETSGN=TAD I FLARGP 253 /MAINLINE BASIC 254 255 /WHENEVER THERE IS NOTHING BETTER TO DO OR A JOB WANTS TO 256 /DISMISS ITSELF SO OTHERS CAN TRY THIS ROUTINE IS ENTERED 257 258 /IT KEEPS LOOKING FOR A JOB WITH BITS 0 AND 1 OFF WHICH 259 /SAYS THAT THE JOB IS NOT WAITING FOR INPUT OR OUTPUT 260 /RESPECTIVLY 261 *177 262 00177 6001 NULL, ION 263 00200 6201 CDF 264 00201 1120 TAD LOOK 265 00202 1230 TAD MLOOKE /CHECK POSITION OF POINTER 266 00203 7710 SPA CLA 267 00204 5210 JMP .+4 /O.K. TO LOOK AT NEXT 268 /IF PDP8E, AND NOT DC02 - ASSUME KL8E. NEXT THREE WORDS ARE: 269 / CIF 20 270 / JMP I .+1 271 / KL8FIX0 272 /SEE BEG002 AND BEG540 FOR DETAILS. 273 00205 6202 KL8JM0, CIF /NO INTERRUPTS UNTIL LOOK IS ISZ'D 274 00206 1121 TAD LOOKST 275 00207 3120 DCA LOOK /RESET POINTER 276 00210 2120 KL8LF0, ISZ LOOK /LOOK AT NEXT 277 00211 1520 TAD I LOOK /GET STATUS 278 00212 0140 AND C7700 279 00213 7640 SZA CLA 280 00214 5177 JMP NULL /NO GO 281 00215 3277 DCA PRNT5 /CLEAR FORMAT SWITCH 282 00216 1520 TAD I LOOK /GET STATUS 283 00217 6002 IOF /NO INTERRUPTS 284 00220 4305 JMS DECKON /PUT HIM ONDECK 285 00221 1022 TAD PC 286 00222 3000 DCA 0 /RESTART LOCATION 287 00223 7344 L7776 /NUMBER OF COMMANDS THEN LOOK 288 00224 3022 DCA PC 289 00225 6001 ION 290 00226 5400 JMP I 0 /GO TO IT... 291 292 00227 0060 C60, 60 293 00230 3624 MLOOKE, -USER7+10 /LAST STATUS WORD : SUBTRACT NUMBER OF USERS 294 /DURING INIT 295 /*PRNTIT* ROUTINE 296 /ENTER WITH THE AC CONTAINING THE VALUE TO BE PRINTED AS 297 /A DECIMAL NUMBER BETWEEN 0 AND 2047 298 /IF PRNT5 IS NOT 0 THEN LEADING SPACES ARE NOT PRINTED 299 /PRNT5 IS SET TO 0 AT THE END OF THE ROUTINE 300 00231 0000 ITPRNT, 0 301 00232 3112 DCA T1 302 00233 3013 DCA FLTXR /SIGNIFICANCE TESTER 303 00234 7346 L7775 304 00235 3114 DCA CNTR /DO 3 LOOPS 305 00236 1377 TAD (PRNTLL 306 00237 3113 DCA T2 /LIST OF SUBTRACTIONS 307 00240 3115 PRNT1, DCA T3 /HOLDS DIGIT 308 00241 5244 JMP .+3 309 00242 2115 ISZ T3 /BUMP DIGIT 310 00243 3112 DCA T1 311 00244 1112 TAD T1 312 00245 1513 TAD I T2 /SUBTRACT 313 00246 7500 SMA 314 00247 5242 JMP .-5 315 00250 7200 CLA 316 00251 2113 ISZ T2 /POINT TO NEXT 317 00252 1115 TAD T3 /GET DIGIT 318 00253 7440 SZA 319 00254 5260 JMP PRNT2 /NON-ZERO 320 00255 1013 TAD FLTXR /SIG YET 321 00256 7650 SNA CLA 322 00257 5300 JMP PRNT3 /NO 323 00260 2013 PRNT2, ISZ FLTXR /NOW SIG 324 00261 1227 TAD C60 325 00262 4470 PRNT4, PRINTC /PRINT IT 326 00263 2114 PRNT7, ISZ CNTR 327 00264 5240 JMP PRNT1 /LOOP 328 00265 1112 TAD T1 329 00266 1227 TAD C60 330 00267 4470 PRINTC /UNITS DIGIT 331 00270 1277 TAD PRNT5 /FORMATING 332 00271 7640 SZA CLA 333 00272 5275 JMP PRNT6 /NO 334 00273 1142 TAD C40 335 00274 4470 PRINTC /PRINT SPACE AFTER 336 00275 3277 PRNT6, DCA PRNT5 /RESET FOR LATER 337 00276 5631 JMP I ITPRNT 338 339 00277 0000 PRNT5, 0 340 341 00300 1277 PRNT3, TAD PRNT5 /FORMATTING 342 00301 7640 SZA CLA 343 00302 5263 JMP PRNT7 /NO 344 00303 1142 TAD C40 345 00304 5262 JMP PRNT4 346 /*ONDECK* ROUTINE 347 /ROUTINE TO PUT A USER "ON DECK" 348 /ENTER WITH HIS NUMBER ON AC BITS 9-11 349 00305 0177 DECKON, NULL 350 00306 0125 AND C7 /USER NUMBER ONLY 351 00307 3004 DCA SIN /SAVE NEW 352 00310 1036 TAD DECK 353 00311 7041 CIA 354 00312 1004 TAD SIN 355 00313 7650 SNA CLA 356 00314 5353 JMP DTCHK /FAST EXIT (BUT CHECK TAPE FIRST) 357 00315 1036 TAD DECK 358 00316 4356 JMS DFIND /LOCATE OLD 359 00317 1130 TAD LSTMOD 360 00320 3033 DCA DINPUT 361 00321 1776 TAD I (XUDF+1 362 00322 3036 DCA XFIELD 363 364 /* THIS SWAP ROUTINE EXECUTES WITH INTERRUPT OFF 365 /* AND TAKES APPROXIMATELY 600 MICROSECONDS TO 366 /* EXECUTE, WHEREAS THE MAXIMUM TIME AVAILABLE 367 /* TO ANSWER A DECTAPE INTERRUPT AFTER A SEARCH 368 /* IS 400 MICROSECONDS. THEREFORE, WE MUST CHECK 369 /* THE DECTAPE FLAG AS PART OF THE INNER LOOP. 370 371 00323 1411 TAD I XREG2 372 00324 6213 CIF CDF SWAP 373 00325 3410 DCA I XREG /SWAP OUT OLD 374 00326 4000 JMS DTINTR /CHECK TAPE 375 00327 2006 ISZ TEMP2 376 00330 5323 JMP .-5 377 00331 1004 TAD SIN 378 00332 4356 JMS DFIND /LOCATE NEW 379 00333 6213 ENTRY1, CIF CDF SWAP 380 00334 1410 TAD I XREG 381 00335 4000 JMS DTINTR /CHECK TAPE 382 00336 3411 DCA I XREG2 /SWAP IN NEW 383 00337 2006 ISZ TEMP2 384 00340 5333 JMP .-5 385 00341 1033 TAD DINPUT 386 00342 3130 DCA LSTMOD 387 00343 1036 TAD XFIELD 388 00344 3776 DCA I (XUDF+1 389 00345 1004 TAD SIN 390 00346 3036 DCA DECK /NEW USER ONDECK 391 00347 1121 TAD LOOKST 392 00350 7001 IAC 393 00351 1036 TAD DECK 394 00352 3006 DCA TEMP2 /POINT TO STATUS 395 00353 6213 DTCHK, CIF CDF SWAP 396 00354 4000 JMS DTINTR 397 00355 5705 JMP I DECKON 398 399 00356 0333 DFIND, ENTRY1 400 00357 7040 ENTRY, CMA 401 00360 3006 DCA TEMP2 402 00361 1375 TAD (ORG1-1-ENSWAP+STSWAP-1 /START AT THE BEGINNING 403 00362 1373 TAD STARTP /SPACE BETWEEN 404 00363 2006 ISZ TEMP2 405 00364 5362 JMP .-2 406 00365 3010 DCA XREG /POINT TO USER 407 00366 1131 TAD STSWM1 408 00367 3011 DCA XREG2 /POINT TO SWAP AREA 409 00370 1374 TAD (STSWAP-ENSWAP-1 410 00371 3006 DCA TEMP2 /SWAP COUNT 411 00372 5756 JMP I DFIND 412 413 00373 0074 STARTP, ENSWAP-STSWAP+1 /SPACE BETWEEN 414 415 00374 7704 PAGE 00375 5303 00376 3172 00377 0766 416 /ERROR ROUTINE 417 /HERE IS WHERE ERROR MESSAGES ARE PRINTED 418 /IT IS CALLED BY A DISMISSAL WITH THE PC SET TO 419 /ERRORX AND THE ERROR ADDRESS IN LSTMOD 420 00400 4777 ERRORX, JMS I (IOFIX /CLEAN UP FILES 421 00401 1520 TAD I LOOK 422 00402 0376 AND (7767 /CLEAR ERROR FLAG 423 00403 3520 DCA I LOOK 424 00404 1775 TAD I (DTQ1 /CLEAR DECTAPE QUEUE 425 00405 3115 DCA T3 /(IF NECESSARY) 426 00406 1036 TAD DECK /ARE WE ON TOP? 427 00407 7040 CMA 428 00410 1515 TAD I T3 429 00411 7650 SNA CLA 430 00412 4774 JMS I (DTFREE /REMOVE US FROM THE QUEUE 431 00413 1324 TAD M40 432 00414 3115 DCA T3 /BUFFER IS 40 LONG 433 00415 7340 L7777 434 00416 1046 TAD IPTR0 435 00417 3012 DCA XREG3 /POINT TO I BUFFER 436 00420 4560 UDF 437 00421 3412 DCA I XREG3 /CLEAR BUFFER 438 00422 2115 ISZ T3 439 00423 5221 JMP .-2 440 00424 6201 CDF 441 00425 1044 TAD IPTRI 442 00426 3045 DCA IPTRO /NO INPUT IN BUFFER 443 00427 3034 DCA OUTPUT /HAVE ECHO 444 00430 1130 TAD LSTMOD /GET ERROR CODE 445 00431 4546 SORTC 446 00432 3750 ERRLST-1 447 00433 1141 TAD M4 448 00434 1111 TAD SORTCN 449 00435 7540 SMA SZA 450 00436 5243 JMP ERROR2 /TRUE ERROR 451 00437 7640 SZA CLA 452 00440 7340 L7777 /WHAT? 453 00441 1141 TAD M4 /STOP 454 00442 7410 SKP 455 00443 7340 ERROR2, L7777 456 00444 4773 JMS I (READY1 /PRINT ERROR MESSAGE 457 00445 1141 TAD M4 458 00446 1111 TAD SORTCN 459 00447 7550 SPA SNA 460 00450 5263 JMP ERROR3 /NO NUMBER WITH THESE 461 00451 4705 JMS I PITPRNT /PRINT ERROR NUMBER 462 00452 1062 TAD ERLINE /WERE WE RUNNING 463 00453 7750 SPA SNA CLA 464 00454 5261 JMP ERROR1 /NO 465 00455 7344 L7776 /IN 466 00456 4773 JMS I (READY1 467 00457 1062 TAD ERLINE 468 00460 4705 JMS I PITPRNT /PRINT LINE IN ERROR 469 00461 1124 ERROR1, TAD CCR 470 00462 4470 PRINTC 471 00463 7200 ERROR3, CLA 472 /*READY* ROUTINE 473 /ROUTINE TO PRINT "READY" AND RESET POINTERS 474 /ENTER THE ROUTINE AT START TO OMIT READY MESSAGE 475 00464 4777 READY, JMS I (IOFIX /RESET FILES 476 00465 7346 L7775 477 00466 4773 JMS I (READY1 /PRINT "READY" 478 00467 3062 START, DCA ERLINE /IMMEDIATE MODE 479 00470 7340 L7777 480 00471 3130 DCA LSTMOD /SHORT LIST 481 00472 1056 TAD PDLST 482 00473 3015 DCA PDLXR /RESET PUSH-DOWN 483 00474 3032 DCA SPACSW /IGNORE LEADING SPACES 484 00475 3031 DCA MODE /CLEAR STRING MODE FLAG 485 00476 1372 TAD (ERR330 486 00477 4547 PUSHA /TRAP THE *RETURN* SANS *GOSUB* 487 00500 4550 PUSHJ /INPUT COMMAND LINE 488 00501 5630 PAKLIN 489 00502 7640 SZA CLA /END-OF-FILE? 490 00503 5505 JMP I CHAINP /'OLD' OR 'CHAIN' FINISHED 491 /INSERT LINE OR DO COMMAND 492 /AFTER A COMMAND OR LINE IS PACKED INTO THE COMMAND BUFFER 493 /THIS ROUTINE LOOKS AT IT AND EITHER STORES THE LINE OR 494 /GOES TO THE PROPER COMMAND 495 00504 4562 DECODE, TESTN 496 00505 0231 PITPRNT, ITPRNT 497 00506 5771 JMP I (INPUTX /COMMAND 498 00507 4565 GETLN /GET LINE NUMBER 499 00510 1054 SRETN, TAD BUFR 500 00511 3016 DCA AXIN /SET TO REPACK 501 00512 3024 DCA XCTIN 502 00513 1030 TAD LINENO 503 00514 4560 UDF 504 00515 3416 DCA I AXIN /SET LINE NUMBER 505 00516 6201 CDF 506 00517 4566 TSTCCR /JUST LINE NUMBER 507 00520 5323 JMP .+3 /NO 508 00521 4770 JMS I (XDELET /DELETE THIS LINE 509 00522 5354 JMP VARSET 510 511 00523 2032 ISZ SPACSW /KEEP SPACES 512 00524 7740 M40, SMA SZA CLA /TSTCCR LEAVES AC=0 SO THIS IS A SKP. 513 00525 4544 GETC 514 00526 4564 PACKC /REPACK LINE 515 00527 4566 TSTCCR 516 00530 5325 JMP .-3 517 00531 4770 JMS I (XDELET /DELETE OLD LINE 518 00532 4560 UDF 519 00533 6002 IOF 520 00534 1431 TAD I LASTLN /POINTER TO NEXT 521 00535 3454 DCA I BUFR /POINT TO NEXT 522 00536 1054 TAD BUFR 523 00537 3431 DCA I LASTLN /OLD POINTS TO NEW 524 00540 1023 TAD ADD 525 00541 7440 SZA 526 00542 3416 DCA I AXIN /FINISH PACKING 527 00543 4574 FINDLN /FIND THE LINE 528 00544 0016 C16, 16 529 00545 4550 PUSHJ 530 00546 6523 ENDFND /SCAN FOR *NEXT* 531 00547 7650 SNA CLA 532 00550 1136 TAD C10 533 00551 7001 IAC 534 00552 1016 TAD AXIN 535 00553 3054 DCA BUFR /NEW FREE POSITION 536 00554 1054 VARSET, TAD STARTV 537 00555 3055 DCA LASTV /RESET VARIABLES AFTER INPUTTING TEXT 538 00556 6001 ION 539 00557 5267 JMP START 540 541 542 00560 0000 GETCX1, 0 /*GETC* FOR FIELD 1 543 00561 4544 GETC 544 00562 6213 CIF CDF SWAP 545 00563 5760 JMP I GETCX1 546 547 00570 1600 PAGE 00571 4252 00572 7163 00573 1756 00574 6627 00575 6601 00576 7767 00577 1365 548 00600 0000 KEY, 0 549 00601 1003 TAD USER 550 00602 4777 JMS I (DECKON /PUT HIM ONDECK 551 00603 1035 TAD XIOT 552 00604 3205 DCA .+1 /SET READ IOT 553 00605 7402 HLT 554 00606 0126 AND C177 /IGNORE PARITY 555 00607 7450 SNA 556 00610 5600 JMP I KEY /IGNORE 0 NAD 200 557 00611 3004 DCA SIN /SAVE INPUT 558 00612 7346 L7775 559 00613 1004 TAD SIN /CTRL/C? 560 00614 7640 KM140, SZA CLA 561 00615 5220 JMP KEY7 /NOT "^C" 562 00616 4776 ERR004, JMS I (IERROR /RECOVER 563 00617 5600 JMP I KEY 564 565 00620 1130 KEY7, TAD LSTMOD 566 00621 7450 SNA 567 00622 5276 JMP KEY6 /NO ECHO - BREAK 568 00623 6211 CDF SWAP 569 00624 3775 DCA I (XCCR+4 570 00625 6201 CDF 571 00626 1004 TAD SIN 572 00627 4546 SORTC /CHECK BREAK 573 00630 2327 XCCR-1 574 00631 5270 JMP KEY5 /BREAK 575 00632 1004 TAD SIN 576 00633 4546 SORTC 577 00634 1774 ALT-1 578 00635 5276 JMP KEY6 /FOUND AN ALTMODE 579 00636 1004 TAD SIN 580 00637 1133 TAD M12 581 00640 7650 SNA CLA 582 00641 5600 JMP I KEY /IGNORE LINE FEED IF NOT BREAK 583 00642 1004 TAD SIN 584 00643 0355 AND C140 585 00644 7450 SNA 586 00645 5300 JMP KEY3 /ILLEGAL CHAR 587 00646 1214 TAD KM140 588 00647 7650 SNA CLA 589 00650 5300 JMP KEY3 /ILLEGAL CHAR 590 00651 1004 TAD SIN 591 00652 4774 JMS I (XOUTL /ECHO THE CHAR 592 00653 4305 JMS KEY4 /STORE THE CHAR 593 00654 1045 TAD IPTRO 594 00655 7041 CIA 595 00656 1044 TAD IPTRI 596 00657 7550 SPA SNA 597 00660 1142 TAD C40 598 00661 1133 TAD M12 599 00662 7710 SPA CLA 600 00663 5600 JMP I KEY /NO - EXIT 601 00664 7350 ANYINP, L3777 602 00665 0406 AND I TEMP2 /CLEAR I WAIT 603 00666 3406 DCA I TEMP2 604 00667 5600 JMP I KEY 605 606 00670 7340 KEY5, L7777 607 00671 1111 TAD SORTCN 608 00672 7740 KCM40, SMA SZA CLA 609 00673 5276 JMP .+3 /NO ECHO HERE 610 00674 1004 TAD SIN 611 00675 4774 JMS I (XOUTL /ECHO BREAK CHAR - CR AND BELL 612 00676 4305 KEY6, JMS KEY4 /STORE CHAR 613 00677 5264 JMP ANYINP /BREAK HERE 614 615 00700 1125 KEY3, TAD C7 616 00701 4774 JMS I (XOUTL /2 BELLS FOR ILLEGAL CHAR 617 00702 1125 TAD C7 618 00703 4774 JMS I (XOUTL 619 00704 5600 JMP I KEY 620 621 00705 0000 KEY4, 0 622 00706 4560 UDF 623 00707 1444 TAD I IPTRI /ROOM? 624 00710 7640 SZA CLA 625 00711 4776 ERR070, JMS I (IERROR /NO ROOM 626 00712 4560 UDF 627 00713 1004 TAD SIN 628 00714 3444 DCA I IPTRI 629 00715 6201 CDF 630 00716 2044 ISZ IPTRI 631 00717 1044 TAD IPTRI 632 00720 7041 CIA 633 00721 1142 TAD C40 634 00722 1046 TAD IPTR0 635 00723 7640 SZA CLA 636 00724 5705 JMP I KEY4 /OK 637 00725 1046 TAD IPTR0 638 00726 3044 DCA IPTRI /RESET POINTER 639 00727 5705 JMP I KEY4 640 00730 0000 TTY, 0 641 00731 1003 TAD USER 642 00732 4777 JMS I (DECKON /PUT HIM ONDECK 643 00733 3051 DCA TELSW /CLEAR BUSY 644 00734 4560 UDF 645 00735 1450 TTY3, TAD I OPTRO /MORE 646 00736 7450 SNA 647 00737 5354 JMP TTY2 /NO 648 00740 4773 JMS I (XOUTL2 /OUTPUT IT 649 00741 4560 UDF 650 00742 3450 DCA I OPTRO /CLEAR BUFFER 651 00743 2050 ISZ OPTRO /BUMP BUFFER 652 00744 1050 TAD OPTRO 653 00745 7041 CIA 654 00746 1046 TAD IPTR0 655 00747 7640 SZA CLA 656 00750 5354 JMP TTY2 /OK 657 00751 1046 TAD IPTR0 658 00752 1272 TAD KCM40 659 00753 3050 DCA OPTRO /RESET BUFFER 660 00754 4772 TTY2, JMS I (XFREE /ROOM AVAILABLE 661 00755 0140 C140, 140 662 00756 5730 JMP I TTY /NOT ENOUGH ROOM 663 00757 7352 L5777 664 00760 0406 AND I TEMP2 /CLEAR O WAIT 665 00761 3406 DCA I TEMP2 666 00762 5730 JMP I TTY 667 668 00763 3032 PRINT3, DCA SPACSW 669 00764 4544 GETC 670 00765 5771 JMP I (PRIN10 671 672 DECIMAL 673 00766 6030 PRNTLL, -1000 674 00767 7634 -100 675 00770 7766 -10 676 OCTAL 677 678 00771 3307 PAGE 00772 6020 00773 3400 00774 3341 00775 2334 00776 3544 00777 0305 679 /*READ* AND *INPUT* COMMANDS 680 681 01000 0000 INREAD, 0 682 01001 7640 SZA CLA 683 01002 5240 JMP INREA3 /RE-ENTRY 684 01003 4550 PUSHJ /PRINT CRAP 685 01004 3307 PRIN10 686 01005 3031 DCA MODE /NEW VARIABLE 687 01006 4550 PUSHJ /GET A VARIABLE 688 01007 4400 GETVAR 689 01010 7640 SZA CLA 690 01011 5271 JMP ERR500 /WAS FUNCTION 691 01012 1031 TAD MODE /SET TO IGNORE LEADING SPACES IF NECESSARY 692 01013 3032 DCA SPACSW 693 01014 4551 PUSHF /SAVE PT1;CHAR;LINEPC 694 01015 0025 PT1 695 01016 4551 PUSHF /SAVE TEXT 696 01017 0017 TEXTP 697 01020 4551 PUSHF 698 01021 0040 DATAPC+1 699 01022 4554 POPF /GET POINTERS 700 01023 0017 TEXTP 701 01024 1043 TAD DATAPC+4 702 01025 3026 DCA CHAR 703 01026 4575 TSTEND /MORE? 704 01027 5232 JMP INREA1 /NO 705 01030 2200 INREA4, ISZ INREAD /2ND EXIT 706 01031 5600 JMP I INREAD 707 708 01032 4567 INREA1, TSTCOM /MORE? 709 01033 4557 ERR490, ERROR /JUNK 710 01034 4544 GETC 711 01035 4575 TSTEND /COMMA FOLLOWED BY CR OR '? 712 01036 7410 SKP 713 01037 5230 JMP INREA4 /YES - ASK FOR MORE 714 01040 1031 INREA3, TAD MODE 715 01041 7650 SNA CLA 716 01042 5246 JMP SPLCH1-2 /NUMERIC INPUT 717 01043 4550 SPLCH, PUSHJ /GET THE STRING 718 01044 7625 QINP 719 01045 5250 JMP SPLCH1 720 01046 4550 PUSHJ 721 01047 2612 EVAL 722 01050 4551 SPLCH1, PUSHF 723 01051 0017 TEXTP 724 01052 4554 POPF 725 01053 0040 DATAPC+1 726 01054 1026 TAD CHAR 727 01055 3043 DCA DATAPC+4 /SAVE POINTERS 728 01056 4554 POPF 729 01057 0017 TEXTP 730 01060 4554 POPF 731 01061 0025 PT1 732 01062 4556 FLPUT /SET VARIABLE 733 01063 6167 FLARG 734 01064 4567 TSTCOM 735 01065 5270 JMP INREA2 736 01066 4544 GETC 737 01067 5203 JMP INREAD+3 738 739 01070 4575 INREA2, TSTEND 740 01071 4557 ERR500, ERROR /JUNK 741 01072 5600 JMP I INREAD 742 01073 7340 L7777 743 01074 4200 READ, JMS INREAD /SET THOSE VARIABLES 744 01075 5553 POPJ 745 01076 1031 READ1, TAD MODE /MUST SAVE MODE 746 01077 4547 PUSHA /IT IS CHANGED BELOW 747 01100 1037 TAD DATAPC 748 01101 4572 FIND 749 01102 0003 3 750 01103 4557 ERR510, ERROR /OUT OF DATA 751 01104 3037 DCA DATAPC 752 01105 4552 POPA /RESTORE MODE 753 01106 3031 DCA MODE 754 01107 5273 JMP READ-1 755 756 01110 4334 INPUT, JMS CHKFIL /CHECK IF A FILE 757 758 01111 4551 PUSHF 759 01112 0040 DATAPC+1 760 01113 1043 TAD DATAPC+4 761 01114 4547 PUSHA 762 01115 1124 TAD CCR 763 01116 3043 DCA DATAPC+4 764 01117 4200 JMS INREAD /SET THOSE VARIABLES 765 01120 5325 JMP INPUT1 /DONE 766 01121 4550 INPUT2, PUSHJ /GET LINE OF INPUT 767 01122 1155 GETINP 768 01123 7340 L7777 769 01124 5317 JMP INPUT2-2 770 771 01125 4575 INPUT1, TSTEND 772 01126 5233 JMP INREA1+1 773 01127 4552 POPA 774 01130 3043 DCA DATAPC+4 775 01131 4554 POPF 776 01132 0040 DATAPC+1 777 01133 5553 POPJ 778 779 01134 0000 CHKFIL, 0 780 01135 1026 TAD CHAR /CHECK FOR FILE INPUT 781 01136 1373 TAD MNMSGN 782 01137 7640 SZA CLA 783 01140 5734 JMP I CHKFIL /NOT FILE 784 01141 5742 JMP I .+1 /NO SPACE-PATCH IN EXTRA WORDS 785 01142 3760 CHKPAT /TO SET "D0" EXTENSION 786 01143 7110 CHKPT1, CLL RAR 787 01144 1077 TAD IBLKH 788 01145 7640 SZA CLA 789 01146 4544 GETC /SHOULD BE COMMA 790 01147 4567 TSTCOM 791 01150 4557 ERR600, ERROR 792 01151 4544 GETC /SKIP OVER COMMA 793 01152 1374 TAD VXGET /SETUP FILE INPUT 794 01153 3067 DCA PREADC 795 01154 5734 JMP I CHKFIL /DONE 796 797 01155 1067 GETINP, TAD PREADC /CHECK IF FILE, GET LINE OF INPUT 798 01156 1375 TAD MXREADC 799 01157 7640 SZA CLA 800 01160 5366 JMP GETIN1 /IT WAS A FILE 801 01161 4472 FREE13 802 01162 1134 TAD C77 803 01163 4470 PRINTC 804 01164 1142 TAD C40 805 01165 4470 PRINTC 806 01166 4550 GETIN1, PUSHJ 807 01167 5630 PAKLIN 808 01170 7640 SZA CLA /EOF? 809 01171 4557 ERR610, ERROR 810 01172 5553 POPJ 811 812 813 01173 7735 MNMSGN, 200-"# 814 01174 6653 VXGET, XGET 815 01175 4076 MXREADC, -XREADC 816 817 /*IF* COMMAND 818 819 01176 4550 IF, PUSHJ /GET FIRST VALUE 820 01177 2612 EVAL 821 01200 4551 PUSHF /AND SAVE IT 822 01201 6167 FLARG 823 01202 1031 TAD MODE 824 01203 4547 PUSHA /SAVE MODE 825 01204 1111 TAD SORTCN 826 01205 1133 TAD M12 827 01206 7510 SPA 828 01207 4557 ERR390, ERROR /NO RELATION OR BAD RELATION 829 01210 7126 CLL CML RTL 830 01211 3363 DCA IF1 /SAVE REL OP 831 01212 4544 GETC 832 01213 4546 SORTC /ANOTHER OP? 833 01214 3640 TERMS-1 834 01215 5263 JMP IF2 /MIGHT BE... 835 01216 7200 IF3, CLA 836 01217 1363 TAD IF1 837 01220 4546 SORTC /CHECK OP 838 01221 2377 IF4-1 839 01222 7610 PIF5, SKP CLA /7610=IF5, AT LEAST, IT BETTER!!!!!! 840 01223 5207 JMP ERR390 /BAD OP 841 01224 1111 TAD SORTCN 842 01225 1222 TAD PIF5 843 01226 3363 DCA IF1 844 01227 1763 TAD I IF1 /GET FLOATING SKIP WORD 845 01230 3252 DCA IF6 846 01231 4550 PUSHJ /GET 2ND VALUE 847 01232 2612 EVAL 848 01233 7346 L7775 849 01234 4571 COMMAN /GET NEXT COMMAND 850 01235 7650 SNA CLA 851 01236 4557 ERR400, ERROR /THEN NOT FOUND 852 01237 4552 POPA /GET OLD MODE 853 01240 1031 TAD MODE 854 01241 7640 SZA CLA 855 01242 5323 JMP IFSTR /WE WANT TO DO A STRING COMPARE 856 01243 4554 POPF 857 01244 6167 FLARG 858 01245 4407 FINT 859 01246 6522 FCMP I FLARGP /GET DIFFERENCT 860 01247 7522 FPUT I FLARGP /AND SAVE IT 861 01250 0000 FEXT 862 01251 1522 IF7, GETSGN /GET SIGN OF DIFFERENCE 863 01252 7402 IF6, HLT /SKIP IF FALSE 864 01253 4562 TESTN 865 01254 5553 IFDONE, POPJ /SO WHO CARES ABOUT A STRANGE NO-OP? 866 01255 5674 JMP I VRUN8 /GO DO COMMAND 867 01256 4565 GOTO, GETLN 868 01257 4575 TSTEND 869 01260 4557 ERR270, ERROR /JUNK 870 01261 1030 TAD LINENO /SET UP TRANSFER TO LINE 871 01262 5553 POPJ /RETURN 872 873 874 01263 1111 IF2, TAD SORTCN 875 01264 1133 TAD M12 876 01265 7510 SPA 877 01266 5216 JMP IF3 /NO 2ND OP 878 01267 7001 IAC 879 01270 1363 TAD IF1 880 01271 3363 DCA IF1 881 01272 4544 GETC 882 01273 5217 JMP IF3+1 883 884 01274 2506 VRUN8, RUN8 885 01275 1362 VIF1, IF1-1 886 01276 0464 VREADY, READY 887 01277 3745 VRESETO,RESETO 888 /*MOD* FUNCTION 889 01300 4551 MOD, PUSHF 890 01301 6167 FLARG 891 01302 4567 TSTCOM 892 01303 5777 JMP I (ERR560 893 01304 4550 PUSHJ 894 01305 2611 EVAL-1 895 01306 4554 POPF 896 01307 1363 PIF1, IF1 897 01310 4407 MOD1, FINT 898 01311 0707 FGET I PIF1 899 01312 4522 FDIV I FLARGP 900 01313 1776 FADD I (FCN 901 01314 3522 FMUL I FLARGP 902 01315 7775 FPUT I (TEMP 903 01316 0707 FGET I PIF1 904 01317 2775 FSUB I (TEMP 905 01320 0000 FEXT 906 01321 5553 POPJ 907 01322 3702 VXREADC,XREADC 908 01323 4554 IFSTR, POPF /STRING *IF* 909 01324 1363 IF1 /SAVE FIRST STRING 910 01325 1122 TAD FLARGP /POINT TO THE STRINGS 911 01326 3031 DCA MODE 912 01327 1275 TAD VIF1 913 01330 3013 DCA FLTXR 914 01331 7346 L7775 /DO AN INTEGER COMPARE ON 3 WORDS 915 01332 3115 DCA T3 916 01333 1413 IFSTR1, TAD I FLTXR /SUBTRACT WORDS, GET SIGN OF DIFFERENCE 917 01334 7040 CMA /THIS GARBAGE CONVERTS CR'S TO ZEROES 918 01335 3112 DCA T1 /AND ADDS ONE TO EACH CHARACTER 919 01336 1112 TAD T1 /SO COMPARES OF DIFFERENT LENGTHS COME OUT OK 920 01337 0134 AND C77 921 01340 7640 SZA CLA 922 01341 1140 TAD C7700 923 01342 1112 TAD T1 924 01343 3112 DCA T1 925 01344 1431 TAD I MODE 926 01345 7001 IAC 927 01346 0134 AND C77 928 01347 3113 DCA T2 929 01350 1431 TAD I MODE 930 01351 1374 TAD (100 931 01352 0140 AND C7700 932 01353 1113 TAD T2 933 01354 1112 TAD T1 934 01355 7440 SZA /IF DIFFERENCE ZERO, TRY ANOTHER PAIR 935 01356 5252 JMP IF6 /NON ZERO DIFFERENCE, COMPARE THEM 936 01357 2031 ISZ MODE 937 01360 2115 ISZ T3 938 01361 5333 JMP IFSTR1 939 01362 5252 JMP IF6 /IF DONE, COMPARE THEM 940 941 01363 0000 IF1, 0 942 01364 0000 0 943 01365 0000 IOFIX, 0 944 01366 1322 TAD VXREADC 945 01367 3067 DCA PREADC 946 01370 1276 TAD VREADY /RESET CHAIN POINTER 947 01371 3105 DCA CHAINP 948 01372 4677 JMS I VRESETO 949 01373 5765 JMP I IOFIX /RESET OUTPUT POINTERS AND EXIT. 950 01374 0100 PAGE 01375 6164 01376 5764 01377 5355 951 /*LET* AND *FOR* COMMANDS 952 01400 7340 FOR, L7777 953 01401 3360 LET, DCA FOR1 /SAVE DETERMINATOR 954 01402 4550 PUSHJ /GET VARIABLE 955 01403 4400 GETVAR 956 01404 7650 SNA CLA 957 01405 1026 TAD CHAR 958 01406 1323 TAD MEQL 959 01407 7640 SZA CLA 960 01410 4557 ERR410, ERROR /NO "=" 961 01411 4551 LET2, PUSHF /SAVE ADD,XCTIN,PT1 962 01412 0023 ADD 963 01413 4550 PUSHJ /GET VALUE 964 01414 2611 EVAL-1 965 01415 4554 POPF 966 01416 0023 ADD 967 01417 4556 FLPUT /SET VARIABLE 968 01420 6167 FLARG 969 01421 7340 L7777 970 01422 1017 TAD AXOUT 971 01423 3343 DCA FOR5 972 01424 2360 ISZ FOR1 /WHICH COMMAND? 973 01425 5324 JMP LET1 /LET COMMAND 974 01426 1023 TAD ADD 975 01427 7710 SPA CLA 976 01430 4557 ERR420, ERROR /SUBSCRIPTED 977 01431 4571 COMMAN /GET WORD 978 01432 1141 TAD M4 979 01433 7640 SZA CLA 980 01434 5333 JMP FOR2+3 /NOT *TO* 981 01435 1025 TAD PT1 982 01436 7041 CIA 983 01437 3360 DCA FOR1 /SAVE POINTER 984 01440 4550 PUSHJ /GET LIMIT 985 01441 2612 EVAL 986 01442 4551 PUSHF /SAVE LIMIT 987 01443 6167 FLARG 988 01444 4575 TSTEND 989 01445 5330 JMP FOR2 /GET INCREMENT 990 01446 4551 PUSHF /INCREMENT IS ONE 991 01447 7157 FLTONE 992 01450 1030 FOR3, TAD LINENO 993 01451 4547 PUSHA 994 01452 1030 TAD LINENO 995 01453 7410 SKP 996 01454 4552 FOR4, POPA 997 01455 4572 FIND /FIND A *NEXT* STATEMENT 998 01456 0001 1 /-NEXT CODE 999 01457 4557 ERR440, ERROR /OUT OF TEXT 1000 01460 4547 PUSHA /SAVE FOR RESTART 1001 01461 4570 TSTALP 1002 01462 5254 JMP FOR4 1003 01463 4550 PUSHJ /GET VARIABLE 1004 01464 4400 GETVAR 1005 01465 7640 SZA CLA /NO SECOND CHANCE ON FUNCTION 1006 01466 3025 DCA PT1 1007 01467 4566 TSTCCR /"NEXT" MUST BE LAST ON LINE HERE OR WE 1008 01470 5744 JMP I NEXERR /FIND THIS NEXT FOREVER IN "FIND" 1009 /MUST BE LAST ALSO OR INITIALIZATION WILL 1010 /WIPE HIS PROGRAM [AND MAYBE THE SYSTEM!] 1011 01471 1025 TAD PT1 1012 01472 1360 TAD FOR1 1013 01473 7640 SZA CLA /RIGHT VARIABLE? 1014 01474 5254 JMP FOR4 /NO! 1015 01475 2015 ISZ PDLXR /DUMP RESTART ADDRESS 1016 01476 4552 POPA 1017 01477 3030 DCA LINENO 1018 01500 1030 TAD LINENO 1019 01501 4560 UDF 1020 01502 3417 DCA I AXOUT /SET LINE NUMBER 1021 01503 1343 TAD FOR5 1022 01504 3417 DCA I AXOUT /AND MIDDLE OF LINE POINTER 1023 01505 6201 CDF 1024 01506 4554 POPF /GET INCREMENT 1025 01507 6167 FLARG 1026 01510 1017 TAD AXOUT 1027 01511 4556 FLPUT /PUT INCREMENT 1028 01512 6167 FLARG 1029 01513 4554 POPF /GET LIMIT 1030 01514 6167 FLARG 1031 01515 7326 L0002 1032 01516 7001 IAC 1033 01517 1017 TAD AXOUT 1034 01520 4556 FLPUT /SET LIMIT 1035 01521 6167 FLARG 1036 01522 4574 FINDLN /FIND US AGAIN 1037 01523 7703 MEQL, -"=+200 /THIS NEVER GETS EXECUTED 1038 01524 4575 LET1, TSTEND 1039 01525 4557 ERR450, ERROR /JUNK 1040 01526 1343 TAD FOR5 1041 01527 5777 JMP I (FOREXT 1042 1043 01530 7344 FOR2, L7776 1044 01531 4571 COMMAN /IS IT STEP? 1045 01532 7650 SNA CLA 1046 01533 4557 ERR430, ERROR /NOT STEP 1047 01534 4550 PUSHJ /GET INCREMENT 1048 01535 2612 EVAL 1049 01536 4551 PUSHF /SAVE INCREMENT 1050 01537 6167 FLARG 1051 01540 4575 TSTEND 1052 01541 5333 JMP FOR2+3 /JUNK 1053 01542 5250 JMP FOR3 1054 1055 01543 0000 FOR5, 0 1056 01544 2400 NEXERR, ERR460 1057 1058 01545 4570 UNKWN, TSTALP 1059 01546 5361 JMP ERRCHK 1060 01547 4550 PUSHJ 1061 01550 4400 GETVAR 1062 01551 7650 SNA CLA 1063 01552 1026 TAD CHAR 1064 1065 01553 1323 TAD MEQL 1066 01554 7640 SZA CLA 1067 01555 5346 JMP UNKWN+1 /NO "=" 1068 01556 3360 DCA FOR1 /MAKE IT A LET COMMAND 1069 01557 5211 JMP LET2 1070 1071 01560 0000 FOR1, 0 1072 1073 IFZERO .&1 1074 01561 7200 ERRCHK, CLA 1075 01562 1062 TAD ERLINE 1076 01563 7740 SMA SZA CLA 1077 01564 4557 ERR520, ERROR /RUNNING 1078 01565 4557 ERR000, ERROR /IMMEDIATE MODE--"WHAT?" 1079 1080 01566 4547 OPUSJ1, PUSHA 1081 01567 1376 TAD (OPUS 1082 01570 4547 PUSHA 1083 01571 5515 JMP I T3 1084 1085 01572 6211 ABS, CDF SWAP 1086 01573 3775 DCA I (ACSIGN 1087 01574 5553 POPJ 1088 1089 1090 1091 01575 0043 PAGE 01576 7400 01577 2460 1092 /*DELETE* ROUTINE 1093 01600 0000 XDELET, 0 1094 01601 4574 FINDLN /FIND THE LINE 1095 01602 5600 JMP I XDELET /NOT THERE - EXIT 1096 01603 2032 ISZ SPACSW 1097 01604 4544 GETC 1098 01605 4566 TSTCCR /GO TO END OF LINE 1099 01606 5204 JMP .-2 1100 01607 1017 TAD AXOUT 1101 01610 7040 CMA 1102 01611 1027 TAD LINEPC 1103 01612 4547 PUSHA /SAVE COUNT 1104 01613 1027 TAD LINEPC 1105 01614 7001 IAC 1106 01615 3017 DCA AXOUT /TO UNPACK 1107 01616 3021 DCA XCT 1108 01617 4550 PUSHJ 1109 01620 6523 ENDFND 1110 01621 7650 SNA CLA 1111 01622 1137 TAD M10 1112 01623 4552 POPA 1113 01624 3115 DCA T3 /CORRECTED COUNT 1114 01625 1027 TAD LINEPC 1115 01626 7041 CIA 1116 01627 1057 TAD ALINE0 1117 01630 7650 SNA CLA 1118 01631 5600 JMP I XDELET /NOT LINE0 1119 01632 4560 UDF 1120 01633 1427 TAD I LINEPC /GET POINTER 1121 01634 3431 DCA I LASTLN /REMOVE LINE 1122 01635 1057 TAD ALINE0 1123 01636 3113 XDEL3, DCA T2 /CURRENT LINE 1124 01637 1513 TAD I T2 1125 01640 7450 SNA 1126 01641 5254 JMP XDEL2 /OUT OF TEXT 1127 01642 3112 DCA T1 1128 01643 1027 TAD LINEPC 1129 01644 7141 CLL CIA 1130 01645 1112 TAD T1 1131 01646 7630 SZL CLA 1132 01647 1115 TAD T3 /CORRECT LINE 1133 01650 1112 TAD T1 1134 01651 3513 DCA I T2 1135 01652 1112 TAD T1 1136 01653 5236 JMP XDEL3 1137 1138 01654 7340 XDEL2, L7777 1139 01655 1027 TAD LINEPC 1140 01656 3012 DCA XREG3 1141 01657 1115 TAD T3 1142 01660 7040 CMA 1143 01661 1027 TAD LINEPC 1144 01662 3017 DCA AXOUT 1145 01663 1115 TAD T3 1146 01664 1054 TAD BUFR 1147 01665 3054 DCA BUFR 1148 01666 1016 TAD AXIN 1149 01667 7040 CMA 1150 01670 1017 TAD AXOUT 1151 01671 3112 DCA T1 1152 01672 1115 TAD T3 1153 01673 1016 TAD AXIN 1154 01674 3016 DCA AXIN 1155 01675 1417 TAD I AXOUT 1156 01676 3412 DCA I XREG3 /MOVE TEXT 1157 01677 2112 ISZ T1 1158 01700 5275 JMP .-3 1159 01701 5201 JMP XDELET+1 1160 /PUSH ROUTINES 1161 01702 0000 XPUSHA, 0 1162 01703 3315 DCA XPUSHJ 1163 01704 7340 L7777 /BACK 1 1164 01705 4322 JMS PCHK 1165 01706 1315 TAD XPUSHJ 1166 01707 4560 UDF 1167 01710 3415 DCA I PDLXR /PUSH IT 1168 01711 6201 CDF 1169 01712 7340 L7777 1170 01713 4322 JMS PCHK /BACK AGAIN 1171 01714 5702 JMP I XPUSHA 1172 1173 01715 0000 XPUSHJ, 0 1174 01716 1715 TAD I XPUSHJ /GET SEND ADDRESS 1175 01717 3302 DCA XPUSHA 1176 01720 2315 ISZ XPUSHJ /CALCULATE RETURN ADDRESS 1177 01721 5304 JMP XPUSHA+2 1178 1179 01722 0000 PCHK, 0 1180 01723 1015 TAD PDLXR 1181 01724 3015 DCA PDLXR 1182 01725 7326 L0002 1183 01726 1055 TAD LASTV 1184 01727 7161 STL CIA 1185 01730 1015 TAD PDLXR 1186 01731 7630 SZL CLA 1187 01732 5777 JMP I (ERR100-2 /PUSHED TOO FAR 1188 01733 5722 JMP I PCHK 1189 1190 /*PUSHF* ROUTINE 1191 01734 0000 XPUSHF, 0 1192 01735 7340 L7777 1193 01736 1734 TAD I XPUSHF 1194 01737 3012 DCA XREG3 /POINT TO DATA 1195 01740 7346 L7775 1196 01741 4322 JMS PCHK 1197 01742 7346 L7775 1198 01743 3115 DCA T3 1199 01744 1412 TAD I XREG3 1200 01745 4560 UDF 1201 01746 3415 DCA I PDLXR 1202 01747 6201 CDF 1203 01750 2115 ISZ T3 1204 01751 5344 JMP .-5 1205 01752 7346 L7775 1206 01753 4322 JMS PCHK /BACK AGAIN 1207 01754 2334 ISZ XPUSHF 1208 01755 5734 JMP I XPUSHF 1209 1210 /CALL MESSAGE WRITER IN FIELD 1 1211 01756 0000 READY1, 0 1212 01757 4547 PUSHA /SAVE MESSAGE NUMBER 1213 01760 4472 FREE13 /MAKE SURE THERE'S ROOM 1214 01761 4552 POPA /RESTORE MESSAGE NUMBER 1215 01762 6213 CIF CDF SWAP 1216 01763 4765 JMS I .+2 1217 01764 5756 JMP I READY1 1218 01765 5000 READY2 1219 1220 01766 4547 RUN9X, PUSHA /SAVE FIELD 1 RESTART ADDRESS 1221 01767 4776 JMS I (RUN9 /DISMISS US 1222 01770 4552 POPA /RESTORE ADDRESS 1223 01771 3112 DCA T1 1224 01772 6213 CIF CDF 10 /GO TO IT 1225 01773 5512 JMP I T1 1226 1227 1228 01776 2534 PAGE 01777 4473 1229 02000 0000 MANCOM, 0 1230 02001 3014 DCA FLTXR2 /SAVE AC 1231 02002 4337 JMS COMPUSH /SAVE TEXT POINTERS 1232 02003 1377 TAD (LIST7 /START AT BEGINNING OF LIST 1233 02004 6211 CDF SWAP /IN FIELD 1 1234 02005 3113 COMLP1, DCA T2 /LIST POINTER 1235 02006 7301 L0001 1236 02007 3112 DCA T1 /LETTER POINTER 1237 02010 1513 TAD I T2 /GET -UNIQUE COUNT-1 1238 02011 7012 RTR / 1239 02012 0125 AND C7 / 1240 02013 7110 CLL RAR / 1241 02014 7040 CMA / 1242 02015 3114 DCA CNTR / 1243 02016 4263 JMS COM11 /UNIQUE? 1244 02017 5227 JMP COM3 /YES - TRY REST 1245 02020 2113 ISZ T2 /GET NEXT COMMAND IN LIST 1246 02021 1513 TAD I T2 / 1247 02022 7440 SZA /END OF LIST? 1248 02023 5205 JMP COMLP1 /NO - GO ON 1249 02024 4346 JMS COMDUMP /YES - DUMP THE POINTERS 1250 02025 6201 COM5, CDF /YES - RETURN FAILURE 1251 02026 5600 JMP I MANCOM /AC=0 1252 1253 1254 02027 1513 COM3, TAD I T2 /GET -FULL LENGTH-2 1255 02030 0125 AND C7 / 1256 02031 7001 IAC / 1257 02032 7040 CMA / 1258 02033 1112 TAD T1 /T1=UNIQUE COUNT+1 1259 02034 3114 DCA CNTR /-NO. OF CHARS TO GO-1 1260 02035 4337 JMS COMPUSH /SAVE TEXT POINTERS 1261 02036 4263 JMS COM11 /LONG FORM OF COMMAND? 1262 02037 0004 COMK4, 4 1263 02040 4346 JMS COMDUMP /THROW OUT SHORT POINTERS 1264 02041 1513 TAD I T2 1265 02042 4561 RTL6 1266 02043 7006 RTL 1267 02044 0134 AND C77 /GET CODE 1268 02045 1376 TAD (-32 /CORRECT IT 1269 02046 3013 DCA FLTXR /AND SAVE IT 1270 02047 1014 TAD FLTXR2 1271 02050 7450 SNA 1272 02051 5255 JMP .+4 /NO DOUBLE CHECK 1273 02052 1013 TAD FLTXR 1274 02053 7640 SZA CLA 1275 02054 5261 JMP COM7 /DOUBLE CHECK FAILS 1276 02055 6201 CDF 1277 02056 4346 JMS COMDUMP /DUMP PDL JUNK 1278 02057 1013 TAD FLTXR 1279 02060 5600 JMP I MANCOM 1280 02061 4330 COM7, JMS COMPOP /RESET POINTERS TO ENTRY VALUES 1281 02062 5225 JMP COM5 /TAKE FAILURE RETURN 1282 1283 1284 02063 0000 COM11, 0 /COMMAND COMPARISON 1285 02064 3337 DCA COM12 /SET POINTERS UNUSED SWITCH 1286 02065 6211 COMLP2, CDF SWAP 1287 02066 2114 ISZ CNTR /-NO. OF CHARS TO GO-1 1288 02067 7410 SKP 1289 02070 5663 JMP I COM11 /SUCCESS RETURN FROM COM11 1290 02071 7301 L0001 1291 02072 1112 TAD T1 1292 02073 7010 RAR 1293 02074 1113 TAD T2 1294 02075 3012 DCA XREG3 1295 02076 1412 TAD I XREG3 1296 02077 7430 SZL 1297 02100 5303 JMP .+3 1298 02101 4561 RTL6 1299 02102 7004 RAL 1300 02103 0134 AND C77 1301 02104 7450 SNA 1302 02105 1355 TAD TSTCON 1303 02106 1375 TAD (-137 1304 02107 1026 TAD CHAR 1305 02110 7640 SZA CLA /SAME SO FAR? 1306 02111 5320 JMP COM13 /NO GO 1307 02112 7340 L7777 1308 02113 3337 DCA COM12 /SET SWITCH FOR POINTERS USED 1309 02114 6201 CDF 1310 02115 4544 GETC /NEXT CHAR 1311 02116 2112 ISZ T1 /LETTER POINTER 1312 02117 5265 JMP COMLP2 /LOOP 1313 1314 02120 6211 COM13, CDF SWAP /BE SURE TO RETURN WITH DF=1 1315 02121 2263 ISZ COM11 /FAILURE RETURN FROM COM11 1316 02122 2337 ISZ COM12 /HAVE THE TEXT POINTERS BEEN USED? 1317 02123 5663 JMP I COM11 1318 02124 4330 JMS COMPOP /COMPOP RETURNS WITH DF=1 1319 02125 1137 TAD M10 /FOOL COMDUMP INTO BACKING UP 1320 02126 4346 JMS COMDUMP /OVER SAVED POINTERS 1321 02127 5663 JMP I COM11 1322 1323 1324 02130 0000 COMPOP, 0 /RESTORE TEXT POINTERS FROM PDL 1325 02131 4552 POPA 1326 02132 3026 DCA CHAR 1327 02133 4554 POPF 1328 02134 0017 TEXTP 1329 02135 6211 CDF SWAP 1330 02136 5730 JMP I COMPOP 1331 1332 COM12, /THIS SWITCH IS NEVER IN USE WHEN COMPUSH IS CALLED 1333 02137 0000 COMPUSH, 0 /SAVE POINTERS 1334 02140 6201 CDF 1335 02141 4551 PUSHF 1336 02142 0017 TEXTP /SAVE TEXT POINTERS 1337 02143 1026 TAD CHAR / 1338 02144 4547 PUSHA / 1339 02145 5737 JMP I COMPUSH 1340 1341 02146 0000 COMDUMP, 0 /DUMP PDL ENTRIES 1342 02147 1237 TAD COMK4 1343 02150 1015 TAD PDLXR 1344 02151 3015 DCA PDLXR 1345 02152 5746 JMP I COMDUMP 1346 1347 02153 0000 TSTCH1, 0 /TEST A-Z,0-9 FOR FIELD 1 1348 02154 4562 TESTN 1349 02155 0122 TSTCON, -215+337 1350 02156 7410 SKP 1351 02157 2353 ISZ TSTCH1 1352 02160 4570 TSTALP 1353 02161 7410 SKP 1354 02162 2353 ISZ TSTCH1 1355 02163 6213 CIF CDF 10 1356 02164 5753 JMP I TSTCH1 1357 1358 02175 7641 PAGE 02176 7746 02177 0771 1359 /*EDIT* COMMAND 1360 02200 4565 EDIT, GETLN /GET LINE NUMBER 1361 02201 4566 TSTCCR 1362 02202 4557 ERR001, ERROR /JUNK 1363 02203 4574 FINDLN /FIND THE LINE 1364 02204 5202 JMP ERR001 /NOT THERE 1365 02205 2032 ISZ SPACSW 1366 02206 4637 JMS I EPINPACK /SET TO PACK IT 1367 02207 3130 MODF2, DCA LSTMOD /READ SILENTLY 1368 02210 4467 READC 1369 02211 1026 MODF3, TAD CHAR 1370 02212 3130 DCA LSTMOD /SET SEARCH CHARACTER 1371 02213 4544 MODF1, GETC 1372 02214 4471 FREE2 1373 02215 4470 PRINTC /PRINT LINE UNTIL... 1374 02216 4545 SORTJ 1375 02217 0123 CCR-1 1376 02220 2041 MODL1-CCR 1377 02221 4564 PACKC /KEEP PACKING 1378 02222 5213 JMP MODF1 1379 1380 02223 4564 MODF4, PACKC /PACK IT 1381 02224 4467 READC /GET CHARS 1382 02225 4545 SORTJ /CHECK THEM 1383 02226 0123 CCR-1 1384 02227 1225 MODL2-CCR 1385 02230 5223 JMP MODF4 1386 1387 02231 4564 MODF5, PACKC /PACK THE CR 1388 02232 4564 PACKC 1389 02233 4635 JMS I .+2 1390 02234 5636 JMP I .+2 1391 02235 5620 OTPACK 1392 02236 0510 SRETN 1393 02237 5607 EPINPACK,INPACK 1394 /*DELETE* COMMAND 1395 02240 4336 DELETE, JMS GETLIM /GET LIMITS 1396 02241 1054 TAD BUFR 1397 02242 3016 DCA AXIN /PROTECT TEXT 1398 02243 4317 JMS GETLIN /GET A LINE 1399 02244 5771 JMP I CVARKIL /WE ARE DONE 1400 02245 4770 JMS I CXDELET /DELETE IT 1401 02246 1031 TAD LASTLN 1402 02247 3027 DCA LINEPC /RESTORE POINTERS 1403 02250 5243 JMP .-5 /LOOP 1404 1405 /*LIST* COMMAND 1406 02251 4336 LIST, JMS GETLIM /GET LIMITS 1407 02252 2032 ISZ SPACSW /KEEP SPACES 1408 02253 1140 TAD M100 1409 02254 3025 DCA PT1 1410 02255 1034 TAD OUTPUT 1411 02256 7650 SNA CLA 1412 02257 5266 JMP LLIST3-3 /NORMAL MODE 1413 02260 3034 DCA OUTPUT /WE WILL OUTPUT FOR A WHILE 1414 02261 4471 LLIST5, FREE2 1415 02262 7330 L4000 1416 02263 4470 PRINTC 1417 02264 2025 ISZ PT1 1418 02265 5261 JMP LLIST5 1419 02266 4471 FREE2 1420 02267 1124 TAD CCR 1421 02270 4470 PRINTC 1422 02271 4317 LLIST3, JMS GETLIN /GET A LINE 1423 02272 5304 JMP LLIST4 /WE ARE DONE 1424 02273 4472 FREE13 1425 02274 1030 TAD LINENO 1426 02275 4762 JMS I CITPRNT /PRINT THE NUMBER 1427 02276 4544 GETC 1428 02277 4471 FREE2 1429 02300 4470 PRINTC /PRINT THE LINE 1430 02301 4566 TSTCCR 1431 02302 5276 JMP .-4 /UNTIL A CR 1432 02303 5271 JMP LLIST3 /LOOP 1433 1434 02304 1025 LLIST4, TAD PT1 1435 02305 7640 SZA CLA 1436 02306 5772 JMP I CSAVDON /SEE IF THIS IS A 'SAVE' 1437 02307 1140 TAD M100 1438 02310 3025 DCA PT1 1439 02311 4471 LLIST6, FREE2 1440 02312 7330 L4000 1441 02313 4470 PRINTC /DO L/T 1442 02314 2025 ISZ PT1 1443 02315 5311 JMP LLIST6 1444 02316 5773 JMP I CTAPE 1445 1446 02317 0000 GETLIN, 0 1447 02320 1124 TAD CCR /FAKE OUT GETNXT! 1448 02321 3026 DCA CHAR 1449 02322 4573 GETNXT /GET NEXT LINE 1450 02323 5717 JMP I GETLIN /OUT OF TEXT 1451 02324 4552 POPA 1452 02325 3115 DCA T3 /GET LIMIT 1453 02326 1115 TAD T3 1454 02327 4547 PUSHA /SAVE LIMIT 1455 02330 1030 TAD LINENO 1456 02331 7041 CIA 1457 02332 1115 TAD T3 1458 02333 7700 SMA CLA 1459 02334 2317 ISZ GETLIN /OK 1460 02335 5717 JMP I GETLIN 1461 1462 02336 0000 GETLIM, 0 1463 02337 4566 TSTCCR 1464 02340 5344 JMP LIMGT1 /NOT ALL 1465 02341 3031 DCA LASTLN /START AT 0 1466 02342 7350 L3777 1467 02343 5354 JMP LIMGT3 1468 1469 02344 4565 LIMGT1, GETLN /GET A LINE NUMBER 1470 02345 1030 TAD LINENO 1471 02346 3031 DCA LASTLN /AND SAVE IT 1472 02347 4567 TSTCOM 1473 02350 5366 JMP LIMGT2 /ONLY ONE LINE 1474 02351 4544 GETC 1475 02352 4565 GETLN /GET LINE NUMBER 1476 02353 1030 TAD LINENO 1477 02354 4547 LIMGT3, PUSHA /UPPER LIMIT 1478 02355 1031 TAD LASTLN 1479 02356 3030 DCA LINENO /LOWER LIMIT 1480 02357 4566 TSTCCR 1481 02360 5202 JMP EDIT+2 /JUNK 1482 02361 4574 LIMGT4, FINDLN /FIND THE LINE 1483 02362 0231 CITPRNT,ITPRNT 1484 02363 1031 TAD LASTLN 1485 02364 3027 DCA LINEPC /AND GO BACK ONE 1486 02365 5736 JMP I GETLIM 1487 1488 02366 1031 LIMGT2, TAD LASTLN /1ST = 2ND 1489 02367 5354 JMP LIMGT3 1490 1491 1492 02370 1600 CXDELET,XDELET 1493 02371 4235 CVARKIL,VARKILL 1494 02372 7124 CSAVDON,SAVDON 1495 02373 5077 CTAPE, TAPE 1496 /*NEXT* COMMAND 1497 02374 4550 NEXT, PUSHJ /GET VARIABLE 1498 02375 4400 GETVAR 1499 02376 7650 SNA CLA 1500 02377 4566 TSTCCR 1501 02400 4557 ERR460, ERROR /WAS FUNCTION 1502 02401 4407 FINT 1503 02402 0522 FGET I FLARGP /PUT VARIABLE INTO FLAC 1504 02403 0000 FEXT 1505 02404 4560 UDF 1506 02405 1417 TAD I AXOUT /GET *FOR* LINE NUMBER 1507 02406 7450 SNA 1508 02407 4557 ERR470, ERROR /*NEXT* NOT INITIALIZED 1509 02410 3112 DCA T1 /SAVE LINE 1510 02411 1417 TAD I AXOUT 1511 02412 3325 DCA RUNSCR 1512 02413 6201 CDF 1513 02414 1017 TAD AXOUT 1514 02415 4555 FLGET /GET INCREMENT 1515 02416 6167 FLARG 1516 02417 1522 GETSGN 1517 02420 7700 NEXT3, SMA CLA 1518 02421 1256 TAD C50 /POSITIVE INCREMENT 1519 02422 1220 TAD NEXT3 /NEGATIVE INCREMENT 1520 02423 3243 DCA NEXT1 /SET LIMIT TEST INSTRUCTION 1521 02424 4407 FINT 1522 02425 1522 FADD I FLARGP /BUMP VARIABLE 1523 02426 7522 FPUT I FLARGP /SAVE VALUE 1524 02427 0000 FEXT 1525 02430 4556 FLPUT /SET VARIABLE 1526 02431 6167 FLARG 1527 02432 1143 TAD C3 1528 02433 1017 TAD AXOUT 1529 02434 4555 FLGET /GET LIMIT 1530 02435 6167 FLARG 1531 02436 4407 FINT 1532 02437 2522 FSUB I FLARGP 1533 02440 7522 FPUT I FLARGP 1534 02441 0000 FEXT 1535 02442 1522 GETSGN /SIGN OF DIFFERENCE 1536 02443 7402 NEXT1, HLT /SKIP IF DONE 1537 02444 5253 JMP NEXT2 /NOT DONE 1538 02445 7340 L7777 1539 02446 1017 TAD AXOUT 1540 02447 3112 DCA T1 1541 02450 4560 UDF 1542 02451 3512 DCA I T1 /NOT INITIALIZED NOW 1543 02452 5553 POPJ 1544 1545 02453 1112 NEXT2, TAD T1 /GET LINE NUMBER OF *FOR* 1546 02454 3030 DCA LINENO 1547 02455 4574 FINDLN 1548 02456 0050 C50, 50 /IF IT AIN'T THERE, WELL... 1549 02457 1325 TAD RUNSCR 1550 02460 3017 FOREXT, DCA AXOUT 1551 02461 3026 DCA CHAR 1552 02462 5553 POPJ 1553 02463 4750 CHAIN1, JMS I PIOFX 1554 02464 4777 JMS I (DTFREE /REALLY FREE IT THIS TIME 1555 /*RUN* COMMAND 1556 02465 1054 RUN, TAD STARTV 1557 02466 3055 DCA LASTV /NO VARIABLES 1558 02467 4551 PUSHF 1559 02470 7736 FRNDX1 1560 02471 4554 POPF /SET RANDOM NUMBER 1561 02472 0106 FRNDX 1562 02473 4351 JMS RUN4 /UNINITIALIZE THE *NEXT* STATEMENTS 1563 02474 1057 TAD ALINE0 1564 02475 3027 DCA LINEPC /START AT LINE ZERO 1565 02476 4573 RUN7, GETNXT /GET NEXT LINE 1566 02477 5776 JMP I (READY /ALL DONE 1567 02500 3032 RUN6, DCA SPACSW 1568 02501 4544 GETC 1569 02502 2022 ISZ PC 1570 02503 5307 JMP RUN8+1 /STILL O.K. 1571 02504 4334 JMS RUN9 /DISMISS US NOW 1572 02505 7410 SKP 1573 02506 2015 RUN8, ISZ PDLXR 1574 02507 4750 JMS I PIOFX 1575 02510 3031 DCA MODE 1576 02511 1030 TAD LINENO 1577 02512 3062 DCA ERLINE /SET CURRENT LINE 1578 02513 4571 COMMAN /GET COMMAND 1579 02514 7540 SMA SZA 1580 02515 5775 JMP I (ERRCHK 1581 02516 1374 TAD (COMGOL 1582 02517 3112 DCA T1 1583 02520 6211 CDF SWAP 1584 02521 1512 TAD I T1 /GET ADDRESS 1585 02522 6201 CDF 1586 02523 3325 DCA .+2 1587 02524 4550 PUSHJ /GO TO IT 1588 02525 0000 RUNSCR, 0 1589 02526 7450 SNA 1590 02527 5276 JMP RUN7 /NORMAL RETURN 1591 02530 3030 DCA LINENO /FOR TRANSFER 1592 02531 4574 GOSUB2, FINDLN /FIND THE LINE 1593 02532 4557 ERR380, ERROR /NOT FOUND 1594 02533 5300 JMP RUN6 1595 1596 02534 0000 RUN9, 0 /DISMISSAL ROUTINE 1597 02535 1334 TAD RUN9 1598 02536 3022 DCA PC /SET RESTART ADDRESS 1599 02537 5177 JMP NULL /DISMISS 1600 1601 02540 4351 IMMED, JMS RUN4 1602 02541 7340 L7777 1603 02542 1060 TAD COMBUF 1604 02543 3027 DCA LINEPC 1605 02544 7340 L7777 1606 02545 3030 DCA LINENO /IMMEDIATE MODE 1607 02546 4773 JMS I (OTPACK 1608 02547 5307 JMP RUN8+1 1609 1610 02550 1365 PIOFX, IOFIX 1611 1612 02551 0000 RUN4, 0 1613 02552 7200 CLA 1614 02553 1124 TAD CCR /SET END OF LINE FOR GETNXT 1615 02554 3026 DCA CHAR 1616 02555 1062 TAD ERLINE 1617 02556 4572 FIND /FIND THE NEXT STATEMENTS 1618 02557 0001 1 /- NEXT CODE 1619 02560 5751 JMP I RUN4 /OUT OF TEXT 1620 02561 3062 DCA ERLINE /SAVE FOR RESTART 1621 02562 4550 PUSHJ 1622 02563 4400 GETVAR 1623 02564 7650 SNA CLA 1624 02565 4566 TSTCCR 1625 02566 5200 JMP ERR460 1626 02567 4560 UDF 1627 02570 3417 DCA I AXOUT /NOT INITIALIZED NOW 1628 02571 5352 JMP RUN4+1 1629 1630 02573 5620 PAGE 02574 3750 02575 1561 02576 0464 02577 6627 1631 /EXPRESSION EVALUATOR 1632 02600 0000 ECALL, 0 1633 02601 1111 TAD SORTCN 1634 02602 4547 PUSHA 1635 02603 1117 TAD LASTOP 1636 02604 4547 PUSHA 1637 02605 1114 TAD EFOP 1638 02606 4547 PUSHA 1639 02607 1200 TAD ECALL 1640 02610 4547 PUSHA /RETURN ADDRESS 1641 02611 4544 GETC 1642 02612 3117 EVAL, DCA LASTOP /0 IS END 1643 02613 1353 TAD EVAL1 1644 02614 4547 PUSHA /SAVE EVAL1 1645 02615 3353 DCA EVAL1 /0 EVAL1 1646 02616 4563 TESTC 1647 02617 5223 JMP ETERM1 /INITIAL TERMINATOR 1648 02620 5241 JMP ENUM /NUMBER 1649 02621 5344 JMP EVAR /VARIABLE 1650 02622 5777 JMP I (QUOTES /CHECK FOR LITERAL STRING 1651 1652 02623 1376 ETERM1, TAD (FLZERO 1653 02624 3025 DCA PT1 /0 DATA 1654 02625 7344 L7776 1655 02626 1111 TAD SORTCN 1656 02627 7450 SNA 1657 02630 5261 JMP ETERM /MINUS 1658 02631 7001 IAC 1659 02632 7650 SNA CLA 1660 02633 5336 JMP ARGNXT /PLUS 1661 02634 4576 ELPAR, TSTLPR 1662 02635 5354 JMP EVAL2 /CHECK UNARY 1663 02636 4200 EPAR2, JMS ECALL /RECURSIVE CALL 1664 02637 2015 ISZ PDLXR 1665 02640 5775 JMP I (ENDFUN /END AS FUNCTION 1666 1667 02641 1122 ENUM, TAD FLARGP 1668 02642 3025 DCA PT1 /DATA TO FLARG 1669 02643 4774 JMS I (FLIN /GET VALUE 1670 02644 2353 OPNEXT, ISZ EVAL1 1671 02645 5251 JMP .+4 /NO UNARY 1672 02646 7330 L4000 1673 02647 1425 TAD I PT1 1674 02650 3425 DCA I PT1 /FLIP SIGN 1675 02651 3353 DCA EVAL1 1676 02652 4546 SORTC 1677 02653 3640 TERMS-1 1678 02654 5256 JMP ETERMN 1679 02655 3111 DCA SORTCN /ALL ELSE IS END 1680 02656 4576 ETERMN, TSTLPR 1681 02657 7410 SKP 1682 02660 4557 ERR120, ERROR /EXCESS L-PARENS 1683 02661 1111 ETERM, TAD SORTCN 1684 02662 3116 DCA THISOP /SET OP 1685 02663 1116 TAD THISOP 1686 02664 1137 TAD M10 1687 02665 7700 SMA CLA 1688 02666 3116 DCA THISOP /END 1689 02667 1116 ETERM2, TAD THISOP 1690 02670 7041 CIA 1691 02671 1117 TAD LASTOP /PRIORITIES 1692 02672 7710 SPA CLA 1693 02673 5323 JMP EPAR /NO GO YET 1694 02674 1117 TAD LASTOP 1695 02675 1373 TAD (OPTABL 1696 02676 3114 DCA CNTR 1697 02677 1514 TAD I CNTR 1698 02700 3307 DCA FLOP /SET OP 1699 02701 1117 TAD LASTOP 1700 02702 7640 SZA CLA 1701 02703 4554 POPF /GET DATA 1702 02704 0112 T1 /DUMB TEMP 1703 02705 4407 FINT 1704 02706 0112 FGET T1 1705 02707 5772 FLOP, FJMP I (FUPARR /FLOATING OP 1706 02710 7522 FPUT I FLARGP /SAVE DATA 1707 02711 0000 FEXT 1708 02712 1122 TAD FLARGP 1709 02713 3025 DCA PT1 /POINT TO DATA 1710 02714 1116 TAD THISOP 1711 02715 1117 TAD LASTOP 1712 02716 7650 SNA CLA 1713 02717 5366 JMP EVAL3 /DONE 1714 02720 4552 POPA 1715 02721 3117 DCA LASTOP /NEW OP 1716 02722 5267 JMP ETERM2 1717 1718 02723 4576 EPAR, TSTLPR 1719 02724 7410 SKP 1720 02725 5236 JMP EPAR2 /DO RECURSIVE 1721 02726 1117 TAD LASTOP 1722 02727 4547 PUSHA 1723 02730 1025 TAD PT1 1724 02731 3333 DCA .+2 1725 02732 4551 PUSHF /SAVE DATA 1726 02733 0000 0 1727 02734 1116 TAD THISOP 1728 02735 3117 DCA LASTOP 1729 02736 4544 ARGNXT, GETC 1730 02737 4563 TESTC 1731 02740 5234 JMP ELPAR /T 1732 02741 5241 JMP ENUM /N 1733 02742 5344 JMP EVAR /V 1734 02743 5357 JMP ERR110 /OTHER 1735 1736 02744 4550 EVAR, PUSHJ /GET VARIABLE 1737 02745 4400 GETVAR 1738 02746 7440 SZA 1739 02747 5771 JMP I (FUNCT3 /FUNCTION 1740 02750 1122 TAD FLARGP 1741 02751 3025 DCA PT1 /POINT TO DATA 1742 02752 5244 JMP OPNEXT 1743 1744 02753 0000 EVAL1, 0 1745 1746 02754 7344 EVAL2, L7776 1747 02755 1111 TAD SORTCN /IS IT + OR -? 1748 02756 7540 SMA SZA 1749 02757 4557 ERR110, ERROR /NO - DOUBLE OPS OR EX L-PARNES 1750 02760 7640 SZA CLA 1751 02761 5336 JMP ARGNXT /WAS + 1752 02762 1353 TAD EVAL1 1753 02763 7040 CMA 1754 02764 3353 DCA EVAL1 /FLIP EVAL1 1755 02765 5336 JMP ARGNXT 1756 1757 02766 4552 EVAL3, POPA 1758 02767 3353 DCA EVAL1 /RESTORE EVAL1 1759 02770 5553 POPJ /EXIT 1760 1761 02771 5710 PAGE 02772 5021 02773 5400 02774 5731 02775 7741 02776 7160 02777 7617 1762 03000 4547 FUNCT6, PUSHA /SAVE CHARACTER 1763 03001 3114 DCA EFOP 1764 03002 2114 ISZ EFOP 1765 03003 4551 PUSHF /SAVE ARGS 1766 03004 6167 FLARG 1767 03005 4567 TSTCOM 1768 03006 5214 JMP .+6 /NO MORE ARGS 1769 03007 4777 JMS I (ECALL /GET NEXT 1770 03010 4552 POPA 1771 03011 2015 ISZ PDLXR 1772 03012 2015 ISZ PDLXR 1773 03013 5201 JMP .-12 1774 1775 03014 1055 TAD LASTV 1776 03015 3024 DCA SUBS /SAVE END OF VARIABLES 1777 03016 1114 TAD EFOP 1778 03017 1376 FUNC10, TAD (2000 1779 03020 3023 DCA ADD /CREATE ILLEGAL NAME 1780 03021 4550 PUSHJ /LOOK IT UP - WILL DEFINE 1781 03022 4435 LOOKUP 1782 03023 4554 POPF 1783 03024 6167 FLARG 1784 03025 4556 FLPUT /SET ARGUMENT 1785 03026 6167 FLARG 1786 03027 7352 L5777 1787 03030 1023 TAD ADD 1788 03031 7440 SZA 1789 03032 5217 JMP FUNC10 /MORE ARGUMENTS 1790 03033 7330 L4000 1791 03034 4552 POPA 1792 03035 7041 CIA 1793 03036 3345 DCA FUNC17 /-CHAR OF FUNCTION 1794 03037 4551 PUSHF 1795 03040 0017 TEXTP 1796 03041 1111 TAD SORTCN 1797 03042 4547 PUSHA 1798 03043 1024 TAD SUBS 1799 03044 4547 PUSHA 1800 03045 7410 SKP 1801 1802 03046 4552 FUNC11, POPA 1803 03047 4572 FIND /FIND A *DEF* 1804 03050 0011 11 /-DEF CODE 1805 03051 4557 ERR170, ERROR /OUT OF TEXT 1806 03052 4547 PUSHA /FOR RESTART 1807 03053 4571 COMMAN /GET WORD 1808 03054 1375 TAD (-5 1809 03055 7640 SZA CLA 1810 03056 5246 JMP FUNC11 1811 03057 1026 TAD CHAR 1812 03060 1345 TAD FUNC17 1813 03061 7640 SZA CLA 1814 03062 5246 JMP FUNC11 /NOT PROPER FUNCTION 1815 03063 2015 ISZ PDLXR 1816 03064 1062 TAD ERLINE 1817 03065 4547 PUSHA /SAVE CALLING LINE 1818 03066 1030 TAD LINENO 1819 03067 3062 DCA ERLINE /CALL THIS OUR LINE 1820 03070 4544 GETC 1821 03071 4546 SORTC 1822 03072 3640 TERMS-1 1823 03073 4576 TSTLPR 1824 03074 4557 ERR180, ERROR /NO L-PAREN 1825 03075 1111 TAD SORTCN 1826 03076 4547 PUSHA 1827 03077 4544 GETC 1828 03100 7332 L2000 1829 03101 3112 DCA T1 1830 03102 1055 TAD LASTV 1831 03103 3025 DCA PT1 /POINT TO ARGUMENTS 1832 03104 4570 FUNC14, TSTALP 1833 03105 5274 JMP ERR180 /ILLEGAL VARIABLE 1834 03106 1026 TAD CHAR 1835 03107 0315 AND C37 1836 03110 4561 RTL6 1837 03111 7010 RAR 1838 03112 3113 DCA T2 /SAVE NAME 1839 03113 4544 GETC 1840 03114 4562 TESTN 1841 03115 0037 C37, 37 1842 03116 5324 JMP FUNC13 /NOT NUMBER 1843 03117 1026 TAD CHAR 1844 03120 0315 AND C37 1845 03121 1113 TAD T2 1846 03122 3113 DCA T2 1847 03123 4544 GETC 1848 03124 2112 FUNC13, ISZ T1 /SET ILLEGAL NAME 1849 03125 4560 UDF 1850 03126 1425 TAD I PT1 1851 03127 7041 CIA 1852 03130 1112 TAD T1 1853 03131 7640 SZA CLA 1854 03132 4557 ERR200, ERROR /WRONG NUMBER OF ARGUMENTS 1855 03133 1113 TAD T2 1856 03134 3425 DCA I PT1 /SET TEMPORARY NAME 1857 03135 6201 CDF 1858 03136 1141 TAD M4 1859 03137 1025 TAD PT1 1860 03140 3025 DCA PT1 /POINT TO NEXT 1861 03141 4567 TSTCOM 1862 03142 5346 JMP FUNC12 /NO MORE 1863 03143 4544 GETC 1864 03144 5304 JMP FUNC14 1865 1866 03145 0000 FUNC17, 0 1867 1868 03146 2112 FUNC12, ISZ T1 1869 03147 4560 UDF 1870 03150 1425 TAD I PT1 1871 03151 6201 CDF 1872 03152 7041 CIA 1873 03153 1112 TAD T1 1874 03154 7650 SNA CLA 1875 03155 5332 JMP ERR200 /SHOULD NOT AGREE 1876 03156 4546 SORTC 1877 03157 3640 TERMS-1 1878 03160 7410 SKP 1879 03161 5274 JMP ERR180 /NO PAREN 1880 03162 7344 L7776 1881 03163 1111 TAD SORTCN 1882 03164 7041 CIA 1883 03165 4552 POPA 1884 03166 7640 SZA CLA 1885 03167 5274 JMP ERR180 /NO MATCH 1886 03170 5774 JMP I (FUNC16 1887 1888 /*UDF* ROUTINE 1889 03171 0000 XUDF, 0 1890 03172 6221 CDF 20 /TO USER'S FIELD 1891 03173 5771 JMP I XUDF 1892 03174 5112 PAGE 03175 7773 03176 2000 03177 2600 1893 /COMMON PART FOR *PRINT* AND *INPUT* COMMANDS 1894 03200 4544 PRINT8, GETC /GO BY THE ";" 1895 03201 2025 ISZ PT1 /SHOULD WE SPACE? 1896 03202 5206 JMP PRINT1 /NO 1897 03203 4471 FREE2 1898 03204 1142 TAD C40 1899 03205 4470 PRINTC /PRINT A SPACE 1900 03206 4545 PRINT1, SORTJ /CHECK , " ' CR 1901 03207 5446 PRNTL1-1 1902 03210 6235 PRNTL2-PRNTL1 1903 03211 7340 PRINT4, L7777 1904 03212 4571 COMMAN /TAB? 1905 03213 7640 SZA CLA 1906 03214 5222 JMP PRIN5+1 1907 03215 1377 TAD (-26 1908 03216 4571 COMMAN 1909 03217 7650 SNA CLA 1910 03220 5553 POPJ /MUST BE EXPRESSION 1911 03221 7340 PRIN5, L7777 1912 03222 4547 PUSHA 1913 03223 4546 SORTC 1914 03224 3640 TERMS-1 1915 03225 4576 TSTLPR 1916 03226 4557 ERR340, ERROR 1917 03227 4776 JMS I (ECALL /GET RECURSIVE 1918 03230 2015 ISZ PDLXR /DUMP EFOP 1919 03231 4775 JMS I (PARTST /CHECK MATCH 1920 03232 4560 UDF 1921 03233 2415 ISZ I PDLXR /AHA! 1922 03234 5774 JMP I (PRIN12 /WAS TAB FUNCTION 1923 03235 4523 JMS I INTEGE 1924 03236 1373 TAD (-15 1925 03237 7450 SNA 1926 03240 5252 JMP PRIN11+1 1927 03241 1124 TAD CCR 1928 03242 4547 PUSHA 1929 03243 4471 FREE2 /MAKE SOME ROOM 1930 03244 4552 POPA 1931 03245 7450 SNA 1932 03246 7330 L4000 /MAKE "NULL" PRINTABLE (OTHERWISE WE PRINT CHAR...) 1933 03247 4470 PRINTC 1934 03250 5307 JMP PRIN10 1935 1936 03251 4523 PRIN11, JMS I INTEGE /MAKE INTEGER OF TAB ARG 1937 03252 1372 TAD (-110 1938 03253 7440 SZA /SPECIAL CASE CHECK 1939 03254 1371 TAD (110 1940 03255 7040 CMA 1941 03256 3025 DCA PT1 /SET -COUNT -1 1942 03257 1061 TAD PRNTC1 1943 03260 1371 TAD (110 1944 03261 1025 TAD PT1 1945 03262 7510 SPA 1946 03263 5276 JMP PRINT9 1947 03264 7200 CLA 1948 03265 6002 IOF 1949 03266 1124 TAD CCR 1950 03267 4770 JMS I (XOUTL2 1951 03270 1124 TAD CCR 1952 03271 4770 JMS I (XOUTL2 1953 03272 1372 TAD (-110 1954 03273 3061 DCA PRNTC1 1955 03274 6001 ION 1956 03275 7410 SKP 1957 03276 3025 PRINT9, DCA PT1 1958 03277 2025 ISZ PT1 1959 03300 7410 SKP 1960 03301 5307 JMP PRIN10 1961 03302 4471 FREE2 1962 03303 1142 TAD C40 1963 03304 4470 PRINTC 1964 03305 5277 JMP PRINT9+1 1965 1966 03306 7340 L7777 1967 03307 3025 PRIN10, DCA PT1 /SET SPACE INDICATOR 1968 03310 4545 SORTJ /CHECK ; , ' " CR 1969 03311 5445 PRNTL4-1 1970 03312 6230 PRNTL6-PRNTL4 1971 03313 2025 ISZ PT1 /NO FIND O.K.? 1972 03314 5211 JMP PRINT4 /YES - ASSUME TAB OR EXPRESSION 1973 03315 4557 ERR350, ERROR /NO - SYNTAX ERROR 1974 1975 1976 1977 1978 03316 4471 FREE2 1979 03317 1142 TAD C40 1980 03320 4470 PRINTC /SPACES TO FINISH ZONE 1981 03321 1070 PRINT5, TAD PPRINT 1982 03322 1367 TAD (-XPRNTC 1983 03323 7640 SZA CLA 1984 03324 5336 JMP PRNT5A 1985 03325 1125 TAD C7 1986 03326 1061 TAD PRNTC1 1987 03327 1124 TAD CCR 1988 03330 7510 SPA 1989 03331 5327 JMP .-2 1990 03332 7640 SZA CLA 1991 03333 5316 JMP PRINT5-3 /KEEP GOING 1992 03334 4544 PRNT5B, GETC /GO BY THE "," 1993 03335 5206 JMP PRINT1 1994 03336 4471 PRNT5A, FREE2 1995 03337 4470 PRINTC 1996 03340 5334 JMP PRNT5B 1997 /*PRINTX* ROUTINE 1998 03341 0000 XOUTL, 0 1999 03342 7450 SNA 2000 03343 1026 TAD CHAR /USE CHAR IF AC=0 2001 03344 4770 JMS I (XOUTL2 /DO OUTPUT 2002 03345 1012 TAD XREG3 2003 03346 1373 TAD (-15 /WAS IT A CR 2004 03347 7450 SNA 2005 03350 5362 JMP XOUTL1 /YES! 2006 03351 1366 TAD (15-40 2007 03352 7510 SPA 2008 03353 7610 SKP CLA /IT IS A NON-PRINTING CHARACTER 2009 03354 1140 TAD M100 2010 03355 7710 SPA CLA 2011 03356 2061 ISZ PRNTC1 /IT IS A PRINTING CHAR SO COUNT IT 2012 03357 5741 JMP I XOUTL 2013 2014 03360 1124 TAD CCR /END OF LINE SO DO CR-LF 2015 03361 5344 JMP XOUTL+3 2016 2017 03362 1372 XOUTL1, TAD (-110 2018 03363 3061 DCA PRNTC1 /RESET COUNT 2019 03364 1132 TAD CLF 2020 03365 5344 JMP XOUTL+3 2021 2022 03366 7755 PAGE 03367 0422 03370 3400 03371 0110 03372 7670 03373 7763 03374 4337 03375 5665 03376 2600 03377 7752 2023 03400 0000 XOUTL2, 0 2024 03401 6201 CDF 2025 03402 3012 DCA XREG3 /SAVE CHAR 2026 03403 1034 TAD OUTPUT 2027 03404 7640 SZA CLA 2028 03405 5255 JMP XOUTL4 /NO ECHO 2029 03406 1051 TAD TELSW /BUSY 2030 03407 7640 SZA CLA 2031 03410 5235 JMP XOUTL5 /YES 2032 03411 1136 TAD C10 2033 03412 1035 TAD XIOT 2034 03413 3227 DCA XOUTL6 /SET OUTPUT IOT 2035 03414 1036 TAD DECK 2036 03415 7160 CLL CML CMA 2037 03416 3115 DCA T3 2038 03417 7740 CCM40, SMA SZA CLA /AC=0 SO ITS A SKP 2039 03420 7010 RAR 2040 03421 2115 ISZ T3 2041 03422 5220 JMP .-2 2042 03423 1136 TAD C10 2043 03424 6117 MTON /TURN ON PROPER USER 2044 03425 7200 CLA 2045 03426 1012 TAD XREG3 2046 03427 7402 XOUTL6, HLT 2047 /IF NOT DC02, 2048 /XOUTL6-3 AND XOUTL6+3 ARE SET TO ZERO IN BEG760 2049 03430 3051 DCA TELSW /SET BUSY 2050 03431 1777 TAD I (AUSER 2051 03432 6117 MTON /ALL ON AGAIN 2052 03433 7200 CLA 2053 03434 5255 JMP XOUTL4 2054 2055 03435 4560 XOUTL5, UDF 2056 03436 1447 TAD I OPTRI /ROOM 2057 03437 7640 SZA CLA 2058 03440 4344 ERR080, JMS IERROR /NO ROOM 2059 03441 4560 UDF 2060 03442 1012 TAD XREG3 2061 03443 3447 DCA I OPTRI /FILL BUFFER 2062 03444 2047 ISZ OPTRI /BUMP BUFFER 2063 03445 1047 TAD OPTRI 2064 03446 7041 CIA 2065 03447 1046 TAD IPTR0 2066 03450 7640 SZA CLA 2067 03451 5255 JMP XOUTL4 /OK 2068 03452 1046 TAD IPTR0 2069 03453 1217 TAD CCM40 2070 03454 3047 DCA OPTRI /RESET BUFFER 2071 03455 6201 XOUTL4, CDF 2072 03456 5600 JMP I XOUTL2 2073 /*FINDLN* ROUTINE 2074 03457 0000 XFINDL, 0 2075 03460 1030 TAD LINENO 2076 03461 7710 SPA CLA /IS THIS IMMEDIATE MODE??????? 2077 03462 5321 JMP XFNDL3 /YEP. 2078 03463 4560 UDF 2079 03464 1057 TAD ALINE0 2080 03465 3031 DCA LASTLN 2081 03466 1057 TAD ALINE0 2082 03467 3027 XFNDL1, DCA LINEPC /CURRENT LINE 2083 03470 1027 TAD LINEPC 2084 03471 3012 DCA XREG3 2085 03472 1030 TAD LINENO 2086 03473 7041 CIA 2087 03474 1412 TAD I XREG3 2088 03475 7450 SNA 2089 03476 5307 JMP XFNDL2-1 /FOUND LINE 2090 03477 7700 SMA CLA 2091 03500 5310 JMP XFNDL2 /WENT BEYOND 2092 03501 1027 TAD LINEPC 2093 03502 3031 DCA LASTLN 2094 03503 1427 TAD I LINEPC 2095 03504 7440 SZA 2096 03505 5267 JMP XFNDL1 /LOOP 2097 03506 7410 SKP /OUT OF TEXT 2098 03507 2257 ISZ XFINDL /FOUND LINE 2099 03510 1027 XFNDL2, TAD LINEPC 2100 03511 7001 IAC 2101 03512 3017 DCA AXOUT /SET TO UNPACK 2102 03513 3021 DCA XCT 2103 03514 6201 CDF 2104 03515 5657 JMP I XFINDL 2105 2106 03516 2055 FUPAR1, 2055 2107 03517 0000 0 2108 03520 0000 0 2109 2110 03521 7340 XFNDL3, L7777 2111 03522 1060 TAD COMBUF 2112 03523 3027 DCA LINEPC 2113 03524 5307 JMP XFNDL2-1 /RESET TO DO COMMAND BUFFER NOW 2114 /ERROR ENTERING ROUTINES 2115 03525 0000 XERROR, 0 2116 03526 6002 IOF 2117 03527 7200 CLA 2118 03530 6201 IERRO1, CDF 2119 03531 1126 TAD C177 2120 03532 3344 DCA IERROR 2121 03533 1325 IERRO2, TAD XERROR 2122 03534 7110 CLL RAR /FORM ERROR CODE 2123 03535 3130 DCA LSTMOD 2124 03536 6212 CIF SWAP /DO DECTAPE AND STATUS STOUGH 2125 03537 4776 JMS I (IERDTA 2126 03540 4775 JMS I (IOFIX /RESET FILES 2127 03541 1374 TAD (ERRORX 2128 03542 3022 DCA PC /SET FOR RESTART 2129 03543 5744 JMP I IERROR 2130 2131 03544 0000 IERROR, 0 2132 03545 7340 L7777 2133 03546 1217 TAD CCM40 2134 03547 1046 TAD IPTR0 2135 03550 3012 DCA XREG3 2136 03551 1217 TAD CCM40 2137 03552 3115 DCA T3 /BUFFER COUNT 2138 03553 4560 UDF 2139 03554 3412 DCA I XREG3 /CLEAR BUFFER 2140 03555 2115 ISZ T3 2141 03556 5354 JMP .-2 2142 03557 6201 CDF 2143 03560 1047 TAD OPTRI 2144 03561 3050 DCA OPTRO 2145 03562 1344 TAD IERROR 2146 03563 3325 DCA XERROR 2147 03564 1120 TAD LOOK 2148 03565 7041 CIA 2149 03566 1006 TAD TEMP2 2150 03567 7650 SNA CLA 2151 03570 5330 JMP IERRO1 /RUNNING 2152 03571 5333 JMP IERRO2 /NOT RUNNING 2153 2154 03574 0400 PAGE 03575 1365 03576 5065 03577 5335 2155 2156 2157 /*PACKC* ROUTINE 2158 03600 0000 XPACKC, 0 2159 03601 4545 SORTJ 2160 03602 4164 XPAKL1-1 2161 03603 6303 XPAKL2-XPAKL1 2162 03604 4546 XXPAK, SORTC /CHECK FOR ALTMODE 2163 03605 1774 ALT-1 2164 03606 5265 JMP XPPCK1 /IT IS ALTMODE 2165 03607 1026 TAD CHAR 2166 03610 1377 TAD (-40 2167 03611 2024 XPACK4, ISZ XCTIN 2168 03612 5232 JMP XPACK1 /NO PARTIAL 2169 03613 1023 TAD ADD /FORM WORD 2170 03614 4560 UDF 2171 03615 3416 DCA I AXIN /PACK IT 2172 03616 6201 CDF 2173 03617 3023 DCA ADD 2174 03620 1453 TAD I PACKND 2175 03621 1133 TAD M12 2176 03622 7141 CLL CIA 2177 03623 1016 TAD AXIN 2178 03624 7630 SZL CLA 2179 03625 4557 ERR060, ERROR /TOO FAR 2180 03626 5600 XPACK5, JMP I XPACKC 2181 2182 03627 1376 XPACK2, TAD (37 2183 03630 1142 XPACK3, TAD C40 2184 03631 5211 JMP XPACK4 2185 2186 03632 4561 XPACK1, RTL6 2187 03633 3023 DCA ADD /SAVE PARTIAL 2188 03634 7340 L7777 2189 03635 3024 DCA XCTIN /INDICATE PARTIAL 2190 03636 5600 JMP I XPACKC 2191 2192 03637 2024 XPACK7, ISZ XCTIN /PARTIAL HERE 2193 03640 5245 JMP XPACK8 /NO 2194 03641 3023 XPACK9, DCA ADD 2195 03642 1127 TAD C137 2196 03643 4470 PRINTC /PRINT BACK ARROW 2197 03644 5600 JMP I XPACKC 2198 2199 03645 1052 XPACK8, TAD PACKST 2200 03646 7041 CIA 2201 03647 1016 TAD AXIN 2202 03650 7650 SNA CLA 2203 03651 5600 JMP I XPACKC /ALL GONE ANY HOW 2204 03652 1016 TAD AXIN 2205 03653 3115 DCA T3 2206 03654 7340 L7777 2207 03655 3024 DCA XCTIN /INDICATE PARTIAL 2208 03656 7340 L7777 2209 03657 1016 TAD AXIN 2210 03660 3016 DCA AXIN /PUT IT BACK ONE 2211 03661 4560 UDF 2212 03662 1515 TAD I T3 /GET OLD 2213 03663 0140 AND C7700 2214 03664 5241 JMP XPACK9 2215 2216 03665 4551 XPPCK1, PUSHF /SAVE TEXT POINTERS 2217 03666 0017 TEXTP 2218 03667 1200 TAD XPACKC 2219 03670 4547 PUSHA /SAVE ADDRESS IF DISMISSED 2220 03671 4775 JMS I (READY1 /PRINT "$ DELETED" 2221 03672 4552 POPA 2222 03673 3200 DCA XPACKC /RESTORE ADDRESS 2223 03674 1052 TAD PACKST 2224 03675 3016 DCA AXIN 2225 03676 4554 POPF 2226 03677 0017 TEXTP 2227 03700 3026 DCA CHAR 2228 03701 5235 JMP XPACK1+3 2229 /*READC* ROUTINE 2230 03702 0000 XREADC, 0 2231 03703 4560 UDF 2232 03704 6202 CIF /NO INTERRUPTS WHILE MESSING WITH IPTRO 2233 /OR HIS BUFFER - ELSE WE'RE SKROOD!!!! 2234 03705 1445 TAD I IPTRO /GET CHAR 2235 03706 3026 DCA CHAR /SET CHARACTER 2236 03707 3445 DCA I IPTRO /CLEAR BUFFER 2237 03710 6201 CDF 2238 03711 1026 TAD CHAR 2239 03712 7650 SNA CLA /WAS THERE A CHARACTER 2240 03713 5326 JMP XREAD1 /NO - WAIT 2241 03714 2045 ISZ IPTRO /BUMP BUFFER 2242 03715 1045 TAD IPTRO 2243 03716 7041 CIA 2244 03717 1142 TAD C40 2245 03720 1046 TAD IPTR0 2246 03721 7640 SZA CLA 2247 03722 5325 JMP .+3 /OK 2248 03723 1046 TAD IPTR0 2249 03724 3045 DCA IPTRO /RESET BUFFER 2250 03725 5702 JMP I XREADC 2251 2252 03726 7340 XREAD1, L7777 2253 03727 1302 TAD XREADC 2254 03730 3022 DCA PC /SET TO REDO ROUTINE 2255 03731 4774 JMS I (XOR 2256 03732 4000 4000 /I WAIT AND DISMISS 2257 /*TSTLPR* ROUTINE 2258 03733 0000 LPRTST, 0 2259 03734 1111 TAD SORTCN 2260 03735 1135 TAD M6 2261 03736 7710 SPA CLA 2262 03737 5733 JMP I LPRTST /NOT L-PAREN 2263 03740 1111 TAD SORTCN 2264 03741 1137 TAD M10 2265 03742 7710 SPA CLA 2266 03743 2333 ISZ LPRTST /L-PAREN 2267 03744 5733 JMP I LPRTST 2268 2269 03745 0000 RESETO, 0 /RESET OUTPUT POINTERS 2270 03746 1373 TAD (XPRNTC 2271 03747 3070 DCA PPRINT 2272 03750 1372 TAD (XFREE2 2273 03751 3071 DCA PFREE2 2274 03752 1371 TAD (XFREE3 2275 03753 3072 DCA PFREE3 2276 03754 5745 JMP I RESETO 2277 2278 03755 1370 OLD, TAD (SAVDN1 /SET UP FAKE RETURN FOR *OLD* COMMAND 2279 03756 3105 DCA CHAINP /TO LOCK THE TAPE ON AN OLD 2280 03757 5767 JMP I (OLD1 /GO TO REAL ROUTINE 2281 2282 03760 1366 CHKPAT, TAD (460 2283 03761 3066 DCA EXTEN 2284 03762 1076 TAD IBLK /FILE OPEN? 2285 03763 5765 JMP I (CHKPT1 2286 2287 2288 03765 1143 PAGE 03766 0460 03767 7317 03770 7132 03771 6007 03772 6000 03773 7356 03774 5600 03775 1756 03776 0037 03777 7740 2289 /*POPF* ROUTINE 2290 04000 0000 XPOPF, 0 2291 04001 7340 L7777 2292 04002 1600 TAD I XPOPF 2293 04003 3012 DCA XREG3 /POINT TO DATA AREA 2294 04004 7346 L7775 2295 04005 3115 DCA T3 2296 04006 4552 POPA 2297 04007 3412 DCA I XREG3 /MOVE DATA 2298 04010 2115 ISZ T3 2299 04011 5206 JMP .-3 2300 04012 2200 ISZ XPOPF 2301 04013 5600 JMP I XPOPF 2302 /*TESTC* ROUTINE 2303 04014 0000 XTESTC, 0 2304 04015 4546 SORTC 2305 04016 3640 TERMS-1 2306 04017 5614 JMP I XTESTC /TERMINATOR 2307 04020 2214 ISZ XTESTC 2308 04021 4562 TESTN 2309 04022 5614 JMP I XTESTC 2310 04023 7410 SKP 2311 04024 5614 JMP I XTESTC 2312 04025 2214 ISZ XTESTC 2313 04026 4570 TSTALP 2314 04027 2214 ISZ XTESTC /OTHER 2315 04030 5614 JMP I XTESTC /LETTER 2316 /*TESTN* ROUTINE 2317 04031 0000 XTESTN, 0 2318 04032 1026 TAD CHAR 2319 04033 1377 TAD (-60 2320 04034 3111 DCA SORTCN /SAVE BINARY DIGIT 2321 04035 7326 L0002 2322 04036 1111 TAD SORTCN 2323 04037 7450 SNA 2324 04040 5631 JMP I XTESTN /PERIOD 2325 04041 2231 ISZ XTESTN 2326 04042 1376 TAD (-13 2327 04043 7740 SMA SZA CLA 2328 04044 5631 JMP I XTESTN /GREATER THAN 271 2329 04045 1111 TAD SORTCN 2330 04046 7700 SMA CLA 2331 04047 2231 ISZ XTESTN /DIGIT 2332 04050 5631 JMP I XTESTN 2333 /*GETC* ROUTINE 2334 04051 0000 XGETC, 0 2335 04052 2021 ISZ XCT 2336 04053 5264 JMP XGET1 /NO PARTIAL 2337 04054 1020 TAD GTEM /GET PARTIAL 2338 04055 0134 XGET2, AND C77 /AND OFF JUNK 2339 04056 1142 TAD C40 /CORRECT TO ASCII 2340 04057 3026 DCA CHAR 2341 04060 4545 SORTJ /CHECK SPECIALS 2342 04061 4167 XGETL1-1 2343 04062 5004 XGETL2-XGETL1 2344 04063 5651 JMP I XGETC 2345 2346 04064 4560 XGET1, UDF 2347 04065 1417 TAD I AXOUT /GET NEXT 2348 04066 6201 CDF 2349 04067 3020 DCA GTEM /SAVE PARTIAL 2350 04070 7340 L7777 2351 04071 3021 DCA XCT /INDICATE PARTIAL 2352 04072 1020 TAD GTEM 2353 04073 4561 RTL6 2354 04074 7004 RAL 2355 04075 5255 JMP XGET2 2356 2357 04076 1032 XGET3, TAD SPACSW /SPACE TEST 2358 04077 7640 SZA CLA 2359 04100 5651 JMP I XGETC /KEEP SPACES 2360 04101 5252 JMP XGETC+1 /IGNORE SPACES 2361 2362 04102 1125 XGET4, TAD C7 /BELL 2363 04103 3026 XGET6, DCA CHAR 2364 04104 5651 JMP I XGETC 2365 2366 04105 1124 XGET5, TAD CCR /CR 2367 04106 5303 JMP XGET6 2368 /*GETNXT* ROUTINE 2369 04107 0000 NXTGET, 0 2370 04110 4566 TSTCCR /END OF LINE? 2371 04111 7610 SKP CLA 2372 04112 5321 JMP NXTGT1 /YES, GET NEXT LINE NUMBER 2373 04113 1026 TAD CHAR 2374 04114 1341 TAD MSPLAT 2375 04115 7650 SNA CLA 2376 04116 5333 JMP NXTG /YES, NEXT COMMAND FOUND 2377 04117 4544 GETC /NO, GET ANOTHER CHAR 2378 04120 5310 JMP NXTGET+1 /TRY AGAIN 2379 04121 4560 NXTGT1, UDF 2380 04122 1427 TAD I LINEPC /POINTER TO NEXT 2381 04123 7450 SNA 2382 04124 5334 JMP NXTG+1 /OUT OF TEXT 2383 04125 3027 DCA LINEPC /NEW POINTER 2384 04126 1027 TAD LINEPC 2385 04127 3017 DCA AXOUT 2386 04130 3021 DCA XCT /SET TO UNPACK 2387 04131 1417 TAD I AXOUT /GET LINE NUMBER 2388 04132 3030 DCA LINENO 2389 04133 2307 NXTG, ISZ NXTGET 2390 04134 6201 CDF 2391 04135 5707 JMP I NXTGET 2392 /*FIND* ROUTINE 2393 04136 0000 XFIND, 0 2394 04137 3030 DCA LINENO /SET START LINE 2395 04140 4574 FINDLN 2396 04141 7644 MSPLAT, -"\+200 2397 04142 4573 XFIND1, GETNXT /GET NEXT LINE 2398 04143 5353 JMP XFIND2 /OUT OF TEXT 2399 04144 4544 GETC 2400 04145 4571 COMMAN 2401 04146 1736 TAD I XFIND /CORRECT COMMAND 2402 04147 7640 SZA CLA 2403 04150 5342 JMP XFIND1 /NO - LOOP 2404 04151 2336 ISZ XFIND 2405 04152 1030 TAD LINENO /FOR RESTART 2406 04153 2336 XFIND2, ISZ XFIND 2407 04154 5736 JMP I XFIND 2408 2409 04155 0000 USER0, 0 2410 04156 0001 USER1, 1 2411 04157 0002 USER2, 2 2412 04160 0003 USER3, 3 2413 04161 0004 USER4, 4 2414 04162 0005 USER5, 5 2415 04163 0006 USER6, 6 2416 04164 0007 USER7, 7 2417 2418 04165 0015 XPAKL1, 15 /THE NEXT 6 LOCATIONS MUST STAY TOGETHER 2419 04166 0007 7 /BELL 2420 04167 0177 177 /RUBOUT 2421 04170 0137 XGETL1, 137 /BACK ARROW 2422 04171 0100 100 /USED IN XGETL 2423 04172 0040 40 2424 /BE DAMN SURE THE NEXT WORD IS NEGATIVE!!! 2425 2426 /INTERRUPTS HERE FIRST 2427 04173 6212 INTR8E, CIF SWAP 2428 04174 5775 JMP I .+1 2429 04175 4646 INTR81 2430 2431 04176 7765 PAGE 04177 7720 2432 /*GOSUB* COMMAND 2433 2434 04200 4565 GOSUB, GETLN 2435 04201 4575 TSTEND 2436 04202 4557 ERR290, ERROR 2437 04203 7340 GOSUB3, L7777 2438 04204 1017 TAD AXOUT 2439 04205 4547 PUSHA 2440 04206 1062 TAD ERLINE 2441 04207 4547 PUSHA 2442 04210 1377 TAD (GOSUB1 2443 04211 4547 PUSHA 2444 04212 5776 JMP I (GOSUB2 2445 2446 /*NEW* AND *BYE* AND *SCRATCH* COMMANDS 2447 2448 04213 7340 NEW, L7777 2449 04214 3031 RENAME, DCA MODE /KLUDGE! 2450 04215 4550 PUSHJ 2451 04216 5740 GETNAM 2452 04217 4775 JMS I (DTGRAB /SO WE DON'T BLOW ANY OTHER NAMES 2453 04220 6213 CIF CDF SWAP /UNPACK THE NAME 2454 04221 4774 JMS I (XGETNAM 2455 04222 4240 JMS MOVNAM /GET THE NAME WHERE IT COUNTS 2456 04223 4773 JMS I (DTFREE /SEE, WE DIDN'T USE THE TAPE! 2457 04224 2031 ISZ MODE /NEW OR RENAME COMMAND? 2458 04225 5772 JMP I (READY 2459 2460 04226 4566 BYE, TSTCCR 2461 04227 4557 ERR002, ERROR /JUNK 2462 04230 4560 UDF 2463 04231 3457 DCA I ALINE0 /NO TEXT 2464 04232 7326 L0002 2465 04233 1057 TAD ALINE0 2466 04234 3054 DCA BUFR /FREE UP TEXT SPACE 2467 04235 1054 VARKIL, TAD STARTV 2468 04236 3055 DCA LASTV 2469 04237 5772 JMP I (READY 2470 2471 04240 0000 MOVNAM, 0 2472 04241 6211 CDF SWAP /MOVE NAME DOWN 2473 04242 1524 TAD I CCR /TAD I [NAMEX 2474 04243 3063 DCA NAME 2475 04244 1771 TAD I (NAMEX+1 2476 04245 3064 DCA NAME+1 2477 04246 1770 TAD I (NAMEX+2 2478 04247 3065 DCA NAME+2 2479 04250 6201 CDF 2480 04251 5640 JMP I MOVNAM 2481 2482 04252 3037 INPUTX, DCA DATAPC 2483 04253 1124 TAD CCR 2484 04254 3043 DCA DATAPC+4 /AUTO-RESTORE 2485 04255 4571 COMMAN 2486 04256 1135 TAD M6 2487 04257 7510 SPA 2488 04260 5767 JMP I (IMMED /IMMEDIATE MODE 2489 04261 1366 TAD (COMGO1 2490 04262 3112 DCA T1 2491 04263 6211 CDF SWAP 2492 04264 1512 TAD I T1 2493 04265 6201 CDF 2494 04266 3112 DCA T1 2495 04267 5512 JMP I T1 2496 /*ON* COMMAND--ON-GOTO AND ON-GOSUB 2497 04270 4550 ON, PUSHJ /GET VALUE 2498 04271 2612 EVAL 2499 04272 4571 COMMAN 2500 04273 1125 TAD C7 2501 04274 7450 SNA 2502 04275 5302 JMP .+5 2503 04276 1365 TAD (4 2504 04277 7640 SZA CLA 2505 04300 4557 ERR300, ERROR 2506 04301 7340 L7777 2507 04302 3113 DCA T2 2508 04303 4523 JMS I INTEGE 2509 04304 7570 SNA SPA SZL 2510 04305 5334 JMP ON2 2511 04306 7041 CIA 2512 04307 3112 DCA T1 2513 04310 4565 ON1, GETLN 2514 04311 2112 ISZ T1 2515 04312 5315 JMP .+3 2516 04313 1030 TAD LINENO 2517 04314 4547 PUSHA 2518 04315 4567 TSTCOM 2519 04316 5321 JMP .+3 2520 04317 4544 GETC 2521 04320 5310 JMP ON1 2522 04321 4575 TSTEND 2523 04322 5300 JMP ERR300 2524 04323 1112 TAD T1 2525 04324 7710 SPA CLA 2526 04325 5334 JMP ON2 /IT WASN'T THERE 2527 04326 4552 POPA 2528 04327 3030 DCA LINENO 2529 04330 1030 TAD LINENO 2530 04331 2113 ISZ T2 2531 04332 5553 POPJ /*GOTO* COMMAND--TRANSFER TO IT 2532 04333 5203 JMP GOSUB3 /*GOSUB* CMD--CALL GOSUB (NO NEED TO CLEAR AC) 2533 2534 04334 1062 ON2, TAD ERLINE /INDEX WAS OUT OF RANGE 2535 04335 3030 DCA LINENO 2536 04336 5553 POPJ 2537 04337 4407 PRIN12, FINT 2538 04340 7764 FPUT I (IF1 /SETUP CALL TO 'MOD' 2539 04341 0000 FEXT 2540 04342 4551 PUSHF 2541 04343 5761 F72 2542 04344 4554 POPF 2543 04345 6167 FLARG 2544 04346 4550 PUSHJ 2545 04347 1310 MOD1 2546 04350 4550 PUSHJ 2547 04351 1572 ABS /MAKE IT POSITIVE 2548 04352 5763 JMP I (PRIN11 2549 2550 04353 4552 GOSUB1, POPA 2551 04354 3030 DCA LINENO 2552 04355 4574 FINDLN 2553 04356 2460 AFORE, FOREXT 2554 04357 4552 POPA 2555 04360 5756 JMP I AFORE 2556 2557 2558 04363 3251 PAGE 04364 1363 04365 0004 04366 4707 04367 2540 04370 0017 04371 0016 04372 0464 04373 6627 04374 2661 04375 6603 04376 2531 04377 4353 2559 /GET A VARIABLE OR FUNCTION ROUTINE 2560 /EXIT WITH AC NON-ZERO IF FUNCTION 2561 /AC IS LIST POINTER UNLESS 2562 /AC IS NEGATIVE, THEN AC IS CHAR FOR USER FUNCTION 2563 04400 4570 GETVAR, TSTALP 2564 04401 4557 ERR220, ERROR /MUST BE LETTER 2565 04402 1026 TAD CHAR 2566 04403 0223 AND P37 2567 04404 4561 RTL6 2568 04405 7010 RAR 2569 04406 3023 DCA ADD /SAVE FOR NAME 2570 04407 4544 GETC 2571 04410 4563 TESTC 2572 04411 5334 JMP SUBT /T - TEST FOR SUBSCRIPT 2573 04412 5222 JMP P37-1 /N - ADD TO NAME 2574 04413 5727 JMP I FUNCTI /TRY FOR FUNCTION 2575 04414 1026 TAD CHAR /CHECK FOR $ 2576 04415 1332 TAD MDOLR 2577 04416 7640 SZA CLA 2578 04417 5235 JMP LOOKUP 2579 04420 2031 ISZ MODE /IT'S A STRING! 2580 04421 5225 JMP .+4 2581 2582 04422 4562 TESTN 2583 04423 0037 P37, 37 2584 04424 5235 JMP LOOKUP /WAS A . 2585 04425 1026 TAD CHAR 2586 04426 0223 AND P37 2587 04427 1023 TAD ADD 2588 04430 3023 DCA ADD /NEW NAME 2589 04431 4544 GETC 2590 04432 4546 SORTC 2591 04433 3640 TERMS-1 2592 04434 5334 JMP SUBT 2593 04435 4560 LOOKUP, UDF 2594 04436 1055 TAD LASTV 2595 04437 3025 GS1, DCA PT1 /POINT TO VARIABLES 2596 04440 1054 TAD STARTV 2597 04441 7041 CIA 2598 04442 1025 TAD PT1 2599 04443 7650 SNA CLA 2600 04444 5265 JMP GS2 /NOT FOUND AT ALL 2601 04445 1425 TAD I PT1 /GET NAME 2602 04446 7141 CLL CIA 2603 04447 1023 TAD ADD 2604 04450 7450 SNA 2605 04451 5733 JMP I GFND1I /FOUND NAME 2606 04452 7420 SNL 2607 04453 7041 CIA /POSITIVE DIFFERENCE 2608 04454 7106 CLL RTL /AC WILL BE 0 IF DIFFERENCE WAS 2000 2609 04455 7650 SNA CLA 2610 04456 4557 ERR130, ERROR /ERROR - A(I) AND A(I,I) CANNOT EXIST TOGETHER 2611 04457 1425 TAD I PT1 2612 04460 7710 SPA CLA 2613 04461 7340 L7777 /BACK 1 FOR SUBSCRIPT 2614 04462 1141 GS4, TAD M4 2615 04463 1025 TAD PT1 2616 04464 5237 JMP GS1 2617 2618 04465 1125 GS2, TAD C7 2619 04466 1055 TAD LASTV /ROOM LEFT 2620 04467 7141 CLL CIA 2621 04470 1015 TAD PDLXR 2622 04471 7630 SZL CLA 2623 04472 5276 JMP .+4 2624 04473 1054 TAD STARTV 2625 04474 3055 DCA LASTV /WIPE OUT VARIABLES--OVERFLOW 2626 04475 4557 ERR100, ERROR /NO ROOM 2627 04476 7301 L0001 2628 04477 7006 RTL 2629 04500 1055 TAD LASTV 2630 04501 3025 DCA PT1 /POINT TO NEW SPACE 2631 04502 1023 TAD ADD 2632 04503 7700 SMA CLA 2633 04504 5310 JMP GPUT1 2634 04505 1024 TAD SUBS 2635 04506 3425 DCA I PT1 /SET SUBSCRIPT 2636 04507 2025 ISZ PT1 2637 04510 1023 GPUT1, TAD ADD 2638 04511 3425 DCA I PT1 /SET NAME 2639 04512 6201 CDF 2640 04513 1025 TAD PT1 2641 04514 4547 PUSHA 2642 04515 7301 L0001 2643 04516 1055 TAD LASTV 2644 04517 3025 DCA PT1 /POINT TO NEW DATA SPACE 2645 04520 4552 POPA 2646 04521 3055 DCA LASTV /NEW LIMIT 2647 04522 4556 FLPUT /SET TO 0 2648 04523 7160 FLZERO 2649 04524 5726 JMP I GS5I 2650 2651 04525 4602 SUB2I, SUB2 2652 04526 4623 GS5I, GS5 2653 04527 4626 FUNCTI, FUNCT 2654 04530 2600 ECALLI, ECALL 2655 04531 0046 AC3I, AC3 2656 04532 7734 MDOLR, -44 2657 04533 4604 GFND1I, GFND1 2658 2659 04534 4576 SUBT, TSTLPR 2660 04535 5235 JMP LOOKUP /NOT SUBSCRIPTED 2661 04536 1023 TAD ADD 2662 04537 3114 DCA EFOP 2663 04540 4730 JMS I ECALLI /GET SUBSCRIPT 2664 04541 7330 L4000 2665 04542 4552 POPA 2666 04543 3023 DCA ADD /SAVE NAME 2667 04544 4523 JMS I INTEGE 2668 04545 7530 SPA SZL 2669 04546 4557 SUB1, ERROR /TOO BIG OR NEGATIVE 2670 ERR230=SUB1 2671 04547 3024 DCA SUBS /SET SUBSCRIPT 2672 04550 4567 TSTCOM 2673 04551 5725 JMP I SUB2I /ONLY ONE SUBSCRIPT 2674 04552 4551 PUSHF /SAVE ADD,SUBS 2675 04553 0023 ADD 2676 04554 4550 PUSHJ /GET SECOND SUBSCRIPT 2677 04555 2611 EVAL-1 2678 04556 4554 POPF 2679 04557 0023 ADD 2680 04560 4523 JMS I INTEGE 2681 04561 0140 AND C7700 2682 04562 7010 RAR 2683 04563 7640 SZA CLA 2684 04564 5346 JMP SUB1 /TOO BIG 2685 04565 1024 TAD SUBS 2686 04566 0140 AND C7700 2687 04567 7640 SZA CLA 2688 04570 5346 JMP SUB1 /TOO BIG 2689 04571 1024 TAD SUBS 2690 04572 4561 RTL6 2691 04573 6211 CDF SWAP 2692 04574 1731 TAD I AC3I /FORM DOUBLE SUBSCRIPT 2693 04575 6201 CDF 2694 04576 3024 DCA SUBS 2695 04577 7332 L2000 2696 04600 1023 TAD ADD 2697 04601 3023 DCA ADD /INDICATE 2 SUBSCRIPTS 2698 04602 4777 SUB2, JMS I (PARTST /CHECK PAREN MATCH 2699 04603 5776 JMP I (LOOKUP 2700 2701 04604 1023 GFND1, TAD ADD 2702 04605 7700 SMA CLA 2703 04606 5217 JMP GFND2 /NO SUBSCRIPT 2704 04607 7340 L7777 2705 04610 1025 TAD PT1 2706 04611 3025 DCA PT1 2707 04612 1425 TAD I PT1 /GET SUBSCRIPT 2708 04613 7041 CIA 2709 04614 1024 TAD SUBS 2710 04615 7640 SZA CLA 2711 04616 5775 JMP I (GS4 /WRONG SUBSCRIPT 2712 04617 6201 GFND2, CDF 2713 04620 7346 L7775 2714 04621 1025 TAD PT1 2715 04622 3025 DCA PT1 /POINT TO DATA 2716 04623 4555 GS5, FLGET /GET VARIABLE 2717 04624 6167 FLARG 2718 04625 5553 POPJ 2719 2720 04626 1026 FUNCT, TAD CHAR 2721 04627 0374 AND (37 2722 04630 1023 TAD ADD 2723 04631 4546 SORTC /CHECK 2 LETTERS 2724 04632 3577 FUNL1-1 2725 04633 7410 SKP 2726 04634 5776 JMP I (LOOKUP /NOT A FUNCTION 2727 04635 1111 TAD SORTCN 2728 04636 7650 SNA CLA 2729 04637 5276 JMP FUNCT4 /USER FUNCTION 2730 04640 4551 PUSHF 2731 04641 0017 TEXTP 2732 04642 1026 TAD CHAR 2733 04643 4547 PUSHA 2734 04644 4544 GETC 2735 04645 1026 TAD CHAR 2736 04646 3025 DCA PT1 2737 04647 4552 POPA 2738 04650 3026 DCA CHAR 2739 04651 4554 POPF 2740 04652 0017 TEXTP 2741 04653 1111 TAD SORTCN 2742 04654 1373 TAD (FUNL2-1 2743 04655 3115 DCA T3 2744 04656 6211 CDF SWAP 2745 04657 1515 TAD I T3 /GET CORRECT CODE 2746 04660 1025 TAD PT1 2747 04661 7640 SZA CLA 2748 04662 5776 JMP I (LOOKUP /WAS NOT A FUNCTION 2749 04663 1111 TAD SORTCN 2750 04664 4547 PUSHA /SAVE CONSTANT 2751 04665 4544 GETC 2752 04666 4544 FUNCT5, GETC 2753 04667 4546 SORTC 2754 04670 3640 TERMS-1 2755 04671 4576 TSTLPR 2756 04672 4557 ERR240, ERROR /NO L-PAREN 2757 04673 4552 POPA 2758 04674 7001 IAC /FUNCTION CODE 2759 04675 5553 POPJ 2760 2761 04676 4544 FUNCT4, GETC 2762 04677 4570 TSTALP 2763 04700 4557 ERR250, ERROR /NOT LETTER 2764 04701 7350 L3777 2765 04702 1026 TAD CHAR 2766 04703 4547 PUSHA /SAVE CHAR OF USER FUNCTION 2767 04704 5266 JMP FUNCT5 2768 /*SORTC* ROUTINE 2769 04705 0000 XSORTC, 0 2770 04706 7450 SNA 2771 04707 1026 TAD CHAR /USE CHAR IF AC IS 0 2772 04710 7041 CIA 2773 04711 3115 DCA T3 2774 04712 1705 TAD I XSORTC 2775 04713 3012 DCA XREG3 /SET TO LIST 2776 04714 6211 CDF SWAP 2777 04715 1412 TAD I XREG3 2778 04716 6201 CDF 2779 04717 7510 SPA 2780 04720 5331 JMP XSORT3 /END OF LIST 2781 04721 1115 TAD T3 2782 04722 7640 SZA CLA 2783 04723 5314 JMP .-7 /NO GO - LOOP 2784 04724 1705 TAD I XSORTC 2785 04725 7040 CMA 2786 04726 1012 TAD XREG3 2787 04727 3111 DCA SORTCN /SET CONSTANT 2788 04730 7410 SKP 2789 04731 2305 XSORT3, ISZ XSORTC 2790 04732 2305 ISZ XSORTC 2791 04733 7300 CLL CLA 2792 04734 5705 JMP I XSORTC 2793 /*SORTJ* ROUTINE 2794 04735 0000 XSORTJ, 0 2795 04736 7450 SNA 2796 04737 1026 TAD CHAR /USE CHAR IF AC IS 0 2797 04740 7041 CIA 2798 04741 3115 DCA T3 2799 04742 1735 TAD I XSORTJ 2800 04743 3012 DCA XREG3 /SET TO LIST 2801 04744 2335 ISZ XSORTJ 2802 04745 1412 TAD I XREG3 2803 04746 7510 SPA 2804 04747 5362 JMP XSORT1 /END OF LIST 2805 04750 1115 TAD T3 2806 04751 7640 SZA CLA 2807 04752 5345 JMP .-5 /NO GO - LOOP 2808 04753 1012 TAD XREG3 2809 04754 1735 TAD I XSORTJ 2810 04755 3335 DCA XSORTJ 2811 04756 6211 CDF SWAP 2812 04757 1735 TAD I XSORTJ /GET ADDRESS 2813 04760 6201 CDF 2814 04761 3335 DCA XSORTJ 2815 04762 7300 XSORT1, CLL CLA 2816 04763 2335 ISZ XSORTJ 2817 04764 5735 JMP I XSORTJ 2818 2819 04765 0000 XPRT1, 0 /PRINTC FOR FIELD 1 2820 04766 4470 PRINTC 2821 04767 6213 CIF CDF SWAP 2822 04770 5765 JMP I XPRT1 2823 2824 2825 04773 3620 PAGE 04774 0037 04775 4462 04776 4435 04777 5665 2826 05000 0000 FLOUT, 0 2827 05001 6213 CIF CDF SWAP 2828 05002 4777 JMS I (OFLOUT 2829 05003 5600 JMP I FLOUT 2830 05004 2776 ISZ I (PRNT5 2831 05005 4775 JMS I (ITPRNT 2832 05006 5600 JMP I FLOUT 2833 05007 4407 SGN, FINT 2834 05010 6100 FSGE 2835 05011 0216 FGET MNSONE 2836 05012 6150 FSLE 2837 05013 0774 FGET I (FLTONE 2838 05014 0000 FEXT 2839 05015 5553 POPJ 2840 2841 05016 6014 MNSONE, 6014 2842 05017 0000 0 2843 05020 0000 0 2844 2845 05021 7773 FUPARR, FPUT I (TEMP 2846 05022 0425 FGET I PT1 2847 05023 1772 FADD I (FCN 2848 05024 6425 FCMP I PT1 2849 05025 6050 FSEQ 2850 05026 5264 FJMP EXPLNG 2851 05027 0425 FGET I PT1 2852 05030 6100 FSGE 2853 05031 3216 FMUL MNSONE 2854 05032 2771 FSUB I (FUPAR1 2855 05033 6150 FSLE 2856 05034 5264 FJMP EXPLNG 2857 05035 0425 FGET I PT1 2858 05036 6110 FSLT 2859 05037 5244 FJMP .+5 2860 05040 0774 FGET I (FLTONE 2861 05041 4773 FDIV I (TEMP 2862 05042 7773 FPUT I (TEMP 2863 05043 0425 FGET I PT1 2864 05044 0000 FEXT 2865 05045 4523 JMS I INTEGE 2866 05046 7510 SPA 2867 05047 7041 CIA 2868 05050 7040 CMA 2869 05051 3200 DCA FUPAR2 2870 05052 4407 FINT 2871 05053 0774 FGET I (FLTONE 2872 05054 0000 FEXT 2873 05055 5261 JMP .+4 2874 2875 05056 4407 FINT 2876 05057 3773 FMUL I (TEMP 2877 05060 0000 FEXT 2878 05061 2200 ISZ FUPAR2 2879 05062 5256 JMP .-4 2880 05063 5275 JMP FUPAR3 2881 2882 FUPAR2=FLOUT 2883 2884 05064 0773 EXPLNG, FGET I (TEMP 2885 05065 0000 FEXT 2886 05066 4550 PUSHJ 2887 05067 5467 LOG 2888 05070 4407 FINT 2889 05071 3425 FMUL I PT1 2890 05072 0000 FEXT 2891 05073 4550 PUSHJ 2892 05074 5466 FEXP 2893 05075 4407 FUPAR3, FINT 2894 05076 5770 FJMP I (FLOP+1 2895 05077 7301 TAPE, L0001 2896 05100 3025 KKEY, DCA PT1 /SAVE CONSTANT FOR OUTPUT 2897 05101 4566 TSTCCR 2898 05102 4557 ERR003, ERROR /JUNK 2899 05103 4767 JMS I (RUN9 /DISMISS US NOW 2900 05104 1051 TAD TELSW 2901 05105 7640 SZA CLA 2902 05106 5303 JMP .-3 /STILL BUSY - WAIT 2903 05107 1025 TAD PT1 2904 05110 3034 DCA OUTPUT /SET OUTPUT 2905 05111 5766 JMP I (READY 2906 05112 4544 FUNC16, GETC 2907 05113 1026 TAD CHAR 2908 05114 1330 TAD FMEQL 2909 05115 7640 SZA CLA 2910 05116 4557 ERR210, ERROR 2911 05117 4550 PUSHJ 2912 05120 2611 EVAL-1 2913 05121 4575 TSTEND 2914 05122 5316 JMP .-4 2915 05123 4552 POPA 2916 05124 3062 DCA ERLINE 2917 05125 1062 TAD ERLINE 2918 05126 3030 DCA LINENO 2919 05127 4574 FINDLN 2920 05130 7703 FMEQL, -"=+200 2921 05131 4552 POPA 2922 05132 3055 DCA LASTV 2923 05133 4552 POPA 2924 05134 3111 DCA SORTCN 2925 05135 4554 POPF 2926 05136 0017 TEXTP 2927 05137 3031 DCA MODE /!!! 2928 05140 5765 JMP I (ENDFUN 2929 05141 0000 XFLGET, 0 2930 05142 7440 SZA 2931 05143 5346 JMP .+3 2932 05144 7340 L7777 2933 05145 1025 TAD PT1 2934 05146 3013 XFLGT2, DCA FLTXR 2935 05147 7340 L7777 2936 05150 1741 TAD I XFLGET 2937 05151 3014 DCA FLTXR2 2938 05152 7346 L7775 2939 05153 3115 DCA T3 2940 05154 4560 UDF 2941 05155 1413 TAD I FLTXR 2942 05156 6201 CDF 2943 05157 3414 DCA I FLTXR2 2944 05160 2115 ISZ T3 2945 05161 5354 JMP .-5 2946 05162 2341 ISZ XFLGET 2947 05163 5741 JMP I XFLGET 2948 2949 2950 05165 7741 PAGE 05166 0464 05167 2534 05170 2710 05171 3516 05172 5764 05173 6164 05174 7157 05175 0231 05176 0277 05177 1200 2951 05200 3325 INTRPT, DCA SAVAC /SAVE THE AC 2952 05201 7010 RAR 2953 05202 3326 DCA SAVLK /AND THE LINK 2954 05203 1115 TAD T3 2955 05204 3327 DCA T3SV /SAVE T3 2956 05205 1012 TAD XREG3 2957 05206 3330 DCA XREG3S /SAVE XREG3 2958 05207 1111 TAD SORTCN 2959 05210 3331 DCA SRTCNS /SAVE SORTCN 2960 05211 1560 TAD I AUDF 2961 05212 3332 DCA UDFSV /SAVE UDF ADDRESS 2962 05213 1546 TAD I ASORTC 2963 05214 3336 DCA SORTCS /SAVE SORTC ADDRESS 2964 05215 1723 TAD I PXFREE 2965 05216 3333 DCA FREESV /SAVE XFREE ADDRESS 2966 05217 3003 DCA USER /START AT USER 0 2967 05220 3005 DCA TEMP1 /NO TTY'S TO TURN ON AT FIRST 2968 05221 1320 TAD TADINT 2969 05222 3223 DCA INTRP1 /SET LIST POINTER 2970 05223 7402 INTRP1, HLT /GET TLS IOT 2971 05224 1141 TAD M4 2972 05225 3255 DCA INTRP4 /TCF 2973 05226 7340 L7777 2974 05227 1255 TAD INTRP4 2975 05230 3253 DCA INTRP3 /TSF 2976 05231 1137 TAD M10 2977 05232 1253 TAD INTRP3 2978 05233 3241 DCA INTRP2 /KSF 2979 05234 6213 CIF CDF SWAP /GO CHECK DECTAPE FLAG 2980 05235 4000 JMS DTINTR 2981 05236 1005 TAD TEMP1 2982 05237 6117 MTON /TURN ON PROPER USER 2983 05240 7200 CLA 2984 05241 7402 INTRP2, HLT /KEY? 2985 /IF NOT DC02, 2986 /INTRP2-2 AND INTRP2+4 ARE SET TO ZERO IN BEG760 2987 05242 7410 SKP /NO 2988 05243 4721 JMS I PKEY /READ TTY 2989 05244 1005 TAD TEMP1 2990 05245 6117 MTON /USER ON AGAIN 2991 05246 7110 CLL RAR /SHIFT FOR NEXT USER 2992 05247 7450 SNA /FIRST TIME? 2993 05250 1316 TAD C4004 /YES - GET TTY #1 BIT 2994 05251 1317 TAD C4 2995 05252 3005 DCA TEMP1 2996 05253 7402 INTRP3, HLT /TTY? 2997 05254 5257 JMP .+3 /NO 2998 05255 7402 INTRP4, HLT /CLEAR ITS FLAG 2999 05256 4722 JMS I PTTY /DO TTY OUTPUT 3000 05257 2003 ISZ USER /NEXT USER PLEASE 3001 05260 2223 ISZ INTRP1 /BUMP LIST POINTER 3002 05261 1003 TAD USER 3003 05262 1334 TAD MUSER /ARE WE DONE? 3004 05263 7640 SZA CLA 3005 05264 5223 JMP INTRP1 /NO 3006 05265 1335 INTRP5, TAD AUSER 3007 /IF NOT DC02, 3008 /INTRP5 AND INTRP5+1 ARE SET TO ZERO IN BEG760 3009 05266 6117 MTON /TURN ALL USERS ON AGAIN 3010 05267 7200 CLA 3011 05270 1520 TAD I LOOK /GET RUNNING USER 3012 05271 4707 JMS I DECKNI /AND PUT HIM ONDECK 3013 05272 1327 TAD T3SV 3014 05273 3115 DCA T3 /RESTORE ALL THOS STORED THINGS 3015 05274 1330 TAD XREG3S 3016 05275 3012 DCA XREG3 3017 05276 1331 TAD SRTCNS 3018 05277 3111 DCA SORTCN 3019 05300 1332 TAD UDFSV 3020 05301 3560 DCA I AUDF 3021 05302 1336 TAD SORTCS 3022 05303 3546 DCA I ASORTC 3023 05304 1333 TAD FREESV 3024 05305 3723 DCA I PXFREE 3025 05306 2724 ISZ I PINTCN /COUNT INTERRUPTS 3026 05307 0305 DECKNI, DECKON 3027 /IF PDP 8E, AND NOT DC02 - ASSUME KL8E. NEXT THREE WORDS ARE: 3028 / CIF 20 3029 / JMP I .+1 3030 / KL8FIX1 3031 /SEE BEG002 AND BEG540 FOR DETAILS. 3032 05310 1326 KL8JMP, TAD SAVLK /GET LINK BACK 3033 05311 7104 CLL RAL 3034 05312 1325 TAD SAVAC /AND THE AC ALSO 3035 05313 6244 KL8LFL, RMF 3036 05314 6001 ION 3037 05315 5400 JMP I 0 /EXIT FROM INTERRUPT 3038 3039 05316 4004 C4004, 4004 3040 05317 0004 C4, 4 3041 05320 1337 TADINT, TAD INTRPL 3042 05321 0600 PKEY, KEY 3043 05322 0730 PTTY, TTY 3044 05323 6020 PXFREE, XFREE 3045 05324 7404 PINTCN, INTCNT 3046 05325 0000 SAVAC, 0 3047 05326 0000 SAVLK, 0 3048 05327 0000 T3SV, 0 3049 05330 0000 XREG3S, 0 3050 05331 0000 SRTCNS, 0 3051 05332 0000 UDFSV, 0 3052 05333 0000 FREESV, 0 3053 3054 05334 7777 MUSER, -1 /-1 FOR 1 USER, -2 FOR 2, ETC. 3055 /(SET IN INIT) 3056 05335 0000 AUSER, 0 /4000 FOR 2 USERS; 6000 FOR 3 USERS; ETC. 3057 3058 05336 0000 SORTCS, 0 3059 3060 05337 6046 INTRPL, TLS /USER 0 TLS IOT 3061 05340 6126 MTLS /USER 1 TLS IOT 3062 05341 6126 MTLS /USER 2 3063 05342 6126 MTLS /USER 3 3064 05343 6126 MTLS /USER 4 3065 05344 6126 MTLS /USER 5 3066 05345 6126 MTLS /USER 6 3067 05346 6126 MTLS /USER 7 3068 3069 05347 6212 CIF SWAP 3070 05350 5736 JMP I INTRPL-1 /AND EXIT 3071 /CHECK IF STRING RETURNED, SET UP TO GET SECOND ARG 3072 /FOR MID AND CAT FUNCTIONS 3073 3074 05351 0000 GETSTR, 0 3075 05352 1031 TAD MODE /MAKE SURE FIRST ARG IS A STRING 3076 05353 7640 SZA CLA 3077 05354 4567 TSTCOM /CHECK FOR COMMA 3078 05355 4557 ERR560, ERROR /FIRST ARG NOT STRING, MISSING ARG 3079 05356 4551 PUSHF /SAVE THE STRING 3080 05357 6167 FLARG 3081 05360 3031 DCA MODE /CLEAR MODE TO CHECK NEXT ARG TYPE 3082 05361 5751 JMP I GETSTR /RETURN 3083 3084 /*RTL6* ROUTINE 3085 3086 05362 0000 XRTL6, 0 3087 05363 7106 CLL RTL 3088 05364 7006 RTL 3089 05365 7006 RTL 3090 05366 5762 JMP I XRTL6 3091 3092 /POP THE AC ROUTINE 3093 05367 0000 XPOPA, 0 3094 05370 4560 UDF 3095 05371 1415 TAD I PDLXR 3096 05372 6201 CDF 3097 05373 5767 JMP I XPOPA 3098 3099 PAGE 3100 05400 0425 OPTABL, FGET I PT1 3101 05401 1425 FADD I PT1 3102 05402 2425 FSUB I PT1 3103 05403 3425 FMUL I PT1 3104 05404 4425 FDIV I PT1 3105 05405 5000 FJMP 0 3106 05406 1026 PRNTEX, TAD CHAR 3107 05407 4547 PUSHA 3108 05410 4551 PUSHF 3109 05411 0017 TEXTP 3110 05412 4551 PUSHF 3111 05413 6167 FLARG 3112 05414 1015 TAD PDLXR 3113 05415 3017 DCA AXOUT /SET UP UNPACKING FROM STACK 3114 05416 3021 DCA XCT 3115 05417 1135 TAD M6 3116 05420 3031 DCA MODE 3117 05421 2032 ISZ SPACSW 3118 05422 4544 PRNTX1, GETC 3119 05423 4566 TSTCCR 3120 05424 7410 SKP 3121 05425 5231 JMP .+4 3122 05426 4470 PRINTC 3123 05427 2031 ISZ MODE 3124 05430 5222 JMP PRNTX1 3125 05431 4554 POPF 3126 05432 6167 FLARG 3127 05433 4554 POPF 3128 05434 0017 TEXTP 3129 05435 4552 POPA 3130 05436 3026 DCA CHAR 3131 05437 3031 DCA MODE /IN CASE OF A STRING LESS THAN 6 3132 05440 3032 DCA SPACSW /IGNORE SPACES AGAIN 3133 05441 5323 JMP PRINT 3134 05442 0000 FIX, 0 3135 05443 6213 CIF CDF SWAP /CALL THE FIX ROUTINE 3136 05444 4777 JMS I (FIX1 3137 05445 5642 JMP I FIX 3138 3139 3140 3141 3142 05446 0073 PRNTL4, 73 /; 3143 05447 0054 PRNTL1, 54 /, 3144 05450 0047 47 /' 3145 05451 0042 PRNTL7, 42 /" 3146 05452 0015 15 /CR 3147 05453 0134 134 /\ 3148 3149 /FUNCTIONS IN FIELD 1 CALLED WITH *PUSHJ* 3150 3151 05454 4407 RND, FINT 3152 05455 0106 FGET FRNDX 3153 05456 0000 FEXT 3154 05457 1376 TAD (ORND-OINT 3155 05460 1375 INT, TAD (OINT-OFFIX 3156 05461 1374 FFIX, TAD (OFFIX-OSQR 3157 05462 1373 SQR, TAD (OSQR-OTAN 3158 05463 1372 TAN, TAD (OTAN-OCOS 3159 05464 1371 COS, TAD (OCOS-OFSIN 3160 05465 1370 FSIN, TAD (OFSIN-OFEXP 3161 05466 1367 FEXP, TAD (OFEXP-OLOG 3162 05467 1366 LOG, TAD (OLOG-OATN 3163 05470 1365 ATN, TAD (OATN 3164 05471 3115 DCA T3 3165 05472 6213 CIF CDF SWAP 3166 05473 5515 JMP I T3 3167 3168 05474 0000 SETUPO, 0 3169 05475 1364 TAD (XPUT 3170 05476 3070 DCA PPRINT 3171 05477 1363 TAD (OFREE2 3172 05500 3071 DCA PFREE2 3173 05501 1362 TAD (OFREE3 3174 05502 3072 DCA PFREE3 3175 05503 5674 JMP I SETUPO 3176 3177 05504 1026 PRINT0, TAD CHAR 3178 05505 1361 TAD (200-"# 3179 05506 7640 SZA CLA 3180 05507 5323 JMP PRINT /OK AS IS 3181 05510 1102 TAD OBLK /THIS WILL WORK BECAUSE HE CAN'T USE BLOCK 0 3182 05511 7110 CLL RAR 3183 05512 1103 TAD OBLKH 3184 05513 7640 SZA CLA 3185 05514 4544 GETC 3186 05515 4567 TSTCOM 3187 05516 5760 JMP I (ERR600 3188 05517 4544 GETC 3189 05520 4274 JMS SETUPO 3190 05521 1357 TAD (460 3191 05522 3066 DCA EXTEN 3192 05523 4550 PRINT, PUSHJ 3193 05524 3307 PRIN10 3194 05525 7640 SZA CLA 3195 05526 5553 POPJ /ALL DONE 3196 05527 4472 FREE13 3197 05530 4550 PUSHJ 3198 05531 2612 EVAL /GET EXPR. 3199 05532 1031 TAD MODE 3200 05533 7640 SZA CLA 3201 05534 5206 JMP PRNTEX 3202 05535 1061 TAD PRNTC1 3203 05536 1356 TAD (16 3204 05537 7710 SPA CLA 3205 05540 5343 JMP .+3 /IT WILL FIT 3206 05541 1124 TAD CCR /MAKE IT FIT 3207 05542 4470 PRINTC 3208 05543 4755 JMS I (FLOUT 3209 05544 7340 PRNTX2, L7777 3210 05545 5323 JMP PRINT 3211 05546 4471 FREE2 3212 05547 1124 TAD CCR 3213 05550 4470 PRINTC 3214 05551 7001 PRINT6, IAC 3215 05552 5553 POPJ 3216 05555 5000 PAGE 05556 0016 05557 0460 05560 1150 05561 7735 05562 7312 05563 7271 05564 6541 05565 2201 05566 7700 05567 7677 05570 7661 05571 7775 05572 7761 05573 7740 05574 0561 05575 7757 05576 0047 05577 2161 3217 /*OR* ROUTINE FOR USER STATUS WORD 3218 05600 0000 XOR, 0 3219 05601 1600 TAD I XOR 3220 05602 7040 CMA 3221 05603 0520 AND I LOOK 3222 05604 1600 TAD I XOR 3223 05605 3520 DCA I LOOK 3224 05606 5177 JMP NULL 3225 3226 05607 0000 INPACK, 0 3227 05610 1060 TAD COMBUF 3228 05611 3016 DCA AXIN 3229 05612 3024 DCA XCTIN 3230 05613 1060 TAD COMBUF 3231 05614 3052 DCA PACKST 3232 05615 1377 TAD (ALINE0 3233 05616 3053 DCA PACKND 3234 05617 5607 JMP I INPACK 3235 3236 05620 0000 OTPACK, 0 3237 05621 1060 TAD COMBUF 3238 05622 3017 DCA AXOUT 3239 05623 3021 DCA XCT 3240 05624 1124 TAD CCR /DON'T MOVE PDLXR FROM 15 3241 05625 3053 DCA PACKND 3242 05626 4544 GETC 3243 05627 5620 JMP I OTPACK 3244 3245 05630 4207 PAKLIN, JMS INPACK 3246 05631 4467 READC 3247 05632 5235 JMP .+3 3248 05633 7301 L0001 3249 05634 5553 POPJ 3250 05635 4564 PACKC 3251 05636 4566 TSTCCR 3252 05637 5231 JMP .-6 3253 05640 4564 PACKC 3254 05641 4220 JMS OTPACK 3255 05642 5553 POPJ 3256 3257 05643 0000 FPNT, 0 /CALL THE REAL INTERPRETER 3258 05644 7300 CLA CLL 3259 05645 1243 TAD FPNT 3260 05646 6213 CIF CDF SWAP 3261 05647 3776 DCA I (OFPNT 3262 05650 5775 JMP I (OFPNT+3 /SET FIELD 0 3263 3264 05651 0000 OTEST2, 0 /FIELD 1 *TESTN* 3265 05652 4562 TESTN 3266 05653 5257 JMP .+4 /RETURN +1 3267 05654 7410 SKP /+2 3268 05655 2251 ISZ OTEST2 /+3 3269 05656 2251 ISZ OTEST2 3270 05657 6213 CIF CDF SWAP /RETURN TO FIELD 1 3271 05660 5651 JMP I OTEST2 3272 3273 05661 0000 XGETLN, 0 /*GETLN* 3274 05662 6213 CIF CDF 10 /CALL THE REAL ROUTINE 3275 05663 4774 JMS I (OGETLN 3276 05664 5661 JMP I XGETLN 3277 3278 /PAREN TEST ROUTINE 3279 05665 0000 PARTST, 0 3280 05666 4552 POPA 3281 05667 3117 DCA LASTOP /SAVED BY *ECALL* 3282 05670 7344 L7776 3283 05671 1111 TAD SORTCN 3284 05672 7041 CIA 3285 05673 4552 POPA /CHECK MATCH 3286 05674 7640 SZA CLA 3287 05675 4557 ERR260, ERROR /NO MATCH 3288 05676 4544 GETC 3289 05677 5665 JMP I PARTST 3290 3291 3292 3293 /*RETURN* AND *POPJ* 3294 05700 2015 RETURN, ISZ PDLXR /DUMP ONE RETURN ADDRESS 3295 05701 4575 TSTEND 3296 05702 4557 ERR320, ERROR 3297 05703 3012 XPOPJ, DCA XREG3 /SAVE AC 3298 05704 4552 POPA 3299 05705 3115 DCA T3 /RETURN ADDRESS 3300 05706 1012 TAD XREG3 /GET AC 3301 05707 5515 JMP I T3 3302 3303 05710 3114 FUNCT3, DCA EFOP 3304 05711 4726 JMS I IECALL 3305 05712 4552 POPA 3306 05713 7510 SPA 3307 05714 5727 JMP I FUNC6I 3308 05715 1330 TAD FUNL3I 3309 05716 3114 DCA EFOP 3310 05717 6211 CDF SWAP 3311 05720 1514 TAD I EFOP 3312 05721 6201 CDF 3313 05722 3324 DCA .+2 3314 05723 4550 PUSHJ 3315 05724 0000 0 3316 05725 5773 JMP I (ENDFUN 3317 3318 05726 2600 IECALL, ECALL 3319 05727 3000 FUNC6I, FUNCT6 3320 05730 3654 FUNL3I, FUNL3-2 3321 05731 0000 FLIN, 0 3322 05732 6213 CIF CDF SWAP 3323 05733 4772 JMS I (OFLIN 3324 05734 4407 FINT 3325 05735 7425 FPUT I PT1 3326 05736 0000 FEXT 3327 05737 5731 JMP I FLIN 3328 3329 05740 4575 GETNAM, TSTEND /DID THEY GIVE A NAME? 3330 05741 5553 POPJ /YES, GO UNPACK IT 3331 05742 7301 L0001 /PRINT "NAME--" 3332 05743 4771 JMS I (READY1 3333 05744 4550 PUSHJ /GO PACK THE REPLY 3334 05745 5630 PAKLIN 3335 05746 5553 POPJ 3336 3337 05747 0000 ALPTST, 0 3338 05750 1026 TAD CHAR 3339 05751 1370 TAD (-"A+200 3340 05752 7710 SPA CLA 3341 05753 5747 JMP I ALPTST /LESS THAN *A* 3342 05754 1026 TAD CHAR 3343 05755 1367 TAD (-"Z+200 3344 05756 7750 SPA SNA CLA 3345 05757 2347 ISZ ALPTST 3346 05760 5747 JMP I ALPTST 3347 3348 3349 05761 2074 F72, 2074;4000;0 05762 4000 05763 0000 3350 3351 05764 2330 FCN, 2330;0;0 /INTEGERIZING CONSTANT 05765 0000 05766 0000 3352 3353 05767 7646 PAGE 05770 7677 05771 1756 05772 1000 05773 7741 05774 1143 05775 0203 05776 0200 05777 0057 3354 3355 /*FREE2* AND *FREE13* ROUTINES 3356 06000 0000 XFREE2, 0 3357 06001 4220 JMS XFREE /ROOM 3358 06002 5205 JMP .+3 /WE MUST WAIT 3359 06003 0000 0 3360 06004 5600 JMP I XFREE2 3361 3362 06005 1200 TAD XFREE2 3363 06006 5215 JMP FREEWT /GET ROOM 3364 3365 06007 0000 XFREE3, 0 3366 06010 4220 JMS XFREE /ROOM 3367 06011 0014 FREEC, 14 3368 06012 7410 SKP /MUST WAIT 3369 06013 5607 JMP I XFREE3 3370 3371 06014 1207 TAD XFREE3 3372 06015 3022 FREEWT, DCA PC /SET RESTART 3373 06016 4777 JMS I (XOR /SET O WAIT AND DISMISS 3374 06017 2000 2000 3375 3376 3377 /*FREE* ROUTINE 3378 06020 0000 XFREE, 0 3379 06021 4560 UDF 3380 06022 1447 TAD I OPTRI /ANY ROOM 3381 06023 6201 CDF 3382 06024 7640 SZA CLA 3383 06025 5620 JMP I XFREE /NO 3384 06026 1047 TAD OPTRI 3385 06027 7041 CIA 3386 06030 1050 TAD OPTRO 3387 06031 7550 SPA SNA 3388 06032 1142 TAD C40 3389 06033 7041 CIA /-COUNT 3390 06034 7001 IAC 3391 06035 7450 SNA 3392 06036 5620 JMP I XFREE /ONLY 1 FREE 3393 06037 7001 IAC 3394 06040 7450 SNA 3395 06041 5620 JMP I XFREE /ONLY 2 FREE 3396 06042 2220 ISZ XFREE 3397 06043 1211 TAD FREEC 3398 06044 7750 SPA SNA CLA 3399 06045 2220 ISZ XFREE /14 OR MORE FREE 3400 06046 5620 JMP I XFREE 3401 3402 /*LINPUT* COMMAND, INPUT AN ENTIRE LINE OF TEXT 3403 /INTO A STRING ARRAY 3404 3405 06047 4776 LINPUT, JMS I (CHKFIL /CHECK IF FILE INPUT 3406 06050 3024 DCA SUBS /CLEAR SUBSCRIPT 3407 06051 4550 PUSHJ /GET VARIABLE 3408 06052 4400 GETVAR 3409 06053 7650 SNA CLA /FUNCTION? 3410 06054 4575 TSTEND 3411 06055 4557 ERR540, ERROR /ILLEGAL OR MORE THAN ONE VARIABLE 3412 06056 1031 TAD MODE 3413 06057 7650 SNA CLA 3414 06060 5255 JMP .-3 /NOT STRING VARIABLE 3415 06061 4551 PUSHF /SAVE PT1;CHAR;LINEPC 3416 06062 0025 PT1 3417 06063 4551 PUSHF /SAVE TEXT POINTERS 3418 06064 0017 TEXTP 3419 06065 1023 TAD ADD /CHECK IF SUBSCRIPTED 3420 06066 7104 CLL RAL 3421 06067 7130 STL RAR 3422 06070 3023 DCA ADD 3423 06071 1024 TAD SUBS 3424 06072 0140 AND C7700 /ZERO LAST DIMENSION 3425 06073 3024 DCA SUBS 3426 06074 4551 PUSHF /SAVE NAME AND SUBSCRIPT 3427 06075 0023 ADD 3428 06076 2032 ISZ SPACSW /KEEP LEADING SPACES 3429 06077 4550 PUSHJ /GET LINE OF INPUT 3430 06100 1155 GETINP 3431 06101 3364 DCA LINCT /ZERO CHARACTER COUNTER 3432 3433 06102 4554 POPF /RESTORE NAME AND SUBSCRIPT 3434 06103 0023 ADD 3435 06104 5307 JMP .+3 3436 06105 2032 LINXT, ISZ SPACSW /KEEP SPACES 3437 06106 4544 GETC /SKIP OVER COMMA 3438 06107 2024 ISZ SUBS /INCREMENT SUBSCRIPT 3439 06110 4550 PUSHJ /GET VARIABLE 3440 06111 4435 LOOKUP 3441 06112 4551 PUSHF /SAVE NAME AND SUBSCRIPT 3442 06113 0023 ADD 3443 06114 4550 PUSHJ /GET NEXT 6 CHARS OF STRING 3444 06115 7626 QLINP 3445 3446 06116 1775 LINXT2, TAD I (QCT1 /GET CHARACTER COUNT 3447 06117 1364 TAD LINCT /BUMP CHARACTER COUNT 3448 06120 3364 DCA LINCT 3449 06121 4554 POPF /RESTORE NAME AND SUBSCRIPT 3450 06122 0023 ADD 3451 06123 4556 FLPUT /SET VARIABLE 3452 06124 6167 FLARG 3453 06125 4575 TSTEND /END OF STRING? 3454 06126 5305 JMP LINXT /NO, GET NEXT 6 CHARS 3455 06127 1024 TAD SUBS /ZERO LAST DIMENSION 3456 06130 0140 AND C7700 3457 06131 3024 DCA SUBS 3458 06132 4550 PUSHJ 3459 06133 4435 LOOKUP /GET VARIABLE 3460 06134 1364 TAD LINCT 3461 06135 4774 JMS I (FLOAT /FLOAT AC INTO FLARG 3462 06136 4556 FLPUT /PUT IT AWAY 3463 06137 6167 FLARG 3464 06140 4554 POPF /RESTORE TEXT 3465 06141 0017 TEXTP 3466 06142 4554 POPF /RESTORE OTHER GARBAGE 3467 06143 0025 PT1 3468 06144 5553 POPJ /RETURN 3469 3470 06145 0000 MGET, 0 /FAKE OUT GETC 3471 06146 2113 ISZ T2 /CHECK FLAG 3472 06147 5352 JMP MGET1 3473 06150 1114 TAD CNTR 3474 06151 5362 JMP MGET2 3475 06152 7340 MGET1, L7777 /SET FLAG 3476 06153 3113 DCA T2 3477 06154 1413 TAD I FLTXR /GET NEW PAIR 3478 06155 3114 DCA CNTR 3479 06156 1114 TAD CNTR 3480 06157 7012 RTR 3481 06160 7012 RTR 3482 06161 7012 RTR 3483 06162 0134 MGET2, AND C77 /KILL GARGAGE 3484 06163 5745 JMP I MGET /RETURN 3485 3486 LINCT, 3487 06164 0000 TEMP, 0 3488 06165 0000 0 3489 06166 0000 0 3490 3491 06167 0000 FLARG, 0 3492 06170 0000 0 3493 06171 0000 0 3494 3495 06174 6477 PAGE 06175 7604 06176 1134 06177 5600 3496 /*MID* FUNCTION FORMAT: MID(A$,X,Y) 3497 /RETURNS Y CHARACTERS STARTING WITH THE XTH CHAR IN A$ 3498 3499 3500 3501 06200 4777 MID, JMS I (GETSTR /GET THE FIRST TWO ARGS 3502 06201 4550 PUSHJ 3503 06202 2611 EVAL-1 3504 06203 4267 JMS MIDCHK /CHECK IF ARG IN BOUNDS 3505 06204 4547 PUSHA /SAVE FOR LATER 3506 06205 4567 TSTCOM /ANOTHER COMMA? 3507 06206 4557 ERR550, ERROR /MISSING OR BAD ARG 3508 06207 4550 PUSHJ /GET THIRD ARG 3509 06210 2611 EVAL-1 3510 06211 4267 JMS MIDCHK /CHECK ARG 3511 06212 3302 DCA MIDC2 3512 06213 4552 POPA /GET SECOND ARG 3513 06214 3301 DCA MIDC1 /SAVE 3514 06215 4554 POPF /GET STRING 3515 06216 6167 FLARG 3516 06217 1376 TAD (FLARG-1 3517 06220 3014 DCA FLTXR2 /PACK POINTER 3518 06221 3112 DCA T1 /PACK SWITCH 3519 06222 1301 TAD MIDC1 /# OF CHARS TO IGNORE 3520 06223 7041 CIA 3521 06224 7110 CLL RAR 3522 06225 1014 TAD FLTXR2 /CALCULATE FIRST CHAR 3523 06226 3013 DCA FLTXR 3524 06227 7430 SZL /CHECK IF PARTIAL 3525 06230 7240 CLA CMA 3526 06231 3113 DCA T2 /UNPACK SWITCH 3527 06232 7430 SZL 3528 06233 1413 TAD I FLTXR /GET CHAR IF PARTIAL 3529 06234 3114 DCA CNTR 3530 3531 3532 06235 7340 MID1, L7777 /CALCULATE NUMBER OF CHARS TO TRANSFER 3533 06236 1302 TAD MIDC2 3534 06237 3302 DCA MIDC2 3535 06240 1302 TAD MIDC2 3536 06241 1301 TAD MIDC1 3537 06242 7041 CIA 3538 06243 1135 TAD M6 3539 06244 7740 SMA SZA CLA 3540 06245 5206 JMP ERR550 /SECOND ARG LESS THAN FIRST 3541 06246 1135 TAD M6 /CHARACTER COUNTER 3542 06247 3031 DCA MODE 3543 06250 4775 MID2, JMS I (MGET /GET CHAR 3544 06251 4303 JMS MPUT /PUT CHAR 3545 06252 2031 ISZ MODE 3546 06253 7410 SKP 3547 06254 5263 JMP MID3 /DONE WITH ALL 6 CHARS 3548 06255 2302 ISZ MIDC2 3549 06256 5250 JMP MID2 /GET ANOTHER CHARACTER 3550 06257 1134 TAD C77 3551 06260 4303 JMS MPUT /FILL STRING WITH CR'S 3552 06261 2031 ISZ MODE 3553 06262 5257 JMP .-3 3554 06263 2031 MID3, ISZ MODE /SET STRING MODE FOR STRING *IF*'S 3555 06264 2015 ISZ PDLXR /KILL POPJ RETURN 3556 06265 5666 JMP I .+1 /SPECIAL RETURN FOR STRING FUNCTIONS 3557 06266 7745 ENDF1 3558 3559 3560 06267 0000 MIDCHK, 0 /CHECK ARGUMENT LIMITS 3561 06270 4523 JMS I INTEGE /MAKE AN INTEGER 3562 06271 7570 SPA SNA SZL /CHECK IF ZERO, NEGATIVE OR TOO BIG 3563 06272 5206 JMP ERR550 3564 06273 7041 CIA 3565 06274 1125 TAD C7 /CHECK IF TOO BIG 3566 06275 7550 SPA SNA 3567 06276 5206 JMP ERR550 /TOO BIG 3568 06277 1135 TAD M6 /FIX IT UP 3569 06300 5667 JMP I MIDCHK 3570 3571 06301 0000 MIDC1, 0 /FIRST CHAR TO COPY 3572 06302 0000 MIDC2, 0 /LAST CHAR TO COPY 3573 06303 0000 MPUT, 0 /FAKE OUT PACKC 3574 06304 2112 ISZ T1 /CHECK FLAG 3575 06305 5311 JMP MPUT1 3576 06306 1115 TAD T3 3577 06307 3414 DCA I FLTXR2 /STASH CHAR 3578 06310 5703 JMP I MPUT 3579 06311 4561 MPUT1, RTL6 3580 06312 0140 AND C7700 3581 06313 3115 DCA T3 /SAVE PARTIAL 3582 06314 7340 L7777 /SET FLAG 3583 06315 3112 DCA T1 3584 06316 5703 JMP I MPUT 3585 /*CAT* FUNCTION FORMAT: CAT(A$,B$) 3586 /RETURNS A STRING OF A$ CONCATENATED WITH B$ 3587 3588 06317 4777 CAT, JMS I (GETSTR /GET TWO ARGUMENTS 3589 06320 4550 PUSHJ 3590 06321 2611 EVAL-1 3591 06322 1031 TAD MODE /CHECK IF SECOND ARG IS A STRING 3592 06323 7450 SNA 3593 06324 5206 JMP ERR550 3594 06325 3032 DCA SPACSW /KEEP SPACES 3595 06326 1135 TAD M6 /COUNT FOR 6 CHARS 3596 06327 3302 DCA MIDC2 3597 06330 3267 DCA MIDCHK /CLEAR FLAG 3598 06331 4554 POPF /FIRST STRING INTO FLARG 3599 06332 6167 FLARG 3600 06333 4407 FINT /PUT STRING INTO IF1 3601 06334 7774 FPUT I (IF1 3602 06335 0000 FEXT 3603 06336 1376 TAD (FLARG-1 /POINT TO STRING 3604 06337 3013 DCA FLTXR 3605 06340 3113 DCA T2 /CLEAR UNPACK SWITCH 3606 06341 1376 TAD (FLARG-1 /POINT TO PACKING TEMP 3607 06342 3014 DCA FLTXR2 3608 06343 3112 DCA T1 /CLEAR PACK SWITCH 3609 06344 4775 CCAT1, JMS I (MGET /GET A CHAR 3610 06345 3301 DCA MIDC1 /SAVE 3611 06346 1301 TAD MIDC1 3612 06347 7001 IAC 3613 06350 0140 AND C7700 /CHECK FOR CR 3614 06351 7640 SZA CLA 3615 06352 5360 JMP CCAT2 /CR FOUND 3616 06353 1301 TAD MIDC1 3617 06354 4303 CCAT3, JMS MPUT /REPACK CHAR 3618 06355 2302 ISZ MIDC2 /CHECK IF 6 YET 3619 06356 5344 JMP CCAT1 3620 06357 5263 JMP MID3 /RETURN 3621 3622 06360 1267 CCAT2, TAD MIDCHK /CHECK IF ALREADY HERE 3623 06361 7650 SNA CLA 3624 06362 5365 JMP .+3 3625 06363 1301 TAD MIDC1 /FLAG SET, RESTORE CHAR 3626 06364 5354 JMP CCAT3 3627 06365 1373 TAD (IF1-1 /SET POINTERS TO SECOND STRING 3628 06366 3013 DCA FLTXR 3629 06367 3113 DCA T2 /CLEAR FLAG 3630 06370 2267 ISZ MIDCHK /SET FLAG 3631 06371 5344 JMP CCAT1 3632 3633 06373 1362 PAGE 06374 1363 06375 6145 06376 6166 06377 5351 3634 /*FLPUT* ROUTINE 3635 06400 0000 XFLPUT, 0 3636 06401 7440 SZA 3637 06402 5205 JMP .+3 3638 06403 7340 L7777 3639 06404 1025 TAD PT1 3640 06405 3013 XFLPT2, DCA FLTXR 3641 06406 7340 L7777 3642 06407 1600 TAD I XFLPUT 3643 06410 3014 DCA FLTXR2 3644 06411 7346 L7775 3645 06412 3115 DCA T3 3646 06413 1414 TAD I FLTXR2 /PUT VARIABLE 3647 06414 4560 UDF 3648 06415 3413 DCA I FLTXR 3649 06416 6201 CDF 3650 06417 2115 ISZ T3 3651 06420 5213 JMP .-5 3652 06421 2200 ISZ XFLPUT 3653 06422 5600 JMP I XFLPUT 3654 3655 /CHARACTER TEST ROUTINES 3656 06423 0000 COMTST, 0 3657 06424 1377 TAD (-",+200 3658 06425 1026 TAD CHAR 3659 06426 7650 SNA CLA 3660 06427 2223 ISZ COMTST /FOUND IT 3661 06430 5623 JMP I COMTST 3662 3663 06431 0000 CCRTST, 0 3664 06432 1231 TAD CCRTST 3665 06433 3223 DCA COMTST 3666 06434 1376 TAD (-15 3667 06435 5225 JMP COMTST+2 3668 3669 06436 0000 ENDTST, 0 3670 06437 1375 TAD (-"'+200 3671 06440 1026 TAD CHAR 3672 06441 7440 SZA 3673 06442 1374 TAD ("'-"\ 3674 06443 7650 SNA CLA 3675 06444 2236 ISZ ENDTST 3676 06445 1236 TAD ENDTST 3677 06446 5233 JMP CCRTST+2 3678 /*LEN* FUNCTION, RETURNS NUMBER OF CHARACTERS 3679 /(UP TO 6) IN A STRING 3680 3681 06447 3114 LEN, DCA CNTR /CHAR COUNTER 3682 06450 7346 L7775 /COUNT FOR 3 WORDS 3683 06451 3112 DCA T1 3684 06452 7360 CLA STL CMA 3685 06453 1122 TAD FLARGP 3686 06454 3013 DCA FLTXR 3687 06455 1413 LENXT, TAD I FLTXR /GET NEXT TWO CHARACTERS 3688 06456 1373 TAD (100 3689 06457 7430 SZL /LINK SET ONLY IF TOP HALF IS CR 3690 06460 5272 JMP LENDON 3691 06461 2114 ISZ CNTR /COUNT CHAR 3692 06462 0134 AND C77 /KILL TOP HALF 3693 06463 7001 IAC 3694 06464 0140 AND C7700 /KILL BOTTOM HALF 3695 06465 7640 SZA CLA /AC=100 IF BOTTOM HALF IS CR 3696 06466 5272 JMP LENDON 3697 06467 2114 ISZ CNTR /COUNT CHAR 3698 06470 2112 ISZ T1 /DONE? 3699 06471 5255 JMP LENXT 3700 AXPUT0, 3701 06472 7200 LENDON, CLA /CLEAR GARBAGE IN AC 3702 06473 3031 DCA MODE /NO LONGER STRING MODE 3703 06474 1114 TAD CNTR 3704 06475 4277 JMS FLOAT /FLOAT NUMBER INTO FLARG 3705 06476 5553 POPJ 3706 3707 3708 /FLOATS NUMBER IN AC INTO FLARG 3709 3710 06477 0000 FLOAT, 0 3711 06500 3112 DCA T1 /SAVE NUMBER 3712 06501 1372 TAD (ACSIGN-1 /SET TO FLOAT 3713 06502 3013 DCA FLTXR 3714 06503 6211 CDF SWAP 3715 06504 3413 DCA I FLTXR /ZERO ACSIGN 3716 06505 3413 DCA I FLTXR 3717 06506 1371 TAD (217 /EXPONENT FUDGE 3718 06507 3413 DCA I FLTXR /INTO ACEXP 3719 06510 3413 DCA I FLTXR /ZERO AC3 3720 06511 1112 TAD T1 3721 06512 3413 DCA I FLTXR /NUMBER IN AC2 3722 06513 3413 DCA I FLTXR /ZERO AC1 3723 06514 4407 FINT 3724 06515 6010 FNOR /FLOAT NUMBER 3725 06516 7522 FPUT I FLARGP /PUT INTO FLARG 3726 06517 0000 FEXT 3727 06520 5677 JMP I FLOAT /DONE 3728 3729 06521 4554 POPF 3730 06522 6167 FLARG 3731 06523 3032 ENDFND, DCA SPACSW 3732 06524 4551 PUSHF 3733 06525 0017 TEXTP 3734 06526 4544 GETC 3735 06527 4575 TSTEND 3736 06530 5326 JMP .-2 3737 06531 4566 TSTCCR 3738 06532 5321 JMP ENDFND-2 3739 06533 4554 POPF 3740 06534 0017 TEXTP 3741 06535 4544 GETC 3742 06536 4571 COMMAN 3743 06537 7001 IAC 3744 06540 5553 POPJ 3745 3746 3747 06541 0000 XPUT, 0 /FILE OUTPUT ROUTINE 3748 06542 7450 SNA 3749 06543 1026 TAD CHAR 3750 06544 3115 DCA T3 3751 06545 1341 TAD XPUT 3752 06546 4547 PUSHA 3753 06547 1115 XPUT3, TAD T3 3754 06550 4547 PUSHA 3755 06551 1115 TAD T3 3756 06552 4672 JMS I AXPUT0 3757 06553 4552 POPA 3758 06554 1376 TAD (-15 3759 06555 7640 SZA CLA 3760 06556 5553 POPJ 3761 06557 1132 TAD CLF 3762 06560 3115 DCA T3 3763 06561 5347 JMP XPUT3 3764 06562 4770 CHAIN, JMS I (DTGRAB 3765 06563 1367 TAD (CHAIN1 3766 06564 3105 DCA CHAINP 3767 06565 5766 JMP I (CHAIN2 3768 06566 7341 PAGE 06567 2463 06570 6603 06571 0217 06572 0042 06573 0100 06574 7713 06575 7731 06576 7763 06577 7724 3769 3770 06600 6777 C6777, 6777 /THIS MUST BE AT THE BEGINNING OF THE PAGE CHECK C200 3771 06601 7000 DTQ1, DTQ 3772 06602 7000 DTQ2, DTQ 3773 3774 06603 0000 DTGRAB, 0 /GET THE TAPE! 3775 06604 6212 CIF 10 /CALL CHECKING ROUTINE 3776 06605 4777 JMS I (DTCHKX 3777 06606 3602 DCA I DTQ2 3778 06607 1202 TAD DTQ2 /BUMP QUEUE POINTER 3779 06610 7001 IAC /(MUST BE AT START OF PAGE) 3780 06611 0376 AND (7607 3781 06612 3202 DCA DTQ2 3782 06613 1201 TAD DTQ1 /WAS THE QUEUE EMPTY? 3783 06614 7140 CLL CMA 3784 06615 1202 TAD DTQ2 3785 06616 0125 AND C7 3786 06617 7650 SNA CLA 3787 06620 5225 JMP XDTG1 /YES, GIVE THIS JOB THE TAPE 3788 3789 06621 1203 TAD DTGRAB /SET RESTART ADDRESS 3790 06622 3022 DCA PC 3791 06623 4775 JMS I (XOR /SET DECTAPE BUSY AND DISMISS 3792 06624 1000 1000 3793 3794 06625 6001 XDTG1, ION /RETURN TO THE JOB 3795 06626 5603 JMP I DTGRAB /(WITH THE DECTAPE) 3796 3797 06627 0000 DTFREE, 0 /LET THE TAPE GO 3798 06630 1105 TAD CHAINP /CHECK IF WE SHOULD HOLD ONTO TAPE 3799 06631 1374 TAD (-READY /FOR AN OLD, SAVE, OR CHAIN 3800 06632 7640 SZA CLA 3801 06633 5627 JMP I DTFREE /RETURN, BUT STILL HOLD ONTO TAPE!! 3802 06634 3601 DCA I DTQ1 /CLEAR THE SLOT 3803 06635 1201 TAD DTQ1 /BUMP THE POINTER 3804 06636 7001 IAC 3805 06637 0376 AND (7607 3806 06640 3201 DCA DTQ1 3807 06641 1601 TAD I DTQ1 /IS THERE ANOTHER REQUEST? 3808 06642 7450 SNA 3809 06643 5627 JMP I DTFREE /NO, ALL DONE! 3810 3811 06644 1121 TAD LOOKST /BUILD A POINTER TO STATUS 3812 06645 3115 DCA T3 3813 06646 6202 CIF 0 /*** THIS IS REALLY AN IOF UNTILL JMP I DTFREE 3814 06647 1515 TAD I T3 /CLEAR DECTAPE BUSY 3815 06650 0200 C200, AND C6777 /THIS IS WHY C6777 MUST BE AT THE BEGINNING OF THE PAGE 3816 06651 3515 DCA I T3 3817 06652 5627 JMP I DTFREE /BACK TO CURRENT JOB 3818 3819 06653 0000 XGET, 0 /FILE INPUT ROUTINE 3820 06654 7300 CLA CLL 3821 06655 2075 ISZ I3 /3RD CHAR OF 3? 3822 06656 5302 JMP GET1 /NO, NORMAL 3823 06657 7344 L7776 /BACK UP POINTER 3824 06660 1074 TAD IPNTR 3825 06661 3074 DCA IPNTR 3826 06662 7346 L7775 /RESET 3-WAY SWITCH 3827 06663 3075 DCA I3 3828 06664 6221 CDF BUF /GET THE FIRST HALF 3829 06665 1474 TAD I IPNTR 3830 06666 2074 ISZ IPNTR 3831 06667 0343 AND C7400 3832 06670 7106 CLL RTL 3833 06671 7006 RTL 3834 06672 3026 DCA CHAR /HANDY TEMP 3835 06673 1474 TAD I IPNTR /GET THE SECOND HALF 3836 06674 0343 AND C7400 3837 06675 1026 TAD CHAR /GET THE FIRST HALF (AGAIN?) 3838 06676 7006 RTL 3839 06677 7006 RTL 3840 06700 7004 RAL 3841 06701 5342 JMP GEXIT 3842 3843 06702 1074 GET1, TAD IPNTR /IS THERE ANY BUFFER? 3844 06703 0126 AND C177 3845 06704 7760 C12M32, SZA CLA SMA SNL /DUMMY SMA SNL TO PRODUCE (12-32 3846 06705 5340 JMP GET2 /GUESS SO 3847 3848 06706 1073 TAD BASE /BUILD POINTER TO BUFFER 3849 06707 1250 TAD C200 3850 06710 3074 DCA IPNTR 3851 06711 1253 TAD XGET /SAVE THE RETURN 3852 06712 4547 PUSHA 3853 06713 4203 JMS DTGRAB /GET THE DECTAPE 3854 06714 1074 TAD IPNTR /MOVE THE ARGS 3855 06715 3330 DCA IBUFF 3856 06716 1076 TAD IBLK 3857 06717 3332 DCA INBLK 3858 06720 1077 TAD IBLKH 3859 06721 7110 CLL RAR /LINK WILL HAVE THE HIGH ORDER ADDRESS 3860 06722 2076 ISZ IBLK /NEXT BLOCK, NEXT TIME 3861 06723 7410 SKP /THE NEXT 4 LOCATIONS ARE FOR THOSE WITH RK8E 3862 06724 2077 ISZ IBLKH /WITH 17777 PAGES 3863 06725 7201 CLA IAC /AC=1 FOR READ 3864 06726 6212 CIF SWAP 3865 06727 4773 JMS I (DTAPE /DO THE DECTAPE THING 3866 06730 0000 IBUFF, 0 3867 06731 7620 7620 /READ 200 WORDS (ONE PAGE) INTO FIELD 2 3868 06732 0000 INBLK, 0 3869 06733 4227 JMS DTFREE /ALL THROUGH, GIVE IT BACK 3870 06734 4552 POPA /RESTORE THE RETURN 3871 06735 3253 DCA XGET 3872 06736 7344 L7776 /PRETEND WE SET THE PACK SWITCH 3873 06737 3075 DCA I3 3874 3875 06740 6221 GET2, CDF BUF /NORMAL CHARACTER UNPACKING 3876 06741 1474 TAD I IPNTR /GET THE CHARACTER 3877 06742 2074 GEXIT, ISZ IPNTR 3878 06743 7400 C7400, NOP 400 /IN CASE IT SKIPS 3879 06744 6201 CDF 3880 06745 0126 AND C177 /MASK OFF PARITY 3881 06746 7450 SNA /IGNORE NULLS 3882 06747 5254 JMP XGET+1 3883 06750 1133 TAD M12 /AND LINE FEEDS 3884 06751 7112 CLL RTR /AND FORM FEEDS 3885 06752 7450 SNA 3886 06753 5254 JMP XGET+1 3887 06754 7006 RTL 3888 06755 1304 TAD C12M32 /CHECK FOR ^Z. 12-32=7760=SZA CLA SMA SNL 3889 06756 7440 SZA 3890 06757 5365 JMP .+6 3891 06760 2253 ISZ XGET /SKIP RETURN FOR EOF 3892 06761 3076 DCA IBLK /CLEAR FILE OPEN 3893 06762 3077 DCA IBLKH 3894 06763 1372 TAD (XREADC /RESET 'READC' 3895 06764 3067 DCA PREADC 3896 06765 1371 TAD (32 /RESTORE CHAR 3897 06766 3026 DCA CHAR 3898 06767 5653 JMP I XGET /WHEW! 3899 3900 06771 0032 PAGE 06772 3702 06773 3000 06774 7314 06775 5600 06776 7607 06777 3561 3901 07000 0000 DTQ, ZBLOCK 10 07001 0000 07002 0000 07003 0000 07004 0000 07005 0000 07006 0000 07007 0000 3902 3903 07010 0000 STRFIL, 0 /GET A STRING FILENAME 3904 07011 4777 JMS I (DOLCHK /SET EXTENSION 3905 07012 4550 PUSHJ /GET FILE NAME 3906 07013 2612 EVAL 3907 07014 1026 TAD CHAR /SAVE TEXT POINTERS 3908 07015 4547 PUSHA 3909 07016 4551 PUSHF 3910 07017 0017 TEXTP 3911 07020 7240 CLA CMA /PUSH A CR 3912 07021 4547 PUSHA 3913 07022 4551 PUSHF /FINALLY, PUSH THE STRING 3914 07023 6167 FLARG 3915 07024 1015 TAD PDLXR /SET UP UNPACKING (FROM THE STACK!) 3916 07025 3017 DCA AXOUT 3917 07026 3021 DCA XCT 3918 07027 4544 GETC /GET THE FIRST CHAR 3919 07030 6213 CIF CDF SWAP 3920 07031 4776 JMS I (XGETNAM /GET THE FILE NAME 3921 07032 1015 TAD PDLXR /UNSTACK GARBAGE 3922 07033 1375 TAD (4 3923 07034 3015 DCA PDLXR 3924 07035 4554 POPF /RESTORE THE TEXT POINTERS 3925 07036 0017 TEXTP 3926 07037 4552 POPA 3927 07040 3026 DCA CHAR 3928 07041 5610 JMP I STRFIL /DONE WITH FILENAME 3929 3930 07042 4774 OPEN, JMS I (DTGRAB /GET THE DECTAPE 3931 07043 1140 TAD M100 /SET '.DX' EXTENSION 3932 07044 4210 JMS STRFIL /GET THE FILENAME 3933 07045 1132 TAD CLF /DOUBLE CHECK FOR 'FOR' 3934 07046 4571 COMMAN 3935 07047 7650 SNA CLA 3936 07050 4557 ERR620, ERROR /WASN'T THERE 3937 07051 4571 COMMAN /MUST BE 'INPUT' OR 'OUTPUT' 3938 07052 1373 TAD (5 /CHECK FOR 'INPUT' 3939 07053 7450 SNA 3940 07054 5335 JMP OINPUT 3941 07055 1372 TAD (-5-4+32 3942 07056 7640 SZA CLA 3943 07057 5250 JMP ERR620 3944 3945 07060 4567 FILOUT, TSTCOM /LENGTH GIVEN? 3946 07061 5322 JMP NOLEN /ASSUME 10 BLOCKS 3947 07062 4550 PUSHJ /EVALUATE THE LENTH 3948 07063 2611 EVAL-1 3949 07064 4523 JMS I INTEGER /FIX IT 3950 07065 7570 SPA SNA SZL 3951 07066 4557 ERR650, ERROR /TOO BIG OR TOO LITTLE 3952 3953 07067 3104 LENIN, DCA OMAX /SAVE LENGTH 3954 07070 1036 TAD DECK /USER 0 CAN OPEN ANY LENTH 3955 07071 7640 SZA CLA 3956 07072 1104 TAD OMAX /ANYBODY ELSE IS LIMITED TO 64 3957 07073 1140 TAD C7700 3958 07074 7750 SPA SNA CLA /TOO BIG 3959 3960 07075 4575 LENOK, TSTEND /SHOULD BE END 3961 07076 5266 JMP LENIN-1 3962 07077 1140 TAD M100 /MAKE SURE EXTENSION IS CORRECT 3963 07100 4777 JMS I (DOLCHK /(HE COULD HAVE SAID 'OPEN $' 3964 07101 1104 TAD OMAX /PUT LENGTH FOR ENTER IN AC 3965 07102 6213 CIF CDF SWAP 3966 07103 4771 JMS I (XENTER /ENTER AND CLOSE 3967 07104 4557 ERR630, ERROR 3968 07105 7104 CLL RAL 3969 07106 3102 DCA OBLK 3970 07107 7004 RAL 3971 07110 3103 DCA OBLKH 3972 07111 7346 L7775 3973 07112 3101 DCA O3 /INIT POINTERS 3974 07113 1073 TAD BASE 3975 07114 3100 DCA OPNTR 3976 07115 1104 TAD OMAX /FORM MAXIMUM LENGTH (IN PAGES) 3977 07116 7104 CLL RAL 3978 07117 7040 CMA 3979 07120 3104 DCA OMAX 3980 07121 5347 JMP OUTOUT /USE SOME COMMON CODE 3981 3982 07122 1132 NOLEN, TAD CLF /ASSUME 10 BLOCKS 3983 07123 5267 JMP LENIN 3984 3985 07124 1070 SAVDON, TAD PPRINT /WAS THIS A 'SAVE'? 3986 07125 1370 TAD (-XPRNTC 3987 07126 7650 SNA CLA 3988 07127 5767 JMP I (READY /NO, GOTO 'READY' 3989 07130 4550 PUSHJ /CLOSE THE FILE 3990 07131 7415 CLOSE1 3991 07132 4766 SAVDN1, JMS I (IOFIX 3992 07133 4765 JMS I (DTFREE /RELEASE THE TAPE FOR REAL 3993 07134 5767 JMP I (READY /ALL DONE! 3994 3995 07135 4575 OINPUT, TSTEND 3996 07136 5250 JMP ERR620 3997 07137 6213 CIF CDF SWAP 3998 07140 4764 JMS I (FLOOK /LOOK UP THE FILE 3999 07141 7104 CLL RAL /GET THE TAPE BLOCK*2 FOR PAGES 4000 07142 3076 DCA IBLK 4001 07143 7004 RAL 4002 07144 3077 DCA IBLKH 4003 07145 3075 DCA I3 /CLEAR THE SWITCH 4004 07146 3074 DCA IPNTR /AND THE POINTER 4005 07147 4765 OUTOUT, JMS I (DTFREE /GIVE UP THE TAPE 4006 07150 5553 POPJ 4007 4008 4009 07151 4575 RESTOR, TSTEND 4010 07152 4557 ERR280, ERROR 4011 07153 3037 DCA DATAPC 4012 07154 1124 TAD CCR 4013 07155 3043 DCA DATAPC+4 4014 07156 5553 POPJ 4015 4016 07157 2014 FLTONE, 2014 4017 07160 0000 FLZERO, 0 4018 07161 0000 0 4019 07162 0000 0 4020 4021 07163 4557 ERR330, ERROR 4022 4023 07164 3530 PAGE 07165 6627 07166 1365 07167 0464 07170 0422 07171 3177 07172 0021 07173 0005 07174 6603 07175 0004 07176 2661 07177 7541 4024 07200 0000 XPUT0, 0 4025 IFNZRO XPUT0-7200 4026 07201 6221 CDF BUF 4027 07202 2101 ISZ O3 4028 07203 5251 JMP PUT1 4029 07204 3115 DCA T3 4030 07205 7344 L7776 4031 07206 1100 TAD OPNTR 4032 07207 3100 DCA OPNTR 4033 07210 4256 JMS OPAK 4034 07211 4256 JMS OPAK 4035 07212 6201 CDF 4036 07213 7346 L7775 4037 07214 3101 DCA O3 4038 07215 1100 TAD OPNTR 4039 07216 0126 AND C177 4040 07217 7640 SZA CLA 4041 07220 5600 JMP I XPUT0 4042 4043 07221 2104 ISZ OMAX /GONE TOO FAR? 4044 07222 5226 JMP .+4 4045 07223 3102 DCA OBLK /CLEAR FILE 4046 07224 3103 DCA OBLKH 4047 07225 4557 ERR640, ERROR 4048 07226 1073 TAD BASE 4049 07227 3100 DCA OPNTR 4050 07230 4777 JMS I (DTGRAB 4051 07231 1073 TAD BASE 4052 07232 3244 DCA OBUFF 4053 07233 1102 TAD OBLK 4054 07234 3246 DCA OUTBLK 4055 07235 1103 TAD OBLKH 4056 07236 7110 CLL RAR /OBLKH MUST BE EITHER 0 OR 1 NOTHING ELSE. 4057 07237 2102 ISZ OBLK 4058 07240 7410 SKP /RK8E AGAIN 4059 07241 2103 ISZ OBLKH 4060 07242 6212 CIF SWAP 4061 07243 4776 JMS I (DTAPE 4062 07244 0000 OBUFF, 0 4063 07245 7620 7620 /WRITE 200 WORDS FROM FIELD 2 4064 07246 0000 OUTBLK, 0 4065 07247 4775 JMS I (DTFREE 4066 07250 5600 JMP I XPUT0 4067 4068 07251 0126 PUT1, AND C177 4069 07252 3500 DCA I OPNTR 4070 07253 2100 ISZ OPNTR 4071 07254 6201 CDF 4072 07255 5600 JMP I XPUT0 4073 4074 4075 07256 0000 OPAK, 0 4076 07257 1115 TAD T3 4077 07260 7106 CLL RTL 4078 07261 7006 RTL 4079 07262 3115 DCA T3 4080 07263 1115 TAD T3 4081 07264 0374 AND (7400 4082 07265 1500 TAD I OPNTR 4083 07266 3500 DCA I OPNTR 4084 07267 2100 ISZ OPNTR 4085 07270 5656 JMP I OPAK 4086 4087 07271 0000 OFREE2, 0 4088 07272 1271 TAD OFREE2 4089 07273 4547 PUSHA 4090 07274 1373 TAD (-2+200 4091 07275 1073 TAD BASE 4092 07276 7141 CLL CIA 4093 07277 1100 TAD OPNTR 4094 07300 7620 SNL CLA 4095 07301 5553 POPJ 4096 07302 7330 L4000 4097 07303 4470 PRINTC 4098 07304 1073 TAD BASE 4099 07305 7041 CIA 4100 07306 1100 TAD OPNTR 4101 07307 7640 SZA CLA 4102 07310 5302 JMP .-6 4103 07311 5553 POPJ 4104 4105 07312 0000 OFREE3, 0 4106 07313 1312 TAD OFREE3 4107 07314 4547 PUSHA 4108 07315 1135 TAD M6 4109 07316 5274 JMP OFREE2+3 4110 4111 07317 1026 OLD1, TAD CHAR /CHECK FOR LIBRARY CALL 4112 07320 1372 TAD (-"$+200 4113 07321 7640 SZA CLA 4114 07322 5326 JMP .+4 4115 07323 4544 GETC /SKIP OVER $ 4116 07324 1136 TAD C10 4117 07325 7410 SKP 4118 07326 1036 TAD DECK /PUSH HIS NUMBER IF NOT LIBRARY 4119 07327 4547 PUSHA 4120 07330 4550 PUSHJ /GET THE PROGRAM NAME 4121 07331 5740 GETNAM 4122 07332 4777 JMS I (DTGRAB /GET THE TAPE 4123 07333 4552 POPA /SET THE EXTENSION 4124 07334 1371 TAD (560 /SET "E0" EXTENSION 4125 07335 3066 DCA EXTEN 4126 07336 6213 CIF CDF SWAP /UNPACK THE NAME 4127 07337 4770 JMS I (XGETNAM 4128 4129 07340 7410 SKP 4130 07341 4767 CHAIN2, JMS I (STRFIL 4131 07342 4766 JMS I (MOVNAM /MOVE THE NEW NAME DOWN 4132 07343 4550 PUSHJ /LOOKUP THE FILE 4133 07344 7137 OINPUT+2 /AND SWITCH TO FILE INPUT 4134 07345 4560 UDF /SCRATCH USER AREA 4135 07346 3457 DCA I ALINE0 4136 07347 6201 CDF 0 4137 07350 7326 L0002 4138 07351 1057 TAD ALINE0 4139 07352 3054 DCA BUFR 4140 07353 1365 TAD (XGET 4141 07354 3067 DCA PREADC 4142 07355 5764 JMP I (START /RETURN TO COMMAND INPUT! 4143 4144 4145 07356 0000 XPRNTC, 0 4146 07357 6002 IOF 4147 07360 4763 JMS I (XOUTL 4148 07361 6001 ION 4149 07362 5756 JMP I XPRNTC 4150 4151 4152 4153 07363 3341 PAGE 07364 0467 07365 6653 07366 4240 07367 7010 07370 2661 07371 0560 07372 7734 07373 0176 07374 7400 07375 6627 07376 3000 07377 6603 4154 07400 4552 OPUS, POPA 4155 07401 3115 DCA T3 4156 07402 6213 CDF CIF 10 4157 07403 5515 JMP I T3 4158 4159 4160 07404 0000 INTCNT, 0 4161 07405 1107 RANDOM, TAD FRNDX+1 4162 07406 1204 TAD INTCNT 4163 07407 3106 DCA FRNDX 4164 07410 1204 TAD INTCNT 4165 07411 3107 DCA FRNDX+1 4166 07412 5553 POPJ 4167 4168 07413 1377 CLOSE0, TAD (460 /SET "D0" EXTENSION 4169 07414 3066 DCA EXTEN 4170 07415 1102 CLOSE1, TAD OBLK /ANY FILE TO CLOSE? 4171 07416 7110 CLL RAR 4172 07417 1103 TAD OBLKH /THIS WILL WORK BECAUSE HE CAN'T USE BLOCK 0 4173 07420 7650 SNA CLA 4174 07421 5776 JMP I (ERR600 4175 07422 4775 JMS I (SETUPO /OPEN OUTPUT 4176 07423 1374 TAD (232 /WRITE A ^Z 4177 07424 4470 PRINTC 4178 07425 1073 TAD BASE 4179 07426 7041 CIA 4180 07427 1100 TAD OPNTR 4181 07430 7640 SZA CLA 4182 07431 5223 JMP .-6 4183 07432 3102 DCA OBLK /CLOSE THE FILE! 4184 07433 3103 DCA OBLKH 4185 07434 5553 POPJ 4186 4187 07435 2105 SAVE, ISZ CHAINP /SET TAPE LOCKING FLAG 4188 07436 4773 JMS I (DTGRAB /GET THE DECTAPE 4189 07437 6211 CDF SWAP /MOVE THE NAME TO 4190 07440 1063 TAD NAME /WORKING SPACE 4191 07441 3524 DCA I CCR /** NAMEX IS AT LOCATION 15 4192 07442 1064 TAD NAME+1 4193 07443 3772 DCA I (NAMEX+1 4194 07444 1065 TAD NAME+2 4195 07445 3771 DCA I (NAMEX+2 4196 07446 6201 CDF 4197 07447 1036 TAD DECK 4198 07450 1370 TAD (560 /SET "EX" EXTENSION 4199 07451 3066 DCA EXTEN 4200 07452 3104 DCA OMAX /SETUP TO COMPUTE LENGTH 4201 07453 1057 TAD ALINE0 /(BUFR)-(ALINE0)=LENGTH IN WORDS 4202 07454 7041 CIA 4203 07455 1054 TAD BUFR 4204 07456 7110 CLL RAR /HALVE IT FOR THOSE USERS WITH OVER 2K 4205 07457 2104 ISZ OMAX /(# WORDS)*2/(CHAR'S/BLOCK)+1=BLOCKS 4206 07460 1367 TAD (-124 /(APPROX # CHAR'S/BLOCK)/2 (AND 2 AGAIN) 4207 07461 7500 SMA 4208 07462 5257 JMP .-3 /CONTINUE DIVISION 4209 07463 7300 CLA CLL /NOW DO ENTER 4210 07464 4550 PUSHJ /OPEN FILE 4211 07465 7101 LENOK+4 4212 07466 3034 DCA OUTPUT /FOR 'LIST' 4213 07467 4775 JMS I (SETUPO /SETUP TO PRINT 4214 07470 5766 JMP I (LIST /CALL 'LIST' 4215 4216 07471 7330 KILL, L4000 4217 07472 3062 DCA ERLINE 4218 07473 4550 UNSAVE, PUSHJ /GET THE NAME 4219 07474 5740 GETNAM 4220 07475 4773 JMS I (DTGRAB /GET THE DECTAPE 4221 07476 6213 CIF CDF SWAP /BUILD THE NAME 4222 07477 4765 JMS I (XGETNAM 4223 07500 1062 TAD ERLINE /WHICH EXTENSION 4224 07501 7640 SZA CLA 4225 07502 1140 TAD M100 /'.DX' EXTENSION 4226 07503 4341 JMS DOLCHK /JUST TO SET '.EX' EXTENSION 4227 07504 6213 CIF CDF SWAP /DO THE CLOSE 4228 07505 4764 JMS I (XENTER /WHAT? 4229 07506 2757 PCAT0, CAT0 /ENTER WITH 0 SHOULD ALWAYS SKIP 4230 07507 4763 UNSAV1, JMS I (DTFREE /RELEASE THE TAPE 4231 07510 5762 JMP I (READY /ALL DONE 4232 4233 07511 7330 DATLOG, L4000 4234 07512 3062 DCA ERLINE 4235 07513 1132 CATLOG, TAD CLF 4236 07514 4470 PRINTC 4237 07515 4773 JMS I (DTGRAB /GET THE TAPE 4238 07516 1062 TAD ERLINE 4239 07517 7640 SZA CLA 4240 07520 1140 TAD M100 /LIST '.DX' EXTENSIONS 4241 07521 4341 JMS DOLCHK /SET CATALOG TO LIST 4242 07522 6213 CIF CDF SWAP /GET THE CATALOG 4243 07523 4706 JMS I PCAT0 4244 4245 07524 4472 CATLUP, FREE13 /MAKE SURE THERE'S ROOM 4246 07525 6213 CIF CDF SWAP /PRINT THE NEXT NAME 4247 07526 4761 JMS I (CAT1 4248 07527 5324 JMP CATLUP /DO IT AGAIN! 4249 07530 5307 JMP UNSAV1 4250 4251 07531 2032 PRINT2, ISZ SPACSW /KEEP SPACES 4252 07532 4544 GETC 4253 07533 4545 SORTJ 4254 07534 5450 PRNTL7-1 /CHECK " CR 4255 07535 6240 PRNTL8-PRNTL7 4256 07536 4471 FREE2 4257 07537 4470 PRINTC 4258 07540 5332 JMP PRINT2+1 /KEEP PRINTING THE LITERAL 4259 4260 07541 0000 DOLCHK, 0 /DECIDE WHICH CATALOG TO USE 4261 07542 3112 DCA T1 /SET EITHER '.E0' OR '.D0' 4262 07543 1026 TAD CHAR /CHECK FOR $ 4263 07544 1360 TAD (-"$+200 4264 07545 7650 SNA CLA 4265 07546 5354 JMP DOL2 4266 07547 1036 TAD DECK /ADD CURRENT USER TO EXTENSION 4267 07550 1112 DOL1, TAD T1 4268 07551 1370 TAD (560 4269 07552 3066 DCA EXTEN 4270 07553 5741 JMP I DOLCHK 4271 07554 4544 DOL2, GETC /SKIP OVER $ 4272 07555 1136 TAD C10 4273 07556 5350 JMP DOL1 4274 4275 07560 7734 PAGE 07561 3465 07562 0464 07563 6627 07564 3177 07565 2661 07566 2251 07567 7654 07570 0560 07571 0017 07572 0016 07573 6603 07574 0232 07575 5474 07576 1150 07577 0460 4276 4277 FIELD 1 4278 4279 *7400 4280 MVPAG=. 4281 4282 NOPUNCH 4283 *7600 /THIS WILL BE MOVED LATER 4284 ENPUNCH 4285 4286 17600 5356 JMP 7756 /FOR A MONITOR SYSTEM 4287 17601 7736 QMQOT, -42 4288 17602 7603 QPT1, .+1 4289 17603 0011 11 4290 17604 0000 QCT1, 0 4291 17605 2757 QEVAL2, EVAL2+3 4292 17606 5607 QINPACK,INPACK 4293 17607 0000 QUOCNT, 0 4294 IFNZRO 7610-. 4295 17610 7740 IF5, SMA SZA CLA 4296 17611 7710 SPA CLA 4297 17612 7650 SNA CLA 4298 17613 7700 SMA CLA 4299 17614 7750 SPA SNA CLA 4300 17615 7640 SZA CLA 4301 17616 0000 QCOUNT, 0 4302 17617 1026 QUOTES, TAD CHAR /LITERAL STRING 4303 17620 1201 TAD QMQOT 4304 17621 7640 SZA CLA 4305 17622 5605 JMP I QEVAL2 /ERROR, NOT STRING 4306 17623 1353 TAD QOPNEXT /SET UP POPJ RETURN 4307 17624 4547 PUSHA 4308 4309 17625 1333 QINP, TAD QCON1 /ENTRY POINT FOR INPUT COMMAND 4310 17626 1334 QLINP, TAD QCON2 /ENTRY POINT FOR LINPUT COMMAND 4311 17627 3252 DCA QSLIS /WHICH LIST TO SORT THROUGH 4312 17630 1135 TAD M6 4313 17631 3216 DCA QCOUNT /COUNT FOR 6 CHARS 4314 17632 3207 DCA QUOCNT /QUOTE COUNTER 4315 17633 2032 ISZ SPACSW /KEEP SPACES 4316 17634 2031 ISZ MODE /SET STRING MODE INDICATOR 4317 17635 4551 PUSHF /PUSH 3 WORDS ONTO STACK 4318 17636 0124 CCR 4319 17637 1015 TAD PDLXR 4320 17640 3016 DCA AXIN 4321 17641 3024 DCA XCTIN 4322 17642 1016 TAD AXIN 4323 17643 3052 DCA PACKST 4324 17644 1202 TAD QPT1 4325 17645 3053 DCA PACKND 4326 17646 7410 SKP /WE ALREADY HAVE FIRST CHAR 4327 17647 4544 QUOTE1, GETC 4328 17650 4545 SORTJ 4329 17651 5446 PRNTL1-1 4330 17652 0000 QSLIS, 0 4331 4332 17653 1216 QNEXTC, TAD QCOUNT /HAVE WE GOT 6 CHARS YET 4333 17654 7710 SPA CLA /YES, DON'T BOTHER PACKING 4334 17655 4564 PACKC 4335 17656 2216 ISZ QCOUNT /BUMP CHAR COUNTER 4336 17657 5247 JMP QUOTE1 4337 17660 1252 TAD QSLIS /GOT 6 CHARS; CHECK IF LINPUT COMMAND 4338 17661 7041 CIA 4339 17662 1334 TAD QCON2 4340 17663 7640 SZA CLA 4341 17664 5247 JMP QUOTE1 /NO, IGNORE REST OF STRING 4342 17665 1335 TAD QCOM /YES, FAKE A COMMA 4343 17666 3207 DCA QUOCNT /SO WE CAN GET REST OF STRING 4344 17667 5310 JMP QDONE2 4345 4346 17670 1207 QUOCHK, TAD QUOCNT /CHECK WHICH QUOTE THIS IS 4347 17671 7650 SNA CLA /SECOND QUOTE, ALL DONE 4348 17672 5276 JMP .+4 4349 17673 3032 DCA SPACSW /IGNORE SPACES 4350 17674 4544 GETC /SKIP OVER QUOTE 4351 17675 5304 JMP QDONE /END OF STRING 4352 17676 2207 ISZ QUOCNT 4353 17677 5247 JMP QUOTE1 /SET FLAG AND CONTINUE 4354 4355 17700 1207 QCOMCK, TAD QUOCNT /CHECK IF COMMA INSIDE QUOTES 4356 17701 7650 SNA CLA 4357 17702 5304 JMP QDONE /NO QUOTES, ENDS STRING 4358 17703 5253 JMP QNEXTC /INSIDE QUOTES, KEEP IT 4359 4360 17704 1026 QDONE, TAD CHAR /DONE, SAVE TERMINATOR 4361 17705 3207 DCA QUOCNT 4362 17706 1216 TAD QCOUNT /SAVE CHAR COUNT, FILL WORD WITH CR'S 4363 17707 7041 CIA 4364 17710 1135 QDONE2, TAD M6 4365 17711 7041 CIA 4366 17712 3204 DCA QCT1 4367 17713 1216 TAD QCOUNT 4368 17714 7700 SMA CLA 4369 17715 5323 JMP QDONE1 /YES 4370 17716 1124 TAD CCR /CCR ENDS STRING 4371 17717 3026 DCA CHAR 4372 17720 4564 PACKC 4373 17721 2216 ISZ QCOUNT 4374 17722 5320 JMP .-2 4375 17723 4554 QDONE1, POPF /GET THE STRING 4376 17724 6167 FLARG 4377 17725 1122 TAD FLARGP /POINT TO STRING 4378 17726 3025 DCA PT1 4379 17727 1207 TAD QUOCNT 4380 17730 3026 DCA CHAR /RESTORE CHARACTER 4381 17731 3032 DCA SPACSW /SET TO IGNORE SPACES 4382 17732 5553 POPJ /RETURN 4383 4384 4385 4386 17733 7774 QCON1, QLIS2-QLIS1 4387 17734 5271 QCON2, QLIS1-PRNTL1 4388 17735 0054 QCOM, ",-200 4389 4390 17736 0001 FRNDX1, 0001 /INITIALIZE RANDOM NUMBER 4391 17737 0203 0203 4392 17740 5555 5555 4393 4394 17741 4407 ENDFUN, FINT 4395 17742 6010 FNOR /NORMALIZE IT 4396 17743 7522 FPUT I FLARGP /SAVE DATA 4397 17744 0000 FEXT 4398 17745 1122 ENDF1, TAD FLARGP 4399 17746 3025 DCA PT1 /POINT TO DATA 4400 17747 3032 DCA SPACSW 4401 17750 4752 JMS I QPARTST 4402 17751 5753 JMP I QOPNEXT 4403 4404 17752 5665 QPARTST,PARTST 4405 17753 2644 QOPNEXT,OPNEXT 4406 4407 4408 PAGE 0 4409 4410 10000 0000 DTINTR, 0 4411 10001 3056 DCA INTAC1 /JUST FOR *DECKON* 4412 10002 0000 0 /DTSF IF TC08, DSKP IF RK8E 4413 10003 5020 JMP DIS 4414 10004 5467 JMP I MCOM /YES, GO TO IT 4415 4416 10005 0000 OCNTR, 0 /FLT PT COUNTER 4417 10006 0000 XENTMP, 0 4418 4419 /!!!!! WARNING DON'T MOVE OFPNT OR ITS ENTRY POINT !!!!! 4420 4421 *7 4422 10007 0200 Z200, OFPNT /FLOATING INTERPRETER CALL 4423 10010 0000 FXR1, 0 /FLOATING POINT INDEX REG 4424 10011 0000 FXR2, 0 4425 10012 0000 XR1, 0 4426 10013 0000 XR2, 0 4427 10014 0000 XR3, 0 4428 *15 /NAMEX MUST BE AT LOCN. 15 FOR MOVNAM TO WORK 4429 10015 0000 NAMEX, ZBLOCK 3 10016 0000 10017 0000 4430 10020 1056 DIS, TAD INTAC1 /RESTORE AC 4431 10021 6203 CIF CDF 4432 10022 5400 JMP I DTINTR /RESUME INTERRUPT PROCESSING 4433 4434 CALL=JMS I . /CALL AN OVERLAY OVER ENTER 4435 10023 2764 XCALL 4436 OPRINTC=JMS I . /FIELD 1 PRINTC 4437 10024 1170 OPRINC 4438 OERROR= JMS I . /FIELD 1 ERROR CALL 4439 10025 2462 OERRX 4440 OGETC= JMS I . /FIELD 1 GETC 4441 10026 2456 OGETCX 4442 OTESTN= JMS I . /FIELD 1 TESTN 4443 10027 2442 OTESTX 4444 OPOPJ= JMP I . 4445 10030 2364 OPOPJX 4446 OPUSHJ= JMS I . 4447 10031 2447 OPUSHX 4448 DECTAP= JMS I . /DO READ OR WRITE 4449 10032 3000 DTAPE 4450 ERROX= JMP . 4451 10033 4425 ERR530, OERROR 4452 GETCAT= JMS I . /READ IN DIRECTORY 4453 10034 3440 XGETCAT 4454 BUMPXR= JMS I . /UTILITY 4455 10035 2654 XBUMPXR 4456 DIRSCH= JMS I . /FIND A FILE NAME 4457 10036 2600 XDIRSCH 4458 SETPT= JMS I . /SETUP DIRECTORY POINTERS 4459 10037 3416 XSETPT 4460 TADCHR= JMS I . /TAD CHAR FROM FIELD 0 4461 10040 2727 XTADCH 4462 TADEXT= JMS I . 4463 10041 4736 XTADEX 4464 4465 /FLOATING POINT STORAGE 4466 4467 10042 0000 OPSIGN, 0 /OPERAND SIGN 4468 10043 0000 ACSIGN, 0 /FLAC SIGN 4469 10044 0000 OPEXP, 0 /OPERAND EXPONENT 4470 10045 0000 ACEXP, 0 /FLAC EXPONENT 4471 10046 0000 AC3, 0 /FLAC 4472 10047 0000 AC2, 0 4473 10050 0000 AC1, 0 4474 10051 0000 OP3, 0 /OPERAND 4475 10052 0000 OP2, 0 4476 10053 0000 OP1, 0 4477 10054 0000 OVER, 0 /OVERFLOW INTO HERE 4478 10055 0000 FFLAG, 0 /-1 IF OP NOT 0 4479 4480 10056 0000 INTAC1, 0 4481 10057 0000 TEMPX, 0 4482 10060 0000 TEMPX1, 0 4483 10061 0000 FILEN, 0 4484 10062 0000 BLOCK, 0 4485 10063 0000 WASTE, 0 4486 10064 0000 ENTRIES, 0 4487 10065 3453 PSQUISH, SQUISH 4488 10066 0000 FOUND, 0 4489 10067 0000 MCOM, 0 4490 10070 4423 PPLINK, CALL /CALL LINK OVERLAY. MOVE THIS IF YOU CAN FIND ROOM 4491 10071 0060 CLINK^2 4492 10072 3200 LINK 4493 4494 10073 0010 Z10, 10 4495 10074 0070 Z70, 70 4496 10075 0100 Z100, 100 4497 10076 1000 Z1000, 1000 4498 10077 6777 Z6777, 6777 4499 10100 0120 ZLOOK, LOOK 4500 10101 1766 ZRUN9X, RUN9X 4501 10102 6601 ZDTQ1, DTQ1 4502 10103 4207 ZDIRBUF, DIRBUF 4503 10104 3052 ZDXIT, DXIT /POINTER TO DTAPE (RK8E) RETURN 4504 10105 5001 PXCALLB, -XCALLB-1 4505 10106 4425 ZOERROR, OERROR 4506 10107 6771 DTSF1, DTSF /DTSF IF TC08, DSKP IF RK8E 4507 10110 0000 DTLOOK, 0 /ADDRESS OF DECTAPE USER STATUS WORD 4508 10111 6201 ZCDF, CDF /FOR RK8E HANDLER 4509 4510 DCON, /DECTAPE (OR DISK) CONSTANTS 4511 D4000, /4000 4512 10112 3055 DDR128, DR128 4513 D6260, /6260 4514 10113 3113 DDTBLK, DTBLOK 4515 D1400, /1400 4516 10114 3073 DDINT, DINT-1 4517 DDIRB, /DIRBUF-1 4518 10115 0614 D614, 614 4519 DM200, /-200 4520 10116 0020 D20, 20 4521 4522 PAGE 4523 10200 0000 OFPNT, 0 /ENTRY POINT 4524 10201 7600 C7600, 7600 4525 10202 6214 RDF 4526 10203 1021 TAD DIS+1 /OPERANDS IN CALLING FIELD 4527 10204 3210 DCA FLOOP+2 4528 10205 5210 JMP .+3 4529 4530 10206 4577 FLOOP, JMS I [FNORM /NORMALIZE RESULT 4531 10207 2200 ISZ OFPNT /GET NEXT 4532 10210 6203 CIF CDF 4533 10211 1600 TAD I OFPNT /GET OPERATION 4534 10212 7450 SNA 4535 10213 5600 JMP I OFPNT /0000 => EXIT 4536 10214 6212 CIF SWAP 4537 10215 7006 RTL 4538 10216 7006 RTL 4539 10217 0176 AND [7 4540 10220 3273 DCA FGOTO /SAVE OP 4541 10221 1600 TAD I OFPNT 4542 10222 0175 AND [200 4543 10223 7650 SNA CLA 4544 10224 5227 JMP FPNT1 /PAGE ZERO MODE 4545 10225 1200 TAD OFPNT 4546 10226 0201 AND C7600 /GET PAGE 4547 10227 3304 FPNT1, DCA FADDR 4548 10230 1600 TAD I OFPNT 4549 10231 0174 AND [177 4550 10232 1304 TAD FADDR 4551 10233 3304 DCA FADDR /GET ADDRESS 4552 10234 7420 SNL 4553 10235 5240 JMP FPNT2 4554 10236 1704 TAD I FADDR /DO INDIRECT 4555 10237 3304 DCA FADDR 4556 10240 7330 FPNT2, L4000 4557 10241 0704 AND I FADDR 4558 10242 3042 DCA OPSIGN /SET SIGN 4559 10243 1704 TAD I FADDR 4560 10244 7640 SZA CLA 4561 10245 7340 L7777 4562 10246 3055 DCA FFLAG /-1 IF NOT 0 4563 10247 1704 TAD I FADDR 4564 10250 7012 RTR 4565 10251 7010 RAR 4566 10252 0173 AND [377 4567 10253 3044 DCA OPEXP /SET EXP 4568 10254 1704 TAD I FADDR 4569 10255 0176 AND [7 4570 10256 3053 DCA OP1 /SET WORDS 4571 10257 2304 ISZ FADDR 4572 10260 1704 TAD I FADDR 4573 10261 3052 DCA OP2 4574 10262 2304 ISZ FADDR 4575 10263 1704 TAD I FADDR 4576 10264 3051 DCA OP3 4577 10265 7346 L7775 4578 10266 1304 TAD FADDR 4579 10267 3011 DCA FXR2 4580 10270 1273 FPNT3, TAD FGOTO 4581 10271 1172 TAD [JMP I FJUMP 4582 10272 3273 DCA .+1 /FIND OP ADDRESS 4583 10273 7402 FGOTO, HLT 4584 4585 10274 0334 FJUMP, FPGET 4586 10275 0455 FPADD 4587 10276 0452 FPSUB 4588 10277 0531 FPMUL 4589 10300 0662 FPDIV 4590 10301 0305 FPJMP 4591 10302 0311 FPCMP 4592 10303 0325 FPPUT 4593 4594 10304 0000 FADDR, 0 4595 10305 7344 FPJMP, L7776 /FLOATING JUMP 4596 10306 1304 TAD FADDR 4597 10307 3200 DCA OFPNT 4598 10310 5210 JMP FLOOP+2 4599 4600 10311 1600 FPCMP, TAD I OFPNT 4601 10312 7006 RTL 4602 10313 7006 RTL 4603 10314 7730 SZL SPA CLA 4604 10315 5361 JMP FPNT4 /FLOATING COMPARE 4605 10316 1600 TAD I OFPNT 4606 10317 1316 TAD .-1 /TAD (1600 4607 10320 3322 DCA .+2 /SET SKIP WORD 4608 10321 4347 JMS HIGHWD /GET WORD 4609 10322 7402 HLT /SKIP IF FALSE 4610 10323 2200 ISZ OFPNT /TRUE => SKIP 4611 10324 5206 JMP FLOOP 4612 4613 10325 4347 FPPUT, JMS HIGHWD 4614 10326 3411 DCA I FXR2 /SET WORD 1 4615 10327 1047 TAD AC2 4616 10330 3411 DCA I FXR2 /SET WORD 2 4617 10331 1046 TAD AC3 4618 10332 3411 DCA I FXR2 /SET WORD 3 4619 10333 5207 JMP FLOOP+1 4620 4621 10334 1042 FPGET, TAD OPSIGN 4622 10335 3043 DCA ACSIGN /TRANSFER INTO FLAC 4623 10336 1044 TAD OPEXP 4624 10337 3045 DCA ACEXP 4625 10340 1053 TAD OP1 4626 10341 3050 DCA AC1 4627 10342 1052 TAD OP2 4628 10343 3047 DCA AC2 4629 10344 1051 TAD OP3 4630 10345 3046 DCA AC3 4631 10346 5207 JMP FLOOP+1 4632 4633 10347 0000 HIGHWD, 0 4634 10350 1045 TAD ACEXP 4635 10351 7104 CLL RAL 4636 10352 7500 SMA 4637 10353 7106 CLL RTL 4638 10354 7530 SPA SZL 4639 10355 4425 ERR040, OERROR /OVERFLOW 4640 10356 1043 TAD ACSIGN 4641 10357 1050 TAD AC1 /FORM WORD 4642 10360 5747 JMP I HIGHWD 4643 4644 10361 7330 FPNT4, L4000 4645 10362 1042 TAD OPSIGN 4646 10363 3042 DCA OPSIGN 4647 10364 4571 JMS I [OCTADD 4648 10365 1050 TAD AC1 4649 10366 7450 SNA 4650 10367 1047 TAD AC2 4651 10370 7640 SZA CLA 4652 10371 5206 JMP FLOOP /NOT ZERO 4653 10372 1046 TAD AC3 4654 10373 0170 AND [7774 4655 10374 7640 SZA CLA 4656 10375 5206 JMP FLOOP /NOT ZERO 4657 10376 5567 JMP I [MULCLR /CALL IT ZERO 4658 4659 PAGE 4660 10400 0000 AR1, 0 4661 10401 1050 TAD AC1 4662 10402 7110 CLL RAR 4663 10403 3050 DCA AC1 4664 10404 1047 TAD AC2 4665 10405 7010 RAR 4666 10406 3047 DCA AC2 4667 10407 1046 TAD AC3 4668 10410 7010 RAR 4669 10411 3046 DCA AC3 4670 10412 7010 RAR 4671 10413 3054 DCA OVER 4672 10414 5600 JMP I AR1 4673 4674 10415 0000 ACN, 0 4675 10416 1377 TAD (OP3 4676 10417 3234 DCA OADD 4677 10420 7346 L7775 4678 10421 3200 DCA AR1 4679 10422 6211 CDF SWAP /MAKE SURE 4680 10423 1634 TAD I OADD 4681 10424 7040 CMA 4682 10425 7430 SZL 4683 10426 7101 CLL IAC 4684 10427 3634 DCA I OADD 4685 10430 2234 ISZ OADD 4686 10431 2200 ISZ AR1 4687 10432 5223 JMP .-7 4688 10433 5615 JMP I ACN 4689 4690 10434 0000 OADD, 0 4691 10435 7100 CLL 4692 10436 1046 TAD AC3 4693 10437 1051 TAD OP3 4694 10440 3046 DCA AC3 4695 10441 7004 RAL 4696 10442 1047 TAD AC2 4697 10443 1052 TAD OP2 4698 10444 3047 DCA AC2 4699 10445 7004 RAL 4700 10446 1050 TAD AC1 4701 10447 1053 TAD OP1 4702 10450 3050 DCA AC1 4703 10451 5634 JMP I OADD 4704 4705 10452 7330 FPSUB, L4000 4706 10453 1042 TAD OPSIGN 4707 10454 3042 DCA OPSIGN 4708 10455 4257 FPADD, JMS OCTADD 4709 10456 5566 JMP I [FLOOP 4710 4711 10457 0000 OCTADD, 0 4712 10460 2055 ISZ FFLAG 4713 10461 5657 JMP I OCTADD 4714 10462 1045 TAD ACEXP 4715 10463 7141 CLL CIA 4716 10464 1044 TAD OPEXP 4717 10465 7430 SZL 4718 10466 5304 JMP BCKWDS 4719 10467 3234 DCA OADD 4720 10470 1053 ALGNLP, TAD OP1 4721 10471 7110 CLL RAR 4722 10472 3053 DCA OP1 4723 10473 1052 TAD OP2 4724 10474 7010 RAR 4725 10475 3052 DCA OP2 4726 10476 1051 TAD OP3 4727 10477 7010 RAR 4728 10500 3051 DCA OP3 4729 10501 2234 ISZ OADD 4730 10502 5270 JMP ALGNLP 4731 10503 5314 JMP SETSGN 4732 4733 10504 7040 BCKWDS, CMA 4734 10505 3234 DCA OADD 4735 10506 1044 TAD OPEXP 4736 10507 3045 DCA ACEXP 4737 10510 7410 SKP 4738 10511 4200 JMS AR1 4739 10512 2234 ISZ OADD 4740 10513 5311 JMP .-2 4741 10514 1043 SETSGN, TAD ACSIGN 4742 10515 1042 TAD OPSIGN 4743 10516 7710 SPA CLA 4744 10517 4215 JMS ACN 4745 10520 4234 JMS OADD 4746 10521 1050 TAD AC1 4747 10522 7700 SMA CLA 4748 10523 5657 JMP I OCTADD 4749 10524 7346 L7775 4750 10525 4215 JMS ACN 4751 10526 1042 TAD OPSIGN 4752 10527 3043 DCA ACSIGN 4753 10530 5657 JMP I OCTADD 4754 4755 10531 2055 FPMUL, ISZ FFLAG 4756 10532 5371 JMP MULCLR 4757 10533 1043 TAD ACSIGN 4758 10534 1042 TAD OPSIGN 4759 10535 3043 DCA ACSIGN 4760 10536 1045 TAD ACEXP 4761 10537 1044 TAD OPEXP 4762 10540 1376 TAD (-201 4763 10541 3045 DCA ACEXP 4764 10542 1050 TAD AC1 4765 10543 3042 DCA OPSIGN 4766 10544 1047 TAD AC2 4767 10545 3044 DCA OPEXP 4768 10546 1046 TAD AC3 4769 10547 3057 DCA TEMPX 4770 10550 1375 TAD (-33 4771 10551 3005 DCA OCNTR 4772 10552 4200 MPYLUP, JMS AR1 4773 10553 1042 TAD OPSIGN 4774 10554 7010 RAR 4775 10555 3042 DCA OPSIGN 4776 10556 1044 TAD OPEXP 4777 10557 7010 RAR 4778 10560 3044 DCA OPEXP 4779 10561 1057 TAD TEMPX 4780 10562 7010 RAR 4781 10563 3057 DCA TEMPX 4782 10564 7430 SZL 4783 10565 4234 JMS OADD 4784 10566 2005 ISZ OCNTR 4785 10567 5352 JMP MPYLUP 4786 10570 5566 JMP I [FLOOP 4787 4788 10571 3050 MULCLR, DCA AC1 4789 10572 4774 JMS I (NFIX 4790 10573 5566 JMP I [FLOOP 4791 4792 10574 0730 PAGE 10575 7745 10576 7577 10577 0051 4793 10600 0000 FNORM, 0 4794 10601 3054 DCA OVER 4795 10602 1050 TAD AC1 4796 10603 1235 TAD KM10 4797 10604 7710 SPA CLA 4798 10605 5211 JMP NOTBIG 4799 10606 4565 JMS I [AR1 4800 10607 2045 ISZ ACEXP 4801 10610 5202 JMP FNORM+2 4802 10611 1054 NOTBIG, TAD OVER 4803 10612 7700 SMA CLA 4804 10613 5223 JMP NOBUMP 4805 10614 2046 ISZ AC3 4806 10615 5223 JMP NOBUMP 4807 10616 2047 ISZ AC2 4808 10617 5223 JMP NOBUMP 4809 10620 2050 ISZ AC1 4810 10621 5201 JMP FNORM+1 4811 4812 10622 7340 L7777 4813 10623 1045 NOBUMP, TAD ACEXP 4814 10624 7510 SPA 4815 10625 5235 JMP UNDERF /UNDERFLOW OR ZERO 4816 10626 3045 DCA ACEXP 4817 10627 7346 L7775 4818 10630 1050 TAD AC1 4819 10631 7740 SMA SZA CLA 4820 10632 5600 JMP I FNORM 4821 10633 4247 JMS AL1 4822 10634 5222 JMP NOBUMP-1 4823 4824 KM10=. 4825 10635 7770 UNDERF, SPA SNA SZL CLA 4826 10636 1050 TAD AC1 4827 10637 7450 SNA 4828 10640 1047 TAD AC2 4829 10641 7450 SNA 4830 10642 1046 TAD AC3 4831 10643 7640 SZA CLA 4832 10644 4425 ERR050, OERROR /UNDERFLOW 4833 10645 4330 JMS NFIX 4834 10646 5600 JMP I FNORM 4835 4836 10647 0000 AL1, 0 4837 10650 1046 TAD AC3 4838 10651 7104 CLL RAL 4839 10652 3046 DCA AC3 4840 10653 1047 TAD AC2 4841 10654 7004 RAL 4842 10655 3047 DCA AC2 4843 10656 1050 TAD AC1 4844 10657 7004 RAL 4845 10660 3050 DCA AC1 4846 10661 5647 JMP I AL1 4847 4848 10662 2055 FPDIV, ISZ FFLAG 4849 10663 4425 ERR030, OERROR 4850 10664 1043 TAD ACSIGN 4851 10665 1042 TAD OPSIGN 4852 10666 3043 DCA ACSIGN 4853 10667 1044 TAD OPEXP 4854 10670 7041 CIA 4855 10671 1045 TAD ACEXP 4856 10672 1174 TAD [177 4857 10673 3045 DCA ACEXP 4858 10674 3005 DCA OCNTR 4859 10675 1377 TAD (-35 4860 10676 3200 DCA FNORM 4861 10677 7330 DIVLP, L4000 4862 10700 0053 AND OP1 4863 10701 1050 TAD AC1 4864 10702 7700 SMA CLA 4865 10703 4776 JMS I (ACN 4866 10704 4775 JMS I (OADD 4867 10705 1005 TAD OCNTR 4868 10706 7004 RAL 4869 10707 3005 DCA OCNTR 4870 10710 1044 TAD OPEXP 4871 10711 7004 RAL 4872 10712 3044 DCA OPEXP 4873 10713 1042 TAD OPSIGN 4874 10714 7004 RAL 4875 10715 3042 DCA OPSIGN 4876 10716 4247 JMS AL1 4877 10717 2200 ISZ FNORM 4878 10720 5277 JMP DIVLP 4879 10721 1042 TAD OPSIGN 4880 10722 3050 DCA AC1 4881 10723 1044 TAD OPEXP 4882 10724 3047 DCA AC2 4883 10725 1005 TAD OCNTR 4884 10726 3046 DCA AC3 4885 10727 5566 JMP I [FLOOP 4886 4887 10730 0000 NFIX, 0 4888 10731 1050 TAD AC1 4889 10732 7650 SNA CLA 4890 10733 5343 JMP ZFIXEX 4891 10734 1045 FIXLUP, TAD ACEXP 4892 10735 1374 TAD (-233 4893 10736 7700 SMA CLA 4894 10737 5350 JMP FIXEXT 4895 10740 4565 JMS I [AR1 4896 10741 2045 ISZ ACEXP 4897 10742 5334 JMP FIXLUP 4898 10743 3045 ZFIXEX, DCA ACEXP 4899 10744 3043 DCA ACSIGN 4900 10745 3050 DCA AC1 4901 10746 3047 DCA AC2 4902 10747 3046 DCA AC3 4903 10750 1046 FIXEXT, TAD AC3 4904 10751 5730 JMP I NFIX 4905 4906 10752 0000 MULT10, 0 4907 10753 4247 JMS AL1 4908 10754 1046 TAD AC3 4909 10755 3051 DCA OP3 4910 10756 1047 TAD AC2 4911 10757 3052 DCA OP2 4912 10760 1050 TAD AC1 4913 10761 3053 DCA OP1 4914 10762 4247 JMS AL1 4915 10763 4247 JMS AL1 4916 10764 4775 JMS I (OADD 4917 10765 5752 JMP I MULT10 4918 4919 10766 1544 FIXCON, 1544 4920 10767 1433 1433 4921 10770 6750 6750 4922 10771 0522 LIST7, 12^40+22 4923 10772 1360 LIST70 4924 10773 2021 -"O+337^100-"N+337 4925 4926 10774 7545 PAGE 10775 0434 10776 0415 10777 7743 4927 11000 0000 OFLIN, 0 4928 11001 1164 TAD [-11 4929 11002 3302 DCA DNUMBR 4930 11003 4303 JMS DECONV 4931 11004 4440 TADCHR 4932 11005 1163 TAD [-".+200 4933 11006 7640 SZA CLA 4934 11007 5217 JMP FIGO1 4935 4936 11010 4426 OGETC 4937 11011 1302 TAD DNUMBR 4938 11012 3010 DCA FXR1 4939 11013 4324 JMS DECON 4940 11014 1302 TAD DNUMBR 4941 11015 7041 CIA 4942 11016 1010 TAD FXR1 4943 4944 11017 3010 FIGO1, DCA FXR1 4945 11020 1345 TAD C233 4946 11021 3045 DCA ACEXP 4947 11022 4407 FINT 4948 11023 6010 FNOR 4949 11024 7562 FPUT I [OTEMP 4950 11025 0000 FEXT 4951 11026 1302 TAD DNUMBR 4952 11027 1161 TAD [11 4953 11030 7650 SNA CLA 4954 11031 4425 ERR150, OERROR 4955 11032 4440 TADCHR 4956 11033 1160 TAD [-"E+200 4957 11034 7640 SZA CLA 4958 11035 5255 JMP FIGO2 4959 4960 11036 4426 OGETC 4961 11037 7346 L7775 4962 11040 3302 DCA DNUMBR 4963 11041 4303 JMS DECONV 4964 11042 7326 L0002 4965 11043 1302 TAD DNUMBR 4966 11044 7710 SPA CLA 4967 11045 5231 JMP .-14 4968 11046 1043 TAD ACSIGN 4969 11047 7104 CLL RAL 4970 11050 1046 TAD AC3 4971 11051 7430 SZL 4972 11052 7041 CIA 4973 11053 1010 TAD FXR1 4974 11054 3010 DCA FXR1 4975 4976 11055 4407 FIGO2, FINT 4977 11056 0562 FGET I [OTEMP 4978 11057 0000 FEXT 4979 11060 1010 TAD FXR1 4980 11061 7450 SNA 4981 11062 5300 JMP FLINGO 4982 4983 11063 7710 SPA CLA 4984 11064 5271 JMP FIGO4 4985 11065 1010 TAD FXR1 4986 11066 7041 CIA 4987 11067 3010 DCA FXR1 4988 11070 1326 TAD M1000 4989 4990 11071 1156 FIGO4, TAD [FDIV I [TEN 4991 11072 3274 DCA .+2 4992 11073 4407 FIGO3, FINT 4993 11074 7402 HLT 4994 11075 0000 FEXT 4995 11076 2010 ISZ FXR1 4996 11077 5273 JMP FIGO3 4997 11100 6203 FLINGO, CIF CDF 4998 11101 5600 JMP I OFLIN 4999 5000 11102 0000 DNUMBR, 0 5001 11103 0000 DECONV, 0 5002 11104 3046 DCA AC3 5003 11105 3047 DCA AC2 5004 11106 3050 DCA AC1 5005 11107 3043 DCA ACSIGN 5006 11110 4440 TADCHR 5007 11111 1155 TAD [-"++200 5008 11112 7450 SNA 5009 11113 5321 JMP .+6 5010 11114 7112 CLL RTR 5011 11115 7640 SZA CLA 5012 11116 5322 JMP .+4 5013 11117 7330 L4000 5014 11120 3043 DCA ACSIGN 5015 11121 4426 OGETC 5016 11122 4324 JMS DECON 5017 11123 5703 JMP I DECONV 5018 5019 11124 0000 DECON, 0 5020 11125 4427 OTESTN 5021 11126 7000 M1000, NOP 5022 11127 5724 JMP I DECON 5023 11130 4554 JMS I [MULT10 5024 11131 3053 DCA OP1 5025 11132 3052 DCA OP2 5026 11133 4440 TADCHR 5027 11134 1153 TAD [-60 5028 11135 3051 DCA OP3 5029 11136 4552 JMS I [OADD 5030 11137 4426 OGETC 5031 11140 2302 ISZ DNUMBR 5032 11141 5325 JMP DECON+1 5033 11142 4425 ERR160, OERROR 5034 5035 11143 0000 OGETLN, 0 5036 11144 4427 OTESTN 5037 11145 0233 C233, 233 5038 11146 4425 ERR370, OERROR 5039 11147 1151 TAD [-6 5040 11150 3302 DCA DNUMBR 5041 11151 4303 JMS DECONV 5042 11152 1047 TAD AC2 5043 11153 7640 SZA CLA 5044 11154 5346 JMP OGETLN+3 5045 11155 1046 TAD AC3 5046 11156 7550 SPA SNA 5047 11157 5346 JMP OGETLN+3 5048 11160 6201 CDF 5049 11161 3550 DCA I [LINENO 5050 11162 1550 TAD I [LINENO 5051 11163 7001 IAC 5052 11164 7710 SPA CLA 5053 11165 5346 JMP OGETLN+3 5054 11166 6203 CIF CDF 5055 11167 5743 JMP I OGETLN 5056 5057 11170 0000 OPRINC, 0 5058 11171 6203 CIF CDF 5059 11172 4777 JMS I (XPRT1 5060 11173 5770 JMP I OPRINC 5061 5062 11174 4104 XGETL2, XGET5-1 /CR 5063 11175 4101 XGET4-1 /BELL 5064 11176 4075 XGET3-1 /SPACE 5065 5066 5067 11177 4765 PAGE 5068 11200 0000 OFLOUT, 0 5069 11201 1043 TAD ACSIGN 5070 11202 7710 SPA CLA 5071 11203 1377 TAD (55-40 5072 11204 1147 TAD [40 5073 11205 4424 OPRINTC 5074 11206 1050 TAD AC1 5075 11207 7640 SZA CLA 5076 11210 5214 JMP FOGO1 5077 11211 1376 TAD (60 5078 11212 4424 OPRINTC 5079 11213 5300 JMP FLOXIT 5080 5081 11214 4775 FOGO1, JMS I (FIXUP 5082 11215 1374 TAD (-7 5083 11216 3005 DCA OCNTR 5084 11217 1373 TAD (NUMBUF-1 5085 11220 3010 DCA FXR1 5086 11221 5226 JMP .+5 5087 5088 11222 1050 FOGO2, TAD AC1 5089 11223 0174 AND [177 5090 11224 3050 DCA AC1 5091 11225 4772 JMS I (MULT10 5092 11226 1050 TAD AC1 5093 11227 7106 CLL RTL 5094 11230 7006 RTL 5095 11231 7006 RTL 5096 11232 0371 AND (17 5097 11233 1376 TAD (60 5098 11234 3410 DCA I FXR1 5099 11235 2005 ISZ OCNTR 5100 11236 5222 JMP FOGO2 5101 5102 11237 1373 TAD (NUMBUF-1 5103 11240 3010 DCA FXR1 5104 11241 7326 L0002 5105 11242 1773 TAD I (DECEXP 5106 11243 7450 SNA 5107 11244 5302 JMP FOGO4 5108 11245 7510 SPA 5109 11246 5252 JMP FOGO3 5110 11247 1370 TAD (-10 5111 11250 7710 SPA CLA 5112 11251 5306 JMP FOGO5 5113 11252 7200 FOGO3, CLA 5114 11253 1410 TAD I FXR1 5115 11254 4424 OPRINTC 5116 11255 1367 TAD (".-200 5117 11256 4424 OPRINTC 5118 11257 1151 TAD [-6 5119 11260 3005 DCA OCNTR 5120 11261 1410 TAD I FXR1 5121 11262 4424 OPRINTC 5122 11263 2005 ISZ OCNTR 5123 11264 5261 JMP .-3 5124 11265 1366 TAD ("E-200 5125 11266 4424 OPRINTC 5126 11267 1773 TAD I (DECEXP 5127 11270 7710 SPA CLA 5128 11271 7326 L0002 5129 11272 1365 TAD ("+-200 5130 11273 4424 OPRINTC 5131 11274 1773 TAD I (DECEXP 5132 11275 7510 SPA 5133 11276 7041 CIA 5134 11277 2200 ISZ OFLOUT 5135 11300 6203 FLOXIT, CIF CDF 5136 11301 5600 JMP I OFLOUT 5137 5138 11302 1367 FOGO4, TAD (".-200 5139 11303 4424 OPRINTC 5140 11304 1376 TAD (60 5141 11305 4424 OPRINTC 5142 11306 1374 FOGO5, TAD (-7 5143 11307 3005 DCA OCNTR 5144 11310 1364 TAD (NUMBUF+6 5145 11311 3057 FOGO6, DCA TEMPX 5146 11312 1457 TAD I TEMPX 5147 11313 1153 TAD [-60 5148 11314 7640 SZA CLA 5149 11315 5322 JMP FOGO7 5150 11316 2005 ISZ OCNTR 5151 11317 7340 L7777 5152 11320 1057 TAD TEMPX 5153 11321 5311 JMP FOGO6 5154 5155 11322 1773 FOGO7, TAD I (DECEXP 5156 11323 1005 TAD OCNTR 5157 11324 7710 SPA CLA 5158 11325 5331 JMP .+4 5159 11326 1773 TAD I (DECEXP 5160 11327 7040 CMA 5161 11330 3005 DCA OCNTR 5162 11331 7344 L7776 5163 11332 7040 FOGO8, CMA 5164 11333 1773 TAD I (DECEXP 5165 11334 7440 SZA 5166 11335 5340 JMP .+3 5167 11336 1367 TAD (".-200 5168 11337 4424 OPRINTC 5169 11340 3773 DCA I (DECEXP 5170 11341 1410 TAD I FXR1 5171 11342 4424 OPRINTC 5172 11343 2005 ISZ OCNTR 5173 11344 5332 JMP FOGO8 5174 11345 5300 JMP FLOXIT 5175 5176 11346 2045 TEN, 2045 5177 11347 0000 0 5178 11350 0000 0 5179 5180 11351 2230 MODL2, MODF5-1 /CR 5181 11352 2206 MODF2-1 /BELL 5182 11353 2222 MODF4-1 /RUBOUT 5183 11354 2222 MODF4-1 /_ 5184 11355 2213 MODF1 /CHAR 5185 11356 2212 MODF1-1 /FORM 5186 11357 2210 MODF3-1 /LINE FEED 5187 11360 0574 LIST70, 13^40+34 5188 11361 2552 LIST71 5189 11362 1413 337-"S^100-"T+337 5190 11363 2017 337-"O^100-"P+337 5191 5192 5193 11364 1543 PAGE 11365 0053 11366 0105 11367 0056 11370 7770 11371 0017 11372 0752 11373 1534 11374 7771 11375 1400 11376 0060 11377 0015 5194 11400 0000 FIXUP, 0 5195 11401 1045 TAD ACEXP 5196 11402 1204 TAD .+2 5197 11403 3045 DCA ACEXP 5198 11404 7610 CLA SKP /THIS IS 7610 OR -170 5199 5200 11405 1334 FIXUP4, TAD DECEXP 5201 11406 3334 DCA DECEXP 5202 11407 1050 FIXUP1, TAD AC1 5203 11410 7006 RTL 5204 11411 7630 SZL CLA 5205 11412 5230 JMP FIXUP2 5206 11413 4620 JMS I PAL1 5207 11414 7340 L7777 5208 11415 1045 TAD ACEXP 5209 11416 3045 DCA ACEXP 5210 11417 5207 JMP FIXUP1 5211 11420 0647 PAL1, AL1 5212 11421 5400 K5400, 5400 5213 11422 2166 K2166, 2166 5214 11423 7773 KM5, -5 5215 11424 0377 K377, 377 5216 11425 0752 PMULT10, MULT10 5217 11426 0766 PFIXCON, FIXCON 5218 11427 0730 PNFIX, NFIX 5219 5220 11430 1045 FIXUP2, TAD ACEXP 5221 11431 7740 KM40, SMA SZA CLA 5222 11432 5245 JMP FIXUP3 5223 11433 4565 JMS I [AR1 5224 11434 4565 JMS I [AR1 5225 11435 4565 JMS I [AR1 5226 11436 4565 JMS I [AR1 5227 11437 4625 JMS I PMULT10 5228 11440 1045 TAD ACEXP 5229 11441 1332 TAD FIXC4 5230 11442 3045 DCA ACEXP 5231 11443 7340 L7777 5232 11444 5205 JMP FIXUP4 5233 5234 11445 1045 FIXUP3, TAD ACEXP 5235 11446 1223 TAD KM5 5236 11447 7510 SPA 5237 11450 5301 JMP FIXUP5 5238 11451 7300 FIXUP7, CLL CLA 5239 11452 1231 TAD KM40 5240 11453 3005 DCA OCNTR 5241 11454 1050 FIXUP8, TAD AC1 5242 11455 1221 TAD K5400 5243 11456 7500 SMA 5244 11457 3050 DCA AC1 5245 11460 7200 CLA 5246 11461 1046 TAD AC3 5247 11462 7004 RAL 5248 11463 3046 DCA AC3 5249 11464 1047 TAD AC2 5250 11465 7004 RAL 5251 11466 3047 DCA AC2 5252 11467 1050 TAD AC1 5253 11470 7004 RAL 5254 11471 3050 DCA AC1 5255 11472 2005 ISZ OCNTR 5256 11473 5254 JMP FIXUP8 5257 11474 1050 TAD AC1 5258 11475 0224 AND K377 5259 11476 3050 DCA AC1 5260 11477 7301 L0001 5261 11500 5205 JMP FIXUP4 5262 5263 11501 3005 FIXUP5, DCA OCNTR 5264 11502 7410 SKP 5265 11503 4565 JMS I [AR1 5266 11504 2005 ISZ OCNTR 5267 11505 5303 JMP .-2 5268 11506 1050 TAD AC1 5269 11507 1221 TAD K5400 5270 11510 7700 SMA CLA 5271 11511 5251 JMP FIXUP7 5272 11512 7100 CLL 5273 11513 1222 TAD K2166 5274 11514 1046 TAD AC3 5275 11515 3046 DCA AC3 5276 11516 7430 SZL 5277 11517 2047 ISZ AC2 5278 11520 7410 SKP 5279 11521 2050 ISZ AC1 5280 11522 1050 TAD AC1 5281 11523 1221 TAD K5400 5282 11524 7640 SZA CLA 5283 11525 5600 JMP I FIXUP 5284 5285 11526 1175 TAD [200 5286 11527 3050 DCA AC1 5287 11530 3046 DCA AC3 5288 11531 2334 ISZ DECEXP 5289 11532 0004 FIXC4, 4 5290 11533 5600 JMP I FIXUP 5291 5292 11534 0000 DECEXP, 0 5293 5294 11535 0000 NUMBUF, ZBLOCK 7 11536 0000 11537 0000 11540 0000 11541 0000 11542 0000 11543 0000 5295 5296 FATNC=NUMBUF 5297 OTEMP=NUMBUF+3 5298 11544 0000 FIX2, 0 5299 11545 4407 FINT 5300 11546 6150 FSLE 5301 11547 1626 FADD I PFIXCON 5302 11550 6100 FSGE 5303 11551 2626 FSUB I PFIXCON 5304 11552 0000 FEXT 5305 11553 4627 JMS I PNFIX 5306 11554 7110 CLL RAR 5307 11555 1043 TAD ACSIGN 5308 11556 7004 RAL 5309 11557 7430 SZL 5310 11560 7041 CIA 5311 11561 3200 DCA FIXUP 5312 11562 7100 CLL 5313 11563 1050 TAD AC1 5314 11564 7450 SNA 5315 11565 1047 TAD AC2 5316 11566 7640 SZA CLA 5317 11567 7120 CLL CML 5318 11570 1200 TAD FIXUP 5319 11571 5744 JMP I FIX2 5320 5321 11572 0775 LIST75, 17^40+35 5322 11573 4203 LIST76 5323 11574 3020 337-"G^100-"O+337 5324 11575 1412 337-"S^100-"U+337 5325 11576 3500 337-"B^100 5326 IFNZRO .-1577 5327 5328 11577 4407 OSQR, FINT 5329 11600 7335 FPUT FSINZ 5330 11601 6040 FSNE 5331 11602 5234 FJMP SQEXIT 5332 11603 0000 FEXT 5333 11604 1043 TAD ACSIGN 5334 11605 7710 SPA CLA 5335 11606 4425 ERR020, OERROR 5336 11607 1045 TAD ACEXP 5337 11610 1365 TAD KK7600 5338 11611 7100 CLL 5339 11612 7510 SPA 5340 11613 7020 CML 5341 11614 7010 RAR 5342 11615 1175 TAD [200 5343 11616 3045 DCA ACEXP 5344 11617 1366 TAD KKM10 5345 11620 3236 DCA SQCNT 5346 11621 4407 SQLOOP, FINT 5347 11622 7340 FPUT FSINZZ 5348 11623 0335 FGET FSINZ 5349 11624 4340 FDIV FSINZZ 5350 11625 1340 FADD FSINZZ 5351 11626 0000 FEXT 5352 11627 7340 L7777 5353 11630 1045 TAD ACEXP 5354 11631 3045 DCA ACEXP 5355 11632 2236 ISZ SQCNT 5356 11633 5221 JMP SQLOOP 5357 11634 0000 SQEXIT, FEXT 5358 11635 5430 OPOPJ 5359 5360 11636 0000 SQCNT, 0 5361 11637 4407 OTAN, FINT 5362 11640 7767 FPUT I POTEMP 5363 11641 0000 FEXT 5364 11642 4431 OPUSHJ 5365 11643 5464 COS 5366 11644 4407 FINT 5367 11645 7770 FPUT I PFATNC 5368 11646 0767 FGET I POTEMP 5369 11647 0000 FEXT 5370 11650 4431 OPUSHJ 5371 11651 5465 FSIN 5372 11652 4407 FINT 5373 11653 4770 FDIV I PFATNC 5374 11654 0000 FEXT 5375 11655 5430 OPOPJ 5376 5377 11656 4407 OCOS, FINT 5378 11657 1362 FADD FSINC7 5379 11660 6000 FSKP 5380 11661 4407 OFSIN, FINT 5381 11662 4343 FDIV FSINC1 5382 11663 7335 FPUT FSINZ 5383 11664 0000 FEXT 5384 11665 4431 OPUSHJ 5385 11666 5461 FFIX 5386 11667 7330 L4000 5387 11670 1043 TAD ACSIGN 5388 11671 3043 DCA ACSIGN 5389 11672 4407 FINT 5390 11673 1335 FADD FSINZ 5391 11674 0000 FEXT 5392 11675 2045 ISZ ACEXP 5393 11676 2045 ISZ ACEXP 5394 11677 4407 FINT 5395 11700 7335 FSINXX, FPUT FSINZ 5396 11701 0000 FEXT 5397 11702 3043 DCA ACSIGN 5398 11703 4407 FINT 5399 11704 2371 FSUB OFLTONE 5400 11705 6140 FSGT 5401 11706 5317 FJMP FSINOK 5402 11707 0335 FGET FSINZ 5403 11710 0000 FEXT 5404 11711 4431 OPUSHJ 5405 11712 5007 SGN 5406 11713 2045 ISZ ACEXP 5407 11714 4407 FINT 5408 11715 2335 FSUB FSINZ 5409 11716 5300 FJMP FSINXX 5410 11717 0335 FSINOK, FGET FSINZ 5411 11720 3335 FMUL FSINZ 5412 11721 7340 FPUT FSINZZ 5413 11722 3346 FMUL FSINC3 5414 11723 1351 FADD FSINC4 5415 11724 3340 FMUL FSINZZ 5416 11725 1354 FADD FSINC5 5417 11726 3340 FMUL FSINZZ 5418 11727 1357 FADD FSINC6 5419 11730 3340 FMUL FSINZZ 5420 11731 1362 FADD FSINC7 5421 11732 3335 FMUL FSINZ 5422 11733 0000 FEXT 5423 11734 5430 OPOPJ 5424 5425 11735 0000 FSINZ, 0;0;0 11736 0000 11737 0000 5426 11740 0000 FSINZZ, 0;0;0 11741 0000 11742 0000 5427 11743 2036 FSINC1, 2036;2207;7325 11744 2207 11745 7325 5428 11746 1644 FSINC3, 1644;7553;6722 11747 7553 11750 6722 5429 11751 5714 FSINC4, 5714;6223;1423 11752 6223 11753 1423 5430 11754 1755 FSINC5, 1755;632;1276 11755 0632 11756 1276 5431 11757 6005 FSINC6, 6005;1256;7406 11760 1256 11761 7406 5432 11762 2016 FSINC7, 2016;2207;7325 11763 2207 11764 7325 5433 5434 11765 7600 KK7600, 7600 5435 11766 7770 KKM10, -10 5436 11767 1540 POTEMP, OTEMP 5437 11770 1535 PFATNC, FATNC 5438 11771 2014 OFLTONE, 2014 5439 11772 0000 OFLZERO, 0 5440 11773 0000 0 5441 11774 0000 0 5442 11775 0175 ALT, 175 5443 11776 0176 176 5444 11777 0033 33 5445 5446 12000 4407 OFEXP, FINT 5447 12001 4257 FDIV FEXPC1 5448 12002 7777 FPUT I (FEXPU 5449 12003 0000 FEXT 5450 12004 4431 OPUSHJ 5451 12005 5460 INT 5452 12006 7330 L4000 5453 12007 1043 TAD ACSIGN 5454 12010 3043 DCA ACSIGN 5455 12011 4407 FINT 5456 12012 7254 FPUT FEXPI 5457 12013 1777 FADD I (FEXPU 5458 12014 7776 FPUT I (FEXPF 5459 12015 3776 FMUL I (FEXPF 5460 12016 1262 FADD FEXPC2 5461 12017 7777 FPUT I (FEXPU 5462 12020 0254 FGET FEXPI 5463 12021 0000 FEXT 5464 12022 4775 JMS I (FIX2 5465 12023 7041 CIA 5466 12024 7001 IAC 5467 12025 3254 DCA FEXPI 5468 12026 4407 FINT 5469 12027 0265 FGET FEXPC3 5470 12030 4777 FDIV I (FEXPU 5471 12031 1270 FADD FEXPC4 5472 12032 2776 FSUB I (FEXPF 5473 12033 7777 FPUT I (FEXPU 5474 12034 0776 FGET I (FEXPF 5475 12035 3776 FMUL I (FEXPF 5476 12036 3273 FMUL FEXPC5 5477 12037 1777 FADD I (FEXPU 5478 12040 7777 FPUT I (FEXPU 5479 12041 0776 FGET I (FEXPF 5480 12042 4777 FDIV I (FEXPU 5481 12043 1276 FADD FEXPC6 5482 12044 0000 FEXT 5483 12045 1045 TAD ACEXP 5484 12046 1254 TAD FEXPI 5485 12047 3045 DCA ACEXP 5486 12050 4407 FINT 5487 12051 6010 FNOR 5488 12052 0000 FEXT 5489 12053 5430 OPOPJ 5490 5491 12054 0000 FEXPI, 0;0;0 12055 0000 12056 0000 5492 FEXPU=FSINZ 5493 FEXPF=FSINZZ 5494 12057 2005 FEXPC1, 2005;4271;300 12060 4271 12061 0300 5495 12062 2075 FEXPC2, 2075;3552;7022 12063 3552 12064 7022 5496 12065 6124 FEXPC3, 6124;6477;715 12066 6477 12067 0715 5497 12070 2044 FEXPC4, 2044;7643;62 12071 7643 12072 0062 5498 12073 1744 FEXPC5, 1744;3372;3400 12074 3372 12075 3400 5499 12076 2004 FEXPC6, 2004;0;0 12077 0000 12100 0000 5500 12101 4767 OLOG, JMS I PHIGHWD 5501 12102 7750 SPA SNA CLA 5502 12103 4425 ERR010, OERROR 5503 12104 1045 TAD ACEXP 5504 12105 3354 DCA LOGEXP 5505 12106 1357 TAD L200 5506 12107 3045 DCA ACEXP 5507 12110 4407 FINT 5508 12111 7777 FPUT I (FEXPU 5509 12112 1337 FADD FLOGC1 5510 12113 7776 FPUT I (FEXPF 5511 12114 0777 FGET I (FEXPU 5512 12115 2337 FSUB FLOGC1 5513 12116 4776 FDIV I (FEXPF 5514 12117 7776 FPUT I (FEXPF 5515 12120 3776 FMUL I (FEXPF 5516 12121 3342 FMUL FLOGC2 5517 12122 1345 FADD FLOGC3 5518 12123 3776 FMUL I (FEXPF 5519 12124 3776 FMUL I (FEXPF 5520 12125 1350 FADD FLOGC4 5521 12126 3776 FMUL I (FEXPF 5522 12127 2276 FSUB FEXPC6 5523 12130 7776 FPUT I (FEXPF 5524 12131 0353 FGET LOGFWD 5525 12132 2356 FSUB LOGOKW 5526 12133 1776 FADD I (FEXPF 5527 12134 3257 FMUL FEXPC1 5528 12135 0000 FEXT 5529 12136 5430 OPOPJ 5530 5531 12137 2005 FLOGC1, 2005;5202;3632 12140 5202 12141 3632 5532 12142 2004 FLOGC2, 2004;6253;2521 12143 6253 12144 2521 5533 12145 2007 FLOGC3, 2007;5421;3604 12146 5421 12147 3604 5534 12150 2025 FLOGC4, 2025;6125;1007 12151 6125 12152 1007 5535 12153 2174 LOGFWD, 2174 5536 12154 0000 LOGEXP, 0 5537 12155 0000 0 5538 12156 2174 LOGOKW, 2174 5539 12157 0200 L200, 200 5540 12160 0000 0 5541 5542 12161 0000 FIX1, 0 /FIELD 0 'INTEGER' 5543 12162 4770 JMS I PFIX2 5544 12163 6203 CIF CDF 5545 12164 5761 JMP I FIX1 5546 5547 12165 2230 MODL1, MODF5-1 /CR 5548 12166 2220 MODF1+5 /BELL 5549 12167 0347 PHIGHWD,HIGHWD /RUBOUT 5550 12170 1544 PFIX2, FIX2 /_ 5551 12171 2222 MODF4-1 /CHAR 5552 5553 12175 1544 PAGE 12176 1740 12177 1735 5554 12200 0000 ATNSGN, 0 5555 5556 12201 1043 OATN, TAD ACSIGN 5557 12202 3200 DCA ATNSGN 5558 12203 3043 DCA ACSIGN 5559 12204 4407 FINT 5560 12205 7777 FPUT I (FATNT 5561 12206 7776 FPUT I (FATNAX 5562 12207 2275 FSUB FATNC1 5563 12210 6140 FSGT 5564 12211 5265 FJMP ATNBIG 5565 12212 2300 FSUB FATNC2 5566 12213 6140 FSGT 5567 12214 5220 FJMP ATNLOW 5568 12215 0775 FGET I (OFLTONE 5569 12216 4777 FDIV I (FATNT 5570 12217 7777 FPUT I (FATNT 5571 12220 0774 ATNLOW, FGET I (OFLZERO 5572 12221 7773 FPUT I (FATNC 5573 12222 0777 FGET I (FATNT 5574 12223 2303 FSUB FATNC3 5575 12224 6100 FSGE 5576 12225 5237 FJMP ATNNOT 5577 12226 0777 FGET I (FATNT 5578 12227 1306 FADD FATNC4 5579 12230 7777 FPUT I (FATNT 5580 12231 0272 FGET FATNCJ 5581 12232 4777 FDIV I (FATNT 5582 12233 1306 FADD FATNC4 5583 12234 7777 FPUT I (FATNT 5584 12235 0311 FGET FATNC5 5585 12236 7773 FPUT I (FATNC 5586 12237 0777 ATNNOT, FGET I (FATNT 5587 12240 3777 FMUL I (FATNT 5588 12241 7772 FPUT I (FATNTT 5589 12242 0314 FGET FATNC6 5590 12243 3772 FMUL I (FATNTT 5591 12244 1317 FADD FATNC7 5592 12245 3772 FMUL I (FATNTT 5593 12246 1322 FADD FATNC8 5594 12247 3772 FMUL I (FATNTT 5595 12250 1325 FADD FATNC9 5596 12251 3772 FMUL I (FATNTT 5597 12252 1775 FADD I (OFLTONE 5598 12253 3777 FMUL I (FATNT 5599 12254 1773 FADD I (FATNC 5600 12255 7777 FPUT I (FATNT 5601 12256 0776 FGET I (FATNAX 5602 12257 2775 FSUB I (OFLTONE 5603 12260 6140 FSGT 5604 12261 5265 FJMP ATNBIG 5605 12262 0771 FGET I (FSINC7 5606 12263 2777 FSUB I (FATNT 5607 12264 7777 FPUT I (FATNT 5608 12265 0777 ATNBIG, FGET I (FATNT 5609 12266 0000 FEXT 5610 12267 1200 TAD ATNSGN 5611 12270 3043 DCA ACSIGN 5612 12271 5430 OPOPJ 5613 5614 FATNAX=FSINZ 5615 FATNT=FSINZZ 5616 FATNTT=FEXPI 5617 12272 6034 FATNCJ, 6034;0;0 12273 0000 12274 0000 5618 12275 1634 FATNC1, 1634;0;0 12276 0000 12277 0000 5619 12300 2007 FATNC2, 2007;7776;0 12301 7776 12302 0000 5620 12303 1774 FATNC3, 1774;2230;2427 12304 2230 12305 2427 5621 12306 2016 FATNC4, 2016;7331;7272 12307 7331 12310 7272 5622 12311 2004 FATNC5, 2004;1405;2216 12312 1405 12313 2216 5623 12314 1756 FATNC6, 1756;462;4562 12315 0462 12316 4562 5624 12317 5764 FATNC7, 5764;4221;3403 12320 4221 12321 3403 5625 12322 1766 FATNC8, 1766;3141;6672 12323 3141 12324 6672 5626 12325 5775 FATNC9, 5775;2525;2377 12326 2525 12327 2377 5627 12330 0015 XCCR, 15 5628 12331 0007 7 5629 12332 0177 177 5630 12333 0137 137 5631 12334 0000 0 5632 12335 0014 14 5633 12336 0012 12 5634 5635 12337 1043 OINT, TAD ACSIGN 5636 12340 7700 SMA CLA 5637 12341 5360 JMP OFFIX 5638 12342 4407 FINT 5639 12343 7770 FPUT I (OTEMP 5640 12344 0000 FEXT 5641 12345 4431 OPUSHJ 5642 12346 5461 FFIX 5643 12347 4407 FINT 5644 12350 6770 FCMP I (OTEMP 5645 12351 6040 FSNE 5646 12352 5356 FJMP .+4 5647 12353 0770 FGET I (OTEMP 5648 12354 2775 FSUB I (OFLTONE 5649 12355 5357 FJMP .+2 5650 12356 0770 FGET I (OTEMP 5651 12357 0000 FEXT 5652 5653 12360 4767 OFFIX, JMS I (FIX2 5654 12361 4407 FINT 5655 12362 6010 FNOR 5656 12363 0000 FEXT 5657 12364 6203 OPOPJX, CIF CDF 5658 12365 5766 JMP I (XPOPJ 5659 5660 5661 12366 5703 PAGE 12367 1544 12370 1540 12371 1762 12372 2054 12373 1535 12374 1772 12375 1771 12376 1735 12377 1740 5662 12400 0002 IF4, 2 /< 5663 12401 0006 6 /> 5664 12402 0012 12 /= 5665 12403 0005 5 /<= 5666 12404 0011 11 />= 5667 12405 0004 4 /<> 5668 12406 4777 ORND, JMS I (AL1 /FLAC=FLAC*2 5669 12407 4776 JMS I (OADD /FLAC=FLAC+FLAC*2=FLAC*3 5670 12410 6201 CDF 5671 12411 1775 TAD I (FRNDX+2 /MULT BY 2^17 MOD 2^27 5672 12412 7106 CLL RTL 5673 12413 7006 RTL 5674 12414 7006 RTL 5675 12415 3774 DCA I (FRNDX 5676 12416 1774 TAD I (FRNDX 5677 12417 7010 RAR 5678 12420 1047 TAD AC2 5679 12421 0373 AND (7740 5680 12422 3772 DCA I (FRNDX+1 5681 12423 7004 RAL 5682 12424 1050 TAD AC1 5683 12425 1774 TAD I (FRNDX 5684 12426 3774 DCA I (FRNDX 5685 12427 1046 TAD AC3 5686 12430 3775 DCA I (FRNDX+2 5687 12431 1371 TAD (200 5688 12432 3045 DCA ACEXP 5689 12433 3043 DCA ACSIGN 5690 12434 1774 TAD I (FRNDX 5691 12435 0370 AND (7 5692 12436 3050 DCA AC1 5693 12437 1772 TAD I (FRNDX+1 5694 12440 3047 DCA AC2 5695 12441 5430 OPOPJ 5696 5697 12442 0000 OTESTX, 0 5698 12443 1242 TAD OTESTX 5699 12444 6203 CIF CDF 5700 12445 3767 DCA I (OTEST2 5701 12446 5766 JMP I (OTEST2+1 5702 5703 12447 0000 OPUSHX, 0 5704 12450 1647 TAD I OPUSHX 5705 12451 6203 CIF CDF 5706 12452 3765 DCA I (T3 5707 12453 1247 TAD OPUSHX 5708 12454 7001 IAC 5709 12455 5764 JMP I (OPUSJ1 5710 5711 12456 0000 OGETCX, 0 5712 12457 6203 CIF CDF 5713 12460 4763 JMS I (GETCX1 5714 12461 5656 JMP I OGETCX 5715 5716 12462 0000 OERRX, 0 5717 12463 7200 CLA 5718 12464 6203 CIF CDF 5719 12465 1262 TAD OERRX 5720 12466 3762 DCA I (XERROR 5721 12467 5761 JMP I (XERROR+1 5722 5723 12470 3626 XPAKL2, XPACK2-1 /CR 5724 12471 3627 XPACK3-1 /BELL 5725 12472 3636 XPACK7-1 /RUBOUT 5726 12473 3636 XPACK7-1 / 5727 12474 3625 XPACK5-1 /@ 5728 12475 3603 XXPAK-1 /SPACE (KLUDGE!!) 5729 5730 5731 5732 12476 2534 LIST15, 52^40+34 5733 12477 2502 LIST16 5734 12500 1436 -"S+337^100-"A+337 5735 12501 1132 -"V+337^100-"E+337 5736 5737 12502 2576 LIST16, 53^40+36 5738 12503 2507 LIST17 5739 12504 1221 -"U+337^100-"N+337 5740 12505 1436 -"S+337^100-"A+337 5741 12506 1132 -"V+337^100-"E+337 5742 5743 12507 2637 LIST17, 54^40+37 5744 12510 2515 LIST18 5745 12511 3436 -"C+337^100-"A+337 5746 12512 1336 -"T+337^100-"A+337 5747 12513 2320 -"L+337^100-"O+337 5748 12514 3000 -"G+337^100 5749 5750 12515 0375 LIST18, 7^40+35 5751 12516 2522 LIST19 5752 12517 3427 -"C+337^100-"H+337 5753 12520 3626 -"A+337^100-"I+337 5754 12521 2100 -"N+337^100 5755 5756 12522 0176 LIST19, 3^40+36 5757 12523 2527 LIST20 5758 12524 1536 -"R+337^100-"A+337 5759 12525 2133 -"N+337^100-"D+337 5760 12526 2022 -"O+337^100-"M+337 5761 5762 12527 0334 LIST20, 6^40+34 5763 12530 2533 LIST21 5764 12531 2017 -"O+337^100-"P+337 5765 12532 3221 -"E+337^100-"N+337 5766 5767 12533 0236 LIST21, 4^40+36 5768 12534 2540 LIST22 5769 12535 2012 -"O+337^100-"U+337 5770 12536 1317 -"T+337^100-"P+337 5771 12537 1213 -"U+337^100-"T+337 5772 5773 12540 0275 LIST22, 5^40+35 5774 12541 2545 LIST23 5775 12542 3423 -"C+337^100-"L+337 5776 12543 2014 -"O+337^100-"S+337 5777 12544 3200 -"E+337^100 5778 5779 12545 2676 LIST23, 55^40+36 5780 12546 3714 LIST24 5781 12547 1532 -"R+337^100-"E+337 5782 12550 2136 -"N+337^100-"A+337 5783 12551 2232 -"M+337^100-"E+337 5784 12552 0473 LIST71, 11^40+33 5785 12553 4730 LIST72 5786 12554 3221 337-"E^100-"N+337 5787 12555 3300 337-"D^100 5788 12556 2051 LIST13, 41^40+11 5789 12557 2476 LIST15 5790 12560 0000 -"_+337^100 5791 5792 5793 12561 3526 PAGE 12562 3525 12563 0560 12564 1566 12565 0115 12566 5652 12567 5651 12570 0007 12571 0200 12572 0107 12573 7740 12574 0106 12575 0110 12576 0434 12577 0647 5794 12600 0000 XDIRSCH, 0 5795 12601 7320 CLA STL /READ FIRST BLOCK 5796 12602 4434 GETCAT 5797 12603 1412 SCHLP, TAD I XR1 5798 12604 7650 SNA CLA 5799 12605 5244 JMP SKPMTF 5800 12606 7240 CLA CMA 5801 12607 1012 TAD XR1 5802 12610 3012 DCA XR1 5803 12611 7346 CLA CLL CMA RTL 5804 12612 3254 DCA XBUMPXR 5805 12613 1146 TAD [NAMEX-1 5806 12614 3014 DCA XR3 5807 12615 1414 SRCWDL, TAD I XR3 5808 12616 7041 CIA 5809 12617 1412 TAD I XR1 5810 12620 7640 SZA CLA 5811 12621 5241 JMP NXTFIL 5812 12622 2254 ISZ XBUMPXR 5813 12623 5215 JMP SRCWDL 5814 12624 4441 TADEXT 5815 12625 7041 CIA 5816 12626 1412 TAD I XR1 5817 12627 7640 SZA CLA 5818 12630 5241 JMP NXTFIL 5819 12631 4435 BUMPXR 5820 12632 1412 TAD I XR1 5821 12633 7450 SNA 5822 12634 5250 JMP SKPMTF+4 5823 12635 3061 DCA FILEN 5824 12636 2200 ISZ XDIRSCH 5825 12637 1062 TAD BLOCK 5826 12640 5600 JMP I XDIRSCH 5827 5828 12641 1254 NXTFIL, TAD XBUMPXR 5829 12642 7041 CIA 5830 12643 4435 BUMPXR 5831 12644 1412 SKPMTF, TAD I XR1 5832 12645 7041 CIA 5833 12646 1062 TAD BLOCK 5834 12647 3062 DCA BLOCK 5835 12650 2064 ISZ ENTRIES 5836 12651 5203 JMP SCHLP 5837 12652 4545 JMS I [CATNEX 5838 12653 5600 JMP I XDIRSCH 5839 5840 12654 0000 XBUMPXR, 0 5841 12655 1063 TAD WASTE 5842 12656 1012 TAD XR1 5843 12657 3012 DCA XR1 5844 12660 5654 JMP I XBUMPXR 5845 5846 12661 0000 XGETNAM, 0 5847 12662 3015 DCA NAMEX 5848 12663 3016 DCA NAMEX+1 5849 12664 3017 DCA NAMEX+2 5850 12665 3057 DCA TEMPX 5851 12666 7410 SKP 5852 5853 12667 4426 NLOOP, OGETC 5854 12670 6203 CIF CDF 5855 12671 4544 JMS I [TSTCH1 5856 12672 5316 JMP NDONE 5857 12673 1057 TAD TEMPX 5858 12674 1151 TAD [-6 5859 12675 7700 SMA CLA 5860 12676 5267 JMP NLOOP 5861 12677 1057 TAD TEMPX 5862 12700 7110 CLL RAR 5863 12701 1143 TAD [NAMEX 5864 12702 3063 DCA WASTE 5865 12703 4440 TADCHR 5866 12704 0142 AND [77 5867 12705 7430 SZL 5868 12706 5312 JMP .+4 5869 12707 7106 CLL RTL 5870 12710 7006 RTL 5871 12711 7006 RTL 5872 12712 1463 TAD I WASTE 5873 12713 3463 DCA I WASTE 5874 12714 2057 ISZ TEMPX 5875 12715 5267 JMP NLOOP 5876 5877 12716 4440 NDONE, TADCHR 5878 12717 1141 TAD [-15 5879 12720 7640 SZA CLA 5880 12721 5033 ERROX 5881 12722 1057 TAD TEMPX 5882 12723 7650 SNA CLA 5883 12724 5033 ERROX 5884 12725 6203 CIF CDF 5885 12726 5661 JMP I XGETNAM 5886 5887 12727 0000 XTADCH, 0 5888 12730 6201 CDF 5889 12731 1540 TAD I [CHAR 5890 12732 6211 CDF SWAP 5891 12733 5727 JMP I XTADCH 5892 5893 12734 7677 QLIS2, QCOMCK-1 /, 5894 12735 7652 QNEXTC-1 /' 5895 12736 7667 QUOCHK-1 /" 5896 12737 7703 QDONE-1 /CR 5897 12740 7652 QLIS1, QNEXTC-1 /\ , 5898 12741 7652 QNEXTC-1 /' 5899 12742 7652 QNEXTC-1 /" 5900 12743 7703 QDONE-1 /CR 5901 12744 7652 QNEXTC-1 /\ 5902 5903 12745 2777 LIST25, 57^40+37 5904 12746 2753 LIST26 5905 12747 3126 -"F+337^100-"I+337 5906 12750 2332 -"L+337^100-"E+337 5907 12751 2320 -"L+337^100-"O+337 5908 12752 3000 -"G+337^100 5909 5910 12753 3034 LIST26, 60^40+34 5911 12754 4703 LIST14 5912 12755 3427 -"C+337^100-"H+337 5913 12756 1573 -"R+337^100-"$+337 5914 5915 12757 0000 CAT0, 0000 5916 12760 7320 CLA STL /GET FIRST BLOCK GETCAT 5917 12761 4434 GETCAT 5918 12762 6203 CIF CDF 5919 12763 5757 JMP I CAT0 5920 5921 12764 0000 XCALL, 0000 /OVERLAY CALLING PROGRAM 5922 12765 1764 TAD I XCALL /BLOCK NUMBER TO READ 5923 12766 2364 ISZ XCALL 5924 12767 3376 DCA XCALLB 5925 12770 1764 TAD I XCALL /LINK ADDRESS 5926 12771 3364 DCA XCALL 5927 12772 7301 L0001 5928 12773 4432 DECTAPE 5929 12774 3200 XENTER+1 /USE ENTER AS OVERLAY AREA 5930 12775 7610 7610 /READ 200 WORDS INTO FIELD 1 5931 12776 0000 XCALLB, 0000 5932 12777 5764 JMP I XCALL 5933 5934 PAGE 5935 5936 5937 13000 0000 DTAPE, 0 /ENTER WITH AC=1 FOR READ 5938 13001 6002 IOF /NO INT PLEASE 5939 13002 1112 TAD DDR128 5940 13003 3315 DCA DRET /READ/WRITE RETURN AFTER SEARCH 5941 13004 1375 TAD ENTERF /SAVE CALLING FIELD 5942 13005 6214 RDF 5943 13006 3253 DCA DXIT+1 5944 5945 13007 7240 DGR, CLA CMA 5946 13010 1600 TAD I DTAPE 5947 13011 2200 ISZ DTAPE 5948 13012 3314 DCA DCORE /FIRST CORE LOCATION-1 OF TRANSFER 5949 13013 1600 TAD I DTAPE 5950 13014 0074 AND Z70 5951 13015 3316 DCA DTFLD /SAVE FIELD TO BE READ INTO 5952 13016 1600 TAD I DTAPE 5953 13017 0342 AND D7600 /GET LENGTH IN PAGES 5954 13020 2200 ISZ DTAPE 5955 13021 3312 DCA DWDS / -NUMBER OF WORDS TO BE TRANSFERRED 5956 13022 1600 TAD I DTAPE /GET BLOCK NO. 5957 13023 2200 ISZ DTAPE 5958 13024 3251 DCA DTEM /AND STORE 5959 13025 1107 TAD DTSF1 5960 13026 3002 DCA DTINTR+2 /PUT DTSF IN SKIP CHAIN 5961 5962 /INITIATE SEARCH 5963 5964 13027 1113 DTS1, TAD DDTBLK /DTBLOK TO 7755 (CA) 5965 13030 6201 CDF 5966 13031 3710 DCA I DCAA 5967 13032 1114 TAD DDINT /DINT-1 5968 13033 3067 DCA MCOM /INTERRUPT RETURN 5969 13034 4441 TADEXT /SEE IF .DX OR .EX 5970 13035 0075 AND Z100 5971 13036 7640 SZA CLA 5972 13037 5244 JMP UNIT0 /MUST BE .EX 5973 13040 1105 TAD PXCALLB /AND EXCEPT FOR CALL 5974 13041 1200 TAD DTAPE 5975 13042 7640 SZA CLA 5976 13043 1076 UNIT1, TAD Z1000 /USE UNIT1 5977 13044 1115 UNIT0, TAD D614 /SET TO SEARCH,NORMAL,REVERSE 5978 13045 6766 DTLA /LOAD STATUS A 5979 13046 1073 TAD Z10 /DTBLOCK IS IN FIELD 1 5980 13047 6774 DTLB 5981 13050 5717 JMP I DDTDIS /PUT HIM TO SLEEP FOR A WHILE 5982 5983 13051 0000 DTEM, 0 5984 5985 /CHECK THE LIST OF ERRORS CAREFULLY SO THIS DOESN'T CONFLICT 5986 /WITH ERRORS IN FIELD 0. 5987 13052 3002 DXIT, DCA DTINTR+2 /ZAP DTSF IN SKIP CHAIN 5988 13053 7402 HLT /RETURN TO PROPER FIELD 5989 13054 5600 JMP I DTAPE 5990 5991 13055 1116 DR128, TAD D20 /WRITE (NOT READ),(40-20) 5992 13056 1150 TAD [30 /READ NORMAL, CANCEL SEARCH (20+10) 5993 13057 6764 DTXA /SET FUNCTION 5994 13060 1314 TAD DCORE /1ST CORE LOC.-1 OF TRANSFER 5995 13061 6201 CDF 5996 13062 3710 DCA I DCAA /TO 7755(CA) 5997 13063 1316 TAD DTFLD /FIELD OF BUFFER 5998 13064 6774 DTLB /TO DECTAPE REGISTER B 5999 13065 2067 ISZ MCOM /POINT INTERRUPT RETURN TO DATA 6000 13066 1342 DGO, TAD D7600 /SET WORD COUNT FOR 1 PAGE 6001 13067 6201 CDF 6002 13070 3711 DCA I DWC /-128 TO 7754 (WC) 6003 13071 6764 DR127, DTXA /IN CASE WE MISSED IT BEFORE 6004 13072 5020 JMP DIS /EXIT 6005 13073 5322 JMP DTS3A 6006 13074 6772 DINT, DTRB /READ STATUS B 6007 13075 7710 SPA CLA 6008 13076 5363 JMP DER1 /ERROR FLAG 6009 13077 7300 CLA CLL 6010 13100 1312 TAD DWDS /BUMP COUNT AND CHECK FOR MORE 6011 13101 1007 TAD Z200 /LOCATION 7 HAS LITTERAL 200, 128 WORD PAGE 6012 13102 3312 DCA DWDS /SAVE FOR NEXT TIME 6013 13103 7420 SNL 6014 13104 5266 JMP DGO /GET NEXT PAGE 6015 13105 1177 TAD [600 /COMPLEMENT MOTION AND DIRECTION 6016 13106 6764 DTXA 6017 13107 5720 JMP I DDTEND /WAKE HIM UP 6018 6019 13110 7755 DCAA, 7755 /POINTER TO CURRENT ADDRESS 6020 13111 7754 DWC, 7754 /POINTER TO WORD COUNT 6021 13112 0000 DWDS, 0 / -WORDS TO TRANSFER 6022 13113 0000 DTBLOK, 0 /BLOCK NUMBER DEPOSITED HERE BY CONTROL 6023 13114 0000 DCORE, 0 /STARTING ADDRESS-1 6024 13115 0000 DRET, 0 /DR128 IF WRITE, OR DR128+1 IF READ 6025 13116 0000 DTFLD, 0 6026 13117 4744 DDTDIS, DTDIS 6027 13120 4755 DDTEND, DTEND 6028 13121 0774 D774, 774 /ZERO ALL OF DECTAPE REGISTER A EXCEPT THE UNIT 6029 6030 13122 6201 DTS3A, CDF 6031 13123 1510 TAD I DTLOOK 6032 13124 6211 CDF SWAP 6033 13125 0073 AND Z10 /LOOK AT ERROR FLAG 6034 13126 7640 SZA CLA 6035 13127 5365 JMP DTKILL /CTRL-C OR OTHER ERROR STOPS SERCH 6036 13130 6772 DTRB /READ STATUS B 6037 13131 7006 RTL /LOOK AT BIT 2 6038 13132 7710 SPA CLA /END ZONE? 6039 13133 5361 JMP DTURNX /YES (MOTION BIT=0), TURN 6040 13134 6772 DTRB 6041 13135 7710 SPA CLA 6042 13136 5363 JMP DER1 /ERROR FLAG BIT 0=1 6043 13137 6761 DTRA 6044 13140 7006 RTL 6045 13141 7006 RTL /FOR-REV STATUS (BIT 3) IN LINK 6046 13142 7600 D7600, 7600 /GROUP 2 CLA 6047 13143 1313 TAD DTBLOK 6048 13144 7041 CIA 6049 13145 1251 TAD DTEM /LINK COMP. IF REQUIRED BLK NO. 6050 13146 7450 SNA /IS BIGGER I.E. MUST GO FORWARD 6051 13147 5356 JMP DTFIND /FOUND BLOCK CHECK DIRECTION 6052 13150 7041 CIA 6053 13151 7420 SNL 6054 13152 7001 IAC /GO 2 MORE BLOCKS BEFORE TURNING 6055 13153 7620 SNL CLA 6056 13154 1165 DTURN, TAD [400 /TURN IF HERE 6057 13155 5271 JMP DR127 /XOR TO A STATUS AND DISMIS 6058 6059 13156 7620 DTFIND, SNL CLA /TEST DIRECTION 6060 13157 5271 JMP DR127 /DON'T TURN YET, STILL IN REVERSE 6061 13160 5715 JMP I DRET /GO DO READ OR WRITE 6062 6063 13161 1177 DTURNX, TAD [600 /REVERSE OUT OF END ZONE 6064 13162 5271 JMP DR127 6065 13163 1106 DER1, TAD ZOERROR /AC IS CLEAR WHEN WE GET HERE 6066 13164 3253 DCA DXIT+1 6067 13165 3002 DTKILL, DCA DTINTR+2 /REMOVE DTSF FROM SKIP CHAIN 6068 13166 6761 DTRA /GET REGISTER A 6069 13167 0321 AND D774 /GET HIS MOTION AND INTERRUPT ENABLE BITS 6070 13170 6764 DTXA /ZERO THEM BY DOING AN XOR 6071 13171 5720 JMP I DDTEND /HE WAKES UP WITH A CTRL-C 6072 PAGE 6073 *.-3 /BUMP BACK TO 3 LOCATIONS BEFORE PAGE BOUNDRY 6074 13175 6203 ENTERF, CDF CIF 0 6075 13176 5777 JMP I XENTER 6076 13177 0000 XENTER, 0 /OS/8 DIRECTORY 'ENTER' 6077 13200 3060 DCA TEMPX1 /BLOCKS NEEDED 6078 13201 4436 DIRSCH /SEARCH DIRECTORY FOR DUPLICATE FILE. 6079 13202 5227 JMP NODLET /NO FILE TO DELETE 6080 13203 7344 L7776 /FOUND A FILE SO DELETE IT 6081 13204 1012 TAD XR1 6082 13205 3012 DCA XR1 /RESTORE XR1 TO SIZE-2 6083 13206 1012 TAD XR1 6084 13207 3014 DCA XR3 6085 13210 3414 DCA I XR3 /MAKE THIS AN EMPTY ENTRY 6086 13211 7346 L7775 6087 13212 1537 TAD I [DIRBUF+4 /SQUISH OUT NAME.EX+WASTE 6088 13213 4465 JMS I PSQUISH /LEAVING THE EMPTY OF COURSE 6089 13214 4437 CONSOL, SETPT /NOW CLEAN UP THAT MESSY DIRECTORY 6090 13215 1412 TAD I XR1 6091 13216 7650 SNA CLA 6092 13217 5355 JMP CONMTF /ITS AN EMPTY 6093 13220 1136 TAD [4 /ITS NOT. SO IGNORE IT 6094 13221 4435 BUMPXR 6095 13222 2064 ISZ ENTRIES /DONE? 6096 13223 5215 JMP CONSOL+1 /NOPE 6097 13224 7300 EOCLOS, CLA CLL /WRITE (L=0) OUT DIRECTORY 6098 13225 1535 TAD I [CATBLK /USE THE BLOCK WE READ IN 6099 13226 4434 GETCAT /ACTUALLY PUT CAT 6100 13227 1060 NODLET, TAD TEMPX1 6101 13230 7650 SNA CLA 6102 13231 5254 JMP ENTXIT /ALL DONE EXIT 6103 13232 3066 DCA FOUND /CLEAR FOUND FOR SEARCH 6104 13233 7120 STL 6105 13234 4434 GETCAT /READ IN FIRST BLOCK 6106 13235 1412 MLOOP, TAD I XR1 6107 13236 7650 SNA CLA 6108 13237 5261 JMP MEMPTY 6109 13240 1136 TAD [4 6110 13241 4435 BUMPXR 6111 13242 2064 MLOOPC, ISZ ENTRIES 6112 13243 5235 JMP MLOOP 6113 13244 7200 CLA /AC IS NOT 0 AFTER SZL IN MEMPTY 6114 13245 1066 TAD FOUND 6115 13246 7640 SZA CLA 6116 13247 5300 JMP MLOOPF 6117 13250 3066 FLOOPF, DCA FOUND 6118 13251 4545 JMS I [CATNEX /IF ANOTHER CAT BLOCK EXISTS RETURNS TO LAST GETCAT+1 6119 13252 5653 JMP I .+1 /NO ROOM 6120 13253 0070 PPLINK /TRY TO LINK DIRECTORIES 6121 13254 2534 ENTXIT, ISZ I [XENTER /OK EXIT CALL + 1 6122 13255 4436 DIRSCH /SEARCH DIRECTORY FOR ENTRY 6123 13256 7000 NOP /IF SOMEONE OPENS A FILE WITH 0 LENGTH IT WILL COME HERE. 6124 13257 5660 JMP I .+1 6125 13260 3175 ENTERF 6126 13261 1066 MEMPTY, TAD FOUND /SEE IF WE WERE ALREADY HERE 6127 13262 7650 SNA CLA 6128 13263 5266 JMP .+3 6129 13264 2012 ISZ XR1 6130 13265 5242 JMP MLOOPC 6131 13266 7100 CLL /MAKE SURE LINK IS 0 6132 13267 1412 TAD I XR1 /-SIZE OF EMPTY 6133 13270 1060 TAD TEMPX1 /SIZE WE WANT. LINK SHOULD HAVE BEEN 0 AT MEMPTY 6134 13271 7430 SZL 6135 13272 5242 JMP MLOOPC /NOT BIG ENOUGH 6136 13273 3006 DCA XENTMP /SAVE SIZE OF NEW EMPTY IF ANY 6137 13274 7344 L7776 6138 13275 1012 TAD XR1 6139 13276 3066 DCA FOUND /AND WHERE IN THE BLOCK WE CAME FROM 6140 13277 5242 JMP MLOOPC /CONTINUE TO END OF BLOCK 6141 13300 1012 MLOOPF, TAD XR1 6142 13301 3057 DCA TEMPX 6143 13302 1136 TAD [4 6144 13303 4435 BUMPXR 6145 13304 1012 TAD XR1 6146 13305 1133 TAD [-DIRBUF-370 6147 13306 7700 SMA CLA 6148 13307 5250 JMP FLOOPF 6149 13310 1457 MLOOP3, TAD I TEMPX /BUMP UP CATALOG TO MAKE ROOM 6150 13311 3412 DCA I XR1 6151 13312 7344 CLA CLL CMA RAL 6152 13313 1012 TAD XR1 6153 13314 3012 DCA XR1 6154 13315 7240 CLA CMA 6155 13316 1057 TAD TEMPX 6156 13317 3057 DCA TEMPX 6157 13320 1057 TAD TEMPX 6158 13321 7161 CLL CML CIA 6159 13322 1066 TAD FOUND 6160 13323 7670 SZL SNA CLA 6161 13324 5310 JMP MLOOP3 6162 13325 1066 TAD FOUND 6163 13326 3012 DCA XR1 6164 13327 1015 TAD NAMEX 6165 13330 3412 DCA I XR1 6166 13331 1016 TAD NAMEX+1 6167 13332 3412 DCA I XR1 6168 13333 1017 TAD NAMEX+2 6169 13334 3412 DCA I XR1 6170 13335 4441 TADEXT /".EX" EXTENSION 6171 13336 3412 DCA I XR1 6172 13337 3412 DCA I XR1 6173 13340 7240 CLA CMA 6174 13341 4435 BUMPXR 6175 13342 1060 TAD TEMPX1 6176 13343 7041 CIA 6177 13344 3412 DCA I XR1 /PROPER LENGTH 6178 13345 3412 DCA I XR1 /MAKE AN EMPTY 6179 13346 1006 TAD XENTMP 6180 13347 3412 DCA I XR1 /OF NEW LENGTH 6181 13350 7240 CLA CMA 6182 13351 1503 TAD I ZDIRBUF /# OF ENTRIES 6183 13352 3503 DCA I ZDIRBUF 6184 13353 3060 DCA TEMPX1 /SET UP FOR NODLET 6185 13354 5224 JMP EOCLOS 6186 13355 1412 CONMTF, TAD I XR1 6187 13356 7450 SNA 6188 13357 5374 JMP SQTRIV 6189 13360 3057 DCA TEMPX 6190 13361 1012 TAD XR1 6191 13362 3066 DCA FOUND 6192 13363 2064 ISZ ENTRIES 6193 13364 7410 SKP 6194 13365 5224 JMP EOCLOS 6195 13366 1412 TAD I XR1 6196 13367 7640 SZA CLA 6197 13370 5220 JMP CONSOL+4 /NOT A DOUBLE EMPTY 6198 13371 1412 TAD I XR1 6199 13372 1057 TAD TEMPX 6200 13373 3466 DCA I FOUND /MAKE 1 EMPTY OUT OF 2 6201 13374 7344 SQTRIV, L7776 /REMOVE AN EMPTY 6202 13375 4465 JMS I PSQUISH 6203 13376 2503 ISZ I ZDIRBUF /RESET NUMBER OF ENTRIES 6204 13377 5214 JMP CONSOL 6205 6206 6207 6208 6209 6210 13400 1073 LIST77, 21^40+33 6211 13401 3404 LIST78 6212 13402 3332 -"D+337^100-"E+337 6213 13403 3100 -"F+337^100 6214 6215 13404 1133 LIST78, 22^40+33 6216 13405 4047 LIST79 6217 13406 3326 -"D+337^100-"I+337 6218 13407 2200 -"M+337^100 6219 6220 13410 1222 LIST82, 24^40+22 6221 13411 4064 LIST83 6222 13412 2631 337-"I^100-"F+337 6223 6224 13413 1111 LIST12, 22^40+11 6225 13414 2556 LIST13 6226 13415 7000 -"'+337^100 6227 6228 13416 0000 XSETPT, 0 6229 13417 1503 TAD I ZDIRBUF 6230 13420 3064 DCA ENTRIES 6231 13421 1532 TAD I [DIRBUF+1 6232 13422 3062 DCA BLOCK 6233 13423 1537 TAD I [DIRBUF+4 6234 13424 7141 CIA CLL /MAKE SURE L=0 FOR MEMPTY 6235 13425 3063 DCA WASTE 6236 13426 1137 TAD [DIRBUF+4 6237 13427 3012 DCA XR1 6238 13430 5616 JMP I XSETPT 6239 6240 13431 0000 CATNEX, 0000 6241 13432 1531 TAD I [DIRBUF+2 /SEE IF IT LINKS 6242 13433 7104 CLL RAL /MULTIPLY BY TWO 6243 13434 7120 STL /SET LINK FOR READ 6244 13435 7450 SNA 6245 13436 5631 JMP I CATNEX /NO LINKAGE RETURN 6246 13437 7410 SKP /ENTER GETCAT+1 IF LINKAGE EXISTS 6247 13440 0000 XGETCAT, 0 6248 13441 7450 SNA /SEE IF ENTERED WITH SEGMENT NUMBER 6249 13442 1130 TAD [2 /ASSUME FIRST CAT BLOCK. DON'T L0002! 6250 13443 3250 DCA CATBLK /BLOCK NUMBER TO FETCH 6251 13444 7004 RAL /READ OR WRITE WAS IN LINK 6252 13445 4432 DECTAPE 6253 13446 4207 DIRBUF 6254 13447 7410 7410 /400 WORDS IN FIELD 1 6255 13450 0002 CATBLK, 2 6256 13451 4437 SETPT 6257 13452 5640 JMP I XGETCAT 6258 6259 6260 13453 0000 SQUISH, 0 6261 13454 1012 TAD XR1 6262 13455 3013 DCA XR2 6263 13456 1412 TAD I XR1 6264 13457 3413 DCA I XR2 6265 13460 1012 TAD XR1 6266 13461 1127 TAD [-DIRBUF-377 6267 13462 7640 SZA CLA 6268 13463 5256 JMP .-5 6269 13464 5653 JMP I SQUISH 6270 6271 6272 6273 13465 0000 CAT1, 0 6274 13466 1412 TAD I XR1 6275 13467 7450 SNA 6276 13470 5321 JMP DEMPTY 6277 13471 3015 DCA NAMEX 6278 13472 1412 TAD I XR1 6279 13473 3016 DCA NAMEX+1 6280 13474 1412 TAD I XR1 6281 13475 3017 DCA NAMEX+2 6282 13476 4441 TADEXT 6283 13477 7041 CIA 6284 13500 1412 TAD I XR1 6285 13501 7640 SZA CLA /DON'T FORGET TO CLEAR AC!!! 6286 13502 5320 JMP DEMPTY-1 6287 6288 13503 4435 BUMPXR 6289 13504 1412 TAD I XR1 6290 13505 7650 SNA CLA 6291 13506 5322 JMP DEMPTY+1 6292 13507 1015 TAD NAMEX 6293 13510 4335 JMS TWOPRT 6294 13511 1016 TAD NAMEX+1 6295 13512 4335 JMS TWOPRT 6296 13513 1017 TAD NAMEX+2 6297 13514 4335 JMS TWOPRT 6298 13515 1143 TAD [15 6299 13516 4424 OPRINTC 6300 13517 5322 JMP DEMPTY+1 6301 6302 13520 4435 BUMPXR 6303 13521 2012 DEMPTY, ISZ XR1 6304 13522 2064 ISZ ENTRIES 6305 13523 5326 JMP .+3 6306 13524 4545 JMS I [CATNEX 6307 13525 2265 ISZ CAT1 6308 13526 6203 CIF CDF 6309 13527 5665 JMP I CAT1 6310 6311 13530 0000 FLOOK, 0 /GET CATALOG AND LOOKUP 6312 13531 4436 DIRSCH 6313 13532 5033 ERROX 6314 13533 6203 CIF CDF 6315 13534 5730 JMP I FLOOK /THAT WAS EASY 6316 6317 13535 0000 TWOPRT, 0 6318 13536 3015 DCA NAMEX 6319 13537 1015 TAD NAMEX 6320 13540 7112 CLL RTR 6321 13541 7012 RTR 6322 13542 7012 RTR 6323 13543 4347 JMS ONEPRT 6324 13544 1015 TAD NAMEX 6325 13545 4347 JMS ONEPRT 6326 13546 5735 JMP I TWOPRT 6327 6328 13547 0000 ONEPRT, 0 6329 13550 0142 AND [77 6330 13551 7450 SNA 6331 13552 5735 JMP I TWOPRT 6332 13553 1126 TAD [-40 6333 13554 7510 SPA 6334 13555 1075 TAD Z100 6335 13556 1147 TAD [40 6336 13557 4424 OPRINTC 6337 13560 5747 JMP I ONEPRT 6338 6339 6340 13561 0000 DTCHKX, 0 /CHECK IF USER ALREADY HAS TAPE 6341 13562 6002 IOF 6342 13563 1525 TAD I [DECK 6343 13564 7001 IAC 6344 13565 3014 DCA XR3 6345 13566 1502 TAD I ZDTQ1 6346 13567 3051 DCA OP3 6347 13570 1451 TAD I OP3 6348 13571 7041 CIA 6349 13572 1014 TAD XR3 6350 13573 6202 CIF 6351 13574 7650 SNA CLA 6352 13575 5524 JMP I [XDTG1 6353 13576 1014 TAD XR3 6354 13577 5761 JMP I DTCHKX 6355 6356 6357 PAGE 6358 13600 0316 FUNL1, 316 /FN 6359 13601 1151 1151 /SI 6360 13602 0157 157 /CO 6361 13603 0064 64 /AT 6362 13604 0270 270 /EX 6363 13605 0617 617 /LO 6364 13606 0042 42 /AB 6365 13607 1161 1161 /SQ 6366 13610 1147 1147 /SG 6367 13611 0456 456 /IN 6368 13612 1116 1116 /RN 6369 13613 0311 311 /FI 6370 13614 1201 1201 /TA 6371 13615 0651 651 /MI 6372 13616 0141 141 /CA 6373 13617 0657 657 /MO 6374 13620 0605 605 /LE 6375 6376 13621 7662 FUNL2, -"N+200 /SIN 6377 13622 7655 -"S+200 /COS 6378 13623 7662 -"N+200 /ATN 6379 13624 7660 -"P+200 /EXP 6380 13625 7671 -"G+200 /LOG 6381 13626 7655 -"S+200 /ABS 6382 13627 7656 -"R+200 /SQR 6383 13630 7662 -"N+200 /SGN 6384 13631 7654 -"T+200 /INT 6385 13632 7674 -"D+200 /RND 6386 13633 7650 -"X+200 /FIX 6387 13634 7662 -"N+200 /TAN 6388 13635 7674 -"D+200 /MID 6389 13636 7654 -"T+200 /CAT 6390 13637 7674 -"D+200 /MOD 6391 13640 7662 -"N+200 /LEN 6392 6393 13641 0040 TERMS, 40 /SPACE 0 6394 13642 0053 53 /+ 1 6395 13643 0055 55 /- 2 6396 13644 0052 52 /* 3 6397 13645 0057 57 // 4 6398 13646 0136 136 /^ 5 6399 13647 0050 50 /( 6 6400 13650 0133 133 /[ 7 6401 13651 0051 51 /) 10 6402 13652 0135 135 /] 11 6403 13653 0074 74 /< 1 6404 13654 0076 76 /> 13 6405 13655 0075 75 /= 14 6406 13656 5465 FUNL3, FSIN 6407 13657 5464 COS 6408 13660 5470 ATN 6409 13661 5466 FEXP 6410 13662 5467 LOG 6411 13663 1572 ABS 6412 13664 5462 SQR 6413 13665 5007 SGN 6414 13666 5460 INT 6415 13667 5454 RND 6416 13670 5461 FFIX 6417 13671 5463 TAN 6418 13672 6200 MID 6419 13673 6317 CAT 6420 13674 1300 MOD 6421 13675 6447 LEN 6422 6423 13676 3177 PRNTL6, PRINT8-1 /; 6424 13677 3315 PRINT5-4 /, 6425 13700 5545 PRINT6-4 /' 6426 13701 3200 PRINT8 /" 6427 13702 5545 PRINT6-4 /CR 6428 13703 5545 PRINT6-4 /\ 6429 6430 13704 3315 PRNTL2, PRINT5-4 /, 6431 13705 5550 PRINT6-1 /' 6432 13706 7530 PRINT2-1 /" 6433 13707 5550 PRINT6-1 /CR 6434 13710 5550 PRINT6-1 /\ 6435 6436 13711 0762 PRNTL8, PRINT3-1 /" 6437 13712 5545 PRINT6-4 /CR 6438 13713 3302 PRINT9+4 /\ MUST BE PRINTABLE 6439 6440 6441 6442 13714 2734 LIST24, 56^40+34 6443 13715 2745 LIST25 6444 13716 2426 -"K+337^100-"I+337 6445 13717 2323 -"L+337^100-"L+337 6446 13720 1546 UNKWN+1 /ENTER NEW COMMAND HERE 6447 6448 13721 7405 RANDOM 6449 13722 1546 UNKWN+1 /OUTPUT FUDGE 6450 13723 7413 CLOSE0 6451 13724 7042 OPEN 6452 13725 6562 CHAIN 6453 13726 6047 LINPUT 6454 13727 0464 READY /END 6455 13730 4270 ON 6456 13731 0464 READY /STOP 6457 13732 7151 RESTOR 6458 13733 1074 READ 6459 13734 5700 RETURN 6460 13735 4200 GOSUB 6461 13736 1400 FOR 6462 13737 5703 XPOPJ /DEF 6463 13740 5703 XPOPJ /DIM AND REM 6464 13741 1256 GOTO 6465 13742 1176 IF 6466 13743 1110 INPUT 6467 13744 5504 PRINT0 6468 13745 5703 XPOPJ /DATA 6469 13746 1401 LET 6470 13747 2374 NEXT 6471 13750 1545 COMGOL, UNKWN 6472 6473 13751 1565 ERRLST, ERR000 6474 13752 2202 ERR001 6475 13753 4227 ERR002 6476 13754 5102 ERR003 6477 13755 0616 ERR004 6478 6479 13756 2103 ERR010 6480 13757 1606 ERR020 6481 13760 0663 ERR030 6482 13761 0355 ERR040 6483 13762 0644 ERR050 6484 13763 3625 ERR060 6485 13764 0711 ERR070 6486 13765 3440 ERR080 6487 13766 4475 ERR100 6488 13767 2757 ERR110 6489 13770 2660 ERR120 6490 13771 1031 ERR150 6491 13772 1142 ERR160 6492 13773 3051 ERR170 6493 13774 3074 ERR180 6494 13775 3132 ERR200 6495 13776 5116 ERR210 6496 13777 4401 ERR220 6497 14000 4456 ERR130 6498 14001 4546 ERR230 6499 14002 4672 ERR240 6500 14003 4700 ERR250 6501 14004 5675 ERR260 6502 14005 1260 ERR270 6503 14006 7152 ERR280 6504 14007 4202 ERR290 6505 14010 4300 ERR300 6506 14011 7066 ERR650 6507 14012 5702 ERR320 6508 14013 7163 ERR330 6509 14014 3226 ERR340 6510 14015 3315 ERR350 6511 14016 7225 ERR640 6512 14017 1146 ERR370 6513 14020 2532 ERR380 6514 14021 1207 ERR390 6515 14022 1236 ERR400 6516 14023 1410 ERR410 6517 14024 1430 ERR420 6518 14025 1533 ERR430 6519 14026 1457 ERR440 6520 14027 1525 ERR450 6521 14030 2400 ERR460 6522 14031 2407 ERR470 6523 14032 1033 ERR490 6524 14033 1071 ERR500 6525 14034 1103 ERR510 6526 14035 1564 ERR520 6527 14036 0033 ERR530 6528 14037 6055 ERR540 6529 14040 6206 ERR550 6530 14041 5355 ERR560 6531 14042 1150 ERR600 6532 14043 1171 ERR610 6533 14044 7050 ERR620 6534 14045 7104 ERR630 6535 14046 3053 PDXIT, DXIT+1 /DECTAPE ERROR 6536 ERREND=. 6537 6538 14047 1133 LIST79, 22^40+33 6539 14050 4053 LIST80 6540 14051 1532 -"R+337^100-"E+337 6541 14052 2200 -"M+337^100 6542 6543 14053 0436 LIST80, 10^40+36 6544 14054 4060 LIST81 6545 14055 2326 -"L+337^100-"I+337 6546 14056 2117 -"N+337^100-"P+337 6547 14057 1213 -"U+337^100-"T+337 6548 6549 14060 1174 LIST81, 23^40+34 6550 14061 3410 LIST82 6551 14062 3020 -"G+337^100-"O+337 6552 14063 1320 -"T+337^100-"O+337 6553 6554 14064 1275 LIST83, 25^40+35 6555 14065 4071 LIST84 6556 14066 2621 -"I+337^100-"N+337 6557 14067 1712 -"P+337^100-"U+337 6558 14070 1300 -"T+337^100 6559 6560 14071 1335 LIST84, 26^40+35 6561 14072 4076 LIST85 6562 14073 1715 -"P+337^100-"R+337 6563 14074 2621 -"I+337^100-"N+337 6564 14075 1300 -"T+337^100 6565 6566 14076 1374 LIST85, 27^40+34 6567 14077 4102 LIST86 6568 14100 3336 -"D+337^100-"A+337 6569 14101 1336 -"T+337^100-"A+337 6570 6571 14102 1433 LIST86, 30^40+33 6572 14103 4106 LIST87 6573 14104 2332 -"L+337^100-"E+337 6574 14105 1300 -"T+337^100 6575 6576 14106 1474 LIST87, 31^40+34 6577 14107 4112 LIST88 6578 14110 2132 -"N+337^100-"E+337 6579 14111 0713 -"X+337^100-"T+337 6580 6581 14112 1573 LIST88, 33^40+33 6582 14113 4116 LIST89 6583 14114 1336 -"T+337^100-"A+337 6584 14115 3500 -"B+337^100 6585 6586 14116 1634 LIST89, 34^40+34 6587 14117 4122 LIST90 6588 14120 1413 -"S+337^100-"T+337 6589 14121 3217 -"E+337^100-"P+337 6590 6591 14122 1674 LIST90, 35^40+34 6592 14123 4126 LIST91 6593 14124 1327 -"T+337^100-"H+337 6594 14125 3221 -"E+337^100-"N+337 6595 6596 14126 1722 LIST91, 36^40+22 6597 14127 4131 LIST92 6598 14130 1320 -"T+337^100-"O+337 6599 6600 14131 1762 LIST92, 37^40+22 6601 14132 4134 LIST93 6602 14133 3121 -"F+337^100-"N+337 6603 6604 14134 2034 LIST93, 40^40+34 6605 14135 4140 LIST94 6606 14136 2326 -"L+337^100-"I+337 6607 14137 1413 -"S+337^100-"T+337 6608 6609 14140 2133 LIST94, 42^40+33 6610 14141 4144 LIST95 6611 14142 3506 -"B+337^100-"Y+337 6612 14143 3200 -"E+337^100 6613 6614 14144 2433 LIST95, 50^40+33 6615 14145 4150 LIST96 6616 14146 2132 -"N+337^100-"E+337 6617 14147 1000 -"W+337^100 6618 6619 14150 2137 LIST96, 42^40+37 6620 14151 4156 LIST97 6621 14152 1434 -"S+337^100-"C+337 6622 14153 1536 -"R+337^100-"A+337 6623 14154 1334 -"T+337^100-"C+337 6624 14155 2700 -"H+337^100 6625 6626 14156 2176 LIST97, 43^40+36 6627 14157 4163 LIST98 6628 14160 3332 -"D+337^100-"E+337 6629 14161 2332 -"L+337^100-"E+337 6630 14162 1332 -"T+337^100-"E+337 6631 6632 14163 2234 LIST98, 44^40+34 6633 14164 4167 LIST99 6634 14165 3233 -"E+337^100-"D+337 6635 14166 2613 -"I+337^100-"T+337 6636 6637 14167 2273 LIST99, 45^40+33 6638 14170 4173 LIST10 6639 14171 2432 -"K+337^100-"E+337 6640 14172 0600 -"Y+337^100 6641 6642 14173 2334 LIST10, 46^40+34 6643 14174 4177 LIST11 6644 14175 1336 -"T+337^100-"A+337 6645 14176 1732 -"P+337^100-"E+337 6646 6647 14177 2373 LIST11, 47^40+33 6648 14200 3413 LIST12 6649 14201 1512 -"R+337^100-"U+337 6650 14202 2100 -"N+337^100 6651 6652 14203 1033 LIST76, 20^40+33 6653 14204 3400 LIST77 6654 14205 3120 -"F+337^100-"O+337 6655 14206 1500 -"R+337^100 6656 14207 0000 DIRBUF, ZBLOCK 400 14210 0000 14211 0000 14212 0000 14213 0000 14214 0000 14215 0000 14216 0000 14217 0000 14220 0000 14221 0000 14222 0000 14223 0000 14224 0000 14225 0000 14226 0000 14227 0000 14230 0000 14231 0000 14232 0000 14233 0000 14234 0000 14235 0000 14236 0000 14237 0000 14240 0000 14241 0000 14242 0000 14243 0000 14244 0000 14245 0000 14246 0000 14247 0000 14250 0000 14251 0000 14252 0000 14253 0000 14254 0000 14255 0000 14256 0000 14257 0000 14260 0000 14261 0000 14262 0000 14263 0000 14264 0000 14265 0000 14266 0000 14267 0000 14270 0000 14271 0000 14272 0000 14273 0000 14274 0000 14275 0000 14276 0000 14277 0000 14300 0000 14301 0000 14302 0000 14303 0000 14304 0000 14305 0000 14306 0000 14307 0000 14310 0000 14311 0000 14312 0000 14313 0000 14314 0000 14315 0000 14316 0000 14317 0000 14320 0000 14321 0000 14322 0000 14323 0000 14324 0000 14325 0000 14326 0000 14327 0000 14330 0000 14331 0000 14332 0000 14333 0000 14334 0000 14335 0000 14336 0000 14337 0000 14340 0000 14341 0000 14342 0000 14343 0000 14344 0000 14345 0000 14346 0000 14347 0000 14350 0000 14351 0000 14352 0000 14353 0000 14354 0000 14355 0000 14356 0000 14357 0000 14360 0000 14361 0000 14362 0000 14363 0000 14364 0000 14365 0000 14366 0000 14367 0000 14370 0000 14371 0000 14372 0000 14373 0000 14374 0000 14375 0000 14376 0000 14377 0000 14400 0000 14401 0000 14402 0000 14403 0000 14404 0000 14405 0000 14406 0000 14407 0000 14410 0000 14411 0000 14412 0000 14413 0000 14414 0000 14415 0000 14416 0000 14417 0000 14420 0000 14421 0000 14422 0000 14423 0000 14424 0000 14425 0000 14426 0000 14427 0000 14430 0000 14431 0000 14432 0000 14433 0000 14434 0000 14435 0000 14436 0000 14437 0000 14440 0000 14441 0000 14442 0000 14443 0000 14444 0000 14445 0000 14446 0000 14447 0000 14450 0000 14451 0000 14452 0000 14453 0000 14454 0000 14455 0000 14456 0000 14457 0000 14460 0000 14461 0000 14462 0000 14463 0000 14464 0000 14465 0000 14466 0000 14467 0000 14470 0000 14471 0000 14472 0000 14473 0000 14474 0000 14475 0000 14476 0000 14477 0000 14500 0000 14501 0000 14502 0000 14503 0000 14504 0000 14505 0000 14506 0000 14507 0000 14510 0000 14511 0000 14512 0000 14513 0000 14514 0000 14515 0000 14516 0000 14517 0000 14520 0000 14521 0000 14522 0000 14523 0000 14524 0000 14525 0000 14526 0000 14527 0000 14530 0000 14531 0000 14532 0000 14533 0000 14534 0000 14535 0000 14536 0000 14537 0000 14540 0000 14541 0000 14542 0000 14543 0000 14544 0000 14545 0000 14546 0000 14547 0000 14550 0000 14551 0000 14552 0000 14553 0000 14554 0000 14555 0000 14556 0000 14557 0000 14560 0000 14561 0000 14562 0000 14563 0000 14564 0000 14565 0000 14566 0000 14567 0000 14570 0000 14571 0000 14572 0000 14573 0000 14574 0000 14575 0000 14576 0000 14577 0000 14600 0000 14601 0000 14602 0000 14603 0000 14604 0000 14605 0000 14606 0000 6657 INTR80=.-1 /2 POWER FAIL/AUTO RECOVER TEMPS 6658 INTR8F=.-2 6659 14607 6007 INTRRV, CAF /RECOVER - CLEAR ALL 6660 / TLS /IF NOT DC02 - SEE BEG760 6661 / 0 /IF NOT 8-E - SEE BEG550 6662 14610 6203 AAACDF, CIF CDF 6663 14611 1642 INTRV2, TAD I PAUSER 6664 14612 6117 MTON 6665 / 0 /IF NOT DC02 - SEE BEG760 6666 14613 4641 JMS I PINTRP 6667 / MTLS /IF DC02 - SEE BEG760 6668 14614 7200 CLA 6669 14615 1244 TAD PINTR8 6670 14616 3530 DCA I [2 6671 14617 1205 TAD INTR8F 6672 14620 0176 AND [7 6673 14621 7106 CLL RTL 6674 14622 7004 RAL 6675 14623 1210 TAD AAACDF 6676 14624 3234 DCA INTR88 6677 14625 1205 TAD INTR8F 6678 14626 0074 AND Z70 6679 14627 1267 TAD CCIF 6680 14630 3235 DCA INTR89 6681 14631 1205 TAD INTR8F 6682 14632 7004 RAL 6683 14633 7200 CLA 6684 14634 6201 INTR88, CDF 6685 14635 6202 INTR89, CIF 6686 14636 1056 TAD INTAC1 /AND AC 6687 14637 6001 ION 6688 14640 5606 JMP I INTR80 /AND EXIT 6689 14641 5336 PINTRPL, INTRPL-1 6690 14642 5335 PAUSER, AUSER 6691 14643 6212 CCIF2, CIF SWAP 6692 14644 4173 PINTR8, INTR8E 6693 14645 4607 PINTRRV, INTRRV 6694 14646 3056 INTR81, DCA INTAC1 /SAVE AC 6695 14647 6634 6634 /READ CARD READER TO CLEAR FLAG 6696 14650 6674 6674 /AND CARD DONE FLAG 6697 14651 7200 CLA /AND CLEAR AC 6698 14652 6102 SPL /POWER FAIL INTERRUPT? 6699 14653 5266 JMP INTR82 /NO 6700 14654 7010 RAR 6701 14655 6234 RIB 6702 14656 3205 DCA INTR8F /AND FLAGS 6703 14657 1704 TAD I A0000 6704 14660 3206 DCA INTR80 /AND LOCATION 6705 14661 1243 TAD CCIF2 6706 14662 3704 DCA I A0000 /SET "CIF SWAP" 6707 14663 1245 TAD PINTRRV 6708 14664 3530 DCA I [2 /AND SET ADDRESS 6709 14665 7402 HLT 6710 6711 14666 1056 INTR82, TAD INTAC1 /GET THE AC AGAIN 6712 14667 6202 CCIF, CIF 6713 14670 5671 JMP I .+1 /GO TO THE REAL INTERRUPT ROUTINE 6714 14671 5200 INTRPT 6715 14672 0674 LIST73, 15^40+34 6716 14673 4676 LIST74 6717 14674 1532 -"R+337^100-"E+337 6718 14675 3633 -"A+337^100-"D+337 6719 6720 14676 0736 LIST74, 16^40+36 6721 14677 1572 LIST75 6722 14700 1532 -"R+337^100-"E+337 6723 14701 1312 -"T+337^100-"U+337 6724 14702 1521 -"R+337^100-"N+337 6725 6726 14703 2473 LIST14, 51^40+33 6727 14704 0000 A0000, 0 6728 14705 2023 -"O+337^100-"L+337 6729 14706 3300 -"D+337^100 6730 14707 2251 COMGO1, LIST 6731 14710 0467 START /CR 6732 14711 4226 BYE 6733 14712 2240 DELETE 6734 14713 2200 EDIT 6735 14714 5100 KKEY 6736 14715 5077 TAPE 6737 14716 2465 RUN 6738 14717 4213 NEW 6739 14720 3755 OLD 6740 14721 7435 SAVE 6741 14722 7473 UNSAVE 6742 14723 7513 CATLOG 6743 14724 4214 RENAME 6744 14725 7471 KILL 6745 14726 7511 DATLOG 6746 14727 1546 UNKWN+1 /CHR FUDGE!! 6747 6748 14730 0637 LIST72, 14^40+37 6749 14731 4672 LIST73 6750 14732 1532 -"R+337^100-"E+337 6751 14733 1413 -"S+337^100-"T+337 6752 14734 2015 -"O+337^100-"R+337 6753 14735 3200 -"E+337^100 6754 6755 14736 0000 XTADEX, 0 6756 14737 6201 CDF 6757 14740 1743 TAD I .+3 6758 14741 6211 CDF SWAP 6759 14742 5736 JMP I XTADEX 6760 14743 0066 EXTEN 6761 6762 6763 6764 14744 6203 DTDIS, CIF CDF 0 6765 14745 1500 TAD I ZLOOK /SET BUSY FLAG 6766 14746 3110 DCA DTLOOK 6767 14747 1510 TAD I DTLOOK /GET STATUS 6768 14750 0077 AND Z6777 /DO AN OR 6769 14751 1076 TAD Z1000 6770 14752 3510 DCA I DTLOOK 6771 14753 1104 TAD ZDXIT /FAKE RETURN ADDRESS 6772 14754 5501 JMP I ZRUN9X /AND DISMISS 6773 6774 6775 14755 6201 DTEND, CDF 6776 14756 1510 TAD I DTLOOK 6777 14757 0077 AND Z6777 /CLEAR BUSY 6778 14760 3510 DCA I DTLOOK 6779 14761 5020 JMP DIS /FINISH INTERRUPT 6780 6781 14762 3705 MSERROR, TEXT "_ERROR" 14763 2222 14764 1722 14765 0000 6782 14766 4440 MSDELETED, TEXT "$ DELETED_" 14767 0405 14770 1405 14771 2405 14772 0437 14773 0000 6783 14774 1601 MSNAME, TEXT "NAME--" 14775 1505 14776 5555 14777 0000 6784 6785 PAGE 6786 /ROUTINE TO PRINT EDU25'S MESSAGES 6787 15000 0000 READY2, 0 6788 15001 1234 TAD RDYK1 /COMPUTE ADDRESS OF MESSAGE 6789 15002 3051 DCA OP3 6790 15003 1451 TAD I OP3 6791 15004 3051 DCA OP3 6792 15005 1451 READY4, TAD I OP3 /GET CHARACTER 6793 15006 7012 RTR 6794 15007 7012 RTR 6795 15010 7012 RTR 6796 15011 4220 JMS READY3 6797 15012 1451 TAD I OP3 /GET SECOND CHARACTER IN WORD 6798 15013 4220 JMS READY3 6799 15014 2051 ISZ OP3 6800 15015 5205 JMP READY4 6801 15016 6203 READY5, CIF CDF 6802 15017 5600 JMP I READY2 6803 6804 15020 0000 READY3, 0 6805 15021 0142 AND [77 6806 15022 7450 SNA 6807 15023 5216 JMP READY5 6808 15024 1235 TAD RDYK2 6809 15025 7450 SNA 6810 15026 1236 TAD RDYK3 6811 15027 7510 SPA 6812 15030 1075 TAD Z100 6813 15031 1237 TAD RDYK4 6814 15032 4424 OPRINTC 6815 15033 5620 JMP I READY3 6816 6817 15034 5045 RDYK1, RDYLST+5 6818 15035 7741 RDYK2, -37 6819 15036 7456 RDYK3, 15-337 6820 15037 0237 RDYK4, 237 6821 6822 15040 5047 RDYLST, MSWHAT /-5 6823 15041 5053 MSSTOP /-4 6824 15042 5057 MSREADY /-3 6825 15043 5063 MSIN /-2 6826 15044 4762 MSERROR /-1 6827 15045 4766 MSDELETED /0 6828 15046 4774 MSNAME /1 6829 6830 15047 2710 MSWHAT, TEXT "WHAT?_" 15050 0124 15051 7737 15052 0000 6831 15053 3723 MSSTOP, TEXT "_STOP_" 15054 2417 15055 2037 15056 0000 6832 15057 3722 MSREADY, TEXT "_READY_" 15060 0501 15061 0431 15062 3700 6833 15063 1116 MSIN, TEXT "IN " 15064 4000 6834 6835 /ON ANY ERROR, WE COME HERE. IF THE USER THAT CAUSED THE ERROR 6836 /WAS NOT WAITING FOR THE DECTAPE, WE CLEAR HIS INPUT WAIT BIT, SET 6837 /HIS ERROR BIT, AND LEAVE. IF HIS DECTAPE WAIT BIT IS ON, HE 6838 /EITHER ALREADY HAS THE DECTAPE , OR HE IS WAITING ON THE QUEUE. 6839 /SINCE HE IS WAITING, THE ERROR COULD ONLY HAVE BEEN CAUSED 6840 /BY AN INTERRUPT - ^C, KEYBOARD BUFFER FULL, OR THE LIKE. IF HE 6841 /IS AT THE TOP OF THE QUEUE, WE ASSUME HE HAS THE DECTAPE, AND 6842 /DON'T BOTHER HIM HERE EXCEPT FOR HIS INPUT WAIT AND ERROR BITS. 6843 /IF HOWEVER, HE WAS PUT TO SLEEP BY DTGRAB, AND IS STILL WAITING 6844 /TO GET AT THE DECTAPE ROUTINE, IT WOULD BE A SHAME TO MAKE HIM 6845 /WAIT FOR ALL THE USERS AHEAD OF HIM IN THE QUEUE (WHICH COULD BE 6846 /AS MANY AS SEVEN SEEKS FROM ONE END OF THE TAPE TO THE OTHER) 6847 /JUST TO FIND OUT THAT HE WAS TRYING TO CANCEL THE OPERATION ANYWAY. 6848 /IN THAT CASE, WE TURN OFF HIS DECTAPE WAIT BIT AND SQUISH HIM OUT 6849 /OF THE DECTAPE QUEUE. UNFORTUNATELY DTFREE WILL ONLY REMOVE HIM 6850 /IF HE IS ALREADY AT THE TOP OF THE QUEUE. 6851 6852 15065 0000 IERDTA, 0 6853 15066 1741 TAD I ITEMP2 6854 15067 3342 DCA IERR1 /POINTER TO STATUS 6855 15070 1742 TAD I IERR1 6856 15071 0076 AND Z1000 /DECTAPE WAIT? 6857 15072 7650 SNA CLA 6858 15073 5333 JMP IEREND /NO - RETURN 6859 15074 1525 TAD I [DECK 6860 15075 7040 CMA 6861 15076 3343 DCA IERR2 /-(USER#+1) 6862 15077 1502 TAD I ZDTQ1 6863 15100 3344 DCA IERR3 /POINTER INTO QUEUE 6864 15101 1744 TAD I IERR3 /IS HIS ENTRY AT THE TOP? 6865 15102 1343 TAD IERR2 6866 15103 7650 SNA CLA 6867 15104 5333 JMP IEREND /YES - RETURN 6868 6869 /HERE'S WHERE WE SQUISH THE QUEUE 6870 15105 3345 IERLP, DCA IERR4 6871 15106 1744 TAD I IERR3 /SWITCH QUEUE ENTRY WITH IERR4 BY WAY OF IERR5 6872 15107 3346 DCA IERR5 6873 15110 1345 TAD IERR4 6874 15111 3744 DCA I IERR3 6875 15112 1346 TAD IERR5 /IS THIS QUEUE ENTRY OUR USER? 6876 15113 1343 TAD IERR2 6877 15114 7650 SNA CLA 6878 15115 5324 JMP IERFIN /YES - GO FINISH UP ALREADY 6879 15116 1344 TAD IERR3 /NO - POINT TO NEXT QUEUE ENTRY 6880 15117 7001 IAC 6881 15120 0347 AND I7607 6882 15121 3344 DCA IERR3 6883 15122 1346 TAD IERR5 /GO SWITCH WITH NEXT ENTRY 6884 15123 5305 JMP IERLP 6885 6886 15124 1502 IERFIN, TAD I ZDTQ1 /INCREMENT QUEUE POINTER 6887 15125 7001 IAC 6888 15126 0347 AND I7607 6889 15127 3502 DCA I ZDTQ1 6890 15130 1742 TAD I IERR1 /TURN OFF DECTAPE WAIT 6891 15131 0077 AND Z6777 6892 15132 3742 DCA I IERR1 6893 6894 15133 1742 IEREND, TAD I IERR1 /TURN OFF KEYBOARD WAIT 6895 15134 0350 AND I3767 6896 15135 1073 TAD Z10 /AND TURN ON ERROR BIT. 6897 15136 3742 DCA I IERR1 6898 15137 6202 CIF 6899 15140 5665 JMP I IERDTA /RETURN 6900 6901 15141 0006 ITEMP2, TEMP2 6902 15142 0000 IERR1, 0 /POINTS TO HIS STATUS 6903 15143 0000 IERR2, 0 /COMPLEMENTED USER # 6904 15144 0000 IERR3, 0 /POINTER INTO QUEUE 6905 15145 0000 IERR4, 0 /TEMP LOC FOR SQUSH 6906 15146 0000 IERR5, 0 /DITTO 6907 15147 7607 I7607, 7607 6908 15150 3767 I3767, 3767 6909 6910 PAGE 6911 6912 *.+1 6913 PAGE /AN EXTRA PAGE (OR SO) FOR PATCHES 6914 6915 ORG1=. 6916 /USER DEFINITIONS 6917 6918 LIMIT=7776 /HIGHEST CORE POSITION 6919 SWAPR=ENSWAP-STSWAP+1 /SWAP LENGTH 6920 ORG=. /USER STARTING ORIGIN 6921 6922 BUFFER=40 6923 BUFCOM=100 6924 LINE0=162 6925 LINE1=164 6926 TOP=LIMIT 6927 10124 6625 FIELD 2 10125 0036 10126 7740 10127 3172 10130 0002 10131 4211 10132 4210 10133 3201 10134 3177 10135 3450 10136 0004 10137 4213 10140 0026 10141 7763 10142 0077 10143 0015 10144 2153 10145 3431 10146 0014 10147 0040 10150 0030 10151 7772 10152 0434 10153 7720 10154 0752 10155 7725 10156 4557 10157 1346 10160 7673 10161 0011 10162 1540 10163 7722 10164 7767 10165 0400 10166 0206 10167 0571 10170 7774 10171 0457 10172 5674 10173 0377 10174 0177 10175 0200 10176 0007 10177 0600 6928 6929 PAGE 0 6930 *20 6931 20020 2600 USRPTR, USRLST 6932 20021 0000 CORPTR, 0 6933 20022 0000 USRPT2, 0 6934 20023 0000 CORPT2, 0 6935 20024 0000 BEGUSR, 0 6936 20025 0000 CURFLD, 0 6937 20026 0000 BEGDEV, 0 6938 20027 0000 USRCTR, 0 6939 20030 0000 SS, 0 6940 20031 0000 BEGCOR, 0 6941 20032 0000 KLTOP, 0 6942 20033 0000 KLSCH, 0 6943 20034 0000 OS8PTR, 0 6944 6945 20035 1377 OSDRK8, 1377 6946 20036 3030 3030 6947 20037 1376 1376 6948 20040 3031 3031 6949 20041 5030 5030 6950 20042 0000 0 6951 20043 0000 0 6952 20044 0000 0 6953 20045 0000 0 6954 20046 0000 0 6955 20047 0000 0 6956 20050 0000 0 6957 20051 0000 0 6958 20052 0000 0 6959 20053 0000 0 6960 20054 0000 0 6961 20055 5031 5031 6962 20056 6733 6733 6963 6964 20057 1772 OSDDSK, 1772 6965 20060 3771 3771 6966 20061 2371 2371 6967 20062 2372 2372 6968 20063 5356 5356 6969 20064 5350 5350 6970 20065 0000 0 6971 20066 0000 0 6972 20067 0000 0 6973 20070 0000 0 6974 20071 0000 0 6975 20072 7750 7750 6976 20073 7773 7773 6977 20074 7600 7600 6978 20075 6603 6603 6979 20076 6622 6622 6980 20077 5352 5352 6981 20100 5752 5752 6982 6983 20101 6774 OSDDTA, 6774 6984 20102 1377 1377 6985 20103 3354 3354 6986 20104 1376 1376 6987 20105 3355 3355 6988 20106 1375 1375 6989 20107 6766 6766 6990 20110 6771 6771 6991 20111 5365 5365 6992 20112 1374 1374 6993 20113 6766 6766 6994 20114 6771 6771 6995 20115 5371 5371 6996 20116 5200 5200 6997 20117 0220 220 6998 20120 0600 600 6999 20121 7577 7577 7000 20122 7700 7700 7001 7002 PAGE 7003 /*SYSTEM ENTRY POINT FOR INITIALIZATION* 7004 20200 7000 BEGIN, NOP /SO WE CAN CHAIN BACK TO OURSELF 7005 20201 6032 KCC 7006 20202 4777 JMS I (SYSINI 7007 20203 6211 BEGINB, CDF 10 7008 20204 1776 TAD I (7760 /GET DCB OF SYS: 7009 20205 0375 AND (770 7010 20206 1374 TAD (-050 /5 IS RK8 7011 20207 7510 SPA 7012 20210 5220 JMP OS8ERR /<5 IS ERROR 7013 20211 7450 SNA 7014 20212 5231 JMP OS8RK8 /5 = RK8 7015 20213 1373 TAD (050-160 /16 IS DECTAPE 7016 20214 7510 SPA 7017 20215 5225 JMP OS8KSK /6 TO 15 = DSK 7018 20216 7650 SNA CLA 7019 20217 5230 JMP OS8DTA /16 = DTA: 7020 20220 7200 OS8ERR, CLA 7021 20221 6221 CDF 20 7022 20222 4772 JMS I (BEG003 7023 20223 4207 OS8ERM /BAD OS/8 DEVICE 7024 20224 5771 JMP I (BEGMV0 /DO NOT SET UP ANY THING 7025 7026 20225 7200 OS8KSK, CLA 7027 20226 5227 JMP OS8DSK 7028 7029 20227 7001 OS8DSK, IAC 7030 20230 7001 OS8DTA, IAC 7031 20231 7001 OS8RK8, IAC 7032 20232 1370 TAD (OS8LST-1 7033 20233 3034 DCA OS8PTR 7034 20234 6221 CDF 20 7035 20235 1434 TAD I OS8PTR 7036 20236 3034 DCA OS8PTR /POINT TO BOOTSTRAP 7037 20237 4772 JMS I (BEG003 7038 20240 4241 OS8MSG /OS/8 MESSAGE 7039 20241 4772 JMS I (BEG003 7040 20242 4253 OS8AB, OS8M1 7041 20243 4772 JMS I (BEG003 7042 20244 4256 OS8M2 7043 20245 5771 JMP I (BEGMV0 7044 7045 20246 0035 OS8LST, OSDRK8 7046 20247 0101 OSDDTA 7047 20250 0057 OSDDSK 7048 USR=7700 /ENTRY POINT TO OS/8 USR 7049 FETCH=1 /FETCH DEVICE HANDLER 7050 L00KUP=2 /LOOK UP BLOCK NUMBER OF FILE 7051 CHA1N=6 /CHAIN TO PROGRAM ON "SYS:" 7052 7053 20251 4772 ERRLDR, JMS I (BEG003 /COULDN'T FIND HANDLER OR W.L. 7054 20252 4655 LDRERR 7055 20253 4772 JMS I (BEG003 7056 20254 4711 LDRER2 7057 20255 6203 CIF CDF 0 7058 20256 5767 JMP I (7605 /RETURN TO OS/8 7059 7060 20257 4772 ERRCHN, JMS I (BEG003 7061 20260 4724 CHNERR 7062 20261 5253 JMP ERRLDR+2 7063 7064 20262 6212 BEG708, CIF 10 7065 20263 4766 JMS I (USR /LOAD HANDLER AND 7066 20264 0001 FETCH /GET NUMBER OF DEVICE "SYS" 7067 20265 2331 DEVICE SYS 20266 2300 7068 SYSNO=.-1 7069 20267 4001 4001 /NO NEED TO SAVE THE AREA FOR THE HANDLER 7070 20270 5257 JMP ERRCHN /ERROR - CAN'T CHAIN 7071 20271 1266 TAD SYSNO /LOAD DEVICE NUMBER 7072 20272 6212 CIF 10 7073 20273 4766 JMS I (USR 7074 20274 0002 L00KUP 7075 20275 0306 BLOCK0, EDUNAM 7076 20276 0000 0 7077 20277 5257 JMP ERRCHN /ERROR - EDU25 NOT ON "SYS" 7078 20300 1275 TAD BLOCK0 /MOVE BLOCK NUMBER 7079 20301 3305 DCA STCHN /FOR USE BY CHAIN 7080 20302 6212 CIF 10 7081 20303 4766 JMS I (USR 7082 20304 0006 CHA1N 7083 20305 0000 STCHN, 0 7084 7085 20306 0504 EDUNAM, FILENAME EDU25.SV 20307 2562 20310 6500 20311 2326 7086 /CALLING SEQUENCE 7087 / JMS I (BEG01Q 7088 / MSGADR /ADDRESS OF MESSAGE TO BE PRINTED 7089 / JMP NO /RETURNS HERE IF ANSWER IS "N" 7090 / JMP YES /RETURNS HERE IF ANSWER IS "Y" 7091 20312 0000 BEG01Q, 0 /ASK QUESTION - GET ANSWER 7092 20313 1712 TAD I BEG01Q /SKIP IF YES, NOT IF NO 7093 20314 2312 ISZ BEG01Q /OTHERWISE GIVE ERROR AND REPEAT QUESTION 7094 20315 3317 DCA .+2 7095 20316 4772 JMS I (BEG003 7096 20317 0000 0 7097 20320 4765 JMS I (BEG001 7098 20321 1364 TAD (-"Y 7099 20322 7450 SNA 7100 20323 5332 JMP BEG1QR 7101 20324 1363 TAD ("Y-"N 7102 20325 7650 SNA CLA 7103 20326 5333 JMP BEG1QR+1 7104 20327 4772 JMS I (BEG003 7105 20330 4303 BEGME 7106 20331 5316 JMP BEG01Q+4 7107 20332 2312 BEG1QR, ISZ BEG01Q 7108 20333 5712 JMP I BEG01Q 7109 7110 20363 0013 PAGE 20364 7447 20365 1014 20366 7700 20367 7605 20370 0245 20371 0400 20372 1032 20373 7670 20374 7730 20375 0770 20376 7760 20377 5200 7111 20400 6201 BEGMV0, CDF 7112 20401 1777 TAD I (FLOP 7113 20402 3776 DCA I (OPTABL+5 7114 20403 6211 CDF 10 7115 20404 1732 TAD I BEGIN1 /MAKE SURE THAT NO ERRORS ARE NEG. SO THAT 7116 /THEY DON'T TERMINATE TABLE 7117 20405 7001 IAC 7118 20406 7110 CLL RAR 7119 20407 3732 DCA I BEGIN1 7120 20410 2332 ISZ BEGIN1 7121 20411 2333 ISZ BEGIN2 7122 20412 5204 JMP .-6 7123 20413 1375 BEG002, TAD (BEG009 7124 20414 3334 DCA BEGXR1 7125 20415 1374 TAD (KL8JM0 7126 20416 3335 DCA BEGXR2 7127 20417 4313 JMS BEG008 7128 20420 1373 TAD (KL8JMP 7129 20421 3335 DCA BEGXR2 7130 20422 4313 JMS BEG008 7131 20423 6221 CDF 20 7132 20424 6032 KCC 7133 20425 1372 TAD (BEGIOT 7134 20426 3330 DCA BEG012 7135 20427 1371 TAD (-7 7136 20430 3331 DCA BEG013 7137 20431 1370 TAD (120 7138 20432 3730 DCA I BEG012 7139 20433 2330 ISZ BEG012 7140 20434 2331 ISZ BEG013 7141 20435 5231 JMP .-4 7142 20436 4767 JMS I (BEG003 7143 20437 4315 BEGM1 /INIT MESSAGE 7144 20440 4767 BEG006, JMS I (BEG003 7145 20441 4331 BEGM2 /# USER MESSAGE 7146 20442 4766 JMS I (BEG001 7147 20443 1365 TAD (-"8 7148 20444 7540 SMA SZA 7149 20445 5764 JMP I (BEG005 7150 20446 1363 TAD (10 7151 20447 7550 SPA SNA 7152 20450 5764 JMP I (BEG005 7153 20451 7041 CIA 7154 20452 3024 DCA BEGUSR 7155 20453 5762 JMP I (BEGX08 7156 20454 1336 CORDON, TAD SIZFUJ /FUDGE CORE SIZE BY ADDING SOMETHING PATCHABLE 7157 20455 1031 TAD BEGCOR 7158 20456 3031 DCA BEGCOR 7159 20457 6221 CDF 20 7160 20460 1024 TAD BEGUSR 7161 20461 7001 IAC 7162 20462 7650 SNA CLA 7163 20463 5266 JMP BEG010 7164 20464 4761 JMS I (BEG01Q 7165 20465 4347 BEGM4 /DC02? 7166 7167 20466 7340 BEG010, L7777 /BEGDEV=-1 IF NOT DC02 7168 20467 3026 DCA BEGDEV /BEGDEV= 0 IF DC02 7169 20470 1026 TAD BEGDEV 7170 20471 7650 SNA CLA 7171 20472 5760 JMP I (BEGCK0 7172 20473 1372 TAD (BEGIOT 7173 20474 3330 DCA BEG012 7174 20475 1024 TAD BEGUSR 7175 20476 3331 DCA BEG013 7176 20477 1357 TAD (310 / VRS MAKE DEFAULT MATCH SBC6120 7177 20500 3327 DCA BEG12A 7178 20501 2331 BEG14B, ISZ BEG013 7179 20502 5304 JMP BEG14A 7180 20503 5756 JMP I (BEG015 7181 7182 20504 1327 BEG14A, TAD BEG12A 7183 20505 3730 DCA I BEG012 7184 20506 2330 ISZ BEG012 7185 20507 1327 TAD BEG12A 7186 20510 1355 TAD (20 7187 20511 3327 DCA BEG12A 7188 20512 5301 JMP BEG14B 7189 7190 20513 0000 BEG008, 0 /UNPATCH SCHEDULER AND INTERRUPT ROUTINE 7191 20514 7346 L7775 /IN CASE WE COME HERE FROM A ^C 7192 20515 3331 DCA BEG013 7193 20516 6221 CDF 20 7194 20517 1734 TAD I BEGXR1 7195 20520 2334 ISZ BEGXR1 7196 20521 6201 CDF 7197 20522 3735 DCA I BEGXR2 7198 20523 2335 ISZ BEGXR2 7199 20524 2331 ISZ BEG013 7200 20525 5316 JMP .-7 7201 20526 5713 JMP I BEG008 7202 7203 20527 0400 BEG12A, 400 7204 20530 0000 BEG012, 0 7205 20531 0000 BEG013, 0 7206 20532 3751 BEGIN1, ERRLST 7207 20533 7702 BEGIN2, ERRLST-ERREND 7208 20534 0000 BEGXR1, 0 7209 20535 0000 BEGXR2, 0 7210 20536 0000 SIZFUJ, 0 /PATCH THIS LOCATION TO USE LESS THAN MAXIMUM CORE 7211 20555 0020 PAGE 20556 0600 20557 0310 20560 1261 20561 0312 20562 0670 20563 0010 20564 1011 20565 7510 20566 1014 20567 1032 20570 0120 20571 7771 20572 3125 20573 5310 20574 0205 20575 1000 20576 5405 20577 2707 7212 7213 20600 1024 BEG015, TAD BEGUSR 7214 20601 7001 IAC 7215 20602 7650 SNA CLA 7216 20603 5777 JMP I (BEG15I /ONE USER 7217 BEG15E, /SEE BEG15I FOR EXPLANATION 7218 / TAD (BEGM7B-1 /"REMOTE" 7219 / JMS I (BEGMFX 7220 20604 4776 JMS I (BEG01Q 7221 20605 4402 BEGM7 /STANDARD? 7222 20606 7410 SKP 7223 20607 5777 JMP I (BEG15I /MULTIPLE USER - STANDARD 7224 20610 1024 BEG15A, TAD BEGUSR 7225 20611 3232 DCA BEG15B 7226 20612 1375 TAD (BEGIOT 7227 20613 3231 DCA BEG15C 7228 20614 1374 TAD (4361 /TEXT "#1" 7229 20615 3773 DCA I (BEGM5A 7230 20616 2232 BEG15D, ISZ BEG15B 7231 20617 7410 SKP 7232 20620 5777 JMP I (BEG15H 7233 20621 4233 JMS BEG014 7234 20622 4365 BEGM5 7235 20623 1030 TAD SS 7236 20624 1372 TAD (10 7237 20625 3631 DCA I BEG15C 7238 20626 2231 ISZ BEG15C 7239 20627 2773 ISZ I (BEGM5A 7240 20630 5216 JMP BEG15D 7241 7242 20631 0000 BEG15C, 0 7243 20632 0000 BEG15B, 0 7244 7245 20633 0000 BEG014, 0 7246 20634 1633 TAD I BEG014 7247 20635 2233 ISZ BEG014 7248 20636 3240 DCA .+2 7249 20637 4771 JMS I (BEG003 7250 20640 0000 0 7251 20641 4770 JMS I (BEG001 7252 20642 1367 TAD (-"7 7253 20643 7540 SMA SZA 7254 20644 5766 JMP I (BEG016 7255 20645 1365 TAD (7 7256 20646 7510 SPA 7257 20647 5766 JMP I (BEG016 7258 20650 7106 CLL RTL 7259 20651 7006 RTL 7260 20652 7006 RTL 7261 20653 3030 DCA SS 7262 20654 4770 JMS I (BEG001 7263 20655 1367 TAD (-"7 7264 20656 7540 SMA SZA 7265 20657 5766 JMP I (BEG016 7266 20660 1365 TAD (7 7267 20661 7510 SPA 7268 20662 5766 JMP I (BEG016 7269 20663 7106 CLL RTL 7270 20664 7004 RAL 7271 20665 1030 TAD SS 7272 20666 3030 DCA SS 7273 20667 5633 JMP I BEG014 7274 /FIGURE OUT HIGHEST CORE FIELD FOR HIM 7275 20670 7301 BEGX08, L0001 7276 20671 3031 DCA BEGCOR /FIELD 1 TOP TO START WITH 7277 20672 1364 TAD (6221 7278 20673 3302 DCA BEGCHK 7279 20674 1305 TAD CNOP 7280 20675 6201 CDF 7281 20676 3763 DCA I (0 7282 20677 6211 CDF 10 7283 20700 1305 TAD CNOP 7284 20701 3763 DCA I (0 7285 20702 0000 BEGCHK, 0 7286 20703 1362 TAD (1000 7287 20704 3763 DCA I (0 7288 20705 7000 CNOP, NOP 7289 20706 1763 TAD I (0 7290 20707 7410 SKP /PDP-8 NXM BUG 7291 20710 7402 HLT /THIS SHOULD HAUL DOWN A PDP-8 7292 20711 6211 CDF 10 /DOUBLE CHECK FOR PDP-8/L 7293 20712 1763 TAD I (0 7294 20713 7640 SZA CLA 7295 20714 5761 JMP I (CORDON /NO MORE CORE 7296 20715 1362 TAD (1000 7297 20716 6201 CDF 7298 20717 1763 TAD I (0 7299 20720 7640 SZA CLA 7300 20721 5761 JMP I (CORDON /NO MORE CORE-PROBABLY A PDP-8/L 7301 20722 2031 ISZ BEGCOR /THIS FIELD WAS SUCCESSFUL 7302 20723 1302 TAD BEGCHK 7303 20724 1372 TAD (10 7304 20725 3302 DCA BEGCHK 7305 20726 5302 JMP BEGCHK 7306 20761 0454 PAGE 20762 1000 20763 0000 20764 6221 20765 0007 20766 1006 20767 7511 20770 1014 20771 1032 20772 0010 20773 4372 20774 4361 20775 3125 20776 0312 20777 1200 7307 7308 BEG009, 7309 NOPUNCH 7310 *KL8JM0 7311 ENPUNCH 7312 20205 6202 CIF 7313 20206 1121 TAD LOOKST 7314 20207 3120 DCA LOOK 7315 NOPUNCH 7316 *KL8JMP 7317 ENPUNCH 7318 25310 1326 TAD SAVLK 7319 25311 7104 CLL RAL 7320 25312 1325 TAD SAVAC 7321 NOPUNCH 7322 *BEG009+6 7323 ENPUNCH 7324 7325 7326 7327 21006 4232 BEG016, JMS BEG003 7328 21007 4303 BEGME 7329 21010 5777 JMP I (BEG014+4 7330 7331 21011 4232 BEG005, JMS BEG003 7332 21012 4303 BEGME 7333 21013 5776 JMP I (BEG006 7334 7335 21014 0000 BEG001, 0 7336 21015 6031 KSF 7337 21016 5215 JMP .-1 7338 21017 6036 KRB 7339 21020 1375 TAD (-203 7340 21021 7450 SNA 7341 21022 5774 JMP I (BEG708 /CHAIN TO EDU25 FOR ^C 7342 21023 1373 TAD (203 7343 21024 6046 TLS 7344 21025 6041 TSF 7345 21026 5225 JMP .-1 7346 21027 0372 AND (177 7347 21030 1371 TAD (200 7348 21031 5614 JMP I BEG001 7349 7350 BEGMF1, 7351 21032 0000 BEG003, 0 7352 21033 7200 CLA 7353 21034 1632 TAD I BEG003 7354 21035 3300 DCA BEG004 7355 21036 2232 ISZ BEG003 7356 21037 1700 TAD I BEG004 7357 21040 7112 CLL RTR 7358 21041 7012 RTR 7359 21042 7012 RTR 7360 21043 4250 JMS BEG03X 7361 21044 1700 TAD I BEG004 7362 21045 4250 JMS BEG03X 7363 21046 2300 ISZ BEG004 7364 21047 5237 JMP BEG003+5 7365 7366 BEGMF2, 7367 21050 0000 BEG03X, 0 7368 21051 0370 AND (77 7369 21052 7450 SNA 7370 21053 5632 JMP I BEG003 7371 21054 1367 TAD (-37 7372 21055 7450 SNA 7373 21056 5274 JMP CRLF 7374 21057 7510 SPA 7375 21060 1366 TAD (100 7376 21061 1365 TAD (237 7377 21062 4264 JMS TTCHAR 7378 21063 5650 JMP I BEG03X 7379 7380 21064 0000 TTCHAR, 0 7381 21065 6046 TLS 7382 21066 7200 CLA 7383 21067 6041 TSF 7384 21070 5267 JMP .-1 7385 21071 6031 KSF 7386 21072 5664 JMP I TTCHAR 7387 21073 5632 JMP I BEG003 /EXIT ON CHAR. 7388 21074 1364 CRLF, TAD (215 7389 21075 4264 JMS TTCHAR 7390 21076 1363 TAD (212 7391 21077 5262 JMP TTCHAR-2 7392 21100 0000 BEG004, 0 7393 7394 /SEE BEG15I FOR EXPLANATION 7395 //MOVE IN MIDDLE OF BEGM7 7396 /BEGMFX, 0 7397 / DCA BEGMF1 7398 / TAD (BEGM7A-1 7399 / DCA BEGMF2 7400 / TAD (-4 7401 / DCA CORPTR 7402 / ISZ BEGMF1 7403 / ISZ BEGMF2 7404 / TAD I BEGMF1 7405 / DCA I BEGMF2 7406 / ISZ CORPTR 7407 / JMP .-5 7408 / JMP I BEGMFX 7409 21163 0212 PAGE 21164 0215 21165 0237 21166 0100 21167 7741 21170 0077 21171 0200 21172 0177 21173 0203 21174 0262 21175 7575 21176 0440 21177 0637 7410 /COMMENTED CODE WILL GENERATE DEVICE CODES FOR THE IDIOT, BUT 7411 /IT IS EASIER TO HAVE HIM TELL US THAN TO TRY TO EXPLAIN TO HIM 7412 /WHEN WE CAN GENERATE HIS CODES. 7413 //STANDARD USED CODES 7414 BEG15I, 7415 / JMS BEG15G /MOVE IN USED IOT'S 7416 / TAD (BEGM7C-1 /"UNUSED" 7417 / JMS I (BEGMFX 7418 / JMS I (BEG01Q 7419 / BEGM7 /"STANDARD UNUSED TTY CODES?" 7420 / JMP BEG15K /NO - GET CODES FROM TTY 7421 / TAD (6305 /YES - GENERATE THEM FROM 30 THRU 56 7422 / DCA SS 7423 / JMP BEG15L /INSERT IF CODE NOT USED 7424 /BEG15M, TAD SS 7425 / TAD (20 /INCREMENT 7426 / DCA SS 7427 / TAD SS 7428 / TAD (-6605 7429 / SZA CLA /LAST? 7430 / JMP .-7 /NO - LOOP 7431 / JMP BEG011 /DONE 7432 / 7433 / 7434 //INSERT IF IOT UNUSED 7435 /BEG15L, TAD SS 7436 / CIA 7437 / DCA BEG15G 7438 / TAD BEGUSR 7439 / DCA USRCTR 7440 / TAD CORPT2 7441 / DCA CORPT2 7442 / TAD BEG15G 7443 / TAD I CORPTR 7444 / SNA CLA 7445 / JMP BEG15M 7446 / ISZ CORPTR 7447 / ISZ USRCTR 7448 / JMP .-6 7449 / TAD SS 7450 / JMS BEG15F 7451 / JMP BEG15M 7452 7453 7454 /NON-STANDARD USED CODES 7455 21200 4224 BEG15H, JMS BEG15G /MOVE IN USED IOT'S 7456 / TAD (BEGM7D-1 7457 / JMS I (BEGMFX /"UNUSED" 7458 21201 4777 JMS I (BEG01Q 7459 / BEGM7A /"UNUSED TTY CODES?" 7460 21202 4626 BEGM9 /"ANY UNUSED TERMINALS?" 7461 21203 5257 JMP BEG011 /NO - DONE 7462 21204 5210 JMP .+4 7463 21205 4777 BEG15K, JMS I (BEG01Q 7464 21206 4622 BEGM8 /"MORE?" 7465 21207 5257 JMP BEG011 /NO 7466 21210 4776 JMS I (BEG014 7467 21211 4646 BEGM10 /"DEVICE CODE?" 7468 21212 1030 TAD SS 7469 21213 1375 TAD (6005 7470 21214 4216 JMS BEG15F /INSERT IN PATCH 7471 21215 5205 JMP BEG15K 7472 7473 7474 /INSERT WORD INTO PATCH 7475 21216 0000 BEG15F, 0 7476 21217 3432 DCA I KLTOP 7477 21220 7340 L7777 7478 21221 1032 TAD KLTOP 7479 21222 3032 DCA KLTOP 7480 21223 5616 JMP I BEG15F 7481 7482 /MOVE IOT'S FROM BEGIOT TO PATCH 7483 21224 0000 BEG15G, 0 7484 21225 7303 CLA CLL IAC BSW /IS IT AN 8/E? 7485 21226 1374 TAD (-100 7486 21227 7640 SZA CLA 7487 21230 5773 JMP I (BEGCK0 7488 21231 1372 TAD (KL8FIX-1 7489 21232 3032 DCA KLTOP 7490 21233 1024 TAD BEGUSR 7491 21234 3027 DCA USRCTR 7492 21235 1371 TAD (BEGIOT-1 7493 21236 3021 DCA CORPTR 7494 21237 1421 TAD I CORPTR 7495 21240 1370 TAD (6005-10 7496 21241 4216 JMS BEG15F 7497 21242 2021 ISZ CORPTR 7498 21243 2027 ISZ USRCTR 7499 21244 5237 JMP .-5 7500 21245 1032 TAD KLTOP 7501 21246 3033 DCA KLSCH /SAVE ENTRY ADDRESS FOR SCHEDULER 7502 21247 7301 L0001 7503 21250 1032 TAD KLTOP 7504 21251 3023 DCA CORPT2 7505 21252 1247 TAD .-3 /INSERT L0001 7506 21253 4216 JMS BEG15F 7507 21254 1367 TAD (KL8INT&177+5200 /INSERT JMP KL8INT 7508 21255 4216 JMS BEG15F 7509 21256 5624 JMP I BEG15G 7510 21257 1366 BEG011, TAD (CLA 7511 21260 3432 DCA I KLTOP 7512 21261 1024 BEGCK0, TAD BEGUSR 7513 21262 7001 IAC 7514 21263 7650 SNA CLA 7515 21264 5765 JMP I (BEGOLD /ONLY 1 USER, ASSUME ANSWER! 7516 21265 4777 JMS I (BEG01Q 7517 21266 4554 BEGMQ /SAME AMT OF STG FOR ALL USERS? 7518 21267 5764 JMP I (BEG500 /NO - GO ASK HIM 7519 21270 5765 JMP I (BEGOLD /YES - ALLOCATE IT FOR HIM 7520 21364 1403 PAGE 21365 3000 21366 7200 21367 5366 21370 5775 21371 3124 21372 7754 21373 1261 21374 7700 21375 6005 21376 0633 21377 0312 7521 LBLK=SS 7522 7523 OLNUM=USRPT2 7524 NUNUM=CORPT2 7525 21400 6221 BEGER0, CDF 20 7526 21401 4777 JMS I (BEG003 7527 21402 4524 WNGDM 7528 21403 6221 BEG500, CDF 20 7529 21404 1024 TAD BEGUSR 7530 21405 3027 DCA USRCTR 7531 21406 1376 TAD (USRLST 7532 21407 3020 DCA USRPTR 7533 21410 1031 TAD BEGCOR 7534 21411 7001 IAC 7535 21412 3025 DCA CURFLD 7536 21413 7340 BEGFLD, L7777 7537 21414 1025 TAD CURFLD 7538 21415 7550 SPA SNA 7539 21416 5200 JMP BEGER0 7540 21417 3025 DCA CURFLD 7541 21420 4777 JMS I (BEG003 7542 21421 4427 BEGMFL 7543 21422 1375 TAD (60 7544 21423 1025 TAD CURFLD 7545 21424 6046 TLS 7546 21425 7200 CLA 7547 21426 6041 TSF 7548 21427 5226 JMP .-1 7549 21430 7344 L7776 7550 21431 1025 TAD CURFLD 7551 21432 7510 SPA 7552 21433 5774 JMP I (BEGXYZ /FUDGE FIELD 1 7553 21434 7650 SNA CLA 7554 21435 1024 TAD BEGUSR /DELETE ONE BLOCK PER USER IN FIELD 2 7555 21436 1373 TAD (20 /FOR USE AS DECTAPE BUFFERS 7556 21437 3030 DCA LBLK 7557 21440 4777 BEGXXX, JMS I (BEG003 7558 21441 4433 BEGMXX 7559 21442 1030 TAD LBLK 7560 21443 4772 JMS I (BEGPRNT 7561 21444 4777 JMS I (BEG003 7562 21445 4441 BEGMX1 7563 21446 4771 JMS I (BEG001 7564 21447 1370 TAD (-"8 7565 21450 7540 SMA SZA 7566 21451 5345 JMP BEGER1 7567 21452 1367 TAD (10 7568 21453 7550 SPA SNA 7569 21454 5345 JMP BEGER1 /BAD USER NUMBER 7570 21455 3420 DCA I USRPTR 7571 21456 1024 TAD BEGUSR 7572 21457 1420 TAD I USRPTR 7573 21460 7740 SMA SZA CLA 7574 21461 5345 JMP BEGER1 /NON-EXISTENT USER DUMMY 7575 21462 2020 ISZ USRPTR 7576 21463 1025 TAD CURFLD 7577 21464 3420 DCA I USRPTR 7578 21465 2020 ISZ USRPTR /AND HIS NO. 7579 21466 4777 BEGRE, JMS I (BEG003 7580 21467 4475 BEGTTI 7581 21470 3022 DCA OLNUM /DOUBLE CHECK! 7582 21471 4771 BEGINP, JMS I (BEG001 7583 21472 1366 TAD (-215 7584 21473 7450 SNA 7585 21474 5314 JMP DN 7586 21475 1365 TAD (215-"9 7587 21476 7540 SMA SZA 7588 21477 5342 JMP BEGER2 /UNGOOD NO 7589 21500 1364 TAD (11 7590 21501 7510 SPA 7591 21502 5342 JMP BEGER2 /LIKEWISE 7592 21503 3023 DCA NUNUM 7593 21504 1022 TAD OLNUM /MULT BY 10 DECIMAL 7594 21505 7104 CLL RAL 7595 21506 7006 RTL 7596 21507 1022 TAD OLNUM 7597 21510 1022 TAD OLNUM 7598 21511 1023 TAD NUNUM /PLUS NEW DIGIT 7599 21512 3022 DCA OLNUM /MAKES NEW NO 7600 21513 5271 JMP BEGINP 7601 21514 1022 DN, TAD OLNUM 7602 21515 7570 SNA SPA SZL 7603 21516 5342 JMP BEGER2 /JUNKY NO 7604 21517 7041 CIA 7605 21520 1030 TAD LBLK 7606 21521 7510 SPA 7607 21522 5200 JMP BEGER0 /TOO MUCH ASKED FOR 7608 21523 3030 DCA LBLK /NEW AMOUNT REMAINING 7609 21524 1022 TAD OLNUM 7610 21525 2027 ISZ USRCTR 7611 21526 7410 SKP 7612 21527 5350 JMP BEGR2 7613 21530 3420 DCA I USRPTR 7614 21531 2020 ISZ USRPTR 7615 21532 1030 TAD LBLK 7616 21533 7640 SZA CLA /MORE TO COME IN THIS FIELD? 7617 21534 5240 JMP BEGXXX /SURE IS 7618 21535 7340 L7777 7619 21536 1025 TAD CURFLD 7620 21537 7750 SNA SPA CLA 7621 21540 5200 JMP BEGER0 7622 21541 5213 JMP BEGFLD /MORE FIELDS TO COME 7623 21542 4777 BEGER2, JMS I (BEG003 7624 21543 4303 BEGME 7625 21544 5266 JMP BEGRE 7626 21545 4777 BEGER1, JMS I (BEG003 7627 21546 4303 BEGME 7628 21547 5240 JMP BEGXXX 7629 21550 1030 BEGR2, TAD LBLK /EXPAND HIM TO FINISH FIELD 7630 21551 3420 DCA I USRPTR /THERE'S NO REASON TO WASTE CORE 7631 21552 2020 ISZ USRPTR /JUST THINK OF ALL THE PEOPLE WHO GO 7632 21553 5763 JMP I (BEG540 /TO BED HUNGRY FOR IT EVERY NIGHT 7633 7634 21563 1600 PAGE 21564 0011 21565 7724 21566 7563 21567 0010 21570 7510 21571 1014 21572 2324 21573 0020 21574 2117 21575 0060 21576 2600 21577 1032 7635 21600 7303 BEG540, CLA CLL IAC BSW 7636 21601 1377 TAD (-100 7637 21602 7640 SZA CLA 7638 21603 5253 JMP BEG550-3 /NOT AN 8/E 7639 21604 1026 TAD BEGDEV 7640 21605 7650 SNA CLA 7641 21606 5255 JMP BEG550-1 /THE FOOL HAS AN 8/E WITH DC02 7642 21607 6201 CDF 7643 21610 1033 TAD KLSCH 7644 21611 3651 DCA I BEGKL5 7645 21612 1032 TAD KLTOP 7646 21613 3652 DCA I BEGKL6 7647 21614 6221 CDF 20 7648 21615 1246 TAD KL8FRST 7649 21616 7640 SZA CLA /FIRST TIME THROUGH 7650 21617 5256 JMP BEG550 /NO 7651 21620 2246 ISZ KL8FRST /SIGNIFY DONE 7652 21621 2245 ISZ BEGKL2 7653 21622 1644 TAD I BEGKL1 7654 21623 3645 DCA I BEGKL2 7655 21624 2244 ISZ BEGKL1 /MOVE PATCH TO PROPER POSITION 7656 21625 5221 JMP .-4 7657 21626 6201 CDF 7658 21627 1376 TAD (CIF 20 7659 21630 3647 DCA I BEGKL3 7660 21631 2247 ISZ BEGKL3 7661 21632 1375 TAD (KL8JMP+2&177+5600 7662 21633 3647 DCA I BEGKL3 7663 21634 1376 TAD (CIF 20 7664 21635 3650 DCA I BEGKL4 7665 21636 2250 ISZ BEGKL4 7666 21637 1374 TAD (KL8JM0+2&177+5600 7667 21640 3650 DCA I BEGKL4 7668 21641 6221 CDF 20 7669 21642 1032 TAD KLTOP 7670 21643 5255 JMP BEG550-1 /SET TOP OF FIELD 2 7671 21644 7755 BEGKL1, KL8LOD 7672 21645 7754 BEGKL2, KL8FIX-1 7673 21646 0000 KL8FRST, 0 7674 21647 5310 BEGKL3, KL8JMP 7675 21650 0205 BEGKL4, KL8JM0 7676 21651 0207 BEGKL5, KL8JM0+2 7677 21652 5312 BEGKL6, KL8JMP+2 7678 7679 21653 6211 CDF 10 7680 21654 3773 DCA I (INTRRV /NOT AN 8/E 7681 21655 3032 DCA KLTOP 7682 21656 6221 BEG550, CDF 20 7683 21657 1372 TAD (USRLST /NOW WE SORT FOR FIELDS TO MAKE IT EASY 7684 21660 3020 DCA USRPTR 7685 21661 1371 TAD (3 7686 21662 1372 TAD (USRLST 7687 21663 3021 DCA CORPTR 7688 21664 1024 TAD BEGUSR 7689 21665 3027 DCA USRCTR 7690 21666 3030 DCA SS /SORT SWITCH FOR MODIFIED BUBBLE SORT 7691 21667 1020 BEG551, TAD USRPTR 7692 21670 7001 IAC 7693 21671 3022 DCA USRPT2 7694 21672 1021 TAD CORPTR 7695 21673 7001 IAC 7696 21674 3023 DCA CORPT2 7697 21675 2027 ISZ USRCTR 7698 21676 7410 SKP 7699 21677 5331 JMP BEG553 7700 21700 1422 TAD I USRPT2 7701 21701 7041 CIA 7702 21702 1423 TAD I CORPT2 7703 21703 7750 SNA SPA CLA /DECREASING SORT ON FIELDS 7704 21704 5322 JMP BEG552 7705 21705 7346 L7775 7706 21706 3030 DCA SS /3 SWAP 7707 21707 1420 TAD I USRPTR 7708 21710 3335 DCA BEG554 7709 21711 1421 TAD I CORPTR 7710 21712 3420 DCA I USRPTR 7711 21713 1335 TAD BEG554 7712 21714 3421 DCA I CORPTR 7713 21715 2020 ISZ USRPTR 7714 21716 2021 ISZ CORPTR 7715 21717 2030 ISZ SS 7716 21720 5307 JMP .-11 7717 21721 2030 ISZ SS /SET TO INDICATE 7718 21722 7326 BEG552, L0002 7719 21723 1022 TAD USRPT2 7720 21724 3020 DCA USRPTR 7721 21725 7326 L0002 7722 21726 1023 TAD CORPT2 7723 21727 3021 DCA CORPTR 7724 21730 5267 JMP BEG551 7725 7726 21731 1030 BEG553, TAD SS 7727 21732 7640 SZA CLA 7728 21733 5256 JMP BEG550 7729 21734 5770 JMP I (BEG600 7730 7731 21735 0000 BEG554, 0000 7732 21770 2000 PAGE 21771 0003 21772 2600 21773 4607 21774 5607 21775 5712 21776 6222 21777 7700 7733 22000 1377 BEG600, TAD (BEGLST 7734 22001 3022 DCA USRPT2 7735 22002 1376 TAD (USRLST 7736 22003 3020 DCA USRPTR 7737 22004 1024 TAD BEGUSR 7738 22005 3027 DCA USRCTR 7739 22006 7340 L7777 7740 22007 3304 DCA BEG603 7741 22010 1775 TAD I (USRLST+1 7742 22011 3025 BEG610, DCA CURFLD 7743 22012 3303 DCA BEG602 7744 22013 1420 NXUSR, TAD I USRPTR 7745 22014 2020 ISZ USRPTR 7746 22015 3422 DCA I USRPT2 7747 22016 2022 ISZ USRPT2 7748 22017 1420 TAD I USRPTR 7749 22020 7041 CIA 7750 22021 1025 TAD CURFLD 7751 22022 7640 SZA CLA 7752 22023 5305 JMP BEG609 /HE WANTS A NEW FIELD 7753 22024 2020 ISZ USRPTR 7754 22025 1025 TAD CURFLD 7755 22026 7104 CLL RAL 7756 22027 7006 RTL 7757 22030 1374 TAD (6201 /MAKE UP XFIELD OP 7758 22031 3422 DCA I USRPT2 /INTO OUR QUICKIE LIST 7759 22032 2022 ISZ USRPT2 7760 22033 1420 TAD I USRPTR 7761 22034 2020 ISZ USRPTR 7762 22035 7041 CIA 7763 22036 3030 DCA SS 7764 22037 1373 TAD (400 7765 22040 2030 ISZ SS 7766 22041 5237 JMP .-2 /MULT. HIS BLOCKSIZE BY 400 OCTAL FOR CORE SIZE 7767 22042 3030 DCA SS 7768 22043 7344 L7776 /FIELD 2? 7769 22044 1025 TAD CURFLD 7770 22045 7640 SZA CLA 7771 22046 5254 JMP .+6 7772 22047 2304 ISZ BEG603 7773 22050 5254 JMP .+4 7774 22051 7344 L7776 7775 22052 1032 TAD KLTOP 7776 22053 5256 JMP .+3 7777 22054 7344 L7776 7778 22055 1303 TAD BEG602 7779 22056 3422 DCA I USRPT2 7780 22057 2022 ISZ USRPT2 7781 22060 1030 TAD SS 7782 22061 7041 CIA 7783 22062 1303 TAD BEG602 7784 22063 3303 DCA BEG602 7785 22064 1303 TAD BEG602 7786 22065 3422 DCA I USRPT2 7787 22066 2022 ISZ USRPT2 7788 22067 2027 ISZ USRCTR 7789 22070 5213 JMP NXUSR 7790 22071 7340 L7777 7791 22072 1025 TAD CURFLD /WAS LAST USER IN FIELD 1? 7792 22073 7640 SZA CLA 7793 22074 5772 JMP I (BEG700 7794 22075 7340 L7777 /YES - DROP HIS LOWER BOUNDRY 7795 22076 1022 TAD USRPT2 /TO END OF LAST SWAP AREA 7796 22077 3303 DCA BEG602 7797 22100 4327 JMS BEGF1S 7798 22101 3703 DCA I BEG602 7799 22102 5772 JMP I (BEG700 7800 22103 0000 BEG602, 0 /TOP 7801 22104 0000 BEG603, 0 /SWITCH FOR FIRST FIELD 2 USER 7802 22105 1020 BEG609, TAD USRPTR 7803 22106 3025 DCA CURFLD /SAVE IT 7804 22107 7340 L7777 7805 22110 1020 TAD USRPTR 7806 22111 3020 DCA USRPTR /TAKE OUT ENTRIES 7807 22112 7340 L7777 7808 22113 1022 TAD USRPT2 7809 22114 3022 DCA USRPT2 7810 22115 1425 TAD I CURFLD /COUNT DOWN FIELD 7811 22116 5211 JMP BEG610 7812 7813 22117 4327 BEGXYZ, JMS BEGF1S /CALCULATE NUMBER OF BLOCKS IN FIELD 1 7814 22120 7041 CIA /SUBTRACT FROM 4K 7815 22121 0371 AND (7400 /ROUND DOWN TO NEAREST INTEGRAL BLOCK 7816 22122 7104 CLL RAL 7817 22123 7006 RTL 7818 22124 7006 RTL 7819 22125 3030 DCA LBLK /TO GET NUMBER OF BLOCKS 7820 22126 5770 JMP I (BEGXXX 7821 22127 0000 BEGF1S, 0 /CALCULATE SIZE OF EDU25 IN FIELD 1 7822 22130 7200 CLA 7823 22131 1024 TAD BEGUSR 7824 22132 3030 DCA LBLK 7825 22133 1367 TAD (SWAPR /ADD SIZE OF ALL SWAP REGIONS 7826 22134 2030 ISZ LBLK 7827 22135 5333 JMP .-2 7828 22136 1366 TAD (ORG1 /TO AREA ALREADY TAKEN UP BY EDU25 7829 22137 5727 JMP I BEGF1S 7830 22166 5400 PAGE 22167 0074 22170 1440 22171 7400 22172 2200 22173 0400 22174 6201 22175 2601 22176 2600 22177 4000 7831 7832 22200 1377 BEG700, TAD (BEGLST 7833 22201 3020 DCA USRPTR 7834 22202 3030 DCA SS 7835 22203 1024 TAD BEGUSR 7836 22204 3027 DCA USRCTR 7837 22205 1376 TAD (4 7838 22206 1377 TAD (BEGLST 7839 22207 3022 DCA USRPT2 7840 22210 2027 BEG7X1, ISZ USRCTR 7841 22211 7410 SKP 7842 22212 5246 JMP BEG703 7843 22213 1420 TAD I USRPTR 7844 22214 7041 CIA 7845 22215 1422 TAD I USRPT2 7846 22216 7450 SNA 7847 22217 5775 JMP I (BEGER0 /MULTIPLE ASSIGNMENTS FOR ONE USER 7848 22220 7700 SMA CLA /ASCENDING SORT ON USER NUMBERS 7849 22221 5240 JMP BEG702 7850 22222 1374 TAD (-4 7851 22223 3030 DCA SS 7852 22224 1420 BEG701, TAD I USRPTR 7853 22225 3021 DCA CORPTR 7854 22226 1422 TAD I USRPT2 7855 22227 3420 DCA I USRPTR 7856 22230 1021 TAD CORPTR 7857 22231 3422 DCA I USRPT2 7858 22232 2020 ISZ USRPTR 7859 22233 2022 ISZ USRPT2 7860 22234 2030 ISZ SS 7861 22235 5224 JMP BEG701 7862 22236 2030 ISZ SS 7863 22237 1374 TAD (-4 7864 22240 1022 BEG702, TAD USRPT2 7865 22241 3020 DCA USRPTR 7866 22242 1376 TAD (4 7867 22243 1020 TAD USRPTR 7868 22244 3022 DCA USRPT2 7869 22245 5210 JMP BEG7X1 7870 7871 22246 1030 BEG703, TAD SS 7872 22247 7640 SZA CLA 7873 22250 5200 JMP BEG700 /MORE TO COME 7874 22251 1377 TAD (BEGLST 7875 22252 3020 DCA USRPTR /NOW TAKE OUT USER NOS. 7876 22253 1024 TAD BEGUSR 7877 22254 3027 DCA USRCTR 7878 22255 7001 IAC 7879 22256 1377 TAD (BEGLST 7880 22257 3022 DCA USRPT2 7881 22260 7346 BEG704, L7775 7882 22261 3030 DCA SS 7883 22262 1422 TAD I USRPT2 7884 22263 3420 DCA I USRPTR 7885 22264 2020 ISZ USRPTR 7886 22265 2022 ISZ USRPT2 7887 22266 2030 ISZ SS 7888 22267 5262 JMP .-5 7889 22270 2022 ISZ USRPT2 /SKIP OVER USER NO. 7890 22271 2027 ISZ USRCTR 7891 22272 5260 JMP BEG704 7892 22273 4773 JMS I (BEG01Q 7893 22274 4602 BEGM6A 7894 22275 5772 JMP I (BEG708 /OH NO--ALL THIS FOR NOTHING! 7895 7896 /ALL'S WELL - PRINT "END OF DIALOGUE" AND MOVE IN OS/8 BOOTSTRAP 7897 / AND PAGE 7600 INTO FIELD 0 7898 22276 4771 JMS I (BEG003 7899 22277 4512 BEGM6 7900 7901 22300 6211 BEGMV4, CDF 10 7902 22301 1721 TAD I BEGMV1 /MOVE PAGE 37 FIELD 0 INTO ITS SPOT 7903 22302 6201 CDF 7904 22303 3722 DCA I BEGMV2 7905 22304 2321 ISZ BEGMV1 7906 22305 2322 ISZ BEGMV2 7907 22306 2323 ISZ BEGMV3 7908 22307 5300 JMP BEGMV4 7909 7910 22310 6221 OS8LP1, CDF 20 7911 22311 1434 TAD I OS8PTR 7912 22312 2034 ISZ OS8PTR 7913 22313 6201 CDF 7914 22314 3720 DCA I OS8PT2 7915 22315 2320 ISZ OS8PT2 7916 22316 5310 JMP OS8LP1 7917 7918 22317 5770 JMP I (BEG750 7919 7920 22320 7756 OS8PT2, 7756 /INTO RIM LOCATIONS 7921 22321 7400 BEGMV1, MVPAG 7922 22322 7600 BEGMV2, 7600 7923 22323 7622 BEGMV3, -156 7924 22324 0000 BEGPRNT,0 7925 22325 3360 DCA BEG705 7926 22326 1367 TAD (-12 7927 22327 3356 DCA BEG706 7928 22330 3357 DCA BEG707 7929 22331 5334 JMP .+3 7930 22332 2357 ISZ BEG707 7931 22333 3360 DCA BEG705 7932 22334 1360 BEGPR1, TAD BEG705 7933 22335 1356 TAD BEG706 7934 22336 7500 SMA 7935 22337 5332 JMP .-5 7936 22340 7200 CLA 7937 22341 1366 TAD (60 7938 22342 1357 TAD BEG707 7939 22343 6046 TLS 7940 22344 6041 TSF 7941 22345 5344 JMP .-1 7942 22346 6032 KCC 7943 22347 2356 ISZ BEG706 7944 22350 7410 SKP 7945 22351 5724 JMP I BEGPRNT /WAS SECOND TIME THROUGH 7946 22352 7340 L7777 7947 22353 3356 DCA BEG706 7948 22354 3357 DCA BEG707 7949 22355 5334 JMP BEGPR1 7950 22356 0000 BEG706, 0 7951 22357 0000 BEG707, 0 7952 22360 0000 BEG705, 0 7953 BEG604=SS 7954 BEG605=USRPTR 7955 22366 0060 PAGE 22367 7766 22370 2400 22371 1032 22372 0262 22373 0312 22374 7774 22375 1400 22376 0004 22377 4000 7956 7957 22400 6221 BEG750, CDF 20 7958 22401 1031 TAD BEGCOR 7959 22402 3777 DCA I (BGCORS 7960 22403 6201 CDF 7961 22404 1776 TAD I (MLOOKE 7962 22405 1024 TAD BEGUSR 7963 22406 3776 DCA I (MLOOKE /CORRECT FOR NO. OF USERS 7964 22407 1776 TAD I (MLOOKE 7965 22410 7041 CIA 7966 22411 3775 DCA I (LOOK 7967 22412 1024 TAD BEGUSR 7968 22413 3774 DCA I (MUSER /SETUP FOR NO. OF USERS 7969 22414 1373 TAD (BEGIOT-1 7970 22415 3030 DCA BEG604 7971 22416 1372 TAD (INTRPL 7972 22417 3020 DCA BEG605 7973 22420 7340 L7777 7974 22421 1024 TAD BEGUSR 7975 22422 3306 DCA BEG60X 7976 22423 1024 TAD BEGUSR 7977 22424 3027 DCA USRCTR 7978 22425 6221 BEG75Q, CDF 20 7979 22426 1430 TAD I BEG604 7980 22427 2030 ISZ BEG604 7981 22430 6201 CDF 7982 22431 2306 ISZ BEG60X 7983 22432 5236 JMP .+4 7984 22433 7240 CLA CMA 7985 22434 3306 DCA BEG60X 7986 22435 1371 TAD (CLA-6006 7987 22436 1370 TAD (6006 7988 22437 3420 DCA I BEG605 7989 22440 2020 ISZ BEG605 7990 22441 2027 ISZ USRCTR 7991 22442 5225 JMP BEG75Q 7992 22443 6201 CDF 7993 22444 1024 TAD BEGUSR 7994 22445 3030 DCA SS 7995 22446 2030 ISZ SS 7996 22447 7410 SKP 7997 22450 5253 JMP .+3 7998 22451 7130 CLL CML RAR 7999 22452 5246 JMP .-4 8000 22453 1367 TAD (10 8001 22454 3766 DCA I (AUSER 8002 22455 6221 CDF 20 8003 22456 1026 TAD BEGDEV 8004 22457 7650 SNA CLA 8005 22460 5273 JMP BEG76X 8006 22461 6201 CDF 8007 22462 3765 DCA I (XOUTL6+3 8008 22463 3764 DCA I (XOUTL6-3 8009 22464 3763 DCA I (INTRP2-2 8010 22465 3762 DCA I (INTRP2+4 8011 22466 3761 DCA I (INTRP5 8012 22467 3760 DCA I (INTRP5+1 8013 22470 6211 CDF 10 8014 22471 3757 DCA I (INTRV2+1 8015 22472 5756 JMP I (BEG800 8016 8017 22473 1355 BEG76X, TAD (17 8018 22474 6117 MTON 8019 22475 7301 L0001 8020 22476 6115 MINT 8021 22477 7200 CLA /TURN ON INTERRUPTS 8022 22500 6211 CDF 10 8023 22501 1354 TAD (TLS 8024 22502 3753 DCA I (INTRRV 8025 22503 1352 TAD (MTLS 8026 22504 3751 DCA I (INTRV2+2 8027 22505 5756 JMP I (BEG800 8028 8029 22506 0000 BEG60X, 0 8030 22551 4613 PAGE 22552 6126 22553 4607 22554 6046 22555 0017 22556 3600 22557 4612 22560 5266 22561 5265 22562 5245 22563 5237 22564 3424 22565 3432 22566 5335 22567 0010 22570 6006 22571 1172 22572 5337 22573 3124 22574 5334 22575 0120 22576 0230 22577 7247 8031 22600 0000 USRLST, 0 8032 PAGE 8033 23000 7340 BEGOLD, L7777 8034 23001 1031 TAD BEGCOR /COUNT DOWN BY ONE FOR BREVITY OF LISTS 8035 23002 7106 CLL RTL 8036 23003 7004 RAL 8037 23004 1024 TAD BEGUSR /GET ADDR. OF ADDR. OF LIST 8038 23005 1377 TAD (BGLD1 8039 23006 3030 DCA SS 8040 23007 1430 TAD I SS 8041 23010 3030 DCA SS 8042 23011 1376 TAD (USRLST 8043 23012 3020 DCA USRPTR /SETUP TO SLIDE 8044 23013 1024 TAD BEGUSR 8045 23014 3027 DCA USRCTR /NO. OF SLIDES 8046 23015 1430 BEGOL1, TAD I SS 8047 23016 7106 CLL RTL 8048 23017 7006 RTL 8049 23020 0375 AND (7 8050 23021 7001 IAC 8051 23022 3420 DCA I USRPTR /USER NUMBER 8052 23023 2020 ISZ USRPTR 8053 23024 1430 TAD I SS 8054 23025 7112 CLL RTR 8055 23026 7012 RTR 8056 23027 7012 RTR 8057 23030 0375 AND (7 /SET FIELD 8058 23031 3420 DCA I USRPTR 8059 23032 2020 ISZ USRPTR 8060 23033 1430 TAD I SS 8061 23034 0374 AND (17 8062 23035 7001 IAC 8063 23036 3420 DCA I USRPTR /NUMBER OF BLOCKS 8064 23037 2030 ISZ SS 8065 23040 2020 ISZ USRPTR 8066 23041 2027 ISZ USRCTR 8067 23042 5215 JMP BEGOL1 8068 23043 5773 JMP I (BEG540 /CONTINUE ON...WE'VE ANSWERED QUESTIONS FOR HOM NOW. 8069 23044 3424 BGLD1, BGL28 8070 23045 3352 BGL27 8071 23046 3306 BGL26 8072 23047 3250 BGL25 8073 23050 3224 BGL24 8074 23051 3210 BGL23 8075 23052 3202 BGL22 8076 23053 3200 BGL21 8077 23054 3434 BGL38 8078 23055 3361 BGL37 8079 23056 3314 BGL36 8080 23057 3255 BGL35 8081 23060 3230 BGL34 8082 23061 3213 BGL33 8083 23062 3204 BGL32 8084 23063 3201 BGL31 8085 23064 3444 BGL48 8086 23065 3370 BGL47 8087 23066 3322 BGL46 8088 23067 3262 BGL45 8089 23070 3234 BGL44 8090 23071 3216 BGL43 8091 23072 3206 BGL42 8092 23073 3201 BGL41 8093 23074 3454 BGL58 8094 23075 3377 BGL57 8095 23076 3330 BGL56 8096 23077 3267 BGL55 8097 23100 3240 BGL54 8098 23101 3221 BGL53 8099 23102 3206 BGL52 8100 23103 3201 BGL51 8101 23104 3464 BGL68 8102 23105 3406 BGL67 8103 23106 3336 BGL66 8104 23107 3274 BGL65 8105 23110 3244 BGL64 8106 23111 3221 BGL63 8107 23112 3206 BGL62 8108 23113 3201 BGL61 8109 23114 3474 BGL78 8110 23115 3415 BGL77 8111 23116 3344 BGL76 8112 23117 3301 BGL75 8113 23120 3244 BGL74 8114 23121 3221 BGL73 8115 23122 3206 BGL72 8116 23123 3201 BGL71 8117 8118 8119 8120 8121 23124 0040 0040 8122 23125 0120 BEGIOT, 0120 8123 23126 0120 0120 8124 23127 0120 0120 8125 23130 0120 0120 8126 23131 0120 0120 8127 23132 0120 0120 8128 23133 0120 0120 8129 23173 1600 PAGE 23174 0017 23175 0007 23176 2600 23177 3044 8130 X=100 8131 /THE ENTRIES IN THIS TABLE ARE AS FOLLOWS: 8132 /LABELS INDICATE NUMBER OF FIELDS AND NUMBER OF USERS. 8133 / E.G. THE ENTRIES AT BGL32 ARE USED TO ALLOCATE 8134 / A 2 USER SYSTEM IN A 16K (HIGHEST FIELD=3) 8135 / MACHINE. 8136 /THERE IS ONE ENTRY FOR EACH USER IN THE CONFIGURATION. 8137 /EACH ENTRY CONTAINS THE FOLLOWING INFORMATION: 8138 / USER NUMBER MINUS ONE 8139 / USER FIELD 8140 / NUMBER OF BLOCKS MINUS ONE FOR THIS USER 8141 /E.G. THE ENTRIES AT BGL32 ARE: 8142 / BGL32, 03^X+17 8143 / 12^X+15 8144 /THIS INDICATES: 8145 / USER 1 IS IN FIELD 3 WITH 20 BLOCKS 8146 / USER 2 IS IN FIELD 2 WITH 16 BLOCKS 8147 8148 8149 8150 23200 0216 BGL21, 02^X+16 8151 BGL31, 8152 BGL41, 8153 BGL51, 8154 BGL61, 8155 23201 0317 BGL71, 03^X+17 8156 23202 0206 BGL22, 02^X+6 8157 23203 1206 12^X+6 8158 23204 0317 BGL32, 03^X+17 8159 23205 1215 12^X+15 8160 BGL42, 8161 BGL52, 8162 BGL62, 8163 23206 0417 BGL72, 04^X+17 8164 23207 1317 13^X+17 8165 23210 0206 BGL23, 02^X+6 8166 23211 1205 12^X+5 8167 23212 2103 21^X+3 8168 23213 0214 BGL33, 02^X+14 8169 23214 1307 13^X+7 8170 23215 2307 23^X+7 8171 23216 0417 BGL43, 04^X+17 8172 23217 1317 13^X+17 8173 23220 2214 22^X+14 8174 BGL53, 8175 BGL63, 8176 23221 0517 BGL73, 05^X+17 8177 23222 1417 14^X+17 8178 23223 2317 23^X+17 8179 23224 0203 BGL24, 02^X+3 8180 23225 1203 12^X+3 8181 23226 2203 22^X+3 8182 23227 3103 31^X+3 8183 23230 0307 BGL34, 03^X+7 8184 23231 1307 13^X+7 8185 23232 2205 22^X+5 8186 23233 3205 32^X+5 8187 23234 0317 BGL44, 03^X+17 8188 23235 1213 12^X+13 8189 23236 2407 24^X+7 8190 23237 3407 34^X+7 8191 23240 0517 BGL54, 05^X+17 8192 23241 1417 14^X+17 8193 23242 2317 23^X+17 8194 23243 3213 32^X+13 8195 BGL64, 8196 23244 0617 BGL74, 06^X+17 8197 23245 1517 15^X+17 8198 23246 2417 24^X+17 8199 23247 3317 33^X+17 8200 23250 0202 BGL25, 02^X+2 8201 23251 1202 12^X+2 8202 23252 2202 22^X+2 8203 23253 3102 31^X+2 8204 23254 4201 42^X+1 8205 23255 0305 BGL35, 03^X+5 8206 23256 1205 12^X+5 8207 23257 2304 23^X+4 8208 23260 3304 33^X+4 8209 23261 4204 42^X+4 8210 23262 0212 BGL45, 02^X+12 8211 23263 1407 14^X+7 8212 23264 2407 24^X+7 8213 23265 3307 33^X+7 8214 23266 4307 43^X+7 8215 23267 0517 BGL55, 05^X+17 8216 23270 1417 14^X+17 8217 23271 2212 22^X+12 8218 23272 3307 33^X+7 8219 23273 4307 43^X+7 8220 23274 0617 BGL65, 06^X+17 8221 23275 1517 15^X+17 8222 23276 2417 24^X+17 8223 23277 3317 33^X+17 8224 23300 4212 42^X+12 8225 23301 0717 BGL75, 07^X+17 8226 23302 1617 16^X+17 8227 23303 2517 25^X+17 8228 23304 3417 34^X+17 8229 23305 4317 43^X+17 8230 23306 0102 BGL26, 01^X+2 8231 23307 1201 12^X+1 8232 23310 2201 22^X+1 8233 23311 3201 32^X+1 8234 23312 4201 42^X+1 8235 23313 5201 52^X+1 8236 23314 0305 BGL36, 03^X+5 8237 23315 1304 13^X+4 8238 23316 2304 23^X+4 8239 23317 3204 32^X+4 8240 23320 4204 42^X+4 8241 23321 5102 51^X+2 8242 23322 0407 BGL46, 04^X+7 8243 23323 1407 14^X+7 8244 23324 2307 23^X+7 8245 23325 3307 33^X+7 8246 23326 4204 42^X+4 8247 23327 5204 52^X+4 8248 23330 0517 BGL56, 05^X+17 8249 23331 1211 12^X+11 8250 23332 2407 24^X+7 8251 23333 3407 34^X+7 8252 23334 4307 43^X+7 8253 23335 5307 53^X+7 8254 23336 0617 BGL66, 06^X+17 8255 23337 1517 15^X+17 8256 23340 2417 24^X+17 8257 23341 3211 32^X+11 8258 23342 4307 43^X+7 8259 23343 5307 53^X+7 8260 23344 0717 BGL76, 07^X+17 8261 23345 1617 16^X+17 8262 23346 2517 25^X+17 8263 23347 3417 34^X+17 8264 23350 4317 43^X+17 8265 23351 5211 52^X+11 8266 23352 0201 BGL27, 02^X+1 8267 23353 1201 12^X+1 8268 23354 2201 22^X+1 8269 23355 3201 32^X+1 8270 23356 4101 41^X+1 8271 23357 5200 52^X+0 8272 23360 6100 61^X+0 8273 23361 0204 BGL37, 02^X+4 8274 23362 1303 13^X+3 8275 23363 2303 23^X+3 8276 23364 3303 33^X+3 8277 23365 4303 43^X+3 8278 23366 5203 52^X+3 8279 23367 6102 61^X+2 8280 23370 0407 BGL47, 04^X+7 8281 23371 1407 14^X+7 8282 23372 2305 23^X+5 8283 23373 3304 33^X+4 8284 23374 4304 43^X+4 8285 23375 5204 52^X+4 8286 23376 6203 62^X+3 8287 23377 0210 BGL57, 02^X+10 8288 23400 1507 15^X+7 8289 23401 2507 25^X+7 8290 23402 3407 34^X+7 8291 23403 4407 44^X+7 8292 23404 5307 53^X+7 8293 23405 6307 63^X+7 8294 23406 0617 BGL67, 06^X+17 8295 23407 1517 15^X+17 8296 23410 2210 22^X+10 8297 23411 3407 34^X+7 8298 23412 4407 44^X+7 8299 23413 5307 53^X+7 8300 23414 6307 63^X+7 8301 23415 0717 BGL77, 07^X+17 8302 23416 1617 16^X+17 8303 23417 2517 25^X+17 8304 23420 3417 34^X+17 8305 23421 4210 42^X+10 8306 23422 5307 53^X+7 8307 23423 6307 63^X+7 8308 23424 0201 BGL28, 02^X+1 8309 23425 1201 12^X+1 8310 23426 2101 21^X+1 8311 23427 3100 31^X+0 8312 23430 4200 42^X+0 8313 23431 5200 52^X+0 8314 23432 6200 62^X+0 8315 23433 7200 72^X+0 8316 23434 0303 BGL38, 03^X+3 8317 23435 1203 12^X+3 8318 23436 2203 22^X+3 8319 23437 3302 33^X+2 8320 23440 4302 43^X+2 8321 23441 5302 53^X+2 8322 23442 6302 63^X+2 8323 23443 7101 71^X+1 8324 23444 0207 BGL48, 02^X+7 8325 23445 1405 14^X+5 8326 23446 2404 24^X+4 8327 23447 3404 34^X+4 8328 23450 4303 43^X+3 8329 23451 5303 53^X+3 8330 23452 6303 63^X+3 8331 23453 7303 73^X+3 8332 23454 0407 BGL58, 04^X+7 8333 23455 1407 14^X+7 8334 23456 2307 23^X+7 8335 23457 3307 33^X+7 8336 23460 4207 42^X+7 8337 23461 5505 55^X+5 8338 23462 6504 65^X+4 8339 23463 7504 75^X+4 8340 23464 0617 BGL68, 06^X+17 8341 23465 1507 15^X+7 8342 23466 2507 25^X+7 8343 23467 3407 34^X+7 8344 23470 4407 44^X+7 8345 23471 5307 53^X+7 8346 23472 6307 63^X+7 8347 23473 7207 72^X+7 8348 23474 0717 BGL78, 07^X+17 8349 23475 1617 16^X+17 8350 23476 2517 25^X+17 8351 23477 3407 34^X+7 8352 23500 4407 44^X+7 8353 23501 5307 53^X+7 8354 23502 6307 63^X+7 8355 23503 7207 72^X+7 8356 8357 PAGE 8358 8359 23600 6221 BEG800, CDF 20 8360 23601 1737 TAD I BEG804 8361 23602 4777 JMS I (BEG900 8362 23603 1376 TAD (-4 8363 23604 4342 JMS BEGZER 8364 23605 1375 TAD (READY 8365 23606 4777 JMS I (BEG900 8366 23607 1374 TAD (-10 8367 23610 4342 JMS BEGZER 8368 23611 7340 L7777 8369 23612 4777 JMS I (BEG900 8370 23613 4777 JMS I (BEG900 8371 23614 1740 TAD I BEG805 8372 23615 1373 TAD (6006-10 8373 23616 4777 JMS I (BEG900 8374 23617 1735 TAD I BEG802 8375 23620 4777 JMS I (BEG900 8376 23621 1372 TAD (-5 8377 23622 4342 JMS BEGZER 8378 23623 1371 TAD (BUFFER 8379 23624 1736 TAD I BEG803 8380 23625 4777 JMS I (BEG900 8381 23626 1371 TAD (BUFFER 8382 23627 1736 TAD I BEG803 8383 23630 4777 JMS I (BEG900 8384 23631 1371 TAD (BUFFER 8385 23632 1736 TAD I BEG803 8386 23633 4777 JMS I (BEG900 8387 23634 1370 TAD (BUFFER-40 8388 23635 1736 TAD I BEG803 8389 23636 4777 JMS I (BEG900 8390 23637 1370 TAD (BUFFER-40 8391 23640 1736 TAD I BEG803 8392 23641 4777 JMS I (BEG900 8393 23642 7346 L7775 8394 23643 4342 JMS BEGZER 8395 23644 1367 TAD (LINE1 8396 23645 1736 TAD I BEG803 8397 23646 4777 JMS I (BEG900 8398 23647 1367 TAD (LINE1 8399 23650 1736 TAD I BEG803 8400 23651 4777 JMS I (BEG900 8401 23652 1737 TAD I BEG804 8402 23653 4777 JMS I (BEG900 8403 23654 1366 TAD (LINE0 8404 23655 1736 TAD I BEG803 8405 23656 4777 JMS I (BEG900 8406 23657 1365 TAD (BUFCOM 8407 23660 1736 TAD I BEG803 8408 23661 4777 JMS I (BEG900 8409 23662 4777 JMS I (BEG900 8410 23663 4777 JMS I (BEG900 8411 23664 1364 TAD (1617 /"NO" 8412 23665 4777 JMS I (BEG900 8413 23666 1363 TAD (1605 /"NE" 8414 23667 4777 JMS I (BEG900 8415 23670 4777 JMS I (BEG900 8416 23671 1362 TAD (560 /"E0" 8417 23672 4777 JMS I (BEG900 8418 23673 1361 TAD (XREADC 8419 23674 4777 JMS I (BEG900 8420 23675 1360 TAD (XPRNTC 8421 23676 4777 JMS I (BEG900 8422 23677 1357 TAD (XFREE2 8423 23700 4777 JMS I (BEG900 8424 23701 1356 TAD (XFREE3 8425 23702 4777 JMS I (BEG900 8426 23703 1341 TAD BEGBAS 8427 23704 4777 JMS I (BEG900 8428 23705 1341 TAD BEGBAS 8429 23706 1355 TAD (400 8430 23707 3341 DCA BEGBAS 8431 23710 1354 TAD (-12 8432 23711 4342 JMS BEGZER 8433 23712 7301 L0001 8434 23713 4777 JMS I (BEG900 8435 23714 1353 TAD (0203 8436 23715 4777 JMS I (BEG900 8437 23716 1352 TAD (5555 8438 23717 4777 JMS I (BEG900 8439 23720 2335 ISZ BEG802 8440 23721 2335 ISZ BEG802 8441 23722 2335 ISZ BEG802 8442 23723 2336 ISZ BEG803 8443 23724 2336 ISZ BEG803 8444 23725 2336 ISZ BEG803 8445 23726 2337 ISZ BEG804 8446 23727 2337 ISZ BEG804 8447 23730 2337 ISZ BEG804 8448 23731 2340 ISZ BEG805 8449 23732 2024 ISZ BEGUSR 8450 23733 5200 JMP BEG800 8451 23734 5751 JMP I (FINISH 8452 8453 23735 4000 BEG802, BEGLST 8454 23736 4002 BEG803, BEGLST+2 8455 23737 4001 BEG804, BEGLST+1 8456 23740 3124 BEG805, BEGIOT-1 8457 23741 0000 BEGBAS, 0000 /BUFFERS BEGIN AT 0 IN FIELD 2 8458 8459 23742 0000 BEGZER, 0 8460 23743 3350 DCA BEGZCT 8461 23744 4777 JMS I (BEG900 8462 23745 2350 ISZ BEGZCT 8463 23746 5344 JMP .-2 8464 23747 5742 JMP I BEGZER 8465 8466 23750 0000 BEGZCT, 0 8467 8468 23751 7200 PAGE 23752 5555 23753 0203 23754 7766 23755 0400 23756 6007 23757 6000 23760 7356 23761 3702 23762 0560 23763 1605 23764 1617 23765 0100 23766 0162 23767 0164 23770 0000 23771 0040 23772 7773 23773 5776 23774 7770 23775 0464 23776 7774 23777 4201 8469 24000 0000 BEGLST, 0 8470 PAGE 8471 8472 24200 5400 BEG801, ORG1 /KLUDGE TO MAKE EXTRA ROOM 8473 8474 24201 0000 BEG900, 0 8475 24202 6211 CDF 10 8476 24203 3600 DCA I BEG801 8477 24204 6221 CDF 20 8478 24205 2200 ISZ BEG801 8479 24206 5601 JMP I BEG900 8480 8481 24207 3711 OS8ERM, TEXT "_ILLEGAL OS/8 DEVICE FOUND_NO BOOTSTRAP POSSIBLE!__" 24210 1414 24211 0507 24212 0114 24213 4017 24214 2357 24215 7040 24216 0405 24217 2611 24220 0305 24221 4006 24222 1725 24223 1604 24224 3716 24225 1740 24226 0217 24227 1724 24230 2324 24231 2201 24232 2040 24233 2017 24234 2323 24235 1102 24236 1405 24237 4137 24240 3700 8482 24241 3724 OS8MSG, TEXT "_TO BOOTSTRAP BACK " 24242 1740 24243 0217 24244 1724 24245 2324 24246 2201 24247 2040 24250 0201 24251 0313 24252 4000 8483 24253 1723 OS8M1, TEXT "OS/8 " 24254 5770 24255 4000 8484 24256 1517 OS8M2, TEXT "MONITOR:_ LOAD ADDRESS 07600_ AND START__" 24257 1611 24260 2417 24261 2272 24262 3740 24263 1417 24264 0104 24265 4001 24266 0404 24267 2205 24270 2323 24271 4060 24272 6766 24273 6060 24274 3740 24275 0116 24276 0440 24277 2324 24300 0122 24301 2437 24302 3700 8485 24303 3711 BEGME, TEXT %_INVALID RESPONSE_% 24304 1626 24305 0114 24306 1104 24307 4022 24310 0523 24311 2017 24312 1623 24313 0537 24314 0000 8486 24315 3737 BEGM1, TEXT %__EDUSYSTEM 25 BASIC__% 24316 0504 24317 2523 24320 3123 24321 2405 24322 1540 24323 6265 24324 4002 24325 0123 24326 1103 24327 3737 24330 0000 8487 24331 3716 BEGM2, TEXT %_NUMBER OF USERS (1 TO 8)?% 24332 2515 24333 0205 24334 2240 24335 1706 24336 4025 24337 2305 24340 2223 24341 4050 24342 6140 24343 2417 24344 4070 24345 5177 24346 0000 8488 24347 3720 BEGM4, TEXT %_PDP-8/L COMPUTER (Y OR N)?% 24350 0420 24351 5570 24352 5714 24353 4003 24354 1715 24355 2025 24356 2405 24357 2240 24360 5031 24361 4017 24362 2240 24363 1651 24364 7700 8489 24365 3724 BEGM5, TEXT %_TELETYPE #1 DEVICE CODE?% 24366 0514 24367 0524 24370 3120 24371 0540 24372 4361 24373 4004 24374 0526 24375 1103 24376 0540 24377 0317 24400 0405 24401 7700 8490 BEGM5A=BEGM5+5 8491 24402 3723 BEGM7, TEXT %_STANDARD REMOTE TELETYPE CODES (Y OR N)?% 24403 2401 24404 1604 24405 0122 24406 0440 24407 2205 24410 1517 24411 2405 24412 4024 24413 0514 24414 0524 24415 3120 24416 0540 24417 0317 24420 0405 24421 2340 24422 5031 24423 4017 24424 2240 24425 1651 24426 7700 8492 /BEGM7A=BEGM7+4 8493 /BEGM7B, TEXT %D REMOTE% 8494 /*.-1 8495 /BEGM7C, TEXT %D UNUSED% 8496 /*.-1 8497 /BEGM7D, TEXT % _UNUSED% 8498 /*.-1 8499 24427 3706 BEGMFL, TEXT %_FIELD% 24430 1105 24431 1404 24432 0000 8500 24433 3724 BEGMXX, TEXT %_THERE ARE % 24434 1005 24435 2205 24436 4001 24437 2205 24440 4000 8501 24441 4002 BEGMX1, TEXT % BLOCKS LEFT IN THIS FIELD._ YOUR ALLOCATION FOR USER #% 24442 1417 24443 0313 24444 2340 24445 1405 24446 0624 24447 4011 24450 1640 24451 2410 24452 1123 24453 4006 24454 1105 24455 1404 24456 5637 24457 4031 24460 1725 24461 2240 24462 0114 24463 1417 24464 0301 24465 2411 24466 1716 24467 4006 24470 1722 24471 4025 24472 2305 24473 2240 24474 4300 8502 24475 4027 BEGTTI, TEXT % WILL BE HOW MANY BLOCKS?% 24476 1114 24477 1440 24500 0205 24501 4010 24502 1727 24503 4015 24504 0116 24505 3140 24506 0214 24507 1703 24510 1323 24511 7700 8503 24512 3737 BEGM6, TEXT %__END OF DIALOGUE_% 24513 0516 24514 0440 24515 1706 24516 4004 24517 1101 24520 1417 24521 0725 24522 0537 24523 0000 8504 24524 3702 WNGDM, TEXT %_BLOCK SIZES DON'T WORK--HAVE TO START AGAIN__% 24525 1417 24526 0313 24527 4023 24530 1132 24531 0523 24532 4004 24533 1716 24534 4724 24535 4027 24536 1722 24537 1355 24540 5510 24541 0126 24542 0540 24543 2417 24544 4023 24545 2401 24546 2224 24547 4001 24550 0701 24551 1116 24552 3737 24553 0000 8505 24554 3723 BEGMQ, TEXT %_STANDARD USER STORAGE ALLOCATION (Y OR N)?% 24555 2401 24556 1604 24557 0122 24560 0440 24561 2523 24562 0522 24563 4023 24564 2417 24565 2201 24566 0705 24567 4001 24570 1414 24571 1703 24572 0124 24573 1117 24574 1640 24575 5031 24576 4017 24577 2240 24600 1651 24601 7700 8506 24602 3711 BEGM6A, TEXT %_IS THE ABOVE CORRECT (Y OR N)?% 24603 2340 24604 2410 24605 0540 24606 0102 24607 1726 24610 0540 24611 0317 24612 2222 24613 0503 24614 2440 24615 5031 24616 4017 24617 2240 24620 1651 24621 7700 8507 24622 4015 BEGM8, TEXT % MORE?% 24623 1722 24624 0577 24625 0000 8508 24626 3701 BEGM9, TEXT %_ANY UNUSED TERMINALS (Y OR N)?% 24627 1631 24630 4025 24631 1625 24632 2305 24633 0440 24634 2405 24635 2215 24636 1116 24637 0114 24640 2340 24641 5031 24642 4017 24643 2240 24644 1651 24645 7700 8509 24646 3704 BEGM10, TEXT %_DEVICE CODE?% 24647 0526 24650 1103 24651 0540 24652 0317 24653 0405 24654 7700 8510 24655 3742 LDRERR, TEXT %_"EDU" NOT ASSIGNED TO 0S/8 DEVICE_OR IT'S WRITE LOCKED% 24656 0504 24657 2542 24660 4016 24661 1724 24662 4001 24663 2323 24664 1107 24665 1605 24666 0440 24667 2417 24670 4060 24671 2357 24672 7040 24673 0405 24674 2611 24675 0305 24676 3717 24677 2240 24700 1124 24701 4723 24702 4027 24703 2211 24704 2405 24705 4014 24706 1703 24707 1305 24710 0400 8511 24711 3737 LDRER2, TEXT %__RETURNING TO OS/8_% 24712 2205 24713 2425 24714 2216 24715 1116 24716 0740 24717 2417 24720 4017 24721 2357 24722 7037 24723 0000 8512 24724 3742 CHNERR, TEXT %_"SYS:EDU25.SV" NOT FOUND% 24725 2331 24726 2372 24727 0504 24730 2562 24731 6556 24732 2326 24733 4240 24734 1617 24735 2440 24736 0617 24737 2516 24740 0400 8513 24741 3737 BEGMRK, TEXT %__IS THE SYSTEM DEVICE AN RK8E (Y OR N)?% 24742 1123 24743 4024 24744 1005 24745 4023 24746 3123 24747 2405 24750 1540 24751 0405 24752 2611 24753 0305 24754 4001 24755 1640 24756 2213 24757 7005 24760 4050 24761 3140 24762 1722 24763 4016 24764 5177 24765 0000 8514 PAGE 8515 8516 LINK=XENTER+1 8517 25000 4437 PLINK, SETPT 8518 25001 2064 ISZ ENTRIES 8519 25002 7410 SKP 8520 25003 5265 JMP LINKF /TAPE FULL 8521 25004 1412 LINK2, TAD I XR1 8522 25005 7650 SNA CLA 8523 25006 5211 JMP .+3 8524 25007 1377 TAD (3 8525 25010 4435 BUMPXR 8526 25011 1412 TAD I XR1 8527 25012 7041 CIA 8528 25013 1062 TAD BLOCK 8529 25014 3062 DCA BLOCK 8530 25015 2064 ISZ ENTRIES 8531 25016 5204 JMP LINK2 /IGNORE ALL BUT THE LAST ENTRY 8532 25017 1412 TAD I XR1 /SEE IF IT'S AN EMPTY 8533 25020 7640 SZA CLA 8534 25021 5265 JMP LINKF /ITS NOT TAPE FULL 8535 25022 1412 TAD I XR1 /IT IS, SEE IF ITS BIG ENOUGH 8536 25023 3271 DCA LINKS /SAVE SIZE OF EMPTY 8537 25024 1271 TAD LINKS 8538 25025 7100 CLL 8539 25026 1060 TAD TEMPX1 8540 25027 7630 SZL CLA 8541 25030 5265 JMP LINKF /ITS NOT BIG ENOUGH 8542 25031 1776 TAD I (CATBLK /SEE IF ON THE LAST BLOCK 8543 25032 1375 TAD (-14 8544 25033 7630 SZL CLA 8545 25034 5265 JMP LINKF /NO WHERE TO LINK TO 8546 25035 7326 L0002 8547 25036 1776 TAD I (CATBLK 8548 25037 7110 CLL RAR 8549 25040 3774 DCA I (DIRBUF+2 /LINK THE BLOCK 8550 25041 2773 ISZ I (DIRBUF /RESET # ENTRIES 8551 25042 1062 TAD BLOCK 8552 25043 3270 DCA LBLOCK /SAVE BLOCK GETCAT HITS IT 8553 25044 7100 CLL 8554 25045 1776 TAD I (CATBLK 8555 25046 4434 GETCAT /WRITE IT OUT 8556 25047 1270 TAD LBLOCK 8557 25050 3772 DCA I (DIRBUF+1 /SET UP STARTING BLOCK NUMBER 8558 25051 3412 DCA I XR1 /MAKE AN EMPTY 8559 25052 1271 TAD LINKS 8560 25053 3412 DCA I XR1 /OF THE RIGHT SIZE 8561 25054 7240 STA 8562 25055 3773 DCA I (DIRBUF /1 ENTRY FOR THIS BLOCK 8563 25056 3774 DCA I (DIRBUF+2 /ZERO LINK 8564 25057 7326 L0002 8565 25060 1776 TAD I (CATBLK 8566 25061 4434 GETCAT /L=0 SO WRITE 8567 25062 4423 CALL 8568 25063 0056 CENTER^2 8569 25064 3235 MLOOP /GOOD LINK RETURN TO MLOOP 8570 25065 4423 LINKF, CALL 8571 25066 0056 CENTER^2 8572 25067 3175 ENTERF /FAILURE RETURN 8573 25070 0000 LBLOCK, 0 8574 25071 0000 LINKS, 0 8575 25072 0000 GCATS, 0 8576 8577 25172 4210 PAGE 25173 4207 25174 4211 25175 7764 25176 3450 25177 0003 8578 25200 0000 SYSINI, 0 8579 25201 5600 JMP I SYSINI 8580 CENTER=27 8581 CLINK=30 8582 *7200 8583 27200 6221 FINISH, CDF 20 8584 27201 1645 TAD I XPNT /GET ADDRESS OF TOP OF SWAP REGION 8585 27202 3245 DCA XPNT 8586 27203 6211 CDF 10 8587 27204 3645 DCA I XPNT /CLEAR THIS STUFF 8588 27205 2245 ISZ XPNT 8589 27206 5204 JMP .-2 8590 27207 6221 CDF 20 8591 27210 1032 TAD KLTOP 8592 27211 7041 CIA 8593 27212 1246 TAD FIN001 8594 27213 3245 DCA XPNT 8595 27214 3646 DCA I FIN001 8596 27215 2246 ISZ FIN001 8597 27216 7000 NOP 8598 27217 2245 ISZ XPNT 8599 27220 5214 JMP .-4 8600 27221 1247 FIN002, TAD BGCORS 8601 27222 7106 CLL RTL 8602 27223 7004 RAL 8603 27224 1244 TAD FINCDF 8604 27225 3226 DCA XCDF 8605 27226 0000 XCDF, 0 8606 27227 3645 DCA I XPNT /CLEAR FIELD 8607 27230 2245 ISZ XPNT 8608 27231 5227 JMP .-2 8609 27232 7340 L7777 8610 27233 1247 TAD BGCORS 8611 27234 3247 DCA BGCORS 8612 27235 7340 L7777 8613 27236 1247 TAD BGCORS 8614 27237 7640 SZA CLA 8615 27240 5221 JMP FIN002 /ANOTHER FIELD TO WIPE STILL 8616 27241 6203 FINENT, CIF CDF 8617 27242 5643 JMP I .+1 8618 27243 0357 ENTRY 8619 27244 6201 FINCDF, CDF 8620 27245 4200 XPNT, BEG801 8621 27246 7250 FIN001, FIN003 8622 27247 0000 BGCORS, 0 8623 FIN003, 8624 /PRECEDING THIS CODE IN FIELD 2 IS THE FOLLOWING: 8625 / CLA /ENTRY FROM INTERRUPT ROUTINE 8626 / 6XX5 /UNUSED CODES 8627 / . 8628 / . 8629 / . 8630 / JMP KL8INT 8631 / L0001 /ENTRY FROM SCHEDULER 8632 / 6XX5 /USED CODES 8633 / . 8634 / . 8635 / . 8636 / 8637 8638 *7755 8639 8640 KL8LOD, /FIX THE POINTERS EVENTUALLY 8641 27755 7701 KL8FIX, CLA MQA 8642 27756 7001 IAC 8643 27757 7421 MQL 8644 27760 6203 CIF CDF 8645 27761 6002 IOF /DISABLE INTRPT TEMPORARILY (UNTIL LOOK IS ISZ'D) 8646 27762 1776 TAD I PLOOKS /RESET POINTER 8647 27763 3777 DCA I PLOOK 8648 27764 5765 JMP I .+1 /INTERRUPT ON AGAIN AFTER THIS JUMP 8649 27765 0210 KL8LF0 /BACK TO SCHEDULER 8650 27766 1774 KL8INT, TAD I PSAVLK /RESTORE LINK 8651 27767 7104 CLL RAL 8652 27770 1775 TAD I PSAVAC /RESTORE AC 8653 27771 6203 CIF CDF 8654 27772 5773 JMP I .+1 8655 27773 5313 KL8LFL /BACK TO INTERRUPT ROUTINE 8656 8657 27774 5326 PSAVLK, SAVLK 8658 27775 5325 PSAVAC, SAVAC 8659 27776 0121 PLOOKS, LOOKST 8660 27777 0120 PLOOK, LOOK 8661 8662 PAGE 8663 $