Hi Bart, nice to see you're still alive :)
> Tom, can you explain? > 1. config.c. Why use > instead of >=? Is there a corner case with equality? IMO >= is correct (timeout 0 should exit immediately) > 2. initoem.c: > + if (ramsize == peek(0, RAMSIZE)) > if (ramsize * 64 == ebdaseg && ramsize < 640 && peek(0, RAMSIZE) == ramsize) > the extra double check looks strange to me, why check twice? > Something strange with short-circuit boolean evaluation? looks strange, and I have no idea why exactly this is there. But since I put it in after ke2035, I just assume I did that intentionally. (this was changed on or before 11.07.2004) I'd leave it under 'it doesn't hurt' > 3. int21/ax=3301. The comment and the code are out of sync. > By falling > through it reports the new state of break_ena in DL (not AL). right besides that, the code should do the same in both cases (DL should be 00 or 01) I don't mind much Tom > Moreover, RBIL tells us that Novell DOS 7 report the *old* state > (instead of the new state) in DL. What is the intended logic here? > Thanks, > Bart > --- ke2035/kernel/config.c 2004-05-25 01:02:46.000000000 -0400 > +++ ke2035ctom/kernel/config.c 2007-05-14 12:43:46.000000000 -0400 > @@ -753,8 +753,8 @@ > if (timeout >= 0) do > { > r.a.x = 0x0100; /* are there keys available ? */ > init_call_intr(0x16, &r); > - if ((unsigned)(GetBiosTime() - startTime) >= timeout * 18u) > + if ((unsigned)(GetBiosTime() - startTime) > timeout * 18u) > return 0xffff; > } > while (r.flags & FLG_ZERO); > diff -urb ke2035/kernel/dsk.c ke2035ctom/kernel/dsk.c > +++ ke2035ctom/kernel/initoem.c 2007-05-14 12:43:46.000000000 -0400 > @@ -58,7 +59,8 @@ > unsigned ebdaseg = peek(0, EBDASEG); > unsigned ramsize = ram_top; > + if (ramsize == peek(0, RAMSIZE)) > if (ramsize * 64 == ebdaseg && ramsize < 640 && peek(0, RAMSIZE) == > ramsize) > { > unsigned ebdasz = peekb(ebdaseg, 0); > diff -urb ke2035/kernel/inthndlr.c ke2035ctom/kernel/inthndlr.c > --- ke2035/kernel/inthndlr.c 2004-05-30 20:31:06.000000000 -0400 > +++ ke2035ctom/kernel/inthndlr.c 2007-05-14 12:43:46.000000000 -0400 > @@ -78,17 +78,17 @@ > case 0x33: > switch (irp->AL) > { > + /* Set Ctrl-C flag; returns al = break_ena */ > + case 0x01: > + break_ena = irp->DL & 1; > + /* fall through */ > + > /* Get Ctrl-C flag */ > case 0x00: > irp->DL = break_ena; > break; > - /* Set Ctrl-C flag */ > - case 0x01: > - break_ena = irp->DL & 1; > - break; > - > case 0x02: /* andrew schulman: get/set extended > control break */ > { > UBYTE tmp = break_ena; > ------------------------------------------------------------------------- > 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 Mit freundlichen Grüßen / Kind regards, Tom Ehlert +49-241-79886 ------------------------------------------------------------------------- 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