MONEVENT867

(George Source)

Macros used: ACROSS, CAPCA, CHECKA, CLEAR, EVENTFIN, FOUTMOVE, FPCACA, FPERENTA, FREECORE, GEOERR, HUNT, HUNT2, MENDAREA, MONOUTX, OUTBLOCN, OUTMILL, OUTNUM, OUTPACKC, OUTPARAX, PROGEND, SEG, SEGENTRY, SETUPCORE, TESTHKN, TRACE, UNPLUG

MONEVENT867.txt
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