Hi,
there's a problem with the recent FCB fix -- I was a little suspect
seeing the change.
After testing with the old GEM, it seems the problem is in FCBOpen: it
initializes too much, see also
http://www.drdos.com/dosdoc/sysprog/chap4.htm
After opening GEM does something like "mov cx,es:[007d]" for the
random i/o call and that value is lost (it was 3) from FCBOpen's init.
see the fix below
Bart
===================================================================
--- kernel/fcbfns.c (revision 1379)
+++ kernel/fcbfns.c (working copy)
@@ -253,7 +253,7 @@
lpFcb = ExtFcbToFcb(lpXfcb);
recsiz = lpFcb->fcb_recsiz;
- bigsize = (ULONG)recsiz * (recno+1);
+ bigsize = (ULONG)recsiz * recno;
if (bigsize > 0xffff)
return FCB_ERR_SEGMENT_WRAP;
size = (unsigned)bigsize;
@@ -417,8 +417,6 @@
sftp->sft_mode |= O_FCB;
lpFcb->fcb_sftno = sft_idx;
- lpFcb->fcb_curec = 0;
- lpFcb->fcb_rndm = 0;
lpFcb->fcb_recsiz = 0; /* true for devices */
if (!(sftp->sft_flags & SFT_FDEVICE)) /* check for a device */
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Freedos-kernel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel