DROBJ864
(George Source)
Macros used: ACROSS, ALTLEN, AUTFIN, AUTSTART, BACKWAIT, BXE, BXGE, BXL, CHECKB, CHECKEXT, FILEAUTR, FILEAUTW, FILEREAD, FILETRAN, FINMOVE, FOUTMOVE, FREEBAX, FREECORE, GETBAX, INMOVE, LOCKCA, MENDAREA, MFREEW, MHUNTW, OUTMOVE, PAIR, PMODES, SEGENTRY, SETMODE, SETUPCORE, TOPCA1, TOPFCB2
- DROBJ864.txt
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