Did a little test and found a bug in ZipMaster (predating 1.60p) in the function returning the disk size (only affects large disks on win98/95 - I thought it should have only been win95) procedure TZipMaster.DiskFreeAndSize(Action: Integer); // RCV150199 ... if GetDiskFreeSpaceEx(pChar(FDrive), LDiskFree, LSizeOfDisk, nil) then begin LDiskFree := -1; LSizeOfDisk := -1; end; .. should be if NOT GetDiskFreeSpaceEx(pChar(FDrive), LDiskFree, LSizeOfDisk, nil) then begin LDiskFree := -1; LSizeOfDisk := -1; end; unfortunately cd roms are not big enough for this to effect! I really must question the accuracy of some calculations for spanning as they don't seem to take into account that diskspace is allocated in blocks (I found InCD allocated 16Kbyte blocks). I suspect somehow something is trying to use 1 too many, but run out of time to check what). I want to make a few large files (535M and some a bit smaller) to see what will fit. (Don't like InCd - it formats a CDRW disk thats inserted!) Russell Peters http://www.users.bigpond.com/russellpeters/delphizip.html ----- Original Message ----- From: "Alistair George" <bigal@xxxxxxxxxx> To: "Russell Peters" <delphizip@xxxxxxxxxxxxx> Sent: Monday, December 02, 2002 10:21 AM Subject: [delphizip] Re: Preliminary version of TZipBuilder 1.71 > > Hello Russell, > > As I thought, the change I made only suited disk#1. I am not so happy with the > way I have done this (it is like a band-aid) but here is a fix which will work > for all disks: > // Set the maximum number of bytes that can be written to this disk(file). > // if MaxVolumeSize > 0 then > if MaxVolumeSize < FFreeOnDisk then > FFreeOnDisk := MaxVolumeSize > else FFreeOnDisk:=round(FFreeOnDisk*0.98); > // Reserve space on/in the first disk(file). > if FDiskNr = 0 then > if KeepFreeOnDisk1>0 then FFreeOnDisk := FFreeOnDisk - KeepFreeOnDisk1; // RCV150199 > -- > Regards, > Alistair+ > > >