1 /12 OS8 MONITOR SYSTEM OS8 VERS. 3D 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1970,1971,1972,1973,1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 31 / 32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 34 /DIGITAL. 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 /13-APRIL-1977 RL/EF/HJ/SR 46 47 48 /THIS VERSION OF OS/8 IS THE BATCH OPERATING SYSTEM 49 /AS WELL AS THE STANDARD KEYBOARD SYSTEM. THIS SYSTEM 50 /IS EXTERNALLY COMPATIBLE WITH ALL PREVIOUS OS/8-PS/8 51 /USER PROGRAMS. HOWEVER, INTERNALLY THE SYSTEMS ARE 52 /QUITE DIFFERENT. THE MARCH 1972 OS/8 WILL NOT RUN BATCH. 53 /THIS VERSION IS COMPATIBLE WITH CCL. 54 55 / SYMBOLIC REFERENCES TO VARIOUS OVERLAYS: 56 57 MEOVLY=26 /DIRECTORY OVERFLOW OVERLAY FOR "ENTER" 58 MCDREC=51 /COMMAND DECODER 59 MSOVLY=54 /"SAVE W. ARGS" OVERLAY 60 MSOVL2=55 /SECOND PART OF SAVE W. ARGS 61 MERRTN=56 /MONITOR ERROR ROUTINE 62 MRUNRC=57 /"CHAIN" OVERLAY 63 ODTREC=60 /SYSTEM ODT 64 MFREE=70 /BEGINNING OF FILE STORAGE 65 CCB=7400 66 CSOVLY=400 67 RSOVL1=1400 68 RSOVL2=2000 69 70 VERSNO=3 71 PATCHLEV="Q 72 73 /V3 CHANGES: 74 75 /1. CCL SUPPORT 76 /2. FIXED KILLER CLOSE BUG 77 /3. ADDED VERSION NUMBER 78 /4. ^U, RO TO BOL, AND LF ALL PRINT '.' AGAIN 79 /5. CALL TO USR WITH CODE OF 0 GIVES ERROR 80 /6. MONITOR ERROR MESSAGES NOW GIVE EXPLANATION 81 /7. ENTER NOW MOVES 7 FILES TO MAKE ROOM INSTEAD OF HALF SEGMENT 82 /8. DIRECTORY VERIFICATION HAS IMPROVED 83 84 /V3 FIXES TO ABSLDR: 85 86 /1. ALLOWED PARITY ^C 87 /2. PUT IN SELF-STARTING STUFF 88 /3. FIXED CCB BUG FOR 17600 89 90 /FIXES TO FIELD RELEASE 91 92 /1. ABSLDR CHECKS PAGE 0 LITERALS 93 /2. FIXED BUG RE MONITOR ERROR MESSAGES 94 /3. ADDITIONAL INFO FIX 95 /4. BATCH FIX 96 97 /FIXES FOR MAINTENANCE RELEASE: 98 99 /1. CHANGED VERSION NUMBER OF MONITOR TO V3M 100 /2. INCORPORATED PATCH RE LOC 13121 AFTER MONITOR ERROR 101 / [SEQ #1, DSN APRIL 1975] 102 /3. ALLOW CHAIN TO WORK ON FULL FIELD SAVES 103 / [SEQ #2, DSN JUNE 1975] 104 /4. ALLOW ABSLDR/I TO WORK ON FULL FIELD CORE IMAGES 105 / [SEQ #1, DSN OCTOBER 1975] 106 /5. ADDED INTERNAL VERSION NUMBER TO ABSLDR AT LOCATION 2200 107 / MAINT. RELEASE VERSION # IS V4 108 /6. SET INITIAL ABSLDR DATE TO 1-NOVEMBER-1975 109 110 /V3D AND OS/78 CHANGES: 111 112 /1. ACCEPT DEC STANDARD DATE FORMAT FOR INPUT (DD-MMM-YY) 113 /2. CHANGED VERSION NUMBER TO V3Q 114 /3. ADDED DATE/78 CHANGES 115 /4. FIXED BUG ABOUT WAITING FOR TTY FLAG & BATCH 116 /5. ADDED STUFF FOR LINKER [USES SOFSET] 117 /6. CHANGED ABSLDR DATE TO 1-JUNE-77 118 /7. DISALLOW RUN OF PROGRAM WITH BIT 4 OF JSW ON [OS/78 ONLY] 119 /8. ASSIGNED RESIDENT BITS FOR SCOPE AND OS/78 120 /9. ALLOW @ IN KBM COMMAND 121 /10. COULD RUN INIT.CM ON SYSTEM START-UP 122 /11. CHANGED BAD CORE IMAGE MSG TO CORE IMAGE ERR 123 /12. CHANGED ABSLDR/I SO THAT IT SETS UP JSW AND SA 124 /KEYBOARD MONITOR FOR OS/8 SYSTEM - UNCOMMENTED AT PRESENT 125 126 FIELD 0 127 MTHREE=CLA CLL CMA RTL 128 *200 129 000200 5706 PRINT, JMP I PRNAME /MUST BE AT 200 FOR BATCH 130 000201 5204 JMP .+3 /****GETS CIF CDF N FOR BATCH***** 131 000202 6041 TSF /****GETS JMP I .+1****** 132 000203 5202 JMP .-1 /*GETS BOSPRT***** 133 000204 6046 TLS 134 000205 7200 CLA 135 000206 1177 TAD [7000 136 000207 3201 DCA PRINT+1 137 000210 5600 JMP I PRINT 138 000211 0000 GETNAM, 0 139 000212 3034 DCA NM1 140 000213 3035 DCA NM2 141 000214 3036 DCA NM3 142 000215 3037 DCA NM4 143 000216 1176 TAD [NM1 144 000217 3044 DCA PN 145 000220 7240 CLA CMA 146 000221 3045 DCA PRDSW 147 000222 3043 GTNMX, DCA NMCT 148 000223 1413 TAD I LXR 149 000224 1175 TAD [-240 150 000225 7450 SNA 151 000226 5223 JMP .-3 152 000227 1174 TAD [240 153 000230 7410 SKP 154 000231 1413 GTNMLP, TAD I LXR 155 000232 3031 DCA TMP 156 000233 1031 TAD TMP 157 000234 1173 TAD [-256 158 000235 7450 SNA 159 000236 5275 JMP PERIOD 160 000237 1172 TAD [-2 161 000240 7100 CLL 162 000241 1171 TAD [-12 163 000242 7620 SNL CLA 164 000243 5252 JMP NINSRT 165 000244 1170 TAD [-301 166 000245 1031 TAD TMP 167 000246 7120 CLL CML 168 000247 1167 TAD [-32 169 000250 7620 SNL CLA 170 000251 5302 JMP EONAME 171 000252 1043 NINSRT, TAD NMCT 172 000253 1166 TAD [-6 173 000254 7700 SMA CLA 174 000255 5231 JMP GTNMLP 175 000256 1043 TAD NMCT 176 000257 7110 CLL RAR 177 000260 1044 TAD PN 178 000261 3040 DCA TEMP1 179 000262 1031 TAD TMP 180 000263 0165 AND [77 181 000264 7430 SZL 182 000265 5271 JMP .+4 183 000266 7006 RTL 184 000267 7006 RTL 185 000270 7006 RTL 186 000271 1440 TAD I TEMP1 187 000272 3440 DCA I TEMP1 188 000273 2043 ISZ NMCT 189 000274 5231 JMP GTNMLP 190 000275 2045 PERIOD, ISZ PRDSW 191 000276 5302 JMP EONAME 192 000277 2044 ISZ PN 193 000300 1164 TAD [4 194 000301 5222 JMP GTNMX 195 000302 1043 EONAME, TAD NMCT 196 000303 7640 SZA CLA 197 000304 2211 ISZ GETNAM 198 000305 5611 JMP I GETNAM 199 000306 4000 PRNAME, 4000 200 000307 1034 TAD NM1 201 000310 4340 JMS PRWD 202 000311 1035 TAD NM2 203 000312 4340 JMS PRWD 204 000313 1036 TAD NM3 205 000314 4340 JMS PRWD 206 000315 1037 TAD NM4 207 000316 7650 SNA CLA 208 000317 5706 JMP I PRNAME 209 000320 1163 TAD [256 210 000321 4352 JMS PCHAR 211 000322 1037 TAD NM4 212 000323 4340 JMS PRWD 213 000324 5706 JMP I PRNAME 214 000325 4340 PRINLP, JMS PRWD 215 000326 2330 ISZ PRMESG 216 000327 7410 SKP 217 IFNZRO .-330 218 000330 0000 PRMESG, 0 219 000331 7200 CLA 220 000332 1730 TAD I PRMESG 221 000333 7440 SZA 222 000334 5325 JMP PRINLP 223 000335 6041 TSF 224 000336 5335 JMP .-1 225 000337 5433 JMP I ERRET 226 000340 0000 PRWD, 0 227 000341 3031 DCA TMP 228 000342 1031 TAD TMP 229 000343 7012 RTR 230 000344 7012 RTR 231 000345 7012 RTR 232 000346 4352 JMS PCHAR 233 000347 1031 TAD TMP 234 000350 4352 JMS PCHAR 235 000351 5740 JMP I PRWD 236 000352 0000 PCHAR, 0 237 000353 0165 AND [77 238 000354 7450 SNA 239 000355 5752 JMP I PCHAR 240 000356 1174 TAD [240 241 000357 0165 AND [77 242 000360 1174 TAD [240 243 000361 4423 JMS I PCH 244 000362 5752 JMP I PCHAR 245 000363 4330 PRINTQ, JMS PRMESG 246 000364 7700 TEXT /?/ 247 000365 0000 0 248 249 *367 250 000367 1400 KSV2A, SAVE2A 251 000370 1413 SAVE2, TAD I LXR 252 000371 7450 SNA /ARE THERE ARGUMENTS? 253 000372 5767 JMP I KSV2A /NO..USE CCB 254 000373 4562 JMS I [SHNDLR /READ IN ARGUMENT OVERLAY 255 000374 0201 0201 256 000375 0400 CSOVLY 257 000376 0054 MSOVLY 258 000377 5001 JMP KMONER /NORMAL RETURN IS TO 400 259 *400 260 000400 5705 KMNTRY, JMP I HANDAD /V3 261 000401 0000 0 /FREE LOCATION ! 262 000402 4561 PCRLF, JMS I [CRLF 263 IFNZRO .-403 264 265 000403 4424 KEYMON, JMS I GLINE 266 000404 1160 TAD [BEGLN-1 /ADDRESS REFERENCED BY INIT 267 000405 3013 DCA LXR 268 000406 4425 JMS I GNAME 269 /V3D JMP I [PRINTQ 270 XXX=[PRINTQ /NEED LITERAL IN SAME PLACE 271 000407 7000 NOP /V3D ALLOW @ IN NAME 272 000410 4556 JMS I [SRCH 273 000411 7655 -123; ASSIGN 000412 0436 274 000413 5477 -2301; SAVE 000414 0545 275 000415 5553 -2225; RUN 000416 0512 276 000417 7073 -705; GET 000420 0511 277 000421 5600 -2200; R 000422 0455 278 000423 5454 -2324; START 000424 0600 279 000425 6074 -1704; ODT 000426 0573 280 000427 7373 -0405; DEAS 000430 1151 281 IFNZRO .-431 282 000431 7377 -0401; DATE 000432 1367 283 000433 0000 0 284 000434 5635 JMP I .+1 285 000435 1357 CCLSW, PRQMRK /MODIFIED FOR CCL TO 'GETCCL' 286 IFNZRO CCLSW-435 287 288 000436 1155 ASSIGN, TAD [12 289 000437 4265 JMS GDEVNO 290 000440 1154 TAD [UDNAME-1 291 000441 3041 DCA TM1 292 000442 4425 JMS I GNAME 293 000443 5254 JMP ASGN2+1 /NO USER DEV. DO A DEASSIGN 294 000444 1035 TAD NM2 /SEE IF WE HASH IT 295 000445 7450 SNA 296 000446 5253 JMP ASGN2 /DON'T HASH..ONLY 1 OR 2 CHARS 297 000447 1034 TAD NM1 298 000450 7004 RAL /LINK BECOMES 4000 IF NECESSARY 299 000451 7230 CLA CML RAR 300 000452 1035 TAD NM2 301 000453 1034 ASGN2, TAD NM1 302 000454 5553 JMP I [ASDONE 303 000455 3552 R, DCA I [GETSW 304 000456 1030 TAD P6203 305 000457 4551 JMS I [RESET 306 000460 2046 ISZ RUNSW 307 000461 1162 TAD [SHNDLR 308 000462 3305 DCA HANDAD 309 000463 7201 CLA IAC 310 000464 5320 JMP RGETPG 311 000465 0000 GDEVNO, 0 312 000466 3302 DCA ASNM1-1 313 000467 4550 JMS I [MINCOR 314 000470 4425 JMS I GNAME 315 000471 5547 JMP I [KMER4 316 000472 1034 TAD NM1 317 000473 3303 DCA ASNM1 318 000474 1035 TAD NM2 319 000475 3304 DCA ASNM1+1 320 000476 1364 TAD HNDLAD 321 000477 3305 DCA HANDAD 322 000500 6212 CIF 10 323 000501 4422 JMS I SYSTEM 324 000502 0001 1 325 000503 0000 ASNM1, 0;0 000504 0000 326 000505 1005 HANDAD, KMINIT /V3 327 000506 5546 JMP I [KMER1 328 000507 1304 TAD ASNM1+1 329 000510 5665 JMP I GDEVNO 330 000511 1145 GET, TAD [SKP 331 000512 3552 RUN, DCA I [GETSW 332 000513 1030 TAD P6203 333 000514 4551 JMS I [RESET 334 000515 3046 DCA RUNSW 335 000516 7201 CLA IAC 336 000517 4265 JMS GDEVNO 337 000520 4332 RGETPG, JMS RSCOMN 338 000521 4550 JMS I [MINCOR 339 000522 1050 TAD SENTER 340 000523 6212 CIF 10 341 000524 4422 JMS I SYSTEM 342 000525 0002 2 343 000526 0034 PGNAME, NM1 344 000527 7626 MOVBUF /USED AS POINTER TO FIELD 1 SR 345 000530 5544 JMP I [KMER2 346 000531 5543 JMP I [RLOADR 347 000532 0000 RSCOMN, 0 348 000533 3050 DCA SENTER 349 000534 1305 TAD HANDAD 350 000535 3026 DCA DEVHND 351 000536 4425 JMS I GNAME 352 000537 5547 JMP I [KMER4 353 000540 1037 TAD NM4 354 000541 7450 SNA 355 000542 1142 TAD [2326 356 000543 3037 DCA NM4 357 000544 5732 JMP I RSCOMN 358 000545 1141 SAVE, TAD [SAVE12 /CHANGE ERROR RETURN ADDRESS AS WE WILL DESTROY CORE 359 000546 3033 DCA ERRET 360 000547 1567 TAD I [JSBITS 361 000550 4551 JMS I [RESET 362 000551 6212 CIF 10 /MOVE THE LINE BUFFER TO 1600 DURING 363 000552 4727 JMS I PGNAME+1 /A SAVE, AS HANDLER WIPES IT OUT 364 000553 1013 TAD LXR /LET'S MOVE THE REGISTER AROUND 365 000554 1140 TAD [SVLNBF-BEGLN 366 000555 3013 DCA LXR 367 000556 1137 TAD [1001 368 000557 3364 DCA HNDLAD 369 000560 7201 CLA IAC 370 000561 4265 JMS GDEVNO 371 000562 4332 JMS RSCOMN 372 000563 5536 JMP I [SAVE2 373 HNDLAD, /REPLACED WITH 1001 BY SAVE 374 375 000564 7001 WRCTLB, 7001 /WRITE OVERLAY AND CCB 376 000565 4562 JMS I [SHNDLR 377 000566 4600 4600 378 000567 6200 6200 379 000570 0035 MTEMP+6 380 000571 5001 JMP KMONER 381 000572 5764 JMP I WRCTLB 382 *573 /LOADS SYSTEM ODT OVER THE MONITOR 383 000573 4432 ODT, JMS I PGTOUT 384 000574 4562 JMS I [SHNDLR 385 000575 1001 1001 386 000576 0000 0 387 000577 0060 ODTREC 388 /LOCATION 600 IN ODT IS A HLT (ERROR RETURN) 389 *600 390 000600 3040 START, DCA TEMP1 391 000601 3021 DCA TEMP2 392 000602 1413 TAD I LXR /V3 393 000603 7440 SZA /V3 394 000604 5535 JMP I [STRTX /V3 395 000605 1534 TAD I [JFIELD 396 000606 3566 DCA I [MSTCDF 397 000607 1567 TAD I [JSBITS 398 000610 0133 AND [1000 399 000611 7640 SZA CLA 400 000612 5532 JMP I [KMER3 401 000613 1567 TAD I [JSBITS 402 000614 4551 JMS I [RESET /RESET ONLY IF NO START ADR SPECIFIED 403 000615 1531 TAD I [JSTART 404 000616 3530 STCOMN, DCA I [MSTADR 405 000617 6041 TSF 406 000620 5217 JMP .-1 /WAIT FOR PRINTER TO FINISH 407 000621 4432 JMS I PGTOUT 408 000622 1567 TAD I [JSBITS 409 000623 7710 SPA CLA 410 000624 5566 JMP I [MSTCDF 411 000625 1162 TAD [SHNDLR 412 000626 3527 DCA I [MREAD-1 413 000627 1133 TAD [1000 414 000630 3526 DCA I [MREAD+1 415 000631 3525 DCA I [MREAD+2 416 000632 1124 TAD [MTEMP+4 417 000633 3523 DCA I [MREAD+3 418 000634 1027 TAD FUDJMP 419 000635 3522 DCA I [MSWITC 420 000636 5521 JMP I [MREAD 421 000637 0000 MINCOR, 0 422 000640 6212 CIF 10 423 000641 4422 JMS I SYSTEM 424 000642 0010 10 425 000643 6211 CDF 10 426 000644 3520 DCA I [OLDT9 /ZERO OUT "DIRECTORY IN CORE" KEY 427 000645 6201 CDF 0 428 000646 1117 TAD [200 429 000647 3022 DCA SYSTEM 430 000650 5637 JMP I MINCOR 431 RLOADR, 432 000651 1516 RUN1, TAD I [PGNAME 433 000652 3256 DCA FILE 434 000653 4426 JMS I DEVHND 435 000654 0101 0101 436 000655 7400 CCB 437 000656 0000 FILE, 0 /READ IN THE HEADER BLOCK 438 000657 5001 JMP KMONER /ERROR WHILE READING HEADER BLOCK 439 000660 1515 TAD I [CCB 440 000661 4514 JMS I [CCBTST /TEST FOR VALID CORE CONTROL 441 000662 1513 TAD I [CCB+3 /V3D 442 000663 7004 RAL /V3D 443 000664 4451 JMS I KRCHK /V3D CAN'T RUN SYSTEM CUSP UNDER OS78 444 000665 1512 TAD I [CCB+1 445 000666 3566 DCA I [MSTCDF 446 000667 1511 TAD I [CCB+2 447 000670 3530 DCA I [MSTADR /MOVE THE STARTING ADDRESS INTO UPPER CORE 448 000671 1512 TAD I [CCB+1 449 000672 3534 DCA I [JFIELD 450 000673 1511 TAD I [CCB+2 451 000674 3531 DCA I [JSTART 452 000675 1513 TAD I [CCB+3 /SET UP THE JOB INFORMATION AREA 453 000676 4551 JMS I [RESET /AND CLEAR INFORMATION ABOUT "RUN" HANDLER 454 000677 1027 TAD FUDJMP 455 000700 3522 DCA I [MSWITC /SET MSWITC TO INHIBIT LOADING 7400 456 000701 7410 GETSW, SKP /SKP FOR GET, NOP FOR RUN 457 000702 5307 JMP RUN2 458 000703 1030 TAD P6203 459 000704 3566 DCA I [MSTCDF 460 000705 1110 TAD [7600 461 000706 3530 DCA I [MSTADR /IF A GET, SET STARTING ADDRESS TO RETURN 462 /TO MONITOR 463 000707 1515 RUN2, TAD I [CCB 464 000710 7144 CLL CMA RAL /POINT TO LAST DOUBLEWORD IN CCB 465 000711 1107 TAD [CCB+4 466 000712 3041 DCA TM1 /TM1 POINTS TO SEG. ADDRESS 467 000713 1441 TAD I TM1 /STORE ADDRES TO READ POSSIBLE OVERLAY 468 000714 3525 DCA I [MREAD+2 469 000715 2041 ISZ TM1 /POINT TO SEGMENT CONTROL WORD 470 000716 1026 TAD DEVHND /IF THE HANDLER IS IN 7600, OR 471 000717 1117 TAD [200 /IF THE SEGMENT DOES NOT LOAD OVER 472 000720 7204 CLA RAL /7000, NO OVERLAY IS NEEDED. ALSO IF 473 000721 1441 TAD I TM1 /THE SEGMENT IS IN FIELDS 1-7. 474 000722 0165 AND [77 475 000723 7640 RUN5A, SZA CLA 476 000724 5506 JMP I [RUN6 /NO PROBLEMS.. READ STUFF IN 477 000725 1525 TAD I [MREAD+2 /SEE IF WE OVERLAY 7000 478 000726 7130 CLL CML RAR 479 000727 1441 TAD I TM1 /ADD IN CONTROL WORD 480 000730 1105 TAD [300 481 000731 7510 SPA /IF NEGATIVE, 7000 IS NOT OVERLAYED 482 000732 5323 JMP RUN5A 483 000733 1110 TAD [7600 /GETS 0, 100, 200, OR 300 484 000734 7500 SMA /IF POSITIVE READ 3 PAGE OVERLAY 485 000735 2504 ISZ I [PGNAME+1 /POINT TO NEXT TO LAST RECORD 486 000736 1105 TAD [300 487 000737 3345 DCA RDCNT 488 000740 1504 TAD I [PGNAME+1 489 000741 7040 CMA /GET RECORD TO READ OVERLAY FROM 490 000742 1256 TAD FILE 491 000743 3347 DCA R7000 492 000744 4426 JMS I DEVHND /READ OVERLAY FROM THE FILE INTO PAGES 493 000745 0000 RDCNT, 0 /BEFORE CCB 494 000746 6200 6200 /THEN WRITE THE WHOLE MESS OUT 495 000747 0000 R7000, 0 496 000750 5503 JMP I [RERR 497 000751 4502 JMS I [WRCTLB /WRITE OUT THE OVERLAY+CCB 498 000752 3351 DCA .-1 /BUT ONLY ONCE!! 499 000753 2046 ISZ RUNSW 500 000754 3522 DCA I [MSWITC /ENABLE READ OF OVERLAY 501 000755 1345 TAD RDCNT /SEE IF THIS SEG IS EXHAUSTED 502 000756 7041 CIA 503 000757 1441 TAD I TM1 504 000760 7550 SPA SNA 505 000761 2515 ISZ I [CCB /ARE WE DONE ALL SEGMENTS? 506 000762 7410 SKP /NOT YET. LOOP UNTIL DONE 507 000763 5522 JMP I [MSWITC 508 000764 3441 RUN5, DCA I TM1 /SAVE ALTERED CONTROL WORD 509 000765 5307 JMP RUN2 510 /ASDONE, CDF 10 511 / DCA I TM1 /THIS COULD BE OPTIMIZED 512 / CDF 0 513 / JMP I [KEYMON 514 515 000766 4501 KMER1, JMS I [PRNAME /DEVICE NOT AVAILABLE 516 000767 4500 JMS I [PRMESG 517 000770 4016 TEXT / NOT AVAILABLE/ 000771 1724 000772 4001 000773 2601 000774 1114 000775 0102 000776 1405 000777 0000 518 *1000 519 /MUST BE AT 1000 FOR BATCH 520 001000 0000 BEGLN, 0 /LINE BUFFER COULD BECOME "@ 521 001001 0311 "I 522 001002 0316 "N 523 001003 0311 "I 524 001004 0324 "T 525 001005 6211 KMINIT, CDF 10 /INITIALIZATION - DESTROYED BY LINE BUFFER 526 001006 2477 ISZ I [7700 /LOC 17700=7777 IF I/O MONITOR IS KNOWN 527 001007 5212 JMP .+3 /TO BE IN CORE, SO SET UP 528 001010 1117 TAD [200 /THE INITIAL POINTER FOR CALLS TO THE MONITOR 529 001011 3022 DCA SYSTEM /ACCORDINGLY 530 001012 6201 CDF 0 531 001013 1413 TAD I LXR 532 001014 3414 DCA I X1 533 001015 2021 ISZ TEMP2 534 001016 5213 JMP .-3 535 001017 6211 CDF 10 536 001020 1263 TAD MVFROM 537 001021 3662 DCA I PDBUF 538 001022 2220 ISZ .-2 539 001023 2262 ISZ PDBUF 540 001024 2261 ISZ MVCNT 541 001025 5220 JMP .-5 542 001026 6201 CDF 0 543 001027 1663 TAD I PDBUF+1 /SEE IF BATCH IS SET 544 001030 7004 RAL /IF YES, GO TO PAGE 0 TO CONTINUE 545 001031 7700 SMA CLA /IF IT ISN'T, CONTINUE NORMALLY 546 001032 5241 JMP INTGO /NORMAL KEYBOARD SYSTEM 547 001033 3650 DCA I RTWTPT /DON'T WAIT ON TTY FLAG IF BATCH IS RUNNING 548 001034 1567 TAD I [JSBITS /IS BOS IN PLACE? 549 001035 0251 AND DCBF 550 001036 7650 SNA CLA 551 001037 5035 JMP BATCH /NO. GO READ IT IN. 552 001040 5046 JMP BCHGO /YES. START IT UP. 553 001041 1117 INTGO, TAD [200 554 001042 6034 KRS 555 001043 1375 TAD M203 556 001044 7650 SNA CLA /IS THERE A ^C IN THE READER BUFFER 557 001045 6031 KSF /WITH THE FLAG ON? 558 001046 5433 JMP I ERRET /NO - PRINT CRLF AND PERIOD 559 001047 5306 JMP CLR /V3D 560 /CCLADR, GETCCL /V3D DIDN'T SEEM TO BE USED 561 001050 1731 RTWTPT, RUNTWT 562 001051 0400 DCBF, 400 563 /START 564 001052 4207 PMSRST, SHNDLR&177+4200 /JMS SHNDLR 565 001053 0300 0300 566 001054 7000 7000 567 001055 0035 MTEMP+6 568 001056 7402 HLT /CONTAINS SECOND COPY OF OS/78 BIT 569 001057 6203 CDF CIF 0 570 001060 6042 TCF 571 /END 572 001061 7764 MVCNT, MOVBUF-MVT3-1 573 001062 7626 PDBUF, MOVBUF 574 MVFROM, NOPUNCH 575 *7626 576 ENPUNCH 577 007626 7777 MOVBUF, 7777 /USED IN BATCH SETUP 578 007627 1637 TAD I MVT1 /MOVE THE LINE BUFFER FROM 1000 579 007630 3640 DCA I MVT2 /TO 1655 580 007631 2237 ISZ MVT1 581 007632 2240 ISZ MVT2 582 007633 2241 ISZ MVT3 583 007634 5227 JMP .-5 584 007635 6203 CIF CDF 0 585 007636 5626 JMP I MOVBUF 586 587 007637 1000 MVT1, BEGLN 588 007640 1645 MVT2, SVLNBF 589 007641 7666 MVT3, -112 590 591 592 *1077 /V3D 593 001077 6211 INIT, CDF 10 /V3D (INITIALIZATION) 594 001100 1251 TAD DCBF 595 001101 3741 DCA I ROT /RESTORE LOC 7677 TO '400' 596 001102 6201 CDF 0 597 001103 3205 DCA KMINIT /END LINE WITH 0 598 001104 6046 TLS 599 001105 5766 JMP I CRLF /FAKE OUT KBM AS IF USER TYPED @INIT 600 601 602 001106 6032 CLR, KCC 603 001107 5710 JMP I .+1 604 001110 1273 CTRLC 605 *1112 606 ENPUNCH 607 608 001112 1413 DIGTLP, TAD I LXR 609 001113 1377 STRTX, TAD (-270 610 001114 7100 CLL 611 001115 1076 TAD [10 612 001116 3042 DCA TMP1 /V3 613 001117 7420 SNL 614 001120 5330 JMP EONUM 615 /V3 ISZ DIGFLG 616 001121 4341 JMS ROT 617 001122 4341 JMS ROT 618 001123 4341 JMS ROT 619 001124 1021 TAD TEMP2 620 001125 1042 TAD TMP1 621 001126 3021 DCA TEMP2 622 001127 5312 JMP DIGTLP 623 001130 1040 EONUM, TAD TEMP1 624 001131 0120 AND [7 625 001132 7106 CLL RTL 626 001133 7004 RAL 627 001134 1361 TAD KM6203 628 001135 3566 DCA I [MSTCDF 629 001136 1021 TAD TEMP2 630 001137 5740 JMP I .+1 631 001140 0616 STCOMN 632 633 001141 7677 ROT, 7677 /V3D NEEDED FOR INIT 634 001142 1021 TAD TEMP2 635 001143 7104 CLL RAL 636 001144 3021 DCA TEMP2 637 001145 1040 TAD TEMP1 638 001146 7004 RAL 639 001147 3040 DCA TEMP1 640 001150 5741 JMP I ROT 641 001151 1154 DEAS, TAD [UDNAME-1 642 001152 3014 DCA X1 643 001153 1125 TAD [-17 644 001154 3041 DCA TM1 645 001155 6211 CDF 10 646 001156 3414 DCA I X1 647 001157 2041 ISZ TM1 648 001160 5356 JMP .-2 649 001161 6203 KM6203, CDF CIF 0 650 001162 5475 JMP I [KEYMON 651 652 001163 6211 ASDONE, CDF 10 /V3 653 001164 3441 DCA I TM1 /V3 654 001165 5361 JMP KM6203 /V3 655 656 657 001166 0404 CRLF, KEYMON+1 /V3D NEEDED FOR INIT 658 001167 1074 TAD [215 659 001170 3034 DCA NM1 660 001171 4776 JMS I (PRNT 661 001172 1073 TAD [212 662 001173 4423 JMS I PCH 663 001174 5766 JMP I CRLF 664 665 001175 7575 M203, -203 666 001176 1262 PAGE 001177 7510 667 /NOTE: XR=AMFLAG ! 668 669 *1200 670 /TELETYPE INPUT ROUTINE 671 001200 0404 XGLINE, KEYMON+1 /MUST BE AT 1200 FOR BATCH & CCL 672 001201 1163 TAD [". 673 001202 4423 JMS I PCH 674 001203 3020 DCA RBFLAG 675 001204 1160 TAD [BEGLN-1 676 001205 3013 CHLM1, DCA LXR 677 001206 3017 DCA AMFLAG /ZERO ALTMODE FLAG 678 001207 6031 CHLOOP, KSF 679 001210 5207 JMP CHLOOP 680 001211 1117 TAD [200 681 001212 6034 KRS 682 001213 3034 DCA NM1 683 001214 6032 KCC 684 001215 4327 JMS SRCH 685 001216 7553 -225;CTRLU 001217 1273 686 001220 7563 -215;CARRET 001221 1252 687 001222 7401 -377;RUBOUT 001223 1307 688 001224 7403 -375;ALTMOD /THIS AREA GETS MODIFIED BY SET 001225 1302 689 001226 7402 -376;ALTMOD 001227 1302 690 001230 7545 -233;ALTMOD 001231 1302 691 001232 7566 -212;LFEED 001233 1344 692 001234 7600 -200;CHLOOP 001235 1207 693 001236 7561 -217;CHLOOP /IGNORE ^O 001237 1207 694 001240 7575 -203;CTRLC /MUST BE JUST BEFORE 0 001241 1273 695 /MUST BE HERE FOR CCL 696 001242 0000 0 697 001243 4262 JMS PRNT 698 001244 1034 CINSRT, TAD NM1 699 001245 3413 DCA I LXR 700 001246 1013 TAD LXR 701 001247 1072 TAD [-BEGLN-110 702 001250 7710 SPA CLA 703 001251 5207 JMP CHLOOP 704 001252 4561 CARRET, JMS I [CRLF 705 001253 1013 TAD LXR 706 001254 1071 TAD [1-BEGLN 707 001255 7650 SNA CLA 708 001256 5201 JMP XGLINE+1 709 001257 3413 DCA I LXR 710 001260 3413 DCA I LXR 711 001261 5600 JMP I XGLINE 712 /THIS PAGE GETS MODIFIED BY SET COMMANDS (FOR REAL SCOPE RUBOUTS) 713 /**** BEWARE! *** 714 715 001262 0000 PRNT, 0 716 001263 2020 ISZ RBFLAG 717 001264 5267 JMP .+3 718 001265 1070 TAD ["\ 719 001266 4423 JMS I PCH 720 001267 3020 DCA RBFLAG 721 001270 1034 TAD NM1 722 001271 4423 JMS I PCH 723 001272 5662 JMP I PRNT 724 CTRLC, 725 001273 1067 CTRLU, TAD ["^ 726 001274 4423 JMS I PCH 727 001275 1034 TAD NM1 728 001276 1066 TAD [100 729 001277 4423 CLRLIN, JMS I PCH 730 001300 4561 RBSPCL, JMS I [CRLF 731 001301 5201 JMP XGLINE+1 732 733 001302 1065 ALTMOD, TAD ["$ 734 001303 3034 DCA NM1 735 001304 4262 JMS PRNT 736 001305 2017 ISZ AMFLAG /NOTE ALTMODE 737 001306 5253 JMP CARRET+1 738 001307 1013 RUBOUT, TAD LXR 739 001310 1071 TAD [1-BEGLN 740 001311 7650 SNA CLA 741 001312 5300 JMP RBSPCL 742 001313 1070 TAD ["\ /MUST BE HERE 743 001314 2020 ISZ RBFLAG 744 001315 4423 JMS I PCH 745 001316 7240 CLA CMA 746 001317 3020 DCA RBFLAG 747 001320 1013 TAD LXR 748 001321 3040 DCA TEMP1 749 001322 1440 TAD I TEMP1 750 001323 4423 JMS I PCH 751 001324 7240 LBCKUP, CLA CMA 752 001325 1013 TAD LXR 753 001326 5205 JMP CHLM1 754 001327 0000 SRCH, 0 755 001330 1727 TAD I SRCH 756 001331 2327 ISZ SRCH 757 001332 7450 SNA 758 001333 5727 JMP I SRCH 759 001334 1034 TAD NM1 760 001335 7650 SNA CLA 761 001336 5341 JMP SFND 762 001337 2327 ISZ SRCH 763 001340 5330 JMP SRCH+1 764 001341 1727 SFND, TAD I SRCH 765 001342 3040 DCA TEMP1 766 001343 5440 JMP I TEMP1 767 001344 4561 LFEED, JMS I [CRLF 768 001345 3413 DCA I LXR 769 001346 1163 TAD [". 770 001347 4423 JMS I PCH 771 001350 1160 TAD [BEGLN-1 772 001351 3017 DCA XR 773 001352 1417 TAD I XR 774 001353 7450 SNA 775 001354 5324 JMP LBCKUP 776 001355 4423 JMS I PCH 777 001356 5352 JMP .-4 778 779 001357 4501 PRQMRK, JMS I [PRNAME 780 001360 5557 JMP I [PRINTQ 781 IFNZRO PRQMRK-1357 782 001361 0000 ZBLOCK 1 /A FREE LOCATION! 783 784 IFNZRO .-1362 785 786 001362 1064 GETCCL, TAD [6003 787 001363 4551 JMS I [RESET 788 001364 1063 TAD [67 /CCL OVERLAY BLOCK IS BLOCK 67 *** 789 001365 3375 DCA OV 790 001366 5372 JMP DATE2 791 001367 1031 DATE, TAD TMP 792 001370 7650 SNA CLA 793 001371 5462 JMP I [CCLSW-1 /USED TO BE JMP GETCCL 794 001372 4562 DATE2, JMS I [SHNDLR /READ IN DATE OVERLAY 795 001373 0201 0201 796 001374 0400 0400 797 001375 0055 OV, MSOVL2 798 001376 5001 JMP KMONER 799 001377 5461 JMP I [600 800 PAGE 801 *1400 802 001400 4562 SAVE2A, JMS I [SHNDLR 803 001401 0201 0201 804 001402 0400 400 805 001403 0037 MTEMP+10 806 001404 5001 JMP KMONER 807 001405 1060 SAVE3, TAD [603 808 001406 3017 DCA XR 809 001407 1461 TAD I [600 810 001410 3041 DCA TM1 811 001411 1041 TAD TM1 812 001412 4514 JMS I [CCBTST /CHECK TM1 FOR VALID CCB 813 001413 2017 SAVE3A, ISZ XR 814 001414 1417 TAD I XR /GET THE I/O CONTROL WORD OF THIS SEGMENT 815 001415 4776 JMS I PROTAT /EXTRACT THE LENGTH FROM IT 816 001416 1241 TAD CLENGT 817 001417 3241 DCA CLENGT /UPDATE THE LENGTH OF THE FILE 818 001420 2041 ISZ TM1 819 001421 5213 JMP SAVE3A /LOOP FOR ALL SEGMENTS OF THE FILE 820 001422 1241 TAD CLENGT /USE THIS LENGTH WHEN ENTERING THE FILE 821 001423 7106 CLL RTL 822 001424 7006 RTL 823 001425 1050 TAD SENTER 824 001426 6212 CIF 10 825 001427 4422 JMS I SYSTEM 826 001430 0003 3 /ENTER 827 001431 0034 SFILE, NM1 828 001432 0000 0 /LENGHT UNIMPORTANT 829 001433 5367 JMP SAVERR 830 001434 1050 TAD SENTER 831 001435 6212 CIF 10 832 001436 4422 JMS I SYSTEM 833 001437 0004 4 /CLOSE 834 001440 0034 NM1 /NAME FOR "CLOSE" 835 001441 0001 CLENGT, 1 /CLOSING LENGTH 836 001442 5367 JMP SAVERR 837 001443 1060 TAD [603 838 001444 3017 DCA XR 839 001445 4432 JMS I PGTOUT /KICK THE I/O MONITOR OUT IF NECESSARY 840 001446 1567 TAD I [JSBITS 841 001447 7004 RAL 842 001450 7040 CMA /IF JOB LOADS INTO LOCS 0-1777, 843 001451 7720 SNL SMA CLA /BUT NOT INTO LOCS 10000-11777, 844 001452 4343 JMS LOADF0 /LOAD 0-1777 INTO 10000-11777 NOW 845 001453 1231 TAD SFILE 846 001454 3360 DCA SWFILE 847 001455 4354 JMS SWRITE /WRITE OUT CONTROL BLOCK 848 001456 1417 SAVE4, TAD I XR 849 001457 3357 DCA SADR 850 001460 7330 CLA CLL CML RAR 851 001461 1417 TAD I XR 852 001462 3356 DCA SCTL 853 001463 1357 SAVE5, TAD SADR 854 001464 7004 RAL 855 001465 7730 SZL SPA CLA /DOES THIS SEGMENT START BELOW 2000? 856 001466 5327 JMP SAVE8 /NO - NOTHING TO WORRY ABOUT 857 001467 1356 TAD SCTL 858 001470 0057 AND [70 859 001471 7640 SZA CLA /FIELD 0? 860 001472 5327 JMP SAVE8 /NO - SAVE AS IS 861 001473 4343 SAVE6, JMS LOADF0 /LOAD THE FIELD 0 SAVE AREA OVER THE I/O MONITOR 862 001474 7240 SAVE7, CLA CMA 863 001475 1356 TAD SCTL 864 001476 7104 CLL RAL 865 001477 1357 TAD SADR 866 001500 7004 RAL 867 001501 7730 SZL SPA CLA /CHECK WHETHER UPPER LIMIT IS ABOVE 2000 868 001502 5306 JMP SAVE7A /IT IS - MUST MAKE 2 WRITES 869 001503 1356 TAD SCTL /TOTALLY CONTAINED IN 0-1777 870 001504 1076 TAD [10 /CHANGE FIELD 0 TO FIELD 1 AND CONTINUE 871 001505 5326 JMP SAVE8A 872 001506 1356 SAVE7A, TAD SCTL /WRITE IN 2 PARTS - 873 001507 3041 DCA TM1 874 001510 1357 TAD SADR 875 001511 7041 CIA /FIRST PART FROM FIELD 1, EVERYTHING BELOW 2000 876 001512 1056 TAD [2020 877 001513 7130 CLL CML RAR 878 001514 3356 DCA SCTL 879 001515 4354 JMS SWRITE 880 001516 7332 CLA CLL CML RTR 881 001517 3357 DCA SADR 882 001520 1356 TAD SCTL /SECOND PART FROM FIELD 0, EVERYTHING ABOVE 2000 883 001521 0055 AND [3700 884 001522 7041 CIA 885 001523 1041 TAD TM1 886 001524 7500 SMA /FULL FIELD SAVE IN F0 MAKES THIS + 887 001525 1054 TAD [4000 /COMPENSATE FOR THAT CASE 888 001526 3356 SAVE8A, DCA SCTL 889 001527 4354 SAVE8, JMS SWRITE 890 001530 2461 ISZ I [600 891 001531 5256 JMP SAVE4 892 001532 4562 SAVE12, JMS I [SHNDLR 893 001533 0610 0610 894 001534 0000 0 895 001535 0013 MONTOR /FORCE THE I/O MONITOR BACK INTO CORE 896 001536 5001 JMP KMONER /(OY VEH!) 897 001537 7240 CLA CMA 898 001540 6211 CDF 10 899 001541 3477 DCA I [7700 /TELL THE KEYBOARD MONITOR THAT ITS IN CORE 900 001542 5453 JMP I [7605 /*** DEPENDS ON 7605 BEING A CDF CIF 10 *** 901 902 001543 0000 LOADF0, 0 903 001544 2350 ISZ F0OVLY /HAS THE FIELD 0 OVERLAY BEEN LOADED BEFORE? 904 001545 5743 JMP I LOADF0 /EVIDENTLY 905 001546 4562 JMS I [SHNDLR 906 001547 1010 1010 907 001550 7777 F0OVLY, -1 /WILL BE 0 IF WE EXECUTE THIS CODE, OF COURSE 908 001551 0033 MTEMP+4 909 001552 5001 JMP KMONER 910 001553 5743 JMP I LOADF0 911 912 001554 0000 SWRITE, 0 913 001555 4426 JMS I DEVHND 914 001556 4101 SCTL, 4101 915 001557 0600 SADR, 600 916 001560 0000 SWFILE, 0 917 001561 5367 JMP SAVERR 918 001562 1356 TAD SCTL 919 001563 4776 JMS I PROTAT 920 001564 1360 TAD SWFILE 921 001565 3360 DCA SWFILE /BUMP RECORD NUMBER 922 001566 5754 JMP I SWRITE 923 001567 4500 SAVERR, JMS I [PRMESG 924 001570 2301 TEXT /SAVE ERROR/ 001571 2605 001572 4005 001573 2222 001574 1722 001575 0000 925 001576 1765 PROTAT, ROTAT 926 *1600 927 001600 4500 KMER4, JMS I [PRMESG 928 001601 2417 TEXT /TOO FEW ARGS/ 001602 1740 001603 0605 001604 2740 001605 0122 001606 0723 001607 0000 929 001610 0000 CCBTST, 0 /EXAMINE COUNT WORD OF CCB FOR VALIDITY 930 /ASCII AND BINARY FILES USUALLY FAIL THIS TEST 931 001611 7040 CMA 932 001612 0154 AND [7740 933 001613 7650 SNA CLA 934 001614 5610 JMP I CCBTST /IT WAS VALID 935 001615 1053 CIERR, TAD [7605 936 001616 3033 DCA ERRET /RELOAD MONITOR ON THIS ERROR 937 001617 4500 JMS I [PRMESG /IT WASN'T - TELL THE USER 938 001620 0317 TEXT /CORE IMAGE ERR/ 001621 2205 001622 4011 001623 1501 001624 0705 001625 4005 001626 2222 001627 0000 939 001630 0000 GETOUT, 0 /SUBROUTINE TO KICK MONITOR OUT IF NECESSARY 940 001631 1567 TAD I [JSBITS 941 001632 7010 RAR 942 001633 7200 CLA 943 001634 1022 TAD SYSTEM 944 001635 7730 SZL SPA CLA /IS THE SYSTEM IN CORE AND SHOULD IT BE? 945 001636 5630 JMP I GETOUT 946 001637 6212 CIF 10 /YES AND NO - KICK IT OUT 947 001640 4422 JMS I SYSTEM 948 001641 0011 11 /BYE BYE 949 001642 1077 TAD [7700 950 001643 3022 DCA SYSTEM 951 001644 5630 JMP I GETOUT 952 SVLNBF, 953 001645 4501 KMER2, JMS I [PRNAME 954 001646 4500 JMS I [PRMESG 955 001647 4016 TEXT / NOT FOUND/ 001650 1724 001651 4006 001652 1725 001653 1604 001654 0000 956 / 957 /NEXT 112 LOCATIONS DESTROYED BY THE LINE BUFFER DURING A SAVE 958 / 959 960 001655 0000 RESET, 0 961 001656 3567 DCA I [JSBITS /MARK AREAS FOR I/O OPTOMIZATION 962 001657 4550 JMS I [MINCOR 963 001660 6212 CIF 10 964 001661 4422 JMS I SYSTEM 965 001662 0013 13 /RESET DEVICE HANDLERS AND OUTPUT FILES 966 /V3D CDF 0 /THIS INSTRUCTION SEEMS UNNECESSARY 967 001663 5655 JMP I RESET 968 969 001664 0000 RCHK, 0 970 001665 0743 AND I RADR /V3D 971 001666 0117 AND [200 /CAN'T ALLOW BOTH OS78 BIT AND SYSTEM CUSP BIT 972 001667 7650 SNA CLA 973 001670 5664 JMP I RCHK 974 001671 5215 JMP CIERR /V3D CAN'T FALL INTO KMER3 975 /BECAUSE HAVE TO RELOAD KBM TO RESET 'PGNAME' 976 001672 4500 KMER3, JMS I [PRMESG 977 001673 1617 TEXT /NO!!/ 001674 4141 001675 0000 978 979 001676 1441 RUN6, TAD I TM1 /STORE CONTROL WORD FOR LAST SEG. 980 001677 3526 DCA I [MREAD+1 981 001700 1046 TAD RUNSW /IS THIS R OR RUN? 982 001701 7650 SNA CLA 983 001702 4502 JMS I [WRCTLB /RUN 984 001703 1722 TAD I RFILE /V3D FOR LINKER 985 001704 3742 DCA I RCTL /V3D SAVE BLOCK NUMBER IN 'SOFSET' 986 001705 1722 TAD I RFILE 987 001706 7001 RUN7, IAC 988 001707 3344 DCA RUNFIL /STORE STARTING BLOCK NUMBER 989 001710 1026 TAD DEVHND 990 001711 3527 DCA I [MREAD-1 991 001712 1026 TAD DEVHND 992 001713 3364 DCA RUNHND /STORE DEVICE HANDLER ENTRY IN THIS PAGE 993 001714 1415 TAD I ADR1 994 001715 3416 DCA I ADR2 995 001716 2323 ISZ ADCNT 996 001717 5314 JMP .-3 997 001720 5721 JMP I .+1 /AND GO TO IT 998 001721 7524 RUN8&177+7400 999 1000 001722 0656 RFILE, FILE 1001 001723 7724 ADCNT, RUN8&177+7600 1002 001724 2761 RUN8, ISZ I R7400 /IS THIS THE LAST PARAMETER PAIR? 1003 001725 5334 JMP RUN9 /NO - KEEP LOADING 1004 001726 1344 TAD RUNFIL 1005 001727 3762 DCA I RMRD3 /MOVE THE RECORD NUMBER INTO THE FINAL READ 1006 001730 6041 TSF 1007 001731 5330 RUNTWT, JMP .-1 /WAIT FOR THE TELETYPE TO DIE DOWN (RF08 IS FAST!) 1008 001732 5733 JMP I .+1 1009 001733 7757 MREAD /READ THE LAST SEGMENT AND START UP 1010 001734 1760 RUN9, TAD I RUNADR 1011 001735 3343 DCA RADR /SET UP THE LOADING ADDRESS OF THE CURRENT SEGMENT 1012 001736 2360 ISZ RUNADR 1013 001737 1760 TAD I RUNADR 1014 001740 3342 DCA RCTL /AND THE READ CONTROL WORD 1015 001741 4764 JMS I RUNHND 1016 001742 7747 RCTL, SOFSET /V3D THESE ARE STORED INTO ONLY AFTER MOVING 1017 001743 7771 RADR, OS78 /V3D 1018 001744 0000 RUNFIL, 0 1019 001745 5354 JMP RERR /INPUT ERROR READING THE PROGRAM 1020 001746 1342 TAD RCTL 1021 001747 4365 JMS ROTAT /GET THE BLOCK LENGTH OF THIS SEGMENT 1022 001750 1344 TAD RUNFIL 1023 001751 3344 DCA RUNFIL /UPDATE THE BLOCK NUMBER FROM IT 1024 001752 2360 ISZ RUNADR 1025 001753 5324 JMP RUN8 /BACK FOR ANOTHER ONE 1026 1027 001754 6212 RERR, CIF 10 1028 001755 4763 JMS I RU7700 1029 001756 0007 7 1030 001757 0000 0 /TOTALLY MEANINGLESS 1031 001760 7404 RUNADR, CCB+4 1032 001761 7400 R7400, 7400 1033 001762 7762 RMRD3, MREAD+3 1034 001763 7700 RU7700, 7700 1035 001764 0000 RUNHND, 0 1036 IFNZRO ROTAT-SVLNBF-112&4000 1037 *1765 /MUST BE AT TOP OF PAGE 1038 001765 0000 ROTAT, 0 1039 001766 7112 CLL RTR 1040 001767 7012 RTR 1041 001770 7012 RTR 1042 001771 0377 AND RU37 1043 001772 7450 SNA 1044 001773 1377 TAD RU37 1045 001774 7001 IAC 1046 001775 7110 CLL RAR 1047 001776 5765 JMP I ROTAT 1048 001777 0037 RU37, 37 1049 /OVERLAY TO KEYBOARD MONITOR FOR "SAVE" WITH ARGUMENTS 1050 *2000 /GOES INTO 400 1051 002000 1377 SAVE1A, TAD (1603 1052 002001 3014 DCA X1 1053 002002 3041 DCA TM1 1054 002003 6211 CDF 10 1055 002004 3520 DCA I [OLDT9 1056 002005 6203 S6203, CIF CDF 0 1057 002006 1376 TAD (SGETOUT-RSOVL2 /POINTER TO NEW GETOUT 1058 1059 002007 3032 DCA PGTOUT /LIKEWISE "GETOUT" 1060 002010 4562 JMS I [SHNDLR 1061 002011 0210 0210 1062 002012 1400 1400 1063 002013 0037 MTEMP+10 /READ IN CONTROL BLOCK 1064 002014 5001 JMP KMONER 1065 002015 4303 JMS LXRBAK /RESET LXR TO LOOK AT FIRST CHAR 1066 002016 4303 JMS LXRBAK 1067 002017 3342 DCA DASHFG 1068 002020 4345 SNUMLP, JMS SGTNUM 1069 002021 5260 JMP SDLOOK /NO NUMBER - GET DELIMETER 1070 002022 1413 TAD I LXR 1071 002023 1375 TAD (-"- 1072 002024 7650 SNA CLA 1073 002025 5310 JMP SVDASH 1074 002026 4303 JMS LXRBAK 1075 002027 1342 TAD DASHFG 1076 002030 7650 SNA CLA /WAS THERE A LOWER LIMIT? 1077 002031 4332 JMS DASHSB /NO - SET LOWER LIMIT TO UPPER LIMIT 1078 002032 1040 TAD TEMP1 1079 002033 7161 CIA CLL CML 1080 002034 1343 TAD OLD1 1081 002035 7640 SZA CLA /ARE THE FIELDS THE SAME? 1082 002036 5275 JMP KMER5 /NO - ERROR 1083 002037 1021 TAD TEMP2 1084 002040 0110 AND [7600 1085 002041 1117 TAD [200 1086 002042 3021 DCA TEMP2 1087 002043 1021 TAD TEMP2 1088 002044 7041 CIA 1089 002045 1344 TAD OLD2 1090 002046 7630 SZL CLA /IS UPPER LIMIT > LOWER LIMIT? 1091 002047 5275 JMP KMER5 /NO - ERROR 1092 002050 6211 CDF 10 1093 002051 1343 TAD OLD1 1094 002052 3414 DCA I X1 1095 002053 1344 TAD OLD2 1096 002054 3414 DCA I X1 1097 002055 1021 TAD TEMP2 1098 002056 3414 DCA I X1 /CREATE A TRIPLET(FIELD, LOW LIMIT, HIGH LIMIT) 1099 /IN THE TABLE IN FIELD 1 1100 002057 2041 ISZ TM1 /BUMP ENTRY COUNT 1101 002060 6201 SDLOOK, CDF 0 1102 002061 1413 TAD I LXR 1103 002062 7450 SNA 1104 002063 5774 JMP I (SVEND-RSOVL1 1105 002064 1373 TAD (-", 1106 002065 7450 SNA 1107 002066 5217 JMP SNUMLP-1 1108 002067 1372 TAD (",-"; 1109 002070 7450 SNA 1110 002071 5316 JMP SSTADR 1111 002072 1371 TAD (";-"= 1112 002073 7650 SNA CLA 1113 002074 5770 JMP I (SSBITS-RSOVL1 1114 002075 4500 KMER5, JMS I [PRMESG 1115 002076 0201 TEXT /BAD ARGS/ 002077 0440 002100 0122 002101 0723 002102 0000 1116 002103 0000 LXRBAK, 0 1117 002104 7240 CLA CMA 1118 002105 1013 TAD LXR 1119 002106 3013 DCA LXR 1120 002107 5703 JMP I LXRBAK 1121 002110 1342 SVDASH, TAD DASHFG 1122 002111 7640 SZA CLA 1123 002112 5275 JMP KMER5 1124 002113 2342 ISZ DASHFG 1125 002114 4332 JMS DASHSB 1126 002115 5220 JMP SNUMLP 1127 002116 4345 SSTADR, JMS SGTNUM 1128 002117 5275 JMP KMER5 /NULL STARTING ADR - ERROR 1129 002120 1040 TAD TEMP1 1130 002121 0120 AND [7 1131 002122 7106 CLL RTL 1132 002123 7004 RAL 1133 002124 1205 TAD S6203 1134 002125 6211 CDF 10 1135 002126 3767 DCA I (1601 /STORE AWAY STARTING FIELD 1136 002127 1021 TAD TEMP2 1137 002130 3766 DCA I (1602 /AND STARTING ADDRESS 1138 002131 5260 JMP SDLOOK 1139 002132 0000 DASHSB, 0 1140 002133 1040 TAD TEMP1 1141 002134 0120 AND [7 1142 002135 3343 DCA OLD1 1143 002136 1021 TAD TEMP2 1144 002137 0110 AND [7600 1145 002140 3344 DCA OLD2 1146 002141 5732 JMP I DASHSB 1147 002142 0000 DASHFG, 0 1148 002143 0000 OLD1, 0 1149 002144 0000 OLD2, 0 1150 1151 002145 0000 SGTNUM, 0 /GET A NUMBER ROUTINE 1152 002146 3047 DCA DIGFLG /CLEAR DIGIT COLLECTED FLAG 1153 002147 3040 DCA TEMP1 1154 002150 3021 DCA TEMP2 1155 002151 4765 JMS I (STARTX-RSOVL1 1156 002152 5356 JMP .+4 1157 002153 1364 TAD (20 1158 002154 7650 SNA CLA 1159 002155 5351 JMP .-4 1160 002156 4303 JMS LXRBAK /SHOVE INDEX BACK 1161 002157 1047 TAD DIGFLG /IS DIGIT PRESENT? 1162 002160 7640 SZA CLA 1163 002161 2345 ISZ SGTNUM 1164 002162 5745 JMP I SGTNUM 1165 002164 0020 PAGE 002165 0713 002166 1602 002167 1601 002170 0600 002171 7776 002172 7761 002173 7524 002174 0606 002175 7523 002176 0545 002177 1603 1166 *2200 /LOADS INTO 600 1167 002200 4777 SSBITS, JMS I (SGTNUM-RSOVL1 1168 002201 5776 JMP I (KMER5-RSOVL1 1169 002202 1021 TAD TEMP2 1170 002203 6211 CDF 10 1171 002204 3775 DCA I (1603 1172 002205 5774 JMP I (SDLOOK-RSOVL1 1173 002206 4562 SVEND, JMS I [SHNDLR 1174 002207 0101 0101 1175 002210 0400 0400 1176 002211 0055 MSOVL2 /READ IN SECOND PART OF OVERLAY 1177 002212 5001 JMP KMONER 1178 002213 1041 TAD TM1 1179 002214 7450 SNA 1180 002215 5773 JMP I (MOVECB-RSOVL2 1181 002216 7041 CIA 1182 002217 6211 CDF 10 1183 002220 3772 DCA I (1600 1184 /NOW SORT THE ENTRIES IN THE SEGMENT TABLE ON 1185 /DECREASING FIELD AND INCREASING ADDRESS 1186 /WITHIN THE FIELD. 1187 002221 1375 TAD (1603 1188 002222 3311 DCA P1 1189 002223 7201 CLA IAC 1190 002224 1772 TAD I (1600 1191 002225 7450 SNA 1192 002226 5771 JMP I (SORTED-RSOVL2 /RIDICULOUS TO SORT ONE ITEM 1193 002227 3040 DCA TEMP1 1194 002230 1370 OUTRLP, TAD (3 1195 002231 1311 TAD P1 1196 002232 3312 DCA P2 1197 002233 1040 TAD TEMP1 1198 002234 3021 DCA TEMP2 1199 002235 1311 INERLP, TAD P1 1200 002236 3013 DCA LXR 1201 002237 1312 TAD P2 1202 002240 3014 DCA X1 1203 002241 1413 TAD I LXR 1204 002242 7141 CIA CLL 1205 002243 1414 TAD I X1 1206 002244 7650 SNA CLA 1207 002245 5263 JMP TIE /FIELDS ARE EQUAL - SORT ON ADDRESS IN FIELD 1208 002246 7430 SZL 1209 002247 5270 JMP SWITCH /WRONG ORDER - SWITCH 'EM 1210 002250 1312 TIENTY, TAD P2 1211 002251 1370 TAD (3 1212 002252 3312 DCA P2 /INDEX TO NEXT ENTRY 1213 002253 2021 SWNTRY, ISZ TEMP2 1214 002254 5235 JMP INERLP 1215 002255 1311 TAD P1 1216 002256 1370 TAD (3 1217 002257 3311 DCA P1 /ELEMENT IS IN PLACE - GO TO NEXT POSITION 1218 002260 2040 ISZ TEMP1 1219 002261 5230 JMP OUTRLP 1220 002262 5771 JMP I (SORTED-RSOVL2 /SORT COMPLETE - CHECK FOR CONSISTENCY 1221 002263 1413 TIE, TAD I LXR 1222 002264 7141 CIA CLL 1223 002265 1414 TAD I X1 1224 002266 7630 SZL CLA /TEST FOR ADRESSES IN ASCENDING ORDER 1225 002267 5250 JMP TIENTY /YES - DONT HAVE TO SWAP 1226 002270 4277 SWITCH, JMS SWSUBR 1227 002271 4277 JMS SWSUBR 1228 002272 4277 JMS SWSUBR 1229 002273 7346 CLA CLL CMA RTL 1230 002274 1311 TAD P1 1231 002275 3311 DCA P1 /RESET FIRST POINTER 1232 002276 5253 JMP SWNTRY /AND DONT BUMP 2D POINTER, AS WE HAVE JUST BUMPED IT 1233 002277 0000 SWSUBR, 0 1234 002300 2311 ISZ P1 1235 002301 2312 ISZ P2 1236 002302 1711 TAD I P1 1237 002303 3041 DCA TM1 1238 002304 1712 TAD I P2 1239 002305 3711 DCA I P1 1240 002306 1041 TAD TM1 1241 002307 3712 DCA I P2 1242 002310 5677 JMP I SWSUBR 1243 002311 0000 P1, 0 1244 002312 0000 P2, 0 1245 1246 002313 0000 STARTX, 0 1247 002314 1413 TAD I LXR /ANYTHING LEFT? 1248 002315 7450 SNA 1249 002316 5713 JMP I STARTX /NO.. TAKE EMPTY RETURN 1250 002317 7410 SKP 1251 002320 1413 ADGTLP, TAD I LXR 1252 002321 1367 TAD (-270 1253 002322 7100 CLL /SEE IF THIS IS A DIGIT 1254 002323 1076 TAD [10 1255 002324 7420 SNL 1256 002325 5337 JMP AONUM /NO.. GET OUT 1257 002326 3042 DCA TMP1 1258 002327 2047 ISZ DIGFLG 1259 002330 4341 JMS ROT2 1260 002331 4341 JMS ROT2 1261 002332 4341 JMS ROT2 1262 002333 1021 TAD TEMP2 1263 002334 1042 TAD TMP1 1264 002335 3021 DCA TEMP2 1265 002336 5320 JMP ADGTLP /KEEP LOOKING 1266 002337 2313 AONUM, ISZ STARTX 1267 002340 5713 JMP I STARTX 1268 1269 002341 0000 ROT2, 0 1270 002342 1021 TAD TEMP2 1271 002343 7104 CLL RAL /WE NEED THIS BECAUSE THE HANDLER 1272 002344 3021 DCA TEMP2 /WIPED THE FIRST COPY (MAYBE!!!) 1273 002345 1040 TAD TEMP1 1274 002346 7004 RAL 1275 002347 3040 DCA TEMP1 1276 002350 5741 JMP I ROT2 1277 002367 7510 PAGE 002370 0003 002371 0400 002372 1600 002373 0530 002374 0460 002375 1603 002376 0475 002377 0545 1278 *2400 /LOADS INTO 400 ON TOP OF SAVE1A 1279 002400 1777 SORTED, TAD I (1600 1280 002401 7001 IAC 1281 002402 7450 SNA /IS THERE ONLY ONE ITEM IN THE LIST? 1282 002403 5257 JMP MERGED /YES - DON'T COMPRESS FURTHER 1283 002404 3040 DCA TEMP1 1284 002405 1376 TAD (1603 1285 002406 3014 DCA X1 1286 002407 1375 TAD (1606 1287 002410 3013 DCA LXR 1288 /NOW CHECK THE SORTED FILE FOR CONSISTENCY 1289 /OVERLAPPING SEGMENTS ARE ERRORS, 1290 /ABUTTING SEGMENTS ARE TO BE CONDENSED IN 1291 /THE INTERESTS OF SPEED 1292 002411 1413 MRGLP, TAD I LXR 1293 002412 7041 CIA 1294 002413 1414 TAD I X1 1295 002414 7640 SZA CLA 1296 002415 5251 JMP NOCMPR /DIFFERENT FIELDS - INCOMPARABLE 1297 002416 2014 ISZ X1 1298 002417 1414 TAD I X1 1299 002420 7041 CIA 1300 002421 7100 CLL 1301 002422 1413 TAD I LXR 1302 002423 7650 SNA CLA 1303 002424 5236 JMP BUTTNG /UPPER LIMIT(2)=LOWER LIMIT(1) - ABUTTING SEGMENTS 1304 002425 7630 SZL CLA 1305 002426 5254 JMP NXTONE /UPPER LIM(2) LOWER LIM(1) - ERROR 1307 002430 4500 JMS I [PRMESG 1308 002431 0201 TEXT /BAD ARGS/ 002432 0440 002433 0122 002434 0723 002435 0000 1309 002436 7240 BUTTNG, CLA CMA 1310 002437 1014 TAD X1 1311 002440 3014 DCA X1 1312 002441 1413 TAD I LXR 1313 002442 3414 DCA I X1 /SET UPPER LIM(2) = UPPER LIM(1) 1314 002443 1014 TAD X1 1315 002444 1374 TAD (-1777 1316 002445 7640 SZA CLA 1317 002446 5241 JMP .-5 /AND COMPRESS OUT THE LOWER ENTRY 1318 002447 2777 ISZ I (1600 /DECREMENT THE ENTRY COUNT (CAN'T OVERFLOW) 1319 002450 5200 JMP SORTED /START OVER FROM BEGINNING 1320 1321 002451 2014 NOCMPR, ISZ X1 1322 002452 2014 ISZ X1 1323 002453 2013 ISZ LXR 1324 002454 2013 NXTONE, ISZ LXR 1325 002455 2040 ISZ TEMP1 1326 002456 5211 JMP MRGLP /NOW ALL THAT REMAINS IS TO TRANSFORM OUR TRIPLETS 1327 /INTO THE FORMAT WHICH THE RUN LOADER EXPECTS; I.E. 1328 /DEVICE-HANDLER ARGUMENTS 1329 002457 1376 MERGED, TAD (1603 1330 002460 3013 DCA LXR 1331 002461 1376 TAD (1603 1332 002462 3014 DCA X1 1333 002463 1776 TAD I (1603 1334 002464 0373 AND (1777 1335 002465 1372 TAD (6000 1336 002466 3776 DCA I (1603 /INITIALIZE STATUS BITS TO NO OVERLOADS 1337 002467 1777 TAD I (1600 1338 002470 3040 DCA TEMP1 1339 002471 1413 MERGLP, TAD I LXR 1340 002472 3021 DCA TEMP2 1341 002473 1413 TAD I LXR 1342 002474 0371 AND (7400 1343 002475 3042 DCA TMP1 1344 002476 1042 TAD TMP1 1345 002477 3414 DCA I X1 /STORE ADDRESS 1346 002500 1042 TAD TMP1 1347 002501 7041 CIA 1348 002502 1413 TAD I LXR /FORM UPPER LIM - LOWER LIM 1349 002503 7112 CLL RTR 1350 002504 7012 RTR 1351 002505 1021 TAD TEMP2 /ADD IN FIELD 1352 002506 7004 RAL 1353 002507 7006 RTL /ROTATE WHOLE MESS INTO PLACE 1354 002510 3414 DCA I X1 1355 002511 1042 TAD TMP1 1356 002512 7104 CLL RAL 1357 002513 7730 SZL SPA CLA /IS THE LOWER LIMIT < 2000? 1358 002514 5326 JMP NXTSEG /NO 1359 002515 1021 TAD TEMP2 1360 002516 7010 RAR 1361 002517 7640 SZA CLA /YES- IS THE FIELD 0 OR 1? 1362 002520 5326 JMP NXTSEG /NO 1363 002521 7420 SNL 1364 002522 7001 IAC 1365 002523 7072 CMA CML RTR 1366 002524 0776 AND I (1603 /AND OUT THE PROPER OVERLOAD BIT 1367 002525 3776 DCA I (1603 1368 002526 2040 NXTSEG, ISZ TEMP1 1369 002527 5271 JMP MERGLP 1370 002530 1370 MOVECB, TAD (1577 1371 002531 3013 DCA LXR 1372 002532 1367 TAD (577 1373 002533 3014 DCA X1 1374 002534 1110 TAD [7600 1375 002535 3040 DCA TEMP1 1376 002536 6211 CBMOVE, CDF 10 /FINAL CODE TO MOVE NEW CONTROL BLOCK 1377 002537 1413 TAD I LXR /INTO PAGE 600 OF FIELD 0 1378 002540 6201 CDF 0 1379 002541 3414 DCA I X1 1380 002542 2040 ISZ TEMP1 1381 002543 5336 JMP CBMOVE 1382 002544 5766 JMP I (SAVE3 /EXIT TO SAVE PROCESSOR 1383 1384 002545 0000 SGETOUT,0 /REPLACES "GETOUT" WHICH WE'VE STORED OVER 1385 002546 1567 TAD I [JSBITS 1386 002547 7004 RAL /ONLY PERFORMS THOSE FUNCTIONS THAT "SAVE" NEEDS 1387 002550 7710 SPA CLA 1388 002551 5745 JMP I SGETOUT 1389 002552 6212 CIF 10 1390 002553 4422 JMS I SYSTEM 1391 002554 0011 11 1392 002555 5745 DECIMB, JMP I SGETOUT /DECIMB ONLY CALLED BY NEXT PAGE 1393 /PART OF NEXT PAGE'S ROUTINE: 1394 002556 1035 TAD NM2 /ALL NEW FOR V3D 1395 002557 1037 TAD NM4 /ONLY ALLOW 2 CHARS FOR MM 1396 002560 7650 SNA CLA 1397 002561 2355 ISZ DECIMB 1398 002562 1034 TAD NM1 1399 002563 7012 RTR 1400 002564 7012 RTR 1401 002565 5755 JMP I DECIMB 1402 002566 1405 PAGE 002567 0577 002570 1577 002571 7400 002572 6000 002573 1777 002574 6001 002575 1606 002576 1603 002577 1600 1403 *2600 /DATE PROCESSOR - LOADS IN 400, RUNS IN 600 1404 002600 4302 DATEXX, JMS DECIM 1405 002601 3201 NUM2, DCA NUM2 1406 002602 1201 TAD NUM2 1407 002603 1304 TAD M40 1408 002604 7700 SMA CLA 1409 002605 5327 JMP BADNUM /DAY > 31 1410 002606 4425 JMS I GNAME 1411 002607 0030 L30, 30 /NOTHING FOUND WILL GIVE ERROR LATER 1412 / DCA NUM1 /NUM1 IS INITIALLY 0 1413 002610 2371 NEWLUP, ISZ MONPTR 1414 002611 2340 ISZ NUM1 1415 002612 1771 TAD I MONPTR 1416 002613 2371 ISZ MONPTR 1417 002614 7500 SMA 1418 002615 5327 JMP BADNUM /SYMBOLIC MONTH NOT FOUND 1419 002616 1034 TAD NM1 1420 002617 7650 SNA CLA /SKIP IF FIRST 2 LETTERS DON'T MATCH 1421 002620 1035 TAD NM2 1422 002621 1771 TAD I MONPTR 1423 002622 7640 SZA CLA 1424 002623 5210 JMP NEWLUP /SECOND 2 LETTERS DON'T MATCH 1425 /*** TEST DELIMETER HERE 1426 002624 1340 TAD NUM1 1427 002625 7106 CLL RTL 1428 002626 7006 RTL 1429 002627 7004 RAL 1430 002630 1201 TAD NUM2 1431 002631 7006 RTL 1432 002632 7004 RAL 1433 002633 3201 DCA NUM2 1434 002634 3267 DCA DDELIM /MAKE END-OF-LINE THE DELIMITER 1435 002635 4302 JMS DECIM 1436 002636 1377 TAD (-106 /SCALE DOWN TO RANGE 1970-1999 1437 002637 7510 SPA 1438 002640 5327 JMP BADNUM /DIDN'T MAKE THE RANGE 1439 002641 3340 DCA NUM1 1440 002642 1340 TAD NUM1 1441 002643 0207 AND L30 /ISOLATE EXTENSION DATE BITS 1442 002644 7106 CLL RTL 1443 002645 7006 RTL 1444 002646 3041 DCA TM1 1445 002647 1776 TAD I (BIPCCL 1446 002650 0263 AND L7177 /STORE THEM INTO BITS RESERVED FOR THIS PURPOSE 1447 002651 1041 TAD TM1 1448 002652 3776 TSLUP, DCA I (BIPCCL 1449 002653 1340 TAD NUM1 1450 002654 0120 AND [7 1451 002655 1201 TAD NUM2 /COMBINE WITH MONTH AND DAY 1452 002656 6211 CDF 10 1453 002657 3775 DCA I (MDATE /STORE IN SYSTEM DATE CELL 1454 002660 6041 TSF /7605 SETS THE DF 1455 002661 4263 JMS L7177 /TIME OUT A BIT 1456 002662 5453 JMP I [7605 /IN CASE RUNNING UNDER BATCH 1457 002663 7177 L7177, 7177 /JMS IS LONGER THAN JMP 1458 002664 2267 ISZ DDELIM /DDELIM IS 0 AT END 1459 002665 4252 JMS TSLUP /WAIT FOR TELETYPE TO DIE DOWN (RF08) 1460 002666 5453 JMP I [7605 /RETURN TO MONITOR 1461 002667 7523 DDELIM, -"- 1462 1463 /WOULD LIKE TO BRANCH TO CCLSW-1 IF DATE ENDED WITH ALTMODE 1464 1465 002670 0000 CNV, 0 1466 002671 0165 AND [77 1467 002672 7450 SNA 1468 002673 5300 JMP NUL 1469 002674 1374 TAD (-60 1470 002675 7510 SPA 1471 002676 5327 JMP BADNUM 1472 002677 5670 JMP I CNV 1473 002700 1041 NUL, TAD TM1 1474 002701 5325 JMP GODE 1475 1476 002702 0000 DECIM, 0 1477 002703 4425 JMS I GNAME 1478 002704 7740 M40, -40 /NOTHING THERE (LOGIC WILL CAUSE ERROR LATER) 1479 002705 1031 TAD TMP 1480 002706 1267 TAD DDELIM /COMPARE AGAINST DESIRED DELIMETER 1481 002707 7650 SNA CLA /DASH OR NULL 1482 002710 4773 JMS I (DECIMB-2400+400 1483 002711 5327 JMP BADNUM /DELIMETER BAD 1484 002712 7012 RTR 1485 002713 4270 JMS CNV 1486 002714 3041 DCA TM1 1487 002715 1041 TAD TM1 1488 002716 7106 CLL RTL 1489 002717 1041 TAD TM1 1490 002720 7004 RAL 1491 002721 3021 DCA TEMP2 1492 002722 1034 TAD NM1 1493 002723 4270 JMS CNV 1494 002724 1021 TAD TEMP2 1495 002725 7440 GODE, SZA 1496 002726 5702 JMP I DECIM 1497 002727 7200 BADNUM, CLA /CRAP IN AC 1498 002730 1053 TAD [7605 1499 002731 3033 DCA ERRET 1500 002732 4500 JMS I [PRMESG 1501 002733 0201 TEXT /BAD DATE/ 002734 0440 002735 0401 002736 2405 002737 0000 1502 002740 0000 NUM1, 0 /MONTH NUMBER (MUST BE 0 INITIALLY) 1503 002741 6577 MONS, -1201 /JAN 1504 002742 6200 -1600 1505 002743 7173 -0605 /FEB 1506 002744 7600 -0200 1507 002745 6277 -1501 /MAR 1508 002746 5600 -2200 1509 002747 7660 -0120 /APR 1510 002750 5600 -2200 1511 002751 6277 -1501 /MAY 1512 002752 4700 -3100 1513 002753 6553 -1225 /JUN 1514 002754 6200 -1600 1515 002755 6553 -1225 /JUL 1516 002756 6400 -1400 1517 002757 7653 -0125 /AUG 1518 002760 7100 -0700 1519 002761 5473 -2305 /SEP 1520 002762 6000 -2000 1521 002763 6075 -1703 /OCT 1522 002764 5400 -2400 1523 002765 6161 -1617 /NOV 1524 002766 5200 -2600 1525 002767 7373 -0405 /DEC 1526 002770 7500 -0300 1527 002771 0740 MONPTR, MONS-2600+600-1 /RELOCATES TO PAGE 600 1528 /MUST BE POSITIVE 1529 1530 002773 0555 PAGE 002774 7720 002775 7666 002776 7777 002777 7672 1531 *3000 /MONITOR ERROR PROCESSOR - LOADS INTO 11400 1532 003000 0400 DLYLPX, AND I 0 1533 003001 7600 D7600, 7600 1534 003002 1057 TAD MERRNO 1535 003003 7104 CLL RAL 1536 003004 2777 ISZ I (ZERO-1400 1537 003005 2777 ISZ I (ZERO-1400 /V3C 1538 003006 2777 ISZ I (ZERO-1400 1539 003007 5200 JMP DLYLPX /WAIT FOR TELEPRINTER (WITHOUT CDF'S) 1540 003010 7450 SNA 1541 003011 5305 JMP USRERR 1542 003012 7104 CLL RAL 1543 003013 7006 RTL 1544 003014 7006 RTL 1545 003015 1376 TAD (6040 1546 003016 3775 DCA I (MERTYP-1400 1547 003017 1374 MERCMN, TAD (MERRXR-1400 1548 003020 4322 JMS EPRINT 1549 003021 1773 TAD I (FPUTX 1550 003022 7012 RTR 1551 003023 7010 RAR 1552 003024 0372 AND (7 1553 003025 1371 TAD (60 1554 003026 4313 JMS MERPCH 1555 003027 7344 CLA CLL CMA RAL 1556 003030 1770 TAD I (MONITO 1557 003031 7004 RAL 1558 003032 3041 DCA T1 1559 003033 1367 TAD (-4 1560 003034 3042 DCA T2 1561 003035 1041 MEROLP, TAD T1 1562 003036 7006 RTL 1563 003037 7004 RAL 1564 003040 3041 DCA T1 1565 003041 1041 TAD T1 1566 003042 0372 AND (7 1567 003043 1371 TAD (60 1568 003044 4313 JMS MERPCH 1569 003045 2042 ISZ T2 1570 003046 5235 JMP MEROLP 1571 003047 1057 TAD MERRNO 1572 003050 7104 CLL RAL 1573 003051 7450 SNA 1574 003052 5267 JMP NOEXPL /NO EXPLANATION FOR USER ERRORS 1575 003053 7110 CLL RAR 1576 003054 1366 TAD (EXPLTBL-1401 /PRINT EXPLANATION 1577 003055 3041 DCA T1 /GET ADDRESS INTO MESSAGE TABLE 1578 003056 1365 TAD (240 1579 003057 4313 JMS MERPCH 1580 003060 1364 TAD ("( 1581 003061 4313 JMS MERPCH 1582 003062 1441 TAD I T1 /GET ADDRESS OF MESSAGE 1583 003063 4322 JMS EPRINT 1584 003064 1363 TAD (") 1585 003065 4313 JMS MERPCH 1586 003066 1057 TAD MERRNO 1587 003067 1362 NOEXPL, TAD (3773 1588 003070 7710 SPA CLA 1589 003071 7240 CLA CMA 1590 003072 3761 DCA I (7700 1591 003073 3007 DCA OLDT9 1592 003074 7330 CLA CLL CML RAR 1593 003075 3057 DCA MERRNO 1594 003076 6201 CDF 0 1595 003077 1760 TAD I (JSBITS 1596 003100 0357 AND (6777 1597 003101 1356 TAD (1000 1598 003102 3760 DCA I (JSBITS /SET THE CURRENT JOB UNSTARTABLE 1599 003103 6203 CDF CIF 0 1600 003104 5601 JMP I D7600 1601 003105 7300 USRERR, CLA CLL 1602 003106 4755 JMS I (FGET 1603 003107 1354 TAD (4060 1604 003110 3753 DCA I (UERTYP-1400 1605 003111 1352 TAD (UERRXR-MERRXR 1606 003112 5217 JMP MERCMN 1607 003113 0000 MERPCH, 0 1608 003114 6046 TLS 1609 003115 6041 TSF 1610 003116 5315 JMP .-1 1611 003117 7200 CLA 1612 003120 5713 JMP I MERPCH 1613 003121 0000 ZERO, 0 1614 003122 0000 EPRINT, 0 1615 003123 3042 DCA T2 1616 003124 1442 EPRLUP, TAD I T2 1617 003125 7012 RTR 1618 003126 7012 RTR 1619 003127 7012 RTR 1620 003130 4335 JMS EPR 1621 003131 1442 TAD I T2 1622 003132 4335 JMS EPR 1623 003133 2042 ISZ T2 1624 003134 5324 JMP EPRLUP 1625 1626 003135 0000 EPR, 0 1627 003136 0351 AND (77 1628 003137 7450 SNA 1629 003140 5722 JMP I EPRINT 1630 003141 1365 TAD (240 1631 003142 0351 AND (77 1632 003143 1365 TAD (240 1633 003144 4313 JMS MERPCH 1634 003145 5735 JMP I EPR 1635 003151 0077 PAGE 003152 0012 003153 1617 003154 4060 003155 0220 003156 1000 003157 6777 003160 7746 003161 7700 003162 3773 003163 0251 003164 0250 003165 0240 003166 1622 003167 7774 003170 0200 003171 0060 003172 0007 003173 0241 003174 1600 003175 1607 003176 6040 003177 1521 1636 *3200 /LOADS INTO 1600 1637 1638 003200 1517 MERRXR, TEXT \MONITOR ERROR 0 AT \ 003201 1611 003202 2417 003203 2240 003204 0522 003205 2217 003206 2240 003207 6040 003210 0124 003211 4000 1639 MERTYP=MERRXR+7 1640 1641 003212 2523 UERRXR, TEXT \USER ERROR 0 AT \ 003213 0522 003214 4005 003215 2222 003216 1722 003217 4060 003220 4001 003221 2440 003222 0000 1642 UERTYP=UERRXR+5 1643 1644 003223 1632 EXPLTBL,MON1-1400 1645 003224 1640 MON2-1400 1646 003225 1652 MON3-1400 1647 003226 1670 MON4-1400 1648 003227 1701 MON5-1400 1649 003230 1712 MON6-1400 1650 003231 1724 MON7-1400 1651 1652 003232 0314 MON1, TEXT \CLOSE ERROR\ 003233 1723 003234 0540 003235 0522 003236 2217 003237 2200 1653 003240 0411 MON2, TEXT \DIRECTORY I/O ERROR\ 003241 2205 003242 0324 003243 1722 003244 3140 003245 1157 003246 1740 003247 0522 003250 2217 003251 2200 1654 003252 0405 MON3, TEXT \DEVICE HANDLER NOT IN CORE\ 003253 2611 003254 0305 003255 4010 003256 0116 003257 0414 003260 0522 003261 4016 003262 1724 003263 4011 003264 1640 003265 0317 003266 2205 003267 0000 1655 003270 1114 MON4, TEXT \ILLEGAL USR CALL\ 003271 1405 003272 0701 003273 1440 003274 2523 003275 2240 003276 0301 003277 1414 003300 0000 1656 003301 1157 MON5, TEXT \I/O ERROR ON SYS:\ 003302 1740 003303 0522 003304 2217 003305 2240 003306 1716 003307 4023 003310 3123 003311 7200 1657 003312 0411 MON6, TEXT \DIRECTORY OVERFLOW\ 003313 2205 003314 0324 003315 1722 003316 3140 003317 1726 003320 0522 003321 0614 003322 1727 003323 0000 1658 003324 2205 MON7, TEXT \RESERVED\ 003325 2305 003326 2226 003327 0504 003330 0000 1659 /EXECUTION TIME LOADER FOR MONITOR "CHAIN" COMMAND 1660 *3400 /EXECUTES IN FIELD 0 IN PAGE 7400 1661 003400 3266 MCHNX, DCA MCHREC /STORE STARTING RECORD # 1662 003401 1266 TAD MCHREC 1663 003402 3777 DCA I (SOFSET /V3D SAVE STARTING ADDRESS 1664 003403 6212 CIF 10 1665 003404 4776 JMS I (200 1666 003405 0013 13 /RESET ALL DEVICE ASSIGNMENTS 1667 003406 0000 0 /BUT DON'T CLEAR OUTPUT FILES 1668 003407 6212 CIF 10 1669 003410 4776 JMS I (200 1670 003411 0011 11 /KICK MONITOR OUT AND RESTORE CORE IF NECESSARY 1671 003412 4262 JMS MCHRD /PARAMETERS PRESET TO READ CONTROL BLOCK INT0 7200 1672 003413 1775 TAD I (7200 /TEST FOR SAVE FILE! 1673 003414 7040 CMA /TEST FOR VALID CCB 1674 003415 0374 AND (7740 1675 003416 7640 SZA CLA 1676 003417 5306 JMP CHERR 1677 003420 1773 TAD I (7201 1678 003421 3772 DCA I (MSTCDF /TRANSFER INFORMATION FROM CONTROL BLOCK 1679 003422 7201 CLA IAC 1680 003423 1771 TAD I (7202 1681 003424 3770 DCA I (MSTADR /TO PAGE 7600 1682 003425 1767 TAD I (7203 1683 003426 1366 TAD (1000 1684 003427 3765 DCA I (JSBITS 1685 003430 1364 TAD (7204 1686 003431 3304 DCA MCHT1 1687 003432 1305 TAD MCHFJM 1688 003433 3763 DCA I (MSWITC 1689 003434 1362 TAD (TCF 1690 003435 3761 DCA I (MSTCDF+1 1691 003436 2775 MCHN1, ISZ I (7200 1692 003437 5252 JMP MCHN2 1693 003440 1704 TAD I MCHT1 1694 003441 3760 DCA I (MREAD+2 1695 003442 2304 ISZ MCHT1 1696 003443 1704 TAD I MCHT1 1697 003444 3757 DCA I (MREAD+1 1698 003445 1266 TAD MCHREC 1699 003446 3756 DCA I (MREAD+3 1700 003447 1355 TAD (SHNDLR 1701 003450 3754 DCA I (MREAD-1 1702 003451 5753 JMP I (MREAD 1703 003452 1704 MCHN2, TAD I MCHT1 1704 003453 3265 DCA MCHADR /SET UP COMMAND TO READ NEXT SEGMENT 1705 003454 2304 ISZ MCHT1 1706 003455 1704 TAD I MCHT1 1707 003456 3264 DCA MCHCTL 1708 003457 4262 JMS MCHRD /READ IT 1709 003460 2304 ISZ MCHT1 1710 003461 5236 JMP MCHN1 /LOOP ON NUMBER OF SEGMENTS 1711 003462 0000 MCHRD, 0 1712 003463 4755 JMS I (SHNDLR 1713 003464 0101 MCHCTL, 0101 /1 RECORD INTO FIELD 0 STARTING FORWARDS 1714 003465 7200 MCHADR, 7200 1715 003466 0000 MCHREC, 0 1716 003467 5306 JMP CHERR /CHAIN ERROR 1717 003470 1264 TAD MCHCTL 1718 003471 7112 MCHBMP, CLL RTR 1719 003472 7012 RTR 1720 003473 7012 RTR 1721 003474 0352 AND (37 1722 003475 7450 SNA /V3C 1723 003476 1351 TAD (40 /0 MEANS FULL 4K READ 1724 003477 7001 IAC 1725 003500 7110 CLL RAR 1726 003501 1266 TAD MCHREC 1727 003502 3266 DCA MCHREC 1728 003503 5662 JMP I MCHRD 1729 003504 0000 MCHT1, 0 1730 003505 5372 MCHFJM, MSTCDF&177+5200 /"JMP MSTCDF" 1731 1732 003506 2323 CHERR, ISZ CHERR1 1733 003507 5306 JMP CHERR /LET TTY DIE DOWN 1734 003510 2324 ISZ CHERR2 1735 003511 5306 JMP CHERR 1736 003512 1325 CHTADC, TAD CHARS 1737 003513 7450 SNA 1738 003514 5750 JMP I (7600 /DONE..BACK TO MONITOR 1739 003515 6046 TLS 1740 003516 6041 TSF 1741 003517 5316 JMP .-1 1742 003520 7200 CLA 1743 003521 2312 ISZ CHTADC /NEXT LETTER 1744 003522 5312 JMP CHTADC 1745 003523 0000 CHERR1, 0 1746 003524 7772 CHERR2, -6 1747 003525 0303 CHARS, "C;"H;"A;"I;"N;" ;"E;"R;"R;215;212;0 003526 0310 003527 0301 003530 0311 003531 0316 003532 0240 003533 0305 003534 0322 003535 0322 003536 0215 003537 0212 003540 0000 1748 003550 7600 PAGE 003551 0040 003552 0037 003553 7757 003554 7756 003555 7607 003556 7762 003557 7760 003560 7761 003561 7773 003562 6042 003563 7764 003564 7204 003565 7746 003566 1000 003567 7203 003570 7775 003571 7202 003572 7772 003573 7201 003574 7740 003575 7200 003576 0200 003577 7747 1749 *4000 /SYSTEM GENERATOR - WRITES STUFF OUT USING SHNDLR 1750 WRITE=JMS I SYSHND 1751 004000 4274 JMS SYSSWP /SWAP SYSTEM DEVICE HANDLER INTO 7600 1752 1753 004001 4724 WRITE; 4200; 7400; 0; JMP BERR /BOOTSTRAP 004002 4200 004003 7400 004004 0000 004005 5266 1754 004006 1020 TAD RBFLAG 1755 004007 7640 SZA CLA 1756 004010 5216 JMP .+6 1757 004011 4724 WRITE; 4210; DCOUNT; 01; JMP BERR /DIRECTORY 004012 4210 004013 1400 004014 0001 004015 5266 1758 004016 4724 WRITE; 5001; 0000; 07; JMP BERR /KEYBOARD MONITOR 004017 5001 004020 0000 004021 0007 004022 5266 1759 004023 4724 WRITE; 4610; 0000; MONTOR; JMP BERR /USR 004024 4610 004025 0000 004026 0013 004027 5266 1760 004030 4724 WRITE; 4111; 3400; MEOVLY; JMP BERR /"ENTER" OVERLAY 004031 4111 004032 3400 004033 0026 004034 5266 1761 004035 4724 WRITE; 4701; 2000; MSOVLY; JMP BERR /SAVE OVERLAY, 004036 4701 004037 2000 004040 0054 004041 5266 1762 /ERROR ROUTINE AND "CHAIN" 1763 004042 1020 TAD RBFLAG 1764 004043 7640 SZA CLA 1765 004044 5257 JMP .+13 1766 004045 4724 WRITE; 4101; LDRCTL; MFREE; JMP BERR /ABSLDR CONTROL BLOCK 004046 4101 004047 4113 004050 0070 004051 5266 1767 004052 4724 WRITE; 5010; 2000;MFREE+1; JMP BERR /ABSLDR 004053 5010 004054 2000 004055 0071 004056 5266 1768 004057 4777 JMS I (4200 /OUTPUT THE DEVICE HANDLERS 1769 004060 5266 JMP BERR 1770 004061 4274 JMS SYSSWP /SWAP BACK PAGE 7600 1771 004062 7240 CLA CMA 1772 004063 7402 HLT 1773 004064 7200 CLA 1774 004065 5666 JMP I .+1 1775 004066 7600 BERR, 7600 1776 004067 4274 JMS SYSSWP 1777 004070 7402 HLT 1778 004071 5270 JMP .-1 1779 004072 6600 W6600, 6600 1780 004073 7600 W7600, 7600 1781 004074 0000 SYSSWP, 0 1782 004075 1272 TAD W6600 1783 004076 3321 DCA SYTM1 1784 004077 1273 TAD W7600 1785 004100 3322 DCA SYTM2 1786 004101 1721 SWAPLP, TAD I SYTM1 1787 004102 3323 DCA TMSY 1788 004103 1722 TAD I SYTM2 1789 004104 3721 DCA I SYTM1 1790 004105 1323 TAD TMSY 1791 004106 3722 DCA I SYTM2 1792 004107 2321 ISZ SYTM1 1793 004110 2322 ISZ SYTM2 1794 004111 5301 JMP SWAPLP 1795 004112 5674 JMP I SYSSWP 1796 1797 /CONTROL BLOCK FOR ABSOLUTE LOADER 1798 004113 7777 LDRCTL, 7777 /ONE CONTIGUOUS LOAD 1799 004114 6213 6213 /STARTING ADDRESS IN FIELD 1 1800 004115 2000 2000 /STARTING LOCATION=12000 1801 004116 6003 6003 /DOES NOT LOAD OVER EITHER MONITOR AREA 1802 /ALSO DOES NOT USE THESE AREAS AT COMMAND TIME - TRUE 1803 /ONLY FOR FIRST CALL TO COMMAND DECODER 1804 004117 2000 2000 /FIRST(AND ONLY) SEGMENT STARTS AT 2000 1805 004120 1010 1010 /IN FIELD 1 AND IS 10 PAGES LONG 1806 1807 IFNZRO LDRCTL-4113 1808 1809 004121 0000 SYTM1, 0 1810 004122 0000 SYTM2, 0 1811 004123 0000 TMSY, 0 1812 004124 7607 SYSHND, 7607 1813 004177 4200 PAGE 1814 *7400 1815 NOPUNCH 1816 *7600 1817 ENPUNCH 1818 /UPPER PAGE OF FIELD 1 - CHOCK FULL OF GOODIES 1819 /LIKE THOUSANDS OF TABLES AND THE MONITOR CALL LOCATION 1820 1821 007600 0000 MOFILE, ZBLOCK 17 /OUTPUT FILE TABLE - 7600-7616 (3 ENTRIES MAX) 007601 0000 007602 0000 007603 0000 007604 0000 007605 0000 007606 0000 007607 0000 007610 0000 007611 0000 007612 0000 007613 0000 007614 0000 007615 0000 007616 0000 1822 /5 WORDS PER ENTRY - DEVICE # AND FILE NAME 1823 007617 0000 MIFILE, ZBLOCK 24 /INPUT FILE TABLE - 7617-7642 (10 ENTRIES MAX) 007620 0000 007621 0000 007622 0000 007623 0000 007624 0000 007625 0000 007626 0000 007627 0000 007630 0000 007631 0000 007632 0000 007633 0000 007634 0000 007635 0000 007636 0000 007637 0000 007640 0000 007641 0000 007642 0000 1824 /2 WORDS PER ENTRY - DEVICE # AND RECORD # 1825 1826 /LAST WORD IN TABLE CONTAINS TERMINATION INDICATOR 1827 /(0 FOR CR, 1 FOR ALTMODE) AND HIGH ORDER 1828 /PART OF NUMERICAL ARGUMENT 1829 1830 007643 0000 MPARAM, ZBLOCK 4 /PARAMETER TABLE - 7643-7646 007644 0000 007645 0000 007646 0000 1831 /FIRST 3 WORDS - MASK OF SWITCHES(A-Z,0-9). 1832 /FOURTH WORD - CONTAINS THE LOW ORDER BITS OF 1833 /THE NUMERICAL ARGUMENT 1834 1835 1836 1837 /TABLE OF DEVICE HANDLERS PRESENTLY IN CORE 1838 007647 7607 DVHNDL, 7607;7607;0;0;0;0;0 007650 7607 007651 0000 007652 0000 007653 0000 007654 0000 007655 0000 1839 007656 0000 0;0;0;0;0;0;0;0 007657 0000 007660 0000 007661 0000 007662 0000 007663 0000 007664 0000 007665 0000 1840 007666 0000 MDATE, 0 /HOLDS THE CURRENT DATE- 4 BIT MONTH, 1841 /5 BIT DAY, 3 BIT YEAR FROM 1970 1842 007667 6202 MGET, CIF 0 1843 007670 4207 JMS SHNDLR /INST FIELD IS 0 1844 007671 1000 1000 /READ 4 RECORDS INTO FIELD 0 1845 007672 0000 0 /LOCATIONS 0-1777 1846 007673 0007 7 /KEYBOARD MONITOR FOLLOWS DIRECTORY 1847 007674 7746 PJSBTS, JSBITS /SERVES AS A HALT (WATCH IT!) 1848 007675 6203 SCDCIF, CDF CIF 0 1849 007676 5677 JMP I .+1 1850 007677 0400 KMNTRY /V3D GETS CHANGED TO INIT 1851 007700 0000 MCALL1, 0 1852 007701 3340 DCA MARG1 /SAVE AC AS IT MAY CONTAIN AN ARGUMENT 1853 007702 6214 RDF /GET CALLING FIELD 1854 007703 1275 TAD SCDCIF 1855 007704 3336 DCA SMCIF 1856 007705 6201 CDF 0 1857 007706 1674 TAD I PJSBTS 1858 007707 7010 RAR 1859 007710 6211 CDF 10 1860 007711 7630 SZL CLA /DOES JOB USE LOCS 10000-11777? 1861 007712 5321 JMP MONRD /NO - DONT SAVE THEM 1862 007713 6202 CIF 0 1863 007714 4207 JMS SHNDLR 1864 007715 5010 5010 1865 007716 0000 0 1866 007717 0027 MTEMP 1867 007720 7402 HLT 1868 007721 6202 MONRD, CIF 0 1869 007722 4207 JMS SHNDLR 1870 007723 0610 610 1871 007724 0000 0 1872 007725 0013 MONTOR 1873 007726 7402 SCOPE, HLT /BIT 4 IS A 1 IF CONSOLE IS A SCOPE 1874 007727 5020 JMP MSTART /START THE MONITOR UP IN PAGE 0 1875 007730 6202 MRETRN, CIF 0 1876 007731 4207 JMS SHNDLR 1877 007732 1010 1010 /READ 10 RECS INTO FIELD 1 1878 007733 0000 0 1879 007734 0027 MTEMP /TEMP REGION ON SYS 1880 007735 7402 HLT /SYS HAS PROBLEMS 1881 007736 0000 SMCIF, 0 1882 007737 5700 JMP I MCALL1 1883 007740 0000 MARG1, 0 1884 /TABLE OF USER DEVICE NAMES 1885 /ALSO USED BY SYSTEM ODT 1886 1887 007741 0000 UDNAME, 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0 007742 0000 007743 0000 007744 0000 007745 0000 007746 0000 007747 0000 007750 0000 007751 0000 007752 0000 007753 0000 007754 0000 007755 0000 007756 0000 007757 0000 1888 007760 0000 DCB, ZBLOCK 17 /DEVICE CONTROL BLOCK - SET IN "CONFIG" 007761 0000 007762 0000 007763 0000 007764 0000 007765 0000 007766 0000 007767 0000 007770 0000 007771 0000 007772 0000 007773 0000 007774 0000 007775 0000 007776 0000 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 /******************************************************** 1899 / MAP OF SYSTEM DEVICE AS OF 2/21/73 1900 /******************************************************** 1901 / * 256 WORD RECORDS * 1902 /******************************************************** 1903 1904 / RECORDS CONTENTS 1905 / ------- -------- 1906 1907 / 0 MONITOR BOOTSTRAP 1908 / 1- 6 SYSTEM DIRECTORIES 1909 / 7-12 KEYBOARD MONITOR 1910 / 13-15 I/O MONITOR(CALLABLE MONITOR) 1911 / 16-25 DEVICE HANDLER RECORDS 1912 / 26 MONITOR "ENTER" OVERLAY 1913 / 27-50 MONITOR SCRATCH AREA FOR SAVING CORE 1914 / 51-53 COMMAND DECODER 1915 / 54-55 "SAVE WITH ARGUMENTS" AND "DATE" OVERLAYS 1916 / 56 MONITOR ERROR ROUTINE 1917 / 57 "CHAIN" PROCESSOR 1918 / 60-63 SYSTEM ODT 1919 / 64 RESERVED FOR EXPANSION 1920 /65 CCL REMINISCENSES 1921 / 66 USED BY TWO-PAGE SYS HANDLER 1922 / 67 USED BY CCL (CCL OVERLAY) 1923 / 70-END FILE STORAGE 1924 SHNDLR=7607 /ENTRY POINT TO SYSTEMS HANDLER 1925 1926 *6600 1927 NOPUNCH 1928 *7600 1929 ENPUNCH 1930 1931 /SYSTEM HANDLER AND FIELD 0 UPPER PAGE 1932 /INCLUDES BOOTSTRAP AND PART OF MONITOR CALL ROUTINE 1933 DVHORG=16 /DEVICE HANDLER RECORDS 1934 MTEMP=27 1935 MONTOR=13 1936 007600 4207 JMS SHNDLR 1937 007601 5000 5000 /SAVE MONITOR CORE - WRITE 5 RECORDS FROM FIELD 0 1938 007602 0000 0 /(LOCATIONS 0-1777) 1939 007603 0033 MTEMP+4 1940 007604 7602 7602 /TROUBLE WITH SYSTEM DEVICE 1941 007605 6213 CDF CIF 10 1942 007606 5267 JMP MGET /NOW GO READ IN THE KEYBOARD MONITOR 1943 *6744 /INFORMATION ABOUT CURRENT JOB 1944 NOPUNCH 1945 *7744 1946 ENPUNCH 1947 007744 6203 JFIELD, 6203 /A CDF CIF N INSTRUCTION TO START THE JOB 1948 007745 7600 JSTART, 7600 /THE STARTING ADDRESS 1949 007746 1000 JSBITS, 1000 /VARIOUS STATUS BITS - USED FOR OPTIMIZATION 1950 /BIT 4000 - JOB DID NOT LOAD INTO 00000-01777 1951 /BIT 2000 - JOB DID NOT LOAD INTO 10000-11777 1952 /BIT 1000 - JOB IS NOT RESTARTABLE 1953 /BIT 400 - DOESN'T DESTROY BATCH MONITOR 1954 /BIT 2 - JOB DOES NOT USE LOCS 00000-01777 1955 /BIT 1 - JOB DOES NOT USE LOCS 10000-11777 1956 007747 0000 SOFSET, 0 /FOR FUTURE(AND MAYBE PRESENT) USE 1957 1958 /DATA BREAK FILLERS FOR SYSTEM BOOTSTRAP 1959 007750 7750 7750 1960 007751 7751 7751 1961 007752 7752 7752 1962 007753 7753 7753 1963 007754 7754 7754 1964 007755 7755 7755 1965 /MONITOR PATCH TO HELP BLEEP LOADER 1966 007756 0000 0 /ADDRESS OF HANDLER FOR DEVICE USED 1967 007757 4756 MREAD, JMS I .-1 1968 007760 0000 0 1969 007761 0000 0 1970 007762 0000 0 1971 007763 7402 HLT 1972 007764 5372 MSWITC, JMP .+6 /ZEROED IF PG 7000 (HANDLER) MUST BE READ OVER 1973 007765 4207 JMS SHNDLR 1974 007766 0300 0300 1975 007767 7000 7000 /THIS AREA MODIFIED BY ODT 1976 007770 0035 MTEMP+6 1977 007771 7402 OS78, HLT /BIT 4 IS A 1 IF OS/78 IS RUNNING 1978 007772 6203 MSTCDF, CDF CIF 0 1979 007773 6042 TCF /EXIT WITH A CLEAR CONSCIENCE(ALSO A CLEAR FLAG) 1980 007774 5775 JMP I .+1 1981 007775 0000 MSTADR, 0 1982 007776 0000 SBLOCK, 0 1983 007777 0000 BIPCCL, 0 /MORE STATUS BITS. 1984 /BIT 1: 1=> BATCH IS IN PROGRESS 1985 /BITS 6-8: FIELD OF BATCH MONITOR 1986 /HIGHEST CORE FIELD USED BY OS/8 1987 /OR 0 TO MEAN OS/8 MAY USE ALL OF CORE 1988 *0 1989 000000 0003 VERSNO /OS/8 VERSION 3 1990 000001 7200 KMONER, CLA 1991 000002 1053 TAD [7605 1992 000003 3033 DCA ERRET 1993 000004 4500 JMS I [PRMESG 1994 000005 2331 TEXT /SYSTEM ERR/ 000006 2324 000007 0515 000010 4005 000011 2222 000012 0000 1995 1996 /THE FOLLOWING REGISTERS ARE SET TO VITAL INITIAL VALUES. TO ALTER 1997 /THESE VALUES IS TO BRING DISASTER DOWN UPON YOUR HEAD! 1998 1999 000013 1051 LXR, PMSRST-1 2000 000014 7764 X1, MSWITC /THESE TWO ARE USED AT INITIALIZATION. 2001 000015 1723 ADR1, RUN8-1 2002 000016 7523 ADR2, RUN8&177+7377 /USED DURING R, AND RUN COMMANDS 2003 XR, 2004 000017 0000 AMFLAG, 0 /1 MEANS SAW ALTMODE 2005 /MUST NOT MOVE FOR CCL AND BATCH 2006 2007 *20 2008 000020 0000 RBFLAG, 0 /MUST BE AT LOCATION 20 2009 000021 7771 TEMP2, -7 2010 000022 7700 SYSTEM, 7700 2011 000023 0200 PCH, PRINT 2012 000024 1200 GLINE, XGLINE 2013 000025 0211 GNAME, GETNAM 2014 000026 7607 DEVHND, 7607 2015 000027 5372 FUDJMP, MSTCDF&177+5200 2016 000030 6203 P6203, 6203 2017 000031 0321 TMP, PATCHLEV /MONITOR PATCH LEVEL MUST BE AT LOC 31 FOR CCL 2018 000032 1630 PGTOUT, GETOUT 2019 000033 0402 ERRET, PCRLF /MUST BE AT 33 FOR CCL 2020 2021 /THE FOLLOWING LOCS. ARE TEMPORARIES. HOWEVER, THERE IS NOW 2022 /VITAL ONCE ONLY CODE TO HELP THE BATCH PROCESSOR. THIS CODE IS 2023 /READ IN EVERY TIME THE KEYBOARD MONITOR IS RE-READ. 2024 2025 000034 0203 NM1, 203 /THIS MUST BE A 203! 2026 BATCH, /ENTRY TO READ NEW BATCH MONITOR 2027 000035 4562 NM2, JMS I [7607 /THE BATCH INITIALIZER ALTERS SOME VALUES 2028 000036 0610 NM3, 610 /IN THIS LIST...THIS ONE********** 2029 000037 0000 NM4, 0 /THIS ONE*****GETS ADDRESS OF BOS. 2030 000040 0013 TEMP1, 13 /******GETS RECORD OF BOS***** 2031 000041 7610 TM1, SKP CLA /ERROR. DON'T RUN BATCH 2032 000042 5046 TMP1, JMP BCHGO 2033 000043 3445 NMCT, DCA I KM1 /CLEAR BATCH FLAG. 2034 000044 5001 PN, JMP KMONER 2035 PRDSW, 2036 000045 7777 KM1, 7777 2037 BCHGO, 2038 000046 6203 RUNSW, CIF CDF 0 2039 000047 5450 DIGFLG, JMP I .+1 2040 000050 1005 SENTER, KMINIT /GETS ENTRY POINT (BOS) 2041 000051 1664 KRCHK, RCHK 2042 000053 7605 FIELD 1 000054 4000 000055 3700 000056 2020 000057 0070 000060 0603 000061 0600 000062 0434 000063 0067 000064 6003 000065 0244 000066 0100 000067 0336 000070 0334 000071 7001 000072 6670 000073 0212 000074 0215 000075 0403 000076 0010 000077 7700 000100 0330 000101 0306 000102 0564 000103 1754 000104 0527 000105 0300 000106 1676 000107 7404 000110 7600 000111 7402 000112 7401 000113 7403 000114 1610 000115 7400 000116 0526 000117 0200 000120 0007 000121 7757 000122 7764 000123 7762 000124 0033 000125 7761 000126 7760 000127 7756 000130 7775 000131 7745 000132 1672 000133 1000 000134 7744 000135 1113 000136 0370 000137 1001 000140 0645 000141 1532 000142 2326 000143 0651 000144 1645 000145 7410 000146 0766 000147 1600 000150 0637 000151 1655 000152 0701 000153 1163 000154 7740 000155 0012 000156 1327 000157 0363 000160 0777 000161 1166 000162 7607 000163 0256 000164 0004 000165 0077 000166 7772 000167 7746 000170 7477 000171 7766 000172 7776 000173 7522 000174 0240 000175 7540 000176 0034 000177 7000 2043 /FIELD 1 2044 /OS/8 MONITOR - MONITOR ROUTINES 2045 /THIS MONITOR IS CALLED INTO CORE BY A JMS 7700 IN FIELD 1 2046 /IT REPLACES CORE FROM 200-1777 2047 /AND INTERPRETS THE WORDS AFTER THE JMS AS A MONITOR FUNCTION 2048 /MONITOR FUNCTIONS ARE ASSIGN,LOOKUP,ENTER,ETC. 2049 MAXCMD=13 2050 *200 2051 010200 0000 MONITO, 0 /MONITOR SUBROUTINE 2052 010201 3055 DCA MACARG /STORE AC ARG 2053 010202 3040 DCA USERFG /SET FLAG TO INDICATE WE WERE CALLED DIRECTLY 2054 010203 6214 RDF /GET CALLING FIELD 2055 010204 1177 TAD [CDF CIF 0 2056 010205 3345 DCA FGETX 2057 010206 1345 MRENTR, TAD FGETX 2058 010207 3241 DCA FPUTX /FOR LOADING AND STORING CALLING SEQUENCE 2059 010210 4220 JMS FGET /GET FIRST ARGUMENT[AND SET DATA FIELD 1) 2060 010211 2200 ISZ MONITO 2061 010212 7100 CLL 2062 010213 1176 TAD [-MAXCMD-1 2063 010214 7430 SZL 2064 010215 5247 JMP MERROR 2065 010216 1244 TAD JMPMAX 2066 010217 3220 DCA .+1 /BRANCH TO APPROPRIATE ROUTINE WITH LINK ON 2067 010220 0000 FGET, 0 /MUST PRESERVE LINK 2068 010221 1200 TAD MONITO 2069 010222 4343 JMS FGETW 2070 010223 5620 JMP I FGET 2071 /MONITOR COMMAND DISPATCH TABLE MUST BE JAMMED BEFORE 'FPUT' 2072 010224 0247 MERROR 2073 010225 0401 MASSIGN 2074 010226 0603 MLOOKUP 2075 010227 1011 MENTER 2076 010230 1177 MCLOSE 2077 010231 0263 MCD 2078 010232 0306 MCHAIN 2079 010233 0253 MERR 2080 010234 0324 MESCAP 2081 010235 0341 MESCPR 2082 010236 0400 MASGN 2083 010237 1343 MRSETP, MRESET 2084 010240 0000 FPUT, 0 /MUST FOLLOW LAST ADDRESS IN JUMP TABLE 2085 010241 0000 FPUTX, 0 2086 010242 3600 DCA I MONITO 2087 010243 6213 CDF CIF 10 2088 010244 5640 JMPMAX, JMP I FPUT 2089 010245 2057 MEOERR, ISZ MERRNO 2090 010246 2057 MIOERR, ISZ MERRNO 2091 010247 2057 MERROR, ISZ MERRNO 2092 010250 2057 ISZ MERRNO 2093 010251 2057 ISZ MERRNO 2094 010252 2057 ISZ MERRNO 2095 010253 7200 MERR, CLA 2096 010254 6202 CIF 0 2097 010255 4575 JMS I [SHNDLR 2098 010256 0210 0210 2099 010257 1400 1400 2100 010260 0056 MERRTN 2101 010261 7402 HLT 2102 010262 5657 JMP I .-3 2103 010263 7330 MCD, CLA CLL CML RAR 2104 010264 4351 JMS CDSWAP /SWAP OUT CORE IF NECESSARY 2105 010265 4220 JMS FGET 2106 010266 3041 DCA T1 2107 010267 6202 CIF 0 2108 010270 4575 JMS I [SHNDLR 2109 010271 0601 0601 2110 010272 0000 0 2111 010273 0051 MCDREC 2112 010274 5246 JMP MIOERR 2113 010275 1241 TAD FPUTX 2114 010276 6203 CDF CIF 0 2115 010277 4574 JMS I [200 2116 010300 3241 DCA FPUTX 2117 010301 1241 TAD FPUTX 2118 010302 3345 DCA FGETX 2119 010303 4351 JMS CDSWAP /RESTORE THE SWAPPED CORE IF NECESSARY 2120 010304 7120 STL /LINK MUST BE ON AT MRESET 2121 010305 5637 JMP I MRSETP /AFTER CD, RESET DEVICE AREA 2122 010306 4220 MCHAIN, JMS FGET 2123 010307 3041 DCA T1 /BUFFER THE ARGUMENT 2124 010310 6202 CIF 0 2125 010311 4575 JMS I [SHNDLR 2126 010312 0101 0101 2127 010313 7400 7400 2128 010314 0057 MRUNRC 2129 010315 5246 JMP MIOERR 2130 010316 1041 TAD T1 /LOAD THE BUFFERED ARGUMENT 2131 010317 6203 CDF CIF 0 2132 010320 5713 JMP I .-5 2133 010321 7200 MLNOTF, CLA 2134 010322 2200 ISZ MONITO 2135 010323 1040 MNEXT, TAD USERFG 2136 010324 7110 MESCAP, CLL RAR 2137 010325 1200 TAD MONITO 2138 010326 3573 DCA I [7700 2139 010327 1241 TAD FPUTX 2140 010330 3572 DCA I [SMCIF 2141 010331 7221 CLA IAC CML 2142 010332 6201 CDF 0 2143 010333 0571 AND I [JSBITS 2144 010334 6211 CDF 10 2145 010335 7010 RAR 2146 010336 7730 SZL SPA CLA /RESTORE CORE IF USERFG=1 AND JSW[11]=0 2147 010337 5572 JMP I [SMCIF 2148 010340 5570 JMP I [MRETRN 2149 010341 7120 MESCPR, CLL CML 2150 010342 5325 JMP MESCAP+1 2151 010343 0000 FGETW, 0 2152 010344 3240 DCA FPUT 2153 010345 7402 FGETX, HLT 2154 010346 1640 TAD I FPUT 2155 010347 6213 CDF CIF 10 2156 010350 5743 JMP I FGETW 2157 010351 0000 CDSWAP, 0 2158 010352 1374 TAD ME1000 /FORM READ OR WRITE OPERATION 2159 010353 3364 DCA MCDCTL 2160 010354 6201 CDF 0 2161 010355 1571 TAD I [JSBITS 2162 010356 6211 CDF 10 2163 010357 7012 RTR 2164 010360 7630 SZL CLA /IS IT NECESSARY TO SAVE CORE? 2165 010361 5751 JMP I CDSWAP /NO 2166 010362 6202 CIF 0 2167 010363 4575 JMS I [SHNDLR 2168 010364 0000 MCDCTL, 0 2169 010365 0000 0 2170 010366 0033 MTEMP+4 2171 010367 5246 JMP MIOERR 2172 010370 5751 JMP I CDSWAP 2173 2174 010371 6202 EOVFLO, CIF 0 2175 010372 4575 JMS I [SHNDLR 2176 010373 0111 0111 2177 010374 1000 ME1000, 1000 /ENTER OVERLAY LOADS OVER ENTER (NATCH) 2178 010375 0026 MEOVLY 2179 010376 5246 JMP MIOERR 2180 010377 5774 JMP I ME1000 2181 *400 2182 /ASSIGN PROCESSOR - TRANSLATE DEVICE NAME INTO DEVICE NUMBER 2183 /(IF NECESSARY),GET DEVICE HANDLER INTO CORE(IF NECESSARY) 2184 /AND ADJUST TABLES(IF NECESSARY). IS THIS REALLY NECESSARY? 2185 010400 7201 MASGN, CLA IAC 2186 010401 3054 MASSIGN, DCA ASFLAG 2187 010402 1055 TAD MACARG 2188 010403 7440 SZA /IS DEVICE NUMERIC OR SYMBOLIC? 2189 010404 5246 JMP DFOUND /NUMERIC 2190 010405 4567 JMS I [FGET /GET HIGH ORDER 2 CHARS OF NAME 2191 010406 2574 ISZ I [MONITO 2192 010407 7450 SNA 2193 010410 5566 JMP I [MRTRN+1 /FIRST WORD OF NAME MUST BE NON-ZERO 2194 010411 3052 DCA NAME 2195 010412 4567 JMS I [FGET 2196 010413 7450 SNA /IS NAME >2 CHARACTERS LONG? 2197 010414 5221 JMP NOHASH /NO - DON'T HASH 2198 010415 1052 TAD NAME 2199 010416 7004 RAL 2200 010417 7130 CLL CML RAR /FORCE SIGN BIT OF HASH NAME ON 2201 010420 3052 DCA NAME 2202 010421 1165 NOHASH, TAD [UDNAME-1 /SEARCH USER NAME TABLE FIRST 2203 010422 3017 DSRCH, DCA XR 2204 010423 1164 TAD [-17 2205 010424 3042 DCA T2 2206 010425 1417 DSRCLP, TAD I XR 2207 010426 7041 CIA 2208 010427 1052 TAD NAME 2209 010430 7650 SNA CLA 2210 010431 5241 JMP DSFND 2211 010432 2042 ISZ T2 2212 010433 5225 JMP DSRCLP 2213 010434 1017 TAD XR 2214 010435 7700 SMA CLA /WHICH TABLE DID WE JUST SEARCH? 2215 010436 5566 JMP I [MRTRN+1 /SYSTEM TABLE - ERROR 2216 010437 1163 TAD [SDNAME-1 2217 010440 5222 JMP DSRCH /GO SEARCH SYSTEM TABLE 2218 010441 1042 DSFND, TAD T2 2219 010442 1162 TAD [20 2220 010443 4561 JMS I [FPUT /PUT NUMBER INTO CALLING SEQUENCE 2221 010444 4567 JMS I [FGET /GET IT BACK IN AC, BUMPING POINTER 2222 010445 2574 ISZ I [MONITO 2223 010446 4560 DFOUND, JMS I [MCKDEV /DETERMINE ITS VALIDITY (NON-ZERONESS) 2224 /AND FORM POINTERS 2225 010447 7450 SNA /IS THE DEVICE HANDLER IN CORE? 2226 010450 1442 TAD I T2 2227 010451 7450 SNA /DOES A HANDLER EXIST FOR THE DEVICE? 2228 010452 5557 JMP I [MLNOTF /NO - SAME AS THE DEVICE NOT EXISTING 2229 010453 7044 CMA RAL /GET THE COMPLEMENT OF THE HIGH ORDER BIT INTO THE LINK 2230 010454 7620 SNL CLA /TWO PAGE HANDLER?(IF HANDLER IS IN CORE, 2231 /THIS TEST IS RANDOM BUT WE DON'T CARE) 2232 010455 1156 TAD [100 /YES - FORCE A TWO-PAGE READ 2233 010456 1156 TAD [100 2234 010457 3301 DCA DVHCTL 2235 010460 1041 TAD T1 2236 010461 3047 DCA T7 /SAVE T1 AS WE WILL DESTROY IT LATER 2237 010462 1441 TAD I T1 2238 010463 1054 TAD ASFLAG 2239 010464 7640 SZA CLA /DOES HE ACTUALLY WANT US TO LOAD THE SILLY THING? 2240 010465 5332 JMP AFINIS /NO - HE MUST HAVE TASTE. 2241 010466 4567 JMS I [FGET /FETCH PAGE IN WHICH HANDLER IS TO BE LOADED 2242 010467 7010 RAR /GET THE LINK, WHICH HAS BEEN UNTOUCHED SINCE WE 2243 /PUT THE "TWO PAGE HANDLER" FLAG INTO IT 2244 010470 7520 SNL SMA /IF THIS HANDLER IS TWO-PAGE, IS HE ALLOWING IT TO BE? 2245 010471 5557 JMP I [MLNOTF /NO - GIVE AN ERROR RETURN 2246 010472 7004 RAL /YES - ROTATE BACK 2247 010473 0155 AND [7600 /MAKE IT LEGAL 2248 010474 3302 DCA DVHLOC 2249 010475 4334 JMS GETREC 2250 010476 3303 DCA DVHREC 2251 010477 6202 CIF 0 2252 010500 4575 JMS I [SHNDLR 2253 010501 0000 DVHCTL, 0 /READ ONE OR TWO PAGES INTO FIELD 0 2254 010502 0000 DVHLOC, 0 2255 010503 0000 DVHREC, 0 2256 010504 5554 JMP I [MIOERR /SYSTEM DEVICE ERROR 2257 /NOW GO THROUGH THE TABLE OF AVAILABE HANDLERS 2258 010505 1164 TAD [-17 /AND MARK OFF THOSE WHICH ARE NOW IN CORE 2259 010506 3044 DCA T4 2260 010507 1044 DVHCLP, TAD T4 2261 010510 4560 JMS I [MCKDEV /LOW ORDER BITS OF T4 GO THROUGH 1-17 2262 010511 7040 CMA 2263 010512 1302 TAD DVHLOC 2264 010513 7130 CLL CML RAR 2265 010514 1301 TAD DVHCTL /IF A HANDLER ENTRY POINT IS WITHIN 200 WORDS OF THE 2266 010515 7700 SMA CLA /LOADING ADDRESS (400 FOR A TWO-PAGE HANDLER) 2267 010516 3441 DCA I T1 /MARK IT AS WIPED 2268 010517 4334 JMS GETREC 2269 010520 7041 CIA 2270 010521 1303 TAD DVHREC 2271 010522 7640 SZA CLA 2272 010523 5330 JMP NOTINC 2273 010524 1442 TAD I T2 2274 010525 0153 AND [177 2275 010526 1302 TAD DVHLOC 2276 010527 3441 DCA I T1 2277 010530 2044 NOTINC, ISZ T4 2278 010531 5307 JMP DVHCLP 2279 010532 1447 AFINIS, TAD I T7 2280 010533 5552 JMP I [MRTRN /STORE HANDLER ADDRESS AND EXIT 2281 010534 0000 GETREC, 0 2282 010535 1442 TAD I T2 /GET RECORD OF DEVICE HANDLER 2283 010536 7106 CLL RTL 2284 010537 7006 RTL 2285 010540 7006 RTL /EXTRACT THE RECORD NUMBER 2286 010541 0151 AND [17 2287 010542 1150 TAD [DVHORG-1 /ADD THE BASE OF DEVICE HANDLER STORAGE 2288 010543 5734 JMP I GETREC 2289 2290 010544 0000 MCKDEV, 0 /MUST PRESERVE LINK 2291 010545 0151 AND [17 2292 010546 7450 SNA 2293 010547 5547 JMP I [MERROR /DEVICE 0 IS ILLEGAL 2294 010550 3052 DCA NAME 2295 010551 1052 TAD NAME 2296 010552 1146 TAD [SDVHND-1 /FORM POINTER INTO HANDLER IMAGE TABLE 2297 010553 3042 DCA T2 2298 010554 1052 TAD NAME 2299 010555 1145 TAD [DVHNDL-1 2300 010556 3041 DCA T1 2301 010557 1052 TAD NAME 2302 010560 1144 TAD [DCB-1 2303 010561 3050 DCA T8 /FORM POINTER TO DCB ENTRY FOR DEVICE 2304 010562 1441 TAD I T1 2305 010563 5744 JMP I MCKDEV 2306 2307 IFNZRO .-564 2308 010564 0000 SDNAME, ZBLOCK 17 /SYSTEM DNAME TABLE - SET UP BY "CONFIG" 010565 0000 010566 0000 010567 0000 010570 0000 010571 0000 010572 0000 010573 0000 010574 0000 010575 0000 010576 0000 010577 0000 010600 0000 010601 0000 010602 0000 2309 IFZERO .+200&1000 <*600> 2310 /LOOKUP PROCESSOR - GETS THE STARTING BLOCK OF AN INPUT FILE 2311 /ON A SPECIFIED DEVICE.SKIPS IF FILE WAS FOUND OR DEVICE 2312 /IS NOT FILE ORIENTED 2313 010603 7100 MLOOKUP,CLL /SET RDCAT MODE TO INPUT 2314 010604 4222 JMS MRDCAT 2315 010605 5213 JMP ERETRN /NON-FILE STRUCTURED DEVICE 2316 010606 4301 JMS MDSRCH /SEARCH THE DIRECTORY FOR THE FILE 2317 010607 5220 JMP MRTRN+1 /NOT FOUND - TAKE ERROR RETURN 2318 010610 1045 LRETRN, TAD T5 2319 010611 7041 CIA 2320 010612 1543 TAD I [DORG /CONVERT T5 TO A RECORD NUMBER 2321 010613 4561 ERETRN, JMS I [FPUT 2322 010614 2574 ISZ I [MONITO 2323 010615 1046 TAD T6 2324 010616 7041 CIA /STORE FILE LENGTH AS A NEGATIVE NUMBER 2325 010617 4561 MRTRN, JMS I [FPUT /THIS CODE IS JUMPED TO BY SEVERAL ROUTINES 2326 010620 2574 MRTRN2, ISZ I [MONITO 2327 010621 5557 JMP I [MLNOTF 2328 2329 010622 0000 MRDCAT, 0 2330 010623 7440 SZA 2331 010624 5251 JMP MRDREN /NOT THE FIRST SEGMENT - DON'T SET UP POINTERS 2332 010625 3045 DCA T5 /ZERO STARTING BLOCK NUMBER 2333 010626 3046 DCA T6 /ZERO FILE LENGTH 2334 010627 1055 TAD MACARG /GET DEVICE NUMBER FROM AC 2335 010630 4560 JMS I [MCKDEV /CHECK LEGALITY AND FORM POINTERS 2336 010631 7450 SNA 2337 010632 5542 JMP I [MERROR+1 /DEVICE HANDLER IS NOT IN CORE - ERROR 2338 010633 3051 DCA T9 /ADDRESS OF DEVICE HANDLER 2339 010634 4567 JMS I [FGET 2340 010635 3044 DCA T4 /STORE THE POINTER TO THE FILE NAME IN T4 2341 010636 7420 SNL 2342 010637 7030 CML RAR 2343 010640 7012 RTR /FORM A MASK OF 2000 OR 1000 DEPENDING ON LINK 2344 010641 0450 AND I T8 2345 010642 7640 SZA CLA /TEST FOR READ-ONLY(L=1) OR WRITE-ONLY(L=0) 2346 010643 5220 JMP MRTRN+1 /FAILED THE TEST - ERROR RETURN 2347 010644 1450 TAD I T8 2348 010645 7700 SMA CLA 2349 010646 5622 JMP I MRDCAT /DEVICE IS NOT FILE-ORIENTED 2350 010647 2222 ISZ MRDCAT 2351 010650 7201 CLA IAC 2352 010651 3367 MRDREN, DCA MCATRC /STORE SEGMENT NUMBER 2353 010652 1051 TAD T9 /USE LOW ORDER BITS 2354 010653 0153 AND [177 /OF DEVICE HANDLER ENTRY POINT 2355 010654 7106 CLL RTL /AND THE REQUESTED SEGMENT NUMBER 2356 010655 7004 RAL /TO FORM A "UNIQUE" KEY 2357 010656 1367 TAD MCATRC /FOR THIS SEGMENT OF THIS DIRECTORY 2358 /(THE UNIQUENESS DEPENDS ON EACH HANDLER HAVING A DIFFERENT 2359 /STARTING OFFSET IN ITS PAGE) 2360 010657 7041 CIA 2361 010660 1007 TAD OLDT9 /COMPARE KEY AGAINST KEY OF CURRENT SEGMENT 2362 010661 7450 SNA /ARE THEY THE SAME? 2363 010662 5270 JMP INLRDY /YES - DON'T READ SEGMENT, ITS IN CORE 2364 010663 7041 CIA 2365 010664 1007 TAD OLDT9 2366 010665 3007 DCA OLDT9 /STORE THE KEY OF THE NEW IN-CORE SEGMENT 2367 010666 7330 CLA CLL CML RAR /CHANGE WRITE TO READ 2368 010667 4360 JMS MWRCAT 2369 010670 1541 INLRDY, TAD I [DCOUNT 2370 010671 7064 CML CMA RAL 2371 010672 7530 SZL SPA 2372 010673 5370 JMP JMPME2 2373 010674 7070 CMA CML RAR /NEW V3 DIRECTORY VERIFYER 2374 010675 3053 DCA NFILES /FIRST WORD IN CATALOG = -# OF FILES IN CATALOG 2375 010676 1140 TAD [DPROPR-1 2376 010677 3017 DCA XR /SET XR TO POINT TO FIRST FILE ENTRY 2377 010700 5622 JMP I MRDCAT /RETURN TO BUMPED ADDRESS 2378 010701 0000 MDSRCH, 0 2379 010702 1417 FSRCLP, TAD I XR 2380 010703 7650 SNA CLA /EMPTY SPACES HAVE A ONE WORD ZERO DIRECTORY ENTRY 2381 010704 5340 JMP SKPMTF /SO SKIP THE 4 WORD COMPARE ON THEM 2382 010705 7240 CLA CMA 2383 010706 1017 TAD XR 2384 010707 3017 DCA XR 2385 010710 1137 TAD [-4 2386 010711 3046 DCA T6 2387 010712 1044 TAD T4 2388 010713 3047 DCA T7 2389 010714 1047 SRCWDL, TAD T7 2390 010715 4536 JMS I [FGETW 2391 010716 7041 CIA 2392 010717 1417 TAD I XR 2393 010720 7640 SZA CLA /COMPARE ENTRY AGAINST ARGUMENT(8 CHARACTERS) 2394 010721 5335 JMP NXTFIL 2395 010722 2047 ISZ T7 2396 010723 2046 ISZ T6 2397 010724 5314 JMP SRCWDL 2398 010725 4352 JMS BUMPXR /SKIP GARBAGE WORDS 2399 010726 1417 TAD I XR 2400 010727 7450 SNA 2401 010730 5341 JMP SKPMTF+1 /UNCLOSED OUTPUT FILES DONT COUNT 2402 010731 7041 CIA 2403 010732 3046 DCA T6 /STORE FILE LENGTH 2404 010733 2301 ISZ MDSRCH 2405 010734 5701 JMP I MDSRCH 2406 010735 1046 NXTFIL, TAD T6 2407 010736 7001 IAC 2408 010737 4352 JMS BUMPXR /SKIP REST OF NAME AND GARBAGE WORDS 2409 010740 1417 SKPMTF, TAD I XR /GET LENGTH OF THIS ENTRY 2410 010741 1045 TAD T5 2411 010742 3045 DCA T5 /ADD TO BLOCK STARTING ADDRESS 2412 010743 2053 ISZ NFILES 2413 010744 5302 JMP FSRCLP 2414 010745 3045 DCA T5 /RE-INITIALIZE BLOCK NUMBER FOR NEXT SEGMENT 2415 010746 1535 TAD I [DLINK /DIRECTORY EXHAUSTED - ANY MORE? 2416 010747 7440 SZA 2417 010750 5251 JMP MRDREN 2418 010751 5701 JMP I MDSRCH 2419 2420 010752 0000 BUMPXR, 0 /ROUTINE TO SKIP (DWASTE+AC) WORDS 2421 2422 010753 1540 TAD I [DWASTE 2423 010754 7041 CIA /DWASTE IS NEGATIVE AND SO IS AC 2424 010755 1017 TAD XR 2425 010756 3017 DCA XR 2426 010757 5752 JMP I BUMPXR 2427 2428 010760 0000 MWRCAT, 0 2429 010761 1134 TAD [4210 2430 010762 3365 DCA CATCTL 2431 010763 6202 CIF 0 2432 010764 4451 JMS I T9 2433 010765 4210 CATCTL, 4210 /WRITE 2 RECORDS FROM FIELD 1 2434 010766 1400 1400 2435 010767 0001 MCATRC, 1 2436 010770 5533 JMPME2, JMP I [MERROR+2 /CANNOT REWRITE CATALOG 2437 010771 5760 JMP I MWRCAT 2438 2439 IFNZRO .-772 /USED TO BE 766 2440 010772 0000 SDVHND, ZBLOCK 17 /DEVICE HANDLER INFORMATION TABLE - SET BY CONFIG 010773 0000 010774 0000 010775 0000 010776 0000 010777 0000 011000 0000 011001 0000 011002 0000 011003 0000 011004 0000 011005 0000 011006 0000 011007 0000 011010 0000 2441 IFZERO 1000&. <*1000> 2442 /ENTER PROCESSOR FOR MONITOR 2443 /FIND A HOLE IN THE DIRECTORY LARGE ENOUGH TO ACCOMODATE THE FILE 2444 /AND STICK IT IN. MAKE A NOTE THAT WE DID SO FOR THE 2445 /"CLOSE" PROCESSOR. 2446 011011 3056 MENTER, DCA EPASS /SET UP FOR PASS 1 2447 011012 4532 JMS I [MRDCAT /READ CATALOG AND SET UP NFILES AND XR 2448 011013 5531 JMP I [ERETRN /NON-FILE-STRUCTURED DEVICE 2449 011014 4530 JMS I [CONSOL 2450 011015 3042 DCA T2 /INTIIALIZE STARTING BLOCK NUMBER COUNTER 2451 011016 1140 TAD [DPROPR-1 2452 011017 3017 DCA XR /RESTORE XR (CONSOLIDATOR DESTROYED IT) 2453 011020 1055 TAD MACARG 2454 011021 7112 CLL RTR 2455 011022 7012 RTR 2456 011023 0127 AND [377 /GET REQUESTED LENGTH FROM AC BITS 0-7 2457 011024 7041 CIA 2458 011025 3043 DCA T3 /T3=REQUESTED LENGTH. IF T3=0, MEANS RETURN 2459 /LARGEST EMPTY SPACE ON TAPE. IF T3<>0, MEANS RETURN 2460 /SMALLEST BLOCK OF LENGTH =>T3. 2461 011026 1450 TAD I T8 /GET FCB ENTRY 2462 011027 0126 AND [7 2463 011030 7640 SZA CLA /ANY ACTIVE TENTATIVE FILES ON THIS DEVICE? 2464 011031 5566 JMP I [MRTRN+1 /YES - TAKE ERROR RETURN 2465 011032 1417 MELOOP, TAD I XR 2466 011033 7650 SNA CLA 2467 011034 5343 JMP MEMPTY /EMPTY SPACE - LOOK AT LENGTH 2468 011035 7346 MTHREE /OCCUPIED - IGNORE 2469 011036 4525 JMS I [BUMPXR 2470 011037 1417 TAD I XR 2471 011040 1042 MELEND, TAD T2 2472 011041 3042 DCA T2 /UPDATE T2 TO STARTING BLOCK # OF NEXT ENTRY 2473 011042 2053 ISZ NFILES 2474 011043 5232 JMP MELOOP /GO TO NEXT ENTRY 2475 2476 /DIRECTORY BLOCK EXHAUSTED 2477 011044 1056 TAD EPASS 2478 011045 7640 SZA CLA /WHAT PASS ARE WE IN? 2479 011046 5263 JMP EFINUP /SECOND PASS - THIS IS FOR KEEPS 2480 011047 1535 TAD I [DLINK /FIRST PASS 2481 011050 7440 SZA /ANY MORE SEGMENTS? 2482 011051 5524 JMP I [MRDREN /YES - CONTINUE 2483 2484 2485 /DONE - SEE IF OUR BEST IS GOOD ENOUGH. 2486 011052 1044 TAD T4 2487 011053 4536 JMS I [FGETW 2488 011054 7640 SZA CLA /CHECK THAT FIRST WORD OF NAME IS NON-ZERO 2489 011055 1046 TAD T6 2490 011056 7650 SNA CLA /AND THAT WE FOUND WHAT WE WANTED 2491 011057 5566 JMP I [MRTRN2 /OTHERWISE GIVE ERROR RETURN 2492 011060 1054 TAD ASFLAG /GET NUMBER OF BEST SEGMENT 2493 011061 2056 ISZ EPASS /AND RESTART THE ALGORITHM IN PASS 2 2494 011062 5524 JMP I [MRDREN /(TAKES LESS SPACE THAN SAVING XR AND NAME) 2495 2496 /EVERYTHING IS SET UP - PERFORM THE ACTUAL ENTRY OPERATION 2497 2498 011063 1017 EFINUP, TAD XR 2499 011064 3041 DCA T1 2500 011065 1137 TAD [-4 2501 011066 4525 JMS I [BUMPXR 2502 011067 1540 TAD I [DWASTE 2503 011070 7041 CIA 2504 011071 1017 TAD XR /CATALOG MUST HAVE ROOM FOR ONE MORE FILE 2505 011072 1123 TAD [-1772 /AFTER THIS FILE IS ENTERED 2506 011073 7700 SMA CLA /WILL NEW ADDITION OVERFLOW CATALOG? 2507 011074 5522 JMP I [EOVFLO /YUP - CALL OVERLAY TO EXTEND DIRECTORY 2508 011075 1441 MELP2, TAD I T1 /MOVE REST OF CATALOG UP 2509 011076 3417 DCA I XR /TO CREATE SPACE FOR NEW ENTRY 2510 011077 7240 CLA CMA 2511 011100 1041 TAD T1 2512 011101 3041 DCA T1 2513 011102 7344 CLA CMA CLL RAL 2514 011103 1017 TAD XR 2515 011104 3017 DCA XR 2516 011105 1041 TAD T1 2517 011106 7161 CIA CLL CML 2518 011107 1052 TAD NAME 2519 011110 7640 SZA CLA /HAVE WE PUSHED UP EVERYTHING? 2520 011111 5275 JMP MELP2 /NO, KEEP PUSHING 2521 011112 1137 TAD [-4 2522 011113 3041 DCA T1 /NOW MOVE THE USERS FILE NAME 2523 011114 1052 TAD NAME 2524 011115 3017 DCA XR 2525 011116 1044 TAD T4 2526 011117 4536 JMS I [FGETW /[IN THE USERS FIELD, OF COURSE) 2527 011120 3417 DCA I XR 2528 011121 2044 ISZ T4 2529 011122 2041 ISZ T1 /INTO THE EMPTY SPACE JUST CREATED 2530 011123 5316 JMP .-5 2531 011124 1521 TAD I [MDATE /PUT DATE OF CREATION INTO FILE NAME 2532 011125 3417 DCA I XR /THIS WILL BE DESTROYED IF DWASTE=0 2533 011126 7001 IAC /ADJUST XR BUMP BECAUSE OF DATE STORE 2534 011127 4525 JMS I [BUMPXR 2535 011130 3417 DCA I XR /GIVE THE NEWLY ENTERED FILE A LENGTH OF 0 2536 011131 1017 TAD XR /PUT A POINTER TO THE LENGTH WORD OF THE 2537 011132 3520 DCA I [DFLAG /NEW ENTRY INTO THE DIRECTORY HEADER 2538 011133 7240 CLA CMA 2539 011134 1541 TAD I [DCOUNT 2540 011135 3541 DCA I [DCOUNT /INCREASE THE FILE COUNT BY 1 2541 011136 1450 TAD I T8 2542 011137 1054 TAD ASFLAG 2543 011140 3450 DCA I T8 /SIGNAL AN OPEN OUTPUT FILE ON THIS DEVICE 2544 011141 4517 JMS I [MWRCAT /WRITE THE ALTERED CATALOG BACK OUT 2545 011142 5516 JMP I [LRETRN /STORE ARGS BACK JUST LIKE "LOOKUP" 2546 011143 1417 MEMPTY, TAD I XR 2547 011144 7141 CIA CLL 2548 011145 3041 DCA T1 /SAVE LENGTH OF CURRENT ENTRY 2549 011146 1043 TAD T3 2550 011147 1046 TAD T6 2551 011150 7200 CLA /LINK NOW EQUALS BEST LENGTH>=DESIRED LENGTH 2552 011151 1043 TAD T3 2553 011152 7450 SNA 2554 011153 7020 CML /IF DESIRED LENGTH=0 WE ALWAYS WANT MAXIMUM 2555 011154 1041 TAD T1 2556 011155 7220 CLA CML /LINK IS NOW ON IF DESIRED LENGTH IS NOT IN BETWEEN 2557 /BEST LENGTH AND CURRENT LENGTH 2558 011156 1041 TAD T1 2559 011157 7041 CIA 2560 011160 1046 TAD T6 2561 011161 7670 SZL SNA CLA /TAKE EITHER MIN OR MAX OF BEST AND CURRENT LENGTHS, 2562 /DEPENDING ON WHETHER LINK IS ON OR OFF 2563 011162 5374 JMP MNOCHG /MIN(MAX)=BEST - NOTHING TO DO 2564 011163 1041 TAD T1 2565 011164 3046 DCA T6 /MAKE CURRENT ENTRY NEW "BEST" 2566 011165 7344 CLA CLL CMA RAL 2567 011166 1017 TAD XR 2568 011167 3052 DCA NAME /REMEMBER CATALOG LOCATION 2569 011170 1515 TAD I [MCATRC 2570 011171 3054 DCA ASFLAG /ALSO DIRECTORY SEGMENT NUMBER 2571 011172 1042 TAD T2 2572 011173 3045 DCA T5 /AND STARTING BLOCK NUMBER 2573 011174 1041 MNOCHG, TAD T1 2574 011175 7041 CIA 2575 011176 5240 JMP MELEND /GO UPDATE THE BLOCK NUMBER 2576 /CLOSE PROCESSOR - CLOSES AN OUTPUT FILE WHICH WAS OPENED 2577 /BY THE "ENTER" CALL -- ARGUMENTS ARE THE DEVICE NUMBER AND THE 2578 /CLOSING LENGTH OF THE FILE. PERFORMS A DIRECTORY CLEANUP AFTER 2579 /CLOSING THE FILE. IF AN ENTRY ALREADY EXISTS WITH THE NEW FILE'S 2580 /NAME IT IS DELETED. (CLOSE MAY BE USED AS A "DELETE" COMMAND 2581 /ONLY IF NO OUTPUT FILE WAS ENTERED). AN ERROR RETURN IS 2582 /GIVEN IF THE CLOSING LENGTH IS TOO BIG OR IF THERE WAS NEITHER 2583 /AN ACTIVE TENTATIVE FILE OR AN OLD FILE TO DELETE. 2584 2585 011177 4532 MCLOSE, JMS I [MRDCAT /GET THE CATALOG 2586 011200 5267 JMP CRETRN /NON-FILE STRUCTURED DEVICE - RETURN NORMALLY 2587 011201 7201 CLA IAC /GET THE NEXT WORD IN THE CALLING SEQUENCE 2588 011202 4567 JMS I [FGET 2589 011203 3041 DCA T1 /GET CLOSING LENGTH AND STORE IT AWAY 2590 011204 4514 JMS I [MDSRCH /SEARCH FOR THE OLD COPY 2591 011205 5240 JMP NODLET /NO OLD COPY 2592 011206 7346 MTHREE 2593 011207 1540 TAD I [DWASTE 2594 011210 4363 JMS SQUISH /SQUISH OUT 3+#WASTE WORDS OF THE OLD COPY 2595 011211 3416 DCA I XR2 /AND MAKE THE OTHER TWO INTO AN EMPTY 2596 011212 1046 TAD T6 /FILE ENTRY WITH THE SAME LENGTH 2597 011213 7041 CIA 2598 011214 3416 DCA I XR2 /AS THE OLD COPY 2599 011215 1450 TAD I T8 2600 011216 0126 AND [7 2601 011217 7450 SNA /IS THERE AN OPEN OUTPUT FILE ON THIS DEVICE 2602 011220 5262 JMP EOCLOS /NO - FINISH UP AND GET OUT 2603 011221 7041 CIA /GET THE SEGMENT NUMBER WE WANT 2604 011222 1515 TAD I [MCATRC 2605 011223 7650 SNA CLA 2606 011224 5227 JMP .+3 2607 011225 4273 JMS CONSOL 2608 011226 4517 JMS I [MWRCAT /NO - WRITE OUT THE ONE WE SQUISHED 2609 011227 1520 TAD I [DFLAG /GET LOCATION OF TENTATIVE FILE 2610 011230 7141 CIA CLL 2611 011231 1016 TAD XR2 2612 011232 7630 SZL CLA /IS THE ENTRY TO BE CLOSED ABOVE THE ONE 2613 011233 5236 JMP .+3 /WE JUST DELETED? 2614 011234 7346 MTHREE /YES - MOVE THE POINTER DOWN 2615 011235 1540 TAD I [DWASTE /TO COMPENSATE FOR THE SQUISHING 2616 011236 1520 TAD I [DFLAG /THE POINTER WILL NOW POINT 2617 011237 3520 DCA I [DFLAG /TO THE LENGTH WORD. 2618 /(THIS WAS WASTED WORK UNLESS THE CORRECT SEGMENT IS IN CORE) 2619 2620 011240 1450 NODLET, TAD I T8 2621 011241 0126 AND [7 2622 011242 7450 SNA /IS THERE AN OPEN OUTPUT FILE ON THIS DEVICE? 2623 011243 5566 JMP I [MRTRN+1 /WHAT DID HE CALL US FOR? - ERROR 2624 011244 4532 JMS I [MRDCAT /YES - READ IN THE CORRECT SEGMENT 2625 011245 1520 TAD I [DFLAG 2626 011246 3044 DCA T4 /T4 POINTS TO THE LENGTH OF THE TENTATIVE ENTRY 2627 011247 1041 TAD T1 2628 011250 7041 CIA /IF T1=0, NEW ENTRY WILL BE DELETED AUTOMATICALLY 2629 011251 3444 DCA I T4 /DURING CONSOLIDATION 2630 011252 2044 ISZ T4 2631 011253 2044 ISZ T4 2632 011254 7120 CLL CML 2633 011255 1041 TAD T1 2634 011256 1444 TAD I T4 /SUBTRACT CLOSING LENGTH FROM FREE BLOCK ADJACENT TO ENTRY 2635 011257 7460 SNL SZA 2636 011260 5513 JMP I [MERROR+3 /THIS CREEP HAS GONE AND DESTROYED HIS TAPE 2637 011261 3444 DCA I T4 2638 011262 4273 EOCLOS, JMS CONSOL /CONSOLIDATE THE DIRECTORY 2639 011263 1112 TAD [7770 2640 011264 0450 AND I T8 2641 011265 3450 DCA I T8 2642 011266 7410 SKP 2643 011267 1155 CRETRN, TAD [7600 /DO A WRITE OF 0 PAGES. (MAGTAPE) 2644 011270 4517 JMS I [MWRCAT 2645 011271 2574 ISZ I [MONITO 2646 011272 5566 JMP I [MRTRN2 2647 /CONSOLIDATOR - CHECKS FOR ENTRIES OF LENGTH 0 AND DELETES THEM. 2648 /ALSO CHECKS FOR ADJACENT FREE AREAS AND COMBINES THEM. 2649 011273 0000 CONSOL, 0 2650 011274 1140 TAD [DPROPR-1 2651 011275 3017 DCA XR 2652 011276 1541 TAD I [DCOUNT 2653 011277 3047 DCA T7 /T7 = FILE COUNT 2654 011300 1417 CONLP, TAD I XR 2655 011301 7650 SNA CLA /EMPTY FILE? 2656 011302 5322 JMP CONMTF /YES - GO CHECK FOR NULL AND 2 IN A ROW 2657 011303 7346 MTHREE 2658 011304 4525 JMS I [BUMPXR /GET PAST THE GARBAGE WORDS 2659 011305 1417 TAD I XR /GET COUNT 2660 011306 7640 SZA CLA /WOULD THIS HAPPEN TO BE A NULL FILE? 2661 011307 5317 JMP CONLPT /NAH, GO TO NEXT ONE 2662 011310 1111 TAD [-5 /YEAH, REMOVE IT ENTIRELY 2663 011311 1540 TAD I [DWASTE /INCLUDING THE WASTE WORDS 2664 011312 4363 SQCOMN, JMS SQUISH 2665 011313 2541 ISZ I [DCOUNT /BUMP DOWN FILE COUNT IN DIRECTORY 2666 011314 2053 ISZ NFILES /AS WELL AS THE TEMPORARY ONE IN PAGE 0 2667 011315 7000 NOP /V3 RL INSISTS 2668 011316 5274 JMP CONSOL+1 /REPEAT ENTIRE CONSOLIDATION - THIS DELETION MAY 2669 /HAVE BROUGHT TWO FREE ENTRIES TOGEHER 2670 / THE ABOVE NOP FIXES THE KILLER CLOSE BUG 2671 011317 2047 CONLPT, ISZ T7 2672 011320 5300 JMP CONLP /MORE FILES - KEEP PLUGGING 2673 011321 5673 JMP I CONSOL /RETURN FROM CONSOLIDATOR 2674 011322 1417 CONMTF, TAD I XR /IS THIS FREE ENTRY NULL? 2675 011323 7450 SNA 2676 011324 5341 JMP SQTRIV /YES - SQUASHITLIKEABUG 2677 011325 3042 DCA T2 /NO - SAVE LENGTH 2678 011326 1017 TAD XR 2679 011327 3363 DCA SQUISH /SAVE POSITION OF LENGTH WORD 2680 011330 2047 ISZ T7 /WAS IT THE LAST FILE? 2681 011331 7410 SKP /NO, THEN THERE IS ONE AFTER IT(GOOD THINKING!) 2682 011332 5673 JMP I CONSOL /YES - RETURN FROM CONSOLIDATOR 2683 011333 1417 TAD I XR 2684 011334 7640 SZA CLA /TWO EMPTIES IN A ROW? 2685 011335 5303 JMP CONLP+3 /NO - SLIP BACK INTO LOOP 2686 011336 1417 TAD I XR 2687 011337 1042 TAD T2 /YES - COMBINE LENGTHS 2688 011340 3763 DCA I SQUISH /STORE BACK IN FIRST LENGTH WORD AND SQUISH SECOND ENTRY 2689 011341 7344 SQTRIV, CLA CMA CLL RAL 2690 011342 5312 JMP SQCOMN /SQUISH OUT 2 WORDS 2691 011343 1164 MRESET, TAD [-17 2692 011344 3043 DCA T3 2693 011345 1043 MRSETL, TAD T3 2694 011346 4560 JMS I [MCKDEV 2695 /LINK MUST BE ON AT THIS POINT 2696 011347 1174 TAD [200 2697 011350 7630 SZL CLA /ZERO ALL DEVICE HANDLER SLOTS THAT AREN'T RESIDENT 2698 011351 3441 DCA I T1 2699 011352 4567 JMS I [FGET 2700 011353 7640 SZA CLA 2701 011354 1126 TAD [7 2702 011355 7160 CMA STL 2703 011356 0450 AND I T8 2704 011357 3450 DCA I T8 /DELETE THE "FILE CURRENTLY OPEN" FLAG IF ASKED 2705 011360 2043 ISZ T3 2706 011361 5345 JMP MRSETL 2707 011362 5510 JMP I [MNEXT 2708 2709 /SUBR TO COLLAPSE DIRECTORY AFTER A POINT 2710 011363 0000 SQUISH, 0 2711 011364 1017 TAD XR 2712 011365 3015 DCA XR1 2713 011366 7344 CLA CLL CMA RAL 2714 011367 1015 TAD XR1 2715 011370 3016 DCA XR2 /SET UP XR2 FOR CHANGING SQUISHED ENTRY 2716 011371 1417 SQLOOP, TAD I XR 2717 011372 3415 DCA I XR1 /MOVE DOWN ONE WORD 2718 011373 1017 TAD XR 2719 011374 1107 TAD [-1777 2720 011375 7640 SZA CLA /AT END YET? 2721 011376 5371 JMP SQLOOP /NO, KEEP GOING 2722 011377 5763 JMP I SQUISH 2723 *1400 2724 /INITIAL DIRECTORY FOR MONITOR 2725 /DEFINES OS/8 ABSOLUTE LOADER (ABSLDR.SV) 2726 2727 011400 7776 DCOUNT, -2 /TWO ENTRIES 2728 011401 0070 DORG, MFREE /FILE STORAGE STARTS AT BLOCK "MFREE" 2729 011402 0000 DLINK, 0 /THIS IS THE ONLY DIRECTORY RECORD 2730 011403 0000 DFLAG, 0 /THERE ARE NO OPEN OUTPUT FILES ON THIS DEVICE 2731 011404 7777 DWASTE, -1 /# OF WASTED WORDS PER ENTRY 2732 011405 0102 DPROPR, 0102 /AB 2733 011406 2314 2314 /SL 2734 011407 0422 0422 /DR 2735 011410 2326 2326 /.SV 2736 011411 3017 3017 /V3D ENCODING FOR 1-JUN-77 2737 011412 7773 -5 /FIVE BLOCKS LONG( 1 BLOCK = 256 WORDS) 2738 011413 0000 0 /EMPTY SPACE 2739 011414 7777 -1 /OVERLAYED BY DEVICE DEPENDENT PART WITH LENGTH 2740 2741 IFNZRO .-1415 2742 *3400 /"ENTER" OVERLAY TO USR - RUNS IN 11000 2743 013400 5203 JMP .+3 2744 013401 7771 MSEGLM, -7 /# DIRECT. SEGS 2745 013402 7770 NEWLEN, -10 2746 013403 1535 MEOVLP, TAD I [DLINK 2747 013404 7650 SNA CLA 2748 013405 5305 JMP MELAST /LAST SEGMENT - MUST CREATE A NEW ONE 2749 013406 2541 ISZ I [DCOUNT /BUMP ENTRY COUNT DOWN 2750 013407 4517 JMS I [MWRCAT /WRITE OUT THIS SEGMENT 2751 013410 4342 JMS MSKIPF /FIND END OF SHORTENED DIRECTORY 2752 013411 3367 DCA MEFCNT /PREPARE TO TRANSFER LAST ENTRY 2753 013412 1377 TAD (MEOVLS-1 2754 013413 3015 DCA XR1 /INTO NEXT DIRECTORY SEGMENT 2755 013414 1417 TAD I XR 2756 013415 3415 DCA I XR1 2757 013416 2367 ISZ MEFCNT /THROUGH A BUFFER AT LOC 11200 2758 013417 1017 TAD XR 2759 013420 7041 CIA 2760 013421 1041 TAD T1 /T1 WAS SET UP BY "ENTER" 2761 013422 7640 SZA CLA 2762 013423 5214 JMP .-7 2763 013424 1441 TAD I T1 /GET LENGTH OF MOVED ENTRY 2764 013425 3366 DCA MEOCNT 2765 013426 1535 TAD I [DLINK 2766 013427 4532 JMS I [MRDCAT /READ NEXT SEGMENT 2767 013430 4530 JMS I [CONSOL /MAKE SURE IT IS AT ITS SMALLEST 2768 013431 1543 TAD I [DORG 2769 013432 1366 TAD MEOCNT 2770 013433 3543 DCA I [DORG /BUMP FILE ORIGIN DOWN 2771 013434 4342 JMS MSKIPF /FIND LAST LOC IN NEW SEGMENT 2772 013435 1017 MELP3, TAD XR 2773 013436 3370 DCA METMP1 2774 013437 1017 TAD XR 2775 013440 1367 TAD MEFCNT 2776 013441 3371 DCA METMP2 /PREPARE TO PUSH ALL ENTRIES UP 2777 013442 1770 TAD I METMP1 2778 013443 3771 DCA I METMP2 /DO THE PUSHING 2779 013444 7240 STA 2780 013445 1017 TAD XR 2781 013446 3017 DCA XR 2782 013447 1017 TAD XR 2783 013450 1376 TAD (-DWASTE 2784 013451 7640 SZA CLA /ARE WE THROUGH? 2785 013452 5235 JMP MELP3 /NO 2786 013453 1377 TAD (MEOVLS-1 2787 013454 3017 DCA XR /PREPARE TO MOVE THE SAVED ENTRY INTO THE 2788 013455 7240 CLA CMA /NEW SEGMENT 2789 013456 1541 TAD I [DCOUNT 2790 013457 3541 DCA I [DCOUNT /INCREASE ENTRY COUNT OF NEW SEGMENT 2791 013460 1367 TAD MEFCNT 2792 013461 7041 CIA 2793 013462 3367 MECOMN, DCA MEFCNT /STORE NUMBER OF WORDS TO MOVE 2794 013463 1140 TAD [DWASTE 2795 013464 3015 DCA XR1 2796 013465 1417 TAD I XR 2797 013466 3415 DCA I XR1 2798 013467 2367 ISZ MEFCNT 2799 013470 5265 JMP .-3 /MOVE THE ENTRY IN 2800 013471 4342 JMS MSKIPF 2801 013472 1017 TAD XR 2802 013473 3041 DCA T1 /T1=LAST LOC IN SEGMENT 2803 013474 1540 TAD I [DWASTE 2804 013475 7041 CIA 2805 013476 1017 TAD XR 2806 013477 1123 TAD [-1772 2807 013500 7700 SMA CLA /HAVE WE MADE THIS SEGMENT TOO BIG? 2808 013501 5203 JMP MEOVLP /YES - LOOP UNTIL WE GET IT RIGHT 2809 013502 4517 JMS I [MWRCAT /WRITE OUT NEW SEGMENT 2810 013503 5060 JMP MEOXIT /READ IN ENTER AND CONTINUE 2811 013504 7001 MWRONG, IAC 2812 013505 1202 MELAST, TAD NEWLEN 2813 013506 3370 DCA METMP1 /LENGTH OF NEW SEGMENT 2814 013507 1370 TAD METMP1 2815 013510 7041 CIA 2816 013511 1541 TAD I [DCOUNT 2817 013512 7500 SMA /WERE THERE "NEWLEN+1" 2818 013513 5304 JMP MWRONG /NO - SET OUR SIGHTS LOWER 2819 013514 3541 DCA I [DCOUNT /ADJUST LENGTH OF OLD SEGMENT 2820 013515 4342 JMS MSKIPF /FIND BOUNDARY LOC BETWEEN SEGMENTS 2821 013516 1515 TAD I [MCATRC 2822 013517 7001 IAC 2823 013520 3535 DCA I [DLINK /LINK THE OLD LAST SEGMENT TO 2824 013521 1535 TAD I [DLINK /THE NEWLY CREATED ONE 2825 013522 1201 TAD MSEGLM 2826 013523 7700 SMA CLA 2827 013524 5775 JMP I (MEOERR /PROVIDED THAT THERE IS ROOM FOR ANOTHER 2828 013525 4517 JMS I [MWRCAT /WRITE OUT THE NEXT-TO-LAST SEGMENT 2829 013526 2515 ISZ I [MCATRC /BUMP RECORD NUMBER FOR NEXT WRITE 2830 013527 2007 ISZ OLDT9 /LIKEWISE BUMP DIRECTORY KEY 2831 013530 1370 TAD METMP1 2832 013531 3541 DCA I [DCOUNT 2833 013532 1366 TAD MEOCNT 2834 013533 7041 CIA 2835 013534 1543 TAD I [DORG 2836 013535 3543 DCA I [DORG /SET UP PARAMETERS OF THE NEW SEGMENT 2837 013536 3535 DCA I [DLINK /MARK IT AS THE NEW LAST SEGMENT 2838 013537 1017 TAD XR 2839 013540 1107 TAD [-1777 /SET UP COUNT OF WORDS TO SLIDE DOWN 2840 013541 5262 JMP MECOMN /USE COMMON CODE TO SLIDE WORDS AND EXIT 2841 2842 013542 0000 MSKIPF, 0 /SUBR TO FIND LAST LOC USED IN A SEGMENT 2843 /ALSO FINDS NUMBER OF BLOCKS USED BY SEGMENT 2844 013543 1541 TAD I [DCOUNT 2845 013544 3372 DCA MNOFIL 2846 013545 1140 TAD [DWASTE 2847 013546 3017 DCA XR 2848 013547 3366 DCA MEOCNT /INITIALIZE POINTER(XR) AND COUNT(MEOCNT) 2849 013550 1417 MSKPLP, TAD I XR 2850 013551 7650 SNA CLA 2851 013552 5360 JMP MEOMTY 2852 013553 7346 MTHREE 2853 013554 1540 TAD I [DWASTE /BUMP POINTER TO LENGTH WORD OF FILE ENTRY 2854 013555 7041 CIA 2855 013556 1017 TAD XR 2856 013557 3017 DCA XR 2857 013560 1417 MEOMTY, TAD I XR 2858 013561 1366 TAD MEOCNT 2859 013562 3366 DCA MEOCNT 2860 013563 2372 ISZ MNOFIL 2861 013564 5350 JMP MSKPLP 2862 013565 5742 JMP I MSKIPF 2863 013566 0000 MEOCNT, 0 2864 013567 0000 MEFCNT, 0 2865 013570 0000 METMP1, 0 2866 013571 0000 METMP2, 0 2867 013572 0000 MNOFIL, 0 2868 MEOVLS=1200 /DESTROYS PART OF "CLOSE" OP FOR BUFFER 2869 013575 0245 PAGE 013576 6374 013577 1177 2870 EJECT ABSLDR 2871 /ABSOLUTE LOADER FOR OS/8 - VERSION 4A 2872 *2000 2873 CTLBLK=3400 2874 BUFFER=CTLBLK 2875 XFIELD=20 2876 ORIGIN=21 2877 B1=22 2878 B2=23 2879 B3=24 2880 C1=25 2881 C2=26 2882 C3=27 2883 WD=30 2884 WD1=31 2885 WD2=32 2886 FILPTR=33 2887 PG7400=34 2888 LSTFLD=35 2889 LOADXR=11 2890 012000 4777 ABSLDR, JMS I (CTINIT 2891 012001 4777 JMS I (CTINIT 2892 012002 5205 JMP CALLCD 2893 012003 5210 JMP NOCD 2894 012004 4776 NEXTCD, JMS I (NEXFIL 2895 012005 4574 CALLCD, JMS I [200 2896 012006 0005 5 /COMMAND DECODE 2897 012007 0216 0216 /ASSUMED EXTENSION IS .BN 2898 012010 1107 NOCD, TAD [6001 2899 012011 6201 CDF 0 2900 012012 3571 DCA I [JSBITS /SET JSBITS TO SAVE CD AREA NEXT TIME 2901 012013 6211 CDF 10 2902 012014 1506 TAD I [MPARAM+1 2903 012015 0156 AND [100 2904 012016 7640 SZA CLA /IS /R SWITCH ON? 2905 012017 4777 JMS I (CTINIT /YES - RE-INITIALIZE LOADER TABLES 2906 012020 7400 LD7400, 7400 2907 012021 1375 TAD (MIFILE 2908 012022 3033 DCA FILPTR 2909 012023 4774 JMS I (SETADR /GET THE STARTING ADDRESS IF IT APPEARS ON THE LINE 2910 012024 1373 NEWFIL, TAD (7001 2911 012025 3243 DCA HANDLR 2912 012026 1433 TAD I FILPTR 2913 012027 0105 AND [7760 2914 012030 7440 SZA /LENGTH OF 256 BLOCKS IMPLIES AT LEAST 256 2915 012031 1151 TAD [17 2916 012032 7132 CLL CML RTR 2917 012033 7012 RTR 2918 012034 3357 DCA RCDCNT 2919 012035 1433 TAD I FILPTR 2920 012036 2033 ISZ FILPTR 2921 012037 7450 SNA 2922 012040 5204 JMP NEXTCD /FILE POINTER = 0 MEANS NO MORE INPUT FILES 2923 012041 4574 JMS I [200 2924 012042 0001 1 /ASSIGN 2925 012043 7001 HANDLR, 7001 /LOAD INTO 7000 IF NOT ALREADY LOADED 2926 012044 5772 JMP I (IOERR 2927 012045 1433 TAD I FILPTR 2928 012046 3304 DCA RECNO 2929 012047 2033 ISZ FILPTR 2930 012050 7240 CLA CMA 2931 012051 3354 DCA CHCNT 2932 012052 3353 DCA REOF 2933 012053 1504 TAD I [MPARAM /TEST FOR /I 2934 012054 0371 AND (10 2935 012055 7650 SNA CLA 2936 012056 5770 JMP I (LOADER /I IS NOT ON 2937 012057 2360 ISZ OFLG /IS /I ALLOWED? 2938 012060 5767 JMP I (OERR /NO! 2939 012061 5766 JMP I (SLASHO 2940 012062 0000 GETCH, 0 /GET-NEXT-INPUT-CHARACTER ROUTINE 2941 012063 1174 TAD [200 2942 012064 6034 KRS 2943 012065 1365 TAD (-203 2944 012066 7650 SNA CLA 2945 012067 6031 KSF 2946 012070 7410 SKP 2947 012071 5764 JMP I (MGET 2948 012072 2321 ISZ JMPGET 2949 012073 2354 ISZ CHCNT 2950 012074 5321 JMPX, JMP JMPGET 2951 012075 1353 TAD REOF 2952 012076 7640 SZA CLA 2953 012077 5662 JMP I GETCH /EOF REACHED BEFORE LOGICAL END - ERROR 2954 012100 6202 CIF 0 2955 012101 4643 JMS I HANDLR 2956 012102 0210 0210 /READ 2 RECORDS INTO FIELD 1 2957 012103 3400 PBUFFR, BUFFER 2958 012104 0000 RECNO, 0 2959 012105 5347 JMP RERROR 2960 012106 2304 ISZ RECNO 2961 012107 2357 ISZ RCDCNT 2962 012110 7410 SKP 2963 012111 2353 ISZ REOF 2964 012112 1363 TAD (-601 2965 012113 3354 DCA CHCNT 2966 012114 1303 TAD PBUFFR 2967 012115 3355 DCA CHPTR 2968 012116 1274 TAD JMPX 2969 012117 3321 DCA JMPGET 2970 012120 5263 JMP GETCH+1 2971 012121 5321 JMPGET, JMP . 2972 012122 5343 JMP CHAR1 2973 012123 5337 JMP CHAR2 2974 012124 1274 CHAR3, TAD JMPX 2975 012125 3321 DCA JMPGET 2976 012126 1755 TAD I CHPTR 2977 012127 0220 AND LD7400 2978 012130 7112 CLL RTR 2979 012131 7012 RTR 2980 012132 1356 TAD CHTMP 2981 012133 7012 RTR 2982 012134 7012 RTR 2983 012135 2355 ISZ CHPTR 2984 012136 5344 JMP GCHCOM 2985 012137 1755 CHAR2, TAD I CHPTR 2986 012140 0220 AND LD7400 2987 012141 3356 DCA CHTMP 2988 012142 2355 ISZ CHPTR 2989 012143 1755 CHAR1, TAD I CHPTR 2990 012144 0362 GCHCOM, AND (377 2991 012145 2262 ISZ GETCH 2992 012146 5662 JMP I GETCH 2993 012147 7710 RERROR, SPA CLA 2994 012150 5772 JMP I (IOERR /AN ACTUAL READ ERROR - AMAZING! 2995 012151 2353 ISZ REOF 2996 012152 5306 JMP RECNO+2 2997 012153 0000 REOF, 0 2998 012154 0000 CHCNT, 0 2999 012155 0000 CHPTR, 0 3000 012156 0000 CHTMP, 0 3001 012157 0000 RCDCNT, 0 3002 012160 7777 OFLG, -1 /SWITCH FOR /O OPTION 3003 012162 0377 PAGE 012163 7177 012164 7667 012165 7575 012166 3600 012167 3340 012170 2411 012171 0010 012172 3272 012173 7001 012174 2747 012175 7617 012176 2324 012177 3345 3004 *2200 3005 012200 6402 PUTWD, 6402 /ABSLDR VERSION NUMBER 3006 012201 7040 CMA 3007 012202 0423 AND I B2 /AND OUT THE PAGE SLOT IN THE PAGE TABLE 3008 012203 3423 DCA I B2 3009 012204 1021 TAD ORIGIN 3010 012205 3324 DCA ORGX 3011 012206 1020 TAD XFIELD 3012 012207 7112 CLL RTR 3013 012210 7012 RTR 3014 012211 7640 SZA CLA /TEST FOR FIELDS 0 OR 1 3015 012212 5270 JMP PUTIT /NEITHER - STORE AS IS 3016 012213 7420 SNL 3017 012214 5301 JMP FLD0 3018 012215 1021 TAD ORIGIN 3019 012216 7710 SPA CLA 3020 012217 5263 JMP FLD1 3021 012220 7332 CLA CLL CML RTR 3022 012221 1021 TAD ORIGIN 3023 012222 7700 SMA CLA 3024 012223 5226 JMP .+3 3025 012224 2777 ISZ I (OVLYFG /SET FLAG THAT LOADER IS BEING OVERLAYED 3026 012225 1376 TAD (2400 /LOADER OVERLAYS GO IN MTEMP+11 - MTEMP+14 3027 012226 1021 LCOMPR, TAD ORIGIN 3028 012227 7006 RTL 3029 012230 7006 RTL 3030 012231 7004 RAL 3031 012232 0151 AND [17 3032 012233 1375 TAD (MTEMP 3033 012234 3251 RLCOMN, DCA PGTMP 3034 012235 1320 TAD BUFREC 3035 012236 7041 CIA 3036 012237 1251 TAD PGTMP 3037 012240 7650 SNA CLA 3038 012241 5253 JMP DONTWR 3039 012242 4310 JMS WRBUF 3040 012243 7200 WRIBUF, CLA /MODIFIED..IF NOT /O GETS SZA CLA 3041 012244 5253 JMP DONTWR 3042 012245 6202 CIF 0 3043 012246 4575 JMS I [SHNDLR 3044 012247 0210 0210 3045 012250 1400 1400 /USE CATALOG SPACE 3046 012251 0000 PGTMP, 0 3047 012252 5774 JMP I (LIOERR 3048 012253 3007 DONTWR, DCA OLDT9 /MARK THE CATALOG DESTROYED 3049 012254 1251 TAD PGTMP 3050 012255 3320 DCA BUFREC 3051 012256 1021 TAD ORIGIN 3052 012257 0127 AND [377 3053 012260 1317 TAD PTRBFR 3054 012261 3324 DCA ORGX 3055 012262 5272 JMP PUTIT2 3056 012263 7100 FLD1, CLL 3057 012264 1021 TAD ORIGIN /IGNORE LOCATIONS ABOVE 17600 3058 012265 1174 TAD [200 3059 012266 7630 SZL CLA 3060 012267 5600 JMP I PUTWD 3061 012270 1020 PUTIT, TAD XFIELD 3062 012271 1112 TAD [7770 /CONSTRUCT CDF N FOR PROPER FIELD 3063 012272 1277 PUTIT2, TAD CDF10 3064 012273 3274 DCA .+1 3065 012274 7771 M7, -7 3066 012275 1027 TAD C3 3067 012276 3724 DCA I ORGX 3068 012277 6211 CDF10, CDF 10 3069 012300 5600 JMP I PUTWD 3070 012301 1021 FLD0, TAD ORIGIN /CHECK FOR STUFF IN PAGE 7000 3071 012302 1373 TAD (1000 3072 012303 7620 SNL CLA /IF NON ZERO,OVERLAY 3073 012304 5270 JMP PUTIT 3074 012305 1103 TAD [7400 /FORM RECORD NO. FOR OVERLAY 3075 012306 2034 ISZ PG7400 /SET OVERLAY FLAG 3076 012307 5226 JMP LCOMPR /FORM RECORD NO. 3077 012310 3346 WRBUF, CALONC 3078 012311 1320 TAD BUFREC 3079 012312 7450 SNA 3080 012313 5710 JMP I WRBUF 3081 012314 6202 CIF 0 3082 012315 4575 JMS I [SHNDLR 3083 012316 4210 4210 3084 012317 1400 PTRBFR, 1400 3085 012320 0000 BUFREC, 0 3086 012321 5774 JMP I (LIOERR 3087 012322 3320 DCA BUFREC 3088 /BAD I/O ON SYSTEM DEVICE 3089 012323 5710 JMP I WRBUF 3090 ORGX, 3091 012324 3271 NEXFIL, ERTRN 3092 012325 4310 JMS WRBUF /WRITE WHATEVER 3093 012326 1502 TAD I [MPARAM-1 3094 012327 7710 SPA CLA 3095 012330 5772 JMP I (BUILD 3096 012331 1771 TAD I (MPARAM 3097 012332 0370 AND (40 3098 012333 7640 SZA CLA 3099 012334 5772 JMP I (BUILD 3100 012335 5724 JMP I NEXFIL 3101 3102 012336 0000 CORTAB, ZBLOCK 30 /ONCE-ONLY CODE INSERTED HERE KATER 012337 0000 012340 0000 012341 0000 012342 0000 012343 0000 012344 0000 012345 0000 012346 0000 012347 0000 012350 0000 012351 0000 012352 0000 012353 0000 012354 0000 012355 0000 012356 0000 012357 0000 012360 0000 012361 0000 012362 0000 012363 0000 012364 0000 012365 0000 3103 012366 0000 ZBLOCK 2 /EXTRA NEEDED BY ONCE-ONLY CODE 012367 0000 3104 /NOT USED BY CORE TABLE 3105 012370 0040 PAGE 012371 7643 012372 2600 012373 1000 012374 3326 012375 0027 012376 2400 012377 3126 3106 *2400 3107 012400 4273 ITSOVR, JMS ASSEMB 3108 012401 7041 CIA 3109 012402 1332 TAD LCKSUM 3110 012403 7640 SZAIN, SZA CLA 3111 012404 5777 JMP I (BADCKS 3112 012405 1506 TAD I [MPARAM+1 3113 012406 0264 AND L40 3114 012407 7650 SNA CLA 3115 012410 5776 JMP I (NEWFIL 3116 012411 3332 LOADER, DCA LCKSUM 3117 012412 3775 DCA I (OFLG /CANCEL FURTHER /I'S 3118 012413 1203 TAD SZAIN 3119 012414 3774 DCA I (WRIBUF 3120 012415 4337 JMS GETFLD 3121 012416 3020 DCA XFIELD 3122 012417 1174 TAD [200 3123 012420 3021 DCA ORIGIN 3124 012421 4773 JMS I (GETCH 3125 012422 5776 JMP I (NEWFIL 3126 012423 7450 SNA 3127 012424 5221 JMP .-3 3128 012425 1155 TAD [-200 3129 012426 7640 SZA CLA 3130 012427 5212 JMP LOADER+1 3131 012430 4773 LEADER, JMS I (GETCH 3132 012431 5776 JMP I (NEWFIL 3133 012432 7450 SNA 3134 012433 5212 JMP LOADER+1 3135 012434 1155 TAD [-200 3136 012435 7450 SNA 3137 012436 5230 JMP LEADER 3138 012437 7500 NEWWD, SMA 3139 012440 5302 JMP FIELDW 3140 012441 1174 TAD [200 3141 012442 3031 DCA WD1 3142 012443 4773 JMS I (GETCH 3143 012444 5772 JMP I (BADINP 3144 012445 3032 DCA WD2 3145 012446 4773 JMS I (GETCH 3146 012447 5772 JMP I (BADINP 3147 012450 1155 TAD [-200 3148 012451 7450 SNA 3149 012452 5200 JMP ITSOVR 3150 012453 3030 DCA WD 3151 012454 4273 JMS ASSEMB 3152 012455 7420 SNL 3153 012456 5262 JMP DATAWD 3154 012457 3021 DCA ORIGIN 3155 012460 3771 DCA I (LOADWD /ZERO 'DATA LOADED' FLAG V3 3156 012461 5265 JMP GETNXT 3157 012462 4771 DATAWD, JMS I (LOADWD 3158 012463 2021 ISZ ORIGIN 3159 012464 0040 L40, 40 3160 012465 1031 GETNXT, TAD WD1 3161 012466 1032 TAD WD2 3162 012467 1332 TAD LCKSUM 3163 012470 3332 DCA LCKSUM 3164 012471 1030 TAD WD 3165 012472 5237 JMP NEWWD 3166 012473 0000 ASSEMB, 0 3167 012474 1031 TAD WD1 3168 012475 7106 CLL RTL 3169 012476 7006 RTL 3170 012477 7006 RTL 3171 012500 1032 TAD WD2 3172 012501 5673 JMP I ASSEMB 3173 012502 1370 FIELDW, TAD (-32 3174 012503 7450 SNA 3175 012504 5333 JMP CTLZ 3176 012505 1367 TAD (-46 3177 012506 7510 SPA 3178 012507 5325 JMP NOTXP 3179 012510 3031 DCA WD1 3180 012511 1031 TAD WD1 3181 012512 0126 AND [7 /V3C 3182 012513 7640 SZA CLA 3183 012514 5325 JMP NOTXP 3184 012515 1031 TAD WD1 3185 012516 0366 AND (70 3186 012517 3020 DCA XFIELD 3187 012520 4773 JMS I (GETCH 3188 012521 5772 JMP I (BADINP 3189 012522 1155 TAD [-200 3190 012523 7440 SZA 3191 012524 5237 JMP NEWWD 3192 012525 7200 NOTXP, CLA 3193 012526 1332 TAD LCKSUM 3194 012527 7650 SNA CLA 3195 012530 5211 JMP LOADER 3196 012531 5772 JMP I (BADINP 3197 012532 0000 LCKSUM, 0 3198 012533 1332 CTLZ, TAD LCKSUM 3199 012534 7640 SZA CLA 3200 012535 5772 JMP I (BADINP 3201 012536 5776 JMP I (NEWFIL 3202 012537 0000 GETFLD, 0 3203 012540 3025 DCA C1 3204 012541 1765 TAD I (MPARAM+2 3205 012542 0364 AND (1774 3206 012543 7450 SNA 3207 012544 5737 JMP I GETFLD 3208 012545 7006 RTL 3209 012546 7004 RAL 3210 012547 2025 ISZ C1 3211 012550 7420 SNL 3212 012551 5346 JMP .-3 3213 012552 7240 CLA CMA 3214 012553 1025 TAD C1 3215 012554 7106 CLL RTL 3216 012555 7004 RAL 3217 012556 5737 JMP I GETFLD 3218 012564 1774 PAGE 012565 7645 012566 0070 012567 7732 012570 7746 012571 3127 012572 3300 012573 2062 012574 2243 012575 2160 012576 2024 012577 3306 3219 *2600 3220 012600 1377 BUILD, TAD (CORTAB+25 3221 012601 3022 DCA B1 3222 012602 1776 TAD I (CORTAB+3 3223 012603 7140 CLL CMA 3224 012604 0105 AND [7760 3225 012605 7650 SNA CLA 3226 012606 7020 CML 3227 012607 1775 TAD I (CORTAB 3228 012610 7040 CMA 3229 012611 0105 AND [7760 3230 012612 7650 SNA CLA 3231 012613 7001 IAC 3232 012614 7012 RTR 3233 012615 3774 DCA I (CTLBLK+3 3234 012616 1374 TAD (CTLBLK+3 3235 012617 3011 DCA LOADXR 3236 012620 1112 TAD [-10 3237 012621 3025 DCA C1 3238 012622 1101 TAD [70 3239 012623 3346 DCA FIELDB 3240 012624 3773 DCA I (CTLBLK 3241 012625 1346 FLDLP, TAD FIELDB 3242 012626 1105 TAD [-20 3243 012627 7700 SMA CLA /IGNORE 07600 AND 17600 IN CCB /V3 3244 012630 7040 CMA /IN THE CORE MAP 3245 012631 1100 TAD [-37 3246 012632 3026 DCA C2 3247 012633 3357 DCA LOWERA 3248 012634 4772 MTLOOP, JMS I (SHFT 3249 012635 7620 SNL CLA 3250 012636 5245 JMP INUSE 3251 012637 1357 TAD LOWERA 3252 012640 1174 MTRSME, TAD [200 3253 012641 3357 DCA LOWERA 3254 012642 2026 ISZ C2 3255 012643 5234 JMP MTLOOP 3256 012644 5277 JMP FLDOVR 3257 012645 1357 INUSE, TAD LOWERA 3258 012646 1174 TAD [200 3259 012647 3347 DCA UPPERA 3260 012650 2026 ISZ C2 3261 012651 7410 SKP 3262 012652 5260 JMP ENDRGN-2 3263 012653 4772 JMS I (SHFT 3264 012654 7630 SZL CLA 3265 012655 5262 JMP ENDRGN 3266 012656 1347 TAD UPPERA 3267 012657 5246 JMP INUSE+1 3268 012660 7240 CLA CMA 3269 012661 3026 DCA C2 3270 012662 1357 ENDRGN, TAD LOWERA 3271 012663 0103 AND [7400 3272 012664 3411 DCA I LOADXR 3273 012665 2773 ISZ I (CTLBLK 3274 012666 1357 TAD LOWERA 3275 012667 0103 AND [7400 3276 012670 7041 CIA 3277 012671 1347 TAD UPPERA 3278 012672 7110 CLL RAR 3279 012673 1346 TAD FIELDB 3280 012674 3411 DCA I LOADXR 3281 012675 1347 TAD UPPERA 3282 012676 5240 JMP MTRSME 3283 012677 1346 FLDOVR, TAD FIELDB 3284 012700 1112 TAD [-10 3285 012701 3346 DCA FIELDB 3286 012702 7346 CLA CLL CMA RTL 3287 012703 1022 TAD B1 3288 012704 3022 DCA B1 3289 012705 2025 ISZ C1 3290 012706 5225 JMP FLDLP 3291 012707 1773 TAD I (CTLBLK 3292 012710 7450 SNA 3293 012711 5771 JMP I (NULERR 3294 012712 7041 CIA 3295 012713 3773 DCA I (CTLBLK 3296 012714 1506 TAD I [MPARAM+1 /CLOBBER BATCH? 3297 012715 0077 AND [400 3298 012716 1770 TAD I (MPARAM+2 /AH ED, BUG IF YOU SPEC /P/1 TO LOADER 3299 012717 0367 AND (403 3300 012720 1774 TAD I (CTLBLK+3 3301 012721 3774 DCA I (CTLBLK+3 3302 012722 1035 TAD LSTFLD 3303 012723 0126 AND [7 3304 012724 7106 CLL RTL 3305 012725 7004 RAL 3306 012726 1177 TAD [CDF CIF 0 3307 012727 3766 DCA I (CTLBLK+1 3308 012730 7410 SKP 3309 012731 1174 ORG200, TAD [200 3310 012732 1360 TAD LSTADR 3311 012733 7440 SZA /V3 3312 012734 5344 JMP NOORG /V3 ALLOW EXPLICIT START ADDR TO OVERRIDE DEFAULT 3313 012735 1765 TAD I (LOADWD /V3 NO EXPLICIT START ADDR 3314 012736 7200 CLA /REPLACE BY 'SZA CLA' TO ALLOW SELF-STARTING STUFF 3315 /* SZA CLA /V3 IS IT SELF STARTING BIN FORMAT? 3316 012737 5331 JMP ORG200 /V3 NO 3317 012740 1020 TAD XFIELD /V3 YES 3318 012741 1177 TAD [CIF CDF 0 /V3 3319 012742 3766 DCA I (CTLBLK+1 /V3 3320 012743 1764 TAD I (ORIGIN /V3 3321 012744 3763 NOORG, DCA I (CTLBLK+2 3322 012745 5762 JMP I (LGTOUT /WRITE CONTROL BLOCK AND EXIT 3323 012746 0000 FIELDB, 0 3324 UPPERA, 3325 012747 0000 SETADR, 0 3326 012750 1761 TAD I (MPARAM+3 3327 012751 7450 SNA /IS THERE A STARTING ADDRESS SPECIFIED? 3328 012752 5747 JMP I SETADR /NO 3329 012753 3360 DCA LSTADR 3330 012754 1502 TAD I [MPARAM-1 3331 012755 3035 DCA LSTFLD 3332 012756 5747 JMP I SETADR 3333 3334 012757 0000 LOWERA, 0 3335 012760 0000 LSTADR, 0 3336 012761 7646 PAGE 012762 3002 012763 3402 012764 0021 012765 3127 012766 3401 012767 0403 012770 7645 012771 3316 012772 3225 012773 3400 012774 3403 012775 2336 012776 2341 012777 2363 3337 *3000 3338 013000 7600 ZOFILE, MOFILE 3339 013001 7731 ZOUCNT, -47 3340 013002 1034 LGTOUT, TAD PG7400 3341 013003 7650 SNA CLA 3342 013004 5213 JMP .+7 3343 013005 6202 CIF 0 3344 013006 4575 JMS I [SHNDLR 3345 013007 0300 0300 3346 013010 7000 7000 3347 013011 0044 MTEMP+15 3348 013012 5777 JMP I (LIOERR 3349 013013 6202 CIF 0 3350 013014 4575 JMS I [SHNDLR 3351 013015 4210 4210 3352 013016 3200 CTLBLK-200 3353 013017 0037 MTEMP+10 3354 013020 5777 JMP I (LIOERR 3355 013021 1776 TAD I (CTLBLK+2 3356 013022 3324 DCA CTL2 /MOVE THINGS INTO THIS PAGE 3357 013023 1775 TAD I (CTLBLK+3 3358 013024 3325 DCA CTL3 /SO WE CAN REFERENCE THEM WITH DF=0 3359 013025 1504 TAD I [MPARAM 3360 013026 0374 AND (40 3361 013027 7650 SNA CLA 3362 013030 5256 JMP LNOGO 3363 013031 1325 TAD CTL3 3364 013032 7004 RAL 3365 013033 7710 SPA CLA /ARE WE OVERLAYING THE I/O MONITOR? 3366 013034 5242 JMP LKICKM /NO 3367 013035 6201 CDF 0 3368 013036 3571 DCA I [JSBITS /YES - SET JSBITS TO FORCE A READ 3369 013037 6211 CDF 10 3370 013040 4574 JMS I [200 3371 013041 0013 13 /RESET I/O DEVICES AND FILES 3372 013042 4574 LKICKM, JMS I [200 3373 013043 0011 11 /KICK MONITOR OUT 3374 /******************************************** 3375 /NO PAGE ZERO REFERENCES AFTER THIS POINT 3376 /PAGE ZERO MAY CONTAIN USER CODE 3377 /******************************************** 3378 013044 3600 DCA I ZOFILE /ZERO OUT COMMAND DECODER AREA 3379 013045 2200 ISZ ZOFILE 3380 013046 2201 ISZ ZOUCNT 3381 013047 5244 JMP .-3 3382 013050 1773 TAD I (CTLBLK+1 3383 013051 6201 CDF 0 3384 013052 3772 DCA I (MSTCDF 3385 013053 1324 TAD CTL2 3386 013054 3771 DCA I (MSTADR /SET UP STARTING ADDRESS IN FIELD 0 3387 013055 5267 JMP LMOVRD 3388 013056 1325 LNOGO, TAD CTL3 /ABOVE COMMENT DOESN'T APPLY TO NEXT 9 LINES 3389 013057 7710 SPA CLA /ARE WE OVERLAYING THE KEYBOARD MONITOR? 3390 013060 1370 TAD (5 /NO - RETURN TO NON-SAVING ENTRY 3391 013061 1155 TAD [7600 3392 013062 6201 CDF 0 3393 013063 3771 DCA I (MSTADR 3394 013064 1306 TAD ZCDIF0 3395 013065 3772 DCA I (MSTCDF 3396 013066 7240 CLA CMA 3397 013067 6211 LMOVRD, CDF 10 3398 013070 3767 DCA I (7700 /SET 7700 TO -1 IF NO GO 3399 013071 1773 TAD I (CTLBLK+1 3400 013072 6201 CDF 0 3401 013073 3766 DCA I (JFIELD /SET UP PARAMETERS IN FIELD 0 3402 013074 1324 TAD CTL2 3403 013075 3765 DCA I (JSTART 3404 013076 1325 TAD CTL3 3405 013077 3764 DCA I (JSBITS 3406 013100 1315 LMOVLP, TAD COMBO 3407 013101 3713 DCA I COMBPT 3408 013102 2300 ISZ LMOVLP 3409 013103 2313 ISZ COMBPT 3410 013104 2314 ISZ COMBCT 3411 013105 5300 JMP LMOVLP /MOVE THE READ OF THE LOADER OVERLAY INTO FIELD 0 3412 013106 6203 ZCDIF0, CDF CIF 0 3413 013107 1326 TAD OVLYFG 3414 013110 7640 SZA CLA 3415 013111 5763 JMP I (MREAD /LOADER OVERLAYED - GO READ OVERLAY 3416 013112 5772 JMP I (MSTCDF /LOADER NOT OVERLAYED - WHY READ? 3417 013113 7756 COMBPT, MREAD-1 3418 013114 7771 COMBCT, -7 3419 013115 7607 COMBO, 7607 3420 013116 4756 MREAD-1&177+4600 /JMS I .-1 3421 013117 1010 1010 3422 013120 2000 2000 3423 013121 0040 MTEMP+11 /LOCATION OF SCRATCH BLOCKS FOR LOADER OVERLAY 3424 013122 7402 HLT 3425 013123 5372 MSTCDF&177+5200 /JMP MSTCDF 3426 013124 0000 CTL2, 0 3427 013125 0000 CTL3, 0 3428 013126 0000 OVLYFG, 0 3429 013127 0000 LOADWD, 0 3430 013130 3027 DCA C3 3431 013131 1020 TAD XFIELD 3432 013132 7110 CLL RAR 3433 013133 1020 TAD XFIELD 3434 013134 7012 RTR 3435 013135 1362 TAD (CORTAB-1 3436 013136 3023 DCA B2 3437 013137 1021 TAD ORIGIN 3438 013140 0155 AND [7600 3439 013141 7106 CLL RTL 3440 013142 7006 RTL 3441 013143 7006 RTL 3442 013144 2023 ISZ B2 3443 013145 1361 TAD (-14 3444 013146 7500 SMA 3445 013147 5344 JMP .-3 3446 013150 3324 DCA CTL2 3447 013151 7120 CLL CML 3448 013152 7004 RAL 3449 013153 2324 ISZ CTL2 3450 013154 5352 JMP .-2 3451 013155 4760 JMS I (PUTWD 3452 013156 5727 JMP I LOADWD 3453 013160 2200 PAGE 013161 7764 013162 2335 013163 7757 013164 7746 013165 7745 013166 7744 013167 7700 013170 0005 013171 7775 013172 7772 013173 3401 013174 0040 013175 3403 013176 3402 013177 3326 3454 *3200 3455 013200 0000 ERPCH, 0 3456 013201 0377 AND (77 /GET LOW ORDER 6 BITS 3457 013202 7440 SZA 3458 013203 5212 JMP NZCHAR 3459 013204 4243 JMS ERR 3460 013205 5440 FILMSG, TEXT /, FILE 0/ 013206 0611 013207 1405 013210 4060 013211 0000 3461 013212 1376 NZCHAR, TAD (240 3462 013213 0377 AND (77 3463 013214 1376 TAD (240 /CONVERT TO ASCII 3464 013215 4217 JMS LDRPCH /PRINT 3465 013216 5600 JMP I ERPCH /AND RETURN 3466 013217 0000 LDRPCH, 0 3467 013220 6046 TLS 3468 013221 6041 TSF 3469 013222 5221 JMP .-1 3470 013223 7200 CLA 3471 013224 5617 JMP I LDRPCH 3472 013225 0000 SHFT, 0 3473 013226 7346 CLA CLL CMA RTL 3474 013227 3027 DCA C3 3475 013230 7326 CLA CLL CML RTL 3476 013231 1022 TAD B1 3477 013232 3024 SHFTLP, DCA B3 3478 013233 1424 TAD I B3 3479 013234 7004 RAL 3480 013235 3424 DCA I B3 3481 013236 7260 CLA CMA CML 3482 013237 1024 TAD B3 3483 013240 2027 ISZ C3 3484 013241 5232 JMP SHFTLP 3485 013242 5625 JMP I SHFT /NOTE: SHFT LEAVES AC NON-ZERO 3486 013243 2336 ERR, ONCE /CAN'T USE PAGE 0 LITERALS 3487 013244 7200 CLA 3488 013245 6211 CDF 10 3489 013246 1775 TAD I (FILPTR /ZERO CHAR GETS REPLACED BY "FILE #" 3490 013247 1374 TAD (322 /MAGIC NUMBER 3491 013250 7130 CLL CML RAR /AC NOW CONTAINS " #" 3492 013251 3210 DCA FILMSG+3 3493 013252 1643 ERRLUP, TAD I ERR 3494 013253 7450 SNA 3495 013254 5265 JMP EOMESG /MESSAGE MUST BE EVEN NUMBER OF CHARS LONG 3496 013255 7012 RTR 3497 013256 7012 RTR 3498 013257 7012 RTR 3499 013260 4200 JMS ERPCH 3500 013261 1643 TAD I ERR 3501 013262 4200 JMS ERPCH 3502 013263 2243 ISZ ERR 3503 013264 5252 JMP ERRLUP 3504 013265 1373 EOMESG, TAD (215 /TERMINATE MESSAGE WITH CR-LF 3505 013266 4217 JMS LDRPCH 3506 013267 1372 TAD (212 3507 013270 4217 JMS LDRPCH 3508 013271 5771 ERTRN, JMP I (ABSLDR /RETURN TO LOADER STARTING ADDRESS 3509 013272 4243 IOERR, JMS ERR 3510 013273 1157 TEXT %I/O ERROR% 013274 1740 013275 0522 013276 2217 013277 2200 3511 013300 4243 BADINP, JMS ERR 3512 013301 0201 TEXT /BAD INPUT/ 013302 0440 013303 1116 013304 2025 013305 2400 3513 013306 4243 BADCKS, JMS ERR 3514 013307 4002 TEXT / BAD CHECKSUM/ 013310 0104 013311 4003 013312 1005 013313 0313 013314 2325 013315 1500 3515 013316 4345 NULERR, JMS CTINIT 3516 013317 7000 NOP 3517 013320 4243 JMS ERR 3518 013321 1617 TEXT /NO INPUT/ 013322 4011 013323 1620 013324 2524 013325 0000 3519 013326 4243 LIOERR, JMS ERR 3520 013327 2331 TEXT /SYSTEM I-O ERROR/ 013330 2324 013331 0515 013332 4011 013333 5517 013334 4005 013335 2222 013336 1722 013337 0000 3521 013340 4243 OERR, JMS ERR 3522 013341 1617 TEXT %NO /I!% 013342 4057 013343 1141 013344 0000 3523 3524 013345 0000 CTINIT, 0 3525 013346 4643 CALONC, JMS I ERR /CALL ONCE-ONLY CODE 3526 013347 1370 TAD (-30 3527 013350 3025 DCA C1 3528 013351 1367 TAD (CORTAB-1 3529 013352 3011 DCA LOADXR 3530 013353 7240 CLA CMA 3531 013354 3411 DCA I LOADXR 3532 013355 2025 ISZ C1 3533 013356 5353 JMP .-3 3534 013357 3035 DCA LSTFLD 3535 013360 3766 DCA I (LSTADR /V3 SET INITIAL STARTING ADDRESS TO 0 3536 013361 3765 DCA I (OVLYFG 3537 013362 3034 DCA PG7400 3538 013363 2345 ISZ CTINIT 3539 013364 5745 JMP I CTINIT 3540 013365 3126 PAGE 013366 2760 013367 2335 013370 7750 013371 2000 013372 0212 013373 0215 013374 0322 013375 0033 013376 0240 013377 0077 3541 3542 *CTLBLK+200 3543 3544 /CODE FOR OVERLAY OPTION IS HERE.IF /I IS NOT 3545 /USED IMMEDIATELY, THIS CODE WILL PROBABLY BE DESTROYED, 3546 /AS IT IS USED FOR A BUFFER 3547 3548 013600 7240 SLASHO, CLA CMA 3549 013601 3777 DCA I (OFLG /RE ENABLE /I 3550 013602 1776 TAD I (HANDLR 3551 013603 3341 DCA GLONK /ENTRY POINT TO HANDLER 3552 013604 1775 TAD I (RECNO 3553 013605 3212 DCA CCBLOK 3554 013606 6202 CIF 0 3555 013607 4741 JMS I GLONK /READ IN CORE CONTROL BLOCK 3556 013610 0110 0110 3557 013611 3400 CCBPTR, CTLBLK 3558 013612 0000 CCBLOK, 0 3559 013613 5774 JMP I (OERR /DATA FAILURE 3560 013614 1611 TAD I CCBPTR /NO. SEGMENTS 3561 013615 7040 CMA /TEST FOR BAD CORE IMAGE 3562 013616 0347 AND L7740 3563 013617 7640 SZA CLA 3564 013620 5773 JMP I (BADINP /NOT CORE IMAGE 3565 013621 1611 TAD I CCBPTR 3566 013622 3343 DCA SEGCNT 3567 013623 1746 TAD I SGSTAD /THIS CODE IS NEW FOR V3D 3568 / AND [70 /GET FIELD 3569 013624 7112 CLL RTR 3570 013625 7010 RAR 3571 013626 3772 DCA I (LSTFLD 3572 013627 2346 ISZ SGSTAD 3573 013630 1746 TAD I SGSTAD 3574 013631 3771 DCA I (LSTADR 3575 013632 2346 ISZ SGSTAD 3576 013633 1746 TAD I SGSTAD /GET JSW FROM SAVE FILE 3577 013634 0077 AND [400 3578 013635 3305 DCA TEMP /PRESERVE /P 3579 013636 1506 TAD I [MPARAM+1 3580 013637 0370 AND (7377 3581 013640 1305 TAD TEMP 3582 013641 3506 DCA I [MPARAM+1 3583 013642 1746 TAD I SGSTAD 3584 013643 0367 AND (3 /PRESERVE LAST 2 BITS 3585 013644 3305 DCA TEMP 3586 013645 1766 TAD I (MPARAM+2 3587 013646 0137 AND [7774 3588 013647 1305 TAD TEMP 3589 013650 3766 DCA I (MPARAM+2 3590 013651 2346 ISZ SGSTAD 3591 013652 1746 NEWSEG, TAD I SGSTAD /SEGMENT START ADDRESS 3592 013653 3021 DCA ORIGIN 3593 013654 1745 TAD I SGFDLT /FIELD AND LENGTH 3594 013655 0350 AND L77 3595 013656 3020 DCA XFIELD 3596 013657 1745 TAD I SGFDLT 3597 013660 0173 AND [7700 3598 013661 7450 SNA /V3C 3599 013662 7330 STL CLA RAR /AC4000 3600 013663 3344 DCA SEGLTH 3601 013664 1344 TAD SEGLTH 3602 013665 1155 TWOPG, TAD [7600 3603 013666 7700 SMA CLA /NO.. IS TWO PAGE SEGMENT LEFT? 3604 013667 1155 TAD [7600 /YES..-400 TO WORD COUNT 3605 013670 1155 TAD [7600 /NO.. -200 TO WORD COUNT 3606 013671 3342 DCA WDCT 3607 013672 1344 TAD SEGLTH 3608 013673 1155 TAD [7600 /BUMP DOWN LENGTH LEFT 3609 013674 3344 DCA SEGLTH 3610 3611 013675 2212 ISZ CCBLOK /POINT TO NEXT DATA RECORD 3612 013676 1212 TAD CCBLOK 3613 013677 3305 DCA DATRC 3614 013700 3007 DCA OLDT9 /MARK DIRECTORY DESTROYED 3615 013701 6202 CIF 0 3616 013702 4741 JMS I GLONK /READ THE DATA RECORD IN 3617 013703 0210 0210 3618 013704 1400 1400 /INTO 11400 3619 TEMP, 3620 013705 0000 DATRC, 0 3621 013706 5765 JMP I (IOERR /DATA FAILURE 3622 013707 7240 CLA CMA 3623 013710 1021 TAD ORIGIN 3624 013711 0153 AND [177 3625 013712 1364 TAD (1200 /SET UP INPUT POINTER 3626 CHARPT=10 3627 013713 3010 DCA CHARPT 3628 013714 1410 LOOPI, TAD I CHARPT 3629 013715 4763 JMS I (LOADWD /MOST OF THE WORK 3630 013716 2021 ISZ ORIGIN 3631 013717 7400 L7400, 7400 /NOP 3632 013720 2342 ISZ WDCT /FINISHED THIS BLOCK? 3633 013721 5314 JMP LOOPI 3634 013722 4762 JMS I (WRBUF /YES.. WRITE THE STUFF OUT 3635 013723 3761 DCA I (BUFREC /SO THAT WRBUF DOESN'T SCREW US UP 3636 013724 1344 TAD SEGLTH /V3C (REARRANGED) 3637 013725 7540 SMA SZA /ALL PAGES DONE? 3638 013726 5265 JMP TWOPG /NO, NEXT! (IF DONE, FALL INTO 'GTSEG') 3639 013727 2343 ISZ SEGCNT /YES, ANY MORE SEGMENTS 3640 013730 7410 SKP 3641 013731 5347 JMP RENEW /RESET CCB POINTER FOR NEXT /I 3642 013732 7326 CLA CLL CML RTL 3643 013733 1346 TAD SGSTAD 3644 013734 3346 DCA SGSTAD 3645 013735 7326 CLA CLL CML RTL 3646 013736 1345 TAD SGFDLT 3647 013737 3345 DCA SGFDLT /POINT TO NEXT CCB ENTRIES 3648 013740 5252 JMP NEWSEG 3649 3650 013741 0000 GLONK, 0 /HANDLER ENTRY POINT HERE 3651 013742 0000 WDCT, 0 3652 013743 0000 SEGCNT, 0 3653 013744 0000 SEGLTH, 0 3654 CTLBLK=3400 3655 3656 013745 3405 SGFDLT, CTLBLK+5 /FIELD AND LENGTH WORD 3657 013746 3401 SGSTAD, CTLBLK+1 /SEGMENT START ADDRESS 3658 3659 L7740, 3660 013747 7740 RENEW, 7740 /USED TO CLEAR AC 3661 013750 0077 L77, 77 /MIGHT OR MIGHT NOT SKIP 3662 013751 1360 TAD (CTLBLK+1 3663 013752 3346 DCA SGSTAD 3664 013753 1357 TAD (CTLBLK+5 3665 013754 3345 DCA SGFDLT 3666 013755 5756 JMP I (NEWFIL 3667 013756 2024 PAGE 013757 3405 013760 3401 013761 2320 013762 2310 013763 3127 013764 1200 013765 3272 013766 7645 013767 0003 013770 7377 013771 2760 013772 0035 013773 3300 013774 3340 013775 2104 013776 2043 013777 2160 3668 *CORTAB /ONCE-ONLY CODE 3669 3670 012336 0000 ONCE, 0 /ONCE-ONLY CODE TO CHECK FOR CORRECT MONITOR 3671 012337 3710 DCA I WRBUF /DON'T CALL AGAIN 3672 012340 1077 TAD [400 3673 012341 1364 TAD K7400 3674 012342 7640 SZA CLA 3675 012343 5350 JMP OLDMON 3676 012344 1126 TAD [7 3677 012345 1274 TAD M7 3678 012346 7650 SNA CLA 3679 012347 5736 JMP I ONCE /THEY AGREE 3680 012350 1367 OLDMON, TAD KERR 3681 012351 3724 DCA I NEXFIL 3682 012352 4765 JMS I PERR /THEY DON'T 3683 012353 1116 TEXT /INCOMPATIBLE/ /MUST BE AN EVEN # OF CHARS LONG 012354 0317 012355 1520 012356 0124 012357 1102 012360 1405 012361 0000 3684 012362 6203 CIF CDF 0 3685 012363 5766 JMP I K7605 3686 012364 7400 K7400, 7400 3687 012365 3243 PERR, ERR 3688 012366 7605 K7605, 7605 3689 012367 5643 KERR, ERR&177+5600 3690 /PAGE 0 - TEMPORARIES AND LITERALS. 3691 /LOCATIONS 0-3 ARE RESERVED FOR POINTERS TO KEY LOCATIONS 3692 /IN THE MONITOR (SO THE CUSPS CAN GET AT THESE LOCATIONS) 3693 3694 /LOCATIONS 4-6 ARE RESERVED FOR SYSTEM ODT FIELD 1 BREAKPOINTS 3695 3696 *7 3697 010007 0000 OLDT9, 0 /POINTER TO DEVICE HANDLER OF DIRECTORY IN CORE 3698 3699 *15 3700 010015 0000 XR1, 0 3701 010016 0000 XR2, 0 3702 010017 0000 XR, 0 3703 *20 /ENTRY TO MONITOR FROM A CALL TO 17700 - 3704 /CAN BE DESTROYED AFTER IT IS EXECUTED 3705 010020 1441 MSTART, TAD I T1 3706 010021 3055 DCA MACARG 3707 010022 1573 TAD I [7700 3708 010023 3574 DCA I [MONITO 3709 010024 1572 TAD I [SMCIF 3710 010025 3442 DCA I T2 /FAKE A CALL TO "MONITO" 3711 010026 1574 TAD I [MONITO 3712 010027 7004 RAL 3713 010030 7720 SNL SMA CLA 3714 010031 1572 TAD I [SMCIF 3715 010032 1043 TAD T3 3716 010033 7650 SNA CLA /CHECK FOR A CALL FROM 10000-11777 3717 010034 5547 JMP I [MERROR /YES - GIVE ERROR IMMEDIATELY 3718 010035 5444 JMP I T4 /NO - SLIDE INTO MONITOR CODE 3719 3720 *36 /POINTERS TO INTERNAL MONITOR LOCATIONS FOR "BUILD" 3721 010036 0564 SDNAME /SYSTEM DEVICE NAME TABLE 3722 010037 0772 SDVHND /DEVICE HANDLER ENTRY TABLE 3723 *40 /LOCATIONS 20-37 RESERVED FOR CUSP SCRATCH SPACE 3724 010040 0001 USERFG, 1 /MUST BE IN 40 - SEE CD LISTING 3725 010041 7740 T1, MARG1 /MUST BE AT 41 3726 010042 0345 T2, FGETX 3727 010043 1565 T3, -6213 3728 010044 0206 T4, MRENTR 3729 010045 0000 T5, 0 3730 010046 0000 T6, 0 3731 010047 0000 T7, 0 3732 010050 0000 T8, 0 3733 010051 0000 T9, 0 3734 010052 0000 NAME, 0 3735 010053 0000 NFILES, 0 3736 010054 0000 ASFLAG, 0 3737 010055 0000 MACARG, 0 3738 010056 0000 EPASS, 0 3739 010057 4000 MERRNO, 4000 3740 010060 6202 MEOXIT, CIF 0 /RETURN FROM ENTER OVERLAY 3741 010061 4575 JMS I [SHNDLR 3742 010062 0210 0210 3743 010063 1000 1000 3744 010064 0015 MONTOR+2 /RESTORE LOCS 1000-1377 OF USR 3745 010065 7402 HLT /HELP! 3746 010066 5467 JMP I .+1 3747 010067 1011 MENTER /RESTART ENTER OPERATION COMPLETELY 3748 010077 0400 $ 010100 7741 010101 0070 010102 7642 010103 7400 010104 7643 010105 7760 010106 7644 010107 6001 010110 0323 010111 7773 010112 7770 010113 0252 010114 0701 010115 0767 010116 0610 010117 0760 010120 1403 010121 7666 010122 0371 010123 6006 010124 0651 010125 0752 010126 0007 010127 0377 010130 1273 010131 0613 010132 0622 010133 0251 010134 4210 010135 1402 010136 0343 010137 7774 010140 1404 010141 1400 010142 0250 010143 1401 010144 7757 010145 7646 010146 0771 010147 0247 010150 0015 010151 0017 010152 0617 010153 0177 010154 0246 010155 7600 010156 0100 010157 0321 010160 0544 010161 0240 010162 0020 010163 0563 010164 7761 010165 7740 010166 0620 010167 0220 010170 7730 010171 7746 010172 7736 010173 7700 010174 0200 010175 7607 010176 7764 010177 6203 ABSLDR 2000 ADCNT 1723 ADGTLP 2320 ADR1 0015 ADR2 0016 AFINIS 0532 ALTMOD 1302 AMFLAG 0017 AONUM 2337 ASDONE 1163 ASFLAG 0054 ASGN2 0453 ASNM1 0503 ASSEMB 2473 ASSIGN 0436 B1 0022 B2 0023 B3 0024 BADCKS 3306 BADINP 3300 BADNUM 2727 BATCH 0035 BCHGO 0046 BEGLN 1000 BERR 4066 BIPCCL 7777 BUFFER 3400 BUFREC 2320 BUILD 2600 BUMPXR 0752 BUTTNG 2436 C1 0025 C2 0026 C3 0027 CALLCD 2005 CALONC 3346 CARRET 1252 CATCTL 0765 CBMOVE 2536 CCB 7400 CCBLOK 3612 CCBPTR 3611 CCBTST 1610 CCLSW 0435 CDF10 2277 CDSWAP 0351 CHAR1 2143 CHAR2 2137 CHAR3 2124 unreferenced CHARPT 0010 CHARS 3525 CHCNT 2154 CHERR 3506 CHERR1 3523 CHERR2 3524 CHLM1 1205 CHLOOP 1207 CHPTR 2155 CHTADC 3512 CHTMP 2156 CIERR 1615 CINSRT 1244 unreferenced CLENGT 1441 CLR 1106 CLRLIN 1277 unreferenced CNV 2670 COMBCT 3114 COMBO 3115 COMBPT 3113 CONLP 1300 CONLPT 1317 CONMTF 1322 CONSOL 1273 CORTAB 2336 CRETRN 1267 CRLF 1166 CSOVLY 0400 CTINIT 3345 CTL2 3124 CTL3 3125 CTLBLK 3400 CTLZ 2533 CTRLC 1273 CTRLU 1273 D7600 3001 DASHFG 2142 DASHSB 2132 DATAWD 2462 DATE 1367 DATE2 1372 DATEXX 2600 unreferenced DATRC 3705 DCB 7760 DCBF 1051 DCOUNT 1400 DDELIM 2667 DEAS 1151 DECIM 2702 DECIMB 2555 DEVHND 0026 DFLAG 1403 DFOUND 0446 DIGFLG 0047 DIGTLP 1112 DLINK 1402 DLYLPX 3000 DONTWR 2253 DORG 1401 DPROPR 1405 DSFND 0441 DSRCH 0422 DSRCLP 0425 DVHCLP 0507 DVHCTL 0501 DVHLOC 0502 DVHNDL 7647 DVHORG 0016 DVHREC 0503 DWASTE 1404 EFINUP 1063 ENDRGN 2662 EOCLOS 1262 EOMESG 3265 EONAME 0302 EONUM 1130 EOVFLO 0371 EPASS 0056 EPR 3135 EPRINT 3122 EPRLUP 3124 ERETRN 0613 ERPCH 3200 ERR 3243 ERRET 0033 ERRLUP 3252 ERTRN 3271 EXPLTB 3223 F0OVLY 1550 FGET 0220 FGETW 0343 FGETX 0345 FIELDB 2746 FIELDW 2502 FILE 0656 FILMSG 3205 FILPTR 0033 FLD0 2301 FLD1 2263 FLDLP 2625 FLDOVR 2677 FPUT 0240 FPUTX 0241 FSRCLP 0702 FUDJMP 0027 GCHCOM 2144 GDEVNO 0465 GET 0511 GETCCL 1362 unreferenced GETCH 2062 GETFLD 2537 GETNAM 0211 GETNXT 2465 GETOUT 1630 GETREC 0534 GETSW 0701 GLINE 0024 GLONK 3741 GNAME 0025 GODE 2725 GTNMLP 0231 GTNMX 0222 HANDAD 0505 HANDLR 2043 HNDLAD 0564 INERLP 2235 INIT 1077 unreferenced INLRDY 0670 INTGO 1041 INUSE 2645 IOERR 3272 ITSOVR 2400 JFIELD 7744 JMPGET 2121 JMPMAX 0244 JMPME2 0770 JMPX 2074 JSBITS 7746 JSTART 7745 K7400 2364 K7605 2366 KERR 2367 KEYMON 0403 KM1 0045 KM6203 1161 KMER1 0766 KMER2 1645 KMER3 1672 KMER4 1600 KMER5 2075 KMINIT 1005 KMNTRY 0400 KMONER 0001 KRCHK 0051 KSV2A 0367 L30 2607 L40 2464 L7177 2663 L7400 3717 unreferenced L77 3750 L7740 3747 LBCKUP 1324 LCKSUM 2532 LCOMPR 2226 LD7400 2020 LDRCTL 4113 LDRPCH 3217 LEADER 2430 LFEED 1344 LGTOUT 3002 LIOERR 3326 LKICKM 3042 LMOVLP 3100 LMOVRD 3067 LNOGO 3056 LOADER 2411 LOADF0 1543 LOADWD 3127 LOADXR 0011 LOOPI 3714 LOWERA 2757 LRETRN 0610 LSTADR 2760 LSTFLD 0035 LXR 0013 LXRBAK 2103 M203 1175 M40 2704 M7 2274 MACARG 0055 MARG1 7740 MASGN 0400 MASSIG 0401 MAXCMD 0013 MCALL1 7700 MCATRC 0767 MCD 0263 MCDCTL 0364 MCDREC 0051 MCHADR 3465 MCHAIN 0306 MCHBMP 3471 unreferenced MCHCTL 3464 MCHFJM 3505 MCHN1 3436 MCHN2 3452 MCHNX 3400 unreferenced MCHRD 3462 MCHREC 3466 MCHT1 3504 MCKDEV 0544 MCLOSE 1177 MDATE 7666 MDSRCH 0701 ME1000 0374 MECOMN 3462 MEFCNT 3567 MELAST 3505 MELEND 1040 MELOOP 1032 MELP2 1075 MELP3 3435 MEMPTY 1143 MENTER 1011 MEOCNT 3566 MEOERR 0245 MEOMTY 3560 MEOVLP 3403 MEOVLS 1200 MEOVLY 0026 MEOXIT 0060 MERCMN 3017 MERGED 2457 MERGLP 2471 MEROLP 3035 MERPCH 3113 MERR 0253 MERRNO 0057 MERROR 0247 MERRTN 0056 MERRXR 3200 MERTYP 3207 MESCAP 0324 MESCPR 0341 METMP1 3570 METMP2 3571 MFREE 0070 MGET 7667 MIFILE 7617 MINCOR 0637 MIOERR 0246 MLNOTF 0321 MLOOKU 0603 MNEXT 0323 MNOCHG 1174 MNOFIL 3572 MOFILE 7600 MON1 3232 MON2 3240 MON3 3252 MON4 3270 MON5 3301 MON6 3312 MON7 3324 MONITO 0200 MONPTR 2771 MONRD 7721 MONS 2741 MONTOR 0013 MOVBUF 7626 MOVECB 2530 MPARAM 7643 MRDCAT 0622 MRDREN 0651 MREAD 7757 MRENTR 0206 MRESET 1343 MRETRN 7730 MRGLP 2411 MRSETL 1345 MRSETP 0237 MRTRN 0617 MRTRN2 0620 MRUNRC 0057 MSEGLM 3401 MSKIPF 3542 MSKPLP 3550 MSOVL2 0055 MSOVLY 0054 MSTADR 7775 MSTART 0020 MSTCDF 7772 MSWITC 7764 MTEMP 0027 MTHREE 7346 MTLOOP 2634 MTRSME 2640 MVCNT 1061 MVFROM 1063 MVT1 7637 MVT2 7640 MVT3 7641 MWRCAT 0760 MWRONG 3504 NAME 0052 NEWFIL 2024 NEWLEN 3402 NEWLUP 2610 NEWSEG 3652 NEWWD 2437 NEXFIL 2324 NEXTCD 2004 NFILES 0053 NINSRT 0252 NM1 0034 NM2 0035 NM3 0036 NM4 0037 NMCT 0043 NOCD 2010 NOCMPR 2451 NODLET 1240 NOEXPL 3067 NOHASH 0421 NOORG 2744 NOTINC 0530 NOTXP 2525 NUL 2700 NULERR 3316 NUM1 2740 NUM2 2601 NXTFIL 0735 NXTONE 2454 NXTSEG 2526 NZCHAR 3212 ODT 0573 ODTREC 0060 OERR 3340 OFLG 2160 OLD1 2143 OLD2 2144 OLDMON 2350 OLDT9 0007 ONCE 2336 ORG200 2731 ORGX 2324 ORIGIN 0021 OS78 7771 OUTRLP 2230 OV 1375 OVLYFG 3126 P1 2311 P2 2312 P6203 0030 PATCHL 0321 PBUFFR 2103 PCH 0023 PCHAR 0352 PCRLF 0402 PDBUF 1062 PERIOD 0275 PERR 2365 PG7400 0034 PGNAME 0526 PGTMP 2251 PGTOUT 0032 PJSBTS 7674 PMSRST 1052 PN 0044 PRDSW 0045 PRINLP 0325 PRINT 0200 PRINTQ 0363 PRMESG 0330 PRNAME 0306 PRNT 1262 PROTAT 1576 PRQMRK 1357 PRWD 0340 PTRBFR 2317 PUTIT 2270 PUTIT2 2272 PUTWD 2200 R 0455 R7000 0747 R7400 1761 RADR 1743 RBFLAG 0020 RBSPCL 1300 RCDCNT 2157 RCHK 1664 RCTL 1742 RDCNT 0745 RECNO 2104 RENEW 3747 REOF 2153 RERR 1754 RERROR 2147 RESET 1655 RFILE 1722 RGETPG 0520 RLCOMN 2234 unreferenced RLOADR 0651 RMRD3 1762 ROT 1141 ROT2 2341 ROTAT 1765 RSCOMN 0532 RSOVL1 1400 RSOVL2 2000 RTWTPT 1050 RU37 1777 RU7700 1763 RUBOUT 1307 RUN 0512 RUN1 0651 unreferenced RUN2 0707 RUN5 0764 unreferenced RUN5A 0723 RUN6 1676 RUN7 1706 unreferenced RUN8 1724 RUN9 1734 RUNADR 1760 RUNFIL 1744 RUNHND 1764 RUNSW 0046 RUNTWT 1731 S6203 2005 SADR 1557 SAVE 0545 SAVE12 1532 SAVE1A 2000 unreferenced SAVE2 0370 SAVE2A 1400 SAVE3 1405 SAVE3A 1413 SAVE4 1456 SAVE5 1463 unreferenced SAVE6 1473 unreferenced SAVE7 1474 unreferenced SAVE7A 1506 SAVE8 1527 SAVE8A 1526 SAVERR 1567 SBLOCK 7776 unreferenced SCDCIF 7675 SCOPE 7726 unreferenced SCTL 1556 SDLOOK 2060 SDNAME 0564 SDVHND 0772 SEGCNT 3743 SEGLTH 3744 SENTER 0050 SETADR 2747 SFILE 1431 SFND 1341 SGETOU 2545 SGFDLT 3745 SGSTAD 3746 SGTNUM 2145 SHFT 3225 SHFTLP 3232 SHNDLR 7607 SKPMTF 0740 SLASHO 3600 SMCIF 7736 SNUMLP 2020 SOFSET 7747 SORTED 2400 SQCOMN 1312 SQLOOP 1371 SQTRIV 1341 SQUISH 1363 SRCH 1327 SRCWDL 0714 SSBITS 2200 SSTADR 2116 START 0600 STARTX 2313 STCOMN 0616 STRTX 1113 SVDASH 2110 SVEND 2206 SVLNBF 1645 SWAPLP 4101 SWFILE 1560 SWITCH 2270 SWNTRY 2253 SWRITE 1554 SWSUBR 2277 SYSHND 4124 SYSSWP 4074 SYSTEM 0022 SYTM1 4121 SYTM2 4122 SZAIN 2403 T1 0041 T2 0042 T3 0043 T4 0044 T5 0045 T6 0046 T7 0047 T8 0050 T9 0051 TEMP 3705 TEMP1 0040 TEMP2 0021 TIE 2263 TIENTY 2250 TM1 0041 TMP 0031 TMP1 0042 TMSY 4123 TSLUP 2652 TWOPG 3665 UDNAME 7741 UERRXR 3212 UERTYP 3217 UPPERA 2747 USERFG 0040 USRERR 3105 VERSNO 0003 W6600 4072 W7600 4073 WD 0030 WD1 0031 WD2 0032 WDCT 3742 WRBUF 2310 WRCTLB 0564 WRIBUF 2243 WRITE 4724 X1 0014 XFIELD 0020 XGLINE 1200 XR 0017 XR1 0015 XR2 0016 XXX 0157 unreferenced ZCDIF0 3106 ZERO 3121 ZOFILE 3000 ZOUCNT 3001