I belive that what Nathan describes below is very close to what is happening!

I made many more tests:
- Kernel 2035a 15-jul-04: apparently nothing has changed much

- after some time the driver can never more be acessed (this happend after 3rd disk change)

- if after the error, if I use the "a" option for abort, there is an "out of memory error" before returning to command prompt.

- I made many tests comparing how long it takes to get the message, I removed the floppy sometimes to force an error.
- made this same test with MS-DOS 7.10 for comparisons
- If the motor has stopped, it waits a reasonable amout of time before showing the error, if the motor is still running (faster retry) it is faster. Delays are comparable between FD and M$.
- before the error FD makes a little more noise (head movements) than M$, probably a longer head movement or twice the same movement.


A very long time ago, I made floppy access functions (CP/M 2.2) and there is another delay that could be important here: Head stabilising time: after the head moves, it can vibrate a bit so a new retry without head movement can be a good thing.

Please note that I am NOT having data erros, I am having NOT READY errors!

Can someone send me a debug enabled KERNEL.SYS please? I believe I can dig out some information with it.

Alain


Nathan Crawford escreveu:

I haven't looked at the kernel driver code yet, but here is one possible cause:
Back when I was writing floppy drivers for my own OS, I had a problem with a particular floppy not booting on one machine. It would work on the others, but not this particular machine.
To fix it, I changed the driver so that the disk operation was checked for success, and if it failed, it first reset the drive with int 13 ax=0000, and then retried the read. It would do this three times, or until the operation succeeded.
On some machines, the operation _MUST_ be immediately retried; the first operation _always_ fails, and only succeeds on the second or third try. Some drives simply can't spin up to speed soon enough. If your driver always makes three tries, the number of times an IO operation actually fails is significantly reduced, and you don't have to prompt the user.
-Nathan


------------------------------------------------------------------------
Do you Yahoo!?
Yahoo! Mail <http://us.rd.yahoo.com/mail_us/taglines/50x/*http://promotions.yahoo.com/new_mail/static/efficiency.html> - 50x more storage than other providers!


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
_______________________________________________
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel

Reply via email to