>So you are actually doing 2 upgrades at once?
>1. 16bit sector numbers -> 24bit sector numbers
>   (allows partitions >32MB)
>2. FAT12 -> FAT16
>   (keeps cluster size reasonable when partitions go beyond 32MB)

Yes. It has no sense to do one of these upgrades without doing the other, I
think! ;-)

>SET the disk change flag? Why do you need to do that?

The behavior of my driver when a function call is made is the following:

- Check if the disk has been changed via CALL #4013.
- If not, read an internal table which contains the type of the drive. If
FAT16, process function call. Else (FAT12) do not process and let DOS to do
it.
- If yes, read boot sector in order to determine the type of drive. If
FAT16, build new DPB and process function call. Else, let DOS to do it.
Update the drive type table in both cases.

Well, suppose that disk was changed and it is FAT12 type. My driver must do
nothing and let DOS to execute funtion call. But what will do DOS at first?
To check if the disk was changed. But my driver did it already!! So DOS
will obtain a "disk not changed" status, even if the disk was changed, and
will not update the drive's work area. This is very dangerous...

How to solve it: if the disk was changed and it is FAT12, set again the
disk change flag, so next call to #4013 (check disk change), performed by
DOS, will return "disk was changed" status. I know how to do it but only on
MegaSCSI.

>Reading the flag is perfectly possible using diskROM, but you probably
>already knew that.

Yes but... setting??

>>I also don't know how sector buffers works,
>Sector buffers are a kind of cache. They are located in the 32K of memory
>that DOS2 claims.
[...]

Yeah, I know the general working procedures of sector buffers, but I don't
know all the exact parameter: I know where they are placed, and the meaning
of some bytes of the headers... but not all. And there is a flags byte
whose description I don't know...

And add other problem: sector buffer's header use only two bytes for sector
number!

So I think it is better if I use my own buffers, placed into another own
RAM segment. And I can ever add an option for customize number of sector
buffers, using more RAM segments if necessary.

>Disk buffers are invalidated whenever disk change status is "changed" or
>"unsure".

Thanx! I had not tough in this detail!! ;-)

But my "abort" routine continues crashing... someone, help!! (O! !O)


************ 15th MSX users meeting in Barcelona: May 1th, 1999 ************
----------------------------------------------------------------------------
          Konami Man - AKA Nestor Soriano (^ ^)v - Itsumo MSX user

          http://www.geocities.com/SiliconValley/Bay/9797/msx.htm
               [EMAIL PROTECTED]       ICQ#: 18281450

     Metal Gear for MSX - (C) Konami 1987  (Nothing new under the sun...)
----------------------------------------------------------------------------

****
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/)
****

Reply via email to