PMCHAP867

(George Source)

Macros used: DUMP, MASK, PMBSADD, PMCORES, PMESSAGE, PMOVE, PMSCFREAD, SEGENTRY

PMCHAP867.txt
23YG    #OPT  K0PMCHAP=0
24D6    #LIS  K0PMCHAP>K0POST>K0ALLGEO  
24XQ    #   
25CB ...#SEG  PMCHAP84                     [KAREL KOSKUBA-DIAG  
25M8 ...#     (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
25X2    #   
26BL    #     THIS SEGMENT LISTS THE CURRENT CHAPTER,AND ALSO CHAPTER HOLDING   
26W=    #     GEORGE BREAK(IF K0-1 DOESN'T POINT TO CURRENT CHAP. OF FIXED CORE)
27*W    #     THIS SEGMENT ALSO PRINTS THE ACTIVITY DUMP ASSOCIATED WITH
27TG    #     NOISY CORE
28*6    #   
28SQ                   8HPMCHAP 
29#B    #   
29S2    #     ENTRY POINT TABLE 
2=?L    #   
2=R= ... SEGENTRY K1PMCHAP,XK1PMCHAP
2?QG    #   
2#=6    NAMEA          15HCURRENT CHAPTER   
2#PQ    NAMEB          49HCHAPTER CONTAINING LAST GEORGE INSTRUCTION OBEYED 
2*9B    #SKI           FNOISE   
2*P2    (   
2B8L    QUERIES        8H????????   
2BN=    NHEAD1         28HNOISY CORE SYSTEM RUNNING 
2C7W    NHEAD2         24HNOISY CORE ACTIVITY DUMP  
2CMG    NMESS          24HGNCCODE POINTER CORRUPT   
2D76    TIDEN          8HACC3   
2DLQ                   8HACC4   
2F6B                   8HACC5   
2FL2                   8HACC6   
2G5L                   8HACC7   
2GK=    XALNK          8HALNK1  
2H4W                   8HAWRK1  
2HJG                   8HAWRK2  
2J46                   8HAWRK3  
2JHQ                   8HAWRK4  
2K3B                   8HACOM1  
2KH2                   8HACOM2  
2L2L                   8HACOM3  
2LG=                   8HACOM4  
2L^W                   8HACOM5  
2MFG                   8HACOM6  
2M^6                   8HACOM7  
2NDQ                   8HACOM8  
2NYB    TEND           8HACOM9  
2PD2    )   
2PXL    MASK           #17777777
2QWW    XALEN          +ALENFIXCHAP 
2R6N ...XTWO           +0   
2RBG    TWELVE         +12  
2RW6    X45            +45  
2S*Q    XLEN           +0                  [SET = LENGTH OF CHAPTEZ TO PRINT
2STB    XSTART         +0                  [SET =START ADDR  OF CHAP. TO PRINT  
2T*2    XBACK          +0                  [SET = 1 IF BACKWARD CHAINING
2TSL    XBCHAP         +BCHAP   
2W#=    XBACKPR        +0                  [TO HOLD START ADDR. OF PREVIOUS 
2WRW                                       [BLOCK IN CHAIN.USED BY SEARCH ROUTS 
2YQB    ZLINKA         +0                  [TO HOLD LINK ADDR. OF PRCHAP ROUT.  
2^=2    #SKI           FNOISE   
2^PL    (   
329=    ZBSLEN         #02260000
32NW ...ZLCHAPTAB      +AENDCHAPS-KTAB  
338G    TADDR          +0                  [IDENTIFIER ADDR.FOR NOISY CORE  
33N6    )   
33T# ...#UNS  JPSCF 
342G ...SCFCT      +0                 [TEMPORARY STORE FOR COUNT OVER PMSCFREAD 
347Q    #   
34MB    #     ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN WHEN FORWARD
3572    #     CHAINING  
35LL    #     ENTRY  X2=ADDRESS OF CURRENT BLOCK
366=    #     EXIT 0 &  IF FORWARD AND BACKWARD POINTERS CORRECT
36KW    #         X2,X3=ADDRESS OF NEXT BLOCK   
375G    #            X0=LINK
37K6    #     EXIT 0 0  IF BREAK IN CHAIN DETECTED  
384Q    #            X3=ADDRESS OF NEXT BLOCK   
38JB    #     (SEARCHA:ENTRY POINT FOR FIRST BLOCK ON CHAIN 
3942    #   
39HL    SEARCH  
3=3=          LDX   3  BPTR(2)             [J IF BPTR IN CURRENT
3=GW ...      TXU   3  XBACKPR(1)          [BLOCK INCORRECT 
3?2G          BCS      S1   
3?G6    SEARCHA 
3?^Q ...      STO   2  XBACKPR(1)          [STORE ADD. OF CURRENT BLOCK 
3#FB          LDX   3  FPTR(2)             [GET ADD. OF NEXT BLOCK  
3#^2    S2  
3*DL     PMCORES 3,S1   
3*Y= ...      TXL   3  X45(1)              [J IF ADDR. INVALID  
3BCW          BCS      S1                  [BECAUSE TO SMALL
3BXG          LDX   2  3
3CC6          EXIT  0  1
3CWQ    S1    EXIT  0  0                   [BREAK IN CHAIN  
3DBB    #   
3DW2    #     ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN, WHEN BACKWARD  
3F*L    #     CHAINING  
3FT=    #     ENTRY & EXIT AS SEARCH
3G#W    #     (SEARCHC:ENTRY POINT FOR FIRST BLOCK ON CHAIN 
3GSG    #   
3H#6    SEARCHB 
3HRQ          LDX   3  FPTR(2)             [J IF FPTR IN CURRENT
3J?B ...      TXU   3  XBACKPR(1)          [BLOCK INCORRECT 
3JR2          BCS      S1   
3K=L    SEARCHC 
3KQ= ...      STO   2  XBACKPR(1)          [STORE ADD. OF CURRENT BLOCK 
3L9W          LDX   3  BPTR(2)             [GET ADD. OF NEXT BLOCK  
3LPG          BRN      S2   
3M96    #   
3MNQ    #     ROUTINE TO PRINT AN AREA OF CORE  
3N8B    #     ENTRY    XLEN=LENGTH TO PRINT 
3NN2    #            XSTART=START ADDR. OF AREA 
3P7L    #                X7=LINK
3PM=    #     EXIT     XLEN=0   
3Q6W    #            XSTART=START ADDR. OF AREA 
3QLG    #     ALL ACCS UNDEFINED
3R66    #   
3RKQ    PRCHAP  
3S2= ...      STO   7  ZLINKA(1)           [STORE LINK  
3SBQ ...      LDX   2  XSTART(1)            [LOAD START ADDRESS 
3SR= ...PRC   CALL  7  (JPRINT1)             [PRINT A LINE (FIRST TIME SPACES)  
3T7Q ...      LDX   7  XLEN(1)  
3TMB ...      LDX   4  ZLINKA(1)
3W*= ...      BZE   7  (4)                 [J IF AREA PRINTED   
3WPQ ...      LDN   4  1
3X6= ...      SBS   4  XLEN(1)             [UPDATE COUNT
3XGQ          ADS   4  JPMOD               [UPDATE LP MODIFIER  
3Y2B ...      LDX   5  2                   [CONVERT ADDRESS TO  
3YG2 ...      CALL  7  (JDECN)               [DECIMAL   
3Y^L ...      SBX   5  XSTART(1)           [CONVERT RELATIVE
3^F= ...      CALL  7  (JDECN)               [ADDRESS TO DECIMAL
3^YW          ADS   4  JPMOD               [UPDATE LP MODIFIER  
42DG ...      LDX   5  0(2)                [GET CONTENTS OF ADDRESS 
42Y6 ...      ADS   4  2                   [UPDATE ADDRESS  
437Y ...      STO   2  XTWO(1)  
43CQ ...      CALL  7  (JCON4)               [CONVERT CONTENTS FOUR DIFFERENT WA
43MJ ...      LDX   2  XTWO(1)  
43XB          BRN      PRC  
44C2    #SKI           FNOISE   
44WL    (   
45B=    #   
45TW    #     ROUTINE TO OBTAIN AND INSERT CHAPTER NAME 
46*G    #     ENTRY    X7=LINK  
46T6    #              X3=CHAPTER NUMBER
47#Q    #           JPMOD=OUTPUT MOD.   
47SB    #     EXIT  JPMOD=UPDATED OUTPUT MOD.   
48#2    #        X3,X5,X6=UNDEFINED 
48RL    #   
49?=    NAMECHAP
49QW ...      STO   7  ZLINKA(1)           [STORE LINK  
4==G ...      TXL   3  ZLCHAPTAB(1) 
4=Q6          BCC      N3                  [J IF CHAPTER NO.ILLEGAL 
4?9Q          LDXC  3  KTAB(3)             [GET CHAPTER ENTRY FROM F.STORE TABLE
4?PB          BCS      N1                  [J IF CHAP. IN CORE  
4?SP ...#UNS  JPSCF 
4?Y4 ...(   
4#3C ...      SLL   3  10   
4#6Q ...      LDX   5  3                   [-VE IF ON SCF   
4#=5 ...      SLL   3  1
4#*D ...      SRL   3  4                   [ADD IN WORDS NOW
4#DR ...)   
4#J6 ...#UNS  JPSCF 
4#MF ...#SKI
4#QS ...(   
4#W7 ...      SLL   3  11                  [CLEAR BITS 0-8  
4#^G ...      SRL   3  4                   [MULTIPLY BY 128 
4*4T ...)   
4*8= ...      TXL   3  ZBSLEN(1)
4*MW          BCC      N3                  [J IF B/S ADDR. ILLEGAL  
4B7G          LDN   6  2                   [LENGTH OF TRANSFER  
4B8H ...#UNS  JPSCF 
4B9J ...(   
4B=K ...      BPZ   5  NTSCF
4B?L ...      STO   6  SCFCT(1) 
4B#M ...      PMSCFREAD SCFCT(1),ZPMCHAP(1),3   
4B*N ...      BRN      NICF 
4BBP ...NTSCF   
4BCQ ...)   
4BDW ...      LDN   5  ZPMCHAP(1)   
4BQ= ...      PMBSADD  GEO,0,6,5,3  
4C3L ...NICF  LDX   1  FXPM1
4C*2 ...      LDN   5  ZPMCHAP(1)   
4CLB    N2    LDX   6  JPMOD               [LOAD OUTPUT ADDR.   
4D62          MOVE  5  2                   [MOVE CHAP. NAME INTO OUTPUT BUFFER  
4DJ4 ...      LDX   5  ZLINKA(1)
4F26 ...      BRN      (5)                 [EXIT
4F?G ...N1    ANDX  3  MASK(1)  
4FJW          PMCORES 3,N3  
4G4G          LDN   5  A1(3)               [LOAD CORE ADDR. OF CHAP. NAME   
4GJ6          BRN      N2   
4H3Q ...N3    LDN   5  QUERIES(1)          [SET TO PRINT '????????' 
4HHB          BRN      N2   
4J32    )   
4JGL    #   
4K2=    XK1PMCHAP   
4K4F ...#   
4K6N ...#   
4K8X ...#     LOAD  MODIFIER
4K?6 ...#   
4K** ...      LDX   1  FXPM1
4KCJ ...#   
4KFW    #SKI           FNOISE   
4K^G    (   
4LF6    #   
4LYQ    #     TEST IF NOISY CORE SYSTEM RUNNING 
4MDB    #   
4MY2          LDX   4  GNCCODE  
4NCL          BNG   4  NEND                [J IF NOT
4NX= ...      PMESSAGE NHEAD1(1),7  
4PBW ...      PMESSAGE NHEAD2(1),6  
4PWG          ADN   4  1                   [OBTAIN [GNCCODE]+1  
4QB6 ...      TXL   4  ENDFIX            [IS [GNCCODE]+1 INSIDE F.C.
4QTQ          BCC      NC3                 [J IF NOT
4R*B ...      CALL  7  (JPRINT1)             [PRINT BLANK LINE  
4RT2 ...      LDN   2  TIDEN(1)            [LOAD ADDR.OF TABLE OF IDENTIFIERS   
4S#L ...      STO   2  TADDR(1)            [AND STORE   
4SS= ...NC1   LDX   2  JLPMOD              [LOAD LP BUFFER ADDR.
4T?W ...      LDX   5  TADDR(1)            [LOAD ADDR.OF FIRST/NEXT IDENTIFIER  
4TRG ...      LDN   6  1(2)                [LOAD OUTPUT ADDR.   
4W?6          MOVE  5  2                   [STORE FIRST/NEXT IDENTIFIER 
4WQQ          SMO      4
4X=B          LDX   5  0                   [LOAD FIRST/NEXT WORD OF DUMP AREA   
4XQ2 ...      ADN   2  4                   [UPDATE BUFFER ADDR. 
4Y9L ...      STO   2  JPMOD               [STORE UPDATED BUFFER ADDR.  
4YP= ...      LDN   6  XALNK(1)            [LOAD ADDR.OF ALNK1 IDEN 
4^8W ...      TXU   6  TADDR(1)            [IS PRESENT IDENT.ADDR. THE SAME 
4^NG          BCC      NALNK               [J IF ALNK1 IDEN.
5286 ...      CALL  7  (JDECP)               [STORE BIN.NO. IN N.N FORMAT   
52MQ          LDN   7  1
537B          ADS   7  JPMOD
53M2          LDCT  7  #600 
546L          ORS   7  JPMOD               [UPDATE TO POINT TO CHAR.3   
54L= ...      CALL  7  (JOCT)                [STORE BIN.NO. IN OCTAL FORMAT 
555W ...      CALL  7  (JPRINT1)             [OUTPUT
55KG ...      LDN   5  TEND(1)             [LOAD ADDR.OF LAST IDEN. 
5656 ...      TXU   5  TADDR(1)            [IS PRESENT IDEN. THE LAST   
56JQ          BCC      NEND                [J IF SO 
574B    NC2   ADN   4  1                   [UPDATE DUMP AREA ADDR.  
57J2          LDN   5  2
583L ...      ADS   5  TADDR(1)            [UPDATE IDENT.TABLE ADDR.
58H=          BRN      NC1  
592W    #   
59GG    #     OUTPUT ALNK1 INFORMATION  
5=26    #   
5=FQ    NALNK   
5=^B          LDCT  7  #400                [POSITION BUFFER ADDR.FOR OUTPUT 
5?F2          ORS   7  JPMOD               [AND STORE   
5?YL ...      CALL  7  (JDECDEC)             [STORE BIN.NO IN N/N FORMAT
5#D=          SRL   5  12                  [OBTAIN CHAPTER NO.  
5#XW          LDX   3  5                   [AND STORE   
5*CG          LDN   6  2
5*X6          ADS   6  JPMOD               [UPDATE  
5BBQ          CALL  7  NAMECHAP            [STORE CHAPTER NAME  
5BWB ...      CALL  7  (JPRINT1)             [OUTPUT
5CB2          BRN      NC2  
5CTL    #   
5D*= ...NC3   PMESSAGE NMESS(1),6             [[GNCCODE]+1 CORRUPT  
5DSW    NEND
5F#G    )   
5FS6    #   
5G?Q ...#     READ PMINPRIN ROUTINE INTO CORE   
5GRB    #   
5H?2 ...      LDN   6  ZPMCHAP(1)   
5HQL ...      PMOVE    PMINPRIN,6   
5J== ...      LDX   1  FXPM1
5JPW    #   
5K9G    #     TO PRINT CURRENT CHAPTER  
5KP6    #   
5L8Q          LDX   2  FX1  
5LNB          BZE   2  PC                  [J IF NO CURRENT CHAPTER 
5M82     PMCORES 2,PC   
5MML ...      STO   2  XSTART(1)           [FOR PRCHAP ROUTINE  
5N7=          SBN   2  A1                  [START ADDR. OF BLOCK
5NLW          LDX   7  ALOGLEN(2)          [LENGTH OF CHAPTER   
5P6G ...      ANDX  7  MASK(1)  
5PL6          BNZ   7  PC4  
5Q5Q          TXU   2  GFIXCHAP 
5QKB          BCC      PC7                 [J IF FIXED CHAPTER  
5R52          LDX   7  ASIZE(2) 
5RJL ...      ANDX  7  MASK(1)  
5S4= ...      TXL   7  TWELVE(1)
5SHW          BCC      PC4                 [IF CHAPTER BLOCK SIZE<12
5T3G          LDN   7  100                 [PRINT FIRST 100 WORDS   
5TH6          BRN      PF   
5W2Q    PC7   LDX   7  GLENFCHAP           [LENGTH OF FIXED CHAPTER 
5WGB          BRN      PF   
5X22 ...PC4   TXL   7  XALEN(1) 
5XFL          BCS      PF                  [J IF CHAPTER LENGTH VALCHAP ROUT
5X^= ...      LDX   7  XALEN(1)            [MAX  LENGTH OF A CHAPTER
5YDW ...PF    STO   7  XLEN(1)             [LENGTH TO PRINT,FOR PRCHAP ROUT 
5YYG ...      CALL  7  (JPRINT1)             [THROW A LINE  
5^D6 ... PMESSAGE   NAMEA(1),4  
5^XQ          CALL  7  PRCHAP              [PRINT CHAPTER   
62CB    #   
62X2    #     TO TEST IF GEORGE BREAK OCCURED IN ANOTHER CHAPTER
63BL    #   
63W= ...PC    LDX   5  GONRDUMP                [GET LAST GEORGE INSTR. OBEYED   
64*W ...      TXL   5  ENDFIX   
64TG ...      BCS      (JPMSEG) 
65*6 ... PMCORES 5,(JPMSEG) 
65SQ          LDX   2  FX1  
66#B          BZE   2  PC5                 [J IF NO CURRENT CHAPTER 
66S2          TXL   5  2
67?L          BCS      PC5                 [J IF BREAK NOT IN CURRENT CHAPTER   
67R=          SBN   2  A1   
68=W          ADX   2  ASIZE(2)            [LAST WORD OF CURRENT CHAPTER
68QG ...      ANDX  2  MASK(1)  
69=6          TXL   5  2
69PQ ...      BCS      (JPMSEG)              [J IF BREAK IN CURRENT C APTER 
6=9B    #   
6=P2    #     TO SEARCH DOWN CHAPTER CHAIN TO SEE IF GEORGE BROKE IN A CHAPTER  
6?8L    #   
6?N=    PC5   LDN   2  BCHAP
6#7W ...      LDN   3  SEARCHA(1)          [TO GET ADDR. FIRST BLOCK ON CHAIN   
6#MG          BRN      PC1  
6*76 ...PC2   LDN   3  SEARCH(1)
6*LQ ...      LDX   7  XBACK(1) 
6B6B          BZE   7  PC1                 [J IF FORWARD CHAINING   
6BL2 ...      LDN   3  SEARCHB(1)   
6C5L    PC1   CALL  0  (3)                 [GET ADDR. OF -EX0 BLOCK ON CHAIN
6CK=          BRN      PC3                 [J IF BREAK IN CHAIN 
6D4W ...      TXU  2  XBCHAP(1) 
6DJG ...      BCC      (JPMSEG)              [J IF END OF CHAIN REACHED 
6F46          LDX   7  ALOGLEN(2)          [LENGTH OF BLOCK 
6FHQ ...      ANDX  7  MASK(1)  
6G3B ...      TXL   7  XALEN(1) 
6GH2          BCS      PC6                 [J IF LENGTH VALID   
6H2L ...      LDX   7  XALEN(1)            [SET TO MAX. LENGTH OF A CHAPTER 
6HG=    PC6   ADX   3  7
6H^W          ADN   3  A1   
6JFG          TXL   5  2
6J^6          BCS      PC2                 [J IF NOT CHAPTER
6KDQ          TXL   5  3
6KYB          BCC      PC2                 [J IF BREAK NOT IN CHAPTER   
6LD2    #   
6LXL    #     PRINT CHAPTER GEORGE BROKE IN 
6MC=    #   
6MWW          ADN   2  A1   
6NBG ...      STO   2  XSTART(1)           [START ADDR. OF CHAP. FOR PRCHAP 
6NW6 ...      STO   7  XLEN(1)  
6P*Q ... PMESSAGE   NAMEB(1),13 
6PTB          CALL  7  PRCHAP              [PRINT CHAPTER   
6Q*2 ...      BRN      (JPMSEG) 
6QSL    #   
6R#=    #     IF BREAK IN CHAPTER CHAIN ENCOUNTERED 
6RRW    #   
6S?G ...PC3   LDX   0  XBACK(1) 
6SR6 ...      BNZ   0  (JPMSEG) 
6T=Q          LDN   0  1
6TQB ...      STO   0  XBACK(1)            [SET BACKWARD CHAINING INDICATOR 
6W=2          LDN   2  BCHAP               [SET TO GET FIRST BLOCK ON CHAIN WHEN
6WPL ...      LDN   3  SEARCHC(1)          [BACKWARD CHAINING   
6X9=          BRN      PC1  
6XNW    #   
6YN6    #   
6^7Q    ZPMCHAP 
6^MB    #   
7272    #END
^^^^ ...53532256000100000000