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