{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MONFILE867)}}
====== MONFILE867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ACROSSX|ACROSSX]], [[george:macro:BSON|BSON]], [[george:macro:CATMASK|CATMASK]], [[george:macro:DOTPMON|DOTPMON]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTX|HUNTX]], [[george:macro:LIMBO|LIMBO]], [[george:macro:MFDEFS|MFDEFS]], [[george:macro:MFORDER|MFORDER]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MFSETAB|MFSETAB]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NEXTPART|NEXTPART]], [[george:macro:OP|OP]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTHKN|TESTHKN]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTNCM|TESTNCM]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:WRONG|WRONG]]
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