(George Source)
Macros used: BXGE, BXL, BXU, CHAIN, DCA, DLCA, FINDCORE, FINDLCA, FON, FPUT, FREECORE, FWAIT, GEOERR, GETACT, GETCORE, GLPERI, HUNT2J, HUNTACT, HUNTW, ICT, JLBUSY, JWRONG, LINKSET, LNLI, LOCKC, LONGSET, MENDAREA, MHUNTW, NAME, NBREAKIN, OUTPAUSE, PAIR, SEG, SEGENTRY, SETXCORE, 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