{{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