{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: TRANSFER70)}}
====== TRANSFER70 ======
(George Source)
**Macros used:** [[george:macro:BACKTRAN|BACKTRAN]], [[george:macro:CHTRAN|CHTRAN]], [[george:macro:CONVERT|CONVERT]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETCORE|GETCORE]], [[george:macro:KEEPMESS|KEEPMESS]], [[george:macro:KEEPREP|KEEPREP]], [[george:macro:LOCK|LOCK]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:NAME|NAME]], [[george:macro:PUTREP|PUTREP]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:UP|UP]]
22FL #SEG TRANSFER70 [JOHN BAILEY
22^= #LIS K0TRANSFER
23DW 8HTRANSFER
23YG #
24D6 SEGENTRY K1TRANSFER,QK1TR
24XQ SEGENTRY K3TRANSFER,QK3TR
25CB SEGENTRY K4TRANSFER,QK4TR
25X2 SEGENTRY K5TRANSFER,QK5TR
26BL SEGENTRY K7TRANSFER,QK7TR
26W= SEGENTRY K8TRANSFER,QK8TR
27*W #
27TG QK1TR
28*6 MHUNT 3,EWDAS,GEXD [REFIND GEXD
28SQ LDN 0 1
29#B ADS 0 ETLINK(3) [AVOID NON-COORDINATING BRANCH
29S2 LDX 4 ECOR(3) [REMEMBER ECOR IN X4
2=?L LDN 1 EBUF-A1(3)
2=R= W2 LDX 1 A1(1) [GET POINTER TO NEXT BUFFER
2?=W BZE 1 W1 [NONE MARKED NOT SAVED
2?QG LDX 6 A1+2(1)
2#=6 ANDX 6 BITS22LS [GET SAVED COUNT
2#PQ BNZ 6 W2
2*9B W3 LDN 6 FBUFR(1)
2*P2 STO 6 ECOR(3) [CORE ADDRESS
2B8L LDX 6 A1+2(1)
2BN= LDX 5 EBLOCK(3)
2C7W BPZ 6 W4 [BRANCH IF NOT MARKED'TO BE WRITTEN'
2CMG LDX 6 A1+1(1)
2D76 STO 6 EBLOCK(3) [BLOCK ADDRESS OF BLOCK
2DLQ LDN 6 1
2F6B STO 6 EMODE(3) [WRITE MODE
2FL2 CALL 0 TRAN [DO TRANSFER
2G5L STO 5 EBLOCK(3)
2GK= STOZ ETMARK(3) [NO MORE OUTSTANDING WRITES
2H4W W4 STO 5 A1+1(1)
2HJG STOZ A1+2(1)
2J46 LDN 6 0 [READ MODE
2JHQ STO 6 EMODE(3)
2K3B CALL 0 TRAN [DO TRANSFER
2KH2 LDX 0 EWK+3(3)
2L2L BZE 0 W37
2LG= LDN 0 1 [JUMP IF READ ONLY
2L^W ADS 0 A1+2(1) [UPDATE SAVED COUNT
2MFG W37 CALL 0 TIDY
2M^6 ADS 4 ECOR(3) [ADD WORD PART OF ADDRESS
2NDQ W18 SETREP OK
2NYB UP
2PD2 W1 LDN 6 128
2PXL ADN 6 FBUFR-A1 [X6=LENGTH OF FBUF BLOCK
2QC= GETCORE 6,1,1 [MANDATORY,LONGLOCK
2QWW FINDCORE 2
2RBG LOCK 2
2RW6 FINDCORE 1
2S*Q NAME 1,EWDAS,FBUF
2STB STOZ A1+2(1)
2T*2 MHUNT 3,EWDAS,GEXD
2TSL LDX 6 EBUF(3)
2W#= STO 6 A1(1) [CHAIN INTO FRONT OF FBUF CHAIN
2WRW STO 1 EBUF(3)
2X?G BRN W3
2XR6 TRAN SBX 0 FX1
2Y=Q STO 0 EWK+2(3) [REMEMBER LINK
2YQB BZE 6 W5 [BRANCH IF READ
2^=2 LDX 7 EBLOCK(3)
2^PL STO 7 FBUFR(1) [BLOCK NUMBER
329= LDN 0 FBUFR(1)
32NW SUM 7 128 [CHECKSUM BLOCK
338G SBS 7 FBUFR+1(1)
33N6 W5 STO 1 EWK+1(3) [REMEMBER ADDRESS OF FBUF
347Q LDX 1 EBLOCK(3)
34MB CONVERT EBS(3),ETYPE(3),EBASE(3),EDEPF(3)
3572 ... BACKTRAN EMODE(3),BSET+FLAW+BONL,ECNT(3),,EBSUN(3),EBS(3),ECOR(3)
35LL MHUNT 3,EWDAS,GEXD
366= CHTRAN ETYPE(3),WFAIL,WINOP
36KW LDX 1 EWK+1(3) [TRANSFER SUCCESSFUL
375G BZE 6 W6A [BRANCH IF READ
37K6 LDX 0 BITS22LS
384Q ANDS 0 A1+2(1) [REMOVE WRITE BITS
38JB BRN W6
3942 W6A LDX 7 EBLOCK(3)
39HL TXU 7 FBUFR(1) [CHECK CORRECT BLOCK READ DOWN
3=3= BCC W7
3=GW W12 LDX 1 FX1
3?2G KEEPMESS XCH(1),ESERL(3),EBLOCK(3)
3?G6 BRN W8
3?^Q W7 LDX 7 FBUFR+1(1)
3#FB BZE 7 W6 [BRANCH IF NO CHECKSUM
3#^2 LDN 0 FBUFR(1)
3*DL SUM 7 128
3*Y= BNZ 7 W12 [BRANCH IF CHECKSUM FAIL
3BCW W6 LDX 0 EWK+2(3)
3BXG ADX 0 FX1
3CC6 EXIT 0 0
3CWQ WFAIL KEEPMESS XFAIL(1),ESERL(3),EBLOCK(3)
3DBB MHUNT 3,EWDAS,GEXD
3F*L W8 KEEPREP 7,EXFAIL
3FT= MHUNT 3,EWDAS,GEXD
3G#W W11 LDX 1 EBUF(3)
3GSG STOZ EBUF(3) [LOOK DOWN FBUF CHAIN AND FREE
3H#6 W10 BNZ 1 W9
3HRQ STOZ ECOR(3) [ZEROISE POINTER
3J?B PUTREP 7
3JR2 UP
3K=L W9 LDX 4 A1(1) [REMEMBER POINTER TO NEXT FBUF
3KQ= FREECORE 1 [FREE FBUF
3L9W LDX 1 4
3LPG BRN W10
3M96 WINOP KEEPMESS XINOP(1),ESERL(3) [INOPERABLE
3MNQ MHUNT 3,EWDAS,GEXD
3NN2 MHUNT 3,EWDAS,GEXD
3P7L LDX 1 EWK+1(3)
3PM= LDX 0 A1+2(1)
3Q6W SLL 0 1
3QLG BPZ 0 W8 [BRANCH IF NOT SPECIAL WRITE
3R66 KEEPREP 7,INOP
3RKQ BRN W11
3S5B XCH +EWCHSUM
3T4L XINOP +EWINOP
3TJ= XFAIL +EWSCAF
3WHG TIDY STO 0 EWK+2(3) [REMEMBER LINK
3X36 LDN 1 EBUF-A1(3)
3XGQ W15 LDX 5 1 [REMEMEMBER BUFF. ADDRESS
3Y2B W16 LDX 1 A1(1)
3YG2 BNZ 1 W13 [BRANCH IF MORE FBUFS
3Y^L LDX 0 EWK+2(3)
3^F= EXIT 0 0
3^YW W13 BNZ 6 W14 [BRANCH IF WRITE
42DG TXU 1 EWK+1(3)
42Y6 BCC W15 [BRANCH IF BLOCK ONLY JUST BEEN
43CQ W14 LDXC 7 A1+2(1) [READ INTO OR MARKED TO BE WRITTEN
43XB BCS W15
44C2 SLL 7 2
44WL BNZ 7 W15 [BRANCH IF MARKED TO BE SAVED
45B= LDX 7 A1(1)
45TW SMO 5 [KEEP FBUF LIST IN ORDER
46*G STO 7 A1
46T6 FREECORE 1 [FREE FBUF
47#Q LDX 1 5
47SB BRN W16
48#2 QK3TR
48RL MHUNT 3,EWDAS,GEXD
49?= W30
49QW #SKIP K6TRANSFER>99-99
4==G LDN 4 0
4=Q6 W20 LDX 1 EBUF(3) [GET ADDRESS OF NEXT FBUF
4?9Q #SKIP K6TRANSFER>99-99
4?PB (
4#92 BNZ 1 W17
4#NL SBN 4 1 [ENSURE ONLY ONE TO WRITE
4*8= BZE 4 W18
4*MW GEOERR 1,NOSFBUFS
4B7G )
4BM6 #SKIP K6TRANSFER>99-99
4C6Q #SKIP
4CLB BZE 1 W18 [BRANCH IF NO MORE FBUFS
4D62 W17 LDXC 0 A1+2(1)
4DKL BCC W19 [BRANCH IF NOT TO BE WRITTEN
4F5= CALL 5 WTRAN
4FJW #SKIP K6TRANSFER>99-99
4G4G ADN 4 1
4GJ6 W19 LDX 0 A1(1)
4H3Q STO 0 EBUF(3)
4HHB FREECORE 1 [FREE ALL FBUFS
4J32 BRN W20
4JGL POINT1 LDN 1 EBUF-A1(3)
4K2= W22 LDX 1 A1(1) [POINTER TO NEXT FBUF
4KFW BNZ 1 W21
4K^G W23 GEOERR 1,NOFBUF!
4LF6 W21 LDN 7 FBUFR-1(1)
4LYQ TXL 7 EBLOCK(3) [SEE IF CORE POINTER WITHIN...
4MDB BCC W22 [...THIS BUFFERS BOUNDARY
4MY2 ADN 7 129
4NCL TXL 7 EBLOCK(3)
4NX= BCS W22
4PBW EXIT 0 0 [EXIT WHEN FOUND
4PWG POINT2 LDX 7 EBLOCK(3)
4QB6 DVS 6 ECNT(3) [CHANGE WORD ADDRESS TO BLOCK NO.
4QTQ LDN 1 EBUF-A1(3)
4R*B W24 LDX 1 A1(1)
4RT2 BZE 1 W23 [BRANCH IF BUFFER NOT FOUND
4S#L TXU 7 A1+1(1)
4SS= BCS W24
4T?W EXIT 0 0
4TRG WTRAN SBX 5 FX1 [RELATAVISE LINK
4W?6 LDN 0 FBUFR(1)
4WQQ STO 0 ECOR(3) [CORE ADDRESS
4X=B LDX 0 A1+1(1)
4XQ2 STO 0 EBLOCK(3) [BLOCK NUMBER
4Y9L LDN 6 1
4YP= STO 6 EMODE(3) [MODE 1(WRITE)
4^8W CALL 0 TRAN [DO ACTUAL TRANSFER
4^NG ADX 5 FX1
5286 EXIT 5 0
52MQ QK4TR
537B MHUNT 3,EWDAS,GEXD
53M2 CALL 0 POINT1 [FIND BUFFER TO BE WRITTEN
546L BRN W25
54L= #
555W QK5TR
55KG MHUNT 3,EWDAS,GEXD
5656 CALL 0 POINT2 [FIND BUFFER TO BE WRITTEN
56JQ W25 STO 1 EWK+3(3)
574B LDX 0 ETMARK(3)
57J2 BZE 0 W26 [BRANCH IF NO OUTSTANDING WRITES
583L LDN 1 EBUF-A1(3)
58H= W28 LDX 1 A1(1)
592W BNZ 1 W27 [MORE FBUFS
59GG W32 GEOERR 1,WRFBUF?
5=26 W27 LDXC 0 A1+2(1)
5=FQ BCC W28 [TO BE WRITTEN?
5=^B TXU 1 EWK+3(3)
5?F2 BCC W29 [SAME BLOCK?
5?YL CALL 5 WTRAN [WRITE BLOCK
5#D= W26 LDX 1 EWK+3(3)
5#XW LDX 5 EWK(3) [WRITE MARKERS
5*CG STO 5 A1+2(1) [STORE WRITE MARKERS IN FBUF
5*X6 W29 STO 1 ETMARK(3)
5BBQ BRN W30
5BWB #
5CB2 QK7TR
5CTL MHUNT 3,EWDAS,GEXD
5D*= CALL 0 POINT1 [FIND RELEVANT FBUF
5DSW BRN W38
5F#G #
5FS6 QK8TR
5G?Q MHUNT 3,EWDAS,GEXD [FIND RELEVANT FBUF
5GRB CALL 0 POINT2
5H?2 W38 LDX 4 EWK+3(3)
5HQL BZE 4 W31
5J== LDN 4 1 [IF CHUCK WRITE X4=1
5JPW W31 STO 1 EWK+3(3)
5K9G LDN 1 EBUF-A1(3)
5KP6 W33 LDX 1 A1(1) [LOOK FOR A BLOCK TO WRITE
5L8Q BZE 1 W32
5LNB LDXC 0 A1+2(1)
5M82 BCC W33 [NOT TO BE WRITTEN
5MML TXU 1 EWK+3(3)
5N7= BCC W34
5NLW LDN 0 1
5P6G ADS 0 ETLINK(3) [AVOID NON-COORDINATING BRANCH
5PL6 CALL 5 WTRAN [WRITE AWAY BLOCK
5Q5Q LDX 1 EWK+3(3)
5QKB W34 LDX 5 A1+2(1) [UPDATE COUNT OF SAVES
5R52 ANDX 5 BITS22LS
5RJL SBX 5 4
5S4= #SKIP K6TRANSFER>99-99
5SHW (
5T3G BPZ 5 W35 [ERROR IF SAVES NEGATIVE
5TH6 GEOERR 1,COUNTNEG
5W2Q W35
5WGB )
5X22 ORX 5 EWK(3)
5XFL STO 5 A1+2(1) [STORE WRITE MARKERS IN FBUF
5X^= LDN 6 1
5YDW CALL 0 TIDY [TIDY UP FBUF LIST
5YYG BRN W18
5^D6 #
5^XQ MENDAREA 30,K99TRANSFER
62CB #END
^^^^ ...36421524000300000000