[Freedos-kernel] SDA and SHSUFDRV
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
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