1 / OS/8 ROGALGOL RUNTIME OVERLAY MK 40. 23/12/76 2 / OVERLAY FOR ALGOL RUN TIME SYS UNDER OS/8 3 / THE OVERLAY ALLOWS ANY OS/8 ONE PAGE DEVICE HANDLER 4 / FOR INPUT OR OUTPUT ON STREAM 3 5 / IT USES SYSTEM SCRATCH BLOCKS 40 & 41 TO HOLD CODE OVERLAYS 6 / THUS IF THE RUN-TIME SYSTEM + PROGRAM ARE TO BE 7 / SAVED AS A CORE-IMAGE FILE, THIS MUST BE DONE BEFORE STARTING UP, 8 / AS THE FIRST CALL TO ROUTINE FHANDL ( 'DISK' IN ALGOL ) TRIPS 9 / ONE-TIME CODE TO WRITE THE OVERLAYS ON TO BLOCKS 40 & 41, AND 10 / THEN FIX UP THE RESIDENT CODE. 11 12 / CAN BE CHAINED TO FROM ALGOL COMPILER 13 / IF SO THE ENTRY IS AT 201 AND RUN TIME SYSTEM EXPECTS 14 / TO FIND THE DEVICE NUMBER AND STARTING BLOCK IN THE 15 / COMMAND DECODER INPUT LIST. IF EITHER IS ZERO A 16 / NORMAL LOAD OCCURS, AS ALSO HAPPENS IF THE DEVICE WAS 17 / A WRITE ONLY ONE 18 / CHAINING ALSO WRITES UP FILE OVERLAYS TO BLOCKS 40 & 41 19 20 / SYMBOL DEFINITIONS & PAGE 0 VARIABLES 21 22 ALEND=4630 /END OF LOADER ADDRESS 23 WAIT=1207 24 IPSET=4037 /ADDRESS IN LOADER AT WHICH INPUT READY 25 OCTOUT=1005 26 INIT=614 27 SRCODE=6200 28 LRCODE=6400 29 IBUFFR=6600 30 OBUFFR=7200 31 FRAME1=6000 32 33 FIELD 0 34 *61 35 000061 7777 IOPEN, -1 36 000062 7777 OOPEN, -1 37 000063 7777 ICCT, -1 38 000064 0000 OCCT, 0 39 000065 0000 CFL, 0 40 000066 6200 BOTTOM, SRCODE /BOTTOM ADDRESS OF OS/8 DEVICE HANDLERS 41 000067 0000 LOADCL, 0 /SET NON-ZERO WHEN LOADER IS CALLING 42 43 / FIXUP SWITCH FOR RUN-TIME SYSTEM 44 RETFLD=10 45 FIELD 1 46 47 010031 0003 *31; 3 /DEVICE 3 ALWAYS IN OS/8 48 014022 0215 *4022; 215; 212; 0 014023 0212 014024 0000 49 014025 6201 CDF; CLA CMA; DCA I XLOADC; CDF 10 /SET LOADING MARKER 014026 7240 014027 3632 014030 6211 50 014031 5236 JMP IPSET-1 /BEFORE CALLING FHANDL 51 014032 0067 XLOADC, LOADCL 52 *4601 53 014601 5255 JMP LDFLD 54 *ALEND 55 014630 4777 JMS I (7700; 13 /REMOVE ALL DEVICE HANDLERS 014631 0013 56 014632 6041 TSF; JMP .-1; CLA; CDF; DCA I X7746 /ALLOW START COMMAND 014633 5232 014634 7200 014635 6201 014636 3710 57 014637 3776 DCA I (LOADCL; CDF 10 /CLEAR LOAD CALL MARKER 014640 6211 58 014641 7201 CLA IAC; AND I X7643; SZA CLA; JMP I XWAIT /HANG IF /L 014642 0712 014643 7640 014644 5714 59 014645 1712 TAD I X7643; AND X40; SZA CLA; JMP I XINIT /START ON /G 014646 0313 014647 7640 014650 5715 60 014651 1711 TAD I X7642; SPA CLA; JMP I XINIT /START AFTER ALTMODE 014652 7710 014653 5715 61 014654 5714 JMP I XWAIT /ELSE HANG ON TTY 62 / HERE WE CHECK IF /0-/7 SET FOR FIELD TO USE. 63 / IF SO WE ALSO CHECK IF=N HAS SET LAST LOCN TO USE IN 64 / THAT FIELD. BUT MUST INCLUDE FIELD 65 / E.G. FILE/3=37777 WILL LOAD TO FIELD 3 IF IT EXISTS 66 / AND SET LAST AVAILABLE LOCN TO 7777 67 014655 3306 LDFLD, DCA LX; TAD I (7645; AND (1774; SNA 014656 1775 014657 0374 014660 7450 68 014661 5305 JMP LDEX / CHECK IF FIELD OPTIONS 69 014662 7106 CLL RTL; ISZ LX; RAL; SNL 014663 2306 014664 7004 014665 7420 70 014666 5263 JMP .-3; CLA CMA; TAD LX / SET 3600 TO REQUIRED FIELD 014667 7240 014670 1306 71 014671 7106 CLL RTL; RAL; TAD XCDF; DCA I (3600 014672 7004 014673 1307 014674 3773 72 / AND NOW SET LAST LOCN, BUT CHECK IN SAME FIELD AS FIELD OPTION 73 014675 1772 TAD I (7642; AND (3777; CMA; TAD LX; SZA CLA 014676 0371 014677 7040 014700 1306 014701 7640 74 014702 5305 JMP LDEX; TAD I (7646; DCA I (3601 014703 1770 014704 3767 75 014705 5600 LDEX, JMP I 4600 76 014706 0000 LX, 0 77 014707 6201 XCDF, CDF 78 014710 7746 X7746, 7746 79 014711 7642 X7642, 7642 80 014712 7643 X7643, 7643 81 014713 0040 X40, 40 82 014714 1207 XWAIT, WAIT 83 014715 0614 XINIT, INIT 84 014767 3601 *4200 014770 7646 014771 3777 014772 7642 014773 3600 014774 1774 014775 7645 014776 0067 014777 7700 85 014200 6200 SRCODE /LOADER NEVER PUT HANDLERS BELOW OS/8 86 *1001 87 011001 6203 CDF CIF 88 *1004 89 011004 6307 OSIN0 90 *2001 91 012001 6203 CDF CIF 92 *2004 93 012004 6400 OSOUT0 94 *2200 95 012200 6203 CDF CIF 96 *2204 97 012204 6523 FHANDL 98 99 FIELD 0 100 101 *200 102 000200 5235 JMP LOAD /NORMAL ENTRY 103 000201 6211 CDF 10; TAD I (7620; CDF /STARTING BLOCK 000202 1777 000203 6201 104 000204 7450 SNA 105 000205 5235 JMP LOAD 106 000206 3776 DCA NXIB 107 000207 6211 CDF 10; TAD I (7617; CDF /DEVICE NUMBER 000210 1775 000211 6201 108 000212 0374 AND (17 109 000213 7450 SNA 110 000214 5235 JMP LOAD 111 000215 1373 TAD (7647-1 112 000216 3263 DCA PD 113 000217 4772 JMS SAC+1 / TRIP 1-TIME CODE TO SAVE OVERLAYS 114 000220 6211 CDF 10 115 000221 1663 TAD I PD 116 000222 6201 CDF 0 117 000223 7450 SNA 118 000224 5237 JMP LOAD2 /FETCH HANDLER IF NOT SYS: 119 000225 3771 LOAD1, DCA AIHNDL 120 000226 7040 CMA 121 000227 3063 DCA ICCT 122 000230 3061 DCA IOPEN / FIX SO INPUT LOOKS OPEN 123 000231 6046 TLS; KCC 000232 6032 124 000233 6213 CDF CIF 10 125 000234 5770 JMP IPSET /ALL SET UP FROM CHAIN 126 000235 6213 LOAD, CDF CIF 10 /CHAIN DIDN'T WORK 127 000236 5767 JMP 4000 128 000237 6211 LOAD2, CDF 10; TAD I (7617; CDF 0 000240 1775 000241 6201 129 000242 0374 AND (17 130 000243 6212 CIF 10 131 000244 4766 JMS I (7700 132 000245 0001 1 /FETCH 133 000246 7201 L3, OBUFFR+1 /LOADING HANDLER TO OUTPUT BUFFER 134 000247 5235 JMP LOAD /NO GOOD 135 000250 1263 TAD PD 136 000251 1365 TAD (7760-7647 137 000252 3263 DCA PD 138 000253 6211 CDF 10 139 000254 1663 TAD I PD 140 000255 6201 CDF 0 141 000256 7006 RTL 142 000257 7710 SPA CLA /NEGATIVE IF WRITE ONLY DEVICE 143 000260 5235 JMP LOAD 144 000261 1246 TAD L3 145 000262 5225 JMP LOAD1 146 147 000263 0000 PD, 0 148 149 150 000365 0111 PAGE 000366 7700 000367 4000 000370 4037 000371 6304 000372 6026 000373 7646 000374 0017 000375 7617 000376 6320 000377 7620 151 *SRCODE 152 006200 0000 HFETCH, 0 /FETCH HANDLER WHOSE NUMBER IS IN AC 153 /USR IS IN CORE. EXIT1 IS ERROR, EXIT2 OK 154 /WITH HANDLER ENTRY ADDRESS IN AC 155 006201 3253 DCA DEVNO; TAD DEVNO 006202 1253 156 006203 6212 CIF 10; JMS I (200; 12 /ENQUIRE 006204 4777 006205 0012 157 006206 0000 HENTRY, 0; JMP I HFETCH /CANT, BAD DEVICE 006207 5600 158 006210 1206 TAD HENTRY; SNA; JMP FET 006211 7450 006212 5215 159 006213 2200 ISZ HFETCH; JMP I HFETCH /ALREADY THERE 006214 5600 160 006215 1067 FET, TAD LOADCL; SNA CLA; JMP DOGRAB /LOADER CALL? 006216 7650 006217 5222 161 006220 1376 TAD (OBUFFR; JMP LOADH /YES, HANDLER TO O/P BUFFER 006221 5240 162 006222 4254 DOGRAB, JMS GRAB; JMP I HFETCH /NO MORE ROOM 006223 5600 163 006224 3231 DCA HAD1; TAD DEVNO 006225 1253 164 006226 6212 CIF 10; JMS I (200; 1 006227 4777 006230 0001 165 006231 0000 HAD1, 0; JMP TRY2 /ONE PAGE NO GOOD 006232 5236 166 006233 1231 TAD HAD1; ISZ HFETCH; JMP I HFETCH /ONE PAGE LOADED 006234 2200 006235 5600 167 006236 4254 TRY2, JMS GRAB; JMP I HFETCH 006237 5600 168 006240 7001 LOADH, IAC; DCA HAD2 006241 3246 169 006242 1253 TAD DEVNO; CIF 10; JMS I (200; 1 006243 6212 006244 4777 006245 0001 170 006246 0000 HAD2, 0; JMP I HFETCH /THIS TIME ITS FATAL 006247 5600 171 006250 1246 TAD HAD2; ISZ HFETCH; JMP I HFETCH /TWO PAGES LOADED 006251 2200 006252 5600 172 006253 0000 DEVNO, 0 173 006254 0000 GRAB, 0 174 006255 1066 TAD BOTTOM; TAD (-200; DCA BOTTOM /NEW LOWEST ADDRESS 006256 1375 006257 3066 175 006260 1175 TAD 175; CLL CIA; TAD BOTTOM /CHECK ITS FREE SPACE 006261 7141 006262 1066 176 006263 7620 SNL CLA; JMP I GRAB /CLASHES WITH COMPILED CODE 006264 5654 177 006265 1066 TAD BOTTOM; ISZ GRAB; JMP I GRAB 006266 2254 006267 5654 178 179 ERR0, 180 006270 0000 0;CLA;CDF CIF RETFLD;TAD ERR0;DCA I .+2;JMP I .+2;1200;1201 006271 7200 006272 6213 006273 1270 006274 3676 006275 5677 006276 1200 006277 1201 181 182 / OS/8 INPUT ROUTINE 183 006300 6270 AERR0, ERR0 184 006301 7400 IL7400, 7400 185 006302 7546 IM232, -232 186 006303 0377 CMASK, 377 187 006304 6270 AIHNDL, ERR0 188 006305 0000 IBPTR, 0 189 006306 0000 W3, 0 190 191 006307 0000 OSIN0, 0 192 006310 1061 TAD IOPEN 193 006311 7640 SZA CLA 194 006312 4700 JMS I AERR0 195 006313 2063 ISZ ICCT 196 006314 5334 JMP GETON 197 006315 4704 JMS I AIHNDL 198 006316 0200 200 199 006317 6600 AIBUF, IBUFFR 200 006320 0000 NXIB, 0 201 006321 7700 SMA CLA 202 006322 7410 SKP 203 006323 4700 JMS I AERR0 204 006324 2320 ISZ NXIB 205 006325 7240 CLA CMA 206 006326 1317 TAD AIBUF 207 006327 3305 DCA IBPTR 208 006330 1337 TAD MNCH 209 006331 3063 DCA ICCT 210 006332 1366 TAD CON10 211 006333 3306 DCA W3 212 006334 1306 GETON, TAD W3 213 006335 7510 SPA 214 006336 5363 JMP C3 215 006337 7200 MNCH, CLA 216 006340 2305 ISZ IBPTR 217 006341 1705 TAD I IBPTR 218 006342 0301 AND IL7400 219 006343 7104 CLL RAL 220 006344 1306 TAD W3 221 006345 7006 FIX10, RTL 222 006346 7006 RTL 223 006347 3306 DCA W3 224 006350 1705 TAD I IBPTR 225 006351 0303 AND CMASK 226 006352 1302 TAD IM232 227 006353 7640 SZA CLA 228 006354 5357 JMP NOTCZ 229 006355 7001 IAC 230 006356 3061 DCA IOPEN 231 006357 1705 NOTCZ, TAD I IBPTR 232 006360 0303 AND CMASK 233 006361 6213 CDF CIF RETFLD 234 006362 5707 JMP I OSIN0 235 006363 3705 C3, DCA I IBPTR 236 006364 7120 CLL CML 237 006365 5345 JMP FIX10 238 006366 0010 CON10, 10 239 240 241 006375 7600 *LRCODE 006376 7200 006377 0200 242 / OS/8 OUTPUT ROUTINE 243 006400 0000 OSOUT0, 0 244 006401 0377 AND (377 245 006402 1376 TAD (-232 246 006403 4212 JMS OUTCH 247 006404 5210 JMP OOEXIT 248 / CALL IN CLOSE OVERLAY 249 006405 1200 TAD OSOUT0 250 006406 3323 DCA FHANDL 251 006407 5352 JMP CLOSTF 252 006410 6213 OOEXIT, CDF CIF RETFLD 253 006411 5600 JMP I OSOUT0 254 255 / OUTPUT CHAR TO FILE BUFFER 256 006412 0000 OUTCH, 0 257 006413 1375 TAD (232 258 006414 3261 DCA OPBLOK 259 006415 1062 TAD OOPEN 260 006416 7640 SZA CLA 261 006417 4774 JMS ERR0 262 006420 1064 TAD OCCT 263 006421 7640 SZA CLA 264 006422 5231 JMPINS, JMP JMPSW 265 006423 1773 TAD MNCH 266 006424 3064 DCA OCCT 267 006425 7040 CMA 268 006426 1264 TAD AOBUF 269 006427 3321 DCA OBFPTR 270 006430 5234 JMP .+4 271 006431 7000 JMPSW, NOP 272 006432 5236 JMP CH2 273 006433 5272 JMP CH3 274 006434 1222 TAD JMPINS 275 006435 3231 DCA JMPSW 276 006436 1321 CH2, TAD OBFPTR 277 006437 3322 DCA TMPTR 278 006440 2321 ISZ OBFPTR 279 006441 1261 TAD OPBLOK 280 006442 3721 P3, DCA I OBFPTR 281 006443 2231 ISZ JMPSW 282 006444 1261 TAD OPBLOK 283 006445 1376 TAD (-232 284 006446 7650 SNA CLA 285 006447 5256 JMP ATEF 286 / NOT END OF FILE 287 006450 2064 ISZ OCCT 288 006451 5612 JMP I OUTCH 289 006452 4261 JMS OPBLOK 290 006453 2317 ISZ OFL 291 006454 5612 JMP I OUTCH / RETURN 1 292 006455 4774 JMS ERR0 293 / END OF FILE ; PUT SHORT BLOCK 294 006456 4261 ATEF, JMS OPBLOK 295 006457 2212 ISZ OUTCH / BUMP RETURN ADDRESS AT END-FILE 296 006460 5612 JMP I OUTCH / & RETURN 2 297 298 / OUTPUT BLOCK ROUTINE 299 006461 0000 OPBLOK, 0 / ALSO USED TO HOLD CHAR 300 006462 4720 JMS I AOHNDL 301 006463 4200 4200 302 006464 7200 AOBUF, OBUFFR 303 006465 0000 NXOB, 0 304 006466 4774 JMS ERR0 305 006467 2265 ISZ NXOB 306 006470 2065 ISZ CFL 307 006471 5661 JMP I OPBLOK 308 309 006472 1261 CH3, TAD OPBLOK 310 006473 7006 RTL 311 006474 7006 RTL 312 006475 0362 AND O7400 313 006476 1722 TAD I TMPTR 314 006477 3722 DCA I TMPTR 315 006500 1261 TAD OPBLOK 316 006501 7012 RTR 317 006502 7012 RTR 318 006503 7010 RAR 319 006504 0362 AND O7400 320 006505 1721 TAD I OBFPTR 321 006506 5242 JMP P3 322 006507 7607 O7607, 7607 323 006510 0000 FIBN, 0 324 006511 0000 FOBN, 0 325 006512 0000 OFNT, 0;0;0;0;0 006513 0000 006514 0000 006515 0000 006516 0000 326 006517 0000 OFL, 0 327 006520 6270 AOHNDL, ERR0 328 006521 0000 OBFPTR, 0 329 006522 0000 TMPTR, 0 330 331 332 / FILE HANDLING ROUTINE 333 / OPENS & CLOSES FILES, REWINDS INPUT FILES, 334 / & TRANSFERS OUTPUT FILES TO BE INPUT FILES 335 / CALLS IN OVERLAY CODE TO DO MOST OF ITS WORK 336 006523 0000 FHANDL, 0 337 006524 5746 JMP I IBA / FIXED TO SZA BY ONE-TIME CODE 338 006525 5340 JMP NOTRWD 339 / REWIND INPUT FILE 340 006526 1061 TAD IOPEN 341 006527 7710 SPA CLA 342 006530 4774 JMS ERR0 343 006531 3061 IOPN, DCA IOPEN / ZERO 'INPUT OPEN' FLAG 344 006532 1310 TAD FIBN / FIRST INPUT FILE BLOCK NO 345 006533 3772 DCA NXIB / SETUP START BLOCK 346 006534 7040 CMA 347 006535 3063 DCA ICCT / INITIALISE OSIN0 348 006536 6213 FOUT, CDF CIF RETFLD 349 006537 5723 JMP I FHANDL / RETURN 350 / SET UP CALL CODE 351 006540 7041 NOTRWD, CIA 352 006541 7040 CMA 353 006542 7440 SZA 354 006543 5352 JMP CLOSTF / CLOSE OR TRANSFER 355 / CALL DOWN INPUT OPEN OVERLAY OVER 356 / INPUT BUFFER 357 006544 4707 JMS I O7607 358 006545 0200 200 359 006546 6000 IBA, FRAME1 / FIXED TO IBUFFR, TO CALL OVERLAY 360 006547 0040 40 / WHICH RESIDES IN SCRATCH-BLOCK 40 361 006550 4774 JMS ERR0 / DISASTER! 362 006551 5746 JMP I IBA / ENTER OVERLAY 363 / CLOSE, OPEN OUTPUT, OR TRANSFER OPERATION 364 006552 3200 CLOSTF, DCA OSOUT0 / HOLD OPERATION 365 006553 1200 TAD OSOUT0 366 006554 7110 CLL RAR 367 006555 7650 SNA CLA 368 006556 5363 JMP NOTTF 369 / TRANSFER ; PUT LAST BLOCK IF FILE STILL OPEN 370 006557 1062 TAD OOPEN 371 006560 7650 SNA CLA 372 006561 4212 JMS OUTCH 373 006562 7400 O7400, 7400 / NOP REALLY 374 006563 4707 NOTTF, JMS I O7607 375 006564 0200 200 376 006565 7200 OBA, OBUFFR / CALL OOPEN OVERLAY 377 006566 0041 41 378 006567 4774 JMS ERR0 / DISASTER MARK 2 ! 379 006570 1200 TAD OSOUT0 380 006571 5765 JMP I OBA / ENTER OVERLAY 381 382 006572 6320 *FRAME1 006573 6337 006574 6270 006575 0232 006576 7546 006577 0377 383 / ONE -TIME CODE TO SAVE OVERLAYS IN SCRATCH BLOCKS 40 & 41 384 006000 3225 DCA SAC / SAVE ACC 385 006001 1377 TAD (SRCODE; CDF 10; DCA I (4200; CDF 006002 6211 006003 3776 006004 6201 386 /WE DONT NEED THIS CODE ANY MORE 387 006005 4775 JMS I (7607 388 006006 4200 4200 389 006007 6600 RIBA, IBUFFR / SAVE INPUT OVERLAY 390 006010 0040 40 391 006011 4774 JMS ERR0 392 006012 4775 JMS I (7607 393 006013 4200 4200 394 006014 7200 OBUFFR / SAVE OUTPUT OVERLAY 395 006015 0041 41 396 006016 4774 JMS ERR0 397 006017 1373 TAD (7440 / LOAD UP 'SZA' 398 006020 3772 DCA FHANDL+1 / FIX UP 399 006021 1207 TAD RIBA 400 006022 3771 DCA IBA / RESIDENT CODE 401 006023 1225 TAD SAC 402 006024 5772 JMP FHANDL+1 / & RETURN 403 006025 0000 SAC, 0 404 006026 0000 0 / INITIALISATION CODE FOR CHAIN CALL 405 006027 1370 TAD (JMP I SAC+1 406 006030 3224 DCA SAC-1 407 006031 5200 JMP FRAME1 408 006170 5626 *IBUFFR 006171 6546 006172 6524 006173 7440 006174 6270 006175 7607 006176 4200 006177 6200 409 / OVERLAY FOR OPENING OS/8 INPUT FILES ; OVERLAYS INPUT BUFFER 410 / INPUT MUST BE ALLOWED ALREADY, ELSE WE WOULDNT BE HERE 411 006600 6212 CIF 10 / ENTRY POINT 412 006601 4777 JMS I (7700 413 006602 0010 10 / LOCK IN USR 414 006603 4303 IAGAIN, JMS IMESS / CALL MESSAGE ROUTINE 415 006604 0311 "I;"N;"P;"U;"T;" ;"F;"I;"L;"E;"N;"A;"M;"E;" ;"?;0 006605 0316 006606 0320 006607 0325 006610 0324 006611 0240 006612 0306 006613 0311 006614 0314 006615 0305 006616 0316 006617 0301 006620 0315 006621 0305 006622 0240 006623 0277 006624 0000 416 / PRESERVE FRAGILE PART OF DEVICE HANDLER RESIDENCY TABLE 417 006625 4261 JMS SDHRTI 418 006626 4271 JMS IMOV10 419 / CALL COMMAND DECODER IN SPECIAL MODE 420 006627 6212 CIF 10 421 006630 4776 JMS I (200 422 006631 0005 5 423 006632 5200 5200 424 006633 0000 0 / PRESERVE ANY TENTATIVE FILES 425 006634 6046 TLS / & RESET TTY FLAG 426 / RESTORE FRAGILE PART OF DEVICE HANDLER RESIDENCY TABLE 427 006635 4261 JMS SDHRTI 428 006636 1734 TAD I IPT2 429 006637 2334 ISZ IPT2 430 006640 6211 CDF 10 431 006641 3733 DCA I IPT1 432 006642 2333 ISZ IPT1 433 006643 6201 CDF 434 006644 2303 ISZ IMESS 435 006645 5236 JMP .-7 436 / MOVE INPUT FILENAME TO TABLE 437 006646 1375 TAD (7605 438 006647 3333 DCA IPT1 439 006650 1374 TAD (ISAV 440 006651 3334 DCA IPT2 441 006652 1373 TAD (-5 442 006653 3303 DCA IMESS 443 006654 4271 JMS IMOV10 444 / CHECK THAT FILENAME HAS BEEN INPUT 445 006655 1315 TAD ISAV 446 006656 7650 SNA CLA 447 006657 5203 JMP IAGAIN / ASK AGAIN 448 / TRANSFER TO NEXT PAGE 449 006660 5772 JMP IP2 450 451 / SETUP FOR DHRT TRANSFER 452 006661 0000 SDHRTI, 0 453 006662 1371 TAD (7650 454 006663 3333 DCA IPT1 455 006664 1374 TAD (ISAV 456 006665 3334 DCA IPT2 457 006666 1370 TAD (-16 458 006667 3303 DCA IMESS 459 006670 5661 JMP I SDHRTI 460 461 / MOVE CHUNK FROM FIELD 1 TO FIELD 0 462 006671 0000 IMOV10, 0 463 006672 6211 CDF 10 464 006673 1733 TAD I IPT1 465 006674 2333 ISZ IPT1 466 006675 6201 CDF 467 006676 3734 DCA I IPT2 468 006677 2334 ISZ IPT2 469 006700 2303 ISZ IMESS 470 006701 5272 JMP IMOV10+1 471 006702 5671 JMP I IMOV10 472 473 / INPUT MESSAGE ROUTINE 474 006703 0000 IMESS, 0 475 006704 1703 TAD I IMESS 476 006705 2303 ISZ IMESS 477 006706 7450 SNA 478 006707 5703 JMP I IMESS 479 006710 6046 TLS 480 006711 6041 TSF 481 006712 5311 JMP .-1 482 006713 7200 CLA 483 006714 5304 JMP IMESS+1 484 485 / SAVE AREA 486 ISAV, 487 006715 0000 0;0;0;0;0;0;0;0;0;0;0;0;0;0 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 488 / VARIABLES 489 006733 0000 IPT1, 0 490 006734 0000 IPT2, 0 491 492 493 006770 7762 *IBUFFR+200 006771 7650 006772 7000 006773 7773 006774 6715 006775 7605 006776 0200 006777 7700 494 / PAGE 2 OF OPEN INPUT OVERLAY 495 007000 1377 IP2, TAD (ISAV+1 496 007001 3212 DCA AIFNAM 497 007002 1776 TAD I (ISAV; JMS HFETCH; JMS ERRIU /GET HANDLER 007003 4775 007004 4226 498 007005 3236 DCA IPAGAD 499 / LOOKUP INPUT FILE 500 007006 1776 TAD I (ISAV 501 007007 6212 CIF 10 502 007010 4774 JMS I (200 503 007011 0002 2 504 007012 0000 AIFNAM, 0 / REPLACED BY START BLOCK 505 007013 0000 0 / REPLACED BY COUNT OF NO OF BLOCKS 506 007014 4226 JMS ERRIU 507 / DISMISS USR FROM CORE 508 007015 6212 IDMUSR, CIF 10 509 007016 4774 JMS I (200 510 007017 0011 11 511 / DECIDE WHERE TO GO NOW 512 007020 1226 TAD ERRIU 513 007021 7700 SMA CLA 514 007022 5231 JMP INORM / NORMAL PATH 515 007023 1226 TAD ERRIU 516 007024 3773 DCA ERR0 517 007025 5772 JMP ERR0+1 / IF ERROR 518 / ERROR OCURRED WHILE USR LOCKED IN ; DISMISS USR, THEN REPORT 519 007026 0000 ERRIU, 0 520 007027 7600 I7600, 7600 / CLEAR ACC 521 007030 5215 JMP IDMUSR 522 / NORMAL PATH ; TRANSFER ALL NECESSARY INFO 523 007031 1236 INORM, TAD IPAGAD 524 007032 3771 DCA AIHNDL / SET HANDLER SA 525 007033 1212 TAD AIFNAM 526 007034 3770 DCA FIBN / SAVE 1ST BLOCK NO FOR INPUT 527 007035 5767 JMP IOPN / & BACK INTO RESIDENT CODE 528 529 / VARIABLES, ETC 530 007036 0000 IPAGAD, 0 531 007167 6531 *OBUFFR 007170 6510 007171 6304 007172 6271 007173 6270 007174 0200 007175 6200 007176 6715 007177 6716 532 / OVERLAY FOR OPENING OS/8 OUTPUT FILES, CLOSING THEM, 533 / & TRANSFERRING THEM TO BE NEW INPUT FILE 534 / OVERLAYS OUTPUT BUFFER 535 007200 7440 SZA / ENTRY POINT 536 007201 5204 JMP NOTC / NOT CLOSE 537 007202 4777 JMS CLOSEO / CLOSE OUTPUT FILE 538 007203 5776 JMP FOUT / & EXIT 539 / NOT CLOSE ; FIND OUT IF TRANSFER OR OPEN OUTPUT 540 007204 1375 NOTC, TAD (-1 541 007205 7650 SNA CLA 542 007206 5223 JMP OPNOUT / OPEN OUTPUT FILE 543 / TRANSFER OUTPUT FILE TO BE INPUT 544 007207 1062 TAD OOPEN 545 007210 7510 SPA 546 007211 4774 JMS ERR0 / ERROR ; FILE NEVER OPENED 547 007212 7650 SNA CLA 548 007213 4777 JMS CLOSEO / CLOSE FILE IF NECESSARY 549 007214 7040 CMA 550 007215 3062 DCA OOPEN / & INHIBIT FURTHER USE AS OUTPUT FILE 551 007216 1773 TAD AOHNDL 552 007217 3772 DCA AIHNDL 553 007220 1771 TAD FOBN 554 007221 3770 DCA FIBN 555 007222 5767 JMP IOPN / BACK INTO RESIDENT CODE 556 / OPEN NEW OUTPUT FILE 557 007223 6212 OPNOUT, CIF 10 558 007224 4766 JMS I (7700 559 007225 0010 10 / LOCK IN USR 560 007226 4327 OAGAIN, JMS OMESS 561 007227 0317 "O;"U;"T;"P;"U;"T;" ;"F;"I;"L;"E;"N;"A;"M;"E;" ;"?;0 007230 0325 007231 0324 007232 0320 007233 0325 007234 0324 007235 0240 007236 0306 007237 0311 007240 0314 007241 0305 007242 0316 007243 0301 007244 0315 007245 0305 007246 0240 007247 0277 007250 0000 562 / PRESERVE FRAGILE PART OF DEVICE HANDLER RESIDENCY TABLE 563 007251 4305 JMS SDHRTO 564 007252 4315 JMS OMOV10 565 / CALL COMMAND DECODER IN SPECIAL MODE 566 007253 6212 CIF 10 567 007254 4765 JMS I (200 568 007255 0005 5 569 007256 5200 5200 570 007257 0000 0 / PRESERVE ANY TENTATIVE FILES 571 007260 6046 TLS 572 / RESTORE FRAGILE PART OF DHRT 573 007261 4305 JMS SDHRTO 574 007262 1742 TAD I OPT2 575 007263 2342 ISZ OPT2 576 007264 6211 CDF 10 577 007265 3741 DCA I OPT1 578 007266 2341 ISZ OPT1 579 007267 6201 CDF 580 007270 2327 ISZ OMESS 581 007271 5262 JMP .-7 582 / MOVE OUTPUT FILENAME TO TABLE 583 007272 1364 TAD (7605 584 007273 3341 DCA OPT1 585 007274 1363 TAD (OFNT 586 007275 3342 DCA OPT2 587 007276 1362 TAD (-5 588 007277 3327 DCA OMESS 589 007300 4315 JMS OMOV10 590 / CHECK THAT FILENAME HAS BEEN INPUT 591 007301 1763 TAD I (OFNT 592 007302 7650 SNA CLA 593 007303 5226 JMP OAGAIN / REPEAT REQUEST 594 / TRANSFER TO NEXT PAGE 595 007304 5761 JMP OP2 596 597 / SETUP ROUTINE 598 007305 0000 SDHRTO, 0 599 007306 1360 TAD (7650 600 007307 3341 DCA OPT1 601 007310 1357 TAD (OSAV 602 007311 3342 DCA OPT2 603 007312 1356 TAD (-16 604 007313 3327 DCA OMESS 605 007314 5705 JMP I SDHRTO 606 607 / MOVE ROUTINE 608 007315 0000 OMOV10, 0 609 007316 6211 CDF 10 610 007317 1741 TAD I OPT1 611 007320 2341 ISZ OPT1 612 007321 6201 CDF 613 007322 3742 DCA I OPT2 614 007323 2342 ISZ OPT2 615 007324 2327 ISZ OMESS 616 007325 5316 JMP OMOV10+1 617 007326 5715 JMP I OMOV10 618 619 / OUTPUT MESSAGE ROUTINE 620 007327 0000 OMESS, 0 621 007330 1727 TAD I OMESS 622 007331 2327 ISZ OMESS 623 007332 7450 SNA 624 007333 5727 JMP I OMESS 625 007334 6046 TLS 626 007335 6041 TSF 627 007336 5335 JMP .-1 628 007337 7200 CLA 629 007340 5330 JMP OMESS+1 630 631 / VARIABLES 632 007341 0000 OPT1, 0 633 007342 0000 OPT2, 0 634 635 636 007356 7762 *OBUFFR+200 007357 7463 007360 7650 007361 7400 007362 7773 007363 6512 007364 7605 007365 0200 007366 7700 007367 6531 007370 6510 007371 6511 007372 6304 007373 6520 007374 6270 007375 7777 007376 6536 007377 7420 637 / PAGE 2 OF OPEN OUTPUT OVERLAY 638 / USE HANDLER STATE WORD TO DETERMINE WHICH FRAME TO ALLOCATE 639 007400 1777 OP2, TAD I (OFNT; JMS HFETCH; JMS ERROU 007401 4776 007402 4260 640 007403 3775 DCA AOHNDL 641 007404 1374 TAD (3 / SETUP ENTER OPERATION 642 007405 4233 JMS USROP / TO USR, WHICH DISMISSETH ITSELF 643 007406 1243 TAD AOFNAM 644 007407 3773 DCA FOBN 645 007410 1243 TAD AOFNAM 646 007411 3772 DCA NXOB 647 007412 1244 TAD OBLOK 648 007413 3771 DCA OFL / COUNT OF BLOCKS4TO GO 649 007414 3065 DCA CFL / COUNT OF BLOCKS GONE 650 007415 3064 DCA OCCT 651 007416 3062 DCA OOPEN 652 007417 5770 JMP FOUT / BACK INTO RESIDENT CODE 653 654 / CLOSE FILE ROUTINE 655 007420 0000 CLOSEO, 0 656 007421 1065 TAD CFL 657 007422 3244 DCA OBLOK 658 007423 6212 CIF 10 659 007424 4652 JMS I O7700 660 007425 0010 10 / LOCK IN USR 661 007426 1367 TAD (4 662 007427 4233 JMS USROP / CLOSE OPERATION 663 007430 7101 CLL IAC 664 007431 3062 DCA OOPEN 665 007432 5620 JMP I CLOSEO 666 667 / USR OPERATION ROUTINE ; USR IS KNOWN TO BE LOCKED IN 668 007433 0000 USROP, 0 669 007434 3242 DCA OPCODE / SET OPERATION 670 007435 1366 TAD (OFNT+1 671 007436 3243 DCA AOFNAM / & FILENAME POINTER 672 007437 1777 TAD I (OFNT 673 007440 6212 CIF 10 674 007441 4765 JMS I (200 675 007442 0000 OPCODE, 0 676 007443 0000 AOFNAM, 0 / CHANGED TO START BLOCK IF ENTER 677 007444 0000 OBLOK, 0 / CHANGED TO - NO OF BLOCKS IF ENTER 678 007445 4260 JMS ERROU 679 / NOW DISMISS USR 680 007446 6212 ODMUSR, CIF 10 681 007447 4765 JMS I (200 682 007450 0011 11 683 / NOW WHERE ?? 684 007451 1260 TAD ERROU 685 007452 7700 O7700, SMA CLA 686 007453 5633 JMP I USROP / RETURN IF ALL OK 687 007454 1260 TAD ERROU 688 007455 1242 TAD OPCODE 689 007456 3764 DCA ERR0 / VARIABLE ERROR, DEPENDING ON OPCODE 690 007457 5763 JMP ERR0+1 691 / ERROR WHILE USR LOCKED IN 692 007460 0000 ERROU, 0 693 007461 7600 O7600, 7600 / CLA REALLY 694 007462 5246 JMP ODMUSR 695 / VARIABLES 696 / SAVE AREA 697 OSAV, 698 007463 0000 0;0;0;0;0;0;0;0;0;0;0;0;0;0 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 699 007563 6271 $$$$ 007564 6270 007565 0200 007566 6513 007567 0004 007570 6536 007571 6517 007572 6465 007573 6511 007574 0003 007575 6520 007576 6200 007577 6512 AERR0 6300 AIBUF 6317 AIFNAM 7012 AIHNDL 6304 ALEND 4630 AOBUF 6464 AOFNAM 7443 AOHNDL 6520 ATEF 6456 BOTTOM 0066 C3 6363 CFL 0065 CH2 6436 CH3 6472 CLOSEO 7420 CLOSTF 6552 CMASK 6303 CON10 6366 DEVNO 6253 DOGRAB 6222 ERR0 6270 ERRIU 7026 ERROU 7460 FET 6215 FHANDL 6523 FIBN 6510 FIX10 6345 FOBN 6511 FOUT 6536 FRAME1 6000 GETON 6334 GRAB 6254 HAD1 6231 HAD2 6246 HENTRY 6206 HFETCH 6200 I7600 7027 unreferenced IAGAIN 6603 IBA 6546 IBPTR 6305 IBUFFR 6600 ICCT 0063 IDMUSR 7015 IL7400 6301 IM232 6302 IMESS 6703 IMOV10 6671 INIT 0614 INORM 7031 IOPEN 0061 IOPN 6531 IP2 7000 IPAGAD 7036 IPSET 4037 IPT1 6733 IPT2 6734 ISAV 6715 JMPINS 6422 JMPSW 6431 L3 0246 LDEX 4705 LDFLD 4655 LOAD 0235 LOAD1 0225 LOAD2 0237 LOADCL 0067 LOADH 6240 LRCODE 6400 LX 4706 MNCH 6337 NOTC 7204 NOTCZ 6357 NOTRWD 6540 NOTTF 6563 NXIB 6320 NXOB 6465 O7400 6562 O7600 7461 unreferenced O7607 6507 O7700 7452 OAGAIN 7226 OBA 6565 OBFPTR 6521 OBLOK 7444 OBUFFR 7200 OCCT 0064 OCTOUT 1005 unreferenced ODMUSR 7446 OFL 6517 OFNT 6512 OMESS 7327 OMOV10 7315 OOEXIT 6410 OOPEN 0062 OP2 7400 OPBLOK 6461 OPCODE 7442 OPNOUT 7223 OPT1 7341 OPT2 7342 OSAV 7463 OSIN0 6307 OSOUT0 6400 OUTCH 6412 P3 6442 PD 0263 RETFLD 0010 RIBA 6007 SAC 6025 SDHRTI 6661 SDHRTO 7305 SRCODE 6200 TMPTR 6522 TRY2 6236 USROP 7433 W3 6306 WAIT 1207 X40 4713 X7642 4711 X7643 4712 X7746 4710 XCDF 4707 XINIT 4715 XLOADC 4032 XWAIT 4714