IPCONB8

(George Source)

Macros used: ACROSS, BXE, BXU, DCA, DSCA, EMPTY, GPERIIPC, HUNT2, HUNT2B, HUNT2OPT, INCLINK, KILLHANGER, LGEOG, MENDAREA, MFREE, MHUNT, OPB, SEG, SEGENTRY, SETNCORE, SIPCM, TIPCREP, TRACE, UP, WAKEHANGER

IPCONB8.txt
22FL ...      SEG      IPCONB,,KEITH MARTIN 
22^=    #     THIS SEGMENT DEALS WITH OPEN TASKS FOR IPC LINKS  
23DW    #   
23YG          SEGENTRY K1IPCONB,X1IPCONB
24D6          SEGENTRY K2IPCONB,X2IPCONB
24XQ          SEGENTRY K4IPCONB,X4IPCONB
25CB    #     STORED   WORDS
25X2    RESBITS        #777700  
26BL    TMESSCODES     #04000040
26W=                   #04000041
27*W                   #04000042
27TG                   #04000043
28*6                   #04000046
28SQ                   #03000047
29#B                   #07000060
29S2                   #07000061
2=?L                   #04000066
2=R=                   #03000067
2?=W                   #02000070
2?QG                   #02000071
2#=6                   #03000077
2#PQ    TBIT1          #20000000
2*9B    TBIT2          #10000000
2*P2    TBIT3          #4000000 
2B8L    TBIT4          #2000000 
2BN=    TBIT5          #1000000 
2C7W    TBIT11         #50000   
2CMG    TMSK           #62777777
2D76    TIPBACT        +IPCA+IPCBX         [TYPE OF IPB ACTIVITY
2DLQ    ROK            #0   
2F6B    RTO            #22000000
2FL2    RNI            #22000000
2G5L    RNINE          #02400000
2GK=    #     SUBROUTINE TO LOCATE LINKS RING ELEMENT   
2H4W    #     GIVEN THE LINK IDENTIFIER IN ACOMMUNE1(2) [X2 MUST = FX2] 
2HJG    #     ADDRESS IS LEFT IN X3. LINK IS X7. ON EXIT X1=FX1 
2J46    #   
2JHQ    SREL
2K3B          LDX 3 IPCPTR(2)              [FIND IPC ACTIVITY   
2KH2          HUNT2    3,IPCD,IPSTACK      [FIND STACK BLOCK
2L2L          LDX   1  ARINGNO(3)   
2LG=          ANDN  1  #7777
2L^W          BZE   1  SRE1                [STACK EMPTY 
2MFG          ADN   3  A1   
2M^6    SRE3  LDX   0  ALINUM(3)
2NDQ          ANDN  0  #7777
2NYB          BXE   0  ACOMMUNE1(2),SRE2
2PD2          ADN   3  ARECLEN  
2PXL          BCT   1  SRE3 
2QC=    SRE1  NGN   3  #7777
2QWW    SRE2  LDX   1  FX1  
2RBG          EXIT  7  0
2RW6    #     S/R TO CLEAR UP WHEN FAIL IN OPENING  
2S*Q    SFIO  LDX   0  IPWRB+1(2)   
2STB          CALL  7  SREL                [FIND RING EL.   
2T*2          BNG 3 SFI1                   [NOT FOUND   
2TSL          LDX   0  BPTR(3)  
2W#=          BNZ   0  SFI2 
2WRW          CALL  4  SKF  
2X?G    SFI4
2XR6          EXIT  6  0
2Y=Q    SFI2
2YQB          LDX   0  ASTATUS2(3)  
2^=2          ANDX  0  TBIT1(1) 
2^PL          BZE   0  SF13 
329=          LDX   0  TBIT4(1) 
32NW          ORS   0  ASTATUS2(3)  
338G          CALL  7  SNIPB
33N6    SFI1  EXIT  6  0                   [EXIT
347Q    SF13  CALL  7  SKH  
34MB          EXIT  6  0
3572    SKH   LDX   2  ALINUM(3)
35LL    SKH1  KILLHANGER 2  
366=          LDX   1  FX1  
36KW          EXIT  7  0
375G    SKF   CALL  7  SKH  
37K6          LDX   7  4
384Q          CALL  4  SFREE
38JB          EXIT  7  0
3942    #     S/R   TO PASS OPEN TASK TO NEXT IPB,IF ANY
39HL    SNIPB   
3?2G          WAKEHANGER  ALINUM(3) 
3?G6          EXIT  7  0
3Q6W    #     S/R TO REMOVE LINK ENTRIES
3QLG    SFREE LDX   0  FPTR(3)  
3R66          BNZ   0  SFR1 
3YML ...      LDX   1  FPTR(3)  
3YP3 ...      EMPTY    FPTR(1)  
3YQD ...      EMPTY    FPTR(3)  
3YRT ...      LDN   0  #40  
3YT= ...      ORS   0  ASTATUS2(3)  
3YWM ...      LDX   1  FX1  
3Y^L          EXIT  4  0
3^F=    SFR1  LDCT  0  #20  
3^YW          ORS   0  ASTATUS2(3)  
42DG          ERS   0  ASTATUS2(3)  
42Y6          LDX   1  FX1  
43CQ          LDX   2  FX2  
43XB          EXIT  4  0
44C2    #     S/R TO CLEAR UP & MARK FAIL IN GEORGE OPEN PROCEDURE  
44WL    SOFG  CALL  7  SREL                [LOCATE RING EL  
452H ...      LDCT  0  #010                [CLEAR OPEN IN PROGRESS  
456D ...      ERX   0  ASTATUS2(3)  
45=* ...      ANDS  0  ASTATUS2(3)  
45B=          LDX   0  TBIT4(1) 
45TW          ORS   0  ASTATUS2(3)         [SET F.I.O.  
46*G          MFREE    IPCD,ATASK   
46T6          EXIT  6  0                   [EXIT
47#Q    X1IPCONB
47SB          MHUNT    3,IPCD,ATASK 
48#2          LDX   0  A1(3)
48RL          STO   0  ACOMMUNE1(2) 
49?=          TRACE    0,IPCON2 
49QW          CALL  7  SREL 
4==G          LDX   0  BPTR(3)  
4=Q6          BNZ   0  OPA  
4?9Q          CALL  4  SKF  
4?PB ...OPB   BRN   NEXTASK 
4#NL    OPA   LDX   0  ASTATUS2(3)  
4*8=          SLL   0  1
4*MW          BNG   0  OP1  
4B7G          CALL  7  SKH  
4BM6          BRN      OPB  
4C6Q    #     SET UP OPEN REQUEST MESSAGE   
4CLB    OP1 
4D62          LDX   2  FPTR(3)             [ADDRESS OF AOLPT
4DKL          LDX   0  ALINDIR-ARINGEL(2)  [MODE OF OPENING 
4F5=          SRL   0  8                   [0=READ,1=WRITE  
4FJW          SMO      0
4G4G          LDX   0  TMESSCODES+6(1)     [HEADER  
4GJ6          LDX   1  2
4H3Q          LDX   2  FX2  
4HHB          STO   0  IPWRB(2)            [STORE HEADER
4J32          LDX   0  ACOMMUNE1(2) 
4JGL          STO   0  IPWRB+1(2)          [LINK IDENTIFIER 
4K2=          LDN   6  ALINAME-ARINGEL(1)   
4KFW          LDN   7  IPWRB+2(2)   
4K^G          MOVE  6  3                   [STORE LINK NAME 
4LF6          SBN   1  ARINGEL  
4LYQ          HUNT2B   1,AOBRES,0   
4MDB          LDX   0  A1+1(1)  
4MY2          STO   0  IPWRB+5(2)          [PROG NAME   
4NCL          LDN   7  IPWRB(2) 
4NX=          SUM   6  6
4PBW          NGS   6  IPWRB+6(2)          [STORE CHECKSUM  
4PWG    #     TRANSMIT MESSAGE  
4QB6          LDN   0  #31                 [CONTROL AREA: WRITE PART
4QTQ          DCA      ,DLA,0,MODE  
4R*B          LDN   0  7
4RT2          DCA      ,DLA,0,COUNT 
4S#L          LDN   0  IPWRB(2) 
4SS=          DCA      ,STO,0,CTSA  
4T?W          LDN   0  #32                 [CONTROL AREA - READ PART
4TRG          DSCA     ,DLA,0,MODE  
4W?6          LDN   4  11   
4WQQ          DSCA     ,DLA,4,COUNT 
4X=B          LDN   0  IPREB(2) 
4XQ2          DSCA     ,STO,0,CTSA  
4Y9L          GPERIIPC ,2,  
4YP= ...      TIPCREP  ,OPTO,OPRA,OPNPS,NPUT,OPWH,OPRA,OPNP 
4^8W    #     REPLY RECEIVED - VALIDATE IT  
4^NG          LDX   5  CPRW2(2) 
5286          ANDN  5  #777 
52MQ          SBX   4  5                   [NR OF WDS TRANSFERRED   
537B          LDN   7  IPREB(2) 
53M2          SMO      4
546L          SUM   6  0
54L=          BNZ   6  OPWH                [J CHECKSUM WRONG
555W    #     FURTHER  VALIDATION OF REPLY  
55KG          LDCH  0  IPREB(2) 
5656          BXU   0  4,OPWH              [COUNT GIVEN IS WRONG
56JQ          LDX   0  IPREB+1(2)   
574B          SRL   0  12   
57J2          BXU   0  IPWRB+1(2),OPWH  
583L          LDX   0  IPREB(2) 
58H=          ANDN  0  #77  
592W          SBN   0  #66  
59GG          BZE   0  PEST                [OK REPLY
5=26          SBN   0  1
5=FQ          BNZ   0  OPWH                [WRONG REPLY 
5=^B    #     DEAL WITH'NO LINK' REPLY  
5?F2          CALL  7  SREL                [RELOCATE RING EL
5?YL          LDX   0  BPTR(3)  
5#D=          BNZ   0  OP3  
5#XW    OP4 
5*CG          CALL  4  SKF  
5*X6          BRN      NEXTASK  
5BBQ    OP3 
5BWB          LDX   0  TBIT1(1) 
5CB2          ANDX  0  ASTATUS2(3)  
5FS6          BNZ   0  PSNIP
5G?Q          CALL  7  SKH  
5GRB          BRN      NEXTASK  
5HQL    PSNIP CALL  7  SNIPB
5J==          BRN      NEXTASK  
5JPW    #     DEAL  WITH 'LINK ESTABLISHED' REPLY   
5K9G    PEST
5KP6          CALL  7  SREL                [FIND RING EL
5L8Q          LDX   0  BPTR(3)  
5LNB          BNZ   0  PE1  
5M82          CALL  4  SKF  
5MML          BRN      PLATE
5N7=    PE1   LDX   0  TBIT1(1) 
5NLW          ANDX  0  ASTATUS2(3)  
5P6G          BNZ   0  PE2  
5PL6          CALL  7  SKH  
5Q5Q          BRN      PLATE
5QKB    PE2   NGN   0  1
5R52          ERX   0  TBIT4(1) 
5RJL          ERX   0  TBIT1(1) 
5S4=          ANDS  0  ASTATUS2(3)         [MARK ESTABLISHED
5T3G          KILLHANGER  ALINUM(3) 
5TH6          INCLINK   
5W2Q          STO   2  APTRIPB(3)          [DEVICE CONTROL ACTIVITY ADDRESS 
5WGB          LDX   0  IPREB+2(2)   
5X22          STO   0  ALTPROG(3)          [ALTERNATE PROGRAM NAME  
5XFL          LDX   0  IPREB+1(2)   
5X^=          SLC   0  12   
5YDW          STO   0  ALINUM(3)
62CB          LGEOG    ,7   
62X2          ANDN  7  #77  
63W=          ORX   7  TBIT11(1)
65*6          SMO      FPTR(3)  
65SQ          STO   7  IPPROPS-ARINGEL  
66#B          LDX   0  CPPTR(2) 
66S2          SMO      FPTR(3)  
67?L          STO   0  CPPTR-ARINGEL
67R=    OPTR
68=W          LDX   0  ASTATUS1(3)  
68QG          LDX   4  0
69=6          ANDN  0  1
6?8L ...      BZE   0  NEXTASK             [J. IF NO TRANSFER STORED.   
6?N=    OPTS  HUNT2OPT 2,IPCD,ATASK        [SEE IF TRANSFER TASK PRESENT
6#7W          BNG   2  OPTT 
6#G? ...      LDX   0  A1(2)               [LINK NO. FROM TASK BLOCK.   
6#SN ...      ERX   0  ALINUM(3)           [NO. OF LINK JUST ESTABLISHED.   
6*76          ANDN  0  #7777
6*LQ ...      BNZ   0  OPTS                [J. IF NOT SAME LINK.
6B6B          LDX   0  A1+1(2)  
6BL2          SBN   0  2
6C5L ...      BZE   0  NEXTASK             [J. IF TRANSFER. 
6CK=          SBN   0  2
6D4W ...      BZE   0  NEXTASK             [J. IF CONDITIONAL TRANSFER. 
6DJG ...      BRN      OPTS                [TRY NEXT TASK BLOCK.
6F46    OPTT
6FHQ          LDX   7  ALINUM(3)           [LINK NR 
6G3B          SETNCORE 2,3,IPCD,ATASK   
6GH2          STO   7  A1(3)               [LINK IDENTIFIER 
6H2L ...      LDN   0  2                   [TRANSFER TASK IDENTIFIER NO.
6HG=          SLC   4  4
6H^W ...      ANDN  4  4                   [GEORGE LINK BIT NOW B21.
6JFG          ADX   0  4
6J^6 ...      STO   0  A1+1(3)             [SET (GEORGE) TRANSFER.  
6KDQ          BRN      NEXTASK             [J TO PERFORM TASK   
6KYB    #     DEAL WITH TELLING REMOTE MACHINE THAT IT WAS TOO LATE 
6LD2    #     WITH ITS 'LINK ESTABLISHED' REPLY 
6LXL    PLATE LDX   4  IPREB+1(2)   
6MC=          SRC   4  12   
6MWW          MHUNT    3,IPCD,ATASK 
6NBG          STO   4  A1(3)               [LINK IDENTIFIER 
6NW6          LDN   0  7
6P*Q          STO   0  A1+1(3)             [TASK TYPE   
6PTB          BRN      NEXTASK             [J TO PERFORM TASK   
6Q*2    #     VARIOUS FAILURES IN OPENING   
6QSL    OPWH  CALL  6  SFIO                [SEQUENCE ERROR  
6R#=          BRN      WHOOPS   
6RRW    OPTO  CALL  6  SFIO                [TIME-OUT
6S?G          BRN      TIME 
6SR6    OPRA  CALL  6  SFIO                [RESET   
6T=Q          BRN      RESETA   
6TQB    OPNPS CALL  6  SFIO                [INOPERABLE ON READ  
6W=2          BRN      NOPS 
6WPL    OPNP  CALL  6  SFIO                [INOPERABLE ON WRITE 
6X9=          BRN      NOP  
6XNW    PCNXT MFREE    IPCD,ATASK   
6Y8G    NEXTASK 
6YN6          ACROSS   IPCON,1  
6^7Q    NPUT           ACROSS  IPCONA,2 
6^MB    NOPS  SIPCM    SI   
7272    NOP   ACROSS   IPCONE,2            [DEAL WITH INOPERABLE IPB
72LL    WHOOPS  
736=          ACROSS   IPCONE,1            [DEAL WITH ERROR 
73KW    RESETA  
745G          ACROSS   IPCONE,3            [DEAL WITH ERROR DETECTED
74K6    TIME
754Q          ACROSS   IPCONE,5 
75JB    X2IPCONB
7642          CALL  7  SREL 
76HL          CALL  7  SNIPB
773=          UP
77GW    X4IPCONB
782G    #     OPEN TASK FOR GEORGE LINK 
78G6    #   
78^Q    #     1        SET UP OPEN REQUEST MESSAGE  
79FB    OTG   MHUNT    3,IPCD,ATASK 
79^2          LDX   6  A1(3)               [LINK NO 
7=DL          STO   6  ACOMMUNE1(2) 
7=Y=          CALL  7  SREL                [LOCATE RING ELEMENT 
7?CW          LDX   0  ASTATUS2(3)  
7?XG          SLC   0  1
7#C6          BPZ   0  OTCU 
7#WQ          LDX   0  ALTPROG(3)          [DIRECTION OF LINK   
7*BB          SMO      0
7*W2          LDX   0  TMESSCODES+6(1)     [HEADER  
7B*L          ORN   0  #1000               ["GEORGE" BIT
7BT=          STO   0  IPWRB(2)            [STORE HEADER
7C#W          STO   6  IPWRB+1(2)          [STORE LINK NO   
7CSG          LDX   1  FPTR(3)  
7D#6          LDN   4  IPCGNAM-A1(1)
7DRQ          LDN   5  IPWRB+2(2)   
7F?B          MOVE  4  3                   [STORE LINK NAME 
7FR2          STOZ     IPWRB+5(2)          [ZEROISE PROGRAM NAME
7G=L          ADN   4  IPCGDET-IPCGNAM  
7GQ=          ADN   5  4
7H9W          SBN   1  A1   
7HPG          LDX   0  ALOGLEN(1)   
7J96          SBN   0  IPCGDET-IPCRNG+1 
7JNQ          BZE   0  OTG1                [NO DETAILS  
7K8B          SMO      0
7KN2          MOVE  4  0
7L7L          LDCH  7  IPWRB(2) 
7LM=          ADX   7  0
7M6W          DCH   7  IPWRB(2)            [UPDATE HEADER COUNT FOR DETAILS 
7MLG          ADS   0  IPWRB(2)            [UPDATE HEADER FOR DETAILS   
7N66    OTG1  LDN   7  IPWRB(2) 
7NKQ          SMO      0
7P5B          SUM   6  6
7PK2          SMO      0
7Q4L          NGS   6  IPWRB+6(2)          [STORE CHECKSUM  
7QJ=    #     2        SEND OPEN REQUEST
7R3W          LDN   0  #31                 [CONTROL AREA : WRITE PART   
7RHG          DCA      ,DLA,0,MODE  
7S36          LDCH  0  IPWRB(2) 
7SGQ          DCA      ,DLA,0,COUNT 
7T2B          LDN   0  IPWRB(2) 
7TG2          DCA      ,STO,0,CTSA  
7T^L          LDN   0  #32                 [CONTROL AREA : READ PART
7WF=          DSCA     ,DLA,0,MODE  
7WYW          LDN   4  11   
7XDG          DSCA     ,DLA,4,COUNT 
7XY6          LDN   0  IPREB(2) 
7YCQ          DSCA     ,STO,0,CTSA  
7YXB          GPERIIPC ,2,                 [ISSUE PERI  
7^C2 ...      TIPCREP  ,OTG2,OTG3,OTG4,NPUT,OTG6,OTG3,OTG5  
7^WL    #     3        VALIDATE REPLY   
82B=          LDX   5  CPRW2(2) 
82TW          ANDN  5  #777 
83*G          SBX   4  5                   [COUNT OF WORDS RECEIVED 
83T6          LDN   7  IPREB(2) 
84#Q          SMO      4
84SB          SUM   6  0
85#2          BNZ   6  OTG6                [CHECKSUM INVALID
85RL          LDCH  0  IPREB(2) 
86?=          BXU   0  4,OTG6              [COUNT WRONG 
86QW          LDX   0  IPREB+1(2)   
87=G          SRL   0  12   
87Q6          BXU   0  IPWRB+1(2),OTG6     [REPLY GIVES DIFFERENT LINK NO   
889Q          LDX   0  IPREB(2) 
88PB          ANDN  0  #77                 [MESSAGE TYPE
8992          SBN   0  #66  
89NL          BZE   0  OTGA                [LINK ESTABLISHED
8=8=          SBN   0  1
8=MW          BNZ   0  OTG6                [UNACCEPTABLE MESSAGE TYPE   
8?7G    #     4        CLEAR UP 
8?M6          CALL  7  SREL 
8#6Q    OTCU  LDX   0  TBIT5(1) 
8#F7 ...      ERX   0  ASTATUS2(3)         [UNSET OPEN IN PROGRESS  
8#RJ ...      ANDS  0  ASTATUS2(3)  
8*62          LDX   0  BPTR(3)  
8*KL          BNZ   0  OTG7                [LINK STILL OPEN 
8B5=          CALL  4  SFREE               [IF NOT,DELETE ENTRY 
8BJW    OTG7  BRN      PCNXT
8C4G    #     5        LINK ESTABLISHED 
8CJ6    OTGA  CALL  7  SREL 
8D3Q          LDX   0  TBIT1(1) 
8DHB          ERS   0  ASTATUS2(3)  
8F32          LDX   0  IPREB+1(2)   
8FGL          SRC   0  12   
8G2=          STO   0  ALINUM(3)           [COMPLETE LINK NO
8GFW          LDX   0  TMSK(1)  
8G^G          ANDS  0  ASTATUS2(3)  
8HF6          INCLINK   
8HYQ          BRN      OPTR 
8JDB    #     6        ERROR CASES  
8JY2    #     6A TIME-OUT   
8KCL    OTG2  CALL  6  SOFG                [SET F.I.O ETC   
8KX=          BRN      TIME 
8LBW    #     6B RESET  
8LWG    OTG3  CALL  6  SOFG 
8MB6          BRN      RESETA              [RESET   
8MTQ    #     6C INOPERABLE 
8N*B    OTG4  SIPCM    SI                  [SEQUENCE INTERRUPTED
8NT2    OTG5  CALL  6  SOFG 
8P#L          BRN      NOP  
8PS=    #     6D ERROR DETECTED 
8Q?W    OTG6  CALL  6  SOFG 
8QRG          BRN      WHOOPS   
8R?6          MENDAREA 1023-0?,K9IPCONB 
8RQQ    #END
^^^^ ...30365723001200000000