{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MOPSTART865)}}
====== MOPSTART865 ======
(George Source)
**Macros used:** [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:DCA|DCA]], [[george:macro:DLCA|DLCA]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FINDLCA|FINDLCA]], [[george:macro:FON|FON]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FWAIT|FWAIT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GETCORE|GETCORE]], [[george:macro:GLPERI|GLPERI]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:HUNTACT|HUNTACT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:ICT|ICT]], [[george:macro:JLBUSY|JLBUSY]], [[george:macro:JWRONG|JWRONG]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LNLI|LNLI]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LONGSET|LONGSET]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:NBREAKIN|NBREAKIN]], [[george:macro:OUTPAUSE|OUTPAUSE]], [[george:macro:PAIR|PAIR]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETXCORE|SETXCORE]], [[george:macro:UP|UP]]
22FL ... SEG MOPSTART,,G. CONSTANTINIDES.
22^= #LIS K0MOPSTART>K0MULTIPLX>K0ALLGEO>K0GREATGEO
23YG # ENTRY POINTS
24D6 SEGENTRY K2MOPSTART,Z2MOPSTART
24XQ SEGENTRY K3MOPSTART,Z3MOPSTART
25X2 MENDAREA 30,K99MOPSTART
26BL [
26W= [K2MOPSTART IS ENTERED FROM SETIDF. IT CREATES AN AMSCAN
27*W [ACTIVITY FOR EVERY AMOP WHOSE DEVICE IS NOT WRONGED.
27TG [
28*6 [K3MOPSTART IS OBEYED FROM THE AMOP/IMOPQ ACTIVITY. IT SCANS ALL
28SQ [AMXOR/ALINES BLOCKS TO SEE WHETHER ANY LINES NEED CPATS TO BE
29#B [CREATED TO RUN MOP, IF SO IT SETS THEM UP, THEN GOES BACK TO SLEEP
29S2 [
2=?L PAIR1 PAIR PROFLAG,1
2=R= PAIR2 PAIR SCAN,1
2?=W PAIR3 PAIR SCAN,3
2?QG [
2#=6 SAOUT
2#PQ #HAL AMXOR+AOUT,0
2*9B SBI +8
2*P2 8HBREAK IN
2B8L SECBIT #10000000
2BN= XLINE
2C7W #HAL AMXOR+ALINES,0
2C7Y ...REFIND
2C82 ... LDX 2 3
2C84 ... HUNT2J 2,AMXOR,ALINES,,REFIND
2C86 ... ADX 2 4
2C88 ... LDX 2 A1+BPTR(2)
2C8= ... SBN 2 A1
2C8# ... EXIT 1 0
2C8G ...#SKI JSKI14
2C96 ...(
2C9Q ...RSTPT ADN 2 A1 [RESET KTAB ENTRIES
2C=B ... [AND LEAVE CHAP. UNRINGED
2C?2 ... ORX 2 GSIGN
2C?L ... SMO BACK1(2)
2C#= ... STO 2 KTAB
2C#W ... ERX 2 GSIGN
2C*G ... STO 2 FPTR(2)
2CB6 ... EXIT 0 0
2CBQ ...SEEK MHUNTW 2,AMXOR,CHAPCOPY
2CCB ... EXIT 1 0
2CD2 ...RMV LDEX 3 4
2CDL ... BZE 3 ZEMV
2CF= ... SMO 3
2CFW ...NMV MOVE 1 0
2CGG ... ADX 1 3
2CH6 ... ADX 2 3
2CHQ ... SBX 4 3
2CJB ...ZEMV LDN 3 512
2CK2 ... BNZ 4 NMV
2CKL ... EXIT 0 0
2CL= ...)
2CMG [
2D76 Z2MOPSTART
2DLQ LDX 3 ADMULTACT [BASE OF MOP LIST.
2F6B BZE 3 T7 [J. IF NO MOP ACTIVITIES.
2FL2 T3 JWRONG CPPTR(3),T6
2G5L LINKSET 3,PAIR1(1) [LINK TO K1PROFLAG
2GK= GETACT AMSCAN [SET UP SCANNING ACTIVITY
2H4W LDX 2 BPTR(2)
2HJG LINKSET 2,PAIR2(1) [LINK TO K1SCAN
2J46 LNLI CPPTR(3),6
2JHQ ADN 6 1
2K3B LDX 5 6
2KH2 SLL 5 2
2L2L STO 3 AMOPADDR(2)
2LG= FWAIT #102 [SET AMSCAN WAITING FOR END OF E.M.S.
2L^W SETXCORE 5,1,AMXOR,ALINES,,6,4
2MFG LDX 2 1 [INITIALISE THE BLOCK.
2M^6 NGN 4 A1
2NDQ LDCT 0 #40
2NYB T4 STOZ A1+BPTR(2) [NULLIFY RING ELEMENT.
2PD2 STO 4 A1+BSTART(2) [DISTANCE OF ELT. FROM START OF BLOCK
2PXL STO 0 A1+FOURTHWD(2) [SET "WAITING FOR SCAN" BIT.
2QC= SBN 4 4 [STEP POINTERS.
2QWW ADN 2 4
2RBG BCT 6 T4 [J. IF MORE LINES.
2RW6 SBN 5 4
2S*Q BZE 5 T5 [J. IF UPX.
2STB STOZ A1+FOURTHWD(1) [DUMMY ENTRY FOR LINE ZERO.
2T*2 T5 CHAIN 1,3 [CHAIN ALINES BLOCK AFTER AMOP.
2TG8 ...#SKI ICT
2TMB ... FON ADEVLIN [START ACTIVITIES WAITING FOR ADE
2TSL T6 LDX 3 ADMP(3) [POINTER TO NEXT AMOP.
2W#= BNZ 3 T3 [DROP THROUGH IF NONE.
2WRW T7 UP [FINISH.
2X?G [
2XR6 ... SEGENTRY K50MOPSTART
2Y=Q MOPCRUNCH 2*60000/K9
2YQB ONEDAY 3600*24/K9*1000
2^=2 Z3MOPSTART
2^PL LONGSET #125,Z3MOPSTART
329= T8 OUTPAUSE T8,TEVENT,,1,TCORE [WAIT FOR 1 MINUTE OR CORE REQUESTS
329J ...#SKI JSKI14
329W ...(
32=8 ... HUNTW 2,AMXOR,CHAPCOPY
32=G ... BNG 2 NOBLK
32=S ... LDX 5 2
32?6 ... SMO FX2
32?D ... LDX 0 ICONCEP
32?Q ... BNG 0 NFREE [J IF BLOCK NOT IN USE
32#B ... LDN 6 2
32*2 ... ANDX 6 AFLAG(2)
32*# ... BZE 6 NOBLK
32*L ...REQ LDX 4 ALOGLEN(2)
32*Y ... LDX 6 4
32B= ... GETCORE 4,0,1
32BJ ... BRN SCORE [J IF HAVE CORE
32BW ... BRN NOBLK [J IF NO CORE
32C8 ...NFREE ADN 2 A1
32CG ... LDX 1 BACK2(2) [GET DATA FOR KTAB ENTRY
32CS ... SMO BACK1(2)
32D6 ... STO 1 KTAB [STORE IN CH. TABLE
32DD ... ADX 2 ALOGLEN(2) [NOW REPEAT FOR NEXT CHAP.
32DQ ... ADN 2 A1
32F4 ... LDX 1 BACK2(2)
32FB ... SMO BACK1(2)
32FN ... STO 1 KTAB
32G2 ... SMO FX2
32G# ... STOZ ICONCEP [MARK "NO CHAP. BLOCK"
32GL ... FREECORE 5
32GY ... BRN NOBLK
32H= ...SCORE
32HJ ... FINDCORE 2
32HW ... NAME 2,AMXOR,CHAPCOPY
32J8 ... ADN 2 A1
32JG ... LDX 1 5
32JS ... ADN 1 A1
32K6 ... CALL 0 RMV
32KD ... SBX 2 6
32KK ... SBN 2 A1
32KQ ... LOCKC 2,SEEK
32L4 ... CALL 1 SEEK
32LB ... CALL 0 RSTPT
32LN ... ADX 2 ALOGLEN(2)
32M2 ... CALL 0 RSTPT
32M# ... FREECORE 5
32ML ...NOBLK LDX 1 FX1
32MY ... LDX 2 FX2
32N= ...)
32NW LDX 3 ADMULTACT
338G T9 LDX 2 3
33N6 T10 LDX 2 FPTR(2)
347Q LDX 0 ATYPE(2)
34MB BXGE 0 CACT,T14 [J. IF NO ALINES BLOCK
3572 BXU 0 XLINE(1),T10
35LL LNLI CPPTR(3),4
366= LDX 6 4
36KW SLL 6 2
375G ADX 2 6
37K6 LDX 5 2
384Q T12 SMO 5
38JB LDX 2 A1+BPTR
3942 BZE 2 T13 [J. IF NO LCB
39HL SMO 5
3=3= LDX 0 A1+FOURTHWD
3=GW BNG 0 T13 [J IF CONCEPTUAL
3?2G SBN 2 A1
3?G6 LDX 0 GTIM(2)
3?^Q BNG 0 T13 [J. UNLESS UNTERMINATED TRANSFER
3#FB NGX 0 0
3#^2 ADX 0 JTIME
3*DL BPZ 0 T12A
3*Y= ADX 0 ONEDAY(1)
3BCW T12A SBX 0 MOPCRUNCH(1)
3BXG BNG 0 T13 [J. IF 1 MINUTE SINCE TRANSFER ISSUED
3CC6 LDX 0 GUNITNO(2)
3CWQ SLL 0 15
3DBB ADN 0 4
3DW2 DCA CPPTR(3),STO,0,MODE
3F*L GLPERI CPPTR(3)
3FT= T13 SBN 5 4
3G#W BZE 6 T14
3GSG BCT 4 T12 [J. IF MORE LINES TO LOOK AT
3H#6 T14 LDX 3 ADMP(3)
3HKG ... BNZ 3 T9
3HNL ...#SKI JSKI14
3HRQ ...(
3HWW ... SMO FX2
3J8= ... LDX 3 IWAKE
3J#Y ...)
3JFL ... BZE 3 T8
3JR2 TEVENT
3K=L LDX 3 ADMULTACT
3KQ= T17 LDX 2 3
3L9W T18 LDX 2 FPTR(2)
3LPG LDX 0 ATYPE(2)
3M96 BXGE 0 CACT,T20A [J. IF NO ALINES BLOCK
3MNQ BXU 0 XLINE(1),T18
3N8B LNLI CPPTR(3),4
3NN2 LDX 6 4
3P7L T19 SMO FX2
3PM= LDX 0 IWAKE
3Q6W BZE 0 T20B [J. IF CORE REQUESTS SATISFIED
3QLG LDCT 0 4
3R66 SLL 4 2
3RKQ SMO 4
3S5B ANDX 0 A1+FOURTHWD(2)
3SK2 BZE 0 T20 [J. IF NOTHI-G TO DO ON THIS LINE
3T4L SMO 4
3TJ= LDX 7 A1+BPTR(2)
3W3W BNZ 7 XBRI
3WHG LDCT 7 #100
3X36 SMO 4
3XGQ ANDX 7 A1+FOURTHWD(2)
3Y2B BNZ 7 T21 [J. IF MOPPING OFF
3YG2 SMO 4
3Y^L ERS 0 A1+FOURTHWD(2)
3^F= GETACT CPAT
3^YW LDX 2 BPTR(2)
42DG STO 3 AWORK4(2) [AMOP ADDRESS
42Y6 LINKSET 2,PAIR3(1) [LINK TO K3SCAN
43CQ LDX 7 4
43XB SRL 7 2
44C2 STO 7 ACC7(2)
44WL FPUT
45B= TFNLN LDN 0 1
45TW SBS 0 IWAKE(2)
46*G LDX 2 3 [HUNT FOR AMXOR/ALINES
46T6 T19A LDX 2 FPTR(2)
47#Q LDX 0 ATYPE(2)
47SB BXGE 0 CACT,T20A [NOT FOUND
48#2 BXU 0 XLINE(1),T19A [LOOK AT NEXT BLOCK
48RL T20 BZE 6 T20A
49?= SRL 4 2
49QW BCT 4 T19 [J. IF MORE LI-ES TO LOOK AT
4==G T20A LDX 3 ADMP(3)
4=Q6 BNZ 3 T17 [J. UNLESS NO MORE ACTIVITIES
4?9Q SMO FX2
4?PB LDX 0 IWAKE
4#92 BNZ 0 TEVENT [J. UNLESS CORE REQUESTS SATISFIED
4#NL ...T20B LONGSET #125,T8
4*8= BRN TCORE
4*MW T21 LDCT 0 #24
4B7G SMO 4
4BM6 ERS 0 A1+FOURTHWD(2) [UNSET "SETTING UP" BITS
4C6Q LDN 0 1
4CLB SMO FX2
4D62 SBS 0 IWAKE [DECREASE REQUESTS BY 1
4DKL BRN T20
4F5= XBRI LDX 2 FX2
4FJW STO 4 AWORK3(2)
4G4G STO 6 AWORK2(2)
4GJ6 STO 3 AWORK4(2)
4H3Q SBN 7 A1
4H5N ... SMO 7
4H7L ... LDX 0 GLASTM
4H9J ... BPZ 0 TRBI
4H?G ... LOCKC 7,REFIND
4H*D ... CALL 1 REFIND
4HCB ... LDX 7 2
4HM8 ...TRBI
4HX2 ... HUNTACT CPAT,2,7
4HY? ...#UNSET ENBREAKIN
4H^J ... NBREAKIN 2,3,(GEOERR) [J GEOERR REJECTED - CONTINUE ACCEPT
4J2T ...#UNSET ENBREAKIN
4J46 ...#SKI
4J5C ...(
4J6S ... NBREAKIN 2,3
4JBL ... BRN (GEOERR)
4JW= ...)
4MDB LDX 7 AWORK3(2)
4MY2 LDX 2 AWORK4(2)
4NCL LDX 3 2
4NX= HUNT2J 3,AMXOR,ALINES,,ZR
4PBW LDCT 0 4
4PWG ADX 3 7
4QB6 ERS 0 A1+FOURTHWD(3)
4QTQ LDN 0 #1000
4R*B ANDX 0 A1+FOURTHWD(3)
4RT2 ERS 0 A1+FOURTHWD(3)
4S#L LDX 3 A1+FPTR(3)
4SS= SBN 3 A1
4T?W SLL 0 2
4TRG ... ORX 0 SECBIT(1)
4W?6 ORS 0 GWAIT(3)
4WQQ LDX 0 GLASTM(3)
4X=B SBN 0 #13
4XQ2 BNZ 0 N3 [J IF NOT MODE 3
4Y9L LDN 0 1 [SET B.I. BIT FORMOPOUT
4YP= ORS 0 GWAIT(3)
4^8W BRN XOUT
4^NG N3 LDX 4 SAOUT(1) [AMXOR/AOUT BLOCK TYPE.
5286 LDX 1 3 [HUNT BACK FROM THE LCB TO THE CPAT
52MQ LDN 5 0 [TO DISCOVER THE LAST BLOCK IN THE
537B NACT LDX 1 BPTR(1) [OUTPUT QUEUE.
53M2 LDX 0 ATYPE(1)
546L BXU 4 0,NOUT
54L= LDX 5 1
555W NOUT BXL 0 CACT,NACT
55KG BZE 5 XOUT [J. IF NONE FOUND.
5656 LDX 1 5
56JQ LDXC 0 AMOPTY(1)
574B ADXC 0 0 [J. UNLESS NO NL TERMINATOR ON
57J2 BCC XOUT [THE END OF THIS MESSAGE BLOCK.
583L LDX 5 AMOPCHS(1) [INSERT NL (SO THAT "BROKEN IN"
58H= LDCH 0 CHARS(3) [MESSAGE COMES OUT ON NEW LINE).
592W SBX 5 GNOCHS(3)
59GG LDX 4 BITS22LS
5=26 ADX 5 0
5=FQ ANDS 4 AMOPTY(1) [UNSET THE "NL SUPPRESSED" MARKER.
5=^B SRC 5 2
5?F2 LDN 4 GNLBUFF(3)
5?YL ADN 5 AMOPOUT(1)
5#D= ADS 0 AMOPCHS(1) [UPDATE THE CHARACTER COUNT.
5#XW SMO GNOCHS(3)
5*CG MVCH 4 0
5*X6 XOUT SMO FX1
5BBQ LDN 1 SBI [SET UP THE "BREAK IN" MESSAGE.
5BWB XOP LDN 4 GNLBUFF(3) [SET UP NL MESSAGE NL
5CB2 LDN 5 BUFFER(3)
5CTL LDCH 0 CHARS(3)
5D*= SMO 0
5DSW MVCH 4 0
5F#G LDN 4 1(1)
5FS6 SMO 0(1)
5G?Q MVCH 4 0
5GRB LDN 4 GNLBUFF(3)
5H?2 SMO GNOCHS(3)
5HQL MVCH 4 0
5J== ADX 0 0(1)
5JPW ADX 0 GNOCHS(3)
5K9G LDX 4 0
5KP6 SLC 5 2
5L8Q SBN 5 2
5LNB SRC 5 2 [POINT TO LAST BUT ONE CHAR
5M82 LDX 1 5
5MML LDN 0 #10 [REPLACE EOM WITH CANCEL
5N7= DCH 0 0(1)
5NLW LDN 5 BUFFER(3)
5P6G LDX 1 FX1
5PL6 LDX 6 GUNITNO(3)
5Q5Q FINDLCA ,6
5QKB JLBUSY 1,REJ
5R52 SLL 6 15
5RJL DLCA 1,DLA,4,COUNT
5S4= DLCA 1,STO,5,CTSA
5SHW LDN 5 #11
5T3G STO 5 GLASTM(3)
5TH6 DLCA 1,DLA,5,MODE
5W2Q LDN 5 GREP1(3)
5WGB DLCA 1,STO,5,CREP
5X22 DCA ,STO,6,MODE
5XFL DLCA 1,LDX,4,FLAG [NEXT PERI MIGHT FINISH
5X^= ANDN 4 #77 [BEFORE EXEC RETURNS TO G
5YDW GLPERI
5YYG LDX 0 JTIME [REMEMBER WHEN TRANSFER STARTED
5^D6 STO 0 GTIM(3) [IN CASE IT NEEDS TO BE TERMINATED
5^XQ REJ
62CB PERY3 LDX 2 FX2
62X2 LDX 1 FX1
63BL LDX 3 AWORK4(2)
63W= LDX 6 AWORK2(2)
64*W LDX 4 AWORK3(2)
64TG BRN TFNLN
65*6 ZR GEOERR 1,NOAL
65SQ #END
^^^^ ...47071657000100000000