apply suggested fix from SF bug 215 (https://sourceforge.net/p/freedos/bugs/215/), InDOS cleared but small chance DOS re-entered before user stack restored thus corrupting user stack
For now we still only support subfunction 3 (return drive table) and subfunction 0 (check if installed) which we say yes. This allows DOS Internals DRVINFO.EXE to correctly use internal drive table (it checks if installed and doesn't bother if not) and return corresponding information. Note: subfunction 3 is still handled in int2f.asm for now, but may be moved to cleaner (but bigger and slower) implementation in inthndlr.c
In combination with SWITCHES=/N in fdconfig.sys this commit makes
it so only proper CR LF linebreaks are displayed, for instance when
piping dosemu2 output to a file.
SWITCHES=/F will set SkipConfigSeconds so that config.c SkipLine will
display a string reading "\r%79s\r" to delete the prompt that it has
displayed. This overwriting should not be needed for SkipConfigSeconds=0
however. Refer to subsequent commit.
currently only skeleton logic and implementation of install check & get drive data table list [returns ddt* which allows mapping DOS drive # to BIOS drive # for drives handled by default DOS block driver]
these symbols are in LGROUP and generaly cannot be addressed by DGROUP:offset
for Turbo C DGROUP offset overflow because symbols are too far to be addressed by DGROUP offset
move only options which is related to the host environment not for target
-zq quiet output (all)
-fo=.obj set default extension for object file to .obj instead .o (Linux only)
- fix issue by renaming header file and symbols which consolidate with standard C time.h
- rename also date.h for consistency
- remove all hacks from make files and from sys.c
now can share new dtime.h with standard C time.h without any collision that any order of internal and standard C header path is possible
Running on DR-DOS v7.03, the int 25h call zeroes di leading to a crash
here when di is expected to preserve the stack pointer. So push di twice
and pop it twice. The second pop always gets the saved sp, regardless of
whether int 21h or int 25h/26h are used.
Refer to https://github.com/SvarDOS/edrdos/issues/57#issuecomment-2119360035