PMBRKCHS84

(George Source)

Macros used: CHAIN, FIXTRA, JBUSY, PMESSAGE, PMOVE, SEGENTRY, SWAP, UP

PMBRKCHS84.txt
24D6    #OPT            K0PMBRKCHS=0
24XQ    #LIS            K0PMBRKCHS>K0POST>K0ALLGEO  
25CB    #   
25X2 ...#SEG    PMBRKCHS84                  [ KAREL KOSKUBA - DIAG  
26BL         8HPMBRKCHS 
26W=    #   
27*W    #   
27TG    #        ENTRY POINT TABLE  
28*6    #   
28SQ    #   
29#B ... SEGENTRY K1PMBRKCHS,XK1PMBRKCHS
29S2 ... SEGENTRY K2PMBRKCHS,XK2PMBRKCHS
2=?L ...#   
2=R= ...#   
2F6B     FIXTRA  FDTABLESTRE
2FL2    #REP           6
2G5L                   +0   
2GK= ... FIXTRA  CCTABLESTRE
2H4W    #REP           6
2HJG                   +0   
2KH2     FIXTRA  JSWAPFDTRUE                [ STORE FOR SWAP FD 
2L2L                   +FDTABLESTRE-A1  
2S*Q     FIXTRA  CRABMIN
2STB                   -1                   [ LOWER EXTENT OF CRUPTION  
2T*2     FIXTRA  CRABMAX
2TSL                   -1                   [ UPPER EXTENT OF CRUPTION  
2TYW ... FIXTRA  BINDEXCONT 
2W56 ...               +0                  [ HOLDS ORIGINAL CONTENTS OF BINDEX  
2W6H ... FIXTRA  AFDTPDUMP  
2W7Y ...               +0                   [ HOLDS ORIGINAL CONTENTS OF AFDTP  
2W8? ...     FIXTRA  JSWAPDRST               [ STORAGE FOR SWAP FILE DEVICE REC.
2W8L ...#REP  K53-K50   
2W8^ ...               +0   
2W9B ...XHEADLINE      32HCORE PRINT AROUND CHAIN BREAKS
2W*L ...MESS           43HPMBRKCHS:- POINTERS TO SWAP FILE NOT SET UP   
2WFW ...               16HCRABS ABANDONED   
2WL6 ...XLINK7         +0   
2WQB ...XDIFF          +0                   [ USED IN PRINTER   
2WWL ...XCOUNT         +0                   [ USED IN PRINTER   
2X2W ...POINTER        +0                   [ USED IN PRINTER   
2X76 ...XPASS          +0                   [ USED IN PRINTER   
2X?G    X250           +250 
2XR6    X1024          +1024
2Y=Q    TWO            +2   
2YF2 ...PMBRKEND       +ZEND
2^=2    #   
2^PL    #   
329=    #                    SUBROUTINE PRINTER 
32NW    #   
338G    #   
33N6    #                   TO PRINT A DEFINED AREA OF VARIABLE CORE
347Q    #                        ENTRY  X5   EXTENT OF PRINT EACH SIDE OF X6
34MB    #                               X6  CENTER OF PRINT AREA
3572    #   
35LL    #                   EXIT   ALL ACCS UNDEFINRD   
366=    #   
36KW    #   
375G    PRINTER 
37K6 ...      STO   5  XDIFF(1) 
384Q ...      STO   5  XCOUNT(1)
38JB ...      STO   6  POINTER(1)   
3942 ...      STO   7  XLINK7(1)
39HL          ADX   6  5                   [ CALCULATE END OF PRINT AT5A
3=3=          TXL   6  CORES               [ IS IT IN CORE  
3=GW          BCS      XINCORE             [ J IF IN CORE   
3?2G          LDX   4  CORES               [ RESET CENTRE OF PRINT AREA 
3?G6          SBX   4  5                   [ SUCH THAT END OF PRINT  IS WITHIN C
3?^Q ...      STO   4  POINTER(1)   
3#FB    XINCORE 
3#^2 ...      CALL  7  (JUP)
3*DL                   +65  
3*Y=          BRN      SECOND   
3BCW    XFIRST  
3BXG ...      LDX   5  POINTER(1)          [ LOAD POINTER TO MIDDLE OF AREA 
3CC6 ...      SBX   5  XDIFF(1)            [ CALCULATE AREA FOR FIRST COLUMMN   
3CWQ ...      CALL  7  (JUP)
3DBB                   +4   
3DW2 ...START CALL  7  (JDECN)               [ CONVERT ADDRESS TO DECIMAL   
3F*L ...      CALL  7  (JUP)
3FT=                   +2   
3G#W          SMO      5
3GSG          LDX   5  0                   [ PICK UP CONTENRS OF CURRENR ADDRESS
3H#6 ...      CALL  7  (JDECP)               [ CONVERT TO DECIMAL  (N.N)
3HRQ ...      CALL  7  (JUP)
3J?B                   +2   
3JR2 ...      CALL  7  (JCHA)                [ CONVERT TO CHARS 
3K=L ...      CALL  7  (JUP)
3KQ=                   +2   
3L9W ...      CALL  7  (JOCT)                [ CONVERT TO OCTAL 
3LPG ...      CALL  7  (JUP)
3M96                   +2   
3MNQ          LDX   4  JPMOD
3N8B ...      LDX   1  FXINPRIN 
3NN2          LDN   6  K1INPRIN 
3P7L          SMO      1
3PM=          CALL  0  (6)                 [ CONVERT TO INSTRUCTION FORMAT  
3P^M ...      LDX   1  FXPM1
3Q#4 ...      CALL  7  (JUP)                 [ SPACE TO END OF COLUMMNMNM   
3QLG                   +16  
3R66 ...      LDX   7  XPASS(1)            [ WHICH PASS 
3RKQ ...      BNZ   7  XFINISH  
3S5B ...      CALL  7  (JUP)                 [ SPACE FOR SECOND PASS
3SK2                   +8   
3T4L    SECOND  
3TJ= ...      STO   6  XPASS(1)            [ SET SECOND PASS SWITCH 
3W3W ...      LDX   5  POINTER(1)          [ LOAD POINTER TO ADDRESS
3WHG          BRN      START               [ J TO START OF PRINR ROUTINE
3X36    XFINISH 
3XGQ ...      CALL  7  (JPRINT1)             [ PRINT LINE SET UP
3Y2B ...      STOZ     XPASS(1) 
3YG2 ...      LDN   7  1                   [ LOAD 1 
3Y^L ...      SBS   7  XCOUNT(1)           [ UPDATE COUNT   
3^F= ...      ADS   7  POINTER(1)          [    AND POINTER 
3^YW ...      LDX   7  XCOUNT(1)           [ IS COUNT EXHAUSTED 
42DG ...      BNZ   7  XFIRST              [ J IF NOT TO LOOK AT NEXT ADDRESS   
42Y6 ...      LDX   7  XLINK7(1)
43CQ ...      EXIT  7  0
5*X6    #   
5BBQ    #   
5BWB    #             ENTRY POINT FROM PMDR 
5CB2    #   
5D*=    #   
5DSW    #   
5F#G    XK1PMBRKCHS 
5FS6    #   
5G?Q    #   
5H?2    #   
5HQL    #   
5HRC ...      LDX   1  FXPM1
5HS8 ...      ADS   1  PMBRKEND(1)          [ DATUMISE  
5HS^ ...      ADS   1  JSWAPFDTRUE(1)      [ DATUMISE   
5HTQ ...#   
5HW6 ...#     CHECK THAT FINDFS HAS SET UP THE SWAP FILE DEVICE LIST
5HWG ...#     POINTER IN JSWAPDR AND THAT PMDR HAS SET UP THE FILE  
5HWW ...#     DESCRIPTION BLOCK POINTER IN JAFDTP   
5HX# ...#   
5HY5 ...      LDX   6  JSWAPDR  
5HYC ...      BZE   6  NOSWAP              [J IF NOT YET SET UP 
5HYK ...      SMO      FXPMDR   
5HYR ...      LDX   7  JAFDTP   
5H^3 ...      BNZ   7  SWAPOK              [J IF BOTH POINTERS SET UP OK
5H^* ...NOSWAP  
5H^M ...      PMESSAGE MESS(1),15          [EXPLANATION 
5J2D ...      BRN      (JPMSEG)            [ QUIT THIS SEGMENT  
5J39 ...#   
5J3# ...#  WAIT FOR SWAPFILE TO BECOME AVAILABLE
5J3C ...#   
5J3G ...WAITSWAP
5J3K ...SWAPOK  
5J3N ...      JBUSY    JSWAPDR,WAITSWAP 
5J3R ...#   
5J42 ...#     SAVE SWAPFILE DEVICE RECORD   
5J4R ...#   
5J5J ...
5J6* ...      LDN   7  JSWAPDRST(1) 
5J76 ...      MOVE  6  K53-K50  
5J7X ...#   
5J8N ...#     SAVE THOSE PARTS OF VARIABLE CORE NEEDED FOR B/S TRANSFERS
5J9F ...#   
5J9R ...      SMO      FXPMDR   
5J=5 ...      LDX   6  JAFDTP   
5J=C ...      SMO      FXPM1              [AND SAVE ORIGINAL CONTENTS   
5J=W ...      STO   6  AFDTPDUMP          [OF AFDTP 
5J?* ...      ADX   6  JSWAPFD  
5J?S ...      LDN   7  FDTABLESTRE(1)      [ SAVE SWAP FILE DESCRIPTION 
5J#K ...      MOVE  6  6
5J#T ...      SBX   7  JSWAPFD  
5J*2 ...      SMO      FXPMDR   
5J*7 ...      STO   7  JAFDTP   
5J*B ...      LDX   6  BINDEX   
5JB7 ...      STO   6  BINDEXCONT(1)        [ SAVE CONTENTS OF BINDEX   
5JBY ...      ADN   6  A1                  [ DATUMISE GEORGE FD POINTER 
5JCP ...      LDN   7  CCTABLESTRE(1)      [ SAVE GEORGE FILE DESCRIPTION   
5JDG ...      MOVE  6  6
5JF? ...      SBN   7  A1                  [ DATUMISE   
5JG4 ...      STO   7  BINDEX              [ RESET BINDEX TO POINT AT SAVED FD  
5JGT ...#   
5JMH ...#     READ DOWN PMCRABS AND ENTER THE SEGMENT   
5JN# ...#   
5JP5 ...      PMOVE    PMCRABS,PMBRKEND(1),1,2  
5JPW    #   
5K9G    #   
5KP6    #               SEGMENT PMCRABS RETURNS TO THIS POINT   
5L8Q    #               WHEN IT HAS EXECUTED IT'S CODE  
5LNB    #   
5M82    XK2PMBRKCHS 
5MML ...      LDX   1  FXPM1
5N7= ...      LDX   2  CRABMIN(1)   
5NLW ...      BNG   2  (JPMSEG)             [ J IF NO BROKEN CHAINS 
5P6G ...      PMOVE    PMINPRIN,PMBRKEND(1)   [ GET PMINPRIN INTO CORE  
5PL6 ...      LDX   1  FXPM1
5Q5Q ...      PMESSAGE XHEADLINE(1),8       [ PRINT HEADING 
5QKB ...      CALL  7  (JPRINT1)
5R52 ...      LDX   3  CRABMAX(1)   
5RJL ...      NGN   6  1                   [ IF ANY CHAIN BREAKS THEN   
5S4= ...      SMO      FXPMDR   
5T3G          STO   6  APMBRKCHS           [  SET SWITCH FOR PMFS SEGMENT   
5W2Q          BPZ   3  PR1                 [ TWO ADDRESSES TO SET UP
5WGB ...      LDX   2  CRABMIN(1)   
5X22 ...      STO   2  CRABMAX(1)          [ MAX = MIN  ONE ADDRESS TO SET UP   
5XFL    PR1 
5X^= ...      CALL  7  (JPRINT1)           [ THROW ALINE
5YDW ...      LDX   5  CRABMAX(1)          [ CALCULATE THE VALUE MAX - MIN  
5YYG ...      SBX   5  CRABMIN(1)   
5^D6          ADN   5  200                 [ MAX - MIN = 100+MAX-(MIN-100)  
5^XQ ...      TXL   5  X1024(1)            [ IS IT < 1024   
62CB          BCC      PR5                 [ J IF NOT   
62X2 ...      DVS   4  TWO(1)              [ CALCULATE XDIFF
63BL          BZE   4  PR6                 [ ROUND  
63W=          ADN   5  1                   [ UP RESULT  
64*W ...PR6   LDX   6  CRABMIN(1)          [ X5 = NO OF LINES TO PRINT EACH SIDE
64TG          ADX   6  5                   [ X6 = CENTRE OF PRINTING
65*6          SBN   6  100                 [ ADJUST BY OVERLAP  
65SQ          CALL  7  PRINTER             [ PRINT  
66#B ...      BRN      (JPMSEG)            [ FINISH 
66S2 ...PR5   LDX   5  X250(1)             [ PRINT AREA AROUND MIN  
67?L ...      LDX   6  CRABMIN(1)   
67R=          CALL  7  PRINTER             [ + 250 WORDS
68=W ...      CALL  7  (JPRINT2)
68QG ...      LDX   5  X250(1)             [ PRINT AREA AROUND  MAX +- 250 WORDS
69=6 ...      LDX   6  CRABMAX(1)   
69PQ          CALL  7  PRINTER  
6=9B ...      BRN      (JPMSEG) 
6=P2 ...ZEND
6?8L    #END
^^^^ ...455540160008