the problem, brought up by Bret:
during config.sys processing,
INSTALL= \freedos\MEM.EXE /F
will report ~24 K used at 99f0:0
however the kernel will crash if memory below this is overwritten.
source for the bug:
CONFIG.C, DoInstall() sets up a memory arena, and releases memory
below the INIT CODE segment, based on the assumption that 'normal' code
is no longer needed. this is *almost* true.
unfortunately
STATIC void kernel()
{
CommandTail Cmd;
strcpy(master_env, "PATH=.");
fmemcpy(MK_FP(DOS_PSP + 8, 0), master_env, sizeof(master_env));
memset(Cmd.ctBuffer, 0, sizeof(Cmd.ctBuffer));
strcpy(Cmd.ctBuffer, Config.cfgInitTail);
will use strcpy() and memset(), located at CS:11ee and freed by
DoInstall, and potentially overwritten.
probably the easiest solution: write some quick
init_memcpy() ...
to be used at *this* location by Kernel().
I'm away for a week; will continue work when back.
Tom
------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are
consuming the most bandwidth. Provides multi-vendor support for NetFlow,
J-Flow, sFlow and other flows. Make informed decisions using capacity
planning reports. https://ad.doubleclick.net/ddm/clk/305295220;132659582;e
_______________________________________________
Freedos-kernel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-kernel