[Freedos-kernel] Use of DJGPP under FreeDOS

2007-06-03 Thread Andris Pavenis
Some time ago I submitted am error report for DOSEMU about
problems running DJGPP port of GNU SED from configure scripts

http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447

and also tracker for FreeDOS. It took me some time to build
working FreeDOS kernel from CVS sources under DosEMU-1.4.0.

The problem when GNU SED writes output file up to 2GB (when DOSEMU quits)
now seems to be fixed.

There is however another problems.

touch.exe (from DJGPP fileutils) fails with an error message:

touch: setting times of `foo': Input or output error (EIO)

I don't however know whether it is a problem of FreeDOS kernel
or one of it's interaction with DOSEMU-1.4.0.

Andris


-
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Use of DJGPP under FreeDOS

2007-06-03 Thread Eric Auer

Hi Andris,

I think Bart Oldeman recently fixed the GNU SED problem...

 Some time ago I submitted am error report for DOSEMU about
 problems running DJGPP port of GNU SED from configure scripts
 http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447

 and also tracker for FreeDOS. It took me some time to build
 working FreeDOS kernel from CVS sources under DosEMU-1.4.0.

Do you want to say that the CVS sources have a bug in the build
scripts and you had to repair them first? Please explain.

 The problem when GNU SED writes output file up to 2GB
 (when DOSEMU quits) now seems to be fixed.

I assume this is due to the fix by Bart :-). So does the old kernel
www.coli.uni-saarland.de/~eric/stuff/soft/by-others/kernel2036-binary.zip
have the SED problem and the CVS one fixes it? Please compare.

 touch.exe (from DJGPP fileutils) fails with an error message:
 touch: setting times of `foo': Input or output error (EIO)

Please compare two cases: A Linux directory simulating a drive
in DOSEMU and a diskimage simulating a drive in DOSEMU. There
might also be a long file name problem, try $_lfn_support=(0)
in your DOSEMU configuration file, and try touch FOO instead
of touch foo... :-). Thanks!

Eric

-
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Use of DJGPP under FreeDOS

2007-06-03 Thread Andris Pavenis
Eric Auer wrote:
 Hi Andris,
 
 I think Bart Oldeman recently fixed the GNU SED problem...
 
 Some time ago I submitted am error report for DOSEMU about
 problems running DJGPP port of GNU SED from configure scripts
 http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447
 
 and also tracker for FreeDOS. It took me some time to build
 working FreeDOS kernel from CVS sources under DosEMU-1.4.0.
 
 Do you want to say that the CVS sources have a bug in the build
 scripts and you had to repair them first? Please explain.

kernel/int2f.asm generates reference to _nlsInfo which remains 
unresolved. I had to rename it to NLSINFO there for linker to succeed.
2007/05/01 CVS version did not compiled out of box. So this problem
has appeared after that.

 
 The problem when GNU SED writes output file up to 2GB
 (when DOSEMU quits) now seems to be fixed.
 
 I assume this is due to the fix by Bart :-). So does the old kernel
 www.coli.uni-saarland.de/~eric/stuff/soft/by-others/kernel2036-binary.zip
 have the SED problem and the CVS one fixes it? Please compare.

Yes, it is fixed between May 1st and current CVS versions.

 
 touch.exe (from DJGPP fileutils) fails with an error message:
 touch: setting times of `foo': Input or output error (EIO)
 
 Please compare two cases: A Linux directory simulating a drive
 in DOSEMU and a diskimage simulating a drive in DOSEMU. There
 might also be a long file name problem, try $_lfn_support=(0)
 in your DOSEMU configuration file, and try touch FOO instead
 of touch foo... :-). Thanks!

Without LFN there is not such problem. I am however I myself am
interested only on system which support LFN.

'touch FOO' fails in exactly the same way. As far as debugging
showed it is DJGPP's utime() (or more exactly DOS Fn 0x5705, which
fails).

I'm going to test under VMWare Server-1.0.2. It is perhaps more clean
environment rather than DOSEMU in case when Linux directory is used for 
simulating drive. I'm not going however to install FreeDOS in real 
partition on HDD.

Andris




-
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Use of DJGPP under FreeDOS

2007-06-03 Thread Andris Pavenis
Andris Pavenis wrote:
 Eric Auer wrote:
 Hi Andris,

 I think Bart Oldeman recently fixed the GNU SED problem...

 Some time ago I submitted am error report for DOSEMU about
 problems running DJGPP port of GNU SED from configure scripts
 http://sourceforge.net/tracker/index.php?func=detailaid=1429741group_id=49784atid=457447
 and also tracker for FreeDOS. It took me some time to build
 working FreeDOS kernel from CVS sources under DosEMU-1.4.0.
 Do you want to say that the CVS sources have a bug in the build
 scripts and you had to repair them first? Please explain.
 
 kernel/int2f.asm generates reference to _nlsInfo which remains 
 unresolved. I had to rename it to NLSINFO there for linker to succeed.
 2007/05/01 CVS version did not compiled out of box. So this problem

Sorry, I though 'did compile out of box' ...

 has appeared after that.
 

-
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Use of DJGPP under FreeDOS

2007-06-03 Thread Bart Oldeman

On 6/3/07, Andris Pavenis [EMAIL PROTECTED] wrote:

kernel/int2f.asm generates reference to _nlsInfo which remains
unresolved. I had to rename it to NLSINFO there for linker to succeed.
2007/05/01 CVS version did not compiled out of box. So this problem
has appeared after that.


This problem was fixed in SVN last weekend, not in CVS anymore.
It only happens with Borland compilers though, not with Open Watcom,
which is why it was there unnoticed.


Without LFN there is not such problem. I am however I myself am
interested only on system which support LFN.

'touch FOO' fails in exactly the same way. As far as debugging
showed it is DJGPP's utime() (or more exactly DOS Fn 0x5705, which
fails).


Yes exactly, it is DOSEMU not implementing 0x5705 (and al=4,6,7). So
last time you reported the GNU sed bug at the wrong place, and now
this bug again :)

Anyway, I attached a quick  dirty DOSEMU patch (probably applies to
all fairly recent sources incl 1.4.0) that works around it. It does
not actually modify the access time (that is more work, as DOSEMU will
need to get code to associate the DOS handle with an SFT, and then
look up an index into a file descriptor array in that SFT if DOSEMU
owns it; I'll do that later) -- it just pretends the call succeeds.

Bart
Index: src/dosext/mfs/lfn.c
===
--- src/dosext/mfs/lfn.c	(revision 1815)
+++ src/dosext/mfs/lfn.c	(working copy)
@@ -803,6 +803,18 @@
 	
 	d_printf(LFN: doing LFN!, AX=%x DL=%x\n, _AX, _DL);
 	NOCARRY;
+
+	if (_AH == 0x57) {
+		switch (_AL) {
+		case 0x04:
+		case 0x05:
+		case 0x06:
+		case 0x07:
+			return 1;
+		}
+		return 0;
+	}
+	/* else _AH == 0x71 */
 	switch (_AL) {
 	case 0x0D: /* reset drive, nothing to do */
 		break;
Index: src/base/async/int.c
===
--- src/base/async/int.c	(revision 1819)
+++ src/base/async/int.c	(working copy)
@@ -1143,7 +1143,7 @@
 
 static int int21lfnhook(void)
 {
-  if (HI(ax) != 0x71 || !mfs_lfn())
+  if (!(HI(ax) == 0x71 || HI(ax) == 0x57) || !mfs_lfn())
 fake_int_to(int21seg, int21off);
   return 1;
 }
-
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel