{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MONFILEA864)}}
====== MONFILEA864 ======
(George Source)
**Macros used:** [[george:macro:ALIEN|ALIEN]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BRUSEN|BRUSEN]], [[george:macro:BSON|BSON]], [[george:macro:CATMASK|CATMASK]], [[george:macro:CIOUT|CIOUT]], [[george:macro:CONSOLE|CONSOLE]], [[george:macro:DOWN|DOWN]], [[george:macro:FCJOB|FCJOB]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:FSHSKIP|FSHSKIP]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GMONTIDY|GMONTIDY]], [[george:macro:GSCAN|GSCAN]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:IPBOUT|IPBOUT]], [[george:macro:JBC|JBC]], [[george:macro:LINK|LINK]], [[george:macro:MFDEFS|MFDEFS]], [[george:macro:MFORDER|MFORDER]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MFSETAB|MFSETAB]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MOPOUT|MOPOUT]], [[george:macro:NAME|NAME]], [[george:macro:NAMEX|NAMEX]], [[george:macro:OFF|OFF]], [[george:macro:OP|OP]], [[george:macro:OPEND|OPEND]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SAWCEN|SAWCEN]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SHUFFLE|SHUFFLE]], [[george:macro:SJCHAIN|SJCHAIN]], [[george:macro:SJCHAINY|SJCHAINY]], [[george:macro:STEP|STEP]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRACE|TRACE]], [[george:macro:TRANCHK|TRANCHK]], [[george:macro:TRANCHKN|TRANCHKN]], [[george:macro:TRANSBEX|TRANSBEX]], [[george:macro:TRANSDIE|TRANSDIE]], [[george:macro:TRANSFIN|TRANSFIN]], [[george:macro:UP|UP]], [[george:macro:VFREEW|VFREEW]]
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