[Freedos-kernel] SDA and SHSUFDRV

2006-08-25 Thread Jason Hood
I received a bug report about SHSUFDRV not working in FreeDOS, but
it worked fine in MS-DOS; RDRV also worked fine.  After failing to
replicate the problem with the versions of FreeDOS I had, I finally
got the latest boot CDs (beta9-sr2  1.0-testing).  These did indeed
fail, so I was able to offer that user a fixed FDRV.

The problem itself is due to the SDA.  It seems sometime between 2035a
and 2036 the (temporary) DTA has moved into the SDA.  This means that
when FDRV reads a sector and then restores the swap data, the sector it
just read gets overwritten with whatever was in the swap.  The fix
simply made the SDA size a fixed 0x7c0 bytes, thus preventing the
overwrite.  To provide a more desirable solution, what should I do?

1) The SDA is unlikely to change, just leave it fixed at 0x7c0.
2) Buffer a single sector, write it back after the swap.
3) Provide a better size to the SDA function (215D06).
4) Move the DTA back out of the SDA.
5) Make use of the internal seek/read calls (2F1227/8).

Of course, I would prefer 3 or 4, since that involves no effort
on my part. :)  1 requires separate code for other DOSes (or I could
just make it a fixed 0x7da, that MS-DOS 7.10 returns).  2 requires an
extra 512 bytes for the buffer.  5 would probably be best (no swap
required at all), but unfortunately ROMDOS does not support them, nor
is there a write function (hence using the SDA in the first place).

Jason.

PS: I am still not subscribed, please CC me.
PPS: I probably won't be back online until next week.

-- 




 
On Yahoo!7 
360°: Your own space to share what you want with who you want! 
http://www.yahoo7.com.au/360

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] SDA and SHSUFDRV

2006-08-25 Thread Arkady V.Belousov
Hi!

23-Авг-2006 16:11 [EMAIL PROTECTED] (Jason Hood) wrote to
freedos-kernel@lists.sourceforge.net:

JH I received a bug report about SHSUFDRV not working in FreeDOS, but
JH it worked fine in MS-DOS; RDRV also worked fine.  After failing to
JH replicate the problem with the versions of FreeDOS I had, I finally
JH got the latest boot CDs (beta9-sr2  1.0-testing).  These did indeed
JH fail, so I was able to offer that user a fixed FDRV.
JH The problem itself is due to the SDA.  It seems sometime between 2035a
JH and 2036 the (temporary) DTA has moved into the SDA.  This means that
JH when FDRV reads a sector and then restores the swap data, the sector it
JH just read gets overwritten with whatever was in the swap.  The fix
JH simply made the SDA size a fixed 0x7c0 bytes, thus preventing the
JH overwrite.  To provide a more desirable solution, what should I do?

 Not sure, if I understand your problem, but what prevents you from
setting your own address of DTA (INT 21/1A)?

JH 1) The SDA is unlikely to change, just leave it fixed at 0x7c0.
JH 2) Buffer a single sector, write it back after the swap.
JH 3) Provide a better size to the SDA function (215D06).
JH 4) Move the DTA back out of the SDA.
JH 5) Make use of the internal seek/read calls (2F1227/8).
JH Of course, I would prefer 3 or 4, since that involves no effort
JH on my part. :)  1 requires separate code for other DOSes (or I could
JH just make it a fixed 0x7da, that MS-DOS 7.10 returns).  2 requires an
JH extra 512 bytes for the buffer.  5 would probably be best (no swap
JH required at all), but unfortunately ROMDOS does not support them, nor
JH is there a write function (hence using the SDA in the first place).

-
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel