File: OCOM50.LS of Disk: V50/Source/Source-Listing-PAL-2
(Source file text)
/ OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 1 / OCTAL COMPARE V50 / / / / / /WVDM, ZUERICH, OCT-1980 / / OCOMP.PA 78.04.03 OCTAL COMPARE AND DUMP / / BY: / DENNIS MCGHIE / DEPT. OF CARDIOVASCULAR SURGERY / STANFORD MEDICAL CENTER / STANFORD, CALIF. 94305 / 1978 APRIL 3 MODIFIED FOR OS/8 V3D (FIXED CCB MASK) / 2ND INPUT DEVICE WITH NO FILENAME NOW USES 1ST FILENAME / TIM CLARKE MENLO COMPUTER ASSOCIATES / BOX 298 / MENLO PARK, CALIFORNIA 94025 / / WVDMARK GERMAN MESSAGES / / GERMAN=1 NOT ANYMORE / / OCOMP IS AN OS/8 UTILITY PROGRAM USED TO / COMPARE OR DUMP OS/8 FILES. BOTH MASKING AND / SEARCHING ARE ALLOWED. THE MASK IS ENTERED BY / THE "=" OPTION (ONLY THE LEAST SIGNIFICANT 12 / BITS ARE USED) AND FOR CONVENIENCE, A MASK OF 0000 / IS CHANGED TO 7777 UNLESS /S IS SPECIFIED. / THE SEARCH FEATURE IS SPECIFIED BY THE "/S" OPTION. / ALL OUTPUT IS IN OCTAL. / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 2 / A. THE THREE MODES OF OPERATION ARE: / / 1. COMPARE: TWO INPUT FILES SPECIFIED ARE / COMPARED WORD-FOR-WORD UNDER THE MASK, / ANY DIFFERENCES CAUSE THE OCTAL VALUE / OF THE UNMATCHED WORDS TO BE PUT IN THE / OUTPUT FILE. / / 2. DUMP: ONLY ONE INPUT FILE IS SPECIFIED AND / IT IS DUMPED (IN OCTAL) TO THE OUTPUT FILE. / IF A MASK IS SPECIFIED, ONLY THOSE WORDS / WITH ALL MASKED BITS IN THE 1 STATE ARE / OUTPUT. / / 3. SEARCH: ONLY ONE INPUT FILE IS SPECIFIED, / ALONG WITH "/S". ONLY THOSE WORDS EQUAL TO / THE MASK ARE DUMPED TO THE OUTPUT FILE. / / / B. IN ADDITION, IF /I IS SPECIFIED, THE ABOVE / MODES ARE AVAILABLE, BUT THE INPUT FILES ARE / ASSUMED TO BE "SAVE" FILES. THE CCB IS DECODED / AND COMPARISONS ARE BY MEMORY ADDRESS, RATHER / THAN RELATIVE BLOCK NUMBER. / / / C. IF /C IS SPECIFIED IN ADDITION TO /I, THE / DECODED CCB WILL BE PRINTED AS PART OF THE TITLE. / / / D. DIFFERENCES: A SPECIAL MODE IS AVAILABLE WHEN /D / IS SPECIFIED. IN THIS CASE, TWO FILES ARE / CHECKED FOR DIFFERENCES ONLY. / / OUTPUT WILL BE EITHER / "FILES SAME" / OR "FILES DIFFERENT" / / / E. IF /F IS SPECIFIED, ANY BLOCK WHICH PRODUCES / OUTPUT WILL HAVE A FORM FEED CHARACTER PRECEEDING / ITS HEADER LINE. THIS MODE IS USEFUL WHEN THE / OUTPUT IS TO A SCOPE. / / / F. IF /T IS SPECIFIED, THE OUTPUT FORMAT IS CHANGED / SO THAT IT WILL FIT ON THE 72 CHARACTER LINE OF / A TELETYPE. / / / G. A HEADER LINE IS NORMALLY PRINTED IN THE OUTPUT FILE / UNLESS THE OUTPUT IS TO TTY:. /H WILL CAUSE THE / HEADER TO BE PRINTED EVEN IF OUTPUT IS TO TTY: / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 3 / / OTHER PROGRAM ACTIONS: / A. SPECIFYING NO INPUT FILE WILL CAUSE A RETURN / TO THE COMMAND DECODER. IF A SECOND INPUT / DEVICE IS SPECIFIED WITHOUT A FILENAME, THE / FILENAME FROM THE FIRST INPUT SPECIFICATION / IS USED. / B. "USER ERROR ..." MESSAGES WILL BE OUTPUT / UNDER THE FOLLOWING CONDITIONS: / ERROR CONDITION / 1 MORE THAN TWO INPUT FILES. / 2 OUTPUT FILE TOO SMALL. / 3 OUTPUT HANDLER FETCH OR ENTER FAILED. / 4 INPUT HANDLER FETCH OR LOOKUP FAILED. / 5 INPUT FILE #1 ERROR. / 6 INPUT FILE #2 ERROR. / 7 OUTPUT FILE ERROR. / 8 OUTPUT FILE CLOSE FAILED. / 9 INVALID CCB IN /I INPUT FILE. / C. "NO OUTPUT" OR "NO DIFFERENCES" WILL BE PUT / IN THE OUTPUT FILE IF NOTHING ELSE IS OUTPUT. / D. THE DEFAULT INPUT EXTENSION IS ".SV" IF /I / OTHERWISE NO DEFAULT IS APPLIED. / E. THE DEFAULT OUTPUT DEVICE IS TTY: / F. THE DEFAULT OUTPUT EXTENSION IS ".LS". / COMMAND DECODER USAGE: / .R OCOMP / *OFILE < IFILE1 [,IFILE2] [(OPTIONS)] [=NNNN] / ITEMS IN [...] ARE OPTIONAL. / ASSEMBLY INFORMATION: / .R PAL8 / *OCOMP<OCOMP/L$ / .SAVE ... OCOMP;12000=6403 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 4 / / PAGE 0 DEFINITIONS: 0000 IWD1= 0 / INPUT 1 BUFFER PTR 0001 IWD2= 1 / INPUT 2 BUFFER PTR 0002 DUMPSW= 2 / = 0 IF COMPARE MODE, = 1 IF DUMP MODE 0003 DUMP2S= 3 / = 1 IF FILE 2 IS LONGER THAN FILE 1 0004 RELBLK= 4 / RELATIVE BLOCK NUMBER 0005 RELBK2= 5 / RELATIVE BLOCK NUMBER (FILE 2), IF /I 0006 INH1= 6 / INPUT HANDLER 1 ENTRY 0010 XR10= 10 0011 XR11= 11 0012 XR12= 12 0013 XR13= 13 0014 XR14= 14 0020 INH2= 20 / INPUT HANDLER 2 ENTRY 0021 SLASHD= 21 / = 400 IF /D, = 0 OTHERWISE 0022 SLASHI= 22 / = 10 IF /I, = 0 OTHERWISE 0023 OUTH= 23 / OUTPUT HANDLER ENTRY 0024 OCNT= 24 / OUTPUT BUFFER TRIPLET COUNTER 0025 TMP= 25 0026 IBLEN= 26 / INPUT BUFFER LENGTH IN BLKS 0027 EBCNT= 27 / EMPTY BUFFER CTR 0030 LPBLK= 30 / LINES PER BLOCK (100 OR 40) 0031 NGRPS= 31 / # GROUPS PER LINE COUNTER 0032 SEGSIZ= 32 / SEGMENT SIZE = # CHARS IN NGRPS 0033 PGPTR1= 33 / PAGE TABLE POINTER FILE 1 0034 PGPTR2= 34 / PAGE TABLE POINTER FILE 2 0035 ANYOUT= 35 / = 0 IF NOTHING OUTPUT, OTHERWISE = 1 0036 CHAIN= 36 / CHAIN SWITCH / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 5 / 00000-01777 (COMMAND DECODER) / 01200- (CD LINE BUFFER) 2000 IBUF1= 2000 / 02000-03777 (INPUT BUFFER, FILE 1) 4000 IBUF2= 4000 / 04000-05777 (INPUT BUFFER, FILE 2) / 06000-06177 (UNUSED) 6201 OHAND= 6201 / 06200-06577 (OUTPUT HANDLER PAGES) 6601 IHAND1= 6601 / 06600-07177 (INPUT 1 HANDLER PAGES) 7201 IHAND2= 7201 / 07200-07577 (INPUT 2 HANDLER PAGES) / 10000-11777 (USR & SCRATCH STORAGE) 1400 LBUF1= 1400 / 11400-11577 (LINE BUFFER 1) 1600 LBUF2= 1600 / 11600-11777 (LINE BUFFER 2) / 12000-15377 (PROGRAM) 5400 OBUF= 5400 / 15400-16377 (OUTPUT BUFFER) 6400 PGTAB1= 6400 / 16400-16777 (/I PAGE TABLE 1) 7000 PGTAB2= 7000 / 17000-17377 (/I PAGE TABLE 2) / 17400-17577 (PROGRAM) 0200 USR= 200 7240 M1C= STA 7344 M2C= STA CLL RAL 7346 M3C= STA CLL RTL 7201 P1C= CLA IAC 7326 P2C= STL CLA RTL 7332 P2000C= STL CLA RTR / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 6 0001 FIELD 1 2000 *2000 012000 1377 OCSTA, TAD (200 / RUN ENTRY (OFFSET FOR CD BUFFER) 012001 3036 DCA CHAIN / CHAIN ENTRY 012002 1036 TAD CHAIN 012003 7650 SNA CLA 012004 5210 JMP NODEC / FROM CCL, NO DECODE 012005 4777 JMS I (USR / CALL USR 012006 0005 5 / DECODE 012007 5200 5200 / SPECIAL MODE 012010 1701 NODEC, TAD I A7605 012011 7650 SNA CLA 012012 5776' JMP ALT / NO INPUT FILE, CHECK FOR ALT MODE 012013 1775 TAD I (7617 012014 7640 SZA CLA / A 3RD INPUT SPECIFIED? 012015 4774' JMS ERROR1 / YES-BAD NEWS 012016 4773' JMS PAGSET / SET PAGE SIZE PARAMS (USE /T AS SWITCH) / ALSO INIT OUTPUT BUFFER PARAMS 012017 1772 TAD I (7643 012020 0371 AND (10 / MASK FOR /I 012021 3022 DCA SLASHI / 0=NOT SET, 10=SET 012022 4770' JMS DEFALT / GO SET FILE DEFAULTS 012023 1772 TAD I (7643 012024 0367 AND (400 / MASK FOR /D 012025 3021 DCA SLASHD / 0=NOT SET, 400=SET / INITIALIZE THE SEARCH/COMPARE MASK 012026 1766 TAD I (7646 / GET LOW 12 BITS OF "=" 012027 7450 SNA / USE AS IS IF NON-ZERO 012030 7040 PCMA, CMA / OTHERWISE USE ALL 1'S 012031 3765' DCA MASK / SET UP THE MASK 012032 1766 TAD I (7646 012033 3764' DCA DMASK / ALSO SET UP THE DUMP AND SEARCH MASK 012034 1230 TAD PCMA 012035 3763' DCA CHP1 012036 1362 TAD (DMASK&177!200 / "AND DMASK" 012037 3761' DCA CHP3 012040 1360 TAD (4410 012041 3757' DCA OFUNWD / OUTPUT FUNCTION WORD IN WRITE 012042 7326 P2C 012043 3756' DCA WBLN / OUTPUT BUFFER LENGTH 012044 1355 TAD (OHAND 012045 3251 DCA OHANA / RESET FETCH HANDLER WORD 012046 1754 TAD I (7600 / GET OUTPUT DEVICE NUMBER 012047 4777 JMS I (USR / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 6-1 012050 0001 1 / FETCH 012051 6201 OHANA, OHAND / BECOMES ENTRY POINT 012052 4753' JMS ERROR3 / FETCH FAILED 012053 1251 TAD OHANA 012054 3023 DCA OUTH / OUTPUT HANDLER ENTRY ADDRES ON PAGE 0 012055 1352 TAD (7601 012056 3262 DCA STBLK / RESET NAME PTR 012057 1754 TAD I (7600 / REGET DEVICE NUMBER 012060 4777 JMS I (USR 012061 0003 3 / ENTER 012062 7601 STBLK, 7601 / NAME POINTER (BECOMES START BLOCK) 012063 0000 MLEN, 0 / BECOMES -LENGTH OF FILE 012064 4753' JMS ERROR3 / ENTER FAILED 012065 1262 TAD STBLK 012066 3751' DCA OBLK / CURRENT OUTPUT BLOCK # 012067 3750' DCA FULLSW / CLEAR OUTPUT FILE FULL SWITCH 012070 7240 M1C 012071 3027 DCA EBCNT / FORCE READ TO START 012072 3035 DCA ANYOUT 012073 3004 DCA RELBLK 012074 3002 DCA DUMPSW 012075 3003 DCA DUMP2S 012076 4747' JMS FLGET / OPEN INPUT 1 012077 6601 IHAND1 012100 0006 INH1 012101 7605 A7605, 7605 012102 2270 BLEFT1 012103 3222 INBLK1 012104 3227 EBLK1 012105 3746' DCA ISTB1 012106 1745 TAD I (7612 / GET 2ND INPUT DEVICE NUMBER 012107 7640 SZA CLA / SPECIFIED? 012110 5744' JMP TWOIN / YES / ONLY ONE INPUT FILE WAS SPECIFIED 012111 2002 ISZ DUMPSW / SET DUMP SWITCH 012112 1031 TAD NGRPS 012113 7104 CLL RAL / TWICE AS MANY IF DUMP MODE 012114 3031 DCA NGRPS 012115 1371 TAD (10 012116 3026 DCA IBLEN / DOUBLE LENGTH OF INPUT BUFFER 012117 7332 P2000C 012120 3743' DCA IFNWD1 / NEW FUNCTION WORD FOR READ (20 PGS, NOT 10) 012121 1030 TAD LPBLK 012122 7130 STL RAR / NEG DIV BY 2 012123 3030 DCA LPBLK / HALF AS MANY LINES PER BLOCK 012124 1742 TAD I (7644 / CHECK FOR /S 012125 0341 AND (40 012126 7650 SNA CLA 012127 5740' JMP DOIT 012130 2763' ISZ CHP1 / /S CHANGES THE CMA TO A CIA / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 6-2 012131 1337 TAD (DMASK&177!1200 / "TAD DMASK" 012132 3761' DCA CHP3 / ALSO CHANGES THE AND TO A TAD 012133 5740' JMP DOIT 012137 1261 012140 2214 012141 0040 012142 7644 012143 3220 012144 2200 012145 7612 012146 3353 012147 4241 012150 4232 012151 4221 012152 7601 012153 5125 012154 7600 012155 6201 012156 4231 012157 4217 012160 4410 012161 2664 012162 0261 012163 2663 012164 2661 012165 2660 012166 7646 012167 0400 012170 4400 012171 0010 012172 7643 012173 5047 012174 5127 012175 7617 012176 2453 012177 0200 2200 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 7 / SECOND INPUT SPECIFIED 012200 1377 TWOIN, TAD (1000 012201 3776' DCA IFNWD1 012202 1375 TAD (4 012203 3026 DCA IBLEN / INPUT BUFFER LENGTH (4 BLOCKS) 012204 4774' JMS FLGET / OPEN INPUT 2 012205 7201 IHAND2 012206 0020 INH2 012207 7612 A7612, 7612 012210 2271 BLEFT2 012211 3252 INBLK2 012212 3257 EBLK2 012213 3773' DCA ISTB2 012214 1022 DOIT, TAD SLASHI / /I SWITCH 012215 7650 SNA CLA / SET? 012216 5272 JMP DOLOOP-1 / NO-INITIALIZATION FINISHED 012217 4772' JMS CCBZER / ZERO THE PAGE TABLES 012220 4771' JMS READ1 / FILL 1ST BUFFER 012221 4770' JMS MOVEBL / MOVE A BLOCK 012222 1777 IBUF1-1 / FROM HERE 012223 5377 OBUF-1 / TO HERE 012224 4767' JMS CCBDEC / DECODE FILE 1 CCB 012225 4734 CCBG1-1 / POINT TO FILE 1 PARAMETER TABLE 012226 1002 TAD DUMPSW / ONLY ONE FILE SWITCH 012227 7640 SZA CLA / SET? 012230 5237 JMP DOLI / YES-ONLY ONE FILE 012231 4766' JMS READ2 012232 4770' JMS MOVEBL 012233 3777 IBUF2-1 012234 5777 OBUF+400-1 012235 4767' JMS CCBDEC / DECODE 2ND CCB 012236 4742 CCBG2-1 / POINT TO FILE 2 PARAMETER TABLE 012237 4765' DOLI, JMS TITLE / PRINT RUN TITLE 012240 1764 TAD I (7643 012241 0377 AND (1000 / MASK FOR /C 012242 7640 SZA CLA / SET? 012243 4763' JMS CCBOUT / YES-PRINT CCB(S) 012244 1362 TAD (PGTAB1 012245 3033 DCA PGPTR1 / PAGE TABLE POINTER (FILE 1) 012246 1361 TAD (PGTAB2 012247 3034 DCA PGPTR2 / PAGE TABLE POINTER (FILE 2) 012250 1360 TAD (-200 012251 3267 DCA PGCTR / 400 PAGES IN MAX MACHINE 012252 4757' DOLIL, JMS SETSW / SET DUMPSW & DUMP2S ACCORDING TO PGPTRS / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 7-1 012253 4756' JMS READIN / SETUP BUFFER PTR(S) IF PAGES USED 012254 4757' JMS SETSW / CALL AGAIN TO SAVE A WORD 012255 4755' JMS DOUT / SEND A "PAGE" 012256 2033 ISZ PGPTR1 / BUMP FOR 2ND PAGE OF PAIR 012257 2034 ISZ PGPTR2 012260 4757' JMS SETSW / CHECK SWITCHES AGAIN 012261 4755' JMS DOUT / IT IS USED, OUTPUT A "CORE PAGE" 012262 2033 ISZ PGPTR1 / BUMP PTRS AGAIN 012263 2034 ISZ PGPTR2 012264 2267 ISZ PGCTR / SCANNED ALL PAGES? 012265 5252 JMP DOLIL / NO 012266 5312 JMP FINISH / YES 012267 0000 PGCTR, 0 / PAGE TABLE PAIR COUNTER 012270 0000 BLEFT1, 0 / BLOCKS LEFT IN INPUT 1 012271 0000 BLEFT2, 0 / BLOCKS LEFT IN INPUT 2 012272 4765' JMS TITLE / PRINT RUN TITLE 012273 4756' DOLOOP, JMS READIN / COPE WITH BUFFER FILLING 012274 4755' JMS DOUT / OUTPUT THE BLOCK 012275 2004 ISZ RELBLK / BUMP RELATIVE BLK # 012276 2271 ISZ BLEFT2 / BUMP INPUT 2 LENGTH CTR 012277 5304 JMP DO3 / NOT EMPTY YET 012300 1003 TAD DUMP2S / 2ND FILE EMPTY, CHECK IF DUMPING 012301 7640 SZA CLA / 2ND DUMP MODE? 012302 5312 JMP FINISH / YES-THRU 012303 2002 ISZ DUMPSW / NO-GO TO 1ST DUMP MODE 012304 2270 DO3, ISZ BLEFT1 / BUMP INPUT 1 LENGTH CTR 012305 5273 JMP DOLOOP / GO BACK & DO MORE 012306 2003 ISZ DUMP2S / SET 2ND DUMP SWITCH 012307 1002 TAD DUMPSW / 1ST FILE EMPTY 012310 7650 SNA CLA / DUMP MODE ALREADY? 012311 5273 JMP DOLOOP / NO-KEEP GOING / YES-FINISH OUTPUT & CLOSE 012312 1021 FINISH, TAD SLASHD / GET /D SWITCH 012313 7650 SNA CLA / SET? 012314 5322 JMP FINI / NO-NORMAL 012315 1035 TAD ANYOUT / YES-SHORTENED OUTPUT 012316 7640 SZA CLA / ANY DIFFERENCES? 012317 1354 TAD (MESNC-MESND/ "DIFFERENT" 012320 1353 TAD (MESND-1 / "SAME" 012321 5331 JMP FINC 012322 1035 FINI, TAD ANYOUT / NOT 0 IF ANYTHING OUTPUT 012323 7640 SZA CLA / ANYTHING? 012324 5752' JMP DONE / YES-DONE 012325 1607 TAD I A7612 / 2ND INPUT DEVICE # 012326 7650 SNA CLA 012327 1354 TAD (MESNA-MESNB/ "NO OUTPUT" 012330 1351 TAD (MESNB-1 / "NO DIFFERENCES" 012331 4750' FINC, JMS PUTSTR 012332 4747' JMS CRLF 012333 5752' JMP DONE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 7-2 012347 3623 012350 3641 012351 2734 012352 2412 012353 2751 012354 7773 012355 3000 012356 3260 012357 2460 012360 7600 012361 7000 012362 6400 012363 4057 012364 7643 012365 4462 012366 3230 012367 4600 012370 2525 012371 3200 012372 4751 012373 3354 012374 4241 012375 0004 012376 3220 012377 1000 2400 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 8 012400 0000 IF1, ZBLOCK 12 / INPUT FILE NAMES 2405 IF2= IF1+5 / FOR .SV DEFAULT EMULATION 012412 1377 DONE, TAD (232 / "^Z (EOF) 012413 4776' JMS PACK / TO OUTPUT FILE BUFFER 012414 1024 TAD OCNT / BUFFER CHAR COUNTER 012415 1375 TAD (1400 / RESET VALUE IS -1400 012416 7450 SNA / AT START? 012417 5240 JMP DONE2 / YES-GO CLOSE NOW 012420 1374 TAD (-600 / NO-WRITE LAST BUFFER 012421 7740 SMA SZA CLA 012422 7001 IAC 012423 7001 IAC 012424 3773' DCA WBLN 012425 1773' TAD WBLN 012426 7112 CLL RTR;RTR;RTR 012427 7012 012430 7012 012431 1372 TAD (4010 012432 3771' DCA OFUNWD / NEW FUNCTION WORD FOR CALL TO OUTPUT HANDLER 012433 4776' DONE1, JMS PACK / KEEP PACKING 0'S UNTIL BUFFER IS DUMPED 012434 1024 TAD OCNT 012435 1375 TAD (1400 / RESET VALUE IS -1400 012436 7640 SZA CLA / DUMPED BUFFER YET? 012437 5233 JMP DONE1 / NO-FILL WITH 0'S 012440 1770' DONE2, TAD STBLK 012441 7041 CIA 012442 1767' TAD OBLK 012443 3251 DCA NOUT / # BLOCKS IN OUTPUT FILE 012444 3007 DCA 7 / FORCE USR TO REREAD DIRECTORY 012445 1766 TAD I (7600 / GET OUTPUT DEVICE # 012446 4765 JMS I (USR 012447 0004 4 / CLOSE 012450 7601 7601 / NAME PTR 012451 0000 NOUT, 0 / # BLKS IN OUTPUT 012452 4764' JMS ERROR8 / CLOSE FAILED!! 012453 1763 ALT, TAD I (7642 / GET ALT MODE BIT 012454 7700 SMA CLA / ALT MODE IS BIT 0 012455 5762' JMP OCSTA / NOT SET, CALL CD AGAIN 012456 6203 GIVEUP, CDF CIF 0 012457 5766 JMP I (7600 / RETURN TO OS/8 / SET IMAGE FILE SWITCHES / RETURN TO CALL+1 IF EITHER SWITCH SET / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 8-1 012460 0000 SETSW, 0000 012461 3002 DCA DUMPSW / CLEAR SWITCHES FOR CHECK 012462 3003 DCA DUMP2S 012463 1433 TAD I PGPTR1 / CHECK FOR FILE 1 PAGE 012464 7650 SNA CLA / USED? 012465 2003 ISZ DUMP2S / NO-BUMP 2 ONLY SWITCH 012466 1434 TAD I PGPTR2 / CHECK FOR FILE 2 PAGE 012467 7650 SNA CLA / USED? 012470 2002 ISZ DUMPSW / NO-BUMP 1 ONLY SWITCH 012471 7344 M2C 012472 1002 TAD DUMPSW 012473 1003 TAD DUMP2S 012474 7650 SNA CLA / EITHER PAGE SWITCH SET? 012475 2260 ISZ SETSW / NEITHER PAGE USED, SKIP CALL+1 012476 5660 JMP I SETSW / INITIALIZE INPUT BUFFER PARAMETERS 012477 0000 IINIT, 0000 012500 1362 TAD (IBUF1 012501 3000 DCA IWD1 / INPUT 1 WORD PTR 012502 1361 TAD (IBUF2 012503 3001 DCA IWD2 / INPUT 2 WORD PTR 012504 1022 TAD SLASHI 012505 7650 SNA CLA 012506 5311 JMP .+3 012507 7240 M1C 012510 5313 JMP .+3 012511 1026 TAD IBLEN 012512 7041 CIA 012513 3027 DCA EBCNT / INPUT BUFFER BLOCK COUNTER 012514 5677 JMP I IINIT / CHECK DUMPSW / GO TO ADDR THAT IS ARG1 IF IT IS SET 012515 0000 DCHK, 0000 012516 1715 TAD I DCHK / GET SET ADDRESS 012517 3025 DCA TMP / SAVE IT 012520 2315 ISZ DCHK / POINT TO OK RETURN 012521 1002 TAD DUMPSW / GET SWITCH 012522 7640 SZA CLA / CLEAR? 012523 5425 JMP I TMP / NO-GO TO ARG ADDR 012524 5715 JMP I DCHK / YES-RETURN / MOVE A BLOCK FROM FIELD 0 TO FIELD 1 / ARGS ARE SOURCE & DESTINATION ADDRESSES-1 012525 0000 MOVEBL, 0000 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 8-2 012526 1725 TAD I MOVEBL 012527 3010 DCA XR10 012530 2325 ISZ MOVEBL 012531 1725 TAD I MOVEBL 012532 3011 DCA XR11 012533 2325 ISZ MOVEBL 012534 1360 TAD (-400 012535 3025 DCA TMP 012536 6201 CDF 0 012537 1410 TAD I XR10 012540 6211 CDF 10 012541 3411 DCA I XR11 012542 2025 ISZ TMP 012543 5336 JMP .-5 012544 5725 JMP I MOVEBL 012560 7400 012561 4000 012562 2000 012563 7642 012564 5120 012565 0200 012566 7600 012567 4221 012570 2062 012571 4217 012572 4010 012573 4231 012574 7200 012575 1400 012576 3671 012577 0232 2600 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 9 / THIS ROUTINE DECIDES WHAT TO SEND OUT / & PUTS IT IN THE LINE BUFFER(S) 012600 0000 COMPAR, 0000 012601 6201 CDF 0 012602 1002 TAD DUMPSW 012603 7640 SZA CLA 012604 5231 JMP CDMP1 / ONLY FILE 1 012605 1003 TAD DUMP2S 012606 7640 SZA CLA 012607 5240 JMP CDMP2 / ONLY FILE 2 LEFT 012610 1400 TAD I IWD1 012611 0260 AND MASK 012612 3025 DCA TMP 012613 1401 TAD I IWD2 012614 0260 AND MASK 012615 7041 CIA 012616 1025 TAD TMP 012617 7640 SZA CLA 012620 5245 JMP COMB / DIDN'T MATCH, DUMP THEM 012621 6211 COMC, CDF 10 / MATCHED, PACK 4 BLANKS 012622 4777' JMS BLOUT 012623 4777' JMS BLOUT 012624 4777' JMS BLOUT 012625 4777' JMS BLOUT 012626 2000 COMA, ISZ IWD1 012627 2001 ISZ IWD2 012630 5600 JMP I COMPAR 012631 1400 CDMP1, TAD I IWD1 / IN DUMP, MASK BITS MUST BE ON IN DATA 012632 4262 JMS CHMSK / COMPARE VALUE TO MASK VALUE 012633 1400 TAD I IWD1 / REGET WORD & SEND IT OUT 012634 6211 CDF 10 012635 4776' JMS OCTOUT 012636 3142 LPACK1 012637 5256 JMP COMN 012640 1401 CDMP2, TAD I IWD2 012641 4262 JMS CHMSK / CHECK AGAINST MASK 012642 1401 TAD I IWD2 012643 6211 CDF 10 012644 5254 JMP COME 012645 1401 COMB, TAD I IWD2 012646 3025 DCA TMP 012647 1400 TAD I IWD1 012650 6211 CDF 10 012651 4776' JMS OCTOUT 012652 3142 LPACK1 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 9-1 012653 1025 TAD TMP 012654 4776' COME, JMS OCTOUT 012655 3150 LPACK2 012656 2775' COMN, ISZ NONBL / NOT 0 IF NON-BLANK OUTPUT ON THIS LINE 012657 5226 JMP COMA 012660 0000 MASK, 0 012661 0000 DMASK, 0 / IN SEARCH ("/S" SPECIFIED), THE "CMA" IS CHANGED / TO "CIA", THE "AND" IS CHANGED TO A "TAD", AND / THE WORD MUST BE EQUAL TO THE MASK TO MATCH. 012662 0000 CHMSK, 0000 012663 7040 CHP1, CMA / CIA IF /S 012664 0261 CHP3, AND DMASK / TAD IF /S 012665 7640 SZA CLA / REQUIRED BITS ON? 012666 5221 JMP COMC / NO-OUTPUT BLANKS 012667 5662 JMP I CHMSK / RETURN TO PRINT IT IFNDEF GERMAN < 012670 2205 MESB, TEXT "RELATIVE BLOCK " 012671 1401 012672 2411 012673 2605 012674 4002 012675 1417 012676 0313 012677 4000 012700 4040 MESL, TEXT " ( ABSOLUTE BLOCK " 012701 4050 012702 4001 012703 0223 012704 1714 012705 2524 012706 0540 012707 0214 012710 1703 012711 1340 012712 0000 012713 4051 MESR, TEXT " )" 012714 0000 012715 2356 MESC1, TEXT "S.A.= " 012716 0156 012717 7540 012720 0000 012721 1223 MESC2, TEXT "JSW= " 012722 2775 012723 4040 012724 4000 012725 0317 MESC3, TEXT "CORE=" 012726 2205 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 9-2 012727 7500 012730 1617 MESNA, TEXT "NO OUTPUT" 012731 4017 012732 2524 012733 2025 012734 2400 012735 1617 MESNB, TEXT "NO DIFFERENCES" 012736 4004 012737 1106 012740 0605 012741 2205 012742 1603 012743 0523 012744 0000 012745 0411 MESNC, TEXT "DIFFERENT" 012746 0606 012747 0522 012750 0516 012751 2400 012752 2301 MESND, TEXT "SAME" 012753 1505 012754 0000 012755 0611 TXFL, TEXT "FILES " 012756 1405 012757 2340 012760 0000 > IFDEF GERMAN < MESB, TEXT \RELATIVES BLOCK \ MESL, TEXT \ ( ABSOLUTES BLOCK \ MESR, TEXT \ )\ MESC1, TEXT \START=\ MESC2, TEXT \JSW = \ MESC3, TEXT \SPEICHER:\ MESNA, TEXT \NICHTS GEFUNDEN\ MESNB, TEXT \KEIN UNTERSCHIED\ MESNC, TEXT \VERSCHIEDEN\ MESND, TEXT \IDENTISCH\ TXFL, TEXT \DATEIEN \ > 012775 3134 012776 3727 012777 3752 3000 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 10 / PUT OUT LPBLK LINES / INITIALIZATION ALREADY COMPLETE 013000 0000 DOUT, 0000 013001 1030 TAD LPBLK 013002 3341 DCA LNCNT / # OF LINES COUNTER / OUTPUT TO THE LINE BUFFER 013003 1377 DOUL, TAD (LBUF1-1 013004 3013 DCA XR13 / LINE BUFFER PTR 013005 1013 TAD XR13 013006 3347 DCA MAX1 013007 1376 TAD (LBUF2-1 013010 3014 DCA XR14 / 2ND LINE BUFFER PTR 013011 1014 TAD XR14 013012 3355 DCA MAX2 013013 1031 TAD NGRPS 013014 3336 DCA BUNCH 013015 1000 TAD IWD1 013016 0375 AND (377 / STRIP TO OFFSET 013017 3340 DCA LINWD / SAVE IN CASE ANYTHING ON THIS LINE 013020 3334 DCA NONBL / CLEAR BLANK LINE SWITCH 013021 1374 LIN5, TAD (-4 013022 3337 DCA GROUP / 4 WORDS PER GROUP 013023 4773' JMS BLOUT / EXTRA BLANK BETWEEN GROUPS 013024 4773' LIN6, JMS BLOUT / BLANK BETWEEN NUMBERS 013025 4772' JMS COMPAR 013026 2337 ISZ GROUP / GROUP DONE? 013027 5224 JMP LIN6 / NO 013030 2336 ISZ BUNCH / ALL GROUPS DONE? 013031 5221 JMP LIN5 / NO / IF CURRENT LINE IS NON-BLANK (NONBL NOT 0), / PACK CURRENT LINE BUFFER INTO OUTPUT BUFFER 013032 1334 TAD NONBL 013033 7650 SNA CLA 013034 5327 JMP CR5 / BLANK LINE (JUST RESET BUFFER PARAMS) 013035 1021 TAD SLASHD / /D SWITCH 013036 7640 SZA CLA / DIFFERENCES ONLY? 013037 5332 JMP CR9 / YES-SETUP FINISH 013040 1771' TAD HOUT / HEADER OUTPUT SWITCH 013041 7650 SNA CLA / ALREADY OUTPUT FOR THIS BLOCK? 013042 4770' JMS HEADER / NO-SEND NOW 013043 1347 TAD MAX1 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 10-1 013044 7040 CMA 013045 1377 TAD (LBUF1-1 013046 3335 DCA CHCNT / # CHARS CTR 013047 1377 TAD (LBUF1-1 013050 3013 DCA XR13 / BUFFER 1 PTR / SETS UP LINE LABEL IN LINWD IF /I / PACKS FIELD DIGIT IF /I / PACKS SPACE IF NOT /I 013051 1022 TAD SLASHI / /I SWITCH 013052 7640 SZA CLA / CLEAR? 013053 5256 JMP .+3 / NO-GO DO REAL WORK 013054 4767' JMS PBL / YES-PACK A BLANK 013055 5273 JMP CR0 013056 1033 TAD PGPTR1 / PAGE TABLE POINTER 013057 1366 TAD (-PGTAB1 / -TABLE BASE ADDR 013060 7012 RTR;RTR;RAR 013061 7012 013062 7010 013063 3025 DCA TMP 013064 1025 TAD TMP 013065 7010 RAR 013066 0365 AND (7400 013067 1340 TAD LINWD 013070 3340 DCA LINWD / NOW AN ADDRESS, NOT JUST OFFSET 013071 1025 TAD TMP 013072 4764' JMS PDIG / PACK FIELD DIGIT 013073 1340 CR0, TAD LINWD / LABEL NUMBER (OFFSET OR ADDRESS) 013074 4763' JMS OCTOUT / = WORD OR ADDR OFFSET 013075 3671 APACK, PACK 013076 4767' JMS PBL / EXTRA BLANK BETWEEN LABEL & VALUES 013077 5302 JMP CR1E / IN CASE NO CHARS FOR FILE 1 013100 1413 CR1, TAD I XR13 013101 4675 JMS I APACK / SEND OUT EACH CHAR 013102 2335 CR1E, ISZ CHCNT 013103 5300 JMP CR1 013104 1002 TAD DUMPSW 013105 7640 SZA CLA / DUMP MODE? 013106 5326 JMP CR4 / YES-ONLY ONE OUTPUT SECTION 013107 1032 TAD SEGSIZ 013110 1362 TAD (-LBUF1-1 013111 1013 TAD XR13 013112 4761' JMS PMBL / # BLANKS TO START 2ND FILE 013113 1355 TAD MAX2 013114 7040 CMA 013115 1376 TAD (LBUF2-1 013116 3335 DCA CHCNT 013117 1376 TAD (LBUF2-1 013120 3014 DCA XR14 013121 5324 JMP CR2E / IN CASE NONE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 10-2 013122 1414 CR2, TAD I XR14 013123 4675 JMS I APACK 013124 2335 CR2E, ISZ CHCNT 013125 5322 JMP CR2 013126 4760' CR4, JMS CRLF 013127 2341 CR5, ISZ LNCNT 013130 5203 JMP DOUL 013131 5600 JMP I DOUT 013132 2035 CR9, ISZ ANYOUT / NONZERO FOR DIFFERENCE 013133 5757' JMP FINISH / ALL THRU BECAUSE /D ONLY CHECKS FOR 1ST DIFF 013134 0000 NONBL, 0 / NON-BLANK LINE SW 013135 0000 CHCNT, 0 013136 0000 BUNCH, 0 013137 0000 GROUP, 0 013140 0000 LINWD, 0 013141 0000 LNCNT, 0 / PUT A CHAR INTO THE LINE BUFFER 1 013142 0000 LPACK1, 0000 013143 3413 DCA I XR13 013144 1013 TAD XR13 013145 3347 DCA MAX1 013146 5742 JMP I LPACK1 013147 0000 MAX1, 0 / PUT ONE IN BUF 2 013150 0000 LPACK2, 0000 013151 3414 DCA I XR14 013152 1014 TAD XR14 013153 3355 DCA MAX2 013154 5750 JMP I LPACK2 013155 0000 MAX2, 0 013157 2312 013160 3623 013161 3611 013162 6377 013163 3727 013164 3600 013165 7400 013166 1400 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 10-3 013167 3605 013170 3400 013171 3473 013172 2600 013173 3752 013174 7774 013175 0377 013176 1577 013177 1377 3200 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 11 / READ FILE 1 INTO BUFFER 013200 0000 READ1, 0000 013201 1220 TAD IFNWD1 013202 3230 DCA IFNSV1 / SAVE FUNCTION WORD 013203 1227 TAD EBLK1 / -(LAST BLOCK+1) 013204 1222 TAD INBLK1 / ADD CURRENT BLOCK 013205 7120 STL / (FOR 13 BIT ARITH) 013206 1026 TAD IBLEN / ADD BUFFER LENGTH 013207 7470 SNA SZL / OK? 013210 5215 JMP RD11 / YES-GO READ IT 013211 4777' JMS ROR6 / NO-ADJUST FUNCTION WORD 013212 7041 CIA 013213 1230 TAD IFNSV1 / SUBTRACT SHORTAGE 013214 3220 DCA IFNWD1 013215 7200 RD11, CLA 013216 6202 CIF 0 013217 4406 JMS I INH1 / CALL HANDLER 013220 1000 IFNWD1, 1000 / FUNCTION (INPUT, 10 (OR 20) PAGES, DF=0) 013221 2000 IBUF1 013222 0000 INBLK1, 0 013223 4776' JMS ERROR5 / INPUT #1 ERROR 013224 1230 TAD IFNSV1 013225 3220 DCA IFNWD1 / RESTORE FUNCTION WORD 013226 5600 JMP I READ1 013227 0000 EBLK1, 0 / READ FILE 2 INTO BUFFER 013230 0000 READ2, 0000 013231 1250 TAD IFNWD2 013232 3200 DCA IFNSV2 / SAVE FUNCTION WORD 013233 1257 TAD EBLK2 / -(LAST BLOCK+1) 013234 1252 TAD INBLK2 / ADD CURRENT BLOCK 013235 7120 STL / (FOR 13 BIT ARITH) 013236 1026 TAD IBLEN / ADD BUFFER LENGTH 013237 7470 SNA SZL / OK? 013240 5245 JMP RD21 / YES-GO READ IT 013241 4777' JMS ROR6 / NO-ADJUST FUNCTION WORD 013242 7041 CIA 013243 1200 TAD IFNSV2 / SUBTRACT SHORTAGE 013244 3250 DCA IFNWD2 013245 7200 RD21, CLA 013246 6202 CIF 0 013247 4420 JMS I INH2 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 11-1 013250 1000 IFNWD2, 1000 013251 4000 IBUF2 013252 0000 INBLK2, 0 013253 4775' JMS ERROR6 / INPUT #2 ERROR 013254 1200 TAD IFNSV2 013255 3250 DCA IFNWD2 / RESTORE FUNCTION WORD 013256 5630 JMP I READ2 3230 IFNSV1= READ2 3200 IFNSV2= READ1 013257 0000 EBLK2, 0 / COPE WITH DIFFERENT TYPES OF BUFFER FILLING 013260 0000 READIN, 0000 013261 3774' DCA HOUT / HEADER NOT OUT SWITCH 013262 2027 ISZ EBCNT / INPUT BUFFER EMPTY? 013263 5660 JMP I READIN / NO 013264 4773' JMS CTRLC / CHECK FOR ^C STRUCK 013265 4772' JMS IINIT / SETUP INPUT POINTERS & COUNTER 013266 1022 TAD SLASHI / /I SWITCH 013267 7640 SZA CLA / WHICH KIND IF FILE? 013270 5306 JMP READII / /I (.SV) 013271 1003 TAD DUMP2S / 2ND ONLY SWITCH 013272 7650 SNA CLA / SET? 013273 4200 JMS READ1 / NO-READ 1ST FILE 013274 1026 TAD IBLEN / EITHER 4 OR 10 013275 1222 TAD INBLK1 013276 3222 DCA INBLK1 / BUMP FOR NEXT TIME 013277 1002 TAD DUMPSW / 1ST ONLY SWITCH 013300 7650 SNA CLA / SET? 013301 4230 JMS READ2 / NO-READ 2ND FILE 013302 1026 TAD IBLEN 013303 1252 TAD INBLK2 013304 3252 DCA INBLK2 / BUMP FOR NEXT TIME 013305 5660 JMP I READIN / /I SECTION 013306 1433 READII, TAD I PGPTR1 / GET FILE 1 RELATIVE PAGE 013307 7110 CLL RAR / CHANGE PAGE TO BLOCK OFFSET 013310 3004 DCA RELBLK / SAVE FILE 1 RELATIVE BLOCK # 013311 1004 TAD RELBLK 013312 7450 SNA / FILE ONE NEEDED? 013313 5330 JMP READI2 / NO-DO FILE 2 013314 1353 TAD ISTB1 013315 3025 DCA TMP / ABSOLUTE BLOCK # IN FILE 1 013316 1222 TAD INBLK1 / 1ST BLOCK IN BUFFER 1 NOW 013317 4355 JMS READIC / CALC WORD OFFSET FOR DESIRED BLOCK 013320 5324 JMP NEED1 / RETURN TO CALL+1 IF NEED TO READ BLOCK 013321 1000 TAD IWD1 013322 3000 DCA IWD1 / BUMP WORD POINTER / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 11-2 013323 5330 JMP READI2 / TRY 2ND FILE NOW 013324 7300 NEED1, CLA CLL / NEED TO READ FILE 1 013325 1025 TAD TMP / DESIRED BLOCK 013326 3222 DCA INBLK1 / WILL BE 1ST BLOCK IN BUFFER 013327 4200 JMS READ1 013330 1434 READI2, TAD I PGPTR2 / GET FILE 2 RELATIVE PAGE 013331 7110 CLL RAR / CHANGE PAGE TO BLOCK 013332 3005 DCA RELBK2 / SAVE FILE 2 RELATIVE BLOCK # 013333 1005 TAD RELBK2 013334 7450 SNA / NEEDED? 013335 5660 JMP I READIN / NO-THRU 013336 1354 TAD ISTB2 013337 3025 DCA TMP 013340 1252 TAD INBLK2 013341 4355 JMS READIC 013342 5346 JMP NEED2 013343 1001 TAD IWD2 013344 3001 DCA IWD2 013345 5660 JMP I READIN 013346 7300 NEED2, CLA CLL 013347 1025 TAD TMP 013350 3252 DCA INBLK2 013351 4230 JMS READ2 013352 5660 JMP I READIN 013353 0000 ISTB1, 0 013354 0000 ISTB2, 0 013355 0000 READIC, 0000 013356 1026 TAD IBLEN / ONE PAST END 013357 7041 CIA 013360 1025 TAD TMP / COMPARE TO DESIRED BLOCK 013361 7500 SMA 013362 5755 JMP I READIC / PAST END OF BUFFER. NEED TO READ FILE 013363 1026 TAD IBLEN 013364 7510 SPA 013365 5755 JMP I READIC / BEFORE START OF BUFFER. N.T.R.F. 013366 4777' JMS ROR6 013367 7004 RAL / (AC) IS WORD OFFSET FOR DESIRED BLOCK 013370 2355 ISZ READIC / SKIP N.T.R.F. RETURN 013371 5755 JMP I READIC 013372 2477 013373 5104 013374 3473 013375 5122 013376 5123 013377 3760 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 11-3 3400 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 12 / PRINTS THE BLOCK HEADER INFORMATION 013400 0000 HEADER, 0000 013401 4777' JMS FCHK / CHECK FOR /F 013402 4776' JMS PUTSTR 013403 2667 MESB-1 / "RELATIVE BLOCK " 013404 1022 TAD SLASHI / /I SWITCH 013405 7640 SZA CLA / SET? 013406 5213 JMP HE1 / YES 013407 1004 TAD RELBLK / NO-JUST SEND RELBLK 013410 4775' JMS OCTOUT 013411 3671 PACK 013412 5222 JMP HE3 / GO DO ABSOLUTE PART 013413 1004 HE1, TAD RELBLK 013414 3220 DCA .+4 013415 1005 TAD RELBK2 013416 3221 DCA .+3 013417 4335 JMS COMHED / RELATIVE BLOCKS AS NEEDED 013420 0000 0 013421 0000 0 013422 4776' HE3, JMS PUTSTR 013423 2677 MESL-1 / " ( ABSOLUTE BLOCK " 013424 1022 TAD SLASHI / /I SWITCH 013425 7640 SZA CLA / SET? 013426 5231 JMP HE4 / YES 013427 1004 TAD RELBLK / NO 013430 7410 SKP 013431 1005 HE4, TAD RELBK2 / 2ND RELATIVE BLOCK 013432 1774' TAD ISTB2 / + 2ND START BLOCK 013433 3241 DCA HA2 / IS 2ND ABSOLUTE BLOCK 013434 1004 TAD RELBLK / 1ST RELATIVE BLOCK 013435 1773' TAD ISTB1 / + 1ST START BLOCK 013436 3240 DCA HA1 / IS 1ST ABSOLUTE BLOCK 013437 4335 JMS COMHED / SEND THE BLOCK NUMBER(S) OUT 013440 0000 HA1, 0 013441 0000 HA2, 0 013442 4776' JMS PUTSTR 013443 2712 MESR-1 / " )" 013444 4772' JMS CRLF 013445 4776' JMS PUTSTR / 2ND LINE OF HEADER 013446 3530 HMES-1 / " ADDR" 013447 1003 TAD DUMP2S 013450 7640 SZA CLA 013451 5271 JMP HE2 013452 4274 JMS HEAD2 / SEND IT OUT 013453 1002 TAD DUMPSW 013454 7640 SZA CLA / DUMP MODE? 013455 5264 JMP HE9 / YES-FINISHED 013456 1371 HE8, TAD (-2 013457 3025 DCA TMP 013460 4770' JMS PBL / SEND BLANKS UNTIL LINED UP WITH 2ND PART / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 12-1 013461 2025 ISZ TMP 013462 5260 JMP .-2 013463 4274 JMS HEAD2 / NOW SEND REST OF LABEL 013464 4772' HE9, JMS CRLF / END OF LINE 013465 2273 ISZ HOUT / NOT 0, HEADER OUTPUT 013466 7201 P1C / NOT 0 013467 3035 DCA ANYOUT / = 1 IF ANYTHING OUTPUT 013470 5600 JMP I HEADER 013471 1032 HE2, TAD SEGSIZ / =-25 OR -52 013472 5256 JMP HE8 013473 0000 HOUT, 0 / HEADER OUTPUT SWITCH / ROUTINE TO LABEL THE COLUMNS 013474 0000 HEAD2, 0000 013475 1031 TAD NGRPS / -# GROUPS PER LINE 013476 3327 DCA HGP / GROUPS PER LINE 013477 3330 DCA OFFV / OFFSET VALUE 013500 1367 HL5, TAD (-4 013501 3326 DCA HWD / 4 WORDS PER GROUP 013502 4770' JMS PBL / EXTRA BLANK BETWEEN GROUPS 013503 7346 HL6, M3C 013504 4766' JMS PMBL / 3 LEADING BLANKS 013505 1330 TAD OFFV / GET VALUE (2 DIGIT NUMBER) 013506 7112 CLL RTR;RAR / ROTATE 1ST DIGIT TO BITS 9-11 013507 7010 013510 0365 AND (7 / STRIP TO DIGIT 013511 7450 SNA / NOT 0? 013512 5324 JMP HL6B / NO-DON'T PRINT IT 013513 4764' JMS PDIG / PACK ASCII DIGIT 013514 1330 HL7, TAD OFFV / NOW 2ND DIGIT 013515 4764' JMS PDIG / PRINT THE DIGIT IN OUTPUT FILE 013516 2330 ISZ OFFV / BUMP FOR NEXT ONE 013517 2326 ISZ HWD / WORDS DONE? 013520 5303 JMP HL6 / NO 013521 2327 ISZ HGP / GROUPS DONE? 013522 5300 JMP HL5 / NO 013523 5674 JMP I HEAD2 / YES 013524 4770' HL6B, JMS PBL / PRINT BLANK INSTEAD OF LEADING 0 013525 5314 JMP HL7 013526 0000 HWD, 0 013527 0000 HGP, 0 013530 0000 OFFV, 0 013531 4001 IFNDEF GERMAN < HMES, TEXT " ADDR " > 013532 0404 013533 2240 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 12-2 013534 0000 IFDEF GERMAN < HMES, TEXT \ ZELLE\ > / COMMON HEADER INFO OUTPUT / JMS COMHED / ARG1= # IF NOT DUMP2S / ARG2= # IF NOT DUMPSW / #S SEPARATED BY " AND " IF BOTH OUTPUT 013535 0000 COMHED, 0000 013536 1003 TAD DUMP2S / FILE 2 ONLY SWITCH 013537 7640 SZA CLA / SET? 013540 5351 JMP CH1B / YES 013541 1735 TAD I COMHED / NO-OUTPUT 1ST # 013542 4775' JMS OCTOUT 013543 3671 PACK 013544 1002 TAD DUMPSW / FILE 1 ONLY SWITCH 013545 7640 SZA CLA / SET? 013546 5357 JMP CH1 / YES-THRU 013547 4776' JMS PUTSTR / NO-SEND SEPARATOR MESSAGE 013550 3560 MESS-1 / " AND " 013551 2335 CH1B, ISZ COMHED / POINT TO 2ND ARG 013552 1735 TAD I COMHED / OUTPUT 2ND # 013553 4775' JMS OCTOUT 013554 3671 PACK 013555 2335 CH1C, ISZ COMHED / POINT TO RETURN 013556 5735 JMP I COMHED 013557 2335 CH1, ISZ COMHED / POINT TO 2ND ARG 013560 5355 JMP CH1C / RETURN 013561 4001 IFNDEF GERMAN < MESS, TEXT " AND " > 013562 1604 013563 4000 IFDEF GERMAN < MESS, TEXT \ UND \ > 013564 3600 013565 0007 013566 3611 013567 7774 013570 3605 013571 7776 013572 3623 013573 3353 013574 3354 013575 3727 013576 3641 013577 4532 3600 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 13 / PACK ONE ASCII DIGIT (OCTAL) IN OUTPUT BUFFER 013600 0000 PDIG, 0000 013601 0377 AND (7 013602 1376 TAD (260 013603 4271 JMS PACK 013604 5600 JMP I PDIG / SEND A BLANK TO THE OUTPUT ROUTINE 013605 0000 PBL, 0000 013606 1375 TAD (240 013607 4271 JMS PACK 013610 5605 JMP I PBL / PRINT MULTIPLE BLANKS IN OUTPUT BUFFER / CAN BE CALLED TWO WAYS LIKE PUTSTR 013611 0000 PMBL, 0000 013612 7440 SZA / METHOD SELECT 013613 5216 JMP .+3 / # BLANKS IN AC 013614 1611 TAD I PMBL / # BLANKS IN ARG1 013615 2211 ISZ PMBL / POINT TO RETURN 013616 3200 DCA PCNT / BLANK COUNT 013617 4205 JMS PBL / SEND A BLANK 013620 2200 ISZ PCNT / THRU? 013621 5217 JMP .-2 / NO-DO ANOTHER 013622 5611 JMP I PMBL 3600 PCNT= PDIG / PACK CR,LF TO OUTPUT BUFFER / INSERT FORM FEED AFTER PROPER NUMBER OF LINES 013623 0000 CRLF, 0000 013624 1374 TAD (215 / "CR 013625 4271 JMS PACK 013626 1373 TAD (212 / "LF 013627 4271 JMS PACK 013630 2237 ISZ LINES / PAGE FULL? 013631 5623 JMP I CRLF / NO-RETURN 013632 1372 TAD (214 / YES-OUTPUT FORM FEED 013633 4271 JMS PACK / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 13-1 013634 1240 TAD NLNES 013635 3237 DCA LINES / RESET COUNTER 013636 5623 JMP I CRLF 013637 7700 LINES, -100 / LINES PER PAGE COUNTER 013640 7700 NLNES, -100 / LINES PER PAGE RESET VALUE / PUT 6 BIT TEXT TO OUTPUT ROUTINE / TWO CALLING METHODS / 1) TEXT ADDR-1 IN AC; RETURN TO CALL+1 / 2) TEXT ADDR-1 IN ARG1; AC=0!; RETURN TO CALL+2 013641 0000 PUTSTR, 0000 013642 7440 SZA / METHOD 1? 013643 5246 JMP .+3 / YES-ARG IS IN AC 013644 1641 TAD I PUTSTR / NO-ARG IS IN CALL+1 013645 2241 ISZ PUTSTR / BUMP MODE 2 RETURN PTR 013646 3200 DCA PUTADR / SAVE TEXT PTR 013647 2200 PUT1, ISZ PUTADR / BUMP PTR TO NEXT WORD 013650 1600 TAD I PUTADR / GET NEXT PAIR OF CHARS 013651 7012 RTR;RTR;RTR / ROTATE 1ST HALF TO RIGHT 6 BITS 013652 7012 013653 7012 013654 4260 JMS TTO6 / TRANSLATE & OUTPUT 013655 1600 TAD I PUTADR / REGET WORD FOR RIGHT HALF 013656 4260 JMS TTO6 / TRANSLATE & SEND IT OUT ALSO 013657 5247 JMP PUT1 / KEEP GOING (RETURN IS THRU TTO6) 3600 PUTADR= PDIG / STRING PTR FOR PUTSTR / TRANSLATE & OUTPUT 6 BIT ASCII / CHAR IS IN RIGHT HALF OF AC / LEFT HALF IS GARBAGE / (THIS IS PART OF PUTSTR!) 013660 0000 TTO6, 0000 013661 0371 AND (77 / STRIP OFF GARBAGE 013662 7450 SNA / 6 BIT 00 IS TERMINATOR 013663 5641 JMP I PUTSTR / EOT-RETURN 013664 1375 TAD (240 013665 0371 AND (77 013666 1375 TAD (240 013667 4271 JMS PACK / SEND 8 BIT ASCII 013670 5660 JMP I TTO6 / AC=0 / PACK 8 BIT BYTES INTO OUTPUT BUFFER / USES OS/8 TEXT FORMAT 013671 0000 PACK, 0000 / OS/8 OUTPUT PACKING ROUTINE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 13-2 013672 5673 JMP I PSW 013673 3700 PSW, PA1 013674 2024 ISZ OCNT 013675 5671 JMP I PACK 013676 4770' JMS WRITE 013677 5671 JMP I PACK 013700 3726 PA1, DCA I OWD / 1ST OF TRIP 013701 4273 JMS PSW 013702 3325 DCA PSAV / 2ND OF TRIP 013703 4273 JMS PSW 013704 7106 CLL RTL;RTL / 3RD OF TRIP 013705 7006 013706 3273 DCA PSW 013707 1273 TAD PSW 013710 0367 AND (7400 013711 1726 TAD I OWD 013712 3726 DCA I OWD / PACK 1ST HALF OF PAIR 013713 2326 ISZ OWD 013714 1273 TAD PSW 013715 7106 CLL RTL;RTL 013716 7006 013717 0367 AND (7400 013720 1325 TAD PSAV 013721 3726 DCA I OWD / PACK 2ND HALF 013722 2326 ISZ OWD 013723 4273 JMS PSW 013724 5300 JMP PA1 013725 0000 PSAV, 0 013726 0000 OWD, 0 / OUTPUT BUFFER PTR / OUTPUT AC AS 4 OCTAL DIGITS / ARG1 IS THE ADDRESS OF THE OUTPUT ROUTINE 013727 0000 OCTOUT, 0000 013730 3211 DCA OCTMP / SAVE VALUE 013731 1727 TAD I OCTOUT / GET OUTPUT ROUTINE PTR 013732 3205 DCA WPAK 013733 1366 TAD (-4 013734 3200 DCA DIGCNT / DIGIT CTR 013735 1211 OCL, TAD OCTMP 013736 7006 RTL;RAL 013737 7004 013740 3211 DCA OCTMP 013741 1211 TAD OCTMP 013742 7004 RAL 013743 0377 AND (7 / STRIP TO DIGIT 013744 1376 TAD (260 / MAKE ASCII / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 13-3 013745 4605 JMS I WPAK / GO TO OUTPUT ROUTINE 013746 2200 ISZ DIGCNT / DONE? 013747 5335 JMP OCL / NO-DO NEXT DIGIT 013750 2327 ISZ OCTOUT / YES-POINT TO RETN 013751 5727 JMP I OCTOUT 3605 WPAK= PBL / POINTS TO OUTPUT ROUTINE 3611 OCTMP= PMBL 3600 DIGCNT= PDIG / PLACE A BLANK IN BOTH LINE BUFFERS 013752 0000 BLOUT, 0000 013753 1375 TAD (240 013754 3413 DCA I XR13 013755 1375 TAD (240 013756 3414 DCA I XR14 013757 5752 JMP I BLOUT / ROTATE AC RIGHT 6 BITS / SAVES SPACE THIS WAY / WOULD BE FASTER "IN LINE" 013760 0000 ROR6, 0000 013761 7112 CLL RTR;RTR;RTR 013762 7012 013763 7012 013764 5760 JMP I ROR6 013766 7774 013767 7400 013770 4200 013771 0077 013772 0214 013773 0212 013774 0215 013775 0240 013776 0260 013777 0007 4000 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 14 / PRINT CORE ADDRESS RANGE 014000 0000 COROUT, 0000 014001 3256 DCA CORBL / LEADING BLANK COUNT 014002 1600 TAD I COROUT 014003 3034 DCA LIM / TABLE LIMIT 014004 2200 ISZ COROUT 014005 1600 TAD I COROUT / CURRENT PTR VALUE 014006 3010 DCA XR10 014007 1410 TAD I XR10 / SCAN UNTIL NON-ZERO 014010 7650 SNA CLA / NOW? 014011 5207 JMP .-2 / NO-KEEP LOOKING 014012 1010 TAD XR10 / COMPARE POINTER 014013 1034 TAD LIM / TO LIMIT VALUE 014014 7540 SMA SZA / PAST END? 014015 5253 JMP PGEOT / YES-ABORT 014016 1377 TAD (377 / CHANGE TO PAGE OFFSET 014017 3226 DCA CORL 014020 1256 TAD CORBL / REGET LEADING BLANK COUNT 014021 7440 SZA / ANY? 014022 4776' JMS PMBL / YES-GO PRINT THEM 014023 3256 DCA CORBL / RESET IF PRINTED 014024 7240 STA / AC=-1 FOR 1ST OF PAIR 014025 4775' JMS PAGOUT / PRINT 1ST PAGE ADDRESS 014026 0000 CORL, 0 014027 1374 TAD ("- 014030 4773' JMS PACK / PRINT SEPARATOR 014031 1410 TAD I XR10 / SCAN UNTIL ZERO 014032 7640 SZA CLA / NOW? 014033 5231 JMP .-2 / NO-KEEP LOOKING 014034 7240 STA / AC=-1 014035 1010 TAD XR10 / COMPARE PTR 014036 1034 TAD LIM / TO LIMIT 014037 7500 SMA / PAST END? 014040 7200 CLA / YES-FORCE BACK 014041 1377 TAD (377 / CHANGE TO OFFSET 014042 3244 DCA CORH 014043 4775' JMS PAGOUT / AC=0 FOR 2ND OF PAIR 014044 0000 CORH, 0 014045 1034 TAD LIM 014046 1377 TAD (377 014047 7041 CIA 014050 1244 TAD CORH 014051 3600 DCA I COROUT / UPDATE CURRENT POINTER 014052 2200 ISZ COROUT 014053 2200 PGEOT, ISZ COROUT 014054 7600 P7600, 7600 / CLA 014055 5600 JMP I COROUT / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 14-1 0034 LIM= PGPTR2 / TWO NON-CONFLICTING USES FOR THE SAME LOCATION 014056 0000 CORBL, 0 / LEADING BLANK COUNT / DUMP CCB(S) 014057 0000 CCBOUT, 0000 014060 4772' JMS CRLF 014061 4771' JMS SAOUT / PRINT 5 DIGIT START ADDRESS 014062 0000 SF1, 0 014063 0000 SA1, 0 014064 4770' JMS DCHK / CHECK DUMP SWITCH 014065 4073 CO2 / GO HERE IF SET 014066 1351 TAD DELTAC 014067 4776' JMS PMBL / SPACE OVER TO 2ND START 014070 4771' JMS SAOUT / PRINT S.A. 014071 0000 SF2, 0 014072 0000 SA2, 0 014073 4772' CO2, JMS CRLF / NEW LINE 014074 4767' JMS JSWOUT / PRINT JSW 014075 0000 JSW1, 0 014076 4770' JMS DCHK / ONE ONLY CHECK AGAIN 014077 4104 CO4 014100 1351 TAD DELTAC 014101 4776' JMS PMBL 014102 4767' JMS JSWOUT 014103 0000 JSW2, 0 014104 4772' CO4, JMS CRLF 014105 4766' JMS PUTSTR 014106 2724 MESC3-1 / "CORE=" 014107 4770' JMS DCHK 014110 4122 CO6 014111 1365 TAD (-6 014112 1351 TAD DELTAC 014113 4776' JMS PMBL 014114 4766' JMS PUTSTR 014115 2724 MESC3-1 / "CORE=" 014116 1364 TAD (PGTAB1-1 014117 3335 DCA PGP1 014120 1363 TAD (PGTAB2-1 014121 3346 DCA PGP2 014122 4772' CO6, JMS CRLF 014123 7344 M2C 014124 1002 TAD DUMPSW 014125 1003 TAD DUMP2S 014126 7650 SNA CLA / BOTH SET NOW? 014127 5657 JMP I CCBOUT / YES-BYE 014130 3002 DCA DUMPSW / CLEAR FILE SWITCHES 014131 3003 DCA DUMP2S 014132 1365 TAD (-6 / INDENT ADDRESSES 014133 4200 JMS COROUT / PRINT FILE ONE PAGE RANGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 14-2 014134 1001 -PGTAB1-377 / TABLE LIMIT VALUE 014135 6377 PGP1, PGTAB1-1 / CURRENT POINTER VALUE (FILE 1) 014136 2003 ISZ DUMP2S / FILE ONE TABLE EMPTIED 014137 1003 TAD DUMP2S 014140 7640 SZA CLA / SET NOW? 014141 1362 TAD (-13 / YES-EXTRA BLANKS INSTEAD OF ADDRESSES 014142 1351 TAD DELTAC 014143 1256 TAD CORBL / ADD IN UNUSED PREVIOUS BLANKS 014144 4200 JMS COROUT / PRINT FILE TWO PAGE RANGE 014145 0401 -PGTAB2-377 / TABLE LIMIT VALUE 014146 6777 PGP2, PGTAB2-1 / CURRENT POINTER VALUE (FILE 2) 014147 2002 ISZ DUMPSW / FILE TWO TABLE EMPTIED 014150 5322 JMP CO6 / KEEP GOING 014151 7726 DELTAC, -52 / CCB DELTA FROM FILE1 TO FILE 2 014162 7765 014163 6777 014164 6377 014165 7772 014166 3641 014167 5037 014170 2515 014171 5022 014172 3623 014173 3671 014174 0255 014175 5000 014176 3611 014177 0377 4200 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 15 / WRITE THE OUTPUT BUFFER 014200 0000 WRITE, 0000 014201 4777' JMS CTRLC 014202 1232 TAD FULLSW 014203 7640 SZA CLA / IS FILE FULL? 014204 4776' JMS ERROR2 / YES 014205 7320 CLA STL / 13 BIT ARITH 014206 1231 TAD WBLN / BUFFER LENGTH IN BLOCKS 014207 1775' TAD MLEN / -BLOCKS LEFT 014210 7450 SNA / EXACT FIT? 014211 2232 ISZ FULLSW / YES-SET SWITCH FOR NEXT CALL 014212 3775' DCA MLEN 014213 7460 SZA SNL / WON'T FIT? 014214 4776' JMS ERROR2 / YES-NO MORE ROOM 014215 6202 CIF 0 014216 4423 JMS I OUTH 014217 4410 OFUNWD, 4410 / FUNCT. (OUTPUT,4 PAGES,FIELD 1) 014220 5400 OBUF / BUFFER ADDRESS 014221 0000 OBLK, 0 014222 4774' JMS ERROR7 / OUTPUT ERROR 014223 1231 TAD WBLN 014224 1221 TAD OBLK 014225 3221 DCA OBLK / BUMP FOR NEXT TIME 014226 4233 JMS OINIT / RESET BUFFER POINTERS 014227 4777' JMS CTRLC / SAFE 014230 5600 JMP I WRITE 014231 0002 WBLN, 2 / BUFFER LENGTH IN BLOCKS (SHORTEN FOR LAST WRITE) 014232 0000 FULLSW, 0 / SET TO NONZERO IF LAST WRITE FILLED OUTPUT FILE / INITIALIZE OUTPUT BUFFER PARAMETERS 014233 0000 OINIT, 0000 014234 1373 TAD (OBUF 014235 3772' DCA OWD / OUTPUT POINTER 014236 1371 TAD (-1400 014237 3024 DCA OCNT / OUTPUT CHAR COUNTER 014240 5633 JMP I OINIT / OPEN INPUT FILE 014241 0000 FLGET, 0000 014242 1641 TAD I FLGET / GET HANDLER WORD (ARG1) 014243 3267 DCA FLHAND / BECOMES ARG TO FETCH 014244 2241 ISZ FLGET 014245 1641 TAD I FLGET / GET ENTRY WORD ADDRESS (ARG2) / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 15-1 014246 3347 DCA FDEVNT 014247 2241 ISZ FLGET 014250 1641 TAD I FLGET / GET FILE WORDS ADDR (ARG3) 014251 3350 DCA FDEVWD / POINTS TO DEVICE WORD 014252 2241 ISZ FLGET 014253 1641 TAD I FLGET / (ARG4) 014254 3351 DCA FLENPT / POINTS TO LENGTH WORD 014255 2241 ISZ FLGET 014256 1641 TAD I FLGET / (ARG5) 014257 3352 DCA FSTBWD / POINTS TO START BLOCK WORD 014260 2241 ISZ FLGET 014261 1641 TAD I FLGET / (ARG6) 014262 3353 DCA FEBWD / POINT TO END BLOCK WORD 014263 2241 ISZ FLGET / POINT TO RETN 014264 1750 TAD I FDEVWD / GET DEVICE # 014265 4770 JMS I (USR 014266 0001 1 / FETCH HANDLER 014267 0000 FLHAND, 0 / BECOMES ENTRY ADDR 014270 4767' JMS ERROR4 / FETCH FAILED 014271 1267 TAD FLHAND 014272 3747 DCA I FDEVNT / PUT ENTRY ADDR IN PG 0 WORD 014273 1350 TAD FDEVWD 014274 7001 IAC 014275 3306 DCA FLSTB / POINTS TO NAME WORDS 014276 1706 TAD I FLSTB // GET THE 1ST FILENAME WORD 014277 7640 SZA CLA // IS A FILENAME SPECIFIED? 014300 5303 JMP .+3 // YES, USE IT 014301 1366 TAD (7606) // NO, USE 1ST INPUT FILENAME 014302 3306 DCA FLSTB // SET UP POINTER TO IT 014303 1750 TAD I FDEVWD / GET DEVICE # 014304 4770 JMS I (USR 014305 0002 2 / LOOKUP 014306 0000 FLSTB, 0 / POINTS TO NAME. BECOMES ST BLK 014307 0000 FLEN, 0 / BECOMES -FILE LENGTH 014310 4324 JMS FLGER / LOOKUP ERROR 014311 1307 TAD FLEN 014312 3751 DCA I FLENPT / SAVE FILE LENGTH 014313 1306 TAD FLSTB 014314 3752 DCA I FSTBWD / SAVE FILE START BLOCK 014315 1307 TAD FLEN 014316 7041 CIA 014317 1306 TAD FLSTB 014320 7041 CIA 014321 3753 DCA I FEBWD / -(LAST BLOCK+1) 014322 1306 TAD FLSTB / RETURN WITH START BLOCK IN AC 014323 5641 JMP I FLGET / LOOKUP ERROR, TRY AGAIN WITHOUT DEFAULT EXTENSION 014324 0000 FLGER, 0000 014325 7600 F7600, 7600 / (AC) MAY NOT BE 0 014326 1350 TAD FDEVWD / FILE PTR / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 15-2 014327 1365 TAD (-7605 / 1ST FILE IS AT 7605 014330 7650 SNA CLA / WHICH ONE IS THIS? 014331 1364 TAD (IF1-IF2 / 1ST 014332 1363 TAD (IF2+1 / 2ND 014333 3337 DCA FLSTB2 / POINT TO PROPER NAME 014334 1750 TAD I FDEVWD / DO ANOTHER LOOKUP 014335 4770 JMS I (USR 014336 0002 2 014337 0000 FLSTB2, 0 014340 0000 0 014341 4767' JMS ERROR4 / REAL ERROR THIS TIME 014342 1337 TAD FLSTB2 / COPY RESULTS TO OTHER CALL 014343 3306 DCA FLSTB 014344 1340 TAD FLSTB2+1 014345 3307 DCA FLEN 014346 5724 JMP I FLGER 014347 0000 FDEVNT, 0 / POINT TO DEVICE ENTRY ADDR WORD 014350 0000 FDEVWD, 0 / POINT TO DEVICE WORD 014351 0000 FLENPT, 0 / POINT TO LENGTH WORD 014352 0000 FSTBWD, 0 / POINT TO START BLOCK WORD 014353 0000 FEBWD, 0 / POINT TO END BLOCK WORD 014363 2406 014364 7773 014365 0173 014366 7606 014367 5124 014370 0200 014371 6400 014372 3726 014373 5400 014374 5121 014375 2063 014376 5126 014377 5104 4400 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 16 / SET INPUT AND OUTPUT FILE DEFAULTS HERE 014400 0000 DEFALT, 0000 / INQUIRE ABOUT TTY: FOR DEFAULT AND /H INFORMATION 014401 3205 DCA .+4 014402 4777 JMS I (USR 014403 0012 12 / INQUIRE 014404 5524 5524 / TTY: ENCODED 014405 0000 TTDVNO, 0 / BECOMES DEVICE # 014406 0000 0 / BECOMES ENTRY ADDR (IGNORED) 014407 7600 D7600, 7600 / ERROR (IGNORE HERE, FETCH WILL FIND IT) 014410 1607 TAD I D7600 / OUTPUT DEVICE # 014411 7450 SNA / SPECIFIED? 014412 1205 TAD TTDVNO / NO-DEFAULT TO TTY: 014413 3607 DCA I D7600 / IN EITHER CASE, PUT IT IN PROPER PLACE / DEFAULT OUTPUT EXTENSION TO ".LS" 014414 1776 TAD I (7601 / 1ST WORD OF OUTPUT FILE NAME 014415 7650 SNA CLA / SPECIFIED? 014416 5223 JMP DS1 / NO-DON'T CHANGE EXTENSION 014417 1775 TAD I (7604 / YES-CHECK FOR SPECIFIED EXTENSION 014420 7450 SNA / SPECIFIED? 014421 1374 TAD (1423 / NO-FORCE ".LS" 014422 3775 DCA I (7604 / & PUT BACK 014423 1022 DS1, TAD SLASHI / /I SWITCH 014424 7650 SNA CLA / SET? 014425 5600 JMP I DEFALT / NO-DON'T APPLY DEFAULT INPUT EXTENSIONS / COPY INPUT FILE SPECS TO SAVE AREA / IN CASE "DEFAULT" EMULATION REQUIRED 014426 1375 TAD (7604 / INPUT AREA-1 014427 3010 DCA XR10 014430 1373 TAD (IF1-1 / SAVE AREA-1 014431 3011 DCA XR11 014432 1372 TAD (-12 / 12 WORDS IN TWO SPECS 014433 3025 DCA TMP 014434 1410 TAD I XR10 / COPY 014435 3411 DCA I XR11 014436 2025 ISZ TMP 014437 5234 JMP .-3 / NOW SET INPUT DEFAULTS IF REQUIRED (/I & NO EXTENSION) 014440 1771 TAD I (7606 / YES-FORCE ".SV" IF NONE 014441 7650 SNA CLA / NAME THERE? 014442 5247 JMP DS3 / NO-NO EXTENSION 014443 1770 TAD I (7611 / YES-GET EXTENSION / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 16-1 014444 7450 SNA / THERE? 014445 1367 TAD (2326 / NO-FORCE ".SV" 014446 3770 DCA I (7611 014447 1766 DS3, TAD I (7613 / SAME STUFF FOR INPUT 2 014450 7650 SNA CLA 014451 5256 JMP DS3B / NO NAME 014452 1765 TAD I (7616 / GET EXTENSION 014453 7450 SNA 014454 1367 TAD (2326 / .SV IF NONE 014455 3765 DCA I (7616 014456 1030 DS3B, TAD LPBLK 014457 7130 STL RAR 014460 3030 DCA LPBLK / HALF AS MANY LINES PER "CORE PAGE" 014461 5600 JMP I DEFALT / TITLE: / PRINT RUN TITLE FROM CD LINE BUFFER 014462 0000 TITLE, 0000 014463 4764' JMS CRLF / PRINT CRLF TO FORCE TITLE TO LEFT MARGIN 014464 1607 TAD I D7600 / GET OUTPUT DEVICE # 014465 7041 CIA 014466 1205 TAD TTDVNO / COMPARED TO TTY: 014467 7650 SNA CLA / SAME? 014470 5322 JMP HCHK / YES-ONLY PRINT HEADER IF /H / NO-PRINT HEADER 014471 1363 TITL0, TAD (777 014472 1036 TAD CHAIN 014473 3010 DCA XR10 / CD OR KM LINE BUFFER PTR 014474 6201 TITL, CDF 0 / BUFFER FIELD 014475 1410 TAD I XR10 / GET NEXT CHAR 014476 6211 CDF 10 / THIS FIELD 014477 7450 SNA / EOL? 014500 5303 JMP TITE / YES 014501 4762' JMS PACK / NO-PACK AC INTO BUFFER 014502 5274 JMP TITL 014503 1021 TITE, TAD SLASHD / GET /D SWTCH 014504 7640 SZA CLA / SET? 014505 5310 JMP TITD / YES 014506 4764' JMS CRLF / NO-END LINE 014507 5662 JMP I TITLE 014510 1036 TITD, TAD CHAIN 014511 7041 CIA 014512 1010 TAD XR10 014513 1361 TAD (-1057 / CTR TO COL 60 014514 7500 SMA / PAST 60? 014515 7240 M1C / YES-PRINT ONE BLANK / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 16-2 014516 4760' JMS PMBL / SPACE OVER TO COLUMN 60 014517 4757' JMS PUTSTR 014520 2754 TXFL-1 / "FILES " 014521 5662 JMP I TITLE 014522 1356 HCHK, TAD (20 / MASK FOR /H 014523 0755 AND I (7643 / 1ST OPTION WORD 014524 7640 SZA CLA / SET? 014525 5271 JMP TITL0 / YES-GO PRINT HEADER 014526 1036 TAD CHAIN 014527 1354 TAD (1047 / NO-JUST INDENT RESULT LINE 014530 3010 DCA XR10 014531 5303 JMP TITE / FCHK: / CHECK FOR /F / IF PRESENT, OUTPUT A FORM FEED / (ALSO RESET CRLF LINE COUNT) / ALSO PUT A COUPLE OF CRLFS 014532 0000 FCHK, 0000 014533 7203 CLA IAC BSW / MASK FOR /F = 100 014534 0755 AND I (7643 / 1ST OPTION WORD 014535 7640 SZA CLA / SET? 014536 5342 JMP F5 / YES 014537 4764' FE, JMS CRLF / SKIP A COUPLE OF LINES 014540 4764' JMS CRLF 014541 5732 JMP I FCHK 014542 1353 F5, TAD (214 / FF 014543 4762' JMS PACK / TO OUTPUT BUFFER 014544 1752' TAD NLNES 014545 3751' DCA LINES / RESET CTR IN CRLF 014546 5337 JMP FE 014551 3637 014552 3640 014553 0214 014554 1047 014555 7643 014556 0020 014557 3641 014560 3611 014561 6721 014562 3671 014563 0777 014564 3623 014565 7616 014566 7613 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 16-3 014567 2326 014570 7611 014571 7606 014572 7766 014573 2377 014574 1423 014575 7604 014576 7601 014577 0200 4600 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 17 / THIS ROUTINE TOTALLY DECODES THE CCB OF A FILE / IT HAS 6 ARGUMENTS. ALL ARE ADDRESSES / ARG1= ADDR OF BUFFER CONTAINING CCB / ARG2= ADDR OF PAGE TABLE (400 WORDS) / ARG3= ADDR OF S.F. SAVE WORD / ARG4= ADDR OF S.A. SAVE WORD / ARG5= ADDR OF JSW SAVE WORD / ARG6= ADDR OF WORD CONTAINING MINUS THE FILE LENGTH / THESE ARGS ARE POINTED TO BY ONE ARG TO CCBDEC 014600 0000 CCBDEC, 0000 014601 1600 TAD I CCBDEC / GET ARG PTR 014602 3011 DCA XR11 / SAVE ARG POINTER 014603 2200 ISZ CCBDEC / POINT TO RETURN 014604 1411 TAD I XR11 / GET ARG 1 014605 3010 DCA XR10 014606 1411 TAD I XR11 / GET ARG 2 014607 3332 DCA PGBAS 014610 1411 TAD I XR11 / GET S.F. SAVE ADDRESS 014611 3333 DCA PI / SAVE IN POINTER 014612 1410 TAD I XR10 / GET 1ST CCB WORD 014613 3331 DCA NSEGS / LOCAL SAVE 014614 1331 TAD NSEGS 014615 7500 SMA 014616 4777' JMS ERROR9 / COUNTER MUST BE NEGATIVE 014617 1376 TAD (40 014620 7710 SPA CLA 014621 4777' JMS ERROR9 / TOO MANY 014622 1410 TAD I XR10 / GET 2ND CCB WORD 014623 3733 DCA I PI / START FIELD 014624 1733 TAD I PI 014625 0375 AND (7603 / MASK OFF THE FIELD BITS 014626 1374 TAD (-6203 / -(CDF CIF 014627 7640 SZA CLA / PROPER INSTRUCTION? 014630 4777' JMS ERROR9 / NO 014631 1411 TAD I XR11 / GET S.A. SAVE ADDRESS 014632 3333 DCA PI / SAVE IN POINTER 014633 1410 TAD I XR10 / GET 3RD CCB WORD 014634 3733 DCA I PI / START ADDRESS 014635 1411 TAD I XR11 / GET JSW SAVE ADDRESS 014636 3333 DCA PI / SAVE IN POINTER 014637 1410 TAD I XR10 / GET 4TH CCB WRD 014640 3733 DCA I PI / JSW 014641 1733 TAD I PI 014642 0373 AND (74 / STRIP TO BITS 6-9 (OS8 V3D) 014643 7640 SZA CLA / ALL CLEAR? 014644 4777' JMS ERROR9 / NO- 014645 7326 P2C 014646 3334 DCA CBL / FILE PAGES 0 & 1 ARE CCB / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 17-1 014647 1410 CCL1, TAD I XR10 / GET 1ST OF DOUBLE-WORD 014650 3025 DCA TMP 014651 1025 TAD TMP 014652 0372 AND (377 014653 7640 SZA CLA 014654 4777' JMS ERROR9 / ADDR MUST BE MULTIPLE OF 400 014655 1025 TAD TMP 014656 7106 CLL RTL;RTL 014657 7006 014660 3333 DCA PI / LINK IS STILL IMPORTANT 014661 1410 TAD I XR10 / GET 2ND HALF 014662 3025 DCA TMP 014663 1025 TAD TMP 014664 0371 AND (70 014665 1333 TAD PI 014666 7006 RTL 014667 1332 TAD PGBAS 014670 3013 DCA XR13 / PAGE TABLE ADDR FOR THESE PAGES 014671 1025 TAD TMP 014672 0370 AND (4007 014673 7640 SZA CLA 014674 4777' JMS ERROR9 / UNUSED BITS MUST BE 0 014675 1025 TAD TMP 014676 0367 AND (3700 014677 7450 SNA 014700 7130 STL RAR / 0 MEANS 40 PAGES 014701 7112 CLL RTR;RTR;RTR 014702 7012 014703 7012 014704 7041 CIA 014705 3333 DCA PCTR / # PAGES COUNTER FOR THIS GROUP 014706 1334 TAD CBL 014707 3413 DCA I XR13 / PUT FILE PAGE # IN CORE PAGE WORD 014710 2334 ISZ CBL / BUMP CURRENT PAGE 014711 2333 ISZ PCTR / THRU WITH THIS GROUP? 014712 5306 JMP .-4 / NO 014713 2334 ISZ CBL / YES-ROUND UP TO NEXT WHOLE BLOCK 014714 7344 CLL STA RAL / AC=7776 014715 0334 AND CBL 014716 3334 DCA CBL / DOUBLE WORDS ALWAYS START ON BLOCK BOUNDARY 014717 2331 ISZ NSEGS / THRU WITH DOUBLE WORDS? 014720 5247 JMP CCL1 / NO 014721 1411 TAD I XR11 014722 3333 DCA PI 014723 1334 TAD CBL 014724 7110 CLL RAR 014725 1733 TAD I PI 014726 7740 SMA SZA CLA 014727 4777' JMS ERROR9 / OFF END OF FILE 014730 5600 JMP I CCBDEC / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 17-2 014731 0000 NSEGS, 0 014732 0000 PGBAS, 0 014733 0000 PI, 0 4733 PCTR= PI / SAME LOCATION. SHOULDN'T CONFLICT 014734 0000 CBL, 0 014735 5377 CCBG1, OBUF-1 014736 6377 PGTAB1-1 014737 4062 SF1 014740 4063 SA1 014741 4075 JSW1 014742 2270 BLEFT1 014743 5777 CCBG2, OBUF+400-1 014744 6777 PGTAB2-1 014745 4071 SF2 014746 4072 SA2 014747 4103 JSW2 014750 2271 BLEFT2 / ROUTINE TO ZERO THE PAGE TABLES BEFORE CCB DECODE 014751 0000 CCBZER, 0000 014752 1336 TAD CCBG1+1 / PAGE TABLE ADDRESS (FILE 1) 014753 3011 DCA XR11 014754 1344 TAD CCBG2+1 / PAGE TABLE ADDRESS (FILE 2) 014755 3012 DCA XR12 014756 1366 TAD (-400 014757 3333 DCA PCTR / 32K WOULD BE 256 PAGES 014760 3411 DCA I XR11 014761 3412 DCA I XR12 014762 2333 ISZ PCTR 014763 5360 JMP .-3 014764 5751 JMP I CCBZER 014766 7400 014767 3700 014770 4007 014771 0070 014772 0377 014773 0074 014774 1575 014775 7603 014776 0040 014777 5117 5000 PAGE / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 18 / PRINT 5 DIGIT PAGE ADDRESS 015000 0000 PAGOUT, 0000 015001 3033 DCA PGSW / AC=0 OR -1 015002 1600 TAD I PAGOUT / GET PAGE VALUE 015003 7112 CLL RTR;RTR;RTR 015004 7012 015005 7012 015006 3025 DCA TMP / SAVE 12 BIT ADDRESS 015007 1025 TAD TMP 015010 7004 RAL 015011 4777' JMS PDIG / PRINT FIELD DIGIT 015012 1025 TAD TMP 015013 0776' AND P7600 / CLEAR NON PAGE BITS 015014 2033 ISZ PGSW / END PAGE? 015015 1375 TAD (177 / YES-SET LOW BITS 015016 4774' JMS OCTOUT / PRINT 4 DIGITS 015017 3671 PACK 015020 2200 ISZ PAGOUT 015021 5600 JMP I PAGOUT 0033 PGSW= PGPTR1 / 2ND USE FOR PGPTR1. SHOULDN'T CONFLICT / PRINT START ADDRESS 015022 0000 SAOUT, 0000 015023 4773' JMS PUTSTR 015024 2714 MESC1-1 / "S.A.= " 015025 1622 TAD I SAOUT / START "CDF CIF" IS ARG1 015026 7012 RTR;RAR / MOVE FIELD TO BITS 9-11 015027 7010 015030 4777' JMS PDIG / PACK FIELD DIGIT 015031 2222 ISZ SAOUT 015032 1622 TAD I SAOUT / START ADDRESS IS ARG2 015033 4774' JMS OCTOUT / PRINT LOW 4 DIGITS 015034 3671 PACK 015035 2222 ISZ SAOUT / POINT TO RETURN 015036 5622 JMP I SAOUT / PRINT JSW 015037 0000 JSWOUT, 0000 015040 4773' JMS PUTSTR 015041 2720 MESC2-1 / "JSW= " 015042 1637 TAD I JSWOUT / JSW IS ARG1 015043 4774' JMS OCTOUT / PACK 4 DIGITS 015044 3671 PACK / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 18-1 015045 2237 ISZ JSWOUT 015046 5637 JMP I JSWOUT / INITIALIZE PAGE ORGANIZATION / USED TO SET GROUPS PER LINE & LINES PER BLOCK / /T REDUCES THE PAGE SIZE FOR TTY OPERATION 015047 0000 PAGSET, 0000 015050 4772' JMS OINIT / INIT OUTPUT BUFFER PARAMS 015051 1771 TAD I (7644 / 2ND OPTION WORD 015052 0370 AND (20 / MASK FOR /T 015053 7640 SZA CLA / /T? 015054 5267 JMP PAGS5 / YES-SMALL PAGES 015055 1367 TAD (-52 015056 3766' DCA DELTAC / CCB OUTPUT DELTA IF /C/I 015057 7344 M2C / NO-"NORMAL" SIZE PAGES 015060 3031 DCA NGRPS / 2 GROUPS PER LINE 015061 1365 TAD (-40 015062 3030 DCA LPBLK / 40 LINES PER BLOCK 015063 1367 TAD (-52 015064 3032 DCA SEGSIZ / 52 CHARS PER SEGMENT 015065 1364 TAD (-100 / 100 LINES PER PAGE ON OUTPUT 015066 5300 JMP PAGS9 015067 1363 PAGS5, TAD (-25 015070 3766' DCA DELTAC 015071 7240 M1C 015072 3031 DCA NGRPS / 1 GROUP PER LINE 015073 1364 TAD (-100 015074 3030 DCA LPBLK / 100 LINES PER BLOCK 015075 1363 TAD (-25 015076 3032 DCA SEGSIZ / 25 CHARS PER SEGMENT 015077 1362 TAD (-70 / 70 LINES PER PAGE ON OUTPUT 015100 3761' PAGS9, DCA LINES 015101 1761' TAD LINES 015102 3760' DCA NLNES 015103 5647 JMP I PAGSET / CHECK FOR ^C ON KBD 015104 0000 CTRLC, 0000 015105 7300 CLA CLL / SAFE 015106 6031 KSF / KEY STRUCK? 015107 5704 JMP I CTRLC / NO 015110 6034 KRS / YES-READ 015111 0375 AND (177 / STRIP PARITY BIT 015112 1357 TAD (-3 / COMPARE TO 7 BIT ^C 015113 7650 SNA CLA / =^C? 015114 5756' JMP GIVEUP / YES-RETURN TO OS/8 015115 6032 KCC / NO-CLEAR KBD FLAG / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 18-2 015116 5704 JMP I CTRLC / & RETURN TO CALLER 015117 0000 ERROR9, 0 015120 2332 ERROR8, ISZ ERROR 015121 2332 ERROR7, ISZ ERROR 015122 2332 ERROR6, ISZ ERROR 015123 2332 ERROR5, ISZ ERROR 015124 2332 ERROR4, ISZ ERROR 015125 2332 ERROR3, ISZ ERROR 015126 2332 ERROR2, ISZ ERROR 015127 2332 ERROR1, ISZ ERROR 015130 4755 JMS I (USR 015131 0007 7 / ERROR 015132 0001 ERROR, 1 / ERROR NUMBER 015155 0200 015156 2456 015157 7775 015160 3640 015161 3637 015162 7710 015163 7753 015164 7700 015165 7740 015166 4151 015167 7726 015170 0020 015171 7644 015172 4233 015173 3641 015174 3727 015175 0177 015176 4054 015177 3600 5200 PAGE 0001 FIELD 1 2000 *OCSTA $$$ / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 19 ALT 2453 DOIT 2214 HE1 3413 MESL 2700 ANYOUT 0035 DOLI 2237 HE2 3471 MESNA 2730 APACK 3075 DOLIL 2252 HE3 3422 MESNB 2735 A7605 2101 DOLOOP 2273 HE4 3431 MESNC 2745 A7612 2207 DONE 2412 HE8 3456 MESND 2752 BLEFT1 2270 DONE1 2433 HE9 3464 MESR 2713 BLEFT2 2271 DONE2 2440 HGP 3527 MESS 3561 BLOUT 3752 DOUL 3003 HL5 3500 MLEN 2063 BUNCH 3136 DOUT 3000 HL6 3503 MOVEBL 2525 CBL 4734 DO3 2304 HL6B 3524 M1C 7240 CCBDEC 4600 DS1 4423 HL7 3514 M2C 7344 CCBG1 4735 DS3 4447 HMES 3531 M3C 7346 CCBG2 4743 DS3B 4456 HOUT 3473 NEED1 3324 CCBOUT 4057 DUMPSW 0002 HWD 3526 NEED2 3346 CCBZER 4751 DUMP2S 0003 IBLEN 0026 NGRPS 0031 CCL1 4647 D7600 4407 IBUF1 2000 NLNES 3640 CDMP1 2631 EBCNT 0027 IBUF2 4000 NODEC 2010 CDMP2 2640 EBLK1 3227 IFNSV1 3230 NONBL 3134 CHAIN 0036 EBLK2 3257 IFNSV2 3200 NOUT 2451 CHCNT 3135 ERROR 5132 IFNWD1 3220 NSEGS 4731 CHMSK 2662 ERROR1 5127 IFNWD2 3250 OBLK 4221 CHP1 2663 ERROR2 5126 IF1 2400 OBUF 5400 CHP3 2664 ERROR3 5125 IF2 2405 OCL 3735 CH1 3557 ERROR4 5124 IHAND1 6601 OCNT 0024 CH1B 3551 ERROR5 5123 IHAND2 7201 OCSTA 2000 CH1C 3555 ERROR6 5122 IINIT 2477 OCTMP 3611 COMA 2626 ERROR7 5121 INBLK1 3222 OCTOUT 3727 COMB 2645 ERROR8 5120 INBLK2 3252 OFFV 3530 COMC 2621 ERROR9 5117 INH1 0006 OFUNWD 4217 COME 2654 FCHK 4532 INH2 0020 OHANA 2051 COMHED 3535 FDEVNT 4347 ISTB1 3353 OHAND 6201 COMN 2656 FDEVWD 4350 ISTB2 3354 OINIT 4233 COMPAR 2600 FE 4537 IWD1 0000 OUTH 0023 CORBL 4056 FEBWD 4353 IWD2 0001 OWD 3726 CORH 4044 FINC 2331 JSWOUT 5037 PACK 3671 CORL 4026 FINI 2322 JSW1 4075 PAGOUT 5000 COROUT 4000 FINISH 2312 JSW2 4103 PAGSET 5047 CO2 4073 FLEN 4307 LBUF1 1400 PAGS5 5067 CO4 4104 FLENPT 4351 LBUF2 1600 PAGS9 5100 CO6 4122 FLGER 4324 LIM 0034 PA1 3700 CRLF 3623 FLGET 4241 LINES 3637 PBL 3605 CR0 3073 FLHAND 4267 LINWD 3140 PCMA 2030 CR1 3100 FLSTB 4306 LIN5 3021 PCNT 3600 CR1E 3102 FLSTB2 4337 LIN6 3024 PCTR 4733 CR2 3122 FSTBWD 4352 LNCNT 3141 PDIG 3600 CR2E 3124 FULLSW 4232 LPACK1 3142 PGBAS 4732 CR4 3126 F5 4542 LPACK2 3150 PGCTR 2267 CR5 3127 F7600 4325 LPBLK 0030 PGEOT 4053 CR9 3132 GIVEUP 2456 MASK 2660 PGPTR1 0033 CTRLC 5104 GROUP 3137 MAX1 3147 PGPTR2 0034 DCHK 2515 HA1 3440 MAX2 3155 PGP1 4135 DEFALT 4400 HA2 3441 MESB 2670 PGP2 4146 DELTAC 4151 HCHK 4522 MESC1 2715 PGSW 0033 DIGCNT 3600 HEADER 3400 MESC2 2721 PGTAB1 6400 DMASK 2661 HEAD2 3474 MESC3 2725 PGTAB2 7000 / OCTAL COMPARE V50 PAL8-V50X 13-JUL-87 PAGE 19-1 PI 4733 PMBL 3611 PSAV 3725 PSW 3673 PUTADR 3600 PUTSTR 3641 PUT1 3647 P1C 7201 P2C 7326 P2000C 7332 P7600 4054 RD11 3215 RD21 3245 READIC 3355 READII 3306 READIN 3260 READI2 3330 READ1 3200 READ2 3230 RELBK2 0005 RELBLK 0004 ROR6 3760 SAOUT 5022 SA1 4063 SA2 4072 SEGSIZ 0032 SETSW 2460 SF1 4062 SF2 4071 SLASHD 0021 SLASHI 0022 STBLK 2062 TITD 4510 TITE 4503 TITL 4474 TITLE 4462 TITL0 4471 TMP 0025 TTDVNO 4405 TTO6 3660 TWOIN 2200 TXFL 2755 USR 0200 WBLN 4231 WPAK 3605 WRITE 4200 XR10 0010 XR11 0011 XR12 0012 XR13 0013 XR14 0014 ERRORS DETECTED: 0 LINKS GENERATED: 166