{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: INTWIN866)}}
====== INTWIN866 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHAIN|CHAIN]], [[george:macro:DERING|DERING]], [[george:macro:DOWN|DOWN]], [[george:macro:ENRING|ENRING]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACT|GETACT]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:HUNTW|HUNTW]], [[george:macro:IDENTITY|IDENTITY]], [[george:macro:IPCOPEN|IPCOPEN]], [[george:macro:IPCREP|IPCREP]], [[george:macro:JSHARED|JSHARED]], [[george:macro:JTWIN|JTWIN]], [[george:macro:LADDP|LADDP]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LONGCLEAR|LONGCLEAR]], [[george:macro:LONGON|LONGON]], [[george:macro:LRIDENT|LRIDENT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:PAIR|PAIR]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SUSPEND|SUSPEND]], [[george:macro:TRACE|TRACE]], [[george:macro:TWTRACE|TWTRACE]]
22FL ...#SEG INTWIN80
22^= ...#LIS K0TWINSET>K0INTWIN
23DW ... 8HINTWIN
23YG ...[
24D6 ...[ K1 FROM TWINSETA - INITIALISE FIRST TIME
24XQ ...[ K2 FROM TWINSETA - INITIALISE OTHER FIRST TIME
25CB ...[ K3 FOR SIMULATION
25X2 ...[
26BL ... SEGENTRY K1INTWIN,QK1TW
26W= ... SEGENTRY K2INTWIN,QK2TW
27*W ... SEGENTRY K3INTWIN [=0 IF NO SIMULATION
2?K? +JSKI11 [=UNIT NO. OF IPB IF ON
2?M2 ... SEGENTRY K4INTWIN
2?NP ... +0
2?QG #
2#=6 #
2#PQ # IPCREAD SUBROUTINE
2*9B #
2*P2 XIPCREAD
2B8L SBX 7 FX1
2BN= DOWN TWINSETD,1
2C7W BRN XIT
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
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 #
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
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= #
5KP6 TWDA 4HTWDA
5L8Q ...#
5LNB ...# INITIALISE: ENTWIN IS CURRENT ACTIVITY
5M82 ...#
5MML ...QK2TW
5R52 NGNC 0 1
5RJL QK1TW [*****
5S4= N3
5SHW LDN 0 0 [X0=0 FOR K1 OR =1 FOR K20
5T3G LDX 2 FX2
5TH6 STO 0 AWORK1(2) [STORE MARKER
5W2Q LDX 7 TWDA(1)
5WGB ... LDN 0 5
5X22 ... STO 0 ETIOUT [SET TIME OUT TO FIVE SPRING CLEANS
5XFL CALL 0 XIDENT
5X^= BRN NA [NO DIAG
5YDW BRN NB [NOT GEORGE
5YYG TXU 5 IDENTITY
5^D6 TXU 6 IDENTITY+1
5^MY #SKI JSKI11<1$1
5^XQ BCC NC [J IF IDENTITIES SAME
624Y #SKI JSKI11
62=6 BCC £ [IGNORE IDENTITY CHECK RESULT
62CB LDN 0 JNOCHAT
62X2 ANDX 0 ETWINMK
63BL BZE 0 NA [J IF WE HAVE ALREADY OFW
63W= ERS 0 ETWINMK [ELSE CLEAR
64*W CALL 0 OPENWRITE
64TG BRN NA
65*6 #
65SQ # REMOTE PROCESSOR NOT GEORGE
66#B #
66S2 NB LDN 6 16 [REPLY
67?L BRN NAC
67R= #
68=W # SAME IDENTITY
68QG #
69=6 NC LDN 6 8 [REPLY
69PQ BRN NAC
6=9B #
6=P2 # NOW OPEN READ LINK
6?8L #
6?N= NA LDX 6 ETWINMK
6#7W ANDN 6 JOFR
6#MG BZE 6 NE [J IF ALREADY OPEN
6*76 LDX 5 IDENTITY [OUR IDENTITY
6*LQ LDX 6 IDENTITY+1
6B6B LDN 4 3
6B8K #SKI JSKI11
6B=S (
6B*3 LDX 1 FX1
6BC= ... IPCOPEN R,4,5,K3INTWIN(1) [OPEN CHANNEL JSKI11 FOR READING
6BFF )
6BHN #SKI JSKI11<1$1
6BL2 IPCOPEN R,4,5,IPBTWIN [AND OPEN READ LINK
6C5L LDN 0 JOFR
6CK= ERS 0 ETWINMK [OFR NOW
6D4W LDX 0 AWORK1(2) [PICK UP MARKER
6DJG BZE 0 NE [J IF FIRST TIME I.E.FROM K1
6DKX ...[ PUT UP READ TRANSFER AND WAIT FOR FINISH
6DM# ...[ BUT LET TWINSETA INSPECT THE RESULT. (TWINSETA LOOPS
6DNP ...[ IF THERE IS AN ESEND ON THE Q AND TQE READ IS NOT DONE
6DQ6 ... CALL 7 XIPCREAD
6DRH ...[ IF THE LINKS WERE NOT PREVIOUSLY ESTABLISHED
6DSY ...[ BITT11 WILL BE SET IF THE LINKS ARE NOW ESTABLISHED THE READ
6DW* ...[ TRANSFER WILL WORK BUT BIT11 WILL REMAIN SET UNLESS THERE
6DXQ ...[ IS A GHIN TO SEND. THIS BIT SENDS A GHIN IF POSS AND SETS BIT11
6D^7 ...[
6F2J ... LDN 0 JNOCHAT
6F3^ ... ANDX 0 ETWINMK
6F5B ... BNZ 0 NCHK [J IF WRITE LINK NOT OPEN
6F6R ... LDX 0 BIT11
6F88 ... ORS 0 ETWINMK
6F9K ... CALL 7 XF25 [SET UP GHIN
6F?2 ... CALL 7 XIPCWRITE [DO WRITE
6F#C ...NCHK IPCREP R,3
6F*S ... BPZ 3 XFIN
6FC9 ... SUSPEND
6FDL ... BRN NCHK
6FG3 ...XFIN LDN 0 IPBDOWN+GEODOWN+ETMFAIL
6FHQ ANDX 0 ETWINMK
6G3B BZE 0 NAD [J IF ALL OK
6GH2 ERS 0 ETWINMK [ELSE CLEAR FAIL BITS..
6H2L LDN 0 ETMFAIL [..AND SET ETMFAIL SO THAT
6HG= ORS 0 ETWINMK [PLEASE ISSUE IS OUTPUT
6H^W BRN NAD [AS CRIPPLE MODE STATE MAY
6JFG [HAVE CHANGED
6J^6 NE LDX 0 ETWINMK
6KDQ ANDN 0 JNOCHAT
6KYB ... BNZ 0 NEA [J IF NO DIALOGUE
6LD2 LDX 0 ETWINMK
6LXL ANDN 0 JIOUTS
6MC= BNZ 0 NEA [J IF WRITE OUTSTANDING
6MWW CALL 7 XF25 [SET UP ESEND
6NBG LDN 0 GHL
6NW6 STO 0 ENMARK(1)
6P*Q CALL 7 XIPCWRITE [SAY HELLO
6PTB NEA LDX 0 ETWINMK
6Q*2 ANDN 0 JROUTS [J IF READ OUTSTANDING
6QSL BNZ 0 NM
6R#= NG CALL 7 XIPCREAD [AND LISTEN FOR REPLY
6RRW NM IPCREP R,3 [GET REPLY TO READ
6S?G LDCT 0 #20
6SR6 BPZ 3 NH [J IF FINISHED
6T=Q ANDX 0 3
6TQB BNZ 0 W4 [ERROR IF REJECTED
6W=2 BRN NI [ELSE WAIT
6WPL #
6X9= # READ HAS FINISHED
6XNW #
6Y8G NH LDX 5 ETWINMK
6YN6 ANDN 5 JROUTS
6^7Q ERS 5 ETWINMK [CLEAR READ OUTSTANDING MKR
6^MB LDX 5 ETWINMK
7272 ANDN 5 JNOCHAT
72LL BZE 5 NJ [J IF DIALOGUE
736= ANDX 0 3
73KW BZE 0 N3 [TRY AGAIN IF IMPLEMENTED
745G BRN NK [FIND CAUSE OF ERROR
74K6 NJ IPCREP W,2 [GET REPLY TO WRITE
754Q LDX 6 2
75JB LDCT 0 #20
7642 BPZ 2 NL [J IF FINISHED
76HL ANDX 0 2
773= BNZ 0 W4 [ERROR IF REJECTED
77GW #
782G # WAIT FOR BOTH TO FINISH
78G6 #
78^Q NI SUSPEND
79FB BRN NM [LOOK AGAIN
79^2 W4 GEOERR 1,REJECTED
7=DL #
7=Y= #
7?CW # READ AND WRITE FINISHED
7?XG #
7#C6 NL LDX 5 ETWINMK
7#WQ ANDN 5 JIOUTS
7*BB ERS 5 ETWINMK [CLEAR WRITE OUSTANDING MKR
7*HH ... HUNTW 1,EWDAS,ESENDT
7*K= ... BNG 1 NLZ
7CSG FREECORE 1
7D#6 NLZ LDX 1 FX1
7DRQ LDCT 0 #20
7F?B ANDX 0 3 [READ REPLY
7FR2 BNZ 0 NK [J IF READ NOT IMPLEMENTED
7G=L LDCT 0 #20
7GQ= ANDX 0 6
7H9W BNZ 0 NK [J IF WRITE NOT IMPLEMENTED
7HC4 ... TRACE 6,WOK
7HJ= ... TRACE 3,ROK
7HPG NAM LDX 0 XM8(1)
7J96 CALL 6 X
7JNQ LDX 0 ETBUFS(2) [GET REQUEST TYPE
7K8B SBN 0 GHL
7KN2 BZE 0 NO [J IF GHL
7L7L LDX 0 ETBUFS(2)
7LM= SBN 0 GHLR
7M6W BZE 0 NP [J IF GHLR
7MLG LDX 0 ETBUFS(2)
7N66 SBN 0 GHIN
7NKQ BZE 0 NG [AWAIT GHLR REPLY
7P5B GEOERR 1,RONGREQ
7PK2 #
7Q4L # AN ERROR HAS OCCURRED
7QJ= #
7R3W NK
7RHG LDX 1 FX2
7S36 STO 6 AWORK1(1)
7SGQ STO 3 AWORK2(1) [ READ
7SHB ... SMO FX1
7SJ3 ... LDX 0 K4INTWIN
7SK# ... BZE 0 NTRAC1 [^ IF NO TRACING
7SLK ... LDN 0 #4562 [TRACE IDENTIFIER "ER"
7SMW ... STO 0 ACOMMUNE1(1)
7SP7 ... LDX 0 ETWINMK
7SQD ... STO 0 ACOMMUNE2(1)
7SRP ... STO 6 ACOMMUNE3(1) [WRITE REPLY FROM IPCREP
7ST2 ... STO 3 ACOMMUNE4(1) [READ REPLY FROM IPCREP
7SW? ... STO 7 ACOMMUNE5(1) [LINK FOR LAST CALL
7SXJ ... TWTRACE
7SYT ...NTRAC1
7T2B #SKI K6TWINSETC>99-99
7TG2 (
7T^L TRACE 6,WREP
7WF= TRACE 3,RREP
7WYW )
7XDG LDX 5 ETWINMK
7XY6 ANDN 5 JNOCHAT
7YCQ CALL 7 XIPCREAD [PUT UP ANOTHER READ
7YXB BNZ 5 NN [J IF NO DIALOGUE
7^C2 CALL 7 XF25 [SET UP ESEND
7^WL LDN 0 GHL
82B= STO 0 ENMARK(1)
82TW CALL 7 XIPCWRITE [PUT UP ANOTHER WRITE
83*G NN LDN 6 0
83T6 LDCT 0 #20
84#Q ANDX 0 AWORK2(2)
84SB LDX 7 AWORK2(2)
85#2 BNZ 0 NS [J IF READ NOT IMPLEMENTED
85RL BZE 5 NT [J IF DIALOGUE
86?= NU GEOERR 1,IMPMENT?
86QW NT LDN 6 1
87=G LDCT 0 #20
87Q6 LDX 7 AWORK1(2)
889Q ANDX 0 AWORK1(2)
88PB BZE 0 NU
8992 NS LDCT 0 #6
89NL ANDX 0 7
8=8= BZE 0 NM [J IF NOT FAILURE OR ESTABLISHED
8=MW STO 6 ACOMMUNE1(2) [STORE MODE FOR IPCSTATE
8?7G CALL 7 XIPCSTATE
8?M6 NX LDCT 0 #140
8#6Q #SKI K6TWINSETC>99-99
8#LB TRACE 3,STATE
8*62 ANDX 0 3
8*KL BZE 0 NY [J IF DIALOGUE NOT SUSPENDED
8B5= SLL 0 3
8BJW BNG 0 NZ [J IF GEORGE DOWN
8C4G NY CALL 7 XF13 [ASK OPS FOR STATE
8CJ6 BRN N3 [NO REPLY
8D3Q BRN NAB [GEORGE DOWN
8DHB LDN 6 2 [IPB WRONG
8F32 BRN NAC
8FGL #
8G2= # GEORGE DOWN
8GFW #
8G^G NZ LDX 1 FX1 [FROM IPCSTATE
8HF6 LDX 0 XM2(1)
8HYQ CALL 6 X
8JDB ... LDN 0 GEODOWN
8JY2 ORS 0 ETWINMK
8KCL NAB CALL 6 R3D [FROM OPS CLEAR LOCK-OUTS
8KQ2 ... CALL 6 NOIT [WAKE UP TWAIT
8KX= BRN NAD
8LBW #
8LWG # GHL RECEIVED BUT WE HAVE ALREADY SENT ONE
8MB6 #
8MTQ NO LDX 0 AFTERU [GET WHO GOES FIRST MKR
8N*B BNG 0 NAF [J IF WE GO SECOND
8NT2 NAK CALL 6 R3D [CLEAR LOCK-OUTS
8P28 #SKI JSKI11
8P7B BRN NAD [NEXT BIT WON'T SIMULATE VERY WELL
8P#L CALL 7 R20 [COMPILE REPLY
8PS= LDN 5 GHLR
8Q?W STO 5 ENMARK(1)
8QRG NAG CALL 7 XIPCWRITE [BEND IT BACK
8R?6 NAI IPCREP W,3
8RQQ BPZ 3 NAH [J IF FINISHED
8S=B SUSPEND [WAIT FOR IT TO BE SENT
8SQ2 BRN NAI
8T9L ...NAH LDN 0 JIOUTS
8TP= ERS 0 ETWINMK
8W8W LDCT 5 #20
8WNG ANDX 5 3
8WWQ ... MHUNTW 1,EWDAS,ESENDT
8XMQ FREECORE 1
8Y7B BZE 5 NAD [J IF IMPLEMENTED
8YM2 LDCT 0 #6 [
8^6L ANDX 0 3
8^L= BZE 0 NAK [TRY AGAIN
925W BRN NE [START ALL OVER AGAIN
92KG #
9356 # WE WAIT FOR HELLO REPLY
93JQ #
944B NAF CALL 7 XIPCREAD
94J2 NAMX IPCREP R,3
953L BPZ 3 NAL [J IF FINISHED
95H= SUSPEND
962W BRN NAMX
96GG NAL LDCT 0 #20
9726 ANDX 0 3
97FQ LDN 5 JROUTS
97^B ERS 5 ETWINMK
98F2 BNZ 0 NE [START AGAIN
98YL BRN NAM [GET RESULT
99D= #
99XW # REPLY RECEIVED
9=CG #
9=JM ...NP LDN 6 32 [WRONG STATE REPLY (IN CASE)
9=LB ... DOWN TWINSETD,4 [CHECK REPLY
9=N5 ... BRN NAC
9?BQ NAD LDCT 6 #400 [OK REPLY
9?WB NAC LDX 3 FX2
9#B2 NH1 HUNT2J 3,EWDAS,ESEND,,U5 [LOOK FOR INITIALISE REQUEST
9#TL LDX 0 ENMARK(3)
9**= SBN 0 INIT
9*SW BNZ 0 NH1
9B#G LDX 5 3 [SAVE PTR
9BS6 CALL 7 R1 [PUT IN REPLY AND WAKE UP
9BYS ... HUNTW 1,EWDAS,EGOT [
9C2B ... BNG 1 NWG [J IF NO ERROR IN STATE
9C3Y ... CHAIN 1,4 [ELSE CHAIN AFTER ENLINK
9C5G ...NWG
9C8L ... SMO 5
9C=8 ... LDX 7 ENSTART [PICK UP MKR
9C?Q FREECORE 5
9CRB LDX 3 FX2 [SEARCH FOR ANY ESENDS WIT..
9D?2 NRID HUNT2J 3,EWDAS,ESEND,,SUS
9DQL LDX 0 ENMARK(3) [..REQUEST AND CHANGE TO GHIN AS WE.
9F== SBN 0 GHL [..GET GEOERR HONK! IF GHL IS SENT..
9FPW BNZ 0 NRID [..AFTER INITIALISATION
9G9G LDN 0 GHIN
9GP6 STO 0 ENMARK(3)
9H8Q SUS LDN 0 IPBDOWN+GEODOWN+ETMFAIL
9HNB ANDX 0 ETWINMK
9J82 BNZ 0 SUSPEND
9JCS ... BNZ 7 SUSPEND [IF 2ND TIME B11
9JML CALL 7 XB11CL
9K7= SUSPEND
9KG^ ... LDX 0 ETWINMK
9KWN ... ANDX 0 BIT10 [CLEAR B10 - IDENTIES SAME MESSAGE
9L=C ... ERS 0 ETWINMK [..CAN NOW BE OUTPUT I
9LL6 SUSPEND
9M5Q ACROSS TWINSETA,1
9MKB XM8 #41773103
=Q=Q U5 GEOERR 1,IDENTERR
=QQB #
=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
?6#7 ... MHUNTW 1,EWDAS,ENLINK
?6LJ ... NAME 1,EWDAS,ESEND
?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 #
#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 #
*G7= #
*GLW # SUBROUTINE TO SETUP ESEND WITH GHIN REQUEST
*H6G XF25 SBX 7 FX1
*HL6 HUNTW 1,EWDAS,ESEND
*J5Q BNG 1 XF26 [J TO SET ONE UP
*JKB LDX 0 ENMARK(1)
*K52 SBN 0 GHIN
*KJL BZE 0 XF24 [J IF ALREADY EXISTS
*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^= #
B?HQ XLINK3
B#3B PAIR TWINSETB,2
B#H2 XM9 #41773737
B*2L XM7 #77177777
B*G= #
B*MD ...XCME GEOERR 1,NOTCME
B*SL ...#
B*^W ... MENDAREA 50,K99INTWIN
BBFG #
BB^6 #END
^^^^ ...01407434000100000000