{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPCONB8)}} ====== IPCONB8 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:DCA|DCA]], [[george:macro:DSCA|DSCA]], [[george:macro:EMPTY|EMPTY]], [[george:macro:GPERIIPC|GPERIIPC]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2B|HUNT2B]], [[george:macro:HUNT2OPT|HUNT2OPT]], [[george:macro:INCLINK|INCLINK]], [[george:macro:KILLHANGER|KILLHANGER]], [[george:macro:LGEOG|LGEOG]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:OPB|OPB]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SIPCM|SIPCM]], [[george:macro:TIPCREP|TIPCREP]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:WAKEHANGER|WAKEHANGER]] 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