1 /33 OS/8 V3D BUILD 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1971,1972,1973,1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 31 / 32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 34 /DIGITAL. 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 /ABSTRACT-- 46 /BUILD IS THE SYSTEM CONFIGURATOR FOR THE OS/8 PROGRAMMING 47 /SYSTEM. WITH BUILD, THE DEVICES WITHIN A PARTICULAR 48 /SYSTEM CAN BE RAPIDLY AND EASILY CHANGED. BUILD ALSO 49 /PROVIDES THE FACILITY FOR CREATING AN INITIAL OS/8 SYSTEM 50 /FROM BINARY PAPER TAPES OR CASSETTES. 51 52 /V3 CHANGES 53 54 /0. MADE BUILD SUPPORTABLE 55 /1. ADDED VE COMMAND (CURRENT VERSION # IS 3X WHERE X IS PATCH LEVEL) 56 /2. FIXED PROBLEM WITH Z'S AND 9'S IN FILENAMES 57 /3. CHANGED LENGTH OF DF32 58 /4. FIXED PROBLEM WITH RK8 BOOTSTRAP RECORD. 59 /5. ON LOAD, NULL EXTENSION FIRST SEARCHES FOR .BN 60 /6. CR TO $ DOESN'T GIVE ERROR 61 /7. FIXED BUG WITH BUILDING ROM SYS 62 /8. RUBOUTS TO BOL GIVE $ 63 /9. ^U RETYPES $ 64 /10. ASSUME DSK: IF NO DEV GIVEN WITH LOAD 65 /11. NO DOT IS PRINTED IF NO EXTENSION 66 /12. ^O STUFF NEW 67 /13. ALLOW PARITY ^C 68 /14. ADDED EXAMINE COMMAND 69 /15. FIXED BUG RE ACCESSING USR TABLE VIA POINTER 70 /16. CLEANED UP MOVE ROUTINE 71 /17. CLEANED UP NUMBER TOO BIG CHECKER 72 /18. OVERFLOW ERROR MESSAGE CHANGED TO 'BAD ORIGIN' 73 /19. DON'T ALLOW NAMES OVER 6 CHARS TO SPILL INTO EXTENSION; 74 / DON'T ALLOW MULTIPLE EXTENSIONS 75 /20. INCREASED NUMBER OF ALLOWABLE ENTRY PTS/HANDLER TO 16 (DEC) 76 /21. CLEANED UP SYMBOL PRINT ROUTINE 77 /22. GOT NAMES IN TABLE TO LINE UP. 78 /23. INSERT GRPNAME INSERTS FIRST HANDLER 79 /24. INSERT GRP,DEV1,DEV2,DEV3,... 80 /25. INSERT GRP,DEV1-5,... 81 /26. SAME FOR DELETE AND REPLACE 82 /27. COUNT DEVICES AND SLOTS ONLY ON BOOT 83 /28. FIXED BUG RE SYS RF08=4023 84 /29. GENERAL SUPPORT OF 2-PAGE SYS HANDLERS 85 /30. ADDED QL COMMAND 86 /31. SETS SA=00200, JSW=0 87 /32. UNLOAD UNLOADS AND DELETES 88 /33. ADDED DSK COMMAND 89 /34. BUILD COMMAND 90 /35. PRINT TELLS YOU ABOUT DSK 91 /36. TOOK OUT LOC DEPENDENT CHECK FOR SYSTEM HANDLERS 92 /37. INSERT ALLOWS SETTING # OF PLATTERS 93 /38. HANDLER HEADER LOADS DIRECTLY INTO DESCRIPTOR TABLE 94 /39. USES EXTRA CORE IF AVAILABLE (ALSO CHECKS SOFTWARE CORE SIZE) 95 /40. STOPS ECHOING ON INPUT LINE OVERFLOW 96 /41. *'S SYSTEM DEVICE 97 /42. REMEMBERS SYS ACROSS A BOOT 98 /43. 'Y' INSTEAD OF 'YE' 99 /44. BO CHECKS DCB IN CORE TO SEE IF NEED REWRITE MONITOR 100 /45. ALLOW UNLOADING ENTRY POINT NAMES 101 /46. CTL COMMAND 102 /47. EACH COMMAND HAS ITS OWN MAXIMUM INPUT LINE SIZE 103 /48. ADDED CORE COMMAND 104 /49. FIXED ^U TO WRITE ZERO DIRECT MSG BUG 105 /50. HIT CONTINUE AFTER 'SYS ERR' TO RETRY 106 /51. PRESERVED DATE ACROSS BOOT 107 /52. MULTIPLE LOADS AND UNLOADS 108 /53. LOAD FROM SCRATCH USES INTERNAL ACTIVE HANDLERS 109 /54. CASSETTE SUPPORT 110 /55. SETS CORE CONTROL BLOCK 111 112 /CHANGES SINCE FIELD RELEASE 113 114 /A 'NO ROOM' DOESN'T PRINT 'BAD LOAD' 115 /B NO. OF ENTRY POINTS NOW CORRECTLY CHECKED FOR 116 /C FIXED BUG RE BUILDING TD8E FROM TD8E 117 /D BOOT CMD DISABLES BUILD CMD 118 /E JSW SET TO 1 BEFORE CHAINING TO ABSLDR 119 /F P CMD BUG FIXED 120 /G ALTER BUG FIXED 121 /H LENGTH OF INPUT LINE SYMBOLIC 122 /I SOFCOR STUFF OPTIMIZED 123 /J QL DOESN'T PRINT SPACE BETWEEN SYS'S GRP:NAME 124 /K FIXED BUG IN 32K 125 /L PAPER TAPE PUTS HLT IN 7600 126 127 /THINGS TO DO: 128 129 /? DIES IF DATA OCCURS BEFORE *0 130 /? BOOT.ZE, .NZ CMD? 131 /? GET 2-PAGE BIT OF CURRENT SYSTEM 132 133 /CHANGES FOR MAINTENANCE RELEASE V3C: 134 135 / 7-AUG-75 136 137 /1. CHANGED VERSION NUMBER TO V5 138 /2. INCORPORATED PATCH SEQ #1 (DSN APRIL 1975) 139 / ZERO LOCATION SOFSET WHILE BUILDING 140 /3. INCORPORATED PATCH SEQ #2 (DSN NOV. 1974) 141 / DISMISS USR AFTER ?NAME ERROR 142 /4. INCORPORATED PATCH SEQ #3 (DSN MARCH 1975) 143 / DECREASE SYSTEM SIZE BY 5 (FOR ABSLDR) WHEN BUILDING FROM PAPER TAPE 144 /5. INCORPORATED PATCH SEQ #4 (DSN APRIL 1975) 145 / ADDED 'SIZE' COMMAND TO BUILD 146 /6. FIXED BUG WHICH CAUSES SYSXY.RS NOT FOUND TO BE PRINTED 147 / ON BOOTXY.RS COMMAND 148 149 /CHANGES FOR V3D: 150 151 / 1-MAY-77 152 153 /1. FIXED PROBLEM WITH CASSETTE BUILD (JSW WAS SET WRONG) 154 /2. ALLOWED SAVING OF HIGH-ORDER DATE BITS 155 /BUILD PAGE 0 156 *1 157 000001 7402 HLT /SAFETY HALT AND PATCH SPACE 158 000002 0000 SAV1, 0 159 000003 0000 SAV2, 0 /SAVES GROUP NAME 160 *10 /AUTO INDEX REGISTERS 161 000010 0000 XR1, 0 /GENERAL PURPOSE REGISTERS 162 000011 0000 XR2, 0 163 000012 0000 XR3, 0 164 000013 0000 XR4, 0 /USED TO BUILD IMAGE TABLES 165 000014 0000 XR5, 0 166 000015 0000 LXR, 0 167 000016 0000 GNMXR, 0 168 000017 0600 L600, 600 169 170 *20 171 000020 0000 COUNT, 0 /GENERAL COUNTER LOCATION 172 000021 0000 CHAR, 0 /CHARACTER BUFFER 173 000022 0000 TEMP, 0 /TEMPORARIES 174 000023 0000 TMP1, 0 175 176 177 BUFFER=5400 178 BINARY=6000 179 DEVBUF=0400 /FIRST HANDLER AT 10400 180 /FOR REASONS TOO LONG TO GO INTO HERE, 181 /BUT WHICH HAVE TO DO WITH CURIOUS 182 /PROPERTIES OF THE NUMBER 0, 183 /HANDLERS CAN'T START AT 0. 184 /THEY COULD HAVE STARTED AT 200. 185 SOFSET=7747 /SYSTEM OFFSET. (CURRENTLY =0) 186 PG7600=BUFFER /RECORD 0 (IMAGES OF BOTH 7600'S) 187 188 LDRCTL=4113 /CHECK OS/8 ASSEMBLY 189 000024 0000 NAME1, 0 /NAME1-4 HOLDS FILE AND DEVICE NAMES 190 000025 0000 NAME2, 0 191 000026 0000 NAME3, 0 192 000027 0000 NAME4, 0 193 000030 6400 TABLMT, DSCTAB /HIGH CORE END OF DESCRIPTORS 194 /FIRST FREE LOCATION 195 000031 0000 SIZE, 0 196 000032 0400 HNDPTR, DEVBUF /POINTS TO FIRST FREE LOCATION IN HANDLER TABLE 197 198 BLDSAV=75 /**** WILL DESTROY PREVIOUS FILES 199 /START OF 40 BLOCK TO SAVE BUILD IN 200 HDRSIZ=10 /NUMBER OF ITEMS IN A DESCRIPTOR 201 000033 6400 DSCPTR, DSCTAB /ALWAYS POINTS TO BEGIN OF CURRENT DESCRIPTOR 202 000034 0000 SLOT, 0 203 000035 0000 DSKG1, 0 /NAME OF 'DSK' 204 000036 0000 DSKG2, 0 205 000037 0000 DSKP1, 0 206 000040 0000 DSKP2, 0 207 000041 0000 NEWPAG, 0 208 000042 0000 OLDPAG, 0 209 000043 0000 NEWCOR, 0 /NEW CORE MAX 210 000044 0000 SAVDAT, 0 /REMEMBERS DATE ACROSS A BOOT 211 DATEWD=7666 212 000045 0001 FLAG2, 1 /0 IF PREVIOUS SYSTEM HAD A 2-PAGE HANDLER 213 /SAMSYS, 1 /0 IF DIDN'T SPECIFY NEW SYS 214 BLOK66=0 215 000046 0000 SYSDCB, 0 216 SA=7744 217 JSW=7746 218 /BOOTDV, 0 /HANDLER ADDRESS OF DEVICE WE'RE BOOTSTRAPPING TO 219 000047 0000 SAVHID, 0 /HIGH-ORDER DATE (BITS 3-4) 220 /BEGLIN: 72 CHAR LINE BUFFER 221 222 /NEW BUILD CORE ALLOCATION: 223 224 /0000-5177 BUILD (ABSLD MUST BE ABOVE 4177) 225 /5400-5777 DEVICE HANDLER FOR LOAD 226 /5200-5377 PAPER TAPE/INIT/LINE BUFFER 227 /6000-6377 INPUT BUFFER FOR LOAD (TEMP LOC OF USR) 228 /6400-7577 DESCRIPTOR TABLE (DSCTAB) 229 230 /BINARY MUST FOLLOW BUFFER 231 /FIELD 1: HANDLERS (0400-7577) 232 /10000-10377 BLOK66 BUFFER 233 *200 234 235 000200 7610 SKP CLA /ENTRY FROM 'R BUILD' 236 000201 7402 HLT /CHAIN ENTRY ADDRESS 237 000202 1577 TAD I [7600 /SEE IF SYSTEM ALREADY EXISTS 238 000203 7041 CIA 239 000204 1176 TAD [4207 240 000205 7640 SZA CLA /IF NOT, BUILD SYSTEM FROM PAPER TAPE 241 000206 7201 CLA IAC /NOTE FACT THAT OS/8 AINT AROUND 242 000207 3575 DCA I [RETSW 243 000210 4322 JMS CORE 244 000211 3777 DCA I (AMTCOR /FIGURE OUT HOW MUCH CORE WE HAVE 245 000212 4776 JMS I (GOOD /DO SOME INITIALIZATION; IT'LL DO YA GOOD 246 000213 6201 CONFIG, CDF 0 247 000214 3775 DCA I (ECHOFLG /ALLOW TYPING 248 000215 4574 JMS I [CRLF 249 000216 1173 DOLR, TAD ["$ /OUTPUT A $ BECAUSE I'M JEWISH 250 000217 4572 JMS I [TTYOUT 251 000220 3571 DCA I [SWAPER /USE CURRENT HANDLER, NO SWAP ON ^C. 252 000221 1170 TAD [-LNLNGT 253 000222 4567 JMS I [GTEXT /READ TTY LINE 254 000223 5216 JMP DOLR 255 000224 4566 JMS I [GNAME /INTERPRET THE COMMAND 256 000225 1024 TAD NAME1 257 000226 7450 SNA 258 000227 5213 JMP CONFIG 259 000230 3021 DCA CHAR /ENABLE TEST TO WORK 260 000231 4565 JMS I [TEST /LOOK FOR THE COMMAND IN LIST 261 000232 6361 -1417;LOAD /LOAD DEVICE HANDLER BINARY 000233 1071 262 000234 5573 -2205;REPLACE /REPLACE IN SYSTEM 000235 1200 263 000236 6177 -1601;NAME /ALTER PERMANENT NAME 000237 1606 264 000240 7664 -0114;ALTER /CHANGE DEVICE HANDLER LOCATION 000241 1625 265 000242 5756 -2022;PRINT /SYSTEM STATUS 000243 2000 266 000244 5447 -2331;SYSTEM /SPECIFY SYSTEM DEVICE 000245 1216 267 000246 7561 -0217;BOOT /BOOTSTRAP THE NEW SYSTEM 000247 3210 268 000250 5262 -2516;UNLOAD /DELETE INACTIVE HANDLER 000251 2400 269 000252 7373 -0405;DELETE /DELETE ACTIVE HANDLER 000253 1214 270 000254 6662 -1116;INSERT /INSERT HANDLER IN SYSTEM 000255 1207 271 000256 5173 -2605;VERS /TYPE VERSION # 000257 0733 272 000260 7250 -0530;EXAMINE /EXAMINE LOCATION 000261 1624 273 000262 5664 -2114;QLIST /QUICK LIST 000263 2107 274 000264 7355 -0423;DSK /DSK 000265 1464 275 000266 7461 -0317;KORE /CORE 000267 4301 276 000270 7375 -0403;DCBCM /DCB 000271 1674 277 000272 7454 -0324;CTLCM /CTL 000273 1675 278 000274 5467 -2311;SIZCM /SIZE 000275 1673 279 000276 7553 BD, -0225;BUILD /BUILD 000277 5303 280 000300 0000 0 /MUST TERMINATE LIST WITH 0 281 000301 5564 JMP I [WHAT /DIDN'T FIND COMMAND 282 283 /NEW HEADER BLOCK: 284 285 / DEVICE GROUPNAME 286 / DEVICE PERMANENT NAME 287 / DCB (R/W,TYPE,MAX # OF PLATTERS) 288 / 1/2 PAGE, SYSTEM BIT, CORES BIT, REL ENTRY PT 289 / MUST BE 0 290 / SIZE OF 1 PLATTER 291 CORSIZ, 292 000302 0000 GETCHA, 0 293 000303 1033 TAD DSCPTR 294 000304 1702 TAD I GETCHA 295 000305 2302 ISZ GETCHA 296 000306 3332 DCA GETEM 297 000307 1732 TAD I GETEM 298 000310 5702 JMP I GETCHA 299 300 000311 0000 GOTCHA, 0 301 000312 3322 DCA GOTEM 302 000313 1711 TAD I GOTCHA 303 000314 1033 TAD DSCPTR 304 000315 2311 ISZ GOTCHA 305 000316 3332 DCA GETEM 306 000317 1322 TAD GOTEM 307 000320 3732 DCA I GETEM 308 000321 5711 JMP I GOTCHA 309 310 PUT=JMS I [GOTCHA 311 GET=JMS I [GETCHA 312 GOTEM, 313 000322 0000 CORE, 0 314 000323 1561 TAD I [7777 315 000324 0160 AND [70 316 000325 7112 CLL RTR 317 000326 7010 RAR 318 000327 7450 SNA 319 000330 4332 JMS RELCOR 320 000331 5722 JMP I CORE 321 322 GETEM, /POINTS INTO DSCTAB 323 000332 0000 RELCOR, 0 324 000333 7201 CLA IAC 325 000334 3302 DCA CORSIZ /MAKE RE-USABLE 326 000335 1157 TAD [7400 327 000336 3356 DCA CORX /MAKE ROUTINE REUSABLE ON 32K MACHINE 328 000337 6201 COR0, CDF 0 329 000340 1302 TAD CORSIZ 330 000341 7006 RTL 331 000342 7004 RAL 332 000343 0354 AND COR70 333 000344 1367 TAD COREX 334 000345 3346 DCA .+1 335 000346 6201 COR1, CDF /N 336 000347 1773 TAD I CORLOC 337 000350 7000 COR2, NOP 338 000351 3346 DCA COR1 339 000352 1350 TAD COR2 340 000353 3773 DCA I CORLOC 341 000354 0070 COR70, 70 342 000355 1773 TAD I CORLOC 343 000356 7400 CORX, 7400 344 000357 1356 TAD CORX 345 000360 1374 TAD CORV 346 000361 7640 SZA CLA 347 000362 5367 JMP COREX 348 000363 1346 TAD COR1 349 000364 3773 DCA I CORLOC 350 000365 2302 ISZ CORSIZ 351 000366 5337 JMP COR0 352 000367 6201 COREX, CDF 0 353 000370 7240 STA 354 000371 1302 TAD CORSIZ 355 000372 5732 JMP I RELCOR /LEAVE WITH HIGHEST EXISTENT BANK 356 357 000373 0356 CORLOC, CORX 358 000374 1400 CORV, 1400 359 000375 4551 PAGE 000376 2617 000377 3667 360 /GET GETS DESCRIPTOR ITEM FROM CURRENT DESCRIPTOR 361 /OP 362 363 /PUT PUTS DESCRIPTOR ITEM IN AC BACK IN SPECIFIED ITEM 364 /OP IN CURRENT DESCRIPTOR 365 366 /ITEMS: 367 368 /ACTIVE BIT 0=1 MEANS ENTRY POINT HAS BEEN INSERTED (IS ACTIVE) 369 /PERM1 PERMANENT NAME (FIRST 2 CHARS) 370 /PERM2 2ND 2 CHARS 371 /TWOPAG BIT 0=1 MEANS 2-PAGE HANDLER, BIT 4 IGNORED, BITS 5-11 RELATIVE ENTRY POINT 372 /PAGRES BITS 7-11 GIVE PAGE OF START OF HANDLER WHEN ROTATED 6 RT 373 /GRPNM1 GROUP NAME (DEVICE NAME) FIRST 2 CHARS 374 /GRPNM2 2ND 2 CHARS 375 /DEVSIZ GIVES SIZE OF 1 PLATTER 376 /PLATNUM # OF PLATTERS IN BITS 2-4 377 /DSKBIT BIT 1 IS FLAG FOR 'DSK' (USED TEMPORARILY BY BUILD) 378 /MAXPLT MAXIMUM NUMBER OF PLATTERS ALLOWED (IN BITS 9-11) 379 /DCB D.C.B. BIT 0: FILESTRUCTURED, BITS 3-8 DEVICE TYPE 380 / BITS 9-11 MAX NO. OF PLATTERS 381 /CORES BIT 2 MEANS ENTRY PT IS CORESIDENT WITH SYS HANDLER 382 /SYSBIT BIT 1 IS A 1 IF THE DEVICE HAS NAME 'SYS' AND IS A SYS DEVICE 383 384 /IF FIRST ENTRY OF A DESCRIPTOR IS GE 7600, THEN THIS 385 /ENTRY IS A BOOTSTRAP ENTRY. 386 /IT STARTS WITH THE NEGATIVE OF THE NUMBER OF WORDS IN THE 387 /BOOTSTRAP (FOR THE PRECEDING DEVICE), FOLLOWED BY THAT MANY WORDS 388 GRPNM1=0 389 GRPNM2=1 390 PRMNM1=2 391 PRMNM2=3 392 DCB=4 393 MAXPLT=4 394 DVTYPE=4 395 TWOPAG=5 /BIT 0 396 SYSBIT=5 /BIT 1 397 ACTIVE=6 398 ENTPT=5 399 PAGRES=6 400 PLATNUM=6 401 DEVSIZ=7 402 DSKBIT=6 /BIT 1 403 CORES=5 /BIT 2 404 /READ A LINE OF TEXT RETURN 1 IS ^U RETURN 405 000400 0000 GTEXT, 0 /ROUTINE TO COLLECT TTY INPUT 406 000401 1377 TAD (-BEGLIN /AC IS NON-ZERO 407 000402 3323 DCA ENDLIN 408 000403 3776 DCA I (RUBFLG /INITIALIZE RUBOUT TO \ 409 000404 1375 TAD (BEGLIN-1 410 000405 3015 RDTX, DCA LXR /BUFFER ADD. TO INDEX 411 000406 4556 RDTXT, JMS I [TTYIN /READ BLOODY TELETYPE 412 000407 1021 TAD CHAR 413 000410 3024 DCA NAME1 /SETUP FOR TEST AGAIN 414 000411 4565 JMS I [TEST 415 000412 7401 -377;RBOUT /RUBOUT 000413 0447 416 000414 7566 -212;LFEED /LINE FEED..ECHO CURRENT COMMAND 000415 0476 417 000416 7563 -215;CARRET /LINE TERMINATOR 000417 0467 418 000420 7545 -233;ALTMOD /ALT MODE IN SEVERAL FLAVORS 000421 0511 419 000422 7403 -375;ALTMOD 000423 0511 420 000424 7402 -376;ALTMOD 000425 0511 421 000426 7600 -200;RDTXT /IGNORE BLANKS 000427 0406 422 000430 7561 -217;RDTXT /AS WELL AS ^O 000431 0406 423 000432 7575 -203;CTRLC /BACK TO CURRENT SYSTEM 000433 4274 424 000434 7553 -225;CTRLU /CTRLU 000435 0514 425 000436 0000 0 /IF NOT ONE OF THESE, PUT IN BUFFER 426 000437 1015 TAD LXR 427 000440 1323 TAD ENDLIN 428 000441 7650 SNA CLA 429 000442 5206 JMP RDTXT /LINE OVERFLOW, STOP ECHOING 430 000443 4555 JMS I [PRNT /PRINT THE CHARACTER 431 000444 1021 TAD CHAR 432 000445 3415 DCA I LXR /AND PUT IN LINE BUFFER 433 000446 5206 JMP RDTXT /NO PROBLEMS YET 434 000447 1015 RBOUT, TAD LXR /IS THERE TEXT TO RUB OUT? 435 000450 1154 TAD [1-BEGLIN 436 000451 7650 SNA CLA 437 000452 5321 JMP RBCR /NO..SO DON'T DO ANYTHING 438 000453 1153 TAD ["\ /YES..ECHO BACKSLASH? 439 000454 2776 ISZ I (RUBFLG /IF = -1, NO 440 000455 4572 JMS I [TTYOUT 441 000456 7240 CLA CMA /IGNORE CONSECUTIVE RUBOUTS 442 000457 3776 DCA I (RUBFLG 443 000460 1015 TAD LXR 444 000461 3023 DCA TMP1 445 000462 1423 TAD I TMP1 446 000463 4572 JMS I [TTYOUT /ECHO LAST CHAR 447 000464 7240 XRBACK, CLA CMA 448 000465 1015 TAD LXR /MOVE INDEX BACK ONE 449 000466 5205 JMP RDTX 450 000467 4574 CARRET, JMS I [CRLF /GENERATE 215,212 451 000470 3415 CAR1, DCA I LXR 452 000471 3415 DCA I LXR /GUARD AGAINS CMD 453 000472 1152 TAD [BEGLIN-1 454 000473 3016 DCA GNMXR /SETUP FOR GNAME ROUTINE 455 000474 2200 ISZ GTEXT /TAKE NORMAL RETURN 456 000475 5600 JMP I GTEXT 457 458 000476 3415 LFEED, DCA I LXR /A 0 TO MARK END 459 000477 1152 TAD [BEGLIN-1 460 000500 3015 DCA LXR 461 000501 4574 JMS I [CRLF 462 000502 1173 TAD ["$ 463 000503 4572 JMS I [TTYOUT 464 000504 1415 ECHO, TAD I LXR 465 000505 7450 SNA /DONE ECHOING? 466 000506 5264 JMP XRBACK /YES..REPOSITION LXR 467 000507 4572 JMS I [TTYOUT 468 000510 5304 JMP ECHO 469 470 000511 1173 ALTMOD, TAD ["$ /ALT MODE ECHOES AS $ 471 000512 4572 JMS I [TTYOUT 472 000513 5270 JMP CAR1 473 474 000514 1151 CTRLU, TAD ["^ 475 000515 4572 JMS I [TTYOUT /GENERATE ^U 476 000516 1024 TAD NAME1 477 000517 1150 TAD [100 478 000520 4572 JMS I [TTYOUT 479 000521 4574 RBCR, JMS I [CRLF 480 000522 5600 JMP I GTEXT /TAKE ERROR RETURN 481 GETCHR=JMS I [GETC 482 BAKCHR=JMS I [BAKC 483 484 ENDLIN, 485 000523 0000 GETNUM, 0 /PICKS UP NUMBER FROM LINE BUFF 486 /DELIM CHAR PUT IN 'CHAR' 487 /PRINTS ERROR MESSAGE IF GT 4095 488 /IF NO NUMBER, TAKES RETURN 1 489 /IF NUMBER, TAKES RET 2 WITH # IN 'SIZE' 490 000524 3031 DCA SIZE 491 000525 3366 DCA GOTSW /HAVEN'T FOUND ANY DIGITS YET 492 000526 5342 JMP NCHAR 493 000527 3023 ROT, DCA TMP1 494 000530 2366 ISZ GOTSW /FOUND A DIGIT 495 000531 1031 TAD SIZE 496 000532 0145 AND [7000 497 000533 7640 SZA CLA 498 000534 5544 JMP I [BADARG /NUMBER .GT. 4095 499 000535 1031 TAD SIZE 500 000536 7106 CLL RTL 501 000537 7004 RAL /BUILD UP THE DIGIT 502 000540 1023 TAD TMP1 503 000541 3031 DCA SIZE 504 000542 4547 NCHAR, GETCHR 505 000543 7450 SNA /0 ENDS THE LINE 506 000544 5356 JMP NUMOUT 507 000545 1143 TAD [-240 /IGNORE SPACES 508 000546 7450 SNA 509 000547 5342 JMP NCHAR 510 000550 1374 TAD (-30 /TEST LIMITS 511 000551 7100 CLL 512 000552 1142 TAD [10 /MUST BE BETWEEN 0 AND 7 513 000553 7430 SZL 514 000554 5327 JMP ROT 515 000555 1373 TAD (260 /RESTORE CHAR 516 000556 3021 NUMOUT, DCA CHAR /SAVE AWAY THIS DELIMETER 517 000557 1366 TAD GOTSW /DID WE GET ANY DIGITS? 518 000560 7640 SZA CLA /? 519 000561 2323 ISZ GETNUM /YES 520 000562 5723 JMP I GETNUM /NO, RETURN 521 000563 0000 GETC, 0 /GET THE NEXT CHARACTER, ADVANCE SCAN PAST IT 522 000564 1416 TAD I GNMXR 523 000565 5763 JMP I GETC 524 525 GOTSW, /1 MEANS GOT A DIGIT 526 000566 0000 BAKC, 0 /BACK UP SCAN TO THE CHARACTER JUST LOOKED AT 527 000567 7240 STA 528 000570 1016 TAD GNMXR 529 000571 3016 DCA GNMXR 530 000572 5766 JMP I BAKC 531 000573 0260 PAGE 000574 7750 000575 5177 000576 4760 000577 2600 532 INIT=JMS I [INI 533 ADVDSC=JMS I [DSCADV 534 ADVBOT=JMS I [BOTADV 535 536 / JMS PRMNAM /SEARCH TABLE FOR A PERMANENT NAME 537 /GIVEN IN NAME1-NAME2 538 /POINT TO DESCRIPTOR FOR THIS NAME 539 / JMS ACTNAM /SAME BUT PERMANENT NAME MUST BE ACTIVE 540 / JMS BIGNAM /SEARCHES FOR PERM & GRP NAME (GRP NAME IN SAV1,SAV2) 541 / JMS GRPNAM /SAME BUT SEARCH FOR GROUP NAME 542 543 000600 0000 CHKNAM, 0 544 000601 4541 INIT 545 000602 4540 CHKLUP, ADVDSC /ADVANCE TO NEXT DESCRIPTOR 546 000603 4537 ADVBOT /ADVANCE OVER ANY BOOTSTRAP 547 000604 5312 JMP NFOUND /NO MORE- ERROR 548 000605 4562 GET 549 000606 0000 NM1, GRPNM1 /GET GROUP OR PERMANENT NAME 550 000607 7041 CIA 551 000610 1024 TAD NAME1 552 000611 7640 SZA CLA /DO FIRST WORDS MATCH? 553 000612 5202 JMP CHKLUP /NO, TRY AGAIN 554 000613 4562 GET 555 000614 0001 NM2, GRPNM2 /GET 2ND WORD 556 000615 7041 CIA 557 000616 1025 TAD NAME2 558 000617 7640 SZA CLA /2ND WORD MATCH? 559 000620 5202 JMP CHKLUP /NO 560 000621 1311 TAD BIGFLG 561 000622 7650 SNA CLA /WANT BOTH GROUP AND PERM NAME? 562 000623 5240 JMP NOBIG /NO 563 000624 4562 GET /YES 564 000625 0000 GRPNM1 565 000626 7041 CIA 566 000627 1002 TAD SAV1 567 000630 7640 SZA CLA 568 000631 5202 JMP CHKLUP 569 000632 4562 GET 570 000633 0001 GRPNM2 571 000634 7041 CIA 572 000635 1003 TAD SAV2 573 000636 7640 SZA CLA 574 000637 5202 JMP CHKLUP 575 000640 1261 NOBIG, TAD ACTSW /FOUND MATCH 576 000641 7650 SNA CLA /MUST HANDLER BE ACTIVE? 577 000642 5600 JMP I CHKNAM /NO, RETURN 578 000643 4562 GET /YES 579 000644 0006 ACTIVE 580 000645 7700 SMA CLA /IS IT ACTIVE? 581 000646 5202 JMP CHKLUP /NO, TRY AGAIN 582 000647 5600 JMP I CHKNAM /YES, RETURN 583 000650 0000 GRPNAM, 0 584 000651 1377 TAD (GRPNM1 /WANT TO SEARCH FOR GROUP NAME 585 000652 3206 DCA NM1 586 000653 1376 TAD (GRPNM2 587 000654 3214 DCA NM2 588 000655 3261 DCA ACTSW /NEED NOT BE ACTIVE 589 000656 3311 DCA BIGFLG 590 000657 4200 JMS CHKNAM /GO SEARCH 591 000660 5650 JMP I GRPNAM 592 593 000661 0000 ACTSW, 0 /1 MEANS HANDLER MUST BE ACTIVE 594 595 000662 0000 PRMNAM, 0 596 000663 3261 DCA ACTSW /AC MAY BE NON ZERO (TO MEAN ACTIVE ONLY) 597 000664 1375 TAD (PRMNM1 /WANT TO SEARCH FOR PERMANENT NAME 598 000665 3206 DCA NM1 599 000666 1374 TAD (PRMNM2 600 000667 3214 DCA NM2 601 000670 3311 DCA BIGFLG 602 000671 4200 JMS CHKNAM /GO SEARCH 603 000672 5662 JMP I PRMNAM 604 605 000673 0000 ACTNAM, 0 606 000674 7201 CLA IAC /THEY MUST BE ACTIVE 607 000675 4262 JMS PRMNAM 608 000676 5673 JMP I ACTNAM 609 610 000677 0000 BIGNAM, 0 611 000700 3261 DCA ACTSW 612 000701 1375 TAD (PRMNM1 613 000702 3206 DCA NM1 614 000703 1374 TAD (PRMNM2 615 000704 3214 DCA NM2 616 000705 7201 CLA IAC 617 000706 3311 DCA BIGFLG 618 000707 4200 JMS CHKNAM 619 000710 5677 JMP I BIGNAM 620 621 /SOMETIMES CHKNAM CAME FROM DSKASK INSTEAD OF GETSYS **** 622 623 000711 0000 BIGFLG, 0 /SET TO 1 TO CHECK GROUP & PERMANENT NAME 624 000712 4536 NFOUND, JMS I [PRNAME 625 000713 4535 JMS I [PRWD 626 000714 4016 TEXT / NOT FOUND/ 000715 1724 000716 4006 000717 1725 000720 1604 000721 0000 627 000722 5534 JMP I [CONFIG 628 629 000723 4535 NOROOM, JMS I [PRWD 630 000724 7716 TEXT /?NO ROOM/ 000725 1740 000726 2217 000727 1715 000730 0000 631 000731 3430 DCA I TABLMT /RESTORE SENTINEL 0 632 000732 5534 JMP I [CONFIG 633 634 000733 4535 VERS, JMS I [PRWD 635 000734 0225 TEXT /BUILD V6A/ 000735 1114 000736 0440 000737 2666 000740 0100 636 000741 5534 JMP I [CONFIG 637 638 /BUILD CORE CONTROL BLOCK 639 640 000742 7776 BLDCCB, -2 /2 SEGMENTS 641 000743 6203 6203 /FIELD 0 642 000744 0200 0200 /200 IS S.A. 643 000745 0000 0000 /JSW 644 000746 0000 0000 /0-7577 645 000747 3710 3710 646 000750 0000 0000 /10000-17577 647 000751 3700 3700 648 /GOES INTO WORDS 200-377 OF BLOCK 37 649 000752 7240 OK, STA /NOW USE ORIGIN TO TELL US HOW BIG A 650 000753 1773 TAD I (ORIGIN /HANDLER WAS LOADED 651 000754 0177 AND [7600 652 000755 1133 TAD [200 /REMEMBER THAT ORIGIN IS ONE GREATER 653 000756 3032 DCA HNDPTR /THAN ACTUAL LAST LOCATION. 654 /BETTER TO USE 2-PAGE BIT 655 000757 1772 TAD I (NEWLIM 656 000760 3030 DCA TABLMT /SET NEW TABLE TOP 657 000761 3430 DCA I TABLMT /NEED 0 AT END 658 000762 4532 JMS I [COMMA 659 000763 5771 JMP I (LOAD 660 000771 1071 PAGE 000772 5162 000773 5143 000774 0003 000775 0002 000776 0001 000777 0000 661 /LOAD A 1- OR 2-PAGE HANDLER INTO BUFFER 662 /USE IT TO ABSLD 663 664 001000 0000 SETUP, 0 665 001001 1131 TAD [NAME1 666 001002 3257 DCA FILPTR /POINT TO FILENAME AREA 667 001003 1377 TAD (BUFFER+1 /LOAD 2 PAGE HANDLER INTO 'BUFFER' 668 001004 3233 DCA DRIVER /SET UP ASSIGN DEVICE HANDLER 669 001005 4566 JMS I [GNAME /GET DEVICE NAME 670 001006 1024 TAD NAME1 671 001007 7650 SNA CLA 672 001010 5600 JMP I SETUP /NO ARG 673 001011 2200 ISZ SETUP 674 001012 1776 TAD I (RETSW 675 001013 7640 SZA CLA 676 001014 5775 JMP I (BLDLOD /WHEN LOADING STANDALONE, USE INTERNAL HANDLERS 677 001015 1021 TAD CHAR 678 001016 1130 TAD [-": 679 001017 7640 SZA CLA 680 001020 5774 JMP I (SETDSK /USE 'DSK ' IF NO DEVICE GIVEN 681 001021 1024 TAD NAME1 682 001022 3231 DCA DVNM1 683 001023 1025 TAD NAME2 684 001024 3232 DCA DVNM1+1 /LOOKUP DEVICE NAME 685 001025 4773 GETU, JMS I (GETUSR 686 001026 6212 CIF 10 687 001027 4533 JMS I [200 /FETCH HANDLER 688 001030 0001 1 689 SUBLUP, 690 001031 0000 DVNM1, 0 691 LODTMP, 692 001032 0000 DVNUM, 0 /NAME GOES IN HERE 693 001033 0000 DRIVER, 0 694 001034 5772 JMP I (KICKM /NO DEVICE. RELEASE MONITOR 695 001035 1021 TAD CHAR 696 001036 7640 SZA CLA 697 001037 4566 JMS I [GNAME /PICK UP FILE NAME 698 001040 1232 TAD DVNM1+1 /DEVICE NUMBER 699 001041 4771 JMS I (DTYPE /SEE IF FILE STRUCTURED 700 001042 1024 TAD NAME1 /IF FILE STRUCTURED WITH NO NAME 701 001043 7650 SNA CLA /IT IS AN ERROR 702 001044 5357 JMP NMER /V3C 703 001045 1027 TAD NAME4 /SAVE ORIGINAL EXTENSION 704 001046 3022 DCA TEMP 705 001047 1027 TAD NAME4 706 001050 7450 SNA /IF NULL 707 001051 1370 TAD (0216 /TRY .BN FIRST 708 001052 3027 TRYAGN, DCA NAME4 709 001053 1232 TAD DVNUM /GET DEVICE NUMBER 710 001054 6212 CIF 10 711 001055 4533 JMS I [200 /DO LOOKUP OF FILENAME 712 001056 0002 2 713 001057 0024 FILPTR, NAME1 714 001060 0000 0 715 001061 5352 JMP LDEXT /DIDN'T FIND FILE. DO SOMETHING 716 001062 6212 CIF 10 717 001063 4533 JMS I [200 /KICK OUT MONITOR 718 001064 0011 11 719 001065 1233 TAD DRIVER 720 001066 3527 LOADIN, DCA I [DVICE /ENTRY POINT OF HANDLER 721 001067 4767 JMS I (IOPEN /IF HERE, IT WILL FIT 722 001070 5600 JMP I SETUP 723 001071 4200 LOAD, JMS SETUP /SET UP FOR INPUT 724 001072 5526 JMP I [NODEV /NO LOAD DEVICE 725 001073 7344 STA CLL RAL /-2 DO A HANDLER LOAD 726 001074 4766 JMS I (LDABS 727 001075 5525 JMP I [BADLOD /BAD 728 001076 1430 TAD I TABLMT /SEE IF HEADER INFORMATION IS OK 729 001077 7500 SMA 730 001100 5525 JMP I [BADLOD 731 001101 1365 TAD (20 /ALLOW 16 HANDLERS/BINARY 732 001102 7710 SPA CLA 733 001103 5524 JMP I [BADINP /TOO MANY 734 001104 1430 TAD I TABLMT 735 001105 3232 DCA LODTMP /# OF LOOPS TO EXECUTE 736 001106 1030 TAD TABLMT 737 001107 1123 TAD [PAGRES+1 /POINT TO FIRST 'PAGRES' WORD 738 001110 3351 DCA HDPTR /GO THERE FOR DESCRIPTORS 739 001111 1032 TAD HNDPTR 740 001112 4522 JMS I [ROTL 741 001113 3022 DCA TEMP /PAGE OF RESIDENCE 742 001114 1022 PGLUP, TAD TEMP 743 001115 3751 DCA I HDPTR /INSERT PAGE OF RESIDENCE 744 001116 1351 TAD HDPTR 745 001117 1142 TAD [HDRSIZ 746 001120 3351 DCA HDPTR 747 001121 2232 ISZ LODTMP 748 001122 5314 JMP PGLUP 749 001123 1121 TAD [2-HDRSIZ 750 001124 1351 TAD HDPTR 751 001125 3351 DCA HDPTR /POINT TO AFTER DESCRIPTORS 752 001126 1351 TAD HDPTR 753 001127 7041 CIA 754 001130 1764 TAD I (NEWLIM 755 001131 7650 SNA CLA /AT END? 756 001132 5763 JMP I (OK /YES 757 001133 1751 TAD I HDPTR /NO, MAYBE A BOOTSTRAP RECORD 758 001134 7100 CLL 759 001135 1133 TAD [200 760 001136 7620 SNL CLA 761 001137 5525 JMP I [BADLOD /NO 762 001140 1751 TAD I HDPTR /MAYBE 763 001141 7041 CIA 764 001142 7001 IAC /OVER COUNT 765 001143 1351 TAD HDPTR 766 001144 7041 CIA 767 001145 1764 TAD I (NEWLIM 768 001146 7640 SZA CLA 769 001147 5525 JMP I [BADLOD /NO 770 001150 5763 JMP I (OK 771 001151 0000 HDPTR, 0 /POINTS INTO NEW HEADER 772 773 /DESCRIPTOR TABLE DESCRIPTION: 774 775 /'TABLMT' ALWAYS POINTS TO FIRST FREE LOCATION 776 /'DSCPTR' ALWAYS POINTS TO BEGIN OF CURRENT HEADER BLOCK 777 /ITEMS ARE OF 3 FORMS: 778 /(A) GROUP COUNT: IN RANGE -1 TO -20 (IGNORED AND HAS NO MEANING) 779 / IT IS THERE FOR COMPATIBILITY WITH OLD BUILD 780 /(B) HEADER BLOCK STARTS WITH NUMBER IN RANGE 0-7577 781 / CONSISTS OF 'HDRSIZ' CONSECUTIVE WORDS 782 / DESCRIBED ELSEWHERE 783 /(C) BOOTSTRAP BLOCK: STARTS WITH NUMBER IN RANGE 7600-7757 784 / THIS IS THE NEGATIVE OF THE NUMBER OF WORDS TO FOLLOW 785 /NON-SYSTEM HEADER INFO: 786 787 / - NUMBER OF ENTRY POINTS 788 789 /FOR EACH ENTRY POINT: 790 791 /0,1 GROUP NAME 792 /2,3 ENTRY POINT NAME (PERMANENT NAME) 793 /4 R/W FILE-STR, DEVICE TYPE, MAX # OF PLATTERS 794 /5 1/2 PAGE, REL ENTRY PT, SYSBIT, CORES 795 /6* PAGE OF HANDLER, ACTIVE BIT, # OF PLATS, DSKBIT 796 /7 SIZE OF DEVICE 797 798 /* SUPPLIED BY BUILD 799 800 001152 1022 LDEXT, TAD TEMP /DIDN'T FIND FILE 801 001153 7640 SZA CLA 802 001154 5772 JMP I (KICKM /NO RESORT 803 001155 2022 ISZ TEMP 804 001156 5252 JMP TRYAGN /TRY NULL EXTENSION 805 806 001157 6212 NMER, CIF 10 /V3C 807 001160 4533 JMS I [200 /DISMISS USR FROM CORE 808 001161 0011 11 809 001162 5520 JMP I [NAMERR 810 001163 0752 PAGE 001164 5162 001165 0020 001166 5000 001167 4447 001170 0216 001171 2144 001172 1532 001173 1536 001174 1525 001175 1546 001176 5163 001177 5401 811 001200 4777 REPLACE,JMS I (DEL /DELETE PERMANENT NAME SPECIFIED NEXT 812 001201 1021 TAD CHAR 813 001202 1240 TAD MEQ 814 001203 7640 SZA CLA /AFTER ALL DELETIONS, MUST FIND A "=" 815 001204 5517 JMP I [SYNTAX /IF NOT, WARN THE GUY 816 001205 4231 JMS INS /IF FOUND IT, NOW PERFORM INSERTIONS 817 001206 5534 JMP I [CONFIG /THE GUY HAS BEEN HUMORED 818 819 001207 4231 INSERT, JMS INS 820 001210 1021 TSTEOL, TAD CHAR /THERE SHOULDN'T BE ANYTHING AFTER EOC 821 001211 7650 SNA CLA 822 001212 5534 JMP I [CONFIG /THERE WASN'T 823 001213 5517 JMP I [SYNTAX /WARN BLOKE ABOUT EXTRA STUFF 824 825 001214 4777 DELETE, JMS I (DEL /DELETE PERMANENT NAMES SPECIFIED 826 001215 5210 JMP TSTEOL 827 828 001216 4231 SYSTEM, JMS INS /SYS IS SAME AS INSERT 829 001217 4562 GET 830 001220 0005 SYSBIT 831 001221 7006 RTL 832 001222 7730 SPA SZL CLA /BUT SYSBIT OR CORES SHOULD BE ON 833 001223 5210 JMP TSTEOL /JUST TO HUMOR IT'S NAME 834 001224 4535 TWOSYS, JMS I [PRWD /AND FOR COMPATIBILITY REASONS 835 001225 7723 TEXT /?SYS/ 001226 3123 001227 0000 836 001230 5534 JMP I [CONFIG 837 001231 0000 INS, 0 838 001232 1376 TAD (STL RAR 839 001233 3775 DCA I (ACTION /SET 'ACTION' FOR INSERTIONS 840 001234 4516 JMS I [TSTNAM /LOOK FOR A NAME 841 001235 4515 JMS I [GRPNAM /GET GROUP NAME 842 001236 4336 JMS SAVNAM 843 001237 4565 JMS I [TEST 844 001240 7503 MEQ, -"=;ACT 001241 1267 845 001242 7524 -",;INSNAM 001243 1251 846 001244 7506 -":;INSNAM 001245 1251 847 001246 4000 4000;ACT 001247 1267 848 001250 0000 0 849 001251 4516 INSNAM, JMS I [TSTNAM /GRAB A NAME 850 001252 4514 INSGN, JMS I [BIGNAM /GET PERMANENT NAME WITH SPECIFIED GROUP NAME 851 001253 4562 GET 852 001254 0000 GRPNM1 853 001255 7041 CIA 854 001256 1002 TAD SAV1 855 001257 7640 SZA CLA 856 001260 5513 JMP I [NFOUND /MAKE SURE PERMANENT NAME FOUND 857 001261 4562 GET /HAS GROUP NAME PREVIOUSLY SPECIFIED 858 001262 0001 GRPNM2 859 001263 7041 CIA 860 001264 1003 TAD SAV2 861 001265 7640 SZA CLA 862 001266 5513 JMP I [NFOUND 863 001267 4774 ACT, JMS I (SETACT /SET ACTIVE BIT 864 001270 4565 COM, JMS I [TEST 865 001271 7523 -"-;HYPH 001272 1344 866 001273 7524 -",;INSNAM 001274 1251 867 001275 7503 -"=;INPLAT 001276 1301 868 001277 0000 0 869 001300 5631 JMP I INS 870 001301 4512 INPLAT, JMS I [GETNUM /AN "=" 871 001302 5517 JMP I [SYNTAX 872 001303 1031 TAD SIZE 873 001304 7650 SNA CLA 874 001305 5544 JMP I [BADARG /=0 ILLEGAL 875 001306 4562 GET 876 001307 0004 MAXPLT 877 001310 0123 AND [7 /GET MAXIMUM # OF PLATTERS ALLOWED 878 001311 7450 SNA 879 001312 7001 IAC /0 MEANT 1 880 001313 7140 CMA CLL 881 001314 1031 TAD SIZE /COMPARE WITH USER'S REQUEST 882 001315 7630 SZL CLA /IS HIS REQUEST OKAY? 883 001316 5331 JMP BADPLT /REQUEST-SHMEST. TOO MANY PLATTERS 884 001317 1031 TAD SIZE 885 001320 4511 JMS I [ROTR 886 001321 3031 DCA SIZE 887 001322 4562 GET 888 001323 0006 PLATNUM 889 001324 0373 AND (6177 890 001325 1031 TAD SIZE /STORE AWAY HIS STATED NUMBER OF PLATTERS 891 001326 4563 PUT /FOR FUTURE USE BY 'BOOT' 892 001327 0006 PLATNUM 893 001330 5270 JMP COM /REJOIN PROCESSING 894 895 001331 4535 BADPLT, JMS I [PRWD 896 001332 7720 TEXT /?PLAT/ 001333 1401 001334 2400 897 001335 5534 JMP I [CONFIG 898 001336 0000 SAVNAM, 0 899 001337 1024 TAD NAME1 900 001340 3002 DCA SAV1 /SAVE GROUP NAME 901 001341 1025 TAD NAME2 902 001342 3003 DCA SAV2 903 001343 5736 JMP I SAVNAM 904 905 001344 1025 HYPH, TAD NAME2 906 001345 0110 AND [77 907 001346 7041 CIA 908 001347 3360 DCA DETEM 909 001350 4547 GETCHR 910 001351 0110 AND [77 911 001352 1360 TAD DETEM /GET CHAR AFTER HYPEN 912 001353 7650 SNA CLA /REACHED IT YET? 913 001354 5361 JMP IGET /YES, WELL TRY FOR MORE STUFF 914 001355 4546 BAKCHR /NO, PUT IT BACK FOR FUTURE USE 915 001356 2025 ISZ NAME2 /FORM NEXT SEQUENTIAL NAME 916 001357 5252 JMP INSGN /GO INSERT IT 917 /DO WE REALLY HAVE TO START SEARCH AT CURRENT DESCR? 918 919 001360 0000 DETEM, 0 920 921 001361 4547 IGET, GETCHR 922 001362 3021 DCA CHAR 923 001363 5270 JMP COM 924 925 001364 4535 NODEV, JMS I [PRWD 926 001365 7704 TEXT /?DEVICE/ 001366 0526 001367 1103 001370 0500 927 001371 5534 JMP I [CONFIG 928 001373 6177 PAGE 001374 1400 001375 1404 001376 7130 001377 1410 929 INTEM, 930 001400 0000 SETACT, 0 931 001401 4562 GET 932 001402 0006 ACTIVE /GET ACTIVATION BIT 933 001403 7004 RAL 934 001404 7130 ACTION, STL RAR /ACTIVATE IT (SET TO 'CLL RAR' TO DEACT) 935 001405 4563 PUT 936 001406 0006 ACTIVE /RESTORE 937 001407 5600 JMP I SETACT 938 939 001410 0000 DEL, 0 940 001411 1377 TAD (CLL RAR 941 001412 3204 DCA ACTION 942 001413 4516 DELNAM, JMS I [TSTNAM /PARSE OFF A NAME 943 001414 4507 DELGN, JMS I [ACTNAM /FIND IT AS AN ACTIVE PERMANENT NAME 944 001415 4200 JMS SETACT /DEACTIVATE IT 945 001416 4562 GET 946 001417 0006 PLATNUM 947 001420 0106 AND [6177 /SET # OF PLATTERS TO 0 948 001421 4563 PUT 949 001422 0006 PLATNUM 950 001423 4565 DCOM, JMS I [TEST 951 001424 7523 -"-;DHYPH 001425 1432 952 001426 7524 -",;DELNAM 001427 1413 953 001430 0000 0 954 001431 5610 JMP I DEL 955 956 001432 1025 DHYPH, TAD NAME2 957 001433 0110 AND [77 958 001434 7041 CIA 959 001435 3200 DCA INTEM 960 001436 4547 GETCHR 961 001437 0110 AND [77 962 001440 1200 TAD INTEM 963 001441 7650 SNA CLA /REACHED FINAL NAME? 964 001442 5247 JMP DGET /YES 965 001443 4546 BAKCHR /NO, PUT FINAL LETTER BACK 966 001444 2025 ISZ NAME2 /YES, BUMP TO NEXT NAME 967 001445 0423 L0423, 423 968 001446 5214 JMP DELGN /DELETE NEXT ONE IN SUCCESSION 969 001447 4547 DGET, GETCHR 970 001450 3021 DCA CHAR 971 001451 5223 JMP DCOM 972 973 001452 0000 TTYIN, 0 /TTY INPUT ROUTINE 974 001453 6031 KSF 975 001454 5253 JMP .-1 976 001455 6036 KRB 977 001456 7450 SNA /LOW LEVEL BLANK IGNORE 978 001457 5253 JMP TTYIN+1 979 001460 0105 AND [177 /HANDLE PARITY 980 001461 1133 TAD [200 981 001462 3021 DCA CHAR 982 001463 5652 JMP I TTYIN 983 /DSK=ACTIVE PERMANENT NAME 984 /DSK=GROUPNAME:PERMANENT NAME 985 /DSK= MEANS NO DSK SPECIFIED, USE 'SYS' 986 987 /JUST REMEMBERS NAME (NOTHING ELSE) 988 989 001464 4566 DSK, JMS I [GNAME /GET A NAME 990 001465 1024 TAD NAME1 991 001466 7650 SNA CLA 992 001467 5313 JMP NODSK 993 001470 1021 TAD CHAR 994 001471 7450 SNA 995 001472 5315 JMP NOCOL 996 001473 1130 TAD [-": 997 001474 7640 SZA CLA /IS IT FOLLOWED BY A ":"? 998 001475 5517 JMP I [SYNTAX /NO, ASSUME HE'S GIVING AN ACTIVE PERMANENT NAME 999 /THIS IS FOR COMPATIBILITY WITH OLD BUILD 1000 / JMS I [GRPNAM /YES, ITS A GROUP NAME 1001 001476 1024 TAD NAME1 /SAVE IT 1002 001477 3035 DCA DSKG1 1003 001500 1025 TAD NAME2 1004 001501 3036 DCA DSKG2 1005 001502 4516 JMS I [TSTNAM /GET PERMANENT NAME 1006 001503 1024 PN, TAD NAME1 1007 001504 3037 DCA DSKP1 /DON'T WORRY NOW IF IT'S AROUND 1008 001505 1025 TAD NAME2 1009 001506 3040 DCA DSKP2 1010 001507 1021 TAD CHAR 1011 001510 7640 SZA CLA 1012 001511 5517 JMP I [SYNTAX 1013 001512 5534 JMP I [CONFIG 1014 1015 001513 3035 NODSK, DCA DSKG1 /FIRST WORD 0 MEANS NONE SPECIFIED 1016 001514 5534 JMP I [CONFIG 1017 1018 001515 4507 NOCOL, JMS I [ACTNAM /IT MUST BE AN ACTIVE HANDLER 1019 001516 4562 GET 1020 001517 0000 GRPNM1 1021 001520 3035 DCA DSKG1 1022 001521 4562 GET 1023 001522 0001 GRPNM2 1024 001523 3036 DCA DSKG2 1025 001524 5303 JMP PN 1026 001525 1245 SETDSK, TAD L0423 /DS 1027 001526 3776 DCA I (DVNM1 1028 001527 1375 TAD (1300 /K 1029 001530 3774 DCA I (DVNM1+1 1030 001531 5773 JMP I (GETU 1031 1032 001532 6212 KICKM, CIF 10 /RELEASE MONITOR AND RELOAD 1033 001533 4533 JMS I [200 /OUR DEVICES 1034 001534 0011 11 1035 001535 5513 JMP I [NFOUND 1036 1037 001536 0000 GETUSR, 0 1038 001537 6212 CIF 10 1039 001540 4504 JMS I [7700 /LOCK IN MONITOR 1040 001541 0010 10 1041 001542 6212 CIF 10 /RESET RESIDENT HANDLER TABLE 1042 001543 4533 JMS I [200 1043 001544 0013 13 1044 001545 5736 JMP I GETUSR 1045 / CODE FOR USING INTERNAL HANDLERS ON STANDALONE LOAD: 1046 1047 001546 3772 BLDLOD, DCA I (FILPTR /LOAD DEV 1048 001547 4507 JMS I [ACTNAM /MUST BE ACTIVE 1049 001550 4503 JMS I [GETPG 1050 001551 3355 DCA HNDLOK /LOCATION OF HANDLER 1051 001552 1157 TAD [-400 1052 001553 4502 JMS I [MOVE 1053 001554 6211 CDF 10 1054 001555 7402 HNDLOK, HLT 1055 001556 6201 CDF 0 1056 001557 5400 PBUFFER,BUFFER 1057 001560 4562 GET 1058 001561 0004 DCB 1059 001562 3370 DCA BLDCB 1060 001563 4562 GET 1061 001564 0005 ENTPT 1062 001565 0105 AND [177 1063 001566 1357 TAD PBUFFER /GET ENTRY POINT OF HANDLER 1064 001567 5771 JMP I (LOADIN 1065 1066 001570 0000 BLDCB, 0 /CONTAINS DCB OF CURRENT LOAD HANDLER 1067 001571 1066 PAGE 001572 1057 001573 1025 001574 1032 001575 1300 001576 1031 001577 7110 1068 001600 0000 GETPG, 0 1069 001601 4562 GET 1070 001602 0006 PAGRES 1071 001603 4511 JMS I [ROTR 1072 001604 0177 AND [7600 1073 001605 5600 JMP I GETPG 1074 1075 /FORMAT: NAME OLDNAME=NEWNAME 1076 1077 001606 4363 NAME, JMS TSTNAM /SEE IF ARGUMENT SUPPLIED 1078 /SEARCH PERMANENT TABLES 1079 001607 4507 JMS I [ACTNAM /GET ACTIVE PERMANENT NAME DESCRIPTOR 1080 001610 1021 TAD CHAR 1081 001611 1304 TAD MEQL /CHECK FOR = 1082 001612 7640 SZA CLA 1083 001613 5544 JMP I [BADARG 1084 001614 4363 JMS TSTNAM /GET NEW DEVICE NAME 1085 001615 1024 TAD NAME1 /REPLACE THE NAME 1086 001616 4563 PUT 1087 001617 0002 PRMNM1 1088 001620 1025 TAD NAME2 1089 001621 4563 PUT 1090 001622 0003 PRMNM2 1091 001623 5534 JMP I [CONFIG 1092 001624 7201 EXAMINE,CLA IAC 1093 001625 3316 ALTER, DCA XSWTCH 1094 001626 4516 JMS I [TSTNAM /ALTER ALLOWS MODS TO A PARTICULAR 1095 001627 4515 JMS I [GRPNAM /HANDLER'S ACTUAL CODE. 1096 /LOOK AT DEVICE TYPE ENTRY 1097 001630 4200 JMS GETPG /GET PAGE OF RESIDENCE 1098 001631 3272 DCA PAGAD /SAVE IT. 1099 001632 4512 JMS I [GETNUM /GET RELATIVE LOC TO ALTER 1100 001633 5517 JMP I [SYNTAX /NO NUMBER 1101 001634 4562 GET 1102 001635 0005 P2PAG, TWOPAG /IS THIS A 2-PAGE HANDLER? 1103 001636 7710 SPA CLA 1104 001637 1177 TAD [7600 1105 001640 1177 TAD [7600 /ALLOW 200 OR 400 MAXIMUM 1106 001641 7100 CLL 1107 001642 1031 TAD SIZE /IS THE # TO ALTER TOO LARGE? 1108 001643 7630 SZL CLA 1109 001644 5544 JMP I [BADARG /I GUESS IT IS 1110 001645 1031 TAD SIZE 1111 001646 1272 TAD PAGAD /GET ABSOLUTE LOCATION 1112 001647 3272 DCA PAGAD 1113 001650 1316 TAD XSWTCH 1114 001651 7640 SZA CLA /EXAMINE OR ALTER? 1115 001652 5331 JMP EXAM /EXAMINE 1116 001653 1021 TAD CHAR /ALTER 1117 001654 7640 SZA CLA /CR? 1118 001655 5264 JMP GETVAL /NO 1119 001656 4333 JMS EXAMSB /YES, GIVE GUY OLD VALUE FIRST 1120 001657 1101 ODTL, TAD ["/ /ODT LIKE 1121 001660 4572 JMS I [TTYOUT 1122 001661 1104 TAD [-100 1123 001662 4567 JMS I [GTEXT 1124 001663 5257 JMP ODTL 1125 001664 4512 GETVAL, JMS I [GETNUM /GET NEW CONTENTS 1126 001665 5777 JMP I (TSTEOL /NO NUMBER 1127 001666 1031 TAD SIZE 1128 001667 6211 CDF 10 1129 001670 3672 DCA I PAGAD /REPLACE THAT LOC. 1130 001671 5534 JMP I [CONFIG /AND GET OUT 1131 001672 0000 PAGAD, 0 1132 1133 /ALTER GROUPNAME,LOC=NEWVALUE 1134 /ALTER GROUPNAME,LOC 1135 /EXAMINE GROUPNAME,LOC 1136 /SIZE ACTNAM 1137 /SIZE ACTNAM=VALUE 1138 /DCB ACTNAM 1139 /DCB ACTNAM=VALUE 1140 /CTL ACTNAM 1141 /CTL ACTNAM=VALUE 1142 1143 001673 1376 SIZCM, TAD (3 /SIZE COMMAND V3C 1144 001674 1161 DCBCM, TAD [-1 /EXAMINE DCB WORD 1145 001675 1235 CTLCM, TAD P2PAG /EXAMINE CONTROL WORD 1146 001676 3316 DCA PUTAT 1147 001677 1316 TAD PUTAT 1148 001700 3321 DCA LOOKAT 1149 001701 4516 JMS I [TSTNAM /GET A NAME 1150 001702 4507 JMS I [ACTNAM /IT MUST BE ACTIVE 1151 001703 4565 JMS I [TEST 1152 001704 7503 MEQL, -"=;INPDCB 001705 1712 1153 001706 4000 4000;EXAMDCB 001707 1720 1154 001710 0000 0 1155 001711 5517 JMP I [SYNTAX 1156 001712 4512 INPDCB, JMS I [GETNUM 1157 001713 5534 JMP I [CONFIG /IGNORE = NOTHING 1158 001714 1031 TAD SIZE 1159 001715 4563 PUT 1160 XSWTCH, /0 MEANS ALTER, 1 MEANS EXAMINE 1161 001716 0004 PUTAT, DCB 1162 001717 5534 JMP I [CONFIG /THE USER LIVES DANGEROUSLY 1163 1164 001720 4562 EXAMDCB,GET 1165 001721 0004 LOOKAT, DCB 1166 001722 4341 JMS PUTNUM 1167 001723 1101 TAD ["/ 1168 001724 4572 JMS I [TTYOUT 1169 001725 1104 TAD [-100 1170 001726 4567 JMS I [GTEXT 1171 001727 5320 JMP EXAMDCB 1172 001730 5312 JMP INPDCB /NOW PARSE OFF THE REPLY 1173 001731 4333 EXAM, JMS EXAMSB 1174 001732 5534 JMP I [CONFIG 1175 1176 001733 0000 EXAMSB, 0 1177 001734 6211 CDF 10 1178 001735 1672 TAD I PAGAD /GET CURRENT CONTENTS 1179 001736 6201 CDF 0 1180 001737 4341 JMS PUTNUM /PRINT IT 1181 001740 5733 JMP I EXAMSB 1182 1183 001741 0000 PUTNUM, 0 /PRINT AN OCTAL NUMBER 1184 001742 3362 DCA PTM 1185 001743 1100 TAD [-4 /4 DIGITS 1186 001744 3363 DCA PKNT 1187 001745 1362 PLOOP, TAD PTM 1188 001746 7006 RTL 1189 001747 7006 RTL 1190 001750 0123 AND [7 1191 001751 1375 TAD (60 1192 001752 4572 JMS I [TTYOUT 1193 001753 1362 TAD PTM 1194 001754 7006 RTL 1195 001755 7004 RAL 1196 001756 3362 DCA PTM 1197 001757 2363 ISZ PKNT 1198 001760 5345 JMP PLOOP 1199 001761 5741 JMP I PUTNUM 1200 001762 0000 PTM, 0 1201 1202 PKNT, 1203 001763 0000 TSTNAM, 0 1204 001764 4566 JMS I [GNAME /COLLECT NAME 1205 001765 1024 TAD NAME1 /IF NO NAME FOUND, GIVE ERROR 1206 001766 7640 SZA CLA 1207 001767 5763 JMP I TSTNAM 1208 001770 4535 NAMERR, JMS I [PRWD 1209 001771 7716 TEXT /?NAME/ 001772 0115 001773 0500 1210 001774 5534 JMP I [CONFIG 1211 001775 0060 PAGE 001776 0003 001777 1210 1212 /PRINT FUNCTION TYPES OUT THE STATUS OF BUILD ON COMMAND 1213 /AN * BESIDE A DEVICE INDICATES THAT IT IS CURRENTLY MARKED 1214 /FOR INSERTION IN THE SYSTEM BEING BUILT. 1215 1216 TTY240, 1217 002000 7240 PRINT, STA 1218 002001 3042 DCA OLDPAG /SET ILLEGAL OLD PAGE 1219 002002 4541 INIT 1220 002003 2777 ISZ I (LINEUP /MAKE THINGS LINE UP 1221 002004 4540 PRLUP, ADVDSC /ADVANCE TO NEXT DESCRIPTOR 1222 002005 4537 ADVBOT /ADVANCE PAST A BOOTSTRAP (IF ANY) 1223 002006 5246 JMP DONE /ALL DONE 1224 002007 4503 JMS I [GETPG /GET PAGE OF NEW HANDLER 1225 002010 3041 DCA NEWPAG 1226 002011 1041 TAD NEWPAG 1227 002012 7041 CIA 1228 002013 1042 TAD OLDPAG /COMPARE WITH LAST HANDLER'S PAGE 1229 002014 7650 SNA CLA /SAME? 1230 002015 5224 JMP PRTPER /YES 1231 002016 4574 JMS I [CRLF /NO, GO TO NEXT LINE 1232 002017 1041 TAD NEWPAG 1233 002020 3042 DCA OLDPAG 1234 002021 4234 JMS PGNAME 1235 002022 1200 TAD TTY240 1236 002023 4572 JMS I [TTYOUT 1237 002024 4562 PRTPER, GET /GET ACTIVE BIT 1238 002025 0006 ACTIVE 1239 002026 7710 SPA CLA /IS IT ACTIVE? 1240 002027 1376 TAD ("*-STA /YES, PRINT * 1241 002030 1200 TAD TTY240 /NO, PRINT SPACE 1242 002031 4572 JMS I [TTYOUT 1243 002032 4326 JMS PNAME /PRINT PERMANENT NAME 1244 002033 5204 JMP PRLUP 1245 1246 002034 0000 PGNAME, 0 1247 002035 4562 GET 1248 002036 0000 GRPNM1 1249 002037 4775 JMS I (PRINTE /PRINT GROUP NAME 1250 002040 4562 GET 1251 002041 0001 GRPNM2 1252 002042 4775 JMS I (PRINTE 1253 002043 1374 TAD (": 1254 002044 4572 JMS I [TTYOUT 1255 002045 5634 JMP I PGNAME 1256 002046 3777 DONE, DCA I (LINEUP /NO MORE LINE-UP 1257 002047 1035 TAD DSKG1 1258 002050 7650 SNA CLA 1259 002051 5272 JMP TELCOR 1260 002052 4574 JMS I [CRLF /TELL GUY ABOUT 'DSK' 1261 002053 4574 JMS I [CRLF 1262 002054 4535 JMS I [PRWD 1263 002055 0423 TEXT /DSK=/ 002056 1375 002057 0000 1264 002060 1035 TAD DSKG1 1265 002061 4775 JMS I (PRINTE 1266 002062 1036 TAD DSKG2 1267 002063 4775 JMS I (PRINTE 1268 002064 1374 TAD (": 1269 002065 4572 JMS I [TTYOUT 1270 002066 1037 TAD DSKP1 1271 002067 4775 JMS I (PRINTE 1272 002070 1040 TAD DSKP2 1273 002071 4775 JMS I (PRINTE 1274 002072 1043 TELCOR, TAD NEWCOR 1275 002073 7450 SNA 1276 002074 5534 JMP I [CONFIG /NO SPECIFIED CORE LIMIT 1277 002075 4522 JMS I [ROTL 1278 002076 1373 TAD (6000 1279 002077 3305 DCA CORMSG+3 1280 002100 4574 JMS I [CRLF 1281 002101 4535 JMS I [PRWD 1282 002102 0317 CORMSG, TEXT /CORE= / 002103 2205 002104 7540 002105 0000 1283 002106 5534 JMP I [CONFIG 1284 /QUICK PRINT 1285 1286 002107 4541 QLIST, INIT 1287 002110 4540 QLUP, ADVDSC /ADVANCE TO NEXT DESCRIPTOR 1288 002111 4537 ADVBOT /ADVANCE OVER ANY BOOTSTRAP IF NECESSARY 1289 002112 5246 JMP DONE /GO AWAY WHEN NO MORE 1290 002113 4562 GET 1291 002114 0006 ACTIVE /GET ACTIVE BIT 1292 002115 7700 SMA CLA /IS IT ACTIVE? 1293 002116 5310 JMP QLUP /NO, IGNORE IT 1294 002117 4562 GET /YES 1295 002120 0005 SYSBIT 1296 002121 7004 RAL 1297 002122 7710 SPA CLA /IS IT 'SYS'? 1298 002123 4234 JMS PGNAME /YES, PRINT GROUP NAME TOO 1299 002124 4326 JMS PNAME /NO, PRINT PERMANENT NAME ONLY 1300 002125 5310 JMP QLUP 1301 1302 DT, 1303 002126 0000 PNAME, 0 1304 002127 4562 GET 1305 002130 0002 PRMNM1 1306 002131 4775 JMS I (PRINTE 1307 002132 4562 GET 1308 002133 0003 PRMNM2 1309 002134 4775 JMS I (PRINTE 1310 002135 1200 TAD TTY240 1311 002136 4572 JMS I [TTYOUT 1312 002137 5726 JMP I PNAME 1313 DCBTBL=7760 1314 1315 002140 4536 WHAT, JMS I [PRNAME 1316 002141 4535 JMS I [PRWD 1317 002142 7700 TEXT /?/ /FOR WHEN A COMMAND ERROR OCCURS 1318 002143 5534 JMP I [CONFIG 1319 1320 1321 002144 0000 DTYPE, 0 /RETURNS TYPE OF OUTPUT 1322 002145 1372 TAD (DCBTBL-1 1323 002146 3326 DCA DT /ENTRY AC HAD DEVICE # 1324 002147 6211 CDF 10 1325 002150 1726 TAD I DT /IF FILE DEVICE, LINK=0 1326 002151 6201 CDF 0 1327 002152 7044 CMA RAL /ALSO, IF FILE AC=0 ON EXIT 1328 002153 7204 CLA RAL 1329 002154 5744 JMP I DTYPE 1330 002155 0000 WRITCC, 0 1331 002156 1121 TAD [-6 /PUT IN DATA BREAK FILLERS 1332 002157 4502 JMS I [MOVE 1333 002160 6201 CDF 0 1334 002161 2237 K7750 1335 002162 6201 CDF 0 1336 002163 5750 PG7600+200+150 1337 002164 1371 TAD (4200 1338 002165 4477 JMS I [SYS /WRITE NEW CCB 1339 002166 0542 BLDCCB-200 1340 002167 0037 37 1341 002170 5755 JMP I WRITCC 1342 002171 4200 PAGE 002172 7757 002173 6000 002174 0272 002175 4622 002176 1012 002177 4704 1343 002200 4535 TOOMANY,JMS I [PRWD 1344 002201 7710 TEXT /?HANDLERS/ 002202 0116 002203 0414 002204 0522 002205 2300 1345 002206 5534 JMP I [CONFIG 1346 1347 002207 4574 BADLOD, JMS I [CRLF 1348 002210 4535 JMS I [PRWD 1349 002211 7702 TEXT /?BAD LOAD/ 002212 0104 002213 4014 002214 1701 002215 0400 1350 002216 3430 DCA I TABLMT /RESTORE SENTINEL 0 1351 002217 5534 JMP I [CONFIG 1352 002220 0000 TEST, 0 /TEST CHAR AGAINST ARGUMENTS 1353 002221 1620 TAD I TEST /PICK UP ARGUMENT FROM LIST 1354 002222 7450 SNA /0 TERMINATES 1355 002223 5620 JMP I TEST 1356 002224 1021 TAD CHAR /SEE IF THEY COMPARE = 1357 002225 0377 AND (3777 /COMPARE ONLY LOW ORDER, THUS ALLOWING '4000' TO MEAN '0' 1358 002226 7650 SNA CLA 1359 002227 5233 JMP TSTOVR /THEY DO..DISPATCH TO TABLE 1360 002230 2220 ISZ TEST 1361 002231 2220 ISZ TEST 1362 002232 5221 JMP TEST+1 /THEY DON'T. KEEP GOING 1363 002233 2220 TSTOVR, ISZ TEST 1364 002234 1620 TAD I TEST 1365 002235 3022 DCA TEMP 1366 002236 5422 JMP I TEMP 1367 1368 002237 7750 K7750, 7750 /DATA BREAK FILLERS 1369 002240 7751 7751 1370 002241 7752 7752 1371 002242 7753 7753 1372 002243 7754 7754 1373 002244 7755 7755 1374 1375 002245 0000 SYS, 0 /SAVES A FEW WORDS IN SYSTEM CALLS 1376 002246 3256 DCA SYCTL /SAVE FUNCTION WORD 1377 002247 1645 TAD I SYS 1378 002250 3257 DCA SYBUF /BUFFER BEING USED 1379 002251 2245 ISZ SYS 1380 002252 1645 TAD I SYS 1381 002253 3260 DCA SYREC /RECORD # 1382 002254 2245 ISZ SYS /THERE IS NO ERROR RETURN 1383 /IF SWAPER SET AND BOOTDV SET, USE SPECIAL BOOT HANDLER HERE 1384 002255 4672 GO, JMS I SYSENT 1385 002256 0000 SYCTL, 0 1386 002257 0000 SYBUF, 0 1387 002260 0000 SYREC, 0 1388 002261 7610 SKP CLA 1389 002262 5645 JMP I SYS 1390 002263 4535 JMS I [PRWD 1391 002264 2331 TEXT /SYS ERR/ 002265 2340 002266 0522 002267 2200 1392 002270 7402 HLT /IF USER IS DARING, HIT CONTINUE TO RETRY 1393 002271 5255 JMP GO 1394 1395 002272 7607 SYSENT, 7607 1396 /***************** 1397 / 1398 / SYS HANDLER IS 2-PAGES LONG IF LOCATION 7612 IS A 3 1399 / 1400 /****************** 1401 1402 002273 0000 CLRTBL, 0 1403 002274 1076 TAD [BEGLIN 1404 002275 3010 DCA XR1 1405 002276 1177 TAD [-200 /ZERO OUT 5200-5377 1406 002277 3023 DCA TMP1 1407 002300 3410 DCA I XR1 1408 002301 2023 ISZ TMP1 1409 002302 5300 JMP .-2 1410 002303 5673 JMP I CLRTBL 1411 1412 /FOR HANDLER ONLY 1413 002304 0000 ORGLIM, 0 /THIS ROUTINE MAKES CERTAIN THAT 1414 002305 3273 DCA CLRTBL /THE ORIGIN FOR LDABS IS WITHIN 1415 002306 1273 TAD CLRTBL /THE BOUNDS SPECIFIED BY SIZE 1416 002307 1177 TAD [7600 /AND THE CONTENTS OF HNDPTR 1417 002310 7510 SPA 1418 002311 5331 JMP BADORG /ORIGIN BELOW 200 1419 002312 7041 CIA 1420 002313 1167 TAD [400 /IS ORIGIN WITHIN UPPER BOUND? 1421 002314 7710 SPA CLA 1422 002315 5331 JMP BADORG 1423 002316 1273 TAD CLRTBL 1424 002317 1177 TAD [7600 /NOW GIVE BACK RELATIVE BUFFER 1425 002320 1032 TAD HNDPTR /ADDRESS IN FIELD 1 1426 002321 3273 DCA CLRTBL 1427 002322 1273 TAD CLRTBL 1428 002323 0177 AND [7600 1429 002324 1133 TAD [200 1430 002325 7650 SNA CLA 1431 002326 5776 JMP I (NOROOM /CAN'T 'ORIGIN' INTO PAGE 7600 1432 002327 1273 TAD CLRTBL 1433 002330 5704 JMP I ORGLIM 1434 1435 002331 4535 BADORG, JMS I [PRWD 1436 002332 7717 TEXT /?ORIGIN/ 002333 2211 002334 0711 002335 1600 1437 002336 5775 JMP I (OVROUT 1438 1439 /SOMEWHERE TEST IF HE GAVE US A 2-PAGE BUT REQ A 1-PAGE 1440 / PG7600_0 1441 / BLOK66_66 1442 / IF OLD SYS WAS 1 PAGE, BLOK66/L_PG7600/L 1443 1444 002337 0000 RECZRO, 0 /READS FIELD 1 CODE, EVEN FOR 12K TD8E 1445 002340 1133 TAD [200 1446 002341 4477 JMS I [SYS /READ RECORD 0 1447 002342 5400 PG7600 1448 002343 0000 0 /THAT NORMALLY CONTAINS FIELD 1 1449 002344 1374 TAD (210 1450 002345 4477 JMS I [SYS /READ RECORD 66 1451 002346 0000 BLOK66 1452 002347 0066 66 1453 002350 1045 TAD FLAG2 /DID PREVIOUS SYSTEM HAVE A 2-PAGE HANDLER? 1454 002351 7640 SZA CLA 1455 002352 1177 TAD [-200 /NO 1456 002353 4502 JMS I [MOVE /YES 1457 002354 6201 CDF 0 1458 002355 5400 PG7600 1459 002356 6211 CDF 10 1460 002357 0000 BLOK66 1461 002360 5737 JMP I RECZRO 1462 1463 002361 4535 NOTNUF, JMS I [PRWD 1464 002362 7703 TEXT /?CORE/ 002363 1722 002364 0500 1465 002365 5534 JMP I [CONFIG 1466 002374 0210 PAGE 002375 4724 002376 0723 002377 3777 1467 002400 4516 UNLOAD, JMS I [TSTNAM /PULL OFF A NAME 1468 002401 4515 JMS I [GRPNAM /IT HAD BETTER BE A GROUP NAME 1469 002402 4565 JMS I [TEST 1470 002403 7506 -":;UNLPRM 002404 2411 1471 002405 4000 4000;UNLGRP 002406 2423 1472 002407 0000 0 1473 002410 5517 JMP I [SYNTAX 1474 1475 002411 4777 UNLPRM, JMS I (SAVNAM /UNLOAD PARTICULAR HANDLER 1476 002412 4516 UNLNAM, JMS I [TSTNAM 1477 002413 4514 JMS I [BIGNAM 1478 002414 1033 TAD DSCPTR /DELETE A SINGLE DESCRIPTOR 1479 002415 3336 DCA SAVPTR /DON(T DELETE HANDLER 1480 002416 1033 TAD DSCPTR /OR BOOTSTRAP 1481 002417 1142 TAD [HDRSIZ /NO RELOCATION NECESSARY 1482 002420 3334 DCA LSTPTR 1483 002421 1030 TAD TABLMT 1484 002422 5330 JMP NOMOR 1485 002423 4503 UNLGRP, JMS I [GETPG /GET PAGE OF RESIDENCE 1486 002424 3245 DCA TOMOV /START OF HANDLER 1487 002425 4562 GET 1488 002426 0005 TWOPAG /IS IT A 1- OR 2- PAGE HANDLER? 1489 002427 7710 SPA CLA 1490 002430 1133 TAD [200 /2 PAGE 1491 002431 1133 TAD [200 /1 PAGE 1492 002432 3353 DCA UNSIZE 1493 002433 1245 TAD TOMOV /DELETE HANDLER AND MOVE ALL FOLLOWING DOWN 1494 002434 1353 TAD UNSIZE 1495 002435 3243 DCA FROMOV /GET FIRST LOCATION AFTER HANDLER 1496 002436 1032 TAD HNDPTR /GET NEXT FREE LOCATION FOR HANDLER 1497 002437 7041 CIA 1498 002440 1243 TAD FROMOV /GET NUMBER OF LOCS TO MOVE 1499 002441 4502 JMS I [MOVE 1500 002442 6211 CDF 10 1501 002443 0000 FROMOV, 0 1502 002444 6211 CDF 10 1503 002445 0000 TOMOV, 0 /UPDATE POINTERS; SEARCH DESCRIPTORS 1504 002446 1353 TAD UNSIZE /FOR REFS TO MOVED HANDLERS AND DECREASE 1505 002447 7041 CIA /THOSE REFS BY -UNSIZE 1506 002450 1032 TAD HNDPTR 1507 002451 3032 DCA HNDPTR /FREES SOME BUFFER SPACE 1508 002452 1030 TAD TABLMT 1509 002453 3347 DCA OLDTOP /REMEMBER ORIGINAL TOP OF STACK 1510 002454 7240 STA /BACK UP OVER GROUP COUNT 1511 002455 1033 TAD DSCPTR 1512 002456 3336 DCA SAVPTR /REMEMBER THIS LOCATION 1513 002457 1353 TAD UNSIZE 1514 002460 4522 JMS I [ROTL 1515 002461 7041 CIA 1516 002462 3353 DCA UNSIZE 1517 002463 1033 TAD DSCPTR 1518 002464 1142 TAD [HDRSIZ 1519 002465 3334 DCA LSTPTR /'LSTPTR' POINTS TO FIRST DESCRIPTOR BEING MOVED 1520 /COMPRESS THE DESCRIPTORS ABOVE THIS ONE 1521 1522 002466 4540 ADV, ADVDSC /ADVANCE TO NEXT DESCRIPTOR 1523 002467 5312 JMP BADV /ENCOUNTERED A BOOTSTRAP RECORD 1524 002470 5327 JMP NOMORE /NO MORE, THROUGH 1525 002471 4503 GT, JMS I [GETPG /GET PAGE OF THIS DESCRIPTOR 1526 002472 7141 CLL CIA 1527 002473 1245 TAD TOMOV /COMPARE WITH PAGE OF DELETED HANDLER 1528 002474 7650 SNA CLA 1529 002475 5306 JMP SAMPAG /THEY'RE THE SAME 1530 002476 7430 SZL /THEY'RE NOT THE SAME. WHICH IS HIGHER? 1531 002477 5266 JMP ADV /IT WAS BELOW HANDLER. NO SWEAT. 1532 002500 4562 GET /IT WAS ABOVE HANDLER, HAVE TO ACCOUNT FOR THIS 1533 002501 0006 PAGRES /POINT TO NEW HANDLER LOCATION 1534 002502 1353 TAD UNSIZE 1535 002503 4563 PUT 1536 002504 0006 PAGRES 1537 002505 5266 JMP ADV /CONTINUE 1538 002506 1142 SAMPAG, TAD [HDRSIZ 1539 002507 1033 TAD DSCPTR 1540 002510 3334 DCA LSTPTR /NOTE LOCATION OF NEXT DESCRIPTOR 1541 002511 5266 JMP ADV 1542 /ADVANCE PAST BOOTSTRAP OR DELETE IT AS NECESSARY 1543 002512 1033 BADV, TAD DSCPTR 1544 002513 7041 CIA 1545 002514 1334 TAD LSTPTR 1546 002515 7640 SZA CLA /IS THIS BOOT PART OF GROUP BEING UNLOADED? 1547 002516 5324 JMP BDV /NO 1548 002517 1433 TAD I DSCPTR /YES 1549 002520 7041 CIA 1550 002521 7001 IAC 1551 002522 1033 TAD DSCPTR 1552 002523 3334 DCA LSTPTR /SET 'LSTPTR' TO BEGIN OF NEXT DESCRIPTOR 1553 002524 4537 BDV, ADVBOT /ADVANCE OVER BOOTSTRAP 1554 002525 5327 JMP NOMORE /DONE 1555 002526 5271 JMP GT /GO ON TO NEXT DESCRIPTOR 1556 /ALL DESCRIPTORS FOR THE SAME HANDLER ARE CONSECUTIVE 1557 /MOVE DOWN DESCRIPTORS 1558 1559 002527 1347 NOMORE, TAD OLDTOP 1560 002530 7041 NOMOR, CIA 1561 002531 1334 TAD LSTPTR /MINUS # OF WORDS TO MOVE 1562 002532 4502 JMS I [MOVE 1563 002533 6201 CDF 0 1564 002534 0000 LSTPTR, 0 /FIRST DESCRIPTOR NOT CONSIDERED 1565 002535 6201 CDF 0 1566 002536 0000 SAVPTR, 0 /POINTS TO INITIAL DESCRIPTOR BEING DELETED 1567 002537 1334 TAD LSTPTR 1568 002540 7041 CIA 1569 002541 1336 TAD SAVPTR /GET NUMBER OF WORDS DELETED 1570 002542 1030 TAD TABLMT 1571 002543 3030 DCA TABLMT /UPDATE TABLMT 1572 002544 3430 DCA I TABLMT /MUST HAVE 0 AT TABLE END SO DON'T THINK IT'S A BOOTSTRAP 1573 002545 4532 JMS I [COMMA 1574 002546 5212 JMP UNLNAM 1575 1576 OLDTOP, /ORIGINAL TOP OF DESCRIPTORS 1577 002547 0000 INI, 0 1578 002550 1376 TAD (DSCTAB-HDRSIZ 1579 002551 3033 DCA DSCPTR 1580 002552 5747 JMP I INI 1581 1582 INIT=JMS I [INI 1583 1584 /RETURN TO CONFIG IF EOL, OR BACK IN-LINE IF COMMA 1585 1586 UNSIZE, 1587 002553 0000 COMMA, 0 1588 002554 1021 TAD CHAR 1589 002555 7450 SNA 1590 002556 5534 JMP I [CONFIG 1591 002557 1375 TAD (-", 1592 002560 7650 SNA CLA 1593 002561 5753 JMP I COMMA 1594 002562 5517 JMP I [SYNTAX 1595 002563 7640 BOOTQ, SZA CLA /MAY BE OVERLAID 1596 002564 5370 JMP SAMEE 1597 002565 3774 DCA I (DRECT /DON'T TOUCH DIRECTORY IF DIDN'T COPY SYS 1598 002566 4475 SAMF, JMS I [SYSWP 1599 002567 5773 JMP I (BOOT4 1600 002570 4772 SAMEE, JMS I (SYSCPY /OR IF OLD DEV=NEW DEV 1601 002571 5366 JMP SAMF 1602 002572 4037 PAGE 002573 4462 002574 3505 002575 7524 002576 6370 002577 1336 1603 002600 0000 LOCSYS, 0 1604 002601 1377 TAD (2331 /"SY" 1605 002602 3024 DCA NAME1 1606 002603 1376 TAD (2300 /"S " 1607 002604 3025 DCA NAME2 1608 002605 3026 DCA NAME3 /V3C 1609 002606 3027 DCA NAME4 1610 002607 4507 JMS I [ACTNAM /LOOK UP 'SYS' 1611 002610 5600 JMP I LOCSYS 1612 1613 002611 4535 NOSLOT, JMS I [PRWD 1614 002612 7723 TEXT /?SLOTS/ 002613 1417 002614 2423 002615 0000 1615 002616 5534 JMP I [CONFIG 1616 1617 002617 0000 GOOD, 0 1618 002620 1176 TAD [4207 /RESTORE 7600 TO NORMAL 1619 002621 3577 DCA I [7600 1620 002622 1074 TAD [5000 1621 002623 3473 DCA I [7601 1622 002624 1375 TAD (CDF CIF 1623 002625 3472 DCA I [SA /SET SA=00200 1624 002626 1133 TAD [200 1625 002627 3774 DCA I (SA+1 1626 002630 3773 DCA I (JSW /SET JOB STATUS WORD=0 1627 002631 7240 STA 1628 002632 3772 DCA I (DRECT 1629 002633 7346 CLL STA RTL /-3 1630 002634 1471 TAD I [7612 /FUDGE FOR 12K TD8E 1631 002635 3045 DCA FLAG2 /SET FLAG2=0 IF PREV SYSTEM WAS 2 PAGE 1632 002636 5617 JMP I GOOD 1633 002637 2263 PACK, ISZ PROTECT /OK TO PACK IT? 1634 002640 5244 JMP PACKOK /YES 1635 002641 7240 STA 1636 002642 3263 DCA PROTECT /INHIBIT OTHER PACKS ALSO 1637 002643 5317 JMP GNAME2 1638 002644 2264 PACKOK, ISZ SWIT /PACK LEFT OR RIGHT 1639 002645 5253 JMP RIGHT 1640 002646 1021 TAD CHAR 1641 002647 0110 AND [77 1642 002650 4522 JMS I [ROTL /ROTATE 6 LEFT 1643 002651 3422 DCA I TEMP /STORE THE CHARACTER 1644 002652 5317 JMP GNAME2 1645 002653 7240 RIGHT, CLA CMA /RESET FLIP FLOP 1646 002654 3264 DCA SWIT 1647 002655 1021 TAD CHAR 1648 002656 0110 AND [77 1649 002657 1422 TAD I TEMP 1650 002660 3422 DCA I TEMP 1651 002661 2022 ISZ TEMP /POINT TO NEXT WORD 1652 002662 5317 JMP GNAME2 1653 002663 0000 PROTECT,0 /-1 MEANS DON'T ACCEPT CHAR, IGNORE IT 1654 002664 0000 SWIT, 0 1655 002665 7240 DOT, CLA CMA 1656 002666 3264 DCA SWIT 1657 002667 1371 TAD (-3 /NOW ALLOW ONLY A 2-CHAR EXTENSION 1658 002670 3263 DCA PROTECT 1659 002671 1370 TAD (NAME4 1660 002672 3022 DCA TEMP 1661 002673 2276 ISZ DOTCNT /HAD WE SEEN A DOT BEFORE? 1662 002674 5344 JMP SYNTAX /YES 1663 002675 5317 JMP GNAME2 /NO 1664 1665 002676 7777 DOTCNT, -1 /-1 MEANS HAVEN'T SEEN A DOT 1666 1667 002677 3021 EOL, DCA CHAR 1668 002700 5701 JMP I GNAME 1669 1670 002701 0000 GNAME, 0 /COLLECT A WORD IN NAME1-NAME4 1671 /LEAVE DELIMITING CHAR IN 'CHAR' 1672 002702 6201 CDF 0 1673 002703 1070 TAD [-7 /MAX 6 CHARACTERS 1674 002704 3263 DCA PROTECT 1675 002705 3024 DCA NAME1 /FIRST CLEAR OUT COLLECTION AREA 1676 002706 3025 DCA NAME2 1677 002707 3026 DCA NAME3 1678 002710 3027 DCA NAME4 1679 002711 7240 CLA CMA 1680 002712 3264 DCA SWIT /L-R PACKING SWITCH 1681 002713 7240 STA 1682 002714 3276 DCA DOTCNT /ALLOW ONLY ONE DOT PER NAME 1683 002715 1367 TAD (NAME1 1684 002716 3022 DCA TEMP 1685 002717 4547 GNAME2, GETCHR 1686 002720 7450 SNA /A 0 ENDS THE SEARCH 1687 002721 5277 JMP EOL 1688 002722 3021 DCA CHAR 1689 002723 1021 TAD CHAR 1690 002724 1366 TAD (-"A /GET ONLY A-Z OR 0-9 1691 002725 7100 CLL 1692 002726 1373 TAD ("A-"Z-1 1693 002727 7620 SNL CLA /IS IT A-Z? 1694 002730 5237 JMP PACK /YES..PACK IT AWAY 1695 002731 1021 TAD CHAR 1696 002732 1365 TAD (-"0 1697 002733 7100 CLL 1698 002734 1364 TAD ("0-"9-1 1699 002735 7620 SNL CLA 1700 002736 5237 JMP PACK /FOUND 0-9 1701 002737 4565 JMS I [TEST /TEST FOR DELIMITING CHARS 1702 002740 7522 -".;DOT /ADVANCE POINTERS 002741 2665 1703 002742 0000 0 1704 002743 5701 JMP I GNAME 1705 002744 4535 SYNTAX, JMS I [PRWD 1706 002745 7723 TEXT /?SYNTAX/ 002746 3116 002747 2401 002750 3000 1707 002751 5534 JMP I [CONFIG 1708 1709 002752 4535 DSKBAD, JMS I [PRWD 1710 002753 7704 TEXT /?DSK/ 002754 2313 002755 0000 1711 002756 5534 JMP I [CONFIG 1712 SRES=BEGLIN+60 /RESIDENCY TABLE 1713 SDCB=BEGLIN+100 /DCB 1714 SHND=BEGLIN+120 /SLOT ASSSIGNED? 1715 SNAME=BEGLIN+140/NAME 1716 SBUFF=BEGLIN+160/ADDRESS OF HANDLER 1717 1718 1719 / SYSTEM TABLES: 1720 1721 /THOSE IN USR: 1722 1723 /PDNT PERMANENT DEVICE NAME TABLE (SNAME) 1724 / POINTED TO BY LOCATION 10036 IN USR 1725 / CONTAIN HASH CODE OF DEVICE NAME 1726 / ADD TWO WORDS OF NAME TOGETHER AND TURN ON BIT 0 1727 / IF SECOND WORD WAS NON-ZERO 1728 / AN ENTRY OF 0 MEANS THERE IS NO DEVICE FOR THAT ENTRY 1729 1730 /DHIT DEVICE HANDLER INFORMATION TABLE (SHND) 1731 / POINTED TO BY LOCATION 10037 IN USR 1732 / BIT 0 =1 IF THIS IS A TWO-PAGE HANDLER 1733 / BITS 1-4 RELATIVE BLOCK LOCATION OF HANDLER ON SYSTEM DEVICE 1734 / (BLOCK SLOT). ADD 15 TO GET ACTUAL BLOCK #. 1735 / BITS 5-11 RELATIVE ENTRY POINT OF HANDLER 1736 1737 1738 /DHRT DEVICE HANDLER RESIDENCY TABLE (SRES) 1739 / IN LOCATIONS 17647-17665 1740 / ACTUAL ENTRY POINT OF HANDLER 1741 / WE ONLY CARE ABOUT IT IF THE HANDLER IS RESIDENT. 1742 / OTHERWISE IT'S ZERO. 1743 / THE SYSTEM HANDLER AND ALL HANDLERS CORESIDENT WITH 1744 / IT ARE ALWAYS RESIDENT IN CORE AND HAVE THIS ENTRY NON-0. 1745 1746 1747 /DCWT DEVICE CONTROL WORD TABLE (SDCB) 1748 / RESIDES IN LOCATIONS 17760-17776 1749 / BIT 0 1 IF DEVICE IS FILE STRUCTURED 1750 / BIT 1 1 IF THE DEVICE IS READ ONLY 1751 / BIT 2 1 IF THE DEVICE IS WRITE-ONLY 1752 / BITS 3-8 PHYSICAL DEVICE TYPE 1753 / BITS 9-11 DIRECTORY BLOCK # (WE SET TO 0) 1754 /PRE-ASSIGNED DEVICE TYPES 1755 1756 /0 TELETYPE 1757 /1 HIGH SPEED PAPER TAPE READER 1758 /2 HIGH SPEED PAPER TAPE PUNCH 1759 /3 CARD READER 1760 /4 LINE PRINTER (ANY TYPE) 1761 /5 RK8 DISK 1762 /6 RF08 (1 PLATTER) 1763 /7 RF08 (2 PLATTERS) 1764 /10 RF08 (3 PLATTERS) 1765 /11 RF08 (4 PLATTERS) 1766 /12 DF32 (1 PLATTER) 1767 /13 DF32 (2 PLATTERS) 1768 /14 DF32 (3 PLATTERS) 1769 /15 DF32 (4 PLATTERS) 1770 /16 TC08 DECTAPE 1771 /17 LINCTAPE 1772 /20 TM8E MAGTAPE 1773 /21 TD8E DECTAPE (12K OR ROM) 1774 /22 BAT: 1775 /23 RK8E DISK 1776 /27 TU60 CASSETTES 1777 /30 VR12 (PDP-12 SCOPE) 1778 002764 7766 PAGE 002765 7520 002766 7477 002767 0024 002770 0027 002771 7775 002772 3505 002773 7746 002774 7745 002775 6203 002776 2300 002777 2331 1779 003000 1377 BOOT2A, TAD (15 1780 003001 3034 DCA SLOT /START ASSIGNING AT BLOCK SLOT 16 (16-25) 1781 003002 1376 TAD (-17 /ALLOW 16 ACTIVE HANDLERS NOT COUNTING DSK 1782 003003 3020 DCA COUNT 1783 003004 4775 JMS I (CLRTBL /CLEAR OUT IN-CORE TABLES 1784 003005 1374 TAD (SHND+1 /ASSIGN SLOTS, COUNT ACTIVE HANDLERS 1785 003006 3010 DCA XR1 /XR1 POINTS TO SLOT TABLE (DHIT) 1786 003007 1373 TAD (SDCB+1 1787 003010 3011 DCA XR2 /XR2 POINTS TO DCB TABLE 1788 003011 1372 TAD (SNAME+1 1789 003012 3012 DCA XR3 /XR3 POINTS TO PERMANENT DEVICE NAME TABLE 1790 003013 1371 TAD (SBUFF+1 1791 003014 3013 DCA XR4 /XR4 POINTS TO HANDLER BUFFER ADDRESSES 1792 003015 1370 TAD (SRES+1 1793 003016 3014 DCA XR5 /XR5 POINTS TO RESIDENCY TABLE 1794 003017 7201 CLA IAC /?? 1795 003020 3042 DCA OLDPAG /SET 'OLDPAG' TO A RIDICULOUS VALUE 1796 003021 4541 INIT 1797 003022 4540 SLTLUP, ADVDSC /GO TO NEXT DESCRIPTOR 1798 003023 4537 ADVBOT /ADVANCING OVER ANY BOOTSTRAPS 1799 003024 5234 JMP BOOT2X /ALL DONE CREATING INTERNAL COPIES OF TABLES 1800 003025 4562 GET 1801 003026 0006 ACTIVE 1802 003027 7700 SMA CLA /IS IT ACTIVE? 1803 003030 5326 JMP INACT /NO 1804 003031 2020 ISZ COUNT /YES, UPDATE COUNT 1805 003032 5256 JMP ACTIV 1806 003033 5767 JMP I (TOOMANY /TOO MANY ACTIVE HANDLERS 1807 1808 BOOT2X,/ TAD I (SNAME /SEE IF SYS WAS SPECIFIED 1809 / DCA SAMSYS /0 IF DIDN'T SPECIFY NEW SYS 1810 / TAD SAMSYS 1811 / SZA CLA 1812 / JMP CHKDSK 1813 / CDF 10 1814 / TAD I (7760 /DIDN'T SPECIFY SYS SO USE CURRENT SYS 1815 / CDF 0 1816 / DCA I (SDCB 1817 / TAD (7607 1818 / DCA I (SRES 1819 /CHKDSK, TAD DSKG1 /WAS DSK SPECIFIED? 1820 / SZA CLA 1821 / JMP I (BOOT3 /YES, ALREADY SET UP 1822 / TAD I (SDCB 1823 / DCA I (SDCB+1 1824 / TAD (7607 1825 / DCA I (SRES+1 1826 / DCA I (SBUFF+1 1827 003034 5766 JMP I (BOOT3 1828 003035 0000 CHKRES, 0 1829 003036 4503 JMS I [GETPG /GET PAGE OF RESIDENCE 1830 003037 3041 DCA NEWPAG 1831 003040 1041 TAD NEWPAG 1832 003041 1042 TAD OLDPAG 1833 003042 7650 SNA CLA /SAME OR PREVIOUS PAGE? 1834 003043 5635 JMP I CHKRES /YES, SAME PAGE 1835 003044 2235 ISZ CHKRES 1836 003045 4562 GET /NO, A NEW PAGE, NEEDS NEW SLOT, ETC. 1837 003046 0005 CORES 1838 003047 7006 RTL /GET CORES BIT 1839 003050 7710 SPA CLA /IS THIS ALLOWED TO START A NEW GROUP? 1840 003051 5765 JMP I (TWOSYS /NO, IT MAY ONLY BE CORESIDENT WITH SOMETHING EARLIER 1841 003052 1041 TAD NEWPAG /YES 1842 003053 7041 CIA 1843 003054 3042 DCA OLDPAG /GOT NEW 'OLDPAG' 1844 003055 5635 JMP I CHKRES 1845 003056 4235 ACTIV, JMS CHKRES 1846 003057 5343 JMP SAMPG 1847 003060 4562 GET 1848 003061 0005 SYSBIT 1849 003062 7004 RAL 1850 003063 7710 SPA CLA /IS IT A 'SYS' HANDLER? 1851 003064 5764 JMP I (SETSY /YES 1852 003065 4763 JMS I (GETSLOT /NO 1853 003066 4762 JMS I (SETSLT /SET BLOCK SLOT 1854 003067 3410 DCA I XR1 1855 003070 1041 TAD NEWPAG 1856 003071 3413 HNDLOC, DCA I XR4 /STORE AWAY ADDRESS OF HANDLER (OR 0 IF PREVIOUSLY USED) 1857 003072 4761 JMS I (GETDCB 1858 003073 3411 DCA I XR2 /SET DCB 1859 003074 4562 GET /HASH CODE NAME 1860 003075 0003 PRMNM2 1861 003076 3022 DCA TEMP /SAVE 2ND WORD 1862 003077 4562 GET 1863 003100 0002 PRMNM1 1864 003101 1022 TAD TEMP /ADD 2 WORDS 1865 003102 3023 DCA TMP1 /SAVE SUM 1866 003103 1022 TAD TEMP 1867 003104 7650 SNA CLA /WAS 2ND WORD 0? 1868 003105 5312 JMP NO4C /YES 1869 003106 1023 TAD TMP1 /NO, FORCE BIT 0 ON 1870 003107 7004 RAL 1871 003110 7130 STL RAR 1872 003111 3023 DCA TMP1 1873 003112 1023 NO4C, TAD TMP1 /TAKE CODED NAME 1874 003113 3412 DCA I XR3 /SET PERMANENT NAME TABLE 1875 003114 4562 GET 1876 003115 0005 CORES 1877 003116 7006 RTL /GET CORESIDENT BIT 1878 003117 7700 SMA CLA /IS IT RESIDENT? 1879 003120 5325 JMP NORE /NO 1880 003121 4562 GET /YES 1881 003122 0005 ENTPT /GET RELATIVE ENTRY POINT 1882 003123 0105 AND [177 1883 003124 1177 TAD [7600 /CORESIDENT ENTRY POINTS TO SYS MUST BE ON PAGE 7600 1884 003125 3414 NORE, DCA I XR5 /SET RESIDENCY TABLE 1885 003126 4562 INACT, GET /BUT MAYBE IT'S 'DSK' 1886 003127 0006 DSKBIT 1887 003130 7006 RTL 1888 003131 7620 SNL CLA /IS IT DSK? 1889 003132 5222 JMP SLTLUP /NO, IT'S TO BE IGNORED 1890 003133 4760 JMS I (SLOTDSK /YES ASSIGN 'DSK''S LOCATION SLOT 1891 003134 4562 GET /GET RID OF DSK BIT 1892 003135 0006 DSKBIT 1893 003136 7006 RTL 1894 003137 7112 CLL RTR 1895 003140 4563 PUT 1896 003141 0006 DSKBIT 1897 003142 5222 JMP SLTLUP /REITERATE 1898 003143 1034 SAMPG, TAD SLOT /ALREADY HAVE SLOT 1899 003144 4762 JMS I (SETSLT 1900 003145 3410 DCA I XR1 1901 003146 5271 JMP HNDLOC 1902 1903 003147 4535 BADARG, JMS I [PRWD 1904 003150 7701 TEXT /?ARG/ 003151 2207 003152 0000 1905 003153 5534 JMP I [CONFIG 1906 003160 3262 PAGE 003161 3242 003162 3331 003163 3200 003164 3311 003165 1224 003166 3506 003167 2200 003170 5261 003171 5361 003172 5341 003173 5301 003174 5321 003175 2273 003176 7761 003177 0015 1907 / STEPS IN BOOTSTRAPPING: 1908 1909 /1. ASSIGN DSK, IF SPECIFIED, MAKE SURE NFS [BOOT2] 1910 /2. ASSIGN SLOTS [BOOT2A] 1911 /3. GIVE ERROR IF TOO MANY ACTIVE OR TOO MANY SLOTS [BOOT2A] 1912 /4. BUILD INTERNAL COPIES OF DCB, SLOT, NAME, RES [BOOT2A] 1913 /5. ALSO BUILD HANDLER ADDRESS TABLE, CONTAINS [BOOT2A] 1914 / HANDLER ADDRESS IF NOT PREVIOUSLY WRITTEN OUT 1915 /6. COMPARE DCB'S OF NEW AND OLD SYSTEM, IF DIFF, [BOOT3] 1916 / COPY SYSTEM OVER. LEAVE NEW SYSTEM HANDLER 1917 / IN CORE 1918 /7. ASK GUY ABOUT NEW DIRECTORY [BOOT4] 1919 /8. READ IN USR, UPDATE ITS TABLES, WRITE OUT USR [BOOTC] 1920 / NAME TABLE, DHIT (SLOT, 2-PAGE,ENTPT) 1921 /9. READ IN CURRENT PAGE 7600 IMAGES [BOOT5] 1922 / SET UP AS FOLLOWS: 1923 / PG7600/L: BOOT 1924 / PG7600/H: 07600 IMAGE 1925 / BLOK66/L: 17600 IMAGE 1926 / BLOK66/U: 27600 IMAGE 1927 / THIS IS ACCOMPLISHED VIA: 1928 / PG7600_0 1929 / BLOK66_66 1930 / IF OLD SYS WAS 1 PAGE, BLOK66/L_PG7600/L 1931 /10. MOVE DCB AND RESIDENCY TABLES INTO 17600 IMAGE [BOOT6] 1932 /11. MOVE BOOTSTRAP INTO PAGE 7600 IMAGES (2 PLACES) [BOOT7] 1933 /12. WRITE OUT HANDLERS [BOOT8] 1934 /13. ZERO DIRECTORY IF REQUESTED [BOOTD] 1935 /14. PUT SYS, DATA BREAK, CORE LIM IN 07600 IMAGE [BOOTE] 1936 /15. WRITE 7600 IMAGES BACK OUT ONTO TAPE [BOOTF] 1937 / IF NEW SYS IS 1-PAGE, PG7600/L_BLOK66/L 1938 / 0_PG7600 1939 / 66_BLOK66 1940 /16. READ BACK PAGE 7600 IMAGES. MOVE IN FIELD 1 STUFF 1941 / EXCEPT FOR CD AREA, RESTORE TODAY'S DATE, 1942 / BRANCH TO 7600 1943 003200 0000 GETSLOT,0 1944 003201 2034 ISZ SLOT /USE NEXT SLOT 1945 003202 1034 TAD SLOT 1946 003203 1377 TAD (-26 1947 003204 7650 SNA CLA 1948 003205 5776 JMP I (NOSLOT 1949 003206 1034 TAD SLOT 1950 003207 5600 JMP I GETSLOT 1951 1952 003210 2775 BOOT, ISZ I (RETSW /***? 1953 003211 7201 CLA IAC 1954 003212 3774 DCA I (BD /DISABLE 'BUILD' CMD 1955 /SEE IF ARGUMENT WAS GIVEN; TREAT IT AS BOOT DEVICE, 1956 /SAVE HANDLER ADDRESS (MUST BE AN ACTIVE HANDLER) 1957 003213 4773 JMS I (LOCSYS /IN CASE DSK=SYS 1958 / JMS I [GETNUM 1959 / NOP 1960 / TAD SIZE 1961 / DCA BOOTDV /CHECK THAT # IS GT 7600 1962 003214 1035 BOOT2, TAD DSKG1 /FIND OUT ABOUT 'DSK' 1963 003215 7450 SNA 1964 003216 5227 JMP GOTD /DSK=SYS 1965 003217 3002 DCA SAV1 1966 003220 1036 TAD DSKG2 1967 003221 3003 DCA SAV2 1968 003222 1037 TAD DSKP1 1969 003223 3024 DCA NAME1 1970 003224 1040 TAD DSKP2 1971 003225 3025 DCA NAME2 1972 003226 4514 JMS I [BIGNAM /FIND IT IN TABLES 1973 003227 4562 GOTD, GET 1974 003230 0004 DCB 1975 003231 7700 SMA CLA /IS IT FILE-STRUCTURED? 1976 003232 5772 JMP I (DSKBAD /NO 1977 003233 4562 GET /YES 1978 003234 0006 DSKBIT 1979 003235 7006 RTL 1980 003236 7132 STL RTR /TURN ON BIT 1 1981 003237 4563 PUT 1982 003240 0006 DSKBIT 1983 003241 5771 JMP I (BOOT2A 1984 003242 0000 GETDCB, 0 1985 003243 4562 GET 1986 003244 0006 PLATNUM 1987 003245 4522 JMS I [ROTL 1988 003246 0123 AND [7 /GET # OF PLATTERS 1989 003247 7450 SNA 1990 003250 7001 IAC /0 MEANS 1 1991 003251 1161 TAD [-1 /SUBTRACT 1 1992 003252 7106 CLL RTL 1993 003253 7004 RAL /TIMES 10 1994 003254 3023 DCA TMP1 1995 003255 4562 GET 1996 003256 0004 DCB 1997 003257 0067 AND [7770 /MASK OFF USEFUL INFO 1998 003260 1023 TAD TMP1 1999 003261 5642 JMP I GETDCB 2000 003262 0000 SLOTDSK,0 2001 003263 4770 JMS I (CHKRES 2002 003264 5326 JMP SMPG 2003 003265 1041 TAD NEWPAG 2004 003266 3767 DCA I (SBUFF+1 2005 003267 4200 JMS GETSLOT 2006 003270 4331 JMS SETSLT 2007 003271 3766 B, DCA I (SHND+1 2008 003272 4242 JMS GETDCB 2009 003273 3765 DCA I (SDCB+1 2010 003274 1364 TAD (5723 /'DSK' HASHED 2011 003275 3763 DCA I (SNAME+1 2012 003276 4562 GET 2013 003277 0005 SYSBIT 2014 003300 7006 RTL /SYSBIT TO L, CORES BIT TO AC0 2015 003301 7720 SNL SMA CLA /IS IT EITHER SYS OR CORESIDENT WITH SYS? 2016 003302 5307 JMP NORE2 /NO, SO IT'S NOT CORE-RESIDENT 2017 003303 4562 GET /YES, RESIDENT AT ALL TIMES IN 07600 2018 003304 0005 ENTPT 2019 003305 0105 AND [177 2020 003306 1177 TAD [7600 2021 003307 3762 NORE2, DCA I (SRES+1 2022 003310 5662 JMP I SLOTDSK 2023 2024 003311 1041 SETSY, TAD NEWPAG 2025 003312 3761 DCA I (SBUFF 2026 / JMS SETSLT /NO BLOCK SLOT 2027 003313 3760 DCA I (SHND 2028 003314 4242 JMS GETDCB 2029 003315 3757 DCA I (SDCB /SET DCB 2030 003316 1756 TAD I (SNAME 2031 003317 7640 SZA CLA 2032 003320 5755 JMP I (TWOSYS 2033 003321 1354 TAD (4631 /HASH CODING FOR 'SYS' 2034 003322 3756 DCA I (SNAME 2035 /CHECK THAT NAME IS 'SYS' 2036 003323 1066 TAD [7607 2037 003324 3753 DCA I (SRES 2038 /CHECK REL ENTRY PT IS 7 2039 003325 5752 JMP I (INACT 2040 2041 003326 1034 SMPG, TAD SLOT 2042 003327 4331 JMS SETSLT 2043 003330 5271 JMP B 2044 003331 0000 SETSLT, 0 2045 003332 7450 SNA 2046 003333 5336 JMP .+3 2047 003334 1065 TAD [-15 2048 003335 4511 JMS I [ROTR 2049 003336 3023 DCA TMP1 2050 003337 4562 GET / 2051 003340 0005 CORES / 2052 003341 7006 RTL / 2053 003342 7730 SPA SZL CLA / 2054 003343 5731 JMP I SETSLT /SYS &CORES HANDLERS GET 0 ENTRY (UNFORTUNATELY) 2055 003344 4562 GET 2056 003345 0005 ENTPT 2057 003346 0351 AND (4177 2058 003347 1023 TAD TMP1 2059 003350 5731 JMP I SETSLT 2060 003351 4177 PAGE 003352 3126 003353 5260 003354 4631 003355 1224 003356 5340 003357 5300 003360 5320 003361 5360 003362 5261 003363 5341 003364 5723 003365 5301 003366 5321 003367 5361 003370 3035 003371 3000 003372 2752 003373 2600 003374 0276 003375 5163 003376 2611 003377 7752 2061 USRBLK=13 /BLOCK OF USR ON SYSTEM DEVICE 2062 USRNPT=36 /POINTS TO USR PTR TO PERMANENT DEVICE NAME TABLE 2063 USRHPT=37 /POINTS TO USR PTR TO DEVICE HANDLER INFORMATION TABLE 2064 2065 003400 1133 BOOTC, TAD [200 /READ FIRST BLOCK OF USR 2066 003401 4477 JMS I [SYS 2067 003402 5400 BUFFER /INTO BUFFER 2068 003403 0013 USRBLK 2069 003404 1464 TAD I [BUFFER+USRNPT /GET POINTER TO NAME TABLE 2070 003405 1074 TAD [BUFFER-400 /ADD IN OFFSET FOR RELOCATION 2071 003406 3223 DCA T1AD /ASSUME BOTH TABLES OCCUR IN THE SECOND 2072 003407 1463 TAD I [BUFFER+USRHPT /BLOCK OF THE USR 2073 003410 1074 TAD [BUFFER-400 2074 003411 3231 DCA T2AD /GET POINTER TO DHIT 2075 003412 1167 TAD [400 /READ BLOCKS 2 AND 3 OF USR 2076 003413 4477 JMS I [SYS /INTO BUFFER,BINARY 2077 003414 5400 BUFFER 2078 003415 0014 USRBLK+1 2079 003416 1062 TAD [-17 2080 003417 4502 JMS I [MOVE /MOVE IN PERMANENT DEVICE NAME TABLE 2081 003420 6201 CDF 0 2082 003421 5340 SNAME 2083 003422 6201 CDF 0 2084 003423 7402 T1AD, HLT 2085 / TAD SAMSYS /WAS SYS SPECIFIED? 2086 / SZA CLA 2087 / JMP CHKD2 /YES 2088 / TAD I T2AD /NO, USE CURRENT SYS INFO 2089 / DCA I (SHND 2090 /CHKD2, TAD DSKG1 2091 / SZA CLA /WAS DSK SPECIFIED? 2092 / JMP MVSHND /YES 2093 / TAD I T2AD /MAKE SAME AS SYS 2094 / DCA I (SHND+1 2095 003424 1062 MVSHND, TAD [-17 /NOW PUT IN SLOT WORDS (DHIT) 2096 003425 4502 JMS I [MOVE 2097 003426 6201 CDF 0 2098 003427 5320 SHND 2099 003430 6201 CDF 0 2100 TMP2, 2101 003431 7402 T2AD, HLT 2102 003432 1102 TAD [4400 /RE-WRITE USR 2103 003433 4477 JMS I [SYS 2104 003434 5400 L5400, BUFFER 2105 003435 0014 USRBLK+1 2106 003436 5461 JMP I [BOOT5 2107 IFNZRO BUFFER-5400 2108 003437 1305 BOOTD, TAD DRECT /WANT NEW DIRECTORY? 2109 003440 7650 SNACLA, SNA CLA 2110 003441 5246 JMP BOOTE 2111 003442 1234 TAD L5400 /YEP. WRITE ONE 2112 003443 4477 JMS I [SYS 2113 003444 4157 DPROPR 2114 003445 0001 1 2115 003446 1043 BOOTE, TAD NEWCOR 2116 003447 7104 CLL RAL 2117 003450 7006 RTL 2118 003451 1047 TAD SAVHID /V3D SET NEW H.O. DATE WORD 2119 003452 3561 DCA I [7777 /SET UP NEW CORE LIMIT 2120 003453 1357 TAD SYSLOC /MOVE IN FRESH COPY OF SYS HANDLER 2121 003454 1123 TAD [7 2122 003455 3261 DCA SYSL2 2123 003456 1060 TAD [7607-7743-1 2124 003457 4502 JMS I [MOVE 2125 003460 6211 CDF 10 2126 003461 7402 SYSL2, HLT 2127 003462 6201 CDF 0 2128 003463 7607 7607 2129 003464 1177 TAD [-200 /PUT SYS HANDLER INTO REC 0 BUFF. ??? 2130 003465 4502 JMS I [MOVE 2131 003466 6201 CDF 0 2132 003467 7600 7600 2133 003470 6201 CDF 0 2134 003471 5600 PG7600+200 /RESIDENT F0 CODE 2135 003472 4777 JMS I (WRITCC /WRITE CCB AND DATA BREAK FILLERS 2136 003473 1133 TAD [200 2137 003474 1357 TAD SYSLOC /MOVE IN COPY OF 27600 AGAIN 2138 003475 3301 DCA SYSL3 2139 003476 1177 TAD [-200 2140 003477 4502 JMS I [MOVE 2141 003500 6211 CDF 10 2142 003501 7402 SYSL3, HLT 2143 003502 6211 CDF 10 2144 003503 0200 BLOK66+200 2145 003504 5776 JMP I (BOOTF 2146 2147 003505 7777 DRECT, -1 /1 MEANS WRITE A ZERO DIRECTORY 2148 /0 MEANS DON'T TOUCH DIRECTORY 2149 /-1 MEANS ASK GUY FOR OPTION 2150 /SEE IF NEW SYSTEM HAS SAME DCB AS CURRENT SYSTEM 2151 /THIS MAY WELL CAUSE EXTRA I/O WHEN GOING FROM RF08=K TO RF08=M 2152 2153 003506 6211 BOOT3, CDF 10 2154 003507 1775 TAD I (DATEWD 2155 003510 3044 DCA SAVDAT /SAVE TODAY'S DATE FOR FUTURE REFERENCE 2156 003511 1774 TAD I (DCBTBL /GET DCB OF CURRENT SYSTEM 2157 003512 6201 CDF 0 2158 003513 0067 AND [7770 2159 003514 3231 DCA TMP2 2160 003515 4773 JMS I (PATCH /V3D 2161 003516 1361 TAD SAVLOC /DON'T COPY IF DID 'BUILD' 2162 003517 7650 SNA CLA /WAS THE 'BU' COMMAND USED? 2163 003520 1067 TAD [-10 /NO, USE 'SZA CLA' 2164 003521 1240 TAD SNACLA /YES, USE 'SNA CLA' 2165 003522 3772 DCA I (BOOTQ 2166 003523 4330 JMS SETUPSYS 2167 003524 1046 TAD SYSDCB 2168 003525 7041 CIA 2169 003526 1231 TAD TMP2 2170 003527 5772 JMP I (BOOTQ 2171 2172 /NOTE: THIS PROCEDURE DOESN'T COPY BOOTSTRAP IF NEW DEV=OLD DEV. 2173 / THEREFORE YOU CAN'T CHANGE BOOTSTRAPS 2174 / CHECK ON AFFECT FOR TD8E/ROM INTERACTION 2175 003530 0000 SETUPSYS,0 2176 003531 3361 DCA SAVLOC 2177 003532 1361 TAD SAVLOC 2178 003533 3771 DCA I (SAVLC 2179 003534 4770 JMS I (LOCSYS 2180 003535 4503 JMS I [GETPG /GET PAGE OF SYS HANDLER 2181 003536 3357 DCA SYSLOC /PAGE OF START OF NEW SYSTEM HANDLER 2182 003537 4767 JMS I (GETDCB 2183 003540 3046 DCA SYSDCB 2184 003541 4766 JMS I (GETLEN 2185 003542 4562 GET 2186 003543 0005 TWOPAG 2187 003544 3765 DCA I (SYSSIZ 2188 003545 1765 TAD I (SYSSIZ 2189 003546 7700 SMA CLA /IS IT 1- OR 2-PAGES? 2190 003547 5354 JMP ONEPG /GUESS WHAT THIS MEANS [HINT LOOK AT LABEL] 2191 003550 7240 STA 2192 003551 1764 TAD I (AMTCOR 2193 003552 7650 SNA CLA 2194 003553 5763 JMP I (NOTNUF /WE CAN'T RUN IN 8 K 2195 003554 1157 ONEPG, TAD [-400 2196 003555 4502 JMS I [MOVE 2197 003556 6211 CDF 10 2198 003557 7402 SYSLOC, HLT /MOVE SYSTEM HANDLER 2199 003560 6211 CDF 10 2200 003561 0000 SAVLOC, 0 /TO 10000-10377 2201 003562 5730 JMP I SETUPSYS 2202 003563 2361 PAGE 003564 3667 003565 4273 003566 4132 003567 3242 003570 2600 003571 3670 003572 2563 003573 4552 003574 7760 003575 7666 003576 4322 003577 2155 2203 /ASSUMES NEW PROPOSED SYSTEM HANDLER IS IN 10000-10377 2204 2205 /CAN'T DESTROY OS/8, IE. CAN'T USE PG 0 TEMPS 2206 2207 003600 0000 SYSWP, 0 /ROUTINE TO MOVE SYS HANDLER AROUND 2208 003601 2273 ISZ SWAPER /DIDDLE SWAP INDICATOR 2209 003602 7240 CLA CMA /-1 MEANS NEW HANDLER IS IN 2210 003603 3273 DCA SWAPER 2211 003604 7240 STA 2212 003605 1267 TAD AMTCOR 2213 003606 7650 SNA CLA /DO WE HAVE 8K? 2214 003607 5237 JMP SWAPLW /YES, DON'T SWAP WITH FIELD 2 2215 003610 1234 TAD L7600 /NO, CAN'T HURT TO SWAP FIELD 2 2216 003611 3272 DCA OUT 2217 003612 1270 TAD SAVLC 2218 003613 1305 TAD P200 2219 003614 3271 DCA IN 2220 003615 1377 TAD (4-200 2221 003616 3274 DCA STEMP /SWAP ENTIRE PAGE (EXCEPT LAST 4 LOCATIONS) 2222 003617 6211 SWAP3, CDF 10 /SWAP 27600 & 2ND PAGE OF HANDLER 2223 003620 1671 TAD I IN 2224 003621 3321 DCA SYSQ 2225 003622 6221 CDF 20 2226 003623 1672 TAD I OUT 2227 003624 6211 CDF 10 2228 003625 3671 DCA I IN 2229 003626 1321 TAD SYSQ 2230 003627 6221 CDF 20 2231 003630 3672 DCA I OUT 2232 003631 2271 ISZ IN 2233 003632 7400 L7400, 7400 /NOP 2234 003633 2272 ISZ OUT 2235 003634 7600 L7600, 7600 2236 003635 2274 ISZ STEMP 2237 003636 5217 JMP SWAP3 2238 003637 6201 SWAPLW, CDF 0 2239 003640 1376 TAD (7607 2240 003641 3272 DCA OUT /7607 ALWAYS TARGET DESTINATION 2241 003642 1270 TAD SAVLC 2242 003643 1375 TAD (7 2243 003644 3271 DCA IN 2244 003645 1374 TAD (7607-7743-1/ONLY 7607-7743 GETS MOVED 2245 003646 3274 DCA STEMP 2246 003647 6211 SWAP2, CDF 10 2247 003650 1671 TAD I IN 2248 003651 3321 DCA SYSQ /TEMP STORE 2249 003652 6201 CDF 0 2250 003653 1672 TAD I OUT 2251 003654 6211 CDF 10 2252 003655 3671 DCA I IN 2253 003656 1321 TAD SYSQ 2254 003657 6201 CDF 0 2255 003660 3672 DCA I OUT 2256 003661 2271 ISZ IN 2257 003662 2272 ISZ OUT 2258 003663 2274 ISZ STEMP 2259 003664 5247 JMP SWAP2 2260 003665 3773 DCA I (SOFSET /V3C 2261 003666 5600 JMP I SYSWP 2262 2263 003667 0001 AMTCOR, 1 /HIGHEST CORE BANK 2264 003670 0000 SAVLC, 0 /MUST BE ABOVE 3577 2265 CHTMP, 2266 003671 0000 IN, 0 /POINTS TO HANDLER AREA AT ONE NAMED SYS 2267 003672 0000 OUT, 0 /POINTS TO 7607 HANDLER 2268 003673 0000 SWAPER, 0 /-1 MEANS NEW HANDLER IN 2269 /MUST BE ABOVE OS/8, NO PAGE 0 LITERALS 2270 2271 STEMP, 2272 003674 0000 ICHAR, 0 2273 003675 4772 JMS I (CTCTST 2274 003676 2321 ISZ JMPGET /POINT TO CORRECT CHAR 2275 003677 2361 ISZ CHCNT /NEED WE READ? 2276 003700 5321 JMPX, JMP JMPGET /NOT YET 2277 003701 1360 TAD REOF /YES. DID LAST YIELD EOF? 2278 003702 7640 SZA CLA 2279 003703 5771 JMP I (BADINP /SOMETHING IS WRONG. 2280 003704 4763 RDIN, JMS I DVICE 2281 003705 0200 P200, 0200 /READ INTO FIELD 0 2282 003706 6000 BINBUF, BINARY 2283 003707 0000 RECNO, 0 2284 003710 5347 JMP RERROR /READ ERROR 2285 003711 2307 RECNO2, ISZ RECNO /POINT TO NEXT RECORD 2286 003712 1370 TAD (-601 2287 003713 3361 DCA CHCNT /NEW CHARACTER COUNT 2288 003714 1306 TAD BINBUF 2289 003715 3362 DCA CHPTR 2290 003716 1300 TAD JMPX 2291 003717 3321 DCA JMPGET /RESET JUMP SWITCH 2292 003720 5275 JMP ICHAR+1 2293 SYSQ, 2294 003721 5321 JMPGET, JMP . /IF WE GET CAUGHT HERE, WE KNOW IT 2295 003722 5343 JMP CHAR1 /ASSEMBLE FIRST CHAR 2296 003723 5337 JMP CHAR2 /SECOND CHAR 2297 003724 1300 TAD JMPX /THIRD CHAR HERE 2298 003725 3321 DCA JMPGET /RESET SWITCH 2299 003726 1762 TAD I CHPTR 2300 003727 0232 AND L7400 2301 003730 7112 CLL RTR 2302 003731 7012 RTR 2303 003732 1271 TAD CHTMP /ADD IN THE LAST TEMP STORE 2304 003733 7012 RTR 2305 003734 7012 RTR 2306 003735 2362 ISZ CHPTR /TO NEXT CHAR 2307 003736 5344 JMP GCHCOM 2308 003737 1762 CHAR2, TAD I CHPTR 2309 003740 0232 AND L7400 2310 003741 3271 DCA CHTMP /SAVE FOR THIRD CHAR 2311 003742 2362 ISZ CHPTR 2312 003743 1762 CHAR1, TAD I CHPTR 2313 003744 0367 GCHCOM, AND (377 2314 003745 2274 ISZ ICHAR /PASS UP ERROR RET 2315 003746 5674 JMP I ICHAR 2316 003747 7710 RERROR, SPA CLA /FATAL, OR EOF? 2317 003750 5353 JMP IOERR /FATAL 2318 003751 2360 ISZ REOF /END OF FILE 2319 003752 5311 JMP RECNO2 /BACK TO MAINSTREAM 2320 003753 4766 IOERR, JMS I (PRWD 2321 003754 7711 TEXT \?I/O\ 003755 5717 003756 0000 2322 003757 5674 JMP I ICHAR 2323 003760 0000 REOF, 0 2324 003761 0000 CHCNT, 0 2325 003762 0000 CHPTR, 0 2326 003763 0000 DVICE, 0 2327 003766 4660 PAGE 003767 0377 003770 7177 003771 4714 003772 4437 003773 7747 003774 7643 003775 0007 003776 7607 003777 7604 2328 /BLOCK 0 OF DEVICE CONTAINS INITIAL IMAGE 2329 /OF 17600 FOLLOWED BY 07600 2330 2331 /17600-17646 CD AREA INITIALLY CONTAINS BOOTSTRAP 2332 /17647-17665 RESIDENCY TABLE 2333 /17666 DATE 2334 /17667-17677 PART OF OS/8 KBM 2335 /17700-17740 PART OF OS/8 USR 2336 /17741-17757 USER DEVICE NAME TABLE/ODT 2337 /17760-17776 CONTROL WORD TABLE (DCB) 2338 /17777 UNUSED 2339 2340 /07600-07606 PART OF OS/8 CODE 2341 /07607-07743 SYSTEM HANDLER 2342 /07744-07745 STARTING ADDRESS 2343 /07746 JOB STATUS WORD (JSW) 2344 /07747 MUST BE 0 (SOFSET) 2345 /07750-07755 DATA BREAK LOCATIONS RESERVED FOR HARDWARE 2346 /07756-07775 KBM AND ODT 2347 /07776 MUST BE 0 (SBLOCK) 2348 /07777 SOFTWARE CORE SIZE, BATCH FLAGS 2349 2350 /IF SYSTEM HANDLER IS TWO PAGES LONG, THEN WE HAVE INSTEAD: 2351 2352 /BLOCK 66 (LOWER) CONTAINS 17600 IMAGE 2353 /BLOCK 66 (UPPER) CONTAINS 27600 IMAGE (MUST END WITH 4 ZERO'S) 2354 /BLOCK 0 (LOWER) CONTAINS BOOTSTRAP 2355 /BLOCK 0 (UPPER) CONTAINS 07600 IMAGE 2356 004000 0000 DSCADV, 0 /ADVANCE TO NEXT DESCRIPTOR 2357 /RETURN 2 MEANS NO MORE 2358 /RETURN 1 MEANS NOW AT BOOTSTRAP BLOCK 2359 /RETURN 3 OTHERWISE 2360 004001 1033 TAD DSCPTR 2361 004002 1142 TAD [HDRSIZ 2362 004003 3033 DCA DSCPTR 2363 004004 4777 JMS I (SKPCRD /SKIP A POSSIBLE GROUP COUNT 2364 004005 1433 TAD I DSCPTR 2365 004006 7100 CLL 2366 004007 1133 TAD [200 2367 004010 7630 SZL CLA 2368 004011 5600 JMP I DSCADV /TAKE RETURN1 UPON REACHING BOOTSTRAP RECORD 2369 004012 2200 ISZ DSCADV 2370 004013 1433 TAD I DSCPTR 2371 004014 7640 SZA CLA 2372 004015 2200 ISZ DSCADV /TAKE RETURN 2 IF ADVANCED TO END 2373 004016 5600 JMP I DSCADV 2374 2375 /RETURN 1 MEANS NO MORE DESCRIPTORS 2376 004017 0000 BOTADV, 0 2377 004020 1433 TAD I DSCPTR 2378 004021 7041 CIA 2379 004022 7001 IAC /COUNT IS ONE MORE 2380 004023 1033 TAD DSCPTR 2381 004024 3033 DCA DSCPTR /POINT TO BEGIN OF NEXT DESCRIPTOR 2382 004025 4777 JMS I (SKPCRD 2383 004026 1433 TAD I DSCPTR 2384 004027 7100 CLL 2385 004030 1133 TAD [200 2386 004031 7630 SZL CLA 2387 004032 5220 JMP BOTADV+1 /WIERD CASE OF CONSECUTIVE BOOTSTRAPS 2388 004033 1433 TAD I DSCPTR 2389 004034 7640 SZA CLA 2390 004035 2217 ISZ BOTADV /TAKE RETURN1 IF ADVANCED TO END 2391 004036 5617 JMP I BOTADV 2392 2393 /WIERD CASES CAN OCCUR IF GUY DELETES ALL ENTRY POINTS IN A GROUP SEPARATELY 2394 2395 /DESCRIPTOR ENTRIES: 2396 2397 /FIRST WORD: 2398 / 0 MEANS END OF TABLE 2399 / -1 TO -20 MEANS GROUP COUNT (NOT NECESSARILY ACCURATE) 2400 / -21 TO -400 APPROX MEANS BOOTSTRAP RECORD COUNT 2401 / OTHER MEANS DESCRIPTOR 2402 004037 0000 SYSCPY, 0 /COPY OS/8 SYSTEM 2403 004040 7240 STA 2404 004041 1776 TAD I (AMTCOR 2405 004042 7640 SZA CLA 2406 004043 1142 TAD [10 /GT 8K 2407 004044 3332 DCA CORBIT 2408 004045 1332 TAD CORBIT 2409 004046 7640 SZA CLA 2410 004047 5256 JMP COP2 2411 004050 4475 JMS I [SYSWP /SWAP IN NEW SYS HANDLER 2412 004051 1375 TAD (7410 2413 004052 4477 JMS I [SYS /SAVE PART OF BUILD TO MAKE A BIG BUFFER 2414 004053 0400 400 /SAVE 400- 2415 004054 0027 27 /SAVE IN BLOCK 27 2416 004055 4475 JMS I [SYSWP /GET BACK ORIGINAL HANDLER 2417 004056 1057 COP2, TAD [4210 2418 004057 4307 JMS COPY /COPY BLOCK 0 2419 004060 0000 0 2420 004061 1374 TAD (5610 2421 004062 4307 JMS COPY /COPY 7-15 2422 004063 0007 7 2423 004064 1057 TAD [4210 2424 004065 4307 JMS COPY /COPY 26 2425 004066 0026 26 2426 004067 1375 TAD (7410 2427 004070 4307 JMS COPY /COPY 51-66 2428 004071 0051 51 2429 004072 1057 TAD [4210 2430 004073 4307 JMS COPY /COPY 67 2431 004074 0067 67 2432 004075 1332 TAD CORBIT 2433 004076 7640 SZA CLA 2434 004077 5306 JMP COP3 2435 004100 4475 JMS I [SYSWP /GET BACK NEW HANDLER FOR A MOMENT 2436 004101 1373 TAD (3410 /RESTORE CORE WE SAVED 2437 004102 4477 JMS I [SYS 2438 004103 0400 400 2439 004104 0027 27 2440 004105 4475 JMS I [SYSWP /RESTORE ORIGINAL SYS HANDLER 2441 004106 5637 COP3, JMP I SYSCPY 2442 004107 0000 COPY, 0 2443 004110 1332 TAD CORBIT 2444 004111 3023 DCA TMP1 2445 004112 1707 TAD I COPY 2446 004113 3322 DCA COPREC /ARG 1 CONTAINS FIRST BLOCK TO COPY 2447 004114 1322 TAD COPREC 2448 004115 3327 DCA CPREC2 /MAKE TWO COPIES 2449 004116 7130 STL RAR /CONVERT 'WRITE' TO READ 2450 004117 1023 TAD TMP1 2451 004120 4477 JMS I [SYS /READ FROM ORIGINAL DEVICE 2452 004121 0400 400 2453 004122 7402 COPREC, HLT 2454 004123 4475 JMS I [SYSWP 2455 004124 1023 TAD TMP1 2456 004125 4477 JMS I [SYS /WRITE ON NEW DEVICE 2457 004126 0400 400 2458 004127 7402 CPREC2, HLT 2459 004130 4475 JMS I [SYSWP /LEAVE WITH ORIGINAL SYSTEM HANDLER STILL IN SYSTEM 2460 004131 5707 JMP I COPY /FALL THROUGH RECORD NUMBER 2461 CORBIT, 2462 004132 0000 GETLEN, 0 2463 004133 4562 GET /GET LENGTH OF DEVICE 2464 004134 0006 PLATNUM 2465 004135 4522 JMS I [ROTL /GET NUMBER OF PLATTERS 2466 004136 0123 AND [7 2467 004137 7450 SNA 2468 004140 7001 IAC /0 MEANS 1 2469 004141 7041 CIA 2470 004142 3020 DCA COUNT 2471 004143 4562 GET 2472 004144 0007 DEVSIZ 2473 004145 3023 DCA TMP1 2474 004146 1023 SIZLUP, TAD TMP1 2475 004147 7450 SNA 2476 004150 7240 STA /4096 BECOMES 4095 2477 004151 2020 ISZ COUNT 2478 004152 5346 JMP SIZLUP 2479 004153 7041 CIA 2480 004154 1160 TAD [70 /LEAVE ROOM FOR OS/8 2481 004155 3365 DCA DLENGTH 2482 004156 5732 JMP I GETLEN 2483 2484 004157 7777 DPROPR, -1 /INITIAL EMPTY DIRECTORY 2485 004160 0070 MFREE 2486 004161 0000 0 2487 004162 0000 0 2488 004163 7777 -1 2489 004164 0000 0 /1 EMPTY FILE 2490 004165 0000 DLENGT, 0 2491 004173 3410 PAGE 004174 5610 004175 7410 004176 3667 004177 4541 2492 /WANT TO COPY 2493 2494 /SYS 0 2495 /KBM 7-12 2496 /USR 13-15 2497 /ENTER 26 2498 /CD 51-53 2499 /SAVE,DATE 54-55 2500 /ERR 56 2501 /CHAIN 57 2502 /ODT 60-63 2503 /CCL 64,65,67 2504 /SYS 66 2505 2506 /EXTRA (DON'T WANT TO COPY): 2507 2508 /HANDLERS 16-25 2509 /SCRATCH 27-50 2510 2511 /NEW ALGORITHM: 2512 2513 /SET FIELD 2 IF 12K OR MORE AND SKIP *'ED ITEMS 2514 2515 /1. MOVE NEW SYS HANDLER TO 0,200 2516 /2.* SAVE 34 PAGES STARTING AT 10400 IN BLOCK 27 OF NEW DEVICE 2517 /3. COPY BLOCKS 7-15 2518 /4. COPY BLOCK 26 2519 /5. COPY BLOCKS 51-66 2520 /6. COPY BLOCK 67 2521 /7.* RESTORE 34 PAGES 2522 /THE FOLLOWING ROUTINES AND VARIABLES MUST BE ABOVE THE LOCATIONS 2523 /IN WHICH OS/8 AND CD LOAD INTO, BECAUSE THEY ARE CALLED BY LDABS. 2524 /FURTHERMORE, NONE OF THESE ROUTINES MAY USE PAGE 0 LITERALS 2525 /OR MAY USE ANY PAGE 0 TEMPORARIES, EXCEPT THAT SOME MAY USE 2526 /PAGE ZERO TEMPORARIES IF THE STORE INTO THEM FIRST 2527 /(EXCEPT THOSE COMMENTED OTHERWISE, WHICH MUST PRESERVE 2528 /THE NEW PAGE 0 AT ALL COSTS, UNTIL IT IS WRITTEN OUT 2529 2530 /LDABS 2531 /ICHAR 2532 /BADINP 2533 /OVER 2534 /ASSEMB 2535 /CTCTST 2536 /PRWD 2537 /CTRLC 2538 /OVROUT 2539 /ROTL 2540 /PRINTE 2541 /TTYOUT 2542 /ROTR 2543 /PWORD 2544 /ECHOFL 2545 /LINEUP 2546 /CRLF 2547 /PRNT 2548 /RUBFLG 2549 /MOVE 2550 /SYSWP 2551 /AMTCOR 2552 SYDCB=7760 /LOCATION OF SYS,DSK DCB WORDS 2553 2554 004200 4777 BOOT5, JMS I (RECZRO 2555 004201 1062 BOOT6, TAD [-17 2556 004202 4502 JMS I [MOVE /PUT RESIDENT FIELD 1 TABLES INTO 2557 004203 6201 CDF 0 2558 004204 5300 SDCB /FIXED SPOTS 2559 004205 6211 CDF 10 2560 004206 0160 BLOK66+160 2561 004207 1062 TAD [-17 2562 004210 4502 JMS I [MOVE 2563 004211 6201 CDF 0 2564 004212 5260 SRES 2565 004213 6211 CDF 10 2566 004214 0047 BLOK66+47 /COULD SET USER DEVICE NAMES HERE IF DESIRED 2567 004215 4776 BOOT7, JMS I (LOCSYS 2568 / TAD SAMSYS 2569 / SZA CLA /SAME SYSTEM? 2570 / JMP BOOT8 /YES 2571 004216 4540 BLOOK, ADVDSC /SEARCH FOR BOOTSTRAP 2572 004217 5222 JMP FNDBOT /FOUND BOOTSTRAP RECORD AMONGST DESCRIPTORS 2573 004220 7402 HLT /IT WASN'T THERE! 2574 004221 5216 JMP BLOOK /KEEP LOOKING 2575 2576 004222 1033 FNDBOT, TAD DSCPTR 2577 004223 7001 IAC /POINT TO BOOTSTRAP 2578 004224 3230 DCA FROMBO 2579 004225 1433 TAD I DSCPTR /LENGTH OF BOOTSTRAP 2580 /CHECK THAT'S IT'S LE 47 LOCS IF 1-PAGE SYSTEM 2581 004226 4502 JMS I [MOVE 2582 004227 6201 CDF 0 2583 004230 7402 FROMBO, HLT 2584 004231 6201 CDF 0 2585 004232 5400 PG7600 2586 004233 1056 TAD [-47 /MOVE FIRST 47 LOCS INTO CD AREA IN 17600 IMAGE 2587 004234 4502 JMS I [MOVE 2588 004235 6201 CDF 0 2589 004236 5400 PG7600 2590 004237 6211 CDF 10 2591 004240 0000 BLOK66 2592 004241 1375 BOOT8, TAD (-16 2593 004242 3020 DCA COUNT 2594 004243 1374 TAD (SBUFF 2595 004244 3010 DCA XR1 2596 004245 1373 TAD (SHND 2597 004246 3011 DCA XR2 2598 004247 1410 DVLOOP, TAD I XR1 2599 004250 7450 SNA 2600 004251 5271 JMP NOHN 2601 004252 3264 DCA DVBUF /LOCATION OF HANDLER 2602 004253 1411 TAD I XR2 2603 004254 4522 JMS I [ROTL 2604 004255 0055 AND [17 2605 004256 7450 SNA 2606 004257 5266 JMP CN /NO BLOCK SLOT 2607 004260 1302 TAD L15 /CONVERT TO ACTUAL BLOCK # 2608 004261 3265 DCA DVREC 2609 004262 1057 TAD [4210 2610 004263 4477 JMS I [SYS 2611 004264 7402 DVBUF, HLT 2612 004265 7402 DVREC, HLT 2613 004266 2020 CN, ISZ COUNT 2614 004267 5247 JMP DVLOOP 2615 004270 5772 JMP I (BOOTD 2616 004271 2011 NOHN, ISZ XR2 2617 004272 5266 JMP CN 2618 2619 004273 0000 SYSSIZ, 0 /MINUS MEANS 2-PAGE SYS HANDLER 2620 004274 6032 CTRLC, KCC /CLEAR ^C FLAG 2621 004275 1771 TAD I (SWAPER /DO WE HAVE TO SWITCH? 2622 004276 7640 SZA CLA 2623 004277 4770 JMS I (SYSWP /YES. INSERT OLD HANDLER 2624 004300 5767 JMP I (7600 2625 2626 004301 4512 KORE, JMS I [GETNUM 2627 004302 0015 L15, 15 /NOTHING MEANS 0 2628 004303 1031 TAD SIZE 2629 004304 0067 AND [7770 2630 004305 7640 SZA CLA 2631 004306 5544 JMP I [BADARG /MUST BE BETWEEN 0 AND 7 2632 004307 4766 JMS I (RELCOR /FIND REAL AMOUNT OF CORE 2633 004310 7040 CMA 2634 004311 1031 TAD SIZE 2635 004312 7700 SMA CLA 2636 004313 5765 JMP I (NOTNUF /MUST BE .LE. REAL AMT OF CORE 2637 004314 1021 TAD CHAR 2638 004315 7640 SZA CLA 2639 004316 5517 JMP I [SYNTAX 2640 004317 1031 TAD SIZE 2641 004320 3043 DCA NEWCOR 2642 004321 5534 JMP I [CONFIG 2643 / IF NEW SYS IS 1-PAGE, PG7600/L_BLOK66/L 2644 / 0_PG7600 2645 / 66_BLOK66 2646 2647 004322 1273 BOOTF, TAD SYSSIZ 2648 004323 7700 SMA CLA /IS NEW SYS TWO PAGES? 2649 004324 1177 TAD [-200 /NO 2650 004325 4502 JMS I [MOVE /YES, NULL MOVE 2651 004326 6211 CDF 10 2652 004327 0000 BLOK66 2653 004330 6201 CDF 0 2654 004331 5400 PG7600 2655 004332 1061 TAD [4200 2656 004333 4477 JMS I [SYS 2657 004334 5400 PG7600 2658 004335 0000 0 2659 004336 1057 TAD [4210 2660 004337 4477 JMS I [SYS 2661 004340 0000 BLOK66 2662 004341 0066 66 2663 004342 7000 BOOTG, NOP 2664 / JMS I (RECZRO /SIMULATE BOOTSTRAP 2665 004343 1054 TAD [-131 /MOVE UP FIELD 1 CODE 2666 004344 4502 JMS I [MOVE 2667 004345 6211 CDF 10 2668 004346 0047 BLOK66+47 2669 004347 6211 CDF 10 2670 004350 7647 7600+47 2671 004351 1044 TAD SAVDAT 2672 004352 6211 CDF 10 2673 004353 3764 DCA I (DATEWD 2674 004354 6201 CDF 0 2675 004355 4535 JMS I [PRWD 2676 004356 2331 TEXT /SYS BUILT/ 004357 2340 004360 0225 004361 1114 004362 2400 2677 004363 5577 JMP I [7600 2678 004364 7666 PAGE 004365 2361 004366 0332 004367 7600 004370 3600 004371 3673 004372 3437 004373 5320 004374 5360 004375 7762 004376 2600 004377 2337 2679 /MOVE MOVES CORE AROUND (CALLABLE FROM ANY FIELD) 2680 2681 / TAD (-# OF LOCS TO MOVE 2682 / JMS MOVE 2683 / CDF FROM FIELD 2684 / FROM BUFFER LOCATION START 2685 / CDF 'TO' FILED 2686 / TO BUFFER 2687 2688 /MUSTN'T DESTROY OS/8 LOCS, NO PAGE 0 TEMPS! 2689 2690 004400 0000 MOVE, 0 2691 004401 3247 DCA MVCT 2692 004402 6214 RDF 2693 004403 1377 TAD (CIF CDF 2694 004404 3235 DCA MOVRET 2695 004405 1600 TAD I MOVE /GET CDF FROM-FLD 2696 004406 3224 DCA MVCDF2 2697 004407 2200 ISZ MOVE /POINT TO FROM-BUF 2698 004410 1600 TAD I MOVE /GET LOC TO MOVE 2699 004411 3313 DCA MVTM1 2700 004412 2200 ISZ MOVE /POINT TO TO-CDF 2701 004413 1600 TAD I MOVE 2702 004414 3226 DCA MVDF /GET CDF TO FIELD OF DESTINATION 2703 004415 2200 ISZ MOVE /POINT TO TARGET AREA 2704 004416 1600 TAD I MOVE 2705 004417 3320 DCA MVTM2 2706 004420 2200 ISZ MOVE /POINT TO RETURN 2707 004421 1247 TAD MVCT 2708 004422 7650 SNA CLA 2709 004423 5235 JMP MOVRET /NOTHING TO MOVE 2710 004424 6201 MVCDF2, CDF 0 /GETS ALTERED TO PICK UP F1 2711 004425 1713 TAD I MVTM1 2712 004426 7402 MVDF, HLT 2713 004427 3720 DCA I MVTM2 2714 004430 2313 ISZ MVTM1 /BUMP POINTERS TO AREAS 2715 004431 2320 ISZ MVTM2 2716 004432 0020 MV20, 20 2717 004433 2247 ISZ MVCT 2718 004434 5224 JMP MVCDF2 2719 004435 7402 MOVRET, HLT /RETURN TO CALLING FIELD 2720 004436 5600 JMP I MOVE 2721 2722 004437 0000 CTCTST, 0 2723 004440 1336 TAD MV7600 /ALLOW FOR PARITY 2724 004441 6034 KRS 2725 004442 1376 TAD (-7603 2726 004443 7650 SNA CLA 2727 004444 6031 KSF 2728 004445 5637 JMP I CTCTST 2729 004446 5775 JMP I (CTRLC 2730 MVCT, 2731 004447 0000 IOPEN, 0 /PREPARE TO READ INPUT 2732 004450 7240 CLA CMA 2733 004451 3774 DCA I (CHCNT 2734 004452 1773 TAD I (JMPX /RESTORE SWITCH 2735 004453 3772 DCA I (JMPGET 2736 004454 1771 TAD I (FILPTR /RESULTS OF LOOKUP 2737 004455 3770 DCA I (RECNO 2738 004456 3767 DCA I (REOF 2739 004457 1366 TAD (CDF 0 2740 004460 3765 DCA I (XFIELD /SETUP LDABS FOR FIELD 0 2741 004461 5647 JMP I IOPEN 2742 004462 1764 BOOT4, TAD I (DRECT 2743 004463 7700 SMA CLA 2744 004464 5763 JMP I (BOOTC /HE'S SPECIFIED ABOUT DIRECTORY ZERO 2745 004465 4535 JMS I [PRWD /YES, NO NEED TO COPY SYSTEM 2746 004466 2722 TEXT /WRITE ZERO DIRECT?/ 004467 1124 004470 0540 004471 3205 004472 2217 004473 4004 004474 1122 004475 0503 004476 2477 004477 0000 2747 004500 1067 TAD [-10 /DON'T WANT TO DESTROY PRECIOUS TABLES 2748 004501 4567 JMS I [GTEXT /GET REPLY 2749 004502 5262 JMP BOOT4 2750 004503 4566 JMS I [GNAME 2751 004504 1024 TAD NAME1 2752 004505 0104 AND [7700 2753 004506 1362 TAD (-3100 2754 004507 7650 SNA CLA 2755 004510 7201 CLA IAC /Y 2756 004511 3764 DCA I (DRECT /NO; COULD HAVE SAVED LOCATION BUT I FEEL SAFER THIS WAY 2757 004512 5763 JMP I (BOOTC 2758 2759 MVTM1, 2760 004513 0000 ROTL, 0 2761 004514 7106 CLL RTL 2762 004515 7006 RTL 2763 004516 7006 RTL 2764 004517 5713 JMP I ROTL 2765 2766 MVTM2, 2767 004520 0000 ROTR, 0 2768 004521 7112 CLL RTR 2769 004522 7012 RTR 2770 004523 7012 RTR 2771 004524 5720 JMP I ROTR 2772 004525 0000 TTYOUT, 0 /YOU GUESSED IT 2773 004526 3341 DCA TM 2774 004527 1351 TAD ECHOFL 2775 004530 7640 SZA CLA /ARE WE ECHOING? 2776 004531 5725 JMP I TTYOUT /NO 2777 004532 1341 TAD TM /YES 2778 004533 6046 TLS 2779 004534 6041 TSF 2780 004535 5334 JMP .-1 2781 004536 7600 MV7600, 7600 /CLA 2782 004537 4761 JMS I (CTCTST /TEST FOR ^C. 2783 004540 5725 JMP I TTYOUT 2784 2785 TM, 2786 004541 0000 SKPCRD, 0 2787 004542 1433 TAD I DSCPTR 2788 004543 7100 CLL 2789 004544 1232 TAD MV20 /A GROUP COUNT MUST BE IN THE RANGE -1 TO -20 2790 004545 7620 SNL CLA 2791 004546 5741 JMP I SKPCRD 2792 004547 2033 ISZ DSCPTR /IT'S A DARN GROUP COUNT, GO PAST IT 2793 004550 5342 JMP SKPCRD+1 /WIERD CASE OF CONSECUTIVE GROUP COUNTS 2794 2795 004551 0000 ECHOFL, 0 /1 MEANS NOT ECHOING, SAW ^O 2796 004552 0000 PATCH, 0 2797 004553 1561 TAD I [7777 /V3D 2798 004554 0017 AND L600 2799 004555 3047 DCA SAVHID /SAVE HIGH ORDER DATE BITS 2800 004556 5752 JMP I PATCH 2801 004561 4437 PAGE 004562 4700 004563 3400 004564 3505 004565 5043 004566 6201 004567 3760 004570 3707 004571 1057 004572 3721 004573 3700 004574 3761 004575 4274 004576 0175 004577 6203 2802 004600 0000 PRNAME, 0 /ROUTINE TO PRINT NAME1-NAME4 2803 004601 1377 TAD (NAME1 2804 004602 3022 DCA TEMP 2805 004603 7346 CLL STA RTL /-3 2806 004604 3020 DCA COUNT 2807 004605 1422 PRNM2, TAD I TEMP 2808 004606 4222 JMS PRINTE /TYPE OUT CHARS 2809 004607 2022 ISZ TEMP 2810 004610 2020 ISZ COUNT /EXHAUSTED ALL? 2811 004611 5205 JMP PRNM2 2812 004612 1422 TAD I TEMP 2813 004613 7650 SNA CLA 2814 004614 5600 JMP I PRNAME /NO . IF NO EXTENSION 2815 004615 1376 TAD (". /PRINT '.' 2816 004616 4775 JMS I (TTYOUT 2817 004617 1422 TAD I TEMP 2818 004620 4222 JMS PRINTE 2819 004621 5600 JMP I PRNAME 2820 2821 004622 0000 PRINTE, 0 2822 004623 3272 DCA CHTMP2 2823 004624 1272 TAD CHTMP2 /EXTRACT LEFT HAND SIDE 2824 004625 4774 JMS I (ROTR 2825 004626 4232 JMS PWORD 2826 004627 1272 TAD CHTMP2 2827 004630 4232 JMS PWORD 2828 004631 5622 JMP I PRINTE 2829 004632 0000 PWORD, 0 2830 004633 0373 AND (77 2831 004634 7450 SNA /IF NULL, GET OUT 2832 004635 5254 JMP NULL 2833 004636 3340 DCA PRTM 2834 004637 1372 TAD (200 2835 004640 6034 KRS 2836 004641 1371 TAD (-217 /^O 2837 004642 7650 SNA CLA /STOP ECHOING? 2838 004643 6031 KSF /MAYBE 2839 004644 7410 SKP /NO 2840 004645 5273 JMP CTO /YES 2841 004646 1340 TAD PRTM 2842 004647 1370 TAD (240 2843 004650 0373 AND (77 2844 004651 1370 PRSPAC, TAD (240 2845 004652 4775 JMS I (TTYOUT 2846 004653 5632 JMP I PWORD 2847 004654 1304 NULL, TAD LINEUP 2848 004655 7650 SNA CLA /PRINT SPACE? 2849 004656 5622 JMP I PRINTE /NO 2850 004657 5251 JMP PRSPAC /YES 2851 2852 004660 0000 PRWD, 0 2853 004661 7200 CLA 2854 004662 1660 PRWD2, TAD I PRWD 2855 004663 4222 JMS PRINTE 2856 004664 1660 TAD I PRWD 2857 004665 2260 ISZ PRWD 2858 004666 0373 AND (77 2859 004667 7640 SZA CLA 2860 004670 5262 JMP PRWD2 2861 004671 5660 JMP I PRWD /LEAVE IF LAST WORD ENDED WITH 00 2862 2863 004672 0000 CHTMP2, 0 2864 2865 004673 6032 CTO, KCC 2866 004674 1367 TAD ("^ 2867 004675 4775 JMS I (TTYOUT 2868 004676 1366 TAD ("O 2869 004677 4775 JMS I (TTYOUT 2870 004700 4341 JMS CRLF 2871 004701 7201 CLA IAC 2872 004702 3765 DCA I (ECHOFL 2873 004703 5632 JMP I PWORD 2874 2875 004704 0000 LINEUP, 0 /NON-ZERO MEANS PRINT NULLS AS SPACES 2876 004705 4327 OVER, JMS ASSEMB /EXTENSION OF LDABS. 2877 004706 7041 CIA 2878 004707 1734 TAD I LCKSUM /CHECKSUM OK? 2879 004710 7640 SZA CLA 2880 004711 5314 JMP BADINP /SOORY ABOUT THAT 2881 004712 7201 CLA IAC 2882 004713 5324 JMP OVROUT /SKIP ERROR EXIT 2883 004714 4260 BADINP, JMS PRWD 2884 004715 7702 TEXT /?BAD INPUT/ 004716 0104 004717 4011 004720 1620 004721 2524 004722 0000 2885 004723 4341 JMS CRLF 2886 004724 1764 OVROUT, TAD I (LDABS 2887 004725 3327 DCA OTEMP 2888 004726 5727 JMP I OTEMP 2889 OTEMP, 2890 004727 0000 ASSEMB, 0 /ASSEMBLE TWO 6 BIT WORDS 2891 004730 1735 TAD I LWD1 2892 004731 4737 JMS I PROTL /INTO A SINGLE 12 BIT WORD 2893 004732 1736 TAD I LWD2 2894 004733 5727 JMP I ASSEMB 2895 2896 004734 5147 LCKSUM, CKSUM 2897 004735 5144 LWD1, WD1 2898 004736 5145 LWD2, WD2 2899 004737 4513 PROTL, ROTL 2900 004740 0000 PRTM, 0 2901 004741 0000 CRLF, 0 2902 004742 1363 TAD (215 2903 004743 3024 DCA NAME1 2904 004744 4350 JMS PRNT 2905 004745 1362 TAD (212 2906 004746 4775 JMS I (TTYOUT 2907 004747 5741 JMP I CRLF 2908 2909 004750 0000 PRNT, 0 /CHARACTER PRINT ROUTINE 2910 004751 1361 TAD ("\ /IF NOT RUBOUT, AND IF RUBOUT WAS 2911 004752 2360 ISZ RUBFLG /LAST, ECHO \. 2912 004753 7610 SKP CLA 2913 004754 4775 JMS I (TTYOUT 2914 004755 1024 TAD NAME1 2915 004756 4775 JMS I (TTYOUT 2916 004757 5750 JMP I PRNT 2917 004760 0000 RUBFLG, 0 /RUBOUT FLAG 2918 004761 0334 PAGE 004762 0212 004763 0215 004764 5000 004765 4551 004766 0317 004767 0336 004770 0240 004771 7561 004772 0200 004773 0077 004774 4520 004775 4525 004776 0256 004777 0024 2919 /LDABS DOES A REAL LIVE ABSLOAD IF AC=0 2920 /IF AC=-2 THEN IT IS LOADING A HANDLER, THIS IS DONE AS FOLLOWS: 2921 /SEARCH FOR *0 2922 /THEN LOAD CONSEC WORDS INTO DESCRIPTOR TABLE 2923 /AT NEXT ORIGIN, LOAD WORDS INTO HANDLER AREA (ALLOW ORIGINS) 2924 2925 /CAN'T USE PAGE 0 LITERALS IN CASE LOADING OS/8 2926 2927 005000 0000 LDABS, 0 2928 005001 3350 DCA LODTST /-2 IF HANDLER, 0 IF OS8 2929 005002 1314 LDABS2, TAD JMPNXT 2930 005003 3275 DCA TSTO0 2931 005004 3347 DCA CKSUM /CLEAR CHECKSUM 2932 005005 4777 JMS I (ICHAR /GET A BUFFER CHAR 2933 005006 5600 JMP I LDABS /NO INPUT FOUND 2934 005007 7450 SNA 2935 005010 5205 JMP .-3 /IGNORE BLANKS 2936 005011 1376 TAD (-200 2937 005012 7640 SZA CLA /IS IT LEADER? 2938 005013 5775 JMP I (BADINP /WASN'T 200..PROBABLY NOT BINARY 2939 005014 4777 LEADER, JMS I (ICHAR 2940 005015 5600 JMP I LDABS /STRANGE....ALL LEADER!!! 2941 005016 7450 SNA 2942 005017 5202 JMP LDABS2 /START OVER.BLANKS AFTER LEADER 2943 005020 1376 TAD (-200 /IS IT STILL LEADER? 2944 005021 7450 SNA 2945 005022 5214 JMP LEADER /YES 2946 005023 7500 NEWWD, SMA /IS IT < 200? 2947 005024 5315 JMP FIELDW /NO.TEST FOR FIELD SEETING 2948 005025 1374 TAD (200 /RESTORE CHARACTER 2949 005026 3344 DCA WD1 2950 005027 4777 JMS I (ICHAR 2951 005030 5775 JMP I (BADINP /EOF BETWEEN WORDS. HOW NICE! 2952 005031 3345 DCA WD2 2953 005032 4777 JMS I (ICHAR 2954 005033 5775 JMP I (BADINP 2955 005034 1376 TAD (-200 /200 FINISHES US UP 2956 005035 7450 SNA 2957 005036 5773 JMP I (OVER 2958 005037 3346 DCA WD 2959 005040 4772 JMS I (ASSEMB /ASSEMBLE LAST WORD READ 2960 005041 7430 SZL /IS IT AN ORIGIN? 2961 005042 5262 JMP ORGTST /YES 2962 005043 7402 XFIELD, HLT /GETS CDF N 2963 005044 3743 DCA I ORIGIN /STORE THIS WORD 2964 005045 6201 CDF0, CDF 0 2965 005046 2343 ISZ ORIGIN /SHOULD NEVER SKIP, BUT... 2966 005047 0007 LD7, 7 2967 005050 1343 TAD ORIGIN 2968 005051 1374 TAD (200 /GIVE ERROR IF ORIGIN ADVANCES TO 7600 2969 005052 7650 SNA CLA 2970 005053 5771 JMP I (NOROOM 2971 005054 1344 NEXT, TAD WD1 2972 005055 1345 TAD WD2 /MAKE UP CHECKSUM 2973 005056 1347 TAD CKSUM 2974 005057 3347 DCA CKSUM 2975 005060 1346 TAD WD 2976 005061 5223 JMP NEWWD 2977 005062 3342 ORGTST, DCA ORGX /TEST FOR ORIGIN 2978 005063 1350 TAD LODTST /GET POINTER TO PROPER ORIGIN 2979 005064 7640 SZA CLA 2980 005065 5351 JMP HND 2981 005066 1342 TAD ORGX /OS/8 - USE REAL ORIGIN 2982 005067 3343 ORI, DCA ORIGIN /BUFFER AREA 2983 005070 1350 TAD LODTST /HANDLER LOAD? 2984 005071 7650 SNA CLA 2985 005072 5254 JMP NEXT /NOPE 2986 005073 1342 TAD ORGX /DON'T START LOAD UNTIL *0 IS FOUND 2987 005074 7640 SZA CLA 2988 005075 5254 TSTO0, JMP NEXT 2989 005076 3275 DCA .-1 /FOUND *0..DO THE LOAD 2990 005077 2350 ISZ LODTST /YES. BUMP LODTST TO LOAD HANDLER NEXT 2991 005100 5254 JMP NEXT 2992 005101 1243 TAD XFIELD 2993 005102 1370 TAD (-CDF 0 2994 005103 7650 SNA CLA 2995 005104 4356 JMS FIRST /FIRST TIME THROUGH 2996 /DO THIS BETTER; ALSO MAKE SURE HANDLER DOESN(T HAVE A FILED PSEUDO 2997 005105 1367 TAD (CDF 10 2998 005106 3243 DCA XFIELD /AT THIS POINT, WE START 2999 005107 7240 CLA CMA /LOADING THE HANDLER INTO THE 3000 005110 3350 DCA LODTST /AREA SPECIFIED BY HNDORG+1 3001 /CHECK 'ORIGIN' TO SEE IF HEADER WAS RIGHT SIZE 3002 /ALSO ELSEWHERE, CAN CHECK ORIGIN WHEN BUMPING TO SEE 3003 /IF WE HIT ANY MAGIC LOCATIONS 3004 005111 1342 TAD ORGX /SEE IF LEGAL RE ORIGIN 3005 005112 4766 JMS I (ORGLIM 3006 005113 3343 DCA ORIGIN /ACTUAL FIELD 1 ORIGIN 3007 / TAD SNACLA /LOADING FIELD 1..TEST ORIGINS 3008 / DCA JMPRE 3009 005114 5254 JMPNXT, JMP NEXT 3010 005115 1365 FIELDW, TAD (-100 /LESS THAN 300 FAILS 3011 005116 7510 SPA 3012 005117 5775 JMP I (BADINP 3013 005120 3344 DCA WD1 3014 005121 1344 TAD WD1 3015 005122 0247 AND LD7 3016 005123 7640 SZA CLA 3017 005124 5775 JMP I (BADINP /DISECT WORD TO CATCH GARBAGE 3018 005125 1350 TAD LODTST /IF LOADING HANDLER, IGNORE FIELD 3019 005126 7640 SZA CLA 3020 005127 5334 JMP FIELD2 3021 005130 1344 TAD WD1 3022 005131 0364 AND (70 /EXTRACT FIELD SETTING 3023 005132 1245 TAD CDF0 3024 005133 3243 DCA XFIELD 3025 005134 4777 FIELD2, JMS I (ICHAR 3026 005135 5775 JMP I (BADINP 3027 005136 1376 TAD (7600 3028 005137 7440 SZA 3029 005140 5223 JMP NEWWD 3030 005141 5773 JMP I (OVER 3031 005142 0000 ORGX, 0 3032 005143 0000 ORIGIN, 0 3033 005144 0000 WD1, 0 3034 005145 0000 WD2, 0 3035 005146 0000 WD, 0 3036 005147 0000 CKSUM, 0 3037 005150 0000 LODTST, 0 3038 3039 /0: LOADING OS/8 3040 /-2: LOADING HEADER OF HANDLER 3041 /-1: LOADING HANDLER 3042 3043 005151 1343 HND, TAD ORIGIN 3044 005152 3355 DCA KLUD 3045 005153 1030 TAD TABLMT 3046 005154 5267 JMP ORI /HANDLER - USE HANDLER SPACE 3047 3048 005155 0000 KLUD, 0 3049 3050 005156 0000 FIRST, 0 3051 005157 1355 TAD KLUD 3052 005160 3362 DCA NEWLIM 3053 005161 5756 JMP I FIRST 3054 3055 005162 0000 NEWLIM, 0 /NEW END OF DESCRIPTORS 3056 005163 0000 RETSW, 0 /0 MEANS RAN FROM OS/8, 1 MEANS RAN STANDALONE 3057 005164 0070 PAGE 005165 7700 005166 2304 005167 6211 005170 1577 005171 0723 005172 4727 005173 4705 005174 0200 005175 4714 005176 7600 005177 3674 3058 LNLNGT=103 3059 005200 0000 BEGLIN, ZBLOCK LNLNGT 005201 0000 005202 0000 005203 0000 005204 0000 005205 0000 005206 0000 005207 0000 005210 0000 005211 0000 005212 0000 005213 0000 005214 0000 005215 0000 005216 0000 005217 0000 005220 0000 005221 0000 005222 0000 005223 0000 005224 0000 005225 0000 005226 0000 005227 0000 005230 0000 005231 0000 005232 0000 005233 0000 005234 0000 005235 0000 005236 0000 005237 0000 005240 0000 005241 0000 005242 0000 005243 0000 005244 0000 005245 0000 005246 0000 005247 0000 005250 0000 005251 0000 005252 0000 005253 0000 005254 0000 005255 0000 005256 0000 005257 0000 005260 0000 005261 0000 005262 0000 005263 0000 005264 0000 005265 0000 005266 0000 005267 0000 005270 0000 005271 0000 005272 0000 005273 0000 005274 0000 005275 0000 005276 0000 005277 0000 005300 0000 005301 0000 005302 0000 3060 3061 SBLOCK=7776 /?? 3062 /CTCFAK, .+1 /^C MUST NOT RETURN TO ANY SYSTEM. 3063 / JMP I CTCFAK /CTCFAK MARKS OUR PLACE DURING 3064 / /SYSGEN, AND ^C WILL RETURN TO THAT PLACE. 3065 /*** THIS STUFF GOES AWAY ON A BOOT 3066 3067 005303 6211 BUILD, CDF 10 3068 005304 1453 TAD I [7200 /HAS SPECIAL CODE BEEN OVERLAID BY HANDLERS? 3069 005305 6201 CDF 0 3070 005306 1052 TAD [-1234 3071 005307 7640 SZA CLA 3072 005310 5777 JMP I (NOROOM /YES, TOO BAD 3073 / TAD (5601 3074 / DCA I [7600 3075 / TAD (CTCFAK+1 3076 / DCA I (7601 3077 005311 1051 TAD [6600 /SAVE OLD SYSTEM HANDLER IN 16600 3078 005312 4776 JMS I (SETUPSYS 3079 / JMS CTCFAK 3080 005313 4535 RDOS8, JMS I [PRWD 3081 005314 1417 TEXT \LOAD OS/8: \ 005315 0104 005316 4017 005317 2357 005320 7072 005321 4000 3082 005322 4347 JMS RD 3083 005323 5313 JMP RDOS8 3084 005324 6213 CIF CDF 10 3085 005325 4775 JMS I (WROS8 3086 005326 4774 JMS I (SYSWP 3087 / JMS CTCFAK 3088 005327 4574 RDCD, JMS I [CRLF 3089 005330 4535 JMS I [PRWD 3090 005331 1417 TEXT /LOAD CD: / 005332 0104 005333 4003 005334 0472 005335 4000 3091 005336 3354 DCA DVER 3092 005337 4347 JMS RD 3093 005340 5327 JMP RDCD 3094 005341 6213 CIF CDF 10 3095 005342 4773 JMS I (WRCD 3096 005343 1772 TAD I (RETSW 3097 005344 7650 SNA CLA /NOT IF FROM SCRATCH 3098 005345 4774 JMS I (SYSWP /GET OLD HANDLER IF ANY BACK IN 3099 005346 5534 JMP I [CONFIG 3100 005347 0000 RD, 0 3101 005350 1050 TAD [-40 3102 005351 4567 JMS I [GTEXT 3103 005352 5747 JMP I RD 3104 005353 4771 JMS I (SETUP 3105 005354 5770 DVER, JMP I (NODEV 3106 005355 4774 JMS I (SYSWP /PUT IN NEW HANDLER 3107 005356 6213 CIF CDF 10 3108 005357 4767 JMS I (SAVE 3109 005360 4774 JMS I (SYSWP 3110 005361 4766 JMS I (LDABS /PAST HERE PAGE 0 IS GONE 3111 005362 5747 JMP I RD 3112 005363 4774 JMS I (SYSWP 3113 005364 2347 ISZ RD 3114 005365 5747 JMP I RD 3115 005366 5000 PAGE 005367 7452 005370 1364 005371 1000 005372 5163 005373 7341 005374 3600 005375 7201 005376 3530 005377 0723 3116 *6400 3117 3118 006400 0000 DSCTAB, ZBLOCK 1200 006401 0000 006402 0000 006403 0000 006404 0000 006405 0000 006406 0000 006407 0000 006410 0000 006411 0000 006412 0000 006413 0000 006414 0000 006415 0000 006416 0000 006417 0000 006420 0000 006421 0000 006422 0000 006423 0000 006424 0000 006425 0000 006426 0000 006427 0000 006430 0000 006431 0000 006432 0000 006433 0000 006434 0000 006435 0000 006436 0000 006437 0000 006440 0000 006441 0000 006442 0000 006443 0000 006444 0000 006445 0000 006446 0000 006447 0000 006450 0000 006451 0000 006452 0000 006453 0000 006454 0000 006455 0000 006456 0000 006457 0000 006460 0000 006461 0000 006462 0000 006463 0000 006464 0000 006465 0000 006466 0000 006467 0000 006470 0000 006471 0000 006472 0000 006473 0000 006474 0000 006475 0000 006476 0000 006477 0000 006500 0000 006501 0000 006502 0000 006503 0000 006504 0000 006505 0000 006506 0000 006507 0000 006510 0000 006511 0000 006512 0000 006513 0000 006514 0000 006515 0000 006516 0000 006517 0000 006520 0000 006521 0000 006522 0000 006523 0000 006524 0000 006525 0000 006526 0000 006527 0000 006530 0000 006531 0000 006532 0000 006533 0000 006534 0000 006535 0000 006536 0000 006537 0000 006540 0000 006541 0000 006542 0000 006543 0000 006544 0000 006545 0000 006546 0000 006547 0000 006550 0000 006551 0000 006552 0000 006553 0000 006554 0000 006555 0000 006556 0000 006557 0000 006560 0000 006561 0000 006562 0000 006563 0000 006564 0000 006565 0000 006566 0000 006567 0000 006570 0000 006571 0000 006572 0000 006573 0000 006574 0000 006575 0000 006576 0000 006577 0000 006600 0000 006601 0000 006602 0000 006603 0000 006604 0000 006605 0000 006606 0000 006607 0000 006610 0000 006611 0000 006612 0000 006613 0000 006614 0000 006615 0000 006616 0000 006617 0000 006620 0000 006621 0000 006622 0000 006623 0000 006624 0000 006625 0000 006626 0000 006627 0000 006630 0000 006631 0000 006632 0000 006633 0000 006634 0000 006635 0000 006636 0000 006637 0000 006640 0000 006641 0000 006642 0000 006643 0000 006644 0000 006645 0000 006646 0000 006647 0000 006650 0000 006651 0000 006652 0000 006653 0000 006654 0000 006655 0000 006656 0000 006657 0000 006660 0000 006661 0000 006662 0000 006663 0000 006664 0000 006665 0000 006666 0000 006667 0000 006670 0000 006671 0000 006672 0000 006673 0000 006674 0000 006675 0000 006676 0000 006677 0000 006700 0000 006701 0000 006702 0000 006703 0000 006704 0000 006705 0000 006706 0000 006707 0000 006710 0000 006711 0000 006712 0000 006713 0000 006714 0000 006715 0000 006716 0000 006717 0000 006720 0000 006721 0000 006722 0000 006723 0000 006724 0000 006725 0000 006726 0000 006727 0000 006730 0000 006731 0000 006732 0000 006733 0000 006734 0000 006735 0000 006736 0000 006737 0000 006740 0000 006741 0000 006742 0000 006743 0000 006744 0000 006745 0000 006746 0000 006747 0000 006750 0000 006751 0000 006752 0000 006753 0000 006754 0000 006755 0000 006756 0000 006757 0000 006760 0000 006761 0000 006762 0000 006763 0000 006764 0000 006765 0000 006766 0000 006767 0000 006770 0000 006771 0000 006772 0000 006773 0000 006774 0000 006775 0000 006776 0000 006777 0000 007000 0000 007001 0000 007002 0000 007003 0000 007004 0000 007005 0000 007006 0000 007007 0000 007010 0000 007011 0000 007012 0000 007013 0000 007014 0000 007015 0000 007016 0000 007017 0000 007020 0000 007021 0000 007022 0000 007023 0000 007024 0000 007025 0000 007026 0000 007027 0000 007030 0000 007031 0000 007032 0000 007033 0000 007034 0000 007035 0000 007036 0000 007037 0000 007040 0000 007041 0000 007042 0000 007043 0000 007044 0000 007045 0000 007046 0000 007047 0000 007050 0000 007051 0000 007052 0000 007053 0000 007054 0000 007055 0000 007056 0000 007057 0000 007060 0000 007061 0000 007062 0000 007063 0000 007064 0000 007065 0000 007066 0000 007067 0000 007070 0000 007071 0000 007072 0000 007073 0000 007074 0000 007075 0000 007076 0000 007077 0000 007100 0000 007101 0000 007102 0000 007103 0000 007104 0000 007105 0000 007106 0000 007107 0000 007110 0000 007111 0000 007112 0000 007113 0000 007114 0000 007115 0000 007116 0000 007117 0000 007120 0000 007121 0000 007122 0000 007123 0000 007124 0000 007125 0000 007126 0000 007127 0000 007130 0000 007131 0000 007132 0000 007133 0000 007134 0000 007135 0000 007136 0000 007137 0000 007140 0000 007141 0000 007142 0000 007143 0000 007144 0000 007145 0000 007146 0000 007147 0000 007150 0000 007151 0000 007152 0000 007153 0000 007154 0000 007155 0000 007156 0000 007157 0000 007160 0000 007161 0000 007162 0000 007163 0000 007164 0000 007165 0000 007166 0000 007167 0000 007170 0000 007171 0000 007172 0000 007173 0000 007174 0000 007175 0000 007176 0000 007177 0000 007200 0000 007201 0000 007202 0000 007203 0000 007204 0000 007205 0000 007206 0000 007207 0000 007210 0000 007211 0000 007212 0000 007213 0000 007214 0000 007215 0000 007216 0000 007217 0000 007220 0000 007221 0000 007222 0000 007223 0000 007224 0000 007225 0000 007226 0000 007227 0000 007230 0000 007231 0000 007232 0000 007233 0000 007234 0000 007235 0000 007236 0000 007237 0000 007240 0000 007241 0000 007242 0000 007243 0000 007244 0000 007245 0000 007246 0000 007247 0000 007250 0000 007251 0000 007252 0000 007253 0000 007254 0000 007255 0000 007256 0000 007257 0000 007260 0000 007261 0000 007262 0000 007263 0000 007264 0000 007265 0000 007266 0000 007267 0000 007270 0000 007271 0000 007272 0000 007273 0000 007274 0000 007275 0000 007276 0000 007277 0000 007300 0000 007301 0000 007302 0000 007303 0000 007304 0000 007305 0000 007306 0000 007307 0000 007310 0000 007311 0000 007312 0000 007313 0000 007314 0000 007315 0000 007316 0000 007317 0000 007320 0000 007321 0000 007322 0000 007323 0000 007324 0000 007325 0000 007326 0000 007327 0000 007330 0000 007331 0000 007332 0000 007333 0000 007334 0000 007335 0000 007336 0000 007337 0000 007340 0000 007341 0000 007342 0000 007343 0000 007344 0000 007345 0000 007346 0000 007347 0000 007350 0000 007351 0000 007352 0000 007353 0000 007354 0000 007355 0000 007356 0000 007357 0000 007360 0000 007361 0000 007362 0000 007363 0000 007364 0000 007365 0000 007366 0000 007367 0000 007370 0000 007371 0000 007372 0000 007373 0000 007374 0000 007375 0000 007376 0000 007377 0000 007400 0000 007401 0000 007402 0000 007403 0000 007404 0000 007405 0000 007406 0000 007407 0000 007410 0000 007411 0000 007412 0000 007413 0000 007414 0000 007415 0000 007416 0000 007417 0000 007420 0000 007421 0000 007422 0000 007423 0000 007424 0000 007425 0000 007426 0000 007427 0000 007430 0000 007431 0000 007432 0000 007433 0000 007434 0000 007435 0000 007436 0000 007437 0000 007440 0000 007441 0000 007442 0000 007443 0000 007444 0000 007445 0000 007446 0000 007447 0000 007450 0000 007451 0000 007452 0000 007453 0000 007454 0000 007455 0000 007456 0000 007457 0000 007460 0000 007461 0000 007462 0000 007463 0000 007464 0000 007465 0000 007466 0000 007467 0000 007470 0000 007471 0000 007472 0000 007473 0000 007474 0000 007475 0000 007476 0000 007477 0000 007500 0000 007501 0000 007502 0000 007503 0000 007504 0000 007505 0000 007506 0000 007507 0000 007510 0000 007511 0000 007512 0000 007513 0000 007514 0000 007515 0000 007516 0000 007517 0000 007520 0000 007521 0000 007522 0000 007523 0000 007524 0000 007525 0000 007526 0000 007527 0000 007530 0000 007531 0000 007532 0000 007533 0000 007534 0000 007535 0000 007536 0000 007537 0000 007540 0000 007541 0000 007542 0000 007543 0000 007544 0000 007545 0000 007546 0000 007547 0000 007550 0000 007551 0000 007552 0000 007553 0000 007554 0000 007555 0000 007556 0000 007557 0000 007560 0000 007561 0000 007562 0000 007563 0000 007564 0000 007565 0000 007566 0000 007567 0000 007570 0000 007571 0000 007572 0000 007573 0000 007574 0000 007575 0000 007576 0000 007577 0000 3119 /RELIC: 3120 3121 *7600 3122 007600 0000 0 /ONLY LOADED FROM PAPER TAPE. 3123 3124 *7777 3125 007777 0000 0 /SET SOFTWARE CORE SIZE TO 'UNKNOWN' 3126 000050 7740 FIELD 1 000051 6600 000052 6544 000053 7200 000054 7647 000055 0017 000056 7731 000057 4210 000060 7643 000061 4200 000062 7761 000063 5437 000064 5436 000065 7763 000066 7607 000067 7770 000070 7771 000071 7612 000072 7744 000073 7601 000074 5000 000075 3600 000076 5200 000077 2245 000100 7774 000101 0257 000102 4400 000103 1600 000104 7700 000105 0177 000106 6177 000107 0673 000110 0077 000111 4520 000112 0523 000113 0712 000114 0677 000115 0650 000116 1763 000117 2744 000120 1770 000121 7772 000122 4513 000123 0007 000124 4714 000125 2207 000126 1364 000127 3763 000130 7506 000131 0024 000132 2553 000133 0200 000134 0213 000135 4660 000136 4600 000137 4017 000140 4000 000141 2547 000142 0010 000143 7540 000144 3147 000145 7000 000146 0566 000147 0563 000150 0100 000151 0336 000152 5177 000153 0334 000154 2601 000155 4750 000156 1452 000157 7400 000160 0070 000161 7777 000162 0302 000163 0311 000164 2140 000165 2220 000166 2701 000167 0400 000170 7675 000171 3673 000172 4525 000173 0244 000174 4741 000175 5163 000176 4207 000177 7600 3127 *0 3128 010000 0000 0 /FORCE ABSLDR TO LOAD THIS PAGE 3129 *400 3130 / ZBLOCK 5400 3131 010400 0000 0 3132 *6600 3133 3134 RELOC BINARY 3135 3136 016000* 6211 BINPUN, CDF 10 3137 016001* 7200 CLA 3138 016002* 1377 TAD (-400 3139 016003* 6202 CIF 0 3140 016004* 4776 JMS I (MOVE 3141 016005* 6211 CDF 10 3142 016006* 6600 6600 3143 016007* 6201 CDF 0 3144 016010* 6000 BINARY /MOVE ONESELF DOWN 3145 016011* 6203 CIF CDF 0 3146 016012* 5775 JMP I (LDR /EXECUTE IN FIELD 0 3147 016013* 4307 LDR, JMS LEDER /PUNCH 72 FRAMES OF 200 3148 016014* 3331 DCA CHECK /0 CHECKSUM 3149 016015* 1374 TAD (102 3150 016016* 4332 JMS CKSUMM 3151 016017* 4317 JMS PNCH 3152 016020* 4773 STARTB, JMS I (CRLF 3153 016021* 1372 TAD ("* 3154 016022* 4771 JMS I (TTYOUT 3155 016023* 1370 TAD (-100 3156 016024* 4767 JMS I (GTEXT 3157 016025* 5220 JMP STARTB 3158 016026* 4766 JMS I (GETNUM 3159 016027* 5765 JMP I (OVERB 3160 016030* 1031 TAD SIZE 3161 016031* 0364 AND (7770 3162 016032* 7640 SZA CLA 3163 016033* 5220 JMP STARTB 3164 016034* 1031 TAD SIZE 3165 016035* 7106 CLL RTL 3166 016036* 7004 RAL 3167 016037* 3325 DCA FLD 3168 016040* 4766 JMS I (GETNUM /GET LOWER LIMIT 3169 016041* 5220 JMP STARTB 3170 016042* 1031 TAD SIZE 3171 016043* 3326 DCA LIM1 3172 016044* 4766 JMS I (GETNUM /GET UPPER LIMIT 3173 016045* 5220 JMP STARTB 3174 016046* 1031 TAD SIZE 3175 016047* 3327 DCA LIM2 3176 016050* 1327 TAD LIM2 3177 016051* 7040 CMA 3178 016052* 1326 TAD LIM1 3179 016053* 3330 DCA COUNT2 3180 016054* 1325 TAD FLD 3181 016055* 1363 TAD (300 3182 016056* 4317 JMS PNCH 3183 016057* 1325 TAD FLD 3184 016060* 1362 TAD (CDF 0 3185 016061* 3272 DCA BUFLD 3186 016062* 1326 TAD LIM1 3187 016063* 4761 JMS I (ROTR 3188 016064* 0360 AND (77 3189 016065* 1357 TAD (100 3190 016066* 4332 JMS CKSUMM 3191 016067* 1326 TAD LIM1 3192 016070* 0360 AND (77 3193 016071* 4332 JMS CKSUMM 3194 016072* 7402 BUFLD, HLT 3195 016073* 1726 TAD I LIM1 3196 016074* 4761 JMS I (ROTR 3197 016075* 0360 AND (77 3198 016076* 4332 JMS CKSUMM 3199 016077* 1726 TAD I LIM1 3200 016100* 0360 AND (77 3201 016101* 4332 JMS CKSUMM 3202 016102* 2326 ISZ LIM1 3203 016103* 2330 ISZ COUNT2 3204 016104* 5272 JMP BUFLD 3205 016105* 6203 CIF CDF 0 3206 016106* 5220 JMP STARTB 3207 016107* 0000 LEDER, 0 /PUNCH LEADER/TRAILER 3208 016110* 1356 TAD (-200 3209 016111* 3330 DCA COUNT2 3210 016112* 1355 TAD (200 3211 016113* 4317 JMS PNCH 3212 016114* 2330 ISZ COUNT2 3213 016115* 5312 JMP .-3 3214 016116* 5707 JMP I LEDER 3215 3216 016117* 0000 PNCH, 0 3217 016120* 6026 PLS 3218 016121* 6021 PSF 3219 016122* 5321 JMP .-1 3220 016123* 7200 CLA 3221 016124* 5717 JMP I PNCH 3222 3223 016125* 0000 FLD, 0 3224 016126* 0000 LIM1, 0 3225 016127* 0000 LIM2, 0 3226 016130* 0000 COUNT2, 0 3227 016131* 0000 CHECK, 0 3228 3229 016132* 0000 CKSUMM, 0 3230 016133* 3342 DCA CK1 3231 016134* 1342 TAD CK1 3232 016135* 1331 TAD CHECK 3233 016136* 3331 DCA CHECK 3234 016137* 1342 TAD CK1 3235 016140* 4317 JMS PNCH 3236 016141* 5732 JMP I CKSUMM 3237 3238 016142* 0000 CK1, 0 3239 016155* 0200 PAGE 016156* 7600 016157* 0100 016160* 0077 016161* 4520 016162* 6201 016163* 0300 016164* 7770 016165* 6200 016166* 0523 016167* 0400 016170* 7700 016171* 4525 016172* 0252 016173* 4741 016174* 0102 016175* 6013 016176* 4400 016177* 7400 3240 016200* 1377 OVERB, TAD (300 3241 016201* 4776 JMS I (PNCH /FIELD 0 3242 016202* 1375 TAD (176 3243 016203* 4774 JMS I (CKSUMM 3244 016204* 4774 JMS I (CKSUMM /*7600 3245 016205* 1373 TAD (74 3246 016206* 4774 JMS I (CKSUMM 3247 016207* 7326 STL CLA RTL 3248 016210* 4774 JMS I (CKSUMM /HLT 3249 016211* 1372 TAD (177 3250 016212* 4774 JMS I (CKSUMM 3251 016213* 1371 TAD (77 3252 016214* 4774 JMS I (CKSUMM /*7777 3253 016215* 4774 JMS I (CKSUMM 3254 016216* 4774 JMS I (CKSUMM /0000 3255 016217* 1370 TAD (102 3256 016220* 4774 JMS I (CKSUMM 3257 016221* 4774 JMS I (CKSUMM /*200 3258 016222* 1767 TAD I (CHECK 3259 016223* 4766 JMS I (ROTR 3260 016224* 0371 AND (77 3261 016225* 4776 JMS I (PNCH 3262 016226* 1767 TAD I (CHECK 3263 016227* 0371 AND (77 3264 016230* 4776 JMS I (PNCH 3265 016231* 4765 JMS I (LEDER 3266 016232* 7402 HLT 3267 016233* 5232 JMP .-1 /ALL DONE 3268 016365* 6107 PAGE 016366* 4520 016367* 6131 016370* 0102 016371* 0077 016372* 0177 016373* 0074 016374* 6132 016375* 0176 016376* 6117 016377* 0300 3269 RELOC 3270 *7200 3271 3272 DIRLOC=1400 /FROM OS/8 ASSEMBLY 3273 3274 READ=JMS I (7607 3275 WRITE=READ 3276 MFREE=70 3277 ERR=JMS I (WRERR 3278 3279 017200 1234 1234 /MAGIC NUMBER WHICH IF NOT HERE, MEANS HANDLERS OVERLAID 3280 3281 017201 0000 WROS8, 0 3282 017202 6202 CIF 0 3283 017203 1335 TAD Z7600 3284 017204 4775 JMS I (MOVE /SAVE CURRENT 7600 3285 017205 6201 CDF 0 3286 017206 7600 7600 3287 017207 6201 CDF 0 3288 017210 7000 7000 /IN 07000 3289 017211 1374 TAD (-7 /MOVE 6600 TO 7600 3290 017212 6202 CIF 0 3291 017213 4775 JMS I (MOVE 3292 017214 6201 CDF 0 3293 017215 6600 6600 3294 017216 6201 CDF 0 3295 017217 7600 7600 3296 017220 1373 TAD (-34 /FINISH MOVING FIELD 0 3297 017221 6202 CIF 0 3298 017222 4775 JMS I (MOVE 3299 017223 6201 CDF 0 3300 017224 6744 6744 3301 017225 6201 CDF 0 3302 017226 7744 7744 3303 017227 6201 CDF 0 3304 017230 1372 TAD (5 /V3C SUBTRACT OFF LENGTH OF ABSLDR 3305 017231 1771 TAD I (DLENGTH /FILL IN INITIAL LENGTH 3306 017232 6211 CDF 10 3307 017233 3770 DCA I (DIRLOC+14 /OS8 HAS INITIAL DIRECTORY 3308 017234 6202 CIF 0;WRITE;4200;7400;0;ERR /INITIAL REC.0 017235 4777 017236 4200 017237 7400 017240 0000 017241 4776 3309 017242 6202 CIF 0;WRITE;4200;7400;66;ERR /ALSO WRITE RECORD 66 017243 4777 017244 4200 017245 7400 017246 0066 017247 4776 3310 017250 6202 CIF 0;WRITE;4210;DIRLOC;1;ERR /INITIAL DIRECTORY 017251 4777 017252 4210 017253 1400 017254 0001 017255 4776 3311 017256 6202 CIF 0;WRITE;5000;0;7;ERR /KBM 017257 4777 017260 5000 017261 0000 017262 0007 017263 4776 3312 017264 6202 CIF 0;WRITE;4610;0;13;ERR /USR 017265 4777 017266 4610 017267 0000 017270 0013 017271 4776 3313 017272 6202 CIF 0;WRITE;4111;3400;26;ERR /ENTER OVERLAY 017273 4777 017274 4111 017275 3400 017276 0026 017277 4776 3314 017300 6202 CIF 0;WRITE;4701;2000;54;ERR /SAVE, DATE, MON ERROR, CHAIN OVERLAYS 017301 4777 017302 4701 017303 2000 017304 0054 017305 4776 3315 017306 6202 CIF 0;WRITE;4101;LDRCTL;70;ERR /ABSLDR CORE CONTROL BLOCK 017307 4777 017310 4101 017311 4113 017312 0070 017313 4776 3316 017314 6202 CIF 0;WRITE;5010;2000;71;ERR /ABSLDR 017315 4777 017316 5010 017317 2000 017320 0071 017321 4776 3317 017322 6201 CDF 0 3318 017323 1767 TAD I (RETSW 3319 017324 6211 CDF 10 3320 017325 7650 SNA CLA /SCRATCH BUILD? 3321 017326 5766 JMP I (RES76 /NO 3322 017327 1335 TAD Z7600 /YES /MOVE 17600 UP THERE 3323 017330 6202 CIF 0 3324 017331 4775 JMS I (MOVE 3325 017332 6201 CDF 0 3326 017333 7400 7400 3327 017334 6211 CDF 10 3328 017335 7600 Z7600, 7600 3329 017336 4765 JMS I (RESTORE 3330 017337 6203 CIF CDF 0 3331 017340 5601 JMP I WROS8 3332 3333 /RELATIONSHIP BEWTWEEN OS/8 CORE IMAGE AND BLOCKS ON SYSTEM DEVICE: 3334 3335 /ITEM CORE LOC BLOCKS 3336 3337 /KBM 0000-1777 7-12 3338 /OVERLAYS 2000-3577 54-57 3339 /INIT DIR DIRLOC- 1 3340 /ABSLDR CCB LDRCTL- 70 3341 /INIT BLOCK 0 7400-7777 0 3342 /USR 10000-11377 13-15 3343 /ABSLDR 12000-13777 71-74 3344 /ENTER 13400-13577 26 3345 /SYS 06600-06606 PART OF 07600 3346 /SYS 06744-06777 " 3347 017341 0000 WRCD, 0 3348 017342 6202 CIF 0;WRITE;4600;0;51;ERR /CD 017343 4777 017344 4600 017345 0000 017346 0051 017347 4776 3349 017350 6202 CIF 0;WRITE;5011;0;60;ERR /ODT 017351 4777 017352 5011 017353 0000 017354 0060 017355 4776 3350 017356 4765 JMS I (RESTORE 3351 017357 4764 JMS I (CASIT 3352 017360 6203 CIF CDF 0 3353 017361 5741 JMP I WRCD 3354 017364 7517 PAGE 017365 7434 017366 7477 017367 5163 017370 1414 017371 4165 017372 0005 017373 7744 017374 7771 017375 4400 017376 7507 017377 7607 3355 READ=JMS I (7607 3356 ERR=JMS WRERR 3357 3358 /SPECIAL CODE TO CHAIN TO ABSLDR, TO READ IN MCPIP 3359 3360 017400 4776 JMS I (7700 3361 017401 0010 10 /LOCK USR IN CORE 3362 017402 1345 TAD R7600 /ZERO CD AREA 3363 017403 3316 DCA CDPTR 3364 017404 1375 TAD (-47 3365 017405 3317 DCA CDKNT 3366 017406 3716 DCA I CDPTR 3367 017407 2316 ISZ CDPTR 3368 017410 2317 ISZ CDKNT 3369 017411 5206 JMP .-3 3370 017412 7330 STL CLA RAR /ALTMODE 3371 017413 3774 DCA I (7642 3372 017414 4773 JMS I (200 3373 017415 0012 12 /INQUIRE 3374 017416 4503 4503 /ENCODE CSA0 3375 017417 0000 CDN, 0 3376 017420 0000 0 3377 017421 7402 HLT 3378 017422 1217 TAD CDN /TAKE DEVICE NUMBER 3379 017423 3772 DCA I (7617 /STORE DEVICE NUMBER OF CASSETTE 3380 017424 2771 ISZ I (7620 /V3C FORCE BLOCK 1 3381 017425 7201 CLA IAC 3382 017426 6201 CDF 0 /V3D 3383 017427 3770 DCA I (7746 /SET JSW SO CHAIN DOESN'T DO USROUT 3384 017430 6211 CDF 10 3385 017431 4773 JMS I (200 /CHAIN TO ABSLDR 3386 017432 0006 6 3387 017433 0070 70 3388 017434 0000 RESTORE,0 3389 017435 6202 CIF 0;READ;3701;0;BLDSAV;ERR 017436 4777 017437 3701 017440 0000 017441 0075 017442 4307 3390 017443 6202 CIF 0;READ;3510;0;BLDSAV+20;ERR /RESTORE BUILD 017444 4777 017445 3510 017446 0000 017447 0115 017450 4307 3391 017451 5634 JMP I RESTORE 3392 WRITE=JMS I (7607 3393 ERR=JMS WRERR 3394 3395 017452 0000 SAVE, 0 3396 017453 6201 CDF 0 3397 017454 3767 DCA I (SOFSET 3398 017455 3766 DCA I (SBLOCK 3399 017456 3765 DCA I (DRECT /HAVE TO KEEP DIRECTORY LATER 3400 017457 6211 CDF 10 3401 017460 6202 CIF 0;WRITE;7701;0;BLDSAV;ERR 017461 4777 017462 7701 017463 0000 017464 0075 017465 4307 3402 017466 6202 CIF 0;WRITE;7510;0;BLDSAV+20;ERR 017467 4777 017470 7510 017471 0000 017472 0115 017473 4307 3403 017474 4317 JMS CASIT 3404 017475 6203 CIF CDF 0 3405 017476 5652 JMP I SAVE 3406 3407 017477 1764 RES76, TAD I (Z7600 3408 017500 6202 CIF 0 3409 017501 4763 JMS I (MOVE 3410 017502 6201 CDF 0 3411 017503 7000 7000 /RESTORE OLD PAGE 7600 3412 017504 6201 CDF 0 3413 017505 7600 7600 3414 017506 5764 JMP I (Z7600 3415 017507 0000 WRERR, 0 /WRITE ERROR 3416 017510 7602 HLT CLA /HIT CONTINUE TO RETRY 3417 017511 1307 TAD WRERR 3418 017512 1362 TAD (-6 3419 017513 3307 DCA WRERR /POINT BACK TO CIF OF CALL 3420 017514 5707 JMP I WRERR /RETRY 3421 3422 /RELATIONSHIP BETWEEN CD CORE IMAGE AND BLOCKS ON SYSTEM DEVICE: 3423 3424 /ITEM CORE LOC BLOCKS 3425 /CD 00000-01377 51-63 3426 /ODT 10000-11777 60-63 3427 3428 017515 0000 CSA, 0 /CASSETTE HANDLER ENTRY PT 3429 017516 0000 CDPTR, 0 3430 3431 CDKNT, 3432 017517 0000 CASIT, 0 3433 017520 6201 CDF 0 3434 017521 1761 TAD I (RECNO 3435 017522 7450 SNA 3436 017523 7201 CLA IAC /IF BLOCK 0, CHANGE TO 1 3437 017524 3761 DCA I (RECNO 3438 017525 1752 TAD I PRETSW 3439 017526 7650 SNA CLA /BUILDING FROM SCRATCH? 3440 017527 5717 JMP I CASIT /NO 3441 017530 1760 TAD I (BLDCB /YES, GET DCB OF LOAD HANDLER 3442 017531 0343 AND L770 3443 017532 1344 TAD M270 /CASSETTE DEVICE CODE=27 3444 017533 7640 SZA CLA 3445 017534 5717 JMP I CASIT /NOT A CASSETTE 3446 017535 1757 TAD I (DVICE 3447 017536 3315 DCA CSA /GET HANDLER ENTRY POINT 3448 017537 6211 CDF 10 3449 017540 6202 CIF 0 3450 017541 4715 JMS I CSA 3451 017542 0003 3 /SKIP TO NEXT FILE 3452 017543 0770 L770, 770 3453 017544 7510 M270, -270 3454 017545 7600 R7600, 7600 /IGNORE ERRORS 3455 017546 6202 CIF 0 3456 017547 4715 JMS I CSA 3457 017550 0100 100 /DUMMY READ A PAGE 3458 017551 6000 BINARY /TO SKIP HEADER 3459 017552 5163 PRETSW, RETSW 3460 017553 7610 SKP CLA /WANT AN ERROR 3461 017554 7402 HLT /A GOOD READ IS BAD! 3462 017555 5717 JMP I CASIT 3463 017557 3763 FIELD 0 017560 1570 017561 3707 017562 7772 017563 4400 017564 7335 017565 3505 017566 7776 017567 7747 017570 7746 017571 7620 017572 7617 017573 0200 017574 7642 017575 7731 017576 7700 017577 7607 3464 *200 3465 $ ACT 1267 ACTION 1404 ACTIV 3056 ACTIVE 0006 ACTNAM 0673 ACTSW 0661 ADV 2466 ADVBOT 4537 ADVDSC 4540 ALTER 1625 ALTMOD 0511 AMTCOR 3667 ASSEMB 4727 B 3271 BADARG 3147 BADINP 4714 BADLOD 2207 BADORG 2331 BADPLT 1331 BADV 2512 BAKC 0566 BAKCHR 4546 BD 0276 BDV 2524 BEGLIN 5200 BIGFLG 0711 BIGNAM 0677 BINARY 6000 BINBUF 3706 BINPUN 6000 unreferenced BLDCB 1570 BLDCCB 0742 BLDLOD 1546 BLDSAV 0075 BLOK66 0000 BLOOK 4216 BOOT 3210 BOOT2 3214 unreferenced BOOT2A 3000 BOOT2X 3034 BOOT3 3506 BOOT4 4462 BOOT5 4200 BOOT6 4201 unreferenced BOOT7 4215 unreferenced BOOT8 4241 unreferenced BOOTC 3400 BOOTD 3437 BOOTE 3446 BOOTF 4322 BOOTG 4342 unreferenced BOOTQ 2563 BOTADV 4017 BUFFER 5400 BUFLD 6072 BUILD 5303 CAR1 0470 CARRET 0467 CASIT 7517 CDF0 5045 CDKNT 7517 CDN 7417 CDPTR 7516 CHAR 0021 CHAR1 3743 CHAR2 3737 CHCNT 3761 CHECK 6131 CHKLUP 0602 CHKNAM 0600 CHKRES 3035 CHPTR 3762 CHTMP 3671 CHTMP2 4672 CK1 6142 CKSUM 5147 CKSUMM 6132 CLRTBL 2273 CN 4266 COM 1270 COMMA 2553 CONFIG 0213 COP2 4056 COP3 4106 COPREC 4122 COPY 4107 COR0 0337 COR1 0346 COR2 0350 COR70 0354 CORBIT 4132 CORE 0322 CORES 0005 COREX 0367 CORLOC 0373 CORMSG 2102 CORSIZ 0302 CORV 0374 CORX 0356 COUNT 0020 COUNT2 6130 CPREC2 4127 CRLF 4741 CSA 7515 CTCTST 4437 CTLCM 1675 CTO 4673 CTRLC 4274 CTRLU 0514 DATEWD 7666 DCB 0004 DCBCM 1674 DCBTBL 7760 DCOM 1423 DEL 1410 DELETE 1214 DELGN 1414 DELNAM 1413 DETEM 1360 DEVBUF 0400 DEVSIZ 0007 DGET 1447 DHYPH 1432 DIRLOC 1400 DLENGT 4165 DOLR 0216 DONE 2046 DOT 2665 DOTCNT 2676 DPROPR 4157 DRECT 3505 DRIVER 1033 DSCADV 4000 DSCPTR 0033 DSCTAB 6400 DSK 1464 DSKBAD 2752 DSKBIT 0006 DSKG1 0035 DSKG2 0036 DSKP1 0037 DSKP2 0040 DT 2126 DTYPE 2144 DVBUF 4264 DVER 5354 DVICE 3763 DVLOOP 4247 DVNM1 1031 DVNUM 1032 DVREC 4265 DVTYPE 0004 unreferenced ECHO 0504 ECHOFL 4551 ENDLIN 0523 ENTPT 0005 EOL 2677 ERR 4307 EXAM 1731 EXAMDC 1720 EXAMIN 1624 EXAMSB 1733 FIELD2 5134 FIELDW 5115 FILPTR 1057 FIRST 5156 FLAG2 0045 FLD 6125 FNDBOT 4222 FROMBO 4230 FROMOV 2443 GCHCOM 3744 GET 4562 GETC 0563 GETCHA 0302 GETCHR 4547 GETDCB 3242 GETEM 0332 GETLEN 4132 GETNUM 0523 GETPG 1600 GETSLO 3200 GETU 1025 GETUSR 1536 GETVAL 1664 GNAME 2701 GNAME2 2717 GNMXR 0016 GO 2255 GOOD 2617 GOTCHA 0311 GOTD 3227 GOTEM 0322 GOTSW 0566 GRPNAM 0650 GRPNM1 0000 GRPNM2 0001 GT 2471 GTEXT 0400 HDPTR 1151 HDRSIZ 0010 HND 5151 HNDLOC 3071 HNDLOK 1555 HNDPTR 0032 HYPH 1344 ICHAR 3674 IGET 1361 IN 3671 INACT 3126 INI 2547 INIT 4541 INPDCB 1712 INPLAT 1301 INS 1231 INSERT 1207 INSGN 1252 INSNAM 1251 INTEM 1400 IOERR 3753 IOPEN 4447 JMPGET 3721 JMPNXT 5114 JMPX 3700 JSW 7746 K7750 2237 KICKM 1532 KLUD 5155 KORE 4301 L0423 1445 L15 4302 L5400 3434 L600 0017 L7400 3632 L7600 3634 L770 7543 LCKSUM 4734 LD7 5047 LDABS 5000 LDABS2 5002 LDEXT 1152 LDR 6013 LDRCTL 4113 LEADER 5014 LEDER 6107 LFEED 0476 LIM1 6126 LIM2 6127 LINEUP 4704 LNLNGT 0103 LOAD 1071 LOADIN 1066 LOCSYS 2600 LODTMP 1032 LODTST 5150 LOOKAT 1721 LSTPTR 2534 LWD1 4735 LWD2 4736 LXR 0015 M270 7544 MAXPLT 0004 MEQ 1240 MEQL 1704 MFREE 0070 MOVE 4400 MOVRET 4435 MV20 4432 MV7600 4536 MVCDF2 4424 MVCT 4447 MVDF 4426 MVSHND 3424 unreferenced MVTM1 4513 MVTM2 4520 NAME 1606 NAME1 0024 NAME2 0025 NAME3 0026 NAME4 0027 NAMERR 1770 NCHAR 0542 NEWCOR 0043 NEWLIM 5162 NEWPAG 0041 NEWWD 5023 NEXT 5054 NFOUND 0712 NM1 0606 NM2 0614 NMER 1157 NO4C 3112 NOBIG 0640 NOCOL 1515 NODEV 1364 NODSK 1513 NOHN 4271 NOMOR 2530 NOMORE 2527 NORE 3125 NORE2 3307 NOROOM 0723 NOSLOT 2611 NOTNUF 2361 NULL 4654 NUMOUT 0556 ODTL 1657 OK 0752 OLDPAG 0042 OLDTOP 2547 ONEPG 3554 ORGLIM 2304 ORGTST 5062 ORGX 5142 ORI 5067 ORIGIN 5143 OTEMP 4727 OUT 3672 OVER 4705 OVERB 6200 OVROUT 4724 P200 3705 P2PAG 1635 PACK 2637 PACKOK 2644 PAGAD 1672 PAGRES 0006 PATCH 4552 PBUFFE 1557 PG7600 5400 PGLUP 1114 PGNAME 2034 PKNT 1763 PLATNU 0006 PLOOP 1745 PN 1503 PNAME 2126 PNCH 6117 PRETSW 7552 PRINT 2000 PRINTE 4622 PRLUP 2004 PRMNAM 0662 PRMNM1 0002 PRMNM2 0003 PRNAME 4600 PRNM2 4605 PRNT 4750 PROTEC 2663 PROTL 4737 PRSPAC 4651 PRTM 4740 PRTPER 2024 PRWD 4660 PRWD2 4662 PTM 1762 PUT 4563 PUTAT 1716 PUTNUM 1741 PWORD 4632 QLIST 2107 QLUP 2110 R7600 7545 RBCR 0521 RBOUT 0447 RD 5347 RDCD 5327 RDIN 3704 unreferenced RDOS8 5313 RDTX 0405 RDTXT 0406 READ 4777 RECNO 3707 RECNO2 3711 RECZRO 2337 RELCOR 0332 REOF 3760 REPLAC 1200 RERROR 3747 RES76 7477 RESTOR 7434 RETSW 5163 RIGHT 2653 ROT 0527 ROTL 4513 ROTR 4520 RUBFLG 4760 SA 7744 SAMEE 2570 SAMF 2566 SAMPAG 2506 SAMPG 3143 SAV1 0002 SAV2 0003 SAVDAT 0044 SAVE 7452 SAVHID 0047 SAVLC 3670 SAVLOC 3561 SAVNAM 1336 SAVPTR 2536 SBLOCK 7776 SBUFF 5360 SDCB 5300 SETACT 1400 SETDSK 1525 SETSLT 3331 SETSY 3311 SETUP 1000 SETUPS 3530 SHND 5320 SIZCM 1673 SIZE 0031 SIZLUP 4146 SKPCRD 4541 SLOT 0034 SLOTDS 3262 SLTLUP 3022 SMPG 3326 SNACLA 3440 SNAME 5340 SOFSET 7747 SRES 5260 STARTB 6020 STEMP 3674 SUBLUP 1031 unreferenced SWAP2 3647 SWAP3 3617 SWAPER 3673 SWAPLW 3637 SWIT 2664 SYBUF 2257 SYCTL 2256 SYDCB 7760 unreferenced SYNTAX 2744 SYREC 2260 SYS 2245 SYSBIT 0005 SYSCPY 4037 SYSDCB 0046 SYSENT 2272 SYSL2 3461 SYSL3 3501 SYSLOC 3557 SYSQ 3721 SYSSIZ 4273 SYSTEM 1216 SYSWP 3600 T1AD 3423 T2AD 3431 TABLMT 0030 TELCOR 2072 TEMP 0022 TEST 2220 TM 4541 TMP1 0023 TMP2 3431 TOMOV 2445 TOOMAN 2200 TRYAGN 1052 TSTEOL 1210 TSTNAM 1763 TSTO0 5075 TSTOVR 2233 TTY240 2000 TTYIN 1452 TTYOUT 4525 TWOPAG 0005 TWOSYS 1224 UNLGRP 2423 UNLNAM 2412 UNLOAD 2400 UNLPRM 2411 UNSIZE 2553 USRBLK 0013 USRHPT 0037 USRNPT 0036 VERS 0733 WD 5146 WD1 5144 WD2 5145 WHAT 2140 WRCD 7341 WRERR 7507 WRITCC 2155 WRITE 4777 WROS8 7201 XFIELD 5043 XR1 0010 XR2 0011 XR3 0012 XR4 0013 XR5 0014 XRBACK 0464 XSWTCH 1716 Z7600 7335