MONFILE867

(George Source)

Macros used: ACROSS, ACROSSX, BSON, CATMASK, DOTPMON, GEOERR, HUNTX, LIMBO, MFDEFS, MFORDER, MFREE, MFREEW, MFSETAB, MHUNTW, NAME, NEXTPART, OP, SEG, SEGENTRY, SETUPCORE, TESTHKN, TESTMOVE, TESTNCM, TRACE, UP, WRONG

MONFILE867.txt
22=X ...      SEG      MONFILE,,CENT(MESSAGE SYSTEM),,G400  
22HS ...[   
22SP ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
235L ...[   
23BH ...#UNS G400   
23MD ...#     THIS CHAPTER IS MODIFIED FOR G3PLUS-IH MK2
23YG          SEGENTRY K1MONFILE,SENTRY1
24D6          SEGENTRY K2MONFILE,SENTRY2
24XQ          SEGENTRY K3MONFILE,SENTRY3
25CB          SEGENTRY K4MONFILE,SENTRY4
25X2          SEGENTRY K5MONFILE,SENTRY5
26BL          SEGENTRY K9MONFILE,SENTRY9
26W=          SEGENTRY K11MONFILE,SENTRY11  
27*W          SEGENTRY K12MONFILE,SENTRY12  
28*6          SEGENTRY K21MONFILE,SENTRY21  
28SQ    #   
29#B    # ENTERED FROM MONOUT,OUTMON,ASSMESS,DEMAND,+INFORM 
29S2    # PRINCIPLE DUTY AS MESSAGE ROUTER. 
2=?L    # MESSAGE PARAMETERS ARE IN ASET BLOCK (BUT NOTE 'KNOWN'
2=R=    # PDC PARAMS),FINAL MESSAGE ASSEMBLED IN AOUT AND IS
2?=W    # THEN SENT TO APPROPRIATE DESTINATIONS IN STRICT ROTA  
2?QG    #   
2#=6    # DESTINATIONS: 
2#PQ    #   
2*9B    # SYSTEM JOURNAL
2*P2    # MONITORING FILE  (!)  
2B8L    # MOP CONSOLES  
2BN=    # OPERATORS CONSOLES
2C7W    # GSCAN BUFFER  
2CMG    # REPLY 'BUFFER'
2D76    # RETAIN BLOCK FACILITY 
2DLQ    # TABLE FOR GOING ACROSS TO GET MESSAGE HELD
2F6B    # IN ANOTHER SEGMENT:   
2FL2    TOTNUMB        +AMFNUMBER+1 
2G5L    #     'WARE CHANGE  
2GK=    #DEF  TCATS=A1+1
2H4W    #   
2J46          MFORDER  MFSETAB  
2JHQ          MFDEFS
2K3B    WJOUR CATMASK  JOURNAL  
2KH2    WCLUS CATMASK  CLUSTER  
2L2L    WPRIN CATMASK  FORCEPRI 
2LG=    SCAMSK CATMASK OL,PM,LS            [FORBIDDEN GSCAN'S   
2L^W    #              SR TO SET DESTINATION MASK IN X4 
2MFG    WMASK LDX   1  FX1  
2M^6          LDX   2  FX2  
2NDQ          BPZ   7  W11                 [J IF NOT RETAIN 
2NYB          ORN   4  RETAIN   
2PD2    W11 
2PXL          LDX   0  WJOUR(1) 
2QC=          ANDX  0  7
2QWW          BZE   0  W1                  [J NOT SJ
2RBG          LDCT  0  #40  
2RW6          ANDX  0  7
2S*Q          BZE   0  W2                  [J IF SJ AND NOT PACKED  
2STB          ORN   4  SJPAK
2T*2          BRN      W1   
2TSL    W2    ORN   4  SJNPK
2TXP ...W1    LDN   0  #4000
2TYQ ...      ANDX  0  7
2T^R ...      BNZ   0  W15            [CLUSTER  
2W2S ...      LDX   0  HMON1(2) 
2W3T ...      BNG   0  W3             [J IF IGNORNG OPTRACE 
2W4W ...      LDX   0  IOPTRACE 
2W5X ...      ANDX  0  7
2W6Y ...      BZE   0  W3   
2W74 ...#UNS G400   
2W78 ...(   
2W7# ...      TESTHKN   W15       [J IF NOT HOOK
2W7D ...      DOTPMON   W15       [OR TRACING SWITCHED ON   
2W7J ...      TESTNCM   W15       [OR CATEGORY NEQ CM,CE OR CT  
2W7N ...      BRN       W3        [ELSE DO NOT OUTPUT   
2W7S ...)   
2W7^ ...W15   ORN   4  OP   
2YQB    W3    BSON     EMSBIT,WEX          [J IF EMS
2^=2          LDX   0  WCLUS(1) 
2^PL          ANDX  0  7
329=          BZE   0  W4                  [NOT REMOTE  
32NW          ORN   4  REMOTE   
338G    W4    LDCH  0  ATYPE(2) 
33N6          SBN   0  CPAT/64  
347Q          BNZ   0  WEX                 [J IF NOT A CPAT 
35LL          LIMBO    0,2  
366=          BNZ   0  W5                  [OR IN LIMBO 
375G          LDX   0  AMXMSK(2)
37K6          ANDX  0  7
384Q          BZE   0  W5   
385Y ...#UNS G400   
3876 ...(   
388# ...#               STOP OUTPUT OF MESSAGES TO MOP  
389G ...      LDX  0  ZDSKM(1)  
38=N ...      ANDX  0  7
38?W ...      BNZ   0  XDSK1               [OUTPUT IF FORCETYPE MESSAGE 
38*4 ...      TESTHKN XDSK1                [OUTPUT IF NOT IN A HOOK 
38B= ...      DOTPMON XDSK1                [OUTPUT IF PRIVILAGE MONITORING SET  
38CD ...      BRN      W5                  [SKIP SETTING OUTPUT MASK
38DL ...ZDSKM          #21200000
38FS ...XDSK1   
38H2 ...)   
38JB          ORN   4  MOP  
3942    W5    LDX   0  AMFMSK(2)
39HL          BZE   0  W6                  [J IF NO-TRACE   
3=3=          ORX   0  WPRIN(1)            [FORCEPRINT  
3=GW          ANDX  0  7
3?2G          BZE   0  W6   
3?49 ...#UNS G400   
3?5Y ...(   
3?7M ...#                   STOP OUTPUT OF MESSAGES TO MONITORING FILE IN HOOK C
3?9B ...      TESTHKN XDSK2                [OUTPUT IF NOT IN A HOOK 
3??5 ...      DOTPMON XDSK2                [OUTPUT IF PRIVILAGE MONITORING SET  
3?#S ...      BRN      W6                  [SKIP SETTING OUTPUT MASK
3?BH ...XDSK2   
3?D= ...)   
3?G6          ORN   4  MONFILE  
3?^Q    W6    BPZ   7  W7                  [J IF NOT RETAIN BIT 
3#FB    WEX   BZE   4  W9                  [J IF NO DESTINATIONS
3#^2          LDCT  0  #40  
3*DL          ORX   0  WJOUR(1) 
3*Y=          ERX   0  7
3BCW          BZE   0  W9                  [J IF JUST SJ&PACKED 
3BXG          SMO      FX1  
3CC6          LDX   0  SCAMSK   
3CWQ          ANDX  0  7
3DBB          BNZ   0  W9                  [J IF NOTGSCAN   
3DW2          ORN   4  SCANB
3F*L    W9    LDCT  0  #100 
3FT=          ANDX  0  7
3G#W          BNZ   0  W10                 [EXIT+0 IF CONTINUED 
3GSG          EXIT  5  1
3H#6    W7    LDN   0  #1002               [OL + CM 
3HRQ          ANDX  0  7
3J?B          BNZ   0  WEX  
3JR2          LDEX  0  7
3K=L          BZE   0  WEX                 [J IF NOT TO BE KEPTFOR SETPARAM 
3KQ=          ORN   4  REPLY
3L9W          BRN      WEX  
3LPG    W10   EXIT  5  0
3M96    #   
3MNQ    #              ROUTING TABLE - CF 'INFORM(X)'   
3N8B    ROUTAB  
3NN2          +REMOTE  [0  CLUSTER  
3P7L          +OP      [1  CENTRAL  
3PM=          +MBOTH   [2  BOTH 
3Q6W          +MALL    [3  ALL  
3QLG    #     DISPLAY ROUTING : 
3R66          +0       [4  MONFILE ONLY 
3RKQ          +REMOTE  [5  CLUSTER  
3S5B          +OP      [6  CENTRAL  
3SK2          +MBOTH   [7  BOTH 
3T4L    #DEF  NORUTS=0?-ROUTAB+1
3TJ=    #     INFORM CATEGORY ADDITIONS-CF 'ROUTAB' 
3W3W    TABADD  
3WHG          CATMASK  CLUSTER             [0   
3X36          CATMASK  CENTRAL             [1   
3XGQ          CATMASK  CENTRAL,CLUSTER     [2   
3Y2B          CATMASK  CLUSTER,CENTRAL     [3   
3YG2    #     DISPLAY   
3Y^L          +0                           [4   
3^F=          CATMASK  CLUSTER             [5   
3^YW          CATMASK  CENTRAL             [6   
42DG          CATMASK  CENTRAL,CLUSTER     [7   
42Y6    #DEF  TCAT=A1+1                    [CATEGORY BITS   
43CQ    #DEF  RECHR=A1                     [MESSNO/REC HEADER   
43XB    #              RE ENTRY FROM DEMAND 
44C2    #     A BLOCK HAS BEEN RETAINED FROM PREV. 'INFORM' 
44WL    SENTRY5 
46*G          MHUNTW   3,GMON,AOUT  
46T6          NAME     3,GMON,BOUT  
48RL          ADN   3  RECHR               [PART PTR
49?=          LDN   4  0                   [FOR WMASK   
49QW          BRN      YNOT 
4==G    YNDED LDEX  0  0(3) 
4=Q6          ADN   0  11   
4?9Q          SRL   0  2
4?PB          ADX   3  0                   [-> NEXT PART
4#92    YNOT  LDX   7  1(3) 
4#NL          CALL  5  WMASK
4*8=          BRN      YNDED               [J IF MORE A PARTS   
4*MW          SLC   4  12   
4B7G          STO   4  MDESTINY(2)  
4BM6          TRACE    JTIME,MONREPET   
4B^H ...OUTPUT  
4C?Y ...      ACROSS   MONFILEA,1   
4CLB    #   
4D62    #     ENTRY FROM 'OUTMON'   
4DKL    #     HMON1=TYPE+SUBTYPE/NO OF CHARS IN MESS
4F5=    #     HMON2=DISPLACEMENT OF MESSAGE 
4FJW    #     HMON3=CATEGORY WORD   
4G4G    QBIT  #10000000                    [CONTINUED BIT   
4GJ6    SENTRY4 
4H3Q          LDX   7  HMON3(2)            [CATEGORY
4HHB          LDN   4  0
4J32          CALL  5  WMASK
4JGL          ERX   7  QBIT(1)             [MASK OUT CONTBIT IF CONT
4K2=          SLC   4  12   
4KFW          STO   4  MDESTINY(2)  
4K^G          LDX   6  HMON1(2) 
4LF6          ANDN  6  4095                [NO OF CHARACTERS
4LYQ          LDX   4  6
4MDB          ADN   4  11   
4MY2          SRL   4  2                   [WORDS   
4NCL          SETUPCORE 4,3,GMON,BOUT   
4NX=          STO   7  TCATS(3)            [CATEGORY
4PBW          STO   6  RECHR(3)            [CHARS IN MESSQGE
4PWG          SBN   4  2
4QB6          BZE   4  OUTPUT              [J IF NO WORDS IN MESSAGE
4QTQ          ADN   3  TCATS+1  
4R*B          LDX   6  HMON1(2) 
4RT2          ANDX  6  HALFTOP             [TYPE+SUBTYPE
4S#L          BZE   6  YFX2 
4SS=          HUNTX    2,6                 [HUNT IF NOT CURRENT ACTY
4T?W    YFX2  SMO      FX2  
4TRG          ADX   2  HMON2               [ADD DISPLACEMENT
4W?6          SMO      4
4WQQ          MOVE  2  0                   [MOVE MESS IN
4Y9L          BRN      OUTPUT   
4YP=    #   
4^8W    #     ENTRY FROM MONOUTRX   
4^NG    SENTRY12
5286          LDX   0  JOBNO(2) 
52MQ          STO   0  ACOMMUNE2(2)        [INTERFACE   
537B    SENTRY11
53M2          LDN   4  0
546L          LDN   6  1                   [INFORM SWITCH   
54L=          BRN      S1   
555W    #   
55KG    # ENTRY FROM ASSMESS
5656    #   
56JQ    SENTRY9 
574B          LDN   4  SEMBL
57J2          BRN      S3                  [CONTINUE AS MONOUTX 
583L    #   
58H=    # ENTRY FROM MONOUTX
592W    #   
59GG    SENTRY2 
5=26          LDX   0  JOBNO(2) 
5=FQ          STO   0  ACOMMUNE2(2) 
5=^B    #   
5?F2    #     X6 PALYS A VITAL ROLE AS SWITCH IN THE INTERFACE  
5?YL    #     TWIXT MONFILE AND THE AUXILIARY CHAPTERS  
5#D=    #     CF EXPANSION OF "AUXILMF" 
5#XW    #   
5*CG    SENTRY1 
5*X6          LDN   4  0
5BBQ    S3    NGN   6  1                   [MONOUT SWITCH   
5BWB    S1    STO   4  MDESTINY(2)         [INITIAL DESTINY MASK
5CB2          LDX   3  HMON1(2)            [MESSAGE ADDRESS 
5CTL          SRL   3  9                   [/512 : SEGNO
5D*=          TXL   3  TOTNUMB(1)   
5DSW          BCC      WRONG               [ENSURE IN LIMITS
5F#G          ADN   3  KMESSX   
5FS6          ACROSSX  3,K1MESSA
5G?Q    SENTRY21
5GRB    WRONG LDX   0  NOMESS(1)
5H?2          STO   0  HMON1(2) 
5HQL ...      BRN      SENTRY2             [MONOUT JNOMESS  
5J==    NOMESS      +JNOMESS
5JPW    #   
5K9G    # REENTRY FROM MONFILE SEGMENTS 
5KP6    #   
5L8Q    SENTRY3 
5LNB          LDX   1  5
5M82          TESTMOVE 7,STILL             [J IF STILL THERE
5MML          MHUNTW   1,GMON,ATEMP 
5N7=          ADN   1  A1   
5NLW    STILL STO   1  PARTPTR(2)   
5P6G          TRACE HMON1(2),MONFADD
5PL6          BNG   6  SMONOUT             [J IF MONOUT(X)  
5Q5Q    #     INFORM - ADD ROUTING BITS AND EXTRA CATEGORIES
5QKB    #     INSERT 'INFORM' ROUTES
5R52          LDX   2  ACOMMUNE1(2) 
5RJL          LDN   0  NORUTS   
5S4=          TXL   2  0
5SHW          BCS      QINF 
5T3G          GEOERR   1,INF WHO?   
5TH6    QINF  ADX   2  FX1  
5W2Q          LDX   4  ROUTAB(2)           [LOAD INFORM ROUTING BITS
5WGB          SMO      FX2  
5X22          STO   4  MDESTINY            [INITIAL DESTINY 
5XFL          LDX   4  TABADD(2)           [EXTRA CATEGORY BITS 
5X^=          ORX   4  GSIGN               [ENFORCE RETAIN CATEGORY 
5YDW    #     X1->1ST PART  
5YYG    TOPP  LDCT  0  4
5^D6          ANDX  0  1(1) 
5^XQ          BZE   0  TOPPX               [J IF NOT INFORMABLE 
62CB          ORS   4  1(1)                [ELSE ADD CATEGORIES 
62X2          LDN   6  0                   [SET MARKER  
63BL    TOPPX LDCT  0  #100 
63W=          ANDX  0  1(1) 
64*W          BZE   0  S5                  [J IF NOMORE PARTS   
64TG          LDEX  0  0(1) 
65*6          ADN   0  11   
65SQ          SRL   0  2
66#B          ADX   1  0                   [NEXTPART
66S2          BRN      TOPP 
67?L    S5    LDX   2  FX2  
67R=          LDX   1  PARTPTR(2)          [RESTORE 
68=W          BZE   6  SMONOUT             [J IF SOME PART DONE 
68QG          ORS   4  1(1)                [ELSE USE IST PART   
69=6    SMONOUT 
69PQ          LDX   4  MDESTINY(2)         [FOR WMASK   
6=9B          LDN   0  SEMBL
6=P2          ANDX  0  4
6?8L          BNZ   0  MAASS               [OUT IF ASMESS ONLY  
6?N=    SETRE LDX   7  1(1)                [CATEGORY WORD   
6?R7 ...      LDN   0  #4000
6?S6 ...      ANDX  0  0(1) 
6?T5 ...      BZE   0  SETRE3              [J IF NOT HLS
6?W4 ...      LDCT  0  #040 
6?X3 ...      ANDX  0  1(1) 
6?Y2 ...      BZE   0  XHLSNP              [J IF NOT PACKED 
6?Y^ ...      LDCT  0  #200 
6?^Y ...      ORX   4  0                   [SET HLS&PA DESTINY IND. 
6#2X ...      BRN      SETRE3   
6#3W ...XHLSNP  
6#4T ...      ORX   4  GSIGN               [SET HLS&UNPACKED DESTINY IND.   
6#5S ...SETRE3  
6#7W          CALL  5  WMASK               [SET DESTINATION MASK
6#MG          BRN      QCONT               [J IF CONTINUED  
6*76    MAASS   
6*LQ          LDCT  7  #100 
6B6B          ANDX  7  CLONG1(2)
6BL2          ERS   7  CLONG1(2)           [TEST ASET BIT AND CLEAR 
6C5L          SLC   4  12   
6CK=          BNZ   4  SUMOP
6D4W          TRACE    HMON1(2),NOOUTPUT
6DJG          MFREE    GMON,ATEMP   
6F46          BZE   7  NOSET
6FHQ          MFREEW   GMON,ASET           [FREE ASET IF EXISTS 
6G3B    NOSET   
6GH2          UP                           [NO O/P! 
6H2L    #     CONTINUED 
6HG=    QCONT NEXTPART 1
6H^W          BRN      SETRE
6JFG    #   
6J^6    SUMOP STO   4  MDESTINY(2)  
6K6? ...      LDN   0  #2000
6K82 ...      ANDX  0  4
6K9P ...      BZE   0  XNOHLSP             [J IF NOT HLS&PA 
6K?D ...      ORX   4  GSIGN
6K*7 ...XNOHLSP 
6KDQ          BZE   7  NPARS               [J IF NO PARAMS  
6KYB          LDN   0  MKASET   
6LD2          ORS   0  MARKS(2)            [ELSE SET MARKER AT THIS LEVEL   
6LXL          MHUNTW   1,GMON,ASET  
6MC=          STOZ     A1+1(1)             [FOR 'STEPASET' MACRO
6MWW          BNG   4  SYSPACK             [J IF SYS.JOURNAL&PACKED 
6NBG          ACROSS   MONFIL,1            [COMPILE MESSAGE 
6NW6    SYSPACK     [PACKED O/P TO S.J. 
6P*Q          ACROSS   MONJRNAL,1   
6PTB    NPARS BNG   4  SYSPACK  
6Q*2          ACROSS   MONOLITH,2   
6QSL    #   
6R#=    #     THIS PART DEALS WITH OUTPUT OF THE BASIC  
6RRW    #     MESSAGE WHICH HAS BEEN COMPILED INTO  
6S?G    #      A BOUT BLOCK.
6SR6    #     THE DESTINATIONS ARE HELD AS BIT POSITIONS IN 
6T=Q    #     THE WORD GDESTINY OF THE ACTY.
6TQB    #     OUTPUT IS IN STRICT ROTA, BUT THIS ROTA MAY   
6W=2    #     BE TAMPERED WITH USING 'MFSETAB' IN MONFILE, BUT  
6WPL    #     MONFILE O/P SHOULD BE PREVIOUS TO ANY ROUTINE 
6X9=    #     WHICH USES 'WRITE'.   
6XNW    #     AND DITTO 'MOP' AND 'SCANB'   
CB96    #   
CC8B    #END
^^^^ ...34601413000200000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1