{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPQUAKER865)}}
====== IPQUAKER865 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CCBB|CCBB]], [[george:macro:CLEARALL|CLEARALL]], [[george:macro:COOR3|COOR3]], [[george:macro:COOR4|COOR4]], [[george:macro:DESUSPEND|DESUSPEND]], [[george:macro:DFCLEAR|DFCLEAR]], [[george:macro:EMPTY|EMPTY]], [[george:macro:FINDACTFB|FINDACTFB]], [[george:macro:FINMOVE|FINMOVE]], [[george:macro:FPUTCHA|FPUTCHA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2OPT|HUNT2OPT]], [[george:macro:JDISENG|JDISENG]], [[george:macro:JENG|JENG]], [[george:macro:JIPCM|JIPCM]], [[george:macro:JSBUSY|JSBUSY]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:QTASK|QTASK]], [[george:macro:R|R]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SIPCM|SIPCM]], [[george:macro:SUBRELT|SUBRELT]], [[george:macro:TICKLE|TICKLE]], [[george:macro:TRACE|TRACE]]
22FL ... SEG IPQUAKER,,KEITH MARTIN
22^= #
23DW SEGENTRY K1IPQUAKER,X1IPQUAKER
23YG #
24D6 PMASK #77777
24XQ QTASK #15010000
25CB X1IPQUAKER
25X2 P1 MHUNT 3,IPCD,IPSTACK
26BL LDX 4 CLEANCT [TIME INTERRUPT DUE?
26W= SBX 4 IPCLNCT(2) [CONTAINS TIME OF LAST INTERRUPT
27*W LDN 5 FONINTP*1000/K9
27TG TXL 4 5
28*6 BCS Z1
28SQ LDX 4 CLEANCT
29#B STO 4 IPCLNCT(2) [NOTE TIME OF THIS INTERRUPT
29*3 ...PCLOS4
29*4 ... LDX 4 ALTSTACK(2)
29*5 ... BZE 4 PCLOS3
29*6 ... COOR3 #41
29*7 ... BRN PCLOS4
29*8 ...PCLOS3
29*9 ... LDN 4 1
29*= ... STO 4 ALTSTACK(2)
29*? ... MHUNT 3,IPCD,IPSTACK
29*# ...#
29*L ...# REMOVE ANY LINKS THAT HAVE BEEN CLOSED
29*Y ...#
29B= ... STO 3 AWORK1(2)
29BJ ...PCLOS7
29BW ... LDX 7 ARINGNO(3)
29C8 ... ANDX 7 PMASK(1)
29CG ... BZE 7 PCLOSEND
29CS ... LDN 3 A1(3)
29D6 ...#
29DD ...# SEE IF THIS LINK WAITING TO BE CLOSED
29DQ ...PCLOS8
29F4 ... LDN 0 #40
29FB ... ANDX 0 ASTATUS2(3)
29FN ... BZE 0 PNOCLOS
29G2 ...#
29G# ...# CANT DO IF OPEN IN PROGRESS
29GL ... LDCT 0 #010
29GY ... ANDX 0 ASTATUS2(3)
29H= ... BNZ 0 PNOCLOS
29HJ ...#
29HW ...# UPDATE LOWEST LINK NO AND SUBRELT
29J8 ... LDX 6 ALINUM(3)
29JG ... ANDN 6 #7777
29JS ... LDX 0 FRELINUM(2)
29K6 ... BZE 0 PCLOS1
29KD ... BXGE 6 0,PCLOS2
29KQ ...PCLOS1
29L4 ... STO 6 FRELINUM(2)
29LB ...PCLOS2
29LN ... EMPTY FPTR(3)
29M2 ... TRACE 3,LINKCLOS
29M# ... SUBRELT 3
29ML ... BCT 7 PCLOS8
29MY ... BRN PCLOSEND
29N= ...#
29NJ ...#
29NW ...PNOCLOS
29P8 ... ADN 3 ARECLEN
29PG ... BCT 7 PCLOS8
29PS ...#
29Q6 ...#
29QD ...PCLOSEND
29QQ ... LDX 3 AWORK1(2)
29QX ... STOZ ALTSTACK(2)
29S2 LDX 7 ARINGNO(3)
2=?L ANDX 7 PMASK(1)
2=R= BZE 7 Z1
2?=W LDN 3 A1(3)
2?QG LDN 0 1
2#=6 ADS 0 IPCERTM(2)
2#PQ TRACE 7,IQRECNO
2*9B # CHECKS EACH LINK FOR STORED TRANSFERS, REMOVES ANY WHICH HAVE REACHED
2*P2 # THE END OF THEIR WAITING TIME, GIVES 'TIMED OUT' REPLY AND RESTARTS
2B8L # THE PROGRAM
2BN= PLOOP LDX 4 ATIMCT(3)
2C7W BZE 4 P6 [BRANCH IF NO TIMEOUT COUNT
2CMG SBN 4 1 [SUBTRACT 1 FROM COUNT
2D76 STO 4 ATIMCT(3)
2DLQ BNZ 4 P6 [J IF NOT TIMED OUT
2F6B LDX 4 ASTATUS1(3)
2FL2 ANDX 4 GSIGN
2G5L BNZ 4 P6
2GK= LDN 5 1
2H4W STO 3 6
2HJG LDX 4 ASTATUS2(3)
2J46 SLL 4 1
2JHQ BPZ 4 PA
2K3B ERS 0 ASTATUS1(3)
2KH2 BRN PR1
2L2L PA LDX 4 ASTATUS1(3)
2LG= ANDN 4 7
2L^W TXU 4 0
2MFG BCS P2
2M^6 ERS 0 ASTATUS1(3) [REMOVE TRANSFER STORED MARKER
2NDQ LDX 0 ASTATUS1(3)
2NYB SLL 0 1
2PD2 BNG 0 PAX
2PXL LDX 3 BPTR(3)
2QC= BRN PR1A
2QWW P2 LDX 4 ASTATUS2(3)
2RBG ANDN 4 7
2RW6 TXU 4 0
2S*Q BCS P6
2STB LDN 5 0 [SET REQUEST TIMED OUT MARKER
2T*2 ERS 0 ASTATUS2(3) [REMOVE REQUEST STORED MARKER
2TSL #SKIP IPCV4
2W#= (
2WRW PR1 LDX 0 ASTATUS1(3)
2X?G SLL 0 1
2XR6 BNG 0 PG
2Y=Q LDX 3 FPTR(3) [GET POINTER TO RELEVANT AOLPT
2YQB )
2^=2 #SKIP IPCV4<1$1
2^PL PR1 LDX 3 FPTR(3) [GET PTR TO RELEVANT AOLPT
329= PR1A SBN 3 ARINGEL
32NW STO 3 2
338G FINDACTFB 3,,APET,,,BPTR
33N6 LDN 0 0
347Q SMO 6
34MB LDX 4 ASTATUS2
3572 SLL 4 1
35LL BPZ 4 P4 [J IF LINK ESTABLISHED
366= ADN 0 4
36KW SLL 4 3
375G BPZ 4 P4
37K6 LDN 5 #2100
384Q SLL 5 9
38JB SMO 6
3942 ERS 5 ASTATUS2
39HL ADN 0 #4002
3=3= P4 SMO 6
3=GW LDX 1 APTRIPB
3?2G ... BZE 1 P5B
3?G6 STO 0 5
3?^Q JENG CPPTR(1),P4A
3#FB SMO FX2
3#^2 STO 2 AWORK2
3*DL P4B HUNT2OPT 1,IPCD,ATASK
3*Y= BNG 1 P4C
3BCW LDX 0 A1(1)
3BXG SMO 6
3CC6 TXU 0 ALINUM
3CWQ BCS P4B
3DBB LDX 0 A1+1(1)
3DW2 ANDN 0 1
3F*L BNZ 0 P4B
3FT= LDX 4 BPTR(1)
3G#W FREECORE 1
3GSG LDX 1 4
3H#6 BRN P4B
3HRQ P4C SMO FX2
3J?B LDX 2 AWORK2
3JR2 LDX 0 5
3K=L BRN P5
3KQ= P4A
3L9W LDX 0 5
3LPG ...P5B ADN 0 #230
3M96 BRN P5A
3MNQ P5 ADN 0 #220
3N8B P5A SLC 0 15
3NN2 SMO 6
3P7L LDX 5 AREPPTR
3PM= #SKI G3
3Q6W LDN 4 0
3QLG #SKI G4
3R66 (
3RKQ LDN 4 7
3S5B SMO FX2
3SK2 STO 7 AWORK3
3T4L LDX 7 0
3TJ= )
3W3W LDN 1 1
3WHG #SKIP IPCG4
3X36 HUNT2 3,ADATA,HLOCKDOWN,2 [FIND LOCKDOWN BLOCK AFTER OLPA
3XGQ FINMOVE APETADDR(2),5,4,1,HLOCKB1,3,1
3Y2B #SKIP IPCG4
3YG2 ... CLEARALL APETADDR(2),0,3 [FREE ALL LOCKS
3Y^L CCBB 2
3^F= SMO 6
3^YW LDX 5 ASTMEL
42DG TICKLE JOBNO(2),5
42Y6 #SKI G4
43CQ LDX 7 AWORK3(2)
43XB #SKIP IPCV4
44C2 P8
44WL LDN 0 1
45B= STO 0 AWORK4(2) [SET 'ACTION TAKEN' MARKER
45TW TRACE 0,IQTICK
46*G LDX 3 6
46T6 P6 SBN 7 1 [[SUBTRACT 1 FROM NO. LINKS
47#Q BZE 7 P7 [BRANCH IF NO MORE LINKS
47SB ADN 3 ARECLEN [MOVE PTR TO NEXT RECORD
48#2 BRN PLOOP
48RL #SKIP IPCV4
49?= (
49QW # SET UP REPLY IF GEORGE LINK
4==G PG NGNC 6 1
4=Q6 PAX LDN 6 #44
4?9Q LDX 2 APTRIPB(3)
4?PB JDISENG CPPTR(2),PG1
4#92 ORN 6 2 [MARK OPERABLE
4#NL PG1 LDX 0 ASTATUS2(3)
4*8= SLC 0 4
4*MW LDXC 0 0
4B7G BCC PG2 [J UNLESS FAIL IN OPENING
4BM6 ORN 0 1
4C6Q SRC 0 4
4CLB STO 0 ASTATUS2(3) [SET AUTOMATIC RE-ESTABLISHMENT
4D62 ORX 6 GSIGN [MARK FAIL
4DKL ORN 6 #1000 [4
4F5= PG2 SRC 6 7 [COMPLETED REPLY
4FJW # STORE REPLY AND DESUSPEND ACTIVITY OWNING LINK
4G4G LDX 2 FPTR(3)
4GJ6 SBN 2 IPCRNG [POINTER TO LINK CONTROL BLOCK
4H3Q STO 6 IPCGREP(2)
4HHB LDX 6 3
4J32 PG3 LDX 2 BPTR(2) [FIND ACTIVITY
4JGL LDX 0 ATYPE(2)
4K2= BXL 0 CACT,PG3
4KFW DESUSPEND [KICK IT
4KH? ... LDX 1 APTRIPB(3) [IPCBX
4KJN ...PG4 HUNT2OPT 1,IPCD,ATASK [LOOK FOR TASK BLOCK
4KL5 ... BNG 1 P8 [JUMP IF NONE
4KMG ... LDX 0 A1(1)
4KNX ... TXU 0 ALINUM(3) [IS IT THIS LINK NO.
4KQ# ... BCS PG4 [JUMP IF NOT
4KRP ... LDX 0 A1+1(1)
4KT6 ... ANDN 0 1
4KWH ... BNZ 0 PG4 [JUMP IF TRANSFER TASK
4KXY ... FREECORE 1 [FREE TASK BLOCK
4K^G BRN P8 [NEXT
4LF6 )
4LYQ # TEST IF TIME TO CLEAR ERROR COUNTS
4MDB P7
4MY2 LDN 4 0
4NCL LDX 0 IPCERTM(2)
4NX= SBN 0 76
4PBW BNG 0 R
4PWG STOZ IPCERTM(2)
4QB6 LDN 4 1 [COUNTS TO BE CLEARED
4QTQ # TEST IF IPB TO BE TIMED-OUT
4R*B R LDX 6 APROPRES(2)
4RT2 R1 BZE 6 R2 [IF NONE,SERVICE TASK
4S#L LDX 5 6 [COPY COUNT
4SS= LDN 3 ACTRING(2) [POINTER TO ACTIVITY RING
4T?W R3 LDX 3 BPTR(3) [STEP ALONG ACT RING
4TRG BCT 5 R3
4W?6 SBN 3 ACTRING [BEGINNING OF BLOCK
4WQQ LDX 0 ATYPE(3)
4X=B SRL 0 12
4XQ2 SBN 0 IPCA+IPCBX
4Y9L BZE 0 R4 [IPCBX ACTIVITY
4YP= GEOERR 1,IPCBLST
4^8W R4 JIPCM RW,R4A,3
4^NG JIPCM Q,R8,3
5286 LDX 0 CPRW1(3)
52MQ BNG 0 R4A
537B LDX 0 CPRW2(3)
53M2 BNG 0 R4A
546L BRN R5
54L= R4A LDX 0 IPCPTIME(3)
555W BZE 0 R5 [NO PERI UP
55*N ... ADN 0 10000/K9
55KG TXL 0 CLEANCT
5656 BCS R6
56JQ R5 SBN 6 1
574B BZE 4 R7
57J2 DFCLEAR CPPTR(3),ERCT
583L R7 BRN R1
58H= R6 SIPCM TO,3
592W LDX 2 CPPTR(3)
59GG FPUTCHA 2
5=26 BRN R5
5=FQ R8 JENG CPPTR(3),R5
5=^B JSBUSY CPPTR(3),R6
5?F2 BRN R5
5?YL R2 LDX 2 FX2
5#D= MHUNT 3,IPCD,IPSTACK
5#XW #
5*CG # SERVICE WAITING TASKS
5*X6 #
5BBQ # X1=FX1
5BWB # X2=FX2
5CB2 # X3:-> IPSTACK BLOCK
5CTL Z1 LDX 3 FPTR(3) [FIRST TASK, IF ANY
5D*= LDX 0 QTASK(1) [TYPE OF TASK BLOCK
5DSW BXU 0 ATYPE(3),Q2
5F#G ACROSS IPQUAKE,1
5FS6 # DECIDE IF SUSPENSION REQUIRED
5G?Q Q2 LDX 0 AWORK4(2)
5GRB BNZ 0 Q3 [J IF ANY ACTION TAKEN
5H?2 COOR4 ATIMWT [WAIT FOR TIME INTERRUPT
5HQL Q3 STOZ AWORK4(2) [UNSET ACTION MARKER
5J== BRN P1 [LOOP BACK TO START
5JPW #
5K9G MENDAREA 100,K2IPQUAKER
5KP6 #
5L8Q #END
^^^^ ...66401512000200000000