{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPCONE865)}} ====== IPCONE865 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXU|BXU]], [[george:macro:CIPCM|CIPCM]], [[george:macro:CLCOUNT|CLCOUNT]], [[george:macro:COOR1|COOR1]], [[george:macro:DCA|DCA]], [[george:macro:DFCLEAR|DFCLEAR]], [[george:macro:DFLOAD|DFLOAD]], [[george:macro:DFSET|DFSET]], [[george:macro:DOWN|DOWN]], [[george:macro:DSCA|DSCA]], [[george:macro:FPUT|FPUT]], [[george:macro:FSHCODE|FSHCODE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:GPERIIPC|GPERIIPC]], [[george:macro:IDENTITY|IDENTITY]], [[george:macro:JBS|JBS]], [[george:macro:JDISENG|JDISENG]], [[george:macro:JENG|JENG]], [[george:macro:JIPCM|JIPCM]], [[george:macro:JIPCMN|JIPCMN]], [[george:macro:JRESET|JRESET]], [[george:macro:LFAILS|LFAILS]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LGPERIS|LGPERIS]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LREPEATS|LREPEATS]], [[george:macro:MBC|MBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:PAIR|PAIR]], [[george:macro:R|R]], [[george:macro:RESETIPC|RESETIPC]], [[george:macro:RINGACT|RINGACT]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SIPCM|SIPCM]], [[george:macro:TIPCREP|TIPCREP]], [[george:macro:TRACE|TRACE]] 22FL SEG IPCONE,,JOHN BAILEY 22^= # 23DW SEGENTRY K1IPCONE,X1IPCONE 23YG SEGENTRY K2IPCONE,X2IPCONE 24D6 SEGENTRY K3IPCONE,X3IPCONE 24XQ SEGENTRY K4IPCONE,X4IPCONE 25CB SEGENTRY K5IPCONE,X5IPCONE 25X2 SEGENTRY K7IPCONE,X7IPCONE 26BL SEGENTRY K9IPCONE,X9IPCONE 26W= # 27*W # STORED WORDS 27CS ...# 27FQ ... FSHCODE AORB 27HN ...( 27KL ...SHFSLK 27MJ ... PAIR FSHTRAND,10 27PG ...) 27RD ...# 27TG XOOX #40000001 28SQ RESBITS #777700 29S2 TIPBACT +IPCA+IPCBX 2=?L XERR +4 [MAX NR OF ERRORS ALLOWED 2=R= TMESSCODES #04000040 2?=W #04000041 2?QG #04000042 2#=6 #04000043 2#PQ #04000046 2*9B #03000047 2*P2 #07000060 2B8L #07000061 2BN= #04000066 2C7W #03000067 2CMG #02000070 2D76 ... #04000071 2DLQ #03000077 2DMY ...# 2DP6 ...# 2DQ# ...# COME HERE AFTER TIMING OUT ANY PERI 2DRG ...# TIME OUT MUST MEAN OTHER SIDE IS DEAD 2DSN ...# THUS DO A RESET AND TRY AGAIN 2DTW ...XTIMEOUT 2DX4 ... RESETIPC 2DY= ... BZE 0 NOPI 2D^D ... CALL 7 SWRC 2F2L ... BRN RIP 2F3S ... BRN NOPI 2F52 ... BRN RIP 3CC6 # S/R TO WAIT FOR RESET STATUS TO CLEAR 3CWQ # LINK IS CONTAINED IN X7 3DBB # EXITS+2 WHEN RESET CLEAR,EXITS+1 IF TIMED-OUT,EXITS IF INOPERABLE 3DW2 # ON ENTRY : X1=FX1,X2=FX2=ADDRESS OF APPROPRIATE IPCA/IPCBX 3F*L # 3FT= SWRC SBX 7 FX1 3G#W LDX 0 CLEANCT 3GSG ADN 0 5000/K9 3H#6 STO 0 IPCPTIME(2) [TIME LIMIT 3HRQ SIPCM RW ["WAITING FOR RESET CLEAR" 3J?B SW1 LDX 0 XOOX(1) 3JR2 STO 0 CHAINADD(2) [READY FOR EVENT 3K=L JDISENG ,SW2 [GONE INOPERABLE 3KQ= JIPCM TO,SW3 [WAITING TOO LONG 3L9W JRESET ,SW4 [RESET STATUS STILL SET 3LPG SW6 CIPCM RW 3M96 STOZ IPCPTIME(2) 3MNQ NGNC 0 1 3N8B ANDS 0 CHAINADD(2) 3NN2 LDX 0 CHAINADD(2) 3P7L SBN 0 1 3PM= BZE 0 SW5 3Q6W COOR1 3QLG SW5 ADX 7 FX1 3R66 EXIT 7 2 3RKQ SW4 COOR1 3S5B BRN SW1 3SK2 SW3 CIPCM TO 3T4L SBN 7 1 3TJ= SW2 SBN 7 1 3W3W BRN SW6 5F#G # DEAL WITH ERROR IN MESSAGE SEQUENCE : 5FS6 # WAIT FOR RESET TO CLEAR 5G?Q # 5GRB X1IPCONE 5H?2 WHOOPS 5HQL TRACE IPWRB(2),IPCONE1 5J== RESETIPC 5JPW BPZ 0 NOPS [REJECTED(INOPERABLE) 5K9G DFLOAD ,ERCT,5 [ERROR COUNT 5KP6 ADN 5 1 5L8Q TXL 5 XERR(1) 5LNB BCC RIPE [TOO MANY ERRORS 5M82 DFSET ,ERCT,5 [STORE INCREMENTED COUNT 5MML CALL 7 SWRC [WAIT FOR RESET TO CLEAR 5N7= BRN RIPE [WAIT BEYOND TIME LIMIT 5NLW BRN NOPS [INOPERABLE 5P6G # SEND ERROR MESSAGE 5PL6 WH3 5Q5Q LDN 5 0 [NO 'RESET ACCEPTED' MESSAGE -- 5QKB WH5 LDX 0 TMESSCODES+12(1) [RECEIVED YET 5R52 STO 0 IPWRB(2) [HEADER 5RJL STOZ IPWRB+1(2) [NULL DIAGNOSTIC 5S4= NGS 0 IPWRB+2(2) [NEGATIVE CHECKSUM 5SHW LDN 0 #11 5T3G DCA ,DLA,0,MODE 5TH6 LDN 0 3 5W2Q DCA ,DLA,0,COUNT 5WGB LDN 0 IPWRB(2) 5X22 DCA ,STO,0,CTSA 5XFL GPERIIPC ,2,CT 5X^= ... TIPCREP CT,XTIMEOUT,RIPF,NOPS,WH1 [AWAIT REPLY 5YDW BNZ 5 NEXTASK 5YYG SIPCM R 5^D6 BRN NEXTASK 5^XQ # DEAL WITH POSSIBLE RESET ACCEPTED MESSAGE 62CB WH1 LDN 0 #12 62X2 DSCA ,DLA,0,MODE 63BL LDN 4 11 63W= DSCA ,DLA,4,COUNT 64*W LDN 0 IPREB(2) 64TG DSCA ,STO,0,CTSA 65*6 GPERIIPC ,2,SP [READ 65SQ ... TIPCREP SP,XTIMEOUT,RIPF,NOPS,,RIPE 66#B LDX 0 CPRW2(2) 66S2 ANDN 0 #777 67?L SBX 4 0 67R= LDN 7 IPREB(2) 68=W SMO 4 68QG SUM 6 0 [CALCULATE CHECKSUM 69=6 BNZ 6 RIPE [FAILED 69PQ LDX 0 IPREB(2) 6=9B ANDN 0 #77 6=P2 SBN 0 #70 6?8L BZE 0 WH6 [RESET ACCEPTED 6?N= SBN 0 1 6#7W BZE 0 PINIT [INITIALISE 6#MG SBN 0 6 6*76 BZE 0 RESA [ERROR 6*LQ BRN RIPE [ANYTHING ELSE 6B6B WH6 LDN 5 1 [NOTE RESET ACCEPTED 6BL2 BRN WH5 [GO TO SEND ERROR MESSAGE 6C5L # DEAL WITH RESET SEQUENCES INITIATED 6CK= # FROM THE OTHER END 6D4W # 6DJG X3IPCONE 6F46 RESETA 6FHQ TRACE IPWRB(2),IPCONE2 6G3B CALL 7 SWRC [WAIT FOR RESET TO CLEAR 6GH2 BRN RIPE [WAIT BEYOND TIME LIMIT 6H2L BRN NOPS [INOPERABLE 6HG= # RESET IS NOW CLEAR : A'RESET ACCEPTED' MESSAGE 6H^W # MUST BE SENT TO INTERRUPT THE REMOTE PROCESSOR 6JFG LDX 0 TMESSCODES+10(1) 6J^6 STO 0 IPWRB(2) [HEADER 6KDQ NGS 0 IPWRB+1(2) [CHECKSUM 6KYB LDN 0 #11 6LD2 DCA ,DLA,0,MODE 6LXL LDN 0 2 6MC= DCA ,DLA,0,COUNT 6MWW LDN 0 IPWRB(2) 6NBG DCA ,STO,0,CTSA 6NW6 GPERIIPC ,2,CT [SEND RESET ACCEPTED MESSAGE 6P*Q ... TIPCREP CT,XTIMEOUT,RIPF,NOPS,RESA2 6PTB RESA2 LDN 0 #12 6Q*2 DSCA ,DLA,0,MODE 6QSL LDN 4 11 6R#= DSCA ,DLA,4,COUNT 6RRW LDN 0 IPREB(2) 6S?G DSCA ,STO,0,CTSA 6SR6 GPERIIPC ,2,SP [READ ERROR 6T=Q ... TIPCREP SP,XTIMEOUT,RIPF,NOPS,,RIP 6TQB LDX 0 CPRW2(2) 6W=2 ANDN 0 #777 6WPL SBX 4 0 [NR OF WDS TRANSFERRED 6X9= LDN 7 IPREB(2) 6XNW SMO 4 6Y8G SUM 6 0 [CALCULATE CHECKSUM 6YN6 BNZ 6 RIP [IF CHECKSUM FAIL,GIVE UP 6^7Q # FURTHER INPUT CHECKS 6^MB LDCH 0 IPREB(2) 7272 BXU 0 4,RIPE [COUNT WRONG 72LL # TEST MESSAGE TYPE 736= LDX 0 IPREB(2) 73KW ANDN 0 #77 745G SBN 0 #71 74K6 BZE 0 PINIT [INITIALISE 754Q SBN 0 6 75JB BNZ 0 RIPE 7642 RESA LDX 0 IPREB(2) 76HL ANDN 0 #1000 773= BZE 0 NEXTASK [NOT GEORGE BROKEN 773K ... FSHCODE A,SNOTA [ FOR SHFS M/C A MUST CHECK THE 773Y ...( [ MESSAGE FROM PM IN M/C B 774? ... LDX 6 IPREB+1(2) 774L ... BZE 6 SNOTA2 [ J. IF THE NORMAL GEORGE DOWN MESS. 774M ... NGN 0 2 [CODE -2 MEANS MAJOR ERROR 774N ... TXU 0 6 774P ... BCS NOD1 [PMMBRK MACRO 774Q ... '142 0 0 [CODE -2 MEANS EXEC PM WANTED 774R ... BRN NODUMP 774S ...NOD1 NGN 0 3 [CODE -3 MEANS GEORGE PM 774T ... BCS NODUMP 774W ... GEOERR 1,IPCBDOWN [STOP FORCED BY SLAVE 774X ...NODUMP 774^ ... JBS SNOTA2,,FSHCLOSDOWN [ OR IF ALREADY INITIATED UNANT.CLOSE 775# ... BC ,FSHRUNNING [ ELSE CLEAR LINK RUNNING BIT 775M ... BS ,FSHCLOSDOWN [ AND SET CLOSEDOWN STARTED BIT 775Q ... MBC ,JSVIRTMOPB,JSVIRTBACKB [CLEAR 'B' M/C VIRTUAL JOB SLOTS 775T ... BS ,JSPREFERA 7762 ... FINDACTF 2,FX2,IPCA,FSHBPM,NOBPM,BPTR [ SEE IF ALREADY GOT /FSHBPM 776* ... BRN SGOTBPM [ J. IF WE HAVE ELSE 776N ...NOBPM 7773 ... GETACT IPCA,FSHBPM [ SET UP ACT TO CONTROL CLOSEDOWN 7775 ...# 7777 ...# IF THERE ARE TWO IPB'S, WE MAY BE INTERFERING WITH THE DATA 7779 ...# STRUCTURE FOR THE IPB ACTIVITIES BY CREATING THE /FSHBPM, SO 777? ...# WHEN IT IS SET UP, WE MOVE IT BEHIND BLANKET (OUT OF THE WAY!!) 777* ...# 777C ... LDX 1 BPTR(2) [ADDRESS OF /FSHBPM 777F ... LDN 2 BACT [ADDRESS OF BLANKET 777H ... RINGACT 1,2 [RE-SITE THE /FSHBPM 777K ... LDX 2 BACT+BPTR [RESTORE POINTER TO /FSHBPM 777M ...# 777P ... LINKSET 2,SHFSLK(1) [ SET INITIAL LINK FSHTRAND,10 7784 ... BS 2,FSHBPMACTWT [ MARK TO WAIT FOR OP. ACTION 778C ... STO 6 ACOMMUNE1(2) [ GIVE IT THE ACT/JOB NO OF CURRENT 778Q ... FPUT [ IN B AT BREAK AND START UP THE ACT 7795 ... BRN SWAITGB2 779D ...SGOTBPM [ ALREADY GOT /FSHBPM ACT SO 779R ... JBS NOBPM,2,FSHBPMKILL [ FIRST CHECK IF ITS ABOUT TO SUICIDE 77=6 ... STO 6 ACOMMUNE1(2) [ J. IF IT IS ELSE STORE ACT/JOB NO & 77=F ... BC 2,FSHBPMLKCOM [ CLEAR LK COMMAND MARKER & CARRY ON 77=S ...SWAITGB2 77?7 ...# 77?G ...# AT THIS POINT WE NEED TO SET UP A QUIESCENT READ AND WAIT 77?N ...# FOR THE SECOND MESSAGE FROM PM IN 'B'.# 77?W ...# 77#4 ... SIPCM Q [SET QUIESCENT 77#= ... LDN 0 #12 77#D ... DSCA ,DLA,0,MODE [READ MODE 77#L ... LDN 4 11 77#S ... DSCA ,DLA,4,COUNT [11 WORDS 77*2 ... LDN 0 IPREB(2) 77*8 ... DSCA ,STO,0,CTSA 77*B ... GPERIIPC ,2,SP 77*J ... TIPCREP SPQ,TOPM,RESETA,TOPM,,TOPM 77*X ...# 77B= ...TOPM 77BK ... BRN RIPF 77BY ...SNOTA2 [ SECOND MESSAGE FROM PM IN 'B' 77C? ... FINDACTF 2,FX2,IPCA,FSHBPM,PMGONE,BPTR [ FIND THE /FSHBPM AND 77CL ... BC 2,FSHBPMACTWT [ CLEAR 'WT FOR OP. ACTION' MARKER 77CR ...PMGONE 77C^ ... LDX 2 FX2 77D# ...SNOTA 77DM ...) 77F2 ... FSHCODE B,SNOTB [ FOR SHFS M/C B MUST BREAK AS SOON 77F* ...( [ IT DETECTS PM ENTERED ON M/C A 77FN ... GEOERR 1,ZOMBIE [ SO GEOERR !!! 77G3 ...SNOTB 77GB ...) 77GW SIPCM GB 782G DFCLEAR ,RGM 78G6 DFCLEAR ,IDENT1 78^Q DFCLEAR ,IDENT2 79FB BRN RIP 79^2 BRN NEXTASK 7=DL # DEAL WITH INITIALISE MESSAGE RECEIVED 7=Y= ...PINIT DOWN IPCONF,1 [DOWN TO CLEAR UP 7?CW X9IPCONE 7?XG LDX 0 IPREB(2) 7#C6 ANDN 0 #1000 7#WQ BZE 0 PI2 [NOT GEORGE 7*BB DFSET ,RGM [NOTE REMOTE GEORGE 7*W2 LDX 0 IPREB+1(2) 7B*L DFSET ,IDENT1,0 [STORE IDENTITY OF REMOTE GEORGE 7BT= LDX 0 IPREB+2(2) 7C#W DFSET ,IDENT2,0 7CSG PI2 LDX 0 TMESSCODES+11(1) [HEADER 7D#6 ORN 0 #1000 7DRQ STO 0 IPWRB(2) 7F?B LDX 0 IDENTITY [IDENTITY 7FR2 STO 0 IPWRB+1(2) 7G=L LDX 0 IDENTITY+1 7GQ= STO 0 IPWRB+2(2) 7H9W LDN 7 IPWRB(2) 7HPG SUM 6 3 7J96 NGS 6 IPWRB+3(2) [CHECKSUM 7JNQ LDN 0 4 7K8B DCA ,DLA,0,COUNT 7KN2 LDN 0 #11 7L7L DCA ,DLA,0,MODE 7LM= LDN 0 IPWRB(2) 7M6W DCA ,STO,0,CTSA 7MLG GPERIIPC ,2,CT [SEND INITIALISE RESPONSE 7MW# ... TIPCREP CT,XTIMEOUT,RIPF,NOPI,RIPE 7N66 JIPCM DS,PI1 [J IF DIALOGUE SUSPENDED 7P5B BRN NEXTASK 7PK2 PI1 JIPCMN SM,PI3 7Q4L LGEOG ,4 7QJ= OUTPACK 4,1,GEOPER 7R3W MONOUT IPCDR [OUTPUT DIALOGUE RESUMED MESSAGE 7RHG CIPCM SM 7S36 PI3 CIPCM DS [CLEAR'DIALOGUE SUSPENDED' 7SGQ CIPCM GB [ETC 7T2B CIPCM ER 7TG2 CIPCM AO 7T^L BRN NEXTASK 7WF= # TIMED-OUT ENTRY POINT 7WYW # 7XDG X5IPCONE 7XY6 TRACE IPWRB(2),IPCONE3 7YCQ CIPCM TO 7YXB STOZ IPCPTIME(2) 7^C2 JENG ,WHOOPS 7^WL BRN NOPS 82B= # MAJOR DISASTER SECTION 82TW # 83*G # ENTRY POINT FOR SUSPENDED DIALOGUE 83T6 # 84#Q RIPF RESETIPC 84SB BZE 0 NOPI 85#2 CALL 7 SWRC 85RL BRN RIP 86?= BRN NOPI 86QW BRN RIP 87=G RIPE SIPCM ER 87Q6 X7IPCONE 889Q RIP SIPCM DS [SET 'DIALOGUE SUSPENDED' MARKER 88PB TRACE IPWRB(2),IPCONE4 8992 DFCLEAR ,ERCT [CLEAR ERROR COUNT 89NL SIPCM SM 8=8= ... DOWN IPCONF,1 [DOWN TO CLEAR UP 8=MW LGEOG ,4 8?7G OUTPACK 4,1,GEOPER 8?M6 LGPERIS ,4 8#6Q OUTPACK 4,1,TRANSCT 8#LB LREPEATS ,4 8*62 BZE 4 PIX 8*KL OUTPACK 4,1,REPEATS 8B5= CLCOUNT ,REPEAT 8BJW PIX LFAILS ,4 8C4G BZE 4 PIY 8CJ6 OUTPACK 4,1,FAILCT 8D3Q CLCOUNT ,FAIL 8DHB PIY MONOUT IPCDS [OUTPUT DIALOGUE SUSPENDED MESSAGE 8F32 JRESET ,RI2 8FGL BRN RI1 8G2= RI2 ACROSS IPCSTART,7 8GFW # ENTRY POINT FOR WAITING FOR THE OTHER END TO 8G^G # INITIALISE. 8HF6 # A READ IS PUT UP TO DETECT A RESET,OR READ THE 8HYQ # MESSAGE 8JDB # 'DS' SHOULD BE SET ON ENTRY 8JY2 # 8KCL X4IPCONE 8KX= TRACE IPWRB(2),IPCONE5 8LBW RI1 LDN 0 #12 8LWG DSCA ,DLA,0,MODE 8MB6 LDN 4 11 8MTQ DSCA ,DLA,4,COUNT 8N*B LDN 0 IPREB(2) 8NT2 DSCA ,STO,0,CTSA 8P#L SIPCM Q [SET QUIESCENT 8PS= GPERIIPC ,2,SP 8Q?W ... TIPCREP SPQ,RI1,RI2,NOP,,RI1 8QRG LDN 0 #77 8R?6 ANDX 0 IPREB(2) 8RQQ SBN 0 #71 8S=B BNZ 0 RI1 [NOT INITIALISE 8SQ2 LDX 0 CPRW2(2) 8T9L ANDN 0 #777 8TP= SBX 4 0 8W8W LDN 7 IPREB(2) 8WNG SMO 4 8X86 SUM 6 0 [CALCULATE CHECKSUM 8XMQ BNZ 6 RI1 [WRONG,SO IGNORE MESSAGE 8Y7B BRN X9IPCONE 8YM2 # SET APPROPRIATE MARKER BEFORE DEALING WITH IPB INOPERABLE 8^6L NOPI SIPCM DS 8^L= BRN NOP 925W NOPS SIPCM SI 92KG # DEAL WITH IPB INOPERABLE 9356 # 93JQ X2IPCONE 944B NOP 94J2 ACROSS IPCOND,1 953L NEXTASK 95H= ACROSS IPCON,1 962W MENDAREA 1023-0?,K99IPCONE 96GG #END ^^^^ ...37134674000300000000