| 1 | /LIBSET - LIBRARY BUILDER PROGRAM |
| 2 | / |
| 3 | / |
| 4 | / |
| 5 | / |
| 6 | / |
| 7 | / |
| 8 | / |
| 9 | / |
| 10 | / |
| 11 | /COPYRIGHT (C) 1974,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 MANUAL. |
| 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 | \f FIELD 1 |
| 46 | HILOC=20 |
| 47 | INFPTR=21 |
| 48 | IFPTR=22 |
| 49 | TEMP=23 |
| 50 | NAMPTR=24 |
| 51 | /VERSION=3 |
| 52 | /PATCH="A |
| 53 | |
| 54 | *2600 |
| 55 | START, SKP |
| 56 | JMP .+4 |
| 57 | CALLCD, JMS I (200 |
| 58 | 5 |
| 59 | RL, 2214 |
| 60 | 0 /DON'T RESET OUTPUT FILES |
| 61 | ISZ FIRST |
| 62 | JMP NOTFST |
| 63 | TAD I (7604 |
| 64 | SNA |
| 65 | TAD RL |
| 66 | DCA I (7604 |
| 67 | TAD I (7600 |
| 68 | SZA CLA /IS THERE AN OUTPUT FILE? |
| 69 | JMP OUTYES /YES |
| 70 | CLA IAC |
| 71 | DCA I (7600 /NO - MAKE SYS:LIB8.RL THE OUTPUT FILE |
| 72 | TAD (1411 |
| 73 | DCA I (7601 |
| 74 | TAD (0270 |
| 75 | DCA I (7602 |
| 76 | TAD I (7617 |
| 77 | SNA CLA /HOW ABOUT INPUT FILES? |
| 78 | TAD I (MPARAM+1 |
| 79 | AND (40 /IF NO INPUT FILES, |
| 80 | SNA CLA /AND /S OPTION IS ON, |
| 81 | JMP OUTYES |
| 82 | DCA PTRCOD /USE PTR: FOR INPUT |
| 83 | JMS I (200 |
| 84 | 12 |
| 85 | 4224 |
| 86 | PTRCOD, 0 |
| 87 | 0 |
| 88 | JMP I PERROR /NO PTR - BAD |
| 89 | TAD PTRCOD |
| 90 | DCA I (7617 |
| 91 | OUTYES, JMS I (XOPEN |
| 92 | JMS I (OCHAR |
| 93 | JMS I (DMPREC /PUT OUT NOTHIN IN FIRST RECORD |
| 94 | TAD (7000 |
| 95 | DCA NAMPTR |
| 96 | TAD (7376 |
| 97 | DCA INFPTR |
| 98 | NOTFST, TAD (7617 |
| 99 | DCA IFPTR |
| 100 | FILELP, TAD I IFPTR |
| 101 | SNA CLA |
| 102 | JMP NEXTCD |
| 103 | TAD IFPTR |
| 104 | JMS I (IOPEN |
| 105 | READLP, CLA CMA |
| 106 | TAD I (OUCCNT |
| 107 | DCA FLEN |
| 108 | DCA HILOC |
| 109 | JMS I (IREAD /READ AND COPY A RELOCATABLE PROGRAM |
| 110 | SZA CLA /TEST CHECKSUM |
| 111 | JMP I PERROR |
| 112 | TAD HILOC |
| 113 | AND (7600 |
| 114 | TAD FLEN |
| 115 | DCA I INFPTR |
| 116 | JMS I (DMPREC |
| 117 | ISZ INFPTR |
| 118 | DCA I INFPTR |
| 119 | CLA CLL CMA RTL |
| 120 | TAD INFPTR |
| 121 | DCA INFPTR |
| 122 | TAD I (MPARAM+1 |
| 123 | AND (40 |
| 124 | SZA CLA |
| 125 | JMP READLP /IF /S SWITCH ON , CONTINUE READING TAPES UNTIL A ^Z |
| 126 | NXFIL, ISZ IFPTR |
| 127 | ISZ IFPTR |
| 128 | JMP FILELP |
| 129 | NEXTCD, TAD I (MPARAM-1 |
| 130 | SMA CLA |
| 131 | JMP CALLCD |
| 132 | DCA I NAMPTR |
| 133 | ISZ NAMPTR |
| 134 | ISZ NAMPTR |
| 135 | ISZ NAMPTR |
| 136 | DCA I NAMPTR |
| 137 | TAD NAMPTR |
| 138 | CMA IAC |
| 139 | TAD INFPTR |
| 140 | SMA CLA |
| 141 | JMP I (FINISH |
| 142 | JMP I .+1 |
| 143 | TOOBIG |
| 144 | |
| 145 | FIRST, -1 |
| 146 | FLEN, 0 |
| 147 | |
| 148 | JTABL, DATAWD |
| 149 | DATAWD |
| 150 | ERROR |
| 151 | SYMDEF |
| 152 | ORIGIN |
| 153 | DATAWD |
| 154 | DATAWD |
| 155 | PERROR, ERROR |
| 156 | ENDTAP |
| 157 | ERROR |
| 158 | COMMON |
| 159 | ERROR |
| 160 | ERROR |
| 161 | ERROR |
| 162 | ERROR |
| 163 | TRANVC |
| 164 | |
| 165 | VERSON, 6301 /VERSION AND PATCH LEVEL |
| 166 | \f *3000 |
| 167 | IREAD, 0 |
| 168 | TAD (200 |
| 169 | DCA LOC |
| 170 | ILEADR, JMS I (ICHAR |
| 171 | DCA CKSM |
| 172 | TAD CKSM |
| 173 | AND (177 |
| 174 | SNA CLA |
| 175 | JMP ILEADR |
| 176 | TAD CKSM |
| 177 | TAD (-232 |
| 178 | SNA CLA |
| 179 | JMP I (NXFIL |
| 180 | TAD (200 |
| 181 | JMS I (OCHAR |
| 182 | TAD CKSM |
| 183 | JMS I (OCHAR |
| 184 | TAD CKSM |
| 185 | SKP |
| 186 | NXTFRM, JMS RCHAR |
| 187 | CLL RTR |
| 188 | RTR |
| 189 | RAR |
| 190 | DCA CHAR1 |
| 191 | TAD CHAR1 |
| 192 | RAL |
| 193 | AND (17 |
| 194 | TAD JMPTAB |
| 195 | DCA BTMP |
| 196 | TAD I BTMP |
| 197 | DCA BTMP |
| 198 | JMP I BTMP |
| 199 | JMPTAB, JTABL |
| 200 | |
| 201 | RCHAR, 0 |
| 202 | JMS I (ICHAR |
| 203 | DCA CHAR |
| 204 | TAD CKSM |
| 205 | TAD CHAR |
| 206 | DCA CKSM |
| 207 | TAD CHAR |
| 208 | JMS I (OCHAR |
| 209 | TAD CHAR |
| 210 | JMP I RCHAR |
| 211 | |
| 212 | DATAWD, JMS RCHAR |
| 213 | CLA CLL |
| 214 | TAD LOC |
| 215 | CMA |
| 216 | TAD HILOC |
| 217 | SZL CLA |
| 218 | JMP .+3 |
| 219 | TAD LOC |
| 220 | DCA HILOC |
| 221 | ISZ LOC |
| 222 | JMP NXTFRM |
| 223 | |
| 224 | SYMDEF, JMS RCHAR |
| 225 | CLA CLL CMA RTL |
| 226 | DCA CHAR1 |
| 227 | GTNMLP, JMS RCHAR |
| 228 | AND (77 |
| 229 | CLL RTL |
| 230 | RTL |
| 231 | RTL |
| 232 | DCA BTMP |
| 233 | JMS RCHAR |
| 234 | AND (77 |
| 235 | TAD BTMP |
| 236 | DCA I NAMPTR |
| 237 | ISZ NAMPTR |
| 238 | ISZ CHAR1 |
| 239 | JMP GTNMLP |
| 240 | TAD INFPTR |
| 241 | AND (377 |
| 242 | DCA I NAMPTR |
| 243 | ISZ NAMPTR |
| 244 | TAD NAMPTR |
| 245 | CIA |
| 246 | TAD INFPTR |
| 247 | SPA SNA CLA |
| 248 | JMP I (TOOBIG |
| 249 | JMP NXTFRM |
| 250 | |
| 251 | ORIGIN, JMS RCHAR |
| 252 | CLA |
| 253 | TAD CHAR1 |
| 254 | AND (7400 |
| 255 | TAD CHAR |
| 256 | DCA LOC |
| 257 | JMP NXTFRM |
| 258 | |
| 259 | COMMON, JMS RCHAR |
| 260 | CLA |
| 261 | JMP NXTFRM |
| 262 | |
| 263 | TRANVC, JMS RCHAR |
| 264 | CLL RAL |
| 265 | TAD CHAR |
| 266 | CLL RAL |
| 267 | CIA |
| 268 | DCA BTMP |
| 269 | JMS RCHAR |
| 270 | CLA |
| 271 | ISZ BTMP |
| 272 | JMP .-3 |
| 273 | JMP NXTFRM |
| 274 | |
| 275 | ENDTAP, TAD CKSM |
| 276 | CIA |
| 277 | TAD CHAR |
| 278 | DCA BTMP |
| 279 | JMS RCHAR |
| 280 | CLA |
| 281 | TAD CHAR1 |
| 282 | AND (7400 |
| 283 | TAD CHAR |
| 284 | TAD BTMP |
| 285 | JMP I IREAD |
| 286 | |
| 287 | LOC, 0 |
| 288 | CHAR1, 0 |
| 289 | CHAR, 0 |
| 290 | BTMP, 0 |
| 291 | CKSM, 0 |
| 292 | |
| 293 | \f *3200 |
| 294 | XOPEN, 0 |
| 295 | TAD (7577 |
| 296 | DCA 10 |
| 297 | TAD (FILENM-1 |
| 298 | DCA 11 |
| 299 | TAD (-5 |
| 300 | DCA 12 |
| 301 | TAD I 10 |
| 302 | DCA I 11 |
| 303 | ISZ 12 |
| 304 | JMP .-3 |
| 305 | JMS I (OOPEN |
| 306 | TAD I (OUBLK |
| 307 | DCA CTLWRI |
| 308 | TAD I (OUHNDL |
| 309 | DCA ODVH |
| 310 | JMP I XOPEN |
| 311 | |
| 312 | DMPREC, 0 |
| 313 | JMS I (OCHAR |
| 314 | JMS I (OCHAR |
| 315 | TAD I (OUDWCT |
| 316 | TAD (200 |
| 317 | SZA CLA |
| 318 | JMP .-4 |
| 319 | JMP I DMPREC |
| 320 | |
| 321 | FINISH, JMS I (OCLOSE |
| 322 | CIF 0 |
| 323 | JMS I ODVH |
| 324 | 4210 |
| 325 | 7000 |
| 326 | CTLWRI, 0 |
| 327 | JMP OUTERR |
| 328 | CDF CIF 0 |
| 329 | JMP I (7605 |
| 330 | FILENM, ZBLOCK 5 |
| 331 | ODVH, 0 |
| 332 | |
| 333 | TOOBIG, ISZ ERRNO |
| 334 | ERROR, ISZ ERRNO |
| 335 | OUTERR, ISZ ERRNO |
| 336 | INERR, ISZ ERRNO |
| 337 | ERR, TAD ERRNO |
| 338 | TAD (ERR0 |
| 339 | DCA EPCH |
| 340 | DCA ERRNO |
| 341 | TAD I EPCH |
| 342 | DCA ODVH |
| 343 | ERRLP, TAD I ODVH |
| 344 | RTR |
| 345 | RTR |
| 346 | RTR |
| 347 | JMS EPCH |
| 348 | TAD I ODVH |
| 349 | JMS EPCH |
| 350 | ISZ ODVH |
| 351 | JMP ERRLP |
| 352 | ERXIT, CDF CIF 0 |
| 353 | JMP I .+1 |
| 354 | 7605 |
| 355 | |
| 356 | EPCH, 0 |
| 357 | AND (77 |
| 358 | SNA |
| 359 | JMP ERXIT |
| 360 | TAD (-40 |
| 361 | SPA |
| 362 | TAD (100 |
| 363 | TAD (240 |
| 364 | 6046 |
| 365 | 6041 |
| 366 | JMP .-1 |
| 367 | CLA |
| 368 | JMP I EPCH |
| 369 | |
| 370 | ERRNO, 0 |
| 371 | \f *3400 |
| 372 | /ERROR MESSAGES |
| 373 | ERR0, HELP |
| 374 | INPER |
| 375 | OUPER |
| 376 | RELER |
| 377 | BIGER |
| 378 | |
| 379 | HELP, TEXT /HELP!/ /THIS ERROR CANNOT OCCUR |
| 380 | INPER, TEXT /INPUT ERROR/ |
| 381 | OUPER, TEXT /ERROR WHILE WRITING OUTPUT FILE/ |
| 382 | RELER, TEXT /BAD FORMAT OR CHECKSUM - TRY AGAIN./ |
| 383 | BIGER, TEXT /LIBRARY DIRECTORY OVERFLOW - TOUGH/ |
| 384 | \f INBUF=0 |
| 385 | INCTL=2400 |
| 386 | OUBUF=6000 |
| 387 | OUCTL=4200 |
| 388 | INDEVH=6400 |
| 389 | OUDEVH=7000 |
| 390 | INRECS=12 |
| 391 | MPARAM=7643 |
| 392 | DCB=7760 |
| 393 | INFLD=INCTL&70 /GET FIELD OF INPUT BUFFER |
| 394 | OUFLD=OUCTL&70 /DITTO OUTPUT BUFFER |
| 395 | *2000 |
| 396 | IN7400, 7400 |
| 397 | IOPEN, 0 |
| 398 | DCA INXPTR |
| 399 | CLA CMA |
| 400 | DCA INCHCT /SET INCHCT TO FORCE A READ |
| 401 | ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE |
| 402 | RDF |
| 403 | TAD INCDIF |
| 404 | DCA .+1 |
| 405 | INPTR, HLT /RESTORE CALLING FIELDS |
| 406 | JMP I IOPEN |
| 407 | |
| 408 | ICHAR, 0 |
| 409 | IN7600, 7600 |
| 410 | RDF |
| 411 | TAD INCDIF |
| 412 | DCA INRTRN /SAVE CALLING FIELDS |
| 413 | INCHAR, CDF INFLD |
| 414 | ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH |
| 415 | ISZ INCHCT |
| 416 | INJMPP, JMP INJMP |
| 417 | TAD INEOF |
| 418 | SNA CLA /DID LAST READ YIELD END-OF-FILE? |
| 419 | JMP INGBUF /NO - DO ANOTHER |
| 420 | GETNEW, JMS INNEWF /OPEN A NEW INPUT FILE |
| 421 | JMP I (ERROR |
| 422 | INGBUF, TAD INCTR |
| 423 | CLL |
| 424 | TAD (INRECS |
| 425 | SNL |
| 426 | DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED |
| 427 | SZL /IS THIS THE LAST READ? |
| 428 | ISZ INEOF /YES - SET END-OF-FILE FLAG |
| 429 | CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ |
| 430 | RTR /FROM THE AMOUNT OF THE OVERFLOW |
| 431 | RTR /(IF ANY) AND THE STANDARD CONTROL WORD |
| 432 | TAD (INCTL+1 |
| 433 | DCA INCTLW |
| 434 | INCDIF, CDF CIF 0 |
| 435 | CDF 10 |
| 436 | JMS I INHNDL /CALL THE DEVICE HANDLER |
| 437 | INCTLW, 0 |
| 438 | INBUFP, INBUF |
| 439 | INREC, 0 |
| 440 | JMP INERRX /SOME KIND OF HANDLER ERROR |
| 441 | INBREC, TAD INREC |
| 442 | TAD (INRECS |
| 443 | DCA INREC /UPDATE THE RECORD NUMBER |
| 444 | TAD INCTLW |
| 445 | AND IN7600 |
| 446 | CLL RAL |
| 447 | TAD INCTLW |
| 448 | AND IN7600 |
| 449 | CMA |
| 450 | DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT |
| 451 | TAD INJMPP |
| 452 | DCA INJMP /RESET THE CHARACTER SWITCH |
| 453 | TAD INBUFP |
| 454 | DCA INPTR /AND THE WORD POINTER |
| 455 | JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED |
| 456 | INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A BADDIE |
| 457 | SMA CLA /WHICH TYPE WAS IT? |
| 458 | JMP INBREC /END OF FILE - RESUME THY PROCESSING |
| 459 | JMP I (INERR |
| 460 | INJMP, HLT /THIS IS THE THREE - WAY CHARACTER SWITCH |
| 461 | JMP ICHAR1 |
| 462 | JMP ICHAR2 |
| 463 | ICHAR3, TAD INJMPP |
| 464 | DCA INJMP |
| 465 | TAD I INPTR |
| 466 | IN200, AND IN7400 |
| 467 | CLL RTR |
| 468 | RTR /COMBINE THE HIGH-ORDER FOUR BITS OF |
| 469 | TAD INCTLW |
| 470 | RTR /THE TWO WORD TO FORM THE THIRD CHARACTER |
| 471 | RTR |
| 472 | ISZ INPTR |
| 473 | JMP INCOMN |
| 474 | ICHAR2, TAD I INPTR |
| 475 | AND IN7400 |
| 476 | DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR |
| 477 | ISZ INPTR /BUMP THE WORD POINTER |
| 478 | ICHAR1, TAD I INPTR |
| 479 | INCOMN, AND (377 |
| 480 | INRTRN, 0 /RESTORE CALLING FIELDS |
| 481 | JMP I ICHAR /AND RETURN |
| 482 | INXPTR, 0 |
| 483 | INEOF, 1 /THESE PARAMETERS ARE SET UP SO THAT |
| 484 | /IOPEN IS UNNECESSARY. |
| 485 | INNEWF, -1 |
| 486 | INCHCT=INNEWF |
| 487 | CDF 10 |
| 488 | TAD (INDEVH+1 |
| 489 | DCA INHNDL /INITIALIZE HANDLER ADDRESS |
| 490 | TAD I INXPTR |
| 491 | SNA /ANY MORE? |
| 492 | JMP I INNEWF /NO - OUT OF INPUT |
| 493 | JMS I IN200 |
| 494 | 1 /ASSIGN, FETCH HANDLER |
| 495 | INHNDL, 0 |
| 496 | HLT /HUH? |
| 497 | TAD I INXPTR |
| 498 | AND (7760 /GET LENGTH PART OF WORD |
| 499 | SZA /LENGTH OF 0 MEANS LENGTH >=256 |
| 500 | TAD (17 /ADD HIGH-ORDER BITS |
| 501 | CLL CML RTR |
| 502 | RTR |
| 503 | DCA INCTR /STORE LENGTH OF FILE |
| 504 | ISZ INXPTR |
| 505 | TAD I INXPTR |
| 506 | DCA INREC /STORE STARTING RECORD NUMBER OF FILE |
| 507 | ISZ INXPTR |
| 508 | DCA INEOF /ZERO END-OF-FILE FLAG |
| 509 | ISZ INNEWF |
| 510 | JMP I INNEWF |
| 511 | INCTR=IOPEN |
| 512 | \fPTP=20 |
| 513 | *2200 |
| 514 | OOPEN, 0 |
| 515 | OU7600, 7600 |
| 516 | RDF |
| 517 | TAD OUCDIF |
| 518 | DCA OORETN |
| 519 | JMS OUASGN |
| 520 | OUENTR, TAD I OU7600 |
| 521 | JMS I (200 |
| 522 | 3 /ENTER OUTPUT FILE |
| 523 | OUBLK, FILENM+1 |
| 524 | OUELEN, 0 /REPLACED WITH LENGTH OF HOLE |
| 525 | JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH |
| 526 | DCA OUCCNT |
| 527 | JMS I (OUSETP |
| 528 | OORETN, HLT /RESTORE CALLING FIELDS |
| 529 | JMP I OOPEN |
| 530 | OEFAIL, TAD I OU7600 |
| 531 | AND (7760 /GET REQUESTED LENGTH |
| 532 | SNA CLA /WAS IT AN INDEFINITE REQUEST |
| 533 | JMP I (OUTERR |
| 534 | TAD I OU7600 |
| 535 | AND (17 /MAKE THE REQUESTED LENGTH ZERO |
| 536 | DCA I OU7600 |
| 537 | JMP OUENTR /TRY, TRY AGAIN |
| 538 | OUASGN, 0 |
| 539 | TAD (OUDEVH+1 |
| 540 | DCA OUHNDL |
| 541 | CDF 10 |
| 542 | TAD I (FILENM |
| 543 | AND (17 /STRIP OFF ANY LENGTH INFO |
| 544 | SNA /IS THERE AN OUTPUT DEVICE? |
| 545 | JMP I (OUTERR |
| 546 | JMS I (200 |
| 547 | 1 /ASSIGN, FETCH HANDLER |
| 548 | OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY |
| 549 | HLT /HUH? |
| 550 | JMP I OUASGN |
| 551 | OUTDMP, 0 |
| 552 | DCA OUCTLW /STORE THE CONTROL WORD |
| 553 | TAD OUCCNT |
| 554 | SNA |
| 555 | ISZ OUCTLW |
| 556 | TAD OUBLK |
| 557 | DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER |
| 558 | TAD OUCTLW |
| 559 | CLL RTL |
| 560 | RTL |
| 561 | RTL |
| 562 | AND (17 /COMPUTE THE NUMBER OF RECORDS |
| 563 | TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE |
| 564 | DCA OUCCNT |
| 565 | TAD OUCCNT |
| 566 | CLL CML |
| 567 | TAD OUELEN |
| 568 | SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? |
| 569 | JMP I (OUTERR |
| 570 | OUCDIF, CDF CIF 0 |
| 571 | CDF 10 |
| 572 | JMS I OUHNDL |
| 573 | OUCTLW, 0 |
| 574 | OUBUF |
| 575 | OUREC, 0 |
| 576 | JMP I (OUTERR |
| 577 | JMP I OUTDMP |
| 578 | OCLOSE, 0 |
| 579 | RDF |
| 580 | TAD OUCDIF |
| 581 | DCA OCRET |
| 582 | JMS I (OCHAR |
| 583 | JMS I (OCHAR |
| 584 | FILLLP, JMS I (OCHAR |
| 585 | JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE |
| 586 | SPA CLA |
| 587 | TAD (100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD |
| 588 | TAD (77 /BOUNDARY - OTHERWISE A HALF-RECORD |
| 589 | AND I (OUDWCT |
| 590 | SZA CLA /UP TO THE BOUNDARY YET? |
| 591 | JMP FILLLP /NO - FILL WITH ZEROS |
| 592 | TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT |
| 593 | TAD (OUCTL&3700 |
| 594 | SNA /A FULL WRITE LEFT? |
| 595 | JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT |
| 596 | TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT |
| 597 | JMS OUTDMP |
| 598 | NODUMP, JMS OUASGN /REASSIGN OUTPUT HANDLER |
| 599 | TAD I (FILENM |
| 600 | JMS I (200 |
| 601 | 4 /CLOSE THE OUTPUT FILE |
| 602 | OU7601, FILENM+1 |
| 603 | OUCCNT, 0 |
| 604 | JMP I (OUTERR |
| 605 | OCRET, HLT /RESTORE CALLING FIELDS |
| 606 | JMP I OCLOSE |
| 607 | \f *2400 |
| 608 | OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS |
| 609 | TAD (OUCTL&3700 /GET SIZE OF BUFFER IN DOUBLEWORDS |
| 610 | CIA /NEGATE IT |
| 611 | DCA OUDWCT |
| 612 | TAD (OUBUF |
| 613 | DCA OUPTR /INITIALIZE WORD POINTER |
| 614 | TAD OUJMPE |
| 615 | DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH |
| 616 | JMP I OUSETP |
| 617 | |
| 618 | OCHAR, 0 |
| 619 | AND (377 |
| 620 | DCA OUTEMP |
| 621 | RDF |
| 622 | TAD (CDF CIF 0 |
| 623 | DCA OUCRET |
| 624 | OUCHAR, CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD |
| 625 | ISZ OUJMP /BUMP THE CHARACTER SWITCH |
| 626 | OUJMP, HLT /THREE WAY CHARACTER SWITCH |
| 627 | JMP OCHAR1 |
| 628 | JMP OCHAR2 |
| 629 | OCHAR3, TAD OUTEMP |
| 630 | CLL RTL |
| 631 | RTL |
| 632 | AND (7400 |
| 633 | TAD I OUPOLD |
| 634 | DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH |
| 635 | /ORDER 4 BITS OF THIRD CHAR |
| 636 | TAD OUTEMP |
| 637 | CLL RTR |
| 638 | RTR |
| 639 | RAR |
| 640 | AND (7400 |
| 641 | TAD I OUPTR |
| 642 | DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS |
| 643 | TAD OUJMPE |
| 644 | DCA OUJMP /RESET SWITCH |
| 645 | ISZ OUPTR |
| 646 | ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS |
| 647 | JMP OUCOMN |
| 648 | TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE |
| 649 | JMS I (OUTDMP /DUMP THE BUFFER |
| 650 | JMS OUSETP /RE-INITIALIZE THE POINTERS |
| 651 | JMP OUCOMN |
| 652 | OCHAR2, TAD OUPTR |
| 653 | DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO |
| 654 | ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD |
| 655 | OCHAR1, TAD OUTEMP |
| 656 | DCA I OUPTR |
| 657 | OUCOMN, |
| 658 | OUCRET, HLT /RESTORE CALLING FIELDS |
| 659 | JMP I OCHAR |
| 660 | OUTEMP, 0 |
| 661 | OUPOLD, 0 |
| 662 | OUPTR, 0 |
| 663 | OUJMPE, JMP OUJMP |
| 664 | OUDWCT, 0 |
| 665 | OUTINH, 0 |
| 666 | |
| 667 | OTYPE, 0 |
| 668 | RDF |
| 669 | TAD (CDF CIF 0 |
| 670 | DCA OTRTN |
| 671 | CDF 10 |
| 672 | TAD I (7600 |
| 673 | AND (17 |
| 674 | TAD (DCB-1 |
| 675 | DCA OUTEMP |
| 676 | TAD I OUTEMP |
| 677 | OTRTN, HLT |
| 678 | JMP I OTYPE |
| 679 | CTCTST, 0 |
| 680 | KRS |
| 681 | TAD (-203 |
| 682 | SNA CLA /IS THE TELETYPE BUFFER A ^C |
| 683 | KSF /WITH THE TELETYPE FLAG ON? |
| 684 | JMP I CTCTST /NO |
| 685 | CDF CIF 0 /YES - GO TO MONITOR |
| 686 | JMP I (7605 /THROUGH THE "DON'T SAVE CORE" RETURN |
| 687 | $ |
| 688 | \f |