2009/5/17 Christian Masloch <c...@bttr-software.de>:
> Just in case you're talking about the extended SFT: I'll use a
> FAT32-extended SFT (probably compatible to EDR-DOS's extensions for FAT32)
> even without FAT+. Somewhere *at least the beginning cluster* of the file
> has to be stored, and the MS-DOS SFT provides no space for the high word
> of a 32-bit cluster value. If programs assume the SFT size of MS-DOS these
> can be used with FAT16 kernels which don't extend the SFT. As mentioned
> previously, redirectors are not affected by larger SFTs since they get
> passed only pointers to the SFT by DOS.

Actually MSDOS 7.10 already uses the SFT in a different way, but
undocumented by RBIL,
for both FAT16 and FAT32:
0Bh    WORD    contains the high word of the relative cluster number
at offset 19h
2Bh    DWORD  contains the current cluster number
35h    DWORD  contains the starting cluster number
How this interacts with SHARE.EXE: I have no idea....
This was just obtained by writing a program that dumps the SFT after
opening a large file and reading 70000*4k into it on a FAT32 partition
with 4k clusters.

> Note also that the FAT+ specification provides a method to avoid access by
> low-level programs or operating systems which don't know FAT+ on FAT32
> filesystems by setting the version number to 0.1. DOS-C's FAT+ support
> could be set by default (if the build option for that support was enabled
> at all) to support/create large files only on drives with the version
> number set that way. Since DOS-C doesn't (yet) support FAT16 file systems
> larger than 4 GiB, FAT16+ is no option anyway.

I think FAT+ as is (and implemented by EDR-DOS) then is still much too
dangerous, because other OSes can still see it, so:
* a new partition type number for the MBR should be defined (much in
the same way as >32 MB FAT16, LBA etc) to avoid other (D)OSes from
seeing it automatically.
* normal DOS programs should not be able to open too large files. This
can be accomplished by extending int21/ah=6c, another bit in BH
(FreeDOS doesn't properly implement its bit 4 for files >= 2Gb, < 4Gb
even: it
opens without complaint).
The difference with VFAT, and the NT lcase bit is that those were much
more backwards compatible, i.e. no harmful data corruption when using
such partititions with earlier DOS versions.

Bart

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables 
unlimited royalty-free distribution of the report engine 
for externally facing server and web deployment. 
http://p.sf.net/sfu/businessobjects
_______________________________________________
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to