{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: DROBJ864)}}
====== DROBJ864 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:AUTFIN|AUTFIN]], [[george:macro:AUTSTART|AUTSTART]], [[george:macro:BACKWAIT|BACKWAIT]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CHECKEXT|CHECKEXT]], [[george:macro:FILEAUTR|FILEAUTR]], [[george:macro:FILEAUTW|FILEAUTW]], [[george:macro:FILEREAD|FILEREAD]], [[george:macro:FILETRAN|FILETRAN]], [[george:macro:FINMOVE|FINMOVE]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:FREEBAX|FREEBAX]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GETBAX|GETBAX]], [[george:macro:INMOVE|INMOVE]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OUTMOVE|OUTMOVE]], [[george:macro:PAIR|PAIR]], [[george:macro:PMODES|PMODES]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETMODE|SETMODE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:TOPFCB2|TOPFCB2]]
22FL #OPT K0DROBJ=K0OLP
22^= #OPT K6DROBJ=K6OLP
23DW #LIS K0DROBJ
23YG #SEG DROBJ6 [7OPAE
24D6 8HDROBJ
24XQ SEGENTRY K1DROBJ,Z1DROBJ
25CB SEGENTRY K2DROBJ,Z2DROBJ
25X2 [
26BL PLINK1
26W= PAIR DROBJ,1
27*W FILETRAN
27TG [
28*6 Z1DROBJ [NORMAL ENTRY
28SQ [
29#B LDX 3 APETADDR(2)
29S2 LOCKCA 3,ACAP(2),1
2=?L LDX 4 0(1)
2=R= STO 4 ACA1(2)
2?=W Z2DROBJ [ENTRY FROM DRSTART IF NO OPEN PERI
2?QG LDX 4 ACA1(2)
2#=6 ANDN 4 #7777
2#PQ BZE 4 MOK [J IF READ MODE 0
2*9B SBN 4 1
2*P2 BNZ 4 TCLOS [J UNLESS WRITE MODE 1
2B8L ADN 4 1
2BN= SETMODE 0,WRITE
2C7W ANDX 0 FSCMODE(2)
2CMG BZE 0 NWRIT [J IF NOT OFW
2D76 MOK LDN 5 5 [EXTEND LOCK TO 5 WORDS
2DLQ CHECKEXT ACAP(2),5,RVCA,APETADDR(2),,OKCA,HLOCK1
2F6B OKCA
2FL2 LDX 3 APETADDR(2)
2G5L LDX 6 ACAP(2)
2GK= LDN 7 ACA1(2)
2H4W FOUTMOVE 3,6,7,5,HLOCK1 [MOVE CA TO AOLPT
2HJG LDCT 0 #777
2J46 ANDX 0 ACA3(2)
2JHQ BNZ 0 WC [J IF COUNT>32K-1
2K3B LDX 0 ACA3(2)
2KH2 BZE 0 WC [OR ZERO
2L2L PMODES 1,3
2LG= LDX 0 BITS22LS
2L^W ANDN 1 #10
2MFG BNZ 1 MOKA [J IF 22AM
2M^6 LDX 0 BSP16
2NDQ MOKA
2NYB ANDS 0 ACA4(2)
2PD2 LDX 1 FX1
2PXL #SKI G4
2QC= (
2QWW LDN 5 CHREAD
2RBG BNZ 4 WCH
2RW6 LDN 5 CHWRITE [CHECK WRITE ACCESS FOR READ PERI
2S*Q WCH
2STB )
2T*2 CHECKB ACA4(2),ACA3(2),RVB,APETADDR(2),5,MOKB,HLOCK2
2TSL MOKB TOPFCB2 3
2W#= LDX 5 FSIZE(3)
2WRW SLL 5 GSBSLOG
2X?G LDX 6 AFADD(2)
2XR6 BXGE 6 5,WF [ J IF FILE ADD TOO BIG
2Y=Q ADX 6 ACA3(2)
2YQB ADN 5 1
2^=2 BXGE 6 5,WC [JIF COUNT TOO BIG
2^PL LDX 0 GSIGN
329= ORS 0 ALTMARK(2)
32NW AUTSTART [RESTART OBJ PROG
338G MZ0
33N6 LDEX 3 6 [NO. OF WDS. IN LAST BL. - WB
347Q LDX 5 6
34MB SRL 5 GSBSLOG [GET START BLOCK MOD.
3572 BZE 3 MZ1 [J IF ENDS ON BL. BNDY.
35LL BZE 4 MZ2 [J IF READ
366= ANDN 6 #177 [WDS IN LAST BLT.
36KW BZE 6 MZ2 [J IF ENDS ON BLT. BNDY.
375G STO 3 AWOLBL(2)
37K6 BXE 3 ACA3(2),MZ01
384Q BXL 3 ACA3(2),MZ01
38JB LDX 3 ACA3(2) [SET WB=C
3942 LDEX 6 AFADD(2)
39HL SRL 6 7 [X6 = BLT MOD FOR START
3=3= BRN MZ6
3=GW MZ01 LDN 6 0 [SET BLT MOD ZERO
3?2G BRN MZ6
3?G6 MZ1 LDN 3 GSBS [WB=GSBS
3?^Q SBN 5 1 [DECREMENT BL. MOD
3#FB MZ2 STO 3 AWOLBL(2)
3#^2 BXE 3 ACA3(2),MZ3 [J IF WB EQUAL TO
3*DL BXL 3 ACA3(2),MZ3 [OR LESS THAN C
3*Y= LDX 3 ACA3(2) [SET WB=C
3BCW LDEX 0 AFADD(2) [START WD. IN BLOCK
3BXG LDN 1 0 [BLOCKLET MOD. FOR START OF TRANSFER
3CC6 SRL 01 7 [X0 = BLT MOD
3CWQ LDX 6 0 [KEEP IN X6
3DBB BNZ 1 MZ6 [J IF DOES NOT START ON BLT. BDY.
3DW2 BRN MZ4
3F*L MZ3
3FT= LDN 6 0 [SET BLT MOD ZERO
3G#W MZ4
3GSG STO 3 AWB(2)
3H#6 CALL 0 ZECHBL
3HRQ BRN MZ10
3J?B LDX 6 ASTADD(2)
3JR2 LDX 7 APETADDR(2)
3K=L BZE 4 MZ5
3KQ= LDX 4 AWB(2)
3L9W FILEAUTW ,BOBJ+FAIL,EX4,5,EX6,EX7
3LPG BRN MZ9
3M96 MZ5 LDX 4 AWB(2)
3MNQ ... FILEAUTR ,FAIL+BOBJ,EX4,5,EX6,EX7
3N8B LDN 4 0
3NN2 BRN MZ9
3P7L MZ6
3PM= STO 3 AWB(2) [KEEP WB
3Q6W CALL 0 ZECHBL
3QLG BRN MZ10
3R66 SMO FX2
3RKQ LDX 3 AWOLBL
3S5B SLL 6 7
3SK2 SBX 3 6
3T4L LDX 6 3 [LENGTH OF TRANSFER BEFORE ROUNDING-U
3TJ= BZE 4 MZ7
3W3W LDN 0 #177
3WHG ANDX 0 3
3X36 BZE 0 MZ7
3XGQ ERX 3 0
3Y2B ADN 3 #200
3YG2 MZ7
3Y^L LDX 7 3
3^F= ... FILEREAD ,FAIL+BUSE,EX7,5,,,NOCHECK
3^YW LDEX 4 ACA1(2)
42DG SBX 6 AWB(2)
42Y6 LDX 3 APETADDR(2)
43CQ LDX 1 ASTADD(2)
43XB MHUNTW 2,BSTB,BREAD
44C2 ADX 2 6
44WL ADN 2 A1
45B= SMO FX2
45TW LDX 6 AWB
46*G BZE 4 MZ8
46T6 #SKI G4
47#Q OUTMOVE 3,1,2,6
47SB #SKI G3
48#2 FOUTMOVE 3,1,2,6,HLOCK2
48RL ... FILEAUTW ,FAIL,EX7,5,,,NOCHECK
49?= BRN MZ9
49QW MZ8 LDX 0 1
4==G LDX 1 2
4=Q6 LDX 2 0
4?9Q #SKI G4
4?PB INMOVE 3,2,1,6
4#92 #SKI G3
4#NL FINMOVE 3,2,1,6,HLOCK2
4*8= MFREEW BSTB,BREAD
4*MW MZ9
4B7G LDX 6 ACA3(2)
4BM6 SBX 6 AWB(2)
4C6Q BZE 6 MZ10
4CLB STO 6 ACA3(2) [REDUCE COUNT
4D62 ADX 6 AFADD(2)
4DKL BRN MZ0
4F5= MZ10
4FJW BACKWAIT
4G4G LDN 4 0
4GJ6 AUTFIN 4
4H3Q BRN K1DROBJ
4HHB TCLOS ACROSS DRSTART,2
4J32 RVCA
4JGL LDN 3 FYNOCA
4K2= XILL
4KFW LDX 1 FX1
4K^G TOPCA1 PLINK1(1)
4LF6 ACROSS OLPODD,4
4LYQ WC
4MDB LDN 3 FYCOUNT
4MY2 BRN XILL
4NCL RVB
4NX= LDN 3 FYNOBUF
4PBW BRN XILL
4PWG WF
4QB6 LDN 3 FYFILEAD
4QTQ BRN XILL
4R*B NWRIT
4RT2 LDN 3 FYNOWRITE
4S#L BRN XILL
4SS= # LEAVES X1=BL/BLT NO,X2->FCB IF EXIT +1,OTHERWISE X2->FCB ONLY
4T?W # EXPECTS X2=FX2,X5=BL MOD,X6=BLT MOD
4TRG ZECHBL
4W?6 SBX 0 FX1
4WQQ STO 0 ADDBS(2) [PRESERVE LINK
4X=B LDX 0 ACA4(2)
4XQ2 ADX 0 ACA3(2)
4Y9L SBX 0 AWB(2)
4YP= STO 0 ASTADD(2)
4^8W TOPFCB2 2
4^NG ADN 5 FBLKS
5286 LDX 0 5
52MQ SBN 0 A1
537B BXL 0 FUSEBL(2),ZEC2
53M2 BZE 4 ZEC5 [J IF READ
546L ADN 0 10
54L= LDX 1 FSIZE(2) [PERMITTED SIZE
555W ADN 1 FBLKS-A1
55KG BXGE 1 0,ZEC1 [J IF CAN GET THIS NO OF BLOCKS
5656 LDX 0 1 [OTHERWISE CUT DOWN OUR REQUEST
56JQ ZEC1
574B LDX 3 0
57J2 LDX 4 BSPRE(2)
583L LDCT 0 #300
58H= ORS 0 COMM(2) [SET FILE ALTERED BITS
592W LDX 0 FBLMOD(2)
59GG STO 3 FBLMOD(2) [SET NEW REC HEAD
5=26 SBX 3 0 [NO. OF NEW BLOCKS REQUIRED
5=FQ SLL 3 2
5=^B ORX 6 3
5?F2 LDX 3 2
5?YL ADN 0 A1
5#D= SMO FX2
5#XW STO 0 AWORK1
5*CG ALTLEN 3,FBLMOD(3)
5*X6 LDX 3 6
5BBQ SRL 3 2
5BWB ANDN 6 3
5CB2 ADN 3 2
5CTL SETUPCORE 3,2,BSTB,EMPTYB
5D*= STO 3 A1(2)
5DSW XGET
5F#G STO 4 A1+1(2)
5FS6 GETBAX [GET BS BLOCKS
5G?Q TOPFCB2 2
5GRB BXE 4 BSPRE(2),XOK
5H?2 LDX 4 BSPRE(2)
5HQL FREEBAX
5J== MHUNTW 2,BSTB,EMPTYB
5JPW BRN XGET
5K9G XOK
5KP6 SBN 3 2
5L8Q LDX 1 FX2
5LNB ADX 2 AWORK1(1)
5M82 SBS 2 AWORK1(1)
5MML MHUNTW 1,BSTB,FULLB
5N7= ADN 1 A1+2
5NLW SMO 3
5P6G MOVE 1 0 [MOVE THEM INTO THE FCB
5PL6 SBN 1 A1+2
5Q5Q FREECORE 1
5QKB NGX 2 AWORK1(2) [X2 -> FCB
5R52 ADS 3 FUSEBL(2)
5RJL LDX 0 4 [BSPRE
5S4= LDN 4 1 [WRITE MARKER
5SHW BRN ZEC4
5T3G ZEC2
5TH6 BZE 4 ZEC3 [J IF READ
5W2Q LDCT 1 #100
5WGB ORS 1 COMM(2)
5X22 ZEC3
5XFL BXL 0 FBLMOD(2),ZEC4
5X^= BZE 4 ZEC5
5YDW ADN 0 1
5YYG STO 0 FBLMOD(2)
5^D6 LDCT 0 #300
5^XQ ORS 0 COMM(2)
62CB ZEC4
62X2 SRC 6 2
63BL ORX 5 6
63W= SLC 6 2
64*W LDX 2 FX2
64TG LDX 0 ADDBS(2)
65*6 ADX 0 FX1
65SQ EXIT 0 1
66#B ZEC5
66S2 SMO FX2
67?L LDX 0 ADDBS
67R= ADX 0 FX1
68=W EXIT 0 0
68QG [
69=6 MENDAREA AOLPGAP,K99DROBJ
69PQ #END
^^^^ ...67575617000100000000