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

Reply via email to