Before starting:

>4- Club Mesxes, they only sold some new SD Mesxes magazine numbers and
>MSX-2 Technical Handbook, they presented a FAT16 for MegaSCSI.
>Members: Nestor Soriano.

Rafa... don't exagerate please... I did not present anything. I just said
"I started to develop a FAT16 driver" to some people. Just this! 8-)

Yep, tired of searching technical info, and since nobody does anything (eh
Pazos! Esto no va por ti; yo ya me entiendo) I started my FAT16 driver.
Unlike Pazos&Okei one, it is not a patch for diskROM, but a completely
self-made driver which will be placed into a RAM segment.

I'm making it for MegaSCSI, but the controller dependant routines (just
three routines) are clearly separated from the rest of the code, so anybody
can modify it for any other controller. I'll put the sources and the betas
of the driver in my home page as soon as I have a version which does
anything... (^^!) And yep, of course the souce's comments are in english! ;-)

I almost finished the "basic engine" but I have problems with the error
handling part, so I ask for help. Here is the problem:

[HI-TECH MODE ON] X-)

Imagine that a function call is being executed. Page 2 contins the DOS data
segment. Page 0 should contain the DOS code segment, but it contains my
driver instead. ;-)

Imagine that I do a CALL #4010 in the diskROM (sector read), and an error
code is returned. Then I check if slot 0 was connected in pages 0 and 1
before the function call, in this case I restore user segment in page 2 and
jump to #406F in BASIC slot (error generator).

Else, I check if a user disk error handling routine was defined, and in
this case I call it (I did not implement this part yet). Else, I execute
the system error routine who shows the "abort, retry" message and waits for
a key (the address of this routine is placed in #F323 by double indirection).

If "r" was selected, call to #4010 is repeated. Else... here starts the
problem.

If "abort" is selected, the whole program must be terminated. And I don't
know how to do it correctly. I tried the following method:

- Restore TPA segments in pages 1 and 2
- Load C=#62 (program terminate) and B=Error code
- Jump to #0005 in TPA segment of page 3, via inter-segment call

It works and COMMAND.COM takes control, but next execution of a program
causes the computer to hang.

[HI-TECH MODE OFF]

SOS... help... maidai... dios mio, esto es un infierno... X-) I just need
to solve this problem for having a "releasable" version of the driver (I
hope!!). Also, any suggestion & beta-testing offers will be welcome of course!

Thanxs in advance & hasta incluso!


-----------------------------------------------------------------------------
        Konami Man - AKA Nestor Soriano (^ ^)v - Itsumo MSX user

        http://www.geocities.com/SiliconValley/Bay/9797/msx.htm
             [EMAIL PROTECTED]       ICQ#: 18281450
             Please don't send me messages with HTML code

       "New Pentium 3400000000. Obsolete in 2 months. Guaranteed!"
----------------------------------------------------------------------------
-

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