Does anybody know what "sector per cluster" gives the best performance in a QXL.WIN File? respectively what if at all the user can control in this aspect?
Why I'm asking: I formated QXL.WIN in different sizes (1,32,40,60,120,250,500 MB) and found out that doing this with QPC/QXL native gives different "sector per cluster" results that using wxqt2.exe (QXLtool.exe). Any idea what's right? rsp. what's better? Windows NT's file-system NTFS let you choose the cluster-size 512,1024,2048 or 4096. Can we also freely choose the cluster-size? Viele Gr�sse aus der Schweiz / Best regards...Urs K�nig http://mypage.bluewin.ch/QLvsJaguar/ ----- Original Message ----- From: "Wolfgang Lenerz" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Sunday, November 18, 2001 4:53 PM Subject: Re: [ql-users] QXL.WIN - format details > On 18 Nov 2001, at 12:05, Christopher Cave wrote: > > > Help please. I have just had parts of my QXL.WIN file > > overwritten rather mysteriously. Fortunately, I have been > > backing up my current project ever hour or so but I would like > > to recover what I can using Wined. I used to have a > > description of the QXL.WIN structure but it disappeared in an > > earlier disaster. Can anyone please tell me where to find this > > info? > > What exactly do you need? The first sector contains afisk header > and then the FAT. The following might help: > > Main header of device > +00 long "QLWA" > +04 word lenth device name > +06 20 bytes ASCII device name > +1A word 0000 ? > +1C word random number > +1E word access counter > +20 word 0000 ? > +22 word number of sectors (512 bytes) in cluster > (4 = 2048 bytes) > +24 3 x word 0000 0000 0000 ? > +2A word total clusters (1) > +2C word free clusters (1) > +2E word size of FAT? > +30 word 0001 ? > +32 word pointer to first free cluster (2) > +34 word pointer to main directory (2) > +36 long lenth of main directory +header > +3A 3 x word 0000 0000 0000 ? > +40 words linked cluster pointer map (3) > > (1) virtual values if device > 33 MB > > (2) if cluster = 2048 bytes (h800) then pointer x h800 = address > > (3) Linked cluster pointer map: > > +0040 word pointer to next cluster or 0000 if end > > +0042 word pointer to next cluster or 0000 if end > > ... > > +xxxx word same until all clusters are pointed > > Example reading main directory (win about 20M):></B></P> > > +0022: 0004 ----> cluster = h800 > > +0034: 001A ----> x800 = address hD000 = DIR > > now look at (001A x 2 + h40 = 0074) if 0000 then main > directory has > no more clusters else for exemple: > > +0074: 1939 ---->; x800 = address hC9C800 more entries > > now look at (1939 x 2 + h40 = 32B2) > > +32B2: 2605 ---->; x800 = adress h01302800 still entries > > now look at (2605 x 2 + h40 = 4C4A) > > +4C4A: 0000 no more cluster: end of main directory > > > > Structure of directories: > DIR+00 64 bytes space for header (not used) > DIR+40+00 long lenth of file (+header) > DIR+40+04 word filetype (0=data, 1=exe-file, > h00FF=subdirectory) > DIR+40+06 word generally 0000 sometimes 0318 > DIR+40+08 word dataspace if exe-file else 0000 > DIR+40+0A word generally 0000 sometimes 0318 if exe-file ? > DIR+40+0C word 0000 ? > DIR+40+0E word file name lenth > DIR+40+10 36 bytes ASCII file name > DIR+40+34 long date or 0000 0000 if subdir > DIR+40+38 word overwrite counter ? > DIR+40+3A word pointer to first file cluster (4) > DIR+40+3C 2 x word 0000 0000 ? > > > (4) Structure > of file: > > FILE+00 64 (h40) bytes of space for not used header (only in the > first > cluster of file) > FILE+40 h7C0 bytes of data > then search next adress through > clusterpointer: see example > > adress+00 h800 bytes of data > until pointer = 0000 > > > > number of sectors = number of clusters * nbr_of_sects in clusters > > $8C00 > > space need for FAT > = 2 bytes per cluster = 71680 bytes = 140 ($8c) sectors > + $40 for header = 141 ($8d) sectors > > > how to find a cluster in absolute positioning: > > > cluster number * 512* nbr_of_sects_in_cluster > > Wolfgang > ----------------- > www.wlenerz.com
