{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: OPCAXCOD5)}}
====== OPCAXCOD5 ======
(George Source)
**Macros used:** [[george:macro:CAPCA|CAPCA]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CHECKEXT|CHECKEXT]], [[george:macro:DOWN|DOWN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:ILLEGAL|ILLEGAL]], [[george:macro:MACCS|MACCS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONITOR|MONITOR]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPARC|OUTPARC]], [[george:macro:PMODES|PMODES]], [[george:macro:PROGEND|PROGEND]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TRACE|TRACE]], [[george:macro:UNPLUG|UNPLUG]]
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