[Freedos-kernel] Re: [Freedos-cvs] kernel/kernel entry.asm,1.26,1.27 inthndlr.c,1.86,1.87 io.asm,1.16,1.17 nlssupt.asm,1.12,1.13

2004-05-30 Thread Arkady V.Belousov
Hi!

30--2004 19:31 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

 +++ io.asm30 May 2004 19:31:07 -  1.17
 +%include stacks.inc
 +++ nlssupt.asm   30 May 2004 19:31:07 -  1.13
 + %include stacks.inc

 Don't forget to fix rules in makefile.




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Re: [Freedos-devel] Re: [Freedos-cvs] kernel/hdr device.h,1.21,1.22

2004-05-30 Thread Arkady V.Belousov
Hi!

29--2004 12:30 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

  No, all right: r_catfun is a xreg.x and r_cat is a xreg.h. Mistake is
 in my comment: I was should say difference is that r_cat comes _after_
 r_fun to make consistent with CX.
BO No, it can't be. See Table 02597 in RBIL at int2f/ax=0802,
BO ---command codes 13h,19h---
BO which is what the patch implemented.

 Ok. When I receive latest sources, I review them.




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] [announce] kernel 2035 and bye

2004-05-30 Thread Bart Oldeman
Hi,

I've uploaded kernel 2035 to
http://sourceforge.net/project/showfiles.php?group_id=5109

