OPCAXCOD5

(George Source)

Macros used: CAPCA, CHECKB, CHECKEXT, DOWN, ENDCOM, FADDRESS, FOUTMOVE, FPCACA, FREECORE, HUNT2, HUNTW, ILLEGAL, MACCS, MENDAREA, MHUNTW, MONITOR, MONOUT, NAME, OUTBLOCK, OUTNULL, OUTPACKC, OUTPARAM, OUTPARC, PMODES, PROGEND, RUNPROG, SEGENTRY, SETUPCORE, TRACE, UNPLUG

OPCAXCOD5.txt
22FL    #LIS  K0OPCAXCOD
22^=    #SEG  OPCAXCOD5                    [R.H.THOMPSON  7/OPAW
23DW          8HOPCAXCOD
23YG          SEGENTRY K1OPCAXCOD,XENT1 
24D6          SEGENTRY K2OPCAXCOD,XENT2 
24XQ    #     THIS SEGMENT IS ENTERED FROM OPCA TO DEAL WITH THE 160-161 EXTRACO
25CB    #     K1OPCAXCOD FOR SUSTY DISTY,DELTY.K2OPCAXCOD FOR SUSWT,DISP,DEL
25X2    #     13/5/70  NEW SEGMENT BECAUSE OF CHANGES TO CHECKA,B-IT MAY CO-ORD 
26BL    #              IF PAGE TURN REQD DETECTED:ALSO CHANGED TO USE FAST  
26W=    #              ACCESS MACROS(FOUTMOVE ETC), REMOVE USE OF DATUMB, TO
27*W    #              USE EVENT WORDS & PICK UP MEMBER NO FROM ANM.J.S.RAYNER. 
27TG    QHASH          #23  
28*6    Q77777000      #77777000
28SQ    Q10            +10  
29#B    Q77777         #77777   
29S2    Q17777777   #17777777   
2=?L    Q2             +2   
2=R=    Q3             +3   
2?=W    QIN            #51562000
2?QG    #     VARIOUS SUBROUTINES.THEY CONTAIN CALLS FOR MACROS 
2#=6    XILLINS 
2#PQ          ILLEGAL  ILLINS   
2*9B    XRESVIOL
2*P2          ILLEGAL  RESVIOL  
2B8L    #     CHECK THAT THE ADDRESS IN X5 IS IN RESERVATIONS   
2BN=    XCHECK0 
2C7W          LDN   6  1
2CMG    #     CHECK THAT THE AREA WITH ADDRESS IN X5 & LENGTH IN X6 IS IN RESERV
2D76    XCHECK  
2DLQ          SBX   7  1
2F6B          CHECKB   5,6,ZCH1,,,,,,ZCH1   
2FL2          ADX   7  1
2G5L          EXIT  7  1
2GK=    ZCH1  ADX   7  1
2H4W          EXIT  7  0
2HJG    #     MOVE THE AREA LOCATED BY X5,6 FROM THE OBJ PROG TO AREA LOCATED BY
2J46    XMOVE BZE   6  ZMOVE               [ALLOW FOR NULL AREA 
2JHQ          SLC   45 24                  [X4,5 DESTROYED BY SUBR  
2K3B          FOUTMOVE 2,4,5,6,HLOCK2   
2KH2    ZMOVE EXIT  7  0
2L2L    #     THIS SUBR SETS THE MEMBER NO AS A PARM OF THE MESSAGE 
2LG=    X5MEMNO 
2L^W          SBX   7  FX1  
2MFG          BZE   5  X5M1 
2M^6          LDX   0  QIN(1)   
2NDQ          ORX   0  5
2NYB          STO   0  AWORK1(2)
2PD2          LDN   0  4
2PXL          OUTPARAM 0,AWORK1 
2QC=          BRN      X5M2 
2QWW    X5M1  OUTNULL   
2RBG    X5M2  ADX   7  FX1  
2RW6          EXIT  7  0
2S*Q    #SKIP G4
2STB    (   
2T*2    #   
2TSL    #     THIS SUBR OUTPUTS THE PROGS QUOTA & PAGE TURN COUNT AS PARAMS 
2W#=    #     OF THE EVENT MESSAGE . APPLIES TO G4 ONLY 
2WRW    #   
2X?G    XQUOTA  
2XR6          SBX   7  FX1  
2Y=Q          FPCACA   2
2YQB          HUNT2    2,BSTB,BSCB  
2^=2          LDX   3  AQUOTA(2)
2^PL          ANDN  3  #7777
329=          LDX   6  ATSWAPS(2)   
32NW          OUTPACKC 3,1,QUOTA
338G          OUTPACKC 6,1,PAGETURN 
33N6          ADX   7  FX1  
347Q          EXIT  7  0
34MB    )   
3572    XENT1                              [ENTRY FOR SUSTY,DISTY,DELTY 
35LL    #SKIP          K6OPCAXCOD>99-99 
366=          TRACE    EVENT5(2),OPCAXCD1   
36KW    Z1    UNPLUG
375G          LDX   5  EVENT2(2)
37K6          CALL  7  XCHECK0  
384Q          BRN      XRESVIOL 
38JB          LDX   7  5
3942          FADDRESS 2,7,HLOCK1   
39HL          SMO      7
3=3=          LDX   4  0                   [IF TOP BITS OF THE FIRST WORD   
3=GW          SRL   4  6                   [ARE ZERO IT IS TWO WORD FORMAT  
3?2G          BZE   4  Z12                 [& IF SO JUMP
3?G6          SRL   4  9
3?^Q    Z10A  SMO      7                   [SINGLE WORD FORMAT:MASK OUT ADDR OF 
3#FB          LDX   5  0
3#^2          ANDX  5  Q77777(1)
3*DL    Z10 
3*Y=    #SKIP          K6OPCAXCOD>999-999   
3BCW          TRACE    4,CHARCNT
3BXG          SBN   4  41                  [MAX COUNT=40
3CC6          BPZ   4  XILLINS  
3CWQ          ADN   4  41   
3DBB          LDX   6  4                   [CALL NO OF WORDS FOR MESSAGE
3DW2          ADN   6  3
3F*L          SRL   6  2
3FT=          BZE   6  Z3                  [O.K. IF ZERO LENGTH 
3G#W          CALL  7  XCHECK              [CHECK THAT THE MESSAGE IS IN RESERVA
3GSG          BRN      XRESVIOL 
3H#6          BRN      Z3   
3HRQ    Z12   LDX   3  ANM(2)              [FIND MODE OF PROGRAM MEMBER 
3J?B          PMODES   3
3JR2          ANDN  3  #10  
3K=L          BZE   3  Z10A 
3KQ=          SMO      7
3L9W          LDX   4  0                   [PICK UP COUNT   
3LPG          CHECKEXT 5,Q2(1),XRESVIOL,,,,HLOCK1,,ZCH1 
3M96          ADN   5  1
3MNQ          LDX   3  5
3N8B          FADDRESS 2,3,HLOCK1   
3NN2          LDX   5  0(3) 
3P7L          ANDX  5  Q17777777(1) 
3PM=          BRN      Z10  
3Q6W    XENT2                              [ENTRY FOR SUSWT,DISP,DEL
3QLG    #SKIP          K6OPCAXCOD>99-99 
3R66          TRACE    EVENT5(2),OPCAXCD2   
3RKQ          UNPLUG
3S5B    Z2    LDN   4  2                   [NO OF CHARS=2   
3SK2          LDCT  5  #400                [SET MARKER TO INDICATE THAT X5  
3T4L          ORX   5  EVENT2(2)           [CONTAINS THE MESSAGE RATHER THAN TN 
3TJ=          LDN   6  1                   [ADDRESS 
3W3W    #     HERE  THE TWO ENTRIES MERGE & SWITCH ON THE VALUE OF X IN THE INST
3WHG    Z3    LDX   0  EVENT5(2)
3X36          SRL   0  21   
3XGQ          SMO      0
3Y2B          BRN      XACCS
3YG2    XACCS BRN      XHALT               [SUSTY & SUSWT   
3Y^L          BRN      XDISPLAY            [DISTY & DISP
3^F=          BRN      XDELETE             [DELTY & DEL 
3^YW    #     THIS SECTION DEALS WITH DISTY & DISP  
42DG    XDISPLAY
42Y6    #SKIP          K6OPCAXCOD>999-999   
43CQ          TRACE    5,DISPMESS   
43XB          ADN   6  1                   [MAKE BLOCK FOR MESSAGE  
44C2          SETUPCORE 6,3,APED
44WL          STO   4  APEDDISM(3)         [NO OF CHARS 
45B=          BNG   5  Z41                 [JUMP IF'DISP'MARKER SET 
45TW          LDN   4  APEDDISM+1(3)       [MOVE MESSAGE INTO THE BLOCK 
46*G          SBN   6  1
46T6          CALL  7  XMOVE
47#Q          LDX   4  APEDDISM(3)         [NO OF CHARS 
47SB          BRN      Z42  
48#2    Z41   SLL   5  12                  [STORE'DISP'MESSAGE IN THE BLOCK 
48RL          STO   5  APEDDISM+1(3)
49?=    Z42   LDX   5  ANM(2)              [MEMBER NUMBER   
49QW          ANDN  5  3
4==G          LDX   7  6
4=Q6          ADN   7  3
4?9Q          LDX   6  AMON(2)             [MONITORING ON DISPLAY BIT   
4?PB          ANDN  6  1
4#92          CAPCA    APED                [TO COMMAND PROCESSING ACTIVITY  
4#NL          HUNTW    3,APED,ADISPLAY     [DLETE ANY PREVIOUS DISPLAY  
4*8=          BNG   3  Z43  
4*MW          FREECORE 3
4B7G    Z43   MHUNTW   3,APED              [RENAME BLOCK AS 'DISPLAY'   
4BM6          NAME     3,APED,ADISPLAY  
4C6Q          OUTBLOCK 7
4CLB          CALL  7  X5MEMNO             [OUTPUT MEMBER NO AS PARAM   
4D62          OUTPARAM 4,APEDDISM+1,APED,ADISPLAY   
4DKL          MONOUT   HUSH3               [OUTPUT 'DISPLAY IN  :MESSAGE'   
4F5=          BNZ   6  Z44                 [JUMP IF MONITORING REQUIRED 
4FJW          RUNPROG                      [FINISH-RESTART OBJ PROG 
4G4G    Z44   MONITOR  DISPLAY,5           [GENERATE A MONITOR EVENT
4GJ6    #     THIS SECTION DEALS WITH SUSTY & SUSWT 
4H3Q    XHALT ADN   6  3                   [MAKE ANEVENT BLOCK  
4HHB    #SKIP          K6OPCAXCOD>999-999   
4J32          TRACE    5,HALTMESS   
4JGL          SETUPCORE 6,3,APED,ANEVENT
4K2=          STO   4  APEDEVEM(3)         [STORE NO OF CHARS   
4KFW          BNG   5  Z51                 [JUMP IF SUSWT MARK SET  
4K^G          LDN   4  APEDEVEM+1(3)       [MOVE MESSAGE TO BLOCK   
4LF6          SBN   6  3
4LYQ          CALL  7  XMOVE
4MDB          LDX   4  APEDEVEM(3)  
4MY2          BRN      Z52  
4NCL    Z51   SLL   5  12                  [STORE SUSWT MESSAGE 
4NX=          STO   5  APEDEVEM+1(3)
4PBW    Z52   LDX   5  ANM(2)   
4PWG          ANDN  5  3
4QB6          STO   5  APEDSP1(3)          [STORE IN ANEVENT BLOCK  
4QTQ          LDN   0  APEDHALT            [STORE CATEGORY OF EVENT 
4R*B          STO   0  APEDSP1+1(3) 
4RT2          CAPCA    APED,ANEVENT 
4S#L    #SKIP G3
4SS=          ADN   6  6
4T?W    #SKIP G4
4TRG          ADN   6  12   
4W?6          OUTBLOCK 6
4WQQ          OUTPARC  JOBMILL  
4X=B    #SKIP G4
4XQ2          CALL  7  XQUOTA              [OUTPUT QUOTA & PAGE TURN COUNT  
4Y9L          CALL  7  X5MEMNO  
4YP=          OUTPARAM 4,APEDEVEM+1,APED,ANEVENT
4^8W    #SKIP G3
4^NG          MONOUT   HUSH2
5286    #SKIP G4
52MQ          MONOUT   HUSH2G4  
537B          PROGEND   
53M2    #     THIS SECTION DEALS WITH DELTY & DEL   
546L    XDEL
54L=          ADN   6  3
555W          SETUPCORE  6,3,APED,ANEVENT  [MAKE ANEVENT BLOCK  
55KG          STO   4  APEDEVEM(3)         [NO OF CHARS 
5656          SLL   5  12   
56JQ          STO   5  APEDEVEM+1(3)       [DEL MESSAGE 
574B          LDX   5  ANM(2)   
57J2          ANDN  5  3                   [MEMBER NO   
583L          STO   5  APEDSP1(3)   
58H=          LDN   0  APEDDEL             [CATEGORY OF EVENT   
592W          STO   0  APEDSP1+1(3) 
59GG          CAPCA    APED,ANEVENT 
5=26    #SKIP G3
5=FQ          ADN   6  3
5=^B    #SKIP G4
5?F2          ADN   6  9
5?YL          OUTBLOCK 6
5#D=          OUTPARC  JOBMILL  
5#XW    #SKIP G4
5*CG          CALL  7  XQUOTA   
5*X6          CALL  7  X5MEMNO             [MEMBER NO   
5BBQ          OUTPARAM 4,APEDEVEM+1,APED,ANEVENT   [DEL MESSAGE 
5BWB          BRN      YDELEND  
5CB2    XDELETE 
5CTL    #SKIP          K6OPCAXCOD>999-999   
5D*=          TRACE    5,DELMESS
5DSW          LDX   0  AMON(2)             [IF MONITORING IS SET TREAT  
5F#G          ANDN  0  4                   [AS SUSTY OR SUSWT   
5FS6          BNZ   0  XHALT
5G?Q          BNG   5  XDEL                [JUMP IF 'DEL'MARK SET   
5GRB          ADN   6  11                  [SET UP DELETE BLOCK 
5H?2          SETUPCORE 6,3,APED,ADELETE
5HQL          STO   4  APEDDELM(3)         [NO OF CHARS 
5J==          LDN   4  APEDDELM+1(3)       [MOVE MESSAGE TO BLOCK   
5JPW          SBN   6  11   
5K9G          CALL  7  XMOVE
5KP6          LDX   4  APEDDELM(3)  
5L8Q    Z62   LDX   5  ANM(2)              [PICK UP MEMBER NO.  
5LNB          ANDN  5  3
5M82          STO   5  APEDSP2(3)   
5MML          LDN   0  APEDDEL             [STORE CATEGORY EVENT
5N7=          STO   0  APEDSP2+1(3) 
5NLW          MACCS    ,2,6 
5P6G          LDN   7  APEDACC(3)          [ARE AT THE BOTTOM OF CORE THIS DOES 
5PL6          MOVE  6  8                   [NOT BREAK ANY BLUES 
5Q5Q    #SKIP          K6OPCAXCOD>999-999   
5QKB          TRACE    0(3),DELLTY? 
5R52          CAPCA    APED,ADELETE 
5RJL    #SKIP G3
5S4=          LDN   0  16   
5SHW    #SKIP G4
5T3G          LDN   0  22   
5TH6          OUTBLOCK 0
5W2Q          OUTPARC  JOBMILL  
5WGB    #SKIP G4
5X22          CALL  7  XQUOTA   
5XFL          CALL  7  X5MEMNO  
5X^=          OUTPARAM 4,APEDDELM+1,APED,ADELETE
5YDW    YDELEND 
5YYG    #SKIP G3
5^D6          MONOUT   HUSH 
5^XQ    #SKIP G4
62CB          MONOUT   HUSHG4   
62X2          DOWN     PROSTART,17  
63BL    # FINISH WITH ENDCOM - NOT PROGEND - BECAUSE NO CORE IMAGE  
63W=          ENDCOM                       [READ NEXT COMMAND   
64*W          MENDAREA 20,K99OPCAXCOD   
64TG    #END
^^^^ ...15607304000100000000