Kernel build 2024. Fixed critical error handler/config.sys/makefiles/UMBs

git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@201 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Bart Oldeman 2001-04-16 14:28:32 +00:00
parent c07675522e
commit 6a6899aef6
7 changed files with 96 additions and 45 deletions

View File

@ -1,4 +1,12 @@
2001 Apr 16 - Build 2023
2001 Apr 16 - Build 2024
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
+ Fixes * Use turboc.cfg to avoid long command lines; edit ALLCFLAGS
in config.mak to enable DEBUG etc.
* Fixed critical error handler.
* Fixed loading .exe's in UMBs if not enough space available.
* Some device drivers require \r\n at the end of their
parameter line.
2001 Apr 16 - Build 2023
-------- Bart Oldeman (bart.oldeman@bristol.ac.uk)
+ Fixes * Thanks to Martin Stromberg for pointing some bugs out:
* more warnings fixed.

View File

@ -42,5 +42,5 @@ static BYTE *date_hRcsId = "$Id$";
#define REVISION_MAJOR 1
#define REVISION_MINOR 1
#define REVISION_SEQ 23
#define BUILD 2023
#define REVISION_SEQ 24
#define BUILD 2024

View File

@ -40,6 +40,9 @@ static BYTE *RcsId = "$Id$";
/*
* $Log$
* Revision 1.19 2001/04/16 14:28:32 bartoldeman
* Kernel build 2024. Fixed critical error handler/config.sys/makefiles/UMBs
*
* Revision 1.18 2001/04/16 01:45:26 bartoldeman
* Fixed handles, config.sys drivers, warnings. Enabled INT21/AH=6C, printf %S/%Fs
*
@ -1017,7 +1020,6 @@ INIT void Device(BYTE * pLine)
INIT BOOL LoadDevice(BYTE * pLine, COUNT top, COUNT mode)
{
BYTE *pTmp;
exec_blk eb;
struct dhdr FAR *dhp;
struct dhdr FAR *next_dhp;
@ -1052,25 +1054,29 @@ INIT BOOL LoadDevice(BYTE * pLine, COUNT top, COUNT mode)
so simply add TESTMEM:OFF to the commandline
*/
pTmp = pLine;
if (DosLoadedInHMA)
if (stristr(szBuf, "HIMEM.SYS") != NULL)
{
if (stristr(pLine, "/TESTMEM:OFF") == NULL)
{
pTmp = szBuf;
strcpy(pTmp, pLine);
strcat(pTmp, " /TESTMEM:OFF\r\n");
strcpy(szBuf+2, pLine);
pLine=szBuf+2;
strcat(pLine, " /TESTMEM:OFF");
}
}
/* end of HIMEM.SYS HACK */
/* add \r\n to the command line */
pLine-=2;
strcpy(pLine, pLine+2);
strcat(pLine, "\r\n");
/* TE this fixes the loading of devices drivers with
multiple devices in it. NUMEGA's SoftIce is such a beast
*/
for (next_dhp=NULL; FP_OFF(next_dhp) != 0xffff &&
(result=init_device(dhp, pTmp, mode, top))==SUCCESS
(result=init_device(dhp, pLine, mode, top))==SUCCESS
; dhp = next_dhp)
{

View File

@ -28,6 +28,9 @@
; $Id$
;
; $Log$
; Revision 1.12 2001/04/16 14:28:32 bartoldeman
; Kernel build 2024. Fixed critical error handler/config.sys/makefiles/UMBs
;
; Revision 1.11 2001/04/15 02:26:23 bartoldeman
; Hans Lermen: critical error handler destroyed AH (entry.asm).
;
@ -270,6 +273,7 @@ reloc_call_int21_handler:
; NB: At this point, SS != DS and won't be set that way
; until later when which stack to run on is determined.
;
int21_reentry_crit:
mov dx,DGROUP
mov ds,dx
@ -681,11 +685,10 @@ CritErrAbort:
cli
mov bp,word [_user_r+2] ;Get frame
mov ss,bp
mov es,bp
mov bp,word [_user_r]
mov sp,bp
mov byte [_ErrorMode],1 ; flag abort
mov ax,4C00h
mov [es:reg_ax],ax
mov [bp+reg_ax],ax
sti
jmp int21_reentry ; restart the system call
jmp int21_reentry_crit ; restart the system call

View File

@ -5,6 +5,9 @@
#
# $Log$
# Revision 1.9 2001/04/16 14:28:32 bartoldeman
# Kernel build 2024. Fixed critical error handler/config.sys/makefiles/UMBs
#
# Revision 1.8 2001/04/15 03:21:50 bartoldeman
# See history.txt for the list of fixes.
#
@ -131,12 +134,8 @@ INCLUDEPATH = ..\HDR
#AFLAGS = /Mx /DSTANDALONE=1 /I..\HDR
NASMFLAGS = -i../hdr/
LIBS =..\LIB\DEVICE.LIB ..\LIB\LIBM.LIB
#ALLCFLAGS = -1- -O -Z -d -I..\hdr -I. \
# -D__STDC__=0;DEBUG;KERNEL;I86;PROTO;ASMSUPT
ALLCFLAGS = -1- -O -Z -d -I..\hdr -I. \
-D__STDC__=0;I86;ASMSUPT -w -g1
INITCFLAGS =$(ALLCFLAGS) -zAINIT -zCINIT_TEXT -zPIGROUP -zDIB -zRID -zTID
CFLAGS =$(ALLCFLAGS) -zAHMA -zCHMA_TEXT
CFLAGS =$(ALLCFLAGS) -zAHMA -zCHMA_TEXT
HDR=../hdr/
# *Implicit Rules*
@ -273,7 +272,7 @@ config.obj: config.c init-mod.h $(HDR)portab.h globals.h \
$(HDR)fat.h $(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h \
$(HDR)sft.h $(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h \
$(HDR)dirmatch.h $(HDR)file.h $(HDR)clock.h $(HDR)kbd.h \
$(HDR)error.h $(HDR)version.h proto.h
$(HDR)error.h $(HDR)version.h proto.h turboc.cfg
$(CC) $(INITCFLAGS) -c config.c
initoem.obj: initoem.c init-mod.h $(HDR)portab.h globals.h \
@ -281,7 +280,7 @@ initoem.obj: initoem.c init-mod.h $(HDR)portab.h globals.h \
$(HDR)fat.h $(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h \
$(HDR)sft.h $(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h \
$(HDR)dirmatch.h $(HDR)file.h $(HDR)clock.h $(HDR)kbd.h \
$(HDR)error.h $(HDR)version.h proto.h
$(HDR)error.h $(HDR)version.h proto.h turboc.cfg
$(CC) $(INITCFLAGS) -c initoem.c
main.obj: main.c init-mod.h $(HDR)portab.h globals.h $(HDR)device.h \
@ -289,7 +288,7 @@ main.obj: main.c init-mod.h $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
$(CC) $(INITCFLAGS) -c main.c
initHMA.obj: initHMA.c init-mod.h $(HDR)portab.h globals.h $(HDR)device.h \
@ -297,7 +296,7 @@ initHMA.obj: initHMA.c init-mod.h $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
$(CC) $(INITCFLAGS) -c initHMA.c
# XXX: I generated these using `gcc -MM' and `sed', so they may not be
@ -307,155 +306,160 @@ blockio.obj: blockio.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
break.obj: break.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
chario.obj: chario.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
dosfns.obj: dosfns.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
dosnames.obj: dosnames.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
dsk.obj: dsk.c $(HDR)portab.h globals.h $(HDR)device.h $(HDR)mcb.h \
$(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h $(HDR)fcb.h \
$(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h $(HDR)cds.h \
$(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h $(HDR)file.h \
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h \
turboc.cfg
error.obj: error.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
fatdir.obj: fatdir.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
fatfs.obj: fatfs.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
fattab.obj: fattab.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
fcbfns.obj: fcbfns.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
inthndlr.obj: inthndlr.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
ioctl.obj: ioctl.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
memmgr.obj: memmgr.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
misc.obj: misc.c $(HDR)portab.h globals.h $(HDR)device.h $(HDR)mcb.h \
$(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h $(HDR)fcb.h \
$(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h $(HDR)cds.h \
$(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h $(HDR)file.h \
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h \
turboc.cfg
newstuff.obj: newstuff.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
network.obj: network.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
nls.obj: nls.c $(HDR)portab.h globals.h $(HDR)device.h $(HDR)mcb.h \
$(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h $(HDR)fcb.h \
$(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h $(HDR)cds.h \
$(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h $(HDR)file.h \
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h \
turboc.cfg
# \
# 001-437.nls
prf.obj: prf.c $(HDR)portab.h
prf.obj: prf.c $(HDR)portab.h turboc.cfg
strings.obj: strings.c $(HDR)portab.h
strings.obj: strings.c $(HDR)portab.h turboc.cfg
sysclk.obj: sysclk.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
syspack.obj: syspack.c $(HDR)portab.h globals.h $(HDR)device.h \
$(HDR)mcb.h $(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
systime.obj: systime.c $(HDR)portab.h $(HDR)time.h $(HDR)date.h \
globals.h $(HDR)device.h $(HDR)mcb.h $(HDR)pcb.h $(HDR)fat.h \
$(HDR)fcb.h $(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h \
$(HDR)cds.h $(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h \
$(HDR)file.h $(HDR)clock.h $(HDR)kbd.h $(HDR)error.h \
$(HDR)version.h proto.h
$(HDR)version.h proto.h turboc.cfg
task.obj: task.c $(HDR)portab.h globals.h $(HDR)device.h $(HDR)mcb.h \
$(HDR)pcb.h $(HDR)date.h $(HDR)time.h $(HDR)fat.h $(HDR)fcb.h \
$(HDR)tail.h $(HDR)process.h $(HDR)dcb.h $(HDR)sft.h $(HDR)cds.h \
$(HDR)exe.h $(HDR)fnode.h $(HDR)dirmatch.h $(HDR)file.h \
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h
$(HDR)clock.h $(HDR)kbd.h $(HDR)error.h $(HDR)version.h proto.h \
turboc.cfg

View File

@ -35,6 +35,9 @@ static BYTE *RcsId = "$Id$";
/*
* $Log$
* Revision 1.12 2001/04/16 14:28:32 bartoldeman
* Kernel build 2024. Fixed critical error handler/config.sys/makefiles/UMBs
*
* Revision 1.11 2001/04/16 01:45:26 bartoldeman
* Fixed handles, config.sys drivers, warnings. Enabled INT21/AH=6C, printf %S/%Fs
*
@ -734,6 +737,18 @@ COUNT DosExeLoader(BYTE FAR * namep, exec_blk FAR * exp, COUNT mode)
exe_size = (LONG) long2para(image_size) + header.exMinAlloc;
/* + long2para((LONG) sizeof(psp)); ?? see above
image_size += sizeof(psp) -- 1999/04/21 ska */
if (exe_size > asize && (mem_access_mode & 0x80))
{
/* First try low memory */
mem_access_mode &= ~0x80;
rc = DosMemLargest((seg FAR *) & asize);
mem_access_mode |= 0x80;
if (rc != SUCCESS)
{
DosMemFree(env);
return rc;
}
}
if (exe_size > asize)
{
DosMemFree(env);

15
kernel/turboc.cfg Normal file
View File

@ -0,0 +1,15 @@
-1-
-f-
-ff-
-O
-Z
-d
-k-
-vi-
-wpro
-weas
-wpre
-w
-g1
-I..\hdr
-v- -I. -D__STDC__=0 -DKERNEL -DI86 -DPROTO -DASMSUPT