important fixes:
Fix problems with USBASPI.SYS, DI1000DD.SYS
Fixed invalid opcode with debug  foo.txt, same with netware redirected
logins.
Don't move the EBDA by default. Use switches=/e:-1 if you want the
auto-sized movement (#1771)
Made int21/ah=25,35 reentrant. Solves problem with Intel PRO/1000
driver.
Fix dir corruption bug if you delete the first entry in the root
directory on FAT32.
Fix non-working F5/F8 for autoexec.bat (#1777)

With this I'm leaving FreeDOS for the next couple of months at least. I
may put up an update for MEM but that's it. There was a bit of noise on
the mailing list but the main reason is that I'm generally happy about
the kernel, all I wanted in the beginning is to get it to cooperate
nicely with DOSEMU. That's done and more. Squeezing even more bytes out
of the kernel and fixing even more bugs is certainly possible, but it's
time to leave that to someone else as my (volunteer) job is finished.

Thanks for your attention and help,
Bart



---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] [announce] kernel 2035 and bye

2004-05-30 Thread Aitor Santamaría Merino
Hi,
It's sad to hear that you say bye, but hopeful to read that you mention 
at least a break for two months, although I understand your reasons.
Could I ask you something before you go? Could you please review 
bugzilla and try, as far as you understand/know about it, leave the 
kernel bugs in a state that represents current kernel 2035? (i.e. close 
the bugs that have been fixed, for example). If you haven't already done 
this, of course.

Aitor
Bart Oldeman escribió:
Hi,
I've uploaded kernel 2035 to
http://sourceforge.net/project/showfiles.php?group_id=5109
important fixes:
Fix problems with USBASPI.SYS, DI1000DD.SYS
Fixed invalid opcode with debug  foo.txt, same with netware redirected
logins.
Don't move the EBDA by default. Use switches=/e:-1 if you want the
auto-sized movement (#1771)
Made int21/ah=25,35 reentrant. Solves problem with Intel PRO/1000
driver.
Fix dir corruption bug if you delete the first entry in the root
directory on FAT32.
Fix non-working F5/F8 for autoexec.bat (#1777)
With this I'm leaving FreeDOS for the next couple of months at least. I
may put up an update for MEM but that's it. There was a bit of noise on
the mailing list but the main reason is that I'm generally happy about
the kernel, all I wanted in the beginning is to get it to cooperate
nicely with DOSEMU. That's done and more. Squeezing even more bytes out
of the kernel and fixing even more bugs is certainly possible, but it's
time to leave that to someone else as my (volunteer) job is finished.
Thanks for your attention and help,
Bart
 


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] config.sys problems with 2.0.34 and 2.0.35

2004-05-30 Thread Patrick J. LoPresti
A while ago I reported a problem I had with FreeDOS kernel 2.0.34 and
PXELINUX+memdisk:

  http://www.mail-archive.com/[EMAIL PROTECTED]/msg00761.html

Well, I have some more information.

First, the problem only happens on certain machines.  Right now, I can
only reproduce it on a Dell Dimension 450.

Second, and more interestingly, the problem has changed with the
release of 2.0.35.  It still only happens on my Dimenstion 450.  But
instead of not reading config.sys at all, I receive an error whenever
config.sys processes a DEVICE= or DEVICEHIGH= line.  For instance:

  CONFIG.SYS error in line 4
  DEVICE=himem64.exe
^

...and so on, one for each DEVICE= or DEVICEHIGH= line.

I tried using DEVICE=A:\himem64.exe and the same thing happened.

Once I get to a DOS prompt, dir himem64.exe shows that file is
present.  But I suspect something about the way files are read during
processing of CONFIG.SYS is different than how they are read once I
get to the command prompt.

Again, this only happens on one machine.  So I know the problem is not
in my config.sys file, although I am appending it below anyway.

Since the behavor improved between 2.0.34 and 2.0.35, I am hoping this
will ring a bell with someone and make this easy to fix.  This is
blocking me from upgrading beyond 2.0.33.

As always, I am ready to do whatever testing you need.  Thanks!

 - Pat


== config.sys ==
LASTDRIVE=Z
DOS=HIGH,UMB

;; Pick exactly one of these XMS providers
DEVICE=himem64.exe
;DEVICE=A:\fdxxms.sys bios ps
;DEVICE=himem.sys /testmem:off

;; UMB provider
;DEVICE=umbpci.sys
DEVICE=emm386.exe NOEMS

;; MSCLIENT networking gadget
DEVICEHIGH=\net\ifshlp.sys

;; Required for installing XP under VMware.  Thanks to Scott Card for
;; figuring this out.
FILES=30


---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149alloc_id=8166op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] Re: [Freedos-cvs] kernel/docs history.txt,1.77,1.78

2004-05-30 Thread Arkady V.Belousov
Hi!

30--2004 20:56 [EMAIL PROTECTED] (Bart Oldeman) wrote to
[EMAIL PROTECTED]:

 +++ history.txt   30 May 2004 20:56:29 -  1.78
 + * inithma.c: moved fmemcmp's into a checkHMA function.

 ... into EnabledA20() function.

 + * inithma.c: HMAFree == 0xfff0 - bytesToAllocate
 +   is valid and may happen if the buffers occupy exactly all HMA
 +   space up to and including the last byte at :. Failing
 +   caused all buffers to go low ...

 * inithma.c: condition HMAFree=0xfff0-bytesToAllocate was wrong and
prevents to allocate HMA space up to and including byte at :ffef.
May cause to move all buffers low. Fixed.

Note: because 0xfff0 here is not a _size_, but a pointer (also as HMAFree is
a _pointer_), you _can't_ allocate all HMA space up to and including the
last byte at :, only up to, but not including :fff0.

 + * inthndlr.c: cleanups (merge common code into long_check and
 +   short_check). Made int21/3301,2e,54 consistent with MSDOS
 +   behaviour.

 Hm. I check MS-DOS 6.22. For INT21/3301/DL=2 I receive DL=0 (FreeDOS
incosistent), then INT21/3300 returns DL=0 (consistent). Same for DL=3. I
think, for full consistency DL change should be added into INT/3301:

  /* DosVars - get/set dos variables  */
case 0x33:
  switch (irp-AL)
  {
  /* Set Ctrl-C flag  */
case 0x01:
  break_ena = irp-DL  1;
+ /* fall through */

  /* Get Ctrl-C flag  */
case 0x00:
  irp-DL = break_ena;
  break;

(Here 0x00 and 0x01 swapped and `break' removed).




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Re: [Freedos-devel] Re: [Freedos-cvs] kernel/hdr device.h,1.21,1.22

2004-05-30 Thread Arkady V.Belousov
Hi!

30--2004 09:24 Arkady V.Belousov wrote to
[EMAIL PROTECTED]:

  No, all right: r_catfun is a xreg.x and r_cat is a xreg.h. Mistake is
 in my comment: I was should say difference is that r_cat comes _after_
 r_fun to make consistent with CX.
BO No, it can't be. See Table 02597 in RBIL at int2f/ax=0802,
BO ---command codes 13h,19h---
BO which is what the patch implemented.
AVB  Ok. When I receive latest sources, I review them.

 ...but my change consistent with previous source. For example: was
if ((rp-r_count  8) == 0x48), now if (rp-r_cat == 0x48). Ie. _was_
category value _after_ function value.

PS: r_cat and r_fun at first look was associated for me with kitten
and funny. :)




---
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149alloc_id66op=click
___
Freedos-kernel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


[Freedos-kernel] patch: inthndlr.c

2004-05-30 Thread Arkady V.Belousov
Hi!

- bugfix for INT21/3301: MS-DOS clears high buts of DL.

---BeginMessage---
diff -ruNp old/kernel/inthndlr.c new/kernel/inthndlr.c
--- old/kernel/inthndlr.c   2004-05-28 12:08:32.0 +
+++ new/kernel/inthndlr.c   2004-05-31 07:29:14.0 +
@@ -78,14 +78,14 @@ VOID ASMCFUNC int21_syscall(iregs FAR * 
 case 0x33:
   switch (irp-AL)
   {
-  /* Get Ctrl-C flag  */
-case 0x00:
-  irp-DL = break_ena;
-  break;
-
   /* Set Ctrl-C flag  */
 case 0x01:
   break_ena = irp-DL  1;
+  /* fall through */
+
+  /* Get Ctrl-C flag  */
+case 0x00:
+  irp-DL = break_ena;
   break;
 
 case 0x02: /* andrew schulman: get/set extended control break  */
@@ -1049,7 +1049,7 @@ dispatch:
   /* dta for this call is set on entry.  This */
   /* needs to be changed for new versions.*/
   rc = DosFindFirst(lr.CX, FP_DS_DX);
-  lr.AX = 0;
+  lr.AX = 0; /* ??? - avb */
   goto short_check;
 
   /* Dos Find Next*/
@@ -1057,7 +1057,7 @@ dispatch:
   /* dta for this call is set on entry.  This */
   /* needs to be changed for new versions.*/
   rc = DosFindNext();
-  lr.AX = 0;
+  lr.AX = 0; /* ??? - avb */
   goto short_check;
 /*
 case 0x50:  
---End Message---


[Freedos-kernel] patch: break.c

2004-05-30 Thread Arkady V.Belousov
Hi!

- removed extraneous variable assignment; code optimization.

---BeginMessage---
diff -ruNp old/kernel/break.c new/kernel/break.c
--- old/kernel/break.c  2004-04-14 08:40:36.0 +
+++ new/kernel/break.c  2004-04-24 11:55:44.0 +
@@ -53,13 +53,13 @@ unsigned char ctrl_break_pressed(void)
 
 unsigned char check_handle_break(struct dhdr FAR **pdev)
 {
-  unsigned char c = CTL_C;
-  if (!ctrl_break_pressed())
-c = (unsigned char)ndread(syscon);
-  if (c != CTL_C  *pdev != syscon)
-c = (unsigned char)ndread(pdev);
-  if (c == CTL_C)
+  unsigned char c;
+  if (ctrl_break_pressed() ||
+ (c = (unsigned char)ndread(syscon)) == CTL_C ||
+  *pdev != syscon  (c = (unsigned char)ndread(pdev))== CTL_C)
+  {
 handle_break(pdev, -1);
+  }
   return c;
 }
 
@@ -90,4 +90,3 @@ void handle_break(struct dhdr FAR **pdev
 
   spawn_int23();/* invoke user INT-23 and never come back */
 }
-
---End Message---


[Freedos-kernel] patch: dsk.c

2004-05-30 Thread Arkady V.Belousov
Hi!

- code optimization.

---BeginMessage---
diff -ruNp old/kernel/dsk.c new/kernel/dsk.c
--- old/kernel/dsk.c2004-05-29 02:51:30.0 +
+++ new/kernel/dsk.c2004-05-31 06:07:48.0 +
@@ -92,7 +92,7 @@ extern struct DynS ASM Dyn;
 /*TE - array access functions */
 ddt *getddt(int dev)
 {
-  return (((ddt *) Dyn.Buffer)[dev]);
+  return (ddt*)Dyn.Buffer + dev;
 }
 
 STATIC VOID tmark(ddt *pddt)
@@ -360,9 +360,7 @@ STATIC WORD blk_Media(rqptr rp, ddt * pd
 
 STATIC WORD getbpb(ddt * pddt)
 {
-  ULONG count;
   bpb *pbpbarray = pddt-ddt_bpb;
-  unsigned secs_per_cyl;
   WORD ret;
 
   /* pddt-ddt_descflags |= DF_NOACCESS; 
@@ -427,19 +425,20 @@ STATIC WORD getbpb(ddt * pddt)
   printf(BPB_NFSECT= %04x\n, pbpbarray-bpb_nfsect);
 #endif
 
-  count =
-  pbpbarray-bpb_nsize == 0 ?
-  pbpbarray-bpb_huge : pbpbarray-bpb_nsize;
-  secs_per_cyl = pbpbarray-bpb_nheads * pbpbarray-bpb_nsecs;
-
-  if (secs_per_cyl == 0)
   {
-tmark(pddt);
-return failure(E_FAILURE);
+unsigned secs_per_cyl = pbpbarray-bpb_nheads * pbpbarray-bpb_nsecs;
+
+if (secs_per_cyl == 0)
+{
+  tmark(pddt);
+  return failure(E_FAILURE);
+}
+/* this field is problematic for partitions  65535 cylinders,
+   in general  512 GiB. However: we are not using it ourselves. */
+pddt-ddt_ncyl = (UWORD)(((pbpbarray-bpb_nsize == 0 ?
+   pbpbarray-bpb_huge : pbpbarray-bpb_nsize)
+   - 1) / secs_per_cyl) + 1;
   }
-  /* this field is problematic for partitions  65535 cylinders,
- in general  512 GiB. However: we are not using it ourselves. */
-  pddt-ddt_ncyl = (UWORD)((count + (secs_per_cyl - 1)) / secs_per_cyl);
 
   tmark(pddt);
 
@@ -1064,15 +1063,8 @@ STATIC int LBA_Transfer(ddt * pddt, UWOR
 LBA_address += count;
 totaltodo -= count;
 
-buffer = adjust_far((char FAR *)buffer + count * 512);
+buffer = adjust_far((char FAR *)buffer + count * 512u);
   }
 
-  return (error_code);
+  return error_code;
 }
-
-/*
- * Revision 1.17  2001/05/13   tomehlert
- * Added full support for LBA hard drives
- * initcode moved (mostly) to initdisk.c
- * lower interface partly redesigned
- */
---End Message---