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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1