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