8 22_= #OPT K0PMCHECK=0 11 23DW #LIS K0PMCHECK>K0POST>K0ALLGEO 4 24D6 # 17 24XQ ...#SEG PMCHECK84 [KAREL KOSKUBA-DIAG 16 257J ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 25CB [ 19 25X2 [ THIS SEGMENT CONTAINS A ROUTINE FOR CHECKSUMMING 19 26BL ...[ THE FIXED CORE SEGMENTS AND ALL CHAPTERS ON THE 10 26W= [ CHAPTER CHAIN 19 27*W [ ONLY DISCREPANT LOCATIONS WILL BE PRINTED UNLESS 19 27TG [ A B/S VERSION IS UNOBTAINABLE IN WHICH CASE 1024 18 28*6 [ WORDS OF THE CORE VERSION WILL BE PRINTED. 20 28SQ [ THIS SEGMENT ALSO OUTPUTS A LIST OF NOISY CHAPTERS 9 29#B [ IN CORE 4 29S2 [ 9 2=?L 8HPMCHECK 4 2=R= # 9 2?=W # ENTRY POINT TABLE 4 2?QG # 11 2#=6 ... SEGENTRY K1PMCHECK,XK1PMCHECK 17 2#PQ ...JPMCHECKREL [UPDATED BY NEWFIXED 11 2*9B ...REL +AENDCHAPS-DDATUM 14 2G5L ...PMCHECKEND +ZPMCHECK [END OF SEG 8 2GK= ...PMINPRINEND +0 18 2TSL XBCHAP +BCHAP [ BASE OF CHAPTER CHAIN 8 2W#= X45 +45 8 2WRW X512 +512 8 2X?G X1025 +1025 8 2XR6 ...XDSPARE +0 8 2Y=Q ...WORKSPACE +0 18 2YQB XLINK7 +0 [LINK FOR XJCON4 18 2_=2 XLINK7A +0 [LINK FOR SEGCHECK 8 2_PL XLINK0 +0 18 329= XLEN +0 [LENGTH TO BE SEGCHECKED 16 32NW POINT5 +0 [POINTER TO CORE 16 338G POINT4 +0 [POINTER TO B/S 19 33N6 XCAS +0 [CONSECUTIVE ADDRESS SWITCH 14 347Q XCOUNT +0 [COUNT 17 34MB RELSWITCH +0 [REL ADDRESS SWITCH 15 3572 X4WORD +0 [CORE VERSION 15 35LL X5WORD +0 [B/S VERSION 19 366= XCORAD +0 [CORE ADDRESS METOPHORICALLY 19 36KW XSEGEND +0 [END OF SEGMENT CORE VERSION 8 375G XFPTR +0 19 37K6 XBACK +0 [SET=1 IF BACKWARD CHAINING 16 384Q XLINKCP +0 [CORE PRINT LINK 18 38JB XDSEG +0 [B/S ADDRESS OF SEGMENT 17 3942 XLSEG +0 [LENGTH OF SEGMENT 16 39HL XADSP +0 [ADDRESS ON DRUM 8 3=3= PARTSUM +0 15 3=GW SPCORE +0 [XCESS CORE 16 3?2G REMAINDER +0 [XCESS SEGMENT 8 3?G6 XLBSR +0 8 3?_Q XMOD +0 21 3#FB NODISLOCSW +0 [SET -VE IF DISCREPANT LOCATION FOUND 20 3#K? ...SPLIT +0 [SET=0 IF WHOLE SEGMENT SET=1 IF 21 3#P8 ... [SPLIT FIXED CORE SEGMENT SET -VE IF 19 3#T5 ... [DISCREPANT LOCATION FOUND 9 3#_2 #SKI FNOISE 4 3*DL ( 19 3*Y= XHPRIN +0 [NOISY CORE HEADING INDICATOR 19 3BCW XOUTM +0 [NOISY CORE OUTPUT MODIFIER 8 3BXG X27 +27 11 3L9W XNOISY 16HNOISY CHAPTERS 4 3L=_ ...) 18 3L?N ...X10QUERY #02260000 [RANGE FOR PROGRAM FILE 19 3L#C ...MEEPBSVOL #03000000 [EMULATING PROGRAM FILE RANGE 9 3L*7 ...MASK1 #37777777 9 3LB= ...MASK2 #17777777 9 3LC* ...MASK3 #40000000 11 3LDD ...XHEAD1 16H CORRUPT 17 3LFH ...XHEAD2 40H DISCREPANT LOCATION CORE VERSION 17 3LGL ... 40H BACKI 11 3LHP ... 16HNG STORE VERSION 17 3LJS ...REDTAPE 40HREDTAPE INVALID CHAPTER POSSIBL 10 3LKX ... 16HY OVERWRITTEN 14 3LM2 ...XFX1MESS 28H SEE CURRENT CHAPTER LISTING 15 3LN5 ...XMESS 32HNO DISCREPANT LOCATIONS FOUND 13 3LPG XFCMESS 24HSEE FIXED CORE LISTING 6 3LRD ...#UNS JPSCF 4 3LTB ...( 18 3LX# ...XSCFH2 40HCOMPARISON OF CHAPTER IN CORE AND ON SCF 18 3L_= ...XSCFH3 40HCOMPARISON OF CHAPTER IN CORE AND ON ICF 11 3M38 ...XMAXCHAP +AENDCHAPS-KTAB 9 3M56 ...XCHAPTAB +DCHTABLE 4 3M74 ...) 4 3M96 # 4 3MNQ # 19 3N8B # ROUTINE FOR CONVERTING A BINARY NUMBER INTO FOUR FORMATS 16 3NN2 # DECIMAL(N.N),CHARACTERS,OCTAL,AND INSTRUCTION 8 3P7L # ENTRY X7=LINK 10 3PM= # X5=BINARY NUMBER 11 3Q6W # JPMOD=LP MODIFIER 10 3QLG # EXIT X5=BINARY NUMBER 14 3R66 # OTHER ACCUMULATORS ARE UNDEFINED 11 3RKQ # JPMOD=LP MODIFIER 4 3S5B # 5 3SK2 XJCON4 16 3T4L ... STO 7 XLINK7(1) [PRESERVE LINK 17 3TJ= ... CALL 7 (JDECP) [CONVERT TO DECIMAL 17 3W3W ... CALL 7 (JUP) [UPDATE LP MODIFIER 8 3WHG +2 17 3X36 ... CALL 7 (JCHA) [CONVERT TO CHAS 8 3XGQ ... CALL 7 (JUP) 8 3Y2B +2 17 3YG2 ... CALL 7 (JOCT) [CONVERT TO OCTAL 8 3Y_L ... CALL 7 (JUP) 8 3_F= +2 8 3_YW LDX 4 JPMOD 10 42DG ... LDN 6 K1PMINPRIN 9 42Y6 ... LDX 1 FXINPRIN 8 43CQ ... SMO FXINPRIN 8 43XB CALL 0 (6) 8 4464 ... LDX 1 FXPM1 9 44#Q ... LDX 7 XLINK7(1) 7 44HD ... EXIT 7 0 4 44Q6 ...# 4 44YS ...# 4 457G ...# 16 45B= # ROUTINE TO COMPARE TWO AREAS OF CORE PRINTING 10 45TW # DISCREPANT LOCATIONS 4 46*G # 8 46T6 # ENTRY X7=LINK 17 47#Q # X4 POINTS TO CORE VERSION,B0 SET INDICATES 13 47SB # RELATIVE ADDRESS REQUIRED 15 48#2 # X5 POINTS TO BACKING STORE VERSION 18 48RL # IF ZERO A CONTIGUOUS AREA OF CORE IS PRINTED 16 49?= # X6 LENGTH OF AREA TO PRINT OR COMPARE 4 49QW # 13 4==G # EXIT ALL ACCUMULATORS UNDEFINED 4 4=Q6 # 5 4?9Q SEGCHECK 12 4?PB ... STO 7 XLINK7A(1) [ 18 4#92 ... STO 6 XLEN(1) [ PRESERVE LINK LENGTH 16 4#NL ... STO 5 POINT5(1) [ AND POINTERS 21 4*8= ... STOZ XCAS(1) [ SET UP CONSECUTIVE ADDRESS SWITCH 14 4*MW ... STOZ XCOUNT(1) [ COUNT 18 4B7G ... STOZ NODISLOCSW(1) [NO DISCREPANT LOCATIONS 19 4C6Q ... STO 4 RELSWITCH(1) [RELATIVE ADDRESS NECESSARY 9 4CLB ... ANDX 4 MASK1(1) 12 4D62 ... STO 4 POINT4(1) [ 5 4DKL NEXTWORD 19 4F5= ... LDX 4 POINT4(1) [LOAD FIRST/NEXT WORD OF CORE 7 4FJW SMO 4 7 4G4G LDX 4 0 15 4GJ6 ... STO 4 X4WORD(1) [PRESERVE IT 19 4H3Q ... LDX 5 POINT5(1) [SEE IF BACKING STORE VERSION 18 4HHB BZE 5 PRINTCORE [IS ACCESSIBLE J IF NOT 7 4J32 SMO 5 7 4JGL LDX 5 0 16 4K2= ... STO 5 X5WORD(1) [AND PRESERVE IT 17 4KFW LDN 0 1 [UPDATE POINTER TO 15 4K_G ... ADS 0 POINT5(1) [BS VERSION 19 4LF6 TXU 4 5 [TEST CORE VERSION AGAINST BS 16 4LYQ BCC UPDATE [J IF NOT CORRUPT 14 4MDB ... CALL 7 (JUP) [ SPACE 8 4MY2 +74 15 4NCL CALL 7 XJCON4 [ AND CONVERT 13 4NX= ... CALL 7 (JUP) [ 8 4PBW -102 6 4PWG PRINTCORE 8 4QB6 ... CALL 7 (JUP) 8 4QTQ +6 9 4R*B ... LDX 5 MASK3(1) 20 4RT2 ... STO 5 NODISLOCSW(1) [SET AS DISCREPANT LOCATION FOUND 9 4S4S ... STO 5 SPLIT(1) 14 4S#L ... LDX 5 XCORAD(1) [SET UP 9 4SS= ... CALL 7 (JDECN) 16 4T?W ... CALL 7 (JUP) [CORE ADDRESS 8 4TRG +1 10 4W?6 ... LDX 5 RELSWITCH(1) 19 4WQQ BPZ 5 NORELAD [J IF REL ADDRESS UNNECESSARY 9 4X=B ... LDX 5 XCOUNT(1) 9 4XQ2 ... CALL 7 (JDECN) 8 4Y9L BRN SC1 5 4YP= NORELAD 17 4_8W ... CALL 7 (JUP) [SPACE AS IF RELADD 8 4_NG +7 8 5286 ...SC1 CALL 7 (JUP) 8 52MQ +4 17 537B ... LDX 5 X4WORD(1) [SET UP CORE VERSION 16 53M2 CALL 7 XJCON4 [IN FOUR FORMATS 17 546L ... LDX 0 XCOUNT(1) [TEST IF CONSECUTIVE 18 54L= ... TXU 0 XCAS(1) [ADDRESS TO THAT PRINTED 15 555W BCC SC2 [J IF IT IS 18 55KG ... CALL 7 (JPRINT2) [THROW A LINE AND PRINT 8 5656 BRN SC3 14 56JQ ...SC2 CALL 7 (JPRINT1) [PRINT 4 574B # 19 57J2 # A LINE HAS BEEN PRINTED SET THE CONSECUTIVE ADDRESS SWITCH 13 583L # TO BE EQUAL TO THE NEXT LINE COUNT 4 58H= # 9 592W ...SC3 LDX 0 XCOUNT(1) 7 59GG ADN 0 1 9 5=26 ... STO 0 XCAS(1) 5 5=FQ UPDATE 15 5=_B LDN 0 1 [UPDATE THE 14 5?F2 ... ADS 0 XCOUNT(1) [COUNT 19 5?YL ... ADS 0 XCORAD(1) [CORE ADDRESS (CALCULATED) 20 5#D= ... ADS 0 POINT4(1) [CORE POINTER (WHERE READ DOWN) 15 5#XW ... LDX 0 XCOUNT(1) [ FINISHED ? 21 5*CG ... TXU 0 XLEN(1) [TEST COUNT AGAINST LENGTH TO CHECK 15 5*X6 BCS NEXTWORD [NO SUCH LUCK 10 5*_P ... LDX 0 RELSWITCH(1) 15 5B4# ... BNG 0 QNODL [J IF CHAPTER 10 5B6X ... LDX 0 REMAINDER(1) 21 5B9G ... BNZ 0 XEXIT [J IF ONLY PART OF FIXED CORE SEGMENT 5 5B#5 ...QNODL 10 5BBQ ... LDX 0 NODISLOCSW(1) 19 5BWB ... BNZ 0 XEXIT [J IF DISCREPANT LOCATIONS FOUND 20 5C3J ... LDX 0 SPLIT(1) [WERE DISCREPANT LOCATIONS FOUND 21 5C8Q ... BNG 0 XEXIT [PREVIOUSLY ON SPLIT SEGMENT J IF YES 20 5CB2 ... PMESSAGE XMESS(1),8 [NO DISCREPANT LOCATIONS FOUND 16 5CTL ... CALL 7 (JPRINT1) [LEAVE A LINE 10 5D*= ... LDX 4 RELSWITCH(1) 19 5DSW BNG 4 SC4 [J IF NOT FIXED CORE SEGMENT 9 5F8K ... SMO FXPMDR 20 5FJ# ... TXL 4 JPMLEV [J IF SEGMENT NOT PRINTED ALREDY 19 5FY3 ... BCC SC5 [DURING FIXED CORE LISTING 19 5G?Q ... PMESSAGE XFCMESS(1),6 [OUTPUT F.C. CHAPTER MESS 10 5GMF ...XEXIT LDX 7 XLINK7A(1) 7 5H38 ... EXIT 7 0 9 5HBX ...SC4 ANDX 4 MASK1(1) 18 5HQL TXU 4 FX1 [J IF NOT CURRENT CHAPTER 8 5J== BCS SC5 20 5JPW ... PMESSAGE XFX1MESS(1),7 [OUTPUT CURRENT CHAPTER MESS 8 5K9G ... BRN XEXIT 9 5KD8 ...SC5 LDX 4 SPLIT(1) 20 5KLW ... BZE 4 SC6 [J IF WHOLE SEGMENT BEING CHECKED 21 5KTJ ... LDX 4 PMINPRINEND(1) [LOAD ADDR START SEGMENT WHEN SPLIT 8 5L4= ... BRN SC7 10 5L=Y ...SC6 LDX 4 RELSWITCH(1) 16 5LFL ...SC7 LDX 6 XLSEG(1) [RELOAD LENGTH 17 5LNB ... SBS 6 XCORAD(1) [RELOAD CORE ADDRESS 20 5M82 STOZ 5 [SET TO OUTPUT CONTIGUOUS AREA 15 5MML ... LDX 7 XLINK7A(1) [RELOAD LINK 19 5N7= BRN SEGCHECK [J TO OUTPUT CORRUPT CHAPTER 4 5NLW # 14 5P6G # ROUTINE TO SEARCH ALONG CHAPTER CHAIN 16 5PL6 # AND TO CHECK RED TAPE WORDS EXCEPT FOR BACK2 4 5Q5Q # 18 5QKB # ENTRY X2 & XFPTR = ADDRESS OF CURRENT BLOCK 15 5R52 # X0 = LINK ADDR. 10 5RJL #SKI FNOISE<1$1 4 5S4= ( 21 5SHW # EXIT 0 1 IF REDTAPE REASONABLE WITH X2 & XFPTR UPDATED 15 5T3G # TO POINT TO NEXT BLOCK 4 5TH6 # 21 5W2Q # EXIT 0 0 IF ALOGL INVALID.GIVING CORE PRINT AND MESSAGE 11 5WGB # OUTPUT. 16 5X22 # ALL ACCUMULATORS UNDEFINED 4 5XFL # 21 5X_= ...# EXIT TO (JPMSEG) WHEN END OF CHAIN OR TWO CHAIN BREAKS 4 5YDW ) 9 5YYG #SKI FNOISE 4 5_D6 ( 21 5_XQ # EXIT 0 2 IF REDTAPE REASONABLE WITH X2 & XFPTR UPDATED 15 62CB # TO POINT TO NEXT BLOCK 4 62X2 # 14 63BL # EXIT 0 1 IF ALOGL INVALID 4 63W= # 19 64*W # EXIT 0 0 WHEN END OF CHAIN OR TWO CHAIN BREAKS 4 64TG ) 5 65*6 SEARCH 18 65SQ LDX 2 FPTR(2) [LOAD ADDR.OF NEXT BLOCK 17 66#B LDX 3 BPTR(2) [J IF BPTR IN THIS 16 66S2 ... TXU 3 XFPTR(1) [BLOCK INCORRECT 8 67?L BCS S1 18 67R= ... TXU 2 XBCHAP(1) [J IF THIS BLOCK IS BCHAP 10 68=W #SKI FNOISE<1$1 9 68QG ... BCC (JPMSEG) 9 69=6 #SKI FNOISE 14 69PQ BCC (0) [EXIT 0 0 18 6=9B LDX 3 FPTR(2) [LOAD ADDR.OF NEXT BLOCK 19 6=P2 ...S2 STO 2 XFPTR(1) [STORE CURRENT BLOCK ADDR. 20 6?8L PMCORES 3,S1 [J IF NEXT BLOCK ADDR. ILLEGAL 9 6?N= LDX 7 ALOGL(2) 8 6#7W BZE 7 S1A 9 6#MG ... ANDX 7 MASK2(1) 9 6*76 ... TXL 7 X1025(1) 17 6*LQ BCC S1A [J IF ALOGL ILLEGAL 9 6B6B #SKIP FNOISE 7 6BL2 EXIT 0 2 10 6C5L #SKI FNOISE<1$1 7 6CK= EXIT 0 1 5 6D4W SEARCHB 18 6DJG LDX 2 BPTR(2) [LOAD ADDR.OF NEXT BLOCK 17 6F46 LDX 3 FPTR(2) [J IF FPTR IN THIS 16 6FHQ ... TXU 3 XFPTR(1) [BLOCK INCORRECT 8 6G3B BCS S1 18 6GH2 LDX 3 BPTR(2) [LOAD ADDR.OF NEXT BLOCK 8 6H2L BRN S2 19 6HG= ...S1 LDX 2 XBACK(1) [J IF ALREADY BACK CHAINING 10 6H_W #SKI FNOISE<1$1 9 6JFG ... BNZ 2 (JPMSEG) 9 6J_6 #SKI FNOISE 8 6KDQ ... BNZ 2 (0) 7 6KYB ... LDN 2 1 17 6LD2 ... STO 2 XBACK(1) [SET SWITCH IF NOT 19 6LXL LDN 2 BCHAP [SET FOR BACKWARD CHAINING 9 6MC= LDX 3 BPTR(2) 9 6MWW ... STO 2 XFPTR(1) 21 6NBG PMCORES 3,S1 [CHECK FIRST CHAPTER BLOCK ADDR.LEGAL 9 6NW6 BRN SEARCHB 4 6P*Q S1A 10 6PTB #SKI FNOISE<1$1 4 6Q*2 ( 9 6QJS ... STO 0 XLINK0(1) 10 6QSL ... CALL 0 XCOREPRINT 9 6R4D ... LDX 0 XLINK0(1) 7 6R#= EXIT 0 0 4 6RRW ) 9 6S?G #SKI FNOISE 7 6SR6 EXIT 0 1 4 6T=Q # 14 6TQB # ROUTINE TO OUTPUT A CONTIGUOUS AREA OF 6 6W=2 # CORE 15 6WPL # ALL ACCUMULATORS UNDEFINED ON EXIT 4 6X9= # 6 6XNW XCOREPRINT 15 6Y8G ... STO 0 XLINKCP(1) [ PRESERVE X0 9 6YN6 ... LDX 2 XFPTR(1) 8 6_MB LDN 4 A1(2) 10 7272 ... LDN 5 REDTAPE+6(1) 7 72LL MOVE 4 2 15 736= ... PMESSAGE REDTAPE(1),14 [ CORRUPT 16 73KW TXU 2 FX1 [ AVOID DUPLICATE 12 745G BCS NOTCCH [ 17 74K6 ... PMESSAGE XFX1MESS(1),7 [ PRINTING OF THE 16 754Q ... EXIT 0 0 [ CURRENT CHAPTER 5 75JB NOTCCH 10 7642 ... PMESSAGE XHEAD2(1),10 9 76HL ... CALL 7 (JPRINT1) 9 773= ... LDX 4 XFPTR(1) 20 77GW ADN 4 A1 [RELATE ADDRESS TO CHAP. START 9 782G ... STO 4 XCORAD(1) 16 78G6 ... ORX 4 MASK3(1) [ SET UP SEGCHECK 12 78_Q LDN 5 0 [ 8 79FB LDN 6 1024 12 79_2 CALL 7 SEGCHECK [ 10 7=DL ... LDX 0 XLINKCP(1) 7 7=Y= ... EXIT 0 0 4 7?CW # 16 7?XG # ROUTINE TO CHECKSUM A CONTIGUOUS AREA OF CORE 6 7#C6 # ENTRY 7 7#WQ # X4 LINK 10 7*BB # X6 START ADDRESS 10 7*W2 # X7 LENGTHOF BLOCK 6 7B*L # EXIT 10 7BT= # X5 RESULT OF SUM 4 7C#W # 5 7CSG SUMCHECK 10 7D#6 ... STOZ PARTSUM(1) 9 7DRQ ... TXL 7 X512(1) 8 7F?B BCS YXC 7 7FR2 SUM 5 0 9 7G=L ... SBX 7 X512(1) 8 7GQ= BZE 7 YXF 10 7H9W ... STO 5 PARTSUM(1) 9 7HPG ... ADX 6 X512(1) 9 7J96 ... TXU 7 X512(1) 8 7JNQ BCC YXE 7 7K8B YXC SMO 7 7 7KN2 YXE SUM 5 0 10 7L7L ... ADX 5 PARTSUM(1) 7 7LM= YXF EXIT 4 0 6 7LN5 ...XK1PMCHECK 4 7LNY ...# 16 7LPR ...# LOAD SEGMENT'S MODIFIER INTO X1 4 7LQL ...# 8 7LRF ... LDX 1 FXPM1 4 7LS# ...# 4 7LT7 ...# 20 7LW2 ...# READ DOWN THE TABLE OF FIXED-CORE SEGMENTS -- FIXINT 4 7LWT ...# 21 7LXN ...# AND THE INSTRUCTION CONVERSION ROUTINE -- PMINPRIN 4 7LYH ...# 15 7L_B ...# INTO CORE FOLLOWING PMCHECK. 4 7M29 ...# 18 7M34 ...# DYNAMICALLY CALCULATE REMAINING SPACE . 4 7M3X ...# 4 7M4Q ...# 15 7M5K ... ADS 1 PMCHECKEND(1) [ DATUMIZE 10 7M6D ... LDX 2 PMCHECKEND(1) 17 7M6K ... JBC NOEMU,,CPEMU [J IF NOT EMULATING 10 7M6Q ... LDX 0 MEEPBSVOL(1) 18 7M6X ... STO 0 X10QUERY(1) [RESET PROGRAM FILE RANGE 5 7M74 ...NOEMU 17 7M7? ... PMOVE FIXINT,2 [ READ DOWN FIXINT 8 7M86 ... LDX 1 FXPM1 9 7M8_ ... PMDLGET FIXINT,,2 18 7M9S ... ADX 2 PMCHECKEND(1) [ END OF FIXINT IN CORE 18 7M=M ... PMOVE PMINPRIN,2 [ READ DOWN PMINPRIN 8 7M?G ... LDX 1 FXPM1 10 7M#* ... PMDLGET PMINPRIN,,2 18 7M*8 ... ADX 2 FXINPRIN [ END OF PMINPRIN IN CORE 11 7MB3 ... STO 2 PMINPRINEND(1) 19 7MBW ... LDX 3 ENDFIX [ END OF PM'S WORKING SPACE 7 7MCP ... SBX 3 2 20 7MDJ ... STO 3 WORKSPACE(1) [ STORE AVAILABLE WORKING SPACE 9 7MFC ... PMDLGET SPARE,3 19 7MG= ... STO 3 XDSPARE(1) [ STORE B/S ADDRESS OF SPARE 4 7MH5 ...# 4 7MHY ...# 4 7MJR ...# 3 7MKL ... 9 7MLG #SKI FNOISE 4 7N66 ( 18 7NKQ # OUTPUT A LIST OF NOISY CHAPTERS ON THE CHAPTER CHAIN 4 7P5B # 16 7PK2 LDN 2 BCHAP [SET UP CHAINING 18 7Q4L ... STO 2 XFPTR(1) [FROM CHAPTER CHAIN BASE 9 7QJ= LDX 3 FPTR(2) 21 7R3W PMCORES 3,S1 [CHECK FIRST CHAPTER BLOCK ADDR.LEGAL 20 7RHG ...NC1 LDX 2 XFPTR(1) [LOAD CURRENT CHAP.BLOCK ADDR. 16 7S36 ... LDN 3 SEARCH(1) [CONTINUE FORWARD 13 7SGQ ... LDX 7 XBACK(1) [OR 14 7T2B BZE 7 NC2 [BACKWARD 14 7TG2 ... LDN 3 SEARCHB(1) [CHAINING 8 7T_L NC2 CALL 0 (3) 19 7WF= BRN NC5 [END OF CHAIN OR TWO BREAKS 7 7WYW BRN / 19 7XDG ... LDX 2 XFPTR(1) [LOAD BACK2 WORD OF CURRENT 16 7XY6 LDX 6 BACK2(2) [CHAPTER BLOCK 9 7YCQ SLL 6 CXSELECT 21 7YXB BPZ 6 NC1 [J IF BIT CXSELECT OF BACK2 NOT SET 9 7_C2 ... LDX 7 XHPRIN(1) 21 7_WL BNZ 7 NC3 [J IF NOISY HEADING ALREADY OUTPUT 7 82B= LDN 7 1 19 82TW ... STO 7 XHPRIN(1) [SET HEADING PRINTED SWITCH 17 83*G ... PMESSAGE XNOISY(1),4 [OUTPUT NOISY HEADING 17 83T6 ... CALL 7 (JPRINT1) [OUTPUT BLANK LINE 9 84#Q ...NC3 LDX 4 XOUTM(1) 18 84SB ... TXL 4 X27(1) [J IF ROOM FOR ANOTHER 17 85#2 ... BCS NC4 [4 WORDS IN LP BUFFER 21 85RL ... CALL 7 (JPRINT1) [OUTPUT FULL BUFFER OF CHAPTER NAME 20 86?= ... STOZ XOUTM(1) [RESET NO.OF WORDS USED IN BUFFER 7 86QW NC4 LDN 4 2 18 87=G ... ADS 4 XOUTM(1) [STEP LP BUFFER MOD.BY 2 9 87Q6 ... SMO XFPTR(1) 19 889Q LDN 5 A1 [LOAD ADDR.OF CHAPTER NAME 8 88PB LDX 6 JPMOD 17 8992 ... ADX 6 XOUTM(1) [LOAD OUTPUT ADDR. 17 89NL MOVE 5 2 [STORE CHAPTER NAME 18 8=8= ... ADS 4 XOUTM(1) [STEP LP BUFFER MOD.BY 2 8 8=MW BRN NC1 4 8?7G # 21 8?M6 ...NC5 CALL 7 (JPRINT1) [OUTPUT REMAINING NOISY CHAPTER NAM 4 8#6Q ) 4 8*62 # 4 8B5= # 5 8BJW START 21 8C4G ... LDX 2 PMCHECKEND(1) [LOAD THE ADDRESS OF THE FIRST/NEXT 20 8CJ6 LDX 4 0(2) [FOUR WORD ENTRY IN THE SEG.TABLE 17 8D3Q BZE 4 SG1 [J IF END OF TABLE 19 8DHB BNG 4 SG2 [J IF IT CAN WRITE TO ITSELF 19 8F32 ... STO 4 XDSEG(1) [STORE B/S ADDRESS OF SEGMENT 16 8FGL LDX 5 1(2) [LOAD AND STORE 17 8G2= ... STO 5 XLSEG(1) [LENGTH OF SEGMENT 19 8GFW ... ADX 4 REL(1) [CALCULATE AND STORE ADDRESS 17 8G_G ... STO 4 XCORAD(1) [WHEN GEORGE RUNNING 10 8HF6 ... ADX 4 XDSPARE(1) 16 8HYQ ... STO 4 XADSP(1) [OF CORE VERSION 17 8JDB ...# READ CORE VERSION DOWN INTO PMCORE AFTER PMINPRIN 17 8JY2 ... PMBSADD GEO,0,XLSEG(1),PMINPRINEND(1),XADSP(1) 8 8KCL ... LDX 1 FXPM1 10 8KX= ... STOZ PARTSUM(1) 11 8LBW ... LDX 6 PMINPRINEND(1) 9 8LWG ... LDX 7 XLSEG(1) 9 8MB6 CALL 4 SUMCHECK 18 8MTQ # SKIP IF THIS VERSION OF GIN IS PRIOR TO 514 10 8N*B #SKI 77?>513$513 20 8NT2 ... SBX 5 XDSEG(1) [SUBTRACT B/S ADDR FROM CHECKSUM 8 8P#L BZE 5 SG2 15 8PS= # THE SEGMENT IS CORRUPT SET UP HEADLINE AND 15 8Q?W # CHECK CORE VERSION AGAINST BACKING STORE 10 8QHN ... LDX 2 PMCHECKEND(1) 14 8QRG LDN 4 2(2) [SEGMENT 14 8R?6 ... LDN 5 XHEAD1(1) [NAME IN 7 8RQQ MOVE 4 2 16 8S=B ... CALL 7 (JPRINT1) [LEAVE A LINE 10 8SQ2 ... PMESSAGE XHEAD1(1),4 10 8T9L ... PMESSAGE XHEAD2(1),24 16 8TP= ... CALL 7 (JPRINT1) [LEAVE A LINE 4 8W8W # 18 8WNG ... LDX 3 XLSEG(1) [DETERMINE AND PRESERVE 16 8X86 ... ADX 3 PMINPRINEND(1) [THE END OF THE 15 8XMQ ... STO 3 XSEGEND(1) [CORE VERSION 20 8Y7B ... LDX 3 XLSEG(1) [[LOAD CORE AMOUNT STILL NEEDED 18 8YM2 ... LDX 5 WORKSPACE(1) [DETERMINE AND PRESERVE 16 8_6L SBX 5 3 [THE REMAINING 15 8_L= ... STO 5 SPCORE(1) [CORE SPACE 9 925W ... STOZ XMOD(1) 9 92*N ... STOZ SPLIT(1) 19 92KG ...# TEST IF ENOUGH CORE TO READ DOWN THE REST/WHOLE 11 9356 # OF THE CHAPTER 9 93JQ ...SG7 TXL 3 SPCORE(1) 19 944B BCC SG6 [ J IF NOT SUFFICIENT CORE 10 94J2 ... STOZ REMAINDER(1) 8 953L BRN SG9 9 95FS ...SG6 SBX 3 SPCORE(1) 9 95K* ... LDX 5 XDSEG(1) 20 95NW ... ANDN 5 #177 [GET DISPLACEMENT WITHIN BUCKET 20 95SC ... ADX 3 5 [ADD DISPLACEMENT TO REMAIBDER 17 95Y2 ... STO 3 REMAINDER(1) [REMAINING TO BE READ 7 964P ... LDN 3 1 21 969D ... STO 3 SPLIT(1) [SET SPLIT TO INDICATE SPLIT SEGMENT 9 96B8 ... LDX 3 SPCORE(1) 20 96K? ... SBX 3 5 [TRANSFER COUNT - DISPLACEMENT 9 96SB ...SG9 STO 3 XLBSR(1) 16 97=J ... PMBSADD GEO,0,XLBSR(1),XSEGEND(1),XDSEG(1) 8 97NQ ... LDX 1 FXPM1 9 986Y ... LDX 6 XLBSR(1) 10 98K6 ... LDX 5 XSEGEND(1) 11 993# ... LDX 4 PMINPRINEND(1) 9 99FG ... ADX 4 XMOD(1) 9 99XW CALL 7 SEGCHECK 10 9=CG ... LDX 3 REMAINDER(1) 8 9=X6 BZE 3 SG2 16 9?BQ ... LDX 4 XLBSR(1) [ UPDATE POINTERS 9 9?WB ... ADS 4 XMOD(1) 17 9#B2 ... ADS 4 XDSEG(1) [ UPDATE B/S ADDRESS 8 9#TL BRN SG7 4 9**= # 17 9*SW SG2 LDN 4 4 [UPDATE THE SEGMENT 16 9B#G ... ADS 4 PMCHECKEND(1) [TABLE POINTER 8 9BS6 BRN START 4 9C?Q # 4 9CRB # 12 9D?2 # ROUTINES FOR CHECKING CHAPTERS 4 9DQL # 4 9F== # 19 9FPW ...SG1 STOZ XBACK(1) [RESET BACKWARD CHAINING IND. 16 9G9G ... LDN 2 BCHAP [SET UP CHAINING 18 9GP6 ... STO 2 XFPTR(1) [FROM CHAPTER CHAIN BASE 9 9H8Q LDX 3 FPTR(2) 21 9HNB PMCORES 3,S1 [CHECK FIRST CHAPTER BLOCK ADDR.LEGAL 9 9J82 ...PC2 LDX 2 XFPTR(1) 9 9JML ... LDN 3 SEARCH(1) 9 9K7= ... LDX 7 XBACK(1) 8 9KLW BZE 7 PC1 10 9L6G ... LDN 3 SEARCHB(1) 19 9LL6 PC1 CALL 0 (3) [CALL CHAPTER SEARCH ROUTINE 9 9M5Q #SKI FNOISE 4 9MKB ( 9 9N52 ... BRN (JPMSEG) 8 9NJL BRN PC3 8 9P4= BRN PC4 10 9PHW ...PC3 CALL 0 XCOREPRINT 4 9Q3G ) 8 9QH6 BRN PC2 18 9R2Q ...PC4 LDX 2 XFPTR(1) [LOAD CURRENT BLOCK ADDR. 15 9RGB [ARE PRINTED 15 9S22 # REDTAPE FPTR BPTR AND ALOGL ARE REASONABLE 8 9SFL LDN 6 A1(2) 9 9S_= LDX 7 ALOGL(2) 9 9TDW CALL 4 SUMCHECK 9 9XCB ... LDX 4 BACK2(2) 16 9XJJ ... SLL 4 10 [CLEAR BITS 0-8 & 6 9XPQ ...#UNS JPSCF 7 9XWY ... LDX 7 4 7 9Y46 ... SLL 4 1 16 9Y9# ... SRL 4 4 [MULTIPLY BY 128 9 9YBG ... STO 4 X4WORD(1) 18 9YHS ...# SKIP IF THIS VERSION OF GIN IS PRIOR TO 514 10 9YP2 ...#SKI 77?>513$513 20 9YW= ... SBX 5 4 [SUBTRACT B/S ADDR FROM CHECKSUM 8 =3#B BZE 5 PC2 4 =3S2 # 10 =4?L # THE CHAPTER IS CORRUPT 15 =4R= # CHECK THAT THE B/S ADDRESS IS AVAILABLE 4 =5=W # 10 =5QG ... TXL 4 X10QUERY(1) 9 =97W BCS XCHAPCHCK 4 =9MG # 19 ==76 # B/S ADDRESS IS NOT AVAILABLE SO PRINT 1024 WORDS OF CORE 4 ==LQ # 5 ==WJ ...XALLPRIN 10 =?6B ... CALL 0 XCOREPRINT 8 =?L2 BRN PC2 6 =#5L XCHAPCHCK 6 =#8B ...#UNS JPSCF 16 =#?6 ... BNG 7 XSCF [J IF CHAP ON SCF 15 =#G4 ... PMBSADD GEO,0,ALOGL(2),PMINPRINEND(1),4 5 =#P3 ...XHAPCONT 6 =#RS ...XCHAPCONT 8 =#WL ... LDX 1 FXPM1 9 =*4W ... LDX 2 XFPTR(1) 11 =*B= ... LDX 4 PMINPRINEND(1) 9 =*ML ... LDN 5 XHEAD1(1) 7 =B46 MOVE 4 2 5 =B?Y ...XPRINCOM 10 =BHQ ... PMESSAGE XHEAD1(1),4 10 =C3B ... PMESSAGE XHEAD2(1),24 9 =CH2 ... CALL 7 (JPRINT1) 9 =D2L ... LDX 4 XFPTR(1) 21 =DG= ADN 4 A1 [ RELATIVISE ADDRESS TO START OF CHAP 9 =D_W ... STO 4 XCORAD(1) 9 =FFG ... ORX 4 MASK3(1) 11 =F_6 ... LDX 5 PMINPRINEND(1) 9 =GDQ LDX 6 ALOGL(2) 9 =GNJ ... STO 6 XLSEG(1) 20 =GSF ... STOZ SPLIT(1) [UNSET SPLIT SEGMENT INDICATOR 9 =GYB CALL 7 SEGCHECK 8 =HD2 BRN PC2 6 =HDP ...#SKI JPSCF 4 =HFD ...( 16 =HG7 ...XSCF PMSCFREAD ALOGL(2),PMINPRINEND(1),X4WORD(1) 8 =HGW ... LDX 1 FXPM1 19 =HHC ... LDX 6 PMINPRINEND(1) [ADDRESS OF THE DATA READ IN 9 =HHY ... LDX 2 XFPTR(1) 18 =HJ# ... LDX 7 ALOGL(2) [LENGTH OF THE CHAPTER 21 =HK3 ... CALL 4 SUMCHECK [SUMCHECK THE CHAPTER JUST READ IN 20 =HKQ ... SBX 5 X4WORD(1) [REMOVE BS ADDRESS FROM SUMCHECK 19 =HLF ... BZE 5 XCHAPCONT [CORRUPT IN CORE NOT ON SCF 20 =HM8 ... LDX 4 PMINPRINEND(1) [ADDRESS OF THE CHAPTER READ IN 19 =HMX ... LDN 5 XHEAD1(1) [ADDRESS OF CORRUPT MESSAGE 20 =HNL ... MOVE 4 2 [MOVE CHAPTER NAME INTO MESSAGE 19 =HP* ... PMESSAGE XHEAD1(1),4 [OUTPUT CORRUPT MESSAGE 20 =HQ4 ... PMESSAGE XSCFH2(1),10 [OUTPUT COMPARING CORE TO SCF 17 =HQR ... PMESSAGE XHEAD2(1),24 [TITLE FOR PRINT 16 =HRG ... CALL 7 (JPRINT1) [THROW BLANK LINE 19 =HS9 ... LDX 4 XFPTR(1) [ADDRESS OF CHAPTER IN CHAIN 17 =HSY ... ADN 4 A1 [MOVE PAST RED TAPE 18 =HTM ... STO 4 XCORAD(1) [SAVE ABSOLUTE ADDRESS 19 =HWB ... ORX 4 MASK3(1) [MARK AS RELATIVE PRINTING 19 =HX5 ... LDX 5 PMINPRINEND(1) [ADDRESS OF CHAPTER FROM SCF 17 =HXS ... LDX 6 ALOGL(2) [LENGTH TO COMPARE 9 =HY7 ... STO 6 XLSEG(1) 20 =HY* ... STOZ SPLIT(1) [UNSET SPLIT SEGMENT INDICATOR 17 =HYH ... CALL 7 SEGCHECK [PRINT DIFFERENCES 16 =H_= ... LDX 2 XFPTR(1) [RESTORE POINTER 16 =H__ ... LDX 4 BACK1(2) [CHAPTER NUMBER 19 =J2N ... TXL 4 XMAXCHAP(1) [SEE IF VALID CHAPTER NUMBER 21 =J3C ... BCC XALLPRIN [INVALID SO PRINT ALL CHAP IN CHAIN 18 =J46 ... ADX 4 XCHAPTAB(1) [ADD BS ADDRESS OF KTAB 16 =J4T ... LDN 5 1 [SIZE OF TRANSFER 21 =J5J ... PMBSADD GEO,0,5,PMINPRINEND(1),4 [READ IN BS VALUE OF KTAB 8 =J6? ... LDX 1 FXPM1 9 =J6L ... LDX 2 XFPTR(1) 19 =J77 ... SMO PMINPRINEND(1) [ADDRESS OF THE DATA READ IN 19 =J7P ... LDX 4 0 [ORIGINAL KTAB ENTRY FOR CHAP 16 =J8D ... SLL 4 11 [CLEAR BITS 0-10 17 =J97 ... SRL 4 4 [MULT BY 128 WORDS 17 =J9W ... TXL 4 X10QUERY(1) [SEE IN BS ADDRESS OK 20 =J=K ... BCC XALLPRIN [ORIGINAL KTAB WORNG SO PRINT ALL 15 =J?# ... PMBSADD GEO,0,ALOGL(2),PMINPRINEND(1),4 8 =J#3 ... LDX 1 FXPM1 9 =J#B ... LDX 2 XFPTR(1) 20 =J#Q ... PMESSAGE XSCFH3(1),10 [COMPARING CORE AND ICF CHAP 18 =J*F ... BRN XPRINCOM [PRINT ALL AND CONTINUE 4 =JB8 ...) 4 =JC= # 5 =JWW ZPMCHECK 4 =KBG # 4 =KW6 #END 8 ____ ...42105571000100000000