MONFILEA864

(George Source)

Macros used: ALIEN, ALTLEN, BRUSEN, BSON, CATMASK, CIOUT, CONSOLE, DOWN, FCJOB, FSHCODE, FSHENTRY, FSHSKIP, GEOERR, GMONTIDY, GSCAN, HLSINFORM, HUNT2J, IPBOUT, JBC, LINK, MFDEFS, MFORDER, MFREE, MFREEW, MFSETAB, MHUNT, MHUNTW, MOPOUT, NAME, NAMEX, OFF, OP, OPEND, PHOTO, SAWCEN, SEGENTRY, SETUPCORE, SHUFFLE, SJCHAIN, SJCHAINY, STEP, TESTMOVE, TESTRPN2, TRACE, TRANCHK, TRANCHKN, TRANSBEX, TRANSDIE, TRANSFIN, UP, VFREEW

MONFILEA864.txt
22FL ...#SEG  MONFILEA                     [RICHARD GRIMWADE
22PD ...#OPT  K0MONFILEA=0  
22^= ...#LIS  K0MONFILEA>K0MONCHAPS>K0ALLGEO>K0GREATGEO 
23DW ...      8HMONFILEA
23YG ...      SEGENTRY K1MONFILEA,SENTRY1   
24D6 ...      FSHENTRY K2MONFILEA,SENTRY2,SENTRY2,SENTRY2   
24XQ ...      FSHENTRY K3MONFILEA,SENTRY3,SENTRY3,SENTRY3   
28SQ    #   
29#B    # OVERFLOW SEGMENT FOR MONFILE  
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:   
2H4W    #   
2HJG    #   
2J46     MFORDER MFSETAB
2JHQ     MFDEFS 
2JKN ...       FSHCODE  AORB
2JML ...(   
2JPJ ...SLINK2  
2JRG ...      LINK     MONFILEA,2   
2JTD ...SLINK3  
2JXB ...      LINK     MONFILEA,3   
2J^# ...)   
2K3B    WJOUR CATMASK  JOURNAL  
2KH2    WCLUS CATMASK  CLUSTER  
2L2L    WPRIN CATMASK  FORCEPRI 
2LG=    SCAMSK CATMASK OL,PM,LS            [FORBIDDEN GSCAN'S   
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'   
6Y8G    OUTAB [DESTINATION ROTA 
6YN6    #   
6^7Q          MFORDER  SHUFFLE  
6^MB ...SENTRY1     [ENTERED FROM MONFIL, MONOLITH AND K4MONFILE
72LL    #     SOME EXCLUSIVE DESTINIES MUST BE DEALT WITH:  
736=          LDX   7  MDESTINY(2)  
738F ...#SKI  JWPHASE4  
73=N ...(   
73#X ...      SRL   7  11   
73C6 ...      SRC   7  1
73F* ...)   
73HJ ...#SKI  JWPHASE4<1$1  
73KW          SRL   7  12                  [SINCE MARKS=MDESTINY
745G          LDN   0  MALL 
74K6          ANDX  0  7
754Q          BZE   0  OPUS1               [J IF ROUTE NOT ALL  
75JB          NGN   0  1
7642          ERN   0  OP+REMOTE+MBOTH  
76HL          ANDS  0  7                   [REMOVE OTHER ROUTES 
773=          BRN      OPEND
77GW    OPUS1 LDN   0  MBOTH
782G          ANDX  0  7
78G6          BZE   0  OPUS2               [J IF NOT 'BOTH' 
78^Q          NGN   0  1
79FB          ERN   0  REMOTE+OP
79^2          ANDX  7  0
7=DL          BRN      OPEND
7=Y=    OPUS2 LDN  0   OP+REMOTE
7?CW          ANDX  0  7
7?XG          ERN   0  OP+REMOTE
7#C6          BNZ   0  OPEND               [J IF NOT OP&REMOTE  
7#WQ          ERN   7  OP+REMOTE+MBOTH     [ELSE SET (BOTH) 
7*BB    OPEND SLC   7  12   
7*W2          STO   7  MDESTINY(2)  
7B*L          TRACE    7,DESTINY
7BT=    #   
7C#W          MHUNTW   1,GMON,BOUT  
7CSG          LDCT  0  #100 
7D#6          ANDX  0  ARECB+1(1)   
7DRQ          SLL   0  2
7F?B          STO   0  AWORK1(2)           [SET MARKER  
7F*# ...#SKI  JWPHASE4  
7FC= ...(   
7FF8 ...      ANDN  7  #4000
7FH6 ...      BZE   7  XECUTE              [J IF NOT HLS&PA 
7FK4 ...      ERS   7  GDESTINY(2)         [REMOVE HLS&UNPACKED DESTINY IND.
7FM2 ...      STOZ     AWORK4(2)
7FNY ...      BRN      ZHLS 
7FP^ ...)   
7FR2    XECUTE  
7G=L          LDX   1  FX1  
7GQ=    [ WE PRESUME THAT SJPAK IS B0 AND HAS BEEN O/P PREVIOUSLY   
7H9W          LDX   2  FX2  
7HPG          LDXC  0  GDESTINY(2)  
7J96          LDEX  4  0                   [OUTPUT ROUTINE NO   
7JNQ          ERX   0  4
7K8B          BZE   0  OFF                 [FINISHED !  
7KN2    ROUND BNG   0  NEXT                [NEXT SIG BIT FOUND  
7L7L          SLL   0  1
7LM=          BUX   4  ROUND
7M6W    OFF   MFREEW   GMON,BOUT
7MLG          LDEX  0  AWORK1(2)
7N66          BZE   0  ZUP                 [J IF NO AOUT
7NKQ          MFREEW   GMON,AOUT
7P5B    ZUP 
7PK2          UP
7Q4L    NEXT  STOZ     AWORK4(2)           [INITIALIZE  
7QJ=          DEX   4  0
7R3W          STO   0  GDESTINY(2)  
7RHG          ADN   4  OUTAB(1) 
7S36          EXIT  4  0                   [OFF TO O/P ROUTIE   
7SGQ    WALMS CATMASK  CENTRAL,CLUSTER  
7T2B    TRALCEN     CATMASK CENTRAL 
7TG2    MASCTAB        [USED BY WMASC - ROUTING PARAM ORDER 
7T^L          BRN      WSJ                 [1 SYSTEM JOURNAL
7WF=          BRN      WSCAN               [2 SCAN BUFFER   
7WYW          BRN      WMONF               [3 MONFILE   
7XDG          BRN      WMOP                [4 MOP   
7XY6          BRN      WALL                [5 O/P TO ALL CONSOLES!  
7YCQ          BRN      WCONS               [6 O/P TO CENTRAL     !KEEP TOGETHER 
7YXB          BRN      WCLS                [7 O/P TO OWN
7^C2          BRN      WREPL               [9  REPLY
7^J8 ...#SKI  JWPHASE4  
7^PB ...      BRN      WHLS                [9 HLSTEMP OUTPUT
7^WL    #DEF  XEND=0?-MASCTAB+1 
82B=    #   
82TW    #     S/R TO FIND NEXT RELEVANT PART
83*G    #     FROM ROUTE NUMBER IN X7   
83T6    #     PTR GIVEN IN X3 AND AWORK4->NEXTPART (OR 0 OR -VE)
84#Q    #   
84SB    #     AWORK3 : TOP 6 BITS RESERVED FOR 'WLEN'   
85#2    #              LAST 9 BITS 2^(PART NUMBER)  
85RL    #   
86?=    WMASC LDX   2  FX2  
86QW          SBN   7  XEND 
87=G          BPZ   7  (GEOERR)            [ESURE OK
87Q6          ADN   7  XEND 
889Q    WM1   LDXC  3  AWORK4(2)
88PB          BCS      (6)                 [+0 IF NO NEXT PART  
8992          BNZ   3  WM2                 [J IF 2ND TIME THRU  
89NL          MHUNTW   3,GMON,BOUT  
8=8=          ADN   3  A1                  [PTR TO 1ST PART 
8=MW          LDN   0  1
8?7G          STO   0  AWORK3(2)           [INITIALIZE  
8?M6    WM2   LDCT  0  #100 
8#6Q          ANDX  0  1(3) 
8#LB          BNZ   0  WM3  
8*62          NGN   0  4095                [SET -VE IF NOT CONTINUED
8*KL          BRN      WM4  
8B5=    WM3   LDX   0  0(3) 
8BJW ...      ANDN  0  #3777               [REC HEADER  
8C4G          ADN   0  3
8CJ6          SRL   0  2
8D3Q          ADN   0  2(3)                [->NEXT PART 
8DHB    WM4   STO   0  AWORK4(2)
8F32          LDEX  0  AWORK3(2)
8FGL          ADS   0  AWORK3(2)           [DOUBLE 'PART-INDIC' 
8G2=          SMO      7
8GFW          BRN      MASCTAB-1           [TO APPR ROUTINE 
8G^G    #     SYSTEM JOURNAL
8HF6    WSJ   SMO      FX1  
8HYQ          LDX   0  WJOUR
8JDB    WM5   ANDX  0  1(3) 
8JY2          BZE   0  WM1                 [J IF NOTJOURN   
8KCL          EXIT  6  1
8KX=    #     SCAN BUFFER   
8LBW    WSCAN SMO      FX1  
8LWG          LDX   0  SCAMSK   
8MB6          ANDX  0  1(3) 
8MTQ          BNZ   0  WM1                 [J IF 'NOSCAN'   
8N*B          EXIT  6  1
8NT2    #     MONITOR FILE  
8P#L    WMONF LDX   0  AMFMSK(2)
8PS=          BZE   0  WM1                 [J IF TRACE NONE 
8Q?W          LDCT  0  #20                 [FORCEPRINT  
8QRG          ORX   0  AMFMSK(2)
8R?6          BRN      WM5  
8RQQ    #     MOP OUTPUT
8S=B    WMOP  LDCT  0  2                   [FORCETYPE   
8SQ2          ORX   0  AMXMSK(2)
8T9L          BRN      WM5  
8TP=    #     CONSOLE  O/P  
8W8W    WCONS LDN   0  #4000               [CENTRAL 
8WNG          ORX   0  IOPTRACE            [AND OPTRACE 
8X86          BRN      WM5  
8XMQ    #     CLUSTER  O/P  
8Y7B    WCLS  LDN   0  #4000
8YM2          SLL   0  1                   [REMOTE BIT 'OP' 
8^6L          ORX   0  IOPTRACE            [?   
8^L=          BRN      WM5  
925W    #     O/P TO ALL - ASSUME THE MESSAGE IS SET EQUAL FOR ALL  
92KG    WALL  SMO      FX1  
9356          LDX   0  WALMS               [CL&OP   
93JQ          ORX   0  IOPTRACE 
944B          BRN      WM5  
94J2    #   
953L    #     REPLY : TAKE CATEGORIES:  
95H=    #     LG,PM,FL,CT,CE,OJ,LS,DP   
962W    RMASK CATMASK  LG,PM,FL,CT,CE,OJ,LS,DP  
96GG    WREPL SMO      FX1  
9726          LDX   0  RMASK
97FQ          BRN      WM5  
97HF ...#SKI  JWPHASE4  
97K8 ...(   
97LX ...#     HLSTEMPQ OUTPUT   
97NL ...WHLS  LDN   0  #4000
97Q* ...      ANDX  0  0(3) 
97S4 ...      BZE   0  WM1                 [J IF NOT HLS
97TR ...      EXIT  6  1
97XG ...)   
97^B    #     FINDS THE NO OF CHARS IN MESSAGE PARTS
98F2    #     TO GIVEN ROUTE(IN X7  [CF WMASC]) RESULT X4   
98YL    #     AWORK3 UPDATED FOR 'WRITE'
99D=    #     HMON1 IS THE UNION OF CATE_ORIES  
99XW    WLEN  LDN   4  0
9=CG          SMO      FX2  
9=X6          STO   4  HMON1
9?BQ    WL1   CALL  6  WMASC
9?WB          BRN      WL2                 [OUT IF NO MORE PARTS
9#B2          LDX   0  0(3) 
9#FX ...#SKI  JWPHASE4  
9#KS ...      ANDN  0  #3777
9#PP ...#SKI  JWPHASE4<1$1  
9#TL          ANDN  0  4095 
9**=          ADX   4  0
9*SW          LDCH  0  AWORK3(2)
9B#G          ORX   0  AWORK3(2)           [ADD THIS PART-INDIC 
9BS6          DCH   0  AWORK3(2)
9C?Q          LDX   0  1(3) 
9CRB          ORS   0  HMON1(2)            [ADD CATEGORIES  
9D?2          BRN      WL1  
9DQL    WL2   STOZ     AWORK4(2)
9F==          EXIT  5  0
9FPW    ZMONFILE       [OUTPUT TO MONITOR FILE  
9G9G          LDN   7  3
9GP6          CALL  5  WLEN 
9GQT ...      FSHCODE  AORB 
9GSJ ...(   
9G^P ...      LDX   5  SLINK2(1)           [LINK TO LABEL 'SENTRY2' 
9H32 ...      ALIEN    XHOMETRAN,2         [J IF ON AWAY MACHINE - TRANSFER HOME
9H4? ...      TRANCHK FSHMESSAGE,EQUAL,XHOMENEST,SENTRY2 [NEST IF ALREADY TRAN'D
9H5J ...SENTRY2 
9H6W ...)   
9H8Q          LDN   0  2000                [MAX CHARS PER RECORD
9HNB          TXL   4  0
9J82          BCS      MON9 
9JML          LDX   4  0                   [ENFORCE MAX IF NEC  
9K7=    MON9  NGX   5  4                   [SAVE IN X5  
9KLW          LDX   2  4
9L6G          ADN   2  11                  [+2 WORDS
9LL6          SRL   2  2                   [NO OF WORDS 
9M5Q          LDX   6  2
9MKB          STEP     -1,0(2),FORCED   
9N52          TESTRPN2 FILEFULL,MON6
9NJL    #   
9P4=    #     FILEFULL SO WE SET NOTRACE AT ALL LEVELS  
9PHW    #     AND SET 'FULLTRACE' MARKER
9Q3G    #   
9Q5P ...      FSHCODE  AORB 
9Q7Y ...(   
9Q93 ...      TRANCHKN FSHMESSAGE,EQUAL,MONFULL,MONFULL [J IF NOT TRANSBEG'D
9Q=7 ...      LDN   2  1                   [OFFSET TO LABEL 'MONFULL'   
9Q#B ...      CALL  4  TRANSFIN            [RETURN TO ORIGINAL MACHINE OR UNNEST
9QBK ...MONFULL 
9QDS ...)   
9QH6          LDCT  0  #40  
9R2Q          ORS   0  CLONG1(2)           [FULLTRACE   
9RGB          STOZ     AMFMSK(2)           [NONE THIS LEVEL 
9S22    MON8  HUNT2J   2,CPB,CALAS,,MON7
9SFL          STOZ     CMFMSK(2)           [AND AT HIGHER LEVELS
9S^=          BRN      MON8 
9TDW    MON6
9TYG          STO   6  0(3)                [RECORD HDDR 
9WD6          LDN   4  2(3)                [->NEXT WORD 
9WXQ          LDN   1  1(3)                [->CATWORD   
9XCB          STOZ     0(1) 
9XX2    MON3  CALL  6  WMASC
9YBL          BRN      MON5 
9YW=          LDX   2  0(3) 
9^27 ...#SKI  JWPHASE4  
9^64 ...      ANDN  2  #3777
9^9^ ...#SKI  JWPHASE4<1$1  
9^*W          ANDN  2  4095                [CHAR CNT
9^TG          ADX   5  2
=2*6          BNG   5  MON10
=2SQ          SBX   2  5                   [TRUNCATE IF NEC 
=3#B    MON10   
=3S2          LDX   0  1(3)                [CATBITS 
=4?L          ORS   0  0(1)                [UNION   
=4R=          ADN   3  2
=5=W    MON2  SBNC  2  512  
=5QG          BCS      MON1                [J IF < 128 CHARS
=6=6          MVCH  3  0
=6PQ          BRN      MON2 
=79B    MON1  ANDN  2  #777 
=7P2          BZE   2  MON11
=88L          MVCH  3  0(2)                [LAST IN 
=8N=    MON11 BNG   5  MON3                [J IF MORE ROOM  
=97W    MON5  LDX   5  4
=9MG          SLC   5  2
==76          ANDN  5  3
==LQ          BZE   5  MON4                [J IF NO SPACEFILL   
=?6B          LDN   3  ACES 
=?L2          NGX   5  5
=#5L          ADN   5  4                   [CHARS TO GO 
=#K=          SMO      5
=*4W          MVCH  3  0                   [SPACEFILL   
=*8R ...      FSHCODE  AORB 
=*#N ...MON4  TESTREPN FNEARLY,XRETURN     [J IF NOT MONITORING FILE NEARLY FULL
=*DK ...      FSHSKIP   
=*JG    MON4  TESTREPN FNEARLY,XECUTE   
=B46    MON7  DOWN     PROCONTX,15         [ABANDON IF NEARLY FULL  
=B64 ...      FSHCODE  AORB 
=B82 ...(   
=B9Y ...XRETURN 
=B?W ...      TRANCHKN FSHMESSAGE,EQUAL,XECUTE,XECUTE [J IF NOT TRANSBEG'D  
=B*S ...      LDN   2  0                   [OFFSET TO LABEL 'XECUTE'
=BCQ ...      CALL  4  TRANSFIN            [RETURN TO OTHER MACHINE OR UNNEST   
=BFN ...)   
=BHQ          BRN      XECUTE   
=BK^ ...      FSHCODE  AORB 
=BN8 ...(   
=BQC ...TRANSFIN
=BSL ...      TRANSFIN 2                   [RETURN TO OTHER M/C OR DROP THROUGH 
=BWT ...      EXIT  4  0                   [RETURN TO AFTER CALL - 1 LEVEL LESS 
=B^4 ...)   
=C3B    #     MOPOUT TABLE  
=CH2    MOPOUT         +0   
=D2L          BRN      MREAD               [TAPE READER -TO OPS CONSOLE 
=DG=                   +3   
=D^W          BRN      MREAD               [CARD READER - DITTO 
=FFG                   +7   
=F^6          BRN      MFAIL               [MOP FAIL
=GDQ                   +10  
=GYB          BRN      TOMOP               [MOP CONSOLE 
=HD2                   +11  
=HXL          BRN      TOMOP               [MOP CONSOLE 
=KBG                   +24  
=KW6          BRN      MIPB                [IPB 
=L*Q                   +60  
=LTB          BRN      MCOMI               [COMMAND ISSUER  
=M*2                   +63  
=MSL          BRN      MREAD               [LOGGEDIN OPSCONSOLE 
=N#=                   +5   
=NRW          BRN      MAGTP               [MAGTAPE !   
=P?G    #DEF  MOPNO=0?-MOPOUT/2 
=PR6    #DEF  MAGTP=MREAD   
=PTY ...      FSHCODE AORB  
=PYQ ...(   
=Q3J ...#      TABLE USED BY ZMOP IN SHFS   
=Q6B ...MOPTOOP        +0                  [TAPE READER 
=Q98 ...               +3                  [CARD READER 
=Q#2 ...               +63                 [OPS CONSOLE 
=QBS ...               +5                  [MAG TAPE!   
=QFL ...#DEF  MOPOPNO=0?-MOPTOOP
=QJD ...)   
=QM= ...#   
=QQB    #   
=R=2    NCONS          +3                  [NO OF CONSOLE ROUTES
=RPL    TESTAB         [CATEGORY BITS FOR  ROUTE:   
=S9=          CATMASK  CENTRAL,CLUSTER     [5   
=SNW          CATMASK  CENTRAL             [6   
=T8G          CATMASK  CLUSTER             [7   
=TN6    #     FOR USE OF 'WRITE'
=W7Q    #     TEST IF JOBNAME TO BE PREFI XED (USE AFTER WLEN)  
=WMB    TESTJ LDX   1  7
=X72          SBN   1  5
=XLL          SMO      FX1  
=Y6=          TXL   1  NCONS
=YKW          BCC      TS1                 [J IF NOT A CONSOLE ROUTE
=^5G          ADX   1  FX1  
=^K6          LDX   0  TESTAB(1)
?24Q          ANDX  0  HMON1(2) 
?2JB          BNZ   0  TS1                 [OR 'E[PECTED'   
?342          LDX   0  JOBNO(2) 
?3HL          BZE   0  TS1                 [J IF NO-USER
?43=    #SKI  ANOUSER<1$1   
?4GW    (   
?52G          LDCH  0  ATYPE(2) 
?5G6          SBN   0  CPAT/64  
?5^Q          BNZ   0  TS2                 [OUT IF NOT A CPAT   
?6FB          BRUSEN   TS1,2               [OR NO-USER  
?6^2    TS2 
?7DL    )   
?7Y=    #   
?8CW    #     ELSE OPTRACE ROUTING ALONE
?8XG          LDCT  0  #10  
?9C6          ORS   0  AWORK3(2)           ['OPTRACE' PART  
?9WQ          ADN   4  7                   [MAX INCREASE
?=BB          EXIT  6  0
?=W2    TS1   EXIT  6  1
??*L    #     S/R TO SET UP AN AOUT IF NECESSARY
??T=    #     USES AWORK1 AS MARKER WORD
?##W    #     X1->AOUT ON EXIT, X7 USED AS FOR WMASC
?#SG    #   
?*#6    #     AWORK 1 HAS: B0 SET IF MULTIPART BOUT 
?*RQ    #                LAST 9 BITS SET IF AN AOUT EXISTS  
?B?B    WRITE   
?BR2          CALL  5  WLEN                [SETUP X4,AWORK3,ACOMMUNE1   
?C=L          LDX   5  1                   [KEEP LINK   
?CQ=          ADN   4  11   
?D9W          SRL   4  2
?DPG          CALL  6  TESTJ               [CHECK IF JOBNAME PREFIX...  
?F96          LDN   6  0                   [...REQUIRED 
?FNQ          LDCH  0  AWORK3(2)           [PARTS REQUIRED THIS TIME
?G8B          LDEX  1  AWORK1(2)           [PARTS USED LAST TIME
?GN2          DEX   0  AWORK1(2)           [REMEMBER FOR NEXT TIME  
?H7L          BZE   1  NOOUT               [J IF NO AOUT
?HM=          TXU   0  1
?J6W          BCS      NEWOUT              [NEED A NEW AOUT 
?JLG          MHUNTW   1,GMON,AOUT         [...ELSE THIS ONE WILL DO
?K66          EXIT  5  0
?KKQ    NEWOUT  
?L5B          MFREE    GMON,AOUT           [FREE THE OLD AOUT   
?LK2    NOOUT   
?M4L          SBX   5  FX1  
?MJ=          SETUPCORE 4,1,GMON,AOUT   
?N3W          ADX   5  FX1  
?NHG          LDX   0  HMON1(2) 
?P36          STO   0  ARECB+1(1)          [CATEGORY UNION  
?PGQ          LDN   4  ARECB+2(1)          [CHAR PTR
?Q2B          BZE   6  PUTIN               [J IF TO PUT JOBNAME IN  
?QG2    WR1   CALL  6  WMASC
?Q^L          BRN      WTIDY               [TIDY UP IF NO MORE PARTS
?RF=          LDX   0  0(3) 
?RK7 ...#SKI  JWPHASE4  
?RP4 ...      ANDN  0  #3777
?RS^ ...#SKI  JWPHASE4<1$1  
?RYW          ANDN  0  4095                [CHAR-COUNT  
?SDG          ADN   3  2                   [SKIP RECORD WORDS   
?SY6    WR6   BZE   0  WR1  
?TCQ          SBNC  0  512  
?TXB          BCS      WR7  
?WC2          MVCH  3  512                 [MOVE IN BLOCKS OF 512 CHARS 
?WWL          BRN      WR6  
?XB=    WR7   SMO      0                   [PUT LAST IN 
?XTW          MVCH  3  0
?Y*G          BRN      WR1  
?YT6    WTIDY LDN   3  ACES 
?^#Q          LDX   0  4
?^SB          SLC   0  2
#2#2          NGX   0  0
#2RL          ANDN  0  3                   [CHARS TO GO 
#3?=          BZE   0  WR2  
#3QW          SMO      0
#4=G          MVCH  3  0                   [SPACEFILL   
#4Q6    WR2   SBN   4  ARECB(1) 
#59Q          STO   4  ARECB(1)            [RECORD HDDR 
#5PB          EXIT  5  0
#692    #     PREFIX THE JOBNAME :Q 'FRED,:JACK: '  
#6NL    PRESET      4H,::   
#78=    PUTIN FCJOB 1,2,PCA,CPA,OLPA
#7MW    #SKI  ANOUSER<1$1   
#87G    (   
#8M6          LDX   0  ALOGLEN(1)   
#96Q          SBN   0  ASTJOB   
#9LB          BZE   0  PUT3                [OUT IF NO-USER  
#=62    )   
#=KL          SMO      FX1  
#?5=          LDN   6  PRESET   
#?JW          LDN   3  JNAME(1) 
##4G    PUT2  LDN   2  3(3) 
##J6    PUT1  SLC   2  2
#*3Q          SBN   2  1
#*HB          SRC   2  2
#B32          LDCH  0  0(2) 
#BGL          SBN   0  #20  
#C2=          BZE   0  PUT1                [BACKSPACE   
#CFW          SBX   2  3                   [X3--CHAR 0  
#C^G          SLC   2  2
#DF6          MVCH  3  1(2)                [PUT IN  
#DYQ          LDX   3  6
#FDB          MVCH  3  2
#FY2          BNG   6  PUT3                [OUT ON 2ND PASS 
#GCL          LDX   6  3
#GX=          LDN   3  JUSER(1) 
#HBW          BRN      PUT2 
#HWG    PUT3  MHUNTW   1,GMON,AOUT         [RESTORE X1  
#JB6          BRN      WR1  
#JTQ    #   
#K*B    ZSJPAK GEOERR  1,SJDONE!
#KT2    #   
#KX9 ...#SKI  JWPHASE4  
#K^D ...(   
#L3M ...ZHLS
#L5W ...      LDN   7  9                   [ROUTE 9 FOR WMASC   
#L85 ...      BRN      SJ0  
#L=# ...)   
#L#L    ZSJNPK  
#LS=          LDN   7  1                   [ROUTE 1 FOR WMASC   
#L^D ...#SKI  JWPHASE4  
#M6L ...SJ0 
#M?W          CALL  5  WLEN                [CHARS IN MESSAGE
#MRG          LDX   5  4                   [SAVE CHAR COUNT 
#N?6          ADN   4  JMESSAGE-JWAITER+1*4+3   
#NQQ          SRL   4  2                   [NO OF WORDS REQID   
#P=B          SETUPCORE 4,1,GMON,JRNAL  
#PQ2          STOZ     JCATS(1) 
#Q9L          STOZ     JWAITER(1)   
#QP=          MHUNT    3,GMON,BOUT  
#R8W          LDX   0  A1(3)
#RNG          ANDX  0  HALFTOP  
#S86          STO   0  JPACKORG(1)         [MESSNO/NO PDCS  
#SMQ          LDX   0  ACOMMUNE2(2) 
#T7B          STOC  0  JJOBNO(1)
#TM2          BCC      SJ1                 [J IF AUTONOMOUS 
#TWS ...      BSON     EMSBIT,SJ1          [J IF IN EMS 
#W6L          LDX   0  ACTNUM(2)
#WL=          STO   0  JWAITER(1)   
#X5W    SJ1   LDN   4  JMESSAGE(1)  
#XKG    SJ3   CALL  6  WMASC
#Y56          BRN      SJ2                 [OUT IF NO MORE PARTS
#YJQ          LDX   0  1(3) 
#^4B          ORS   0  JCATS(1)            [ADD CATGORY 
#^J2          LDEX  0  0(3)                [CHARS   
*23L          BZE   0  SJ3  
*2H=          ADN   3  2
*32W          SMO      0
*3GG          MVCH  3  0                   [CONCATENATE 
*426          BRN      SJ3  
*4FQ    SJ2   LDX   4  1
*4GF ...#SKI  JWPHASE4  
*4H8 ...(   
*4HX ...      GMONTIDY 4,5,UNPACKED        [TIDY UP GMON/JRNAL  
*4JL ...      SBN   7  1
*4K* ...      BZE   7  SJ6                 [J IF JOURNAL O/P
*4L4 ...      LDX   1  4
*4LR ...      LDX   3  ALOGLEN(1)   
*4MG ...      SBN   3  4
*4N9 ...      LDN   2  A1(1)
*4NY ...      LDN   1  A1+3(1)  
*4PM ...      MOVE  1  0(3)                [WORDS OF......  
*4QB ...      ALTLEN   4,3                 [RED TAPE.   
*4R5 ...      NAME     4,ADATA,ASUP 
*4RS ...      HLSINFORM XECUTE,MESSAGE     [O/P TO TEMPQ
*4SH ...      VFREEW   ADATA,ASUP   
*4T= ...      BRN      XECUTE   
*4T^ ...SJ6 
*4WN ...      SJCHAINY 4
*4XC ...)   
*4Y6 ...#SKI  JWPHASE4<1$1  
*4^B          SJCHAIN  4,5                 [O/P 
*5F2          BRN      XECUTE   
*5YL    ZSCANB  
*6D=          LDN   7  2
*6XW    WSC1  CALL  6  WMASC
*7CG          BRN      XECUTE   
*7X6          LDXC  0  AWORK1(2)
*8BQ          BCS      WSC3                [J IF MANY PART  
*8WB          NGN   4  1
*9B2          BRN      WSC2 
*9TL    WSC3
*=*=          MHUNTW   1,GMON,BOUT  
*=SW          LDX   5  1
*?#G          PHOTO    4
*?S6    WSC2  LDEX  2  0(3) 
*#?Q          ADN   2  3
*#RB          SRL   2  2
**?2          GSCAN    1(3),MONF OUT,1(2)   
**QL          BNG   4  XECUTE              [OUT IF ONEPART  
*B==          TESTMOVE 4,WSC1   
*BPW          MHUNTW   1,GMON,BOUT  
*C9G          SBX   1  5                   [DISTANCE MOVED  
*CP6          ADS   1  AWORK4(2)
*D8Q          BRN      WSC1 
*DNB    #   
*F82    #     MOP O/P-INCLUDES READER-JOB MESSAGES  
*FML    ZMOP  LDN   7  4
*G7=          CALL  5  WLEN 
*GLW          STO   4  ACOMMUNE1(2)        [SAVE CHARLENGTH 
*GMR ...      FSHCODE  AORB 
*GNN ...(   
*GNX ...      LDCH  0  JSOURCE1(2)          [IF MOP OUTPUT TO BE
*GP6 ...      LDN   3  MOPTOOP(1)           [DIRECTED TO OPS CONSOLE
*GP* ...      LDN   4  MOPOPNO              [DON'T TRANSFER HOME
*GPJ ...XLOOP   
*GPR ...      TXU   0  0(3) 
*GQ2 ...      BCC      SENTRY3  
*GQ9 ...      ADN   3  1
*GQD ...      BCT   4  XLOOP
*GQM ...      SAWCEN   CENTRAL,SENTRY3      [DON'T TRANSFER HOME IF SOURCE NOT  
*GQW ...                                    [CENTRAL - OUTPUT DIRECTED TO OP
*GRC ...      LDX   5  SLINK3(1)           [LINK TO LABEL 'SENTRY3' 
*GRQ ...      ALIEN    XHOMETRAN,2         [J IF ON AWAY MACHINE,TRANSFER HOME  
*GS5 ...      TRANCHK FSHMESSAGE,EQUAL,XHOMENEST,SENTRY3 [NEST IF ALREADY TRAN'D
*GSD ...      BRN      SENTRY3             [DON'T NEED TO TRANSBEG  
*GSR ...XHOMETRAN   
*GT9 ...      LDN   1  FSHMESSAGE          [ID = FSHMESSAGE 
*GTM ...XTRANSBEG   
*GW6 ...      LDN   2  GMON+BOUT           [TERMINATING BLOCK = GMON/BOUT   
*GX3 ...      SLL   2  12   
*GXY ...      TRANSBEX 1,5,2,ACOMMUNE3,XIPBDOWN 
*GYT ...      BRN      XECUTE              [OK RETURN   
*G^Q ...      BRN      MONFULL             [MONITORING FILE FULL RETURN 
*H2M ...XIPBDOWN
*H3J ...      TRANSDIE                     [KILL OFF ACTIVITY   
*H3X ...XHOMENEST   
*H4= ...      LDN   1  FSHMESSAGE+FSHZNEST [ID = FSHMESSAGE,NESTED TRANSBEG 
*H4K ...      BRN      XTRANSBEG
*H4Y ...SENTRY3 
*H5B ...)   
*H6G          CALL  1  WRITE               [GET X1->AOUT
*HL6    #     HERE  X1 -> AOUT  
*J5Q    WMOP3 LDCH  0  JSOURCE1(2)         [PERI-TYPE   
*JKB          SMO      FX1  
*K52          LDN   3  MOPOUT              [TABLE   
*KJL          LDN   4  MOPNO               [NO OF TYPES 
*L4=    MLOP  TXU   0  0(3) 
*LHW          BCC      MFND 
*M3G          ADN   3  2
*MH6          BCT   4  MLOP 
*N2Q          GEOERR   1,RONGTYPE   
*NGB    MFND  LDX   7  ACOMMUNE1(2)        [CHAR LENGTH 
*P22          EXIT  3  1                   [BRANCH  
*PFL    #     MOPOUT
*P^=    TOMOP SAWCEN   CENTRAL,MREAD       [J IF SAWCE NOT CENTRAL  
*QDW ...#SKI  JSKI31
*QYG    (   
*RD6 ...      JBC      MOP1,2,EXQUIET         [J IF NOT QUIET   
*RXQ ...      LDEX  0  ARECB+1(1)          [CATEGORY
*SCB ...      ERN   0  #20  
*SX2 ...      BNZ   0  MOP1                [J IF NOT COMMERR
*TBL ...      LDN   0  1
*TW= ...      STO   0  ACOMMUNE1(2)        [MOP IND.
*W*W ...      DOWN     PNTLAST,4
*WTG ...      FSHCODE  AORB 
*X*6 ...      BRN      XRETURN  
*XSQ ...      FSHSKIP   
*^R=          BRN      XECUTE   
B2=W    MOP1
B2QG    )   
B3=6          MOPOUT   7,NOIPB             [OUT TO MOP-NO IPB   
B3B3 ...      FSHCODE  AORB 
B3FY ...      BRN      XRETURN  
B3KT ...      FSHSKIP   
B3PQ          BRN      XECUTE   
B49B    #     MOP FAILURE   
B4P2    MFAIL DOWN     MULTIPLX,4   
B4SX ...      FSHCODE  AORB 
B4YS ...      BRN      XRETURN  
B54P ...      FSHSKIP   
B58L          BRN      XECUTE   
B776    #   
B789 ...#SKI  JSKI31
B79# ...(   
B7=C ...MIPB  JBC      XQNOT,2,EXQUIET     [J IF NOT QUIET  
B7?G ...      LDEX  0  ARECB+1(1)   
B7#K ...      ERN   0  #20  
B7*N ...      BNZ   0  XQNOT               [J IF NOT COMMAND ERROR  
B7BR ...      LDN   0  2
B7CW ...      STO   0  ACOMMUNE1(2)           [IPB IND. 
B7D^ ...      DOWN     PNTLAST,4           [O/P 'ERROR  
B7F9 ...      FSHCODE  AORB 
B7FF ...      BRN      XRETURN  
B7FP ...      FSHSKIP   
B7G4 ...      BRN      XECUTE   
B7H7 ...XQNOT IPBOUT   7
B7J= ...)   
B7K* ...#SKI  JSKI31<1$1
B7LQ    MIPB  IPBOUT   7
B7QM ...      FSHCODE  AORB 
B7WJ ...      BRN      XRETURN  
B82F ...      FSHSKIP   
B86B          BRN      XECUTE   
B8L2    #   
B8M8 ...#SKI  JSKI31
B8NB ...(   
B8PJ ...MCOMI JBC      MCIEX,2,EXQUIET        [J IF NOT QUIET   
B8QQ ...      LDEX  0  ARECB+1(1)   
B8RY ...      ERN   0  #20  
B8T6 ...      BNZ   0  MCIEX               [J IF NOT COMERR 
B8W# ...      STOZ     ACOMMUNE1(2) 
B8XG ...      DOWN     PNTLAST,4             [O/P 'ERROR'   
B8XR ...      FSHCODE  AORB 
B8Y4 ...      BRN      XRETURN  
B8Y* ...      FSHSKIP   
B8YN ...      BRN      XECUTE   
B8^W ...MCIEX CIOUT    7
B934 ...)   
B94= ...#SKI  JSKI31<1$1
B95L    MCOMI CIOUT    7
B99H ...      FSHCODE  AORB 
B9*D ...      BRN      XRETURN  
B9F* ...      FSHSKIP   
B9K=          BRN      XECUTE   
B=4W    #     REPORT TO ONE SOURCE  
B=JG    MREAD LDX   5  GDESTINY(2)  
B?46          LDEX  3  5
B?HQ          SRC   5  12(3)               [RESET   
B#3B          LDX   6  5
B#H2          ANDN  6  OP+REMOTE+MBOTH+MALL 
B*2L          BZE   6  SOLE                [TO CLUSTER IF NOT OPROUTE   
B*G=          ANDN  6  OP   
B*^W          BZE   6  XECUTE              [OUT IF NOT CENTRAL  
BBFG          ERN   5  OP+MBOTH            [ELSE SET 'BOTH' INSTEAD 
BB^6          SLC   5  12(3)
BCDQ          STO   5  GDESTINY(2)  
BCYB          BRN      XECUTE   
BDD2    #   
BDXL    #     O/P TO ALL
BFC=    ZMALL LDN   7  5
BFWW          CALL  1  WRITE
BGBG          LDN   6  3
BGW6          BRN      SOLE 
BH*Q    #   
BHTB    #     O/P TO 'OWN'  
BJ*2    ZREMOTE 
BJSL          LDN   7  7
BK#=          CALL  1  WRITE
BKRW          LDN   6  0
BL?G          BRN      SOLE 
BLR6    #   
BM=Q    #     O/P TO CENTRAL
BMQB    ZOP   LDN   7  6
BN=2          CALL  1  WRITE
BNPL          LDN   6  1
BP9=          BRN      SOLE 
BPNW    #   
BQ8G    #     O/P TO BOTH OWN+CENTRAL   
BQN6    ZMBOTH  
BR7Q          LDN   7  5
BRMB          CALL  1  WRITE
BS72          LDN   6  2
BS=X ...      FSHCODE  AORB 
BS#T ...(   
BSBS ...SOLE  CONSOLE  6                   [O/P !   
BSFB ...)   
BSGP ...      FSHSKIP   
BSJM ...(   
BSLL    SOLE  CONSOLE  1,6                 [O/P !   
BT6= ...)   
BW5G          BRN      XECUTE   
BW=N ...#SKI
BWCW ...(   
BWK6    #     RETAIN BLOCK  
BX4Q    #     AN AOUT HOLDING ALL RELEVANT PARTS IS RETAINED
BXJB    #     THIS IS A TERMINAL ROUTINE
BY42    ZRETAIN 
BYHL          LDEX  0  AWORK1(2)
B^3=          BZE   0  RET1                [J IF NO AOUT
B^GW          MFREEW   GMON,AOUT
C22G    RET1
C2G6    #SKI  AORBOUT<1$1   
C2^Q    (   
C3FB          MHUNTW   1,GMON,BOUT  
C3^2          NAME     1,GMON,AOUT  
C4DL    )   
C4Y=          UP
C5CW    #   
C5XG    #     A MESSAGE HAS BEEN ASSEMBLED (BROADCAST ETC)  
C6C6    ZSEMBL  
C6WQ          MHUNTW   1,GMON,BOUT  
C7BB          NAME     1,GMON,AOUT  
C7W2          UP
C8*L    #   
C8T=    #     REPLY: ALL THOSE PARTS WHICH ARE NOT'ONLINE'OR'COMMAND'   
C9#W    #     YET COULD CONCEIVABLY BE FULLTRACED ARE LEFT AS A BREPLY  
C9SG    #     BLOCK 
C=#6    ZREPLY  
C=RQ          LDN   7  8
C??B          CALL  1  WRITE
C?R2          LDX   5  1
C#=L          VFREEW   ADATA,BREPLY 
C#Q=          MFREEW   GMON,BOUT
C*9W          NAME     5,ADATA,BREPLY   
C*PG          UP
C*PW ...)   
C*Q= ...#     RETAIN BLOCK  
C*QL ...#     AN AOUT HOLDING ALL RELEVANT PARTS IS RETAINED
C*R2 ...#     THIS IS A TERMINAL ROUTINE
C*RB ...ZRETAIN 
C*RQ ...      LDEX  0  AWORK1(2)
C*S6 ...      BZE   0  RET1                [J IF NO AOUT
C*SG ...      MFREEW   GMON,AOUT
C*SW ...RET1
C*T= ...#SKI  AORBOUT<1$1   
C*TL ...(   
C*W2 ...      MHUNTW   3,GMON,BOUT  
C*WB ...      BRN      NAMEAOUT 
C*WQ ...)   
C*X6 ...#SKI  AORBOUT   
C*XG ...      UP
C*XW ...#   
C*Y= ...#     A MESSAGE HAS BEEN ASSEMBLED (BROADCAST ETC)  
C*YL ...ZSEMBL  
C*^2 ...      MHUNTW   3,GMON,BOUT  
C*^B ...NAMEAOUT
C*^Q ...      CALL  2  NAMEUP   
CB26 ...#HAL  +GMON+AOUT,+0 
CB2G ...#   
CB2W ...#     REPLY: ALL THOSE PARTS WHICH ARE NOT'ONLINE'OR'COMMAND'   
CB3= ...#     YET COULD CONCEIVABLY BE FULLTRACED ARE LEFT AS A BREPLY  
CB3L ...#     BLOCK 
CB42 ...ZREPLY  
CB4B ...      LDN   7  8
CB4Q ...      CALL  1  WRITE
CB56 ...      LDX   3  1
CB5G ...      VFREEW   ADATA,BREPLY 
CB5W ...      MFREEW   GMON,BOUT
CB6= ...      CALL  2  NAMEUP   
CB6L ...#HAL  +ADATA+BREPLY,+0  
CB72 ...#   
CB7B ...NAMEUP  
CB7Q ...      LDX   0  0(2) 
CB86 ...      NAMEX    3
CB8G ...      UP
CB96    #   
CC8B    #END
^^^^ ...77552205001000000000