File: BITM50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/ OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 1 / OS8 BINARY MAP (BITMAP) V50 / / / / / / / / / /COPYRIGHT (C) 1975 BY DIGITAL EQUIPMENT CORPORATION / AND 1979 BY DATAPLAN GMBH / AND 2015 W. VAN DER MARK / / / / / / / / / /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. / /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 2 / GERMAN=1 /NOT ANYMORE DECIMAL 0062 VERSION=50 0330 SUBVER="X /LOCATED AT "VERLOC" AND "VERLOC+1" OCTAL 0010 XR= 10 0011 LOADXR= 11 0020 XFIELD= 20 /HOLDS FIELD WE ARE "STORING" INTO 0021 ORIGIN= 21 /HOLDS CURRENT ORIGIN 0022 OUT= 22 0023 B1= 23 0024 B3= 24 0025 C1= 25 0027 COLCTR= 27 0030 WD= 30 0031 WD1= 31 0032 WD2= 32 0033 FILPTR= 33 0035 FLDNO= 35 /OS/8 EQUIVALENCES 7643 MPARAM= 7643 7746 JSBITS= 7746 7617 MIFILE= 7617 0020 PTP= 20 7760 DCB= 7760 /BUFFER AND DEVICE HANDLER ASSIGNMENTS 4200 OUCTL= 4200 0200 BITBUF= 200 6200 OUBUF= 6200 6600 OUDEVH= 6600 7200 INDEVH= 7200 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 3 0001 FIELD 1 2000 *2000 012000 5205 BITMAP, JMP CALLCD 012001 5210 JMP NOCD /CHAINED ENTRY POINT 012002 1777 NEXTCD, TAD I (MPARAM-1 012003 7710 SPA CLA 012004 5776 JMP I (BUILD /ALTMODE TERMINATES INPUT, STARTS OUTPUT 012005 4775 CALLCD, JMS I (200 012006 0005 5 /COMMAND DECODE 012007 0216 0216 /DEFAULT EXTENSION IS .BN 012010 1374 NOCD, TAD (LDRPCH 012011 3022 DCA OUT 012012 2232 ISZ ONCE 012013 5222 JMP CDCOOL 012014 7346 CLA CLL CMA RTL 012015 6201 CDF 0 012016 0773 AND I (JSBITS /REMOVE "DON'T CARE ABOUT CD AREA" BIT 012017 3773 DCA I (JSBITS 012020 6211 CDF 10 012021 4772 JMS I (CTINIT 012022 1771 CDCOOL, TAD I (MPARAM+1 012023 0370 AND (100 012024 7640 SZA CLA /IS /R SWITCH ON? 012025 4772 JMS I (CTINIT /YES - RE-INITIALIZE LOADER TABLES 012026 7400 LD7400, 7400 012027 1367 TAD (MIFILE 012030 3033 DCA FILPTR 012031 5766 JMP I (NEWFIL 012032 7777 ONCE, -1 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 4 /SUBROUTINE TO "LOAD" A WORD. /INCREMENTS TWO-BIT QUANTITY CORRESPONDING TO THE WORD. /FIELD 0 IS MAPPED INTO WORDS 00000-01377,FIELD 1 INTO 01400-02777 /FIELDS 4-7 ARE MAPPED INTO 20000-25777 012033 0000 LOADWD, 0 /ENTER WITH LOW 4 BITS OF ORIGIN IN AC 012034 7104 CLL RAL 012035 1365 TAD (BITTBL-1 012036 3011 DCA LOADXR 012037 1411 TAD I LOADXR /GET WORD IN THE 3-WORD SET 012040 3306 DCA LDOFST /(WHICH MAPS 16 WORDS) 012041 1411 TAD I LOADXR /GET THE LOW ORDER BIT OF THE PAIR 012042 3307 DCA LDBIT /WHICH MAPS THIS WORD 012043 1021 TAD ORIGIN /NOW FIND OUT WHICH TRIPLEWORD TO USE 012044 7006 RTL 012045 7006 RTL 012046 0364 AND (7407 012047 1020 TAD XFIELD 012050 7006 RTL 012051 7006 RTL 012052 6201 CDF 0 012053 7006 RTL 012054 7004 RAL 012055 7430 SZL 012056 6221 CDF20Y, CDF 20 /NOP'ED IF NO FIELD 2 IN MACHINE 012057 7112 CLL RTR /FIELDS 4-7 MAPPED IN FIELD 2 012060 3310 DCA LTEMP 012061 1310 TAD LTEMP 012062 7104 CLL RAL 012063 1310 TAD LTEMP 012064 1306 TAD LDOFST 012065 1375 TAD (BITBUF 012066 3310 DCA LTEMP 012067 1307 TAD LDBIT 012070 7104 CLL RAL 012071 1307 TAD LDBIT 012072 0710 AND I LTEMP 012073 7650 SNA CLA /IF COUNT IS AT 3 (MAX), 012074 5633 JMP I LOADWD /DON'T INCREMENT IT 012075 1307 TAD LDBIT 012076 7041 CIA 012077 1710 TAD I LTEMP 012100 3710 DCA I LTEMP 012101 6214 RDF 012102 6211 CDF 10 012103 7640 SZA CLA 012104 3763 DCA I (F4FLAG /SEARCH FIELD 2 IF WE STORED THERE 012105 5633 JMP I LOADWD 012106 0000 LDOFST, 0 012107 0000 LDBIT, 0 012110 0000 LTEMP, 0 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 5 /BIT TABLE FOR MAPPING 012111 0000 BITTBL, 0;2000;0;400;0;100;0;20;0;4;0;1 012112 2000 012113 0000 012114 0400 012115 0000 012116 0100 012117 0000 012120 0020 012121 0000 012122 0004 012123 0000 012124 0001 012125 0001 1;2000;1;400;1;100;1;20;1;4;1;1 012126 2000 012127 0001 012130 0400 012131 0001 012132 0100 012133 0001 012134 0020 012135 0001 012136 0004 012137 0001 012140 0001 012141 0002 2;2000;2;400;2;100;2;20;2;4;2;1 012142 2000 012143 0002 012144 0400 012145 0002 012146 0100 012147 0002 012150 0020 012151 0002 012152 0004 012153 0002 012154 0001 012163 3420 012164 7407 012165 2110 012166 2200 012167 7617 012170 0100 012171 7644 012172 2737 012173 7746 012174 2621 012175 0200 012176 3400 012177 7642 2200 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 6 012200 1377 NEWFIL, TAD (INDEVH+1 012201 3217 DCA HANDLR 012202 1433 TAD I FILPTR 012203 0376 AND (7760 012204 7440 SZA /LENGTH OF 256 BLOCKS IMPLIES AT LEAST 256 012205 1375 TAD (17 012206 7132 CLL CML RTR 012207 7012 RTR 012210 3336 DCA RCDCNT 012211 1433 TAD I FILPTR 012212 2033 ISZ FILPTR 012213 7450 SNA 012214 5774 JMP I (NEXTCD /FILE POINTER = 0 MEANS NO MORE INPUT FILES 012215 4773 JMS I (200 012216 0001 1 /ASSIGN 012217 7201 HANDLR, INDEVH+1 /LOAD INTO 7200 IF NOT ALREADY LOADED 012220 5772 JMP I (IOERR 012221 1433 TAD I FILPTR 012222 3264 DCA RECNO 012223 2033 ISZ FILPTR 012224 7240 CLA CMA 012225 3333 DCA CHCNT 012226 3332 DCA REOF 012227 1771 TAD I (MPARAM /TEST FOR /I 012230 0370 AND (10 012231 7650 SNA CLA 012232 5767 JMP I (LOADER /I IS NOT ON 012233 5766 JMP I (OERR /NO! / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 7 012234 0000 GETCH, 0 /GET-NEXT-INPUT-CHARACTER ROUTINE 012235 4765 JMS I (CTCTST 012236 2300 ISZ JMPGET 012237 2333 ISZ CHCNT 012240 5300 JMPX, JMP JMPGET 012241 1332 TAD REOF 012242 7640 SZA CLA 012243 5634 JMP I GETCH /EOF REACHED BEFORE LOGICAL END - ERROR 012244 7100 CLL 012245 1336 TAD RCDCNT 012246 1364 TAD (6 012247 7420 SNL 012250 3336 DCA RCDCNT 012251 7430 SZL 012252 2332 ISZ REOF 012253 7172 CLL CMA CML RTR 012254 7012 RTR 012255 7012 RTR 012256 1363 TAD (1411 012257 3262 DCA RCTL 012260 6202 CIF 0 012261 4617 JMS I HANDLR 012262 0000 RCTL, 0 /READ RECORDS INTO FIELD 1 012263 4000 PBUFFR, BUFFER 012264 0000 RECNO, 0 012265 5326 JMP RERROR 012266 1264 TAD RECNO 012267 1364 TAD (6 012270 3264 DCA RECNO 012271 1362 TAD (-4401 012272 3333 DCA CHCNT 012273 1263 TAD PBUFFR 012274 3334 DCA CHPTR 012275 1240 TAD JMPX 012276 3300 DCA JMPGET 012277 5235 JMP GETCH+1 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 8 012300 5300 JMPGET, JMP . 012301 5322 JMP CHAR1 012302 5316 JMP CHAR2 012303 1240 TAD JMPX 012304 3300 DCA JMPGET 012305 1734 TAD I CHPTR 012306 0361 AND (7400 012307 7112 CLL RTR 012310 7012 RTR 012311 1335 TAD CHTMP 012312 7012 RTR 012313 7012 RTR 012314 2334 ISZ CHPTR 012315 5323 JMP GCHCOM 012316 1734 CHAR2, TAD I CHPTR 012317 0361 AND (7400 012320 3335 DCA CHTMP 012321 2334 ISZ CHPTR 012322 1734 CHAR1, TAD I CHPTR 012323 0360 GCHCOM, AND (377 012324 2234 ISZ GETCH 012325 5634 JMP I GETCH 012326 7710 RERROR, SPA CLA 012327 5772 JMP I (IOERR /AN ACTUAL READ ERROR - AMAZING! 012330 2332 ISZ REOF 012331 5266 JMP RECNO+2 012332 0000 REOF, 0 012333 0000 CHCNT, 0 012334 0000 CHPTR, 0 012335 0000 CHTMP, 0 012336 0000 RCDCNT, 0 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 9 012337 0000 ZTST, 0 /TEST A BLOCK OF THE BITMAP FOR ALL ONES 012340 3024 DCA B3 /LENGTH OF THE BLOCK IN AC 012341 1011 TAD LOADXR 012342 3010 DCA XR 012343 7240 STA 012344 4757 JMS I (XCDF 012345 0410 AND I XR 012346 2024 ISZ B3 012347 5345 JMP .-2 012350 6211 CDF 10 012351 7040 CMA 012352 7440 SZA 012353 5737 JMP I ZTST 012354 1010 TAD XR 012355 3011 DCA LOADXR /UPDATE LOADXR IF ALL ZEROES 012356 5737 JMP I ZTST 012357 3532 012360 0377 012361 7400 012362 3377 012363 1411 012364 0006 012365 3331 012366 2730 012367 2411 012370 0010 012371 7643 012372 2651 012373 0200 012374 2002 012375 0017 012376 7760 012377 7201 2400 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 10 012400 4273 ITSOVR, JMS ASSEMB /GET THE CHECKSUM 012401 7041 CIA 012402 1332 TAD LCKSUM 012403 7640 SZA CLA /IS IT GOOD? 012404 5777 JMP I (BADCKS /NO 012405 1776 TAD I (MPARAM+1 012406 0264 AND L40 012407 7650 SNA CLA /IF /S IS NOT SET, 012410 5775 JMP I (NEWFIL /ONLY ONE PROGRAM PER FILE. 012411 3332 LOADER, DCA LCKSUM 012412 4337 JMS GETFLD 012413 3020 DCA XFIELD 012414 1374 TAD (200 012415 3021 DCA ORIGIN /INITIALIZE FOR PROGRAM 012416 4773 JMS I (GETCH 012417 5775 JMP I (NEWFIL 012420 7450 SNA 012421 5216 JMP .-3 012422 1372 TAD (-200 /FIND SOME LEADER 012423 7640 SZA CLA 012424 5212 JMP LOADER+1 012425 4773 LEADER, JMS I (GETCH 012426 5775 JMP I (NEWFIL 012427 7450 SNA 012430 5212 JMP LOADER+1 012431 1372 TAD (-200 /FIND END OF LEADER 012432 7450 SNA 012433 5225 JMP LEADER 012434 7500 NEWWD, SMA /FIELD SETTING? 012435 5302 JMP FIELDW /YES 012436 1374 TAD (200 012437 3031 DCA WD1 /STORE 1ST CHAR 012440 4773 JMS I (GETCH 012441 5771 JMP I (BADINP 012442 3032 DCA WD2 /2D CHAR 012443 4773 JMS I (GETCH 012444 5771 JMP I (BADINP 012445 1372 TAD (-200 /IF THIS IS LEADER, WE HAVE THE CHECKSUM 012446 7450 SNA 012447 5200 JMP ITSOVR 012450 3030 DCA WD 012451 4273 JMS ASSEMB 012452 7420 SNL /ORIGIN OR DATA? 012453 5256 JMP DATAWD /DATA 012454 3021 DCA ORIGIN 012455 5265 JMP GETNXT / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 11 012456 7200 DATAWD, CLA 012457 1021 TAD ORIGIN 012460 0370 AND (17 012461 4767 JMS I (LOADWD /GO SET THE CORRECT BIT(S) 012462 6211 CDF 10 012463 2021 ISZ ORIGIN 012464 0040 L40, 40 012465 1031 GETNXT, TAD WD1 012466 1032 TAD WD2 012467 1332 TAD LCKSUM 012470 3332 DCA LCKSUM 012471 1030 TAD WD 012472 5234 JMP NEWWD 012473 0000 ASSEMB, 0 012474 1031 TAD WD1 012475 7106 CLL RTL 012476 7006 RTL 012477 7006 RTL 012500 1032 TAD WD2 012501 5673 JMP I ASSEMB 012502 1366 FIELDW, TAD (-32 012503 7450 SNA 012504 5333 JMP CTLZ 012505 1365 TAD (-46 012506 7510 SPA 012507 5325 JMP NOTXP 012510 3031 DCA WD1 012511 1031 TAD WD1 012512 0364 AND (7 012513 7640 SZA CLA 012514 5325 JMP NOTXP 012515 1031 TAD WD1 012516 0363 AND (70 012517 3020 DCA XFIELD 012520 4773 JMS I (GETCH 012521 5771 JMP I (BADINP 012522 1372 TAD (-200 012523 7440 SZA 012524 5234 JMP NEWWD 012525 7200 NOTXP, CLA 012526 1332 TAD LCKSUM 012527 7650 SNA CLA 012530 5211 JMP LOADER 012531 5771 JMP I (BADINP 012532 0000 LCKSUM, 0 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 12 012533 1332 CTLZ, TAD LCKSUM 012534 7640 SZA CLA 012535 5771 JMP I (BADINP 012536 5775 JMP I (NEWFIL / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 13 012537 0000 GETFLD, 0 /ROUTINE TO CHECK FOR OPTION 0-7 012540 3025 DCA C1 /AND RETURN LOWEST-NUMBERED VALUE 012541 1762 TAD I (MPARAM+2 012542 0361 AND (1774 012543 7450 SNA 012544 5737 JMP I GETFLD 012545 7006 RTL 012546 7004 RAL 012547 2025 ISZ C1 012550 7420 SNL 012551 5346 JMP .-3 012552 7240 CLA CMA 012553 1025 TAD C1 012554 7106 CLL RTL 012555 7004 RAL 012556 5737 JMP I GETFLD 012561 1774 012562 7645 012563 0070 012564 0007 012565 7732 012566 7746 012567 2033 012570 0017 012571 2660 012572 7600 012573 2234 012574 0200 012575 2200 012576 7644 012577 2666 2600 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 14 012600 0000 ERPCH, 0 012601 0377 AND (77 /GET LOW ORDER 6 BITS 012602 7440 SZA 012603 5214 JMP NZCHAR 012604 4227 JMS ERR FILMSG, 012605 4006 IFNDEF GERMAN < TEXT / FILE 0/> 012606 1114 012607 0540 012610 4040 012611 4060 012612 0000 IFDEF GERMAN < TEXT / DATEI 0/> 012613 5776 JMP I (BITMAP 012614 1375 NZCHAR, TAD (240 012615 0377 AND (77 012616 1375 TAD (240 012617 4422 JMS I OUT /PRINT 012620 5600 JMP I ERPCH /AND RETURN 012621 0000 LDRPCH, 0 012622 6046 TLS 012623 6041 TSF 012624 5223 JMP .-1 012625 7200 CLA 012626 5621 JMP I LDRPCH 012627 0000 ERR, 0 012630 7200 CLA 012631 6211 CDF 10 012632 1774 TAD I (FILPTR /ZERO CHAR GETS REPLACED BY "FILE #" 012633 1373 TAD (1122 /MAGIC NUMBER 012634 7130 CLL CML RAR /AC NOW CONTAINS " #" 012635 3211 DCA FILMSG+4 012636 1627 ERRLUP, TAD I ERR 012637 7450 SNA 012640 5247 JMP EOMESG /MESSAGE MUST BE EVEN NUMBER OF CHARS LONG 012641 7002 BSW 012642 4200 JMS ERPCH 012643 1627 TAD I ERR 012644 4200 JMS ERPCH 012645 2227 ISZ ERR 012646 5236 JMP ERRLUP 012647 4772 EOMESG, JMS I (ECRLF 012650 5627 JMP I ERR /RETURN / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 15 012651 4227 IOERR, JMS ERR 012652 1157 IFNDEF GERMAN < TEXT %I/O ERROR,%> 012653 1740 012654 4005 012655 2222 012656 1722 012657 5400 IFDEF GERMAN < TEXT %L/S FEHLER,%> 012660 4227 BADINP, JMS ERR 012661 0201 IFNDEF GERMAN < TEXT /BAD INPUT/> 012662 0440 012663 1116 012664 2025 012665 2400 IFDEF GERMAN < TEXT /SCHLECHTE/> 012666 4227 BADCKS, JMS ERR 012667 0201 IFNDEF GERMAN < TEXT /BAD CHECKSUM,/> 012670 0440 012671 0310 012672 0503 012673 1323 012674 2515 012675 5400 IFDEF GERMAN < TEXT /?PRUEFSUMME?,/> 012676 4227 NULERR, JMS ERR 012677 1617 IFNDEF GERMAN < TEXT /NO INPUT /> 012700 4011 012701 1620 012702 2524 012703 4040 012704 4040 012705 4040 012706 0000 IFDEF GERMAN < TEXT /NICHTS GELADEN/> 012707 5776 JMP I (BITMAP 012710 1371 OUTERR, TAD (LDRPCH 012711 3022 DCA OUT 012712 4227 JMS ERR 012713 0522 IFNDEF GERMAN < TEXT /ERROR ON OUTPUT DEVICE/> 012714 2217 012715 2240 012716 1716 012717 4017 012720 2524 012721 2025 012722 2440 012723 0405 012724 2611 012725 0305 012726 0000 IFDEF GERMAN < TEXT /AUS: -> SCHREIBFEHLER /> 012727 5770 JMP I (CALLCD 012730 4227 OERR, JMS ERR 012731 1617 IFNDEF GERMAN < TEXT %NO /I! %> / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 15-1 012732 4057 012733 1141 012734 4040 012735 0000 IFDEF GERMAN < TEXT %KEIN /I!%> 012736 5776 JMP I (BITMAP / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 16 012737 0000 CTINIT, 0 012740 7332 CLA CLL CML RTR 012741 3025 DCA C1 012742 1367 TAD (BITBUF 012743 3023 DCA B1 012744 3000 DCA 0 /STRAIGHT-8 CROCK 012745 6201 CTINLP, CDF 0 012746 7240 CLA CMA 012747 3423 DCA I B1 012750 6221 CDF20X, CDF 20 012751 7240 STA 012752 3423 DCA I B1 012753 5360 JMP CTFLD2 /*** THIS INSTR SKIPPED IF 8K PDP-8!!! 012754 3350 DCA CDF20X /DUE TO BUG IN EXTENDED MEMORY CONTROLLER 012755 1230 TAD ERR+1 /A CLA 012756 6211 CDF 10 012757 3766 DCA I (CDF20Y 012760 2023 CTFLD2, ISZ B1 012761 2025 ISZ C1 012762 5345 JMP CTINLP 012763 6211 CDF 10 012764 5737 JMP I CTINIT 012766 2056 012767 0200 012770 2005 012771 2621 012772 3342 012773 1122 012774 0033 012775 0240 012776 2000 012777 0077 3000 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 17 /GENERAL OUTPUT ROUTINES /JMS I (OOPEN INITIALIZES THE OUTPUT ROUTINE /ERROR RETURN AC>0 IF NO OUTPUT DEVICE/FILE, AC<0 IF ERROR /JMS I (OCHAR OUTPUTS A CHARACTER /ERROR RETURN OUTPUT ERROR OR TOO MUCH OUTPUT /JMS I (OCLOSE CLOSES THE OUTPUT FILE /ERROR RETURN FILE TOO LARGE TO BE CLOSED OR OUTPUT ERROR /JMS I (OTYPE RETURNS DCB WORD OF OUTPUT DEVICE IN AC /PARAMETERS NEEDED: /OUBUF= ADDRESS OF OUTPUT BUFFER /OUCTL= OUTPUT BUFFER CONTROL WORD (MUST BE NEGATIVE) /OUDEVH= ADDRESS OF PAGE FOR OUTPUT HANDLER /ASSUMES I/O MONITOR IS RESIDENT IN CORE. /CAN BE CALLED FROM ANY FIELD WITH BUFFERS IN ANY FIELD. 0000 OUFLD= OUCTL&70 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 18 013000 0000 OOPEN, 0 013001 7600 OU7600, 7600 013002 1344 TAD OU7601 013003 3226 DCA OUBLK 013004 1377 TAD (OUDEVH+1 013005 3221 DCA OUHNDL 013006 6211 CDF 10 013007 1776 TAD I (7604 013010 7450 SNA /IF OUTPUT HAS NO EXTENSION, 013011 1375 TAD (1520 /GIVE IT THE EXTENSION .MP 013012 3776 DCA I (7604 013013 1601 OUASGN, TAD I OU7600 /GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY 013014 0374 AND (17 /STRIP OFF ANY LENGTH INFO 013015 7450 SNA /IS THERE AN OUTPUT DEVICE? 013016 5245 JMP USETTY /NO - INHIBIT OUTPUT 013017 4773 JMS I (200 013020 0001 1 /ASSIGN, FETCH HANDLER 013021 0000 OUHNDL, 0 /OUTPUT DEVICE HANDLER ENTRY 013022 7402 HLT /HUH? 013023 1601 OUENTR, TAD I OU7600 013024 4773 JMS I (200 013025 0003 3 /ENTER OUTPUT FILE 013026 7601 OUBLK, 7601 /REPLACED WITH STARTING BLOCK 013027 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 013030 5235 JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH 013031 3345 DCA OUCCNT 013032 4772 JMS I (OUSETP 013033 6213 CDF CIF 10 /RESTORE CALLING FIELDS 013034 5600 JMP I OOPEN 013035 1601 OEFAIL, TAD I OU7600 013036 0371 AND (7760 /GET REQUESTED LENGTH 013037 7650 SNA CLA /WAS IT AN INDEFINITE REQUEST 013040 5770 JMP I (OUTERR /YES - CANNOT ENTER THE FILE 013041 1601 TAD I OU7600 013042 0374 AND (17 /MAKE THE REQUESTED LENGTH ZERO 013043 3601 DCA I OU7600 013044 5223 JMP OUENTR /TRY, TRY AGAIN 013045 3251 USETTY, DCA TTYNO 013046 4773 JMS I (200 013047 0012 12 013050 5524 5524 013051 0000 TTYNO, 0 013052 0000 0 013053 7402 HLT /NO TELETYPE! 013054 1251 TAD TTYNO 013055 3601 DCA I OU7600 013056 5213 JMP OUASGN / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 19 013057 0000 OUTDMP, 0 013060 3305 DCA OUCTLW /STORE THE CONTROL WORD 013061 6211 CDF 10 013062 1345 TAD OUCCNT 013063 7450 SNA 013064 2305 ISZ OUCTLW 013065 1226 TAD OUBLK 013066 3307 DCA OUREC /COMPUTE THE STARTING BLOCK NUMBER OF THIS TRANSFER 013067 1305 TAD OUCTLW 013070 7106 CLL RTL 013071 7006 RTL 013072 7006 RTL 013073 0374 AND (17 /COMPUTE THE NUMBER OF RECORDS 013074 1345 TAD OUCCNT /UPDATE THE NUMBER OF BLOCKS IN THE FILE 013075 3345 DCA OUCCNT 013076 1345 TAD OUCCNT 013077 7120 CLL CML 013100 1227 TAD OUELEN 013101 7660 SNL SZA CLA /DOES THE LENGTH EXCEED THE GIVEN LENGTH? 013102 5770 JMP I (OUTERR /YES - SIGNAL OUTPUT ERROR 013103 6202 CIF 0 013104 4621 JMS I OUHNDL 013105 0000 OUCTLW, 0 013106 6200 OUBUF 013107 0000 OUREC, 0 013110 5770 JMP I (OUTERR 013111 5657 JMP I OUTDMP / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 20 013112 0000 OCLOSE, 0 013113 6211 CDF 10 013114 4767 JMS I (OTYPE 013115 0366 AND (770 013116 1371 TAD (-PTP /CHECK FOR PAPER TAPE PUNCH OUTPUT 013117 7640 SZA CLA /AND SKIP ^Z OUTPUT IF TRUE 013120 1365 TAD (232 /OUTPUT A ^Z 013121 4764 JMS I (OCHAR 013122 4764 JMS I (OCHAR 013123 4764 FILLLP, JMS I (OCHAR 013124 4767 JMS I (OTYPE /GET TYPE OF OUTPUT DEVICE 013125 7710 SPA CLA 013126 1363 TAD (100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD 013127 1362 TAD (77 /BOUNDARY - OTHERWISE A HALF-RECORD 013130 0761 AND I (OUDWCT 013131 7640 SZA CLA /UP TO THE BOUNDARY YET? 013132 5323 JMP FILLLP /NO - FILL WITH ZEROS 013133 1761 TAD I (OUDWCT /GET DOUBLEWORD COUNT LEFT 013134 1373 TAD (OUCTL&3700 013135 7450 SNA /A FULL WRITE LEFT? 013136 5341 JMP NODUMP /YES - DON'T DO IT - THE ^Z IS ALREADY OUT 013137 1360 TAD (4000+OUFLD /PUT IN THE FIELD BITS AND THE WRITE BIT 013140 4257 JMS OUTDMP 013141 1601 NODUMP, TAD I OU7600 /GET THE DEVICE NUMBER 013142 4773 JMS I (200 013143 0004 4 /CLOSE THE OUTPUT FILE 013144 7601 OU7601, 7601 /POINTER TO THE OUTPUT FILE NAME 013145 0000 OUCCNT, 0 013146 5770 JMP I (OUTERR 013147 6213 CDF CIF 10 /RESTORE CALLING FIELDS 013150 5712 JMP I OCLOSE 013160 4000 013161 3264 013162 0077 013163 0100 013164 3210 013165 0232 013166 0770 013167 3265 013170 2710 013171 7760 013172 3200 013173 0200 013174 0017 013175 1520 013176 7604 013177 6601 3200 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 21 0200 OUCTMP= OUCTL&3700 013200 0000 OUSETP, 0 /ROUTINE TO INITIALIZE CHARACTER POINTERS 013201 1377 TAD (-OUCTMP /GET SIZE OF BUFFER IN DOUBLEWORDS 013202 3264 DCA OUDWCT 013203 1376 TAD (OUBUF 013204 3262 DCA OUPTR /INITIALIZE WORD POINTER 013205 1263 TAD OUJMPE 013206 3220 DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH 013207 5600 JMP I OUSETP 013210 0000 OCHAR, 0 013211 0375 AND (377 013212 3260 DCA OUTEMP 013213 6214 RDF 013214 1340 TAD CDIF0 013215 3256 DCA OUCRET 013216 6201 CDF OUFLD /SET DATA FIELD TO BUFFER'S FIELD 013217 2220 ISZ OUJMP /BUMP THE CHARACTER SWITCH 013220 7402 OUJMP, HLT /THREE WAY CHARACTER SWITCH 013221 5254 JMP OCHAR1 013222 5251 JMP OCHAR2 013223 1260 OCHAR3, TAD OUTEMP 013224 7106 CLL RTL 013225 7006 RTL 013226 0374 AND (7400 013227 1661 TAD I OUPOLD 013230 3661 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH 013231 1260 TAD OUTEMP /ORDER 4 BITS OF THIRD CHAR 013232 7112 CLL RTR 013233 7012 RTR 013234 7010 RAR 013235 0374 AND (7400 013236 1662 TAD I OUPTR 013237 3662 DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS 013240 1263 TAD OUJMPE 013241 3220 DCA OUJMP /RESET SWITCH 013242 2262 ISZ OUPTR 013243 2264 ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS 013244 5256 JMP OUCRET 013245 1373 TAD (OUCTL /LOAD CONTROL WORD FOR A FULL WRITE 013246 4772 JMS I (OUTDMP /DUMP THE BUFFER 013247 4200 JMS OUSETP /RE-INITIALIZE THE POINTERS 013250 5256 JMP OUCRET 013251 1262 OCHAR2, TAD OUPTR 013252 3261 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 013253 2262 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD 013254 1260 OCHAR1, TAD OUTEMP 013255 3662 DCA I OUPTR 013256 7402 OUCRET, HLT /RESTORE CALLING FIELDS 013257 5610 JMP I OCHAR / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 22 013260 0000 OUTEMP, 0 013261 0000 OUPOLD, 0 013262 0000 OUPTR, 0 013263 5220 OUJMPE, JMP OUJMP 013264 0000 OUDWCT, 0 013265 0000 OTYPE, 0 013266 6214 RDF 013267 1340 TAD CDIF0 013270 3277 DCA OTRTN 013271 6211 CDF 10 013272 1777 TAD I (7600 013273 0371 AND (17 013274 1370 TAD (DCB-1 013275 3260 DCA OUTEMP 013276 1660 TAD I OUTEMP 013277 7402 OTRTN, HLT 013300 5665 JMP I OTYPE 013301 0000 DOBITS, 0 013302 3024 DCA B3 013303 4767 JMS I (XCDF 013304 1411 TAD I LOADXR 013305 6211 CDF 10 013306 3023 DCA B1 013307 1027 BITLP, TAD COLCTR 013310 0366 AND (7 013311 7650 SNA CLA 013312 1365 TAD (240 /PUT A SPACE BEFORE EVERY GROUP OF 8 013313 7440 SZA 013314 4422 JMS I OUT 013315 1023 TAD B1 013316 7106 CLL RTL 013317 3023 DCA B1 013320 1023 TAD B1 013321 7064 CMA CML RAL 013322 0364 AND (3 013323 1363 TAD (260 013324 4422 JMS I OUT 013325 2027 ISZ COLCTR 013326 2024 ISZ B3 013327 5307 JMP BITLP 013330 5701 JMP I DOBITS / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 23 013331 0000 CTCTST, 0 013332 1362 TAD (200 013333 6034 KRS 013334 1361 TAD (-203 013335 7650 SNA CLA /IS THE TELETYPE BUFFER A ^C 013336 6031 KSF /WITH THE TELETYPE FLAG ON? 013337 5731 JMP I CTCTST /NO 013340 6203 CDIF0, CDF CIF 0 /YES - GO TO MONITOR 013341 5760 JMP I (7605 /THROUGH THE "DON'T SAVE CORE" RETURN 013342 0000 ECRLF, 0 013343 1357 TAD (215 013344 4422 JMS I OUT 013345 1356 ECRLFX, TAD (212 013346 4422 JMS I OUT 013347 5742 JMP I ECRLF 013356 0212 013357 0215 013360 7605 013361 7575 013362 0200 013363 0260 013364 0003 013365 0240 013366 0007 013367 3532 013370 7757 013371 0017 013372 3057 013373 4200 013374 7400 013375 0377 013376 6200 013377 7600 3400 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 24 013400 7240 BUILD, STA 013401 3331 DCA SOMTHN 013402 1377 TAD (-10 013403 3035 DCA FLDNO 013404 1233 TAD MAPSKP 013405 3217 DCA F4SKP /INITIALIZE ONCE-ONLY SKIP 013406 1035 FLDLP, TAD FLDNO 013407 0376 AND (4 013410 7106 CLL RTL 013411 1375 TAD (CDF 013412 3333 DCA CDFX /STORE A CDF 0 OR CDF 20 013413 1035 TAD FLDNO 013414 7012 RTR 013415 7730 SZL SPA CLA /IF FLDNO IS 0 OR 4, 013416 5224 JMP NOT04 /INITIALIZE LOADXR TO 0 013417 7410 F4SKP, SKP 013420 5232 F4FLAG, JMP MAPOVR /ZEROED IF INFO IN FIELD 2 013421 3217 DCA F4SKP 013422 1374 TAD (BITBUF-1 013423 3011 DCA LOADXR 013424 1373 NOT04, TAD (-1400 013425 4772 JMS I (ZTST 013426 7640 SZA CLA /FIELD EMPTY? 013427 5242 JMP NONEMP /NO 013430 2035 FLDISZ, ISZ FLDNO 013431 5206 JMP FLDLP 013432 2331 MAPOVR, ISZ SOMTHN /WAS THERE ANY INPUT? 013433 7410 MAPSKP, SKP 013434 5771 JMP I (NULERR 013435 4770 JMS I (ECRLF 013436 4770 JMS I (ECRLF 013437 4767 JMS I (OCLOSE 013440 6203 CDF CIF 0 013441 5766 JMP I (7605 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 25 013442 2331 NONEMP, ISZ SOMTHN /HAVE WE OUTPUT ANYTHING YET? 013443 5247 JMP NOTFST 013444 4765 JMS I (OOPEN /NO - OPEN OUTPUT FILE NOW 013445 1364 TAD (OCHAR 013446 3022 DCA OUT 013447 4763 NOTFST, JMS I (EJECT1 /PAGE HEADING 013450 1362 TAD (-100 013451 3330 DCA PAGECT 013452 1361 PAGELP, TAD (260 /PREPARE FOR KT8A 013453 4422 JMS I OUT 013454 1035 TAD FLDNO 013455 1360 TAD (270 013456 4422 JMS I OUT 013457 1330 TAD PAGECT 013460 0357 AND (70 013461 7112 CLL RTR 013462 7010 RAR 013463 1361 TAD (260 /OUTPUT LOC (HIGH 3 DIGITS) AT LEFT MARGIN 013464 4422 JMS I OUT 013465 1330 TAD PAGECT 013466 0356 AND (7 013467 1361 TAD (260 013470 4422 JMS I OUT 013471 1361 TAD (260 013472 4422 JMS I OUT 013473 1361 TAD (260 013474 4422 JMS I OUT 013475 3027 DCA COLCTR 013476 1355 TAD (-14 013477 4772 JMS I (ZTST /IF ALL 64 WORDS ARE ZERO, 013500 7650 SNA CLA 013501 5314 JMP NO1ND0 /DON'T PRINT LINE 013502 1354 TAD (-4 013503 3331 DCA SOMTHN 013504 1353 DOBTLP, TAD (-6 013505 4752 JMS I (DOBITS /OUTPUT 4 TRIPLEWORDS FOR 64 LOCATIONS 013506 1353 TAD (-6 013507 4752 JMS I (DOBITS 013510 1354 TAD (-4 013511 4752 JMS I (DOBITS 013512 2331 ISZ SOMTHN 013513 5304 JMP DOBTLP 013514 4770 NO1ND0, JMS I (ECRLF 013515 7201 CLA IAC 013516 0330 AND PAGECT 013517 7640 SZA CLA 013520 4770 JMS I (ECRLF /SKIP A LINE EVERY PDP-8 PAGE 013521 1330 TAD PAGECT 013522 1351 TAD (41 013523 7650 SNA CLA 013524 4763 JMS I (EJECT1 /NEW PAGE AT LOCATION 4000 013525 2330 ISZ PAGECT 013526 5252 JMP PAGELP 013527 5230 JMP FLDISZ / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 26 013530 0000 PAGECT, 0 013531 0000 SOMTHN, 0 013532 0000 XCDF, 0 013533 7402 CDFX, HLT 013534 5732 JMP I XCDF 013535 0000 FOURCR, 0 013536 4770 JMS I (ECRLF 013537 1354 TAD (-4 013540 3345 DCA EJKTMP 013541 4770 JMS I (ECRLF 013542 2345 ISZ EJKTMP 013543 5750 JMP I (ECRLFX 013544 5735 JMP I FOURCR 013545 0000 EJKTMP, 0 013550 3345 013551 0041 013552 3301 013553 7772 013554 7774 013555 7764 013556 0007 013557 0070 013560 0270 013561 0260 013562 7700 013563 3600 013564 3210 013565 3000 013566 7605 013567 3112 013570 3342 013571 2676 013572 2337 013573 6400 013574 0177 013575 6201 013576 0004 013577 7770 3600 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 27 0005 VV1=VERSION%12 0062 VV2=VV1^12 013600 0000 EJECT1, 0 013601 1035 TAD FLDNO 013602 1377 TAD (6070 /PREPARE FOR KT8A 013603 3225 DCA FLDNUM 013604 4776 JMS I (OTYPE /TTY? 013605 7650 SNA CLA 013606 5354 JMP EJKTTY /YES 013607 1375 TAD (214 /FORM FEED 013610 4422 JMS I OUT 013611 4774 PRTFLD, JMS I (ERR 013612 4002 TEXT / BITMAP V/ 013613 1124 013614 1501 013615 2040 013616 4026 013617 0000 3617 *.-1 013617 6560 VERLOC, 60+VV1^100+60+VERSION-VV2 /V40, ETC... 013620 3040 SUBVER&77^100+40 /A , ETC... 013621 4040 IFNDEF GERMAN < TEXT / FIELD /> 013622 0611 013623 0514 013624 0440 013625 0000 IFDEF GERMAN < TEXT / FELD /> 3625 *.-1 013625 4060 FLDNUM, TEXT / 0/ 013626 0000 013627 4773 JMS I (ECRLF / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 28 013630 4774 JMS I (ERR 013631 4040 TEXT / 00000000 11111111 22222222 33333333/ 013632 4040 013633 4040 013634 4060 013635 6060 013636 6060 013637 6060 013640 6040 013641 6161 013642 6161 013643 6161 013644 6161 013645 4062 013646 6262 013647 6262 013650 6262 013651 6240 013652 6363 013653 6363 013654 6363 013655 6363 013656 0000 3656 *.-1 013656 4064 TEXT / 44444444 55555555 66666666 77777777/ 013657 6464 013660 6464 013661 6464 013662 6440 013663 6565 013664 6565 013665 6565 013666 6565 013667 4066 013670 6666 013671 6666 013672 6666 013673 6640 013674 6767 013675 6767 013676 6767 013677 6767 013700 0000 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 29 013701 4774 JMS I (ERR 013702 4040 TEXT / 01234567 01234567 01234567 01234567/ 013703 4040 013704 4040 013705 4060 013706 6162 013707 6364 013710 6566 013711 6740 013712 6061 013713 6263 013714 6465 013715 6667 013716 4060 013717 6162 013720 6364 013721 6566 013722 6740 013723 6061 013724 6263 013725 6465 013726 6667 013727 0000 3727 *.-1 013727 4060 TEXT / 01234567 01234567 01234567 01234567/ 013730 6162 013731 6364 013732 6566 013733 6740 013734 6061 013735 6263 013736 6465 013737 6667 013740 4060 013741 6162 013742 6364 013743 6566 013744 6740 013745 6061 013746 6263 013747 6465 013750 6667 013751 0000 013752 4773 JMS I (ECRLF 013753 5600 JMP I EJECT1 / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 30 013754 4772 EJKTTY, JMS I (FOURCR 013755 4774 JMS I (ERR 013756 5555 TEXT /----------/ 013757 5555 013760 5555 013761 5555 013762 5555 013763 0000 013764 4772 JMS I (FOURCR 013765 5211 JMP PRTFLD 013772 3535 013773 3342 013774 2627 013775 0214 013776 3265 013777 6070 4000 PAGE / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 31 4000 BUFFER=. 0001 FIELD 1 2000 *2000 $-$-$ / OS8 BINARY MAP (BITMAP) V50 PAL8-V50X 15-JUN-87 PAGE 32 ASSEMB 2473 GETFLD 2537 OUCTMP 0200 BADCKS 2666 GETNXT 2465 OUDEVH 6600 BADINP 2660 HANDLR 2217 OUDWCT 3264 BITBUF 0200 INDEVH 7200 OUELEN 3027 BITLP 3307 IOERR 2651 OUENTR 3023 BITMAP 2000 ITSOVR 2400 OUFLD 0000 BITTBL 2111 JMPGET 2300 OUHNDL 3021 BUFFER 4000 JMPX 2240 OUJMP 3220 BUILD 3400 JSBITS 7746 OUJMPE 3263 B1 0023 LCKSUM 2532 OUPOLD 3261 B3 0024 LDBIT 2107 OUPTR 3262 CALLCD 2005 LDOFST 2106 OUREC 3107 CDCOOL 2022 LDRPCH 2621 OUSETP 3200 CDFX 3533 LD7400 2026 OUT 0022 CDF20X 2750 LEADER 2425 OUTDMP 3057 CDF20Y 2056 LOADER 2411 OUTEMP 3260 CDIF0 3340 LOADWD 2033 OUTERR 2710 CHAR1 2322 LOADXR 0011 OU7600 3001 CHAR2 2316 LTEMP 2110 OU7601 3144 CHCNT 2333 L40 2464 PAGECT 3530 CHPTR 2334 MAPOVR 3432 PAGELP 3452 CHTMP 2335 MAPSKP 3433 PBUFFR 2263 COLCTR 0027 MIFILE 7617 PRTFLD 3611 CTCTST 3331 MPARAM 7643 PTP 0020 CTFLD2 2760 NEWFIL 2200 RCDCNT 2336 CTINIT 2737 NEWWD 2434 RCTL 2262 CTINLP 2745 NEXTCD 2002 RECNO 2264 CTLZ 2533 NOCD 2010 REOF 2332 C1 0025 NODUMP 3141 RERROR 2326 DATAWD 2456 NONEMP 3442 SOMTHN 3531 DCB 7760 NOTFST 3447 SUBVER 0330 DOBITS 3301 NOTXP 2525 TTYNO 3051 DOBTLP 3504 NOT04 3424 USETTY 3045 ECRLF 3342 NO1ND0 3514 VERLOC 3617 ECRLFX 3345 NULERR 2676 VERSIO 0062 EJECT1 3600 NZCHAR 2614 VV1 0005 EJKTMP 3545 OCHAR 3210 VV2 0062 EJKTTY 3754 OCHAR1 3254 WD 0030 EOMESG 2647 OCHAR2 3251 WD1 0031 ERPCH 2600 OCHAR3 3223 WD2 0032 ERR 2627 OCLOSE 3112 XCDF 3532 ERRLUP 2636 OEFAIL 3035 XFIELD 0020 FIELDW 2502 OERR 2730 XR 0010 FILLLP 3123 ONCE 2032 ZTST 2337 FILMSG 2605 OOPEN 3000 FILPTR 0033 ORIGIN 0021 FLDISZ 3430 OTRTN 3277 FLDLP 3406 OTYPE 3265 FLDNO 0035 OUASGN 3013 FLDNUM 3625 OUBLK 3026 FOURCR 3535 OUBUF 6200 F4FLAG 3420 OUCCNT 3145 F4SKP 3417 OUCRET 3256 GCHCOM 2323 OUCTL 4200 GETCH 2234 OUCTLW 3105 ERRORS DETECTED: 0 LINKS GENERATED: 0