22FL ...#SEG TWINSETB70 [FRANK BLUNDELL 22^= #LIS K0TWINSET>K0TWINSETB 23DW 8HTWINSETB 23YG # 24D6 # 24XQ # THIS SEGMENT MAINLY DEALS WITH THE MACROS PLOCKSU,TPLOCKSU,CHAREA, 25CB # CHFILE,ANYUSERS,FIPPER,AUTWIN,PHOLD AND BOTTONOLE 25X2 # 26BL # ALSO DEALS WITH CLOSING IPC LINKS WHEN TWIN INITIALISE IS REISSUE 26W= # 27*W # ALSO OUTPUTS MESSAGES DEMANDING INITIALISATION OR STATE 27HN ... SEGENTRY K1TWINSETB 27KL ... +0 28*6 SEGENTRY K2TWINSETB,QK2 28SQ SEGENTRY K3TWINSETB,QK3 29#B SEGENTRY K4TWINSETB,QK4 29S2 SEGENTRY K5TWINSETB,QK5 2=?L SEGENTRY K7TWINSETB,QK7 2=R= SEGENTRY K8TWINSETB,QK8 2?=W SEGENTRY K9TWINSETB,QK9 2?QG SEGENTRY K10TWINSETB,QK10 2#=6 SEGENTRY K11TWINSETB,QK11 2#JG ... SEGENTRY K12TWINSETB,QK12 [TCLOSE 2#PQ # 2*9B # 2*P2 RQ +ENTIN24 [PLEASE ISSUE TWIN COMMAND GIVING 2B8L [..STATE OF OTHER PROCESSOR 2CMG # 2D76 # 2DLQ # SET UP ESEND AND ENLINK 2F6B XBLKS 2FL2 SBX 6 FX1 2G5L SETNCORE ENLINKLEN,1,EWDAS,ENLINK,,1 [LINK BLOCK 2GK= SETNCORE ESENDLEN,1,EWDAS,ESEND,,1 [DATA BLOCK 2H4W MHUNTW 3,EWDAS,ENLINK 2HJG STO 7 ENRQ(3) [STORE REQUEST TYPE 2J46 STO 7 ENMARK(1) 2JHQ STOZ ENRP(3) [CLEAR REPLY 2K3B ADX 6 FX1 2KH2 EXIT 6 0 2L2L # 2LG= # TO WAIT 2L^W # 2MFG XHALT 2M^6 SBX 6 FX1 2NDQ ...TENT COOR4 HOLDWT 2PXL MHUNTW 3,EWDAS,ENLINK 2QC= LDX 0 ENRP(3) 2QWW BZE 0 TENT [WAIT AGAIN IF NO REPLY 2RBG ADX 6 FX1 2RW6 EXIT 6 0 2S*Q # 2STB XHERR GEOERR 1,BROKENIN 2T*2 # 2TSL # 2W#= # 2WRW ...# THIS PART DEMANDS STATE 2X?G # 2XDN ...QK2 [****** 2^PL XCAT LDN 4 0 [FIRST TIME 329= XCANT LONGSET EPWT,XSET 338G LDCT 5 #20 33N6 ANDX 5 ETWINMK 347Q BZE 5 XFIN [J IF DONE 34MB LDX 6 RQ(1) 3572 TV1 BNZ 4 XRENT [J IF ALREADY O/P MESS 35LL LDN 4 1 366= LDN 5 1 36KW DEMANDX 5,6,XCAT,XHERR,XRENT,2 [PUMP OUT REQUEST 375G BRN XCANT [J AND SEE IF ANYTHING HAPPENED 3?2G XFIN LONGOFF 3?G6 SUICIDE 3?^Q # 3#FB # 3#^2 # 3*DL # 3*Y= # 3BCW # 3BXG # 3CC6 # THIS PART IMPLEMENTS THE FOLLOWING MACROS:- 3CWQ # CHAREA,CHFILE,FIPPER,ANYUSERS 3DBB # 3DW2 # ON ENTRY ACOMMUNE7 : B0=1 B1-B23 REQUEST TYPE (EXCEPT CHFILE) 3F*L # B0-B23 MODE OF OPENING (CHFILE ONLY) 3FT= # ACOMMUNE8 : WORD ADDRESS OF AREA (CHAREA) OR WORD 3G#W # ADDRESS OF FIC 3GSG # ACOMMUNE9 = SUSN 3H#6 # 3HRQ QK3 [****** 3J?B LDN 6 ACOMMUNE7(2) 3JR2 LDN 7 AWORK1(2) 3K=L MOVE 6 3 [MOVE PARAMETERS TO AWORK WORDS 3KQ= MFINDSU 1,AWORK3(2) [FIND ASTUC 3L9W LADDP HUNIT(1),1 [AND APIA 3LPG LDCT 0 #10 3M96 ANDX 0 BSUNIT(1) [AND CHECK IF WE HAVE THE LOCK-OUT 3MNQ BNZ 0 Y8088 3MTD ... LDXC 0 ETWINMK 3MX2 ... BCS XIPB [J IF NOT INITIALISED 3MYJ ... ANDN 0 IPBDOWN+GEODOWN 3P7L BZE 0 Y1 [J IF NOTHING WRONG 3PM= ANDN 0 IPBDOWN 3Q6W BNZ 0 XIPB [J IF IPBDOWN 3QLG BRN XOK 3R66 Y8088 GEOERR 1,NOLOCKOT 3RKQ Y1 SETNCORE ESENDLEN,1,EWDAS,ESEND,,1 [SET UP DATA BLOCK 3S5B LDN 6 AWORK2(2) 3SK2 LDN 7 ENHOME(1) 3T4L MOVE 6 2 [MOVE IN HOME AND SUSN 3TJ= LDXC 7 AWORK1(2) 3W3W BCS Y2 [J IF NOT FILE INTEG CHECK 3WHG SBN 7 #200 3X36 BZE 7 Y2A [J IF READ 3XGQ LDCT 0 #400 [ELSE SET MKR 3Y2B ORS 0 ENSUSN(1) [ELSE INDICATE WRITE BY SETTING B0 3YG2 Y2A LDN 7 GCHF [SET REQUEST TYPE FOR CHFILE 3Y^L Y2 STO 7 ENMARK(1) 3^F= SETNCORE ENLINKLEN,3,EWDAS,ENLINK,,1 [SET UP LINK BLOCK 3^YW MHUNTW 1,EWDAS,ESEND 42DG TWINCT [GET TRANSFER IDENTIFIER 42Y6 STO 0 ENSTART(1) [AND STORE 43CQ LDX 6 ENHOME(1) 43XB STO 6 BACK1(3) [STORE HOME IN ENLINK 44C2 LDX 6 ENSUSN(1) 44WL STO 6 BACK2(3) [AND SUSN (FOR USE WHEN IPB GOES INOP 45B= #SKI K6TWINSETB>99-99 45TW TRACE ENSTART(1),K3TB 46*G #SKI K6TWINSETB>99-99 46T6 TRACE ENMARK(1),REQ 47#Q STO 0 ENBR(3) [ 47SB STO 7 ENRQ(3) [STORE REQEST TYPE 48#2 STOZ ENRP(3) [CLEAR REPLY WORD 48RL LDN 0 HOLDWT 49?= STO 0 ENWTS(3) [WA9TING STYLE 49QW CALL 7 SETOFF [SET OFF TWINNING ACTIVITY 4==G CALL 6 XHALT 4=Q6 LDX 7 ENRP(3) [GET REPLY B0=1 OK; ELSE B23=1 IF INT 4?9Q FREECORE 3 [B22=1 IF IPB FAIL 4?PB BNG 7 XOK 4#92 SBN 7 1 4#NL BZE 7 XINTEG [J IF INTEGRITY FAIL 4*8= SBN 7 1 4*MW BZE 7 XIPB [J IF IPB WRONG 4B7G SBN 7 2 4BM6 BZE 7 XOK [J IF GEORGE DOWN 4BWX ... SBN 7 3 4B^G ... BZE 7 XIPB [J IF NOT INITIALISED 4C6Q BRN N4 4CLB XIPB UPPLUS 2 4D62 # 4DKL # INTEGRITY FAIL 4F5= # 4FJW XINTEG 4G4G UPPLUS 1 4GJ6 # 4H3Q # BREAKIN 4HHB # 4J32 XBREAKIN 4J7N ... MFINDSU 1,AWORK1(2) 4J9= ... LADDP HUNIT(1),1 4J=S ... LDX 0 BSUNIT4(1) 4J#B ... SBN 0 1 4J*Y ... BNG 0 ND4 4JCG ... STO 0 BSUNIT4(1) [SUBTRACT 1 FROM COUNT OF USERS 4JGL MHUNTW 3,EWDAS,ENLINK 4JMS ... LDX 0 ENLA+1(3) 4JT2 ... BZE 0 XB1 [^IF ALREADY DECHAINED OTHERWISE 4K2= DERINGD ENLA(3) [DECHAIN FROM DATA BLOCK 4KFW ...XB1 FREECORE 3 4K^G UP 4LF6 # 4LYQ # 4MDB # REPLY OK 4MY2 # 4NCL XOK UPPLUS 3 4NX= # 4PBW XSET GEOERR 1,LONGSET [LONGWAIT FIELD ALREADY SET 4PWG # 4QB6 # THIS PART IMPLEMENTS PLOCKSU 4QTQ # 4R*B # ON ENTRY ACOMMUNE9 CONTAINS SUSN 4RT2 # 4S#L XMESS4 +ENTIN8 [STORAGE UNIT %A NOT SEARCHED DUE TO 4SS= [PROCESSOR LINK FAILURE 4T?W # 4TRG # 4W?6 QK11 [****** 4WQQ NGNC 0 1 4X=B QK4 [****** 4XQ2 LDN 0 0 4Y9L STO 0 AWORK2(2) [REMEMBER WHICH VERSION 4YP= LDN 5 0 [MKR FIRST TIME ROUND 4^8W LDX 0 ACOMMUNE9(2) 4^NG STO 0 AWORK1(2) [SAVE SERIAL NUMBER 4^R9 ...ND2 MFINDSU 1,AWORK1(2) 4^S6 ... LDX 4 GEOGU(1) 4^T3 ... LADDP HUNIT(1),1 4^TY ... LDX 0 BSUNIT3(1) 4^WT ... ANDN 0 #10 4^XQ ... BZE 0 ND1 [J IF STATUS CHANGE NOT IN PROGRESS 4^YM ... COOR3 KTSCTF [ELSE WAIT 4^^J ... BRN ND2 522F ...ND1 LDN 0 1 523B ... ADS 0 BSUNIT4(1) [UPDATE COUNT OF USERS 53M2 LDCT 0 #10 546L ANDX 0 BSUNIT(1) 54L= BZE 0 N1 [J IF WE HAVE LOCK-OUT 54W3 ... LDXC 0 ETWINMK 54YL ... BCS NOTIN [J IF NOT INITIALISED 555W LONGSET ENDWT,XSET [ANNOUNCE INTENTION TO WAIT 55KG LDN 7 GLK [REQUEST TYPE 5656 CALL 6 XBLKS [SET UP DATA BLOCKS 56JQ STO 4 ENBR(3) [GEOG. NO. 574B STO 4 ENSTART(1) 57J2 #SKI K6TWINSETB>99-99 583L TRACE ENSTART(1),PLOCKSU 58H= LDN 0 ENDWT 592W STO 0 ENWTS(3) [WAITING STYLE 59GG CALL 7 SETOFF [WAKE UP TWINNING ACTIVITY 5=26 LDX 7 AWORK2(2) 5=FQ BNZ 7 N1A [J IF TPLOCKSU 5=^B LDN 2 2 5?F2 LONGSTOP XBREAKIN,XSP,,XENT,2 [WAIT FOR SOMETHING 5?YL BRN N8 5#4H ...N1A 5#8D ... MFINDSU 1,AWORK1(2) 5##* ... LADDP HUNIT(1),1 5#D= ... LDCT 0 #10 5#J7 ... ANDX 0 BSUNIT(1) 5#N4 ... BZE 0 N2 [J IF WE HAVE LOCKOUT 5#R^ ... COOR3 ENDWT [WAIT FOR LOCKOUT 5#XW N8 MFINDSU 1,AWORK1(2) [REFIND ASTUC 5*CG LADDP HUNIT(1),1 [AND APIA 5*X6 MHUNTW 3,EWDAS,ENLINK [FIND REPLY BLOCK 5BBQ LDCT 0 #10 5BWB ANDX 0 BSUNIT(1) 5CB2 BZE 0 N2 [J IF WE HAVE LOCK OUT 5CTL LDX 0 ENRP(3) 5D*= BZE 0 N3A [J IF LOCK-OUT STILL BEING GOT 5DSW LDXC 0 ENRP(3) 5F#G BCS N4 [GEOERR IF OK REPLY BUT NO LOCK-OUT 5FH7 ... SBN 0 7 5FKB ... BZE 0 N8B [J IF NOT INITIALISED 5FMK ... ADN 0 7 5FS6 ANDN 0 2 5G?Q BZE 0 N4 [OR NOT IPB FAIL 5GG2 ...N8B 5GN= ... LDX 7 1 [SAVE APIA PTR 5GRB LDX 0 ENLA+1(3) 5H?2 BZE 0 N7 [J IF RING NULL 5HQL DERINGD ENLA(3) [MAKE NULL 5HTX ...N7 FREECORE 3 5HX2 ... LDX 1 7 [RELOAD APIA PTR 5HY5 ...NOTIN LDX 0 BSUNIT4(1) 5H^8 ... SBN 0 1 5J2? ... BPZ 0 ND3 5J3B ...ND4 GEOERR 1,PLOCKSU [COUNT OF USERS -VE 5J4F ...ND3 STO 0 BSUNIT4(1) [TAKE ONE FROM COUNT OF USERS 5K9G UPPLUS 1 [IPB FAIL 5KP6 # 5L8Q # SPURIOUS INTERRUPT PROBABLY FOR TIME 5LNB # 5M82 XSP MFINDSU 1,AWORK1(2) 5MML LADDP HUNIT(1),1 5N7= MHUNTW 3,EWDAS,ENLINK 5NLW LDCT 0 #10 5P6G ANDX 0 BSUNIT(1) 5PL6 BNZ 0 N3 [J IF HAVENT GOT LOCK-OUT 5Q5Q LONGOFF 5QKB N2 LDX 0 ENLA+1(3) 5R52 BZE 0 N6 [J IF NULL 5RJL DERINGD ENLA(3) 5S4= N6 FREECORE 3 5SHW N1 LDX 0 AWORK1(2) [WE HAVE THE LOCK OUT 5T3G STO 0 ACOMMUNE9(2) [RESTORE FOR PLOCKSU MACRO 5TH6 UPPLUS 2 [OK 5W2Q # 5WGB # TIME HAS COME TO TELL JOB WHY HE'S WAITING 5X22 # 5XFL ...N3A 5XPD ... LONGSET ENDWT,XSET 5X^= BNZ 7 N1A [J IF TPLOCKSU 5YDW N3 BNZ 5 XENT1 [J IF MESSAGE ALREADY O/P 5YYG LDN 5 1 5^D6 OUTPACK AWORK1(2),1,CSN [OUTPUT SERIAL NUMBER 5^XQ LONGSTOP XBREAKIN,XSP,ENTIN9,XENT1 62CB BRN N8 [GO TO SEE IF OK 62X2 N4 GEOERR 1,WRONGREP 63BL # 63W= # SUBROUTINE TO CHAIN DATA BLOCK ON END OF TWINNING ACTIVITY 64*W # 64TG # LINK X7 NO-COORDINATION X3-X7 UNCHANGED 65*6 # ON ENTRY X1 SHOULD PT TO ESEND ; X3 SHOULD PT TO ENLINK 65SQ # 66#B SETOFF 66S2 RINGTWO ENTRGA(1),ENLA(3) [RING THEM TOGETHER 67?L SETOFFA 67R= LDX 2 ENTWINPTR [PTR TO TWINNING ACTIVITY 68=W LDX 2 ACTRING(2) 68QG SBN 2 ACTRING 69=6 LDX 2 BPTR(2) 69PQ CHAIN 1,2 [CHAIN ON END 6=9B LDX 2 ENTWINPTR 6=P2 DESUSPEND [WAKE IT UP 6?8L EXIT 7 0 6?N= # 6#7W # 6#MG # 6*76 QK5 [****** 6*LQ ... FINDPEREC 1,APGEOG,ACOMMUNE9(2),,,XCME 6B6B LADDP 1,1 6BL2 LDX 0 BSUNIT3(1) 6C5L ANDN 0 4 6CK= BNZ 0 P1 [J IF WE CAN DISENGAGE 6D4W STO 1 AWORK1(2) 6DJG LDX 4 ACOMMUNE9(2) 6F46 STO 4 AWORK2(2) 6FHQ LDN 7 GHOLD [REQUEST TYPE 6G3B CALL 6 XBLKS [SET UP DATA BLOCKS 6GH2 STO 4 ENBR(3) 6H2L STO 4 ENSTART(1) 6HG= LDN 0 HOLDWT 6H^W STO 0 ENWTS(3) 6JFG CALL 7 SETOFF [START UP TWINNING ACTIVITY 6J^6 CALL 6 XHALT [WAIT 6KDQ LDX 4 ENRP(3) 6KYB FREECORE 3 [FREE ENLINK 6LD2 BZE 4 XHERR 6LXL LDXC 0 4 6MC= BCS P2 [J IF TRANSFERRED OK 6MWW ANDN 0 6 6NBG SBN 0 2 6NW6 BZE 0 P3 [J IF IPB GONE WRONG 6P*Q P1 UPPLUS 1 [IF GEORGE DOWN 6PTB P3 UP [IPB 6Q*2 P2 UPPLUS 2 [TRANSFERRED OK 6QSL # 6R#= # 6RRW # THIS PART AUTONOMOUSLY SENDS A REQUEST (AUTWIN MACRO) 6S?G # 6SR6 Z13 NGNC 4 1 6T=Q QK7 [****** 6TQB LDN 4 0 6W=2 SETNCORE ESENDLEN,1,EWDAS,ESEND,,1 6WPL LDN 0 ENTRGA(1) [MAKE RINGS EMPTY 6X9= STO 0 ENTRGA(1) 6XNW STO 0 ENTRGA+1(1) 6Y8G BNZ 4 Z14 6YN6 LDX 0 ACOMMUNE8(2) 6^7Q STO 0 ENMARK(1) [STORE REQUEST TYPE 6^MB SBN 0 GLKT 7272 LDX 6 ACOMMUNE9(2) 72LL BNZ 0 V1A [J IF NOT LOCK 736= MFINDSU 3,6 73KW LADDP HUNIT(3),2 745G LDX 0 BSUNIT4(2) 74K6 BNZ 0 V2 [J IF ANOTHER USER HAS APPEARED 754Q LDCT 0 2 75JB ANDX 0 BSUNIT(2) 7642 BZE 0 V2 [OR IF LOCK-OUT IS NOT REQUIRED 76HL ERS 0 BSUNIT(2) [CLEAR REQUIRED BIT 773= LDCT 0 #10 77GW ORS 0 BSUNIT(2) [SET NOT GOT LOCK-OUT BIT 782G LDX 6 GEOGU(3) 78G6 V1A STO 6 ENSTART(1) 78^Q V1 CALL 7 SETOFFA [CHAIN IN QUEUE 79FB V3 UP 79^2 V2 FREECORE 1 7=DL BRN V3 7=Y= Z14 LDN 0 GRDFIPR 7?CW STO 0 ENMARK(1) 7?XG LDX 0 AWORK3(2) 7#C6 STO 0 ENSTART(1) [NUMBER 7#WQ LDX 0 AWORK1(2) 7*BB STO 0 ENSUSN(1) [SUSN 7*W2 LDX 0 AWORK2(2) 7B*L STO 0 ENHOME(1) 7BT= LDX 0 AWORK4(2) 7C#W STO 0 ESREP(1) 7CSG CALL 7 SETOFFA 7D#6 SUICIDE 7DRQ # 7F?B # 7FR2 # 7G=L # 7GQ= # THIS BIT RE-READS THE FIP AS THE OTHER PROCESSOR HAS ALTERED THEM 7H9W # 7HPG # THE OTHER PROCESSOR HAS THE LOCK-OUT 7J96 # 7JNQ # ON ENTRY AWORK1 SUSN 7K8B # AWORK2 HOME 7KN2 # AWORK3 MESSAGE NUMBER 7L7L # 7LM= QK8 [****** 7M6W LDX 5 AWORK2(2) [HOME 7MLG LDX 4 AWORK1(2) [SUSN 7N66 # 7NKQ # CHECK EXOF STILL THERE 7P5B # 7PK2 LDN 1 BCCB 7Q4L Z8 LDX 1 BPTR(1) 7QJ= TXU 1 CXCC 7R3W BCC Z7 [J IF END OF CHAIN 7RHG LDX 0 BACK2(1) 7S36 BZE 0 Z7 [OR NO MORE EXOFS 7SGQ TXU 4 ASUSN(1) 7T2B TXU 5 HOME(1) 7TG2 BCS Z8 [J NOT THIS EXOF 7T^L LDX 6 0 [REMEMBER EXOF NO. 7WF= SETNCORE GEXDLEN,3,EWDAS,GEXD[SET UP GEXD 7WYW STOZ A1(3) [AND ZEROISE 7XDG LDN 7 A1(3) 7XY6 LDN 0 A1+1(3) 7YCQ MOVE 7 GEXDLEN-1 7YXB STO 4 ESERL(3) [STORE SUSN 7^C2 FINDEXOF 1,6,Z12 [FIND EXOF IN CCB CHAIN 7^WL LDX 7 ALOGLEN(1) 82B= GETCORE 7,1 [GET CORE FOR DUMMY EXOF 82TW MHUNT 3,EWDAS,GEXD 83*G FINDCORE 2 [PTR TO NEW ONE 83T6 LDN 2 ATYPE(2) 84#Q FINDEXOF 1,6,Z9 [ 84SB LDN 1 ATYPE(1) 85#2 ... ADN 7 A1-ATYPE 85RL ... MOVLONG 1,2,7 [ALLOWS FOR > 512 WORD MOVE 86?= LDN 0 BOPEN+BSPEC+BSERL+BLOCK 86QW STO 0 EXMARK-ATYPE(2) [PARAMS FOR EXOPEN 87=G DOWN EXOPEN,1 87Q6 MHUNTW 3,EWDAS,GEXD 889Q LDX 7 EMARK(3) 88PB TESTREP OK,Z10 8992 TESTREP EXFAIL,Z15 [J IF UNSUCCESSFUL 89NL Z16 GEOERR 1,EXOPENRP 8=8= Z10 FREECORE 3 8=MW MHUNTW 3,EWDAS,EXOF 8?7G FINDEXOF 1,6,Z12 8?M6 LDX 0 BACK2(1) 8#6Q STO 0 BACK2(3) [TRANSFER EXOF NUMBER 8#LB LDX 7 1 8*62 CHAIN 3,7 [CHAIN NEW EXOF 8*KL LDX 3 7 8B5= BRN Z12 8BJW Z9 SBN 2 ATYPE 8C4G FREECORE 2 8CJ6 Z12 FREECORE 3 8D3Q Z7 LDCT 0 #400 8DHB Z17 STO 0 AWORK4(2) 8F32 BRN Z13 8FGL # 8G2= # TRANSFER FAIL 8GFW # 8G^G Z15 ANDN 7 ARITE+AFAIL+ANFOUND 8HF6 BZE 7 Z16 8HYQ MFREE EWDAS,EXOF 8JDB MFREE EWDAS,GEXD 8JY2 LDN 0 2 8KCL BRN Z17 8KX= # THIS PART CLOSES THE IPB LINKS 8LBW # 8LWG # AT THE STAGE THERE SHOULD BE NO WRITE OUTSTANDING 8MB6 # 8MTQ QK9 [****** 8N*B LDCT 0 #400 8NT2 ORN 0 JICLSE 8P#L ORS 0 ETWINMK [SET NOT INITIALISED AND CLOSE MKRS 8SQ2 # 8T9L # SEARCH FOR ESEND WITH CLOSE REQUEST 8TP= # 8W8W ZA LDX 3 FX2 8WNG Z2 HUNT2J 3,EWDAS,ESEND,,Z1 8X86 LDXC 0 ENMARK(3) 8XMQ BCS Z2 8Y7B SBN 0 CLIP 8YM2 BNZ 0 Z2 [J NOT CLOSE REQUEST 8^6L LDN 0 ENTRGA(3) 8^L= TXU 0 ENTRGA+1(3) 925W BCC Z1 [ERROR IF LINK EMPTY 92KG LDX 0 ENTRGA+1(3) 9356 BZE 0 Z1 [OR NULL 93JQ LDX 4 ENTRGA(3) 944B DERING ENTRGA(3) [DERING ENLINK 94J2 FREECORE 3 [FREE ESEND 953L LDX 1 4 95H= ENRING 1,ETBRING(2) [CHAIN ON END OF JOB RING 962W ACROSS TWINSETA,4 [WAIT FOR READ TO FINISH 96GG # 9726 # COMES BACK HERE WHEN IT HAS 97FQ # 97^B QK10 [****** 986J ... TCLOSE 98YL # 99D= # LOOK FOR ENLINK 99XW # 9=CG ZB LDX 3 ETFRING(2) [START OF QUEUE 9=X6 Z4 LDN 0 ETFRING(2) 9?BQ TXU 0 3 9?WB BCC Z1 [ERROR IF NOT THERE 9#B2 SBN 3 ENLA 9#TL LDX 0 ENRQ(3) 9**= SBN 0 CLIP 9*SW BZE 0 Z3 [J IF CLOSE 9B#G LDX 3 ENLA(3) 9BS6 BRN Z4 [GET NEXT 9C?Q Z3 LDCT 0 #400 9CRB STO 0 ENRP(3) 9D?2 LDX 2 3 9DQL LDX 1 ENWTS(3) [GET WAITING STYLE 9F== Z5 LDX 2 BPTR(2) [LOOK BACK FOR ACTIVITY 9FPW LDX 0 ATYPE(2) 9G9G TXL 0 CACT 9GP6 BCS Z5 [J IF NOT 9H8Q LONGCLEAR 2,0(1),Z6 9HNB Z6 DERINGD ENLA(3) [DECHAIN ENLINK 9S22 ACROSS TWINSETA,1 9S2B ...[ 9S3G ...QK12 9S3W ...[ 9S4= ...[ CLOSE LINKS - TCLOSE MACRO 9S4L ...[ 9S52 ... LDX 0 ETWINMK 9S5B ... ANDN 0 JOFR 9S5Q ... BNZ 0 NRL [J IF READ LINK NOT OPEN 9S66 ... LDX 5 ETWINMK 9S6G ... ANDN 5 JROUTS 9S6W ... BZE 5 RLC [J IF NO READ OUTSTANDING 9S7= ...RCR IPCREP R,3 9S7L ... BPZ 3 RLCF [J IF READ FINISHED 9S82 ... SUSPEND [ELSE WAIT 9S8B ... BRN RCR 9S8Q ...RLCF ERS 5 ETWINMK [CLEAR READ OUTSTANDING MARKER 9S96 ...RLC IPCLOSE R,ZCAN [CLOSE READ LINK 9S9G ...NRL LDX 0 ETWINMK 9S9W ... ANDN 0 JNOCHAT 9S== ... BNZ 0 NWL [J IF WRITE LINK NOT OPEN 9S=L ... LDX 5 ETWINMK 9S?2 ... ANDN 5 JIOUTS 9S?B ... BZE 5 WLC [J IF NO WRITE OUTSTANDING 9S?Q ...WCW IPCREP W,3 9S#6 ... BPZ 3 WLCF [J IF FINISHED 9S#G ... SUSPEND [ELSE WAIT 9S#W ... BRN WCW 9S*= ...WLCF ERS 5 ETWINMK [CLEAR WRITE OUTSTANDING MKR 9S*L ...WLC IPCLOSE W,ZCAN 9SB2 ...NWL LDCT 0 #400 9SBB ... ORN 0 JNOCHAT+JOFR [SET NOT OPEN MKRS 9SBQ ... ORS 0 ETWINMK 9SC6 ... LDN 0 JICLSE 9SCG ... ANDX 0 ETWINMK 9SCW ... ERS 0 ETWINMK [CLEAR CLOSING MKR 9SD2 ... LDN 0 7 [NOT INITIALISED REPLY 9SD6 ... STO 0 ACOMMUNE2(2) 9SD= ... DOWN TWINSETD,5 [PUT NOT INITIALISED REPLY IN ESENDS 9SDL ... UP 9SFL # 9S^= ZCAN GEOERR 1,NO CLOSE 9TDW Z1 GEOERR 1,OUTSTAND 9TNN ...XCME GEOERR 1,NOTCME 9TYG # 9WD6 MENDAREA 50,K99TWINSETB 9WXQ # 9XCB #END ^^^^ ...01241350000100000000