1 /EDUSYSTEM 25 2 / 3 /DEC-S8-ED25B-B-LA 4 / 5 /THE INFORMATION IN THIS LISTING IS SUBJECT TO CHANGE WITHOUT 6 /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL 7 /EQUIPMENT CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO 8 /RESPONSIBILITY FOR ANY ERRORS THAT MAY APPEAR IN THIS LISTING. 9 / 10 /THE SOFTWARE DESCRIBED IN THIS LISTING IS FURNISHED TO THE 11 /PURCHASER UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM 12 /AND CAN BE COPIED (WITH INCLUSION OF DIGITAL'S COPYRIGHT 13 /NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT AS MAY OTHERWISE 14 /BE PROVIDED IN WRITING BY DIGITAL. 15 / 16 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR 17 /THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT 18 /IS NOT SUPPLIED BY DIGITAL. 19 / 20 /COPYRIGHT (C) 1972,1973,1975 BY DIGITAL EQUIPMENT CORPORATION. 21 /EDUSYSTEM 25 BASIC 22 23 /VERSION 03.00 10 MARCH 1975 24 25 /MARK BRAMHALL 26 /DIGITAL EQUIPMENT CORP. 27 28 /BARRY SMITH 29 /STEVE POULSEN 30 /OREGON MUSEUM OF SCIENCE & INDUSTRY 31 32 /JOHN O'DONNELL 33 /YALE UNIVERSITY 34 35 /MARK ROSENTHAL 36 /JAMES DEMPSEY 37 /DIGITAL EQUIPMENT CORP. 38 39 /STEVE JOHNSON 40 /DIGITAL EQUIPMENT CORP. 41 /EDUSYSTEM 25 BASIC IS FOR THE PDP-8/E, -8/F, -8/M, -8/I, -8/L WITH 42 /12K OR MORE MEMORY AND EITHER THE DC02 OR PT08(KL8E) OPTION 43 /AND TC08 DECTAPE CONTROLLER WITH TU56 OR TWO TU55 TRANSPORT(S) 44 /OR RK8E DISK 45 /NOTE: START ADDRESS IS 20200. 46 47 /DEFINITIONS 48 49 FIXMRI FGET=0000 /FLOATING INSTRUCTIONS 50 FIXMRI FADD=1000 51 FIXMRI FSUB=2000 52 FIXMRI FMUL=3000 53 FIXMRI FDIV=4000 54 FIXMRI FJMP=5000 55 FIXMRI FCMP=6000 56 FIXMRI FPUT=7000 57 58 FINT=JMS I 7 59 FEXT=0000 60 FXIT=0000 61 FNOR=6010 62 FSKP=6000 63 FSNE=6040 64 FSEQ=6050 65 FSGE=6100 66 FSLT=6110 67 FSGT=6140 68 FSLE=6150 69 70 CAF=6007 71 BSW=7002 72 MQL=7421 73 MQA=7501 74 75 SPL=6102 76 77 MTKF=6123 78 MTPF=6113 79 MTON=6117 80 MINT=6115 81 MINS=6125 82 MKSF=6111 83 MKRB=6116 84 MTSF=6121 85 MTCF=6122 86 MTLS=6126 87 88 L0001=CLL CLA IAC 89 L0002=CLL CLA CML RTL 90 /DON'T BE TEMPTED TO USE THESE. MICRO-PROGRAMMING ROTATES AND IAC'S 91 /ARE THE DEVIL'S HANDIWORK. 92 /(IN OTHER WORDS, IT'S A NO-NO ON A STRAIGHT 8) 93 /L0003=CLL CLA CML IAC RAL 94 /L0004=CLL CLA IAC RTL 95 L7777=CLL CLA CMA 96 L7776=CLL CLA CMA RAL 97 L7775=CLL CLA CMA RTL 98 L3777=CLL CLA CMA RAR 99 L5777=CLL CLA CMA RTR 100 L4000=CLL CLA CML RAR 101 L2000=CLL CLA CML RTR 102 103 SWAP=10 104 BUF=20 /USER DECTAPE BUFFERS 105 106 /DECTAPE IOTS. 107 DTXA=6764 108 DTLB=6774 109 DTRB=6772 110 DTRA=6761 111 DTCA=6762 112 DTLA=6766 113 DTSF=6771 114 /PAGE ZERO 115 116 FIELD 0 117 118 PAGE 0 119 000000 0000 0 120 000001 5402 JMP I .+1 /INTERRUPT HANDLER 121 000002 4173 INTR8E 122 000003 0000 USER, 0 /INTERRUPT USER COUNTER 123 000004 0000 SIN, 0 /INTERRUPT TEMPORARY 124 000005 0000 TEMP1, 0 /INTERRUPT TEMP 125 000006 4155 TEMP2, USER0 /INTERRUPT TEMP 126 000007 5643 FPNT /FLOATING POINT 127 000010 0000 XREG, 0 /INTERRUPT XREG 128 000011 0000 XREG2, 0 /INTERRUPT XREG 129 000012 0000 XREG3, 0 /GENERAL XREG 130 000013 0000 FLTXR, 0 /FLOATING XREG 131 000014 0000 FLTXR2, 0 /FLOATING XREG 132 / CHANGING THE SWAP AREA??????? 133 /BE SURE TO TAKE A LOOK AT BEG800 134 /TO MAKE SURE THE AREAS ARE ALIGNED PROPERLY 135 /WITH THE DUMMY HERE!!!! 136 STSWAP=. /START OF SWAP 137 138 000015 7776 PDLXR, TOP /PUSH-DOWN XREG 139 000016 0000 AXIN, 0 /PACKING XREG 140 TEXTP=. /TEXT POINTERS 141 000017 0000 AXOUT, 0 /UNPACK XREG 142 000020 0000 GTEM, 0 /UNPACK SWITCH 143 000021 0000 XCT, 0 /UNPACK SWITCH 144 000022 0465 PC, READY /PROGRAM RESTART 145 000023 0000 ADD, 0 /PACK TEMPORARY 146 000024 0000 XCTIN, 0 /PACK SWITCH 147 SUBS=XCTIN /SUBSCRIPT 148 000025 0000 PT1, 0 /FLOATING POINTER 149 000026 0000 CHAR, 0 /CHARACTER 150 000027 0000 LINEPC, 0 /LINE POINTER 151 000030 0000 LINENO, 0 /LINE NUMBER 152 000031 0000 LASTLN, 0 /LAST LINE POINTER 153 MODE=LASTLN /FOR MINI-STRINGS 154 000032 0000 SPACSW, 0 /0 IS IGNORE SPACES 155 000033 7777 DINPUT, -1 /-1 FOR BREAK ON CR ONLY 156 /0 FOR BREAK ON ANY AND NO ECHO 157 000034 0000 OUTPUT, 0 /0 IS ECHO 158 000035 6036 XIOT, KRB /INPUT IOT 159 000036 0000 XFIELD, 0 /USER FIELD 160 000037 0000 DATAPC, 0 /LINE NUMBER OF DATA STATEMENT 161 000040 0000 0 /DATA POINTER 162 000041 0000 0 /DATA TEMPORARY 163 000042 0000 0 /DATA UNPACK SWITCH 164 000043 0000 0 /DATA CHARACTER 165 000044 0040 IPTRI, BUFFER /INPUT BUFFER FILL 166 000045 0040 IPTRO, BUFFER /INPUT BUFFER EMPTY 167 000046 0040 IPTR0, BUFFER /START OF BUFFER 168 000047 0000 OPTRI, BUFFER-40 /OUTPUT BUFFER FILL 169 000050 0000 OPTRO, BUFFER-40 /OUTPUT BUFFER EMPTY 170 000051 0000 TELSW, 0 /TTY BUSY SWITCH 171 000052 0000 PACKST, 0 /START OF PACKING 172 000053 0000 PACKND, 0 /POINTER TO END OF PACKING 173 000054 0164 BUFR, LINE1 /NEXT FREE SPACE 174 STARTV=BUFR /START OF VARIABLES 175 000055 0164 LASTV, LINE1 /LAST DEFINED VARIABLE 176 000056 7776 PDLST, TOP /START OF PUSH-DOWN 177 000057 0162 ALINE0, LINE0 /POINTER TO DUMMY LINE 178 000060 0100 COMBUF, BUFCOM /COMMAND BUFFER 179 000061 0000 PRNTC1, 0 /PRINT ZONE COUNT 180 000062 0000 ERLINE, 0 /ERROR LINE 181 000063 1617 NAME, 1617 /PROGRAM NAME 182 000064 1605 1605 183 000065 0000 0 184 000066 0560 EXTEN, 560 /EXTENSION OF FILE ON DECTAPE 185 READC=JMS I . 186 000067 3702 PREADC, XREADC 187 PRINTC=JMS I . 188 000070 7343 PPRINT, XPRNTC 189 FREE2=JMS I . 190 000071 6000 PFREE2, XFREE2 191 FREE13=JMS I . 192 000072 6007 PFREE3, XFREE3 193 194 000073 5400 BASE, 5400 195 000074 0000 IPNTR, 0 196 000075 0000 I3, 0 197 000076 0000 IBLK, 0 198 000077 0000 IBLKH, 0 199 000100 0000 OPNTR, 0 200 000101 0000 O3, 0 201 000102 0000 OBLK, 0 202 000103 0000 OBLKH, 0 203 000104 0000 OMAX, 0 204 000105 0465 CHAINP, READY /'CHAIN' POINTER 205 000106 0001 FRNDX, 0001 206 000107 0203 0203 207 000110 5555 5555 208 209 ENSWAP=.-1 /END OF SWAP 210 DECK=XFIELD /USER ON DECK 211 000111 0000 SORTCN, 0 /SORT CONSTANT 212 000112 0000 T1, 0 /THREE TEMPS 213 000113 0000 T2, 0 214 000114 0000 CNTR, 0 /COUNTER 215 000115 0000 T3, 0 216 000116 0000 THISOP, 0 /CURRENT OP 217 000117 0000 LASTOP, 0 /LAST OP 218 EFOP=CNTR /FUNCTION OP 219 000120 4154 LOOK, USER0-1 /USER BEING RUN OR LOOKED AT 220 /SET TO USER4-5+#USERS IN INIT 221 000121 4154 LOOKST, USER0-1 /TO RESET LOOKING 222 000122 6167 FLARGP, FLARG /POINTER TO TEMP FLAC 223 000123 5442 INTEGE, FIX /FIX THE FLAC ROUTINE 224 /KEEP THE NEXT 8 LOCATIONS TOGETHER PLEASE. 225 000124 0015 CCR, 15 /CR 226 000125 0007 C7, 7 /BELL 227 000126 0177 C177, 177 /RUBOUT 228 000127 0137 C137, 137 /BACK ARROW 229 000130 7777 LSTMOD, -1 /SET BY *INPUT* 230 IFNZRO STSWAP-15 231 STSWM1, 232 000131 0014 C14, 14 /FF 233 000132 0012 CLF, 12 /LINE FEED 234 000133 7766 M12, -12 /-10 DECIMAL 235 000134 0077 C77, 77 /RIGHT MASK 236 000135 7772 M6, -6 /MESSAGE LENGTH 237 000136 0010 C10, 10 238 000137 7770 M10, -10 239 000140 7700 M100, -100 /CHARACTER TEST 240 C7700=M100 /LEFT MASK 241 000141 7774 M4, -4 /CHARACTER COUNT 242 000142 0040 C40, 40 243 000143 0003 C3, 3 244 /NEW INSTRUCTIONS 245 GETC=JMS I . /UNPACK A CHAR 246 000144 4051 XGETC 247 SORTJ=JMS I . /SORT JUMP 248 000145 4735 XSORTJ 249 SORTC=JMS I . /SORT 250 000146 4705 ASORTC, XSORTC 251 PUSHA=JMS I . /SAVE AC 252 000147 1702 XPUSHA 253 PUSHJ=JMS I . /PUSH JUMP 254 000150 1715 XPUSHJ 255 PUSHF=JMS I . /SAVE FLOATING DATA 256 000151 1735 XPUSHF 257 POPA=JMS I . /RESTORE AC 258 000152 5367 XPOPA 259 POPJ=JMP I . /POP JUMP 260 000153 5703 XPOPJ 261 POPF=JMS I . /RESTORE FLOATING DATA 262 000154 4000 XPOPF 263 FLGET=JMS I . /FLOATING GET 264 000155 5141 XFLGET 265 FLPUT=JMS I . /FLOATING PUT 266 000156 6400 XFLPUT 267 ERROR=JMS I . /ERROR 268 000157 3525 XERROR 269 UDF=JMS I . /USER DATA FIELD 270 000160 7350 AUDF, XUDF 271 RTL6=JMS I . /SIX RAL*S 272 000161 5362 XRTL6 273 TESTN=JMS I . /TEST NUMERIC 274 000162 4031 XTESTN 275 TESTC=JMS I . /TEST CHAR 276 000163 4014 XTESTC 277 PACKC=JMS I . /PACK A CHAR 278 000164 3600 XPACKC 279 GETLN=JMS I . /GET A LINE NUMBER 280 000165 5661 XGETLN 281 TSTCCR=JMS I . /SKIP IF CR 282 000166 6431 CCRTST 283 TSTCOM=JMS I . /SKIP IF COMMA 284 000167 6423 COMTST 285 TSTALP=JMS I . /SKIP IF LETTER 286 000170 5747 ALPTST 287 COMMAN=JMS I . /DETERMINE COMMAND 288 000171 2000 MANCOM 289 FIND=JMS I . /FIND A STATEMENT 290 000172 4136 KFIND, XFIND 291 GETNXT=JMS I . /GET NEXT LINE 292 000173 4107 NXTGET 293 FINDLN=JMS I . /FIND A LINE 294 000174 3457 XFINDL 295 TSTEND=JMS I . /TEST FOR END OF LINE 296 000175 6436 ENDTST 297 TSTLPR=JMS I . /SKIP IF L-PAREN 298 000176 3733 LPRTST 299 GETSGN=TAD I FLARGP 300 /MAINLINE BASIC 301 302 /WHENEVER THERE IS NOTHING BETTER TO DO OR A JOB WANTS TO 303 /DISMISS ITSELF SO OTHERS CAN TRY THIS ROUTINE IS ENTERED 304 305 /IT KEEPS LOOKING FOR A JOB WITH BITS 0 AND 1 OFF WHICH 306 /SAYS THAT THE JOB IS NOT WAITING FOR INPUT OR OUTPUT 307 /RESPECTIVLY 308 *177 309 000177 6001 NULL, ION 310 000200 6201 CDF 311 000201 1120 TAD LOOK 312 000202 1232 TAD MLOOKE /CHECK POSITION OF POINTER 313 000203 7710 SPA CLA 314 000204 5210 JMP .+4 /O.K. TO LOOK AT NEXT 315 /IF PDP8E, AND NOT DC02 - ASSUME KL8E. NEXT THREE WORDS ARE: 316 / CIF 20 317 / JMP I .+1 318 / KL8FIX0 319 /SEE BEG002 AND BEG540 FOR DETAILS. 320 000205 6202 KL8JM0, CIF /NO INTERRUPTS UNTIL LOOK IS ISZ'D 321 000206 1121 TAD LOOKST 322 000207 3120 DCA LOOK /RESET POINTER 323 000210 2120 KL8LF0, ISZ LOOK /LOOK AT NEXT 324 000211 1520 TAD I LOOK /GET STATUS 325 000212 0140 AND C7700 326 000213 7640 SZA CLA 327 000214 5177 JMP NULL /NO GO 328 000215 3237 DCA NPRNT5 /CLEAR FORMAT SWITCH 329 000216 1520 TAD I LOOK /GET STATUS 330 000217 6002 IOF /NO INTERRUPTS 331 000220 4272 JMS DECKON /PUT HIM ONDECK 332 CDCHNG=. 333 /THE FOLLOWING TWO LOCATIONS BECOME 334 / NOP 335 / TAD PC 336 /IF THE CDR IS NOT USED. 337 CPL000=. 338 CPV000=NOP 339 000221 6212 CIF 10 340 CPL001=. 341 CPV001=TAD PC 342 000222 5630 JMP I XCTRLC /CHECK FOR CTRL/C FROM CARD. 343 000223 3000 CTRLRT, DCA 0 /RESTART LOCATION 344 000224 7344 L7776 /NUMBER OF COMMANDS THEN LOOK 345 000225 3022 DCA PC 346 000226 6001 ION 347 000227 5400 JMP I 0 /GO TO IT... 348 349 000230 6270 XCTRLC, CTRLCHK 350 000231 0060 C60, 60 351 000232 3624 MLOOKE, -USER7+10 /LAST STATUS WORD : SUBTRACT NUMBER OF USERS 352 /DURING INIT 353 /*PRNTIT* ROUTINE 354 /ENTER WITH THE AC CONTAINING THE VALUE TO BE PRINTED AS 355 /A DECIMAL NUMBER BETWEEN 0 AND 2047 356 /IF NPRNT5 IS NOT 0 THEN LEADING SPACES ARE NOT PRINTED 357 /NPRNT5 IS SET TO 0 AT THE END OF THE ROUTINE 358 000233 0000 ITPRNT, 0 359 000234 6212 CIF PF 360 000235 5636 JMP I .+1 361 000236 5256 NITPRNT 362 000237 0000 NPRNT5, 0 /0 TO PRINT LEADING BLANKS 363 000240 5633 NITPRET,JMP I ITPRNT /RETURN POINT, JUMPED TO BY ITPRNT IN PF 364 365 366 367 368 /COMMAND BUFFER ECHOING ROUTINE 369 /IT IS IN THIS FIELD BECAUSE IT REFERENCES MANY FIELD 0 ROUTINES 370 /CR USER IS ON DECK AT THIS POINT 371 372 000241 1032 CRBECHO,TAD SPACSW /GET SPACE SWITCH, USED IN GETC 373 000242 4547 PUSHA /SAVE IT'S VALUE 374 000243 2032 ISZ SPACSW /ZERO IS IGNORE SPACES 375 000244 4657 JMS I AOTPACK /SETUP POINTERS FOR GETC 376 000245 7410 SKP /FIRST GETC HAS BEEN ISSUED BY OTPACK 377 378 000246 4544 GETC /GET CHAR FROM COMMAND BUFFER, STORE IN CHAR 379 000247 4471 FREE2 /MAKE SURE THERE'S ROOM 380 000250 4470 PRINTC /PRINT IT 381 000251 4566 TSTCCR /CR YET? 382 000252 5246 JMP .-4 /NOPE, KEEP GOING 383 384 000253 4552 POPA /RESTORE SPACSW VALUE 385 000254 3032 DCA SPACSW 386 000255 4657 JMS I AOTPACK /RESTORE POINTERS FOR FUTURE GETC'S 387 000256 5553 POPJ /RETURN FROM PAKLIN 388 389 000257 5620 AOTPACK, OTPACK 390 391 /LINK TO CDR COMMAND HANDLER. 392 000260 6212 CDR, CIF 10 393 000261 5662 JMP I .+1 394 000262 6010 PFCDR 395 396 397 398 399 000263 0000 DECKCHK, 0 /ENTRY FROM INTERRUPT HANDLING ROUTINE 400 000264 0140 AND C7700 /CHECK WAIT BITS. 401 000265 7640 SZA CLA 402 000266 5663 JMP I DECKCHK 403 000267 1520 TAD I LOOK 404 000270 4272 JMS DECKON 405 000271 5663 JMP I DECKCHK 406 /*ONDECK* ROUTINE 407 /ROUTINE TO PUT A USER "ON DECK" 408 /ENTER WITH HIS NUMBER ON AC BITS 9-11 409 000272 0177 DECKON, NULL 410 000273 0125 AND C7 /USER NUMBER ONLY 411 000274 3004 DCA SIN /SAVE NEW 412 000275 1036 TAD DECK 413 000276 7041 CIA 414 000277 1004 TAD SIN 415 000300 7650 SNA CLA 416 000301 5340 JMP DTCHK /FAST EXIT (BUT CHECK TAPE FIRST) 417 000302 1036 TAD DECK 418 000303 4343 JMS DFIND /LOCATE OLD 419 000304 1130 TAD LSTMOD 420 000305 3033 DCA DINPUT 421 000306 1763 TAD I SWPCDF 422 000307 3036 DCA XFIELD 423 424 /* THIS SWAP ROUTINE EXECUTES WITH INTERRUPT OFF 425 /* AND TAKES APPROXIMATELY 600 MICROSECONDS TO 426 /* EXECUTE, WHEREAS THE MAXIMUM TIME AVAILABLE 427 /* TO ANSWER A DECTAPE INTERRUPT AFTER A SEARCH 428 /* IS 400 MICROSECONDS. THEREFORE, WE MUST CHECK 429 /* THE DECTAPE FLAG AS PART OF THE INNER LOOP. 430 431 000310 1411 TAD I XREG2 432 000311 6213 CIF CDF SWAP 433 000312 3410 DCA I XREG /SWAP OUT OLD 434 000313 4000 JMS DTINTR /CHECK TAPE 435 000314 2006 ISZ TEMP2 436 000315 5310 JMP .-5 437 000316 1004 TAD SIN 438 000317 4343 JMS DFIND /LOCATE NEW 439 000320 6213 ENTRY1, CIF CDF SWAP 440 000321 1410 TAD I XREG 441 000322 4000 JMS DTINTR /CHECK TAPE 442 000323 3411 DCA I XREG2 /SWAP IN NEW 443 000324 2006 ISZ TEMP2 444 000325 5320 JMP .-5 445 000326 1033 TAD DINPUT 446 000327 3130 DCA LSTMOD 447 000330 1036 TAD XFIELD 448 000331 3763 DCA I SWPCDF 449 000332 1004 TAD SIN 450 000333 3036 DCA DECK /NEW USER ONDECK 451 000334 1121 TAD LOOKST 452 000335 7001 IAC 453 000336 1036 TAD DECK 454 000337 3006 DCA TEMP2 /POINT TO STATUS 455 000340 6213 DTCHK, CIF CDF SWAP 456 000341 4000 JMS DTINTR 457 000342 5672 JMP I DECKON 458 459 000343 0320 DFIND, ENTRY1 460 000344 7040 ENTRY, CMA 461 000345 3006 DCA TEMP2 462 000346 1361 TAD STARTO /START AT THE BEGINNING 463 000347 1360 TAD STARTP /SPACE BETWEEN 464 000350 2006 ISZ TEMP2 465 000351 5347 JMP .-2 466 000352 3010 DCA XREG /POINT TO USER 467 000353 1131 TAD STSWM1 468 000354 3011 DCA XREG2 /POINT TO SWAP AREA 469 000355 1362 TAD SWPCNT 470 000356 3006 DCA TEMP2 /SWAP COUNT 471 000357 5743 JMP I DFIND 472 473 000360 0074 STARTP, ENSWAP-STSWAP+1 /SPACE BETWEEN 474 LPCHNG=. 475 LOL000=. 476 LOV000=NCDORG-1-ENSWAP+STSWAP-1 477 CDCHNG=. 478 COL000=. 479 COV000=LPTORG-1-ENSWAP+STSWAP-1 480 000361 6742 STARTO, ORG1-1-ENSWAP+STSWAP-1 /THE START OF THE 481 /1ST SWAP AREA MINUS THE LENGTH 482 /OF A SWAP AREA. NCDORG REPLACES ORG1 483 /AS THE BASE ADDRESS OF THE TABLE IF 484 /THERE IS NO CDR IN USE. 485 000362 7704 SWPCNT, STSWAP-ENSWAP-1 486 000363 7351 SWPCDF, XUDF+1 487 488 489 /COME HERE ON CTRL/C FROM TERMINAL OR CDR. 490 CDCHNG=. 491 /THE FOLLOWING TWO LOCATIONS BECOME 492 / NOP 493 / NOP 494 /IF A CDR IS NOT USED. 495 CPL100=. 496 CPV100=NOP 497 000364 6212 CDRCTC, CIF 10 498 CPL101=. 499 CPV101=NOP 500 000365 4770 JMS I AXCT /GO CHECK IF CDR ASSIGNED TO THIS USER. 501 000366 4771 ERR004, JMS I XERR /HANDLE PROGRAM STOPPING. 502 000367 5772 JMP I XKYXIT /GO TAKE EXIT FROM KEY ROUTINE. 503 000370 7000 AXCT, XCT1 504 000371 3544 XERR, IERROR 505 000372 0661 XKYXIT, SUPRET 506 507 /COME HERE WHEN LPT COMMAND IS RECOGNIZED. 508 /IMMEDIATELY GO TO BANK 1. 509 000373 6212 LPT, CIF 10 510 000374 5775 JMP I .+1 511 000375 5474 LPTCOM 512 513 /ERROR ROUTINE 514 /HERE IS WHERE ERROR MESSAGES ARE PRINTED 515 /IT IS CALLED BY A DISMISSAL WITH THE PC SET TO 516 /ERRORX AND THE ERROR ADDRESS IN LSTMOD 517 000376 1056 ERRORX, TAD PDLST /RESET THE STACK. 518 000377 3015 DCA PDLXR 519 000400 4777 JMS I (IOFIX /CLEAN UP FILES 520 000401 1520 TAD I LOOK 521 000402 0376 AND (7767 /CLEAR ERROR FLAG 522 000403 3520 DCA I LOOK 523 000404 1775 TAD I (DTQ1 /CLEAR DECTAPE QUEUE 524 000405 3115 DCA T3 /(IF NECESSARY) 525 000406 1036 TAD DECK /ARE WE ON TOP? 526 000407 7040 CMA 527 000410 1515 TAD I T3 528 000411 7650 SNA CLA 529 000412 4774 JMS I (DTFREE /REMOVE US FROM THE QUEUE 530 000413 1325 TAD M40 531 000414 3115 DCA T3 /BUFFER IS 40 LONG 532 000415 7340 L7777 533 000416 1046 TAD IPTR0 534 000417 3012 DCA XREG3 /POINT TO I BUFFER 535 000420 4560 UDF 536 000421 3412 DCA I XREG3 /CLEAR BUFFER 537 000422 2115 ISZ T3 538 000423 5221 JMP .-2 539 000424 6201 CDF 540 000425 1044 TAD IPTRI 541 000426 3045 DCA IPTRO /NO INPUT IN BUFFER 542 000427 3034 DCA OUTPUT /HAVE ECHO 543 000430 1130 TAD LSTMOD /GET ERROR CODE 544 000431 4546 SORTC 545 000432 3750 ERRLST-1 546 000433 1111 TAD SORTCN 547 000434 1141 TAD M4 548 000435 3130 DCA LSTMOD 549 000436 1130 TAD LSTMOD 550 000437 7540 SMA SZA 551 000440 5245 JMP ERROR2 /TRUE ERROR 552 000441 7640 SZA CLA 553 000442 7340 L7777 /WHAT? 554 000443 1141 TAD M4 /STOP 555 000444 7410 SKP 556 000445 7340 ERROR2, L7777 557 000446 4773 JMS I (RDYPCH /PRINT ERROR MESSAGE 558 000447 1130 TAD LSTMOD 559 000450 7550 SPA SNA 560 000451 5264 JMP ERROR3 /NO NUMBER WITH THESE 561 000452 4706 JMS I PITPRNT /PRINT ERROR NUMBER 562 000453 1062 TAD ERLINE /WERE WE RUNNING 563 000454 7750 SPA SNA CLA 564 000455 5262 JMP ERROR1 /NO 565 000456 7344 L7776 /IN 566 000457 4773 JMS I (RDYPCH 567 000460 1062 TAD ERLINE 568 000461 4706 JMS I PITPRNT /PRINT LINE IN ERROR 569 000462 1124 ERROR1, TAD CCR 570 000463 4470 PRINTC 571 000464 7200 ERROR3, CLA 572 /*READY* ROUTINE 573 /ROUTINE TO PRINT "READY" AND RESET POINTERS 574 /ENTER THE ROUTINE AT START TO OMIT READY MESSAGE 575 000465 4777 READY, JMS I (IOFIX /RESET FILES 576 000466 7346 L7775 577 000467 4773 JMS I (RDYPCH /PRINT "READY" 578 000470 3062 START, DCA ERLINE /IMMEDIATE MODE 579 000471 7340 L7777 580 000472 3130 DCA LSTMOD /SHORT LIST 581 000473 1056 TAD PDLST 582 000474 3015 DCA PDLXR /RESET PUSH-DOWN 583 000475 3032 DCA SPACSW /IGNORE LEADING SPACES 584 000476 3031 DCA MODE /CLEAR STRING MODE FLAG 585 000477 1372 TAD (ERR330 586 000500 4547 PUSHA /TRAP THE *RETURN* SANS *GOSUB* 587 000501 4550 PUSHJ /INPUT COMMAND LINE 588 000502 5630 PAKLIN 589 000503 7640 SZA CLA /END-OF-FILE? 590 000504 5505 JMP I CHAINP /'OLD' OR 'CHAIN' FINISHED 591 /INSERT LINE OR DO COMMAND 592 /AFTER A COMMAND OR LINE IS PACKED INTO THE COMMAND BUFFER 593 /THIS ROUTINE LOOKS AT IT AND EITHER STORES THE LINE OR 594 /GOES TO THE PROPER COMMAND 595 000505 4562 DECODE, TESTN 596 000506 0233 PITPRNT, ITPRNT 597 000507 5771 JMP I (INPUTX /COMMAND 598 000510 4565 GETLN /GET LINE NUMBER 599 000511 1054 SRETN, TAD BUFR 600 000512 3016 DCA AXIN /SET TO REPACK 601 000513 3024 DCA XCTIN 602 000514 1030 TAD LINENO 603 000515 4560 UDF 604 000516 3416 DCA I AXIN /SET LINE NUMBER 605 000517 6201 CDF 606 000520 4566 TSTCCR /JUST LINE NUMBER 607 000521 5324 JMP .+3 /NO 608 000522 4770 JMS I (XDELET /DELETE THIS LINE 609 000523 5362 JMP VARSET 610 611 000524 2032 ISZ SPACSW /KEEP SPACES 612 000525 7740 M40, SMA SZA CLA /TSTCCR LEAVES AC=0 SO THIS IS A SKP. 613 000526 4544 GETC 614 000527 4564 PACKC /REPACK LINE 615 000530 1453 TAD I PACKND 616 000531 1367 TAD KM26 617 000532 7141 CLL CIA 618 000533 1016 TAD AXIN /IS THE PROGRAM TOO LARGE? 619 000534 7630 SZL CLA 620 000535 5766 JMP I XERR60 /YES. 621 000536 4566 TSTCCR 622 000537 5326 JMP M40+1 623 000540 4770 JMS I (XDELET /DELETE OLD LINE 624 000541 4560 UDF 625 000542 1431 TAD I LASTLN /POINTER TO NEXT 626 000543 3454 DCA I BUFR /POINT TO NEXT 627 000544 1054 TAD BUFR 628 000545 3431 DCA I LASTLN /OLD POINTS TO NEW 629 000546 1023 TAD ADD 630 000547 7440 SZA 631 000550 3416 DCA I AXIN /FINISH PACKING 632 000551 4574 FINDLN /FIND THE LINE 633 000552 0016 C16, 16 634 000553 4550 PUSHJ 635 000554 6523 ENDFND /SCAN FOR *NEXT* 636 000555 7650 SNA CLA 637 000556 1136 TAD C10 638 000557 7001 IAC 639 000560 1016 TAD AXIN 640 000561 3054 DCA BUFR /NEW FREE POSITION 641 000562 1054 VARSET, TAD STARTV 642 000563 3055 DCA LASTV /RESET VARIABLES AFTER INPUTTING TEXT 643 000564 6001 ION 644 000565 5270 JMP START 645 000566 3625 XERR60, ERR060 646 000567 7752 KM26, -26 647 648 000570 1600 PAGE 000571 4252 000572 7163 000573 5374 000574 6627 000575 6601 000576 7767 000577 1363 649 000600 0000 KEY, 0 650 000601 1003 TAD USER 651 000602 4777 JMS I (DECKON /PUT HIM ONDECK 652 000603 1035 TAD XIOT 653 000604 3205 DCA .+1 /SET READ IOT 654 000605 7402 HLT 655 000606 0126 AND C177 /IGNORE PARITY 656 000607 7450 SNA 657 000610 5600 JMP I KEY /IGNORE 0 NAD 200 658 000611 3004 DCA SIN /SAVE INPUT 659 000612 7346 L7775 660 000613 1004 TAD SIN /CTRL/C? 661 000614 7640 KM140, SZA CLA 662 000615 5217 JMP KEY7 /NOT "^C" 663 000616 5730 JMP I XCDCTC /CHECK CDR AND HANDLE PROGRAM STOP. 664 665 CDCHNG=. 666 /THE FOLLOWING 2 LOCATIONS ARE CHANGED TO 667 / TAD LSTMOD 668 / SNA 669 /IF A CDR IS NOT USED. 670 CPL200=. 671 CPV200=TAD LSTMOD 672 000617 6212 KEY7, CIF SWAP /GO CHECK FOR CDR ASSIGNED TO THIS USER AND 673 CPL201=. 674 CPV201=SNA 675 000620 4727 JMS I XCDSUP /IF SO SUPPRESS HIS TTY INPUT. 676 /CTRL/C IS NOT SUPPRESSED. IT IS TAKEN 677 /CARE OF PRIOR TO THIS. 678 000621 5274 JMP KEY6 /RETURN HERE IF LSTMOD IS ZERO. 679 000622 6211 CDF SWAP /RETURN HERE IF LSTMOD IS NONZERO. 680 000623 3776 DCA I (XCCR+4 681 000624 6201 CDF 682 000625 1004 TAD SIN 683 000626 4546 SORTC /CHECK BREAK 684 000627 2327 XCCR-1 685 000630 5266 JMP KEY5 /BREAK 686 000631 1004 TAD SIN 687 000632 4546 SORTC 688 000633 1774 ALT-1 689 000634 5274 JMP KEY6 /FOUND AN ALTMODE 690 000635 1004 TAD SIN 691 000636 1133 TAD M12 692 000637 7650 SNA CLA 693 000640 5600 JMP I KEY /IGNORE LINE FEED IF NOT BREAK 694 000641 1004 TAD SIN 695 000642 0356 AND C140 696 000643 7650 SNA CLA 697 000644 5276 JMP KEY3 /ILLEGAL CHAR 698 000645 6212 CIF 10 /GO CONVERT LOWER CASE ALPHA 699 000646 4726 JMS I XLWMAP /TO UPPER CASE. 700 000647 1004 TAD SIN 701 000650 4775 JMS I (XOUTL /ECHO THE CHAR 702 000651 4303 JMS KEY4 /STORE THE CHAR 703 000652 1045 TAD IPTRO 704 000653 7041 CIA 705 000654 1044 TAD IPTRI 706 000655 7550 SPA SNA 707 000656 1142 TAD C40 708 000657 1133 TAD M12 709 000660 7710 SPA CLA 710 000661 5600 SUPRET, JMP I KEY /NO - EXIT 711 000662 7350 ANYINP, L3777 712 000663 0406 AND I TEMP2 /CLEAR I WAIT 713 000664 3406 DCA I TEMP2 714 000665 5600 JMP I KEY 715 716 000666 7340 KEY5, L7777 717 000667 1111 TAD SORTCN 718 000670 7740 KCM40, SMA SZA CLA 719 000671 5274 JMP .+3 /NO ECHO HERE 720 000672 1004 TAD SIN 721 000673 4775 JMS I (XOUTL /ECHO BREAK CHAR - CR AND BELL 722 000674 4303 KEY6, JMS KEY4 /STORE CHAR 723 000675 5262 JMP ANYINP /BREAK HERE 724 725 000676 1125 KEY3, TAD C7 726 000677 4775 JMS I (XOUTL /2 BELLS FOR ILLEGAL CHAR 727 000700 1125 TAD C7 728 000701 4775 JMS I (XOUTL 729 000702 5600 JMP I KEY 730 731 000703 0000 KEY4, 0 732 000704 4560 UDF 733 000705 1444 TAD I IPTRI /ROOM? 734 000706 7640 SZA CLA 735 000707 4774 ERR070, JMS I (IERROR /NO ROOM 736 000710 4560 UDF 737 000711 1004 TAD SIN 738 000712 3444 DCA I IPTRI 739 000713 6201 CDF 740 000714 2044 ISZ IPTRI 741 000715 1044 TAD IPTRI 742 000716 7041 CIA 743 000717 1142 TAD C40 744 000720 1046 TAD IPTR0 745 000721 7640 SZA CLA 746 000722 5703 JMP I KEY4 /OK 747 000723 1046 TAD IPTR0 748 000724 3044 DCA IPTRI /RESET POINTER 749 000725 5703 JMP I KEY4 750 000726 5347 XLWMAP, LWRMAP 751 000727 6557 XCDSUP, CDRSUP 752 000730 0364 XCDCTC, CDRCTC 753 000731 0000 TTY, 0 754 000732 1003 TAD USER 755 000733 4777 JMS I (DECKON /PUT HIM ONDECK 756 000734 3051 DCA TELSW /CLEAR BUSY 757 000735 4560 UDF 758 000736 1450 TTY3, TAD I OPTRO /MORE 759 000737 7450 SNA 760 000740 5355 JMP TTY2 /NO 761 000741 4773 JMS I (XOUTL2 /OUTPUT IT 762 000742 4560 UDF 763 000743 3450 DCA I OPTRO /CLEAR BUFFER 764 000744 2050 ISZ OPTRO /BUMP BUFFER 765 000745 1050 TAD OPTRO 766 000746 7041 CIA 767 000747 1046 TAD IPTR0 768 000750 7640 SZA CLA 769 000751 5355 JMP TTY2 /OK 770 000752 1046 TAD IPTR0 771 000753 1270 TAD KCM40 772 000754 3050 DCA OPTRO /RESET BUFFER 773 000755 4772 TTY2, JMS I (XFREE /ROOM AVAILABLE 774 000756 0140 C140, 140 775 000757 5731 JMP I TTY /NOT ENOUGH ROOM 776 000760 7352 L5777 777 000761 0406 AND I TEMP2 /CLEAR O WAIT 778 000762 3406 DCA I TEMP2 779 000763 5731 JMP I TTY 780 781 000764 3032 PRINT3, DCA SPACSW 782 000765 4544 GETC 783 000766 5771 JMP I (PRIN10 784 785 786 000771 3307 PAGE 000772 6020 000773 3400 000774 3544 000775 3341 000776 2334 000777 0272 787 /*READ* AND *INPUT* COMMANDS 788 789 001000 0000 INREAD, 0 790 001001 7640 SZA CLA 791 001002 5242 JMP INREA3 /RE-ENTRY 792 001003 6212 CIF 10 793 001004 5605 JMP I .+1 794 001005 5233 PATINR 795 001006 4550 PUSHJ /GET A VARIABLE 796 001007 4400 GETVAR 797 001010 7640 SZA CLA 798 001011 5275 JMP ERR500 /WAS FUNCTION 799 001012 1031 TAD MODE /SET TO IGNORE LEADING SPACES IF NECESSARY 800 001013 3032 DCA SPACSW 801 001014 1030 TAD LINENO /SAVE THE CURRENT LINE NO. 802 001015 4547 PUSHA 803 001016 4551 PUSHF /SAVE PT1;CHAR;LINEPC 804 001017 0025 PT1 805 001020 4551 PUSHF /SAVE TEXT 806 001021 0017 TEXTP 807 001022 4551 PUSHF 808 001023 0040 DATAPC+1 809 001024 4554 POPF /GET POINTERS 810 001025 0017 TEXTP 811 001026 1043 TAD DATAPC+4 812 001027 3026 DCA CHAR 813 001030 4575 TSTEND /MORE? 814 001031 5234 JMP INREA1 /NO 815 001032 2200 INREA4, ISZ INREAD /2ND EXIT 816 001033 5600 JMP I INREAD 817 818 001034 4567 INREA1, TSTCOM /MORE? 819 001035 4557 ERR490, ERROR /JUNK 820 001036 4544 GETC 821 001037 4575 TSTEND /COMMA FOLLOWED BY CR OR '? 822 001040 7410 SKP 823 001041 5232 JMP INREA4 /YES - ASK FOR MORE 824 001042 1031 INREA3, TAD MODE 825 001043 7650 SNA CLA 826 001044 5250 JMP SPLCH1-2 /NUMERIC INPUT 827 001045 4550 SPLCH, PUSHJ /GET THE STRING 828 001046 7625 QINP 829 001047 5252 JMP SPLCH1 830 001050 4550 PUSHJ 831 001051 2612 EVAL 832 001052 4551 SPLCH1, PUSHF 833 001053 0017 TEXTP 834 001054 4554 POPF 835 001055 0040 DATAPC+1 836 001056 1026 TAD CHAR 837 001057 3043 DCA DATAPC+4 /SAVE POINTERS 838 001060 4554 POPF 839 001061 0017 TEXTP 840 001062 4554 POPF 841 001063 0025 PT1 842 001064 4552 POPA /RESTORE THE CURRENT LINE NO. 843 001065 3030 DCA LINENO 844 001066 4556 FLPUT /SET VARIABLE 845 001067 6167 FLARG 846 001070 4567 TSTCOM 847 001071 5274 JMP INREA2 848 001072 4544 GETC 849 001073 5203 JMP INREAD+3 850 851 001074 4575 INREA2, TSTEND 852 001075 4557 ERR500, ERROR /JUNK 853 001076 5600 JMP I INREAD 854 001077 7340 L7777 855 001100 4200 READ, JMS INREAD /SET THOSE VARIABLES 856 001101 5553 POPJ 857 001102 1031 READ1, TAD MODE /MUST SAVE MODE 858 001103 4547 PUSHA /IT IS CHANGED BELOW 859 001104 1037 TAD DATAPC 860 001105 4572 FIND 861 001106 0003 3 862 001107 4557 ERR510, ERROR /OUT OF DATA 863 001110 3037 DCA DATAPC 864 001111 4552 POPA /RESTORE MODE 865 001112 3031 DCA MODE 866 001113 5277 JMP READ-1 867 868 001114 4332 INPUT, JMS CHKFIL /CHECK IF A FILE 869 870 001115 4551 PUSHF 871 001116 0040 DATAPC+1 872 001117 1043 TAD DATAPC+4 873 001120 4547 PUSHA 874 001121 1124 TAD CCR 875 001122 3043 DCA DATAPC+4 876 001123 4200 JMS INREAD /SET THOSE VARIABLES 877 001124 5731 JMP I XINPT1 /DONE 878 001125 4550 INPUT2, PUSHJ /GET LINE OF INPUT 879 001126 1153 GETINP 880 001127 7340 L7777 881 001130 5323 JMP INPUT2-2 882 001131 7353 XINPT1, INPUT1 883 884 001132 0000 CHKFIL, 0 885 001133 1026 TAD CHAR /CHECK FOR FILE INPUT 886 001134 1371 TAD MNMSGN 887 001135 7640 SZA CLA 888 001136 5732 JMP I CHKFIL /NOT FILE 889 001137 5740 JMP I .+1 /NO SPACE - PATCH IN EXTRA WORDS 890 001140 3760 CHKPAT /TO SET "D0" EXTENSION 891 001141 7110 CHKPT1, CLL RAR 892 001142 1077 TAD IBLKH 893 001143 7640 SZA CLA 894 001144 4544 GETC /SHOULD BE COMMA 895 001145 4567 TSTCOM 896 001146 4557 ERR600, ERROR 897 001147 4544 GETC /SKIP OVER COMMA 898 001150 1372 TAD VXGET /SETUP FILE INPUT 899 001151 3067 DCA PREADC 900 001152 5732 JMP I CHKFIL /DONE 901 902 001153 1067 GETINP, TAD PREADC /CHECK IF FILE, GET LINE OF INPUT 903 001154 1373 TAD MXREADC 904 001155 7640 SZA CLA 905 001156 5364 JMP GETIN1 /IT WAS A FILE 906 001157 4472 FREE13 907 001160 1134 TAD C77 908 001161 4470 PRINTC 909 001162 1142 TAD C40 910 001163 4470 PRINTC 911 001164 4550 GETIN1, PUSHJ 912 001165 5630 PAKLIN 913 001166 7640 SZA CLA /EOF? 914 001167 4557 ERR610, ERROR 915 001170 5553 POPJ 916 917 918 001171 7735 MNMSGN, 200-"# 919 001172 6653 VXGET, XGET 920 001173 4076 MXREADC, -XREADC 921 922 /*IF* COMMAND 923 924 001174 4550 IF, PUSHJ /GET FIRST VALUE 925 001175 2612 EVAL 926 001176 4551 PUSHF /AND SAVE IT 927 001177 6167 FLARG 928 001200 1031 TAD MODE 929 001201 4547 PUSHA /SAVE MODE 930 001202 1111 TAD SORTCN 931 001203 1133 TAD M12 932 001204 7510 SPA 933 001205 4557 ERR390, ERROR /NO RELATION OR BAD RELATION 934 001206 7126 CLL CML RTL 935 001207 3361 DCA IF1 /SAVE REL OP 936 001210 4544 GETC 937 001211 4546 SORTC /ANOTHER OP? 938 001212 3640 TERMS-1 939 001213 5261 JMP IF2 /MIGHT BE... 940 001214 7200 IF3, CLA 941 001215 1361 TAD IF1 942 001216 4546 SORTC /CHECK OP 943 001217 2377 IF4-1 944 001220 7610 PIF5, SKP CLA /7610=IF5, AT LEAST, IT BETTER!!!!!! 945 001221 5205 JMP ERR390 /BAD OP 946 001222 1111 TAD SORTCN 947 001223 1220 TAD PIF5 948 001224 3361 DCA IF1 949 001225 1761 TAD I IF1 /GET FLOATING SKIP WORD 950 001226 3250 DCA IF6 951 001227 4550 PUSHJ /GET 2ND VALUE 952 001230 2612 EVAL 953 001231 7346 L7775 954 001232 4571 COMMAN /GET NEXT COMMAND 955 001233 7650 SNA CLA 956 001234 4557 ERR400, ERROR /THEN NOT FOUND 957 001235 4552 POPA /GET OLD MODE 958 001236 1031 TAD MODE 959 001237 7640 SZA CLA 960 001240 5321 JMP IFSTR /WE WANT TO DO A STRING COMPARE 961 001241 4554 POPF 962 001242 6167 FLARG 963 001243 4407 FINT 964 001244 6522 FCMP I FLARGP /GET DIFFERENCT 965 001245 7522 FPUT I FLARGP /AND SAVE IT 966 001246 0000 FEXT 967 001247 1522 IF7, GETSGN /GET SIGN OF DIFFERENCE 968 001250 7402 IF6, HLT /SKIP IF FALSE 969 001251 4562 TESTN 970 001252 5553 IFDONE, POPJ /SO WHO CARES ABOUT A STRANGE NO-OP? 971 001253 5672 JMP I VRUN8 /GO DO COMMAND 972 001254 4565 GOTO, GETLN 973 001255 4575 TSTEND 974 001256 4557 ERR270, ERROR /JUNK 975 001257 1030 TAD LINENO /SET UP TRANSFER TO LINE 976 001260 5553 POPJ /RETURN 977 978 979 001261 1111 IF2, TAD SORTCN 980 001262 1133 TAD M12 981 001263 7510 SPA 982 001264 5214 JMP IF3 /NO 2ND OP 983 001265 7001 IAC 984 001266 1361 TAD IF1 985 001267 3361 DCA IF1 986 001270 4544 GETC 987 001271 5215 JMP IF3+1 988 989 001272 2506 VRUN8, RUN8 990 001273 1360 VIF1, IF1-1 991 001274 0465 VREADY, READY 992 001275 3745 VRESETO,RESETO 993 /*MOD* FUNCTION 994 001276 4551 MOD, PUSHF 995 001277 6167 FLARG 996 001300 4567 TSTCOM 997 001301 5777 JMP I (ERR560 998 001302 4550 PUSHJ 999 001303 2611 EVAL-1 1000 001304 4554 POPF 1001 001305 1361 PIF1, IF1 1002 001306 4407 MOD1, FINT 1003 001307 0705 FGET I PIF1 1004 001310 4522 FDIV I FLARGP 1005 001311 1776 FADD I (FCN 1006 001312 3522 FMUL I FLARGP 1007 001313 7775 FPUT I (TEMP 1008 001314 0705 FGET I PIF1 1009 001315 2775 FSUB I (TEMP 1010 001316 0000 FEXT 1011 001317 5553 POPJ 1012 001320 3702 VXREADC,XREADC 1013 001321 4554 IFSTR, POPF /STRING *IF* 1014 001322 1361 IF1 /SAVE FIRST STRING 1015 001323 1122 TAD FLARGP /POINT TO THE STRINGS 1016 001324 3031 DCA MODE 1017 001325 1273 TAD VIF1 1018 001326 3013 DCA FLTXR 1019 001327 7346 L7775 /DO AN INTEGER COMPARE ON 3 WORDS 1020 001330 3115 DCA T3 1021 001331 1413 IFSTR1, TAD I FLTXR /SUBTRACT WORDS, GET SIGN OF DIFFERENCE 1022 001332 7040 CMA /THIS GARBAGE CONVERTS CR'S TO ZEROES 1023 001333 3112 DCA T1 /AND ADDS ONE TO EACH CHARACTER 1024 001334 1112 TAD T1 /SO COMPARES OF DIFFERENT LENGTHS COME OUT OK 1025 001335 0134 AND C77 1026 001336 7640 SZA CLA 1027 001337 1140 TAD C7700 1028 001340 1112 TAD T1 1029 001341 3112 DCA T1 1030 001342 1431 TAD I MODE 1031 001343 7001 IAC 1032 001344 0134 AND C77 1033 001345 3113 DCA T2 1034 001346 1431 TAD I MODE 1035 001347 1374 TAD (100 1036 001350 0140 AND C7700 1037 001351 1113 TAD T2 1038 001352 6212 CIF 10 1039 001353 5754 JMP I .+1 /GO TO PATCH THAT CORRECTS A 1040 001354 5151 PLOC /STRING COMPARISON ERROR. 1041 001355 2031 PRET, ISZ MODE 1042 001356 2115 ISZ T3 1043 001357 5331 JMP IFSTR1 1044 001360 5250 JMP IF6 /IF DONE, COMPARE THEM 1045 1046 001361 0000 IF1, 0 1047 001362 0000 0 1048 001363 0000 IOFIX, 0 1049 001364 1320 TAD VXREADC 1050 001365 3067 DCA PREADC 1051 001366 1274 TAD VREADY /RESET CHAIN POINTER 1052 001367 3105 DCA CHAINP 1053 001370 4675 JMS I VRESETO 1054 001371 5763 JMP I IOFIX /RESET OUTPUT POINTERS AND EXIT. 1055 001374 0100 PAGE 001375 6164 001376 5764 001377 5355 1056 /*LET* AND *FOR* COMMANDS 1057 001400 7340 FOR, L7777 1058 001401 3356 LET, DCA FOR1 /SAVE DETERMINATOR 1059 001402 4550 PUSHJ /GET VARIABLE 1060 001403 4400 GETVAR 1061 001404 7650 SNA CLA 1062 001405 1026 TAD CHAR 1063 001406 1321 TAD MEQL 1064 001407 7640 SZA CLA 1065 001410 4557 ERR410, ERROR /NO "=" 1066 001411 4551 LET2, PUSHF /SAVE ADD,XCTIN,PT1 1067 001412 0023 ADD 1068 001413 4550 PUSHJ /GET VALUE 1069 001414 2611 EVAL-1 1070 001415 4554 POPF 1071 001416 0023 ADD 1072 001417 4556 FLPUT /SET VARIABLE 1073 001420 6167 FLARG 1074 001421 7340 L7777 1075 001422 1017 TAD AXOUT 1076 001423 3341 DCA FOR5 1077 001424 2356 ISZ FOR1 /WHICH COMMAND? 1078 001425 5322 JMP LET1 /LET COMMAND 1079 001426 1023 TAD ADD 1080 001427 7710 SPA CLA 1081 001430 4557 ERR420, ERROR /SUBSCRIPTED 1082 001431 4571 COMMAN /GET WORD 1083 001432 1141 TAD M4 1084 001433 7640 SZA CLA 1085 001434 5331 JMP FOR2+3 /NOT *TO* 1086 001435 1025 TAD PT1 1087 001436 7041 CIA 1088 001437 3356 DCA FOR1 /SAVE POINTER 1089 001440 4550 PUSHJ /GET LIMIT 1090 001441 2612 EVAL 1091 001442 4551 PUSHF /SAVE LIMIT 1092 001443 6167 FLARG 1093 001444 4575 TSTEND 1094 001445 5326 JMP FOR2 /GET INCREMENT 1095 001446 4551 PUSHF /INCREMENT IS ONE 1096 001447 7157 FLTONE 1097 001450 1030 FOR3, TAD LINENO 1098 001451 4547 PUSHA 1099 001452 1030 TAD LINENO 1100 001453 7410 SKP 1101 001454 4552 FOR4, POPA 1102 001455 4572 FIND /FIND A *NEXT* STATEMENT 1103 001456 0001 1 /-NEXT CODE 1104 001457 4557 ERR440, ERROR /OUT OF TEXT 1105 001460 4547 PUSHA /SAVE FOR RESTART 1106 001461 4550 PUSHJ /GET VARIABLE 1107 001462 4400 GETVAR 1108 001463 7640 SZA CLA /NO SECOND CHANCE ON FUNCTION 1109 001464 3025 DCA PT1 1110 001465 4566 TSTCCR /"NEXT" MUST BE LAST ON LINE HERE OR WE 1111 001466 5742 JMP I NEXERR /FIND THIS NEXT FOREVER IN "FIND" 1112 /MUST BE LAST ALSO OR INITIALIZATION WILL 1113 /WIPE HIS PROGRAM [AND MAYBE THE SYSTEM!] 1114 001467 1025 TAD PT1 1115 001470 1356 TAD FOR1 1116 001471 7640 SZA CLA /RIGHT VARIABLE? 1117 001472 5254 JMP FOR4 /NO! 1118 001473 2015 ISZ PDLXR /DUMP RESTART ADDRESS 1119 001474 4552 POPA 1120 001475 3030 DCA LINENO 1121 001476 1030 TAD LINENO 1122 001477 4560 UDF 1123 001500 3417 DCA I AXOUT /SET LINE NUMBER 1124 001501 1341 TAD FOR5 1125 001502 3417 DCA I AXOUT /AND MIDDLE OF LINE POINTER 1126 001503 6201 CDF 1127 001504 4554 POPF /GET INCREMENT 1128 001505 6167 FLARG 1129 001506 1017 TAD AXOUT 1130 001507 4556 FLPUT /PUT INCREMENT 1131 001510 6167 FLARG 1132 001511 4554 POPF /GET LIMIT 1133 001512 6167 FLARG 1134 001513 7326 L0002 1135 001514 7001 IAC 1136 001515 1017 TAD AXOUT 1137 001516 4556 FLPUT /SET LIMIT 1138 001517 6167 FLARG 1139 001520 4574 FINDLN /FIND US AGAIN 1140 001521 7703 MEQL, -"=+200 /THIS NEVER GETS EXECUTED 1141 001522 4575 LET1, TSTEND 1142 001523 4557 ERR450, ERROR /JUNK 1143 001524 1341 TAD FOR5 1144 001525 5777 JMP I (FOREXT 1145 1146 001526 7344 FOR2, L7776 1147 001527 4571 COMMAN /IS IT STEP? 1148 001530 7650 SNA CLA 1149 001531 4557 ERR430, ERROR /NOT STEP 1150 001532 4550 PUSHJ /GET INCREMENT 1151 001533 2612 EVAL 1152 001534 4551 PUSHF /SAVE INCREMENT 1153 001535 6167 FLARG 1154 001536 4575 TSTEND 1155 001537 5331 JMP FOR2+3 /JUNK 1156 001540 5250 JMP FOR3 1157 1158 001541 0000 FOR5, 0 1159 001542 2400 NEXERR, ERR460 1160 1161 001543 4570 UNKWN, TSTALP 1162 001544 5357 JMP ERRCHK 1163 001545 4550 PUSHJ 1164 001546 4400 GETVAR 1165 001547 7650 SNA CLA 1166 001550 1026 TAD CHAR 1167 1168 001551 1321 TAD MEQL 1169 001552 7640 SZA CLA 1170 001553 5344 JMP UNKWN+1 /NO "=" 1171 001554 3356 DCA FOR1 /MAKE IT A LET COMMAND 1172 001555 5211 JMP LET2 1173 1174 001556 0000 FOR1, 0 1175 1176 IFZERO .&1 1177 001557 7200 ERRCHK, CLA 1178 001560 1062 TAD ERLINE 1179 001561 7740 SMA SZA CLA 1180 001562 4557 ERR520, ERROR /RUNNING 1181 001563 4557 ERR000, ERROR /IMMEDIATE MODE--"WHAT?" 1182 1183 001564 4547 OPUSJ1, PUSHA 1184 001565 1376 TAD (OPUS 1185 001566 4547 PUSHA 1186 001567 5515 JMP I T3 1187 1188 001570 6211 ABS, CDF SWAP 1189 001571 3775 DCA I (ACSIGN 1190 001572 5553 POPJ 1191 1192 1193 1194 001575 0043 PAGE 001576 7400 001577 2460 1195 /*DELETE* ROUTINE 1196 001600 0000 XDELET, 0 1197 001601 4574 FINDLN /FIND THE LINE 1198 001602 5600 JMP I XDELET /NOT THERE - EXIT 1199 001603 2032 ISZ SPACSW 1200 001604 4544 GETC 1201 001605 4566 TSTCCR /GO TO END OF LINE 1202 001606 5204 JMP .-2 1203 001607 1017 TAD AXOUT 1204 001610 7040 CMA 1205 001611 1027 TAD LINEPC 1206 001612 4547 PUSHA /SAVE COUNT 1207 001613 1027 TAD LINEPC 1208 001614 7001 IAC 1209 001615 3017 DCA AXOUT /TO UNPACK 1210 001616 3021 DCA XCT 1211 001617 4550 PUSHJ 1212 001620 6523 ENDFND 1213 001621 7650 SNA CLA 1214 001622 1137 TAD M10 1215 001623 4552 POPA 1216 001624 3115 DCA T3 /CORRECTED COUNT 1217 001625 1027 TAD LINEPC 1218 001626 7041 CIA 1219 001627 1057 TAD ALINE0 1220 001630 7650 SNA CLA 1221 001631 5600 JMP I XDELET /NOT LINE0 1222 001632 4560 UDF 1223 001633 1427 TAD I LINEPC /GET POINTER 1224 001634 3431 DCA I LASTLN /REMOVE LINE 1225 001635 1057 TAD ALINE0 1226 001636 3113 XDEL3, DCA T2 /CURRENT LINE 1227 001637 1513 TAD I T2 1228 001640 7450 SNA 1229 001641 5254 JMP XDEL2 /OUT OF TEXT 1230 001642 3112 DCA T1 1231 001643 1027 TAD LINEPC 1232 001644 7141 CLL CIA 1233 001645 1112 TAD T1 1234 001646 7630 SZL CLA 1235 001647 1115 TAD T3 /CORRECT LINE 1236 001650 1112 TAD T1 1237 001651 3513 DCA I T2 1238 001652 1112 TAD T1 1239 001653 5236 JMP XDEL3 1240 1241 001654 7340 XDEL2, L7777 1242 001655 1027 TAD LINEPC 1243 001656 3012 DCA XREG3 1244 001657 1115 TAD T3 1245 001660 7040 CMA 1246 001661 1027 TAD LINEPC 1247 001662 3017 DCA AXOUT 1248 001663 1115 TAD T3 1249 001664 1054 TAD BUFR 1250 001665 3054 DCA BUFR 1251 001666 1016 TAD AXIN 1252 001667 7040 CMA 1253 001670 1017 TAD AXOUT 1254 001671 3112 DCA T1 1255 001672 1115 TAD T3 1256 001673 1016 TAD AXIN 1257 001674 3016 DCA AXIN 1258 001675 1417 TAD I AXOUT 1259 001676 3412 DCA I XREG3 /MOVE TEXT 1260 001677 2112 ISZ T1 1261 001700 5275 JMP .-3 1262 001701 5201 JMP XDELET+1 1263 /PUSH ROUTINES 1264 001702 0000 XPUSHA, 0 1265 001703 3315 DCA XPUSHJ 1266 001704 7340 L7777 /BACK 1 1267 001705 4322 JMS PCHK 1268 001706 1315 TAD XPUSHJ 1269 001707 4560 UDF 1270 001710 3415 DCA I PDLXR /PUSH IT 1271 001711 6201 CDF 1272 001712 7340 L7777 1273 001713 4322 JMS PCHK /BACK AGAIN 1274 001714 5702 JMP I XPUSHA 1275 1276 001715 0000 XPUSHJ, 0 1277 001716 1715 TAD I XPUSHJ /GET SEND ADDRESS 1278 001717 3302 DCA XPUSHA 1279 001720 2315 ISZ XPUSHJ /CALCULATE RETURN ADDRESS 1280 001721 5304 JMP XPUSHA+2 1281 1282 001722 0000 PCHK, 0 1283 001723 1015 TAD PDLXR 1284 001724 3015 DCA PDLXR 1285 001725 7326 L0002 1286 001726 1055 TAD LASTV 1287 001727 7161 STL CIA 1288 001730 1015 TAD PDLXR 1289 001731 7630 SZL CLA 1290 001732 5734 JMP I XNORUM /STACK HAS OVERFLOWED. 1291 001733 5722 JMP I PCHK 1292 001734 4473 XNORUM, NOROOM 1293 1294 /*PUSHF* ROUTINE 1295 001735 0000 XPUSHF, 0 1296 001736 7340 L7777 1297 001737 1735 TAD I XPUSHF 1298 001740 3012 DCA XREG3 /POINT TO DATA 1299 001741 7346 L7775 1300 001742 4322 JMS PCHK 1301 001743 7346 L7775 1302 001744 3115 DCA T3 1303 001745 1412 TAD I XREG3 1304 001746 4560 UDF 1305 001747 3415 DCA I PDLXR 1306 001750 6201 CDF 1307 001751 2115 ISZ T3 1308 001752 5345 JMP .-5 1309 001753 7346 L7775 1310 001754 4322 JMS PCHK /BACK AGAIN 1311 001755 2335 ISZ XPUSHF 1312 001756 5735 JMP I XPUSHF 1313 1314 /CALL MESSAGE WRITER IN FIELD 1 1315 001757 0000 READY1, 0 1316 001760 4547 PUSHA /SAVE MESSAGE NUMBER 1317 001761 4472 FREE13 /MAKE SURE THERE'S ROOM 1318 001762 4552 POPA /RESTORE MESSAGE NUMBER 1319 001763 6213 CIF CDF SWAP 1320 001764 4766 JMS I .+2 1321 001765 5553 POPJ 1322 001766 5000 READY2 1323 1324 001767 4547 RUN9X, PUSHA /SAVE FIELD 1 RESTART ADDRESS 1325 001770 4777 JMS I (RUN9 /DISMISS US 1326 001771 4552 POPA /RESTORE ADDRESS 1327 001772 3112 DCA T1 1328 001773 6213 CIF CDF 10 /GO TO IT 1329 001774 5512 JMP I T1 1330 1331 1332 001777 2534 PAGE 1333 002000 0000 MANCOM, 0 1334 002001 3014 DCA FLTXR2 /SAVE AC 1335 002002 4337 JMS COMPUSH /SAVE TEXT POINTERS 1336 002003 1377 TAD (LIST7 /START AT BEGINNING OF LIST 1337 002004 6211 CDF SWAP /IN FIELD 1 1338 002005 3113 COMLP1, DCA T2 /LIST POINTER 1339 002006 7301 L0001 1340 002007 3112 DCA T1 /LETTER POINTER 1341 002010 1513 TAD I T2 /GET -UNIQUE COUNT-1 1342 002011 7012 RTR / 1343 002012 0125 AND C7 / 1344 002013 7110 CLL RAR / 1345 002014 7040 CMA / 1346 002015 3114 DCA CNTR / 1347 002016 4263 JMS COM11 /UNIQUE? 1348 002017 5227 JMP COM3 /YES - TRY REST 1349 002020 2113 ISZ T2 /GET NEXT COMMAND IN LIST 1350 002021 1513 TAD I T2 / 1351 002022 7440 SZA /END OF LIST? 1352 002023 5205 JMP COMLP1 /NO - GO ON 1353 002024 4346 JMS COMDUMP /YES - DUMP THE POINTERS 1354 002025 6201 COM5, CDF /YES - RETURN FAILURE 1355 002026 5600 JMP I MANCOM /AC=0 1356 1357 1358 002027 1513 COM3, TAD I T2 /GET -FULL LENGTH-2 1359 002030 0125 AND C7 / 1360 002031 7001 IAC / 1361 002032 7040 CMA / 1362 002033 1112 TAD T1 /T1=UNIQUE COUNT+1 1363 002034 3114 DCA CNTR /-NO. OF CHARS TO GO-1 1364 002035 4337 JMS COMPUSH /SAVE TEXT POINTERS 1365 002036 4263 JMS COM11 /LONG FORM OF COMMAND? 1366 002037 0004 COMK4, 4 1367 002040 4346 JMS COMDUMP /THROW OUT SHORT POINTERS 1368 002041 1513 TAD I T2 1369 002042 4561 RTL6 1370 002043 7006 RTL 1371 002044 0134 AND C77 /GET CODE 1372 002045 1376 TAD (-32 /CORRECT IT 1373 002046 3013 DCA FLTXR /AND SAVE IT 1374 002047 1014 TAD FLTXR2 1375 002050 7450 SNA 1376 002051 5255 JMP .+4 /NO DOUBLE CHECK 1377 002052 1013 TAD FLTXR 1378 002053 7640 SZA CLA 1379 002054 5261 JMP COM7 /DOUBLE CHECK FAILS 1380 002055 6201 CDF 1381 002056 4346 JMS COMDUMP /DUMP PDL JUNK 1382 002057 1013 TAD FLTXR 1383 002060 5600 JMP I MANCOM 1384 002061 4330 COM7, JMS COMPOP /RESET POINTERS TO ENTRY VALUES 1385 002062 5225 JMP COM5 /TAKE FAILURE RETURN 1386 1387 1388 002063 0000 COM11, 0 /COMMAND COMPARISON 1389 002064 3337 DCA COM12 /SET POINTERS UNUSED SWITCH 1390 002065 6211 COMLP2, CDF SWAP 1391 002066 2114 ISZ CNTR /-NO. OF CHARS TO GO-1 1392 002067 7410 SKP 1393 002070 5663 JMP I COM11 /SUCCESS RETURN FROM COM11 1394 002071 7301 L0001 1395 002072 1112 TAD T1 1396 002073 7010 RAR 1397 002074 1113 TAD T2 1398 002075 3012 DCA XREG3 1399 002076 1412 TAD I XREG3 1400 002077 7430 SZL 1401 002100 5303 JMP .+3 1402 002101 4561 RTL6 1403 002102 7004 RAL 1404 002103 0134 AND C77 1405 002104 7450 SNA 1406 002105 1355 TAD TSTCON 1407 002106 1375 TAD (-137 1408 002107 1026 TAD CHAR 1409 002110 7640 SZA CLA /SAME SO FAR? 1410 002111 5320 JMP COM13 /NO GO 1411 002112 7340 L7777 1412 002113 3337 DCA COM12 /SET SWITCH FOR POINTERS USED 1413 002114 6201 CDF 1414 002115 4544 GETC /NEXT CHAR 1415 002116 2112 ISZ T1 /LETTER POINTER 1416 002117 5265 JMP COMLP2 /LOOP 1417 1418 002120 6211 COM13, CDF SWAP /BE SURE TO RETURN WITH DF=1 1419 002121 2263 ISZ COM11 /FAILURE RETURN FROM COM11 1420 002122 2337 ISZ COM12 /HAVE THE TEXT POINTERS BEEN USED? 1421 002123 5663 JMP I COM11 1422 002124 4330 JMS COMPOP /COMPOP RETURNS WITH DF=1 1423 002125 1137 TAD M10 /FOOL COMDUMP INTO BACKING UP 1424 002126 4346 JMS COMDUMP /OVER SAVED POINTERS 1425 002127 5663 JMP I COM11 1426 1427 1428 002130 0000 COMPOP, 0 /RESTORE TEXT POINTERS FROM PDL 1429 002131 4552 POPA 1430 002132 3026 DCA CHAR 1431 002133 4554 POPF 1432 002134 0017 TEXTP 1433 002135 6211 CDF SWAP 1434 002136 5730 JMP I COMPOP 1435 1436 COM12, /THIS SWITCH IS NEVER IN USE WHEN COMPUSH IS CALLED 1437 002137 0000 COMPUSH, 0 /SAVE POINTERS 1438 002140 6201 CDF 1439 002141 4551 PUSHF 1440 002142 0017 TEXTP /SAVE TEXT POINTERS 1441 002143 1026 TAD CHAR / 1442 002144 4547 PUSHA / 1443 002145 5737 JMP I COMPUSH 1444 1445 002146 0000 COMDUMP, 0 /DUMP PDL ENTRIES 1446 002147 1237 TAD COMK4 1447 002150 1015 TAD PDLXR 1448 002151 3015 DCA PDLXR 1449 002152 5746 JMP I COMDUMP 1450 1451 002153 0000 TSTCH1, 0 /TEST A-Z,0-9 FOR FIELD 1 1452 002154 4562 TESTN 1453 002155 0122 TSTCON, -215+337 1454 002156 7410 SKP 1455 002157 2353 ISZ TSTCH1 1456 002160 4570 TSTALP 1457 002161 7410 SKP 1458 002162 2353 ISZ TSTCH1 1459 002163 6213 CIF CDF 10 1460 002164 5753 JMP I TSTCH1 1461 1462 002165 0000 GETCX1, 0 /ENTRY FOR GETC FROM FIELD 1. 1463 002166 4544 GETC 1464 002167 6213 CIF CDF SWAP 1465 002170 5765 JMP I GETCX1 1466 /PART OF PATCH TO USE READY1. 1467 002171 0000 PUSPOP, 0 1468 002172 0000 0 1469 002173 6213 CIF CDF 10 1470 002174 5771 JMP I PUSPOP 1471 002175 7641 PAGE 002176 7746 002177 0771 1472 /*EDIT* COMMAND 1473 002200 4565 EDIT, GETLN /GET LINE NUMBER 1474 002201 4566 TSTCCR 1475 002202 4557 ERR001, ERROR /JUNK 1476 002203 4574 FINDLN /FIND THE LINE 1477 002204 5202 JMP ERR001 /NOT THERE 1478 002205 2032 ISZ SPACSW 1479 002206 4637 JMS I EPINPACK /SET TO PACK IT 1480 002207 3130 MODF2, DCA LSTMOD /READ SILENTLY 1481 002210 4467 READC 1482 002211 1026 MODF3, TAD CHAR 1483 002212 3130 DCA LSTMOD /SET SEARCH CHARACTER 1484 002213 4544 MODF1, GETC 1485 002214 4471 FREE2 1486 002215 4470 PRINTC /PRINT LINE UNTIL... 1487 002216 4545 SORTJ 1488 002217 0123 CCR-1 1489 002220 2041 MODL1-CCR 1490 002221 4564 PACKC /KEEP PACKING 1491 002222 5213 JMP MODF1 1492 1493 002223 4564 MODF4, PACKC /PACK IT 1494 002224 4467 READC /GET CHARS 1495 002225 4545 SORTJ /CHECK THEM 1496 002226 0123 CCR-1 1497 002227 1225 MODL2-CCR 1498 002230 5223 JMP MODF4 1499 1500 002231 4564 MODF5, PACKC /PACK THE CR 1501 002232 4564 PACKC 1502 002233 4635 JMS I .+2 1503 002234 5636 JMP I .+2 1504 002235 5620 OTPACK 1505 002236 0511 SRETN 1506 002237 5607 EPINPACK,INPACK 1507 /*DELETE* COMMAND 1508 002240 4336 DELETE, JMS GETLIM /GET LIMITS 1509 002241 1054 TAD BUFR 1510 002242 3016 DCA AXIN /PROTECT TEXT 1511 002243 4317 JMS GETLIN /GET A LINE 1512 002244 5771 JMP I CVARKIL /WE ARE DONE 1513 002245 4770 JMS I CXDELET /DELETE IT 1514 002246 1031 TAD LASTLN 1515 002247 3027 DCA LINEPC /RESTORE POINTERS 1516 002250 5243 JMP .-5 /LOOP 1517 1518 /*LIST* COMMAND 1519 002251 4336 LIST, JMS GETLIM /GET LIMITS 1520 002252 2032 ISZ SPACSW /KEEP SPACES 1521 002253 1140 TAD M100 1522 002254 3025 DCA PT1 1523 002255 1034 TAD OUTPUT 1524 002256 7650 SNA CLA 1525 002257 5266 JMP LLIST3-3 /NORMAL MODE 1526 002260 3034 DCA OUTPUT /WE WILL OUTPUT FOR A WHILE 1527 002261 4471 LLIST5, FREE2 1528 002262 7330 L4000 1529 002263 4470 PRINTC /DO L/T 1530 002264 2025 ISZ PT1 1531 002265 5261 JMP LLIST5 1532 002266 4471 FREE2 1533 002267 1124 TAD CCR 1534 002270 4470 PRINTC 1535 002271 4317 LLIST3, JMS GETLIN /GET A LINE 1536 002272 5304 JMP LLIST4 /WE ARE DONE 1537 002273 4472 FREE13 1538 002274 1030 TAD LINENO 1539 002275 4762 JMS I CITPRNT /PRINT THE NUMBER 1540 002276 4544 GETC 1541 002277 4471 FREE2 1542 002300 4470 PRINTC /PRINT THE LINE 1543 002301 4566 TSTCCR 1544 002302 5276 JMP .-4 /UNTIL A CR 1545 002303 5271 JMP LLIST3 /LOOP 1546 1547 002304 1025 LLIST4, TAD PT1 1548 002305 7640 SZA CLA 1549 002306 5772 JMP I CSAVDON /SEE IF THIS IS A 'SAVE' 1550 002307 1140 TAD M100 1551 002310 3025 DCA PT1 1552 002311 4471 LLIST6, FREE2 1553 002312 7330 L4000 1554 002313 4470 PRINTC /DO L/T 1555 002314 2025 ISZ PT1 1556 002315 5311 JMP LLIST6 1557 002316 5773 JMP I CTAPE 1558 1559 002317 0000 GETLIN, 0 1560 002320 1124 TAD CCR /FAKE OUT GETNXT! 1561 002321 3026 DCA CHAR 1562 002322 4573 GETNXT /GET NEXT LINE 1563 002323 5717 JMP I GETLIN /OUT OF TEXT 1564 002324 4552 POPA 1565 002325 3115 DCA T3 /GET LIMIT 1566 002326 1115 TAD T3 1567 002327 4547 PUSHA /SAVE LIMIT 1568 002330 1030 TAD LINENO 1569 002331 7041 CIA 1570 002332 1115 TAD T3 1571 002333 7700 SMA CLA 1572 002334 2317 ISZ GETLIN /OK 1573 002335 5717 JMP I GETLIN 1574 1575 002336 0000 GETLIM, 0 1576 002337 4566 TSTCCR 1577 002340 5344 JMP LIMGT1 /NOT ALL 1578 002341 3031 DCA LASTLN /START AT 0 1579 002342 7350 L3777 1580 002343 5354 JMP LIMGT3 1581 1582 002344 4565 LIMGT1, GETLN /GET A LINE NUMBER 1583 002345 1030 TAD LINENO 1584 002346 3031 DCA LASTLN /AND SAVE IT 1585 002347 4567 TSTCOM 1586 002350 5366 JMP LIMGT2 /ONLY ONE LINE 1587 002351 4544 GETC 1588 002352 4565 GETLN /GET LINE NUMBER 1589 002353 1030 TAD LINENO 1590 002354 4547 LIMGT3, PUSHA /UPPER LIMIT 1591 002355 1031 TAD LASTLN 1592 002356 3030 DCA LINENO /LOWER LIMIT 1593 002357 4566 TSTCCR 1594 002360 5202 JMP EDIT+2 /JUNK 1595 002361 4574 LIMGT4, FINDLN /FIND THE LINE 1596 002362 0233 CITPRNT,ITPRNT 1597 002363 1031 TAD LASTLN 1598 002364 3027 DCA LINEPC /AND GO BACK ONE 1599 002365 5736 JMP I GETLIM 1600 1601 002366 1031 LIMGT2, TAD LASTLN /1ST = 2ND 1602 002367 5354 JMP LIMGT3 1603 1604 1605 002370 1600 CXDELET,XDELET 1606 002371 4235 CVARKIL,VARKILL 1607 002372 7124 CSAVDON,SAVDON 1608 002373 5077 CTAPE, TAPE 1609 /*NEXT* COMMAND 1610 002374 4550 NEXT, PUSHJ /GET VARIABLE 1611 002375 4400 GETVAR 1612 002376 7650 SNA CLA 1613 002377 4566 TSTCCR 1614 002400 4557 ERR460, ERROR /WAS FUNCTION 1615 002401 4407 FINT 1616 002402 0522 FGET I FLARGP /PUT VARIABLE INTO FLAC 1617 002403 0000 FEXT 1618 002404 4560 UDF 1619 002405 1417 TAD I AXOUT /GET *FOR* LINE NUMBER 1620 002406 7450 SNA 1621 002407 4557 ERR470, ERROR /*NEXT* NOT INITIALIZED 1622 002410 3112 DCA T1 /SAVE LINE 1623 002411 1417 TAD I AXOUT 1624 002412 3325 DCA RUNSCR 1625 002413 6201 CDF 1626 002414 1017 TAD AXOUT 1627 002415 4555 FLGET /GET INCREMENT 1628 002416 6167 FLARG 1629 002417 1522 GETSGN 1630 002420 7700 NEXT3, SMA CLA 1631 002421 1256 TAD C50 /POSITIVE INCREMENT 1632 002422 1220 TAD NEXT3 /NEGATIVE INCREMENT 1633 002423 3243 DCA NEXT1 /SET LIMIT TEST INSTRUCTION 1634 002424 4407 FINT 1635 002425 1522 FADD I FLARGP /BUMP VARIABLE 1636 002426 7522 FPUT I FLARGP /SAVE VALUE 1637 002427 0000 FEXT 1638 002430 4556 FLPUT /SET VARIABLE 1639 002431 6167 FLARG 1640 002432 1143 TAD C3 1641 002433 1017 TAD AXOUT 1642 002434 4555 FLGET /GET LIMIT 1643 002435 6167 FLARG 1644 002436 4407 FINT 1645 002437 2522 FSUB I FLARGP 1646 002440 7522 FPUT I FLARGP 1647 002441 0000 FEXT 1648 002442 1522 GETSGN /SIGN OF DIFFERENCE 1649 002443 7402 NEXT1, HLT /SKIP IF DONE 1650 002444 5253 JMP NEXT2 /NOT DONE 1651 002445 7340 L7777 1652 002446 1017 TAD AXOUT 1653 002447 3112 DCA T1 1654 002450 4560 UDF 1655 002451 3512 DCA I T1 /NOT INITIALIZED NOW 1656 002452 5553 POPJ 1657 1658 002453 1112 NEXT2, TAD T1 /GET LINE NUMBER OF *FOR* 1659 002454 3030 DCA LINENO 1660 002455 4574 FINDLN 1661 002456 0050 C50, 50 /IF IT AIN'T THERE, WELL... 1662 002457 1325 TAD RUNSCR 1663 002460 3017 FOREXT, DCA AXOUT 1664 002461 3026 DCA CHAR 1665 002462 5553 POPJ 1666 002463 4750 CHAIN1, JMS I PIOFX 1667 002464 4777 JMS I (DTFREE /REALLY FREE IT THIS TIME 1668 /*RUN* COMMAND 1669 002465 1054 RUN, TAD STARTV 1670 002466 3055 DCA LASTV /NO VARIABLES 1671 002467 4551 PUSHF 1672 002470 7736 FRNDX1 1673 002471 4554 POPF /SET RANDOM NUMBER 1674 002472 0106 FRNDX 1675 002473 4351 JMS RUN4 /UNINITIALIZE THE *NEXT* STATEMENTS 1676 002474 1057 TAD ALINE0 1677 002475 3027 DCA LINEPC /START AT LINE ZERO 1678 002476 4573 RUN7, GETNXT /GET NEXT LINE 1679 002477 5776 JMP I (READY /ALL DONE 1680 002500 3032 RUN6, DCA SPACSW 1681 002501 4544 GETC 1682 002502 2022 ISZ PC 1683 002503 5307 JMP RUN8+1 /STILL O.K. 1684 002504 4334 JMS RUN9 /DISMISS US NOW 1685 002505 7410 SKP 1686 002506 2015 RUN8, ISZ PDLXR 1687 002507 4750 JMS I PIOFX 1688 002510 3031 DCA MODE 1689 002511 1030 TAD LINENO 1690 002512 3062 DCA ERLINE /SET CURRENT LINE 1691 002513 4571 COMMAN /GET COMMAND 1692 002514 7540 SMA SZA 1693 002515 5775 JMP I (ERRCHK 1694 002516 1374 TAD (COMGOL 1695 002517 3112 DCA T1 1696 002520 6211 CDF SWAP 1697 002521 1512 TAD I T1 /GET ADDRESS 1698 002522 6201 CDF 1699 002523 3325 DCA .+2 1700 002524 4550 PUSHJ /GO TO IT 1701 002525 0000 RUNSCR, 0 1702 002526 7450 SNA 1703 002527 5276 JMP RUN7 /NORMAL RETURN 1704 002530 3030 DCA LINENO /FOR TRANSFER 1705 002531 4574 GOSUB2, FINDLN /FIND THE LINE 1706 002532 4557 ERR380, ERROR /NOT FOUND 1707 002533 5300 JMP RUN6 1708 1709 002534 0000 RUN9, 0 /DISMISSAL ROUTINE 1710 002535 1334 TAD RUN9 1711 002536 3022 DCA PC /SET RESTART ADDRESS 1712 002537 5177 JMP NULL /DISMISS 1713 1714 002540 4351 IMMED, JMS RUN4 1715 002541 7340 L7777 1716 002542 1060 TAD COMBUF 1717 002543 3027 DCA LINEPC 1718 002544 7340 L7777 1719 002545 3030 DCA LINENO /IMMEDIATE MODE 1720 002546 4773 JMS I (OTPACK 1721 002547 5307 JMP RUN8+1 1722 1723 002550 1363 PIOFX, IOFIX 1724 1725 002551 0000 RUN4, 0 1726 002552 7200 CLA 1727 002553 1124 TAD CCR /SET END OF LINE FOR GETNXT 1728 002554 3026 DCA CHAR 1729 002555 1062 TAD ERLINE 1730 002556 4572 FIND /FIND THE NEXT STATEMENTS 1731 002557 0001 1 /- NEXT CODE 1732 002560 5751 JMP I RUN4 /OUT OF TEXT 1733 002561 3062 DCA ERLINE /SAVE FOR RESTART 1734 002562 4550 PUSHJ 1735 002563 4400 GETVAR 1736 002564 7650 SNA CLA 1737 002565 4566 TSTCCR 1738 002566 5200 JMP ERR460 1739 002567 4560 UDF 1740 002570 3417 DCA I AXOUT /NOT INITIALIZED NOW 1741 002571 5352 JMP RUN4+1 1742 1743 002573 5620 PAGE 002574 3750 002575 1557 002576 0465 002577 6627 1744 /EXPRESSION EVALUATOR 1745 002600 0000 ECALL, 0 1746 002601 1111 TAD SORTCN 1747 002602 4547 PUSHA 1748 002603 1117 TAD LASTOP 1749 002604 4547 PUSHA 1750 002605 1114 TAD EFOP 1751 002606 4547 PUSHA 1752 002607 1200 TAD ECALL 1753 002610 4547 PUSHA /RETURN ADDRESS 1754 002611 4544 GETC 1755 002612 3117 EVAL, DCA LASTOP /0 IS END 1756 002613 1353 TAD EVAL1 1757 002614 4547 PUSHA /SAVE EVAL1 1758 002615 3353 DCA EVAL1 /0 EVAL1 1759 002616 4563 TESTC 1760 002617 5223 JMP ETERM1 /INITIAL TERMINATOR 1761 002620 5241 JMP ENUM /NUMBER 1762 002621 5344 JMP EVAR /VARIABLE 1763 002622 5777 JMP I (QUOTES /CHECK FOR LITERAL STRING 1764 1765 002623 1376 ETERM1, TAD (FLZERO 1766 002624 3025 DCA PT1 /0 DATA 1767 002625 7344 L7776 1768 002626 1111 TAD SORTCN 1769 002627 7450 SNA 1770 002630 5261 JMP ETERM /MINUS 1771 002631 7001 IAC 1772 002632 7650 SNA CLA 1773 002633 5336 JMP ARGNXT /PLUS 1774 002634 4576 ELPAR, TSTLPR 1775 002635 5354 JMP EVAL2 /CHECK UNARY 1776 002636 4200 EPAR2, JMS ECALL /RECURSIVE CALL 1777 002637 2015 ISZ PDLXR 1778 002640 5775 JMP I (ENDFUN /END AS FUNCTION 1779 1780 002641 1122 ENUM, TAD FLARGP 1781 002642 3025 DCA PT1 /DATA TO FLARG 1782 002643 4774 JMS I (FLIN /GET VALUE 1783 002644 2353 OPNEXT, ISZ EVAL1 1784 002645 5251 JMP .+4 /NO UNARY 1785 002646 7330 L4000 1786 002647 1425 TAD I PT1 1787 002650 3425 DCA I PT1 /FLIP SIGN 1788 002651 3353 DCA EVAL1 1789 002652 4546 SORTC 1790 002653 3640 TERMS-1 1791 002654 5256 JMP ETERMN 1792 002655 3111 DCA SORTCN /ALL ELSE IS END 1793 002656 4576 ETERMN, TSTLPR 1794 002657 7410 SKP 1795 002660 4557 ERR120, ERROR /EXCESS L-PARENS 1796 002661 1111 ETERM, TAD SORTCN 1797 002662 3116 DCA THISOP /SET OP 1798 002663 1116 TAD THISOP 1799 002664 1137 TAD M10 1800 002665 7700 SMA CLA 1801 002666 3116 DCA THISOP /END 1802 002667 1116 ETERM2, TAD THISOP 1803 002670 7041 CIA 1804 002671 1117 TAD LASTOP /PRIORITIES 1805 002672 7710 SPA CLA 1806 002673 5323 JMP EPAR /NO GO YET 1807 002674 1117 TAD LASTOP 1808 002675 1373 TAD (OPTABL 1809 002676 3114 DCA CNTR 1810 002677 1514 TAD I CNTR 1811 002700 3307 DCA FLOP /SET OP 1812 002701 1117 TAD LASTOP 1813 002702 7640 SZA CLA 1814 002703 4554 POPF /GET DATA 1815 002704 0112 T1 /DUMB TEMP 1816 002705 4407 FINT 1817 002706 0112 FGET T1 1818 002707 5772 FLOP, FJMP I (FUPARR /FLOATING OP 1819 002710 7522 FPUT I FLARGP /SAVE DATA 1820 002711 0000 FEXT 1821 002712 1122 TAD FLARGP 1822 002713 3025 DCA PT1 /POINT TO DATA 1823 002714 1116 TAD THISOP 1824 002715 1117 TAD LASTOP 1825 002716 7650 SNA CLA 1826 002717 5366 JMP EVAL3 /DONE 1827 002720 4552 POPA 1828 002721 3117 DCA LASTOP /NEW OP 1829 002722 5267 JMP ETERM2 1830 1831 002723 4576 EPAR, TSTLPR 1832 002724 7410 SKP 1833 002725 5236 JMP EPAR2 /DO RECURSIVE 1834 002726 1117 TAD LASTOP 1835 002727 4547 PUSHA 1836 002730 1025 TAD PT1 1837 002731 3333 DCA .+2 1838 002732 4551 PUSHF /SAVE DATA 1839 002733 0000 0 1840 002734 1116 TAD THISOP 1841 002735 3117 DCA LASTOP 1842 002736 4544 ARGNXT, GETC 1843 002737 4563 TESTC 1844 002740 5234 JMP ELPAR /T 1845 002741 5241 JMP ENUM /N 1846 002742 5344 JMP EVAR /V 1847 002743 5357 JMP ERR110 /OTHER 1848 1849 002744 4550 EVAR, PUSHJ /GET VARIABLE 1850 002745 4400 GETVAR 1851 002746 7440 SZA 1852 002747 5771 JMP I (FUNCT3 /FUNCTION 1853 002750 1122 TAD FLARGP 1854 002751 3025 DCA PT1 /POINT TO DATA 1855 002752 5244 JMP OPNEXT 1856 1857 002753 0000 EVAL1, 0 1858 1859 002754 7344 EVAL2, L7776 1860 002755 1111 TAD SORTCN /IS IT + OR -? 1861 002756 7540 SMA SZA 1862 002757 4557 ERR110, ERROR /NO - DOUBLE OPS OR EX L-PARNES 1863 002760 7640 SZA CLA 1864 002761 5336 JMP ARGNXT /WAS + 1865 002762 1353 TAD EVAL1 1866 002763 7040 CMA 1867 002764 3353 DCA EVAL1 /FLIP EVAL1 1868 002765 5336 JMP ARGNXT 1869 1870 002766 4552 EVAL3, POPA 1871 002767 3353 DCA EVAL1 /RESTORE EVAL1 1872 002770 5553 POPJ /EXIT 1873 1874 002771 5710 PAGE 002772 5021 002773 5400 002774 5731 002775 7741 002776 7160 002777 7617 1875 003000 4547 FUNCT6, PUSHA /SAVE CHARACTER 1876 003001 3114 DCA EFOP 1877 003002 2114 ISZ EFOP 1878 003003 4551 PUSHF /SAVE ARGS 1879 003004 6167 FLARG 1880 003005 4567 TSTCOM 1881 003006 5214 JMP .+6 /NO MORE ARGS 1882 003007 4777 JMS I (ECALL /GET NEXT 1883 003010 4552 POPA 1884 003011 2015 ISZ PDLXR 1885 003012 2015 ISZ PDLXR 1886 003013 5201 JMP .-12 1887 1888 003014 1055 TAD LASTV 1889 003015 3024 DCA SUBS /SAVE END OF VARIABLES 1890 003016 1114 TAD EFOP 1891 003017 1376 FUNC10, TAD (2000 1892 003020 3023 DCA ADD /CREATE ILLEGAL NAME 1893 003021 4550 PUSHJ /LOOK IT UP - WILL DEFINE 1894 003022 4435 LOOKUP 1895 003023 4554 POPF 1896 003024 6167 FLARG 1897 003025 4556 FLPUT /SET ARGUMENT 1898 003026 6167 FLARG 1899 003027 7352 L5777 1900 003030 1023 TAD ADD 1901 003031 7440 SZA 1902 003032 5217 JMP FUNC10 /MORE ARGUMENTS 1903 003033 7330 L4000 1904 003034 4552 POPA 1905 003035 7041 CIA 1906 003036 3342 DCA FUNC17 /-CHAR OF FUNCTION 1907 003037 4551 PUSHF 1908 003040 0017 TEXTP 1909 003041 1111 TAD SORTCN 1910 003042 4547 PUSHA 1911 003043 1024 TAD SUBS 1912 003044 4547 PUSHA 1913 003045 4572 FIND /FIND A *DEF* 1914 003046 0011 FUNC11, 11 /-DEF CODE 1915 003047 4557 ERR170, ERROR /OUT OF TEXT 1916 003050 7200 CLA 1917 003051 4571 COMMAN /GET WORD 1918 003052 1375 TAD (-5 /DOES FN FOLLOW THE DEF? 1919 003053 7640 SZA CLA 1920 003054 5366 JMP FNC11A /NO, SET UP SEARCH FOR NEXT DEF. 1921 003055 1026 TAD CHAR /YES, IS THE LETTER AFTER THE FN THE 1922 003056 1342 TAD FUNC17 /ONE WE ARE LOOKING FOR? 1923 003057 7640 SZA CLA 1924 003060 5366 JMP FNC11A /NO, SET UP FURTHER SEARCHING. 1925 003061 1062 TAD ERLINE /YES. 1926 003062 4547 PUSHA /SAVE CALLING LINE 1927 003063 1030 TAD LINENO 1928 003064 3062 DCA ERLINE /CALL THIS OUR LINE 1929 003065 4544 GETC 1930 003066 4546 SORTC 1931 003067 3640 TERMS-1 1932 003070 4576 TSTLPR 1933 003071 4557 ERR180, ERROR /NO L-PAREN 1934 003072 1111 TAD SORTCN 1935 003073 4547 PUSHA 1936 003074 4544 GETC 1937 003075 7332 L2000 1938 003076 3112 DCA T1 1939 003077 1055 TAD LASTV 1940 003100 3025 DCA PT1 /POINT TO ARGUMENTS 1941 003101 4570 FUNC14, TSTALP 1942 003102 5271 JMP ERR180 /ILLEGAL VARIABLE 1943 003103 1026 TAD CHAR 1944 003104 0312 AND C37 1945 003105 4561 RTL6 1946 003106 7010 RAR 1947 003107 3113 DCA T2 /SAVE NAME 1948 003110 4544 GETC 1949 003111 4562 TESTN 1950 003112 0037 C37, 37 1951 003113 5321 JMP FUNC13 /NOT NUMBER 1952 003114 1026 TAD CHAR 1953 003115 0312 AND C37 1954 003116 1113 TAD T2 1955 003117 3113 DCA T2 1956 003120 4544 GETC 1957 003121 2112 FUNC13, ISZ T1 /SET ILLEGAL NAME 1958 003122 4560 UDF 1959 003123 1425 TAD I PT1 1960 003124 7041 CIA 1961 003125 1112 TAD T1 1962 003126 7640 SZA CLA 1963 003127 4557 ERR200, ERROR /WRONG NUMBER OF ARGUMENTS 1964 003130 1113 TAD T2 1965 003131 3425 DCA I PT1 /SET TEMPORARY NAME 1966 003132 6201 CDF 1967 003133 1141 TAD M4 1968 003134 1025 TAD PT1 1969 003135 3025 DCA PT1 /POINT TO NEXT 1970 003136 4567 TSTCOM 1971 003137 5343 JMP FUNC12 /NO MORE 1972 003140 4544 GETC 1973 003141 5301 JMP FUNC14 1974 1975 003142 0000 FUNC17, 0 1976 1977 003143 2112 FUNC12, ISZ T1 1978 003144 4560 UDF 1979 003145 1425 TAD I PT1 1980 003146 6201 CDF 1981 003147 7041 CIA 1982 003150 1112 TAD T1 1983 003151 7650 SNA CLA 1984 003152 5327 JMP ERR200 /SHOULD NOT AGREE 1985 003153 4546 SORTC 1986 003154 3640 TERMS-1 1987 003155 7410 SKP 1988 003156 5271 JMP ERR180 /NO PAREN 1989 003157 7344 L7776 1990 003160 1111 TAD SORTCN 1991 003161 7041 CIA 1992 003162 4552 POPA 1993 003163 7640 SZA CLA 1994 003164 5271 JMP ERR180 /NO MATCH 1995 003165 5774 JMP I (FUNC16 1996 /COME HERE TO SET UP SEARCHES FOR MORE DEF STATEMENTS. 1997 003166 1372 FNC11A, TAD KFNC11 /SET UP RETURN ADDR FOR FIND. 1998 003167 3572 DCA I KFIND 1999 003170 5771 JMP I .+1 /ENTER FIND AT THE GETNXT STATEMENT. 2000 003171 4142 XFIND1 2001 003172 3046 KFNC11, FUNC11 2002 003174 5112 PAGE 003175 7773 003176 2000 003177 2600 2003 /COMMON PART FOR *PRINT* AND *INPUT* COMMANDS 2004 003200 4544 PRINT8, GETC /GO BY THE ";" 2005 003201 2025 ISZ PT1 /SHOULD WE SPACE? 2006 003202 5206 JMP PRINT1 /NO 2007 003203 4471 FREE2 2008 003204 1142 TAD C40 2009 003205 4470 PRINTC /PRINT A SPACE 2010 003206 4545 PRINT1, SORTJ /CHECK , " ' CR 2011 003207 5446 PRNTL1-1 2012 003210 6235 PRNTL2-PRNTL1 2013 003211 7340 PRINT4, L7777 2014 003212 4571 COMMAN /TAB? 2015 003213 7640 SZA CLA 2016 003214 5222 JMP PRIN5+1 2017 003215 1377 TAD (-26 2018 003216 4571 COMMAN 2019 003217 7650 SNA CLA 2020 003220 5553 POPJ /MUST BE EXPRESSION 2021 003221 7340 PRIN5, L7777 2022 003222 4547 PUSHA 2023 003223 4546 SORTC 2024 003224 3640 TERMS-1 2025 003225 4576 TSTLPR 2026 003226 4557 ERR340, ERROR 2027 003227 4776 JMS I (ECALL /GET RECURSIVE 2028 003230 2015 ISZ PDLXR /DUMP EFOP 2029 003231 4775 JMS I (PARTST /CHECK MATCH 2030 003232 4560 UDF 2031 003233 2415 ISZ I PDLXR /AHA! 2032 003234 5774 JMP I (PRIN12 /WAS TAB FUNCTION 2033 003235 4523 JMS I INTEGE 2034 003236 1373 TAD (-15 2035 003237 7450 SNA 2036 003240 5252 JMP PRIN11+1 2037 003241 1124 TAD CCR 2038 003242 4547 PUSHA 2039 003243 4471 FREE2 /MAKE SOME ROOM 2040 003244 4552 POPA 2041 003245 7450 SNA 2042 003246 7330 L4000 /MAKE "NULL" PRINTABLE (OTHERWISE WE PRINT CHAR...) 2043 003247 4470 PRINTC 2044 003250 5307 JMP PRIN10 2045 2046 003251 4523 PRIN11, JMS I INTEGE /MAKE INTEGER OF TAB ARG 2047 003252 1372 TAD (-110 2048 003253 7440 SZA /SPECIAL CASE CHECK 2049 003254 1371 TAD (110 2050 003255 7040 CMA 2051 003256 3025 DCA PT1 /SET -COUNT -1 2052 003257 1061 TAD PRNTC1 2053 003260 1371 TAD (110 2054 003261 1025 TAD PT1 2055 003262 7510 SPA 2056 003263 5276 JMP PRINT9 2057 003264 7200 CLA 2058 003265 6002 IOF 2059 003266 1124 TAD CCR 2060 003267 4770 JMS I (XOUTL2 2061 003270 1124 TAD CCR 2062 003271 4770 JMS I (XOUTL2 2063 003272 1372 TAD (-110 2064 003273 3061 DCA PRNTC1 2065 003274 6001 ION 2066 003275 7410 SKP 2067 003276 3025 PRINT9, DCA PT1 2068 003277 2025 ISZ PT1 2069 003300 7410 SKP 2070 003301 5307 JMP PRIN10 2071 003302 4471 FREE2 2072 003303 1142 TAD C40 2073 003304 4470 PRINTC 2074 003305 5277 JMP PRINT9+1 2075 2076 003306 7340 L7777 2077 003307 3025 PRIN10, DCA PT1 /SET SPACE INDICATOR 2078 003310 4545 SORTJ /CHECK ; , ' " CR 2079 003311 5445 PRNTL4-1 2080 003312 6230 PRNTL6-PRNTL4 2081 003313 2025 ISZ PT1 /NO FIND O.K.? 2082 003314 5211 JMP PRINT4 /YES - ASSUME TAB OR EXPRESSION 2083 003315 4557 ERR350, ERROR /NO - SYNTAX ERROR 2084 2085 2086 2087 2088 003316 4471 FREE2 2089 003317 1142 TAD C40 2090 003320 4470 PRINTC /SPACES TO FINISH ZONE 2091 003321 1070 PRINT5, TAD PPRINT 2092 003322 1367 TAD (-XPRNTC 2093 003323 7640 SZA CLA 2094 003324 5336 JMP PRNT5A 2095 003325 1125 TAD C7 2096 003326 1061 TAD PRNTC1 2097 003327 1124 TAD CCR 2098 003330 7510 SPA 2099 003331 5327 JMP .-2 2100 003332 7640 SZA CLA 2101 003333 5316 JMP PRINT5-3 /KEEP GOING 2102 003334 4544 PRNT5B, GETC /GO BY THE "," 2103 003335 5206 JMP PRINT1 2104 003336 4471 PRNT5A, FREE2 2105 003337 4470 PRINTC 2106 003340 5334 JMP PRNT5B 2107 /*PRINTX* ROUTINE 2108 003341 0000 XOUTL, 0 2109 003342 7450 SNA 2110 003343 1026 TAD CHAR /USE CHAR IF AC=0 2111 003344 4770 JMS I (XOUTL2 /DO OUTPUT 2112 003345 1012 TAD XREG3 2113 003346 1373 TAD (-15 /WAS IT A CR 2114 003347 7450 SNA 2115 003350 5362 JMP XOUTL1 /YES! 2116 003351 1366 TAD (15-40 2117 003352 7510 SPA 2118 003353 7610 SKP CLA /IT IS A NON-PRINTING CHARACTER 2119 003354 1140 TAD M100 2120 003355 7710 SPA CLA 2121 003356 2061 ISZ PRNTC1 /IT IS A PRINTING CHAR SO COUNT IT 2122 003357 5741 JMP I XOUTL 2123 2124 003360 1124 TAD CCR /END OF LINE SO DO CR-LF 2125 003361 5344 JMP XOUTL+3 2126 2127 003362 1372 XOUTL1, TAD (-110 2128 003363 3061 DCA PRNTC1 /RESET COUNT 2129 003364 1132 TAD CLF 2130 003365 5344 JMP XOUTL+3 2131 2132 003366 7755 PAGE 003367 0435 003370 3400 003371 0110 003372 7670 003373 7763 003374 4337 003375 5665 003376 2600 003377 7752 2133 003400 0000 XOUTL2, 0 2134 003401 6201 CDF 2135 003402 3012 DCA XREG3 /SAVE CHAR 2136 003403 1034 TAD OUTPUT 2137 003404 7640 SZA CLA 2138 003405 5255 JMP XOUTL4 /NO ECHO 2139 003406 1051 TAD TELSW /BUSY 2140 003407 7640 SZA CLA 2141 003410 5235 JMP XOUTL5 /YES 2142 LPCHNG=. 2143 /IF THERE IS NO LPT THEN THE FOLLOWING 3 LOCATIONS 2144 /BECOME: 2145 / TAD C10 /SET UP THE OUTPUT IOT. 2146 / TAD XIOT 2147 / DCA XOUTL6 2148 LPL000=. 2149 LPV000=TAD C10 2150 003411 6212 CIF 10 2151 LPL001=. 2152 LPV001=TAD XIOT 2153 003412 5613 JMP I .+1 2154 LPL002=. 2155 LPV002=DCA XOUTL6 2156 003413 5554 LPTCHK 2157 003414 1036 LPCKRT, TAD DECK 2158 003415 7160 CLL CML CMA 2159 003416 3115 DCA T3 2160 003417 7740 CCM40, SMA SZA CLA /AC=0 SO ITS A SKP 2161 003420 7010 RAR 2162 003421 2115 ISZ T3 2163 003422 5220 JMP .-2 2164 003423 1136 TAD C10 2165 003424 6117 MTON /TURN ON PROPER USER 2166 003425 7200 CLA 2167 003426 1012 TAD XREG3 2168 003427 7402 XOUTL6, HLT 2169 /IF NOT DC02, 2170 /XOUTL6-3 AND XOUTL6+3 ARE SET TO ZERO IN BEG760 2171 003430 3051 DCA TELSW /SET BUSY 2172 003431 1777 TAD I (AUSER 2173 003432 6117 MTON /ALL ON AGAIN 2174 003433 7200 CLA 2175 003434 5255 JMP XOUTL4 2176 2177 003435 4560 XOUTL5, UDF 2178 003436 1447 TAD I OPTRI /ROOM 2179 003437 7640 SZA CLA 2180 003440 4344 ERR080, JMS IERROR /NO ROOM 2181 003441 4560 UDF 2182 003442 1012 TAD XREG3 2183 003443 3447 DCA I OPTRI /FILL BUFFER 2184 003444 2047 ISZ OPTRI /BUMP BUFFER 2185 003445 1047 TAD OPTRI 2186 003446 7041 CIA 2187 003447 1046 TAD IPTR0 2188 003450 7640 SZA CLA 2189 003451 5255 JMP XOUTL4 /OK 2190 003452 1046 TAD IPTR0 2191 003453 1217 TAD CCM40 2192 003454 3047 DCA OPTRI /RESET BUFFER 2193 003455 6201 XOUTL4, CDF 2194 003456 5600 JMP I XOUTL2 2195 /*FINDLN* ROUTINE 2196 003457 0000 XFINDL, 0 2197 003460 1030 TAD LINENO 2198 003461 7710 SPA CLA /IS THIS IMMEDIATE MODE??????? 2199 003462 5321 JMP XFNDL3 /YEP. 2200 003463 4560 UDF 2201 003464 1057 TAD ALINE0 2202 003465 3031 DCA LASTLN 2203 003466 1057 TAD ALINE0 2204 003467 3027 XFNDL1, DCA LINEPC /CURRENT LINE 2205 003470 1027 TAD LINEPC 2206 003471 3012 DCA XREG3 2207 003472 1030 TAD LINENO 2208 003473 7041 CIA 2209 003474 1412 TAD I XREG3 2210 003475 7450 SNA 2211 003476 5307 JMP XFNDL2-1 /FOUND LINE 2212 003477 7700 SMA CLA 2213 003500 5310 JMP XFNDL2 /WENT BEYOND 2214 003501 1027 TAD LINEPC 2215 003502 3031 DCA LASTLN 2216 003503 1427 TAD I LINEPC 2217 003504 7440 SZA 2218 003505 5267 JMP XFNDL1 /LOOP 2219 003506 7410 SKP /OUT OF TEXT 2220 003507 2257 ISZ XFINDL /FOUND LINE 2221 003510 1027 XFNDL2, TAD LINEPC 2222 003511 7001 IAC 2223 003512 3017 DCA AXOUT /SET TO UNPACK 2224 003513 3021 DCA XCT 2225 003514 6201 CDF 2226 003515 5657 JMP I XFINDL 2227 2228 003516 2055 FUPAR1, 2055 2229 003517 0000 0 2230 003520 0000 0 2231 2232 003521 7340 XFNDL3, L7777 2233 003522 1060 TAD COMBUF 2234 003523 3027 DCA LINEPC 2235 003524 5307 JMP XFNDL2-1 /RESET TO DO COMMAND BUFFER NOW 2236 /ERROR ENTERING ROUTINES 2237 003525 0000 XERROR, 0 2238 003526 6002 IOF 2239 003527 7200 CLA 2240 003530 6201 IERRO1, CDF 2241 003531 1126 TAD C177 2242 003532 3344 DCA IERROR 2243 003533 1325 IERRO2, TAD XERROR 2244 003534 7110 CLL RAR /FORM ERROR CODE 2245 003535 3130 DCA LSTMOD 2246 003536 6212 CIF SWAP /DO DECTAPE AND STATUS STOUGH 2247 003537 4776 JMS I (IERDTA 2248 003540 4775 JMS I (IOFIX /RESET FILES 2249 003541 1374 TAD (ERRORX 2250 003542 3022 DCA PC /SET FOR RESTART 2251 003543 5744 JMP I IERROR 2252 2253 003544 0000 IERROR, 0 2254 003545 7340 L7777 2255 003546 1217 TAD CCM40 2256 003547 1046 TAD IPTR0 2257 003550 3012 DCA XREG3 2258 003551 1217 TAD CCM40 2259 003552 3115 DCA T3 /BUFFER COUNT 2260 003553 4560 UDF 2261 003554 3412 DCA I XREG3 /CLEAR BUFFER 2262 003555 2115 ISZ T3 2263 003556 5354 JMP .-2 2264 003557 6201 CDF 2265 003560 1047 TAD OPTRI 2266 003561 3050 DCA OPTRO 2267 003562 1344 TAD IERROR 2268 003563 3325 DCA XERROR 2269 003564 1120 TAD LOOK 2270 003565 7041 CIA 2271 003566 1006 TAD TEMP2 2272 003567 7650 SNA CLA 2273 003570 5330 JMP IERRO1 /RUNNING 2274 003571 5333 JMP IERRO2 /NOT RUNNING 2275 2276 003574 0376 PAGE 003575 1363 003576 5065 003577 5335 2277 2278 2279 /*PACKC* ROUTINE 2280 003600 0000 XPACKC, 0 2281 003601 4545 SORTJ 2282 003602 4164 XPAKL1-1 2283 003603 6303 XPAKL2-XPAKL1 2284 003604 4546 XXPAK, SORTC /CHECK FOR ALTMODE 2285 003605 1774 ALT-1 2286 003606 5265 JMP XPPCK1 /IT IS ALTMODE 2287 003607 1026 TAD CHAR 2288 003610 1377 TAD (-40 2289 003611 2024 XPACK4, ISZ XCTIN 2290 003612 5232 JMP XPACK1 /NO PARTIAL 2291 003613 1023 TAD ADD /FORM WORD 2292 003614 4560 UDF 2293 003615 3416 DCA I AXIN /PACK IT 2294 003616 6201 CDF 2295 003617 3023 DCA ADD 2296 003620 1453 TAD I PACKND 2297 003621 1133 TAD M12 2298 003622 7141 CLL CIA 2299 003623 1016 TAD AXIN 2300 003624 7630 SZL CLA 2301 003625 4557 ERR060, ERROR /TOO FAR 2302 003626 5600 XPACK5, JMP I XPACKC 2303 2304 003627 1376 XPACK2, TAD (37 2305 003630 1142 XPACK3, TAD C40 2306 003631 5211 JMP XPACK4 2307 2308 003632 4561 XPACK1, RTL6 2309 003633 3023 DCA ADD /SAVE PARTIAL 2310 003634 7340 L7777 2311 003635 3024 DCA XCTIN /INDICATE PARTIAL 2312 003636 5600 JMP I XPACKC 2313 2314 003637 2024 XPACK7, ISZ XCTIN /PARTIAL HERE 2315 003640 5245 JMP XPACK8 /NO 2316 003641 3023 XPACK9, DCA ADD 2317 003642 1127 TAD C137 2318 003643 4470 PRINTC /PRINT BACK ARROW 2319 003644 5600 JMP I XPACKC 2320 2321 003645 1052 XPACK8, TAD PACKST 2322 003646 7041 CIA 2323 003647 1016 TAD AXIN 2324 003650 7650 SNA CLA 2325 003651 5600 JMP I XPACKC /ALL GONE ANY HOW 2326 003652 1016 TAD AXIN 2327 003653 3115 DCA T3 2328 003654 7340 L7777 2329 003655 3024 DCA XCTIN /INDICATE PARTIAL 2330 003656 7340 L7777 2331 003657 1016 TAD AXIN 2332 003660 3016 DCA AXIN /PUT IT BACK ONE 2333 003661 4560 UDF 2334 003662 1515 TAD I T3 /GET OLD 2335 003663 0140 AND C7700 2336 003664 5241 JMP XPACK9 2337 2338 003665 4551 XPPCK1, PUSHF /SAVE TEXT POINTERS 2339 003666 0017 TEXTP 2340 003667 1200 TAD XPACKC 2341 003670 4547 PUSHA /SAVE ADDRESS IF DISMISSED 2342 003671 4775 JMS I (RDYPCH /PRINT "$ DELETED" 2343 003672 4552 POPA 2344 003673 3200 DCA XPACKC /RESTORE ADDRESS 2345 003674 1052 TAD PACKST 2346 003675 3016 DCA AXIN 2347 003676 4554 POPF 2348 003677 0017 TEXTP 2349 003700 3026 DCA CHAR 2350 003701 5235 JMP XPACK1+3 2351 /*READC* ROUTINE 2352 003702 0000 XREADC, 0 2353 003703 4560 UDF 2354 003704 6202 CIF /NO INTERRUPTS WHILE MESSING WITH IPTRO 2355 /OR HIS BUFFER - ELSE WE'RE SKROOD!!!! 2356 003705 1445 TAD I IPTRO /GET CHAR 2357 003706 3026 DCA CHAR /SET CHARACTER 2358 003707 3445 DCA I IPTRO /CLEAR BUFFER 2359 003710 6201 CDF 2360 003711 1026 TAD CHAR 2361 003712 7650 SNA CLA /WAS THERE A CHARACTER 2362 003713 5326 JMP XREAD1 /NO - WAIT 2363 003714 2045 ISZ IPTRO /BUMP BUFFER 2364 003715 1045 TAD IPTRO 2365 003716 7041 CIA 2366 003717 1142 TAD C40 2367 003720 1046 TAD IPTR0 2368 003721 7640 SZA CLA 2369 003722 5325 JMP .+3 /OK 2370 003723 1046 TAD IPTR0 2371 003724 3045 DCA IPTRO /RESET BUFFER 2372 003725 5702 JMP I XREADC 2373 2374 CDCHNG=./IF A CDR IS NOT USED THEN THE FOLLOWING 3 2375 /LOCATIONS BECOME 2376 /XREAD1, L7777 2377 / TAD XREADC 2378 / DCA PC /SET TO REDO ROUTINE. 2379 CPL300=. 2380 CPV300=L7777 2381 003726 6212 XREAD1, CIF 10 2382 CPL301=. 2383 CPV301=TAD XREADC 2384 003727 5730 JMP I .+1 /CHECK FOR INPUT FROM CARDS. 2385 CPL302=. 2386 CPV302=DCA PC 2387 003730 6066 CRXRD1 2388 003731 4774 XREAD2, JMS I (XOR 2389 003732 4000 4000 /I WAIT AND DISMISS 2390 /*TSTLPR* ROUTINE 2391 003733 0000 LPRTST, 0 2392 003734 1111 TAD SORTCN 2393 003735 1135 TAD M6 2394 003736 7710 SPA CLA 2395 003737 5733 JMP I LPRTST /NOT L-PAREN 2396 003740 1111 TAD SORTCN 2397 003741 1137 TAD M10 2398 003742 7710 SPA CLA 2399 003743 2333 ISZ LPRTST /L-PAREN 2400 003744 5733 JMP I LPRTST 2401 2402 003745 0000 RESETO, 0 /RESET OUTPUT POINTERS 2403 003746 1373 TAD (XPRNTC 2404 003747 3070 DCA PPRINT 2405 003750 1372 TAD (XFREE2 2406 003751 3071 DCA PFREE2 2407 003752 1371 TAD (XFREE3 2408 003753 3072 DCA PFREE3 2409 003754 5745 JMP I RESETO 2410 2411 003755 1370 OLD, TAD (SAVDN1 /SET UP FAKE RETURN FOR *OLD* COMMAND 2412 003756 3105 DCA CHAINP /TO LOCK THE TAPE ON AN OLD 2413 003757 5767 JMP I (OLD1 /GO TO REAL ROUTINE 2414 2415 003760 1366 CHKPAT, TAD (460 2416 003761 3066 DCA EXTEN 2417 003762 1076 TAD IBLK /FILE OPEN? 2418 003763 5765 JMP I (CHKPT1 2419 2420 003765 1141 PAGE 003766 0460 003767 7317 003770 7132 003771 6007 003772 6000 003773 7343 003774 5600 003775 5374 003776 0037 003777 7740 2421 /*POPF* ROUTINE 2422 004000 0000 XPOPF, 0 2423 004001 7340 L7777 2424 004002 1600 TAD I XPOPF 2425 004003 3012 DCA XREG3 /POINT TO DATA AREA 2426 004004 7346 L7775 2427 004005 3115 DCA T3 2428 004006 4552 POPA 2429 004007 3412 DCA I XREG3 /MOVE DATA 2430 004010 2115 ISZ T3 2431 004011 5206 JMP .-3 2432 004012 2200 ISZ XPOPF 2433 004013 5600 JMP I XPOPF 2434 /*TESTC* ROUTINE 2435 004014 0000 XTESTC, 0 2436 004015 4546 SORTC 2437 004016 3640 TERMS-1 2438 004017 5614 JMP I XTESTC /TERMINATOR 2439 004020 2214 ISZ XTESTC 2440 004021 4562 TESTN 2441 004022 5614 JMP I XTESTC 2442 004023 7410 SKP 2443 004024 5614 JMP I XTESTC 2444 004025 2214 ISZ XTESTC 2445 004026 4570 TSTALP 2446 004027 2214 ISZ XTESTC /OTHER 2447 004030 5614 JMP I XTESTC /LETTER 2448 /*TESTN* ROUTINE 2449 004031 0000 XTESTN, 0 2450 004032 1026 TAD CHAR 2451 004033 1377 TAD (-60 2452 004034 3111 DCA SORTCN /SAVE BINARY DIGIT 2453 004035 7326 L0002 2454 004036 1111 TAD SORTCN 2455 004037 7450 SNA 2456 004040 5631 JMP I XTESTN /PERIOD 2457 004041 2231 ISZ XTESTN 2458 004042 1376 TAD (-13 2459 004043 7740 SMA SZA CLA 2460 004044 5631 JMP I XTESTN /GREATER THAN 271 2461 004045 1111 TAD SORTCN 2462 004046 7700 SMA CLA 2463 004047 2231 ISZ XTESTN /DIGIT 2464 004050 5631 JMP I XTESTN 2465 /*GETC* ROUTINE 2466 004051 0000 XGETC, 0 2467 004052 2021 ISZ XCT 2468 004053 5264 JMP XGET1 /NO PARTIAL 2469 004054 1020 TAD GTEM /GET PARTIAL 2470 004055 0134 XGET2, AND C77 /AND OFF JUNK 2471 004056 1142 TAD C40 /CORRECT TO ASCII 2472 004057 3026 DCA CHAR 2473 004060 4545 SORTJ /CHECK SPECIALS 2474 004061 4167 XGETL1-1 2475 004062 5004 XGETL2-XGETL1 2476 004063 5651 JMP I XGETC 2477 2478 004064 4560 XGET1, UDF 2479 004065 1417 TAD I AXOUT /GET NEXT 2480 004066 6201 CDF 2481 004067 3020 DCA GTEM /SAVE PARTIAL 2482 004070 7340 L7777 2483 004071 3021 DCA XCT /INDICATE PARTIAL 2484 004072 1020 TAD GTEM 2485 004073 4561 RTL6 2486 004074 7004 RAL 2487 004075 5255 JMP XGET2 2488 2489 004076 1032 XGET3, TAD SPACSW /SPACE TEST 2490 004077 7640 SZA CLA 2491 004100 5651 JMP I XGETC /KEEP SPACES 2492 004101 5252 JMP XGETC+1 /IGNORE SPACES 2493 2494 004102 1125 XGET4, TAD C7 /BELL 2495 004103 3026 XGET6, DCA CHAR 2496 004104 5651 JMP I XGETC 2497 2498 004105 1124 XGET5, TAD CCR /CR 2499 004106 5303 JMP XGET6 2500 /*GETNXT* ROUTINE 2501 004107 0000 NXTGET, 0 2502 004110 4566 TSTCCR /END OF LINE? 2503 004111 7610 SKP CLA 2504 004112 5321 JMP NXTGT1 /YES, GET NEXT LINE NUMBER 2505 004113 1026 TAD CHAR 2506 004114 1341 TAD MSPLAT 2507 004115 7650 SNA CLA 2508 004116 5333 JMP NXTG /YES, NEXT COMMAND FOUND 2509 004117 4544 GETC /NO, GET ANOTHER CHAR 2510 004120 5310 JMP NXTGET+1 /TRY AGAIN 2511 004121 4560 NXTGT1, UDF 2512 004122 1427 TAD I LINEPC /POINTER TO NEXT 2513 004123 7450 SNA 2514 004124 5334 JMP NXTG+1 /OUT OF TEXT 2515 004125 3027 DCA LINEPC /NEW POINTER 2516 004126 1027 TAD LINEPC 2517 004127 3017 DCA AXOUT 2518 004130 3021 DCA XCT /SET TO UNPACK 2519 004131 1417 TAD I AXOUT /GET LINE NUMBER 2520 004132 3030 DCA LINENO 2521 004133 2307 NXTG, ISZ NXTGET 2522 004134 6201 CDF 2523 004135 5707 JMP I NXTGET 2524 /*FIND* ROUTINE 2525 004136 0000 XFIND, 0 2526 004137 3030 DCA LINENO /SET START LINE 2527 004140 4574 FINDLN 2528 004141 7644 MSPLAT, -"\+200 2529 004142 4573 XFIND1, GETNXT /GET NEXT LINE 2530 004143 5353 JMP XFIND2 /OUT OF TEXT 2531 004144 4544 GETC 2532 004145 4571 COMMAN 2533 004146 1736 TAD I XFIND /CORRECT COMMAND 2534 004147 7640 SZA CLA 2535 004150 5342 JMP XFIND1 /NO - LOOP 2536 004151 2336 ISZ XFIND 2537 004152 1030 TAD LINENO /FOR RESTART 2538 004153 2336 XFIND2, ISZ XFIND 2539 004154 5736 JMP I XFIND 2540 2541 004155 0000 USER0, 0 2542 /USER1, 2543 004156 0001 1 2544 /USER2, 2545 004157 0002 2 2546 /USER3, 2547 004160 0003 3 2548 /USER4, 2549 004161 0004 4 2550 /USER5, 2551 004162 0005 5 2552 /USER6, 2553 004163 0006 6 2554 004164 0007 USER7, 7 2555 2556 004165 0015 XPAKL1, 15 /THE NEXT 6 LOCATIONS MUST STAY TOGETHER 2557 004166 0007 7 /BELL 2558 004167 0177 177 /RUBOUT 2559 004170 0137 XGETL1, 137 /BACK ARROW 2560 004171 0100 100 /USED IN XGETL 2561 004172 0040 40 2562 /BE DAMN SURE THE NEXT WORD IS NEGATIVE!!! 2563 2564 /INTERRUPTS HERE FIRST 2565 004173 6212 INTR8E, CIF SWAP 2566 004174 5775 JMP I .+1 2567 004175 4646 INTR81 2568 2569 004176 7765 PAGE 004177 7720 2570 /*GOSUB* COMMAND 2571 2572 004200 4565 GOSUB, GETLN 2573 004201 4575 TSTEND 2574 004202 4557 ERR290, ERROR 2575 004203 7340 GOSUB3, L7777 2576 004204 1017 TAD AXOUT 2577 004205 4547 PUSHA 2578 004206 1062 TAD ERLINE 2579 004207 4547 PUSHA 2580 004210 1377 TAD (GOSUB1 2581 004211 4547 PUSHA 2582 004212 5776 JMP I (GOSUB2 2583 2584 /*NEW* AND *BYE* AND *SCRATCH* COMMANDS 2585 2586 004213 7340 NEW, L7777 2587 004214 3031 RENAME, DCA MODE /KLUDGE! 2588 004215 4550 PUSHJ 2589 004216 5740 GETNAM 2590 004217 4775 JMS I (DTGRAB /SO WE DON'T BLOW ANY OTHER NAMES 2591 004220 6213 CIF CDF SWAP /UNPACK THE NAME 2592 004221 4774 JMS I (XGETNAM 2593 004222 4240 JMS MOVNAM /GET THE NAME WHERE IT COUNTS 2594 004223 4773 JMS I (DTFREE /SEE, WE DIDN'T USE THE TAPE! 2595 004224 2031 ISZ MODE /NEW OR RENAME COMMAND? 2596 004225 5772 JMP I (READY 2597 2598 004226 4566 BYE, TSTCCR 2599 004227 4557 ERR002, ERROR /JUNK 2600 004230 4560 UDF 2601 004231 3457 DCA I ALINE0 /NO TEXT 2602 004232 7326 L0002 2603 004233 1057 TAD ALINE0 2604 004234 3054 DCA BUFR /FREE UP TEXT SPACE 2605 004235 1054 VARKIL, TAD STARTV 2606 004236 3055 DCA LASTV 2607 004237 5772 JMP I (READY 2608 2609 004240 0000 MOVNAM, 0 2610 004241 6211 CDF SWAP /MOVE NAME DOWN 2611 004242 1524 TAD I CCR /TAD I [NAMEX 2612 004243 3063 DCA NAME 2613 004244 1771 TAD I (NAMEX+1 2614 004245 3064 DCA NAME+1 2615 004246 1770 TAD I (NAMEX+2 2616 004247 3065 DCA NAME+2 2617 004250 6201 CDF 2618 004251 5640 JMP I MOVNAM 2619 2620 004252 3037 INPUTX, DCA DATAPC 2621 004253 1124 TAD CCR 2622 004254 3043 DCA DATAPC+4 /AUTO-RESTORE 2623 004255 4571 COMMAN 2624 004256 1135 TAD M6 2625 004257 7510 SPA 2626 004260 5767 JMP I (IMMED /IMMEDIATE MODE 2627 004261 1366 TAD (COMGO1 2628 004262 3112 DCA T1 2629 004263 6211 CDF SWAP 2630 004264 1512 TAD I T1 2631 004265 6201 CDF 2632 004266 3112 DCA T1 2633 004267 5512 JMP I T1 2634 /*ON* COMMAND--ON-GOTO AND ON-GOSUB 2635 004270 4550 ON, PUSHJ /GET VALUE 2636 004271 2612 EVAL 2637 004272 4571 COMMAN 2638 004273 1125 TAD C7 2639 004274 7450 SNA 2640 004275 5302 JMP .+5 2641 004276 1365 TAD (4 2642 004277 7640 SZA CLA 2643 004300 4557 ERR300, ERROR 2644 004301 7340 L7777 2645 004302 3113 DCA T2 2646 004303 4523 JMS I INTEGE 2647 004304 7570 SNA SPA SZL 2648 004305 5334 JMP ON2 2649 004306 7041 CIA 2650 004307 3112 DCA T1 2651 004310 4565 ON1, GETLN 2652 004311 2112 ISZ T1 2653 004312 5315 JMP .+3 2654 004313 1030 TAD LINENO 2655 004314 4547 PUSHA 2656 004315 4567 TSTCOM 2657 004316 5321 JMP .+3 2658 004317 4544 GETC 2659 004320 5310 JMP ON1 2660 004321 4575 TSTEND 2661 004322 5300 JMP ERR300 2662 004323 1112 TAD T1 2663 004324 7710 SPA CLA 2664 004325 5334 JMP ON2 /IT WASN'T THERE 2665 004326 4552 POPA 2666 004327 3030 DCA LINENO 2667 004330 1030 TAD LINENO 2668 004331 2113 ISZ T2 2669 004332 5553 POPJ /*GOTO* COMMAND--TRANSFER TO IT 2670 004333 5203 JMP GOSUB3 /*GOSUB* CMD--CALL GOSUB (NO NEED TO CLEAR AC) 2671 2672 004334 1062 ON2, TAD ERLINE /INDEX WAS OUT OF RANGE 2673 004335 3030 DCA LINENO 2674 004336 5553 POPJ 2675 004337 4407 PRIN12, FINT 2676 004340 7764 FPUT I (IF1 /SETUP CALL TO 'MOD' 2677 004341 0000 FEXT 2678 004342 4551 PUSHF 2679 004343 5761 F72 2680 004344 4554 POPF 2681 004345 6167 FLARG 2682 004346 4550 PUSHJ 2683 004347 1306 MOD1 2684 004350 4550 PUSHJ 2685 004351 1570 ABS /MAKE IT POSITIVE 2686 004352 5763 JMP I (PRIN11 2687 2688 004353 4552 GOSUB1, POPA 2689 004354 3030 DCA LINENO 2690 004355 4574 FINDLN 2691 004356 2460 AFORE, FOREXT 2692 004357 4552 POPA 2693 004360 5756 JMP I AFORE 2694 2695 2696 004363 3251 PAGE 004364 1361 004365 0004 004366 4707 004367 2540 004370 0017 004371 0016 004372 0465 004373 6627 004374 2661 004375 6603 004376 2531 004377 4353 2697 /GET A VARIABLE OR FUNCTION ROUTINE 2698 /EXIT WITH AC NON-ZERO IF FUNCTION 2699 /AC IS LIST POINTER UNLESS 2700 /AC IS NEGATIVE, THEN AC IS CHAR FOR USER FUNCTION 2701 004400 4570 GETVAR, TSTALP 2702 004401 4557 ERR220, ERROR /MUST BE LETTER 2703 004402 1026 TAD CHAR 2704 004403 0223 AND P37 2705 004404 4561 RTL6 2706 004405 7010 RAR 2707 004406 3023 DCA ADD /SAVE FOR NAME 2708 004407 4544 GETC 2709 004410 4563 TESTC 2710 004411 5334 JMP SUBT /T - TEST FOR SUBSCRIPT 2711 004412 5222 JMP P37-1 /N - ADD TO NAME 2712 004413 5727 JMP I FUNCTI /TRY FOR FUNCTION 2713 004414 1026 TAD CHAR /CHECK FOR $ 2714 004415 1332 TAD MDOLR 2715 004416 7640 SZA CLA 2716 004417 5235 JMP LOOKUP 2717 004420 2031 ISZ MODE /IT'S A STRING! 2718 004421 5225 JMP .+4 2719 2720 004422 4562 TESTN 2721 004423 0037 P37, 37 2722 004424 5235 JMP LOOKUP /WAS A . 2723 004425 1026 TAD CHAR 2724 004426 0223 AND P37 2725 004427 1023 TAD ADD 2726 004430 3023 DCA ADD /NEW NAME 2727 004431 4544 GETC 2728 004432 4546 SORTC 2729 004433 3640 TERMS-1 2730 004434 5334 JMP SUBT 2731 004435 4560 LOOKUP, UDF 2732 004436 1055 TAD LASTV 2733 004437 3025 GS1, DCA PT1 /POINT TO VARIABLES 2734 004440 1054 TAD STARTV 2735 004441 7041 CIA 2736 004442 1025 TAD PT1 2737 004443 7650 SNA CLA 2738 004444 5265 JMP GS2 /NOT FOUND AT ALL 2739 004445 1425 TAD I PT1 /GET NAME 2740 004446 7141 CLL CIA 2741 004447 1023 TAD ADD 2742 004450 7450 SNA 2743 004451 5733 JMP I GFND1I /FOUND NAME 2744 004452 7420 SNL 2745 004453 7041 CIA /POSITIVE DIFFERENCE 2746 004454 7106 CLL RTL /AC WILL BE 0 IF DIFFERENCE WAS 2000 2747 004455 7650 SNA CLA 2748 004456 4557 ERR130, ERROR /ERROR - A(I) AND A(I,I) CANNOT EXIST TOGETHER 2749 004457 1425 TAD I PT1 2750 004460 7710 SPA CLA 2751 004461 7340 L7777 /BACK 1 FOR SUBSCRIPT 2752 004462 1141 GS4, TAD M4 2753 004463 1025 TAD PT1 2754 004464 5237 JMP GS1 2755 2756 004465 1125 GS2, TAD C7 2757 004466 1055 TAD LASTV /ROOM LEFT 2758 004467 7141 CLL CIA 2759 004470 1015 TAD PDLXR 2760 004471 7630 SZL CLA 2761 004472 5276 JMP MORRUM 2762 004473 1054 NOROOM, TAD STARTV 2763 004474 3055 DCA LASTV /WIPE OUT VARIABLES--OVERFLOW 2764 004475 4557 ERR100, ERROR /NO ROOM 2765 004476 7301 MORRUM, L0001 2766 004477 7006 RTL 2767 004500 1055 TAD LASTV 2768 004501 3025 DCA PT1 /POINT TO NEW SPACE 2769 004502 1023 TAD ADD 2770 004503 7700 SMA CLA 2771 004504 5310 JMP GPUT1 2772 004505 1024 TAD SUBS 2773 004506 3425 DCA I PT1 /SET SUBSCRIPT 2774 004507 2025 ISZ PT1 2775 004510 1023 GPUT1, TAD ADD 2776 004511 3425 DCA I PT1 /SET NAME 2777 004512 6201 CDF 2778 004513 1025 TAD PT1 2779 004514 4547 PUSHA 2780 004515 7301 L0001 2781 004516 1055 TAD LASTV 2782 004517 3025 DCA PT1 /POINT TO NEW DATA SPACE 2783 004520 4552 POPA 2784 004521 3055 DCA LASTV /NEW LIMIT 2785 004522 4556 FLPUT /SET TO 0 2786 004523 7160 FLZERO 2787 004524 5726 JMP I GS5I 2788 2789 004525 4602 SUB2I, SUB2 2790 004526 4623 GS5I, GS5 2791 004527 4626 FUNCTI, FUNCT 2792 004530 2600 ECALLI, ECALL 2793 004531 0046 AC3I, AC3 2794 004532 7734 MDOLR, -44 2795 004533 4604 GFND1I, GFND1 2796 2797 004534 4576 SUBT, TSTLPR 2798 004535 5235 JMP LOOKUP /NOT SUBSCRIPTED 2799 004536 1023 TAD ADD 2800 004537 3114 DCA EFOP 2801 004540 4730 JMS I ECALLI /GET SUBSCRIPT 2802 004541 7330 L4000 2803 004542 4552 POPA 2804 004543 3023 DCA ADD /SAVE NAME 2805 004544 4523 JMS I INTEGE 2806 004545 7530 SPA SZL 2807 004546 4557 SUB1, ERROR /TOO BIG OR NEGATIVE 2808 ERR230=SUB1 2809 004547 3024 DCA SUBS /SET SUBSCRIPT 2810 004550 4567 TSTCOM 2811 004551 5725 JMP I SUB2I /ONLY ONE SUBSCRIPT 2812 004552 4551 PUSHF /SAVE ADD,SUBS 2813 004553 0023 ADD 2814 004554 4550 PUSHJ /GET SECOND SUBSCRIPT 2815 004555 2611 EVAL-1 2816 004556 4554 POPF 2817 004557 0023 ADD 2818 004560 4523 JMS I INTEGE 2819 004561 0140 AND C7700 2820 004562 7010 RAR 2821 004563 7640 SZA CLA 2822 004564 5346 JMP SUB1 /TOO BIG 2823 004565 1024 TAD SUBS 2824 004566 0140 AND C7700 2825 004567 7640 SZA CLA 2826 004570 5346 JMP SUB1 /TOO BIG 2827 004571 1024 TAD SUBS 2828 004572 4561 RTL6 2829 004573 6211 CDF SWAP 2830 004574 1731 TAD I AC3I /FORM DOUBLE SUBSCRIPT 2831 004575 6201 CDF 2832 004576 3024 DCA SUBS 2833 004577 7332 L2000 2834 004600 1023 TAD ADD 2835 004601 3023 DCA ADD /INDICATE 2 SUBSCRIPTS 2836 004602 4777 SUB2, JMS I (PARTST /CHECK PAREN MATCH 2837 004603 5776 JMP I (LOOKUP 2838 2839 004604 1023 GFND1, TAD ADD 2840 004605 7700 SMA CLA 2841 004606 5217 JMP GFND2 /NO SUBSCRIPT 2842 004607 7340 L7777 2843 004610 1025 TAD PT1 2844 004611 3025 DCA PT1 2845 004612 1425 TAD I PT1 /GET SUBSCRIPT 2846 004613 7041 CIA 2847 004614 1024 TAD SUBS 2848 004615 7640 SZA CLA 2849 004616 5775 JMP I (GS4 /WRONG SUBSCRIPT 2850 004617 6201 GFND2, CDF 2851 004620 7346 L7775 2852 004621 1025 TAD PT1 2853 004622 3025 DCA PT1 /POINT TO DATA 2854 004623 4555 GS5, FLGET /GET VARIABLE 2855 004624 6167 FLARG 2856 004625 5553 POPJ 2857 2858 004626 1026 FUNCT, TAD CHAR 2859 004627 0374 AND (37 2860 004630 1023 TAD ADD 2861 004631 4546 SORTC /CHECK 2 LETTERS 2862 004632 3577 FUNL1-1 2863 004633 7410 SKP 2864 004634 5776 JMP I (LOOKUP /NOT A FUNCTION 2865 004635 1111 TAD SORTCN 2866 004636 7650 SNA CLA 2867 004637 5276 JMP FUNCT4 /USER FUNCTION 2868 004640 4551 PUSHF 2869 004641 0017 TEXTP 2870 004642 1026 TAD CHAR 2871 004643 4547 PUSHA 2872 004644 4544 GETC 2873 004645 1026 TAD CHAR 2874 004646 3025 DCA PT1 2875 004647 4552 POPA 2876 004650 3026 DCA CHAR 2877 004651 4554 POPF 2878 004652 0017 TEXTP 2879 004653 1111 TAD SORTCN 2880 004654 1373 TAD (FUNL2-1 2881 004655 3115 DCA T3 2882 004656 6211 CDF SWAP 2883 004657 1515 TAD I T3 /GET CORRECT CODE 2884 004660 1025 TAD PT1 2885 004661 7640 SZA CLA 2886 004662 5776 JMP I (LOOKUP /WAS NOT A FUNCTION 2887 004663 1111 TAD SORTCN 2888 004664 4547 PUSHA /SAVE CONSTANT 2889 004665 4544 GETC 2890 004666 4544 FUNCT5, GETC 2891 004667 4546 SORTC 2892 004670 3640 TERMS-1 2893 004671 4576 TSTLPR 2894 004672 4557 ERR240, ERROR /NO L-PAREN 2895 004673 4552 POPA 2896 004674 7001 IAC /FUNCTION CODE 2897 004675 5553 POPJ 2898 2899 004676 4544 FUNCT4, GETC 2900 004677 4570 TSTALP 2901 004700 4557 ERR250, ERROR /NOT LETTER 2902 004701 7350 L3777 2903 004702 1026 TAD CHAR 2904 004703 4547 PUSHA /SAVE CHAR OF USER FUNCTION 2905 004704 5266 JMP FUNCT5 2906 /*SORTC* ROUTINE 2907 004705 0000 XSORTC, 0 2908 004706 7450 SNA 2909 004707 1026 TAD CHAR /USE CHAR IF AC IS 0 2910 004710 7041 CIA 2911 004711 3115 DCA T3 2912 004712 1705 TAD I XSORTC 2913 004713 3012 DCA XREG3 /SET TO LIST 2914 004714 6211 CDF SWAP 2915 004715 1412 TAD I XREG3 2916 004716 6201 CDF 2917 004717 7510 SPA 2918 004720 5331 JMP XSORT3 /END OF LIST 2919 004721 1115 TAD T3 2920 004722 7640 SZA CLA 2921 004723 5314 JMP .-7 /NO GO - LOOP 2922 004724 1705 TAD I XSORTC 2923 004725 7040 CMA 2924 004726 1012 TAD XREG3 2925 004727 3111 DCA SORTCN /SET CONSTANT 2926 004730 7410 SKP 2927 004731 2305 XSORT3, ISZ XSORTC 2928 004732 2305 ISZ XSORTC 2929 004733 7300 CLL CLA 2930 004734 5705 JMP I XSORTC 2931 /*SORTJ* ROUTINE 2932 004735 0000 XSORTJ, 0 2933 004736 7450 SNA 2934 004737 1026 TAD CHAR /USE CHAR IF AC IS 0 2935 004740 7041 CIA 2936 004741 3115 DCA T3 2937 004742 1735 TAD I XSORTJ 2938 004743 3012 DCA XREG3 /SET TO LIST 2939 004744 2335 ISZ XSORTJ 2940 004745 1412 TAD I XREG3 2941 004746 7510 SPA 2942 004747 5362 JMP XSORT1 /END OF LIST 2943 004750 1115 TAD T3 2944 004751 7640 SZA CLA 2945 004752 5345 JMP .-5 /NO GO - LOOP 2946 004753 1012 TAD XREG3 2947 004754 1735 TAD I XSORTJ 2948 004755 3335 DCA XSORTJ 2949 004756 6211 CDF SWAP 2950 004757 1735 TAD I XSORTJ /GET ADDRESS 2951 004760 6201 CDF 2952 004761 3335 DCA XSORTJ 2953 004762 7300 XSORT1, CLL CLA 2954 004763 2335 ISZ XSORTJ 2955 004764 5735 JMP I XSORTJ 2956 2957 004765 0000 XPRT1, 0 /PRINTC FOR FIELD 1 2958 004766 4470 PRINTC 2959 004767 6213 CIF CDF SWAP 2960 004770 5765 JMP I XPRT1 2961 2962 2963 004773 3620 PAGE 004774 0037 004775 4462 004776 4435 004777 5665 2964 005000 0000 FLOUT, 0 2965 005001 6213 CIF CDF SWAP 2966 005002 4777 JMS I (OFLOUT 2967 005003 5600 JMP I FLOUT 2968 005004 2776 ISZ I (NPRNT5 2969 005005 4775 JMS I (ITPRNT 2970 005006 5600 JMP I FLOUT 2971 005007 4407 SGN, FINT 2972 005010 6100 FSGE 2973 005011 0216 FGET MNSONE 2974 005012 6150 FSLE 2975 005013 0774 FGET I (FLTONE 2976 005014 0000 FEXT 2977 005015 5553 POPJ 2978 2979 005016 6014 MNSONE, 6014 2980 005017 0000 0 2981 005020 0000 0 2982 2983 005021 7773 FUPARR, FPUT I (TEMP 2984 005022 0425 FGET I PT1 2985 005023 1772 FADD I (FCN 2986 005024 6425 FCMP I PT1 2987 005025 6050 FSEQ 2988 005026 5264 FJMP EXPLNG 2989 005027 0425 FGET I PT1 2990 005030 6100 FSGE 2991 005031 3216 FMUL MNSONE 2992 005032 2771 FSUB I (FUPAR1 2993 005033 6150 FSLE 2994 005034 5264 FJMP EXPLNG 2995 005035 0425 FGET I PT1 2996 005036 6110 FSLT 2997 005037 5244 FJMP .+5 2998 005040 0774 FGET I (FLTONE 2999 005041 4773 FDIV I (TEMP 3000 005042 7773 FPUT I (TEMP 3001 005043 0425 FGET I PT1 3002 005044 0000 FEXT 3003 005045 4523 JMS I INTEGE 3004 005046 7510 SPA 3005 005047 7041 CIA 3006 005050 7040 CMA 3007 005051 3200 DCA FUPAR2 3008 005052 4407 FINT 3009 005053 0774 FGET I (FLTONE 3010 005054 0000 FEXT 3011 005055 5261 JMP .+4 3012 3013 005056 4407 FINT 3014 005057 3773 FMUL I (TEMP 3015 005060 0000 FEXT 3016 005061 2200 ISZ FUPAR2 3017 005062 5256 JMP .-4 3018 005063 5275 JMP FUPAR3 3019 3020 FUPAR2=FLOUT 3021 3022 005064 0773 EXPLNG, FGET I (TEMP 3023 005065 0000 FEXT 3024 005066 4550 PUSHJ 3025 005067 5467 LOG 3026 005070 4407 FINT 3027 005071 3425 FMUL I PT1 3028 005072 0000 FEXT 3029 005073 4550 PUSHJ 3030 005074 5466 FEXP 3031 005075 4407 FUPAR3, FINT 3032 005076 5770 FJMP I (FLOP+1 3033 005077 7301 TAPE, L0001 3034 005100 3025 KKEY, DCA PT1 /SAVE CONSTANT FOR OUTPUT 3035 005101 4566 TSTCCR 3036 005102 4557 ERR003, ERROR /JUNK 3037 005103 4767 JMS I (RUN9 /DISMISS US NOW 3038 005104 1051 TAD TELSW 3039 005105 7640 SZA CLA 3040 005106 5303 JMP .-3 /STILL BUSY - WAIT 3041 005107 1025 TAD PT1 3042 005110 3034 DCA OUTPUT /SET OUTPUT 3043 005111 5766 JMP I (READY 3044 005112 4544 FUNC16, GETC 3045 005113 1026 TAD CHAR 3046 005114 1330 TAD FMEQL 3047 005115 7640 SZA CLA 3048 005116 4557 ERR210, ERROR 3049 005117 4550 PUSHJ 3050 005120 2611 EVAL-1 3051 005121 4575 TSTEND 3052 005122 5316 JMP .-4 3053 005123 4552 POPA 3054 005124 3062 DCA ERLINE 3055 005125 1062 TAD ERLINE 3056 005126 3030 DCA LINENO 3057 005127 4574 FINDLN 3058 005130 7703 FMEQL, -"=+200 3059 005131 4552 POPA 3060 005132 3055 DCA LASTV 3061 005133 4552 POPA 3062 005134 3111 DCA SORTCN 3063 005135 4554 POPF 3064 005136 0017 TEXTP 3065 005137 3031 DCA MODE /!!! 3066 005140 5765 JMP I (ENDFUN 3067 005141 0000 XFLGET, 0 3068 005142 7440 SZA 3069 005143 5346 JMP .+3 3070 005144 7340 L7777 3071 005145 1025 TAD PT1 3072 005146 3013 XFLGT2, DCA FLTXR 3073 005147 7340 L7777 3074 005150 1741 TAD I XFLGET 3075 005151 3014 DCA FLTXR2 3076 005152 7346 L7775 3077 005153 3115 DCA T3 3078 005154 4560 UDF 3079 005155 1413 TAD I FLTXR 3080 005156 6201 CDF 3081 005157 3414 DCA I FLTXR2 3082 005160 2115 ISZ T3 3083 005161 5354 JMP .-5 3084 005162 2341 ISZ XFLGET 3085 005163 5741 JMP I XFLGET 3086 3087 3088 005165 7741 PAGE 005166 0465 005167 2534 005170 2710 005171 3516 005172 5764 005173 6164 005174 7157 005175 0233 005176 0237 005177 1200 3089 005200 3325 INTRPT, DCA SAVAC /SAVE THE AC 3090 005201 7010 RAR 3091 005202 3326 DCA SAVLK /AND THE LINK 3092 005203 1115 TAD T3 3093 005204 3327 DCA T3SV /SAVE T3 3094 005205 1012 TAD XREG3 3095 005206 3330 DCA XREG3S /SAVE XREG3 3096 005207 1111 TAD SORTCN 3097 005210 3331 DCA SRTCNS /SAVE SORTCN 3098 005211 1560 TAD I AUDF 3099 005212 3332 DCA UDFSV /SAVE UDF ADDRESS 3100 005213 1546 TAD I ASORTC 3101 005214 3336 DCA SORTCS /SAVE SORTC ADDRESS 3102 005215 1723 TAD I PXFREE 3103 LPCHNG=. 3104 /IF AN LPT IS NOT USED THE NEXT 3 LOCATIONS ARE: 3105 / DCA FREESV /SAVE XFREE ADDRESS. 3106 / DCA USER /START WITH USER ZERO. 3107 / DCA TEMP1 /SET NO TTYS TO TURN ON AT FIRST. 3108 LPL100=. 3109 LPV100=DCA FREESV 3110 005216 6212 CIF 10 3111 LPL101=. 3112 LPV101=DCA USER 3113 005217 5620 JMP I .+1 3114 LPL102=. 3115 LPV102=DCA TEMP1 3116 005220 5604 LPTFLG 3117 005221 1320 LPFLRT, TAD TADINT 3118 005222 3223 DCA INTRP1 /SET LIST POINTER 3119 005223 7402 INTRP1, HLT /GET TLS IOT 3120 005224 1141 TAD M4 3121 005225 3255 DCA INTRP4 /TCF 3122 005226 7340 L7777 3123 005227 1255 TAD INTRP4 3124 005230 3253 DCA INTRP3 /TSF 3125 005231 1137 TAD M10 3126 005232 1253 TAD INTRP3 3127 005233 3241 DCA INTRP2 /KSF 3128 005234 6213 CIF CDF SWAP /GO CHECK DECTAPE FLAG 3129 005235 4000 JMS DTINTR 3130 005236 1005 TAD TEMP1 3131 005237 6117 MTON /TURN ON PROPER USER 3132 005240 7200 CLA 3133 005241 7402 INTRP2, HLT /KEY? 3134 /IF NOT DC02, 3135 /INTRP2-2 AND INTRP2+4 ARE SET TO ZERO IN BEG760 3136 005242 7410 SKP /NO 3137 005243 4721 JMS I PKEY /READ TTY 3138 005244 1005 TAD TEMP1 3139 005245 6117 MTON /USER ON AGAIN 3140 005246 7110 CLL RAR /SHIFT FOR NEXT USER 3141 005247 7450 SNA /FIRST TIME? 3142 005250 1316 TAD C4004 /YES - GET TTY #1 BIT 3143 005251 1317 TAD C4 3144 005252 3005 DCA TEMP1 3145 005253 7402 INTRP3, HLT /TTY? 3146 005254 5257 JMP .+3 /NO 3147 005255 7402 INTRP4, HLT /CLEAR ITS FLAG 3148 005256 4722 JMS I PTTY /DO TTY OUTPUT 3149 005257 2003 ISZ USER /NEXT USER PLEASE 3150 005260 2223 ISZ INTRP1 /BUMP LIST POINTER 3151 005261 1003 TAD USER 3152 005262 1334 TAD MUSER /ARE WE DONE? 3153 005263 7640 SZA CLA 3154 005264 5223 JMP INTRP1 /NO 3155 005265 1335 INTRP5, TAD AUSER 3156 /IF NOT DC02, 3157 /INTRP5 AND INTRP5+1 ARE SET TO ZERO IN BEG760 3158 005266 6117 MTON /TURN ALL USERS ON AGAIN 3159 005267 7200 CLA 3160 005270 1520 TAD I LOOK /GET RUNNING USER 3161 005271 4707 JMS I DECKNI /AND PUT HIM ONDECK 3162 005272 1327 TAD T3SV 3163 005273 3115 DCA T3 /RESTORE ALL THOS STORED THINGS 3164 005274 1330 TAD XREG3S 3165 005275 3012 DCA XREG3 3166 005276 1331 TAD SRTCNS 3167 005277 3111 DCA SORTCN 3168 005300 1332 TAD UDFSV 3169 005301 3560 DCA I AUDF 3170 005302 1336 TAD SORTCS 3171 005303 3546 DCA I ASORTC 3172 005304 1333 TAD FREESV 3173 005305 3723 DCA I PXFREE 3174 005306 2724 ISZ I PINTCN /COUNT INTERRUPTS 3175 005307 0263 DECKNI, DECKCHK 3176 /IF PDP 8E, AND NOT DC02 - ASSUME KL8E. NEXT THREE WORDS ARE: 3177 / CIF 20 3178 / JMP I .+1 3179 / KL8FIX1 3180 /SEE BEG002 AND BEG540 FOR DETAILS. 3181 005310 1326 KL8JMP, TAD SAVLK /GET LINK BACK 3182 005311 7104 CLL RAL 3183 005312 1325 TAD SAVAC /AND THE AC ALSO 3184 005313 6244 KL8LFL, RMF 3185 005314 6001 ION 3186 005315 5400 JMP I 0 /EXIT FROM INTERRUPT 3187 3188 005316 4004 C4004, 4004 3189 005317 0004 C4, 4 3190 005320 1337 TADINT, TAD INTRPL 3191 005321 0600 PKEY, KEY 3192 005322 0731 PTTY, TTY 3193 005323 6020 PXFREE, XFREE 3194 005324 7405 PINTCN, INTCNT 3195 005325 0000 SAVAC, 0 3196 005326 0000 SAVLK, 0 3197 005327 0000 T3SV, 0 3198 005330 0000 XREG3S, 0 3199 005331 0000 SRTCNS, 0 3200 005332 0000 UDFSV, 0 3201 005333 0000 FREESV, 0 3202 3203 005334 7777 MUSER, -1 /-1 FOR 1 USER, -2 FOR 2, ETC. 3204 /(SET IN INIT) 3205 005335 0000 AUSER, 0 /4000 FOR 2 USERS; 6000 FOR 3 USERS; ETC. 3206 3207 005336 0000 SORTCS, 0 3208 3209 005337 6046 INTRPL, TLS /USER 0 TLS IOT 3210 005340 6126 MTLS /USER 1 TLS IOT 3211 005341 6126 MTLS /USER 2 3212 005342 6126 MTLS /USER 3 3213 005343 6126 MTLS /USER 4 3214 005344 6126 MTLS /USER 5 3215 005345 6126 MTLS /USER 6 3216 005346 6126 MTLS /USER 7 3217 3218 005347 6212 CIF SWAP 3219 005350 5736 JMP I INTRPL-1 /AND EXIT 3220 /CHECK IF STRING RETURNED, SET UP TO GET SECOND ARG 3221 /FOR MID AND CAT FUNCTIONS 3222 3223 005351 0000 GETSTR, 0 3224 005352 1031 TAD MODE /MAKE SURE FIRST ARG IS A STRING 3225 005353 7640 SZA CLA 3226 005354 4567 TSTCOM /CHECK FOR COMMA 3227 005355 4557 ERR560, ERROR /FIRST ARG NOT STRING, MISSING ARG 3228 005356 4551 PUSHF /SAVE THE STRING 3229 005357 6167 FLARG 3230 005360 3031 DCA MODE /CLEAR MODE TO CHECK NEXT ARG TYPE 3231 005361 5751 JMP I GETSTR /RETURN 3232 3233 /*RTL6* ROUTINE 3234 3235 005362 0000 XRTL6, 0 3236 005363 7106 CLL RTL 3237 005364 7006 RTL 3238 005365 7006 RTL 3239 005366 5762 JMP I XRTL6 3240 3241 /POP THE AC ROUTINE 3242 005367 0000 XPOPA, 0 3243 005370 4560 UDF 3244 005371 1415 TAD I PDLXR 3245 005372 6201 CDF 3246 005373 5767 JMP I XPOPA 3247 005374 0000 RDYPCH, 0 3248 005375 6212 CIF 10 3249 005376 5777 JMP I .+1 3250 005377 5223 RDYPC1 3251 3252 PAGE 3253 005400 0425 OPTABL, FGET I PT1 3254 005401 1425 FADD I PT1 3255 005402 2425 FSUB I PT1 3256 005403 3425 FMUL I PT1 3257 005404 4425 FDIV I PT1 3258 005405 5000 FJMP 0 3259 005406 1026 PRNTEX, TAD CHAR 3260 005407 4547 PUSHA 3261 005410 4551 PUSHF 3262 005411 0017 TEXTP 3263 005412 4551 PUSHF 3264 005413 6167 FLARG 3265 005414 1015 TAD PDLXR 3266 005415 3017 DCA AXOUT /SET UP UNPACKING FROM STACK 3267 005416 3021 DCA XCT 3268 005417 1135 TAD M6 3269 005420 3031 DCA MODE 3270 005421 2032 ISZ SPACSW 3271 005422 4544 PRNTX1, GETC 3272 005423 4566 TSTCCR 3273 005424 7410 SKP 3274 005425 5231 JMP .+4 3275 005426 4470 PRINTC 3276 005427 2031 ISZ MODE 3277 005430 5222 JMP PRNTX1 3278 005431 4554 POPF 3279 005432 6167 FLARG 3280 005433 4554 POPF 3281 005434 0017 TEXTP 3282 005435 4552 POPA 3283 005436 3026 DCA CHAR 3284 005437 3031 DCA MODE /IN CASE OF A STRING LESS THAN 6 3285 005440 3032 DCA SPACSW /IGNORE SPACES AGAIN 3286 005441 5323 JMP PRINT 3287 005442 0000 FIX, 0 3288 005443 6213 CIF CDF SWAP /CALL THE FIX ROUTINE 3289 005444 4777 JMS I (FIX1 3290 005445 5642 JMP I FIX 3291 3292 3293 3294 3295 005446 0073 PRNTL4, 73 /; 3296 005447 0054 PRNTL1, 54 /, 3297 005450 0047 47 /' 3298 005451 0042 PRNTL7, 42 /" 3299 005452 0015 15 /CR 3300 005453 0134 134 /\ 3301 3302 /FUNCTIONS IN FIELD 1 CALLED WITH *PUSHJ* 3303 3304 005454 4407 RND, FINT 3305 005455 0106 FGET FRNDX 3306 005456 0000 FEXT 3307 005457 1376 TAD (ORND-OINT 3308 005460 1375 INT, TAD (OINT-OFFIX 3309 005461 1374 FFIX, TAD (OFFIX-OSQR 3310 005462 1373 SQR, TAD (OSQR-OTAN 3311 005463 1372 TAN, TAD (OTAN-OCOS 3312 005464 1371 COS, TAD (OCOS-OFSIN 3313 005465 1370 FSIN, TAD (OFSIN-OFEXP 3314 005466 1367 FEXP, TAD (OFEXP-OLOG 3315 005467 1366 LOG, TAD (OLOG-OATN 3316 005470 1365 ATN, TAD (OATN 3317 005471 3115 DCA T3 3318 005472 6213 CIF CDF SWAP 3319 005473 5515 JMP I T3 3320 3321 005474 0000 SETUPO, 0 3322 005475 1364 TAD (XPUT 3323 005476 3070 DCA PPRINT 3324 005477 1363 TAD (OFREE2 3325 005500 3071 DCA PFREE2 3326 005501 1362 TAD (OFREE3 3327 005502 3072 DCA PFREE3 3328 005503 5674 JMP I SETUPO 3329 3330 005504 1026 PRINT0, TAD CHAR 3331 005505 1361 TAD (200-"# 3332 005506 7640 SZA CLA 3333 005507 5323 JMP PRINT /OK AS IS 3334 005510 1102 TAD OBLK /THIS WILL WORK BECAUSE HE CAN'T USE BLOCK 0 3335 005511 7110 CLL RAR 3336 005512 1103 TAD OBLKH 3337 005513 7640 SZA CLA 3338 005514 4544 GETC 3339 005515 4567 TSTCOM 3340 005516 5760 JMP I (ERR600 3341 005517 4544 GETC 3342 005520 4274 JMS SETUPO 3343 005521 1357 TAD (460 3344 005522 3066 DCA EXTEN 3345 005523 4550 PRINT, PUSHJ 3346 005524 3307 PRIN10 3347 005525 7640 SZA CLA 3348 005526 5553 POPJ /ALL DONE 3349 005527 4472 FREE13 3350 005530 4550 PUSHJ 3351 005531 2612 EVAL /GET EXPR. 3352 005532 1031 TAD MODE 3353 005533 7640 SZA CLA 3354 005534 5206 JMP PRNTEX 3355 005535 4756 JMS I (FLOUT 3356 005536 7340 PRNTX2, L7777 3357 005537 5323 JMP PRINT 3358 005540 4471 FREE2 3359 005541 1124 TAD CCR 3360 005542 4470 PRINTC 3361 005543 7001 PRINT6, IAC 3362 005544 5553 POPJ 3363 3364 /TABLE USED FOR CONVERTING OCTAL TO DECIMAL 3365 /FOR OUTPUT. 3366 DECIMAL 3367 005545 6030 PRNTLL, -1000 3368 005546 7634 -100 3369 005547 7766 -10 3370 OCTAL 3371 3372 /THIS ROUTINE IS CALLED AFTER AN LPT FLAG HAS BEEN 3373 /SERVICED AND ANOTHER CHARACTER IS TO BE OUTPUT. 3374 005550 0000 OTTY, 0 3375 005551 3003 DCA USER /SET UP LPT USER NO. 3376 005552 4755 JMS I RTTY /SEND OUT THE NEXT CHAR. 3377 005553 6212 CIF 10 3378 005554 5750 JMP I OTTY /RETURN. 3379 005555 0731 RTTY, TTY 3380 005556 5000 PAGE 005557 0460 005560 1146 005561 7735 005562 7312 005563 7271 005564 6541 005565 2201 005566 7700 005567 7677 005570 7661 005571 7775 005572 7761 005573 7740 005574 0561 005575 7757 005576 0047 005577 2161 3381 /*OR* ROUTINE FOR USER STATUS WORD 3382 005600 0000 XOR, 0 3383 005601 1600 TAD I XOR 3384 005602 7040 CMA 3385 005603 0520 AND I LOOK 3386 005604 1600 TAD I XOR 3387 005605 3520 DCA I LOOK 3388 005606 5177 JMP NULL 3389 3390 005607 0000 INPACK, 0 3391 005610 1060 TAD COMBUF 3392 005611 3016 DCA AXIN 3393 005612 3024 DCA XCTIN 3394 005613 1060 TAD COMBUF 3395 005614 3052 DCA PACKST 3396 005615 1377 TAD (ALINE0 3397 005616 3053 DCA PACKND 3398 005617 5607 JMP I INPACK 3399 3400 005620 0000 OTPACK, 0 3401 005621 1060 TAD COMBUF 3402 005622 3017 DCA AXOUT 3403 005623 3021 DCA XCT 3404 005624 1124 TAD CCR /DON'T MOVE PDLXR FROM 15 3405 005625 3053 DCA PACKND 3406 005626 4544 GETC 3407 005627 5620 JMP I OTPACK 3408 3409 005630 4207 PAKLIN, JMS INPACK 3410 005631 4467 READC 3411 005632 5235 JMP .+3 3412 005633 7301 L0001 3413 005634 5553 POPJ 3414 005635 4564 PACKC 3415 005636 4566 TSTCCR 3416 005637 5231 JMP .-6 3417 005640 4564 PACKC 3418 005641 4220 JMS OTPACK 3419 005642 5553 POPJ 3420 3421 005643 0000 FPNT, 0 /CALL THE REAL INTERPRETER 3422 005644 7300 CLA CLL 3423 005645 1243 TAD FPNT 3424 005646 6213 CIF CDF SWAP 3425 005647 3776 DCA I (OFPNT 3426 005650 5775 JMP I (OFPNT+3 /SET FIELD 0 3427 3428 005651 0000 OTEST2, 0 /FIELD 1 *TESTN* 3429 005652 4562 TESTN 3430 005653 5257 JMP .+4 /RETURN +1 3431 005654 7410 SKP /+2 3432 005655 2251 ISZ OTEST2 /+3 3433 005656 2251 ISZ OTEST2 3434 005657 6213 CIF CDF SWAP /RETURN TO FIELD 1 3435 005660 5651 JMP I OTEST2 3436 3437 005661 0000 XGETLN, 0 /*GETLN* 3438 005662 6213 CIF CDF 10 /CALL THE REAL ROUTINE 3439 005663 4774 JMS I (OGETLN 3440 005664 5661 JMP I XGETLN 3441 3442 /PAREN TEST ROUTINE 3443 005665 0000 PARTST, 0 3444 005666 4552 POPA 3445 005667 3117 DCA LASTOP /SAVED BY *ECALL* 3446 005670 7344 L7776 3447 005671 1111 TAD SORTCN 3448 005672 7041 CIA 3449 005673 4552 POPA /CHECK MATCH 3450 005674 7640 SZA CLA 3451 005675 4557 ERR260, ERROR /NO MATCH 3452 005676 4544 GETC 3453 005677 5665 JMP I PARTST 3454 3455 3456 3457 /*RETURN* AND *POPJ* 3458 005700 2015 RETURN, ISZ PDLXR /DUMP ONE RETURN ADDRESS 3459 005701 4575 TSTEND 3460 005702 4557 ERR320, ERROR 3461 005703 3012 XPOPJ, DCA XREG3 /SAVE AC 3462 005704 4552 POPA 3463 005705 3115 DCA T3 /RETURN ADDRESS 3464 005706 1012 TAD XREG3 /GET AC 3465 005707 5515 JMP I T3 3466 3467 005710 3114 FUNCT3, DCA EFOP 3468 005711 4726 JMS I IECALL 3469 005712 4552 POPA 3470 005713 7510 SPA 3471 005714 5727 JMP I FUNC6I 3472 005715 1330 TAD FUNL3I 3473 005716 3114 DCA EFOP 3474 005717 6211 CDF SWAP 3475 005720 1514 TAD I EFOP 3476 005721 6201 CDF 3477 005722 3324 DCA .+2 3478 005723 4550 PUSHJ 3479 005724 0000 0 3480 005725 5773 JMP I (ENDFUN 3481 3482 005726 2600 IECALL, ECALL 3483 005727 3000 FUNC6I, FUNCT6 3484 005730 3654 FUNL3I, FUNL3-2 3485 005731 0000 FLIN, 0 3486 005732 6213 CIF CDF SWAP 3487 005733 4772 JMS I (OFLIN 3488 005734 4407 FINT 3489 005735 7425 FPUT I PT1 3490 005736 0000 FEXT 3491 005737 5731 JMP I FLIN 3492 005740 4575 GETNAM, TSTEND /DID THEY GIVE A NAME? 3493 005741 5553 POPJ /YES, GO UNPACK IT 3494 005742 7301 L0001 /PRINT "NAME--" 3495 005743 4771 JMS I (RDYPCH 3496 005744 4550 PUSHJ /GO PACK THE REPLY 3497 005745 5630 PAKLIN 3498 005746 5553 POPJ 3499 3500 005747 0000 ALPTST, 0 3501 005750 1026 TAD CHAR 3502 005751 1370 TAD (-"A+200 3503 005752 7710 SPA CLA 3504 005753 5747 JMP I ALPTST /LESS THAN *A* 3505 005754 1026 TAD CHAR 3506 005755 1367 TAD (-"Z+200 3507 005756 7750 SPA SNA CLA 3508 005757 2347 ISZ ALPTST 3509 005760 5747 JMP I ALPTST 3510 3511 3512 005761 2074 F72, 2074;4000;0 005762 4000 005763 0000 3513 3514 005764 2330 FCN, 2330;0;0 /INTEGERIZING CONSTANT 005765 0000 005766 0000 3515 3516 005767 7646 PAGE 005770 7677 005771 5374 005772 1000 005773 7741 005774 1143 005775 0203 005776 0200 005777 0057 3517 3518 /*FREE2* AND *FREE13* ROUTINES 3519 006000 0000 XFREE2, 0 3520 006001 4220 JMS XFREE /ROOM 3521 006002 5205 JMP .+3 /WE MUST WAIT 3522 006003 0000 0 3523 006004 5600 JMP I XFREE2 3524 3525 006005 1200 TAD XFREE2 3526 006006 5215 JMP FREEWT /GET ROOM 3527 3528 006007 0000 XFREE3, 0 3529 006010 4220 JMS XFREE /ROOM 3530 006011 0014 FREEC, 14 3531 006012 7410 SKP /MUST WAIT 3532 006013 5607 JMP I XFREE3 3533 3534 006014 1207 TAD XFREE3 3535 006015 3022 FREEWT, DCA PC /SET RESTART 3536 006016 4777 JMS I (XOR /SET O WAIT AND DISMISS 3537 006017 2000 2000 3538 3539 3540 /*FREE* ROUTINE 3541 006020 0000 XFREE, 0 3542 006021 4560 UDF 3543 006022 1447 TAD I OPTRI /ANY ROOM 3544 006023 6201 CDF 3545 006024 7640 SZA CLA 3546 006025 5620 JMP I XFREE /NO 3547 006026 1047 TAD OPTRI 3548 006027 7041 CIA 3549 006030 1050 TAD OPTRO 3550 006031 7550 SPA SNA 3551 006032 1142 TAD C40 3552 006033 7041 CIA /-COUNT 3553 006034 7001 IAC 3554 006035 7450 SNA 3555 006036 5620 JMP I XFREE /ONLY 1 FREE 3556 006037 7001 IAC 3557 006040 7450 SNA 3558 006041 5620 JMP I XFREE /ONLY 2 FREE 3559 006042 2220 ISZ XFREE 3560 006043 1211 TAD FREEC 3561 006044 7750 SPA SNA CLA 3562 006045 2220 ISZ XFREE /14 OR MORE FREE 3563 006046 5620 JMP I XFREE 3564 3565 /*LINPUT* COMMAND, INPUT AN ENTIRE LINE OF TEXT 3566 /INTO A STRING ARRAY 3567 3568 006047 4776 LINPUT, JMS I (CHKFIL /CHECK IF FILE INPUT 3569 006050 3024 DCA SUBS /CLEAR SUBSCRIPT 3570 006051 4550 PUSHJ /GET VARIABLE 3571 006052 4400 GETVAR 3572 006053 7650 SNA CLA /FUNCTION? 3573 006054 4575 TSTEND 3574 006055 4557 ERR540, ERROR /ILLEGAL OR MORE THAN ONE VARIABLE 3575 006056 1031 TAD MODE 3576 006057 7650 SNA CLA 3577 006060 5255 JMP .-3 /NOT STRING VARIABLE 3578 006061 4551 PUSHF /SAVE PT1;CHAR;LINEPC 3579 006062 0025 PT1 3580 006063 4551 PUSHF /SAVE TEXT POINTERS 3581 006064 0017 TEXTP 3582 006065 1023 TAD ADD /CHECK IF SUBSCRIPTED 3583 006066 7104 CLL RAL 3584 006067 7130 STL RAR 3585 006070 3023 DCA ADD 3586 006071 1024 TAD SUBS 3587 006072 0140 AND C7700 /ZERO LAST DIMENSION 3588 006073 3024 DCA SUBS 3589 006074 4551 PUSHF /SAVE NAME AND SUBSCRIPT 3590 006075 0023 ADD 3591 006076 2032 ISZ SPACSW /KEEP LEADING SPACES 3592 006077 4550 PUSHJ /GET LINE OF INPUT 3593 006100 1153 GETINP 3594 006101 3364 DCA LINCT /ZERO CHARACTER COUNTER 3595 3596 006102 4554 POPF /RESTORE NAME AND SUBSCRIPT 3597 006103 0023 ADD 3598 006104 5307 JMP .+3 3599 006105 2032 LINXT, ISZ SPACSW /KEEP SPACES 3600 006106 4544 GETC /SKIP OVER COMMA 3601 006107 2024 ISZ SUBS /INCREMENT SUBSCRIPT 3602 006110 4550 PUSHJ /GET VARIABLE 3603 006111 4435 LOOKUP 3604 006112 4551 PUSHF /SAVE NAME AND SUBSCRIPT 3605 006113 0023 ADD 3606 006114 4550 PUSHJ /GET NEXT 6 CHARS OF STRING 3607 006115 7626 QLINP 3608 3609 006116 1775 LINXT2, TAD I (QCT1 /GET CHARACTER COUNT 3610 006117 1364 TAD LINCT /BUMP CHARACTER COUNT 3611 006120 3364 DCA LINCT 3612 006121 4554 POPF /RESTORE NAME AND SUBSCRIPT 3613 006122 0023 ADD 3614 006123 4556 FLPUT /SET VARIABLE 3615 006124 6167 FLARG 3616 006125 4575 TSTEND /END OF STRING? 3617 006126 5305 JMP LINXT /NO, GET NEXT 6 CHARS 3618 006127 1024 TAD SUBS /ZERO LAST DIMENSION 3619 006130 0140 AND C7700 3620 006131 3024 DCA SUBS 3621 006132 4550 PUSHJ 3622 006133 4435 LOOKUP /GET VARIABLE 3623 006134 1364 TAD LINCT 3624 006135 4774 JMS I (FLOAT /FLOAT AC INTO FLARG 3625 006136 4556 FLPUT /PUT IT AWAY 3626 006137 6167 FLARG 3627 006140 4554 POPF /RESTORE TEXT 3628 006141 0017 TEXTP 3629 006142 4554 POPF /RESTORE OTHER GARBAGE 3630 006143 0025 PT1 3631 006144 5553 POPJ /RETURN 3632 3633 006145 0000 MGET, 0 /FAKE OUT GETC 3634 006146 2113 ISZ T2 /CHECK FLAG 3635 006147 5352 JMP MGET1 3636 006150 1114 TAD CNTR 3637 006151 5362 JMP MGET2 3638 006152 7340 MGET1, L7777 /SET FLAG 3639 006153 3113 DCA T2 3640 006154 1413 TAD I FLTXR /GET NEW PAIR 3641 006155 3114 DCA CNTR 3642 006156 1114 TAD CNTR 3643 006157 7012 RTR 3644 006160 7012 RTR 3645 006161 7012 RTR 3646 006162 0134 MGET2, AND C77 /KILL GARGAGE 3647 006163 5745 JMP I MGET /RETURN 3648 3649 LINCT, 3650 006164 0000 TEMP, 0 3651 006165 0000 0 3652 006166 0000 0 3653 3654 006167 0000 FLARG, 0 3655 006170 0000 0 3656 006171 0000 0 3657 3658 006174 6477 PAGE 006175 7604 006176 1132 006177 5600 3659 /*MID* FUNCTION FORMAT: MID(A$,X,Y) 3660 /RETURNS Y CHARACTERS STARTING WITH THE XTH CHAR IN A$ 3661 3662 3663 3664 006200 4777 MID, JMS I (GETSTR /GET THE FIRST TWO ARGS 3665 006201 4550 PUSHJ 3666 006202 2611 EVAL-1 3667 006203 4267 JMS MIDCHK /CHECK IF ARG IN BOUNDS 3668 006204 4547 PUSHA /SAVE FOR LATER 3669 006205 4567 TSTCOM /ANOTHER COMMA? 3670 006206 4557 ERR550, ERROR /MISSING OR BAD ARG 3671 006207 4550 PUSHJ /GET THIRD ARG 3672 006210 2611 EVAL-1 3673 006211 4267 JMS MIDCHK /CHECK ARG 3674 006212 3302 DCA MIDC2 3675 006213 4552 POPA /GET SECOND ARG 3676 006214 3301 DCA MIDC1 /SAVE 3677 006215 4554 POPF /GET STRING 3678 006216 6167 FLARG 3679 006217 1376 TAD (FLARG-1 3680 006220 3014 DCA FLTXR2 /PACK POINTER 3681 006221 3112 DCA T1 /PACK SWITCH 3682 006222 1301 TAD MIDC1 /# OF CHARS TO IGNORE 3683 006223 7041 CIA 3684 006224 7110 CLL RAR 3685 006225 1014 TAD FLTXR2 /CALCULATE FIRST CHAR 3686 006226 3013 DCA FLTXR 3687 006227 7430 SZL /CHECK IF PARTIAL 3688 006230 7240 CLA CMA 3689 006231 3113 DCA T2 /UNPACK SWITCH 3690 006232 7430 SZL 3691 006233 1413 TAD I FLTXR /GET CHAR IF PARTIAL 3692 006234 3114 DCA CNTR 3693 3694 3695 006235 7340 MID1, L7777 /CALCULATE NUMBER OF CHARS TO TRANSFER 3696 006236 1302 TAD MIDC2 3697 006237 3302 DCA MIDC2 3698 006240 1302 TAD MIDC2 3699 006241 1301 TAD MIDC1 3700 006242 7041 CIA 3701 006243 1135 TAD M6 3702 006244 7740 SMA SZA CLA 3703 006245 5206 JMP ERR550 /SECOND ARG LESS THAN FIRST 3704 006246 1135 TAD M6 /CHARACTER COUNTER 3705 006247 3031 DCA MODE 3706 006250 4775 MID2, JMS I (MGET /GET CHAR 3707 006251 4303 JMS MPUT /PUT CHAR 3708 006252 2031 ISZ MODE 3709 006253 7410 SKP 3710 006254 5263 JMP MID3 /DONE WITH ALL 6 CHARS 3711 006255 2302 ISZ MIDC2 3712 006256 5250 JMP MID2 /GET ANOTHER CHARACTER 3713 006257 1134 TAD C77 3714 006260 4303 JMS MPUT /FILL STRING WITH CR'S 3715 006261 2031 ISZ MODE 3716 006262 5257 JMP .-3 3717 006263 2031 MID3, ISZ MODE /SET STRING MODE FOR STRING *IF*'S 3718 006264 2015 ISZ PDLXR /KILL POPJ RETURN 3719 006265 5666 JMP I .+1 /SPECIAL RETURN FOR STRING FUNCTIONS 3720 006266 7745 ENDF1 3721 3722 3723 006267 0000 MIDCHK, 0 /CHECK ARGUMENT LIMITS 3724 006270 4523 JMS I INTEGE /MAKE AN INTEGER 3725 006271 7570 SPA SNA SZL /CHECK IF ZERO, NEGATIVE OR TOO BIG 3726 006272 5206 JMP ERR550 3727 006273 7041 CIA 3728 006274 1125 TAD C7 /CHECK IF TOO BIG 3729 006275 7550 SPA SNA 3730 006276 5206 JMP ERR550 /TOO BIG 3731 006277 1135 TAD M6 /FIX IT UP 3732 006300 5667 JMP I MIDCHK 3733 3734 006301 0000 MIDC1, 0 /FIRST CHAR TO COPY 3735 006302 0000 MIDC2, 0 /LAST CHAR TO COPY 3736 006303 0000 MPUT, 0 /FAKE OUT PACKC 3737 006304 2112 ISZ T1 /CHECK FLAG 3738 006305 5311 JMP MPUT1 3739 006306 1115 TAD T3 3740 006307 3414 DCA I FLTXR2 /STASH CHAR 3741 006310 5703 JMP I MPUT 3742 006311 4561 MPUT1, RTL6 3743 006312 0140 AND C7700 3744 006313 3115 DCA T3 /SAVE PARTIAL 3745 006314 7340 L7777 /SET FLAG 3746 006315 3112 DCA T1 3747 006316 5703 JMP I MPUT 3748 /*CAT* FUNCTION FORMAT: CAT(A$,B$) 3749 /RETURNS A STRING OF A$ CONCATENATED WITH B$ 3750 3751 006317 4777 CAT, JMS I (GETSTR /GET TWO ARGUMENTS 3752 006320 4550 PUSHJ 3753 006321 2611 EVAL-1 3754 006322 1031 TAD MODE /CHECK IF SECOND ARG IS A STRING 3755 006323 7450 SNA 3756 006324 5206 JMP ERR550 3757 006325 3032 DCA SPACSW /KEEP SPACES 3758 006326 1135 TAD M6 /COUNT FOR 6 CHARS 3759 006327 3302 DCA MIDC2 3760 006330 3267 DCA MIDCHK /CLEAR FLAG 3761 006331 4554 POPF /FIRST STRING INTO FLARG 3762 006332 6167 FLARG 3763 006333 4407 FINT /PUT STRING INTO IF1 3764 006334 7774 FPUT I (IF1 3765 006335 0000 FEXT 3766 006336 1376 TAD (FLARG-1 /POINT TO STRING 3767 006337 3013 DCA FLTXR 3768 006340 3113 DCA T2 /CLEAR UNPACK SWITCH 3769 006341 1376 TAD (FLARG-1 /POINT TO PACKING TEMP 3770 006342 3014 DCA FLTXR2 3771 006343 3112 DCA T1 /CLEAR PACK SWITCH 3772 006344 4775 CCAT1, JMS I (MGET /GET A CHAR 3773 006345 3301 DCA MIDC1 /SAVE 3774 006346 1301 TAD MIDC1 3775 006347 7001 IAC 3776 006350 0140 AND C7700 /CHECK FOR CR 3777 006351 7640 SZA CLA 3778 006352 5360 JMP CCAT2 /CR FOUND 3779 006353 1301 TAD MIDC1 3780 006354 4303 CCAT3, JMS MPUT /REPACK CHAR 3781 006355 2302 ISZ MIDC2 /CHECK IF 6 YET 3782 006356 5344 JMP CCAT1 3783 006357 5263 JMP MID3 /RETURN 3784 3785 006360 1267 CCAT2, TAD MIDCHK /CHECK IF ALREADY HERE 3786 006361 7650 SNA CLA 3787 006362 5365 JMP .+3 3788 006363 1301 TAD MIDC1 /FLAG SET, RESTORE CHAR 3789 006364 5354 JMP CCAT3 3790 006365 1373 TAD (IF1-1 /SET POINTERS TO SECOND STRING 3791 006366 3013 DCA FLTXR 3792 006367 3113 DCA T2 /CLEAR FLAG 3793 006370 2267 ISZ MIDCHK /SET FLAG 3794 006371 5344 JMP CCAT1 3795 3796 006373 1360 PAGE 006374 1361 006375 6145 006376 6166 006377 5351 3797 /*FLPUT* ROUTINE 3798 006400 0000 XFLPUT, 0 3799 006401 7440 SZA 3800 006402 5205 JMP .+3 3801 006403 7340 L7777 3802 006404 1025 TAD PT1 3803 006405 3013 XFLPT2, DCA FLTXR 3804 006406 7340 L7777 3805 006407 1600 TAD I XFLPUT 3806 006410 3014 DCA FLTXR2 3807 006411 7346 L7775 3808 006412 3115 DCA T3 3809 006413 1414 TAD I FLTXR2 /PUT VARIABLE 3810 006414 4560 UDF 3811 006415 3413 DCA I FLTXR 3812 006416 6201 CDF 3813 006417 2115 ISZ T3 3814 006420 5213 JMP .-5 3815 006421 2200 ISZ XFLPUT 3816 006422 5600 JMP I XFLPUT 3817 3818 /CHARACTER TEST ROUTINES 3819 006423 0000 COMTST, 0 3820 006424 1377 TAD (-",+200 3821 006425 1026 TAD CHAR 3822 006426 7650 SNA CLA 3823 006427 2223 ISZ COMTST /FOUND IT 3824 006430 5623 JMP I COMTST 3825 3826 006431 0000 CCRTST, 0 3827 006432 1231 TAD CCRTST 3828 006433 3223 DCA COMTST 3829 006434 1376 TAD (-15 3830 006435 5225 JMP COMTST+2 3831 3832 006436 0000 ENDTST, 0 3833 006437 1375 TAD (-"'+200 3834 006440 1026 TAD CHAR 3835 006441 7440 SZA 3836 006442 1374 TAD ("'-"\ 3837 006443 7650 SNA CLA 3838 006444 2236 ISZ ENDTST 3839 006445 1236 TAD ENDTST 3840 006446 5233 JMP CCRTST+2 3841 /*LEN* FUNCTION, RETURNS NUMBER OF CHARACTERS 3842 /(UP TO 6) IN A STRING 3843 3844 006447 3114 LEN, DCA CNTR /CHAR COUNTER 3845 006450 7346 L7775 /COUNT FOR 3 WORDS 3846 006451 3112 DCA T1 3847 006452 7360 CLA STL CMA 3848 006453 1122 TAD FLARGP 3849 006454 3013 DCA FLTXR 3850 006455 1413 LENXT, TAD I FLTXR /GET NEXT TWO CHARACTERS 3851 006456 1373 TAD (100 3852 006457 7430 SZL /LINK SET ONLY IF TOP HALF IS CR 3853 006460 5272 JMP LENDON 3854 006461 2114 ISZ CNTR /COUNT CHAR 3855 006462 0134 AND C77 /KILL TOP HALF 3856 006463 7001 IAC 3857 006464 0140 AND C7700 /KILL BOTTOM HALF 3858 006465 7640 SZA CLA /AC=100 IF BOTTOM HALF IS CR 3859 006466 5272 JMP LENDON 3860 006467 2114 ISZ CNTR /COUNT CHAR 3861 006470 2112 ISZ T1 /DONE? 3862 006471 5255 JMP LENXT 3863 AXPUT0, 3864 006472 7200 LENDON, CLA /CLEAR GARBAGE IN AC 3865 006473 3031 DCA MODE /NO LONGER STRING MODE 3866 006474 1114 TAD CNTR 3867 006475 4277 JMS FLOAT /FLOAT NUMBER INTO FLARG 3868 006476 5553 POPJ 3869 3870 3871 /FLOATS NUMBER IN AC INTO FLARG 3872 3873 006477 0000 FLOAT, 0 3874 006500 3112 DCA T1 /SAVE NUMBER 3875 006501 1372 TAD (ACSIGN-1 /SET TO FLOAT 3876 006502 3013 DCA FLTXR 3877 006503 6211 CDF SWAP 3878 006504 3413 DCA I FLTXR /ZERO ACSIGN 3879 006505 3413 DCA I FLTXR 3880 006506 1371 TAD (217 /EXPONENT FUDGE 3881 006507 3413 DCA I FLTXR /INTO ACEXP 3882 006510 3413 DCA I FLTXR /ZERO AC3 3883 006511 1112 TAD T1 3884 006512 3413 DCA I FLTXR /NUMBER IN AC2 3885 006513 3413 DCA I FLTXR /ZERO AC1 3886 006514 4407 FINT 3887 006515 6010 FNOR /FLOAT NUMBER 3888 006516 7522 FPUT I FLARGP /PUT INTO FLARG 3889 006517 0000 FEXT 3890 006520 5677 JMP I FLOAT /DONE 3891 3892 006521 4554 POPF 3893 006522 6167 FLARG 3894 006523 3032 ENDFND, DCA SPACSW 3895 006524 4551 PUSHF 3896 006525 0017 TEXTP 3897 006526 4544 GETC 3898 006527 4575 TSTEND 3899 006530 5326 JMP .-2 3900 006531 4566 TSTCCR 3901 006532 5321 JMP ENDFND-2 3902 006533 4554 POPF 3903 006534 0017 TEXTP 3904 006535 4544 GETC 3905 006536 4571 COMMAN 3906 006537 7001 IAC 3907 006540 5553 POPJ 3908 3909 3910 006541 0000 XPUT, 0 /FILE OUTPUT ROUTINE 3911 006542 7450 SNA 3912 006543 1026 TAD CHAR 3913 006544 3115 DCA T3 3914 006545 1341 TAD XPUT 3915 006546 4547 PUSHA 3916 006547 1115 XPUT3, TAD T3 3917 006550 4547 PUSHA 3918 006551 1115 TAD T3 3919 006552 4672 JMS I AXPUT0 3920 006553 4552 POPA 3921 006554 1376 TAD (-15 3922 006555 7640 SZA CLA 3923 006556 5553 POPJ 3924 006557 1132 TAD CLF 3925 006560 3115 DCA T3 3926 006561 5347 JMP XPUT3 3927 006562 4770 CHAIN, JMS I (DTGRAB 3928 006563 1367 TAD (CHAIN1 3929 006564 3105 DCA CHAINP 3930 006565 5766 JMP I (CHAIN2 3931 006566 7326 PAGE 006567 2463 006570 6603 006571 0217 006572 0042 006573 0100 006574 7713 006575 7731 006576 7763 006577 7724 3932 3933 006600 6777 C6777, 6777 /THIS MUST BE AT THE BEGINNING OF THE PAGE CHECK C200 3934 006601 7000 DTQ1, DTQ 3935 006602 7000 DTQ2, DTQ 3936 3937 006603 0000 DTGRAB, 0 /GET THE TAPE! 3938 006604 6212 CIF 10 /CALL CHECKING ROUTINE 3939 006605 4777 JMS I (DTCHKX 3940 006606 3602 DCA I DTQ2 3941 006607 1202 TAD DTQ2 /BUMP QUEUE POINTER 3942 006610 7001 IAC /(MUST BE AT START OF PAGE) 3943 006611 0376 AND (7607 3944 006612 3202 DCA DTQ2 3945 006613 1201 TAD DTQ1 /WAS THE QUEUE EMPTY? 3946 006614 7140 CLL CMA 3947 006615 1202 TAD DTQ2 3948 006616 0125 AND C7 3949 006617 7650 SNA CLA 3950 006620 5225 JMP XDTG1 /YES, GIVE THIS JOB THE TAPE 3951 3952 006621 1203 TAD DTGRAB /SET RESTART ADDRESS 3953 006622 3022 DCA PC 3954 006623 4775 JMS I (XOR /SET DECTAPE BUSY AND DISMISS 3955 006624 1000 1000 3956 3957 006625 6001 XDTG1, ION /RETURN TO THE JOB 3958 006626 5603 JMP I DTGRAB /(WITH THE DECTAPE) 3959 3960 006627 0000 DTFREE, 0 /LET THE TAPE GO 3961 006630 1105 TAD CHAINP /CHECK IF WE SHOULD HOLD ONTO TAPE 3962 006631 1374 TAD (-READY /FOR AN OLD, SAVE, OR CHAIN 3963 006632 7640 SZA CLA 3964 006633 5627 JMP I DTFREE /RETURN, BUT STILL HOLD ONTO TAPE!! 3965 006634 3601 DCA I DTQ1 /CLEAR THE SLOT 3966 006635 6202 CIF 0 /USED AS IOF UNTIL JMP I DTFREE. 3967 006636 1201 TAD DTQ1 /BUMP THE POINTER 3968 006637 7001 IAC 3969 006640 0376 AND (7607 3970 006641 3201 DCA DTQ1 3971 006642 1601 TAD I DTQ1 /IS THERE ANOTHER REQUEST? 3972 006643 7450 SNA 3973 006644 5627 JMP I DTFREE /NO, ALL DONE! 3974 3975 006645 1121 TAD LOOKST /BUILD A POINTER TO STATUS 3976 006646 3115 DCA T3 3977 006647 1515 TAD I T3 /CLEAR DECTAPE BUSY 3978 006650 0200 C200, AND C6777 /THIS IS WHY C6777 MUST BE AT THE BEGINNING OF THE PAGE 3979 006651 3515 DCA I T3 3980 006652 5627 JMP I DTFREE /BACK TO CURRENT JOB 3981 3982 006653 0000 XGET, 0 /FILE INPUT ROUTINE 3983 006654 7300 CLA CLL 3984 006655 2075 ISZ I3 /3RD CHAR OF 3? 3985 006656 5302 JMP GET1 /NO, NORMAL 3986 006657 7344 L7776 /BACK UP POINTER 3987 006660 1074 TAD IPNTR 3988 006661 3074 DCA IPNTR 3989 006662 7346 L7775 /RESET 3-WAY SWITCH 3990 006663 3075 DCA I3 3991 006664 6221 CDF BUF /GET THE FIRST HALF 3992 006665 1474 TAD I IPNTR 3993 006666 2074 ISZ IPNTR 3994 006667 0343 AND C7400 3995 006670 7106 CLL RTL 3996 006671 7006 RTL 3997 006672 3026 DCA CHAR /HANDY TEMP 3998 006673 1474 TAD I IPNTR /GET THE SECOND HALF 3999 006674 0343 AND C7400 4000 006675 1026 TAD CHAR /GET THE FIRST HALF (AGAIN?) 4001 006676 7006 RTL 4002 006677 7006 RTL 4003 006700 7004 RAL 4004 006701 5342 JMP GEXIT 4005 4006 006702 1074 GET1, TAD IPNTR /IS THERE ANY BUFFER? 4007 006703 0126 AND C177 4008 006704 7760 C12M32, SZA CLA SMA SNL /DUMMY SMA SNL TO PRODUCE (12-32 4009 006705 5340 JMP GET2 /GUESS SO 4010 4011 006706 1073 TAD BASE /BUILD POINTER TO BUFFER 4012 006707 1250 TAD C200 4013 006710 3074 DCA IPNTR 4014 006711 1253 TAD XGET /SAVE THE RETURN 4015 006712 4547 PUSHA 4016 006713 4203 JMS DTGRAB /GET THE DECTAPE 4017 006714 1074 TAD IPNTR /MOVE THE ARGS 4018 006715 3330 DCA IBUFF 4019 006716 1076 TAD IBLK 4020 006717 3332 DCA INBLK 4021 006720 1077 TAD IBLKH 4022 006721 7110 CLL RAR /LINK WILL HAVE THE HIGH ORDER ADDRESS 4023 006722 2076 ISZ IBLK /NEXT BLOCK, NEXT TIME 4024 006723 7410 SKP /THE NEXT 4 LOCATIONS ARE FOR THOSE WITH RK8E 4025 006724 2077 ISZ IBLKH /WITH 17777 PAGES 4026 006725 7201 CLA IAC /AC=1 FOR READ 4027 006726 6212 CIF SWAP 4028 006727 4773 JMS I (DTAPE /DO THE DECTAPE THING 4029 006730 0000 IBUFF, 0 4030 006731 7620 7620 /READ 200 WORDS (ONE PAGE) INTO FIELD 2 4031 006732 0000 INBLK, 0 4032 006733 4227 JMS DTFREE /ALL THROUGH, GIVE IT BACK 4033 006734 4552 POPA /RESTORE THE RETURN 4034 006735 3253 DCA XGET 4035 006736 7344 L7776 /PRETEND WE SET THE PACK SWITCH 4036 006737 3075 DCA I3 4037 4038 006740 6221 GET2, CDF BUF /NORMAL CHARACTER UNPACKING 4039 006741 1474 TAD I IPNTR /GET THE CHARACTER 4040 006742 2074 GEXIT, ISZ IPNTR 4041 006743 7400 C7400, NOP 400 /IN CASE IT SKIPS 4042 006744 6201 CDF 4043 006745 0126 AND C177 /MASK OFF PARITY 4044 006746 7450 SNA /IGNORE NULLS 4045 006747 5254 JMP XGET+1 4046 006750 1133 TAD M12 /AND LINE FEEDS 4047 006751 7112 CLL RTR /AND FORM FEEDS 4048 006752 7450 SNA 4049 006753 5254 JMP XGET+1 4050 006754 7006 RTL 4051 006755 1304 TAD C12M32 /CHECK FOR ^Z. 12-32=7760=SZA CLA SMA SNL 4052 006756 7440 SZA 4053 006757 5365 JMP .+6 4054 006760 2253 ISZ XGET /SKIP RETURN FOR EOF 4055 006761 3076 DCA IBLK /CLEAR FILE OPEN 4056 006762 3077 DCA IBLKH 4057 006763 1372 TAD (XREADC /RESET 'READC' 4058 006764 3067 DCA PREADC 4059 006765 1371 TAD (32 /RESTORE CHAR 4060 006766 3026 DCA CHAR 4061 006767 5653 JMP I XGET /WHEW! 4062 4063 006771 0032 PAGE 006772 3702 006773 3000 006774 7313 006775 5600 006776 7607 006777 3561 4064 007000 0000 DTQ, ZBLOCK 10 007001 0000 007002 0000 007003 0000 007004 0000 007005 0000 007006 0000 007007 0000 4065 4066 007010 0000 STRFIL, 0 /GET A STRING FILENAME 4067 007011 4777 JMS I (DOLCHK /SET EXTENSION 4068 007012 4550 PUSHJ /GET FILE NAME 4069 007013 2612 EVAL 4070 007014 1026 TAD CHAR /SAVE TEXT POINTERS 4071 007015 4547 PUSHA 4072 007016 4551 PUSHF 4073 007017 0017 TEXTP 4074 007020 7240 CLA CMA /PUSH A CR 4075 007021 4547 PUSHA 4076 007022 4551 PUSHF /FINALLY, PUSH THE STRING 4077 007023 6167 FLARG 4078 007024 1015 TAD PDLXR /SET UP UNPACKING (FROM THE STACK!) 4079 007025 3017 DCA AXOUT 4080 007026 3021 DCA XCT 4081 007027 4544 GETC /GET THE FIRST CHAR 4082 007030 6213 CIF CDF SWAP 4083 007031 4776 JMS I (XGETNAM /GET THE FILE NAME 4084 007032 1015 TAD PDLXR /UNSTACK GARBAGE 4085 007033 1375 TAD (4 4086 007034 3015 DCA PDLXR 4087 007035 4554 POPF /RESTORE THE TEXT POINTERS 4088 007036 0017 TEXTP 4089 007037 4552 POPA 4090 007040 3026 DCA CHAR 4091 007041 5610 JMP I STRFIL /DONE WITH FILENAME 4092 4093 007042 4774 OPEN, JMS I (DTGRAB /GET THE DECTAPE 4094 007043 1140 TAD M100 /SET '.DX' EXTENSION 4095 007044 4210 JMS STRFIL /GET THE FILENAME 4096 007045 1132 TAD CLF /DOUBLE CHECK FOR 'FOR' 4097 007046 4571 COMMAN 4098 007047 7650 SNA CLA 4099 007050 4557 ERR620, ERROR /WASN'T THERE 4100 007051 4571 COMMAN /MUST BE 'INPUT' OR 'OUTPUT' 4101 007052 1373 TAD (5 /CHECK FOR 'INPUT' 4102 007053 7450 SNA 4103 007054 5335 JMP OINPUT 4104 007055 1372 TAD (-5-4+32 4105 007056 7640 SZA CLA 4106 007057 5250 JMP ERR620 4107 4108 007060 4567 FILOUT, TSTCOM /LENGTH GIVEN? 4109 007061 5322 JMP NOLEN /ASSUME 10 BLOCKS 4110 007062 4550 PUSHJ /EVALUATE THE LENGTH 4111 007063 2611 EVAL-1 4112 007064 4523 JMS I INTEGER /FIX IT 4113 007065 7570 SPA SNA SZL 4114 007066 4557 ERR650, ERROR /TOO BIG OR TOO LITTLE 4115 4116 007067 3104 LENIN, DCA OMAX /SAVE LENGTH 4117 007070 1036 TAD DECK /USER 0 CAN OPEN ANY LENGTH 4118 007071 7640 SZA CLA 4119 007072 1104 TAD OMAX /ANYBODY ELSE IS LIMITED TO 64 4120 007073 1140 TAD C7700 4121 007074 7750 SPA SNA CLA /TOO BIG, SCREW HIM! 4122 4123 007075 4575 LENOK, TSTEND /SHOULD BE END 4124 007076 5266 JMP LENIN-1 4125 007077 1140 TAD M100 /MAKE SURE EXTENSION IS CORRECT 4126 007100 4777 JMS I (DOLCHK /(HE COULD HAVE SAID 'OPEN $') 4127 007101 1104 TAD OMAX /PUT LENGTH FOR ENTER IN AC 4128 007102 6213 CIF CDF SWAP 4129 007103 4771 JMS I (XENTER /ENTER AND CLOSE 4130 007104 4557 ERR630, ERROR 4131 007105 7104 CLL RAL 4132 007106 3102 DCA OBLK 4133 007107 7004 RAL 4134 007110 3103 DCA OBLKH 4135 007111 7346 L7775 4136 007112 3101 DCA O3 /INIT POINTERS 4137 007113 1073 TAD BASE 4138 007114 3100 DCA OPNTR 4139 007115 1104 TAD OMAX /FORM MAXIMUM LENGTH (IN PAGES) 4140 007116 7104 CLL RAL 4141 007117 7040 CMA 4142 007120 3104 DCA OMAX 4143 007121 5347 JMP OUTOUT /USE SOME COMMON CODE 4144 4145 007122 1132 NOLEN, TAD CLF /ASSUME 10 BLOCKS 4146 007123 5267 JMP LENIN 4147 4148 007124 1070 SAVDON, TAD PPRINT /WAS THIS A 'SAVE'? 4149 007125 1370 TAD (-XPRNTC 4150 007126 7650 SNA CLA 4151 007127 5767 JMP I (READY /NO, GOTO 'READY' 4152 007130 4550 PUSHJ /CLOSE THE FILE 4153 007131 7416 CLOSE1 4154 007132 4766 SAVDN1, JMS I (IOFIX 4155 007133 4765 JMS I (DTFREE /RELEASE THE TAPE FOR REAL 4156 007134 5767 JMP I (READY /ALL DONE! 4157 4158 007135 4575 OINPUT, TSTEND 4159 007136 5250 JMP ERR620 4160 007137 6213 CIF CDF SWAP 4161 007140 4764 JMS I (FLOOK /LOOK UP THE FILE 4162 007141 7104 CLL RAL /GET THE TAPE BLOCK*2 FOR PAGES 4163 007142 3076 DCA IBLK 4164 007143 7004 RAL 4165 007144 3077 DCA IBLKH 4166 007145 3075 DCA I3 /CLEAR THE SWITCH 4167 007146 3074 DCA IPNTR /AND THE POINTER 4168 007147 4765 OUTOUT, JMS I (DTFREE /GIVE UP THE TAPE 4169 007150 5553 POPJ 4170 4171 4172 007151 4575 RESTOR, TSTEND 4173 007152 4557 ERR280, ERROR 4174 007153 3037 DCA DATAPC 4175 007154 1124 TAD CCR 4176 007155 3043 DCA DATAPC+4 4177 007156 5553 POPJ 4178 4179 007157 2014 FLTONE, 2014 4180 007160 0000 FLZERO, 0 4181 007161 0000 0 4182 007162 0000 0 4183 4184 007163 4557 ERR330, ERROR 4185 4186 007164 3530 PAGE 007165 6627 007166 1363 007167 0465 007170 0435 007171 3177 007172 0021 007173 0005 007174 6603 007175 0004 007176 2661 007177 7542 4187 007200 0000 XPUT0, 0 4188 IFNZRO XPUT0-7200 4189 /AXPUT0 POINTS TO XPUT0. AXPUT0 IS ALSO A CLA INSTRUC- 4190 /TION SO XPUT0 SHOULD NOT BE MOVED. 4191 007201 6221 CDF BUF 4192 007202 2101 ISZ O3 4193 007203 5251 JMP PUT1 4194 007204 3115 DCA T3 4195 007205 7344 L7776 4196 007206 1100 TAD OPNTR 4197 007207 3100 DCA OPNTR 4198 007210 4256 JMS OPAK 4199 007211 4256 JMS OPAK 4200 007212 6201 CDF 4201 007213 7346 L7775 4202 007214 3101 DCA O3 4203 007215 1100 TAD OPNTR 4204 007216 0126 AND C177 4205 007217 7640 SZA CLA 4206 007220 5600 JMP I XPUT0 4207 4208 007221 2104 ISZ OMAX /GONE TOO FAR? 4209 007222 5226 JMP .+4 4210 007223 3102 DCA OBLK /CLEAR FILE 4211 007224 3103 DCA OBLKH 4212 007225 4557 ERR640, ERROR 4213 007226 1073 TAD BASE 4214 007227 3100 DCA OPNTR 4215 007230 4777 JMS I (DTGRAB 4216 007231 1073 TAD BASE 4217 007232 3244 DCA OBUFF 4218 007233 1102 TAD OBLK 4219 007234 3246 DCA OUTBLK 4220 007235 1103 TAD OBLKH 4221 007236 7110 CLL RAR /OBLKH MUST BE EITHER 0 OR 1 NOTHING ELSE. 4222 007237 2102 ISZ OBLK 4223 007240 7410 SKP /RK8E AGAIN 4224 007241 2103 ISZ OBLKH 4225 007242 6212 CIF SWAP 4226 007243 4776 JMS I (DTAPE 4227 007244 0000 OBUFF, 0 4228 007245 7620 7620 /WRITE 200 WORDS FROM FIELD 2 4229 007246 0000 OUTBLK, 0 4230 007247 4775 JMS I (DTFREE 4231 007250 5600 JMP I XPUT0 4232 4233 007251 0126 PUT1, AND C177 4234 007252 3500 DCA I OPNTR 4235 007253 2100 ISZ OPNTR 4236 007254 6201 CDF 4237 007255 5600 JMP I XPUT0 4238 4239 4240 007256 0000 OPAK, 0 4241 007257 1115 TAD T3 4242 007260 7106 CLL RTL 4243 007261 7006 RTL 4244 007262 3115 DCA T3 4245 007263 1115 TAD T3 4246 007264 0374 AND (7400 4247 007265 1500 TAD I OPNTR 4248 007266 3500 DCA I OPNTR 4249 007267 2100 ISZ OPNTR 4250 007270 5656 JMP I OPAK 4251 4252 007271 0000 OFREE2, 0 4253 007272 1271 TAD OFREE2 4254 007273 4547 PUSHA 4255 007274 1373 TAD (-2+200 4256 007275 1073 TAD BASE 4257 007276 7141 CLL CIA 4258 007277 1100 TAD OPNTR 4259 007300 7620 SNL CLA 4260 007301 5553 POPJ 4261 007302 7330 L4000 4262 007303 4470 PRINTC 4263 007304 1073 TAD BASE 4264 007305 7041 CIA 4265 007306 1100 TAD OPNTR 4266 007307 7640 SZA CLA 4267 007310 5302 JMP .-6 4268 007311 5553 POPJ 4269 4270 007312 0000 OFREE3, 0 4271 007313 1312 TAD OFREE3 4272 007314 4547 PUSHA 4273 007315 1135 TAD M6 4274 007316 5274 JMP OFREE2+3 4275 4276 007317 4772 OLD1, JMS I (DOLCHK /SET UP THE EXTENSION. 4277 007320 4550 PUSHJ /GET THE PROGRAM NAME 4278 007321 5740 GETNAM 4279 007322 4777 JMS I (DTGRAB /GET THE TAPE 4280 007323 6213 CIF CDF SWAP /UNPACK THE NAME 4281 007324 4771 JMS I (XGETNAM 4282 4283 007325 7410 SKP 4284 007326 4770 CHAIN2, JMS I (STRFIL 4285 007327 4767 JMS I (MOVNAM /MOVE THE NEW NAME DOWN 4286 007330 4550 PUSHJ /LOOKUP THE FILE 4287 007331 7137 OINPUT+2 /AND SWITCH TO FILE INPUT 4288 007332 4560 UDF /SCRATCH USER AREA 4289 007333 3457 DCA I ALINE0 4290 007334 6201 CDF 0 4291 007335 7326 L0002 4292 007336 1057 TAD ALINE0 4293 007337 3054 DCA BUFR 4294 007340 1366 TAD (XGET 4295 007341 3067 DCA PREADC 4296 007342 5765 JMP I (START /RETURN TO COMMAND INPUT! 4297 4298 4299 007343 0000 XPRNTC, 0 4300 007344 6002 IOF 4301 007345 4764 JMS I (XOUTL 4302 007346 6001 ION 4303 007347 5743 JMP I XPRNTC 4304 4305 /*UDF* ROUTINE 4306 007350 0000 XUDF, 0 4307 007351 6221 CDF 20 /TO USER'S FIELD 4308 007352 5750 JMP I XUDF 4309 4310 /PART OF THE INPUT COMMAND HANDLER. 4311 007353 4575 INPUT1, TSTEND 4312 007354 5762 JMP I XINRE1 4313 007355 4552 POPA 4314 007356 3043 DCA DATAPC+4 4315 007357 4554 POPF 4316 007360 0040 DATAPC+1 4317 007361 5553 POPJ 4318 007362 1035 XINRE1, INREA1+1 4319 4320 007364 3341 PAGE 007365 0470 007366 6653 007367 4240 007370 7010 007371 2661 007372 7542 007373 0176 007374 7400 007375 6627 007376 3000 007377 6603 4321 007400 3115 OPUS, DCA T3 4322 007401 4552 POPA 4323 007402 6212 CIF 10 4324 007403 5604 JMP I .+1 4325 007404 5200 OPUS1 4326 4327 007405 0000 INTCNT, 0 4328 007406 1107 RANDOM, TAD FRNDX+1 4329 007407 1205 TAD INTCNT 4330 007410 3106 DCA FRNDX 4331 007411 1205 TAD INTCNT 4332 007412 3107 DCA FRNDX+1 4333 007413 5553 POPJ 4334 4335 007414 1377 CLOSE0, TAD (460 /SET "D0" EXTENSION 4336 007415 3066 DCA EXTEN 4337 007416 1102 CLOSE1, TAD OBLK /ANY FILE TO CLOSE? 4338 007417 7110 CLL RAR 4339 007420 1103 TAD OBLKH /THIS WILL WORK BECAUSE HE CAN'T USE BLOCK 0 4340 007421 7650 SNA CLA 4341 007422 5776 JMP I (ERR600 4342 007423 4775 JMS I (SETUPO /OPEN OUTPUT 4343 007424 1374 TAD (232 /WRITE A ^Z 4344 007425 4470 PRINTC 4345 007426 1073 TAD BASE 4346 007427 7041 CIA 4347 007430 1100 TAD OPNTR 4348 007431 7640 SZA CLA 4349 007432 5224 JMP .-6 4350 007433 3102 DCA OBLK /CLOSE THE FILE! 4351 007434 3103 DCA OBLKH 4352 007435 5553 POPJ 4353 4354 007436 2105 SAVE, ISZ CHAINP /SET TAPE LOCKING FLAG 4355 007437 4773 JMS I (DTGRAB /GET THE DECTAPE 4356 007440 6211 CDF SWAP /MOVE THE NAME TO 4357 007441 1063 TAD NAME /WORKING SPACE 4358 007442 3524 DCA I CCR /** NAMEX IS AT LOCATION 15 4359 007443 1064 TAD NAME+1 4360 007444 3772 DCA I (NAMEX+1 4361 007445 1065 TAD NAME+2 4362 007446 3771 DCA I (NAMEX+2 4363 007447 6201 CDF 4364 FCCHNG=. 4365 /IF COMMON FILE EXTS ARE DESIRED THE NEXT 4366 /LOCATION IS: 4367 / NOP 4368 DPL000=. 4369 DPV000=NOP 4370 007450 1036 TAD DECK 4371 007451 1370 TAD (560 /SET "EX" EXTENSION 4372 007452 3066 DCA EXTEN 4373 007453 3104 DCA OMAX /SETUP TO COMPUTE LENGTH 4374 007454 1057 TAD ALINE0 /(BUFR)-(ALINE0)=LENGTH IN WORDS 4375 007455 7041 CIA 4376 007456 1054 TAD BUFR 4377 007457 7110 CLL RAR /HALVE IT FOR THOSE USERS WITH OVER 2K 4378 007460 2104 ISZ OMAX /(# WORDS)*2/(CHAR'S/BLOCK)+1=BLOCKS 4379 007461 1367 TAD (-124 /(APPROX # CHAR'S/BLOCK)/2 (AND 2 AGAIN) 4380 007462 7500 SMA 4381 007463 5260 JMP .-3 /CONTINUE DIVISION 4382 007464 7300 CLA CLL /NOW DO ENTER 4383 007465 4550 PUSHJ /OPEN FILE 4384 007466 7101 LENOK+4 4385 007467 3034 DCA OUTPUT /FOR 'LIST' 4386 007470 4775 JMS I (SETUPO /SETUP TO PRINT 4387 007471 5766 JMP I (LIST /CALL 'LIST' 4388 4389 4390 007472 7330 KILL, L4000 4391 007473 3062 DCA ERLINE 4392 007474 4550 UNSAVE, PUSHJ /GET THE NAME 4393 007475 5740 GETNAM 4394 007476 4773 JMS I (DTGRAB /GET THE DECTAPE 4395 007477 6213 CIF CDF SWAP /BUILD THE NAME 4396 007500 4765 JMS I (XGETNAM 4397 007501 1062 TAD ERLINE /WHICH EXTENSION? 4398 007502 7640 SZA CLA 4399 007503 1140 TAD M100 /'.DX' EXTENSION 4400 007504 4342 JMS DOLCHK /JUST TO SET '.EX' EXTENSION 4401 007505 6213 CIF CDF SWAP /DO THE CLOSE 4402 007506 4764 JMS I (XENTER /WHAT? 4403 007507 2757 PCAT0, CAT0 /ENTER WITH 0 SHOULD ALWAYS SKIP 4404 007510 4763 UNSAV1, JMS I (DTFREE /RELEASE THE TAPE 4405 007511 5762 JMP I (READY /ALL DONE 4406 4407 007512 7330 DATLOG, L4000 4408 007513 3062 DCA ERLINE 4409 007514 1132 CATLOG, TAD CLF 4410 007515 4470 PRINTC 4411 007516 4773 JMS I (DTGRAB /GET THE TAPE 4412 007517 1062 TAD ERLINE 4413 007520 7640 SZA CLA 4414 007521 1140 TAD M100 /LIST '.DX' EXTENSIONS 4415 007522 4342 JMS DOLCHK /SET CATALOG TO LIST 4416 007523 6213 CIF CDF SWAP /GET THE CATALOG 4417 007524 4707 JMS I PCAT0 4418 4419 007525 4472 CATLUP, FREE13 /MAKE SURE THERE'S ROOM 4420 007526 6213 CIF CDF SWAP /PRINT THE NEXT NAME 4421 007527 4761 JMS I (CAT1 4422 007530 5325 JMP CATLUP /DO IT AGAIN! 4423 007531 5310 JMP UNSAV1 4424 4425 007532 2032 PRINT2, ISZ SPACSW /KEEP SPACES 4426 007533 4544 GETC 4427 007534 4545 SORTJ 4428 007535 5450 PRNTL7-1 /CHECK " CR 4429 007536 6240 PRNTL8-PRNTL7 4430 007537 4471 FREE2 4431 007540 4470 PRINTC 4432 007541 5333 JMP PRINT2+1 /KEEP PRINTING THE LITERAL 4433 4434 007542 0000 DOLCHK, 0 /DECIDE WHICH CATALOG TO USE 4435 007543 3112 DCA T1 /SET EITHER '.E0' OR '.D0' 4436 007544 1026 TAD CHAR /CHECK FOR $ 4437 007545 1360 TAD (-"$+200 4438 007546 7650 SNA CLA 4439 007547 5355 JMP DOL2 4440 FCCHNG=. 4441 /IF COMMON FILE EXTS ARE DESIRED THE NEXT 4442 /LOCATION IS: 4443 / NOP 4444 DPL001=. 4445 DPV001=NOP 4446 007550 1036 TAD DECK /ADD CURRENT USER TO EXTENSION 4447 007551 1112 DOL1, TAD T1 4448 007552 1370 TAD (560 4449 007553 3066 DCA EXTEN 4450 007554 5742 JMP I DOLCHK 4451 007555 4544 DOL2, GETC /SKIP OVER $ 4452 007556 1136 TAD C10 4453 007557 5351 JMP DOL1 4454 4455 4456 007560 7734 PAGE 007561 3465 007562 0465 007563 6627 007564 3177 007565 2661 007566 2251 007567 7654 007570 0560 007571 0017 007572 0016 007573 6603 007574 0232 007575 5474 007576 1146 007577 0460 4457 4458 FIELD 1 4459 4460 *7400 4461 MVPAG=. 4462 4463 NOPUNCH 4464 *7600 /THIS WILL BE MOVED LATER 4465 ENPUNCH 4466 4467 017600 5356 JMP 7756 /FOR A MONITOR SYSTEM 4468 /THE FOLLOWING CODE IS ASSEMBLED AT 7600 BUT LOADED AT 4469 /7400 IN BANK 1. IT IS MOVED IN INITIALIZATION TO 07600. 4470 /THIS PROCEDURE IS NECESSARY BECAUSE OS/8 WILL NOT LOAD 4471 /OVER THE TOP PAGES OF BANKS 0 & 1. 4472 017601 7736 QMQOT, -42 4473 017602 7603 QPT1, .+1 4474 017603 0011 11 4475 017604 0000 QCT1, 0 4476 017605 2757 QEVAL2, EVAL2+3 4477 017606 5607 QINPACK,INPACK 4478 017607 0000 QUOCNT, 0 4479 IFNZRO 7610-. 4480 017610 7740 IF5, SMA SZA CLA 4481 017611 7710 SPA CLA 4482 017612 7650 SNA CLA 4483 017613 7700 SMA CLA 4484 017614 7750 SPA SNA CLA 4485 017615 7640 SZA CLA 4486 017616 0000 QCOUNT, 0 4487 017617 1026 QUOTES, TAD CHAR /LITERAL STRING 4488 017620 1201 TAD QMQOT 4489 017621 7640 SZA CLA 4490 017622 5605 JMP I QEVAL2 /ERROR, NOT STRING 4491 017623 1353 TAD QOPNEXT /SET UP POPJ RETURN 4492 017624 4547 PUSHA 4493 4494 017625 1333 QINP, TAD QCON1 /ENTRY POINT FOR INPUT COMMAND 4495 017626 1334 QLINP, TAD QCON2 /ENTRY POINT FOR LINPUT COMMAND 4496 017627 3252 DCA QSLIS /WHICH LIST TO SORT THROUGH 4497 017630 1135 TAD M6 4498 017631 3216 DCA QCOUNT /COUNT FOR 6 CHARS 4499 017632 3207 DCA QUOCNT /QUOTE COUNTER 4500 017633 2032 ISZ SPACSW /KEEP SPACES 4501 017634 2031 ISZ MODE /SET STRING MODE INDICATOR 4502 017635 4551 PUSHF /PUSH 3 WORDS ONTO STACK 4503 017636 0124 CCR 4504 017637 1015 TAD PDLXR 4505 017640 3016 DCA AXIN 4506 017641 3024 DCA XCTIN 4507 017642 1016 TAD AXIN 4508 017643 3052 DCA PACKST 4509 017644 1202 TAD QPT1 4510 017645 3053 DCA PACKND 4511 017646 7410 SKP /WE ALREADY HAVE FIRST CHAR 4512 017647 4544 QUOTE1, GETC 4513 017650 4545 SORTJ 4514 017651 5446 PRNTL1-1 4515 017652 0000 QSLIS, 0 4516 4517 017653 1216 QNEXTC, TAD QCOUNT /HAVE WE GOT 6 CHARS YET 4518 017654 7710 SPA CLA /YES, DON'T BOTHER PACKING 4519 017655 4564 PACKC 4520 017656 2216 ISZ QCOUNT /BUMP CHAR COUNTER 4521 017657 5247 JMP QUOTE1 4522 017660 1252 TAD QSLIS /GOT 6 CHARS; CHECK IF LINPUT COMMAND 4523 017661 7041 CIA 4524 017662 1334 TAD QCON2 4525 017663 7640 SZA CLA 4526 017664 5247 JMP QUOTE1 /NO, IGNORE REST OF STRING 4527 017665 1335 TAD QCOM /YES, FAKE A COMMA 4528 017666 3207 DCA QUOCNT /SO WE CAN GET REST OF STRING 4529 017667 5310 JMP QDONE2 4530 4531 017670 1207 QUOCHK, TAD QUOCNT /CHECK WHICH QUOTE THIS IS 4532 017671 7650 SNA CLA /SECOND QUOTE, ALL DONE 4533 017672 5276 JMP .+4 4534 017673 3032 DCA SPACSW /IGNORE SPACES 4535 017674 4544 GETC /SKIP OVER QUOTE 4536 017675 5304 JMP QDONE /END OF STRING 4537 017676 2207 ISZ QUOCNT 4538 017677 5247 JMP QUOTE1 /SET FLAG AND CONTINUE 4539 4540 017700 1207 QCOMCK, TAD QUOCNT /CHECK IF COMMA INSIDE QUOTES 4541 017701 7650 SNA CLA 4542 017702 5304 JMP QDONE /NO QUOTES, ENDS STRING 4543 017703 5253 JMP QNEXTC /INSIDE QUOTES, KEEP IT 4544 4545 017704 1026 QDONE, TAD CHAR /DONE, SAVE TERMINATOR 4546 017705 3207 DCA QUOCNT 4547 017706 1216 TAD QCOUNT /SAVE CHAR COUNT, FILL WORD WITH CR'S 4548 017707 7041 CIA 4549 017710 1135 QDONE2, TAD M6 4550 017711 7041 CIA 4551 017712 3204 DCA QCT1 4552 017713 1216 TAD QCOUNT 4553 017714 7700 SMA CLA 4554 017715 5323 JMP QDONE1 /YES 4555 017716 1124 TAD CCR /CCR ENDS STRING 4556 017717 3026 DCA CHAR 4557 017720 4564 PACKC 4558 017721 2216 ISZ QCOUNT 4559 017722 5320 JMP .-2 4560 017723 4554 QDONE1, POPF /GET THE STRING 4561 017724 6167 FLARG 4562 017725 1122 TAD FLARGP /POINT TO STRING 4563 017726 3025 DCA PT1 4564 017727 1207 TAD QUOCNT 4565 017730 3026 DCA CHAR /RESTORE CHARACTER 4566 017731 3032 DCA SPACSW /SET TO IGNORE SPACES 4567 017732 5553 POPJ /RETURN 4568 4569 4570 4571 017733 7774 QCON1, QLIS2-QLIS1 4572 017734 5271 QCON2, QLIS1-PRNTL1 4573 017735 0054 QCOM, ",-200 4574 4575 017736 0001 FRNDX1, 0001 /INITIALIZE RANDOM NUMBER 4576 017737 0203 0203 4577 017740 5555 5555 4578 4579 017741 4407 ENDFUN, FINT 4580 017742 6010 FNOR /NORMALIZE IT 4581 017743 7522 FPUT I FLARGP /SAVE DATA 4582 017744 0000 FEXT 4583 017745 1122 ENDF1, TAD FLARGP 4584 017746 3025 DCA PT1 /POINT TO DATA 4585 017747 3032 DCA SPACSW 4586 017750 4752 JMS I QPARTST 4587 017751 5753 JMP I QOPNEXT 4588 4589 017752 5665 QPARTST,PARTST 4590 017753 2644 QOPNEXT,OPNEXT 4591 4592 4593 PAGE 0 4594 4595 010000 0000 DTINTR, 0 4596 010001 3056 DCA INTAC1 /JUST FOR *DECKON* 4597 010002 0000 0 /DTSF IF TC08, DSKP IF RK8E 4598 CDCHNG=. 4599 /THE FOLLOWING LOCATION BECOMES 4600 / JMP DIS 4601 /IF A CDR IS NOT USED. 4602 CPL400=. 4603 CPV400=JMP DIS 4604 010003 5117 JMP CDRICK /CHECK FOR CARD INTERRUPT. 4605 010004 5467 JMP I MCOM /YES, GO TO IT 4606 4607 010005 0000 OCNTR, 0 /FLT PT COUNTER 4608 010006 0000 XENTMP, 0 4609 4610 /!!!!! WARNING DON'T MOVE OFPNT OR ITS ENTRY POINT !!!!! 4611 4612 *7 4613 010007 0200 Z200, OFPNT /FLOATING INTERPRETER CALL 4614 010010 0000 FXR1, 0 /FLOATING POINT INDEX REG 4615 010011 0000 FXR2, 0 4616 010012 0000 XR1, 0 4617 010013 0000 XR2, 0 4618 010014 0000 XR3, 0 4619 *15 /NAMEX MUST BE AT LOCN. 15 FOR MOVNAM TO WORK 4620 010015 0000 NAMEX, ZBLOCK 3 010016 0000 010017 0000 4621 010020 1056 DIS, TAD INTAC1 /RESTORE AC 4622 010021 6203 CIF CDF 4623 010022 5400 JMP I DTINTR /RESUME INTERRUPT PROCESSING 4624 4625 CALL=JMS I . /CALL AN OVERLAY OVER ENTER 4626 010023 2764 XCALL 4627 OPRINTC=JMS I . /FIELD 1 PRINTC 4628 010024 1170 OPRINC 4629 OERROR= JMS I . /FIELD 1 ERROR CALL 4630 010025 2462 OERRX 4631 OGETC= JMS I . /FIELD 1 GETC 4632 010026 2456 OGETCX 4633 OTESTN= JMS I . /FIELD 1 TESTN 4634 010027 2442 OTESTX 4635 OPOPJ= JMP I . 4636 010030 2364 OPOPJX 4637 OPUSHJ= JMS I . 4638 010031 2447 OPUSHX 4639 DECTAP= JMS I . /DO READ OR WRITE 4640 010032 3000 DTAPE 4641 ERROX= JMP . 4642 010033 4425 ERR530, OERROR 4643 GETCAT= JMS I . /READ IN DIRECTORY 4644 010034 3440 XGETCAT 4645 BUMPXR= JMS I . /UTILITY 4646 010035 2654 XBUMPXR 4647 DIRSCH= JMS I . /FIND A FILE NAME 4648 010036 2600 XDIRSCH 4649 SETPT= JMS I . /SETUP DIRECTORY POINTERS 4650 010037 3416 XSETPT 4651 TADCHR= JMS I . /TAD CHAR FROM FIELD 0 4652 010040 2727 XTADCH 4653 TADEXT= JMS I . 4654 010041 4736 XTADEX 4655 4656 /FLOATING POINT STORAGE 4657 4658 010042 0000 OPSIGN, 0 /OPERAND SIGN 4659 010043 0000 ACSIGN, 0 /FLAC SIGN 4660 010044 0000 OPEXP, 0 /OPERAND EXPONENT 4661 010045 0000 ACEXP, 0 /FLAC EXPONENT 4662 010046 0000 AC3, 0 /FLAC 4663 010047 0000 AC2, 0 4664 010050 0000 AC1, 0 4665 010051 0000 OP3, 0 /OPERAND 4666 010052 0000 OP2, 0 4667 010053 0000 OP1, 0 4668 010054 0000 OVER, 0 /OVERFLOW INTO HERE 4669 010055 0000 FFLAG, 0 /-1 IF OP NOT 0 4670 4671 010056 0000 INTAC1, 0 4672 010057 0000 TEMPX, 0 4673 010060 0000 TEMPX1, 0 4674 010061 0000 FILEN, 0 4675 010062 0000 BLOCK, 0 4676 010063 0000 WASTE, 0 4677 010064 0000 ENTRIES, 0 4678 010065 3453 PSQUISH, SQUISH 4679 010066 0000 FOUND, 0 4680 010067 0000 MCOM, 0 4681 010070 4423 PPLINK, CALL /CALL LINK OVERLAY. MOVE THIS IF YOU CAN FIND ROOM 4682 010071 0060 CLINK^2 4683 010072 3200 LINK 4684 4685 010073 0010 Z10, 10 4686 010074 0070 Z70, 70 4687 010075 0100 Z100, 100 4688 010076 1000 Z1000, 1000 4689 010077 6777 Z6777, 6777 4690 010100 0120 ZLOOK, LOOK 4691 010101 1767 ZRUN9X, RUN9X 4692 010102 6601 ZDTQ1, DTQ1 4693 010103 4207 ZDIRBUF, DIRBUF 4694 010104 3052 ZDXIT, DXIT /POINTER TO DTAPE (RK8E) RETURN 4695 010105 5001 PXCALLB, -XCALLB-1 4696 010106 4425 ZOERROR, OERROR 4697 010107 6771 DTSF1, DTSF /DTSF IF TC08, DSKP IF RK8E 4698 010110 0000 DTLOOK, 0 /ADDRESS OF DECTAPE USER STATUS WORD 4699 010111 6201 ZCDF, CDF /FOR RK8E HANDLER 4700 4701 DCON, /DECTAPE (OR DISK) CONSTANTS 4702 D4000, /4000 4703 010112 3055 DDR128, DR128 4704 D6260, /6260 4705 010113 3113 DDTBLK, DTBLOK 4706 D1400, /1400 4707 010114 3073 DDINT, DINT-1 4708 DDIRB, /DIRBUF-1 4709 010115 0614 D614, 614 4710 DM200, /-200 4711 010116 0020 D20, 20 4712 4713 010117 6675 CDRICK, RCSI /IS THERE A CARD READER INTERRUPT? 4714 010120 5020 JMP DIS /NO. 4715 010121 5522 JMP I .+1 /YES. 4716 010122 6200 CRINTCHK 4717 4718 PAGE 4719 / THIS ROUTINE CAN NOT BE MOVED BECAUSE ITS POINTER 4720 /IS ALSO A CONSTANT OF 200. 4721 010200 0000 OFPNT, 0 /ENTRY POINT 4722 010201 7600 C7600, 7600 4723 010202 6214 RDF 4724 010203 1021 TAD DIS+1 /OPERANDS IN CALLING FIELD 4725 010204 3210 DCA FLOOP+2 4726 010205 5210 JMP .+3 4727 4728 010206 4577 FLOOP, JMS I [FNORM /NORMALIZE RESULT 4729 010207 2200 ISZ OFPNT /GET NEXT 4730 010210 6203 CIF CDF 4731 010211 1600 TAD I OFPNT /GET OPERATION 4732 010212 7450 SNA 4733 010213 5600 JMP I OFPNT /0000 => EXIT 4734 010214 6212 CIF SWAP 4735 010215 7006 RTL 4736 010216 7006 RTL 4737 010217 0176 AND [7 4738 010220 3273 DCA FGOTO /SAVE OP 4739 010221 1600 TAD I OFPNT 4740 010222 0175 AND [200 4741 010223 7650 SNA CLA 4742 010224 5227 JMP FPNT1 /PAGE ZERO MODE 4743 010225 1200 TAD OFPNT 4744 010226 0201 AND C7600 /GET PAGE 4745 010227 3304 FPNT1, DCA FADDR 4746 010230 1600 TAD I OFPNT 4747 010231 0174 AND [177 4748 010232 1304 TAD FADDR 4749 010233 3304 DCA FADDR /GET ADDRESS 4750 010234 7420 SNL 4751 010235 5240 JMP FPNT2 4752 010236 1704 TAD I FADDR /DO INDIRECT 4753 010237 3304 DCA FADDR 4754 010240 7330 FPNT2, L4000 4755 010241 0704 AND I FADDR 4756 010242 3042 DCA OPSIGN /SET SIGN 4757 010243 1704 TAD I FADDR 4758 010244 7640 SZA CLA 4759 010245 7340 L7777 4760 010246 3055 DCA FFLAG /-1 IF NOT 0 4761 010247 1704 TAD I FADDR 4762 010250 7012 RTR 4763 010251 7010 RAR 4764 010252 0173 AND [377 4765 010253 3044 DCA OPEXP /SET EXP 4766 010254 1704 TAD I FADDR 4767 010255 0176 AND [7 4768 010256 3053 DCA OP1 /SET WORDS 4769 010257 2304 ISZ FADDR 4770 010260 1704 TAD I FADDR 4771 010261 3052 DCA OP2 4772 010262 2304 ISZ FADDR 4773 010263 1704 TAD I FADDR 4774 010264 3051 DCA OP3 4775 010265 7346 L7775 4776 010266 1304 TAD FADDR 4777 010267 3011 DCA FXR2 4778 010270 1273 FPNT3, TAD FGOTO 4779 010271 1172 TAD [JMP I FJUMP 4780 010272 3273 DCA .+1 /FIND OP ADDRESS 4781 010273 7402 FGOTO, HLT 4782 4783 010274 0334 FJUMP, FPGET 4784 010275 0455 FPADD 4785 010276 0452 FPSUB 4786 010277 0531 FPMUL 4787 010300 0662 FPDIV 4788 010301 0305 FPJMP 4789 010302 0311 FPCMP 4790 010303 0325 FPPUT 4791 4792 010304 0000 FADDR, 0 4793 010305 7344 FPJMP, L7776 /FLOATING JUMP 4794 010306 1304 TAD FADDR 4795 010307 3200 DCA OFPNT 4796 010310 5210 JMP FLOOP+2 4797 4798 010311 1600 FPCMP, TAD I OFPNT 4799 010312 7006 RTL 4800 010313 7006 RTL 4801 010314 7730 SZL SPA CLA 4802 010315 5361 JMP FPNT4 /FLOATING COMPARE 4803 010316 1600 TAD I OFPNT 4804 010317 1316 TAD .-1 /TAD (1600 4805 010320 3322 DCA .+2 /SET SKIP WORD 4806 010321 4347 JMS HIGHWD /GET WORD 4807 010322 7402 HLT /SKIP IF FALSE 4808 010323 2200 ISZ OFPNT /TRUE => SKIP 4809 010324 5206 JMP FLOOP 4810 4811 010325 4347 FPPUT, JMS HIGHWD 4812 010326 3411 DCA I FXR2 /SET WORD 1 4813 010327 1047 TAD AC2 4814 010330 3411 DCA I FXR2 /SET WORD 2 4815 010331 1046 TAD AC3 4816 010332 3411 DCA I FXR2 /SET WORD 3 4817 010333 5207 JMP FLOOP+1 4818 4819 010334 1042 FPGET, TAD OPSIGN 4820 010335 3043 DCA ACSIGN /TRANSFER INTO FLAC 4821 010336 1044 TAD OPEXP 4822 010337 3045 DCA ACEXP 4823 010340 1053 TAD OP1 4824 010341 3050 DCA AC1 4825 010342 1052 TAD OP2 4826 010343 3047 DCA AC2 4827 010344 1051 TAD OP3 4828 010345 3046 DCA AC3 4829 010346 5207 JMP FLOOP+1 4830 4831 010347 0000 HIGHWD, 0 4832 010350 1045 TAD ACEXP 4833 010351 7104 CLL RAL 4834 010352 7500 SMA 4835 010353 7106 CLL RTL 4836 010354 7530 SPA SZL 4837 010355 4425 ERR040, OERROR /OVERFLOW 4838 010356 1043 TAD ACSIGN 4839 010357 1050 TAD AC1 /FORM WORD 4840 010360 5747 JMP I HIGHWD 4841 4842 010361 7330 FPNT4, L4000 4843 010362 1042 TAD OPSIGN 4844 010363 3042 DCA OPSIGN 4845 010364 4571 JMS I [OCTADD 4846 010365 1050 TAD AC1 4847 010366 7450 SNA 4848 010367 1047 TAD AC2 4849 010370 7640 SZA CLA 4850 010371 5206 JMP FLOOP /NOT ZERO 4851 010372 1046 TAD AC3 4852 010373 0170 AND [7774 4853 010374 7640 SZA CLA 4854 010375 5206 JMP FLOOP /NOT ZERO 4855 010376 5567 JMP I [MULCLR /CALL IT ZERO 4856 4857 PAGE 4858 010400 0000 AR1, 0 4859 010401 1050 TAD AC1 4860 010402 7110 CLL RAR 4861 010403 3050 DCA AC1 4862 010404 1047 TAD AC2 4863 010405 7010 RAR 4864 010406 3047 DCA AC2 4865 010407 1046 TAD AC3 4866 010410 7010 RAR 4867 010411 3046 DCA AC3 4868 010412 7010 RAR 4869 010413 3054 DCA OVER 4870 010414 5600 JMP I AR1 4871 4872 010415 0000 ACN, 0 4873 010416 1377 TAD (OP3 4874 010417 3234 DCA OADD 4875 010420 7346 L7775 4876 010421 3200 DCA AR1 4877 010422 6211 CDF SWAP /MAKE SURE 4878 010423 1634 TAD I OADD 4879 010424 7040 CMA 4880 010425 7430 SZL 4881 010426 7101 CLL IAC 4882 010427 3634 DCA I OADD 4883 010430 2234 ISZ OADD 4884 010431 2200 ISZ AR1 4885 010432 5223 JMP .-7 4886 010433 5615 JMP I ACN 4887 4888 010434 0000 OADD, 0 4889 010435 7100 CLL 4890 010436 1046 TAD AC3 4891 010437 1051 TAD OP3 4892 010440 3046 DCA AC3 4893 010441 7004 RAL 4894 010442 1047 TAD AC2 4895 010443 1052 TAD OP2 4896 010444 3047 DCA AC2 4897 010445 7004 RAL 4898 010446 1050 TAD AC1 4899 010447 1053 TAD OP1 4900 010450 3050 DCA AC1 4901 010451 5634 JMP I OADD 4902 4903 010452 7330 FPSUB, L4000 4904 010453 1042 TAD OPSIGN 4905 010454 3042 DCA OPSIGN 4906 010455 4257 FPADD, JMS OCTADD 4907 010456 5566 JMP I [FLOOP 4908 4909 010457 0000 OCTADD, 0 4910 010460 2055 ISZ FFLAG 4911 010461 5657 JMP I OCTADD 4912 010462 1045 TAD ACEXP 4913 010463 7141 CLL CIA 4914 010464 1044 TAD OPEXP 4915 010465 7430 SZL 4916 010466 5304 JMP BCKWDS 4917 010467 3234 DCA OADD 4918 010470 1053 ALGNLP, TAD OP1 4919 010471 7110 CLL RAR 4920 010472 3053 DCA OP1 4921 010473 1052 TAD OP2 4922 010474 7010 RAR 4923 010475 3052 DCA OP2 4924 010476 1051 TAD OP3 4925 010477 7010 RAR 4926 010500 3051 DCA OP3 4927 010501 2234 ISZ OADD 4928 010502 5270 JMP ALGNLP 4929 010503 5314 JMP SETSGN 4930 4931 010504 7040 BCKWDS, CMA 4932 010505 3234 DCA OADD 4933 010506 1044 TAD OPEXP 4934 010507 3045 DCA ACEXP 4935 010510 7410 SKP 4936 010511 4200 JMS AR1 4937 010512 2234 ISZ OADD 4938 010513 5311 JMP .-2 4939 010514 1043 SETSGN, TAD ACSIGN 4940 010515 1042 TAD OPSIGN 4941 010516 7710 SPA CLA 4942 010517 4215 JMS ACN 4943 010520 4234 JMS OADD 4944 010521 1050 TAD AC1 4945 010522 7700 SMA CLA 4946 010523 5657 JMP I OCTADD 4947 010524 7346 L7775 4948 010525 4215 JMS ACN 4949 010526 1042 TAD OPSIGN 4950 010527 3043 DCA ACSIGN 4951 010530 5657 JMP I OCTADD 4952 4953 010531 2055 FPMUL, ISZ FFLAG 4954 010532 5371 JMP MULCLR 4955 010533 1043 TAD ACSIGN 4956 010534 1042 TAD OPSIGN 4957 010535 3043 DCA ACSIGN 4958 010536 1045 TAD ACEXP 4959 010537 1044 TAD OPEXP 4960 010540 1376 TAD (-201 4961 010541 3045 DCA ACEXP 4962 010542 1050 TAD AC1 4963 010543 3042 DCA OPSIGN 4964 010544 1047 TAD AC2 4965 010545 3044 DCA OPEXP 4966 010546 1046 TAD AC3 4967 010547 3057 DCA TEMPX 4968 010550 1375 TAD (-33 4969 010551 3005 DCA OCNTR 4970 010552 4200 MPYLUP, JMS AR1 4971 010553 1042 TAD OPSIGN 4972 010554 7010 RAR 4973 010555 3042 DCA OPSIGN 4974 010556 1044 TAD OPEXP 4975 010557 7010 RAR 4976 010560 3044 DCA OPEXP 4977 010561 1057 TAD TEMPX 4978 010562 7010 RAR 4979 010563 3057 DCA TEMPX 4980 010564 7430 SZL 4981 010565 4234 JMS OADD 4982 010566 2005 ISZ OCNTR 4983 010567 5352 JMP MPYLUP 4984 010570 5566 JMP I [FLOOP 4985 4986 010571 3050 MULCLR, DCA AC1 4987 010572 4774 JMS I (NFIX 4988 010573 5566 JMP I [FLOOP 4989 4990 010574 0730 PAGE 010575 7745 010576 7577 010577 0051 4991 010600 0000 FNORM, 0 4992 010601 3054 DCA OVER 4993 010602 1050 TAD AC1 4994 010603 1235 TAD KM10 4995 010604 7710 SPA CLA 4996 010605 5211 JMP NOTBIG 4997 010606 4565 JMS I [AR1 4998 010607 2045 ISZ ACEXP 4999 010610 5202 JMP FNORM+2 5000 010611 1054 NOTBIG, TAD OVER 5001 010612 7700 SMA CLA 5002 010613 5223 JMP NOBUMP 5003 010614 2046 ISZ AC3 5004 010615 5223 JMP NOBUMP 5005 010616 2047 ISZ AC2 5006 010617 5223 JMP NOBUMP 5007 010620 2050 ISZ AC1 5008 010621 5201 JMP FNORM+1 5009 5010 010622 7340 L7777 5011 010623 1045 NOBUMP, TAD ACEXP 5012 010624 7510 SPA 5013 010625 5235 JMP UNDERF /UNDERFLOW OR ZERO 5014 010626 3045 DCA ACEXP 5015 010627 7346 L7775 5016 010630 1050 TAD AC1 5017 010631 7740 SMA SZA CLA 5018 010632 5600 JMP I FNORM 5019 010633 4247 JMS AL1 5020 010634 5222 JMP NOBUMP-1 5021 5022 KM10=. 5023 010635 7770 UNDERF, SPA SNA SZL CLA 5024 010636 1050 TAD AC1 5025 010637 7450 SNA 5026 010640 1047 TAD AC2 5027 010641 7450 SNA 5028 010642 1046 TAD AC3 5029 010643 7640 SZA CLA 5030 010644 4425 ERR050, OERROR /UNDERFLOW 5031 010645 4330 JMS NFIX 5032 010646 5600 JMP I FNORM 5033 5034 010647 0000 AL1, 0 5035 010650 1046 TAD AC3 5036 010651 7104 CLL RAL 5037 010652 3046 DCA AC3 5038 010653 1047 TAD AC2 5039 010654 7004 RAL 5040 010655 3047 DCA AC2 5041 010656 1050 TAD AC1 5042 010657 7004 RAL 5043 010660 3050 DCA AC1 5044 010661 5647 JMP I AL1 5045 5046 010662 2055 FPDIV, ISZ FFLAG 5047 010663 4425 ERR030, OERROR 5048 010664 1043 TAD ACSIGN 5049 010665 1042 TAD OPSIGN 5050 010666 3043 DCA ACSIGN 5051 010667 1044 TAD OPEXP 5052 010670 7041 CIA 5053 010671 1045 TAD ACEXP 5054 010672 1174 TAD [177 5055 010673 3045 DCA ACEXP 5056 010674 3005 DCA OCNTR 5057 010675 1377 TAD (-35 5058 010676 3200 DCA FNORM 5059 010677 7330 DIVLP, L4000 5060 010700 0053 AND OP1 5061 010701 1050 TAD AC1 5062 010702 7700 SMA CLA 5063 010703 4776 JMS I (ACN 5064 010704 4775 JMS I (OADD 5065 010705 1005 TAD OCNTR 5066 010706 7004 RAL 5067 010707 3005 DCA OCNTR 5068 010710 1044 TAD OPEXP 5069 010711 7004 RAL 5070 010712 3044 DCA OPEXP 5071 010713 1042 TAD OPSIGN 5072 010714 7004 RAL 5073 010715 3042 DCA OPSIGN 5074 010716 4247 JMS AL1 5075 010717 2200 ISZ FNORM 5076 010720 5277 JMP DIVLP 5077 010721 1042 TAD OPSIGN 5078 010722 3050 DCA AC1 5079 010723 1044 TAD OPEXP 5080 010724 3047 DCA AC2 5081 010725 1005 TAD OCNTR 5082 010726 3046 DCA AC3 5083 010727 5566 JMP I [FLOOP 5084 5085 010730 0000 NFIX, 0 5086 010731 1050 TAD AC1 5087 010732 7650 SNA CLA 5088 010733 5343 JMP ZFIXEX 5089 010734 1045 FIXLUP, TAD ACEXP 5090 010735 1374 TAD (-233 5091 010736 7700 SMA CLA 5092 010737 5350 JMP FIXEXT 5093 010740 4565 JMS I [AR1 5094 010741 2045 ISZ ACEXP 5095 010742 5334 JMP FIXLUP 5096 010743 3045 ZFIXEX, DCA ACEXP 5097 010744 3043 DCA ACSIGN 5098 010745 3050 DCA AC1 5099 010746 3047 DCA AC2 5100 010747 3046 DCA AC3 5101 010750 1046 FIXEXT, TAD AC3 5102 010751 5730 JMP I NFIX 5103 5104 010752 0000 MULT10, 0 5105 010753 4247 JMS AL1 5106 010754 1046 TAD AC3 5107 010755 3051 DCA OP3 5108 010756 1047 TAD AC2 5109 010757 3052 DCA OP2 5110 010760 1050 TAD AC1 5111 010761 3053 DCA OP1 5112 010762 4247 JMS AL1 5113 010763 4247 JMS AL1 5114 010764 4775 JMS I (OADD 5115 010765 5752 JMP I MULT10 5116 5117 010766 1544 FIXCON, 1544 5118 010767 1433 1433 5119 010770 6750 6750 5120 010771 0522 LIST7, 12^40+22 5121 010772 1360 LIST70 5122 010773 2021 -"O+337^100-"N+337 5123 5124 010774 7545 PAGE 010775 0434 010776 0415 010777 7743 5125 011000 0000 OFLIN, 0 5126 011001 1164 TAD [-11 5127 011002 3302 DCA DNUMBR 5128 011003 4303 JMS DECONV 5129 011004 4440 TADCHR 5130 011005 1163 TAD [-".+200 5131 011006 7640 SZA CLA 5132 011007 5217 JMP FIGO1 5133 5134 011010 4426 OGETC 5135 011011 1302 TAD DNUMBR 5136 011012 3010 DCA FXR1 5137 011013 4324 JMS DECON 5138 011014 1302 TAD DNUMBR 5139 011015 7041 CIA 5140 011016 1010 TAD FXR1 5141 5142 011017 3010 FIGO1, DCA FXR1 5143 011020 1345 TAD C233 5144 011021 3045 DCA ACEXP 5145 011022 4407 FINT 5146 011023 6010 FNOR 5147 011024 7562 FPUT I [OTEMP 5148 011025 0000 FEXT 5149 011026 1302 TAD DNUMBR 5150 011027 1161 TAD [11 5151 011030 7650 SNA CLA 5152 011031 4425 ERR150, OERROR 5153 011032 4440 TADCHR 5154 011033 1160 TAD [-"E+200 5155 011034 7640 SZA CLA 5156 011035 5255 JMP FIGO2 5157 5158 011036 4426 OGETC 5159 011037 7346 L7775 5160 011040 3302 DCA DNUMBR 5161 011041 4303 JMS DECONV 5162 011042 7326 L0002 5163 011043 1302 TAD DNUMBR 5164 011044 7710 SPA CLA 5165 011045 5231 JMP .-14 5166 011046 1043 TAD ACSIGN 5167 011047 7104 CLL RAL 5168 011050 1046 TAD AC3 5169 011051 7430 SZL 5170 011052 7041 CIA 5171 011053 1010 TAD FXR1 5172 011054 3010 DCA FXR1 5173 5174 011055 4407 FIGO2, FINT 5175 011056 0562 FGET I [OTEMP 5176 011057 0000 FEXT 5177 011060 1010 TAD FXR1 5178 011061 7450 SNA 5179 011062 5300 JMP FLINGO 5180 5181 011063 7710 SPA CLA 5182 011064 5271 JMP FIGO4 5183 011065 1010 TAD FXR1 5184 011066 7041 CIA 5185 011067 3010 DCA FXR1 5186 011070 1326 TAD M1000 5187 5188 011071 1156 FIGO4, TAD [FDIV I [TEN 5189 011072 3274 DCA .+2 5190 011073 4407 FIGO3, FINT 5191 011074 7402 HLT 5192 011075 0000 FEXT 5193 011076 2010 ISZ FXR1 5194 011077 5273 JMP FIGO3 5195 011100 6203 FLINGO, CIF CDF 5196 011101 5600 JMP I OFLIN 5197 5198 011102 0000 DNUMBR, 0 5199 011103 0000 DECONV, 0 5200 011104 3046 DCA AC3 5201 011105 3047 DCA AC2 5202 011106 3050 DCA AC1 5203 011107 3043 DCA ACSIGN 5204 011110 4440 TADCHR 5205 011111 1155 TAD [-"++200 5206 011112 7450 SNA 5207 011113 5321 JMP .+6 5208 011114 7112 CLL RTR 5209 011115 7640 SZA CLA 5210 011116 5322 JMP .+4 5211 011117 7330 L4000 5212 011120 3043 DCA ACSIGN 5213 011121 4426 OGETC 5214 011122 4324 JMS DECON 5215 011123 5703 JMP I DECONV 5216 5217 011124 0000 DECON, 0 5218 011125 4427 OTESTN 5219 011126 7000 M1000, NOP 5220 011127 5724 JMP I DECON 5221 011130 4554 JMS I [MULT10 5222 011131 3053 DCA OP1 5223 011132 3052 DCA OP2 5224 011133 4440 TADCHR 5225 011134 1153 TAD [-60 5226 011135 3051 DCA OP3 5227 011136 4552 JMS I [OADD 5228 011137 4426 OGETC 5229 011140 2302 ISZ DNUMBR 5230 011141 5325 JMP DECON+1 5231 011142 4425 ERR160, OERROR 5232 5233 011143 0000 OGETLN, 0 5234 011144 4427 OTESTN 5235 011145 0233 C233, 233 5236 011146 4425 ERR370, OERROR 5237 011147 1151 TAD [-6 5238 011150 3302 DCA DNUMBR 5239 011151 4303 JMS DECONV 5240 011152 1047 TAD AC2 5241 011153 7640 SZA CLA 5242 011154 5346 JMP OGETLN+3 5243 011155 1046 TAD AC3 5244 011156 7550 SPA SNA 5245 011157 5346 JMP OGETLN+3 5246 011160 6201 CDF 5247 011161 3550 DCA I [LINENO 5248 011162 1550 TAD I [LINENO 5249 011163 7001 IAC 5250 011164 7710 SPA CLA 5251 011165 5346 JMP OGETLN+3 5252 011166 6203 CIF CDF 5253 011167 5743 JMP I OGETLN 5254 5255 011170 0000 OPRINC, 0 5256 011171 6203 CIF CDF 5257 011172 4777 JMS I (XPRT1 5258 011173 5770 JMP I OPRINC 5259 5260 011174 4104 XGETL2, XGET5-1 /CR 5261 011175 4101 XGET4-1 /BELL 5262 011176 4075 XGET3-1 /SPACE 5263 5264 5265 011177 4765 PAGE 5266 011200 0000 OFLOUT, 0 5267 011201 1043 TAD ACSIGN 5268 011202 7710 SPA CLA 5269 011203 1377 TAD (55-40 5270 011204 1147 TAD [40 5271 011205 4424 OPRINTC 5272 011206 1050 TAD AC1 5273 011207 7640 SZA CLA 5274 011210 5214 JMP FOGO1 5275 011211 1376 TAD (60 5276 011212 4424 OPRINTC 5277 011213 5300 JMP FLOXIT 5278 5279 011214 4775 FOGO1, JMS I (FIXUP 5280 011215 1374 TAD (-7 5281 011216 3005 DCA OCNTR 5282 011217 1373 TAD (NUMBUF-1 5283 011220 3010 DCA FXR1 5284 011221 5226 JMP .+5 5285 5286 011222 1050 FOGO2, TAD AC1 5287 011223 0174 AND [177 5288 011224 3050 DCA AC1 5289 011225 4772 JMS I (MULT10 5290 011226 1050 TAD AC1 5291 011227 7106 CLL RTL 5292 011230 7006 RTL 5293 011231 7006 RTL 5294 011232 0371 AND (17 5295 011233 1376 TAD (60 5296 011234 3410 DCA I FXR1 5297 011235 2005 ISZ OCNTR 5298 011236 5222 JMP FOGO2 5299 5300 011237 1373 TAD (NUMBUF-1 5301 011240 3010 DCA FXR1 5302 011241 7326 L0002 5303 011242 1773 TAD I (DECEXP 5304 011243 7450 SNA 5305 011244 5302 JMP FOGO4 5306 011245 7510 SPA 5307 011246 5252 JMP FOGO3 5308 011247 1370 TAD (-10 5309 011250 7710 SPA CLA 5310 011251 5306 JMP FOGO5 5311 011252 7200 FOGO3, CLA 5312 011253 1410 TAD I FXR1 5313 011254 4424 OPRINTC 5314 011255 1367 TAD (".-200 5315 011256 4424 OPRINTC 5316 011257 1151 TAD [-6 5317 011260 3005 DCA OCNTR 5318 011261 1410 TAD I FXR1 5319 011262 4424 OPRINTC 5320 011263 2005 ISZ OCNTR 5321 011264 5261 JMP .-3 5322 011265 1366 TAD ("E-200 5323 011266 4424 OPRINTC 5324 011267 1773 TAD I (DECEXP 5325 011270 7710 SPA CLA 5326 011271 7326 L0002 5327 011272 1365 TAD ("+-200 5328 011273 4424 OPRINTC 5329 011274 1773 TAD I (DECEXP 5330 011275 7510 SPA 5331 011276 7041 CIA 5332 011277 2200 ISZ OFLOUT 5333 011300 6203 FLOXIT, CIF CDF 5334 011301 5600 JMP I OFLOUT 5335 5336 011302 1367 FOGO4, TAD (".-200 5337 011303 4424 OPRINTC 5338 011304 1376 TAD (60 5339 011305 4424 OPRINTC 5340 011306 1374 FOGO5, TAD (-7 5341 011307 3005 DCA OCNTR 5342 011310 1364 TAD (NUMBUF+6 5343 011311 3057 FOGO6, DCA TEMPX 5344 011312 1457 TAD I TEMPX 5345 011313 1153 TAD [-60 5346 011314 7640 SZA CLA 5347 011315 5322 JMP FOGO7 5348 011316 2005 ISZ OCNTR 5349 011317 7340 L7777 5350 011320 1057 TAD TEMPX 5351 011321 5311 JMP FOGO6 5352 5353 011322 1773 FOGO7, TAD I (DECEXP 5354 011323 1005 TAD OCNTR 5355 011324 7710 SPA CLA 5356 011325 5331 JMP .+4 5357 011326 1773 TAD I (DECEXP 5358 011327 7040 CMA 5359 011330 3005 DCA OCNTR 5360 011331 7344 L7776 5361 011332 7040 FOGO8, CMA 5362 011333 1773 TAD I (DECEXP 5363 011334 7440 SZA 5364 011335 5340 JMP .+3 5365 011336 1367 TAD (".-200 5366 011337 4424 OPRINTC 5367 011340 3773 DCA I (DECEXP 5368 011341 1410 TAD I FXR1 5369 011342 4424 OPRINTC 5370 011343 2005 ISZ OCNTR 5371 011344 5332 JMP FOGO8 5372 011345 5300 JMP FLOXIT 5373 5374 011346 2045 TEN, 2045 5375 011347 0000 0 5376 011350 0000 0 5377 5378 011351 2230 MODL2, MODF5-1 /CR 5379 011352 2206 MODF2-1 /BELL 5380 011353 2222 MODF4-1 /RUBOUT 5381 011354 2222 MODF4-1 /_ 5382 011355 2213 MODF1 /CHAR 5383 011356 2212 MODF1-1 /FORM 5384 011357 2210 MODF3-1 /LINE FEED 5385 011360 0574 LIST70, 13^40+34 5386 011361 2552 LIST71 5387 011362 1413 337-"S^100-"T+337 5388 011363 2017 337-"O^100-"P+337 5389 5390 5391 011364 1543 PAGE 011365 0053 011366 0105 011367 0056 011370 7770 011371 0017 011372 0752 011373 1534 011374 7771 011375 1400 011376 0060 011377 0015 5392 011400 0000 FIXUP, 0 5393 011401 1045 TAD ACEXP 5394 011402 1204 TAD .+2 5395 011403 3045 DCA ACEXP 5396 011404 7610 CLA SKP /THIS IS 7610 OR -170 5397 5398 011405 1334 FIXUP4, TAD DECEXP 5399 011406 3334 DCA DECEXP 5400 011407 1050 FIXUP1, TAD AC1 5401 011410 7006 RTL 5402 011411 7630 SZL CLA 5403 011412 5230 JMP FIXUP2 5404 011413 4620 JMS I PAL1 5405 011414 7340 L7777 5406 011415 1045 TAD ACEXP 5407 011416 3045 DCA ACEXP 5408 011417 5207 JMP FIXUP1 5409 011420 0647 PAL1, AL1 5410 011421 5400 K5400, 5400 5411 011422 2166 K2166, 2166 5412 011423 7773 KM5, -5 5413 011424 0377 K377, 377 5414 011425 0752 PMULT10, MULT10 5415 011426 0766 PFIXCON, FIXCON 5416 011427 0730 PNFIX, NFIX 5417 5418 011430 1045 FIXUP2, TAD ACEXP 5419 011431 7740 KM40, SMA SZA CLA 5420 011432 5245 JMP FIXUP3 5421 011433 4565 JMS I [AR1 5422 011434 4565 JMS I [AR1 5423 011435 4565 JMS I [AR1 5424 011436 4565 JMS I [AR1 5425 011437 4625 JMS I PMULT10 5426 011440 1045 TAD ACEXP 5427 011441 1332 TAD FIXC4 5428 011442 3045 DCA ACEXP 5429 011443 7340 L7777 5430 011444 5205 JMP FIXUP4 5431 5432 011445 1045 FIXUP3, TAD ACEXP 5433 011446 1223 TAD KM5 5434 011447 7510 SPA 5435 011450 5301 JMP FIXUP5 5436 011451 7300 FIXUP7, CLL CLA 5437 011452 1231 TAD KM40 5438 011453 3005 DCA OCNTR 5439 011454 1050 FIXUP8, TAD AC1 5440 011455 1221 TAD K5400 5441 011456 7500 SMA 5442 011457 3050 DCA AC1 5443 011460 7200 CLA 5444 011461 1046 TAD AC3 5445 011462 7004 RAL 5446 011463 3046 DCA AC3 5447 011464 1047 TAD AC2 5448 011465 7004 RAL 5449 011466 3047 DCA AC2 5450 011467 1050 TAD AC1 5451 011470 7004 RAL 5452 011471 3050 DCA AC1 5453 011472 2005 ISZ OCNTR 5454 011473 5254 JMP FIXUP8 5455 011474 1050 TAD AC1 5456 011475 0224 AND K377 5457 011476 3050 DCA AC1 5458 011477 7301 L0001 5459 011500 5205 JMP FIXUP4 5460 5461 011501 3005 FIXUP5, DCA OCNTR 5462 011502 7410 SKP 5463 011503 4565 JMS I [AR1 5464 011504 2005 ISZ OCNTR 5465 011505 5303 JMP .-2 5466 011506 1050 TAD AC1 5467 011507 1221 TAD K5400 5468 011510 7700 SMA CLA 5469 011511 5251 JMP FIXUP7 5470 011512 7100 CLL 5471 011513 1222 TAD K2166 5472 011514 1046 TAD AC3 5473 011515 3046 DCA AC3 5474 011516 7430 SZL 5475 011517 2047 ISZ AC2 5476 011520 7410 SKP 5477 011521 2050 ISZ AC1 5478 011522 1050 TAD AC1 5479 011523 1221 TAD K5400 5480 011524 7640 SZA CLA 5481 011525 5600 JMP I FIXUP 5482 5483 011526 1175 TAD [200 5484 011527 3050 DCA AC1 5485 011530 3046 DCA AC3 5486 011531 2334 ISZ DECEXP 5487 011532 0004 FIXC4, 4 5488 011533 5600 JMP I FIXUP 5489 5490 011534 0000 DECEXP, 0 5491 5492 011535 0000 NUMBUF, ZBLOCK 7 011536 0000 011537 0000 011540 0000 011541 0000 011542 0000 011543 0000 5493 5494 FATNC=NUMBUF 5495 OTEMP=NUMBUF+3 5496 011544 0000 FIX2, 0 5497 011545 4407 FINT 5498 011546 6150 FSLE 5499 011547 1626 FADD I PFIXCON 5500 011550 6100 FSGE 5501 011551 2626 FSUB I PFIXCON 5502 011552 0000 FEXT 5503 011553 4627 JMS I PNFIX 5504 011554 7110 CLL RAR 5505 011555 1043 TAD ACSIGN 5506 011556 7004 RAL 5507 011557 7430 SZL 5508 011560 7041 CIA 5509 011561 3200 DCA FIXUP 5510 011562 7100 CLL 5511 011563 1050 TAD AC1 5512 011564 7450 SNA 5513 011565 1047 TAD AC2 5514 011566 7640 SZA CLA 5515 011567 7120 CLL CML 5516 011570 1200 TAD FIXUP 5517 011571 5744 JMP I FIX2 5518 5519 011572 0775 LIST75, 17^40+35 5520 011573 4203 LIST76 5521 011574 3020 337-"G^100-"O+337 5522 011575 1412 337-"S^100-"U+337 5523 011576 3500 337-"B^100 5524 IFNZRO .-1577 5525 5526 011577 4407 OSQR, FINT 5527 011600 7335 FPUT FSINZ 5528 011601 6040 FSNE 5529 011602 5234 FJMP SQEXIT 5530 011603 0000 FEXT 5531 011604 1043 TAD ACSIGN 5532 011605 7710 SPA CLA 5533 011606 4425 ERR020, OERROR 5534 011607 1045 TAD ACEXP 5535 011610 1365 TAD KK7600 5536 011611 7100 CLL 5537 011612 7510 SPA 5538 011613 7020 CML 5539 011614 7010 RAR 5540 011615 1175 TAD [200 5541 011616 3045 DCA ACEXP 5542 011617 1366 TAD KKM10 5543 011620 3236 DCA SQCNT 5544 011621 4407 SQLOOP, FINT 5545 011622 7340 FPUT FSINZZ 5546 011623 0335 FGET FSINZ 5547 011624 4340 FDIV FSINZZ 5548 011625 1340 FADD FSINZZ 5549 011626 0000 FEXT 5550 011627 7340 L7777 5551 011630 1045 TAD ACEXP 5552 011631 3045 DCA ACEXP 5553 011632 2236 ISZ SQCNT 5554 011633 5221 JMP SQLOOP 5555 011634 0000 SQEXIT, FEXT 5556 011635 5430 OPOPJ 5557 5558 011636 0000 SQCNT, 0 5559 011637 4407 OTAN, FINT 5560 011640 7767 FPUT I POTEMP 5561 011641 0000 FEXT 5562 011642 4431 OPUSHJ 5563 011643 5464 COS 5564 011644 4407 FINT 5565 011645 7770 FPUT I PFATNC 5566 011646 0767 FGET I POTEMP 5567 011647 0000 FEXT 5568 011650 4431 OPUSHJ 5569 011651 5465 FSIN 5570 011652 4407 FINT 5571 011653 4770 FDIV I PFATNC 5572 011654 0000 FEXT 5573 011655 5430 OPOPJ 5574 5575 011656 4407 OCOS, FINT 5576 011657 1362 FADD FSINC7 5577 011660 6000 FSKP 5578 011661 4407 OFSIN, FINT 5579 011662 4343 FDIV FSINC1 5580 011663 7335 FPUT FSINZ 5581 011664 0000 FEXT 5582 011665 4431 OPUSHJ 5583 011666 5461 FFIX 5584 011667 7330 L4000 5585 011670 1043 TAD ACSIGN 5586 011671 3043 DCA ACSIGN 5587 011672 4407 FINT 5588 011673 1335 FADD FSINZ 5589 011674 0000 FEXT 5590 011675 2045 ISZ ACEXP 5591 011676 2045 ISZ ACEXP 5592 011677 4407 FINT 5593 011700 7335 FSINXX, FPUT FSINZ 5594 011701 0000 FEXT 5595 011702 3043 DCA ACSIGN 5596 011703 4407 FINT 5597 011704 2371 FSUB OFLTONE 5598 011705 6140 FSGT 5599 011706 5317 FJMP FSINOK 5600 011707 0335 FGET FSINZ 5601 011710 0000 FEXT 5602 011711 4431 OPUSHJ 5603 011712 5007 SGN 5604 011713 2045 ISZ ACEXP 5605 011714 4407 FINT 5606 011715 2335 FSUB FSINZ 5607 011716 5300 FJMP FSINXX 5608 011717 0335 FSINOK, FGET FSINZ 5609 011720 3335 FMUL FSINZ 5610 011721 7340 FPUT FSINZZ 5611 011722 3346 FMUL FSINC3 5612 011723 1351 FADD FSINC4 5613 011724 3340 FMUL FSINZZ 5614 011725 1354 FADD FSINC5 5615 011726 3340 FMUL FSINZZ 5616 011727 1357 FADD FSINC6 5617 011730 3340 FMUL FSINZZ 5618 011731 1362 FADD FSINC7 5619 011732 3335 FMUL FSINZ 5620 011733 0000 FEXT 5621 011734 5430 OPOPJ 5622 5623 011735 0000 FSINZ, 0;0;0 011736 0000 011737 0000 5624 011740 0000 FSINZZ, 0;0;0 011741 0000 011742 0000 5625 011743 2036 FSINC1, 2036;2207;7325 011744 2207 011745 7325 5626 011746 1644 FSINC3, 1644;7553;6722 011747 7553 011750 6722 5627 011751 5714 FSINC4, 5714;6223;1423 011752 6223 011753 1423 5628 011754 1755 FSINC5, 1755;632;1276 011755 0632 011756 1276 5629 011757 6005 FSINC6, 6005;1256;7406 011760 1256 011761 7406 5630 011762 2016 FSINC7, 2016;2207;7325 011763 2207 011764 7325 5631 5632 011765 7600 KK7600, 7600 5633 011766 7770 KKM10, -10 5634 011767 1540 POTEMP, OTEMP 5635 011770 1535 PFATNC, FATNC 5636 011771 2014 OFLTONE, 2014 5637 011772 0000 OFLZERO, 0 5638 011773 0000 0 5639 011774 0000 0 5640 011775 0175 ALT, 175 5641 011776 0176 176 5642 011777 0033 33 5643 5644 012000 4407 OFEXP, FINT 5645 012001 4257 FDIV FEXPC1 5646 012002 7777 FPUT I (FEXPU 5647 012003 0000 FEXT 5648 012004 4431 OPUSHJ 5649 012005 5460 INT 5650 012006 7330 L4000 5651 012007 1043 TAD ACSIGN 5652 012010 3043 DCA ACSIGN 5653 012011 5612 JMP I .+1 /CHECK THE MAGNITUDE OF THE EXPONENT. 5654 012012 5377 EXPCHK 5655 012013 1777 EXCKRT, FADD I (FEXPU 5656 012014 7776 FPUT I (FEXPF 5657 012015 3776 FMUL I (FEXPF 5658 012016 1262 FADD FEXPC2 5659 012017 7777 FPUT I (FEXPU 5660 012020 0254 FGET FEXPI 5661 012021 0000 FEXT 5662 012022 4775 JMS I (FIX2 5663 012023 7041 CIA 5664 012024 7001 IAC 5665 012025 3254 DCA FEXPI 5666 012026 4407 FINT 5667 012027 0265 FGET FEXPC3 5668 012030 4777 FDIV I (FEXPU 5669 012031 1270 FADD FEXPC4 5670 012032 2776 FSUB I (FEXPF 5671 012033 7777 FPUT I (FEXPU 5672 012034 0776 FGET I (FEXPF 5673 012035 3776 FMUL I (FEXPF 5674 012036 3273 FMUL FEXPC5 5675 012037 1777 FADD I (FEXPU 5676 012040 7777 FPUT I (FEXPU 5677 012041 0776 FGET I (FEXPF 5678 012042 4777 FDIV I (FEXPU 5679 012043 1276 FADD FEXPC6 5680 012044 0000 FEXT 5681 012045 1045 TAD ACEXP 5682 012046 1254 TAD FEXPI 5683 012047 3045 DCA ACEXP 5684 012050 4407 FINT 5685 012051 6010 FNOR 5686 012052 0000 FEXT 5687 012053 5430 OPOPJ 5688 5689 012054 0000 FEXPI, 0;0;0 012055 0000 012056 0000 5690 FEXPU=FSINZ 5691 FEXPF=FSINZZ 5692 012057 2005 FEXPC1, 2005;4271;300 012060 4271 012061 0300 5693 012062 2075 FEXPC2, 2075;3552;7022 012063 3552 012064 7022 5694 012065 6124 FEXPC3, 6124;6477;715 012066 6477 012067 0715 5695 012070 2044 FEXPC4, 2044;7643;62 012071 7643 012072 0062 5696 012073 1744 FEXPC5, 1744;3372;3400 012074 3372 012075 3400 5697 012076 2004 FEXPC6, 2004;0;0 012077 0000 012100 0000 5698 012101 4767 OLOG, JMS I PHIGHWD 5699 012102 7750 SPA SNA CLA 5700 012103 4425 ERR010, OERROR 5701 012104 1045 TAD ACEXP 5702 012105 3354 DCA LOGEXP 5703 012106 1357 TAD L200 5704 012107 3045 DCA ACEXP 5705 012110 4407 FINT 5706 012111 7777 FPUT I (FEXPU 5707 012112 1337 FADD FLOGC1 5708 012113 7776 FPUT I (FEXPF 5709 012114 0777 FGET I (FEXPU 5710 012115 2337 FSUB FLOGC1 5711 012116 4776 FDIV I (FEXPF 5712 012117 7776 FPUT I (FEXPF 5713 012120 3776 FMUL I (FEXPF 5714 012121 3342 FMUL FLOGC2 5715 012122 1345 FADD FLOGC3 5716 012123 3776 FMUL I (FEXPF 5717 012124 3776 FMUL I (FEXPF 5718 012125 1350 FADD FLOGC4 5719 012126 3776 FMUL I (FEXPF 5720 012127 2276 FSUB FEXPC6 5721 012130 7776 FPUT I (FEXPF 5722 012131 0353 FGET LOGFWD 5723 012132 2356 FSUB LOGOKW 5724 012133 1776 FADD I (FEXPF 5725 012134 3257 FMUL FEXPC1 5726 012135 0000 FEXT 5727 012136 5430 OPOPJ 5728 5729 012137 2005 FLOGC1, 2005;5202;3632 012140 5202 012141 3632 5730 012142 2004 FLOGC2, 2004;6253;2521 012143 6253 012144 2521 5731 012145 2007 FLOGC3, 2007;5421;3604 012146 5421 012147 3604 5732 012150 2025 FLOGC4, 2025;6125;1007 012151 6125 012152 1007 5733 012153 2174 LOGFWD, 2174 5734 012154 0000 LOGEXP, 0 5735 012155 0000 0 5736 012156 2174 LOGOKW, 2174 5737 012157 0200 L200, 200 5738 012160 0000 0 5739 5740 012161 0000 FIX1, 0 /FIELD 0 'INTEGER' 5741 012162 4770 JMS I PFIX2 5742 012163 6203 CIF CDF 5743 012164 5761 JMP I FIX1 5744 5745 012165 2230 MODL1, MODF5-1 /CR 5746 012166 2220 MODF1+5 /BELL 5747 012167 0347 PHIGHWD,HIGHWD /RUBOUT 5748 012170 1544 PFIX2, FIX2 /_ 5749 012171 2222 MODF4-1 /CHAR 5750 / THE FOLLOWING THREE INSTRUCTIONS ARE THE EXIT 5751 /FROM THE DECTAPE ROUTINE. 5752 012172 1146 TODIS, TAD [2 5753 012173 6764 DTXA 5754 012174 5020 JMP DIS 5755 5756 012175 1544 PAGE 012176 1740 012177 1735 5757 012200 0000 ATNSGN, 0 5758 5759 012201 1043 OATN, TAD ACSIGN 5760 012202 3200 DCA ATNSGN 5761 012203 3043 DCA ACSIGN 5762 012204 4407 FINT 5763 012205 7777 FPUT I (FATNT 5764 012206 7776 FPUT I (FATNAX 5765 012207 2275 FSUB FATNC1 5766 012210 6140 FSGT 5767 012211 5265 FJMP ATNBIG 5768 012212 2300 FSUB FATNC2 5769 012213 6140 FSGT 5770 012214 5220 FJMP ATNLOW 5771 012215 0775 FGET I (OFLTONE 5772 012216 4777 FDIV I (FATNT 5773 012217 7777 FPUT I (FATNT 5774 012220 0774 ATNLOW, FGET I (OFLZERO 5775 012221 7773 FPUT I (FATNC 5776 012222 0777 FGET I (FATNT 5777 012223 2303 FSUB FATNC3 5778 012224 6100 FSGE 5779 012225 5237 FJMP ATNNOT 5780 012226 0777 FGET I (FATNT 5781 012227 1306 FADD FATNC4 5782 012230 7777 FPUT I (FATNT 5783 012231 0272 FGET FATNCJ 5784 012232 4777 FDIV I (FATNT 5785 012233 1306 FADD FATNC4 5786 012234 7777 FPUT I (FATNT 5787 012235 0311 FGET FATNC5 5788 012236 7773 FPUT I (FATNC 5789 012237 0777 ATNNOT, FGET I (FATNT 5790 012240 3777 FMUL I (FATNT 5791 012241 7772 FPUT I (FATNTT 5792 012242 0314 FGET FATNC6 5793 012243 3772 FMUL I (FATNTT 5794 012244 1317 FADD FATNC7 5795 012245 3772 FMUL I (FATNTT 5796 012246 1322 FADD FATNC8 5797 012247 3772 FMUL I (FATNTT 5798 012250 1325 FADD FATNC9 5799 012251 3772 FMUL I (FATNTT 5800 012252 1775 FADD I (OFLTONE 5801 012253 3777 FMUL I (FATNT 5802 012254 1773 FADD I (FATNC 5803 012255 7777 FPUT I (FATNT 5804 012256 0776 FGET I (FATNAX 5805 012257 2775 FSUB I (OFLTONE 5806 012260 6140 FSGT 5807 012261 5265 FJMP ATNBIG 5808 012262 0771 FGET I (FSINC7 5809 012263 2777 FSUB I (FATNT 5810 012264 7777 FPUT I (FATNT 5811 012265 0777 ATNBIG, FGET I (FATNT 5812 012266 0000 FEXT 5813 012267 1200 TAD ATNSGN 5814 012270 3043 DCA ACSIGN 5815 012271 5430 OPOPJ 5816 5817 FATNAX=FSINZ 5818 FATNT=FSINZZ 5819 FATNTT=FEXPI 5820 012272 6034 FATNCJ, 6034;0;0 012273 0000 012274 0000 5821 012275 1634 FATNC1, 1634;0;0 012276 0000 012277 0000 5822 012300 2007 FATNC2, 2007;7776;0 012301 7776 012302 0000 5823 012303 1774 FATNC3, 1774;2230;2427 012304 2230 012305 2427 5824 012306 2016 FATNC4, 2016;7331;7272 012307 7331 012310 7272 5825 012311 2004 FATNC5, 2004;1405;2216 012312 1405 012313 2216 5826 012314 1756 FATNC6, 1756;462;4562 012315 0462 012316 4562 5827 012317 5764 FATNC7, 5764;4221;3403 012320 4221 012321 3403 5828 012322 1766 FATNC8, 1766;3141;6672 012323 3141 012324 6672 5829 012325 5775 FATNC9, 5775;2525;2377 012326 2525 012327 2377 5830 012330 0015 XCCR, 15 5831 012331 0007 7 5832 012332 0177 177 5833 012333 0137 137 5834 012334 0000 0 5835 012335 0014 14 5836 012336 0012 12 5837 5838 012337 1043 OINT, TAD ACSIGN 5839 012340 7700 SMA CLA 5840 012341 5360 JMP OFFIX 5841 012342 4407 FINT 5842 012343 7770 FPUT I (OTEMP 5843 012344 0000 FEXT 5844 012345 4431 OPUSHJ 5845 012346 5461 FFIX 5846 012347 4407 FINT 5847 012350 6770 FCMP I (OTEMP 5848 012351 6040 FSNE 5849 012352 5356 FJMP .+4 5850 012353 0770 FGET I (OTEMP 5851 012354 2775 FSUB I (OFLTONE 5852 012355 5357 FJMP .+2 5853 012356 0770 FGET I (OTEMP 5854 012357 0000 FEXT 5855 5856 012360 4767 OFFIX, JMS I (FIX2 5857 012361 4407 FINT 5858 012362 6010 FNOR 5859 012363 0000 FEXT 5860 012364 6203 OPOPJX, CIF CDF 5861 012365 5766 JMP I (XPOPJ 5862 5863 5864 012366 5703 PAGE 012367 1544 012370 1540 012371 1762 012372 2054 012373 1535 012374 1772 012375 1771 012376 1735 012377 1740 5865 012400 0002 IF4, 2 /< 5866 012401 0006 6 /> 5867 012402 0012 12 /= 5868 012403 0005 5 /<= 5869 012404 0011 11 />= 5870 012405 0004 4 /<> 5871 012406 4777 ORND, JMS I (AL1 /FLAC=FLAC*2 5872 012407 4776 JMS I (OADD /FLAC=FLAC+FLAC*2=FLAC*3 5873 012410 6201 CDF 5874 012411 1775 TAD I (FRNDX+2 /MULT BY 2^17 MOD 2^27 5875 012412 7106 CLL RTL 5876 012413 7006 RTL 5877 012414 7006 RTL 5878 012415 3774 DCA I (FRNDX 5879 012416 1774 TAD I (FRNDX 5880 012417 7010 RAR 5881 012420 1047 TAD AC2 5882 012421 0373 AND (7740 5883 012422 3772 DCA I (FRNDX+1 5884 012423 7004 RAL 5885 012424 1050 TAD AC1 5886 012425 1774 TAD I (FRNDX 5887 012426 3774 DCA I (FRNDX 5888 012427 1046 TAD AC3 5889 012430 3775 DCA I (FRNDX+2 5890 012431 1371 TAD (200 5891 012432 3045 DCA ACEXP 5892 012433 3043 DCA ACSIGN 5893 012434 1774 TAD I (FRNDX 5894 012435 0370 AND (7 5895 012436 3050 DCA AC1 5896 012437 1772 TAD I (FRNDX+1 5897 012440 3047 DCA AC2 5898 012441 5430 OPOPJ 5899 5900 012442 0000 OTESTX, 0 5901 012443 1242 TAD OTESTX 5902 012444 6203 CIF CDF 5903 012445 3767 DCA I (OTEST2 5904 012446 5766 JMP I (OTEST2+1 5905 5906 012447 0000 OPUSHX, 0 5907 012450 1647 TAD I OPUSHX 5908 012451 6203 CIF CDF 5909 012452 3765 DCA I (T3 5910 012453 1247 TAD OPUSHX 5911 012454 7001 IAC 5912 012455 5764 JMP I (OPUSJ1 5913 5914 012456 0000 OGETCX, 0 5915 012457 6203 CIF CDF 5916 012460 4763 JMS I (GETCX1 5917 012461 5656 JMP I OGETCX 5918 5919 012462 0000 OERRX, 0 5920 012463 7200 CLA 5921 012464 6203 CIF CDF 5922 012465 1262 TAD OERRX 5923 012466 3762 DCA I (XERROR 5924 012467 5761 JMP I (XERROR+1 5925 5926 012470 3626 XPAKL2, XPACK2-1 /CR 5927 012471 3627 XPACK3-1 /BELL 5928 012472 3636 XPACK7-1 /RUBOUT 5929 012473 3636 XPACK7-1 / 5930 012474 3625 XPACK5-1 /@ 5931 012475 3603 XXPAK-1 /SPACE (KLUDGE!!) 5932 5933 5934 5935 012476 2534 LIST15, 52^40+34 5936 012477 2502 LIST16 5937 012500 1436 -"S+337^100-"A+337 5938 012501 1132 -"V+337^100-"E+337 5939 5940 012502 2576 LIST16, 53^40+36 5941 012503 2507 LIST17 5942 012504 1221 -"U+337^100-"N+337 5943 012505 1436 -"S+337^100-"A+337 5944 012506 1132 -"V+337^100-"E+337 5945 5946 012507 2637 LIST17, 54^40+37 5947 012510 2515 LIST18 5948 012511 3436 -"C+337^100-"A+337 5949 012512 1336 -"T+337^100-"A+337 5950 012513 2320 -"L+337^100-"O+337 5951 012514 3000 -"G+337^100 5952 5953 012515 0375 LIST18, 7^40+35 5954 012516 2522 LIST19 5955 012517 3427 -"C+337^100-"H+337 5956 012520 3626 -"A+337^100-"I+337 5957 012521 2100 -"N+337^100 5958 5959 012522 0176 LIST19, 3^40+36 5960 012523 2527 LIST20 5961 012524 1536 -"R+337^100-"A+337 5962 012525 2133 -"N+337^100-"D+337 5963 012526 2022 -"O+337^100-"M+337 5964 5965 012527 0334 LIST20, 6^40+34 5966 012530 2533 LIST21 5967 012531 2017 -"O+337^100-"P+337 5968 012532 3221 -"E+337^100-"N+337 5969 5970 012533 0236 LIST21, 4^40+36 5971 012534 2540 LIST22 5972 012535 2012 -"O+337^100-"U+337 5973 012536 1317 -"T+337^100-"P+337 5974 012537 1213 -"U+337^100-"T+337 5975 5976 012540 0275 LIST22, 5^40+35 5977 012541 2545 LIST23 5978 012542 3423 -"C+337^100-"L+337 5979 012543 2014 -"O+337^100-"S+337 5980 012544 3200 -"E+337^100 5981 5982 012545 2676 LIST23, 55^40+36 5983 012546 3714 LIST24 5984 012547 1532 -"R+337^100-"E+337 5985 012550 2136 -"N+337^100-"A+337 5986 012551 2232 -"M+337^100-"E+337 5987 012552 0573 LIST71, 13^40+33 5988 012553 5170 LISTCDR 5989 012554 3221 337-"E^100-"N+337 5990 012555 3300 337-"D^100 5991 012556 2051 LIST13, 41^40+11 5992 012557 2476 LIST15 5993 012560 0000 -"_+337^100 5994 5995 5996 012561 3526 PAGE 012562 3525 012563 2165 012564 1564 012565 0115 012566 5652 012567 5651 012570 0007 012571 0200 012572 0107 012573 7740 012574 0106 012575 0110 012576 0434 012577 0647 5997 012600 0000 XDIRSCH, 0 5998 012601 7320 CLA STL /READ FIRST BLOCK 5999 012602 4434 GETCAT 6000 012603 1412 SCHLP, TAD I XR1 6001 012604 7650 SNA CLA 6002 012605 5244 JMP SKPMTF 6003 012606 7240 CLA CMA 6004 012607 1012 TAD XR1 6005 012610 3012 DCA XR1 6006 012611 7346 CLA CLL CMA RTL 6007 012612 3254 DCA XBUMPXR 6008 012613 1145 TAD [NAMEX-1 6009 012614 3014 DCA XR3 6010 012615 1414 SRCWDL, TAD I XR3 6011 012616 7041 CIA 6012 012617 1412 TAD I XR1 6013 012620 7640 SZA CLA 6014 012621 5241 JMP NXTFIL 6015 012622 2254 ISZ XBUMPXR 6016 012623 5215 JMP SRCWDL 6017 012624 4441 TADEXT 6018 012625 7041 CIA 6019 012626 1412 TAD I XR1 6020 012627 7640 SZA CLA 6021 012630 5241 JMP NXTFIL 6022 012631 4435 BUMPXR 6023 012632 1412 TAD I XR1 6024 012633 7450 SNA 6025 012634 5250 JMP SKPMTF+4 6026 012635 3061 DCA FILEN 6027 012636 2200 ISZ XDIRSCH 6028 012637 1062 TAD BLOCK 6029 012640 5600 JMP I XDIRSCH 6030 6031 012641 1254 NXTFIL, TAD XBUMPXR 6032 012642 7041 CIA 6033 012643 4435 BUMPXR 6034 012644 1412 SKPMTF, TAD I XR1 6035 012645 7041 CIA 6036 012646 1062 TAD BLOCK 6037 012647 3062 DCA BLOCK 6038 012650 2064 ISZ ENTRIES 6039 012651 5203 JMP SCHLP 6040 012652 4544 JMS I [CATNEX 6041 012653 5600 JMP I XDIRSCH 6042 6043 012654 0000 XBUMPXR, 0 6044 012655 1063 TAD WASTE 6045 012656 1012 TAD XR1 6046 012657 3012 DCA XR1 6047 012660 5654 JMP I XBUMPXR 6048 6049 012661 0000 XGETNAM, 0 6050 012662 3015 DCA NAMEX 6051 012663 3016 DCA NAMEX+1 6052 012664 3017 DCA NAMEX+2 6053 012665 3057 DCA TEMPX 6054 012666 7410 SKP 6055 6056 012667 4426 NLOOP, OGETC 6057 012670 6203 CIF CDF 6058 012671 4543 JMS I [TSTCH1 6059 012672 5316 JMP NDONE 6060 012673 1057 TAD TEMPX 6061 012674 1151 TAD [-6 6062 012675 7700 SMA CLA 6063 012676 5267 JMP NLOOP 6064 012677 1057 TAD TEMPX 6065 012700 7110 CLL RAR 6066 012701 1142 TAD [NAMEX 6067 012702 3063 DCA WASTE 6068 012703 4440 TADCHR 6069 012704 0141 AND [77 6070 012705 7430 SZL 6071 012706 5312 JMP .+4 6072 012707 7106 CLL RTL 6073 012710 7006 RTL 6074 012711 7006 RTL 6075 012712 1463 TAD I WASTE 6076 012713 3463 DCA I WASTE 6077 012714 2057 ISZ TEMPX 6078 012715 5267 JMP NLOOP 6079 6080 012716 4440 NDONE, TADCHR 6081 012717 1140 TAD [-15 6082 012720 7640 SZA CLA 6083 012721 5033 ERROX 6084 012722 1057 TAD TEMPX 6085 012723 7650 SNA CLA 6086 012724 5033 ERROX 6087 012725 6203 CIF CDF 6088 012726 5661 JMP I XGETNAM 6089 6090 012727 0000 XTADCH, 0 6091 012730 6201 CDF 6092 012731 1537 TAD I [CHAR 6093 012732 6211 CDF SWAP 6094 012733 5727 JMP I XTADCH 6095 6096 012734 7677 QLIS2, QCOMCK-1 /, 6097 012735 7652 QNEXTC-1 /' 6098 012736 7667 QUOCHK-1 /" 6099 012737 7703 QDONE-1 /CR 6100 012740 7652 QLIS1, QNEXTC-1 /\ , 6101 012741 7652 QNEXTC-1 /' 6102 012742 7652 QNEXTC-1 /" 6103 012743 7703 QDONE-1 /CR 6104 012744 7652 QNEXTC-1 /\ 6105 6106 012745 2777 LIST25, 57^40+37 6107 012746 2753 LIST26 6108 012747 3126 -"F+337^100-"I+337 6109 012750 2332 -"L+337^100-"E+337 6110 012751 2320 -"L+337^100-"O+337 6111 012752 3000 -"G+337^100 6112 6113 012753 3034 LIST26, 60^40+34 6114 012754 4703 LIST14 6115 012755 3427 -"C+337^100-"H+337 6116 012756 1573 -"R+337^100-"$+337 6117 6118 012757 0000 CAT0, 0000 6119 012760 7320 CLA STL /GET FIRST BLOCK GETCAT 6120 012761 4434 GETCAT 6121 012762 6203 CIF CDF 6122 012763 5757 JMP I CAT0 6123 6124 012764 0000 XCALL, 0000 /OVERLAY CALLING PROGRAM 6125 012765 1764 TAD I XCALL /BLOCK NUMBER TO READ 6126 012766 2364 ISZ XCALL 6127 012767 3376 DCA XCALLB 6128 012770 1764 TAD I XCALL /LINK ADDRESS 6129 012771 3364 DCA XCALL 6130 012772 7301 L0001 6131 012773 4432 DECTAPE 6132 012774 3200 XENTER+1 /USE ENTER AS OVERLAY AREA 6133 012775 7610 7610 /READ 200 WORDS INTO FIELD 1 6134 012776 0000 XCALLB, 0000 6135 012777 5764 JMP I XCALL 6136 6137 PAGE 6138 6139 6140 013000 0000 DTAPE, 0 /ENTER WITH AC=1 FOR READ 6141 013001 6002 IOF /NO INT PLEASE 6142 013002 1112 TAD DDR128 6143 013003 3315 DCA DRET /READ/WRITE RETURN AFTER SEARCH 6144 013004 1375 TAD ENTERF /SAVE CALLING FIELD 6145 013005 6214 RDF 6146 013006 3253 DCA DXIT+1 6147 6148 013007 7240 DGR, CLA CMA 6149 013010 1600 TAD I DTAPE 6150 013011 2200 ISZ DTAPE 6151 013012 3314 DCA DCORE /FIRST CORE LOCATION-1 OF TRANSFER 6152 013013 1600 TAD I DTAPE 6153 013014 0074 AND Z70 6154 013015 3316 DCA DTFLD /SAVE FIELD TO BE READ INTO 6155 013016 1600 TAD I DTAPE 6156 013017 0344 AND D7600 /GET LENGTH IN PAGES 6157 013020 2200 ISZ DTAPE 6158 013021 3312 DCA DWDS / -NUMBER OF WORDS TO BE TRANSFERRED 6159 013022 1600 TAD I DTAPE /GET BLOCK NO. 6160 013023 2200 ISZ DTAPE 6161 013024 3251 DCA DTEM /AND STORE 6162 013025 1107 TAD DTSF1 6163 013026 3002 DCA DTINTR+2 /PUT DTSF IN SKIP CHAIN 6164 6165 /INITIATE SEARCH 6166 6167 013027 1113 DTS1, TAD DDTBLK /DTBLOK TO 7755 (CA) 6168 013030 6201 CDF 6169 013031 3710 DCA I DCAA 6170 013032 1114 TAD DDINT /DINT-1 6171 013033 3067 DCA MCOM /INTERRUPT RETURN 6172 013034 4441 TADEXT /SEE IF .DX OR .EX 6173 013035 0075 AND Z100 6174 013036 7640 SZA CLA 6175 013037 5244 JMP UNIT0 /MUST BE .EX 6176 013040 1105 TAD PXCALLB /AND EXCEPT FOR CALL 6177 013041 1200 TAD DTAPE 6178 013042 7640 SZA CLA 6179 013043 1076 UNIT1, TAD Z1000 /USE UNIT1 6180 013044 1115 UNIT0, TAD D614 /SET TO SEARCH,NORMAL,REVERSE 6181 013045 6766 DTLA /LOAD STATUS A 6182 013046 1073 TAD Z10 /DTBLOCK IS IN FIELD 1 6183 013047 6774 DTLB 6184 013050 5717 JMP I DDTDIS /PUT HIM TO SLEEP FOR A WHILE 6185 6186 013051 0000 DTEM, 0 6187 6188 /CHECK THE LIST OF ERRORS CAREFULLY SO THIS DOESN'T CONFLICT 6189 /WITH ERRORS IN FIELD 0. 6190 013052 3002 DXIT, DCA DTINTR+2 /ZAP DTSF IN SKIP CHAIN 6191 013053 7402 HLT /RETURN TO PROPER FIELD 6192 013054 5600 JMP I DTAPE 6193 6194 013055 1116 DR128, TAD D20 /WRITE (NOT READ),(40-20) 6195 013056 1322 TAD K32 /READ NORMAL, CANCEL SEARCH (20+10) 6196 013057 6764 DTXA /SET FUNCTION 6197 013060 1314 TAD DCORE /1ST CORE LOC.-1 OF TRANSFER 6198 013061 6201 CDF 6199 013062 3710 DCA I DCAA /TO 7755(CA) 6200 013063 1316 TAD DTFLD /FIELD OF BUFFER 6201 013064 6774 DTLB /TO DECTAPE REGISTER B 6202 013065 2067 ISZ MCOM /POINT INTERRUPT RETURN TO DATA 6203 013066 1344 DGO, TAD D7600 /SET WORD COUNT FOR 1 PAGE 6204 013067 6201 CDF 6205 013070 3711 DCA I DWC /-128 TO 7754 (WC) 6206 013071 5672 DR127, JMP I .+1 /EXIT 6207 013072 2172 TODIS 6208 013073 5324 JMP DTS3A 6209 013074 6772 DINT, DTRB /READ STATUS B 6210 013075 7710 SPA CLA 6211 013076 5365 JMP DER1 /ERROR FLAG 6212 013077 7300 CLA CLL 6213 013100 1312 TAD DWDS /BUMP COUNT AND CHECK FOR MORE 6214 013101 1007 TAD Z200 /LOCATION 7 HAS LITTERAL 200, 128 WORD PAGE 6215 013102 3312 DCA DWDS /SAVE FOR NEXT TIME 6216 013103 7420 SNL 6217 013104 5266 JMP DGO /GET NEXT PAGE 6218 013105 1323 TAD K602 /COMPLEMENT MOTION AND DIRECTION 6219 013106 6764 DTXA 6220 013107 5720 JMP I DDTEND /WAKE HIM UP 6221 6222 013110 7755 DCAA, 7755 /POINTER TO CURRENT ADDRESS 6223 013111 7754 DWC, 7754 /POINTER TO WORD COUNT 6224 013112 0000 DWDS, 0 / -WORDS TO TRANSFER 6225 013113 0000 DTBLOK, 0 /BLOCK NUMBER DEPOSITED HERE BY CONTROL 6226 013114 0000 DCORE, 0 /STARTING ADDRESS-1 6227 013115 0000 DRET, 0 /DR128 IF WRITE, OR DR128+1 IF READ 6228 013116 0000 DTFLD, 0 6229 013117 4744 DDTDIS, DTDIS 6230 013120 4755 DDTEND, DTEND 6231 013121 0774 D774, 774 /ZERO ALL OF DECTAPE REGISTER A EXCEPT THE UNIT 6232 013122 0032 K32, 32 6233 013123 0602 K602, 602 6234 6235 013124 6201 DTS3A, CDF 6236 013125 1510 TAD I DTLOOK 6237 013126 6211 CDF SWAP 6238 013127 0073 AND Z10 /LOOK AT ERROR FLAG 6239 013130 7640 SZA CLA 6240 013131 5367 JMP DTKILL /CTRL-C OR OTHER ERROR STOPS SEARCH 6241 013132 6772 DTRB /READ STATUS B 6242 013133 7006 RTL /LOOK AT BIT 2 6243 013134 7710 SPA CLA /END ZONE? 6244 013135 5363 JMP DTURNX /YES (MOTION BIT=0), TURN 6245 013136 6772 DTRB 6246 013137 7710 SPA CLA 6247 013140 5365 JMP DER1 /ERROR FLAG BIT 0=1 6248 013141 6761 DTRA 6249 013142 7006 RTL 6250 013143 7006 RTL /FOR-REV STATUS (BIT 3) IN LINK 6251 013144 7600 D7600, 7600 /GROUP 2 CLA 6252 013145 1313 TAD DTBLOK 6253 013146 7041 CIA 6254 013147 1251 TAD DTEM /LINK COMP. IF REQUIRED BLK NO. 6255 013150 7450 SNA /IS BIGGER I.E. MUST GO FORWARD 6256 013151 5360 JMP DTFIND /FOUND BLOCK CHECK DIRECTION 6257 013152 7041 CIA 6258 013153 7420 SNL 6259 013154 7001 IAC /GO 2 MORE BLOCKS BEFORE TURNING 6260 013155 7620 SNL CLA 6261 013156 1165 DTURN, TAD [400 /TURN IF HERE 6262 013157 5271 JMP DR127 /XOR TO A STATUS AND DISMIS 6263 6264 013160 7620 DTFIND, SNL CLA /TEST DIRECTION 6265 013161 5271 JMP DR127 /DONT TURN YET, STILL IN REVERSE 6266 013162 5715 JMP I DRET /GO DO READ OR WRITE 6267 6268 013163 1374 DTURNX, TAD K576 /REVERSE OUT OF END ZONE 6269 013164 5271 JMP DR127 6270 013165 1106 DER1, TAD ZOERROR /AC IS CLEAR WHEN WE GET HERE 6271 013166 3253 DCA DXIT+1 6272 013167 3002 DTKILL, DCA DTINTR+2 /REMOVE DTSF FROM SKIP CHAIN 6273 013170 6761 DTRA /GET REGISTER A 6274 013171 0321 AND D774 /GET HIS MOTION AND INTERRUPT ENABLE BITS 6275 013172 6764 DTXA /ZERO THEM BY DOING AN XOR 6276 013173 5720 JMP I DDTEND /HE WAKES UP WITH A CTRL-C 6277 / AND ONE HELL OF A HANGOVER 6278 013174 0576 K576, 576 6279 6280 / NOTE THAT THE REMAINING LOCATIONS ON THIS PAGE 6281 /ARE NOT AVAILABLE. SEE NEXT PAGE OF CODE. 6282 6283 PAGE 6284 *.-3 /BUMP BACK TO 3 LOCATIONS BEFORE PAGE BOUNDRY 6285 013175 6203 ENTERF, CDF CIF 0 6286 013176 5777 JMP I XENTER 6287 013177 0000 XENTER, 0 /OS/8 DIRECTORY 'ENTER' 6288 013200 3060 DCA TEMPX1 /BLOCKS NEEDED 6289 013201 4436 DIRSCH /SEARCH DIRECTORY FOR DUPLICATE FILE. 6290 013202 5227 JMP NODLET /NO FILE TO DELETE 6291 013203 7344 L7776 /FOUND A FILE SO DELETE IT 6292 013204 1012 TAD XR1 6293 013205 3012 DCA XR1 /RESTORE XR1 TO SIZE-2 6294 013206 1012 TAD XR1 6295 013207 3014 DCA XR3 6296 013210 3414 DCA I XR3 /MAKE THIS AN EMPTY ENTRY 6297 013211 7346 L7775 6298 013212 1536 TAD I [DIRBUF+4 /SQUISH OUT NAME.EX+WASTE 6299 013213 4465 JMS I PSQUISH /LEAVING THE EMPTY OF COURSE 6300 013214 4437 CONSOL, SETPT /NOW CLEAN UP THAT MESSY DIRECTORY 6301 013215 1412 TAD I XR1 6302 013216 7650 SNA CLA 6303 013217 5355 JMP CONMTF /ITS AN EMPTY 6304 013220 1135 TAD [4 /ITS NOT. SO IGNORE IT 6305 013221 4435 BUMPXR 6306 013222 2064 ISZ ENTRIES /DONE? 6307 013223 5215 JMP CONSOL+1 /NOPE 6308 013224 7300 EOCLOS, CLA CLL /WRITE (L=0) OUT DIRECTORY 6309 013225 1534 TAD I [CATBLK /USE THE BLOCK WE READ IN 6310 013226 4434 GETCAT /ACTUALLY PUT CAT 6311 013227 1060 NODLET, TAD TEMPX1 6312 013230 7650 SNA CLA 6313 013231 5254 JMP ENTXIT /ALL DONE EXIT 6314 013232 3066 DCA FOUND /CLEAR FOUND FOR SEARCH 6315 013233 7120 STL 6316 013234 4434 GETCAT /READ IN FIRST BLOCK 6317 013235 1412 MLOOP, TAD I XR1 6318 013236 7650 SNA CLA 6319 013237 5261 JMP MEMPTY 6320 013240 1135 TAD [4 6321 013241 4435 BUMPXR 6322 013242 2064 MLOOPC, ISZ ENTRIES 6323 013243 5235 JMP MLOOP 6324 013244 7200 CLA /AC IS NOT 0 AFTER SZL IN MEMPTY 6325 013245 1066 TAD FOUND 6326 013246 7640 SZA CLA 6327 013247 5300 JMP MLOOPF 6328 013250 3066 FLOOPF, DCA FOUND 6329 013251 4544 JMS I [CATNEX /IF ANOTHER CAT BLOCK EXISTS RETURNS TO LAST GETCAT+1 6330 013252 5653 JMP I .+1 /NO ROOM 6331 013253 0070 PPLINK /TRY TO LINK DIRECTORIES 6332 013254 2533 ENTXIT, ISZ I [XENTER /OK EXIT CALL + 1 6333 013255 4436 DIRSCH /SEARCH DIRECTORY FOR ENTRY 6334 013256 7000 NOP /IF SOMEONE OPENS A FILE WITH 0 LENGTH IT WILL COME HERE. 6335 013257 5660 JMP I .+1 6336 013260 3175 ENTERF 6337 013261 1066 MEMPTY, TAD FOUND /SEE IF WE WERE ALREADY HERE 6338 013262 7650 SNA CLA 6339 013263 5266 JMP .+3 6340 013264 2012 ISZ XR1 6341 013265 5242 JMP MLOOPC 6342 013266 7100 CLL /MAKE SURE LINK IS 0 6343 013267 1412 TAD I XR1 /-SIZE OF EMPTY 6344 013270 1060 TAD TEMPX1 /SIZE WE WANT. LINK SHOULD HAVE BEEN 0 AT MEMPTY 6345 013271 7430 SZL 6346 013272 5242 JMP MLOOPC /NOT BIG ENOUGH 6347 013273 3006 DCA XENTMP /SAVE SIZE OF NEW EMPTY IF ANY 6348 013274 7344 L7776 6349 013275 1012 TAD XR1 6350 013276 3066 DCA FOUND /AND WHERE IN THE BLOCK WE CAME FROM 6351 013277 5242 JMP MLOOPC /CONTINUE TO END OF BLOCK 6352 013300 1012 MLOOPF, TAD XR1 6353 013301 3057 DCA TEMPX 6354 013302 1135 TAD [4 6355 013303 4435 BUMPXR 6356 013304 1012 TAD XR1 6357 013305 1132 TAD [-DIRBUF-370 6358 013306 7700 SMA CLA 6359 013307 5250 JMP FLOOPF 6360 013310 1457 MLOOP3, TAD I TEMPX /BUMP UP CATALOG TO MAKE ROOM 6361 013311 3412 DCA I XR1 6362 013312 7344 CLA CLL CMA RAL 6363 013313 1012 TAD XR1 6364 013314 3012 DCA XR1 6365 013315 7240 CLA CMA 6366 013316 1057 TAD TEMPX 6367 013317 3057 DCA TEMPX 6368 013320 1057 TAD TEMPX 6369 013321 7161 CLL CML CIA 6370 013322 1066 TAD FOUND 6371 013323 7670 SZL SNA CLA 6372 013324 5310 JMP MLOOP3 6373 013325 1066 TAD FOUND 6374 013326 3012 DCA XR1 6375 013327 1015 TAD NAMEX 6376 013330 3412 DCA I XR1 6377 013331 1016 TAD NAMEX+1 6378 013332 3412 DCA I XR1 6379 013333 1017 TAD NAMEX+2 6380 013334 3412 DCA I XR1 6381 013335 4441 TADEXT /".EX" EXTENSION 6382 013336 3412 DCA I XR1 6383 013337 3412 DCA I XR1 6384 013340 7240 CLA CMA 6385 013341 4435 BUMPXR 6386 013342 1060 TAD TEMPX1 6387 013343 7041 CIA 6388 013344 3412 DCA I XR1 /PROPER LENGTH 6389 013345 3412 DCA I XR1 /MAKE AN EMPTY 6390 013346 1006 TAD XENTMP 6391 013347 3412 DCA I XR1 /OF NEW LENGTH 6392 013350 7240 CLA CMA 6393 013351 1503 TAD I ZDIRBUF /# OF ENTRIES 6394 013352 3503 DCA I ZDIRBUF 6395 013353 3060 DCA TEMPX1 /SET UP FOR NODLET 6396 013354 5224 JMP EOCLOS 6397 013355 1412 CONMTF, TAD I XR1 6398 013356 7450 SNA 6399 013357 5374 JMP SQTRIV 6400 013360 3057 DCA TEMPX 6401 013361 1012 TAD XR1 6402 013362 3066 DCA FOUND 6403 013363 2064 ISZ ENTRIES 6404 013364 7410 SKP 6405 013365 5224 JMP EOCLOS 6406 013366 1412 TAD I XR1 6407 013367 7640 SZA CLA 6408 013370 5220 JMP CONSOL+4 /NOT A DOUBLE EMPTY 6409 013371 1412 TAD I XR1 6410 013372 1057 TAD TEMPX 6411 013373 3466 DCA I FOUND /MAKE 1 EMPTY OUT OF 2 6412 013374 7344 SQTRIV, L7776 /REMOVE AN EMPTY 6413 013375 4465 JMS I PSQUISH 6414 013376 2503 ISZ I ZDIRBUF /RESET NUMBER OF ENTRIES 6415 013377 5214 JMP CONSOL 6416 6417 6418 6419 6420 6421 6422 6423 013400 1073 LIST77, 21^40+33 6424 013401 3404 LIST78 6425 013402 3332 -"D+337^100-"E+337 6426 013403 3100 -"F+337^100 6427 6428 013404 1133 LIST78, 22^40+33 6429 013405 4047 LIST79 6430 013406 3326 -"D+337^100-"I+337 6431 013407 2200 -"M+337^100 6432 6433 013410 1222 LIST82, 24^40+22 6434 013411 4064 LIST83 6435 013412 2631 337-"I^100-"F+337 6436 6437 013413 1111 LIST12, 22^40+11 6438 013414 2556 LIST13 6439 013415 7000 -"'+337^100 6440 6441 013416 0000 XSETPT, 0 6442 013417 1503 TAD I ZDIRBUF 6443 013420 3064 DCA ENTRIES 6444 013421 1531 TAD I [DIRBUF+1 6445 013422 3062 DCA BLOCK 6446 013423 1536 TAD I [DIRBUF+4 6447 013424 7141 CIA CLL /MAKE SURE L=0 FOR MEMPTY 6448 013425 3063 DCA WASTE 6449 013426 1136 TAD [DIRBUF+4 6450 013427 3012 DCA XR1 6451 013430 5616 JMP I XSETPT 6452 6453 013431 0000 CATNEX, 0000 6454 013432 1530 TAD I [DIRBUF+2 /SEE IF IT LINKS 6455 013433 7104 CLL RAL /MULTIPLY BY TWO 6456 013434 7120 STL /SET LINK FOR READ 6457 013435 7450 SNA 6458 013436 5631 JMP I CATNEX /NO LINKAGE RETURN 6459 013437 7410 SKP /ENTER GETCAT+1 IF LINKAGE EXISTS 6460 013440 0000 XGETCAT, 0 6461 013441 7450 SNA /SEE IF ENTERED WITH SEGMENT NUMBER 6462 013442 1146 TAD [2 /ASSUME FIRST CAT BLOCK. DON'T L0002! 6463 013443 3250 DCA CATBLK /BLOCK NUMBER TO FETCH 6464 013444 7004 RAL /READ OR WRITE WAS IN LINK 6465 013445 4432 DECTAPE 6466 013446 4207 DIRBUF 6467 013447 7410 7410 /400 WORDS IN FIELD 1 6468 013450 0002 CATBLK, 2 6469 013451 4437 SETPT 6470 013452 5640 JMP I XGETCAT 6471 6472 6473 013453 0000 SQUISH, 0 6474 013454 1012 TAD XR1 6475 013455 3013 DCA XR2 6476 013456 1412 TAD I XR1 6477 013457 3413 DCA I XR2 6478 013460 1012 TAD XR1 6479 013461 1127 TAD [-DIRBUF-377 6480 013462 7640 SZA CLA 6481 013463 5256 JMP .-5 6482 013464 5653 JMP I SQUISH 6483 6484 6485 6486 013465 0000 CAT1, 0 6487 013466 1412 TAD I XR1 6488 013467 7450 SNA 6489 013470 5321 JMP DEMPTY 6490 013471 3015 DCA NAMEX 6491 013472 1412 TAD I XR1 6492 013473 3016 DCA NAMEX+1 6493 013474 1412 TAD I XR1 6494 013475 3017 DCA NAMEX+2 6495 013476 4441 TADEXT 6496 013477 7041 CIA 6497 013500 1412 TAD I XR1 6498 013501 7640 SZA CLA /DON'T FORGET TO CLEAR AC!!! 6499 013502 5320 JMP DEMPTY-1 6500 6501 013503 4435 BUMPXR 6502 013504 1412 TAD I XR1 6503 013505 7650 SNA CLA 6504 013506 5322 JMP DEMPTY+1 6505 013507 1015 TAD NAMEX 6506 013510 4335 JMS TWOPRT 6507 013511 1016 TAD NAMEX+1 6508 013512 4335 JMS TWOPRT 6509 013513 1017 TAD NAMEX+2 6510 013514 4335 JMS TWOPRT 6511 013515 1142 TAD [15 6512 013516 4424 OPRINTC 6513 013517 5322 JMP DEMPTY+1 6514 6515 013520 4435 BUMPXR 6516 013521 2012 DEMPTY, ISZ XR1 6517 013522 2064 ISZ ENTRIES 6518 013523 5326 JMP .+3 6519 013524 4544 JMS I [CATNEX 6520 013525 2265 ISZ CAT1 6521 013526 6203 CIF CDF 6522 013527 5665 JMP I CAT1 6523 6524 013530 0000 FLOOK, 0 /GET CATALOG AND LOOKUP 6525 013531 4436 DIRSCH 6526 013532 5033 ERROX 6527 013533 6203 CIF CDF 6528 013534 5730 JMP I FLOOK /THAT WAS EASY 6529 6530 013535 0000 TWOPRT, 0 6531 013536 3015 DCA NAMEX 6532 013537 1015 TAD NAMEX 6533 013540 7112 CLL RTR 6534 013541 7012 RTR 6535 013542 7012 RTR 6536 013543 4347 JMS ONEPRT 6537 013544 1015 TAD NAMEX 6538 013545 4347 JMS ONEPRT 6539 013546 5735 JMP I TWOPRT 6540 6541 013547 0000 ONEPRT, 0 6542 013550 0141 AND [77 6543 013551 7450 SNA 6544 013552 5735 JMP I TWOPRT 6545 013553 1126 TAD [-40 6546 013554 7510 SPA 6547 013555 1075 TAD Z100 6548 013556 1147 TAD [40 6549 013557 4424 OPRINTC 6550 013560 5747 JMP I ONEPRT 6551 6552 6553 013561 0000 DTCHKX, 0 /CHECK IF USER ALREADY HAS TAPE 6554 013562 6002 IOF 6555 013563 1525 TAD I [DECK 6556 013564 7001 IAC 6557 013565 3014 DCA XR3 6558 013566 1502 TAD I ZDTQ1 6559 013567 3051 DCA OP3 6560 013570 1451 TAD I OP3 6561 013571 7041 CIA 6562 013572 1014 TAD XR3 6563 013573 6202 CIF 6564 013574 7650 SNA CLA 6565 013575 5524 JMP I [XDTG1 6566 013576 1014 TAD XR3 6567 013577 5761 JMP I DTCHKX 6568 6569 6570 PAGE 6571 013600 0316 FUNL1, 316 /FN 6572 013601 1151 1151 /SI 6573 013602 0157 157 /CO 6574 013603 0064 64 /AT 6575 013604 0270 270 /EX 6576 013605 0617 617 /LO 6577 013606 0042 42 /AB 6578 013607 1161 1161 /SQ 6579 013610 1147 1147 /SG 6580 013611 0456 456 /IN 6581 013612 1116 1116 /RN 6582 013613 0311 311 /FI 6583 013614 1201 1201 /TA 6584 013615 0651 651 /MI 6585 013616 0141 141 /CA 6586 013617 0657 657 /MO 6587 013620 0605 605 /LE 6588 6589 013621 7662 FUNL2, -"N+200 /SIN 6590 013622 7655 -"S+200 /COS 6591 013623 7662 -"N+200 /ATN 6592 013624 7660 -"P+200 /EXP 6593 013625 7671 -"G+200 /LOG 6594 013626 7655 -"S+200 /ABS 6595 013627 7656 -"R+200 /SQR 6596 013630 7662 -"N+200 /SGN 6597 013631 7654 -"T+200 /INT 6598 013632 7674 -"D+200 /RND 6599 013633 7650 -"X+200 /FIX 6600 013634 7662 -"N+200 /TAN 6601 013635 7674 -"D+200 /MID 6602 013636 7654 -"T+200 /CAT 6603 013637 7674 -"D+200 /MOD 6604 013640 7662 -"N+200 /LEN 6605 6606 013641 0040 TERMS, 40 /SPACE 0 6607 013642 0053 53 /+ 1 6608 013643 0055 55 /- 2 6609 013644 0052 52 /* 3 6610 013645 0057 57 // 4 6611 013646 0136 136 /^ 5 6612 013647 0050 50 /( 6 6613 013650 0133 133 /[ 7 6614 013651 0051 51 /) 10 6615 013652 0135 135 /] 11 6616 013653 0074 74 /< 1 6617 013654 0076 76 /> 13 6618 013655 0075 75 /= 14 6619 013656 5465 FUNL3, FSIN 6620 013657 5464 COS 6621 013660 5470 ATN 6622 013661 5466 FEXP 6623 013662 5467 LOG 6624 013663 1570 ABS 6625 013664 5462 SQR 6626 013665 5007 SGN 6627 013666 5460 INT 6628 013667 5454 RND 6629 013670 5461 FFIX 6630 013671 5463 TAN 6631 013672 6200 MID 6632 013673 6317 CAT 6633 013674 1276 MOD 6634 013675 6447 LEN 6635 6636 013676 3177 PRNTL6, PRINT8-1 /; 6637 013677 3315 PRINT5-4 /, 6638 013700 5537 PRINT6-4 /' 6639 013701 3200 PRINT8 /" 6640 013702 5537 PRINT6-4 /CR 6641 013703 5537 PRINT6-4 /\ 6642 6643 013704 3315 PRNTL2, PRINT5-4 /, 6644 013705 5542 PRINT6-1 /' 6645 013706 7531 PRINT2-1 /" 6646 013707 5542 PRINT6-1 /CR 6647 013710 5542 PRINT6-1 /\ 6648 6649 013711 0763 PRNTL8, PRINT3-1 /" 6650 013712 3314 ERR350-1 /CR 6651 013713 7536 PRINT2+4 /\ MUST BE PRINTABLE 6652 6653 6654 6655 013714 2734 LIST24, 56^40+34 6656 013715 2745 LIST25 6657 013716 2426 -"K+337^100-"I+337 6658 013717 2323 -"L+337^100-"L+337 6659 LPCHNG=. 6660 /IF THERE IS NO LPT THE NEXT LOCATION IS: 6661 / UNKWN+1 6662 LPL200=. 6663 LPV200=UNKWN+1 6664 013720 0373 LPT 6665 6666 013721 7406 RANDOM 6667 013722 1544 UNKWN+1 /OUTPUT, UNDEFINED AS A COMMAND. 6668 /ONLY USABLE IN AN OPEN STATEMENT. 6669 013723 7414 CLOSE0 6670 013724 7042 OPEN 6671 013725 6562 CHAIN 6672 013726 6047 LINPUT 6673 CDCHNG=. 6674 /THE FOLLOWING LOCATION BECOMES 6675 / UNKWN+1 6676 /IF A CDR IS NOT USED. 6677 CPL500=. 6678 CPV500=UNKWN+1 6679 013727 0260 CDR /CDR 6680 013730 4270 ON 6681 013731 0465 READY /STOP & END 6682 013732 7151 RESTOR 6683 013733 1100 READ 6684 013734 5700 RETURN 6685 013735 4200 GOSUB 6686 013736 1400 FOR 6687 013737 5703 XPOPJ /DEF 6688 013740 5703 XPOPJ /DIM AND REM 6689 013741 1254 GOTO 6690 013742 1174 IF 6691 013743 1114 INPUT /INPUT, USED AS A COMMAND OR IN 6692 /AN OPEN STATEMENT. 6693 6694 013744 5504 PRINT0 6695 013745 5703 XPOPJ /DATA 6696 013746 1401 LET 6697 013747 2374 NEXT 6698 013750 1543 COMGOL, UNKWN 6699 6700 / THE ERROR LIST ENTRIES ARE MODIFIED DURING INIT- 6701 /IALIZATION. ALL VALUES IN THE LIST ARE SHIFTED 6702 /RIGHT ONE BIT WITH THE LOW ORDER BIT BEING LOST. 6703 /THIS PROCEDURE ELIMINATES NEGATIVE ENTRIES WHICH 6704 /WOULD TERMINATE THE SEARCH. ANOTHER EFFECT IS THAT 6705 /ERRORS DEFINED AT AN EVEN LOCATION AND THE FOLLOWING 6706 /LOCATION ARE TREATED AS THE SAME ERROR. ALSO IF 6707 /AN ERROR IS DEFINED AT A LOCATION IN ONE BANK, NO 6708 /OTHER ERROR CAN BE DEFINED AT THAT LOCATION IN ANY 6709 /OTHER BANK. 6710 013751 1563 ERRLST, ERR000 6711 013752 2202 ERR001 6712 013753 4227 ERR002 6713 013754 5102 ERR003 6714 013755 0366 ERR004 6715 6716 013756 2103 ERR010 6717 013757 1606 ERR020 6718 013760 0663 ERR030 6719 013761 0355 ERR040 6720 013762 0644 ERR050 6721 013763 3625 ERR060 6722 013764 0707 ERR070 6723 013765 3440 ERR080 6724 013766 4475 ERR100 6725 013767 2757 ERR110 6726 013770 2660 ERR120 6727 013771 1031 ERR150 6728 013772 1142 ERR160 6729 013773 3047 ERR170 6730 013774 3071 ERR180 6731 013775 3127 ERR200 6732 013776 5116 ERR210 6733 013777 4401 ERR220 6734 014000 4456 ERR130 6735 014001 4546 ERR230 6736 014002 4672 ERR240 6737 014003 4700 ERR250 6738 014004 5675 ERR260 6739 014005 1256 ERR270 6740 014006 7152 ERR280 6741 014007 4202 ERR290 6742 014010 4300 ERR300 6743 014011 7066 ERR650 6744 014012 5702 ERR320 6745 014013 7163 ERR330 6746 014014 3226 ERR340 6747 014015 3315 ERR350 6748 014016 7225 ERR640 6749 014017 1146 ERR370 6750 014020 2532 ERR380 6751 014021 1205 ERR390 6752 014022 1234 ERR400 6753 014023 1410 ERR410 6754 014024 1430 ERR420 6755 014025 1531 ERR430 6756 014026 1457 ERR440 6757 014027 1523 ERR450 6758 014030 2400 ERR460 6759 014031 2407 ERR470 6760 014032 1035 ERR490 6761 014033 1075 ERR500 6762 014034 1107 ERR510 6763 014035 1562 ERR520 6764 014036 0033 ERR530 6765 014037 6055 ERR540 6766 014040 6206 ERR550 6767 014041 5355 ERR560 6768 014042 1146 ERR600 6769 014043 1167 ERR610 6770 014044 7050 ERR620 6771 014045 7104 ERR630 6772 014046 3053 PDXIT, DXIT+1 /DECTAPE ERROR 6773 ERREND=. 6774 6775 014047 1133 LIST79, 22^40+33 6776 014050 4053 LIST80 6777 014051 1532 -"R+337^100-"E+337 6778 014052 2200 -"M+337^100 6779 6780 014053 0436 LIST80, 10^40+36 6781 014054 4060 LIST81 6782 014055 2326 -"L+337^100-"I+337 6783 014056 2117 -"N+337^100-"P+337 6784 014057 1213 -"U+337^100-"T+337 6785 6786 014060 1174 LIST81, 23^40+34 6787 014061 3410 LIST82 6788 014062 3020 -"G+337^100-"O+337 6789 014063 1320 -"T+337^100-"O+337 6790 6791 014064 1275 LIST83, 25^40+35 6792 014065 4071 LIST84 6793 014066 2621 -"I+337^100-"N+337 6794 014067 1712 -"P+337^100-"U+337 6795 014070 1300 -"T+337^100 6796 6797 014071 1335 LIST84, 26^40+35 6798 014072 4076 LIST85 6799 014073 1715 -"P+337^100-"R+337 6800 014074 2621 -"I+337^100-"N+337 6801 014075 1300 -"T+337^100 6802 6803 014076 1374 LIST85, 27^40+34 6804 014077 4102 LIST86 6805 014100 3336 -"D+337^100-"A+337 6806 014101 1336 -"T+337^100-"A+337 6807 6808 014102 1433 LIST86, 30^40+33 6809 014103 4106 LIST87 6810 014104 2332 -"L+337^100-"E+337 6811 014105 1300 -"T+337^100 6812 6813 014106 1474 LIST87, 31^40+34 6814 014107 4112 LIST88 6815 014110 2132 -"N+337^100-"E+337 6816 014111 0713 -"X+337^100-"T+337 6817 6818 014112 1573 LIST88, 33^40+33 6819 014113 4116 LIST89 6820 014114 1336 -"T+337^100-"A+337 6821 014115 3500 -"B+337^100 6822 6823 014116 1634 LIST89, 34^40+34 6824 014117 4122 LIST90 6825 014120 1413 -"S+337^100-"T+337 6826 014121 3217 -"E+337^100-"P+337 6827 6828 014122 1674 LIST90, 35^40+34 6829 014123 4126 LIST91 6830 014124 1327 -"T+337^100-"H+337 6831 014125 3221 -"E+337^100-"N+337 6832 6833 014126 1722 LIST91, 36^40+22 6834 014127 4131 LIST92 6835 014130 1320 -"T+337^100-"O+337 6836 6837 014131 1762 LIST92, 37^40+22 6838 014132 4134 LIST93 6839 014133 3121 -"F+337^100-"N+337 6840 6841 014134 2034 LIST93, 40^40+34 6842 014135 4140 LIST94 6843 014136 2326 -"L+337^100-"I+337 6844 014137 1413 -"S+337^100-"T+337 6845 6846 014140 2133 LIST94, 42^40+33 6847 014141 4144 LIST95 6848 014142 3506 -"B+337^100-"Y+337 6849 014143 3200 -"E+337^100 6850 6851 014144 2433 LIST95, 50^40+33 6852 014145 4150 LIST96 6853 014146 2132 -"N+337^100-"E+337 6854 014147 1000 -"W+337^100 6855 6856 014150 2137 LIST96, 42^40+37 6857 014151 4156 LIST97 6858 014152 1434 -"S+337^100-"C+337 6859 014153 1536 -"R+337^100-"A+337 6860 014154 1334 -"T+337^100-"C+337 6861 014155 2700 -"H+337^100 6862 6863 014156 2176 LIST97, 43^40+36 6864 014157 4163 LIST98 6865 014160 3332 -"D+337^100-"E+337 6866 014161 2332 -"L+337^100-"E+337 6867 014162 1332 -"T+337^100-"E+337 6868 6869 014163 2234 LIST98, 44^40+34 6870 014164 4167 LIST99 6871 014165 3233 -"E+337^100-"D+337 6872 014166 2613 -"I+337^100-"T+337 6873 6874 014167 2273 LIST99, 45^40+33 6875 014170 4173 LIST10 6876 014171 2432 -"K+337^100-"E+337 6877 014172 0600 -"Y+337^100 6878 6879 014173 2334 LIST10, 46^40+34 6880 014174 4177 LIST11 6881 014175 1336 -"T+337^100-"A+337 6882 014176 1732 -"P+337^100-"E+337 6883 6884 014177 2373 LIST11, 47^40+33 6885 014200 3413 LIST12 6886 014201 1512 -"R+337^100-"U+337 6887 014202 2100 -"N+337^100 6888 6889 014203 1033 LIST76, 20^40+33 6890 014204 3400 LIST77 6891 014205 3120 -"F+337^100-"O+337 6892 014206 1500 -"R+337^100 6893 014207 0000 DIRBUF, ZBLOCK 400 014210 0000 014211 0000 014212 0000 014213 0000 014214 0000 014215 0000 014216 0000 014217 0000 014220 0000 014221 0000 014222 0000 014223 0000 014224 0000 014225 0000 014226 0000 014227 0000 014230 0000 014231 0000 014232 0000 014233 0000 014234 0000 014235 0000 014236 0000 014237 0000 014240 0000 014241 0000 014242 0000 014243 0000 014244 0000 014245 0000 014246 0000 014247 0000 014250 0000 014251 0000 014252 0000 014253 0000 014254 0000 014255 0000 014256 0000 014257 0000 014260 0000 014261 0000 014262 0000 014263 0000 014264 0000 014265 0000 014266 0000 014267 0000 014270 0000 014271 0000 014272 0000 014273 0000 014274 0000 014275 0000 014276 0000 014277 0000 014300 0000 014301 0000 014302 0000 014303 0000 014304 0000 014305 0000 014306 0000 014307 0000 014310 0000 014311 0000 014312 0000 014313 0000 014314 0000 014315 0000 014316 0000 014317 0000 014320 0000 014321 0000 014322 0000 014323 0000 014324 0000 014325 0000 014326 0000 014327 0000 014330 0000 014331 0000 014332 0000 014333 0000 014334 0000 014335 0000 014336 0000 014337 0000 014340 0000 014341 0000 014342 0000 014343 0000 014344 0000 014345 0000 014346 0000 014347 0000 014350 0000 014351 0000 014352 0000 014353 0000 014354 0000 014355 0000 014356 0000 014357 0000 014360 0000 014361 0000 014362 0000 014363 0000 014364 0000 014365 0000 014366 0000 014367 0000 014370 0000 014371 0000 014372 0000 014373 0000 014374 0000 014375 0000 014376 0000 014377 0000 014400 0000 014401 0000 014402 0000 014403 0000 014404 0000 014405 0000 014406 0000 014407 0000 014410 0000 014411 0000 014412 0000 014413 0000 014414 0000 014415 0000 014416 0000 014417 0000 014420 0000 014421 0000 014422 0000 014423 0000 014424 0000 014425 0000 014426 0000 014427 0000 014430 0000 014431 0000 014432 0000 014433 0000 014434 0000 014435 0000 014436 0000 014437 0000 014440 0000 014441 0000 014442 0000 014443 0000 014444 0000 014445 0000 014446 0000 014447 0000 014450 0000 014451 0000 014452 0000 014453 0000 014454 0000 014455 0000 014456 0000 014457 0000 014460 0000 014461 0000 014462 0000 014463 0000 014464 0000 014465 0000 014466 0000 014467 0000 014470 0000 014471 0000 014472 0000 014473 0000 014474 0000 014475 0000 014476 0000 014477 0000 014500 0000 014501 0000 014502 0000 014503 0000 014504 0000 014505 0000 014506 0000 014507 0000 014510 0000 014511 0000 014512 0000 014513 0000 014514 0000 014515 0000 014516 0000 014517 0000 014520 0000 014521 0000 014522 0000 014523 0000 014524 0000 014525 0000 014526 0000 014527 0000 014530 0000 014531 0000 014532 0000 014533 0000 014534 0000 014535 0000 014536 0000 014537 0000 014540 0000 014541 0000 014542 0000 014543 0000 014544 0000 014545 0000 014546 0000 014547 0000 014550 0000 014551 0000 014552 0000 014553 0000 014554 0000 014555 0000 014556 0000 014557 0000 014560 0000 014561 0000 014562 0000 014563 0000 014564 0000 014565 0000 014566 0000 014567 0000 014570 0000 014571 0000 014572 0000 014573 0000 014574 0000 014575 0000 014576 0000 014577 0000 014600 0000 014601 0000 014602 0000 014603 0000 014604 0000 014605 0000 014606 0000 6894 INTR80=.-1 /2 POWER FAIL/AUTO RECOVER TEMPS 6895 INTR8F=.-2 6896 6897 6898 014607 6007 INTRRV, CAF /RECOVER - CLEAR ALL 6899 / TLS /IF NOT DC02 - SEE BEG760 6900 / 0 /IF NOT 8-E - SEE BEG550 6901 014610 6203 AAACDF, CIF CDF 6902 014611 1642 INTRV2, TAD I PAUSER 6903 014612 6117 MTON 6904 / 0 /IF NOT DC02 - SEE BEG760 6905 014613 4641 JMS I PINTRPL 6906 / MTLS /IF DCO2 - SEE BEG760 6907 014614 7200 CLA 6908 014615 1244 TAD PINTR8 6909 014616 3546 DCA I [2 6910 014617 1205 TAD INTR8F 6911 014620 0176 AND [7 6912 014621 7106 CLL RTL 6913 014622 7004 RAL 6914 014623 1210 TAD AAACDF 6915 014624 3234 DCA INTR88 6916 014625 1205 TAD INTR8F 6917 014626 0074 AND Z70 6918 014627 1267 TAD CCIF 6919 014630 3235 DCA INTR89 6920 014631 1205 TAD INTR8F 6921 014632 7004 RAL 6922 014633 7200 CLA 6923 014634 6201 INTR88, CDF 6924 014635 6202 INTR89, CIF 6925 014636 1056 TAD INTAC1 /AND AC 6926 014637 6001 ION 6927 014640 5606 JMP I INTR80 /AND EXIT 6928 014641 5336 PINTRPL, INTRPL-1 6929 014642 5335 PAUSER, AUSER 6930 014643 6212 CCIF2, CIF SWAP 6931 014644 4173 PINTR8, INTR8E 6932 014645 4607 PINTRRV, INTRRV 6933 014646 3056 INTR81, DCA INTAC1 /SAVE AC 6934 CDCHNG=. 6935 /THE FOLLOWING 2 LOCATIONS BECOME 6936 / 6634 /READ CDR CHAR TO CLEAR DATA READY FLAG. 6937 / 6674 /CLEAR THE CARD DONE FLAG. 6938 /IF A CDR IS NOT USED. 6939 CPL600=. 6940 CPV600=6634 6941 014647 7000 NOP 6942 CPL601=. 6943 CPV601=6674 6944 014650 7000 NOP 6945 014651 7200 CLA /CLEAR THE AC 6946 014652 6102 SPL /POWER FAIL INTERRUPT? 6947 014653 5266 JMP INTR82 /NO 6948 014654 7010 RAR 6949 014655 6234 RIB 6950 014656 3205 DCA INTR8F /AND FLAGS 6951 014657 1704 TAD I A0000 6952 014660 3206 DCA INTR80 /AND LOCATION 6953 014661 1243 TAD CCIF2 6954 014662 3704 DCA I A0000 /SET "CIF SWAP" 6955 014663 1245 TAD PINTRRV 6956 014664 3546 DCA I [2 /AND SET ADDRESS 6957 014665 7402 HLT 6958 6959 6960 014666 1056 INTR82, TAD INTAC1 /GET THE AC AGAIN 6961 014667 6202 CCIF, CIF 6962 014670 5671 JMP I .+1 /GO TO REAL INTERRUPT ROUTINE 6963 014671 5200 INTRPT 6964 014672 0674 LIST73, 15^40+34 6965 014673 4676 LIST74 6966 014674 1532 -"R+337^100-"E+337 6967 014675 3633 -"A+337^100-"D+337 6968 6969 014676 0736 LIST74, 16^40+36 6970 014677 1572 LIST75 6971 014700 1532 -"R+337^100-"E+337 6972 014701 1312 -"T+337^100-"U+337 6973 014702 1521 -"R+337^100-"N+337 6974 6975 014703 2473 LIST14, 51^40+33 6976 014704 0000 A0000, 0 6977 014705 2023 -"O+337^100-"L+337 6978 014706 3300 -"D+337^100 6979 /THIS LIST GIVES THE COMMANDS THAT ARE 6980 /LEGAL ONLY IN IMMEDIATE MODE. 6981 014707 2251 COMGO1, LIST 6982 014710 0470 START /CR 6983 014711 4226 BYE 6984 014712 2240 DELETE 6985 014713 2200 EDIT 6986 014714 5100 KKEY 6987 014715 5077 TAPE 6988 014716 2465 RUN 6989 014717 4213 NEW 6990 014720 3755 OLD 6991 014721 7436 SAVE 6992 014722 7474 UNSAVE 6993 014723 7514 CATLOG 6994 014724 4214 RENAME 6995 014725 7472 KILL 6996 014726 7512 DATLOG 6997 014727 1544 UNKWN+1 /CHR FUDGE!! 6998 6999 014730 0637 LIST72, 14^40+37 7000 014731 4672 LIST73 7001 014732 1532 -"R+337^100-"E+337 7002 014733 1413 -"S+337^100-"T+337 7003 014734 2015 -"O+337^100-"R+337 7004 014735 3200 -"E+337^100 7005 7006 014736 0000 XTADEX, 0 7007 014737 6201 CDF 7008 014740 1743 TAD I .+3 7009 014741 6211 CDF SWAP 7010 014742 5736 JMP I XTADEX 7011 014743 0066 EXTEN 7012 7013 7014 7015 014744 6203 DTDIS, CIF CDF 0 7016 014745 1500 TAD I ZLOOK /SET BUSY FLAG 7017 014746 3110 DCA DTLOOK 7018 014747 1510 TAD I DTLOOK /GET STATUS 7019 014750 0077 AND Z6777 /DO AN OR 7020 014751 1076 TAD Z1000 7021 014752 3510 DCA I DTLOOK 7022 014753 1104 TAD ZDXIT /FAKE RETURN ADDRESS 7023 014754 5501 JMP I ZRUN9X /AND DISMISS 7024 7025 7026 014755 6201 DTEND, CDF 7027 014756 1510 TAD I DTLOOK 7028 014757 0077 AND Z6777 /CLEAR BUSY 7029 014760 3510 DCA I DTLOOK 7030 014761 5020 JMP DIS /FINISH INTERRUPT 7031 7032 014762 3705 MSERROR, TEXT "_ERROR" 014763 2222 014764 1722 014765 0000 7033 014766 4440 MSDELETED, TEXT "$ DELETED_" 014767 0405 014770 1405 014771 2405 014772 0437 014773 0000 7034 014774 1601 MSNAME, TEXT "NAME--" 014775 1505 014776 5555 014777 0000 7035 7036 7037 /ROUTINE TO PRINT EDU25'S MESSAGES 7038 015000 0000 READY2, 0 7039 015001 1234 TAD RDYK1 /COMPUTE ADDRESS OF MESSAGE 7040 015002 3051 DCA OP3 7041 015003 1451 TAD I OP3 7042 015004 3051 DCA OP3 7043 015005 1451 READY4, TAD I OP3 /GET CHARACTER 7044 015006 7012 RTR 7045 015007 7012 RTR 7046 015010 7012 RTR 7047 015011 4220 JMS READY3 7048 015012 1451 TAD I OP3 /GET SECOND CHAR IN WORD 7049 015013 4220 JMS READY3 7050 015014 2051 ISZ OP3 7051 015015 5205 JMP READY4 7052 015016 6203 READY5, CIF CDF 7053 015017 5600 JMP I READY2 7054 7055 015020 0000 READY3, 0 7056 015021 0141 AND [77 7057 015022 7450 SNA 7058 015023 5216 JMP READY5 7059 015024 1235 TAD RDYK2 7060 015025 7450 SNA 7061 015026 1236 TAD RDYK3 7062 015027 7510 SPA 7063 015030 1075 TAD Z100 7064 015031 1237 TAD RDYK4 7065 015032 4424 OPRINTC 7066 015033 5620 JMP I READY3 7067 7068 015034 5045 RDYK1, RDYLST+5 7069 015035 7741 RDYK2, -37 7070 015036 7456 RDYK3, 15-337 7071 015037 0237 RDYK4, 237 7072 7073 015040 5047 RDYLST, MSWHAT /-5 7074 015041 5053 MSSTOP /-4 7075 015042 5057 MSREADY /-3 7076 015043 5063 MSIN /-2 7077 015044 4762 MSERROR /-1 7078 015045 4766 MSDELETED /0 7079 015046 4774 MSNAME /1 7080 7081 015047 2710 MSWHAT, TEXT "WHAT?_" 015050 0124 015051 7737 015052 0000 7082 015053 3723 MSSTOP, TEXT "_STOP_" 015054 2417 015055 2037 015056 0000 7083 015057 3722 MSREADY, TEXT "_READY_" 015060 0501 015061 0431 015062 3700 7084 015063 1116 MSIN, TEXT "IN " 015064 4000 7085 7086 /ON ANY ERROR, WE COME HERE. IF THE USER THAT CAUSED THE ERROR WAS NOT 7087 /WAITING FOR THE DECTAPE, WE CLEAR HIS INPUT WAIT BIT, SET HIS ERROR BIT, 7088 /AND LEAVE. IF HIS DECTAPE WAIT BIT IS ON, HE EITHER ALREADY HAS THE DECTAPE, 7089 /OR HE IS WAITING IN THE QUEUE. SINCE HE IS WAITING, THE ERROR COULD ONLY 7090 /HAVE BEEN CAUSED BY AN INTERRUPT - ^C, KEYBOARD BUFFER FULL, OR THE LIKE. 7091 /IF HE IS AT THE TOP OF THE QUEUE, WE ASSUME HE HAS THE DECTAPE, AND DON'T 7092 /BOTHER WITH HIM HERE EXCEPT FOR HIS INPUT WAIT AND ERROR BITS. 7093 /IF HOWEVER, HE WAS PUT TO SLEEP BY DTGRAB, AND IS STILL WAITING TO 7094 /GET AT THE DECTAPE ROUTINE, IT WOULD BE A SHAME TO MAKE HIM WAIT FOR 7095 /ALL THE OTHER USERS AHEAD OF HIM IN THE QUEUE (WHICH COULD BE AS MANY AS 7096 /SEVEN SEEKS FROM ONE END OF THE TAPE TO THE OTHER) JUST TO FIND OUT THAT 7097 /HE WAS TRYING TO CANCEL THE OPERATION ANYWAY. IN THAT CASE, WE TURN OFF 7098 /HIS DECTAPE WAIT BIT AND SQUISH HIM (OH - SO PAINFULLY) OUT OF THE 7099 /DECTAPE QUEUE. UNFORTUNATELY DTFREE WILL ONLY REMOVE HIM IF HE IS 7100 /ALREADY AT THE TOP OF THE QUEUE. 7101 7102 015065 0000 IERDTA, 0 /AND YOU THOUGHT COBOL WAS WORDY!! 7103 015066 1741 TAD I ITEMP2 7104 015067 3342 DCA IERR1 /POINTER TO STATUS 7105 015070 1742 TAD I IERR1 7106 015071 0076 AND Z1000 /DECTAPE WAIT? 7107 015072 7650 SNA CLA 7108 015073 5333 JMP IEREND /NO - RETURN 7109 015074 1525 TAD I [DECK 7110 015075 7040 CMA 7111 015076 3343 DCA IERR2 /-(USER#+1) 7112 015077 1502 TAD I ZDTQ1 7113 015100 3344 DCA IERR3 /POINTER INTO QUEUE 7114 015101 1744 TAD I IERR3 /IS HIS ENTRY AT THE TOP? 7115 015102 1343 TAD IERR2 7116 015103 7650 SNA CLA 7117 015104 5333 JMP IEREND /YES - RETURN 7118 7119 /HERE'S WHERE WE SQUISH THE QUEUE 7120 015105 3345 IERLP, DCA IERR4 7121 015106 1744 TAD I IERR3 /SWITCH QUEUE ENTRY WITH IERR4 BY WAY OF IERR5 7122 015107 3346 DCA IERR5 7123 015110 1345 TAD IERR4 7124 015111 3744 DCA I IERR3 7125 015112 1346 TAD IERR5 /IS THIS QUEUE ENTRY OUR USER? 7126 015113 1343 TAD IERR2 7127 015114 7650 SNA CLA 7128 015115 5324 JMP IERFIN /YES - GO FINISH UP ALREADY 7129 015116 1344 TAD IERR3 /NO - POINT TO NEXT QUEUE ENTRY 7130 015117 7001 IAC 7131 015120 0347 AND I7607 7132 015121 3344 DCA IERR3 7133 015122 1346 TAD IERR5 /GO SWITCH WITH NEXT ENTRY 7134 015123 5305 JMP IERLP 7135 7136 015124 1502 IERFIN, TAD I ZDTQ1 /INCREMENT QUEUE POINTER 7137 015125 7001 IAC 7138 015126 0347 AND I7607 7139 015127 3502 DCA I ZDTQ1 7140 015130 1742 TAD I IERR1 /TURN OFF DECTAPE WAIT 7141 015131 0077 AND Z6777 7142 015132 3742 DCA I IERR1 7143 7144 015133 1742 IEREND, TAD I IERR1 /TURN OFF KEYBOARD WAIT 7145 015134 0350 AND I3767 7146 015135 1073 TAD Z10 /AND TURN ON ERROR BIT. 7147 015136 3742 DCA I IERR1 7148 015137 6202 CIF 7149 015140 5665 JMP I IERDTA /RETURN 7150 7151 015141 0006 ITEMP2, TEMP2 7152 015142 0000 IERR1, 0 /POINTS TO HIS STATUS 7153 015143 0000 IERR2, 0 /COMPLEMENTED USER # 7154 015144 0000 IERR3, 0 /POINTER INTO QUEUE 7155 015145 0000 IERR4, 0 /TEMP LOC FOR SQUISH 7156 015146 0000 IERR5, 0 /DITTO 7157 015147 7607 I7607, 7607 7158 015150 3767 I3767, 3767 7159 /FOLLOWING IS FOR STRING COMPARES. 7160 015151 3367 PLOC, DCA SAVPTM 7161 015152 1766 TAD I AT1 7162 015153 7120 STL 7163 015154 7450 SNA 7164 015155 7020 CML 7165 015156 1367 TAD SAVPTM 7166 015157 6202 CIF 7167 015160 7450 SNA 7168 015161 5765 JMP I .+4 7169 015162 7250 CLA CMA RAR 7170 015163 5764 JMP I .+1 7171 015164 1250 IF6 7172 015165 1355 PRET 7173 015166 0112 AT1, T1 7174 015167 0000 SAVPTM, 0 7175 015170 0473 LISTCDR, 11^40+33 7176 015171 5174 LISTLP 7177 015172 3433 -"C+337^100-"D+337 /CDR KEYWORD LITERAL 7178 015173 1500 -"R+337^100 7179 7180 015174 0133 LISTLP, 2^40+33 7181 015175 4730 LIST72 7182 015176 2317 -"L+337^100-"P+337 7183 015177 1300 -"T+337^100 7184 7185 /PATCHES FOR USING READY1. 7186 015200 3204 OPUS1, DCA OPUS2 7187 015201 1644 TAD I AT3 7188 015202 6211 CDF 10 7189 015203 5604 JMP I OPUS2 7190 015204 0000 OPUS2, 0 7191 / 7192 015205 0000 OPUSHA, 0 7193 015206 3204 DCA OPUS2 7194 015207 1245 TAD APUSHA 7195 015210 6203 OPUSA1, CIF CDF 7196 015211 3646 DCA I APUSP1 7197 015212 1204 TAD OPUS2 7198 015213 4647 JMS I APUSPO 7199 015214 5605 JMP I OPUSHA 7200 / 7201 015215 0000 OPOPA, 0 7202 015216 3204 DCA OPUS2 7203 015217 1215 TAD OPOPA 7204 015220 3205 DCA OPUSHA 7205 015221 1250 TAD APOPA 7206 015222 5210 JMP OPUSA1 7207 / 7208 015223 6201 RDYPC1, CDF 7209 015224 3232 DCA PAT2 7210 015225 1651 TAD I APATCH 7211 015226 4205 JMS OPUSHA 7212 015227 1232 TAD PAT2 7213 015230 6203 CIF CDF 7214 015231 5652 JMP I AREADY 7215 015232 0000 PAT2, 0 7216 / 7217 015233 1653 PATINR, TAD I AINREAD 7218 015234 4205 JMS OPUSHA 7219 015235 4431 OPUSHJ 7220 015236 3307 PRIN10 7221 015237 4215 JMS OPOPA 7222 015240 6203 CIF CDF 7223 015241 3653 DCA I AINREAD 7224 015242 3654 DCA I AMODE 7225 015243 5655 JMP I AINREG 7226 / 7227 015244 0115 AT3, T3 7228 015245 4547 APUSHA, PUSHA 7229 015246 2172 APUSP1, PUSPOP+1 7230 015247 2171 APUSPO, PUSPOP 7231 015250 4552 APOPA, POPA 7232 015251 5374 APATCH, RDYPCH 7233 015252 1760 AREADY, READY1+1 7234 015253 1000 AINREAD, INREAD 7235 015254 0031 AMODE, MODE 7236 015255 1006 AINREG, INREAD+6 7237 7238 7239 /PRINT A NUMBER ROUTINE. THIS ROUTINE PRINTS A 7240 /DECIMAL VALUE INTHE RANGE 0-2047. NPRNT5 7241 /IN FIELD 0 IS 0 TO INDICATE THAT LEADING SPACES 7242 /ARE TO BE OUTPUT AND A TRAILING SPACE AS WELL. 7243 /NPRNT5 NON-0 MEANS PRINT JUST THE VALUE WITH 7244 /NO LEADING SPACES OR 0'S AND WITHOUT THE 7245 /TRAILING SPACE. 7246 015256 3342 NITPRNT, DCA NT1 /SAVE THE VALUE. 7247 015257 3345 DCA NFLTXR 7248 015260 7346 L7775 /SET UP NO. OF DIGITS COUNTER. 7249 015261 3346 DCA NCNTR 7250 015262 1336 TAD NPRNTLL /SET UP POINTER TO POWERS OF TEN TABLE. 7251 015263 3343 DCA NT2 7252 015264 3344 NPRNT1, DCA NT3 7253 015265 5270 JMP .+3 7254 015266 2344 ISZ NT3 /ADD ONE TO DIGIT. 7255 015267 3342 DCA NT1 7256 015270 1342 TAD NT1 7257 015271 1743 TAD I NT2 /SUBTRACT A POWER OF TEN. 7258 015272 7500 SMA 7259 015273 5266 JMP .-5 7260 015274 7200 CLA 7261 015275 2343 ISZ NT2 /SET UP POINTER TO NEXT POWER OF TEN. 7262 015276 1344 TAD NT3 7263 015277 7440 SZA /IS THIS DIGIT 0? 7264 015300 5304 JMP NPRNT2 /NO. 7265 015301 1345 TAD NFLTXR /YES,HAS A DIGIT ALREADY BEEN OUTPUT? 7266 015302 7650 SNA CLA 7267 015303 5325 JMP NPRNT3 /NO, GO CHECK FOR LEADING SPACES. 7268 015304 2345 NPRNT2, ISZ NFLTXR /YES,SET THE DIGIT ALREADY OUTPUT FLAG. 7269 015305 1341 TAD NC60 /OUTPUT THIS DIGIT (0 OR OTHERWISE). 7270 015306 4332 NPRNT4, NPRINTC 7271 015307 2346 NPRNT7, ISZ NCNTR /DONE? 7272 015310 5264 JMP NPRNT1 /NO. 7273 015311 1342 TAD NT1 /YES, PRINT THE LOW ORDER DIGIT. 7274 015312 1341 TAD NC60 7275 015313 4332 NPRINTC 7276 015314 1737 TAD I ANPRNT5 /DO WE WANT A TRAILING SPACE? 7277 015315 7640 SZA CLA 7278 015316 5321 JMP NPRNT6 /NO. 7279 015317 1340 TAD NC40 /YES. 7280 015320 4332 NPRINTC 7281 015321 3737 NPRNT6, DCA I ANPRNT5 /CLEAR THE SPACE SWITCH (USE SPACES IS DEFAULT). 7282 015322 6202 CIF F0 /RETURN. 7283 015323 5724 JMP I .+1 7284 015324 0240 NITPRET 7285 7286 015325 1737 NPRNT3, TAD I ANPRNT5 /DO WE WANT A LEADING SPACE? 7287 015326 7640 SZA CLA 7288 015327 5307 JMP NPRNT7 /NO. 7289 015330 1340 TAD NC40 /YES. 7290 015331 5306 JMP NPRNT4 7291 7292 015332 0000 XNPRINTC, 0 7293 NPRINTC=JMS XNPRINTC 7294 7295 015333 4424 OPRINTC /OUTPUT A CHARACTER. 7296 015334 6201 CDF F0 7297 015335 5732 JMP I XNPRINTC 7298 7299 7300 015336 5545 NPRNTLL, PRNTLL /ADDRESS OF DECIMAL LIST IN F0 7301 015337 0237 ANPRNT5, NPRNT5 /ALSO IN F0 7302 015340 0040 NC40, 40 7303 015341 0060 NC60, 60 7304 015342 0000 NT1, 0 7305 015343 0000 NT2, 0 7306 015344 0000 NT3, 0 7307 015345 0000 NFLTXR, 0 7308 015346 0000 NCNTR, 0 7309 / 7310 / THIS ROUTINE CONVERTS LOWER CASE ALPHA TO UPPER CASE 7311 /ALPHA. NON-ALPHAS IN THE RANGE 140-177 (OCTAL) 7312 /ARE ILLEGAL. 7313 / 7314 015347 0000 LWRMAP, 0 7315 015350 1771 TAD I XSIN 7316 015351 1373 TAD KKM140 /IS THE CHAR < 140? 7317 015352 7510 SPA 7318 015353 5363 JMP LWRRET /YES, RETURN. 7319 015354 7450 SNA /NO, IS IT = 140? 7320 015355 5366 JMP LWRERR /YES, AN ILLEGAL CHAR. 7321 015356 1374 TAD KM32 /NO, IS IT > 172? 7322 015357 7540 SMA SZA 7323 015360 5366 JMP LWRERR /YES, AGAIN A BAD CHAR. 7324 015361 1375 TAD K132 /CONVERT TO UPPER CASE. 7325 015362 3771 DCA I XSIN 7326 015363 7200 LWRRET, CLA /RETURN. 7327 015364 6202 CIF 7328 015365 5747 JMP I LWRMAP 7329 015366 7200 LWRERR, CLA /HANDLE BAD CHAR. 7330 015367 6202 CIF 7331 015370 5772 JMP I XKEY3 7332 015371 0004 XSIN, SIN 7333 015372 0676 XKEY3, KEY3 7334 015373 7640 KKM140, -140 7335 015374 7746 KM32, -32 7336 015375 0132 K132, 132 7337 7338 015376 0000 0 /SPARE LOCATION. 7339 7340 /THIS ROUTINE CHECKS THE MAGNITUDE OF THE EXPONENT 7341 /DURING EXPONENTIATION. 7342 015377 4407 EXPCHK, FINT 7343 015400 7626 FPUT I XEXPI /SAVE THE EXPONENT. 7344 015401 1220 FADD FK127 /IS THE EXPONENT .GE. 127? 7345 015402 6140 FSGT 7346 015403 5212 FJMP FERR4 /YES. 7347 015404 2223 FSUB FK256 /NO. IS IT .LT. -129? 7348 015405 6150 FSLE 7349 015406 5215 FJMP FERR5 /YES. 7350 015407 0626 FGET I XEXPI /NO. IT IS IN LEGAL BOUNDS. 7351 015410 5611 FJMP I .+1 /CONTINUE. 7352 015411 2013 EXCKRT 7353 015412 0000 FERR4, FEXT /ISSUE ERROR 4 ON OVERFLOW. 7354 015413 5614 JMP I .+1 7355 015414 0355 ERR040 7356 015415 0000 FERR5, FEXT /ISSUE ERROR 5 ON UNDERFLOW. 7357 015416 5617 JMP I .+1 7358 015417 0644 ERR050 7359 015420 2077 FK127, 2077 /FLOATING 127 7360 015421 7400 7400 7361 015422 0000 0 7362 015423 2114 FK256, 2114 /FLOATING 256 7363 015424 0000 0 7364 015425 0000 0 7365 015426 2054 XEXPI, FEXPI 7366 *.+45 7367 NCDORG=. /THIS DEFINITION IS USED TO DEFINE THE 7368 /BOTTOM OF THE SWAP AREAS WHEN NEITHER 7369 /A CDR NOR AN LPT IS USED. 7370 7371 7372 ERRCDR=ERRCHK /WHAT? OR UNRECOGNIZED COMMAND ERROR 7373 ERRCHAR="? /USE QUESTION MARK FOR BAD COLUMNS 7374 CRDCOLS=47 /MINIMUM NUMBER OF COLUMNS PER CARD, DECIMAL 39 7375 7376 7377 7378 F0=0 /MNEMONIC FOR CIFS AND CDFS 7379 PF=10 /PATCH FIELD, FIELD ONE 7380 7381 7382 /ONLY THESE CR8/CM8 IOTS ARE USED 7383 7384 RCSF=6631 7385 RCRB=6634 7386 RCNO=6635 /CM8E ONLY 7387 RCSD=6671 7388 RCSE=6672 7389 RCRD=6674 7390 RCSI=6675 /CM8E ONLY 7391 RCTF=6677 /CM8E ONLY 7392 7393 7394 L0003=CLA STL IAC RAL /USED WITH RCNO 7395 7396 7397 /LINE PRINTER IOTS 7398 7399 PCLF=6662 /LINE PRINTER CLEAR FLAG 7400 PSIE=6665 /LINE PRINTER INTERRUPT ENABLE (INIT CLEARS INT EN) 7401 PCIE=6667 /LINE PRINTER INTERRUPT DISABLE. 7402 PSKF=6661 /LPT SKIP ON DONE . 7403 PSTB=6664 /LPT LOAD & PRINT. 7404 PSKE=6663 /SKIP ON LPT HARDWARE ERROR. 7405 7406 /THIS ROUTINE ASSIGNS AND RELEASES THE LPT. 7407 / 7408 015474 1341 LPTCOM, TAD LPUSER /IS THE LPT ALREADY ASSIGNED? 7409 015475 7700 SMA CLA 7410 015476 5321 JMP LPRELS /YES, GO CHECK FOR RELEASE. 7411 015477 1525 TAD I [DECK /NO, CAN THIS USER LEGALLY 7412 015500 1342 TAD LGLLPT /ASSIGN THE LPT? 7413 015501 3343 DCA LGLPT1 7414 015502 6211 CDF 10 7415 015503 1743 TAD I LGLPT1 7416 015504 6201 CDF 7417 015505 7640 SZA CLA 7418 015506 5336 JMP LPTERR /NO. 7419 015507 6212 CIF 10 /DISABLE INTERRUPTS TEMPORARILY. 7420 015510 6663 PSKE /IS THERE AN LPT HARDWARE ERROR? 7421 015511 7410 SKP /NO. 7422 015512 5430 OPOPJ /YES, LEAVE OUTPUT ON THE TERMINAL. 7423 015513 1525 TAD I [DECK /SET THE USER NO. IN THE ASSIGNING 7424 015514 3341 DCA LPUSER /LOCATION. 7425 015515 7325 L0003 /ENABLE INTERRUPTS FROM THE LPT. 7426 015516 6665 PSIE 7427 015517 7200 CLA 7428 015520 5430 OPOPJ /RETURN. 7429 015521 1525 LPRELS, TAD I [DECK /DOES THIS USER HAVE THE LPT? 7430 015522 7041 CIA 7431 015523 1341 TAD LPUSER 7432 015524 7640 SZA CLA 7433 015525 5336 JMP LPTERR /NO. 7434 /YES, THEN RELEASE THE LPT. 7435 015526 6212 CIF 10 /DISABLE INTERRUPTS WHILE CHECKING 7436 /FOR OUTPUT DEVICE BUSY. 7437 015527 1744 TAD I LPTLSW /IS THE DEVICE BUSY? 7438 015530 7450 SNA 7439 015531 5334 JMP RELNOW /NO. 7440 015532 3345 DCA DLYSWT /YES,SET FOR RELEASE WHEN FLAG COMES UP. 7441 015533 5430 OPOPJ /RETURN. 7442 015534 4346 RELNOW, JMS LPREL1 /RELEASE THE LPT. 7443 015535 5430 OPOPJ /RETURN. 7444 015536 6202 LPTERR, CIF 0 /ON ERRORS, ISSUE "WHAT?" OR 7445 015537 5740 JMP I .+1 /ERROR 48. 7446 015540 1557 ERRCDR 7447 015541 7777 LPUSER, -1 /-1 IF NOT ASSIGNED. USER NO. WHEN 7448 /ASSIGNED. 7449 015542 5574 LGLLPT, LPLGTB 7450 015543 0000 LGLPT1, 0 7451 015544 0051 LPTLSW, TELSW 7452 015545 0000 DLYSWT, 0 7453 7454 /RELEASE THE LPT ROUTINE. 7455 015546 0000 LPREL1, 0 7456 015547 6667 PCIE /DISABLE INTERRUPTS FROM AN LP08. 7457 015550 7240 STA /SET LPT TO UNASSIGNED STATE. 7458 015551 3341 DCA LPUSER 7459 015552 3345 DCA DLYSWT /CLEAR THE DELAYED RELEASE SWITCH. 7460 015553 5746 JMP I LPREL1 7461 7462 /THIS ROUTINE TESTS IF THE OUTPUTTING USER HAS THE 7463 /LPT. IF SO, IT SETS THE LPT IOT IN THE IOT LOCATION. 7464 /IF NOT, IT SETS THE TTY IOT IN THE IOT LOCATION. 7465 015554 1341 LPTCHK, TAD LPUSER /DOES THIS USER HAVE THE LPT? 7466 015555 7041 CIA 7467 015556 1525 TAD I [DECK 7468 015557 7640 SZA CLA 7469 015560 5365 JMP NOTLPT /NO. 7470 015561 1370 TAD LPTIOT /YES SET UP THE LPT IOT. 7471 015562 3771 LPTCK1, DCA I XXOTL6 7472 015563 6202 CIF 0 7473 015564 5772 JMP I XLPRET 7474 015565 1073 NOTLPT, TAD Z10 /STORE THE TTY IOT. 7475 015566 1773 TAD I XXIOT 7476 015567 5362 JMP LPTCK1 7477 015570 6664 LPTIOT, PSTB 7478 015571 3427 XXOTL6, XOUTL6 7479 015572 3414 XLPRET, LPCKRT 7480 015573 0035 XXIOT, XIOT 7481 7482 /TABLE OF LPT LEGAL USERS. 7483 015574 0000 LPLGTB, 0 /0 MEANS LEGAL USER. 7484 015575 0000 0 /NON-0 MEANS ILLEGAL. 7485 015576 0000 0 /DEFAULT IS LEGAL. 7486 015577 0000 0 7487 015600 0000 0 7488 015601 0000 0 7489 015602 0000 0 7490 015603 0000 0 7491 7492 /THIS ROUTINE TESTS THE LPT FLAG. IF IT IS 7493 /UP, IT OUTPUTS ANOTHER CHARACTER. IF NOT, IT 7494 /RETURNS TO THE TTY FLAG SERVICE ROUTINE. 7495 015604 3651 LPTFLG, DCA I XFRESV /SAVE XFREE ADDRESS. 7496 015605 6663 PSKE /IS THERE AN LPT HARDWARE ERROR? 7497 015606 7410 SKP /NO. 7498 015607 5236 JMP LPTBAD /YES. 7499 015610 6661 LPTFL1, PSKF /IS THE LPT FLAG UP? 7500 015611 5226 JMP NOLPTF /NO. 7501 015612 6662 PCLF /YES, CLEAR IT. 7502 015613 6211 CDF 10 7503 015614 1647 TAD I XLPUSR 7504 015615 7510 SPA /IS THE INTERRUPT SPURIOUS? 7505 015616 5233 JMP LPTSPR /YES. 7506 015617 3254 DCA LPSAVE /NO, SAVE THE LPT USER NO. 7507 015620 1656 TAD I XDLSWT /IS THE LPT DELAYED RELEASE 7508 015621 7640 SZA CLA /SWITCH SET? 7509 015622 4650 LPTFL2, JMS I XLPRL1 /YES, RELEASE THE LPT. 7510 015623 1254 TAD LPSAVE /OUTPUT ANOTHER CHAR. 7511 015624 6203 CIF CDF 7512 015625 4655 JMS I XTTY 7513 015626 3652 NOLPTF, DCA I XUSER /START TTY SERVICE AT USER 0. 7514 015627 3653 DCA I XTEMP1 /START WITH CODE 0 IF DC02. 7515 015630 6202 CIF 0 7516 015631 5632 JMP I .+1 7517 015632 5221 LPFLRT 7518 /COME HERE IF SPURIOUS INTERRUPT. 7519 015633 6201 LPTSPR, CDF 0 /CONTINUE WITH THE TTYS. 7520 015634 7200 CLA 7521 015635 5226 JMP NOLPTF 7522 /COME HERE ON LPT HARDWARE ERROR. 7523 015636 6211 LPTBAD, CDF 10 7524 015637 1647 TAD I XLPUSR /IS THE LPT ASSIGNED? 7525 015640 6201 CDF 0 7526 015641 7710 SPA CLA 7527 015642 5210 JMP LPTFL1 /NO, IGNORE THE ERROR CONDITION. 7528 015643 6211 CDF 10 7529 015644 1647 TAD I XLPUSR /YES, SAVE THE LPT USER NO. 7530 015645 3254 DCA LPSAVE 7531 015646 5222 JMP LPTFL2 /GO RELEASE THE LPT AND SEND REMAINING 7532 /OUTPUT TO THE USER'S TERMINAL. 7533 015647 5541 XLPUSR, LPUSER 7534 015650 5546 XLPRL1, LPREL1 7535 015651 5333 XFRESV, FREESV 7536 015652 0003 XUSER, USER 7537 015653 0005 XTEMP1, TEMP1 7538 015654 0000 LPSAVE, 0 7539 015655 5550 XTTY, OTTY 7540 015656 5545 XDLSWT, DLYSWT 7541 LPTORG=. /THIS DEFINES THE BOTTOM OF THE SWAP AREAS 7542 /WHEN THE LPT IS USED BUT THE CDR IS NOT. 7543 7544 /THIS ROUTINE CHECKS TO SEE IF THE USER THAT WAS 7545 /JUST PUT ON DECK HAD THE CARD READER AND 7546 /GENERATED AN ERROR 6. 7547 015657 1525 ER6CHK, TAD I [DECK /DID THIS USER CAUSE AN ERROR 7548 /6 FROM CARDS? 7549 015660 1275 TAD ER6FLG 7550 015661 7640 SZA CLA 7551 015662 5676 JMP I XCTCOK /NO. 7552 015663 7001 IAC /YES, RESET THE ERROR 6 FLAG. 7553 015664 3275 DCA ER6FLG 7554 015665 6211 CDF 10 /RELEASE THE CDR. 7555 015666 7240 STA 7556 015667 3733 DCA I VCRUNO 7557 015670 3677 DCA I VCRRDY /SET THE CDR INPUT BUFFER TO READY. 7558 015671 1300 TAD VER060 /SET UP RESTART ADDRESS TO HANDLE 7559 015672 6201 CDF 0 7560 015673 5674 JMP I .+1 /ERROR 6. 7561 015674 6303 CTRLEX 7562 015675 0001 ER6FLG, 1 /1 IS INITIAL AND INACTIVE VALUE. 7563 /- USER NO. IS VALUE IF ERROR OCCURRED. 7564 015676 6276 XCTCOK, CTLCOK 7565 015677 6166 VCRRDY, CRBRDY 7566 015700 3625 VER060, ERR060 7567 /CARD READER PACKC ROUTINE 7568 /AS SIMILAR AS POSSIBLE TO XPACKC 7569 /ENTER WITH ASCII-240 IN AC 7570 7571 015701 0000 XCRPACKC, 0 7572 015702 2335 ISZ CRPKFLG /-1 OR 0, 0 IF LEFT SIX FIRST 7573 015703 5311 JMP XCRPK1 7574 015704 1336 TAD CRPKPRT /FROM LAST CALL 7575 015705 6211 CRUDF, CDF PF /PATCHED BY PFCDR 7576 015706 3734 DCA I CRPKPTR /STORE IT 7577 015707 6211 CDF PF 7578 015710 5701 JMP I XCRPACKC /RETURN 7579 015711 7106 XCRPK1, CLL RTL /MOVE TO LEFT-MOST SIX BITS 7580 015712 7006 RTL 7581 015713 7006 RTL 7582 015714 3336 DCA CRPKPRT 7583 015715 1334 TAD CRPKPTR /IS THE BUFFER OVERFLOWING? 7584 015716 7041 CIA 7585 015717 1337 TAD CRPKEND 7586 015720 7650 SNA CLA 7587 015721 5326 JMP CRNORM /YES, ISSUE ERROR 6, ETC. 7588 015722 7340 L7777 /SET FLAG FOR NEXT CALL 7589 015723 3335 DCA CRPKFLG 7590 015724 2334 ISZ CRPKPTR /THE ISZ IS HERE TO SIMULATE AUTO-INDEX 7591 015725 5701 JMP I XCRPACKC /RETURN 7592 015726 6211 CRNORM, CDF 10 7593 015727 1733 TAD I VCRUNO /SET THE ERROR 6 FLAG TO MINUS THE 7594 015730 7041 CIA /CDR USER NO. 7595 015731 3275 DCA ER6FLG 7596 015732 5701 JMP I XCRPACKC 7597 015733 6053 VCRUNO, CRUNO 7598 7599 015734 0000 CRPKPTR, 0 /INITIALLY SET BY NEWLINE 7600 015735 0000 CRPKFLG, 0 /DITTO 7601 015736 0000 CRPKPRT, 0 /TEMP 7602 015737 0000 CRPKEND, 0 /SET BY CDR 7603 7604 7605 /CHARACTER TRANSLATION TABLE FOR THE OS-8 BASIC 7606 /MARK SENSE CARDS. 7607 TRTAB, 7608 /0 IN ROWS 12-0 7609 015740 0021 0021 /NUL 1 7610 015741 2223 2223 /2 3 7611 015742 2425 2425 /4 5 7612 015743 2627 2627 /6 7 7613 015744 3031 3031 /8 9 7614 /1 IN ROWS 12-0 7615 015745 2043 2043 /0 C 7616 015746 4651 4651 /F I 7617 015747 5457 5457 /L O 7618 015750 6265 6265 /R U 7619 015751 7004 7004 /X $ 7620 /2 IN ROWS 12-0 7621 015752 1442 1442 /, B 7622 015753 4550 4550 /E H 7623 015754 5356 5356 /K N 7624 015755 6164 6164 /Q T 7625 015756 6772 6772 /W Z 7626 /3 IN ROWS 12-0 7627 015757 3632 3632 /> : 7628 015760 0106 0106 /! & 7629 015761 7500 7500 /] NUL(@) 7630 015762 0000 0000 /NUL(FORM) NUL(RUBOUT 1) 7631 015763 0000 0000 /NUL(RUBOUT 2) NUL(RUBOUT 3) 7632 /4 IN ROWS 12-0 7633 015764 1641 1641 /. A 7634 015765 4447 4447 /D G 7635 015766 5255 5255 /J M 7636 015767 6063 6063 /P S 7637 015770 6671 6671 /V Y 7638 /5 IN ROWS 12-0 7639 015771 3400 3400 /< NUL 7640 015772 0000 0000 /NUL NUL 7641 015773 0000 0000 /NUL NUL 7642 015774 0000 0000 /NUL NUL 7643 015775 0000 0000 /NUL NUL 7644 /6 IN ROWS 12-0 7645 015776 3303 3303 /; # 7646 015777 0705 0705 /' % 7647 016000 7337 7337 /[ ? 7648 016001 0000 0000 /NUL(TAB) NUL(_) 7649 016002 0000 0000 /NUL(CONT) NUL(CONT) 7650 /7 IN ROWS 12-0 7651 016003 7435 7435 /\ = 7652 016004 1315 1315 /+ - 7653 016005 1217 1217 /* / 7654 016006 7610 7610 /^ ( 7655 016007 1102 1102 /) " 7656 7657 7658 /CDR COMMAND HANDLER 7659 /ASSIGNS CARD READER IF IT'S NOT ALREADY ASSIGNED, 7660 /ISSUES ERROR MESSAGE IF IT IS ALREADY ASSIGNED 7661 /DF IS STILL F0 7662 /THIS IS NOT A CRITICAL SECTION BECAUSE RUNNING USER IS "NON-INTERRUPTABLE" 7663 7664 016010 1253 PFCDR, TAD CRUNO /GET CR USER NO 7665 016011 7700 SMA CLA /IT'S -1 IF CDR NOT ASSIGNED 7666 016012 5241 JMP CRUCHCK /IF IT IS ASSIGNED 7667 016013 1525 TAD I [DECK /CAN THIS USER LEGALLY ASSIGN 7668 016014 1264 TAD XLGTAB /THE CDR? 7669 016015 3265 DCA LGLPTR 7670 016016 6211 CDF 10 7671 016017 1665 TAD I LGLPTR 7672 016020 6201 CDF 0 7673 016021 7640 SZA CLA 7674 016022 5251 JMP CDRERR /NO. 7675 016023 1660 TAD I ALOOK /GET ADDRESS OF USER STATUS WORD 7676 016024 3254 DCA ACRUSW /USED BY CRDDONE TO CLEAR IP WAIT BIT 7677 016025 1661 TAD I AXUDF1 /GET CDF FOR USER FIELD FROM XUDF ROUTINE 7678 016026 6211 CDF 10 7679 016027 3656 DCA I XCRUDF /PUT IT INLINE IN CRPACKC 7680 016030 6201 CDF 0 7681 016031 1662 TAD I AALINE0 /END OF COMMAND BUFFER 7682 016032 1255 TAD CM12 /TO ALLOW FOR NEXT STATEMENT IN IMMED. MODE 7683 016033 6211 CDF 10 7684 016034 3657 DCA I XCRPKN 7685 016035 6201 CDF 0 7686 016036 3263 DCA ABBREV /SET SWITCH FOR COMPLETE KEYWORDS. 7687 016037 1525 TAD I [DECK /GET NUMBER OF THIS USER 7688 016040 5247 JMP ASCRUNO /FINISHED 7689 7690 016041 1525 CRUCHCK,TAD I [DECK /SEE IF CR USER IS TRYING TO DEASSIGN CDR 7691 016042 7041 CIA /COMPARE USER ONDECK TO CRUNO 7692 016043 1253 TAD CRUNO 7693 016044 7640 SZA CLA 7694 016045 5251 JMP CDRERR /ANOTHER USER TRYING TO ASSIGN IT 7695 016046 7240 STA /DEASSIGN IT 7696 016047 3253 ASCRUNO,DCA CRUNO 7697 016050 5430 OPOPJ /RETURN FROM CDR STATEMENT 7698 7699 016051 5652 CDRERR, JMP I .+1 /USE SAME ERROR AS BAD LPT COMMAND. 7700 016052 5536 LPTERR 7701 7702 7703 016053 7777 CRUNO, -1 /INITIAL VALUE=UNASSIGNED 7704 016054 0000 ACRUSW, 0 7705 016055 7766 CM12, -12 7706 7707 016056 5705 XCRUDF, CRUDF 7708 016057 5737 XCRPKN, CRPKEND 7709 016060 0120 ALOOK, LOOK 7710 016061 7351 AXUDF1, XUDF+1 7711 016062 0057 AALINE0, ALINE0 7712 016063 0000 ABBREV, 0 7713 016064 6766 XLGTAB, LGLTAB 7714 016065 0000 LGLPTR, 0 7715 7716 7717 7718 /EXTENSION OF READC ROUTINE TO CHECK IF CR USER AND CDR INPUT 7719 7720 016066 1525 CRXRD1, TAD I [DECK /NO OF USER ON DECK 7721 016067 7041 CIA /EQUAL TO CRUNO? 7722 016070 1253 TAD CRUNO 7723 016071 7650 SNA CLA 7724 016072 5301 JMP CRBCHCK /YEAP 7725 016073 7340 CRXRRET,L7777 /RETURN TO XREAD1 7726 016074 1731 TAD I AXREADC /CODE PATCHED OVER IN XREAD1 7727 016075 3732 DCA I APC 7728 016076 6202 CIF F0 7729 016077 5700 JMP I .+1 7730 016100 3731 XREAD2 7731 7732 016101 1366 CRBCHCK,TAD CRBRDY /IT'S CR USER, IS COMMAND BUFFER READY? (SET BY CRDDONE) 7733 016102 7640 SZA CLA 7734 016103 5313 JMP CRECHCK /YEAP 7735 016104 1730 TAD I ACOMBUF /ADDRESS OF COMMAND BUFFER FROM SWAP AREA IN FIELD F0 7736 016105 6211 CDF 10 7737 016106 3726 DCA I XCRPKP /INITIALIZES IT 7738 016107 3727 DCA I XCRPKF /DITTO 7739 016110 6201 CDF 0 7740 016111 4777 JMS I (NEWCARD /TRY TO START IT 7741 016112 5273 JMP CRXRRET /AND RETURN 7742 016113 1367 CRECHCK,TAD KEYFLG /DOES LINE CONTAIN A KEYWORD OR LINE NUMBER? 7743 016114 7650 SNA CLA /IF SO, BE SURE WE'RE IN COMMAND MODE BEFORE LOOKING AT IT 7744 016115 5322 JMP CRECF0 /NO KEYWORD 7745 016116 3367 DCA KEYFLG /WE WILL RETURN AGAIN SOON 7746 016117 6202 CIF F0 7747 016120 5721 JMP I .+1 7748 016121 0470 START /START -> PAKLIN -> READC -> CRXRD1 7749 7750 016122 3366 CRECF0, DCA CRBRDY 7751 016123 6202 CIF F0 7752 016124 5725 JMP I .+1 7753 016125 0241 CRBECHO 7754 7755 7756 016126 5734 XCRPKP, CRPKPTR 7757 016127 5735 XCRPKF, CRPKFLG 7758 016130 0060 ACOMBUF, COMBUF 7759 016131 3702 AXREADC, XREADC 7760 016132 0022 APC, PC 7761 7762 7763 7764 7765 7766 /CARD DONE INTERRUPT HANDLER 7767 7768 016133 6674 CRDDONE,RCRD /CLEAR CARD DONE FLAG 7769 016134 1253 TAD CRUNO /MAY BE SPURIOUS 7770 016135 7710 SPA CLA 7771 016136 5020 JMP DIS 7772 016137 1776 TAD I (COLCNT 7773 016140 1370 TAD DNCOLS /CHECK IF ALL COLUMNS WERE READ OR CARD IN WRONG 7774 016141 7710 SPA CLA /ACCEPT 39 OR 40 COLUMN CARDS 7775 016142 4775 JMS I (MSGGEN /0 IN AC IS CODE FOR "CARD IN WRONG" MESSAGE 7776 016143 1774 TAD I (LINFLG /WAS THERE A LINE NUMBER ON THIS CARD? 7777 016144 1773 TAD I (KEYDSP /WAS THERE A KEYWORD ON THIS CARD? 7778 016145 7640 SZA CLA /IF SO, SET FLAG FOR CRECHCK 7779 016146 2367 ISZ KEYFLG 7780 016147 1772 TAD I (CNTFLG /CHECK FOR CONTINUATION MARK READ ON THIS CARD 7781 016150 7650 SNA CLA 7782 016151 5354 JMP .+3 /NOPE 7783 016152 4777 JMS I (NEWCARD /YES, WE MUST READ MORE FOR THIS LINE TO BE COMPLETE 7784 016153 5020 JMP DIS 7785 016154 2366 ISZ CRBRDY /SIGNAL BUFFER READY 7786 016155 6201 CDF F0 7787 016156 7350 L3777 /CLEAR IP WAIT BIT 7788 016157 0654 AND I ACRUSW /DF MUST BE F0 HERE 7789 016160 3654 DCA I ACRUSW 7790 016161 1141 TAD [77 7791 016162 4771 JMS I (XCRPACKC /PUT CR AT EOL 7792 016163 1141 TAD [77 /MAKE SURE 7793 016164 4771 JMS I (XCRPACKC 7794 016165 5020 JMP DIS 7795 7796 016166 0000 CRBRDY, 0 /CARD READER BUFFER READY FLAG 7797 016167 0000 KEYFLG, 0 /NON-ZERO IF A KEYWORD IN THIS LINE 7798 7799 016170 7731 DNCOLS, -CRDCOLS /NEGATIVE NUMBER OF COLUMNS 7800 7801 016171 5701 PAGE 016172 6266 016173 6746 016174 6745 016175 6462 016176 6265 016177 6312 7802 /CARD READER INTERRUPT CHECK AND SKIP CHAIN 7803 /F0 COMES HERE FIRST NOW INSTEAD OF INTR81 7804 /EACH FLAG MUST BE CHECKED SEPARATELY AND CLEARED IF SPURIOUS 7805 7806 016200 6631 CRINTCHK,RCSF /SKIP ON COLUMN DATA READY 7807 016201 7410 SKP 7808 016202 5217 JMP XCRRC1 7809 016203 6671 RCSD /IS CARD DONE FLAG SET? 7810 016204 7410 SKP 7811 016205 5777 JMP I (CRDDONE 7812 016206 6677 RCTF /READY OR TROUBLE TRANS. FLAG MUST BE CAUSING INT., CLEAR THEM 7813 016207 1613 TAD I ACRUNO /TRY TO START IT IF IT'S ASSIGNED 7814 016210 7700 SMA CLA 7815 016211 4312 JMS NEWCARD 7816 016212 5020 JMP DIS 7817 7818 016213 6053 ACRUNO, CRUNO 7819 7820 7821 7822 /CARD READER READC ROUTINE 7823 7824 016214 0000 XCRREADC, 0 7825 016215 7200 CLA 7826 016216 5020 JMP DIS /WAIT FOR NEXT CHAR INTERRUPT, IF ANY 7827 016217 6634 XCRRC1, RCRB /RETURN FROM INTERRUPT 7828 016220 3264 DCA CRCHAR /READ DATA IN COLUMN BINARY, CLEAR FLAG 7829 016221 1613 TAD I ACRUNO /CHECK FOR SPURIUOS INTERRUPTS 7830 016222 7710 SPA CLA 7831 016223 5020 JMP DIS 7832 016224 2265 ISZ COLCNT 7833 016225 1264 TAD CRCHAR /CHECK IF COLUMN IS BLANK 7834 016226 7450 SNA 7835 016227 5614 JMP I XCRREADC /NORMAL RETURN IF SO 7836 016230 7240 STA /IS THIS COL. 1? 7837 016231 1265 TAD COLCNT 7838 016232 7650 SNA CLA 7839 016233 5254 JMP CTRLCS /YES, GO HANDLE COL 1. 7840 016234 1264 TAD CRCHAR 7841 016235 7012 RTR /CHECK FOR RUBOUT OR CONT. CHARS 7842 016236 7500 SMA /AT LEAST ROW 9 FOR THESE 7843 016237 5251 JMP NOTRC 7844 016240 7420 SNL /ROW 8 TOO 7845 016241 5251 JMP NOTRC 7846 016242 7010 RAR 7847 016243 7630 SZL CLA 7848 016244 5020 JMP DIS /RUBOUT, IGNORE THIS COLUMN; CAREFUL IN COLS 1-9 7849 016245 2266 ISZ CNTFLG /CONT. CHAR 7850 016246 4214 CEJECT, JMS XCRREADC /TRICKY, HUH 7851 016247 7000 NOP /IN CASE BLANK 7852 016250 5246 JMP CEJECT /IGNORE REST OF CARD 7853 016251 2214 NOTRC, ISZ XCRREADC /SKIP RETURN IF NONBLANK 7854 016252 7200 CLA 7855 016253 5614 JMP I XCRREADC /RETURN 7856 016254 1264 CTRLCS, TAD CRCHAR /IS OT A CTRL/C? 7857 016255 7700 SMA CLA 7858 016256 5667 JMP I XSTABB /NO, CHECK THE OTHER BITS. 7859 016257 1613 TAD I ACRUNO /SET THE CTRL/C FLAG TO MINUS 7860 016260 7041 CIA /THE CARD READER USER NO. 7861 016261 3305 DCA CTRLCF 7862 016262 3264 STABRT, DCA CRCHAR /TAKE THE BLANK CHAR RETURN 7863 016263 5614 JMP I XCRREADC 7864 016264 0000 CRCHAR, 0 7865 016265 0000 COLCNT, 0 /COLUMN COUNT 7866 016266 0000 CNTFLG, 0 /CONTINUATION CHARACTER FLAG 7867 016267 7016 XSTABB, SETABB 7868 7869 7870 /CHECK IF "CTRL/C" CAME FROM CARD READER FOR CR USER 7871 7872 016270 7200 CTRLCHK, CLA 7873 016271 1525 TAD I [DECK /NO. OF USER ON DECK 7874 016272 1305 TAD CTRLCFLG /SET TO -CR USER IF CR CTRL/C DETECTED 7875 016273 7650 SNA CLA /NO MATCH 7876 016274 5300 JMP CTRLCY /YES 7877 016275 5711 JMP I XER6CK /CHECK FOR ERROR 6 FROM CDR. 7878 016276 1707 CTLCOK, TAD I XPC /PATCHED OVER 7879 016277 5303 JMP CTRLEX 7880 016300 7001 CTRLCY, IAC /SET FLAG TO NO CTRLC 7881 016301 3305 DCA CTRLCFLG 7882 016302 1306 TAD AERR4 /IN KEY (IT'S OK CAUSE HE IS RUNNING 7883 016303 6202 CTRLEX, CIF 0 7884 016304 5710 JMP I XNJCDR 7885 7886 016305 0001 CTRLCFLG, 1 /INITIAL AND UNACTIVE VALUE 7887 016306 0364 AERR4, CDRCTC 7888 016307 0022 XPC, PC 7889 016310 0223 XNJCDR, CTRLRT 7890 016311 5657 XER6CK, ER6CHK 7891 7892 7893 7894 /NEWCARD ROUTINE 7895 /TRYS TO START CDR AND SETS CARD PARAMETERS IF SUCCESSFUL 7896 7897 016312 0000 NEWCARD, 0 7898 016313 6672 RCSE /SKIP IF READER READY, READ NEXT CARD 7899 016314 5712 JMP I NEWCARD /NOPE 7900 016315 3265 DCA COLCNT /ZERO COLUMN COUNT 7901 016316 1326 TAD ACOL2 /INITIALIZE CRREADC RETURN FOR FIRST CHAR INT. 7902 016317 3214 DCA XCRREADC 7903 016320 3266 DCA CNTFLG /CONTINUATION FLAG 7904 016321 6211 CDF PF /MOVE TO COL1 7905 016322 3776 DCA I (LINFLG 7906 016323 3775 DCA I (KEYDSP 7907 016324 6201 CDF F0 /FOR CRXRRET 7908 016325 5712 JMP I NEWCARD 7909 7910 016326 6600 ACOL2, COL2 7911 7912 /TABLE OF POINTERS TO LINKED LIST OF BASIC KEYWORDS 7913 7914 KEYTBL, 7915 016327 6545 LISTEC /APPEND, USE ERRCHAR 7916 016330 2552 LIST71 /END 7917 016331 2540 LIST22 /CLOSE 7918 016332 4203 LIST76 /FOR 7919 016333 2515 LIST18 /CHAIN 7920 016334 1572 LIST75 /GOSUB 7921 016335 6545 LISTEC /CHANGE, USE ERRCHAR 7922 016336 4060 LIST81 /GOTO 7923 016337 4076 LIST85 /DATA 7924 016340 3410 LIST82 /IF 7925 016341 3400 LIST77 /DEF 7926 016342 6545 LISTEC /IFEND, USE ERRCHAR 7927 016343 4102 LIST86 /LET 7928 016344 4134 LIST93 /LIST 7929 016345 4144 LIST95 /NEW 7930 016346 0771 LIST7 /ON 7931 016347 6545 LISTEC /OVERLAY, USE ERRCHAR 7932 016350 2522 LIST19 /RANDOM 7933 016351 4047 LIST79 /REM 7934 016352 4730 LIST72 /RESTORE 7935 016353 4177 LIST11 /RUN 7936 016354 1360 LIST70 /STOP 7937 016355 3404 LIST78 /DIM 7938 016356 4064 LIST83 /INPUT 7939 016357 4053 LIST80 /LINPUT 7940 016360 4106 LIST87 /NEXT 7941 016361 4703 LIST14 /OLD 7942 016362 2527 LIST20 /OPEN 7943 016363 4071 LIST84 /PRINT 7944 016364 4672 LIST73 /READ 7945 016365 6545 LISTEC /REPLACE, USE ERRCHAR 7946 016366 4676 LIST74 /RETURN 7947 016367 2476 LIST15 /SAVE 7948 016370 2502 LIST16 /UNSAVE 7949 7950 016375 6746 PAGE 016376 6745 016377 6133 7951 7952 /DECBIN SUBROUTINE, DECIMAL-TO-BINARY ENCODER 7953 7954 016400 0000 DECBIN, 0 /CONVERTS BIT POSITION IN CHAR INTO BINARY 0-12 7955 016401 3220 DCA DBSAV /SAVE THE VALUE. 7956 016402 3217 DCA BINCNT /HOLDS CONVERTED VALUE 7957 016403 1220 TAD DBSAV /INPUT 7958 016404 7450 SNA /MAKE SURE IT'S NOT ZERO BEFORE YOU GO FURTHER 7959 016405 5215 JMP DBRET /RETURN IF IT IS 7960 016406 2217 ISZ BINCNT 7961 016407 7104 CLL RAL 7962 016410 7420 SNL 7963 016411 5206 JMP .-3 /KEEP ROTATING AND INCREMENTING UNTIL YOU HIT BIT 7964 016412 7640 SZA CLA /ARE THERE MORE MARKS? 7965 016413 5600 JMP I DECBIN /ERROR RETURN 7966 016414 1217 TAD BINCNT 7967 016415 2200 DBRET, ISZ DECBIN /NORMAL RETURN 7968 016416 5600 JMP I DECBIN 7969 7970 7971 016417 0000 BINCNT, 0 7972 016420 0000 DBSAV, 0 7973 7974 /CARD CODE TO ASCII TRANSLATION ROUTINE 7975 7976 016421 0000 TRANSC, 0 7977 016422 1777 TAD I (CRCHAR /GET ROWS 12,11, AND 0 AS BINARY NUMBER 7978 016423 7006 RTL 7979 016424 7006 RTL 7980 016425 0176 AND [7 7981 016426 3260 DCA DISP 7982 016427 1260 TAD DISP /MULTIPLY BY TEN (NO OF CHARS PER TOP THREE CODE) 7983 016430 7106 CLL RTL /*4 7984 016431 1260 TAD DISP /+1=*5 7985 016432 7104 CLL RAL /*2=*10 7986 016433 3260 DCA DISP /SAVE IT FOR LATER 7987 016434 1777 TAD I (CRCHAR /NOW GET ROWS 1-9 INTO BINARY (0-9, 0 IF BLANK) USING DECBIN 7988 016435 7104 CLL RAL 7989 016436 7104 CLL RAL 7990 016437 7104 CLL RAL 7991 016440 4200 JMS DECBIN 7992 016441 5621 JMP I TRANSC /RETURN IF MORE THAN ONE MARK IN ROWS 1-9 7993 016442 1260 TAD DISP /(0-9 FROM DECBIN)+(10*(ROWS 12-0 FROM DISP))=CHAR NO IN TABLE 7994 016443 7110 CLL RAR /LINK DETERMINES WHICH HALF OF WORD TO GET (TABLE IS PACKED) 7995 016444 1261 TAD ATRTAB /ADDRESS OF TABLE 7996 016445 3260 DCA DISP 7997 016446 1660 TAD I DISP 7998 016447 7430 SZL 7999 016450 5254 JMP .+4 8000 016451 7012 RTR 8001 016452 7012 RTR 8002 016453 7012 RTR 8003 016454 0141 AND [77 8004 016455 7440 SZA /TABLE ENTRIES ARE ZERO FOR INVALID COMBINATIONS 8005 016456 2221 ISZ TRANSC /SKIP RETURN IF CHAR IS OK 8006 016457 5621 JMP I TRANSC 8007 8008 8009 016460 0000 DISP, 0 8010 016461 5740 ATRTAB, TRTAB 8011 8012 /KEYWORD EXPANDER AND MESSAGE GENERATION ROUTINE 8013 /USES EDU 20/25 TABLE OF KEYWORDS IN FIELD 1 8014 8015 8016 016462 0000 MSGGEN, 0 8017 016463 7550 SPA SNA /IF BASIC KEYWORD CODE 8018 016464 5331 JMP CARDMSG /"CARD IN WRONG" ERR MSG 8019 016465 1343 TAD AMITM1 8020 016466 3335 DCA PTR /STORE ADDRESS OF KEYWORD ADDRESS 8021 016467 1735 TAD I PTR 8022 016470 3335 DCA PTR 8023 016471 1741 TAD I XBBREV /IS ABBREVIATED MODE IN EFFECT? 8024 016472 7650 SNA CLA 8025 016473 5301 JMP MSGLNG /NO. 8026 016474 1735 TAD I PTR /YES. 8027 016475 7112 CLL RTR 8028 016476 7010 RAR 8029 016477 0342 AND K3 8030 016500 5303 JMP .+3 8031 016501 1735 MSGLNG, TAD I PTR /GET FIRST WORD IN ENTRY, CONTAINING # OF CHARS IN KEYWORD 8032 016502 0176 AND [7 /LENGTH IN LOW ORDER THREE BITS 8033 016503 7041 CIA 8034 016504 2335 ISZ PTR /SKIP WORD WHICH LINKS TO NEXT ENTRY 8035 016505 3336 DCA COUNT 8036 016506 3337 MSGJ, DCA CHARFLG /DETERMINES WHICH HALF OF WORD CHAR COMES FROM 8037 016507 2337 MSGCHAR,ISZ CHARFLG 8038 016510 5313 JMP CHAR2 8039 016511 1735 TAD I PTR /GET WORD, IN FIELD 1 8040 016512 5322 JMP CHARJ 8041 016513 7240 CHAR2, STA 8042 016514 3337 DCA CHARFLG /NEXT ONE FROM LEFT HALF OF NEXT WORD 8043 016515 2335 ISZ PTR /STARTS AS POS-1 8044 016516 1735 TAD I PTR 8045 016517 7012 RTR 8046 016520 7012 RTR 8047 016521 7012 RTR 8048 016522 7040 CHARJ, CMA 8049 016523 0141 AND [77 /MASK OFF 8050 016524 4776 JMS I (XCRPACKC 8051 016525 2336 ISZ COUNT 8052 016526 5307 JMP MSGCHAR 8053 016527 4776 JMS I (XCRPACKC /PUT SPACE AFTER KEYWORD 8054 016530 5662 JMP I MSGGEN 8055 016531 1344 CARDMSG,TAD AWRNGMSG 8056 016532 3335 DCA PTR 8057 016533 1340 TAD DN14 /LENGTH OF "'CARD IN WRONG" 8058 016534 5305 JMP MSGJ-1 8059 8060 8061 016535 0000 PTR, 0 8062 016536 0000 COUNT, 0 8063 016537 0000 CHARFLG, 0 8064 016540 7762 DN14, -16 8065 016541 6063 XBBREV, ABBREV 8066 016542 0003 K3, 3 8067 016543 6326 AMITM1, KEYTBL-1 /ADDRESS OF KEYWORD ADDRESS TABLE 8068 016544 6547 AWRNGMSG, WRNGMSG-1 8069 8070 8071 /DUMMY KEYWORD LINKED LIST ENTRY, PUTS ERRCHAR IN PLACE OF KEYWORD 8072 8073 016545 0011 LISTEC, 11 /ONE CHARACTER IN THIS KEYWORD 8074 016546 0000 0 /DUMMY 8075 016547 4000 -ERRCHAR+337^100 8076 8077 8078 / THIS MESSAGE STARTS WITH A SINGLE QUOTE 8079 /SO THAT BASIC WILL HANDLE IT AS A REMARK. 8080 8081 WRNGMSG, 8082 8083 016550 7034 7034 /'C 8084 016551 3615 3615 /AR 8085 016552 3377 3377 /D 8086 016553 2621 2621 /IN 8087 016554 7710 7710 / W 8088 016555 1520 1520 /RO 8089 016556 2130 2130 /NG 8090 8091 8092 / THIS ROUTINE TESTS IF TTY INPUT IS COMING IN FOR 8093 /THE CDR USER. 8094 016557 0000 CDRSUP, 0 8095 016560 1525 TAD I [DECK /GET THE USER NO. FOR THIS INPUT. 8096 016561 7041 CIA 8097 016562 6211 CDF 10 8098 016563 1773 TAD I YCRUNO /IS IT THE SAME AS THE CDR USER? 8099 016564 6203 CIF CDF 8100 016565 7650 SNA CLA 8101 016566 5774 JMP I YSUPPR /YES, DON'T USE THE INPUT. 8102 016567 1775 TAD I YLSMOD /NO, IS LISTING SUPPRESSED? 8103 016570 7440 SZA 8104 016571 2357 ISZ CDRSUP /NO. 8105 016572 5757 JMP I CDRSUP 8106 016573 6053 YCRUNO, CRUNO 8107 016574 0661 YSUPPR, SUPRET 8108 016575 0130 YLSMOD, LSTMOD 8109 016576 5701 PAGE 016577 6264 8110 8111 8112 8113 / 8114 / THIS ROUTINE INTERPRETS THE MARK SENSE CARDS ON A COLUMN 8115 /BY COLUMN BASIS. COL. 1 IS ONLY USED FOR A CTRL/C AND 8116 /AND OTHER CONTROL MARKS AND 8117 /IS TRAPPED IN THE READ ROUTINE. COLS. 2-6 CONTAIN 8118 /KEYWORD BOXES IN THE UPPER 2 ROWS AND LINE NO. BOXES 8119 /IN THE LOWER 10 ROWS. COLS 7 & 8 EACH HAVE 12 KEYWORD 8120 /BOXES. COLS 9-40 CONTAIN BOXES TO MARK INDIVIDUAL 8121 /CHARACTERS. RUBOUT AND CONTINUATION CHARS ARE TRAPPED IN 8122 /THE READ ROUTINE. 8123 / 8124 016600 7200 COL2, CLA 8125 016601 3347 DCA KEYCNT 8126 016602 3354 DCA KEYERR 8127 016603 4757 COL26, JMS I XXCRRE 8128 016604 5235 JMP COL26A /IF BLANK, GO CHECK COL COUNT. 8129 016605 1760 TAD I XCRCHR /GET THE CHAR. 8130 016606 0355 AND K6000 /ISOLATE THE KEYWORD BOX BITS. 8131 016607 4761 JMS I XDCBIN /GET THE DECIMAL BIT POSITION(1 OR 2). 8132 016610 5220 JMP COL26B /IF MORE THAN ONE BIT SET, GO HAN- 8133 /DLE THE ERROR. 8134 016611 7450 SNA /WERE ANY BITS SET? 8135 016612 5223 JMP COL26C /NO, GO CHECK FOR LINE NO. 8136 016613 1347 TAD KEYCNT /YES, SET UP KEYWORD TABLE INDEX. 8137 016614 3347 DCA KEYCNT 8138 016615 1346 TAD KEYDSP /HAD A KEYWORD BOX ALREADY BEEN SEEN? 8139 016616 7650 SNA CLA 8140 016617 5222 JMP COL26D /NO. 8141 016620 2354 COL26B, ISZ KEYERR /SET KEYWORD ERROR SWITCH. 8142 016621 7410 SKP /GO CHECK FOR LINE NO. 8143 016622 2346 COL26D, ISZ KEYDSP /SET KEYWORD SEEN SWITCH. 8144 016623 1760 COL26C, TAD I XCRCHR 8145 016624 0356 AND K1777 /IS A LINE NO. BOX MARKED? 8146 016625 7450 SNA 8147 016626 5235 JMP COL26A /NO. 8148 016627 7106 CLL RTL /YES, GET ITS BIT POSITION 8149 016630 4761 JMS I XDCBIN /WITHIN ROWS 0 TO 9. 8150 016631 5340 JMP LNOERR /MULTI-MARKS IN ROWS 0-9. 8151 016632 1353 TAD K17 /CONVERT TO INTERNAL CODE. 8152 016633 4762 JMS I XXCRPC /PACK THE CHAR. 8153 016634 2345 ISZ LINFLG /SET THE LINE NO. SEEN FLAG. 8154 016635 1346 COL26A, TAD KEYDSP /HAS A KEYWORD BEEN SEEN? 8155 016636 7640 SZA CLA 8156 016637 5243 JMP COL26E /YES. 8157 016640 7326 STL CLA RTL /NO, ADD 2 TO KEYWORD TABLE INDEX. 8158 016641 1347 TAD KEYCNT 8159 016642 3347 DCA KEYCNT 8160 016643 1763 COL26E, TAD I XCLCNT /IS THIS COL 6? 8161 016644 1352 TAD MK6 8162 016645 7640 SZA CLA 8163 016646 5203 JMP COL26 /NO. 8164 016647 4757 COL78, JMS I XXCRRE /YES, GET NEXT COL. 8165 016650 5266 JMP COL78B /IF NO BIT SET,CHECK COL NO. 8166 016651 1760 TAD I XCRCHR /GET THE CHAR. 8167 016652 4761 JMS I XDCBIN /GET THE BIT POSITION(1 TO 12). 8168 016653 5263 JMP COL78A /IF MORE THAN 1 BOX MARKED THEN 8169 /AN ERROR. 8170 016654 7450 SNA 8171 016655 5266 JMP COL78B 8172 016656 1347 TAD KEYCNT /SET UP TABLE INDEX. 8173 016657 3347 DCA KEYCNT 8174 016660 1346 TAD KEYDSP /HAS A KEYWORD BOX ALREADY 8175 016661 7650 SNA CLA /BEEN MARKED? 8176 016662 5265 JMP COL78C /NO. 8177 016663 2354 COL78A, ISZ KEYERR /YES, SET ERROR SWITCH. 8178 016664 7410 SKP 8179 016665 2346 COL78C, ISZ KEYDSP /SET KEYWORD SEEN SWITCH. 8180 016666 1346 COL78B, TAD KEYDSP /HAS A KEYWORD BEEN SEEN? 8181 016667 7640 SZA CLA 8182 016670 5274 JMP COL78D /YES, CHECK COL. 8183 016671 1351 TAD K14 /NO, ADD 12 TO INDEX. 8184 016672 1347 TAD KEYCNT 8185 016673 3347 DCA KEYCNT 8186 016674 1763 COL78D, TAD I XCLCNT /IS THIS COL 8? 8187 016675 1350 TAD MK8 8188 016676 7640 SZA CLA 8189 016677 5247 JMP COL78 /NOT YET. 8190 016700 1345 TAD LINFLG /YES, WAS THERE A LINE NO. 8191 016701 7640 SZA CLA 8192 016702 4762 JMS I XXCRPC /YES, PACK A BLANK. 8193 016703 1354 TAD KEYERR /WAS THERE A KEYWORD ERROR? 8194 016704 7640 SZA CLA 8195 016705 5335 JMP CLKYER /YES. 8196 016706 1346 TAD KEYDSP /NO. 8197 016707 7650 SNA CLA /WAS ONE KEYWORD BOX CHECKED? 8198 016710 5313 JMP COL9 /NO. 8199 016711 1347 TAD KEYCNT /YES. 8200 016712 4764 JMS I XMSGEN /OUTPUT THE KEYWORD. 8201 016713 3344 COL9, DCA BLANKS /INITIALIZE BLANK COUNTER TO ZERO 8202 016714 4757 COL940, JMS I XXCRRE 8203 016715 7410 SKP /BLANK 8204 016716 5321 JMP .+3 /NO, NONBLANK 8205 016717 2344 ISZ BLANKS /DON'T STORE IT YET 8206 016720 5314 JMP COL940 8207 016721 1344 TAD BLANKS 8208 016722 7450 SNA 8209 016723 5331 JMP .+6 /NO BLANKS TO BE STORED 8210 016724 7041 CIA 8211 016725 3344 DCA BLANKS 8212 016726 4762 JMS I XXCRPC 8213 016727 2344 ISZ BLANKS 8214 016730 5326 JMP .-2 8215 016731 4765 JMS I XTRNSC 8216 016732 1343 TAD BADCHAR /RETURN IF BAD, AC = 0 8217 016733 4762 JMS I XXCRPC /RETURN IF CHAR OK, ASCII VALUE IN AC 8218 016734 5314 JMP COL940 8219 /COME HERE ON A KEYWORD ERROR. 8220 016735 1343 CLKYER, TAD BADCHAR /OUTPUT ERROR CHAR INSTEAD OF KEYWORD. 8221 016736 4762 JMS I XXCRPC 8222 016737 5313 JMP COL9 /GO HANDLE COLS 9 TO 40. 8223 /COME HERE ON MULTIPLE MARKS IN ROWS 0-9. 8224 /IN A LINE NO. COLUMN. 8225 016740 1343 LNOERR, TAD BADCHAR /OUTPUT THE ERROR CHARACTER. 8226 016741 4762 JMS I XXCRPC 8227 016742 5235 JMP COL26A 8228 8229 8230 016743 0037 BADCHAR, ERRCHAR-240 8231 016744 0000 BLANKS, 0 /COUNT OF NUMBER OF CONSECUTIVE BLANK COLUMNS 8232 016745 0000 LINFLG, 0 /NON-ZERO IF LINE NUMBER ON THIS CARD 8233 016746 0000 KEYDSP, 0 /NON-ZERO IF KEYWORD ON THIS CARD 8234 016747 0000 KEYCNT, 0 8235 016750 7770 MK8, -10 8236 016751 0014 K14, 14 8237 016752 7772 MK6, -6 8238 016753 0017 K17, 17 8239 016754 0000 KEYERR, 0 8240 016755 6000 K6000, 6000 8241 016756 1777 K1777, 1777 8242 016757 6214 XXCRRE, XCRREA 8243 016760 6264 XCRCHR, CRCHAR 8244 016761 6400 XDCBIN, DECBIN 8245 016762 5701 XXCRPC, XCRPAC 8246 016763 6265 XCLCNT, COLCNT 8247 016764 6462 XMSGEN, MSGGEN 8248 016765 6421 XTRNSC, TRANSC 8249 8250 /THIS TABLE INDICATES THE LEGAL USERS OF THE CDR. 8251 /0 MEANS LEGAL. NON-0 MEANS ILLEGAL. SET UP DURING 8252 /INITIALIZATION. 8253 016766 0000 LGLTAB, 0 8254 016767 0000 0 8255 016770 0000 0 8256 016771 0000 0 8257 016772 0000 0 8258 016773 0000 0 8259 016774 0000 0 8260 016775 0000 0 8261 PAGE 8262 / THIS ROUTINE RELEASES THE CDR ON A CTRL/C. 8263 017000 0000 XCT1, 0 8264 017001 1525 TAD I [DECK /IS THIS USER THE ONE WITH THE CDR? 8265 017002 7041 CIA 8266 017003 6211 CDF SWAP 8267 017004 1614 TAD I WCRUNO 8268 017005 7640 SZA CLA 8269 017006 5212 JMP NOREL /NO. 8270 017007 7240 STA /YES, RELEASE THE READER. 8271 017010 3614 DCA I WCRUNO 8272 017011 3615 DCA I XCRRDY /RESET THE BUFFER READY SWITCH. 8273 017012 6203 NOREL, CIF CDF /RETURN 8274 017013 5600 JMP I XCT1 8275 017014 6053 WCRUNO, CRUNO 8276 017015 6166 XCRRDY, CRBRDY 8277 8278 8279 8280 /THIS ROUTINE SETS THE ABBREVIATION SWITCH 8281 /DEPENDING ON THE SETTINGS IN CARS COL 1. 8282 017016 1627 SETABB, TAD I CRDCHR 8283 017017 0230 AND K3000 8284 017020 7450 SNA /ARE MARKS EXTRANEOUS? 8285 017021 5631 JMP I STEXIT /YES. 8286 017022 0076 AND Z1000 /DO WE WANT COMPLETE COMMANDS? 8287 017023 7650 SNA CLA 8288 017024 7001 IAC /NO. 8289 017025 3632 DCA I STABRV 8290 017026 5631 JMP I STEXIT 8291 017027 6264 CRDCHR, CRCHAR 8292 017030 3000 K3000, 3000 8293 017031 6262 STEXIT, STABRT 8294 017032 6063 STABRV, ABBREV 8295 8296 /A FEW SPARE LOCATIONS. 8297 017033 0000 0 8298 017034 0000 0 8299 017035 0000 0 8300 017036 0000 0 8301 8302 /USER DEFINITIONS 8303 8304 ORG1=. 8305 LIMIT=7776 /HIGHEST CORE POSITION 8306 SWAPR=ENSWAP-STSWAP+1 /SWAP LENGTH 8307 8308 BUFFER=40 8309 BUFCOM=100 8310 LINE0=162 8311 LINE1=164 8312 TOP=LIMIT 8313 010124 6625 FIELD 2 010125 0036 010126 7740 010127 3172 010130 4211 010131 4210 010132 3201 010133 3177 010134 3450 010135 0004 010136 4213 010137 0026 010140 7763 010141 0077 010142 0015 010143 2153 010144 3431 010145 0014 010146 0002 010147 0040 010150 0030 010151 7772 010152 0434 010153 7720 010154 0752 010155 7725 010156 4557 010157 1346 010160 7673 010161 0011 010162 1540 010163 7722 010164 7767 010165 0400 010166 0206 010167 0571 010170 7774 010171 0457 010172 5674 010173 0377 010174 0177 010175 0200 010176 0007 010177 0600 8314 8315 PAGE 0 8316 *10 8317 020010 0000 AI0, 0 8318 *20 8319 020020 2600 USRPTR, USRLST 8320 020021 0000 CORPTR, 0 8321 020022 0000 USRPT2, 0 8322 020023 0000 CORPT2, 0 8323 020024 0000 BEGUSR, 0 8324 020025 0000 CURFLD, 0 8325 020026 0000 BEGDEV, 0 8326 020027 0000 USRCTR, 0 8327 020030 0000 SS, 0 8328 020031 0000 BEGCOR, 0 8329 020032 0000 KLTOP, 0 8330 020033 0000 KLSCH, 0 8331 020034 0000 OS8PTR, 0 8332 8333 020035 1377 OSDRK8, 1377 8334 020036 3030 3030 8335 020037 1376 1376 8336 020040 3031 3031 8337 020041 5030 5030 8338 020042 0000 0 8339 020043 0000 0 8340 020044 0000 0 8341 020045 0000 0 8342 020046 0000 0 8343 020047 0000 0 8344 020050 0000 0 8345 020051 0000 0 8346 020052 0000 0 8347 020053 0000 0 8348 020054 0000 0 8349 020055 5031 5031 8350 020056 6733 RK8EIO, 6733 8351 8352 020057 1772 OSDDSK, 1772 8353 020060 3771 3771 8354 020061 2371 2371 8355 020062 2372 2372 8356 020063 5356 5356 8357 020064 5350 5350 8358 020065 0000 0 8359 020066 0000 0 8360 020067 0000 0 8361 020070 0000 0 8362 020071 0000 0 8363 020072 7750 7750 8364 020073 7773 7773 8365 020074 7600 7600 8366 020075 6603 6603 8367 020076 6622 6622 8368 020077 5352 5352 8369 020100 5752 5752 8370 8371 020101 6774 OSDDTA, 6774 8372 020102 1377 1377 8373 020103 3354 3354 8374 020104 1376 1376 8375 020105 3355 3355 8376 020106 1375 1375 8377 020107 6766 6766 8378 020110 6771 6771 8379 020111 5365 5365 8380 020112 1374 1374 8381 020113 6766 6766 8382 020114 6771 6771 8383 020115 5371 5371 8384 020116 5200 5200 8385 020117 0220 220 8386 020120 0600 600 8387 020121 7577 7577 8388 020122 7700 7700 8389 8390 PAGE 8391 /*SYSTEM ENTRY POINT FOR INITIALIZATION* 8392 020200 7000 BEGIN, NOP /SO WE CAN CHAIN BACK TO OURSELF 8393 020201 6032 KCC 8394 020202 4777 JMS I (SYSINI 8395 /BEGINB, 8396 020203 6211 CDF 10 8397 020204 1776 TAD I (7760 /GET DCB OF SYS: 8398 020205 0375 AND (770 8399 020206 1374 TAD (-050 /5 IS RK8 8400 020207 7510 SPA 8401 020210 5226 JMP OS8ERR /<5 IS ERROR 8402 020211 7450 SNA 8403 020212 5237 JMP OS8RK8 /5 = RK8 8404 020213 1373 TAD (050-160 /16 IS DECTAPE 8405 020214 7510 SPA 8406 020215 5233 JMP OS8KSK /6 TO 15 = DSK 8407 020216 7450 SNA 8408 020217 5236 JMP OS8DTA /16 = DTA: 8409 020220 1257 TAD KRK8E /IS SYS AN RK8E? 8410 020221 7440 SZA 8411 020222 5226 JMP OS8ERR /NO. 8412 020223 1260 TAD KIORK8 /YES, REPLACE THE RK8 IOT WITH 8413 020224 3056 DCA RK8EIO /THE RK8E IOT IN THE BOOT- 8414 020225 5237 JMP OS8RK8 /STRSP IMAGE. 8415 020226 7200 OS8ERR, CLA 8416 020227 6221 CDF 20 8417 020230 4772 JMS I (BEG003 8418 020231 4207 OS8ERM /BAD O/S8 DEVICE 8419 020232 5771 JMP I (BEGMV0 /DO NOT SET UP ANY THING 8420 8421 020233 7200 OS8KSK, CLA 8422 020234 5235 JMP OS8DSK 8423 8424 020235 7001 OS8DSK, IAC 8425 020236 7001 OS8DTA, IAC 8426 020237 7001 OS8RK8, IAC 8427 020240 1370 TAD (OS8LST-1 8428 020241 3034 DCA OS8PTR 8429 020242 6221 CDF 20 8430 020243 1434 TAD I OS8PTR 8431 020244 3034 DCA OS8PTR /POINT TO BOOTSTRAP 8432 020245 4772 JMS I (BEG003 8433 020246 4241 OS8MSG /O/S8 MESSAGE 8434 020247 4772 JMS I (BEG003 8435 020250 4253 OS8AB, OS8M1 8436 020251 4772 JMS I (BEG003 8437 020252 4256 OS8M2 8438 020253 5771 JMP I (BEGMV0 8439 8440 020254 0035 OS8LST, OSDRK8 8441 020255 0101 OSDDTA 8442 020256 0057 OSDDSK 8443 020257 7730 KRK8E, 160-230 8444 020260 6743 KIORK8, 6743 8445 USR=7700 /ENTRY POINT TO OS-8 USR 8446 FETCH=1 /FETCH DEVICE HANDLER 8447 L00KUP=2 /LOOK UP BLOCK NUMBER OF FILE 8448 CHA1N=6 /CHAIN TO A PROGRAM ON "SYS:" 8449 8450 020261 4772 ERRLDR, JMS I (BEG003 /COULDN'T FIND HANDLER OR W.L. 8451 020262 4670 LDRERR 8452 020263 4772 JMS I (BEG003 8453 020264 4724 LDRER2 8454 020265 6203 CIF CDF 0 8455 020266 5767 JMP I (7605 /RETURN TO OS8 8456 8457 020267 4772 ERRCHN, JMS I (BEG003 8458 020270 4736 CHNERR 8459 020271 5263 JMP ERRLDR+2 8460 8461 020272 6212 BEG708, CIF 10 8462 020273 4766 JMS I (USR /LOAD HANDLER AND 8463 020274 0001 FETCH /GET NUMBER OF DEVICE "SYS" 8464 020275 2331 TEXT %SYS% /NO DEVICE PSEUDO-OP IN PAL10 020276 2300 8465 SYSNO=.-1 8466 020277 4001 4001 /HE'S DEAD ANYWAY, SO NO NEED TO SAVE 8467 /THE AREA FOR THE DEVICE HANDLER 8468 020300 5267 JMP ERRCHN /ERROR - CAN'T CHAIN 8469 020301 1276 TAD SYSNO /LOAD DEVICE NUMBER 8470 020302 6212 CIF 10 8471 020303 4766 JMS I (USR 8472 020304 0002 L00KUP 8473 020305 0316 BLOCK0, EDUNAM 8474 020306 0000 0 8475 020307 5267 JMP ERRCHN /ERROR - EDU25 NOT ON "SYS" 8476 020310 1305 TAD BLOCK0 /MOVE BLOCK NUMBER 8477 020311 3315 DCA STCHN /FOR USE BY CHAIN 8478 020312 6212 CIF 10 8479 020313 4766 JMS I (USR 8480 020314 0006 CHA1N 8481 020315 0000 STCHN, 0 8482 8483 020316 0504 EDUNAM, TEXT %EDU25% /NO FILENAME PSEUDO-OP IN PAL10 020317 2562 020320 6500 8484 020321 2326 2326 /"SV" 8485 8486 /CALLING SEQUENCE 8487 / JMS I (BEG01Q 8488 / MSGADR /ADDRESS OF MESSAGE TO BE PRINTED 8489 / JMP NO /RETURNS HERE IF ANSWER IS "N" 8490 / JMP YES /RETURNS HERE IF ANSWER IS "Y" 8491 020322 0000 BEG01Q, 0 /ASK QUESTION - GET ANSWER 8492 020323 1722 TAD I BEG01Q /SKIP IF YES, NOT IF NO 8493 020324 2322 ISZ BEG01Q /OTHERWISE GIVE ERROR AND REPEAT QUESTION 8494 020325 3327 DCA .+2 8495 020326 4772 JMS I (BEG003 8496 020327 0000 0 8497 020330 4765 JMS I (BEG001 8498 020331 1364 TAD (-"Y 8499 020332 7450 SNA 8500 020333 5342 JMP BEG1QR 8501 020334 1363 TAD ("Y-"N 8502 020335 7650 SNA CLA 8503 020336 5343 JMP BEG1QR+1 8504 020337 4772 JMS I (BEG003 8505 020340 4303 BEGME 8506 020341 5326 JMP BEG01Q+4 8507 020342 2322 BEG1QR, ISZ BEG01Q 8508 020343 5722 JMP I BEG01Q 8509 8510 020363 0013 PAGE 020364 7447 020365 1014 020366 7700 020367 7605 020370 0253 020371 0400 020372 1032 020373 7670 020374 7730 020375 0770 020376 7760 020377 5600 8511 8512 8513 8514 020400 6201 BEGMV0, CDF 8515 020401 1777 TAD I (FLOP 8516 020402 3776 DCA I (OPTABL+5 8517 020403 6211 CDF 10 8518 020404 1735 TAD I BEGIN1 /MAKE SURE THAT NO ERRORS ARE NEG. SO THAT 8519 /THEY DON'T TERMINATE TABLE 8520 020405 7001 IAC 8521 020406 7110 CLL RAR 8522 020407 3735 DCA I BEGIN1 8523 020410 2335 ISZ BEGIN1 8524 020411 2336 ISZ BEGIN2 8525 020412 5204 JMP .-6 8526 020413 1375 BEG002, TAD (BEG009 8527 020414 3337 DCA BEGXR1 8528 020415 1374 TAD (KL8JM0 8529 020416 3340 DCA BEGXR2 8530 020417 4316 JMS BEG008 8531 020420 1373 TAD (KL8JMP 8532 020421 3340 DCA BEGXR2 8533 020422 4316 JMS BEG008 8534 020423 6221 CDF 20 8535 020424 6032 KCC 8536 020425 1372 TAD (BEGIOT 8537 020426 3333 DCA BEG012 8538 020427 1371 TAD (-7 8539 020430 3334 DCA BEG013 8540 020431 1370 TAD (120 8541 020432 3733 DCA I BEG012 8542 020433 2333 ISZ BEG012 8543 020434 2334 ISZ BEG013 8544 020435 5231 JMP .-4 8545 020436 4767 JMS I (BEG003 8546 020437 4315 BEGM1 /INIT MESSAGE 8547 020440 4767 BEG006, JMS I (BEG003 8548 020441 4340 BEGM2 /# USER MESSAGE 8549 020442 4766 JMS I (BEG001 8550 020443 1365 TAD (-"8 8551 020444 7540 SMA SZA 8552 020445 5764 JMP I (BEG005 8553 020446 1363 TAD (10 8554 020447 7550 SPA SNA 8555 020450 5764 JMP I (BEG005 8556 020451 7041 CIA 8557 020452 3024 DCA BEGUSR 8558 020453 5762 JMP I (BEGX08 8559 020454 1341 CORDON, TAD SIZFUJ /FUDGE CORE SIZE BY ADDING SOMETHING PATCHABLE 8560 020455 1031 TAD BEGCOR 8561 020456 3031 DCA BEGCOR 8562 020457 6221 CDF 20 8563 020460 4743 JMS I BGCMFL /CHECK FOR COMMON FILE EXTS. 8564 020461 4742 JMS I BGNOCR /CHECK FOR CARD READER USAGE. 8565 020462 4744 JMS I BGLPCK /CHECK FOR LPT USAGE. 8566 020463 1024 TAD BEGUSR 8567 020464 7001 IAC 8568 020465 7650 SNA CLA 8569 020466 5271 JMP BEG010 8570 020467 4761 JMS I (BEG01Q 8571 020470 4356 BEGM4 /DC02? 8572 8573 020471 7340 BEG010, L7777 /BEGDEV=-1 IF NOT DC02 8574 020472 3026 DCA BEGDEV /BEGDEV= 0 IF DC02 8575 020473 1026 TAD BEGDEV 8576 020474 7650 SNA CLA 8577 020475 5760 JMP I (BEGCK0 8578 020476 1372 TAD (BEGIOT 8579 020477 3333 DCA BEG012 8580 020500 1024 TAD BEGUSR 8581 020501 3334 DCA BEG013 8582 020502 1357 TAD (410 8583 020503 3332 DCA BEG12A 8584 020504 2334 BEG14B, ISZ BEG013 8585 020505 5307 JMP BEG14A 8586 020506 5756 JMP I (BEG015 8587 8588 020507 1332 BEG14A, TAD BEG12A 8589 020510 3733 DCA I BEG012 8590 020511 2333 ISZ BEG012 8591 020512 1332 TAD BEG12A 8592 020513 1355 TAD (20 8593 020514 3332 DCA BEG12A 8594 020515 5304 JMP BEG14B 8595 8596 020516 0000 BEG008, 0 /UNPATCH SCHEDULER AND INTERRUPT ROUTINE 8597 020517 7346 L7775 /IN CASE WE COME HERE FROM A ^C 8598 020520 3334 DCA BEG013 8599 020521 6221 CDF 20 8600 020522 1737 TAD I BEGXR1 8601 020523 2337 ISZ BEGXR1 8602 020524 6201 CDF 8603 020525 3740 DCA I BEGXR2 8604 020526 2340 ISZ BEGXR2 8605 020527 2334 ISZ BEG013 8606 020530 5321 JMP .-7 8607 020531 5716 JMP I BEG008 8608 8609 020532 0400 BEG12A, 400 8610 020533 0000 BEG012, 0 8611 020534 0000 BEG013, 0 8612 020535 3751 BEGIN1, ERRLST 8613 020536 7702 BEGIN2, ERRLST-ERREND 8614 020537 0000 BEGXR1, 0 8615 020540 0000 BEGXR2, 0 8616 020541 0000 SIZFUJ, 0 /PATCH THIS LOCATION TO USE LESS THAN MAXIMUM CORE 8617 /-1 SUBTRACTS 1 BANK FOR THE ACTUAL 8618 /CORE SIZE OF THE MACHINE. -2 SUBTRACTS 8619 /2, ETC. 8620 020542 6000 BGNOCR, BGCDR1 8621 020543 6052 BGCMFL, BGCMF1 8622 020544 6066 BGLPCK, BGLPT1 8623 020555 0020 PAGE 020556 0600 020557 0410 020560 1262 020561 0322 020562 0670 020563 0010 020564 1011 020565 7510 020566 1014 020567 1032 020570 0120 020571 7771 020572 3125 020573 5310 020574 0205 020575 1000 020576 5405 020577 2707 8624 8625 020600 1024 BEG015, TAD BEGUSR 8626 020601 7001 IAC 8627 020602 7650 SNA CLA 8628 020603 5777 JMP I (BEG15I /ONE USER 8629 /SEE BEG15I FOR EXPLANATION 8630 /BEG15E, 8631 / TAD (BEGM7B-1 /"REMOTE" 8632 / JMS I (BEGMFX 8633 020604 4776 JMS I (BEG01Q 8634 020605 4411 BEGM7 /STANDARD? 8635 020606 7410 SKP 8636 020607 5777 JMP I (BEG15I /MULTIPLE USER - STANDARD 8637 /BEG15A, 8638 020610 1024 TAD BEGUSR 8639 020611 3232 DCA BEG15B 8640 020612 1375 TAD (BEGIOT 8641 020613 3231 DCA BEG15C 8642 020614 1374 TAD (4361 /TEXT "#1" 8643 020615 3773 DCA I (BEGM5A 8644 020616 2232 BEG15D, ISZ BEG15B 8645 020617 7410 SKP 8646 020620 5777 JMP I (BEG15H 8647 020621 4233 JMS BEG014 8648 020622 4374 BEGM5 8649 020623 1030 TAD SS 8650 020624 1372 TAD (10 8651 020625 3631 DCA I BEG15C 8652 020626 2231 ISZ BEG15C 8653 020627 2773 ISZ I (BEGM5A 8654 020630 5216 JMP BEG15D 8655 8656 020631 0000 BEG15C, 0 8657 020632 0000 BEG15B, 0 8658 8659 020633 0000 BEG014, 0 8660 020634 1633 TAD I BEG014 8661 020635 2233 ISZ BEG014 8662 020636 3240 DCA .+2 8663 020637 4771 JMS I (BEG003 8664 020640 0000 0 8665 020641 4770 JMS I (BEG001 8666 020642 1367 TAD (-"7 8667 020643 7540 SMA SZA 8668 020644 5766 JMP I (BEG016 8669 020645 1365 TAD (7 8670 020646 7510 SPA 8671 020647 5766 JMP I (BEG016 8672 020650 7106 CLL RTL 8673 020651 7006 RTL 8674 020652 7006 RTL 8675 020653 3030 DCA SS 8676 020654 4770 JMS I (BEG001 8677 020655 1367 TAD (-"7 8678 020656 7540 SMA SZA 8679 020657 5766 JMP I (BEG016 8680 020660 1365 TAD (7 8681 020661 7510 SPA 8682 020662 5766 JMP I (BEG016 8683 020663 7106 CLL RTL 8684 020664 7004 RAL 8685 020665 1030 TAD SS 8686 020666 3030 DCA SS 8687 020667 5633 JMP I BEG014 8688 /FIGURE OUT HIGHEST CORE FIELD FOR HIM 8689 020670 7301 BEGX08, L0001 8690 020671 3031 DCA BEGCOR /FIELD 1 TOP TO START WITH 8691 020672 1364 TAD (6221 8692 020673 3302 DCA BEGCHK 8693 020674 1305 TAD CNOP 8694 020675 6201 CDF 8695 020676 3763 DCA I (0 8696 020677 6211 CDF 10 8697 020700 1305 TAD CNOP 8698 020701 3763 DCA I (0 8699 020702 0000 BEGCHK, 0 8700 020703 1362 TAD (1000 8701 020704 3763 DCA I (0 8702 020705 7000 CNOP, NOP 8703 020706 1763 TAD I (0 8704 020707 7410 SKP /PDP-8 NXM BUG 8705 020710 7402 HLT /THIS SHOULD HAUL DOWN A PDP-8 8706 020711 6211 CDF 10 /DOUBLE CHECK FOR PDP8/L 8707 020712 1763 TAD I (0 8708 020713 7640 SZA CLA 8709 020714 5761 JMP I (CORDON /NO MORE CORE 8710 020715 1362 TAD (1000 8711 020716 6201 CDF 8712 020717 1763 TAD I (0 8713 020720 7640 SZA CLA 8714 020721 5761 JMP I (CORDON /NO MORE CORE-PROBABLY A PDP-8/L 8715 020722 2031 ISZ BEGCOR /THIS FIELD WAS SUCCESSFUL 8716 020723 1302 TAD BEGCHK 8717 020724 1372 TAD (10 8718 020725 3302 DCA BEGCHK 8719 020726 5302 JMP BEGCHK 8720 020761 0454 PAGE 020762 1000 020763 0000 020764 6221 020765 0007 020766 1006 020767 7511 020770 1014 020771 1032 020772 0010 020773 4401 020774 4361 020775 3125 020776 0322 020777 1200 8721 8722 BEG009, 8723 NOPUNCH 8724 *KL8JM0 8725 ENPUNCH 8726 020205 6202 CIF 8727 020206 1121 TAD LOOKST 8728 020207 3120 DCA LOOK 8729 NOPUNCH 8730 *KL8JMP 8731 ENPUNCH 8732 025310 1326 TAD SAVLK 8733 025311 7104 CLL RAL 8734 025312 1325 TAD SAVAC 8735 NOPUNCH 8736 *BEG009+6 8737 ENPUNCH 8738 8739 8740 8741 021006 4232 BEG016, JMS BEG003 8742 021007 4303 BEGME 8743 021010 5777 JMP I (BEG014+4 8744 8745 021011 4232 BEG005, JMS BEG003 8746 021012 4303 BEGME 8747 021013 5776 JMP I (BEG006 8748 8749 021014 0000 BEG001, 0 8750 021015 6031 KSF 8751 021016 5215 JMP .-1 8752 021017 6036 KRB 8753 021020 1375 TAD (-203 8754 021021 7450 SNA 8755 021022 5774 JMP I (BEG708 /CHAIN TO EDU25 FOR ^C 8756 021023 1373 TAD (203 8757 021024 6046 TLS 8758 021025 6041 TSF 8759 021026 5225 JMP .-1 8760 021027 0372 AND (177 8761 021030 1371 TAD (200 8762 021031 5614 JMP I BEG001 8763 8764 /BEGMF1, 8765 021032 0000 BEG003, 0 8766 021033 7200 CLA 8767 021034 1632 TAD I BEG003 8768 021035 3300 DCA BEG004 8769 021036 2232 ISZ BEG003 8770 021037 1700 TAD I BEG004 8771 021040 7112 CLL RTR 8772 021041 7012 RTR 8773 021042 7012 RTR 8774 021043 4250 JMS BEG03X 8775 021044 1700 TAD I BEG004 8776 021045 4250 JMS BEG03X 8777 021046 2300 ISZ BEG004 8778 021047 5237 JMP BEG003+5 8779 8780 /BEGMF2, 8781 021050 0000 BEG03X, 0 8782 021051 0370 AND (77 8783 021052 7450 SNA 8784 021053 5632 JMP I BEG003 8785 021054 1367 TAD (-37 8786 021055 7450 SNA 8787 021056 5274 JMP CRLF 8788 021057 7510 SPA 8789 021060 1366 TAD (100 8790 021061 1365 TAD (237 8791 021062 4264 JMS TTCHAR 8792 021063 5650 JMP I BEG03X 8793 8794 021064 0000 TTCHAR, 0 8795 021065 6046 TLS 8796 021066 7200 CLA 8797 021067 6041 TSF 8798 021070 5267 JMP .-1 8799 021071 6031 KSF 8800 021072 5664 JMP I TTCHAR 8801 021073 5632 JMP I BEG003 /EXIT ON CHAR. 8802 021074 1364 CRLF, TAD (215 8803 021075 4264 JMS TTCHAR 8804 021076 1363 TAD (212 8805 021077 5262 JMP TTCHAR-2 8806 021100 0000 BEG004, 0 8807 8808 021163 0212 PAGE 021164 0215 021165 0237 021166 0100 021167 7741 021170 0077 021171 0200 021172 0177 021173 0203 021174 0272 021175 7575 021176 0440 021177 0637 8809 BEG15I, 8810 8811 8812 /NON-STANDARD USED CODES 8813 021200 4224 BEG15H, JMS BEG15G /MOVE IN USED IOT'S 8814 021201 4777 JMS I (BEG01Q 8815 021202 4641 BEGM9 /"ANY UNUSED TERMINALS?" 8816 021203 5260 JMP BEG011 /NO - DUN 8817 021204 5210 JMP .+4 8818 021205 4777 BEG15K, JMS I (BEG01Q 8819 021206 4631 BEGM8 /"MORE?" 8820 021207 5260 JMP BEG011 /NO - KAPUT! 8821 021210 4776 JMS I (BEG014 8822 021211 4661 BEGM10 /"DEVICE CODE?" 8823 021212 1030 TAD SS 8824 021213 1375 TAD (6000 8825 021214 4216 JMS BEG15F /INSERT IN PATCH 8826 021215 5205 JMP BEG15K 8827 8828 8829 /INSERT WORD INTO PATCH 8830 021216 0000 BEG15F, 0 8831 021217 3432 DCA I KLTOP 8832 021220 7340 L7777 8833 021221 1032 TAD KLTOP 8834 021222 3032 DCA KLTOP 8835 021223 5616 JMP I BEG15F 8836 8837 8838 /MOVE IOT'S FROM BEGIOT TO PATCH 8839 021224 0000 BEG15G, 0 8840 021225 7200 CLA 8841 021226 1374 TAD (KL8FIX-1 8842 021227 3032 DCA KLTOP 8843 021230 7303 CLA CLL IAC BSW /IS IT A PDP-8/E? 8844 021231 1373 TAD (-100 8845 021232 7640 SZA CLA 8846 021233 5246 JMP BG15GA /NO, DON'T SET UP KL8E INTERRUPT 8847 /ENABLES. 8848 021234 1024 TAD BEGUSR 8849 021235 3027 DCA USRCTR 8850 021236 1372 TAD (BEGIOT-1 8851 021237 3021 DCA CORPTR 8852 021240 1421 TAD I CORPTR 8853 021241 1371 TAD (6005-10 8854 021242 4216 JMS BEG15F 8855 021243 2021 ISZ CORPTR 8856 021244 2027 ISZ USRCTR 8857 021245 5240 JMP .-5 8858 021246 1032 BG15GA, TAD KLTOP 8859 021247 3033 DCA KLSCH /SAVE ENTRY ADDRESS FOR SCHEDULER 8860 021250 7301 L0001 8861 021251 1032 TAD KLTOP 8862 021252 3023 DCA CORPT2 8863 021253 1250 TAD .-3 /INSERT L0001 8864 021254 4216 JMS BEG15F 8865 021255 1370 TAD (KL8INT&177+5200 /INSERT JMP KL8INT 8866 021256 4216 JMS BEG15F 8867 021257 5624 JMP I BEG15G 8868 8869 8870 021260 1367 BEG011, TAD (CLA 8871 021261 3432 DCA I KLTOP 8872 021262 1024 BEGCK0, TAD BEGUSR 8873 021263 7001 IAC 8874 021264 7650 SNA CLA 8875 021265 5766 JMP I (BEGOLD /ONLY 1 USER, ASSUME ANSWER! 8876 021266 4777 JMS I (BEG01Q 8877 021267 4563 BEGMQ /SAME AMT OF STG FOR ALL USRS? 8878 021270 5765 JMP I (BEG500 /NO - GO ASK HIM 8879 021271 5766 JMP I (BEGOLD /YES - ALLOCATE IT FOR HIM 8880 8881 021365 1403 PAGE 021366 3000 021367 7200 021370 5366 021371 5775 021372 3124 021373 7700 021374 7754 021375 6000 021376 0633 021377 0322 8882 LBLK=SS 8883 8884 OLNUM=USRPT2 8885 NUNUM=CORPT2 8886 021400 6221 BEGER0, CDF 20 8887 021401 4777 JMS I (BEG003 8888 021402 4533 WNGDM 8889 021403 6221 BEG500, CDF 20 8890 021404 1024 TAD BEGUSR 8891 021405 3027 DCA USRCTR 8892 021406 1376 TAD (USRLST 8893 021407 3020 DCA USRPTR 8894 021410 1031 TAD BEGCOR 8895 021411 7001 IAC 8896 021412 3025 DCA CURFLD 8897 021413 7340 BEGFLD, L7777 8898 021414 1025 TAD CURFLD 8899 021415 7550 SPA SNA 8900 021416 5200 JMP BEGER0 /EH? 8901 021417 3025 DCA CURFLD 8902 021420 4777 JMS I (BEG003 8903 021421 4436 BEGMFL 8904 021422 1375 TAD (60 8905 021423 1025 TAD CURFLD 8906 021424 6046 TLS 8907 021425 7200 CLA 8908 021426 6041 TSF 8909 021427 5226 JMP .-1 8910 021430 7344 L7776 8911 021431 1025 TAD CURFLD 8912 021432 7510 SPA 8913 021433 5774 JMP I (BEGXYZ /FUDGE FIELD 1 8914 021434 7650 SNA CLA 8915 021435 1024 TAD BEGUSR /DELETE ONE BLOCK PER USER IN FIELD 2 8916 021436 1373 TAD (20 /FOR USE AS DECTAPE BUFFERS 8917 021437 3030 DCA LBLK 8918 021440 4777 BEGXXX, JMS I (BEG003 8919 021441 4442 BEGMXX 8920 021442 1030 TAD LBLK 8921 021443 4772 JMS I (BEGPRNT 8922 021444 4777 JMS I (BEG003 8923 021445 4450 BEGMX1 8924 021446 4771 JMS I (BEG001 8925 021447 1370 TAD (-"8 8926 021450 7540 SMA SZA 8927 021451 5345 JMP BEGER1 8928 021452 1367 TAD (10 8929 021453 7550 SPA SNA 8930 021454 5345 JMP BEGER1 /BAD USERNO 8931 021455 3420 DCA I USRPTR 8932 021456 1024 TAD BEGUSR 8933 021457 1420 TAD I USRPTR 8934 021460 7740 SMA SZA CLA 8935 021461 5345 JMP BEGER1 /NONEXISTENT USER DUMMY 8936 021462 2020 ISZ USRPTR 8937 021463 1025 TAD CURFLD 8938 021464 3420 DCA I USRPTR 8939 021465 2020 ISZ USRPTR /AND HIS NO. 8940 021466 4777 BEGRE, JMS I (BEG003 8941 021467 4504 BEGTTI 8942 021470 3022 DCA OLNUM /DOUBLE CHECK! 8943 021471 4771 BEGINP, JMS I (BEG001 8944 021472 1366 TAD (-215 8945 021473 7450 SNA 8946 021474 5314 JMP DN 8947 021475 1365 TAD (215-"9 8948 021476 7540 SMA SZA 8949 021477 5342 JMP BEGER2 /UNGOOD NO 8950 021500 1364 TAD (11 8951 021501 7510 SPA 8952 021502 5342 JMP BEGER2 /LIKEWISE 8953 021503 3023 DCA NUNUM 8954 021504 1022 TAD OLNUM /MULT BY 10 DECIM 8955 021505 7104 CLL RAL 8956 021506 7006 RTL 8957 021507 1022 TAD OLNUM 8958 021510 1022 TAD OLNUM 8959 021511 1023 TAD NUNUM /PLUS NEW DIGIT 8960 021512 3022 DCA OLNUM /MAKES NEW NO 8961 021513 5271 JMP BEGINP 8962 021514 1022 DN, TAD OLNUM 8963 021515 7570 SNA SPA SZL 8964 021516 5342 JMP BEGER2 /JUNKY NO 8965 021517 7041 CIA 8966 021520 1030 TAD LBLK 8967 021521 7510 SPA 8968 021522 5200 JMP BEGER0 /TOO MUCH ASKED FOR 8969 021523 3030 DCA LBLK /NEW AMOUNT REMAINING 8970 021524 1022 TAD OLNUM 8971 021525 2027 ISZ USRCTR 8972 021526 7410 SKP 8973 021527 5350 JMP BEGR2 8974 021530 3420 DCA I USRPTR 8975 021531 2020 ISZ USRPTR 8976 021532 1030 TAD LBLK 8977 021533 7640 SZA CLA /MORE TO COME IN THIS FIELD? 8978 021534 5240 JMP BEGXXX /SURE IS 8979 021535 7340 L7777 8980 021536 1025 TAD CURFLD 8981 021537 7750 SNA SPA CLA 8982 021540 5200 JMP BEGER0 8983 021541 5213 JMP BEGFLD /MORE FIELDS TO COME 8984 021542 4777 BEGER2, JMS I (BEG003 8985 021543 4303 BEGME 8986 021544 5266 JMP BEGRE 8987 021545 4777 BEGER1, JMS I (BEG003 8988 021546 4303 BEGME 8989 021547 5240 JMP BEGXXX 8990 021550 1030 BEGR2, TAD LBLK /EXPAND HIM TO FINISH FIELD 8991 021551 3420 DCA I USRPTR /THERE'S NO REASON TO WASTE CORE 8992 021552 2020 ISZ USRPTR /JUST THINK OF ALL THE PEOPLE WHO GO TO BED HUNGRY FOR IT EVERY NIGHT! 8993 021553 5763 JMP I (BEG540 8994 8995 021563 1600 PAGE 021564 0011 021565 7724 021566 7563 021567 0010 021570 7510 021571 1014 021572 2324 021573 0020 021574 2117 021575 0060 021576 2600 021577 1032 8996 021600 1026 BEG540, TAD BEGDEV 8997 021601 7650 SNA CLA 8998 021602 5255 JMP BEG550-1 /THE USER HAS AN 8/E WITH DC02 8999 021603 6201 CDF 9000 021604 1033 TAD KLSCH 9001 021605 3650 DCA I BEGKL5 9002 021606 1032 TAD KLTOP 9003 021607 3651 DCA I BEGKL6 9004 021610 6221 CDF 20 9005 021611 1245 TAD KL8FRST 9006 021612 7640 SZA CLA /FIRST TIME THROUGH 9007 021613 5256 JMP BEG550 /NO 9008 021614 2245 ISZ KL8FRST /SIGNIFY DONE 9009 021615 2244 ISZ BEGKL2 9010 021616 1643 TAD I BEGKL1 9011 021617 3644 DCA I BEGKL2 9012 021620 2243 ISZ BEGKL1 /MOVE PATCH TO PROPER POSITION 9013 021621 5215 JMP .-4 9014 021622 6201 CDF 9015 021623 1377 TAD (CIF 20 9016 021624 3646 DCA I BEGKL3 9017 021625 2246 ISZ BEGKL3 9018 021626 1376 TAD (KL8JMP+2&177+5600 9019 021627 3646 DCA I BEGKL3 9020 021630 1377 TAD (CIF 20 9021 021631 3647 DCA I BEGKL4 9022 021632 2247 ISZ BEGKL4 9023 021633 1375 TAD (KL8JM0+2&177+5600 9024 021634 3647 DCA I BEGKL4 9025 021635 6221 CDF 20 9026 021636 7303 CLA CLL IAC BSW /IS IT A PDP-8/E? 9027 021637 1374 TAD (-100 9028 021640 7640 SZA CLA 9029 021641 5252 JMP BEG550-4 /NO. 9030 021642 5254 JMP BEG550-2 /SET TOP OF FIELD 2 9031 021643 7755 BEGKL1, KL8LOD 9032 021644 7754 BEGKL2, KL8FIX-1 9033 021645 0000 KL8FRST, 0 9034 021646 5310 BEGKL3, KL8JMP 9035 021647 0205 BEGKL4, KL8JM0 9036 021650 0207 BEGKL5, KL8JM0+2 9037 021651 5312 BEGKL6, KL8JMP+2 9038 9039 021652 6211 CDF 10 /REMOVE THE CAF INSTR. WHEN 9040 021653 3773 DCA I (INTRRV /NOT AN 8/E 9041 021654 1032 TAD KLTOP 9042 021655 3032 DCA KLTOP 9043 021656 6221 BEG550, CDF 20 9044 021657 1372 TAD (USRLST /NOW WE SORT FOR FIELDS TO MAKE IT EASY 9045 021660 3020 DCA USRPTR 9046 021661 1371 TAD (3 9047 021662 1372 TAD (USRLST 9048 021663 3021 DCA CORPTR 9049 021664 1024 TAD BEGUSR 9050 021665 3027 DCA USRCTR 9051 021666 3030 DCA SS /SORT SWITCH FOR MODIFIED BUBBLE SORT 9052 021667 1020 BEG551, TAD USRPTR 9053 021670 7001 IAC 9054 021671 3022 DCA USRPT2 9055 021672 1021 TAD CORPTR 9056 021673 7001 IAC 9057 021674 3023 DCA CORPT2 9058 021675 2027 ISZ USRCTR 9059 021676 7410 SKP 9060 021677 5331 JMP BEG553 9061 021700 1422 TAD I USRPT2 9062 021701 7041 CIA 9063 021702 1423 TAD I CORPT2 9064 021703 7750 SNA SPA CLA /DECREASING SORT ON FIELDS 9065 021704 5322 JMP BEG552 9066 021705 7346 L7775 9067 021706 3030 DCA SS /3 SWAPS 9068 021707 1420 TAD I USRPTR 9069 021710 3335 DCA BEG554 9070 021711 1421 TAD I CORPTR 9071 021712 3420 DCA I USRPTR 9072 021713 1335 TAD BEG554 9073 021714 3421 DCA I CORPTR 9074 021715 2020 ISZ USRPTR 9075 021716 2021 ISZ CORPTR 9076 021717 2030 ISZ SS 9077 021720 5307 JMP .-11 9078 021721 2030 ISZ SS /SET TO INDICATE 9079 021722 7326 BEG552, L0002 9080 021723 1022 TAD USRPT2 9081 021724 3020 DCA USRPTR 9082 021725 7326 L0002 9083 021726 1023 TAD CORPT2 9084 021727 3021 DCA CORPTR 9085 021730 5267 JMP BEG551 9086 9087 021731 1030 BEG553, TAD SS 9088 021732 7640 SZA CLA 9089 021733 5256 JMP BEG550 9090 021734 5770 JMP I (BEG600 9091 9092 021735 0000 BEG554, 0000 9093 021770 2000 PAGE 021771 0003 021772 2600 021773 4607 021774 7700 021775 5607 021776 5712 021777 6222 9094 /THIS PAGE OF CODE CALCULATES THE ACTUAL ADDRESSES OF 9095 /EACH USER'S BOUNDARIES AND THE APPLICABLE CDF 9096 /INSTRUCTION. 9097 022000 1377 BEG600, TAD (BEGLST 9098 022001 3022 DCA USRPT2 9099 022002 1376 TAD (USRLST 9100 022003 3020 DCA USRPTR 9101 022004 1024 TAD BEGUSR 9102 022005 3027 DCA USRCTR 9103 022006 7340 L7777 9104 022007 3304 DCA BEG603 9105 022010 1775 TAD I (USRLST+1 9106 022011 3025 BEG610, DCA CURFLD /SET UP THE CURRENT FIELD 9107 022012 3303 DCA BEG602 9108 022013 1420 NXUSR, TAD I USRPTR /GET THE USER NO. 9109 022014 2020 ISZ USRPTR 9110 022015 3422 DCA I USRPT2 9111 022016 2022 ISZ USRPT2 9112 022017 1420 TAD I USRPTR /GET THE FIELD. 9113 022020 7041 CIA 9114 022021 1025 TAD CURFLD /IS THE FIELD GIVEN THE SAME AS THE CURRENT ONE? 9115 022022 7640 SZA CLA 9116 022023 5305 JMP BEG609 /NO, HE WANTS A NEW FIELD 9117 022024 2020 ISZ USRPTR 9118 022025 1025 TAD CURFLD 9119 022026 7104 CLL RAL 9120 022027 7006 RTL 9121 022030 1374 TAD (6201 /CREATE THE CDF INSTRUCTION. 9122 022031 3422 DCA I USRPT2 /STORE IN OUR QUICKIE LIST 9123 022032 2022 ISZ USRPT2 9124 022033 1420 TAD I USRPTR /GET THE NO. OF BLOCKS ALLOCATED FOR THIS USER. 9125 022034 2020 ISZ USRPTR 9126 022035 7041 CIA 9127 022036 3030 DCA SS 9128 022037 1373 TAD (400 9129 022040 2030 ISZ SS 9130 022041 5237 JMP .-2 /MULT. HIS BLOCKSIZE BY 400 OCTAL FOR CORE SIZE 9131 022042 3030 DCA SS 9132 022043 7344 L7776 /ARE WE IN FIELD 2? 9133 022044 1025 TAD CURFLD 9134 022045 7640 SZA CLA 9135 022046 5254 JMP .+6 /NO. 9136 022047 2304 ISZ BEG603 /YES, IS THIS THE 1ST USER IN FIELD 2? 9137 022050 5254 JMP .+4 /NO. 9138 022051 7344 L7776 /YES, KEEP THE USER AREA AWAY FROM THE 9139 /UNUSED TERMINAL CLEAR FLAG CODE. 9140 022052 1032 TAD KLTOP 9141 022053 5256 JMP .+3 9142 022054 7344 L7776 9143 022055 1303 TAD BEG602 9144 022056 3422 DCA I USRPT2 /SAVE THE TOP ADDRESS OF THE USER AREA. 9145 022057 2022 ISZ USRPT2 9146 022060 1030 TAD SS 9147 022061 7041 CIA 9148 022062 1303 TAD BEG602 9149 022063 3303 DCA BEG602 /SAVE THE BOTTOM OF THE AREA. 9150 022064 1303 TAD BEG602 9151 022065 3422 DCA I USRPT2 9152 022066 2022 ISZ USRPT2 9153 022067 2027 ISZ USRCTR 9154 022070 5213 JMP NXUSR 9155 022071 7340 L7777 9156 022072 1025 TAD CURFLD /WAS LAST USER IN FIELD 1? 9157 022073 7640 SZA CLA 9158 022074 5772 JMP I (BEG700 9159 022075 7340 L7777 /YES - DROP HIS LOWER BOUNDARY 9160 022076 1022 TAD USRPT2 /TO END OF LAST SWAP AREA 9161 022077 3303 DCA BEG602 9162 022100 4327 JMS BEGF1S 9163 022101 3703 DCA I BEG602 9164 022102 5772 JMP I (BEG700 /WHEW..THAT WENT QUICKLY ANYWAY 9165 022103 0000 BEG602, 0 /TOP 9166 022104 0000 BEG603, 0 /SWITCH FOR FIRST FIELD 2 USER 9167 022105 1020 BEG609, TAD USRPTR 9168 022106 3025 DCA CURFLD /SAVE IT 9169 022107 7340 L7777 9170 022110 1020 TAD USRPTR 9171 022111 3020 DCA USRPTR /TAKE OUT ENTRIES 9172 022112 7340 L7777 9173 022113 1022 TAD USRPT2 9174 022114 3022 DCA USRPT2 9175 022115 1425 TAD I CURFLD /COUNT DOWN FIELD 9176 022116 5211 JMP BEG610 9177 9178 9179 022117 4327 BEGXYZ, JMS BEGF1S /CALCULATE NUMBER OF BLOCKS IN FIELD 1 9180 022120 7041 CIA /SUBTRACT FROM 4K 9181 022121 0371 AND (7400 /ROUND DOWN TO NEAREST INTEGRAL BLOCK 9182 022122 7104 CLL RAL 9183 022123 7006 RTL 9184 022124 7006 RTL 9185 022125 3030 DCA LBLK /TO GET NUMBER OF BLOCKS 9186 022126 5770 JMP I (BEGXXX 9187 9188 022127 0000 BEGF1S, 0 /CALCULATE SIZE OF EDU25 IN FIELD 1 9189 022130 7200 CLA 9190 022131 1024 TAD BEGUSR 9191 022132 3030 DCA LBLK 9192 022133 1367 TAD (SWAPR /ADD SIZE OF ALL SWAP REGIONS 9193 022134 2030 ISZ LBLK 9194 022135 5333 JMP .-2 9195 022136 1340 TAD ORGADR /TO AREA ALREADY TAKEN UP BY EDU25 9196 022137 5727 JMP I BEGF1S 9197 CDCHNG=. 9198 /THE FOLLOWING LOCATION BECOMES LPTORG IF THE 9199 /LPT IS USED AND THE CDR IS NOT. 9200 COL100=. 9201 COV100=LPTORG 9202 /THE FOLLOWING LOCATION IS CHANGED TO NCDORG 9203 /IF THE CDR & LPT ARE NOT USED. 9204 LOL100=. 9205 LOV100=NCDORG 9206 022140 7037 ORGADR, ORG1 9207 9208 022167 0074 PAGE 022170 1440 022171 7400 022172 2200 022173 0400 022174 6201 022175 2601 022176 2600 022177 4000 9209 9210 022200 1377 BEG700, TAD (BEGLST 9211 022201 3020 DCA USRPTR 9212 022202 3030 DCA SS 9213 022203 1024 TAD BEGUSR 9214 022204 3027 DCA USRCTR 9215 022205 1376 TAD (4 9216 022206 1377 TAD (BEGLST 9217 022207 3022 DCA USRPT2 9218 022210 2027 BEG7X1, ISZ USRCTR 9219 022211 7410 SKP 9220 022212 5246 JMP BEG703 9221 022213 1420 TAD I USRPTR 9222 022214 7041 CIA 9223 022215 1422 TAD I USRPT2 9224 022216 7450 SNA 9225 022217 5775 JMP I (BEGER0 /MULTIPLE ASSIGNMENTS FOR ONE USER 9226 022220 7700 SMA CLA /ASCENDING SORT ON USER NUMBERS 9227 022221 5240 JMP BEG702 9228 022222 1374 TAD (-4 9229 022223 3030 DCA SS 9230 022224 1420 BEG701, TAD I USRPTR 9231 022225 3021 DCA CORPTR 9232 022226 1422 TAD I USRPT2 9233 022227 3420 DCA I USRPTR 9234 022230 1021 TAD CORPTR 9235 022231 3422 DCA I USRPT2 9236 022232 2020 ISZ USRPTR 9237 022233 2022 ISZ USRPT2 9238 022234 2030 ISZ SS 9239 022235 5224 JMP BEG701 9240 022236 2030 ISZ SS 9241 022237 1374 TAD (-4 9242 022240 1022 BEG702, TAD USRPT2 9243 022241 3020 DCA USRPTR 9244 022242 1376 TAD (4 9245 022243 1020 TAD USRPTR 9246 022244 3022 DCA USRPT2 9247 022245 5210 JMP BEG7X1 9248 9249 022246 1030 BEG703, TAD SS 9250 022247 7640 SZA CLA 9251 022250 5200 JMP BEG700 /MORE TO COME 9252 022251 1377 TAD (BEGLST 9253 022252 3020 DCA USRPTR /NOW TAKE OUT USER NOS. 9254 022253 1024 TAD BEGUSR 9255 022254 3027 DCA USRCTR 9256 022255 7001 IAC 9257 022256 1377 TAD (BEGLST 9258 022257 3022 DCA USRPT2 9259 022260 7346 BEG704, L7775 9260 022261 3030 DCA SS 9261 022262 1422 TAD I USRPT2 9262 022263 3420 DCA I USRPTR 9263 022264 2020 ISZ USRPTR 9264 022265 2022 ISZ USRPT2 9265 022266 2030 ISZ SS 9266 022267 5262 JMP .-5 9267 022270 2022 ISZ USRPT2 /SKIP OVER USER NO. 9268 022271 2027 ISZ USRCTR 9269 022272 5260 JMP BEG704 9270 022273 4773 JMS I (BEG01Q 9271 022274 4611 BEGM6A 9272 022275 5772 JMP I (BEG708 /OH NO--ALL THIS JUNK FOR NOTHING! 9273 9274 /ALL'S WELL - PRINT "END OF DIALOGUE" AND MOVE IN OS-8 BOOTSTRAP 9275 / AND PAGE 7600 FIELD 0 9276 022276 4771 JMS I (BEG003 9277 022277 4521 BEGM6 9278 9279 022300 6211 BEGMV4, CDF 10 9280 022301 1721 TAD I BEGMV1 /MOVE PAGE 7600 FIELD 0 INTO ITS SPOT 9281 022302 6201 CDF 9282 022303 3722 DCA I BEGMV2 9283 022304 2321 ISZ BEGMV1 9284 022305 2322 ISZ BEGMV2 9285 022306 2323 ISZ BEGMV3 9286 022307 5300 JMP BEGMV4 9287 9288 022310 6221 OS8LP1, CDF 20 9289 022311 1434 TAD I OS8PTR 9290 022312 2034 ISZ OS8PTR 9291 022313 6201 CDF 9292 022314 3720 DCA I OS8PT2 9293 022315 2320 ISZ OS8PT2 9294 022316 5310 JMP OS8LP1 9295 9296 022317 5770 JMP I (BEG750 9297 9298 022320 7756 OS8PT2, 7756 /INTO RIM LOCATIONS 9299 022321 7400 BEGMV1, MVPAG 9300 022322 7600 BEGMV2, 7600 9301 022323 7622 BEGMV3, -156 9302 9303 022324 0000 BEGPRNT,0 9304 022325 3360 DCA BEG705 9305 022326 1367 TAD (-12 9306 022327 3356 DCA BEG706 9307 022330 3357 DCA BEG707 9308 022331 5334 JMP .+3 9309 022332 2357 ISZ BEG707 9310 022333 3360 DCA BEG705 9311 022334 1360 BEGPR1, TAD BEG705 9312 022335 1356 TAD BEG706 9313 022336 7500 SMA 9314 022337 5332 JMP .-5 9315 022340 7200 CLA 9316 022341 1366 TAD (60 9317 022342 1357 TAD BEG707 9318 022343 6046 TLS 9319 022344 6041 TSF 9320 022345 5344 JMP .-1 9321 022346 6032 KCC 9322 022347 2356 ISZ BEG706 9323 022350 7410 SKP 9324 022351 5724 JMP I BEGPRNT /WAS SECOND TIME THROUGH 9325 022352 7340 L7777 9326 022353 3356 DCA BEG706 9327 022354 3357 DCA BEG707 9328 022355 5334 JMP BEGPR1 9329 022356 0000 BEG706, 0 9330 022357 0000 BEG707, 0 9331 022360 0000 BEG705, 0 9332 BEG604=SS 9333 BEG605=USRPTR 9334 022366 0060 PAGE 022367 7766 022370 2400 022371 1032 022372 0272 022373 0322 022374 7774 022375 1400 022376 0004 022377 4000 9335 9336 022400 6221 BEG750, CDF 20 9337 022401 1031 TAD BEGCOR 9338 022402 3777 DCA I (BGCORS 9339 022403 6201 CDF 9340 022404 1776 TAD I (MLOOKE 9341 022405 1024 TAD BEGUSR 9342 022406 3776 DCA I (MLOOKE /CORRECT FOR NO. OF USERS 9343 022407 1776 TAD I (MLOOKE 9344 022410 7041 CIA 9345 022411 3775 DCA I (LOOK 9346 022412 1024 TAD BEGUSR 9347 022413 3774 DCA I (MUSER /SETUP FOR NO. OF USERS 9348 022414 1373 TAD (BEGIOT-1 9349 022415 3030 DCA BEG604 9350 022416 1372 TAD (INTRPL 9351 022417 3020 DCA BEG605 9352 022420 7340 L7777 9353 022421 1024 TAD BEGUSR 9354 022422 3306 DCA BEG60X 9355 022423 1024 TAD BEGUSR 9356 022424 3027 DCA USRCTR 9357 022425 6221 BEG75Q, CDF 20 9358 022426 1430 TAD I BEG604 9359 022427 2030 ISZ BEG604 9360 022430 6201 CDF 9361 022431 2306 ISZ BEG60X 9362 022432 5236 JMP .+4 9363 022433 7240 CLA CMA 9364 022434 3306 DCA BEG60X 9365 022435 1371 TAD (CLA-6006 9366 022436 1370 TAD (6006 9367 022437 3420 DCA I BEG605 9368 022440 2020 ISZ BEG605 9369 022441 2027 ISZ USRCTR 9370 022442 5225 JMP BEG75Q 9371 022443 6201 CDF 9372 022444 1024 TAD BEGUSR 9373 022445 3030 DCA SS 9374 022446 2030 ISZ SS 9375 022447 7410 SKP 9376 022450 5253 JMP .+3 9377 022451 7130 CLL CML RAR 9378 022452 5246 JMP .-4 9379 022453 1367 TAD (10 9380 022454 3766 DCA I (AUSER 9381 022455 6221 CDF 20 9382 022456 1026 TAD BEGDEV 9383 022457 7650 SNA CLA 9384 022460 5273 JMP BEG76X 9385 022461 6201 CDF 9386 022462 3765 DCA I (XOUTL6+3 9387 022463 3764 DCA I (XOUTL6-3 9388 022464 3763 DCA I (INTRP2-2 9389 022465 3762 DCA I (INTRP2+4 9390 022466 3761 DCA I (INTRP5 9391 022467 3760 DCA I (INTRP5+1 9392 022470 6211 CDF 10 9393 022471 3757 DCA I (INTRV2+1 9394 022472 5756 JMP I (BEG800 9395 9396 022473 1355 BEG76X, TAD (17 9397 022474 6117 MTON 9398 022475 7301 L0001 9399 022476 6115 MINT 9400 022477 7200 CLA /TURN ON INTERRUPTS 9401 022500 6211 CDF 10 9402 022501 1354 TAD (TLS 9403 022502 3753 DCA I (INTRRV 9404 022503 1352 TAD (MTLS 9405 022504 3751 DCA I (INTRV2+2 9406 022505 5756 JMP I (BEG800 9407 9408 022506 0000 BEG60X, 0 9409 9410 022551 4613 PAGE 022552 6126 022553 4607 022554 6046 022555 0017 022556 3600 022557 4612 022560 5266 022561 5265 022562 5245 022563 5237 022564 3424 022565 3432 022566 5335 022567 0010 022570 6006 022571 1172 022572 5337 022573 3124 022574 5334 022575 0120 022576 0232 022577 7247 9411 022600 0000 USRLST, 0 9412 PAGE 9413 023000 7340 BEGOLD, L7777 9414 023001 1031 TAD BEGCOR /COUNT DOWN BY ONE FOR BREVITY OF LISTS 9415 023002 7106 CLL RTL 9416 023003 7004 RAL 9417 023004 1024 TAD BEGUSR /GET ADDR. OF ADDR. OF LIST 9418 023005 1377 TAD (BGLD1 9419 023006 3030 DCA SS 9420 023007 1430 TAD I SS 9421 023010 3030 DCA SS 9422 023011 1376 TAD (USRLST 9423 023012 3020 DCA USRPTR /SETUP TO SLIDE 9424 023013 1024 TAD BEGUSR 9425 023014 3027 DCA USRCTR /NO. OF SLIDES 9426 023015 1430 BEGOL1, TAD I SS 9427 023016 7106 CLL RTL 9428 023017 7006 RTL 9429 023020 0375 AND (7 9430 023021 7001 IAC 9431 023022 3420 DCA I USRPTR /USER NUMBER 9432 023023 2020 ISZ USRPTR 9433 023024 1430 TAD I SS 9434 023025 7112 CLL RTR 9435 023026 7012 RTR 9436 023027 7012 RTR 9437 023030 0375 AND (7 /SET FIELD 9438 023031 3420 DCA I USRPTR 9439 023032 2020 ISZ USRPTR 9440 023033 1430 TAD I SS 9441 023034 0374 AND (17 9442 023035 7001 IAC 9443 023036 3420 DCA I USRPTR /NUMBER OF BLOCKS 9444 023037 2030 ISZ SS 9445 023040 2020 ISZ USRPTR 9446 023041 2027 ISZ USRCTR 9447 023042 5215 JMP BEGOL1 9448 023043 5773 JMP I (BEG540 /CONTINUE ON...WE'VE ANSWERED QUESTIONS FOR HIM NOW. 9449 023044 3424 BGLD1, BGL28 9450 023045 3352 BGL27 9451 023046 3306 BGL26 9452 023047 3250 BGL25 9453 023050 3224 BGL24 9454 023051 3210 BGL23 9455 023052 3202 BGL22 9456 023053 3200 BGL21 9457 023054 3434 BGL38 9458 023055 3361 BGL37 9459 023056 3314 BGL36 9460 023057 3255 BGL35 9461 023060 3230 BGL34 9462 023061 3213 BGL33 9463 023062 3204 BGL32 9464 023063 3201 BGL31 9465 023064 3444 BGL48 9466 023065 3370 BGL47 9467 023066 3322 BGL46 9468 023067 3262 BGL45 9469 023070 3234 BGL44 9470 023071 3216 BGL43 9471 023072 3206 BGL42 9472 023073 3201 BGL41 9473 023074 3454 BGL58 9474 023075 3377 BGL57 9475 023076 3330 BGL56 9476 023077 3267 BGL55 9477 023100 3240 BGL54 9478 023101 3221 BGL53 9479 023102 3206 BGL52 9480 023103 3201 BGL51 9481 023104 3464 BGL68 9482 023105 3406 BGL67 9483 023106 3336 BGL66 9484 023107 3274 BGL65 9485 023110 3244 BGL64 9486 023111 3221 BGL63 9487 023112 3206 BGL62 9488 023113 3201 BGL61 9489 023114 3474 BGL78 9490 023115 3415 BGL77 9491 023116 3344 BGL76 9492 023117 3301 BGL75 9493 023120 3244 BGL74 9494 023121 3221 BGL73 9495 023122 3206 BGL72 9496 023123 3201 BGL71 9497 9498 9499 9500 9501 023124 0040 0040 9502 023125 0120 BEGIOT, 0120 9503 023126 0120 0120 9504 023127 0120 0120 9505 023130 0120 0120 9506 023131 0120 0120 9507 023132 0120 0120 9508 023133 0120 0120 9509 9510 9511 023173 1600 PAGE 023174 0017 023175 0007 023176 2600 023177 3044 9512 X=100 9513 /THE ENTRIES IN THIS TABLE ARE AS FOLLOWS: 9514 /LABELS INDICATE NUMBER OF FIELDS AND NUMBER OF USERS. 9515 / E.G. THE ENTRIES AT BGL32 ARE USED TO ALLOCATE 9516 / A 2 USER SYSTEM IN A 16 K (HIGHEST FIELD=3) 9517 / MACHINE. 9518 /THERE IS ONE ENTRY FOR EACH USER IN THE CONFIGURATION. 9519 /EACH ENTRY CONTAINS THE FOLLOWING INFORMATION: 9520 / USER NUMBER MINUS ONE 9521 / USER FIELD 9522 / NUMBER OF BLOCKS MINUS ONE FOR THIS USER 9523 /E.G. THE ENTRIES AT BGL32 ARE: 9524 / BGL32, 03^X+17 9525 / 12^X+15 9526 /THIS INDICATES: 9527 / USER 1 IS IN FIELD 3 WITH 20 BLOCKS 9528 / USER 2 IS IN FIELD 2 WITH 16 BLOCKS 9529 9530 9531 9532 023200 0216 BGL21, 02^X+16 9533 BGL31, 9534 BGL41, 9535 BGL51, 9536 BGL61, 9537 023201 0317 BGL71, 03^X+17 9538 023202 0206 BGL22, 02^X+6 9539 023203 1206 12^X+6 9540 023204 0317 BGL32, 03^X+17 9541 023205 1215 12^X+15 9542 BGL42, 9543 BGL52, 9544 BGL62, 9545 023206 0417 BGL72, 04^X+17 9546 023207 1317 13^X+17 9547 CDCHNG=. 9548 CBL000=. 9549 CBV000=02^X+6 9550 023210 0204 BGL23, 02^X+4 9551 CBL001=. 9552 CBV001=12^X+5 9553 023211 1203 12^X+3 9554 CBL002=. 9555 CBV002=21^X+2 9556 023212 2203 22^X+3 9557 023213 0214 BGL33, 02^X+14 9558 023214 1307 13^X+7 9559 023215 2307 23^X+7 9560 023216 0417 BGL43, 04^X+17 9561 023217 1317 13^X+17 9562 023220 2214 22^X+14 9563 BGL53, 9564 BGL63, 9565 023221 0517 BGL73, 05^X+17 9566 023222 1417 14^X+17 9567 023223 2317 23^X+17 9568 CDCHNG=. 9569 CBL100=. 9570 CBV100=02^X+3 9571 023224 0202 BGL24, 02^X+2 9572 CBL101=. 9573 CBV101=12^X+3 9574 023225 1202 12^X+2 9575 CBL102=. 9576 CBV102=22^X+3 9577 023226 2202 22^X+2 9578 CBL103=. 9579 CBV103=31^X+2 9580 023227 3202 32^X+2 9581 023230 0307 BGL34, 03^X+7 9582 023231 1307 13^X+7 9583 023232 2205 22^X+5 9584 023233 3205 32^X+5 9585 023234 0317 BGL44, 03^X+17 9586 023235 1213 12^X+13 9587 023236 2407 24^X+7 9588 023237 3407 34^X+7 9589 023240 0517 BGL54, 05^X+17 9590 023241 1417 14^X+17 9591 023242 2317 23^X+17 9592 023243 3213 32^X+13 9593 BGL64, 9594 023244 0617 BGL74, 06^X+17 9595 023245 1517 15^X+17 9596 023246 2417 24^X+17 9597 023247 3317 33^X+17 9598 023250 0202 BGL25, 02^X+2 9599 023251 1201 12^X+1 9600 023252 2201 22^X+1 9601 CDCHNG=. 9602 CBL200=. 9603 CBV200=31^X+2 9604 023253 3201 32^X+1 9605 CBL201=. 9606 CBV201=42^X+1 9607 023254 4201 42^X+1 9608 023255 0305 BGL35, 03^X+5 9609 023256 1205 12^X+5 9610 023257 2304 23^X+4 9611 023260 3304 33^X+4 9612 023261 4204 42^X+4 9613 023262 0212 BGL45, 02^X+12 9614 023263 1407 14^X+7 9615 023264 2407 24^X+7 9616 023265 3307 33^X+7 9617 023266 4307 43^X+7 9618 023267 0517 BGL55, 05^X+17 9619 023270 1417 14^X+17 9620 023271 2212 22^X+12 9621 023272 3307 33^X+7 9622 023273 4307 43^X+7 9623 023274 0617 BGL65, 06^X+17 9624 023275 1517 15^X+17 9625 023276 2417 24^X+17 9626 023277 3317 33^X+17 9627 023300 4212 42^X+12 9628 023301 0717 BGL75, 07^X+17 9629 023302 1617 16^X+17 9630 023303 2517 25^X+17 9631 023304 3417 34^X+17 9632 023305 4317 43^X+17 9633 CDCHNG=. 9634 CBL300=. 9635 CBV300=01^X+1 9636 LPCHNG=. 9637 LBL000=. 9638 LBV000=01^X+2 9639 023306 0201 BGL26, 02^X+1 9640 023307 1201 12^X+1 9641 023310 2201 22^X+1 9642 023311 3201 32^X+1 9643 CBL301=. 9644 CBV301=42^X+1 9645 023312 4200 42^X+0 9646 CBL302=. 9647 CBV302=52^X+1 9648 023313 5200 52^X+0 9649 LPCHNG=. 9650 LBL100=. 9651 LBV100=03^X+5 9652 023314 0204 BGL36, 02^X+4 9653 LBL101=. 9654 LBV101=13^X+4 9655 023315 1204 12^X+4 9656 LBL102=. 9657 LBV102=23^X+4 9658 023316 2303 23^X+3 9659 LBL103=. 9660 LBV103=32^X+4 9661 023317 3303 33^X+3 9662 LBL104=. 9663 LBV104=42^X+4 9664 023320 4303 43^X+3 9665 LBL105=. 9666 LBV105=51^X+2 9667 023321 5303 53^X+3 9668 023322 0407 BGL46, 04^X+7 9669 023323 1407 14^X+7 9670 023324 2307 23^X+7 9671 023325 3307 33^X+7 9672 023326 4204 42^X+4 9673 023327 5204 52^X+4 9674 023330 0517 BGL56, 05^X+17 9675 023331 1211 12^X+11 9676 023332 2407 24^X+7 9677 023333 3407 34^X+7 9678 023334 4307 43^X+7 9679 023335 5307 53^X+7 9680 023336 0617 BGL66, 06^X+17 9681 023337 1517 15^X+17 9682 023340 2417 24^X+17 9683 023341 3211 32^X+11 9684 023342 4307 43^X+7 9685 023343 5307 53^X+7 9686 023344 0717 BGL76, 07^X+17 9687 023345 1617 16^X+17 9688 023346 2517 25^X+17 9689 023347 3417 34^X+17 9690 023350 4317 43^X+17 9691 023351 5211 52^X+11 9692 023352 0201 BGL27, 02^X+1 9693 023353 1201 12^X+1 9694 CDCHNG=. 9695 CBL500=. 9696 CBV500=22^X+1 9697 023354 2200 22^X+0 9698 CBL501=. 9699 CBV501=32^X+1 9700 023355 3200 32^X+0 9701 LPCHNG=. 9702 LBL200=. 9703 LBV200=41^X+1 9704 023356 4200 42^X+0 9705 CBL502=. 9706 CBV502=51^X+0 9707 LBL201=. 9708 LBV201=52^X+0 9709 023357 5200 52^X+0 9710 CBL503=. 9711 CBV503=61^X+0 9712 023360 6200 62^X+0 9713 023361 0303 BGL37, 03^X+3 9714 023362 1303 13^X+3 9715 023363 2303 23^X+3 9716 023364 3303 33^X+3 9717 023365 4202 42^X+2 9718 023366 5202 52^X+2 9719 023367 6202 62^X+2 9720 023370 0407 BGL47, 04^X+7 9721 023371 1407 14^X+7 9722 023372 2305 23^X+5 9723 023373 3304 33^X+4 9724 023374 4304 43^X+4 9725 023375 5204 52^X+4 9726 023376 6203 62^X+3 9727 023377 0210 BGL57, 02^X+10 9728 023400 1507 15^X+7 9729 023401 2507 25^X+7 9730 023402 3407 34^X+7 9731 023403 4407 44^X+7 9732 023404 5307 53^X+7 9733 023405 6307 63^X+7 9734 023406 0617 BGL67, 06^X+17 9735 023407 1517 15^X+17 9736 023410 2210 22^X+10 9737 023411 3407 34^X+7 9738 023412 4407 44^X+7 9739 023413 5307 53^X+7 9740 023414 6307 63^X+7 9741 023415 0717 BGL77, 07^X+17 9742 023416 1617 16^X+17 9743 023417 2517 25^X+17 9744 023420 3417 34^X+17 9745 023421 4210 42^X+10 9746 023422 5307 53^X+7 9747 023423 6307 63^X+7 9748 CDCHNG=. 9749 CBL600=. 9750 CBV600=02^X+1 9751 023424 0200 BGL28, 02^X+0 9752 CBL601=. 9753 CBV601=12^X+1 9754 023425 1200 12^X+0 9755 023426 2200 22^X+0 9756 023427 3200 32^X+0 9757 023430 4200 42^X+0 9758 023431 5200 52^X+0 9759 CBL602=. 9760 CBV602=61^X+0 9761 023432 6200 62^X+0 9762 CBL603=. 9763 CBV603=71^X+0 9764 023433 7200 72^X+0 9765 023434 0303 BGL38, 03^X+3 9766 CDCHNG=. 9767 CBL700=. 9768 CBV700=12^X+3 9769 023435 1302 13^X+2 9770 CBL701=. 9771 CBV701=22^X+3 9772 023436 2302 23^X+2 9773 023437 3302 33^X+2 9774 023440 4302 43^X+2 9775 CBL702=. 9776 CBV702=53^X+2 9777 023441 5202 52^X+2 9778 CBL703=. 9779 CBV703=63^X+2 9780 023442 6202 62^X+2 9781 CBL704=. 9782 CBV704=71^X+1 9783 023443 7201 72^X+1 9784 023444 0207 BGL48, 02^X+7 9785 023445 1405 14^X+5 9786 023446 2404 24^X+4 9787 023447 3404 34^X+4 9788 023450 4303 43^X+3 9789 023451 5303 53^X+3 9790 023452 6303 63^X+3 9791 023453 7303 73^X+3 9792 023454 0407 BGL58, 04^X+7 9793 023455 1407 14^X+7 9794 023456 2307 23^X+7 9795 023457 3307 33^X+7 9796 023460 4207 42^X+7 9797 023461 5505 55^X+5 9798 023462 6504 65^X+4 9799 023463 7504 75^X+4 9800 023464 0617 BGL68, 06^X+17 9801 023465 1507 15^X+7 9802 023466 2507 25^X+7 9803 023467 3407 34^X+7 9804 023470 4407 44^X+7 9805 023471 5307 53^X+7 9806 023472 6307 63^X+7 9807 023473 7207 72^X+7 9808 023474 0717 BGL78, 07^X+17 9809 023475 1617 16^X+17 9810 023476 2517 25^X+17 9811 023477 3407 34^X+7 9812 023500 4407 44^X+7 9813 023501 5307 53^X+7 9814 023502 6307 63^X+7 9815 023503 7207 72^X+7 9816 9817 PAGE 9818 023600 6221 BEG800, CDF 20 9819 023601 1737 TAD I BEG804 9820 023602 4777 JMS I (BEG900 9821 023603 1376 TAD (-4 9822 023604 4342 JMS BEGZER 9823 023605 1375 TAD (READY 9824 023606 4777 JMS I (BEG900 9825 023607 1374 TAD (-10 9826 023610 4342 JMS BEGZER 9827 023611 7340 L7777 9828 023612 4777 JMS I (BEG900 9829 023613 4777 JMS I (BEG900 9830 023614 1740 TAD I BEG805 9831 023615 1373 TAD (6006-10 9832 023616 4777 JMS I (BEG900 9833 023617 1735 TAD I BEG802 9834 023620 4777 JMS I (BEG900 9835 023621 1372 TAD (-5 9836 023622 4342 JMS BEGZER 9837 023623 1371 TAD (BUFFER 9838 023624 1736 TAD I BEG803 9839 023625 4777 JMS I (BEG900 9840 023626 1371 TAD (BUFFER 9841 023627 1736 TAD I BEG803 9842 023630 4777 JMS I (BEG900 9843 023631 1371 TAD (BUFFER 9844 023632 1736 TAD I BEG803 9845 023633 4777 JMS I (BEG900 9846 023634 1370 TAD (BUFFER-40 9847 023635 1736 TAD I BEG803 9848 023636 4777 JMS I (BEG900 9849 023637 1370 TAD (BUFFER-40 9850 023640 1736 TAD I BEG803 9851 023641 4777 JMS I (BEG900 9852 023642 7346 L7775 9853 023643 4342 JMS BEGZER 9854 023644 1367 TAD (LINE1 9855 023645 1736 TAD I BEG803 9856 023646 4777 JMS I (BEG900 9857 023647 1367 TAD (LINE1 9858 023650 1736 TAD I BEG803 9859 023651 4777 JMS I (BEG900 9860 023652 1737 TAD I BEG804 9861 023653 4777 JMS I (BEG900 9862 023654 1366 TAD (LINE0 9863 023655 1736 TAD I BEG803 9864 023656 4777 JMS I (BEG900 9865 023657 1365 TAD (BUFCOM 9866 023660 1736 TAD I BEG803 9867 023661 4777 JMS I (BEG900 9868 023662 4777 JMS I (BEG900 9869 023663 4777 JMS I (BEG900 9870 023664 1364 TAD (1617 /"NO" 9871 023665 4777 JMS I (BEG900 9872 023666 1363 TAD (1605 /"NE" 9873 023667 4777 JMS I (BEG900 9874 023670 4777 JMS I (BEG900 9875 023671 1362 TAD (560 /"E0" 9876 023672 4777 JMS I (BEG900 9877 023673 1361 TAD (XREADC 9878 023674 4777 JMS I (BEG900 9879 023675 1360 TAD (XPRNTC 9880 023676 4777 JMS I (BEG900 9881 023677 1357 TAD (XFREE2 9882 023700 4777 JMS I (BEG900 9883 023701 1356 TAD (XFREE3 9884 023702 4777 JMS I (BEG900 9885 023703 1341 TAD BEGBAS 9886 023704 4777 JMS I (BEG900 9887 023705 1341 TAD BEGBAS 9888 023706 1355 TAD (400 9889 023707 3341 DCA BEGBAS 9890 023710 1354 TAD (-12 9891 023711 4342 JMS BEGZER 9892 023712 7301 L0001 9893 023713 4777 JMS I (BEG900 9894 023714 1353 TAD (0203 9895 023715 4777 JMS I (BEG900 9896 023716 1352 TAD (5555 9897 023717 4777 JMS I (BEG900 9898 023720 2335 ISZ BEG802 9899 023721 2335 ISZ BEG802 9900 023722 2335 ISZ BEG802 9901 023723 2336 ISZ BEG803 9902 023724 2336 ISZ BEG803 9903 023725 2336 ISZ BEG803 9904 023726 2337 ISZ BEG804 9905 023727 2337 ISZ BEG804 9906 023730 2337 ISZ BEG804 9907 023731 2340 ISZ BEG805 9908 023732 2024 ISZ BEGUSR 9909 023733 5200 JMP BEG800 9910 023734 5751 JMP I (FINISH 9911 9912 023735 4000 BEG802, BEGLST 9913 023736 4002 BEG803, BEGLST+2 9914 023737 4001 BEG804, BEGLST+1 9915 023740 3124 BEG805, BEGIOT-1 9916 023741 0000 BEGBAS, 0000 /BUFFERS BEGIN AT 0 IN FIELD 2 9917 9918 023742 0000 BEGZER, 0 9919 023743 3350 DCA BEGZCT 9920 023744 4777 JMS I (BEG900 9921 023745 2350 ISZ BEGZCT 9922 023746 5344 JMP .-2 9923 023747 5742 JMP I BEGZER 9924 9925 023750 0000 BEGZCT, 0 9926 9927 023751 7200 PAGE 023752 5555 023753 0203 023754 7766 023755 0400 023756 6007 023757 6000 023760 7343 023761 3702 023762 0560 023763 1605 023764 1617 023765 0100 023766 0162 023767 0164 023770 0000 023771 0040 023772 7773 023773 5776 023774 7770 023775 0465 023776 7774 023777 4201 9928 024000 0000 BEGLST,0 9929 PAGE 9930 9931 CDCHNG=. 9932 /THE FOLLOWING LOCATION BECOMES LPTORG IF THE LPT 9933 /IS USED AND THE CDR IS NOT. 9934 COL200=. 9935 COV200=LPTORG 9936 /THE FOLLOWING LOCATION BECOMES NCDORG IF NO LPT OR 9937 /CDR IS USED. 9938 LOL200=. 9939 LPCHNG=. 9940 LOV200=NCDORG 9941 024200 7037 BEG801, ORG1 /KLUDGE TO MAKE EXTRA ROOM 9942 9943 /BEG900 STORES THE SAVE AREA VALUES IN 9944 /THE SAVE AREAS. 9945 024201 0000 BEG900, 0 9946 024202 6211 CDF 10 9947 024203 3600 DCA I BEG801 9948 024204 6221 CDF 20 9949 024205 2200 ISZ BEG801 9950 024206 5601 JMP I BEG900 9951 9952 024207 3711 OS8ERM, TEXT "_ILLEGAL OS/8 DEVICE FOUND_NO BOOTSTRAP POSSIBLE!__" 024210 1414 024211 0507 024212 0114 024213 4017 024214 2357 024215 7040 024216 0405 024217 2611 024220 0305 024221 4006 024222 1725 024223 1604 024224 3716 024225 1740 024226 0217 024227 1724 024230 2324 024231 2201 024232 2040 024233 2017 024234 2323 024235 1102 024236 1405 024237 4137 024240 3700 9953 9954 024241 3724 OS8MSG, TEXT "_TO BOOTSTRAP BACK " 024242 1740 024243 0217 024244 1724 024245 2324 024246 2201 024247 2040 024250 0201 024251 0313 024252 4000 9955 024253 1723 OS8M1, TEXT "OS/8 " 024254 5770 024255 4000 9956 024256 1517 OS8M2, TEXT "MONITOR:_ LOAD ADDRESS 07600_ AND START__" 024257 1611 024260 2417 024261 2272 024262 3740 024263 1417 024264 0104 024265 4001 024266 0404 024267 2205 024270 2323 024271 4060 024272 6766 024273 6060 024274 3740 024275 0116 024276 0440 024277 2324 024300 0122 024301 2437 024302 3700 9957 9958 024303 3711 BEGME, TEXT %_INVALID RESPONSE_% 024304 1626 024305 0114 024306 1104 024307 4022 024310 0523 024311 2017 024312 1623 024313 0537 024314 0000 9959 024315 3737 BEGM1, TEXT %__EDUSYSTEM 25 BASIC_ED25B-B-V03.00__% 024316 0504 024317 2523 024320 3123 024321 2405 024322 1540 024323 6265 024324 4002 024325 0123 024326 1103 024327 3705 024330 0462 024331 6502 024332 5502 024333 5526 024334 6063 024335 5660 024336 6037 024337 3700 9960 9961 024340 3716 BEGM2, TEXT %_NUMBER OF USERS (1 TO 8)?% 024341 2515 024342 0205 024343 2240 024344 1706 024345 4025 024346 2305 024347 2223 024350 4050 024351 6140 024352 2417 024353 4070 024354 5177 024355 0000 9962 024356 3720 BEGM4, TEXT %_PDP-8/L COMPUTER (Y OR N)?% 024357 0420 024360 5570 024361 5714 024362 4003 024363 1715 024364 2025 024365 2405 024366 2240 024367 5031 024370 4017 024371 2240 024372 1651 024373 7700 9963 024374 3724 BEGM5, TEXT %_TERMINAL #1 DEVICE CODE?% 024375 0522 024376 1511 024377 1601 024400 1440 024401 4361 024402 4004 024403 0526 024404 1103 024405 0540 024406 0317 024407 0405 024410 7700 9964 BEGM5A=BEGM5+5 9965 024411 3723 BEGM7, TEXT %_STANDARD REMOTE TERMINAL CODES (Y OR N)?% 024412 2401 024413 1604 024414 0122 024415 0440 024416 2205 024417 1517 024420 2405 024421 4024 024422 0522 024423 1511 024424 1601 024425 1440 024426 0317 024427 0405 024430 2340 024431 5031 024432 4017 024433 2240 024434 1651 024435 7700 9966 024436 3706 BEGMFL, TEXT %_FIELD % 024437 1105 024440 1404 024441 4000 9967 024442 3724 BEGMXX, TEXT %_THERE ARE % 024443 1005 024444 2205 024445 4001 024446 2205 024447 4000 9968 024450 4002 BEGMX1, TEXT % BLOCKS LEFT IN THIS FIELD._ YOUR ALLOCATION FOR USER #% 024451 1417 024452 0313 024453 2340 024454 1405 024455 0624 024456 4011 024457 1640 024460 2410 024461 1123 024462 4006 024463 1105 024464 1404 024465 5637 024466 4031 024467 1725 024470 2240 024471 0114 024472 1417 024473 0301 024474 2411 024475 1716 024476 4006 024477 1722 024500 4025 024501 2305 024502 2240 024503 4300 9969 024504 4027 BEGTTI, TEXT % WILL BE HOW MANY BLOCKS?% 024505 1114 024506 1440 024507 0205 024510 4010 024511 1727 024512 4015 024513 0116 024514 3140 024515 0214 024516 1703 024517 1323 024520 7700 9970 024521 3737 BEGM6, TEXT %__END OF DIALOGUE_% 024522 0516 024523 0440 024524 1706 024525 4004 024526 1101 024527 1417 024530 0725 024531 0537 024532 0000 9971 024533 3702 WNGDM, TEXT %_BLOCK SIZES DON'T WORK--HAVE TO START AGAIN__% 024534 1417 024535 0313 024536 4023 024537 1132 024540 0523 024541 4004 024542 1716 024543 4724 024544 4027 024545 1722 024546 1355 024547 5510 024550 0126 024551 0540 024552 2417 024553 4023 024554 2401 024555 2224 024556 4001 024557 0701 024560 1116 024561 3737 024562 0000 9972 024563 3723 BEGMQ, TEXT %_STANDARD USER STORAGE ALLOCATION (Y OR N)?% 024564 2401 024565 1604 024566 0122 024567 0440 024570 2523 024571 0522 024572 4023 024573 2417 024574 2201 024575 0705 024576 4001 024577 1414 024600 1703 024601 0124 024602 1117 024603 1640 024604 5031 024605 4017 024606 2240 024607 1651 024610 7700 9973 024611 3711 BEGM6A, TEXT %_IS THE ABOVE CORRECT (Y OR N)?% 024612 2340 024613 2410 024614 0540 024615 0102 024616 1726 024617 0540 024620 0317 024621 2222 024622 0503 024623 2440 024624 5031 024625 4017 024626 2240 024627 1651 024630 7700 9974 024631 4015 BEGM8, TEXT % MORE (Y OR N)?% 024632 1722 024633 0540 024634 5031 024635 4017 024636 2240 024637 1651 024640 7700 9975 024641 3701 BEGM9, TEXT %_ANY UNUSED TERMINALS (Y OR N)?% 024642 1631 024643 4025 024644 1625 024645 2305 024646 0440 024647 2405 024650 2215 024651 1116 024652 0114 024653 2340 024654 5031 024655 4017 024656 2240 024657 1651 024660 7700 9976 024661 3704 BEGM10, TEXT %_DEVICE CODE?% 024662 0526 024663 1103 024664 0540 024665 0317 024666 0405 024667 7700 9977 024670 3742 LDRERR, TEXT %_"EDU" NOT ASSIGNED TO OS8 DEVICE_OR IT'S WRITE LOCKED% 024671 0504 024672 2542 024673 4016 024674 1724 024675 4001 024676 2323 024677 1107 024700 1605 024701 0440 024702 2417 024703 4017 024704 2370 024705 4004 024706 0526 024707 1103 024710 0537 024711 1722 024712 4011 024713 2447 024714 2340 024715 2722 024716 1124 024717 0540 024720 1417 024721 0313 024722 0504 024723 0000 9978 024724 3737 LDRER2, TEXT %__RETURNING TO OS8_% 024725 2205 024726 2425 024727 2216 024730 1116 024731 0740 024732 2417 024733 4017 024734 2370 024735 3700 9979 024736 3742 CHNERR, TEXT %_"SYS:EDU25.SV" NOT FOUND% 024737 2331 024740 2372 024741 0504 024742 2562 024743 6556 024744 2326 024745 4240 024746 1617 024747 2440 024750 0617 024751 2516 024752 0400 9980 024753 3737 BEGMRK, TEXT %__IS THE SYSTEM DEVICE AN RK8-E (Y OR N)?% 024754 1123 024755 4024 024756 1005 024757 4023 024760 3123 024761 2405 024762 1540 024763 0405 024764 2611 024765 0305 024766 4001 024767 1640 024770 2213 024771 7055 024772 0540 024773 5031 024774 4017 024775 2240 024776 1651 024777 7700 9981 025000 3715 BEGMCR, TEXT %_MARK SENSE CARD READER USED (Y OR N)?% 025001 0122 025002 1340 025003 2305 025004 1623 025005 0540 025006 0301 025007 2204 025010 4022 025011 0501 025012 0405 025013 2240 025014 2523 025015 0504 025016 4050 025017 3140 025020 1722 025021 4016 025022 5177 025023 0000 9982 025024 3703 BGMCLR, TEXT %_CAN ALL USERS USE THE CARD READER (Y OR N)?% 025025 0116 025026 4001 025027 1414 025030 4025 025031 2305 025032 2223 025033 4025 025034 2305 025035 4024 025036 1005 025037 4003 025040 0122 025041 0440 025042 2205 025043 0104 025044 0522 025045 4050 025046 3140 025047 1722 025050 4016 025051 5177 025052 0000 9983 025053 3714 BGMLGU, TEXT %_LEGAL USER?% 025054 0507 025055 0114 025056 4025 025057 2305 025060 2277 025061 0000 9984 025062 3701 BGMCMF, TEXT %_ALL USERS WITH COMMON FILE EXTENSIONS (Y OR N)?% 025063 1414 025064 4025 025065 2305 025066 2223 025067 4027 025070 1124 025071 1040 025072 0317 025073 1515 025074 1716 025075 4006 025076 1114 025077 0540 025100 0530 025101 2405 025102 1623 025103 1117 025104 1623 025105 4050 025106 3140 025107 1722 025110 4016 025111 5177 025112 0000 9985 025113 3714 BEGMLP, TEXT %_LINE PRINTER USED (Y OR N)?% 025114 1116 025115 0540 025116 2022 025117 1116 025120 2405 025121 2240 025122 2523 025123 0504 025124 4050 025125 3140 025126 1722 025127 4016 025130 5177 025131 0000 9986 025132 3703 BGMLPR, TEXT %_CAN ALL USERS USE THE LINE PRINTER (Y OR N)?% 025133 0116 025134 4001 025135 1414 025136 4025 025137 2305 025140 2223 025141 4025 025142 2305 025143 4024 025144 1005 025145 4014 025146 1116 025147 0540 025150 2022 025151 1116 025152 2405 025153 2240 025154 5031 025155 4017 025156 2240 025157 1651 025160 7700 9987 PAGE 9988 9989 LINK=XENTER+1 9990 025200 4437 PLINK, SETPT 9991 025201 2064 ISZ ENTRIES 9992 025202 7410 SKP 9993 025203 5265 JMP LINKF /TAPE FULL 9994 025204 1412 LINK2, TAD I XR1 9995 025205 7650 SNA CLA 9996 025206 5211 JMP .+3 9997 025207 1377 TAD (3 9998 025210 4435 BUMPXR 9999 025211 1412 TAD I XR1 10000 025212 7041 CIA 10001 025213 1062 TAD BLOCK 10002 025214 3062 DCA BLOCK 10003 025215 2064 ISZ ENTRIES 10004 025216 5204 JMP LINK2 /IGNORE ALL BUT THE LAST ENTRY 10005 025217 1412 TAD I XR1 /SEE IF ITS AN EMPTY 10006 025220 7640 SZA CLA 10007 025221 5265 JMP LINKF /ITS NOT TAPE FULL 10008 025222 1412 TAD I XR1 /IT IS, SEE IF ITS BIG ENOUGH 10009 025223 3271 DCA LINKS /SAVE SIZE OF EMPTY 10010 025224 1271 TAD LINKS 10011 025225 7100 CLL 10012 025226 1060 TAD TEMPX1 10013 025227 7630 SZL CLA 10014 025230 5265 JMP LINKF /ITS NOT BIG ENOUGH 10015 025231 1776 TAD I (CATBLK /SEE IF ON THE LAST BLOCK 10016 025232 1375 TAD (-14 10017 025233 7630 SZL CLA 10018 025234 5265 JMP LINKF /NO WHERE TO LINK TO 10019 025235 7326 L0002 10020 025236 1776 TAD I (CATBLK 10021 025237 7110 CLL RAR 10022 025240 3774 DCA I (DIRBUF+2 /LINK THE BLOCK 10023 025241 2773 ISZ I (DIRBUF /RESET # ENTRIES 10024 025242 1062 TAD BLOCK 10025 025243 3270 DCA LBLOCK /SAVE BLOCK GETCAT HITS IT 10026 025244 7100 CLL 10027 025245 1776 TAD I (CATBLK 10028 025246 4434 GETCAT /WRITE IT OUT 10029 025247 1270 TAD LBLOCK 10030 025250 3772 DCA I (DIRBUF+1 /SET UP STARTING BLOCK NUMBER 10031 025251 3412 DCA I XR1 /MAKE AN EMPTY 10032 025252 1271 TAD LINKS 10033 025253 3412 DCA I XR1 /OF THE RIGHT SIZE 10034 025254 7240 STA 10035 025255 3773 DCA I (DIRBUF /1 ENTRY FOR THIS BLOCK 10036 025256 3774 DCA I (DIRBUF+2 /ZERO LINK 10037 025257 7326 L0002 10038 025260 1776 TAD I (CATBLK 10039 025261 4434 GETCAT /L=0 SO WRITE 10040 025262 4423 CALL 10041 025263 0056 CENTER^2 10042 025264 3235 MLOOP /GOOD LINK RETURN TO MLOOP 10043 025265 4423 LINKF, CALL 10044 025266 0056 CENTER^2 10045 025267 3175 ENTERF /FAILURE RETURN 10046 025270 0000 LBLOCK, 0 10047 025271 0000 LINKS, 0 10048 025272 0000 GCATS, 0 10049 10050 025372 4210 PAGE 025373 4207 025374 4211 025375 7764 025376 3450 025377 0003 10051 /THAT WAS TO FIX THOSE NASTY LITERALS 10052 10053 DSKP=6741 10054 DCLR=6742 10055 DLAG=6743 10056 DLCA=6744 10057 DRST=6745 10058 DLDC=6746 10059 10060 /FIX END OF PAGE LITTERALS SO THEY READ 10061 /ENTERF, CDF CIF 0 10062 / JMP I XENTER 10063 /XENTER, 0000 10064 RENTERF=RK8E+ENTERF-DTAPE 10065 10066 025400 0377 AND (0000 10067 025401 0376 AND (5777 10068 025402 0375 AND (CDF CIF 10069 *.-3 /RESET THE LOCATION COUNTER TO THE START OF THE PAGE 10070 10071 025400 0000 RK8E, 0000 10072 025401 6002 IOF /NO INT PLEASE 10073 025402 7650 SNA CLA /AC=1 FOR READ 10074 025403 1112 TAD D4000 /LINK HAS ARG SO N L4000 PLEASE 10075 025404 3370 DCA RK8ERW /READ = 0 WRITE = 4000 10076 025405 3367 DCA RK8EHI /CLEAR HIGH ORDER (BLOCK ADDRESS) 10077 025406 6214 RDF 10078 025407 1375 TAD RENTERF /CDF CIF 10079 025410 3354 DCA RKXIT+1 /SAVE CALLING FIELD 10080 025411 1107 TAD DTSF1 10081 025412 3002 DCA DTINTR+2 /INSERT DSKP IN SKIP CHAIN 10082 025413 1600 TAD I RK8E 10083 025414 2200 ISZ RK8E 10084 025415 3362 DCA BUFADD /SAVE BUFFER ADDRESS 10085 025416 1600 TAD I RK8E 10086 025417 0074 AND Z70 /SAVE FIELD TO BE READ INTO 10087 025420 3373 DCA RKFLD 10088 025421 1373 TAD RKFLD 10089 025422 1111 TAD ZCDF 10090 025423 3321 DCA RKCDF1 10091 025424 1321 TAD RKCDF1 10092 025425 3344 DCA RKCDF2 10093 025426 1600 TAD I RK8E 10094 025427 2200 ISZ RK8E 10095 025430 0007 AND Z200 / LOCATION 7 HAS 200, SEE IF HALF OR FULL BLOCK 10096 025431 3363 DCA HALFBLOCK /200 IF HALF A BLOCK 0 IF FULL BLOCK 10097 025432 1600 TAD I RK8E /CONSTRUCT FULL ADDRESS 10098 025433 2200 ISZ RK8E 10099 025434 7010 RAR /BLOCK NUMBER NOW IN AC HALF BLOCK FLAG IN LINK 10100 025435 3365 DCA BLOCKNUM 10101 025436 7420 SNL 10102 025437 5244 JMP RKBUF 10103 025440 1073 TAD Z10 10104 025441 3373 DCA RKFLD 10105 025442 1103 TAD ZDIRBUF /LAST HALF, SO USE DIRBUF IN FIELD 1 10106 025443 7410 SKP 10107 025444 1362 RKBUF, TAD BUFADD /USE USER'S BUFFER 10108 025445 6744 DLCA 10109 025446 7010 RAR 10110 025447 3364 DCA LASTHALF /LAST HALF OF BLOCK FLAG 10111 025450 4441 TADEXT /SEE IF .EX 10112 025451 0075 AND Z100 10113 025452 7640 SZA CLA 10114 025453 5265 JMP RUNIT0 10115 025454 1105 TAD PXCALLB /SEE IF CALL 10116 025455 1200 TAD RK8E 10117 025456 7640 SZA CLA 10118 025457 1113 RUNIT1, TAD D6260 10119 025460 7100 CLL 10120 025461 1365 TAD BLOCKNUM 10121 025462 3365 DCA BLOCKNUM 10122 025463 7430 SZL 10123 025464 2367 ISZ RK8EHI 10124 025465 1364 RUNIT0, TAD LASTHALF 10125 025466 7640 SZA CLA 10126 025467 5273 JMP RKLHF 10127 025470 1363 TAD HALFBLOCK 10128 025471 7110 CLL RAR 10129 025472 1370 TAD RK8ERW 10130 025473 1367 RKLHF, TAD RK8EHI 10131 025474 1373 TAD RKFLD 10132 025475 1114 TAD D1400 /ENABLE INTERRUPT ON DONE FROM FIELD 1 10133 /AND CHECK THE SEEK BECAUSE I'M NOT DOING SEQUENTIAL ADDRESSING. 10134 025476 6746 DLDC /LOAD COMMAND REGISTER 10135 025477 1365 TAD BLOCKNUM 10136 025500 6743 DLAG /DISK LOAD AND GO 10137 025501 5772 JMP I RDTDIS /PUT HIM TO SLEEP 10138 10139 025502 6745 RK8INT, DRST 10140 025503 7104 CLL RAL 10141 025504 7640 SZA CLA 10142 025505 5356 JMP RK8ERR /SOME SORT OF FAILURE REPORT IT. 10143 025506 6742 DCLR /CLEAR STATUS REGISTER (AND FLAG) 10144 025507 1364 TAD LASTHALF 10145 025510 7650 SNA CLA 10146 025511 5771 JMP I RDTEND 10147 025512 1115 TAD DDIRB /DIRBUF-200 10148 025513 3366 DCA RK8EPT 10149 025514 1116 TAD DM200 10150 025515 3364 DCA LASTHALF 10151 025516 1370 TAD RK8ERW 10152 025517 7700 SMA CLA 10153 025520 5342 JMP RK8ERD /ITS A READ 10154 025521 6221 RKCDF1, CDF BUF 10155 025522 1762 TAD I BUFADD 10156 025523 6211 CDF SWAP 10157 025524 3766 DCA I RK8EPT 10158 025525 2362 ISZ BUFADD 10159 025526 2366 ISZ RK8EPT 10160 025527 2364 ISZ LASTHALF 10161 025530 5321 JMP .-7 10162 025531 1103 TAD ZDIRBUF 10163 025532 6744 DLCA 10164 025533 1367 TAD RK8EHI 10165 025534 1374 TAD D1410 10166 025535 1370 TAD RK8ERW 10167 025536 6746 DLDC 10168 025537 1365 TAD BLOCKNUM 10169 025540 6743 DLAG 10170 025541 5020 JMP DIS 10171 025542 6211 RK8ERD, CDF SWAP 10172 025543 1766 TAD I RK8EPT 10173 025544 6221 RKCDF2, CDF BUF 10174 025545 3762 DCA I BUFADD 10175 025546 2362 ISZ BUFADD 10176 025547 2366 ISZ RK8EPT 10177 025550 2364 ISZ LASTHALF 10178 025551 5342 JMP .-7 10179 025552 5771 JMP I RDTEND 10180 10181 10182 /CHECK THE LIST OF ERRORS CAREFULLY SO THIS DOESN'T CONFLICT 10183 /WITH ERRORS IN FIELD 0. 10184 025553 3002 RKXIT, DCA DTINTR+2 10185 025554 7402 HLT 10186 025555 5600 JMP I RK8E 10187 10188 025556 6742 RK8ERR, DCLR /ERROR,CLEAR FLAG 10189 025557 1106 TAD ZOERROR 10190 025560 3354 DCA RKXIT+1 10191 025561 5771 JMP I RDTEND 10192 025562 0000 BUFADD, 0 10193 025563 0000 HALFBLOCK, 0 10194 025564 0000 LASTHALF, 0 10195 025565 0000 BLOCKNUM, 0 10196 025566 0000 RK8EPT, 0 10197 025567 0000 RK8EHI, 0 10198 025570 0000 RK8ERW, 0 10199 025571 4755 RDTEND, DTEND 10200 025572 4744 RDTDIS, DTDIS 10201 025573 0000 RKFLD, 0 10202 025574 1410 D1410, 1410 10203 10204 025575 6203 PAGE 025576 5777 025577 0000 10205 10206 CENTER=27 /ENTER CALL OVERLAY 10207 CLINK=30 /LINK CALL OVERLAY 10208 10209 10210 025600 0000 SYSINI, 0000 10211 025601 7300 CLA CLL 10212 025602 4777 JMS I (BEG01Q 10213 025603 4753 BEGMRK 10214 025604 5235 JMP SYSDTA 10215 025605 6211 CDF 10 10216 025606 1376 TAD (DSKP 10217 025607 3775 DCA I (DTSF1 /FIX THE SKIP INSTRUCTION 10218 025610 1374 TAD (RK8INT&177+DTAPE 10219 025611 3773 DCA I (MCOM 10220 025612 1372 TAD (RKXIT+1&177+DTAPE 10221 025613 3771 DCA I (PDXIT 10222 025614 1370 TAD (RKXIT&177+DTAPE 10223 025615 3767 DCA I (ZDXIT 10224 025616 6221 CDF 20 10225 025617 4305 JMS BLT 10226 025620 6221 CDF 20 10227 025621 5400 RK8E /MOVE IN THE DISK HANDLER 10228 025622 6211 CDF 10 10229 025623 3000 DTAPE /OVER THE DECTAPE HANDLER 10230 025624 7600 7600 10231 025625 6221 CDF 20 10232 025626 4305 JMS BLT /MOVE RK8E CONSTANTS TO FIELD 1 PAGE 0 10233 025627 6221 CDF 20 10234 025630 5741 RKCON 10235 025631 6211 CDF 10 10236 025632 0112 DCON 10237 025633 7773 -5 10238 025634 6221 CDF 20 10239 025635 4305 SYSDTA, JMS BLT /BLOCK TRANSFER 10240 025636 6201 CDF 0 10241 025637 4000 4000 /FROM 4000 IN FIELD 0 10242 025640 6211 CDF 10 10243 025641 4207 DIRBUF /TO DIRBUF IN FIELD 1 10244 025642 7600 7600 /SAVE THE WHOLE PAGE 10245 025643 7300 CLA CLL 10246 025644 6221 CDF 20 10247 025645 6212 CIF 10 10248 025646 4766 JMS I (USR 10249 025647 0001 FETCH 10250 025650 0504 TEXT %EDU% /PAL10 DOESN'T HAVE DEVICE PSUDO-OP 025651 2500 10251 025652 4000 ENTRY0, 4000 /PUT DTA HANDLER IN PAGE 4000 FIELD 0 10252 025653 5765 JMP I (ERRLDR /HANDLER NOT FOUND 10253 025654 7300 CLA CLL 10254 025655 6221 CDF 20 10255 025656 6202 CIF 0 10256 025657 4652 JMS I ENTRY0 10257 025660 4120 4120 /WRITE 1 PAGE FROM FIELD 2 10258 025661 5200 PLINK /FROM CORE AT PLINK 10259 025662 0030 CLINK /TO DECTAPE BLOCK NUMBER CLINK 10260 025663 5765 JMP I (ERRLDR 10261 025664 7300 CLA CLL 10262 025665 6221 CDF 20 10263 025666 6202 CIF 0 10264 025667 4652 JMS I ENTRY0 /DO SAME FOR XENTER 10265 025670 4110 4110 /WRITE 1 PAGE FROM FIELD 1 10266 025671 3200 XENTER+1 /FROM CORE AT XENTER+1 10267 025672 0027 CENTER /TO TAPE BLOCK CENTER 10268 025673 5765 JMP I (ERRLDR 10269 025674 7300 CLA CLL 10270 025675 4305 JMS BLT 10271 025676 6211 CDF 10 10272 025677 4207 DIRBUF 10273 025700 6201 CDF 0 10274 025701 4000 4000 10275 025702 7600 7600 10276 025703 6221 CDF 20 10277 025704 5600 JMP I SYSINI 10278 10279 025705 0000 BLT, 0000 10280 025706 1705 TAD I BLT 10281 025707 2305 ISZ BLT 10282 025710 3325 DCA BLT1 10283 025711 1705 TAD I BLT 10284 025712 2305 ISZ BLT 10285 025713 3336 DCA BLT2 10286 025714 1705 TAD I BLT 10287 025715 2305 ISZ BLT 10288 025716 3327 DCA BLT3 10289 025717 1705 TAD I BLT 10290 025720 2305 ISZ BLT 10291 025721 3337 DCA BLT4 10292 025722 1705 TAD I BLT 10293 025723 2305 ISZ BLT 10294 025724 3340 DCA BLT5 10295 025725 0000 BLT1, 0000 10296 025726 1736 TAD I BLT2 10297 025727 0000 BLT3, 0 10298 025730 3737 DCA I BLT4 10299 025731 2336 ISZ BLT2 10300 025732 2337 ISZ BLT4 10301 025733 2340 ISZ BLT5 10302 025734 5325 JMP .-7 10303 025735 5705 JMP I BLT 10304 025736 0000 BLT2, 0 10305 025737 0000 BLT4, 0 10306 025740 0000 BLT5, 0 10307 10308 10309 RKCON, /PAGE ZERO CONSTANTS FOR RK8E HANDLER 10310 025741 4000 4000 10311 025742 6260 6260 10312 025743 1400 1400 10313 025744 4407 DIRBUF+200 10314 025745 7600 -200 10315 025765 0261 PAGE 025766 7700 025767 0104 025770 3153 025771 4046 025772 3154 025773 0067 025774 3102 025775 0107 025776 6741 025777 0322 10316 /THIS ROUTINE SETS UP THE LEGAL USER TABLE 10317 /FOR THE CDR. 10318 026000 0000 BGCDR1, 0 10319 026001 4616 JMS I XBG01Q /IS A CDR USED? 10320 026002 5000 BEGMCR 10321 026003 5211 JMP BGNCR1 /NO. 10322 026004 4614 JMS I XBGLGR /YES GO HANDLE THE LEGAL USERS. 10323 026005 7325 L0003 /ENABLE CDR INTERRUPTS. 10324 026006 6635 RCNO 10325 026007 7200 CLA 10326 026010 5600 JMP I BGCDR1 10327 026011 7326 BGNCR1, CLA STL RTL /SET BIT 10 OF THE FORMAT WORD. 10328 026012 3215 DCA BGFRMT 10329 026013 5600 JMP I BGCDR1 10330 026014 6200 XBGLGR, BGLGRT 10331 026015 0000 BGFRMT, 0 10332 026016 0322 XBG01Q, BEG01Q 10333 10334 /THIS ROUTINE OVERLAYS LOADED VALUES WITH VALUES SPECIFIED 10335 /IN THE CHANGE TABLE. THE AC CONTAINS THE MASTER TABLE 10336 /SLOT FOR THE APPROPRIATE CHANGES. 10337 026017 0000 TBLTRN, 0 10338 026020 3247 DCA TBTMP /MULTIPLY ENTRY NO. BY 3. 10339 026021 1247 TAD TBTMP 10340 026022 1247 TAD TBTMP 10341 026023 1247 TAD TBTMP 10342 026024 1250 TAD XMSTBL /ADD TO MASTER TABLE START. 10343 026025 3247 DCA TBTMP 10344 026026 1647 TAD I TBTMP 10345 026027 3243 DCA TBCDF /SET UP THE CDF INSTRUCTION. 10346 026030 2247 ISZ TBTMP 10347 026031 1647 TAD I TBTMP /GET THE CHANGE TABLE STARTING 10348 /ADDRESS. 10349 026032 3010 DCA AI0 10350 026033 2247 ISZ TBTMP /LEAVE THE POINTER POINTING TO MINUS 10351 /(END OF TABLE). 10352 026034 1010 TBLTR1, TAD AI0 /HAVE WE XFERRED THE WHOLE TABLE. 10353 026035 1647 TAD I TBTMP 10354 026036 7650 SNA CLA 10355 026037 5617 JMP I TBLTRN /YES. 10356 026040 1410 TAD I AI0 /NO, GET THE STORING ADDRESS. 10357 026041 3251 DCA XTBPTR 10358 026042 1410 TAD I AI0 10359 026043 0000 TBCDF, 0 /CDF INSTRUCTION. 10360 026044 3651 DCA I XTBPTR /STORE THE VALUE. 10361 026045 6221 CDF 20 10362 026046 5234 JMP TBLTR1 /TRY MORE. 10363 026047 0000 TBTMP, 0 10364 026050 6400 XMSTBL, MSTTBL 10365 026051 0000 XTBPTR, 0 10366 10367 /THIS ROUTINE SETS UP COMMON FILE EXTENSIONS. 10368 026052 0000 BGCMF1, 0 10369 026053 1024 TAD BEGUSR /IS THERE ONLY ON USER? 10370 026054 7040 CMA 10371 026055 7650 SNA CLA 10372 026056 5652 JMP I BGCMF1 /YES, SKIP THE QUESTION. 10373 026057 4616 JMS I XBG01Q /NO, ARE COMMON EXTENSIONS WANTED? 10374 026060 5062 BGMCMF 10375 026061 5652 JMP I BGCMF1 /NO. 10376 026062 1265 TAD BGK10 /YES, MAKE THE CHANGES. 10377 026063 4217 JMS TBLTRN 10378 026064 5652 JMP I BGCMF1 10379 026065 0012 BGK10, 12 10380 10381 /THIS ROUTINE SETS UP THE LPT CODE. 10382 026066 0000 BGLPT1, 0 10383 026067 7200 CLA /DISABLE LPT INTERRUPTS 10384 026070 6665 PSIE /IN ALL CIRCUMSTANCES. 10385 026071 6667 PCIE 10386 026072 4616 JMS I XBG01Q /IS AN LPT USED? 10387 026073 5113 BEGMLP 10388 026074 5300 JMP BGLPT2 /NO. 10389 026075 7201 CLA IAC 10390 026076 4614 JMS I XBGLGR /SET UP LEGAL USER TABLE. 10391 026077 5303 JMP BGLPT3 10392 026100 7201 BGLPT2, CLA IAC /SET BIT 11 IN THE FORMAT WORD. 10393 026101 1215 TAD BGFRMT 10394 026102 3215 DCA BGFRMT 10395 026103 4705 BGLPT3, JMS I BGSTUP /SET UP SYSTEM DEPENDING ON PERIPHERALS 10396 /USED. 10397 026104 5666 JMP I BGLPT1 10398 026105 6306 BGSTUP, BEGSET 10399 PAGE 10400 /THIS ROUTINE HANDLES LEGAL USER SET UP FOR 10401 /BOTH THE CDR AND THE LPT. ON ENTRY AC=0 FOR CDR 10402 /AND AC=1 FOR LPT. 10403 026200 0000 BGLGRT, 0 10404 026201 7104 CLL RAL 10405 026202 1271 TAD BGLGAD /SAVE THE ADDR OF THE APPROPRIATE 10406 026203 3270 DCA BGLGPT /TABLE. 10407 026204 1024 TAD BEGUSR /IS THERE ONLY ONE USER? 10408 026205 3277 DCA BGCDK1 10409 026206 1024 TAD BEGUSR 10410 026207 7040 CMA 10411 026210 7650 SNA CLA 10412 026211 5600 JMP I BGLGRT /YES, RETURN. 10413 026212 1670 TAD I BGLGPT 10414 026213 2270 ISZ BGLGPT 10415 026214 3216 DCA .+2 10416 026215 4700 JMS I YBG01Q /CAN ALL USERS USE THE CDR OR LPT? 10417 026216 0000 0 10418 026217 7410 SKP /NO. 10419 026220 5600 JMP I BGLGRT /YES, RETURN. 10420 026221 4701 BGLGR1, JMS I XBG003 /ASK FOR LEGAL USER NO. 10421 026222 5053 BGMLGU 10422 026223 4702 JMS I XBG001 /GET THE ANSWER. 10423 026224 1303 TAD BGKM0 /IS IT IN THE RANGE 1 TO MAX USER? 10424 026225 7550 SPA SNA 10425 026226 5265 JMP BGBDAN 10426 026227 1277 TAD BGCDK1 10427 026230 7540 SMA SZA 10428 026231 5265 JMP BGBDAN /NO, AGAIN. 10429 026232 3304 DCA BGCDK2 /YES. 10430 026233 1277 TAD BGCDK1 /CONVERT BACK TO A POSITIVE VALUE. 10431 026234 7040 CMA 10432 026235 1304 TAD BGCDK2 10433 026236 1670 TAD I BGLGPT /ADD TO BASE ADDR OF TABLE. 10434 026237 3304 DCA BGCDK2 10435 026240 7240 STA 10436 026241 6211 CDF 10 10437 026242 3704 DCA I BGCDK2 /SET IN TABLE. 10438 026243 6221 CDF 20 10439 026244 4700 JMS I YBG01Q /ARE THERE MORE? 10440 026245 4631 BEGM8 10441 026246 7410 SKP /NO. 10442 026247 5221 JMP BGLGR1 /YES. 10443 026250 1305 TAD BGKM8 /WHEN DONE COMPLEMENT THE TABLE 10444 026251 3277 DCA BGCDK1 /ENTRIES. 10445 026252 1670 TAD I BGLGPT 10446 026253 3304 DCA BGCDK2 10447 026254 6211 CDF 10 10448 026255 1704 BGLGR2, TAD I BGCDK2 10449 026256 7040 CMA 10450 026257 3704 DCA I BGCDK2 10451 026260 2304 ISZ BGCDK2 10452 026261 2277 ISZ BGCDK1 /DONE? 10453 026262 5255 JMP BGLGR2 /NO. 10454 026263 6221 CDF 20 /YES. 10455 026264 5600 JMP I BGLGRT 10456 /COME HERE ON AN ILLEGAL ANSWER. 10457 026265 4701 BGBDAN, JMS I XBG003 /ISSUE ILLEGAL RESPONSE. 10458 026266 4303 BEGME 10459 026267 5221 JMP BGLGR1 10460 026270 0000 BGLGPT, 0 10461 026271 6273 BGLGAD, BGCDTB 10462 026272 6275 BGLPTB 10463 026273 5024 BGCDTB, BGMCLR 10464 026274 6766 LGLTAB 10465 026275 5132 BGLPTB, BGMLPR 10466 026276 5574 LPLGTB 10467 026277 0000 BGCDK1, 0 10468 026300 0322 YBG01Q, BEG01Q 10469 026301 1032 XBG003, BEG003 10470 026302 1014 XBG001, BEG001 10471 026303 7520 BGKM0, -260 10472 026304 0000 BGCDK2, 0 10473 026305 7770 BGKM8, -10 10474 10475 10476 /THIS ROUTINE ENABLES AND DISABLES CDR AND /OR LPT 10477 /SUPPORTING CODE DEPENDING ON THE SETTING OF THE 10478 /FORMAT WORD. BIT 10=0 MEANS CDR IS USED. BIT 10=1 10479 /MEANS CDR IS NOT USED. BIT 11=0 MEANS LPT IS 10480 /USED. BIT 11=1 MEANS LPT NOT USED. 10481 026306 0000 BEGSET, 0 10482 026307 1716 TAD I XFRMAT /GO TO THE ROUTINE TO 10483 026310 1317 TAD BGRTAD /HANDLE THE PARTICULAR 10484 026311 3320 DCA BGRTPR /CONFIGURATION. 10485 026312 1720 TAD I BGRTPR 10486 026313 3320 DCA BGRTPR 10487 026314 5720 JMP I BGRTPR 10488 026315 6017 BGTBTR, TBLTRN 10489 026316 6015 XFRMAT, BGFRMT 10490 026317 6321 BGRTAD, BGRTTB 10491 026320 0000 BGRTPR, 0 10492 026321 6332 BGRTTB, BGSET0 10493 026322 6333 BGSET1 10494 026323 6340 BGSET2 10495 026324 6353 BGSET3 10496 026325 0005 BGSTK5, 5 10497 026326 0006 BGSTK6, 6 10498 026327 0007 BGSTK7, 7 10499 026330 0010 BGSTK8, 10 10500 026331 0011 BGSTK9, 11 10501 /COME HERE IF 0, I. E. BOTH THE CDR & LPT ARE USED. 10502 026332 5706 BGSET0, JMP I BEGSET /NOTHING TO DO, SO RETURN. 10503 /COME HERE IF 1, I. E. CDR IS USED BUT LPT IS NOT. 10504 026333 1325 BGSET1, TAD BGSTK5 /REMOVE BANK 0 LPT CODE. 10505 026334 4715 JMS I BGTBTR 10506 026335 1326 TAD BGSTK6 /REMOVE BANK 1 LPT CODE. 10507 026336 4715 JMS I BGTBTR 10508 026337 5706 JMP I BEGSET 10509 /COME HERE IF 2, I. E. LPT USED BUT CDR IS NOT. 10510 026340 7200 BGSET2, CLA /REMOVE BANK 0 CDR CODE. 10511 026341 4715 JMS I BGTBTR 10512 026342 7201 CLA IAC /REMOVE BANK 1 CDR CODE. 10513 026343 4715 JMS I BGTBTR 10514 026344 7325 L0003 /SET UP BANK 0 REF TO SWAP 10515 026345 4715 JMS I BGTBTR /AREA START ADDR. 10516 026346 7307 CLL CLA IAC RTL /SET UP BANK 2 REFS TO SWAP 10517 026347 4715 JMS I BGTBTR /AREA START ADDR. 10518 026350 7305 CLA CLL IAC RAL /CHANGE USER CORE ALLOCATION. 10519 026351 4715 JMS I BGTBTR 10520 026352 5706 JMP I BEGSET 10521 /COME HERE IF 3, I. E. NEITHER CDR NOR LPT USED. 10522 026353 7200 BGSET3, CLA /REMOVE BANK 0 CDR CODE. 10523 026354 4715 JMS I BGTBTR 10524 026355 7201 CLA IAC /REMOVE BANK 1 CDR CODE. 10525 026356 4715 JMS I BGTBTR 10526 026357 1325 TAD BGSTK5 /REMOVE BANK 0 LPT CODE. 10527 026360 4715 JMS I BGTBTR 10528 026361 1326 TAD BGSTK6 /REMOVE BANK 1 LPT CODE. 10529 026362 4715 JMS I BGTBTR 10530 026363 1327 TAD BGSTK7 /SET UP SWAP AREA START ADDR REFS 10531 026364 4715 JMS I BGTBTR /IN BANK 0 10532 026365 1330 TAD BGSTK8 /& BANK 2. 10533 026366 4715 JMS I BGTBTR 10534 026367 7305 CLA CLL IAC RAL /SET UP ALLOCATION OF USER AREAS. 10535 026370 4715 JMS I BGTBTR 10536 026371 1331 TAD BGSTK9 10537 026372 4715 JMS I BGTBTR 10538 026373 5706 JMP I BEGSET 10539 PAGE 10540 /THE FOLLOWING TABLE GIVES PARAMETERS FOR THE CHANGE 10541 /TABLE XFERS. 1ST ENTRY IS A CDF INSTRUCTION. 2ND 10542 /ENTRY IS STARTING ADDRESS OF TABLE-1. 3RD ENTRY IS 10543 /MINUS END OF TABLE. 10544 026400 6201 MSTTBL, CDF 0 /TABLE 0 PARAMETERS. BANK 0 CDR CODE. 10545 026401 6440 CPTBL0-1 10546 026402 1316 -CTB0ND 10547 026403 6211 CDF 10 /TABLE 1. BANK 1 CDR CODE. 10548 026404 6464 CPTBL1-1 10549 026405 1304 -CTB1ND 10550 026406 6221 CDF 20 /TABLE 2. USER ALLOCATION WITHOUT CDR. 10551 026407 6500 CPTBL2-1 10552 026410 1216 -CTB2ND 10553 026411 6201 CDF 0 /TABLE 3. BANK 0 REF TO SWAP 10554 026412 6462 CPTBL3-1 /AREA START WHEN NO CDR. 10555 026413 1314 -CTB3ND 10556 026414 6221 CDF 20 /TABLE 4. BANK 2 REFS TO SWAP AREA 10557 026415 6474 CPTBL4-1 /START WHEN NO CDR. 10558 026416 1300 -CTB4ND 10559 026417 6201 CDF 0 /TABLE 5. BANK 0 LPT CODE. 10560 026420 6562 LPTBL0-1 10561 026421 1202 -LTB0ND 10562 026422 6211 CDF 10 /TABLE 6. BANK 1 LPT CODE. 10563 026423 6576 LPTBL1-1 10564 026424 1200 -LTB1ND 10565 026425 6201 CDF 0 /TABLE 7. BANKS 0 REFS TO SWAP 10566 026426 6600 LPTBL2-1 /AREAWHEN NO LPT OR CDR. 10567 026427 1176 -LTB2ND 10568 026430 6221 CDF 20 /TABLE 8. BANK 2 REFS TO SWAP 10569 026431 6602 LPTBL3-1 /AREA START WHEN NO LPT OR CDR. 10570 026432 1172 -LTB3ND 10571 026433 6221 CDF 20 /TABLE 9. USED AFTER TABLE 2 TO CHANGE 10572 026434 6606 LPTBL4-1 /USER ALLOCATION WHEN NO LPT OR CDR. 10573 026435 1150 -LTB4ND 10574 026436 6201 CDF 0 /TABLE 10. FOR COMMON FILE EXTS 10575 026437 6630 DPTBL0-1 /CHANGES. 10576 026440 1144 -DTB0ND 10577 10578 /TABLE 0 FOR BANK 0 CHANGES 10579 /TO REMOVE CDR CODE. 10580 026441 0221 CPTBL0, CPL000 /REMOVE CHECK FOR CTRL/C 10581 026442 7000 CPV000 /FROM THE CDR. 10582 026443 0222 CPL001 10583 026444 1022 CPV001 10584 10585 026445 0364 CPL100 /REMOVE CHECK FOR CDR ASSIGNED TO 10586 026446 7000 CPV100 /USER ISSUING CTRL/C. 10587 026447 0365 CPL101 10588 026450 7000 CPV101 10589 10590 026451 0617 CPL200 /CHECK LSTMOD FOR CHARACTERS AS DATA 10591 026452 1130 CPV200 /FOR AN INPUT STATEMENT. 10592 026453 0620 CPL201 10593 026454 7450 CPV201 10594 10595 026455 3726 CPL300 /REMOVE CHECK FOR INPUT FROM CDR. 10596 026456 7340 CPV300 10597 026457 3727 CPL301 10598 026460 1302 CPV301 10599 026461 3730 CPL302 10600 026462 3022 CTB0ND, CPV302 10601 10602 /SWAP AREA STARTING ADDRESS CHANGE NEXT. 10603 026463 0361 CPTBL3, COL000 10604 026464 5562 CTB3ND, COV000 10605 10606 /TABLE 1 FOR BANK 1 CHANGES. 10607 /SYSTEM CODE CHANGES 1ST. 10608 026465 0003 CPTBL1, CPL400 /REMOVE CHECK FOR CDR FLAG. 10609 026466 5020 CPV400 10610 10611 026467 3727 CPL500 /TREAT CDR COMMAND AS UNDEFINED. 10612 026470 1544 CPV500 10613 10614 026471 4647 CPL600 /ENABLE CDR CLEAR FLAG IOTS IN 10615 026472 6634 CPV600 /CASE AN UNUSED CDR RAISES A FLAG. 10616 026473 4650 CPL601 10617 026474 6674 CTB1ND, CPV601 10618 10619 /BANK 2 CHANGES. 10620 /START OF SWAP AREA CHANGES FIRST. 10621 026475 2140 CPTBL4, COL100 10622 026476 5657 COV100 10623 10624 026477 4200 COL200 10625 026500 5657 CTB4ND, COV200 10626 10627 /NOW CHANGES TO TABLE ALLOCATING USER SPACE. 10628 026501 3210 CPTBL2, CBL000 10629 026502 0206 CBV000 /3 BANKS, 3 USERS. 10630 026503 3211 CBL001 10631 026504 1205 CBV001 10632 026505 3212 CBL002 10633 026506 2102 CBV002 10634 10635 026507 3224 CBL100 /3 BANKS, 4 USERS. 10636 026510 0203 CBV100 10637 026511 3225 CBL101 10638 026512 1203 CBV101 10639 026513 3226 CBL102 10640 026514 2203 CBV102 10641 026515 3227 CBL103 10642 026516 3102 CBV103 10643 10644 026517 3253 CBL200 /3 BANKS, 5 USERS. 10645 026520 3102 CBV200 /NOTE: 1ST 3 ENTRIES ARE SAME WITH 10646 026521 3254 CBL201 /& WITHOUT THE CDR. 10647 026522 4201 CBV201 10648 10649 026523 3306 CBL300 /3 BANKS, 6 USERS. 10650 026524 0101 CBV300 /NOTE: 2ND THRU 4TH ENTRIES ARE SAME 10651 026525 3312 CBL301 /WITH & WITHOUT CDR. 10652 026526 4201 CBV301 10653 026527 3313 CBL302 10654 026530 5201 CBV302 10655 10656 026531 3354 CBL500 /3 BANKS, 7 USERS. 10657 026532 2201 CBV500 10658 026533 3355 CBL501 10659 026534 3201 CBV501 10660 026535 3357 CBL502 10661 026536 5100 CBV502 10662 026537 3360 CBL503 10663 026540 6100 CBV503 10664 10665 026541 3424 CBL600 /3 BANKS, 8 USERS. 10666 026542 0201 CBV600 /NOTE: 3RD THRU 6TH ENTRIES ARE SAME 10667 026543 3425 CBL601 /WITH & WITHOUT CDR. 10668 026544 1201 CBV601 10669 026545 3432 CBL602 10670 026546 6100 CBV602 10671 026547 3433 CBL603 10672 026550 7100 CBV603 10673 10674 026551 3435 CBL700 /4 BANKS, 8 USERS. 10675 026552 1203 CBV700 /NOTE: 1ST, 4TH, & 5TH ENTRIES ARE 10676 026553 3436 CBL701 /SAME WITH & WITHOUT CDR. 10677 026554 2203 CBV701 10678 026555 3441 CBL702 10679 026556 5302 CBV702 10680 026557 3442 CBL703 10681 026560 6302 CBV703 10682 026561 3443 CBL704 10683 026562 7101 CTB2ND, CBV704 10684 10685 /BANK 0 LPT CODE. 10686 026563 3411 LPTBL0, LPL000 /SETTING UP OF LPT IOT. 10687 026564 1136 LPV000 10688 026565 3412 LPL001 10689 026566 1035 LPV001 10690 026567 3413 LPL002 10691 026570 3227 LPV002 10692 10693 026571 5216 LPL100 /CHECK FOR LPT INTERUPT. 10694 026572 3333 LPV100 10695 026573 5217 LPL101 10696 026574 3003 LPV101 10697 026575 5220 LPL102 10698 026576 3005 LTB0ND, LPV102 10699 10700 //BANK 1 LPT CODE. 10701 026577 3720 LPTBL1, LPL200 /LPT COMMAND POINTER. 10702 026600 1544 LTB1ND, LPV200 10703 10704 /BANK 0 SWAP AREA ADDR. 10705 026601 0361 LPTBL2, LOL000 10706 026602 5377 LTB2ND, LOV000 10707 10708 /BANK 2 SWAP AREA ADDR. 10709 026603 2140 LPTBL3, LOL100 10710 026604 5474 LOV100 10711 026605 4200 LOL200 10712 026606 5474 LTB3ND, LOV200 10713 10714 /ALLOCATION CHANGES. 10715 026607 3306 LPTBL4, LBL000 /2 BANKS, 6 USERS, 1ST ENTRY. 10716 026610 0102 LBV000 10717 10718 026611 3314 LBL100 /3 BANKS, 6 USERS, ALL ENTRIES. 10719 026612 0305 LBV100 10720 026613 3315 LBL101 10721 026614 1304 LBV101 10722 026615 3316 LBL102 10723 026616 2304 LBV102 10724 026617 3317 LBL103 10725 026620 3204 LBV103 10726 026621 3320 LBL104 10727 026622 4204 LBV104 10728 026623 3321 LBL105 10729 026624 5102 LBV105 10730 10731 026625 3356 LBL200 /2 BANKS, 7 USERS, ENTRIES 5&6. 10732 026626 4101 LBV200 10733 026627 3357 LBL201 10734 026630 5200 LTB4ND, LBV201 10735 10736 /TABLE OF CHANGES FOR COMMON FILE EXTENSIONS. 10737 026631 7450 DPTBL0, DPL000 10738 026632 7000 DPV000 10739 026633 7550 DPL001 10740 026634 7000 DTB0ND, DPV001 10741 10742 *7200 10743 027200 6221 FINISH, CDF 20 10744 027201 1645 TAD I XPNT /GET ADDRESS OF TOP OF SWAP REGION 10745 027202 3245 DCA XPNT 10746 027203 6211 CDF 10 10747 027204 3645 DCA I XPNT /CLEAR THIS STUFF 10748 027205 2245 ISZ XPNT 10749 027206 5204 JMP .-2 10750 027207 6221 CDF 20 10751 027210 1032 TAD KLTOP 10752 027211 7041 CIA 10753 027212 1246 TAD FIN001 10754 027213 3245 DCA XPNT 10755 027214 3646 DCA I FIN001 10756 027215 2246 ISZ FIN001 10757 027216 7000 NOP 10758 027217 2245 ISZ XPNT 10759 027220 5214 JMP .-4 10760 027221 1247 FIN002, TAD BGCORS 10761 027222 7106 CLL RTL 10762 027223 7004 RAL 10763 027224 1244 TAD FINCDF 10764 027225 3226 DCA XCDF 10765 027226 0000 XCDF, 0 10766 027227 3645 DCA I XPNT /CLEAR FIELD 10767 027230 2245 ISZ XPNT 10768 027231 5227 JMP .-2 10769 027232 7340 L7777 10770 027233 1247 TAD BGCORS 10771 027234 3247 DCA BGCORS 10772 027235 7340 L7777 10773 027236 1247 TAD BGCORS 10774 027237 7640 SZA CLA 10775 027240 5221 JMP FIN002 /ANOTHER FIELD TO WIPE STILL 10776 027241 6203 FINENT, CIF CDF 10777 027242 5643 JMP I .+1 /WHEW! 10778 027243 0344 ENTRY 10779 027244 6201 FINCDF, CDF 10780 027245 4200 XPNT, BEG801 10781 027246 7250 FIN001, FIN003 10782 027247 0000 BGCORS, 0 10783 FIN003, 10784 10785 /PRECEDING THIS CODE IN FIELD 2 IS THE FOLLOWING: 10786 / CLA /ENTRY FROM INTERRUPT ROUTINE 10787 / 6XX0 /UNUSED CODES CLEAR FLAG IOT. 10788 / . 10789 / . 10790 / . 10791 / JMP KL8INT 10792 / L0001 /ENTRY FROM SCHEDULER 10793 / 6XX5 /USED CODES 10794 / . 10795 / . 10796 / . 10797 / 10798 10799 *7755 10800 10801 KL8LOD, /FIX THE POINTERS EVENTUALLY 10802 027755 7701 KL8FIX, CLA MQA 10803 027756 7001 IAC 10804 027757 7421 MQL 10805 027760 6203 CIF CDF 10806 027761 6002 IOF /DISABLE INTRPT TEMPORARILY (UNTIL LOOK IS ISZ'D) 10807 027762 1776 TAD I PLOOKS /RESET POINTER 10808 027763 3777 DCA I PLOOK 10809 027764 5765 JMP I .+1 /INTERRUPT ON AGAIN AFTER THIS JUMP 10810 027765 0210 KL8LF0 /BACK TO SCHEDULER 10811 10812 027766 1774 KL8INT, TAD I PSAVLK /RESTORE LINK 10813 027767 7104 CLL RAL 10814 027770 1775 TAD I PSAVAC /RESTORE AC 10815 027771 6203 CIF CDF 10816 027772 5773 JMP I .+1 10817 027773 5313 KL8LFL /BACK TO INTERRUPT ROUTINE 10818 10819 027774 5326 PSAVLK, SAVLK 10820 027775 5325 PSAVAC, SAVAC 10821 027776 0121 PLOOKS, LOOKST 10822 10823 027777 0120 PLOOK, LOOK 10824 10825 PAGE 10826 $