Hi Marcos, Bernd,
>> I'm now using the 32-bit 2040 kernel, because none of these
>> errors has ever appeared under the previous 32-bit kernels...
> Thanks for reporting the issues you're experiencing with the FAT16
> kernels, multiple versions. Do you have a way of verifying...
> FreeDOS has no 32bit kernels, there's a FreeDOS32 project somewhere but
> that hasn't gotten very far yet. The 16 and 32 for FreeDOS kernels
> purely indicate what they support:
> * either FAT12 and FAT16 filesystems
> * or FAT12 and FAT16, but also FAT32 filesystems
Actually there are at least FOUR types of kernel that you
can compile with FreeDOS, so to avoid some misunderstandings:
- the kernel supports different types of FAT, but you can
omit FAT32 support to get a smaller kernel. All kernels
support FAT12 and FAT16, however.
- the kernel can be compiled for 386 or newer CPU, which
makes it a bit smaller and faster. Classic kernels can
run even on 8086, if you can still find a PC-XT or so.
So the good question is of course: Which of the kernels
are giving you filesystem troubles on which of the FAT
types? You can test FAT12 on a floppy, for the others
you should use a harddisk (USB stick often possible but
likely to be slow and/or might need drivers). You can
also test everything in a virtual PC simulating disks.
Of course if your problem only affects FAT32 partitions,
you will not even be able to access them using a "-16"
kernel because 16 in the kernel name means FAT32 support
not included... If your problem only affects FAT16 and/or
FAT12 partitions, but only with kernels which do support
FAT32 then it is likely that the FAT32 module interferes
with FAT12/FAT16 handling or detection... Interestingly,
kernel 2040 claims to FIX a bug of that sort which seems
to affect 2039 but as far as I understand not 2038? :-)
If your problem only affects "386" kernels, then maybe
at some point 32 bit registers are not preserved nicely
while calling some driver, for example. A kernel which
only does 16 bit calculations would not be hurt by that.
Note that only the calculations are 32 bit: In FreeDOS32,
even the pointers are (not 16+16 but really 32) while in
normal FreeDOS, the kernel will only use the first 1.1 MB
of your memory. In BOTH versions, applications can use so
called DOS Extenders to use 32 bit pointers to application
data. Good examples are all applications compiled by DJGPP
(GNU C/C++ for DOS), freebasic or freepascal and many old
games which use DOS4GW or similar... The latter should be
replaced (drop-in) by DOS32A on modern machines, you can
just rename the exe and copy one over the other for that.
DOS applications with 32 bit pointers can use up to 3 GB
of RAM for sure, sometimes closer to 3 GB and sometimes
closer to 4 GB depending on how much PCIe or PCI or AGP
graphics card RAM you have and how much the BIOS uses in
ACPI and similar ways. As DOS itself only uses the first
1.1 MB, you can have almost all your RAM for your apps :-)
> Latest FreeDOS CHKDSK is 0.92
> ( http://users.telenet.be/imre/FreeDOS/ckdsk092.zip ).
You can also compare DOSFSCK (dosdosfsck-2.11c.zip) which
you run simply as "dosfsck -v c:" for a verbose check. It
also has options for repair, surface scan and more. One
very interesting setting is "-r -v -V" which will ask you
how to repair things, then SIMULATE the repair and then
ask you whether you want changes to be actually written
to disk, after checking the simulated filesystem first.
AppSumo Presents a FREE Video for the SourceForge Community by Eric
Ries, the creator of the Lean Startup Methodology on "Lean Startup
Secrets Revealed." This video shows you how to validate your ideas,
optimize your ideas and identify your business strategy.
Freedos-kernel mailing list