Re: [Freedos-kernel] Fwd: Re: state of kernel 2038

2009-05-03 Thread Kenneth J. Davis
I am still reviewing and testing the pending patches... but progressing.  :-)

Does the non-UPX'ed kernel boot for anyone else?  I spent most of this
evening tracking down why my kernel didn't boot (that is testing my
new setup so I wasn't sure if it was my host OS/compiler (I'm already
using ms2wlink from OW1.7 since the 1.8 one is flaky for
me)/kernel/etc, haven't tracked down beyond works with upx and not
otherwise.

For anyone who wants to test latest svn kernel I have put a compiled
version online:
binary (kernel.sys & sys.com, need to add your own command.com)
http://www.fdos.org/kernel/test/ke2038rc.zip
source
http://www.fdos.org/kernel/test/ke2038rc-src.7z

Jeremy

--
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] Fwd: Re: state of kernel 2038

2009-05-03 Thread Bart Oldeman
2009/5/3 Eric Auer :
> RayeR wrote:
>> In inidisk.c I had a note
>> COUNT nUnits BSS_INIT(0); /* Watcom C 11.x didn't initialized, fixed to
>> = 0 */
>> so then I modded init-mod.h
>>
>> #if ((defined _MSC_VER) || (defined __WATCOMC__))
>> #define BSS_INIT(x) = x
>> #else
>> #define BSS_INIT(x)
>> #endif

Ok, I think I understand: the BSS init does its job (or FreeDOS would
not work anywhere!) but something else might overwrite nUnits. Namely
by changing COUNT nUnits; to COUNT nUnits=0; the placement of the
variable is changed from I_BSS to I_DATA, and there it is not touched.

But I think something else overwrites nUnits, and after the change
will overwrite somewhere else where it is apparently harmless, so
there must be another bug somewhere. To be investigated later (I'm
going to be away and offline for a week).

Bart

--
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel


Re: [Freedos-kernel] state of kernel 2038

2009-05-03 Thread Bart Oldeman
2009/2/17 Eric Auer :
>
>>      /* clear the Init BSS area (what normally the RTL does */
>>      memset(_ib_start, 0, _ib_end - _ib_start);
>
> Maybe this broke when Bart tuned the memory model recently?
> Remember for example "JEMM386 int 19 fastboot compatible
> storage of original pointers of hooked BIOS intr" here...
>
> As quite a few BIOSes also clear the RAM, it would be plausible
> that a bug in this area could stay undetected for quite a while?
>
>> in both cases the variable ends up as 0
>
> Not for RayeR, apparently: Some variables were nonzero in initdisk.
>
>> if this makes any difference, either
>>   the memset() memset above doesn't work
>> or
>>   the error relates to the actual placement of the variable in the
>>   DATA segment. usually an overwriting problem or similar.
>> good luck hunting if it's the latter
>
> As RayeR was able to fix the symptom by using BSS_INIT(x) = x style
> for the macro, I hope that "if it is the latter" his fix would have
> broken something else, so I believe that the memset has a problem.

I don't see it: even when tracing with DOSEMU's debugger dosdebug:

t
Trap 1, system state: emulated,stopped
AX=  BX=0206  CX=0e7c  DX=0a04  SI=  DI=0fdc  SP=2240  BP=224c
DS=9dd9  ES=9dd9  FS=  GS=  FL=3312
CS:IP=9062:9c5f   SS:SP=9dd9:2240

9062:9c5f 88C4 mov  ah,al
t
Trap 1, system state: emulated,stopped
AX=  BX=0206  CX=0e7c  DX=0a04  SI=  DI=0fdc  SP=2240  BP=224c
DS=9dd9  ES=9dd9  FS=  GS=  FL=3312
CS:IP=9062:9c61   SS:SP=9dd9:2240

9062:9c61 D1E9 shr  cx,1
t
Trap 1, system state: emulated,stopped
AX=  BX=0206  CX=073e  DX=0a04  SI=  DI=0fdc  SP=2240  BP=224c
DS=9dd9  ES=9dd9  FS=  GS=  FL=3312
CS:IP=9062:9c63   SS:SP=9dd9:2240

9062:9c63 F3AB repe stosw

rep stosw is called for the correct values compared to kernel.map and
the kernel boots fine.
(OW 1.8, current SVN stable kernel source)

So which initdisk variables do you refer too? Where are they in kernel.map?

Bart

--
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
___
Freedos-kernel mailing list
Freedos-kernel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-kernel