1 /FOCAL EQUIVALANCE DEFINITIONS 2 3 FIXMRI FGET=0000 4 FIXMRI FADD=1000 5 FIXMRI FSUB=2000 6 FIXMRI FDIV=3000 7 FIXMRI FMUL=4000 8 FIXMRI FPUT=6000 9 FIXMRI FNOR=7000 10 FENT=JMS I 7 11 FEXT=0 12 13 /PAGE ZERO CONSTANTS, POINTERS, ETC. 14 15 AXIN=10 16 XRT=11 17 PDLXR=13 18 FLTXR=14 19 FLTXR2=15 20 AXOUT=17 21 XCT=20 22 GTEM=21 23 PC=22 24 THISLN=23 25 ONFLAG=23 26 DEBGSW=26 27 PACKST=27 28 PT1=30 29 LASTV=31 30 T1=32 31 T3=33 32 FLOP=40 33 AC1H=41 34 AC1L=42 35 OVER1=43 36 FLAC=44 37 HORD=45 38 LORD=46 39 OVER2=47 40 SIGNF=50 41 FISW=52 42 SORTCN=54 43 EFOP=56 44 BUFR=60 45 ADD=61 46 XCTIN=62 47 OUTDEV=63 48 INDEV=64 49 CHAR=66 50 LINENO=67 51 T2=71 52 P337=75 53 CLF=76 54 CCR=77 55 LIST3=77 56 DMPSW=100 57 P7700=101 58 PER=102 59 M77=103 60 P7600=104 61 M20=105 62 P177=106 63 P17=107 64 C260=113 65 M240=114 66 MCR=116 67 M5=120 68 M11=121 69 P77=122 70 C200=123 71 FLARGP=125 72 DOUBLE=127 73 FOUTPUT=130 74 FINPUT=131 75 CFRS=133 76 END=134 77 ENDT=135 78 START=177 79 QUIT=177 80 81 /NEW INSTRUCTIONS 82 83 GETSGN=1045 84 NEGATE=4451 85 FIXIT=4453 86 GETC=4545 87 SORTJ=4547 88 SORTC=4550 89 PRINTC=4551 90 READC=4552 91 PRNTLN=4553 92 FINDLN=4555 93 RTL6=4557 94 TSTLPR=4562 95 TSTGRP=4563 96 TESTC=4564 97 DELETE=4565 98 ERROR2=4566 99 RETURN=5536 100 101 /MACHINE INSTRUCTIONS 102 103 CDI=6203 104 105 /FUNCTION ADDRESSES 106 107 FEXP=4620 108 ARTN=5000 109 FLOG=5040 110 XSQRT=7400 111 /OTHER CONSTANTS AND POINTERS 112 113 WORDS=4 114 LF=212 115 GOTO=603 116 PROCESS=610 117 PROC=611 118 PC1=614 119 STAR=614 120 COMMENT=614 121 IF=1013 122 IF1=1035 123 SET=1041 124 FOR=1041 125 FINCR=1065 126 FLIMIT=1075 127 FCONT=1101 128 FPROC=1106 129 GLIST=1377 130 TLIST=1400 131 GETARG=1403 132 TLIST2=1404 133 ECALL=1601 134 EVAL=1613 135 ECHOLST=1624 136 TERMS=1770 137 FLARG=2030 138 PARTEST=2047 139 INFIX=2401 140 PRNT=2442 141 MULT10=5667 142 REMAIN=5712 143 DUBLAD=5733 144 TEN=6271 145 FPNT=6400 146 TEST2=6736 147 SPECIAL=6777 148 DMULT4=7036 149 DATUM=7102 150 SIGN=7124 151 RESOLV=7173 152 MP4=7200 153 MP1=7254 154 MP2=7256 155 MIF=7260 156 DNORM=7335 157 TEST4=7366 158 BUFFER=7470 159 MONITOR=7600 160 /FOCAL OS/8 LIBRARY ROUTINES 161 162 FIELD 0 163 TPUSHF= JMS I [MPD2 /DEFINE SOME NEW INSTRUCTIONS 164 TPOPF= JMS I [MPD3 165 TGETC= JMS I [MGETC 166 TSPNOR= JMS I [MSPNOR 167 TJUMP= JMS I [JUMPER 168 GETHND= JMS I [HANDLR 169 GTNAME= JMS I [NAME 170 GETMON= JMS I [USRIN 171 DISMIS= JMS I [USROUT 172 WAITUP= JMS I [IOWAIT 173 COMPAR= JMS I [CMPR 174 OPENUP= JMS I [OPEN 175 176 *1 /INTERRUPT SERVICE ROUTINE 177 000001 6212 CIF 10 178 000002 5403 JMP I .+1 179 INTRPT undefined ^ 000003 7777 180 000004 6244 RMF /RETURN FROM INTERRUPT 181 000005 6001 ION 182 000006 5400 JMP I 0 183 184 000007 7700 USR, 7700 //POINTER TO MONITOR (200 IF IN CORE) 185 186 000010 0000 AUTO, ZBLOCK 4 /AUTO-INDEX REGISTERS 000011 0000 000012 0000 000013 0000 187 188 000014 0000 NUDATE, ZBLOCK 4 /BECOMES THE CURRENT DATE 000015 0000 000016 0000 000017 0000 189 190 000020 4576 NONAME, TPOPF /CLEAR PROGRAM NAME 191 000021 0066 XNAME, NAMLOC 192 000022 7001 IAC 193 000023 3105 DCA GOSW /SET RETURN 194 000024 4033 JMS HEADER /UPDATE HEADER - THEN CLEAR 195 000025 3077 DCA LIBFIL /'CURRENT PROGRAM SAVED' FLAG 196 000026 1105 TAD GOSW /RETURN FOR LOAD CALLS 197 000027 1046 EXIT, TAD GOJUMP /NORMAL RETURNS='JMP I (PROC' 198 000030 3033 DCA ATEM 199 000031 6213 CDI 10 200 000032 6001 ION 201 202 ATEM=. 203 000033 0000 HEADER, 0 204 000034 4577 TPUSHF 205 000035 0066 XCHAR, NAMLOC /STRATEGICALLY LOCATED ! 206 000036 4576 TPOPF /MOVE PROGRAM NAME 207 000037 0213 TITLE 208 000040 3445 DCA I D /CLEAR I.D. 209 000041 4577 TPUSHF 210 000042 0014 NUDATE 211 000043 4576 TPOPF /MOVE CURRENT DATE 212 DIALOG, DATE redefined ^ 000044 0217 213 000045 5433 JMP I HEADER 214 D, DATE-1 redefined ^ 000046 0216 215 GOJUMP, JMP I .+2 /PLUS (GOSW) redefined ^ 000047 5451 216 LGOSUB undefined ^ 000050 7777 217 000051 0611 PROC 218 K177, UPDATE /BECOMES 'START' redefined ^ undefined ^ 000052 7777 219 K604, GOTO+1 redefined ^ 000053 0604 220 221 NEWDEV, ZBLOCK 4 redefined ^ 000054 0000 000055 0000 000056 0000 000057 0000 222 FLNGTH= .-2 223 STBLK= .-1 /LIBBLK-1 = INBUF 224 225 LIBBLK, ZBLOCK 2 /FOR DEVICE NAME redefined ^ 000060 0000 000061 0000 226 K7400, 7400 /LOAD POINT redefined ^ 000062 7400 227 000063 0000 0 /FOR DEVICE # 228 LIBHND, 0 /HANDLER ENTRY redefined ^ 000064 0000 229 230 CHR, 0 /LOWER FIELD COPY redefined ^ 000065 0000 231 232 *CHAR /SAVE A WORD OR TWO! 233 000066 0000 NAMLOC, ZBLOCK 4 000067 0000 000070 0000 000071 0000 234 EXTENSION=.-1 235 000072 0000 DEVNO, 0 236 000073 0000 DEVHLD, 0 237 238 000074 0000 LIBDEV, ZBLOCK 4 000075 0000 000076 0000 000077 0000 239 LIBLEN= .-2 240 LIBFIL= .-1 /REFERENCE VIA P77 241 242 *100 243 000100 0000 PC0, ZBLOCK 2 /FOR COMMAND MODE VIA C100 000101 0000 244 000102 4567 DISMISS /CONVENIENT FOR RESTARTING 245 000103 7001 IAC 246 000104 5027 JMP EXIT 247 248 ERROR1= JMS . 249 000105 0000 GOSW, 0 /LOWER FIELD ERROR ROUTINE 250 000106 4567 DISMISS /CLEARS AC 251 000107 1105 TAD GOSW 252 000110 6213 CDI 10 253 DCA I [ERR2 undefined ^ undefined ^ 000111 3563 254 000112 5513 JMP I .+1 /SIMULATE A 'JMS' 255 ERR2+1 undefined ^ 000113 7777 256 257 000114 0000 INBLK, ZBLOCK 2 000115 0000 258 000116 5000 5000 259 000117 0000 0 260 000120 0000 INHND, 0 261 000121 0000 INFLG, 0 262 263 000122 0000 OUTBLK, ZBLOCK 2 000123 0000 264 000124 5200 5200 265 000125 0000 0 266 000126 0000 OUTHND, 0 267 000127 0000 OUTFLG, 0 268 /LIBRARY AND FILE COMMAND PROCESSOR: 269 270 271 /****** STORAGE ALLOCATION MAP ****** 272 /***** ***** 273 /* 3600 (OUTPUT,RESTORE,CLOSE,ABORT) 274 /* 4000 INPUT BUFFER (PAGE 1) 275 /* 4200 INPUT BUFFER (PAGE 2) 276 /* 4400 OUTPUT BUFFER (PAGE 1) 277 /* 4600 OUTPUT BUFFER (PAGE 2) 278 /* 5000 INPUT HANDLER 279 /* 5200 OUTPUT HANDLER 280 /* 5400 FILES (INPUT,OPEN,AND LIST) 281 /* 282 /* 5600 PUSHDOWN LIST CONTROLS 283 /* 6000 NAME, GTMON, DISMISS, IOWAIT 284 /* 6200 HANDLR, PUTDEV, & TABULATE 285 /* 6400 DECODER, NAMER, DATER, SAVER 286 /* 6600 RUN,CALL,GOSUB,BRANCH,RETURN 287 /* 7000 LIBRARIAN 288 /* 7200 MISCELLANEOUS 289 /* 7400 LIBRARY HANDLER 290 /***** ***** 291 /************************************ 292 293 294 /TEXT STORAGE AND THE PUSH-DOWN LIST USE THE 295 /REMAINING SPACE. IF THE FILE COMMANDS ARE 296 /DELETED STORAGE EXTENDS TO 5600; OTHERWISE 297 /IT ENDS AT APPROXIMATELY 3600. 298 299 300 301 302 /INITIAL TEXT FOR U/W-FOCAL 303 304 *200 305 000200 0000 0 /PROGRAM LENGTH 306 000201 5051 5051 /"()" FOR TDUMP 307 000202 0000 LINE0, 0 /POINTER TO NEXT 308 000203 0000 0 /LINE NO. ZERO 309 000204 0340 TEXT "C U/W-FOCAL:" 000205 2557 000206 2755 000207 0617 000210 0301 000211 1472 000212 0000 310 000213 0000 TITLE, ZBLOCK 4 /NULLS NOW PRINT AS SPACES 000214 0000 000215 0000 000216 0000 311 000217 0000 DATE, ZBLOCK 4 /LINK TO INITIAL DIALOG 000220 0000 000221 0000 000222 0000 312 000223 7715 7715 /DUMMY CR 313 LINE1=. 314 /OS/8 FOCAL FILE ROUTINES 315 316 *3622 317 318 003622 4574 RESTOR, TSPNOR /'OPEN RESTORE' COMMAND 319 003623 1065 TAD CHR /SAVE COMMAND CHAR 320 003624 3300 DCA NOCHAR 321 003625 7040 CMA /INITIALIZE ECHO SWITCH 322 003626 3105 DCA GOSW 323 003627 4571 GTNAME /TO SET ECHO MODE 324 003630 1300 TAD NOCHAR 325 003631 4573 TJUMP /SORT OUT "I" OR "O" 326 003632 6374 ORLIST-1 327 003633 5364 ORGO-ORLIST 328 003634 4105 ERROR1 /NEITHER ONE! 329 330 003635 4237 CLOSE, JMS CLOSER /'OUTPUT CLOSE' COMMAND 331 003636 5027 JMP EXIT 332 333 003637 0000 CLOSER, 0 /CLOSE THE OPEN OUTPUT FILE 334 003640 1127 TAD OUTFLG 335 003641 7650 SNA CLA /DON'T BOTHER IF IT ISN'T OPEN 336 003642 5637 JMP I CLOSER 337 003643 7160 STL CMA 338 003644 0377 K377, AND (232 /WRITE '^Z' 339 003645 4300 JMS NOCHAR 340 003646 7430 SZL /PAD BUFFER WITH ZEROS 341 003647 5245 JMP .-2 / (AND WRITE IT OUT) 342 343 003650 6002 KILLIT, IOF 344 003651 1073 TAD DEVHLD /SAVED DEVICE # 345 003652 6212 CIF 10 346 003653 4407 JMS I USR 347 003654 0004 4 348 003655 3753 ONMTMP /POINTER TO SAVED NAME 349 003656 0000 BLKCNT, 0 /FILE LENGTH (BLOCKS) 350 003657 4105 ERROR1 /HUH? 351 352 TAD (XOUTL /RESTORE TELETYPE OUTPUT ROUTINE undefined ^ 003660 7777 353 003661 6211 CDF 10 354 003662 3562 DCA I [OUTDEV 355 003663 6201 CDF 356 003664 1127 TAD OUTFLG 357 003665 7650 SNA CLA 358 003666 5357 JMP FILERR /FILE WAS TOO LONG 359 003667 3127 DCA OUTFLG /CLEAR 'FILE OPEN' FLAG 360 003670 1256 TAD BLKCNT /CHECK FOR ALTERNATE EXIT 361 003671 7640 SZA CLA 362 003672 5637 JMP I CLOSER /CALLED BY 'CLOSE' 'OCHK' 'OCLCHK' 363 364 003673 1127 ABORT, TAD OUTFLG /'OUTPUT ABORT' COMMAND 365 003674 7650 SNA CLA 366 003675 5027 JMP EXIT /EXIT BEFORE OR AFTER ! 367 003676 3256 DCA BLKCNT 368 003677 5250 JMP KILLIT 369 003700 0000 NOCHAR, 0 /PS/8 3/2 BUFFERED CHARACTER OUTPUT 370 003701 0244 AND K377 /MASK OUT GARBAGE 371 003702 2337 ISZ O3 /WHICH CHAR OF THREE? 372 003703 5334 JMP O2 /STRAIGHT PACKING 373 003704 4337 JMS O3 /HALF WORD PACKING - PACK 1ST HALF 374 003705 1363 TAD OSETUP /GET SAVED ARG 375 003706 4337 JMS O3 /PACK SECOND HALF 376 003707 7146 CMA CLL RTL /RESET 3-WAY SWITCH 377 003710 3337 DCA O3 /BUFFER CAN ONLY BE FILLED WITH 378 003711 2127 ISZ OUTFLG /THE 3RD CHARACTER OF 3 379 003712 5700 JMP I NOCHAR /NOT FULL YET 380 003713 1360 TAD OLNGTH /-MAXIMUM ALLOWABLE LENGTH 381 003714 1256 TAD BLKCNT /LENGTH SO FAR 382 003715 7620 SNL CLA /HAS HE GONE TOO FAR? 383 003716 5276 JMP ABORT+3 /YES, KILL HIM 384 003717 4776 JMS I (PUTDEV /TELL MONITOR THE HANDLER'S IN CORE 385 003720 0124 OUTHND-2 //POINTER TO DEVICE # AND ENTRY 386 003721 6002 IOF 387 003722 4526 JMS I OUTHND /WRITE ONE BLOCK BUFFER 388 003723 4200 4200 389 003724 4400 4400 390 003725 0000 OBLK, 0 391 003726 5561 JMP I [DERR /DEVICE ERROR 392 003727 2325 ISZ OBLK /BUMP OUTPUT BLOCK 393 003730 2256 ISZ BLKCNT /AND COUNT OF BLOCKS SO FAR 394 003731 4363 JMS OSETUP /RESET POINTERS FOR NEXT BUFFER 395 003732 7100 CLL /INFORM CLOSER THAT 396 003733 5700 JMP I NOCHAR /THE END IS AT HAND 397 398 003734 3751 O2, DCA I OPTR1 /NORMAL PACKING IS EASY! 399 003735 2351 ISZ OPTR1 /BUMP POINTER 400 003736 5700 JMP I NOCHAR 401 402 003737 0000 O3, 0 /HALF-WORD PACK ROUTINE 403 003740 7106 CLL RTL 404 003741 7006 RTL 405 003742 3363 DCA OSETUP /SAVE FOR SECOND HALF 406 003743 1363 TAD OSETUP 407 003744 0062 AND K7400 408 003745 1752 TAD I OPTR2 /ADD IN CHARACTER IN RIGHT HALF 409 003746 3752 DCA I OPTR2 /PACK IT 410 003747 2352 ISZ OPTR2 /BUMP POINTER AGAIN 411 003750 5737 JMP I O3 412 413 003751 0000 OPTR1, 0 /PACKING POINTERS 414 003752 0000 OPTR2, 0 415 416 003753 0000 ONMTMP, ZBLOCK 4 /SAVED FILE NAME 003754 0000 003755 0000 003756 0000 417 418 003757 4105 FILERR, ERROR1 /FILE TOO LONG 419 420 003760 0000 OLNGTH, 0 /MAX. FILE LENGTH 421 422 003761 5615 ORGO, IRST 423 003762 5425 ORST 424 003763 0000 OSETUP, 0 /RESET ALL THE POINTERS (WHAT FUN!) 425 003764 1324 TAD OBLK-1 426 003765 3351 DCA OPTR1 427 003766 1324 TAD OBLK-1 428 003767 3352 DCA OPTR2 429 003770 1160 TAD [-200 /X3 = 384 CHARACTERS/BUFFER 430 003771 3127 DCA OUTFLG 431 003772 7146 CMA CLL RTL 432 003773 3337 DCA O3 433 003774 5763 JMP I OSETUP 434 435 003776 6264 PAGE 26 003777 0232 436 IMPUT=( WAITUP /JUST PLAIN SNEAKY! 437 005400 7331 OCLCHK 438 005401 4566 OUTPUT, WAITUP /WAIT FOR TELETYPE TO FINISH 439 005402 7040 CMA 440 005403 4564 OPENUP /CALL USR, HANDLER; ENTER FILE 441 005404 0121 YINT, OUTBLK-1 /OUTPUT HANDLER BLOCK 442 005405 0003 3 /MONITOR 'ENTER' CODE 443 005406 5240 JMP TTYOUT /'OPEN OUTPUT TTY:' 444 005407 5600 JMP I .-7 /ENTER ERROR: SEE IF FILE ALREADLY 445 005410 4567 DISMISS /OPEN. IF NO ERROR: KICK USR OUT 446 005411 4577 TPUSHF /SAVE NAME AND OTHER CRAP 447 005412 0066 NAMLOC 448 005413 4576 TPOPF 449 005414 3753 ONMTMP 450 005415 1057 TAD STBLK /STARTING BLOCK 451 005416 3776 DCA I (OBLK 452 005417 1056 TAD FLNGTH /-MAXIMUM ALLOWABLE LENGTH 453 005420 3775 DCA I (OLNGTH 454 005421 4774 JMS I (OSETUP /SET UP PACKING POINTERS 455 005422 3773 DCA I (BLKCNT 456 005423 1072 TAD DEVNO /SAVE FOR CLOSE 457 005424 3073 DCA DEVHLD 458 005425 1127 ORST, TAD OUTFLG /'OPEN RESTORE OUTPUT' COMMAND 459 005426 7650 SNA CLA /FLAG IS CHARACTER COUNT 460 005427 4105 ERROR1 /NO OUTPUT FILE TO RESTORE 461 005430 1237 TAD TTYOUT-1 /POINTER TO FILE OUTPUT ROUTINE 462 005431 6211 CDF 10 463 005432 3562 DCA I [OUTDEV 464 005433 2105 ISZ GOSW /SKIP IF NO ECHO 465 005434 1245 TAD OCHAR0+2 /'TAD ICHAR0' 466 005435 3250 DCA OECHO /SET OUTPUT ROUTINE 467 005436 5027 JMP EXIT /FINISH THE LINE 468 OCHAR undefined ^ 005437 7777 469 005440 1242 TTYOUT, TAD .+2 /SWITCH OUTPUT TO THE TELETYPE 470 005441 5231 JMP ORST+4 471 XOUTL undefined ^ 005442 7777 472 473 005443 0000 OCHAR0, 0 /FILE OUTPUT VIA 'PRINTC' 474 005444 3264 DCA ICHAR0 /SAVE CHARACTER FOR ECHO 475 005445 1264 TAD ICHAR0 476 005446 4772 JMS I (NOCHAR /WRITE IT 477 005447 6001 ION 478 005450 1264 OECHO, TAD ICHAR0 /=0000 IF NO ECHO 479 005451 7450 SNA 480 005452 2243 ISZ OCHAR0 /SET NO ECHO RETURN 481 005453 6213 CDI 10 482 005454 5643 JMP I OCHAR0 483 484 005455 1053 OCMND, TAD K604 /'O' COMMAND ENTRY FROM FIELD 1 485 005456 3071 DCA EXTENSION /SET '.FD' 486 005457 1435 TAD I XCHAR 487 005460 4573 TJUMP /GO DO COMMAND 488 005461 6367 FILIST-1 489 005462 7170 FILEGO-FILIST 490 005463 4105 ERROR1 /OOPS - BAD 'O' COMMAND 491 005464 0000 ICHAR0, 0 /FILE INPUT VIA 'READC' 492 005465 2121 ISZ INFLG /DO WE NEED ANOTHER BUFFER? 493 005466 5727 JMP I RDPTR /NO, UNPACK THE CHARACTER 494 495 005467 6002 IOF 496 005470 4520 JMS I INHND /YES, GO GET IT 497 005471 0200 0200 498 005472 4000 4000 499 005473 0000 IBLK, 0 500 005474 7700 SMA CLA /ONLY BOTHER WITH FATAL ERRORS 501 005475 7610 SKP CLA 502 005476 5561 JMP I [DERR /WE'VE GOT ONE 503 005477 1164 TAD [-600 /=384 CHARACTERS/BUFFER 504 005500 3121 DCA INFLG 505 005501 2273 ISZ IBLK /BUMP TO NEXT BLOCK 506 005502 1272 TAD IBLK-1 /AND RESTORE POINTERS 507 005503 3346 DCA IPNTR 508 005504 6001 ION 509 510 005505 1746 ICHAR1, TAD I IPNTR /STRAIGHTFORWARD UNPACK ROUTINE 511 005506 4327 JMS RDPTR /DO COMMON CRAP 512 005507 1746 ICHAR2, TAD I IPNTR /SAVE LEFT HALF FOR LATER 513 005510 0062 AND K7400 514 005511 3345 DCA ITEMP 515 005512 2346 ISZ IPNTR /INCREMENT TO NEXT WORD 516 005513 1746 TAD I IPNTR /ANOTHER EASY ONE 517 005514 4327 JMS RDPTR 518 005515 1746 ICHAR3, TAD I IPNTR /THIS IS THE TRICKY ONE! 519 005516 2346 ISZ IPNTR /GET LOW-ORDER HALF 520 005517 0062 AND K7400 521 005520 7112 CLL RTR /SHIFT RIGHT 522 005521 7012 RTR 523 005522 1345 TAD ITEMP /GET HIGH-ORDER HALF (REMEMBER?) 524 005523 7012 RTR /SHIFT SOME MORE 525 005524 7012 RTR 526 005525 4327 JMS RDPTR /GOT IT! 527 005526 5305 JMP ICHAR1 /1-2-3-1-2-3-1-2-3 ... 528 529 005527 0000 RDPTR, 0 /THIS IS A COROUTINE ! 530 005530 0052 AND K177 /ISN'T THAT AMAZING ? 531 005531 7450 SNA /IGNORE NULLS AND PARITY 532 005532 5265 JMP ICHAR0+1 533 005533 1371 TAD (-32 /END OF FILE? (^Z) 534 005534 7440 SZA 535 005535 5342 JMP .+5 /NO 536 005536 3121 DCA INFLG /YES, CLEAR OPEN FILE FLAG 537 005537 6211 CDF 10 /AND SET UP CLEVER KLUDGE 538 TAD (EOF /TO CHECK FOR A STUPID undefined ^ 005540 7777 539 005541 3557 DCA I [INDEV /'ATTEMPT-TO-READ-PAST-EOF'! 540 005542 1370 TAD (232 /PASS ^Z TO PROGRAM 541 005543 6213 CDI 10 /(MIGHT COME IN HANDY) 542 005544 5664 JMP I ICHAR0 543 544 005545 0000 ITEMP, 0 545 005546 0000 IPNTR, 0 546 005547 1775 XLEN, TAD I (OLNGTH /FUNCTION TO CHECK FILE LENGTH 547 005550 1773 TAD I (BLKCNT /(AMOUNT USED THUS FAR) 548 005551 7041 CIA 549 005552 6213 CDI 10 550 005553 5754 JMP I .+1 /RETURN MAX. AVAILABLE LENGTH 551 FIN+2 undefined ^ 005554 7777 552 553 005555 0000 ZBLOCK 3 005556 0000 005557 0000 554 555 005560 6774 FILEGO, OLIST 556 005561 3673 ABORT 557 005562 3635 CLOSE 558 005563 3622 RESTOR 559 005564 6423 DATER 560 005565 5577 IMPUT 561 005566 5401 OUTPUT 562 563 005570 0232 PAGE 005571 7746 005572 3700 005573 3656 005574 3763 005575 3760 005576 3725 005577 4566 564 /IMPUT, WAITUP /WAIT FOR THE TELETYPE AGAIN 565 005600 7040 CMA 566 005601 4564 OPENUP /CALL THAT AMAZING 567 005602 0113 INBLK-1 /GENERAL-PURPOSE SUBROUTINE 568 005603 0002 2 /MONITOR 'LOOKUP' 569 005604 5232 JMP TTYIN /'OPEN INPUT TTY:' 570 005605 4105 ERROR1 /WHOOPS - FILE NOT FOUND 571 005606 4567 DISMISS /BOOT THE USR OUT 572 005607 7240 CLA CMA 573 005610 3121 DCA INFLG /CHARACTER COUNTER 574 005611 1057 TAD STBLK /FIRST BLOCK NO. 575 005612 3614 DCA I .+2 576 005613 5220 JMP IRST+3 577 005614 5473 IBLK 578 005615 1121 IRST, TAD INFLG /'OPEN RESTORE INPUT' COMMAND 579 005616 7650 SNA CLA /CHECK CHARACTER COUNT 580 005617 4105 ERROR1 /NO INPUT FILE TO RESTORE 581 005620 1231 TAD TTYIN-1 /SET I/O POINTERS 582 005621 6211 CDF 10 583 005622 3557 DCA I [INDEV 584 005623 1032 TAD ATEM-1 /'ION' 585 005624 2105 ISZ GOSW /AND ECHO MODE 586 005625 1377 TAD (PRINTC-ION 587 005626 3630 DCA I .+2 /READC ECHO INSTRUCTION 588 005627 5027 JMP EXIT /RETURN 589 IECHO undefined ^ 005630 7777 590 ICHAR undefined ^ 005631 7777 591 TTYIN, TAD (XI33 /'OPEN INPUT TTY:' undefined ^ 005632 7777 592 005633 5221 JMP IRST+4 593 594 /THE STACK CAN BEGIN HERE IF THE FILE COMMANDS ARE DELETED. 595 596 /NOTE: STACK ROUTINES HAVE BEEN REVISED FOR IMPROVED SPEED! 597 598 005634 0000 PCHK, 0 /STACK OVERFLOW CHECK 599 005635 6211 CDF 10 600 005636 1556 TAD I [PDLXR /ADJUST FIELD 1 X-REGISTER 601 005637 3013 DCA PDLXR /BACKUP & COPY 602 005640 1013 TAD PDLXR 603 005641 3556 DCA I [PDLXR 604 005642 1013 TAD PDLXR /CHECK FOR OVERFLOW 605 005643 7141 CLL CIA 606 005644 1555 TAD I [BUFR /LAST TEXT WORD 607 005645 6201 CDF 608 005646 7630 SZL CLA 609 005647 4105 PDERR, ERROR1 /TOO BAD ! 610 005650 5634 JMP I PCHK 611 612 005651 0000 MPUSHA, 0 /PUSH THE AC ON THE STACK 613 005652 3300 DCA MPOPA 614 005653 7040 CMA 615 005654 4234 JMS PCHK 616 005655 1300 TAD MPOPA 617 005656 3413 DCA I PDLXR 618 005657 5651 JMP I MPUSHA 619 *5660 620 005660 0000 IOBUF, ZBLOCK 20 /TELETYPE OUTPUT BUFFER 005661 0000 005662 0000 005663 0000 005664 0000 005665 0000 005666 0000 005667 0000 005670 0000 005671 0000 005672 0000 005673 0000 005674 0000 005675 0000 005676 0000 005677 0000 621 622 /LOWER FIELD STACK ROUTINES: 623 624 005700 0000 MPOPA, 0 /POP A WORD INTO THE AC 625 005701 6211 CDF 10 626 005702 2556 ISZ I [PDLXR /FAKE A FIELD 1 USE 627 005703 1556 TAD I [PDLXR 628 005704 6201 CDF 629 005705 3251 DCA MPUSHA 630 005706 1651 TAD I MPUSHA 631 005707 5700 JMP I MPOPA 632 633 005710 0000 MPD2, 0 /PUSH 4 WORDS ON THE STACK 634 005711 7240 CLA CMA 635 005712 1710 TAD I MPD2 /BACKUP POINTER 636 005713 3010 DCA AUTO 637 005714 2310 ISZ MPD2 638 005715 1326 TAD FCDF+2 639 005716 6214 RDF /CALLED FROM EITHER FIELD 640 005717 3324 DCA FCDF 641 005720 1154 TAD [-4 642 005721 4234 JMS PCHK 643 005722 1154 TAD [-4 644 005723 3234 DCA PCHK 645 005724 7402 FCDF, HLT /CHANGE TO CALLING FIELD 646 005725 1410 TAD I AUTO 647 005726 6203 CDI 648 005727 3413 DCA I PDLXR /LOAD STACK 649 005730 2234 ISZ PCHK 650 005731 5324 JMP FCDF /WITH FOUR WORDS 651 005732 1324 TAD FCDF 652 005733 3334 DCA .+1 653 005734 6203 CDI 654 005735 5710 JMP I MPD2 655 656 005736 0000 MPD3, 0 /POP 4 WORDS 657 005737 7240 CLA CMA 658 005740 1736 TAD I MPD3 659 005741 3013 DCA PDLXR 660 005742 2336 ISZ MPD3 661 005743 1154 TAD [-4 662 005744 3234 DCA PCHK 663 005745 4300 JMS MPOPA 664 005746 3413 DCA I PDLXR 665 005747 2234 ISZ PCHK 666 005750 5345 JMP .-3 667 005751 5736 JMP I MPD3 668 669 670 005752 4251 APUSHX, JMS MPUSHA /FIELD 1 'PUSHA' CALL 671 005753 6213 CDI 10 672 005754 5755 JMP I .+1 673 XPUSHA+3 undefined ^ 005755 7777 674 005756 0000 REKOVR, ZBLOCK 3 /'SWBA' & OTHER RESETS GO HERE 005757 0000 005760 0000 675 005761 3413 DCA I PDLXR /CLEAR OUT THE TTY BUFFER 676 005762 2260 ISZ IOBUF /('-20' SET BY 'RECOVR') 677 005763 5361 JMP .-2 /ALSO CLEARS 'MPUSHA' 678 005764 1553 TAD I [SWAPIN /CHECK CORE-SWAP FLAG 679 005765 7650 SNA CLA 680 005766 4553 JMS I [SWAPIN /RESTORE FOCAL! 681 005767 6213 CDI 10 682 TAD (RECOVX /LET 'EOF' RESTORE THE TTY undefined ^ 005770 7777 683 DCA I (EOF undefined ^ 005771 7777 684 JMP I (EOF+1 undefined ^ 005772 7777 685 686 005777 6550 PAGE 687 /READ A DEV:FILENAME.EX STRING INTO 'NAMLOC' & 'NEWDEV' 688 689 006000 1377 GNAME, TAD ("A-": /WAS IT A DEVICE ? 690 006001 7640 SZA CLA 691 006002 5610 JMP I NAME /NO, ALL SET UP 692 006003 4575 TGETC /YES, MOVE PAST ':' 693 006004 1066 TAD NAMLOC /MOVE TO DEVICE AREA 694 006005 3054 DCA NEWDEV 695 006006 1067 TAD NAMLOC+1 696 006007 5213 JMP NAME+3 /GET FILENAME 697 698 006010 0000 NAME, 0 699 006011 1152 TAD [5723 /CODE FOR 'DSK:' 700 006012 3054 DCA NEWDEV /(DEFAULT DEVICE) 701 006013 3055 DCA NEWDEV+1 702 006014 3066 DCA NAMLOC /CLEAR NAME AREA 703 006015 3067 DCA NAMLOC+1 /(DON'T CLEAR ASSUMED EXTENSION) 704 006016 3070 DCA NAMLOC+2 705 006017 1021 TAD XNAME /INITIALIZE POINTERS 706 006020 3333 DCA NMBASE 707 006021 7360 GETN, STA STL 708 006022 3344 DCA PERDSW 709 006023 3354 DCA NAMECT 710 006024 4574 TSPNOR 711 006025 3551 DCA I [NPACK 712 006026 5627 JMP I .+1 /EXAMINE THE FIRST CHARACTER 713 006027 7344 FIRSTC 714 715 006030 5621 NAMEC, JMP I GETN /GET NEXT CHARACTER OR NUMBER 716 006031 1376 TAD ("(-". /EXTENSION? 717 006032 7450 SNA 718 006033 5271 JMP PERD /YES, CLEAR DEFAULT EXTENSION 719 006034 1375 TAD (".-", /COMMA? 720 006035 7650 SNA CLA 721 006036 5302 JMP ECHCHK /YES, CHECK FOR ECHO 722 006037 4316 JMS DECODE /MUST BE A-Z, 0-9 723 006040 5200 JMP GNAME /IT WASN'T, MUST BE END OF NAME 724 006041 7430 SZL /RESTORE CHARACTER 725 006042 1267 TAD K57 726 006043 7001 IAC 727 006044 3316 DCA DECODE /TEMPORARY STORAGE 728 006045 1354 TAD NAMECT /NO MORE THAN 6 CHARACTERS/NAME 729 006046 1376 TAD (-6 730 006047 7700 K7700, SMA CLA 731 006050 5755 JMP I PASSN /GO TO THE END OF THE NUMBER 732 006051 1354 TAD NAMECT /BUILD POINTER TO CHAR. POSITION 733 006052 7110 CLL RAR 734 006053 1333 TAD NMBASE 735 006054 3033 DCA ATEM 736 006055 1316 TAD DECODE /LEFT OR RIGHT HALF? 737 006056 7430 SZL 738 006057 5263 JMP .+4 739 006060 7006 RTL /LEFT, SHIFT OVER 740 006061 7006 RTL 741 006062 7006 RTL 742 006063 1433 TAD I ATEM /ADD IN OTHER HALF 743 006064 3433 DCA I ATEM 744 006065 2354 ISZ NAMECT /BUMP COUNT 745 006066 5230 JMP NAMEC /CONTINUE LOOP 746 747 006067 0057 K57, 57 748 006070 0004 P4, 4 749 750 006071 1066 PERD, TAD NAMLOC /FOUND A PERIOD IN STRING 751 006072 7640 SZA CLA 752 006073 2344 ISZ PERDSW 753 006074 4105 ERROR1 /DOUBLE PERIODS OR NO FILE NAME 754 006075 3071 DCA EXTENSION /CLEAR EXTENSION 755 006076 4575 TGETC /MOVE PAST PERIOD 756 006077 2333 ISZ NMBASE /FAKE OUT POINTERS 757 006100 1270 TAD P4 758 006101 5223 JMP GETN+2 759 760 006102 4575 ECHCHK, TGETC /MOVE PAST COMMA 761 006103 4574 TSPNOR 762 006104 1065 TAD CHR /MUST BE FOLLOWED BY 'ECHO' 763 006105 1374 TAD (-"E 764 006106 7640 SZA CLA 765 006107 5200 JMP GNAME 766 006110 3105 DCA GOSW /CLEAR ECHO FLAG 767 006111 4575 TGETC /MOVE TO END OF WORD 768 006112 4316 JMS DECODE 769 006113 5200 JMP GNAME 770 006114 7300 CLA CLL 771 006115 5311 JMP .-4 772 773 006116 0000 DECODE, 0 /CHECK FOR A-Z, 0-9 774 006117 1065 TAD CHR 775 006120 1373 TAD (-"9-1 776 006121 7101 CLL IAC 777 006122 1366 TAD K11 /"9(+1)-"0 778 006123 7430 SZL 779 006124 5331 JMP DCDYES 780 006125 1372 TAD ("0-"Z-1 781 006126 7120 STL 782 006127 1371 TAD ("Z-"A+1 783 006130 7420 SNL 784 006131 2316 DCDYES, ISZ DECODE /IT WAS! 785 006132 5716 JMP I DECODE 786 787 NMBASE=. 788 006133 0000 IOWAIT, 0 /WAIT FOR TELETYPE TO FINISH 789 006134 6001 ION 790 006135 6211 CDF 10 791 TAD I (TELSW undefined ^ 006136 7777 792 006137 7640 SZA CLA 793 006140 5336 JMP .-2 794 006141 6201 CDF 795 006142 6002 IOF /THEN TURN OFF THE INTERRUPT 796 006143 5733 JMP I IOWAIT 797 PERDSW=. 798 006144 0000 USRIN, 0 /LOCK THE USR IN CORE 799 006145 6002 IOF /(NOP IF ALREADY IN CORE) 800 006146 6212 CIF 10 801 006147 4407 JMS I USR 802 006150 0010 10 803 006151 1163 TAD [200 /SET POINTER FOR LATER CALLS 804 006152 3007 DCA USR 805 006153 5744 JMP I USRIN 806 807 NAMECT=. 808 006154 0000 USROUT, 0 /IF THE USR IS IN, KICK IT OUT 809 006155 7340 PASSN, STA CLL 810 006156 0007 AND USR /CHECK POINTER TO FIND OUT 811 006157 7710 SPA CLA 812 006160 5754 JMP I USROUT 813 006161 1247 TAD K7700 /RESET POINTER = 7700 814 006162 3007 DCA USR 815 006163 6002 IOF 816 006164 6212 CIF 10 817 006165 4563 JMS I [200 818 006166 0011 K11, 11 819 006167 5754 JMP I USROUT 820 821 006171 0032 PAGE 006172 7725 006173 7506 006174 7473 006175 0002 006176 7772 006177 0007 822 006200 2424 TTYTXT, DEVICE TTY /FOR COMPARISON PURPOSES 006201 3100 823 *CIF /'PRINTC' TAB COUNTER 824 006202 0000 0 825 006203 7440 SZA /TEST FOR CR 826 006204 5210 JMP .+4 827 006205 2202 ISZ CIF /ADVANCE RETURN POINT 828 006206 2202 ISZ CIF 829 DCA I [ERR2 /RESET COUNTER undefined ^ undefined ^ 006207 3563 830 006210 1377 TAD (215-240 831 006211 7500 SMA /NON-PRINTING CHARACTERS 832 ISZ I [ERR2 /ADD 1 TO TAB COUNT (FIELD 1) undefined ^ undefined ^ 006212 2563 833 006213 7000 NOP /MIGHT SKIP AFTER 4095 TIMES 834 006214 1150 TAD [240 /WITHOUT INTERVENING CR'S 835 006215 6212 CIF 10 836 006216 5602 JMP I CIF 837 838 TSP, TASK undefined ^ 006217 7777 839 006220 7646 DHT, 7646 840 841 006221 2306 NOTEQ, ISZ SLOT /BUMP POINTER TO SAVE NAME 842 006222 1054 TAD NEWDEV /MOVE NEW DEVICE NAME TO TABLE 843 006223 3706 DCA I SLOT 844 006224 2306 ISZ SLOT 845 006225 1055 TAD NEWDEV+1 846 006226 3706 DCA I SLOT 847 006227 2306 ISZ SLOT 848 006230 4570 GETMON /NEED USR, MIGHT AS WELL LOCK IT IN 849 006231 1054 RETRY, TAD NEWDEV /MOVE DEVICE NAME FOR MONITOR CALL 850 006232 3242 DCA DEVC 851 006233 1055 TAD NEWDEV+1 852 006234 3243 DCA DEVC+1 853 006235 1706 TAD I SLOT /MOVE LOAD POINT 854 006236 3244 DCA DLOAD 855 006237 6212 CIF 10 856 006240 4407 JMS I USR /CALL MONITOR (ALREADY IN CORE) 857 006241 0001 1 858 006242 0000 DEVC, 0 859 006243 0000 0 /DEVICE NO. 860 006244 0000 DLOAD, 0 /ENTRY POINT 861 006245 4105 ERROR1 /DEVICE NOT AVAILABLE OR 862 006246 1163 TAD [200 / TWO-PAGE HANDLER 863 006247 1244 TAD DLOAD /ENTRY POINT FOR HANDLER 864 006250 7700 SMA CLA /IF >7600 DON'T CHECK FURTHER 865 006251 5321 JMP HANDOK /SYSTEM HANDLER 866 006252 1244 TAD DLOAD /IF THE HANDLER WAS NOT LOADED 867 006253 0160 AND [7600 /INTO THE PROPER PAGE, RELOAD IT! 868 006254 7141 CLL CIA 869 006255 1706 TAD I SLOT /PROPER LOADING ADDRESS 870 006256 7650 SNA CLA 871 006257 5321 JMP HANDOK /EVERYTHING'S ALL RIGHT 872 006260 3244 DCA DLOAD /CLEAR ENTRY POINT 873 006261 4264 JMS PUTDEV /TELL USR THE HANDLER 874 006262 6242 DLOAD-2 /IS NOT IN CORE ANYMORE 875 006263 5231 JMP RETRY /LOAD IT THIS TIME 876 006264 0000 PUTDEV, 0 /TELL THE MONITOR WHETHER 877 006265 1664 TAD I PUTDEV / A HANDLER IS IN OR OUT 878 006266 3013 DCA PDLXR /POINTER TO DEVICE # AND ENTRY 879 006267 1220 TAD DHT /DEVICE HANDLER TABLE 880 006270 1413 TAD I PDLXR /PLUS DEVICE NUMBER 881 006271 3033 DCA ATEM /POINTS TO 'HANDLER-IN-CORE' FLAG 882 006272 1413 TAD I PDLXR 883 006273 6211 CDF 10 884 006274 3433 DCA I ATEM /FLAG IS SIMPLY HANDLER ENTRY 885 006275 6201 CDF 886 006276 2264 ISZ PUTDEV 887 006277 5664 JMP I PUTDEV /ALSO CALLED BY 'NOCHAR' 888 889 890 /LOAD A HANDLER INTO THE PROPER SLOT: 891 892 006300 0000 HANDLR, 0 893 006301 1700 TAD I HANDLR /WHICH SLOT? 894 006302 2300 ISZ HANDLR 895 006303 3306 DCA SLOT 896 006304 4565 COMPARE /IF THE HANDLER HAS THE SAME NAME, 897 006305 7776 -2 /DON'T LOAD IT AGAIN 898 006306 0000 SLOT, 0 899 006307 0053 NEWDEV-1 900 006310 5221 JMP NOTEQ /DIFFERENT NAMES, LOAD NEW HANDLER 901 006311 2012 ISZ AUTO 2 /(SET BY 'COMPARE') 902 006312 1012 TAD AUTO 2 /POINTS TO DEVICE # 903 006313 3317 DCA .+4 904 006314 1412 TAD I AUTO 2 905 006315 3072 DCA DEVNO /MOVE DEVICE # (FOR SAVE AND CLOSE) 906 006316 4264 JMS PUTDEV /SO USR KNOWS IT'S IN CORE 907 006317 0000 0 908 006320 5700 JMP I HANDLR 909 910 911 006321 2306 HANDOK, ISZ SLOT /BUMP POINTER TO DEVICE # 912 006322 1243 TAD DEVC+1 /SAVE IT 913 006323 3706 DCA I SLOT 914 006324 2306 ISZ SLOT /MOVE TO ENTRY POINT 915 006325 1244 TAD DLOAD /SAVE ENTRY 916 006326 3706 DCA I SLOT 917 006327 1243 TAD DEVC+1 /GET DEVICE # 918 006330 3072 DCA DEVNO /SAVE IT AND EXIT 919 006331 5700 JMP I HANDLR 920 EJECT 921 922 /TABULATE ROUTINES: CALLED FROM THE UPPER FIELD 923 924 006332 7510 TAB, SPA /TAB COMMAND 925 006333 5350 JMP NEG 926 006334 7041 CIA 927 TAD I [ERR2 /FIND OUT WHERE WE ARE undefined ^ undefined ^ 006335 1563 928 006336 7500 SMA /HAVEN'T GOT THERE YET 929 006337 7240 ZER, CLA CMA /WE'RE PAST: FORCE -1 930 006340 3105 DCA GOSW 931 006341 6213 CDI 10 932 006342 2105 ISZ GOSW /TEST IN ADVANCE 933 006343 7410 SKP /NO JUMPS ALLOWED! 934 006344 5617 JMP I TSP /RETURN TO A/T LOOP 935 936 006345 1150 TAD [240 /PRINT SPACES 937 JMS I [CPRNT undefined ^ undefined ^ 006346 4563 938 006347 5341 JMP ZER+2 939 940 006350 3105 NEG, DCA GOSW 941 006351 1435 TAD I XCHAR /SAVE THE CURRENT CHARACTER 942 006352 3065 DCA CHR 943 006353 6212 CIF 10 944 JMP SKIP1 /SKIP OVER ONE (OR MORE) undefined ^ 006354 7777 945 006355 2105 POS, ISZ GOSW 946 006356 5353 JMP .-3 947 006357 1065 TAD CHR 948 006360 3435 DCA I XCHAR /RESTORE THE ORIGINAL ONE 949 006361 5337 JMP ZER 950 951 952 /SORT AND BRANCH TABLE FOR LOWER-FIELD COMMANDS: 953 954 006362 0302 KOMLST, "B /BRANCH 955 006363 0307 "G /GOSUB 956 006364 0212 LF /RETURN 957 006365 0316 "N /NAME 958 006366 0323 "S /SAVE 959 006367 0305 "E /EXIT 960 006370 0314 FILIST, "L /LIST 961 006371 0301 "A /ALL OR ABORT 962 006372 0303 "C /CALL OR CLOSE 963 006373 0322 "R /RUN OR RESTORE 964 006374 0304 "D /DATE OR DELETE 965 006375 0311 ORLIST, "I /INPUT OR INITIAL 966 006376 0317 "O /OUTPUT OR ONLY 967 968 006377 7755 PAGE 969 /LIBRARY PROCESSOR: COMMAND DECODE, NAMER, DATER, & SAVER. 970 971 *FPNT /ENTER VIA 'JMP I 7' 972 973 006400 1435 LCMND, TAD I XCHAR /SAVE CURRENT CHARACTER 974 006401 3065 DCA CHR 975 006402 1147 TAD [603 /SET '.FC' 976 006403 3071 DCA EXTENSION 977 006404 3105 DCA GOSW /POINT TO 'PROC' 978 006405 4574 TSPNOR 979 006406 4566 WAITUP /TURN OFF THE INTERRUPT 980 006407 1065 TAD CHR 981 006410 5217 JMP LGO /RETAIN OLD ERROR CODE 982 983 006411 4571 NAMER, GTNAME /'LIBRARY NAME' COMMAND 984 006412 5024 JMP EXIT-3 985 986 006413 4571 SAVER, GTNAME /'LIBRARY SAVE' COMMAND 987 006414 4033 JMS HEADER /FILL IN THE HEADER 988 006415 4236 JMS SAVE /DO IT 989 006416 5027 JMP EXIT /DONE 990 991 006417 4573 LGO, TJUMP /BRANCH TO THE APPROPRIATE ROUTINE 992 006420 6361 KOMLST-1 993 006421 0202 KOMGO-KOMLST 994 006422 4105 ERROR1 /SORRY, CHARLIE! 995 996 006423 1156 DATER, TAD [NUDATE-1 /'OUTPUT DATE' COMMAND 997 006424 3010 DCA AUTO 998 006425 1154 TAD [-4 999 006426 3105 DCA GOSW 1000 006427 1410 TAD I AUTO /GET DATE AND 1001 006430 4551 JMS I [NPACK /OUTPUT IT 1002 006431 2105 ISZ GOSW 1003 006432 5227 JMP .-3 1004 006433 5027 JMP EXIT /RETURN 1005 1006 CGET undefined ^ 006434 7777 1007 006435 7270 OCHK 1008 1009 006436 0000 SAVE, 0 /CALLED BY 'SAVER' AND 'GOSUB' 1010 006437 4635 JMS I .-2 /CLOSE OUTPUT FILE TO AVOID TROUBLE 1011 006440 1021 TAD XNAME /POINTER TO NAME 1012 006441 3270 DCA SAVEPT 1013 006442 6211 CDF 10 1014 006443 1555 TAD I [BUFR /GET PROGRAM LENGTH 1015 006444 6201 CDF 1016 006445 3563 DCA I [200 /SAVE IT WITH THE PROGRAM 1017 006446 4570 GETMON /CALL THE MONITOR 1018 006447 4572 GETHND /AND THE HANDLER 1019 006450 0057 LIBBLK-1 1020 006451 1563 TAD I [200 /SAVED LENGTH, REMEMBER? 1021 006452 0160 AND [7600 /MASK OFF 1022 006453 7110 CLL RAR /CONVERT TO PAGES 1023 006454 3326 DCA BLOCK /FOR HANDLER 1024 006455 1326 TAD BLOCK /ROUND UP TO BLOCKS 1025 006456 1146 TAD [100 1026 006457 0160 AND [7600 1027 006460 7110 CLL RAR 1028 006461 7012 RTR 1029 006462 3304 DCA SAVBLK /FOR MONITOR 'ENTER' 1030 006463 1304 TAD SAVBLK /GET DESIRED LENGTH 1031 006464 1072 TAD DEVNO /(SET BY 'HANDLR') 1032 006465 6212 CIF 10 1033 006466 4407 JMS I USR /ENTER OUTPUT FILE 1034 006467 0003 3 1035 006470 0066 SAVEPT, NAMLOC 1036 006471 0000 0 1037 006472 4105 ERROR1 /NO ROOM ON DEVICE 1038 006473 1304 TAD SAVBLK /SHIFT FOR CLOSING LENGTH 1039 006474 7112 CLL RTR 1040 006475 7012 RTR 1041 006476 3304 DCA SAVBLK 1042 006477 1072 TAD DEVNO /CLOSE THE FILE BEFORE WE WRITE IT! 1043 006500 6212 CIF 10 /(SURE, IT'S CHEATING, BUT 1044 006501 4407 JMS I USR /IT SAVES TIME!) 1045 006502 0004 4 1046 006503 0066 NAMLOC 1047 006504 0000 SAVBLK, 0 1048 006505 4105 ERROR1 /IMPOSSIBLE ERROR ! 1049 006506 1304 TAD SAVBLK /SAVE THIS CRAP TO REMEMBER 1050 006507 7041 CIA /WHERE THIS PROGRAM IS 1051 006510 3076 DCA LIBLEN /IN CASE WE WANT TO GOSUB 1052 006511 1270 TAD SAVEPT 1053 006512 3077 DCA LIBFIL 1054 006513 1054 TAD NEWDEV 1055 006514 3074 DCA LIBDEV 1056 006515 1055 TAD NEWDEV+1 1057 006516 3075 DCA LIBDEV+1 1058 006517 1270 TAD SAVEPT /MOVE STARTING BLOCK FOR WRITE 1059 006520 3330 DCA POINT4 1060 006521 7130 STL RAR /COMPUTE FUNCTION WORD 1061 006522 7001 IAC /SET TO SEARCH FORWARD 1062 006523 1326 TAD BLOCK /HOW MUCH TO WRITE 1063 006524 3326 DCA BLOCK 1064 006525 4464 JMS I LIBHND 1065 006526 0000 BLOCK, 0 /WRITE (BLOCK) BLOCKS 1066 006527 0200 200 /FROM FIELD 0, 200 UP 1067 006530 0000 POINT4, 0 1068 006531 5561 JMP I [DERR /GO COMPLAIN ABOUT DEVICE 1069 006532 4567 DISMISS 1070 006533 5636 JMP I SAVE 1071 1072 1073 1074 006534 0000 MGETC, 0 /CROSS-FIELD CALL 1075 006535 6213 CDI 10 1076 006536 4634 JMS I SAVE-2 1077 006537 3065 DCA CHR 1078 006540 5734 JMP I MGETC 1079 006541 0000 CMPR, 0 /COMPARE TWO BLOCKS OF ANY LENGTH 1080 006542 1741 TAD I CMPR /CALLING SEQUENCE: 1081 006543 2341 ISZ CMPR / COMPARE 1082 006544 3334 DCA MGETC / -# OF WORDS 1083 006545 1741 TAD I CMPR / FIRST-1 1084 006546 2341 ISZ CMPR / SECOND-1 1085 006547 3012 DCA AUTO 2 / RETURN IF NO MATCH 1086 006550 1741 TAD I CMPR / RETURN IF MATCH 1087 006551 2341 ISZ CMPR 1088 006552 3013 DCA AUTO 3 1089 006553 1412 CONT, TAD I AUTO 2 /COMPARE TWO WORDS 1090 006554 7041 CIA 1091 006555 1413 TAD I AUTO 3 1092 006556 7640 SZA CLA 1093 006557 5741 JMP I CMPR /NO MATCH 1094 006560 2334 ISZ MGETC /DONE ? 1095 006561 5353 JMP CONT /NO, CHECK TWO MORE 1096 006562 2341 ISZ CMPR /YES, BUMP RETURN POINTER 1097 006563 5741 JMP I CMPR 1098 1099 1100 /LIBRARY COMMAND LIST: 1101 1102 006564 6727 KOMGO, BRANCH /B 1103 006565 6700 GOSUB /G 1104 006566 6716 GOBACK /LF 1105 006567 6411 NAMER /N 1106 006570 6413 SAVER /S 1107 006571 7600 MONITOR /E 1108 006572 6776 LIST2 /L 1109 006573 6777 LISTAL /A 1110 006574 6605 CALLER /C 1111 006575 6604 RUNNER /R 1112 006576 7252 DELEET /D 1113 006577 6605 INITIAL /I 1114 006600 6775 LIST1 /O 1115 /LOOKUP AND LOAD ROUTINES 1116 1117 006601 5647 PDR, PDERR 1118 006602 6436 SVR, SAVE 1119 1120 INITIAL=.+2 1121 006603 7146 SUBBER, CMA CLL RTL /THESE ALL DO THE SAME THING AND 1122 006604 7001 RUNNER, IAC /THEN BRANCH TO DIFFERENT PLACES 1123 006605 7001 CALLER, IAC /LOAD HAS 5 POSSIBLE EXITS ! 1124 006606 4564 OPENUP /CALL THE HANDLER AND 1125 006607 0057 LIBBLK-1 /LOOKUP THE FILE 1126 006610 0002 2 1127 006611 5216 JMP .+5 /TTY: NOT A DIRECTORY DEVICE 1128 006612 4105 ERROR1 1129 006613 4567 DISMISS 1130 006614 4775 JMS I GDT /GET DEVICE TYPE 1131 006615 7700 SMA CLA 1132 006616 4105 ERROR1 /NOT A DIRECTORY DEVICE 1133 006617 6213 CDI 10 1134 006620 4751 JMS I GLN /SOME COMMANDS HAVE LINE NUMBERS 1135 1136 006621 1556 LOAD, TAD I [PDLXR /GET PUSHDOWN POINTER 1137 006622 6201 CDF 1138 006623 1160 TAD [-200 /DIDDLE IT 1139 006624 0160 AND [7600 1140 006625 7104 CLL RAL 1141 006626 7006 RTL 1142 006627 7006 RTL 1143 006630 1056 TAD FLNGTH /NOW COMPARE WITH LENGTH OF FILE 1144 006631 7710 SPA CLA 1145 006632 5601 JMP I PDR /PROGRAM TOO LONG 1146 006633 1056 TAD FLNGTH /COMPUTE FUNCTION WORD 1147 006634 7141 CLL CIA 1148 006635 7006 RTL 1149 006636 7006 RTL 1150 006637 7006 RTL 1151 006640 7124 STL RAL /SET TO SEARCH FORWARD 1152 006641 3245 DCA .+4 1153 006642 1057 TAD STBLK 1154 006643 3247 DCA .+4 1155 006644 4464 JMS I LIBHND /GET THE PROGRAM 1156 006645 0000 TEMP, 0 1157 006646 0200 200 /LOADS FROM 200 UP 1158 006647 0000 0 /STARTING BLOCK NO. 1159 006650 5561 JMP I [DERR 1160 006651 1563 TAD I [200 /MOVE PROGRAM LENGTH 1161 006652 6211 CDF 10 1162 006653 3555 DCA I [BUFR 1163 1164 006654 1105 TAD GOSW /CHECK FOR GOSUB 1165 006655 7700 SMA CLA 1166 006656 5267 JMP LOADGO 1167 1168 TPUSHA= JMS I TPA 1169 TPOPA= JMS I [MPOPA 1170 006657 1435 TAD I XCHAR /GOSUB MUST SAVE TERMINATOR 1171 006660 4772 TPUSHA 1172 006661 1144 TAD [215 /AND SUBSTITUTE A CR TO FORCE 1173 006662 6211 CDF 10 1174 006663 3435 DCA I XCHAR /A RETURN FROM 'TERMER' 1175 006664 6201 CDF 1176 006665 4577 TPUSHF /ALSO SAVE CURRENT PROGRAM INFO 1177 006666 0074 LIBDEV 1178 006667 6201 LOADGO, CDF 1179 006670 4577 TPUSHF /SAVE NEW PROGRAM POINTERS 1180 006671 0054 NEWDEV 1181 006672 4576 TPOPF /SO WE KNOW WHERE WE ARE 1182 006673 0074 LIBDEV 1183 006674 1446 TAD I D /CHECK PROGRAM I.D. 1184 006675 7640 SZA CLA 1185 006676 5444 JMP I DIALOG /INITIAL DIALOGUE - OR 1186 006677 5026 JMP EXIT-1 /PROC, START, GOTO, OR DO 1187 1188 006700 1077 GOSUB, TAD LIBFIL /CHECK FOR CURRENT PROGRAM 1189 006701 7640 SZA CLA 1190 006702 5203 JMP SUBBER /NO NEED TO SAVE IT 1191 006703 4577 TPUSHF /MOVE 'FOCAL.TM' TO NAME AREA 1192 006704 6766 FOCTXT 1193 006705 4576 TPOPF 1194 006706 0066 NAMLOC 1195 006707 1152 TAD [5723 /DEVICE 'DSK' FOR SAVE 1196 006710 3054 DCA NEWDEV 1197 006711 3055 DCA NEWDEV+1 1198 006712 4602 JMS I SVR /SAVE FILE & REMOVE USR 1199 006713 1147 TAD [603 /RESET EXTENSION TO 'FC' 1200 006714 3071 DCA EXTENSION 1201 006715 5203 JMP SUBBER 1202 1203 006716 4576 GOBACK, TPOPF /RESTORE CALLING PROGRAM POINTERS 1204 006717 0054 NEWDEV 1205 006720 4572 GETHND /GET THE HANDLER BACK 1206 006721 0057 INB, LIBBLK-1 /POINTS TO 'INBUF' 1207 006722 4567 DISMISS /AND REMOVE THE USR 1208 006723 4545 TPOPA /FINALLY, RESTORE THE PROPER CHAR. 1209 006724 6211 CDF 10 1210 006725 3435 DCA I XCHAR 1211 006726 5221 JMP LOAD /AND RELOAD THE PROGRAM 1212 1213 1214 /THE 'LIBRARY BRANCH' COMMAND ALLOWS PROGRAMS TO TEST THE 1215 /TELETYPE WITHOUT READING A CHARACTER. THE BRANCH OCCURS 1216 /IF THERE IS -NO- INPUT: 1.1 T PI;L B 1.1;C A KEY WAS HIT 1217 /'FIN()' MAY THEN BE USED TO READ AND TEST THE CHARACTER. 1218 1219 006727 6213 BRANCH, CDI 10 /'LIBRARY BRANCH' COMMAND 1220 006730 4751 JMS I GLN 1221 006731 1721 TAD I INB /CHECK FOR INPUT 1222 006732 7650 SNA CLA 1223 006733 7126 STL RTL /NONE: SET EXIT TO 'GOTO' 1224 006734 5027 JMP EXIT /OTHERWISE CONTINUE LINE 1225 006735 0000 JUMPER, 0 /SORT AND BRANCH SUBROUTINE 1226 006736 7041 CIA 1227 006737 3245 DCA TEMP 1228 006740 7410 SKP /CURRENT ONE MIGHT BY A TERMINATOR 1229 006741 4575 TGETC 1230 006742 6213 CDI 10 1231 006743 4773 JMS I TRM /IS 'CHAR' A SP, COMMA, ; OR CR? 1232 006744 5341 JMP .-3 /NO 1233 006745 1735 TAD I JUMPER /GET LIST ADDRESS 1234 006746 2335 ISZ JUMPER 1235 006747 3010 DCA AUTO 1236 006750 1410 TAD I AUTO 1237 006751 7550 GLN, SPA SNA /END OF LIST ? 1238 006752 5364 JMP ERRX 1239 006753 1245 TAD TEMP 1240 006754 7640 SZA CLA /FOUND IT ? 1241 006755 5350 JMP GLN-1 /NO 1242 006756 1010 TAD AUTO 1243 006757 1735 TAD I JUMPER /ADD OFFSET 1244 006760 3245 DCA TEMP 1245 006761 1645 TAD I TEMP /POINT TO ENTRY 1246 006762 3245 DCA TEMP 1247 006763 5645 JMP I TEMP 1248 1249 006764 2335 ERRX, ISZ JUMPER /ERROR EXIT FOR 'JUMPER' 1250 006765 5735 JMP I JUMPER /ERROR ROUTINE CLEARS AC 1251 1252 006766 0617 FOCTXT, FILENAME FOCAL.TM 006767 0301 006770 1400 006771 2415 1253 006772 5651 TPA, MPUSHA 1254 TRM, TERMER undefined ^ 006773 7777 1255 GDT=.+1 1256 1257 006774 4566 OLIST, WAITUP /'ONLY LIST' COMMAND 1258 006775 7164 LIST1, CMA STL RAL /'LIST ONLY' COMMAND 1259 006776 2105 LIST2, ISZ GOSW /'LIBRARY LIST' COMMAND 1260 006777 3057 LISTAL, DCA STBLK /'LIST ALL' COMMAND 1261 /THIS SECTION DOES THE WORK OF LISTING THE DIRECTORY: 1262 1263 /THE 'LIBRARY LIST' COMMAND SHOWS ONLY "FC" AND "FD" FILES 1264 /'LIST ALL' SHOWS EVERYTHING & 'LIST ONLY' SHOWS ONLY ONE. 1265 1266 007000 4571 GTNAME /GET DEVICE TO LIST 1267 007001 4572 GETHND /GET THE HANDLER 1268 007002 0057 LIBBLK-1 1269 007003 4567 DISMISS /KICK OUT USR IF HANDLR CALLED IT 1270 007004 4364 JMS GETDEV /FIND DEVICE TYPE 1271 007005 7700 SMA CLA 1272 007006 4105 ERROR1 /CAN'T LIST A NON-DIRECTORY DEVICE 1273 007007 4543 JMS I [7607 /SWAP OUT CORE TO MAKE ROOM 1274 007010 4200 4200 /FOR DIRECTORY 1275 007011 1000 1000 1276 007012 0040 40 /SYSTEM SCRATCH AREA 1277 007013 5561 JMP I [DERR /WHOOPS! 1278 007014 3553 DCA I [SWAPIN /SET THE FLAG TO SWAP BACK IN 1279 007015 7001 IAC /DIRECTORY BEGINS WITH BLOCK 1 1280 1281 007016 3223 BLOKLP, DCA LBLOCK 1282 007017 6002 IOF 1283 007020 4464 JMS I LIBHND 1284 007021 0200 0200 1285 007022 1000 1000 1286 007023 0001 LBLOCK, 1 1287 007024 5561 JMP I [DERR 1288 007025 1337 TAD K1004 /FIRST 5 WORDS ARE INFORMATION 1289 007026 3010 DCA AUTO 1290 1291 007027 1010 LOOP2, TAD AUTO /SAVE FOR LATER 1292 007030 3011 DCA AUTO 1 1293 007031 1010 TAD AUTO 1294 007032 3271 DCA LIBX 1295 007033 1410 TAD I AUTO /LOOKING FOR .FC & .FD FILES 1296 007034 7650 SNA CLA 1297 007035 5325 JMP PATCH /ZERO FILE 1298 007036 2010 ISZ AUTO 1299 007037 2010 ISZ AUTO 1300 007040 1410 TAD I AUTO /PICK UP EXTENSION 1301 007041 3223 DCA LBLOCK 1302 007042 1737 TAD I K1004 /WASTE WORDS (NEGATIVE) 1303 007043 7041 CIA /THANKS FOR TELLING US, RITCHIE 1304 007044 1010 TAD AUTO /SKIP TO LENGTH 1305 007045 3010 DCA AUTO 1306 007046 1410 TAD I AUTO /ZERO LENGTH MEANS TEMPORARY FILE 1307 007047 7450 SNA 1308 007050 5326 JMP LOOP3 /IGNORE SUCH THINGS 1309 007051 7041 CIA 1310 007052 3056 DCA FLNGTH /SAVE POSITIVE LENGTH 1311 007053 1066 TAD NAMLOC /WAS A NAME GIVEN ? 1312 007054 7640 SZA CLA 1313 007055 5267 JMP CKNAME /YES 1314 1315 1316 007056 1223 CKFCFD, TAD LBLOCK /COMPARE EXTENSION 1317 007057 1377 TAD (-604 /DO WE WANT THIS ONE? 1318 007060 7440 SZA 1319 007061 7001 IAC 1320 007062 7640 SZA CLA 1321 007063 1105 TAD GOSW /TEST FOR 'ALL' 1322 007064 7640 SZA CLA 1323 007065 5326 JMP LOOP3 /GUESS NOT 1324 007066 5276 JMP DIRLIST 1325 1326 007067 4565 CKNAME, COMPARE /COMPARE THIS NAME WITH ARG 1327 007070 7774 -4 1328 007071 0000 LIBX, 0 1329 007072 0065 NAMLOC-1 1330 007073 5326 JMP LOOP3 /NON-MATCHING 1331 007074 2057 ISZ STBLK /TEST FOR ONLY ONE 1332 007075 3066 DCA NAMLOC /DON'T CHECK ANY MORE 1333 1334 007076 7146 DIRLIST,CMA CLL RTL /PRINT 3 WORDS 1335 007077 3364 DCA COUNT 1336 007100 1411 TAD I AUTO 1 /SET BEFORE THIS 1337 007101 4551 JMS I [NPACK /PRINT 2 CHARS 1338 007102 2364 ISZ COUNT 1339 007103 5300 JMP .-3 1340 007104 1376 TAD (". 1341 007105 4775 JMS I (PRINT 1342 007106 1411 TAD I AUTO 1 /PRINT EXTENSION 1343 007107 4551 JMS I [NPACK 1344 007110 1353 TAD TABLE /SET UP FOR DECIMAL LENGTH PRINT 1345 007111 3053 DCA POINT 1346 007112 3054 ZLUP, DCA ZERSW 1347 007113 3364 DCA COUNT 1348 1349 007114 1453 NLOOP, TAD I POINT /FINISHED ALL POWERS OF 10? 1350 007115 7450 SNA 1351 007116 5355 JMP NEND /YES, ALL DONE 1352 007117 1056 TAD FLNGTH /NO, SUBTRACT THIS POWER 1353 007120 7510 SPA /UNDERFLOW? 1354 007121 5340 JMP DIGIT /YES, PRINT THIS DIGIT 1355 007122 3056 DCA FLNGTH /NO, GO THROUGH THE LOOP AGAIN 1356 007123 2364 ISZ COUNT /ADD ONE TO THIS DIGIT 1357 007124 5314 JMP NLOOP /ANOTHER DIVIDE CYCLE 1358 1359 007125 2010 PATCH, ISZ AUTO /BUMP PAST EMPTY LENGTH 1360 007126 2622 LOOP3, ISZ I LBLOCK-1 /DONE WITH THIS BLOCK? 1361 007127 5227 JMP LOOP2 /NO, KEEP GOING 1362 007130 4566 WAITUP /WAIT FOR I/O 1363 007131 1736 TAD I K1002 /LINK TO NEXT BLOCK 1364 007132 7440 SZA /LAST BLOCK? 1365 007133 5216 JMP BLOKLP /NO, GET THE NEXT 1366 007134 4553 JMS I [SWAPIN /YES, RESTORE SWAPPED CORE 1367 007135 5027 JMP EXIT /(JMS RESETS THE FLAG) 1368 1369 007136 1002 K1002, 1002 1370 007137 1004 K1004, 1004 1371 007140 7300 DIGIT, CLA CLL /CRAP IN AC 1372 007141 2053 ISZ POINT /NEXT POWER OF TEN 1373 007142 1364 TAD COUNT /IF THIS DIGIT IS ZERO, AND NO 1374 007143 2054 ISZ ZERSW /OTHER DIGITS HAVE BEEN NON-ZERO, 1375 007144 7440 SZA /PRINT A SPACE INSTEAD 1376 007145 5351 JMP NPRNT 1377 007146 1150 TAD [240 1378 007147 4775 JMS I (PRINT 1379 007150 5312 JMP ZLUP 1380 1381 007151 1142 NPRNT, TAD [260 /CHANGE TO ASCII 1382 007152 4775 JMS I (PRINT 1383 007153 7160 TABLE, CMA STL /SET ZERO SWITCH 1384 007154 5312 JMP ZLUP 1385 1386 007155 1144 NEND, TAD [215 /DONE WITH THIS LINE (WHEW!) 1387 007156 4775 JMS I (PRINT 1388 007157 5326 JMP LOOP3 1389 1390 *CMA STL /TRICKY, HUH? 1391 DECIMAL 1392 007160 6030 -1000 1393 007161 7634 -100 1394 007162 7766 -10 1395 007163 7777 -1 1396 COUNT=.;OCTAL /CLEVER ASSIGNMENT TERMINATES TABLE 1397 1398 *CMA STL RAL /MORE TRICKS! 1399 007164 0000 GETDEV, 0 /GET DEVICE TYPE FROM MONITOR TABLE 1400 007165 1374 TAD (7757 /DCB-1 1401 007166 1072 TAD DEVNO 1402 007167 3271 DCA LIBX 1403 007170 6211 CDF 10 1404 007171 1671 TAD I LIBX 1405 007172 6201 CDF 1406 007173 5764 JMP I GETDEV 1407 1408 POINT= NEWDEV 1409 ZERSW= NEWDEV+1 1410 1411 007174 7757 PAGE 007175 7366 007176 0256 007177 7174 1412 /MISCELLANEOUS GENERAL-PURPOSE ROUTINES 1413 1414 /THIS IS THE GENERAL OPEN SUBROUTINE 1415 /CALLNG SEQUENCE: 1416 /JMS I [OPEN 1417 /HANDLER BLOCK 1418 /MONITOR CALL CODE 1419 /RETURN IF TTY: IS DEVICE 1420 /ERROR RETURN 1421 /NORMAL RETURN 1422 /SETS STBLK, FLNGTH ON PAGE ZERO 1423 1424 007200 0000 OPEN, 0 1425 007201 3105 DCA GOSW /SET ECHO/LOAD SWITCH 1426 007202 4571 GTNAME /GET DEVICE AND FILENAME 1427 007203 4565 COMPARE /DEVICE 'TTY:' IS SPECIAL 1428 007204 7776 -2 1429 007205 0053 NEWDEV-1 1430 007206 6177 TTYTXT-1 1431 007207 5213 JMP OTHER /DEVICE OTHER THAN TTY 1432 007210 2200 ISZ OPEN /INCREMENT TO PROPER RETURN 1433 007211 2200 ISZ OPEN 1434 007212 5600 JMP I OPEN 1435 007213 1600 OTHER, TAD I OPEN /GET HANDLER BLOCK TO USE 1436 007214 3222 DCA HND 1437 007215 2200 ISZ OPEN 1438 007216 1021 TAD XNAME /POINTER TO NAME 1439 007217 3233 DCA NAMPT 1440 007220 4570 GETMON 1441 007221 4572 GETHND /GET THE HANDLER 1442 007222 0000 HND, 0 /SET TO HANDLER BLOCK 1443 007223 1600 TAD I OPEN /GET MONITOR CALL CODE (2 OR 3) 1444 007224 2200 ISZ OPEN 1445 007225 3232 DCA CALL 1446 007226 3234 DCA LNGTH /FOR MONITOR KLUDGE - IT FALLS 1447 007227 1072 TAD DEVNO / THROUGH IN CASE OF ERROR 1448 007230 6212 CIF 10 1449 007231 4407 JMS I USR /DO THE CALL 1450 007232 0000 CALL, 0 1451 007233 0066 NAMPT, NAMLOC 1452 007234 0000 LNGTH, 0 /LET THE CALLING ROUTINE 1453 007235 5211 JMP OTHER-2 /DECIDE ERROR PROCEDURE 1454 007236 1234 TAD LNGTH /MOVE PARAMETERS TO PAGE ZERO 1455 007237 3056 DCA FLNGTH 1456 007240 1233 TAD NAMPT 1457 007241 3057 DCA STBLK 1458 007242 5210 JMP OTHER-3 /AND TAKE NORMAL RETURN 1459 1460 007243 0000 MSPNOR, 0 /COPY UPPER FIELD ROUTINE 1461 007244 1065 TAD CHR 1462 007245 1322 TAD MSPACE 1463 007246 7640 SZA CLA 1464 007247 5643 JMP I MSPNOR 1465 007250 4575 TGETC 1466 007251 5244 JMP MSPNOR+1 1467 007252 4270 DELEET, JMS OCHK /DELETE IS AN EASY ONE 1468 007253 4571 GTNAME 1469 007254 4570 GETMON 1470 007255 4572 GETHND 1471 007256 0057 LIBBLK-1 1472 007257 6212 CIF 10 1473 007260 1072 TAD DEVNO 1474 007261 4407 JMS I USR /DELETE THE FILE 1475 007262 0004 4 1476 007263 0066 NAMLOC 1477 007264 0000 0 1478 007265 4105 ERROR1 1479 007266 4567 DISMISS 1480 007267 5025 JMP EXIT-2 1481 1482 007270 0000 OCHK, 0 /IF ANY FILE EXISTS, CLOSE IT 1483 007271 1073 TAD DEVHLD 1484 007272 7640 SZA CLA 1485 007273 4675 JMS I .+2 1486 007274 5670 JMP I OCHK 1487 007275 3637 CLOSER 1488 1489 007276 7402 SWAPIN, HLT /RESTORE CORE AFTER DIRECTORY LIST 1490 007277 6002 IOF 1491 007300 4543 JMS I [7607 /SYSTEM HANDLER 1492 007301 0200 200 1493 007302 1000 1000 1494 007303 0040 40 1495 007304 4105 DERR, ERROR1 /DEVICE ERROR 1496 007305 5676 JMP I SWAPIN 1497 1498 007306 0000 NPACK, 0 /STANDARD 6-BIT UNPACK ROUTINE 1499 007307 3270 DCA OCHK 1500 007310 1270 TAD OCHK 1501 007311 7012 RTR 1502 007312 7012 RTR 1503 007313 7012 RTR 1504 007314 4320 JMS XFORM 1505 007315 1270 TAD OCHK 1506 007316 4320 JMS XFORM 1507 007317 5706 JMP I NPACK 1508 1509 007320 0000 XFORM, 0 1510 007321 0377 AND (77 1511 007322 7540 MSPACE, SMA SZA /PRINT SPACES FOR NULLS 1512 007323 1342 TAD MFORTY 1513 007324 7510 SPA 1514 007325 1146 TAD [100 1515 007326 1150 TAD [240 1516 007327 4366 JMS PRINT 1517 007330 5720 JMP I XFORM 1518 EJECT 1519 007331 1127 OCLCHK, TAD OUTFLG /MAKE 'OPEN OUTPUT' WITH AN 1520 007332 7650 SNA CLA /ALREADY OPEN FILE THE SAME AS 1521 007333 4105 ERROR1 /'OUTPUT CLOSE;OPEN OUTPUT' 1522 007334 4675 JMS I OCHK+5 1523 007335 1376 TAD (YINT /FAKE OUT 'OPEN' 1524 007336 3200 DCA OPEN 1525 007337 5213 JMP OTHER 1526 1527 *STA CLL /VARIABLE FILE NAME PATCH 1528 007340 2306 ISZ NPACK /COUNT THE DIGITS 1529 007341 1306 TAD NPACK /NOW MANY? 1530 007342 7740 MFORTY, SMA SZA CLA 1531 007343 4575 TGETC /RETURN TO ALPHA MODE 1532 007344 1065 FIRSTC, TAD CHR 1533 007345 1375 TAD (-"( /CHECK FOR A LEFT "(" 1534 007346 7440 SZA 1535 007347 5774 JMP I (NAMEC+1 /CONTINUE CHECKING 1536 1537 007350 6213 CDI 10 /FOUND ONE, GO GET # 1538 JMS I (VFN undefined ^ 007351 7777 1539 007352 3010 DCA AUTO /SAVE STRING ADDRESS 1540 007353 1773 TAD I (T3 1541 007354 7550 SPA SNA /CHECK DECIMAL EXPONENT 1542 007355 7201 CLA IAC /FOR "0" 1543 007356 7041 CIA 1544 007357 3306 DCA NPACK /SET DIGIT COUNTER 1545 1546 *STA STL 1547 007360 6211 CDF 10 /GET A DIGIT - 'GETN' 1548 007361 1410 TAD I AUTO 1549 007362 6201 CDF 1550 007363 1142 TAD [260 /CONVERT TO ASCII 1551 007364 3065 DCA CHR 1552 007365 5340 JMP STA CLL /! 1553 1554 007366 0000 PRINT, 0 /'PRINTC' FOR LISTING AND DATE 1555 007367 6213 CDI 10 1556 JMS I [CPRNT undefined ^ undefined ^ 007370 4563 1557 007371 5766 JMP I PRINT 1558 1559 007373 0033 PAGE 007374 6031 007375 7530 007376 5404 007377 0077 1560 EJECT PAGE-ZERO (FIELD 0) LITERALS: 1561 000142 0260 $ 000143 7607 000144 0215 000145 5700 000146 0100 000147 0603 000150 0240 000151 7306 000152 5723 000153 7276 000154 7774 000155 0060 000156 0013 000157 0064 000160 7600 000161 7304 000162 0063 000163 0200 000164 7200 000165 6541 000166 6133 000167 6154 000170 6144 000171 6010 000172 6300 000173 6735 000174 7243 000175 6534 000176 5736 000177 5710 ABORT 3673 AC1H 0041 unreferenced AC1L 0042 unreferenced ADD 0061 unreferenced APUSHX 5752 unreferenced ARTN 5000 unreferenced ATEM 0033 AUTO 0010 AXIN 0010 unreferenced AXOUT 0017 unreferenced BLKCNT 3656 BLOCK 6526 BLOKLP 7016 BRANCH 6727 BUFFER 7470 unreferenced BUFR 0060 C200 0123 unreferenced C260 0113 unreferenced CALL 7232 CALLER 6605 CCR 0077 unreferenced CDI 6203 CFRS 0133 unreferenced CHAR 0066 CHR 0065 CKFCFD 7056 unreferenced CKNAME 7067 CLF 0076 unreferenced CLOSE 3635 CLOSER 3637 CMPR 6541 COMMEN 0614 unreferenced COMPAR 4565 CONT 6553 COUNT 7164 D 0046 DATE 0217 DATER 6423 DATUM 7102 unreferenced DCDYES 6131 DEBGSW 0026 unreferenced DECODE 6116 DELEET 7252 DELETE 4565 unreferenced DERR 7304 DEVC 6242 DEVHLD 0073 DEVNO 0072 DHT 6220 DIALOG 0044 DIGIT 7140 DIRLIS 7076 DISMIS 4567 DLOAD 6244 DMPSW 0100 unreferenced DMULT4 7036 unreferenced DNORM 7335 unreferenced DOUBLE 0127 unreferenced DUBLAD 5733 unreferenced ECALL 1601 unreferenced ECHCHK 6102 ECHOLS 1624 unreferenced EFOP 0056 unreferenced END 0134 unreferenced ENDT 0135 unreferenced ERROR1 4105 ERROR2 4566 unreferenced ERRX 6764 EVAL 1613 unreferenced EXIT 0027 EXTENS 0071 FADD 1000 unreferenced FCDF 5724 FCONT 1101 unreferenced FDIV 3000 unreferenced FENT 4407 unreferenced FEXP 4620 unreferenced FEXT 0000 unreferenced FGET 0000 unreferenced FILEGO 5560 FILERR 3757 FILIST 6370 FINCR 1065 unreferenced FINDLN 4555 unreferenced FINPUT 0131 unreferenced FIRSTC 7344 FISW 0052 unreferenced FIXIT 4453 unreferenced FLAC 0044 unreferenced FLARG 2030 unreferenced FLARGP 0125 unreferenced FLIMIT 1075 unreferenced FLNGTH 0056 FLOG 5040 unreferenced FLOP 0040 unreferenced FLTXR 0014 unreferenced FLTXR2 0015 unreferenced FMUL 4000 unreferenced FNOR 7000 unreferenced FOCTXT 6766 FOR 1041 unreferenced FOUTPU 0130 unreferenced FPNT 6400 FPROC 1106 unreferenced FPUT 6000 unreferenced FSUB 2000 unreferenced GDT 6775 GETARG 1403 unreferenced GETC 4545 unreferenced GETDEV 7164 GETHND 4572 GETMON 4570 GETN 6021 GETSGN 1045 unreferenced GLIST 1377 unreferenced GLN 6751 GNAME 6000 GOBACK 6716 GOJUMP 0047 GOSUB 6700 GOSW 0105 GOTO 0603 GTEM 0021 unreferenced GTNAME 4571 HANDLR 6300 HANDOK 6321 HEADER 0033 HND 7222 HORD 0045 unreferenced IBLK 5473 ICHAR0 5464 ICHAR1 5505 ICHAR2 5507 unreferenced ICHAR3 5515 unreferenced IF 1013 unreferenced IF1 1035 unreferenced IMPUT 5577 INB 6721 INBLK 0114 INDEV 0064 INFIX 2401 unreferenced INFLG 0121 INHND 0120 INITIA 6605 IOBUF 5660 IOWAIT 6133 IPNTR 5546 IRST 5615 ITEMP 5545 JUMPER 6735 K1002 7136 K1004 7137 K11 6166 K177 0052 K377 3644 K57 6067 K604 0053 K7400 0062 K7700 6047 KILLIT 3650 KOMGO 6564 KOMLST 6362 LASTV 0031 unreferenced LBLOCK 7023 LCMND 6400 unreferenced LF 0212 LGO 6417 LIBBLK 0060 LIBDEV 0074 LIBFIL 0077 LIBHND 0064 LIBLEN 0076 LIBX 7071 LINE0 0202 unreferenced LINE1 0224 unreferenced LINENO 0067 unreferenced LIST1 6775 LIST2 6776 LIST3 0077 unreferenced LISTAL 6777 LNGTH 7234 LOAD 6621 LOADGO 6667 LOOP2 7027 LOOP3 7126 LORD 0046 unreferenced M11 0121 unreferenced M20 0105 unreferenced M240 0114 unreferenced M5 0120 unreferenced M77 0103 unreferenced MCR 0116 unreferenced MFORTY 7342 MGETC 6534 MIF 7260 unreferenced MONITO 7600 MP1 7254 unreferenced MP2 7256 unreferenced MP4 7200 unreferenced MPD2 5710 MPD3 5736 MPOPA 5700 MPUSHA 5651 MSPACE 7322 MSPNOR 7243 MULT10 5667 unreferenced NAME 6010 NAMEC 6030 NAMECT 6154 NAMER 6411 NAMLOC 0066 NAMPT 7233 NEG 6350 NEGATE 4451 unreferenced NEND 7155 NEWDEV 0054 NLOOP 7114 NMBASE 6133 NOCHAR 3700 NONAME 0020 unreferenced NOTEQ 6221 NPACK 7306 NPRNT 7151 NUDATE 0014 O2 3734 O3 3737 OBLK 3725 OCHAR0 5443 OCHK 7270 OCLCHK 7331 OCMND 5455 unreferenced OECHO 5450 OLIST 6774 OLNGTH 3760 ONFLAG 0023 unreferenced ONMTMP 3753 OPEN 7200 OPENUP 4564 OPTR1 3751 OPTR2 3752 ORGO 3761 ORLIST 6375 ORST 5425 OSETUP 3763 OTHER 7213 OUTBLK 0122 OUTDEV 0063 OUTFLG 0127 OUTHND 0126 OUTPUT 5401 OVER1 0043 unreferenced OVER2 0047 unreferenced P17 0107 unreferenced P177 0106 unreferenced P337 0075 unreferenced P4 6070 P7600 0104 unreferenced P77 0122 unreferenced P7700 0101 unreferenced PACKST 0027 unreferenced PARTES 2047 unreferenced PASSN 6155 PATCH 7125 PC 0022 unreferenced PC0 0100 unreferenced PC1 0614 unreferenced PCHK 5634 PDERR 5647 PDLXR 0013 PDR 6601 PER 0102 unreferenced PERD 6071 PERDSW 6144 POINT 0054 POINT4 6530 POS 6355 unreferenced PRINT 7366 PRINTC 4551 PRNT 2442 unreferenced PRNTLN 4553 unreferenced PROC 0611 PROCES 0610 unreferenced PT1 0030 unreferenced PUTDEV 6264 QUIT 0177 unreferenced RDPTR 5527 READC 4552 unreferenced REKOVR 5756 unreferenced REMAIN 5712 unreferenced RESOLV 7173 unreferenced RESTOR 3622 RETRY 6231 RETURN 5536 unreferenced RTL6 4557 unreferenced RUNNER 6604 SAVBLK 6504 SAVE 6436 SAVEPT 6470 SAVER 6413 SET 1041 unreferenced SIGN 7124 unreferenced SIGNF 0050 unreferenced SLOT 6306 SORTC 4550 unreferenced SORTCN 0054 unreferenced SORTJ 4547 unreferenced SPECIA 6777 unreferenced STAR 0614 unreferenced START 0177 unreferenced STBLK 0057 SUBBER 6603 SVR 6602 SWAPIN 7276 T1 0032 unreferenced T2 0071 unreferenced T3 0033 TAB 6332 unreferenced TABLE 7153 TEMP 6645 TEN 6271 unreferenced TERMS 1770 unreferenced TEST2 6736 unreferenced TEST4 7366 unreferenced TESTC 4564 unreferenced TGETC 4575 THISLN 0023 unreferenced TITLE 0213 TJUMP 4573 TLIST 1400 unreferenced TLIST2 1404 unreferenced TPA 6772 TPOPA 4545 TPOPF 4576 TPUSHA 4772 TPUSHF 4577 TRM 6773 TSP 6217 TSPNOR 4574 TSTGRP 4563 unreferenced TSTLPR 4562 unreferenced TTYIN 5632 TTYOUT 5440 TTYTXT 6200 USR 0007 USRIN 6144 USROUT 6154 WAITUP 4566 WORDS 0004 unreferenced XCHAR 0035 XCT 0020 unreferenced XCTIN 0062 unreferenced XFORM 7320 XLEN 5547 unreferenced XNAME 0021 XRT 0011 unreferenced XSQRT 7400 unreferenced YINT 5404 ZER 6337 ZERSW 0055 ZLUP 7112