PMCHECK867

(George Source)

Macros used: AND, JBC, ON, PMBSADD, PMCORES, PMDLGET, PMESSAGE, PMOVE, PMSCFREAD, SEGENTRY, UPDATE

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