On Sat, 7 Nov 1998, Egor Voznessenski wrote:
> Hi!
>
> Let me join this discussion
>
> I _DO_ have complete, working DOS1 DISKROM source code, I even
> did huge modifications to it to make it more suitable for HDD
> interfaceing (eg FAT is not held in memory but is loaded from
> disk when necessary). I even located and corrected a bug of
> the original code (it is probably present in ALL diskroms
> out there, but luckily it needs a very special configuration
> to show up)
Ooohhhh! You have the DISKROM source code!!!!! Could you please send a
copy to me through e-mail? With this source code, can I build a faster (ou
more optimized) version of the DISKROM?
> Technicaly, adding FAT16 to both DOS1 or DOS2 kernels is not hard.
> You have to modify 3 routines:
>
> - FAT element getting
> - FAT element putting - add 16 bit FAT processing to them
> - Cluster Chain processing - must understand both FFx and FFFx special
> values for respectively FAT12 and FAT 16.
>
> Oh yes, and you must of course add FAT16 file system detection routine
> :-)
That's what I had thought!
> Greater than 32 Mb partitions are a different story.
> Modification of kernel for them is not very dificult - you have to
> modify
> only multiplication routine in cluster-to-sector translation module.
> But we don't have any worked-out standards of how to pass this sector
> number to disk I/O routine!
Yes, I think that for 32Mb partitions, the cluster size is equal to the
sector size. So, these calculations routines should be completely
rewritten.
> I have an idea about this and I'm testing it now. It seems to work well
> and is pretty compatible with the "old way". It works as follows:
> - when sector number is less than 0xFFFF, we just work the old way.
> If sector number is 0xFFFF, we forget it and use 32-bit sector number,
> which is stored somewhere in the BIOS work area. The only thing to be
> determined and standartized is the location address :-)
Perhaps you should work only with 32 bits calculations, because the test
for number lower thant FFFFh turns the calculation speed variable, which
is not desired. Well, this is a detail, but the DISKROM size is limited!
Greetings from Brazil!
--------------------------------------------------------------
Marco Antonio Simon Dal Poz http://www.lsi.usp.br/~mdalpoz
[EMAIL PROTECTED] "The measure of success is the knowledge"
/"\
\ /� CAMPANHA DA FITA ASCII - CONTRA MAIL HTML
X�� ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
/ \
****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****