{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: TRIPB83)}}
====== TRIPB83 ======
(George Source)
**Macros used:** [[george:macro:BXL|BXL]], [[george:macro:CCBB|CCBB]], [[george:macro:CLEAR|CLEAR]], [[george:macro:CLEARALL|CLEARALL]], [[george:macro:FINDACTFB|FINDACTFB]], [[george:macro:FINMOVE|FINMOVE]], [[george:macro:HUNT2|HUNT2]], [[george:macro:JENG|JENG]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PROGMOVE|PROGMOVE]], [[george:macro:QTASK|QTASK]], [[george:macro:READ|READ]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TICKLE|TICKLE]], [[george:macro:TRACE|TRACE]], [[george:macro:TREQST|TREQST]], [[george:macro:UP|UP]]
22FL ... SEG TRIPB,,KEITH MARTIN
22^= #
23DW #
23YG SEGENTRY K1TRIPB,X1TRIPB
24D6 #
24XQ #
25CB X1TRIPB
25X2 # ACOMMUNE1 CONTAINS %A - START ADDRESS OF TRANSFER
26BL # ACOMMUNE2 CONTAINS %B - LENGTH OF TRANSFER
26HS ...# ACOMMUNE3 CONTAINS %C - START ADDR (IF NOT ZERO) FOR MODE *21
26P2 ...# ACOMMUNE4 CONTAINS %D - LENGTH (IF NOT ZERO) FOR MODE *21
26W= SMO AWORK1(2)
27*W LDX 1 ARINGEL(2)
27TG LDX 3 APTRIPB(1)
28*6 BZE 3 RO [WMC
28SQ LDX 3 CPPTR(3)
29#B JENG 3,RO1 [OPERABLE
29S2 LDCT 0 4
2=?L ANDX 0 ASTATUS2(1)
2=R= BNZ 0 RO [B6 SET
2?=W LDCT 0 4
2?QG ORS 0 ASTATUS2(1) [SET B6
2#=6 LDN 4 0
2#PQ BRN RA2
2*9B RO1 LDCT 0 4
2*P2 NGX 0 0
2B8L SBN 0 1
2BN= ANDS 0 ASTATUS2(1) [CLEAR B6
2C7W RO
2CMG TREQST 0
2D76 BNZ 0 R2 [BRANCH IF A REQUEST STORED
2DLQ SMO AWORK1(2)
2F6B LDX 1 ARINGEL(2)
2FL2 LDN 0 4
2G5L SMO AWORK1(2)
2GK= TXU 0 ASTATUS1(1)
2H4W BCS RA1 [J IF NOT CONDITIONAL TRANSFER
2HJG SMO AWORK1(2)
2J46 STOZ ASTATUS1(1)
2JHQ LDX 0 ASTATUS2(1)
2K3B SLL 0 1
2KH2 LDN 4 2
2L2L BPZ 0 RA2
2LG= ADN 4 1 [REPLY NOT ESTABLISHED
2L^W RA2 ADN 4 #44 [REPLY TIMED OUT, NOT IMPLEMENTED
2MFG SLL 4 17
2M^6 LDX 5 EVENT2(2)
2NDQ ADN 5 1
2NYB LDX 1 APETADDR(2)
2PD2 STO 4 7
2PXL LDN 4 7
2QC= LDN 6 1
2QWW FINMOVE 1,5,4,6,HLOCK1,2,1 [HLOCK1 OF OLPA
2QYK ...#SKI G4
2R2# ...(
2R43 ... LDX 2 ALINDIR(2) [MODE OF OPEN
2R5Q ... SBN 2 #400
2R7F ... BNZ 2 RX [J IF READING
2R98 ... MHUNTW 2,ADATA,HLOCKDOWN
2R=X ... CLEARALL 1,0,2
2R#L ...)
2RBG BRN RX
2RW6 RA1 LDN 0 1
2S*Q SMO AWORK1(2)
2STB ORS 0 ASTATUS1(1) [SET ASTATUS1=TRANSFER STORED
2T*2 LDX 0 ACOMMUNE1(2)
2TSL STO 0 ASTR(1) [[STORE START AND LENGTH OF TRANSFER
2W#= LDX 0 ACOMMUNE2(2) [[IN LINK RECORD
2WRW STO 0 ALENTR(1)
2WX2 ... LDX 0 ACOMMUNE3(2)
2X26 ... STO 0 ASTR2(1) [START FOR MODE *21
2X5= ... LDX 0 ACOMMUNE4(2)
2X8B ... STO 0 ALENTR2(1) [LENGTH FOR MODE *21
2X?G LDX 0 ATOTIM(2)
2XR6 STO 0 ATIMCT(1)
2Y=Q LDX 0 EVENT2(2)
2YQB ADN 0 1
2^=2 STO 0 AREPPTR(1)
2^PL LDX 3 EVENT1(2)
329= LDX 0 ARM1-AFW1(3)
32NW SRL 0 18
338G STO 0 ASTMEL(1)
33N6 LDX 7 APTRIPB(1)
347Q #SKI G4
34MB BZE 7 RAX
3572 #SKI G3
35LL BZE 7 RX
366= SETNCORE 6,3,IPCD,ATASK [SET UP TASK BLOCK FOR IPCBX
36KW TRACE 3,TRGTASK
375G LDX 1 ARINGEL(2)
37K6 LDX 0 ALINUM(1)
384Q STO 0 A1(3)
38JB LDX 0 ASTATUS1(1)
3942 ANDN 0 4
39HL BZE 0 RA
3=3= LDN 0 4
3=GW BRN RB
3?2G RA LDN 0 2
3?G6 RB STO 0 A1+1(3)
3?^Q LDX 7 APTRIPB(1)
3#FB BZE 7 RB1
3#^2 #SKIP IPCG4
3*DL (
3*Y= RAX LDX 6 3
3BCW ... MHUNTW 3,ADATA,HLOCKDOWN
3CWQ LDN 4 HLOCK1(2)
3DBB LDN 5 HLOCKB1(3)
3DW2 MOVE 4 8
3F*L CLEAR APETADDR(2),2,,,
3FT= LDX 3 6
3G#W BZE 7 RX
3GSG )
3H#6 QTASK 3,2,7
3HRQ TRACE 2,TRQTASK
3J?B BRN RX
3JR2 RB1 MFREE IPCD,ATASK
3K=L BRN RX
3KQ= R2 SMO AWORK1(2)
3L9W LDX 1 ARINGEL(2)
3L*2 ... LDN 4 3
3LD6 ... LDCT 0 #300 [JUMP IF NOT ESTAB
3LH= ... ANDX 0 ASTATUS2(1)
3LLB ... BNZ 0 RA2
3LPG LDX 0 APTRIPB(1)
3M96 BNZ 0 RA1 [J IF IMC
3MNQ LDX 0 GSIGN
3N8B STO 0 ASTATUS1(1)
3NN2 LDCT 0 #10
3P7L STO 0 AWORK3(2)
3PM= STO 0 AWORK4(2)
3Q6W STOZ ATIMCT(1)
3QLG LDX 0 ALINDIR(2) [[CHECK LINK DIRECTION
3R66 SBN 0 #400
3R73 ...#
3R7Y ...#
3R8T ...# THE FOLLOWING CODE SETS UP
3R9Q ...# ACOMMUNE1 - 6 AS FOLLOWS
3R=M ...#
3R?J ...# 1,2,3 FIRST MOVE
3R#F ...# TO,FROM,LENGTH
3R*B ...# 4,5,6 SECOND MOVE (MODE *21 ONLY)
3RB? ...# TO,FROM,LENGTH
3RC8 ...#
3RD5 ...# ACOMMUNE3=MINIMUM OF
3RF2 ...# 1)LENGTH OF READ
3RFX ...# 2)LENGTH OF WRITE(1ST)
3RGS ...# ACOMMUNE6=MINIMUM OF
3RHP ...# 1)LENGTH OF READ - LENGTH OF FIRST MOVE
3RJL ...# 2)LENGTH OF WRITE (2ND)
3RKQ BNZ 0 READ [BRANCH IF THIS END IS READING
3RNG ...#
3RR= ...#
3RW2 ...# THIS END WRITING
3RYQ ... TRACE 1,IPCTWRIT [PTR READERS STACK ENTRY
3S3G ... LDX 0 ACOMMUNE2(2) [LENGTH OF WRITE-1
3S6= ... ADX 0 ACOMMUNE4(2) [+LENGTH OF WRITE-2
3S92 ... SBX 0 ALENTR(1) [-LENGTH OF READ
3S?Q ...#
3SBG ... LDX 3 ACOMMUNE3(2) [WRITE ADDR-2
3SF= ... STO 3 ACOMMUNE5(2)
3SJ2 ...#
3SLQ ... LDX 3 ALENTR(1) [READ LENGTH
3SPG ... BXL 3 ACOMMUNE2(2),QW1 [J IF LESS THAN WRITE LENGTH-1
3SS= ... LDX 3 ACOMMUNE2(2) [ELSE RESET
3SX2 ...QW1
3S^Q ... STO 3 ACOMMUNE3(2)
3T4G ...#
3T7= ... LDX 3 ALENTR(1) [READ LENGTH
3T=2 ... SBX 3 ACOMMUNE3(2) [=LENGTH LEFT
3T#Q ... BXL 3 ACOMMUNE4(2),QW2 [J IF LESS THAN WRITE LENGTH-2
3TCG ... LDX 3 ACOMMUNE4(2) [ELSE RESET
3TG= ...QW2
3TK2 ... STO 3 ACOMMUNE6(2)
3TMQ ...#
3TQG ... LDX 3 ASTR(1) [READ ADDR
3TT= ... ADX 3 ACOMMUNE3(2) [+MOVE LENGTH-1
3TY2 ... STO 3 ACOMMUNE4(2)
3W2Q ...#
3W5G ... LDX 3 ACOMMUNE1(2) [WRITE ADDR-1
3W8= ... STO 3 ACOMMUNE2(2)
3W?2 ...#
3W*Q ... LDX 3 ASTR(1) [READ ADDR
3WDG ... STO 3 ACOMMUNE1(2)
3WHG BRN R3
3WLG ...#
3WPG ...# THIS END READING
3WSG ...READ
3WXG ... TRACE 1,IPCTREAD [PTR WRITERS STACK ENTRY
3X2G ... LDX 0 ALENTR(1) [LENGTH OF WRITE-1
3X5G ... ADX 0 ALENTR2(1) [+LENGTH OF WRITE-2
3X8G ... SBX 0 ACOMMUNE2(2) [-LENGTH OF READ
3X?G ...#
3XBG ... LDX 3 ACOMMUNE2(2) [READ LENGTH
3XFG ... BXL 3 ALENTR(1),QR1 [J IF LESS THAN WRITE LENGTH-1
3XJG ... LDX 3 ALENTR(1) [ELSE RESET
3XMG ...QR1
3XQG ... STO 3 ACOMMUNE3(2)
3XTG ...#
3XYG ... LDX 3 ACOMMUNE2(2) [READ LENGTH
3Y3G ... SBX 3 ACOMMUNE3(2) [-LENGTH MOVED-1
3Y6G ... BXL 3 ALENTR2(1),QR2 [J IF LESS THAN WRITE LENGTH-2
3Y9G ... LDX 3 ALENTR2(1) [ELSE RESET
3Y#G ...QR2
3YCG ... STO 3 ACOMMUNE6(2)
3YGG ...#
3YKG ... LDX 3 ACOMMUNE1(2) [READ ADDR
3YNG ... ADX 3 ACOMMUNE3(2) [+MOVE LENGTH-1
3YRG ... STO 3 ACOMMUNE4(2)
3YWG ...#
3Y^G ... LDX 3 ASTR2(1) [WRITE ADDR-2
3^4G ... STO 3 ACOMMUNE5(2)
3^7G ...#
3^=G ... LDX 3 ASTR(1) [WRITE ADDR-1
3^*G ... STO 3 ACOMMUNE2(2)
3^F= R3 LDX 1 FX1
3^YW BZE 0 R4 [BRANCH IF SAME LENGTH
42DG BPZ 0 R5
42QX ... NGX 0 0
435# ... ORS 0 AWORK3(2)
43CQ BRN R4 [READ REPLY
43XB ...R5 LDCT 4 #100 [WRITE>READ - SET LONGBLOCK BIT IN
44C2 ... ORS 4 AWORK3(2)
45B= ADX 4 0
45TW ... ORS 4 AWORK4(2) [STORE REM CT IN WRITE REPLY
46T6 R4 FINDACTFB 1,2,APET,,,BPTR [X1=PTR TO THIS END'S PCA
47#Q LDX 3 2
47SB SBX 3 AWORK1(2)
48#2 LDX 3 ARINGEL+1(3)
48RL SBN 3 ARINGEL
49?= #SKIP IPCG4
49QW (
4==G HUNT2 2,ADATA,HLOCKDOWN,3 [FIND LOCKDOWN BLOCK AFTER STORED
4=JX ... SMO FX2
4=X# ... STO 2 AWORK2 [TRANSFER'S OLPA
4?9Q LDX 2 FX2
4?PB )
4#92 FINDACTFB 3,,APET,,,BPTR [X3=PTR TO OTHER END'S PCA
4#NL TRACE 3,TRAPET
4#S5 ... LDX 7 ALINDIR(2)
4#XJ ... SBN 7 #400
4*33 ...#
4*6G ...# NOW X1=PTR TO THIS ENDS PCA
4*9^ ...# X3=PTR TO OTHER ENDS PCA
4**D ...# SWAP SO X4=PTR TO READERS PCA
4*DX ...# X3=PTR TO WRITERS PCA
4*JB ... BNZ 7 QP1 [J IF THIS END READING
4*MT ...# THIS END WRITING
4*R# ... LDX 4 3
4*WR ... LDX 3 1
4B2= ... BRN QP2
4B5P ...# THIS END READING
4B98 ...QP1
4B#M ... LDX 4 1
4BD6 ...#
4BHK ...# NOW PERFORM TRANSFER(S)
4BM4 ...# 2 FOR MODE *21
4BQH ...# AS SPECIFIED IN ACOMMUNE1-6
4BW2 ...#
4B^F ...# ACOMMUNE6=0 IF
4C4Y ...# 1)NOT MODE *21
4C8C ...# 2)MODE *21 SECOND TRANSFER COMPLETED
4C?W ...#
4CC* ...#
4CGS ...# SET DETAILS FOR FIRST MOVE
4CL? ...QP2
4CPQ ... TRACE 2,IPCTMVE1 [FX2
4CT9 ... LDX 7 ACOMMUNE3(2) [LENGTH
4CYN ... LDX 5 ACOMMUNE2(2) [WRITE ADDR
4D47 ... LDX 6 ACOMMUNE1(2) [READ ADDR
4D7L ... BRN QP8
4D?5 ...#
4DBJ ...QP6
4DG3 ... LDX 7 ACOMMUNE6(2) [LENGTH
4DKG ... BZE 7 QP9 [J IF DONE OR NOT MODE *21
4DN^ ...#
4DSD ...# SET DETAILS FOR SECOND TRANSFER
4DXX ... TRACE 2,IPCTMVE2 [FX2
4F3B ... LDX 5 ACOMMUNE5(2) [WRITE ADDR
4F6T ... LDX 6 ACOMMUNE4(2) [READ ADDR
4F=# ... STOZ ACOMMUNE6(2) [ZERO FOR DONE
4F*R ...#
4FF= ...QP8
4FJP ... TRACE 6,IPCTPREM [LENGTH OF MOVE
4FN8 ... PROGMOVE 3,5,4,6,7
4FRM ... BRN QP6
4FX6 ...QP9
4G2K ...#
4G64 ...# NOW X4=PTR TO READERS PCA
4G9H ...# X3=PTR TO WRITERS PCA
4G*2 ...# SWAP SO X1=PTR TO THIS ENDS PCA
4GDF ...# X3=PTR TO OTHER ENDS PCA
4GHY ... LDX 7 ALINDIR(2)
4GMC ... SBN 7 #400
4GQW ... BNZ 7 QZ1 [J IF THIS END READING
4GW* ...# THIS END WRITING
4G^S ... LDX 1 3
4H5? ... LDX 3 4
4H8Q ... LDN 5 AWORK3(2) [READ REP
4H#9 ... LDN 4 AWORK4(2) [WRITE REP
4HCN ... BRN QZ2
4HH7 ...# THIS END READING
4HLL ...QZ1
4HQ5 ... LDX 1 4
4HTJ ... LDN 5 AWORK4(2) [WRITE REP
4H^3 ... LDN 4 AWORK3(2) [READ REP
4J4G ...QZ2
4J7^ ...#
4J?D ...#
4JBX ... LDX 7 AWORK2(2) [PTR TO LOCKDOWN AFTER STORED TRANSFERS OLPA
4JGL RM SMO AWORK1(2)
4K2= LDX 0 ARINGEL(2)
4KFW # GIVE REPLY TO PROGRAM
4K^G SMO 0
4LF6 LDX 6 AREPPTR
4LYQ LDN 2 1
4MDB FINMOVE 3,6,5,2,HLOCKB1,7,1
4MY2 #SKIP IPCG4
4NCL ... CLEARALL 3,0,7 [FREE LOCKS
4NX= SMO FX2
4PBW LDX 5 EVENT2
4PWG ADN 5 1
4QB6 FINMOVE 1,5,4,2,HLOCK1,,1
4QTQ #SKIP IPCG4
4R*B ... CLEAR 1,0,HLOCK1,,2
4RT2 TRACE 5,TRREPUP
4RWC ...#SKI G4
4RXS ...(
4R^9 ... SMO FX2
4S2L ... LDX 2 ALINDIR
4S43 ... SBN 2 #400
4S5D ... BNZ 2 PZ1
4S6T ... MHUNTW 2,ADATA,HLOCKDOWN
4S8= ... CLEARALL 1,0,2
4S9M ...PZ1
4S?4 ...)
4S#L LDX 2 FX2
4SS= # FOR BOTH ENDS OF LINK CLEAR CHANNEL BUSY BIT AND REACTIVATE PROGRAM
4T?W SMO AWORK1(2)
4TRG LDX 7 ARINGEL(2)
4W?6 SMO 7
4WQQ STOZ ASTATUS1
4X=B SMO 7
4XQ2 STOZ ASTATUS2
4Y9L CCBB 2
4YP= LDX 0 AWORK1(2)
4^8W SBX 2 0
4^NG LDX 1 ARINGEL+1(2)
5286 ADX 2 0
52MQ SBN 1 ARINGEL
537B CCBB 1
53M2 SMO 7
546L LDX 4 ASTMEL
54L= TICKLE JOBNO(1),4
555W LDX 3 EVENT1(2)
55KG LDX 3 ARM1-AFW1(3)
5656 SRL 3 18
56JQ TICKLE JOBNO(2),3
574B RX UP
57J2 #
583L #
58H= MENDAREA 100,K100TRIPB
592W #
59GG #
5=26 #END
^^^^ ...34211561002400000000