FAILTWIN866

(George Source)

Macros used: ACROSS, CHAIN, DERING, DERINGD, DOWN, ENRING, FINDPEREC, FPUT, FREECORE, GEOERR, GETACT, HUNT2J, HUNTW, IDENTITY, INFORMX, IPCOPEN, IPCREP, JSHARED, JTWIN, LADDP, LINKSET, LONGCLEAR, LONGON, LRIDENT, MENDAREA, MHUNTW, NAME, OUTPACK, PAIR, SEGENTRY, SETNCORE, T, TRACE

FAILTWIN866.txt
22FL ...#SEG  FAILTWIN80
22^= ...#LIS  K0TWINSET>K0FAILTWIN  
23DW ...      8HFAILTWIN
23YG ...[   
24D6 ...      SEGENTRY K1FAILTWIN,QK1FA    [OTHER PROCESSOR INITIALISES 
24XQ ...      SEGENTRY K2FAILTWIN,QK2FA    [OTHER PROCESSOR SAYS HELLO  
25CB ...      SEGENTRY K3FAILTWIN,QK3FA    [REPLY TO HELLO MESSAGE  
25X2 ...      SEGENTRY K4FAILTWIN,QK4FA    [IPB FAILURE 
26BL ...[   
2CMG    #   
2D76    #     IPCWRITE SUBROUTINE   
2DLQ    #   
2F6B    XIPCWRITE   
2FL2          SBX   7  FX1  
2G5L          DOWN     TWINSETD,2   
2GK=    XIT   ADX   7  FX1  
2H4W          EXIT  7  0
2HJG    #   
2J46    #   
2JHQ    #   
2K3B    #   
2KH2    XIPCSTATE                          [GET STATE IN ACOMMUNE1  
2L2L          SBX   7  FX1  
2LG=          DOWN     RELIEF,4            [TO DO IPCSTATE  
2L^W          LDX   3  ACOMMUNE1(2)        [LOAD RESULT 
2MFG          ADX   7  FX1  
2M^6          TRACE    3,CSTATE 
2NDQ          EXIT  7   0   
2NYB    #   
2PD2    XIDENT  
2PXL          ADN   0  2
2QC=          STO   0  EX4  
2QWW ...      FINDPEREC  3,APGEOG,IPBTWIN,,,XCME
2RBG          LRIDENT  3,5,ZND,ZNG  
2RW6          STO   5  AWORK3(2)           [STORE FIRST WD OF IDENTITY  
2S*Q          STO   6  AWORK4(2)           [STORE SECOND WD OF IDENTITY 
2STB    #     GET UNIQUE NUMBER FROM IDENTIES   
2T*2          LDN   1  IDENTITY            [PTR TO 1ST WORD OF OUR IDENTITY 
2TSL          LDN   2  AWORK3(2)           [PTR TO 1ST WORD OF THEIRS   
2W#=          LDN   5  8                   [8 CHARACTERS TO CHECK   
2WRW    NAE   LDCH  0  0(1)                [FIRST/NEXT WD OF IDENTITY...
2X?G          LDCH  3  0(2)                [AND OF OTHER PROCESSORS 
2XR6          TXU   3  0
2Y=Q          BCS      NADD                [J IF DIFFER 
2YQB          BCHX  1  £                   [UPDATE MODS 
2^=2 ...      BCHX  2  £                   [
2^PL          BCT   5  NAE  
329=    NADD  SBX   0  3
32NW          STO   0  AFTERU              [STORE UNIQUE NUMBER 
32YN ...      LDX   2  FX2  
338G          LDX   5  AWORK3(2)           [RELOAD 1ST WORD OF THEIR IDENTITY   
33N6          BRN      (EX4)               [J IF OK 
347Q    ZND   NGNC  0   1   
34MB    ZNG   LDN   0  1                   [NOT GEORGE ON OTHER END 
3572          SBS   0  EX4  
35LL          BRN      (EX4)               [AND EXIT AS APPROPRIATE 
366=    #   
36KW    OPENWRITE   
375G          LDX   2  FX2  
37K6          SBX   0  FX1  
384Q          STO   0  ACOMMUNE9(2) 
38JB          LDN   3  3
3942          IPCOPEN  W,3,5,IPBTWIN       [OPEN WRITE LINK 
39HL          LDX   0   ACOMMUNE9(2)
3=3=          ADX   0  FX1  
3=GW          EXIT  0   0   
3=K^ ...#     SUBROUTINE TO WAKE ACTIVITIES WAITING FOR IPB (TWAIT MACRO)   
3=M2 ...#     AND FREE ANY EWDAS/ITCH BLOCKS. X6 LINK   
3=N3 ...#   
3=P4 ...XIPBD HUNTW    1,EWDAS,ITCH 
3=Q5 ...      BNG   1  NOIT 
3=R6 ...      FREECORE 1
3=S7 ...      BRN      XIPBD
3=T8 ...NOIT  LONGON   IPBDE
3=W9 ...      EXIT  6  0
3=X= ...#   
3=Y? ...#   
3?2G    #   
3?G6    #     CONSTANTS 
3?^Q    #   
3#^2    XM2            #41773757
3*Y=    XM4            #76167777           [CLEARS BITS 5,6,7,11
3CC6    XM10           #77773517
3CWQ    #   
3DBB    #   
3DW2    #   
3F*L    X     ANDS  0  ETWINMK             [WAKE UP ACTIVITY DEMANDING STATE
3FT=          LONGON   EPWT                [OF OTHER PROCESSOR  
3G#W          EXIT  6  0
3GSG    #   
3H#6    #   
3HRQ    #     CLEAR BIT11 OF ETWINMK
3J?B    #   
3JR2    XB11CL  
3K=L          LDX   0  ETWINMK  
3KQ=          ANDX  0  BIT11
3L9W          ERS   0  ETWINMK  
3LPG          EXIT  7  0
3M96    #   
3MNQ    R23   LDX   2  ACTRING(2)   
3N8B          SBN   2  ACTRING  
3NN2          LDX   2  BPTR(2)  
3P7L          CHAIN    1,2                 [CHAIN ON END
3PM=          EXIT  7  0
3Q6W    #   
3QLG    #     SUBROUTINE TO DO THE FOLLOWING
3R66    #   
3RKQ    #     X6=0     CHAIN ENLINK ON TO JOBRING   
3S5B    #   
3SK2    #     X6 NON ZERO  DECHAIN ENLINK FROM ESEND,LONGCLEAR ACTIVITY (IF ANY)
3T4L    #              AND PUT REPLY IN 
3TJ=    #   
3W3W    R1A   MHUNTW   3,EWDAS,ESEND
3WHG    R1    LDN   0  ENTRGA(3)
3X36          TXU   0  ENTRGA+1(3)  
3XGQ          BCC      R2                  [J IF NOTHING CHAINED
3Y2B          LDX   4  ENTRGA(3)
3YG2          DERING   ENTRGA(3)           [ELSE DECHAIN
3Y^L          SBN   4  ENLA                [PTR TO START OF ENLINK  
3^F=          LDX   1  4
3^YW          STO   6  ENRP(1)             [STORE REPLY 
42DG          BZE   6  R3                  [J IF ACTIVITY NOT TO BE WOKEN   
42Y6    R4    LDX   1  BPTR(1)             [LOOK BACK FOR ACTIVITY  
43CQ          LDX   0  ATYPE(1) 
43XB          TXL   0  CACT 
44C2          BCS      R4                  [J NOT ACTIVITY  
44WL          SMO      4
45B=          LDX   3  ENWTS               [GET WAITING STYLE   
45TW          LONGCLEAR 1,0(3),R3A         [AND WAKE UP IF WAITING  
46*G    R3A   EXIT  7  0
46T6    R3    ENRING   1,ETBRING(2)        [PUT ON END OF JOBRING   
47#Q    R2    EXIT  7  0
47SB    #   
48#2    #     SUBROUTINE TO GO ROUND JOBRING WAKING UP WAITING ACTIVITIES   
48RL    #     WHOSE  NUMBER (X5) AND REQUEST TYPE (X6) AGREE : REPLY IN X4  
49?=    #   
49QW    R7    LDX   2  FX2  
4==G          LDX   3  ETFRING(2)   
4=Q6    R7A   LDN   0  ETFRING(2)   
4?9Q          TXU   0  3
4?PB          BCC      (7)                 [J IF NO MORE
4#92          SBN   3  ENLA                [PTR TO NEXT ENLINK  
4#NL    #SKI  K6TWINSET>99-99   
4*8=    (   
4*MW          LDX   0  ATYPE(3)            [CHECK IF ENLINK 
4B7G          SRL   0  12   
4BM6          SBN   0  EWDAS+ENLINK 
4C6Q          BZE   0  R8   
4CLB          GEOERR   1,NOT ENLK   
4D62    R8  
4DKL    )   
4F5=          BNG   5  R9                  [J IF NOT TO CHECK DETAILS   
4FJW          TXU   6  ENRQ(3)  
4G4G          TXU   5  ENBR(3)             [COMPARE NUMBERS 
4GJ6          BCC      R9                  [J IF MATCH  
4H3Q    R8F   LDX   3  ENLA(3)             [GET NEXT
4HHB          LDX   2  FX2  
4J32          BRN      R7A  
4JGL    R9    LDX   0  ENRQ(3)             [REQUEST TYPE
4K2=          SBN   0  CLIP 
4KFW          BZE   0  R8F                 [IGNORE IF CLOSE 
4K^G          LDX   0  ENRQ(3)  
4LF6          SBN   0  INIT 
4LYQ          BZE   0  R8F                 [OR IF INITIALISE
4MDB          STO   4  ENRP(3)             [STORE REPLY 
4MY2          LDX   2  3
4NCL          LDX   1  ENWTS(3)            [WAITING STYLE   
4NX=    R10   LDX   2  BPTR(2)             [SEARCH FOR WAITING ACTIVITY 
4PBW          LDX   0  ATYPE(2) 
4PWG          TXL   0  CACT 
4QB6          BCS      R10                 [J IF NOT ACTIVITY   
4QTQ          LONGCLEAR 2,0(1),R11         [WAKE UP IF POSSIBLE 
4R*B    R11   LDX   2  3
4RT2          LDX   3  ENLA(3)             [NEXT ON RING
4S#L          DERINGD  ENLA(2)             [DECHAIN 
4SS=          BRN      R7A  
4T?W    #   
4TRG    #   
4W?6    #     SUBROUTINE TO CLEAR LOCK OUT  AND SET DISENGAGABLE BY US BIT  
4WQQ    #     FOR ALL SHARED UNITS  
4X=B    #   
4XQ2    R3D   CALL  7  X6                  [GET DL PTR  
4Y9L          BRN      NOTWINS  
4YP=    U4    LADDP    3,2                 [GET PTR TO APIA 
4^8W          JSHARED  2,U3                [TO U3 IF SHARED 
4^NG    UX    CALL  7  X3                  [GET NEXT
5286          BRN      NOMORE   
52MQ          BRN      U4                  [GO TO CHECK 
537B    U3    SMO      FX1  
53M2          LDX   0  XM4  
546L          ANDS  0  BSUNIT(2)           [CLEAR LOCK-OUT  
54L=          LDN   0  4
555W          ORS   0  BSUNIT3(2)          [SET DISENGAGEABLE BY US BIT 
55KG          BRN      UX   
5656    NOMORE  
56JQ          EXIT  6  0
574B    #   
57J2    NOTWINS 
583L          GEOERR   1,NOTWINS
58H=    #   
592W    #     TO CLEAR WAITING FOR FILE IN OTHER PROCESSOR BIT  
59GG    #   
5=26    WAITCLEAR   
5=FQ          LDN   1  BCCB 
5=^B    WT1   LDX   1  BPTR(1)  
5?F2          TXU   1  CXCC 
5?YL          BCC      (7)                 [J IF END
5#D=          LDX   0  BACK2(1) 
5#XW          BZE   0  (7)                 [OR NO MORE EXOFS
5*CG          LDCT  0  #2   
5*X6          ANDX  0  EXMARK(1)
5BBQ          BZE   0  WT1                 [J IF NO ONE WAITING 
5BWB          ERS   0  EXMARK(1)
5CB2          BRN      WT1  
5CTL    #   
5D*=    #     TO OUTPUT MESSAGES   X4= NUMBER  X5= IDENTIFIER   
5DSW    #   
5F#G    OUTPUT  
5FS6          SBX   7  FX1  
5G?Q          OUTPACK  4,1,VARDEC   
5GL6 ...OUTPUT1 
5GRB          LDN   1  1
5H?2          INFORMX  1,5,1
5HQL          ADX   7  FX1  
5J==          EXIT  7  0
5JPW    #   
5K9G    #   
5KP6    TWDA           4HTWDA   
5KYX ...XMESS2         +EWRST              [TWINNED UNITS %A ARE IN WRONG STATE 
5L3G ...                                   [:TWINNING IPC LINKS CLOSED  
5L8Q    XMESS1         +ENTIN22            [PROCESSORS CONNECTED BY UNIT %A HAVE
5LNB                                       [THE SAME IDENTITY   
5M82    #   
5MCS ...P1    LDX   0  BIT11              [SET BIT 11 TO INDICATE CRIPPLE   
5MML ...      ORS   0  ETWINMK          [MODE AND GO BACK TO TWINSETA   
5MXD ...      ACROSS   TWINSETA,1       [TO DO WRITE
5N7=    T2    ACROSS   TWINSETA,2   
5NLW    #   
5P6G    #   
9N52    #   
9NJL    #   
9P4=    #     OTHERSIDE HAS COME TO LIFE AND HAS EXECUTED TWIN INITIALISE   
9PHW    #   
9Q3G ...QK1FA       [*****                 HERE IF RECEIVED GHL 
9QH6          CALL  6  R3D  
9R2Q          CALL  7  WAITCLEAR           [AND WAITING BITS IF ANY IN EXOF 
9RGB          LONGON   EDFDCLS             [WAKE UP PEOPLE WAITING FOR FILES
9S22          LONGON   ENDWT               [AND LOCK-OUT
9S36 ...      CALL  6  XIPBD
9S3P    [   
9S5D    [     WHILE OTHER PROCESSOR WAS DOWN TN DOWN MAY NOT HAVE BEEN  
9S77    [     ISSUED THUS LEAVING (PERHAPS) ON THE QUEUE,WAITING ACTIVITIES.
9S8W    [     THIS BIT GIVES THESE STRAGGLERS A KICK.   
9S=K    [   
9S##          NGN   5  1                   [WAKE UP ANY ONE 
9SB3          LDN   4  4                   [GEORGE DOWN REPLY   
9SCQ          CALL  7  R7   
9SNG ...QK2FA       [*****                 HERE IF RECEIVED GHIN
9S^=          NGNC  4  1
9TDW    V1    LDN   4  0
9TYG          CALL  0   XIDENT  
9WD6          BRN      £                   [ERROR IF NOT GEORGE 
9WXQ          BRN      U5                  [OR NO DIALOGUE  
9X7J ...      LDX   1  FX1  
9XCB          LDX   7  TWDA(1)  
9XGG    #SKI  JSKI11
9XKL          BRN      U5A                 [DON'T CHECK IDENTITIES  
9XNQ    #SKI  JSKI11<1$1
9XRW    (   
9XX2          TXU   5  IDENTITY 
9YBL          TXU   6  IDENTITY+1   
9YW=          BCS      U5A                 [J IF IDENTITIES DIFFER  
9^64    )   
9^77 ...      BNZ   4  U5                  [ERROR IF ENTY FROM K3 OR K4 
9^8= ...      LDX   0  BIT10               [AS LINKS CAN'T BE ESTABLISHEDIF IDEN
9^9* ...      ANDX  0  ETWINMK             [ARE EQUAL   
9^=D ...      BNZ   0  SIA                 [J ID MESS ALREADY OUTPUT
9^?H ...      LDX   0  BIT10
9^#L ...      ORS   0  ETWINMK  
9^*W          LDX   4  IPBTWIN             [ELSE OUTPUT ERROR MESSAGE   
9^TG          LDX   5  XMESS1(1)
=2*6          CALL  7  OUTPUT   
=2G# ...SIA   LDX   2  FX2  
=2MG ...      LDX   4  AWORK1(2)
=2SN ...      BRN      SI   
=2^W ...U5A   LDX   0  BIT10
=374 ...      ANDX  0  ETWINMK  
=3#= ...      ERS   0  ETWINMK             [CLEAR BIT10 
=3FD ...#     SHOULD REALLY CHECK IF OTHER PROCESSORS IDENTITY HAS CHANGED  
=3LL ...      LDX   0  ETWINMK  
=3S2          ANDN  0  JNOCHAT  
=4?L          BZE   0  U6                  [J IF WE HAVE DIALOGUE   
=4R=          CALL  0   OPENWRITE   
=5=W    U6    BZE   4  V7770
=5B2 ...[   
=5F6 ...[     IF THE WRITE LINK HAS JUST BEEN OPENED PUT UP GHIN
=5FL ...[   
=5G6 ...[     AND IF BIT11 CLEAR.IPB MAY HAVE GONE ON AND OFFLINE QUICKLY   
=5GL ...[     IN WHICH CASE THIS PROCESSOR MAY NOT HAVE DETECTED INOPERABLE 
=5H6 ...[     (I.E. THE TIME OUT PERIOD MAY NOT HAVE EXPIRED BEFORE IPB GETS
=5HL ...[     ONLINE.   
=5J= ...[   
=5JT ...      LDX   0 ETWINMK   
=5KD ...      ANDN  0  JNOCHAT  
=5L3 ...      BZE   0  WRX                [^ IF WRITE LINK ALREADY OPEN 
=5LL ...      ERS   0  ETWINMK            [OTHERWISE UNSET JNOCHAT AND ^ TO SEND
=5M9 ...      BRN      WRXK 
=5MS ...WRX   LDX   0  BIT11
=5NC ...      ANDX  0  ETWINMK          [IF BIT 11 SET GHIN MESSAGE 
=5P2 ...      BNZ   0  WRNK              [ALREADY SENT  
=5PK ...      LDX   0  ETWINMK  
=5Q8 ...      ANDN  0  JIOUTS            [IF NO WRITE O/S   
=5QR ...      BZE   0  WRXK              [GO TO SEND GHIN   
=5RB ...      MHUNTW   1,EWDAS,ESENDT   
=5R^ ...      LDX   0  ENMARK(1)
=5SJ ...      LDX   1  FX1  
=5T7 ...      SBN   0  GHIN              [CHECK THAT MESSAGE IN TRANSIT 
=5TQ ...      BZE   0  WRNK              [IS GHIN   
=5WF ...      GEOERR   1,NOTGHIN
=5X8 ...WRXK  LDX   0  BIT11
=5X^ ...      ORS   0  ETWINMK  
=5YQ ...      CALL  7  XF25                [SET UP GHIN 
=63W ...      CALL  7  XIPCWRITE           [SEND WRITE  
=672 ...WRNK  LDX   0  XM10(1)  
=6=6          ANDS  0  ETWINMK  
=6?T ...      HUNTW     1,EWDAS,ESENDT       [DONT SET UP ANOTHER   
=6*J ...      BNG   1  WREP               [GHLR/GHINR IF ONE ALREADY
=6C? ...      LDX   5  ENMARK(1)         [IN TRANSIT
=6F2 ...      SBN   5  GHLR 
=6GP ...      BZE   5  T2   
=6JD ...      SBN   5  GHINR-GHLR   
=6L7 ...      BZE   5  T2   
=6MW ...WREP  LDX   1  FX1  
=6PQ          CALL  7  R20                 [COMPILE REPLY   
=79B          LDX   0  ETBUFS(2)           [GET REQUEST TYPE
=7P2          LDN   5  GHLR 
=88L          SBN   0  GHL  
=8N=          BZE   0  U7                  [J IF HELLO  
=97W          LDN   5  GHINR
=9MG    U7    STO   5  ENMARK(1)
=9SN ...      TRACE    ASIZE(1),ESENDS  
=9^W ...      TRACE    ALOGLEN(1),ESENDA
==76          CALL  7  R23  
==LQ          BRN      T2   
=?6B    #   
=?L2    #   
=#5L    #     IPB OPERABLE AND DIALOGUE OK.CHECK IF LINK ESTABLISHED AND IF SO  
=#K=    #     CLEAR ETMFAIL,GEODOWN,IPBDOWN AND INOCHAT MARKERS.
=*4W    #     ENTRY HERE ONLY IF X4=0 I.E. NO MESSAGE FROM OTHER PROCESSOR  
=*JG    #     BUT WE (THIS PROCESSOR) HAVE DETECTED CHANGE OF STATE OF IPB  
=B46    #   
=BHQ    V7770 LDX   2  FX2  
=C3B          LDX   4  AWORK1(2)
=CH2          BPZ   4  R7770               [J IF READ TRANSFER LAST FINISHED
=D2L          IPCREP   W,3                 [ELSE GET LAST WRITE REPLY   
=DG=          BRN      RW   
=D^W    R7770 IPCREP   R,3                 [GET READ REPLY  
=FFG    RW    LDCT  0  4                   [LINK ESTABLISHED BIT
=F^6          ANDX  0  3
=GDQ          BNZ   0  X7770               [J IF LINK NOT ESTABLISHED   
=GYB          LDX   0  XM10(1)  
=HD2          ANDS  0  ETWINMK             [CLEAR MARKERS   
=HXL    Y7770 LDX   0  ETWINMK  
=JC=          ANDN  0  IPBDOWN+GEODOWN  
=JWW          BNZ   0  XF10                [IF OTHER LINKS NOT OPEN SET UP GHIN 
=KBG          BRN      XF11 
=KW6    X7770   
=L*Q    #   
=LTB    #     LINKS NOT ESTABLISHED 
=M*2    #   
=MSL          LDN   0  JNOCHAT  
=N#=          ANDX  0  ETWINMK  
=NRW          ERS   0  ETWINMK             [JUST CLEAR JNOCHAT  
=P?G          BRN      Y7770
=PR6    #   
=Q=Q    U5    GEOERR   1,IDENTERR   
=QQB    #   
=R=2    #     A REPLY  FROM INOP
=RPL    #   
=RT5 ...QK3FA       [*****  
=S7G ...      DOWN     TWINSETD,4          [CHECK REPLY 
=S=^ ...      BRN      XCLOSED             [STATE WRONG 
=T8G          CALL  7  XB11CL              [CLEAR BIT11 OF ETWINMK  
=T#C ...      LONGON   EDFDCLS        [WAKE UP ACTS WAITING FOR FILESS  
=TD# ...#     AS TWIN UP MAY HAVE BEEN TYPED IN THE OTHER PROCESSOR BUT 
=TJ9 ...#     NOT IN THIS PROCESSOR 
=TN6          BRN      T2   
=TQT ...[   
=TRQ ...[     STATES WRONG-OUTPUT MESSAGE   
=TSM ...[   
=TTJ ...XCLOSED 
=TWF ...      CALL  7  XB11CL              [CLEAR BIT11 
=TXB ...XSW   MHUNTW   3,EWDAS,EGOT        [DETAILS OF WRONG UNITS  
=TY? ...      OUTPACK  ENTRGA(3),V,VARDEC,XSW   
=T^8 ...      LDX   5  XMESS2(1)
=W25 ...      MHUNTW   1,EWDAS,EGOT 
=W32 ...      FREECORE 1
=W3X ...      LDN   7  XLK                 [FIDDLE LINK 
=W4S ...      BRN      OUTPUT1             [DO INFORM   
=W5P ...XLK   ACROSS   TWINSETA,1   
=W7Q    #   
=WMB    #     SUBROUTINE  TO ASSEMBLE HELLO MESSAGE 
=X72    #   
=XLL    #     FORMAT OF WORD IS 
=Y6=    #   
=YKW    #     B0-B2    NOT USED 
=^5G    #     B3       =1 IF WE HAVE RIGHT TO DISENGAGE 
=^K6    #     B5       IS THE LOCK-OUT BIT (=0 IF WE HAVE IT)   
?24Q    #     B9-B10   IS THE STATUS AS FOR BSUNIT  
?2JB    #     B15-23   GEOG. NO.
?342    #   
?3HL    R20   SBX   7  FX1  
?52G          DOWN     TWINSETD,3   
?5^Q          ADX   7  FX1  
?639 ...R20A  HUNT2J   2,EWDAS,ESEND,,R20B      [IF THERE IS ALREADY A GHINR
?64N ...      LDX   1  ENMARK(2)                [IT MUST BE FREED SINCE IT  
?667 ...      SBN   1  GHINR                    [HAS BEEN SUPERCEDED BY THIS NEW
?67L ...      BZE   1  R20C 
?695 ...      SBN   1  GSHARER-GHINR            [ALSO ANY STATUS CHANGE 
?6=J ...      BZE   1  R20C                     [REPLIES SINCE THEY ARE 
?6#3 ...      SBN   1  GDEDR-GSHARER            [NOW OBSOLETE   
?6*G ...      BZE   1  R20C 
?6B^ ...      SBN   1  GUNDEDR-GDEDR
?6DD ...      BNZ   1  R20A 
?6FX ...R20C  FREECORE 2
?6HB ...      BRN      R20A 
?6JT ...R20B  MHUNTW   1,EWDAS,ENLINK   
?6LJ ...      NAME     1,EWDAS,ESEND
?6RR ...      LDX   2  FX2  
?6^2          EXIT  7  0
?7DL    #   
?7Y=    #     SUBROUTINE TO GO THOUGH ALL UDAS DEVICES LOOKING FOR TWINNED ONES 
?8CW    #   
?8XG    X6    LDX   1  FX1  
?9C6    X4    ADN   1  1
?9WQ          LDX   0  TB-1(1)             [NEXT DEVICE 
?=BB          BNG   0  (7)  
?=W2 ...      FINDPEREC 3,APFOTY,TB-1(1),X3,,XCME,XCME    [GET PTR  
??*L          BNG   3  X4                  [J IF NO MORE OF THIS TYPE   
??T=          JTWIN    3,X5                [J IF TWINNED
?##W          BRN      X3                  [LOOK FOR NEXT   
?#SG    X5    EXIT  7  1
?*#6    #   
?*RQ    #   
?B?B    TB             +6   
?BR2                   +13  
?C=L                   +26  
?CQ=                   -1   
?D9W    #   
?DPG    #   
?F96    XBIT5910       #01060000
?FNQ    #   
?L5B    #   
?LK2    #   
?M4L    #   
?MJ=    #   
?N3W    #     INVESTIGATE FURTHER INTO FAIL VIA ACROSS FROM TWINSETA
?NHG    #     X4 CONTAINS MODE  
?P36    #   
?PGQ    #   
?Q2B ...QK4FA       [****      HERE IF LINK NOT EST OR FAILURE REPLY
?QG2          STO   4  ACOMMUNE1(2)        [STORE MODE FOR  
?Q^L          CALL  7  XIPCSTATE           [...IPCSTATE 
?RF=          LDCT  0  #10                 [X3 CONTAINS RESULT  
?RYW          ERS   0  3                   [REVERSE OPERABLE BIT
?SDG          LDCT  0  #110 
?SY6          ANDX  0  3
?TCQ          BZE   0  V1                  [J IF OPERABLE AND HAVE DIALOGUE 
?TXB ...SI    LDX   0  ETWINMK  
?WC2          ANDN  0  IPBDOWN+GEODOWN  
?WWL          BNZ   0  XF10                [J IF IPB DOWN OR GEORGE DOWN
?XB=          LDCT  0  #100 
?XTW          ANDX  0  3
?Y*G          BZE   0  XF11                [J IF DIALOGUE NOT SUSPENDED 
?YT6          LDCT  0  #40  
?^#Q          ANDX  0  3
?^SB          BZE   0  XF11                [J IF GEORGE OK-AS FAR AS WE KNOW
#2#2          BRN      XF12                [J IF GEORGE DOWN
#2RL    XF11  CALL  7  XF13                [GET STATE   
#3?=          BRN      XF18                [NO REPLY
#3QW          BRN      XF19                [GEORGE DOWN 
#4=G          NGN   5  1                   [IPB GONE WRONG  
#4Q6          LDN   4  2
#59Q          CALL  7  R7                  [PUT FAIL REPLY IN ANY ENLINKS   
#5PB          CALL  7  X6                  [PUT LOCK-OUTS BACK IN RESONABLE STAT
#692          BRN      NOTWINS             [ERROR IF NONE   
#6NL    XF22  LADDP    3,2  
#78=          JSHARED  2,XF20              [J IF SHARED 
#7MW    XF23  CALL  7  X3   
#87G          BRN      X8011               [J IF NO MORE
#8M6          BRN      XF22 
#96Q    XF20  SMO      FX1  
#9LB          LDX   0  XM7  
#=62          ANDS  0  BSUNIT(2)           [CLEAR WAITING FOR LOCK OUT BITS 
#=KL          BRN      XF23 
#?5=    X8011 LONGON EDFDCLS               [WAKE UP ACTIVITIES WAITING  
#?JW    XF21  LDX   2  FX2  
##4G          LDX   4  AWORK1(2)
##J6 ...      BRN      XF10 
#*HB    #   
#B32    #     GEORGE IN OTHER SIDE DOWN 
#BGL    #   
#C2=    XF12  LDX   1  FX1  
#CFW          LDX   0  XM2(1)   
#C^G          CALL  6  X
#DF6          LDN   0  GEODOWN  
#DYQ          ORS   0  ETWINMK  
#FDB    XF19  CALL  6  R3D                 [CLEAR LOCK-OUTS 
#FY2          LONGON   ENDWT               [WAKE UP ANYBODY WAITING FOR LOCK-OUT
#GCL          CALL  7  WAITCLEAR           [CLEAR ANY WAITING BITS IN EXOF  
#GX=          LONGON   EDFDCLS             [WAKE UP ANYBODY WAITING FOR FILES   
#HBW          NGN   5  1
#HWG          LDN   4  4
#JB6          CALL  7  R7                  [WAKE UP ANY BODY ON JOBRING 
#JJB ...      CALL  6  XIPBD               [FREE ITCH AND WAKE TWAIT
#K*B          LDX   4  AWORK1(2)
#KT2          BPZ   4  T2                  [J IF READ   
#L#L          CALL  7  XF25 
#LS=          BRN      P1   
#M?W    #   
#MRG    #     SUBROUTINE TO GET STATE OF OTHER PROCESSOR
#N?6    XF13  SBX   7  FX1  
#NQQ          LDCT  0  #200 
#P=B          ANDX  0  ETWINMK  
#PQ2          BNZ   0  XF14                [J IF STATE ALREADY REQUESTED
#Q9L          LDCT  0  #220 
#QP=          ORS   0  ETWINMK             [SET REQUESTED AND ACKNOWLEDGED BITS 
#R8W          GETACT   ACTDOC              [SET UP ACTIVITY 
#RNG          LDX   2  BPTR(2)             [GET PTR 
#S86          LINKSET  2,XLINK3(1)         [LINK TO K2TWINSETB  
#SMQ          FPUT  
#SXJ ...XF15  LDX   0  BIT11
#T7B ...      ORS   0  ETWINMK             [ONLY SYSTEM WRITES ALLOWED NOW  
#TC8 ...      ADX   7  FX1  
#TM2          EXIT  7  0
#W6L    XF14  LDCT  0  #140 
#WL=          ANDX  0  ETWINMK  
#X5W          BZE   0  XF15 
#XKG          LDCT  0  #100 
#Y56          ANDX  0   ETWINMK 
#YJQ          BZE   0  XF16                [J IF GEORGE OK  
#^4B          SMO      FX1  
#^J2          LDX   0  XM2  
*23L          ANDS  0  ETWINMK  
*2H=          LDN   0  GEODOWN  
*32W          ORS   0  ETWINMK  
*3*= ...      CALL  6  NOIT                [WAKE TWAIT  
*3GG          BRN      XF17 
*426    XF16  SMO      FX1  
*4FQ          LDX   0  XM9  
*4^B          ANDS  0  ETWINMK  
*5F2          LDN   0  IPBDOWN  
*5YL          ORS   0  ETWINMK  
*6D= ...      ADN   7  1
*7CG    XF17  ADN   7  1
*8WB          BRN      XF15 
*9B2    #   
*9TL    #     NO REPLY FROM STATE   
*=*=    #   
*=SW    #   
*?#G    #   
*?S6    #   
*#?Q    XF18  LDN   0  ETMFAIL  
*#RB          ORS   0  ETWINMK  
**?2    V2    LDX   2  FX2  
**QL          LDX   4  AWORK1(2)
**TD ...[   
**Y= ...[     CHECK FOR CLOSE   
*B34 ...[   
*B5W ...      LDX   3  FX2  
*B8N ...Y7771 HUNT2J   3,EWDAS,ESEND,,XNC   
*B?G ...      LDX   0  ENMARK(3)
*BB# ...      SBN   0  CLIP 
*BF6 ...      BNZ   0  Y7771               [J IF NOT CLOSE  
*BHY ...TBOB  ACROSS   TWINSETB,9          [ELSE CLOSE LINKS
*BLQ ...XNC   CALL  6  N                   [SET UP ESEND
*C9G ...      BRN      P1                  [PUT UP ANOTHER WRITE
*G7=    #   
*GLW    #     SUBROUTINE TO SETUP ESEND WITH GHIN REQUEST   
*H6G    XF25  SBX   7  FX1  
*HL6 ...      LDX   1  FX2  
*J5Q ...XF29  HUNT2J    1,EWDAS,ESEND,,XF26 
*JKB          LDX   0  ENMARK(1)
*JRW ...      SBN   0  GHINR              [IF SENDING GHIN THEN 
*K2B ...      BNZ   0  XF30                  [ANY GHINR ON QUEUE WILL   
*K8W ...      FREECORE  1                    [BE REDUNDANT  
*KCB ...XF30  ADN   0  GHINR-GHIN   
*KKW ...      BZE   0  XF24                [J IF GHIN ALREADY EXISTS
*KSD ...      BRN      XF29 
*L4=    XF26  SETNCORE ESENDLEN,1,EWDAS,ESEND,,1
*LHW          LDN   0  GHIN 
*M3G          STO   0  ENMARK(1)           [STORE REQUEST TYPE  
*MH6          LDN   0  ENTRGA(1)           [MAKE RINGS EMPTY
*N2Q          STO   0  ENTRGA(1)
*NGB          STO   0  ENTRGA+1(1)  
*P22    XF24  ADX   7  FX1  
*PFL          EXIT  7  0
*P^=    #   
*QDW    #     IPB DOWN  
*QYG    #   
*RD6    XF10  CALL  6  N                   [SET UP ESEND
*RXQ    XF28  LDX   3  FX2  
*SCB          LDN   6  2           [IPBDOWN REPLY   
*SX2          LDX   0  ETWINMK  
*TBL          ANDN  0  IPBDOWN+ETMFAIL  
*TW=          BNZ   0  XF27                [J IF IPBDOWN
*W*W ...      LDN   6  #4                  [ELSE OK (GEORGE DOWN) REPLY 
*WTG    XF27  HUNT2J   3,EWDAS,ESEND,,NY1   
*X*6          LDX   0  ENMARK(3)
*XSQ          SBN   0  GHIN 
*Y#B          BZE   0  XF27                [DON'T LOOK FOR GHIN 
*YS2 ...      SBN   0  CLIP-GHIN
*^?L          BZE   0  TBOB                [TO TWINSETB IF CLOSE
*^R=          LDX   5  3
B2=W          CALL  7  R1                  [DEAL WITH THIS ONE  
B2QG          FREECORE 5                   [FREE ESEND  
B3=6          LDX   3  FX2  
B3PQ          BRN      XF27                [GO FOR NEXT 
B49B    NY1   CALL  7  XF25 
B4P2          BRN      P1   
B58L    #   
B5N=    #     SUBROUTINE TO SET UP ESEND WITH GHIN REQUEST IF WRITE FAIL
B67W    #   
B6MG    N     SBX   6  FX1  
B776 ...      LDN   0  JNOCHAT  
B7LQ          ANDX  0  ETWINMK  
B86B          BNZ   0  T                   [DON'T SET UP ESEND IF NO DIALOGUE.. 
B8?J ...      LDN   0  JIOUTS   
B8DQ ...      ANDX  0  ETWINMK  
B8KY ...      BZE   0  T1                  [^ IF NO WRITE O/S   
B8R6 ...      MHUNTW   1,EWDAS,ESENDT   
B8Y# ...      LDX   0  ENMARK(1)           [DON'T SET UP ANOTHER
B95G ...      SBN   0  GHIN                [GHIN IF ONE 
B9=N ...      BZE   0  T                   [ALREADY IN PROGRESS 
B9CW ...T1    CALL  7  XF25                [SET UP ESEND
B9K=    T     BPZ   4  T2                  [J IF READ   
B=4W          ADX   6  FX1  
B=JG          EXIT  6  0
B?46    #   
B?HQ    XLINK3  
B#3B          PAIR      TWINSETB,2  
B#?8 ...XM7            #77177777
B#H2    XM9            #41773737
B*G=    #   
B*MD ...XCME  GEOERR   1,NOTCME 
B*SL ...#   
B*^W ...      MENDAREA 50,K99FAILTWIN   
BBFG    #   
BB^6    #END
^^^^ ...01113767000100000000