{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MONEVENT867)}}
====== MONEVENT867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHECKA|CHECKA]], [[george:macro:CLEAR|CLEAR]], [[george:macro:EVENTFIN|EVENTFIN]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FPERENTA|FPERENTA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTMILL|OUTMILL]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARAX|OUTPARAX]], [[george:macro:PROGEND|PROGEND]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TESTHKN|TESTHKN]], [[george:macro:TRACE|TRACE]], [[george:macro:UNPLUG|UNPLUG]]
22FL #LIS K0MONEVENT
22^= ... SEG MONEVENT,867,SECTION CENT,,G400
23DW #
23J* ...[
23MS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23R? ...[
23WQ ...#UNS G400
2429 ...(
245N ...# THIS CHAPTER IS FOR G3PLUS-IH MK2
2497 ...#
24#L ...)
24D6 # THIS SEGMENT HAS THE FOLLOWING ENTRY POINTS:-
24XQ #
25CB SEGENTRY K1MONEVENT,ZEP1 [ENTRY FROM MONITOR MACRO
25X2 SEGENTRY K2MONEVENT,ZEP2 [ENTRY FROM CILLEGAL MACRO
26BL SEGENTRY K3MONEVENT,ZEP3 [ENTRY FROM REPMON MACRO
26W= SEGENTRY K5MONEVENT,ZEP5 [ENTRY FROM MONEND MACRO
27*W SEGENTRY K7MONEVENT,ZEP7 [ENTRY FROM MONENDB MACRO
27TG #
28*6 # FOR ENTRY POINTS 1 AND 2 ENTRY IS MADE IN THE CPA WITH ADDRESS OF
28SQ # EVENT MESSAGE IN X5 AND MEMBER NUMBER IN X4.(NB MESSAGE MUST HAVE
29#B # RETAIN OUTPUT BLOCK BIT SET IN CATEGORY WORD).
29S2 #
2=?L # FOR ENTRY POINT 3 WE ENTER IN THE PCA,WITH THE O/P UNPLUGGED,AND WITH
2=R= # X5=TYPE OF MONITORING ;X7=O/P CA ADDR (IF PERI) ;
2?=W # X6= B0-5 TYPE B6-14 UNIT NO (MK6) B0-8 TYPE B9-23 UNIT NO (MK6.5)
2?QG # WE FIRST EXTRACT FROM THE O/P INFORMATION NEEDED TO CONSTRUCT A MNTRG
2#=6 # MESSAGE,THEN CAPCA,THEN FORM THE MESSAGE,THEN BRANCH TO K1MONEVENT
2#PQ #
2*9B #DEF VENTLEN=16 [MAX LENGTH OF EVENT MESSAGE (WORDS)
2*P2 #DEF VCOUNT=A1 [ADDR OF RECORD IN GMON,AOUT
2B8L #DEF NOFN=BBCLOSE^BBEXTEND [PERI TYPES WITHOUT FILENAME
2BN= #DEF YESFN=BBOPEN^BBRENAME [PERI TYPES WITH FILENAME
2C7W QIN #51562000
2CMG XMONRES +JMONRES [MONRESUME COMPLETED
2D76 XILLINS +JYILLINS
2DLQ XJZMONITOR +JZMONITOR
2F6B XJZFAILED +JZFAILED
2FL2 ZMONINF +JZMONINF [%A *%B %C CA%D M=#%E FN=%F
2G5L YMONINF +JYMONINF [%A *%B %C CA%D M=#%E
2GK= XMONINF +JXMONINF [%A *%B %C
2H4W TAB1 [LIST OF 'OPEN PERI' TYPE MNTRG TYPES
2HJG 8HREL [CORESPONDING BIT IN AMON:20
2J46 8HDIS [ 19
2JHQ 8HCONT [ 18
2K3B 8HALLOT [ 17
2KH2 8HOPEN [ 16
2L2L 8HCLOSE [ 15
2LG= 8HRENAME [ 14
2L^W 8HEXTEND [ 13
2MFG T1END
2M^6 #DEF MONUM=T1END-TAB1/2 [NUMBER OF MNTRG TYPES
2NDQ ZEP2 [ENTRY FROM CILLEGAL MACRO
2NYB LDN 6 APEDFAIL [ENTRY POINT
2PD2 BNZ 5 ZA1 [SET CONVENTIONAL VALUE FOR ILLEGAL
2PXL LDX 5 XILLINS(1) [MESSAGE
2QC= BRN ZA1
2QWW ZEP1 [ENTRY FROM MONITOR MACRO
2RBG LDN 6 APEDMON [MONITOR CATEGORY
2RW6 ZA1
2S*Q FPCACA 3,2
2STB LDX 4 ANM(3)
2T*2 MONOUTX 5
2TSL #SKIP K6MONEVENT>99-99
2W#= TRACE JOBNO(2),MONEVENT
2WRW CALL 7 XGMON [FIND BLOCK WITH MESSAGE
2X?G LDX 5 VCOUNT(3) [OBTAIN LENGTH OF MESSAGE
2XR6 ANDN 5 #7777 [IGNORE ANY MESSAGE NUMBER
2Y=Q ADN 5 11
2YQB SRL 5 2
2^=2 SBN 5 VENTLEN+2
2^PL BNG 5 ZA2
329= LDN 5 0
32NW ZA2 ADN 5 VENTLEN+3
338G SETUPCORE 5,2,APED,ANEVENT
33N6 SBN 5 3
347Q CALL 7 XGMON
34MB ANDN 4 3
3572 STO 4 APEDSP1(2) [MEMBER NO
35LL STO 6 APEDSP1+1(2) [CATEGORY
366= SLL 5 2
36KW STO 5 APEDSP1+2(2) [NO OF CHARS.
375G SRL 5 2
37K6 BZE 5 ZA3
384Q LDN 0 APEDSP1+3(2) [MESSAGE
38JB LDN 7 VCOUNT+2(3)
3942 SMO 5
39HL MOVE 7 0
3=3= # OUTPUT MONITORED OR FAILED MESSAGE
3=GW ZA3 FREECORE 3
3?2G OUTMILL
3?G6 LDX 5 ACES [MEMBER NO
3?^Q BZE 4 ZA4
3#FB LDX 5 QIN(1)
3#^2 ORX 5 4
3*DL ZA4 STO 5 ACOMMUNE9(2) [OUTPUT AS PARAM OF MESSAGE
3*Y= LDN 1 4
3BCW LDN 5 ACOMMUNE9
3BXG CALL 4 OUTPARAX
3CC6 LDX 5 XJZMONITOR(1) [LOAD ADDR OF MESSAGE
3CWQ SBN 6 APEDMON
3DBB BZE 6 ZA5
3DW2 LDX 5 XJZFAILED(1)
3F*L ZA5
3FT= MONOUTX 5
3FWH ...#UNS G400
3FXS ...(
3F^5 ... TESTHKN XDSK1
3G2B ... HUNT 2,IUSER,G400BLK
3G3M ... BNG 2 XDSK1
3G4Y ... LDX 0 A1(2)
3G69 ... SBN 0 5
3G7G ... BNZ 0 XDSK1
3G8R ... ACROSS DOMONOP,2
3G=4 ...XDSK1
3G?* ...)
3G#W PROGEND
3GSG #
3H#6 ZEP3 [ENTRY FROM REPMON MACRO
3HF# ... CLEAR 2,0 [DONT WANT ANY LOCKS LEFT BY
3HLG ...[...CALLING ROUTINE
3HRQ STOZ AWORK1(2) [UNSET SWITCHES
3J?B LDN 4 1 [CA AT LEAST 1 WORD FOR CLOSE MODE
3JR2 LDX 0 5
3K=L ANDN 0 NOFN
3KQ= BNZ 0 XCLO [J IF PERI WITH NO FILE NAME
3L9W LDX 0 5
3LPG ANDN 0 YESFN
3M96 BZE 0 MEMB [J IF NOT PERI WITH FILE NAME
3MNQ LDCT 0 #200
3N8B ORS 0 AWORK1(2) [SET FILE-NAME SWITCH
3NN2 LDN 4 5 [CA AT LEAST 5 WORDS
3P7L XCLO
3PM= CHECKA 7,4,RESVI,,,XCOOR [CHECK CA IN RESERVATION
3Q6W XCOOR
3QLG LDX 1 2
3R66 LDX 2 7
3RKQ LDN 3 ACOMMUNE1(1)
3S5B FOUTMOVE 1,2,3,4,HLOCK1 [MOVE [X4] WDS FROM CA TO ACOM1 ETC
3SK2 SBN 4 5
3T4L BNZ 4 XCLO1 [J NOT OPEN OR RENAME
3TJ= LDX 2 FX2 [ ELSE FILE NAME TO AWORK2-4
3W3W LDN 3 AWORK2(2)
3WHG ADN 2 ACOMMUNE1+2
3X36 MOVE 2 3
3XGQ XCLO1 LDX 2 FX2
3Y2B LDX 3 ACOMMUNE1(2)
3YG2 LDCT 0 #400 [SET 'PERI WITH IN-RESERVN CA'SWITCH
3Y^L ORS 0 AWORK1(2)
3^F= RESVI
3^YW MEMB LDX 2 FX2
42DG LDX 0 ANM(2)
42Y6 ANDN 0 3
43CQ ORS 0 AWORK1(2) [MEMBER NO TO B22-23 OF AWORK1
43XB CAPCA
44C2 #
44WL # O/P NOW SWAPABLE AND WE ENTER CPA WITH X3=TYPE/MODE WORD OF CA
45B= # X5=TYPE OF MONITORING
45TW # X6=TYPE/UNIT NO OF PERIPHERAL ; X7=O/P ADDR OF CA
46*G # AWORK1:B0 SET IF PERI WITH IN-RESN CA ;B1 SET IF PERI MAYBE HAS FN
46T6 # B22-23 MEMBER NUMBER
47#Q #
47SB LDX 0 6
48#2 ANDX 0 ZFORMAT(1)
48RL BZE 0 ZFOK [J IF PERIPHERAL NAME IN N/I FORMAT
49?= GEOERR 1,PRLFRMAT
49QW ...ZFORMAT #70077400
4==G ZFOK
4=Q6 OUTBLOCN 17 [NOW WE CONSTRUCT THE MONITOR MESSAGE
4?9Q LDN 0 MONUM
4?PB ADN 1 TAB1
4#92 SRC 5 4
4#NL NXTYP BNG 5 MTYPE [J IF TYPE FOUND,WITH X1->CHAR STRING
4*8= ADN 1 2
4*MW SRC 5 1
4B7G BCT 0 NXTYP
4BM6 GEOERR 1,MONTYPE? [MNTRG TYPE IN X5 NOT CORRECT
4C6Q MTYPE ADN 2 ACOMMUNE1
4CLB MOVE 1 2 [ACOMMUNE1,2 =TYPE OF MNTRG
4D62 LDN 1 8
4DKL LDN 5 ACOMMUNE1
4F5= CALL 4 OUTPARAX [ %A=8 CHAR STRING GIVING MNTRG TYPE
4FJW OUTPACKC 6,1,PERINAME [ %B=4 CHAR STRING,PERIPH TYPE/UNIT
4G4G FPCACA 2
4GJ6 HUNT2 2,APERI,APERIRES
4H3Q LDN 5 #56 [ N
4HHB FPERENTA 2,6,UNALL [J TO UNALL IF SPECD TYPE/UNO UNALOCD
4J32 LDN 5 #71 [ Y
4JGL UNALL LDX 2 FX2
4K2= DCH 5 ACOMMUNE1(2)
4KFW LDN 1 1
4K^G LDN 5 ACOMMUNE1
4LF6 CALL 4 OUTPARAX [ %C =Y (ALLOCATED) OR N(UNALLOCATED)
4LYQ LDX 5 XMONINF(1)
4MDB LDX 0 AWORK1(2)
4MY2 BPZ 0 SHORT [J IF NOT PERI WITH IN-RESERVATION CA
4NCL OUTNUM 7,7,1 [ %D=7CHAR R/JUSTIFIED,ZERO SUP ADDR
4NX= [ OF O/P CONTROL AREA
4PBW ANDX 3 BSP16 [GET MODE OF PERI (B9-13)
4PWG LDN 4 0 [NOW CONVERT IT TO A FIVE CHARACTER
4QB6 LDN 0 4 [ STRING
4QTQ LDX 5 3
4R*B SLL 5 9
4RT2 XOCT SLL 4 3
4S#L SLL 45 3
4SS= BCT 0 XOCT
4T?W STO 4 ACOMMUNE1(2)
4TRG SRL 5 3
4W?6 STO 5 ACOMMUNE2(2)
4WQQ LDN 1 5
4X=B LDN 5 ACOMMUNE1
4XQ2 CALL 4 OUTPARAX [ %E =5 CHAR STRING,MODE OF PERI
4Y9L LDX 5 YMONINF(1)
4YP= LDCT 0 #200
4^8W ANDX 0 AWORK1(2)
4^NG BZE 0 MEDI [J IF NO CHANCE OF A FILE-NAME
4^R5 ...[ EXTRA TEST FOR MODE #1200 - B-0292
4^TN ... LDX 0 3
4^Y? ... ANDN 0 #1777
522W ... SBN 0 #1200
525F ... BZE 0 PB0292
5286 LDX 0 3
52MQ ANDN 0 #1077
537B BNZ 0 MEDI [J IF MODE (LESS ANY ADDITIVE MODES)
53M2 [ IS NOT ONE OF #100,#200,#300,#400,
546L [#500,#600,#700 - NO FILE NAME
54L= LDX 0 3
555W ANDN 0 #1777
55KG SBN 0 #600
5656 BZE 0 MEDI [J IF MODE (LESS AD.MD) IS #600
56#Y ...PB0292
56JQ LDX 2 FX2 [ OTHERWISE MOVE FILE NAME TO ACOM1-3
574B LDN 1 AWORK2(2)
57J2 ADN 2 ACOMMUNE1
583L MOVE 1 3
58H= LDN 1 12
592W LDN 5 ACOMMUNE1
59GG CALL 4 OUTPARAX [ %F=12CHAR STRING - FILE NAME
5=26 LDX 5 ZMONINF(1)
5=FQ SHORT
5=^B MEDI
5?F2 LDX 4 AWORK1(2)
5?YL BRN K1MONEVENT
5#D= #
5#XW # ENTRY POINTS 5 AND 7 ARE FOR THE MACROS MONEND AND MONENDB RESPECTIVEY
5*CG # THE CURRENT ACTIVITY BECOMES THE CPA, AND A PROGRAM EVEVNT OF TYPE
5*X6 # MONITOR,MESSAGE 'MONRESUME COMPLETED' IS GENERATED
5BBQ #
5BWB ZEP5 [ENTRY FOR MONEND MACRO
5CB2 LDCT 0 #600
5CTL ANDX 0 AMON(2)
5D*= ERS 0 AMON(2) [CLEAR MONRESUME BITS
5DSW SLL 0 1
5F#G BNG 0 XSTOP [IF MR STOP,J TO CREATE MONITOR EVENT
5FS6 EVENTFIN [ ELSE RESTART PROGRAM
5G?Q XSTOP UNPLUG
5GRB ZPCA CAPCA
5H?2 ZCPA LDX 5 XMONRES(1) [MESSAGE
5HQL BRN ZEP1 [GENERATE MONITOR EVENT
5J== #
5JPW ZEP7 [ENTRY FOR MONENDB MACRO
5K9G LDCH 0 ATYPE(2)
5KP6 SBN 0 APET/64
5L8Q BZE 0 ZPCA [J IF CURRENT ACTIVITY IS PCA
5LNB BRN ZCPA [ ELSE J AND AVOID CAPCA
5M82 # SUBROUTINES
5MML #
5N7= XGMON HUNT2 3,GMON,AOUT,FX2
5NLW EXIT 7 0
5P6G #
5PL6 OUTPARAX [JUST THE OUTPARAX MACRO
5Q5Q SBX 4 FX1
5QKB OUTPARAX 1,5
5R52 ADX 4 FX1
5RJL EXIT 4 0
5S4= #
5SHW MENDAREA 20,K99MONEVENT
5T3G #END
^^^^ ...31247464000200000000