diff -b -B -d -N -s -w -r --unified kern2002/bugs.txt kern2003/bugs.txt
--- kern2002/bugs.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/bugs.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,13 @@
+Known bugs with DOS-C release 0.91
+----------------------------------
+1. Due my misunderstanding the functionality of the exe loader when the exe
+file is to be loaded high, it is incorrectly handled.  This may cause DOS-C
+to crash.  This will be corrected in the next release.
+
+2. Drive D is a mess.  The driver does not correctly handle the partition
+table resulting in file system corruption.  **DO NOT USE DRIVE D**.  This
+will be corrected in the next release.
+
+3. The disk device driver expects a drive C to be present.  This will be
+corrected in the next release.
+
Files kern2002/build.bat and kern2003/build.bat are identical
diff -b -B -d -N -s -w -r --unified kern2002/build.txt kern2003/build.txt
--- kern2002/build.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/build.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,53 @@
+To build the operating system, a batch file (BUILD.BAT) is included
+to make life easier.  This file is in the dos-c directory of the
+distribution.  In addition, there is a corresponding batch file
+(CLEAN.BAT) to clean up the source directories.
+
+There is a CONFIG.MAK file that specifies all the paths and names of
+the compiler, assembler, etc. that you want to use.  You can change
+this file, and choose what compiler to use.  This program is know to
+compile with Turbo C 3.0 and Borland C 4.51 & 5.01.  It should work
+with other Borland compilers as well.
+
+If you feel hardy, read on to understand the directory structure.  A
+more complete description of the build environment is contained ina
+companion book, "The FreeDOS Kernel" (ISBN: 0-87930-436-7) published
+by R&D Books, an imprint of Miller Freeman of Lawrence, Kansas (USA)
+and distributed in the USA and Canada by Publishers Group West.  See
+the file README.TXT for more details.
+
+
+Directory Structure
+-------------------
+
+dos-c				root directory
+  +-----dist			holds image of distribution disk
+  +-----doc			documentation directory
+  +-----hdr			common *.h files
+  +-----lib			LIBM.LIB and DEVICE.LIB
+  +-----src			source directories for:
+  +--------+-----boot		boot.bin
+  +--------+-----command	COMMAND.COM and HELP.EXE
+  +--------+-----drivers	DEVICE.LIB
+  +--------+-----fs		common kernel and ipl fs manage files
+  +--------+-----ipl		IPL.SYS
+  +--------+-----kernel		KERNEL.EXE
+  +--------+-----misc		miscellaneous files for kernel and ipl
+  +--------+-----tmp
+  +--------+-----utils		SYS.EXE
+
+
+Organization in a nutshell
+--------------------------
+Each component or group of utilities is segreagated into its own
+directory.  Whenever common files are needed, they are removed and
+placed into a seperate directory.  In order to build that component
+or utility, a makefile exists in the directory that bears the
+component's or utility's basename.
+
+Each makefile has at least two targets, production and clean.  The
+target production builds the expected component or utility and the
+component clean cleans up the director for distribution.  The
+makefile may have at least one additonal target that builds ythe
+component.  Study the makefile to better understand this.
+
Files kern2002/clean.bat and kern2003/clean.bat are identical
diff -b -B -d -N -s -w -r --unified kern2002/config.mak kern2003/config.mak
--- kern2002/config.mak	Mon Feb  8 22:47:54 1999
+++ kern2003/config.mak	Sun Feb 28 23:34:16 1999
@@ -1,5 +1,6 @@
 
 CC=tcc
+#CC=bcc
 
 ASM=tasm
 
@@ -8,6 +9,8 @@
 LIB=tlib
 
 LIBPATH=c:\tc\lib
+#LIBPATH=c:\bc5\lib
 
 INCLUDEPATH=c:\tc\include
+#INCLUDEPATH=c:\bc5\include
 
Files kern2002/dist/autoexec.bat and kern2003/dist/autoexec.bat are identical
Binary files kern2002/dist/boot.bin and kern2003/dist/boot.bin differ
Binary files kern2002/dist/command.com and kern2003/dist/command.com differ
Binary files kern2002/dist/ipl.sys and kern2003/dist/ipl.sys differ
Binary files kern2002/dist/kernel.exe and kern2003/dist/kernel.exe differ
Binary files kern2002/dist/sys.com and kern2003/dist/sys.com differ
diff -b -B -d -N -s -w -r --unified kern2002/intfns.txt kern2003/intfns.txt
--- kern2002/intfns.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/intfns.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,195 @@
+			     Technical Data
+		          DOS-C Systems Calls
+
+The following table represents the industry standard kernel DOS calls
+currently supported by DOS-C.  This list is for Release 0.91b as issued on
+August 28, 1996.
+
+int 20:	Terminated Current Process
+	Supported
+
+int 21:	DOS System Call
+	Supported.  See table below.
+
+int 21	Description			State		Ver	Status
+---------------------------------------------------------------------------
+00h	Terminate Program		superseded	1.00	supported
+01h	Read Keyboard with Echo		superseded	1.00	supported
+02h	Display Character		superseded	1.00	supported
+03h	Auxilliary Input		superseded	1.00	Note 1
+04h	Auxilliary Output		superseded	1.00	Note 1
+05h	Print Character			superseded	1.00	Note 1
+06h	Direct Console I/O		active		1.00	supported
+07h	Direct Console Input		active		1.00	supported
+08h	Read Keyboard Without Echo	active		1.00	supported
+09h	Display String			superseded	1.00	supported
+0ah	Buffered Keyboard Input		superseded	1.00	supported
+0bh	Check Keyboard Status		active		1.00	supported
+0ch	Flush Buffer, Read Keyboard	active		1.00	supported
+0dh	Reset Drive			active		1.00	supported
+0eh	Set Default Drive		active		1.00	supported
+0fh	Open File with FCB		superseded	1.00	supported
+10h	Close File with FCB		superseded	1.00	supported
+11h	Find First File with FCB	superseded	1.00	supported
+12h	Find Next File with FCB		superseded	1.00	supported
+13h	Delete File with FCB		superseded	1.00	supported
+14h	Sequential Read			superseded	1.00	supported
+15h	Sequential Write		superseded	1.00	supported
+16h	Create File with FCB		superseded	1.00	supported
+17h	Rename File with FCB		superseded	1.00	supported
+18h	CP/M compatibility		obsolete	1.00	supported
+19h	Get Default Drive		active		1.00	supported
+1ah	Set Disk Transfer Address	active		1.00	supported
+1bh	Get Default Drive Data		superseded	2.00	supported
+1ch	Get Drive Data			superseded	2.00	supported
+1dh	CP/M compatibility		obsolete	1.00	supported
+1eh	CP/M compatibility		obsolete	1.00	supported
+1fh	Get Default DPB			active		5.00	Note 2
+20h	CP/M compatibility		obsolete	1.00	supported
+21h	Random Read			superseded	1.00	supported
+22h	Random Write			superseded	1.00	supported
+23h	Get File Size			superseded	1.00	supported
+24h	Set Random Record Number	superseded	1.00	supported
+25h	Set Interrupt Vector		active		1.00	supported
+26h	Create New PSP			superseded	1.00	supported
+27h	Random Block Read		superseded	1.00	supported
+28h	Random Block Write		superseded	1.00	supported
+29h	Parse Filename			active		1.00	supported
+2ah	Get Date			active		1.00	supported
+2bh	Set Date			active		1.00	supported
+2ch	Get Time			active		1.00	supported
+2dh	Set Time			active		1.00	supported
+2eh	Set/Reset Verify Flag		active		1.00	supported
+2fh	Get DTA				active		2.00	supported
+30h	Get Version Number		active		2.00	supported
+31h	Keep Program			active		2.00	supported
+32h	Get DPB				active		5.00	Note 2
+3300h	Get CTRL+C Check Flag		active		2.00	supported
+3301h	Set CTRL+C Check Flag		active		2.00	supported
+3305h	Get Startup Drive		active		2.00	supported
+3306h	Get MS-DOS Version		active		5.00	supported
+33ffh	Get DOS-C Release		superset		supported
+34h	Get InDOS Flag Address		active		2.00	supported
+35h	Get Interrupt Vector		active		2.00	supported
+36h	Get Disk Free Space		active		2.00	supported
+37h	Get/Set Switchar		undocumented	2.00	supported
+38h	Get/Set Country Information	active		2.00	supported
+39h	Create Directory		active		2.00	supported
+3ah	Remove Directory		active		2.00	supported
+3bh	Change Current Directory	active		2.00	supported
+3ch	Create File with Handle		active		2.00	supported
+3dh	Open File with Handle		active		2.00	supported
+3eh	Close File with Handle		active		2.00	supported
+3fh	Read File or Device		active		2.00	supported
+40h	Write File or Device		active		2.00	supported
+41h	Delete File			active		2.00	supported
+42h	Move File Pointer		active		2.00	supported
+4300h	Get File Attributes		active		2.00	supported
+4301h	Set File Attributes		active		2.00	supported
+44h	Ioctl entry			active		2.00	Note 3
+45h	Duplicate File Handle		active		2.00	supported
+46h	Force Duplicate File Handle	active		2.00	supported
+47h	Get Current Directory		active		2.00	supported
+48h	Allocate Memory			active		2.00	supported
+49h	Free Allocated Memory		active		2.00	supported
+4ah	Set Memory Block Size		active		2.00	supported
+4b00h	Load and Execute Program	active		2.00	supported
+4b01h	Load Program			active		2.00	supported
+4b03h	Load Overlay			active		2.00	supported
+4b05h	Set Execution State		active		5.00	open
+4ch	End Program			active		2.00	supported
+4dh	Get Child-Program Return Value	active		2.00	supported
+4eh	Find First File			active		2.00	supported
+4fh	Find Next File			active		2.00	supported
+50h	Set PSP Address			active		2.00	supported
+51h	Get PSP Address			active		2.00	supported
+52h	Get List of Lists		undocumented	2.00	supported
+53h					undocumented
+54h	Get Verify State		active		2.00	supported
+55h	Create New Psp			undocumented	2.00	supported
+56h	Rename File			active		2.00	supported
+5700h	Get File Date and Time		active		2.00	supported
+5701h	Set File Date and Time		active		2.00	supported
+5800h	Get Allocation Strategy		active		3.00	supported
+5801h	Set Allocation Strategy		active		3.00	supported
+5802h	Get Upper-Memory Link		active		5.00	open
+5803h	Set Upper-Memory Link		active		5.00	open
+59h	Get Extended Error		active		3.00	open
+5ah	Create Temporary File		active		3.00	open
+5bh	Create New File			active		3.00	open
+5ch	Lock/Unlock File		active		3.10	open
+5d00h	Server Function Call		active		3.10	open
+5d01h	Commit All Files		active		3.10	open
+5d02h	Close File by Name		active		3.10	open
+5d03h	Close All Files for Computer	active		3.10	open
+5d04h	Close All Files for Process	active		3.10	open
+5d05h	Get Open File List		active		3.10	open
+5d06h	Get SDA				superseded	3.00	open
+5d07h	Get Redirected Printer Mode	active		3.10	open
+5d08h	Set Redirected Printer Mode	active		4.00	open
+5d09h	Flush Redirected Printer Output	active		4.00	open
+5d0ah	Set Extended Error		active		4.00	open
+5d06h	Get Multiple SDA		active		4.00	open
+5eh	Generic Network Functions #1	active		3.10	open
+5fh	Generic Network Functions #2	active		3.10	open
+60h					undocumented
+61h					obsolete
+62h	Get current PSP			undocumented	3.00	supported
+63h	Multibyte char ops		undocumented	3.20	Note 4
+64h					undocumented
+65h	NLS Functions			active		3.30	supported
+66h	Code Page Functions		active		3.30	supported
+67h	Set Maximum Handle Count	active		3.30	open
+68h	Commit File			active		3.30	open
+69h					undocumented
+6ah					undocumented
+6bh					undocumented
+6ch	Extended Open/Create		active		4.00	open
+
+int 22:	Program Termination Address.
+	Supported.
+
+int 23:	Ctrl-C/Ctrl_Break Handler.
+	Supported.
+
+int 24:	Critical Error Handler
+	Note 5.
+
+int 25:	Critical Error Handler
+	Note 5.
+
+int 26:	Critical Error Handler
+	Note 5.
+
+int 27:	TSR
+	Supported.
+
+int 28:	DOS Idle.
+	Note 5.
+
+int 29:	Fast Console Output.
+	Supported.
+
+int 2F:	DOS Multiplex.
+	Supported.
+
+Notes:
+Note 1 - Although this system call is supported, there are no device drivers
+to support these devices in this release.
+
+Note 2 - Returns error code because internal data structures differ.
+
+Note 3 - Only sub-functions 0 and 1 are currently supported.
+
+Note 4 - Returns error code.
+
+Note 5 - Vector supported but performs no action.
+
+Copyright
+---------
+(c) Copyright 1995 by Pasquale J. Villani
+All Rights Reserved.
+
+License
+-------
+See COPYING in DOS-C root directory for license.
Files kern2002/ipl/hdr/cds.h and kern2003/ipl/hdr/cds.h are identical
Files kern2002/ipl/hdr/clock.h and kern2003/ipl/hdr/clock.h are identical
Files kern2002/ipl/hdr/date.h and kern2003/ipl/hdr/date.h are identical
Files kern2002/ipl/hdr/dcb.h and kern2003/ipl/hdr/dcb.h are identical
Files kern2002/ipl/hdr/device.h and kern2003/ipl/hdr/device.h are identical
Files kern2002/ipl/hdr/dhdr.h and kern2003/ipl/hdr/dhdr.h are identical
Files kern2002/ipl/hdr/dirmatch.h and kern2003/ipl/hdr/dirmatch.h are identical
Files kern2002/ipl/hdr/dosnames.h and kern2003/ipl/hdr/dosnames.h are identical
Files kern2002/ipl/hdr/error.h and kern2003/ipl/hdr/error.h are identical
Files kern2002/ipl/hdr/exe.h and kern2003/ipl/hdr/exe.h are identical
Files kern2002/ipl/hdr/fat.h and kern2003/ipl/hdr/fat.h are identical
Files kern2002/ipl/hdr/fcb.h and kern2003/ipl/hdr/fcb.h are identical
Files kern2002/ipl/hdr/file.h and kern2003/ipl/hdr/file.h are identical
Files kern2002/ipl/hdr/fnode.h and kern2003/ipl/hdr/fnode.h are identical
Files kern2002/ipl/hdr/kbd.h and kern2003/ipl/hdr/kbd.h are identical
Files kern2002/ipl/hdr/mcb.h and kern2003/ipl/hdr/mcb.h are identical
Files kern2002/ipl/hdr/pcb.h and kern2003/ipl/hdr/pcb.h are identical
Files kern2002/ipl/hdr/portab.h and kern2003/ipl/hdr/portab.h are identical
Files kern2002/ipl/hdr/process.h and kern2003/ipl/hdr/process.h are identical
Files kern2002/ipl/hdr/sft.h and kern2003/ipl/hdr/sft.h are identical
Files kern2002/ipl/hdr/tail.h and kern2003/ipl/hdr/tail.h are identical
Files kern2002/ipl/hdr/time.h and kern2003/ipl/hdr/time.h are identical
Files kern2002/ipl/lib/dummy.txt and kern2003/ipl/lib/dummy.txt are identical
Files kern2002/ipl/src/drivers/console.asm and kern2003/ipl/src/drivers/console.asm are identical
Files kern2002/ipl/src/drivers/devend.asm and kern2003/ipl/src/drivers/devend.asm are identical
Files kern2002/ipl/src/drivers/device.mak and kern2003/ipl/src/drivers/device.mak are identical
Files kern2002/ipl/src/drivers/eoi.asm and kern2003/ipl/src/drivers/eoi.asm are identical
Files kern2002/ipl/src/drivers/floppy.asm and kern2003/ipl/src/drivers/floppy.asm are identical
Files kern2002/ipl/src/drivers/fmemcmp.asm and kern2003/ipl/src/drivers/fmemcmp.asm are identical
Files kern2002/ipl/src/drivers/fmemcpy.asm and kern2003/ipl/src/drivers/fmemcpy.asm are identical
Files kern2002/ipl/src/drivers/fmemset.asm and kern2003/ipl/src/drivers/fmemset.asm are identical
Files kern2002/ipl/src/drivers/getvec.asm and kern2003/ipl/src/drivers/getvec.asm are identical
Files kern2002/ipl/src/drivers/inb.asm and kern2003/ipl/src/drivers/inb.asm are identical
Files kern2002/ipl/src/drivers/int86.asm and kern2003/ipl/src/drivers/int86.asm are identical
Files kern2002/ipl/src/drivers/intr.asm and kern2003/ipl/src/drivers/intr.asm are identical
Files kern2002/ipl/src/drivers/inw.asm and kern2003/ipl/src/drivers/inw.asm are identical
Files kern2002/ipl/src/drivers/keyboard.asm and kern2003/ipl/src/drivers/keyboard.asm are identical
Files kern2002/ipl/src/drivers/outb.asm and kern2003/ipl/src/drivers/outb.asm are identical
Files kern2002/ipl/src/drivers/outw.asm and kern2003/ipl/src/drivers/outw.asm are identical
Files kern2002/ipl/src/drivers/rdatclk.asm and kern2003/ipl/src/drivers/rdatclk.asm are identical
Files kern2002/ipl/src/drivers/rdpcclk.asm and kern2003/ipl/src/drivers/rdpcclk.asm are identical
Files kern2002/ipl/src/drivers/setvec.asm and kern2003/ipl/src/drivers/setvec.asm are identical
Files kern2002/ipl/src/drivers/spl.asm and kern2003/ipl/src/drivers/spl.asm are identical
Files kern2002/ipl/src/drivers/timer.asm and kern2003/ipl/src/drivers/timer.asm are identical
Files kern2002/ipl/src/drivers/wratclk.asm and kern2003/ipl/src/drivers/wratclk.asm are identical
Files kern2002/ipl/src/drivers/wrpcclk.asm and kern2003/ipl/src/drivers/wrpcclk.asm are identical
Files kern2002/ipl/src/fs/blockio.c and kern2003/ipl/src/fs/blockio.c are identical
Files kern2002/ipl/src/fs/chario.c and kern2003/ipl/src/fs/chario.c are identical
Files kern2002/ipl/src/fs/dosfns.c and kern2003/ipl/src/fs/dosfns.c are identical
Files kern2002/ipl/src/fs/dosnames.c and kern2003/ipl/src/fs/dosnames.c are identical
Files kern2002/ipl/src/fs/error.c and kern2003/ipl/src/fs/error.c are identical
Files kern2002/ipl/src/fs/fatdir.c and kern2003/ipl/src/fs/fatdir.c are identical
Files kern2002/ipl/src/fs/fatfs.c and kern2003/ipl/src/fs/fatfs.c are identical
Files kern2002/ipl/src/fs/fattab.c and kern2003/ipl/src/fs/fattab.c are identical
Files kern2002/ipl/src/fs/fcbfns.c and kern2003/ipl/src/fs/fcbfns.c are identical
Files kern2002/ipl/src/fs/misc.c and kern2003/ipl/src/fs/misc.c are identical
Files kern2002/ipl/src/fs/prf.c and kern2003/ipl/src/fs/prf.c are identical
Files kern2002/ipl/src/fs/syspack.c and kern2003/ipl/src/fs/syspack.c are identical
Files kern2002/ipl/src/ipl/apisupt.asm and kern2003/ipl/src/ipl/apisupt.asm are identical
Files kern2002/ipl/src/ipl/execrh.asm and kern2003/ipl/src/ipl/execrh.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/ipl/globals.h kern2003/ipl/src/ipl/globals.h
--- kern2002/ipl/src/ipl/globals.h	Sat Jan 30 02:17:50 1999
+++ kern2003/ipl/src/ipl/globals.h	Mon Mar  1 00:06:52 1999
@@ -32,12 +32,15 @@
 /* $Logfile:   C:/dos-c/src/ipl/globals.h_v  $ */
 #ifdef MAIN
 # ifndef IPL
-static BYTE *Globals_hRcsId = "$Header: /home/cvsroot/kernel/ipl/src/ipl/globals.h,v 1.2 1999/01/30 08:17:50 jprice Exp $";
+static BYTE *Globals_hRcsId = "$Header: /home/cvsroot/kernel/ipl/src/ipl/globals.h,v 1.3 1999/03/01 06:06:52 jprice Exp $";
 # endif
 #endif
 
 /*
  * $Log: globals.h,v $
+ * Revision 1.3  1999/03/01 06:06:52  jprice
+ * Fixed so that IPL passes the correct boot drive.
+ *
  * Revision 1.2  1999/01/30 08:17:50  jprice
  * Clean up
  *
@@ -79,7 +82,7 @@
 #include "../../hdr/error.h"
 
 #define MAJOR_RELEASE   3
-#define MINOR_RELEASE   30
+#define MINOR_RELEASE   31
 #define REV_NUMBER      0
 
 #define REVISION_MAJOR  1
@@ -309,7 +312,7 @@
 extern  struct dhdr
         nul_dev;
 extern  BYTE    njoined;                /* number of joined devices     */
-extern  WORD
+extern  UWORD
         BootDrive,              /* Drive we came up from                */
         NumFloppies;            /* How many floppies we have            */
 
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/ipl/ipl.asm kern2003/ipl/src/ipl/ipl.asm
--- kern2002/ipl/src/ipl/ipl.asm	Sat Jan 30 02:17:50 1999
+++ kern2003/ipl/src/ipl/ipl.asm	Mon Mar  1 00:06:52 1999
@@ -27,9 +27,12 @@
 ;
 ; $Logfile:   C:/dos-c/src/ipl/ipl.asv  $
 ;
-; $Header: /home/cvsroot/kernel/ipl/src/ipl/ipl.asm,v 1.2 1999/01/30 08:17:50 jprice Exp $
+; $Header: /home/cvsroot/kernel/ipl/src/ipl/ipl.asm,v 1.3 1999/03/01 06:06:52 jprice Exp $
 ;
 ; $Log: ipl.asm,v $
+; Revision 1.3  1999/03/01 06:06:52  jprice
+; Fixed so that IPL passes the correct boot drive.
+;
 ; Revision 1.2  1999/01/30 08:17:50  jprice
 ; Clean up
 ;
@@ -161,7 +164,8 @@
                 mov     es,ax
                 mov     bp,sp           ; and set up stack frame for c
                 sti                     ; now enable them
-                mov     _BootDrive,bx   ; tell where we came from
+                mov     dh,0
+                mov     _BootDrive,dx   ; tell where we came from
                 mov     _NumFloppies,cx ; and how many
                 call    _main
                 mov     ax,0
Files kern2002/ipl/src/ipl/ipl.mak and kern2003/ipl/src/ipl/ipl.mak are identical
Files kern2002/ipl/src/ipl/iplstart and kern2003/ipl/src/ipl/iplstart are identical
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/ipl/main.c kern2003/ipl/src/ipl/main.c
--- kern2002/ipl/src/ipl/main.c	Sat Jan 30 02:17:50 1999
+++ kern2003/ipl/src/ipl/main.c	Mon Mar  1 00:06:52 1999
@@ -35,11 +35,14 @@
 
 /* $Logfile:   C:/dos-c/src/ipl/main.c_v  $ */
 #ifndef IPL
-static BYTE *mainRcsId = "$Header: /home/cvsroot/kernel/ipl/src/ipl/main.c,v 1.2 1999/01/30 08:17:50 jprice Exp $";
+static BYTE *mainRcsId = "$Header: /home/cvsroot/kernel/ipl/src/ipl/main.c,v 1.3 1999/03/01 06:06:52 jprice Exp $";
 #endif
 
 /*
  * $Log: main.c,v $
+ * Revision 1.3  1999/03/01 06:06:52  jprice
+ * Fixed so that IPL passes the correct boot drive.
+ *
  * Revision 1.2  1999/01/30 08:17:50  jprice
  * Clean up
  *
@@ -184,14 +187,12 @@
 #endif
         for(i = 0; i < NFILES; i++)
                 f_nodes[i].f_count = 0;
-        /* Log-in the default drive.                                    */
-        default_drive = 0;
 
-        /* Initialzie the current directory structures                  */
+        /* Initialize the current directory structures                  */
         for(i = 0; i < NDEVS; i++)
                 scopy("\\", blk_devices[i].dpb_path);
 
-        /* Initialze the disk buffer management functions               */
+        /* Initialize the disk buffer management functions              */
         init_buffers();
 
         /* Now to initialize all special flags, etc.                    */
@@ -202,10 +203,17 @@
         version_flags = 0;
 
         /* Figure out 'A' or 'C' drive                                  */
-        if(BootDrive != 0)
-                BootDrive = 3;
+//        if(BootDrive != 0)
+//                BootDrive = 3;
+//        else
+//                BootDrive = 1;
+        if (BootDrive >= 128)
+          BootDrive -= 125;
         else
-                BootDrive = 1;
+          BootDrive++;
+
+        /* Log-in the default drive.                                    */
+        default_drive = BootDrive-1;
 }
 
 
@@ -296,7 +304,7 @@
                 break;
 
         case DE_INVLDDATA:
-                printf("Inavlid data\n");
+                printf("Invalid data\n");
                 break;
 
         default:
Files kern2002/ipl/src/ipl/procsupt.asm and kern2003/ipl/src/ipl/procsupt.asm are identical
Files kern2002/ipl/src/ipl/proto.h and kern2003/ipl/src/ipl/proto.h are identical
Files kern2002/ipl/src/ipl/stacks.asm and kern2003/ipl/src/ipl/stacks.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/kernel/dsk.c kern2003/ipl/src/kernel/dsk.c
--- kern2002/ipl/src/kernel/dsk.c	Tue Jan 19 23:51:00 1999
+++ kern2003/ipl/src/kernel/dsk.c	Mon Mar  1 00:08:34 1999
@@ -30,11 +30,14 @@
 

 /* $Logfile:   D:/dos-c/src/kernel/dsk.c_v  $ */

 #ifdef VERSION_STRINGS

-static BYTE *dskRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/dsk.c,v 1.1.1.1 1999/01/20 05:51:00 jprice Exp $";

+static BYTE *dskRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/dsk.c,v 1.2 1999/03/01 06:08:33 jprice Exp $";
 #endif

 

 /*

  * $Log: dsk.c,v $
+ * Revision 1.2  1999/03/01 06:08:33  jprice
+ * Formatting
+ *
  * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
  * Imported sources
  *

@@ -574,4 +577,4 @@
 }

 

 

-
\ No newline at end of file
+
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/kernel/memmgr.c kern2003/ipl/src/kernel/memmgr.c
--- kern2002/ipl/src/kernel/memmgr.c	Tue Jan 19 23:51:00 1999
+++ kern2003/ipl/src/kernel/memmgr.c	Mon Mar  1 00:08:34 1999
@@ -32,11 +32,14 @@
 

 /* $Logfile*/

 #ifdef VERSION_STRING

-static BYTE *memmgrRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/memmgr.c,v 1.1.1.1 1999/01/20 05:51:00 jprice Exp $";

+static BYTE *memmgrRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/memmgr.c,v 1.2 1999/03/01 06:08:33 jprice Exp $";
 #endif

 

 /*

  * $Log: memmgr.c,v $
+ * Revision 1.2  1999/03/01 06:08:33  jprice
+ * Formatting
+ *
  * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
  * Imported sources
  *

@@ -588,4 +591,4 @@
 # endif

 #endif

 

-
\ No newline at end of file
+
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/kernel/strings.c kern2003/ipl/src/kernel/strings.c
--- kern2002/ipl/src/kernel/strings.c	Tue Jan 19 23:51:00 1999
+++ kern2003/ipl/src/kernel/strings.c	Mon Mar  1 00:08:34 1999
@@ -32,11 +32,14 @@
 

 /* $Logfile:   D:/dos-c/src/kernel/strings.c_v  $ */

 #ifdef VERSION_STRINGS

-static BYTE *stringsRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/strings.c,v 1.1.1.1 1999/01/20 05:51:00 jprice Exp $";

+static BYTE *stringsRcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/strings.c,v 1.2 1999/03/01 06:08:33 jprice Exp $";
 #endif

 

 /*

  * $Log: strings.c,v $
+ * Revision 1.2  1999/03/01 06:08:33  jprice
+ * Formatting
+ *
  * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
  * Imported sources
  *

@@ -202,4 +205,4 @@
 

 

 

-
\ No newline at end of file
+
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/kernel/syscon.c kern2003/ipl/src/kernel/syscon.c
--- kern2002/ipl/src/kernel/syscon.c	Tue Jan 19 23:51:00 1999
+++ kern2003/ipl/src/kernel/syscon.c	Mon Mar  1 00:08:34 1999
@@ -32,11 +32,14 @@
 

 /* $Logfile:   D:/dos-c/src/kernel/syscon.c_v  $ */

 #ifdef VERSION_STRINGS

-static BYTE *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/syscon.c,v 1.1.1.1 1999/01/20 05:51:00 jprice Exp $";

+static BYTE *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/syscon.c,v 1.2 1999/03/01 06:08:33 jprice Exp $";
 #endif

 

 /*

  * $Log: syscon.c,v $
+ * Revision 1.2  1999/03/01 06:08:33  jprice
+ * Formatting
+ *
  * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
  * Imported sources
  *

@@ -157,4 +160,4 @@
 }

 

 

-
\ No newline at end of file
+
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/kernel/task.c kern2003/ipl/src/kernel/task.c
--- kern2002/ipl/src/kernel/task.c	Tue Jan 19 23:51:00 1999
+++ kern2003/ipl/src/kernel/task.c	Mon Mar  1 00:08:34 1999
@@ -31,11 +31,14 @@
 

 /* $Logfile:   C:/dos-c/src/kernel/task.c_v  $ */

 #ifdef VERSION_STRINGS

-static BYTE *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/task.c,v 1.1.1.1 1999/01/20 05:51:00 jprice Exp $";

+static BYTE *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/kernel/task.c,v 1.2 1999/03/01 06:08:33 jprice Exp $";
 #endif

 

 /*

  * $Log: task.c,v $
+ * Revision 1.2  1999/03/01 06:08:33  jprice
+ * Formatting
+ *
  * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
  * Imported sources
  *

diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/autoexec.bat kern2003/ipl/src/misc/autoexec.bat
--- kern2002/ipl/src/misc/autoexec.bat	Sat Jan 30 02:17:16 1999
+++ kern2003/ipl/src/misc/autoexec.bat	Wed Dec 31 18:00:00 1969
@@ -1,16 +0,0 @@
-rem $Header: /home/cvsroot/kernel/ipl/src/misc/autoexec.bat,v 1.2 1999/01/30 08:17:17 jprice Exp $
-rem $Log: autoexec.bat,v $
-rem Revision 1.2  1999/01/30 08:17:17  jprice
-rem Clean up
-rem
-rem Revision 1.1.1.1  1999/01/20 05:51:00  jprice
-rem Imported sources
-rem
-rem 
-rem    Rev 1.1   29 Aug 1996 13:07:34   patv
-rem Bug fixes for v0.91b
-rem 
-rem    Rev 1.0   19 Feb 1996  3:40:58   patv
-rem Initial revision.
-echo Hello from the wonderful world of DOS-C!
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/config.sys kern2003/ipl/src/misc/config.sys
--- kern2002/ipl/src/misc/config.sys	Sat Jan 30 02:17:16 1999
+++ kern2003/ipl/src/misc/config.sys	Wed Dec 31 18:00:00 1969
@@ -1,17 +0,0 @@
-rem $Header: /home/cvsroot/kernel/ipl/src/misc/config.sys,v 1.2 1999/01/30 08:17:17 jprice Exp $
-rem $Log: config.sys,v $
-rem Revision 1.2  1999/01/30 08:17:17  jprice
-rem Clean up
-rem
-rem Revision 1.1.1.1  1999/01/20 05:51:00  jprice
-rem Imported sources
-rem
-rem 
-rem    Rev 1.1   29 Aug 1996 13:07:36   patv
-rem Bug fixes for v0.91b
-rem 
-rem    Rev 1.0   19 Feb 1996  3:40:36   patv
-rem Initial revision.
-FILES=20
-BUFFERS=20
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/doslib.c kern2003/ipl/src/misc/doslib.c
--- kern2002/ipl/src/misc/doslib.c	Sat Jan 30 02:17:16 1999
+++ kern2003/ipl/src/misc/doslib.c	Wed Dec 31 18:00:00 1969
@@ -1,306 +0,0 @@
-/****************************************************************/
-/*                                                              */
-/*                           doslib.c                           */
-/*                                                              */
-/*                     DOS Emulation Library                    */
-/*                                                              */
-/*                       November 6, 1991                       */
-/*                                                              */
-/*                      Copyright (c) 1995                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-
-/* $Logfile*/
-static char *doslibRcsId = "$Header: /home/cvsroot/kernel/ipl/src/misc/doslib.c,v 1.2 1999/01/30 08:17:17 jprice Exp $";
-
-/*
- * $Log: doslib.c,v $
- * Revision 1.2  1999/01/30 08:17:17  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- *
- *
- *         Rev 1.2   29 Aug 1996 13:07:36   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:00   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:44   patv
- *      Initial revision.
- */
-
-
-#include <dos.h>
-#include "../hdr/device.h"
-#include "../hdr/time.h"
-#include "../hdr/date.h"
-#include "../hdr/fcb.h"
-#include "../hdr/process.h"
-#include "doslib.h"
-
-
-/*!Function int DosGetDirectory();      */
-int DosGetDirectoryPath(drive, buffer)
-int drive;
-char far *buffer;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x47;
-        r.h.dl = drive;
-        r.x.si = FP_OFF(buffer);
-        s.ds = FP_SEG(buffer);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*!Function int DosOpen();                      */
-int DosOpen(path, flag)
-char far *path;
-int flag;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x3d;
-        r.h.al = flag;
-        r.x.dx = FP_OFF(path);
-        s.ds = FP_SEG(path);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return r.x.ax;
-}
-
-
-
-/*!Function int DosRead();                      */
-int DosRead(hndl, buf, cnt)
-int hndl;
-char far *buf;
-int cnt;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x3f;
-        r.x.bx = hndl;
-        r.x.cx = cnt;
-        r.x.dx = FP_OFF(buf);
-        s.ds = FP_SEG(buf);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return r.x.ax;
-}
-
-
-/*!Function int DosClose();                     */
-int DosClose(hndl)
-int hndl;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x3d;
-        r.x.bx = hndl;
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*!Function void DosProcessTerminate();         */
-void DosProcessTerminate(code)
-int code;
-{
-        exit(code);
-}
-
-
-/*!Function int DosSetDTA();                    */
-int DosSetDTA(p)
-char far *p;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x1a;
-        r.x.dx = FP_OFF(p);
-        s.ds = FP_SEG(p);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*Function int DosFindFirst();                          */
-int DosFindFirst(attr, name)
-int attr;
-char far *name;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x4e;
-        r.x.cx = attr;
-        r.x.dx = FP_OFF(name);
-        s.ds = FP_SEG(name);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*Function int DosFindNext();                           */
-int DosFindNext()
-{
-        union REGS r;
-
-        r.h.ah = 0x4f;
-        int86(0x21, &r, &r);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*Function int DosDirPath();                            */
-int DosDirPath(drive, pathp)
-int drive;
-char far *pathp;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x47;
-        s.ds = FP_SEG(pathp);
-        r.x.si = FP_OFF(pathp);
-        r.h.dl = drive;
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
-/*Function int DosSetDefaultDrive();                            */
-int DosSetDefaultDrive(drive)
-int drive;
-{
-        union REGS r;
-
-        r.h.ah = 0x0e;
-        r.h.dl = drive;
-        int86(0x21, &r, &r);
-        return r.h.al;
-}
-
-
-/*Function int DosGetCurrentDrive();                            */
-int DosGetCurrentDrive()
-{
-        union REGS r;
-
-        r.h.ah = 0x19;
-        int86(0x21, &r, &r);
-        return r.h.al;
-}
-
-
-/*Function int DosDiskFreeSpace();                              */
-int DosDiskFreeSpace(drive, av_clp, bpsp, max_clusp)
-int drive, *av_clp, *bpsp, *max_clusp;
-{
-        union REGS r;
-
-        r.h.ah = 0x36;
-        r.h.dl = drive;
-        int86(0x21, &r, &r);
-        *av_clp = r.x.bx;
-        *bpsp = r.x.cx;
-        *max_clusp = r.x.dx;
-        return r.x.ax;
-}
-
-
-/*Function int DosFATParseName();                               */
-int DosFATParseName(control, string, fcb)
-int control;
-char far **string;
-fcb far *fcb;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x29;
-        r.h.al = control;
-        s.ds = FP_SEG(*string);
-        r.x.si = FP_OFF(*string);
-        s.es = FP_SEG(fcb);
-        r.x.di = FP_OFF(fcb);
-        int86(0x21, &r, &r);
-        *string = MK_FP(s.ds, r.x.si);
-        return r.x.ax;
-}
-
-/*Function int DosExec();                               */
-int DosExec(fn, ep, lp)
-int fn;
-exec_blk far *ep;
-char far *lp;
-{
-        union REGS r;
-        struct SREGS s;
-
-        r.h.ah = 0x4b;
-        r.h.al = fn;
-        r.x.bx = FP_OFF(ep);
-        s.es = FP_SEG(ep);
-        r.x.dx = FP_OFF(lp);
-        s.ds = FP_SEG(lp);
-        int86x(0x21, &r, &r, &s);
-        if(r.x.cflag)
-                return -r.x.ax;
-        else
-                return 0;
-}
-
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/dosopt.c kern2003/ipl/src/misc/dosopt.c
--- kern2002/ipl/src/misc/dosopt.c	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/dosopt.c	Wed Dec 31 18:00:00 1969
@@ -1,262 +0,0 @@
-/****************************************************************/
-/*                                                              */
-/*                           dosopt.c                           */
-/*                                                              */
-/*           DOS Reusable Command Line Parsing Function         */
-/*                                                              */
-/*                          June 2, 1993                        */
-/*                                                              */
-/*                      Copyright (c) 1995                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-
-/* $Logfile:   C:/dos-c/src/misc/dosopt.c_v  $ */
-
-/*
- * $Log: dosopt.c,v $
- * Revision 1.2  1999/01/30 08:17:18  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- * 
- *
- *         Rev 1.2   29 Aug 1996 13:07:36   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:00   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:46   patv
- *      Initial revision.
- */
-
-
-#include "../../hdr/portab.h"
-
-#ifdef PROTO
-BOOL iswild(BYTE *);
-BYTE FAR *skipwh(BYTE FAR *);
-COUNT iseol(COUNT);
-COUNT issep(COUNT);
-BOOL iswhite(COUNT);
-COUNT tolower(COUNT);
-#else
-BOOL iswild();
-BYTE FAR *skipwh();
-COUNT iseol();
-COUNT issep();
-BOOL iswhite();
-COUNT tolower();
-#endif
-
-
-BYTE optswitch = '/';
-
-COUNT dosopt(fmt, s, args)
-BYTE *fmt;
-BYTE FAR *s;
-VOID *args;
-{
-        VOID **argp = &args, **startp;
-        BYTE *start, FAR *skipwh();
-        COUNT ret_count = 0;
-        BYTE FAR *p, FAR *q;
-
-        while(*fmt != '\0' && !iseol(*s))
-        {
-                switch(*fmt)
-                {
-                case '*':               /* The anything but option case */
-                        s = skipwh(s);
-                        if(!issep(*s))
-                                ++ret_count;
-                        while(!issep(*s))
-                                *((BYTE *)(*argp))++ = *s++;
-                        *((BYTE *)(*argp))++ = '\0';
-                        ++((BYTE **)argp);
-                        ++fmt;
-                        break;
-
-                case '$':
-                        ++fmt;
-                        switch(*fmt)
-                        {
-                        case 'd':
-                                s = skipwh(s);
-                                if(s[1] == ':')
-                                {
-                                        *((COUNT *)(*argp)) = ((tolower(*s)) - 'a');
-                                        s = &s[2];
-                                        ++ret_count;
-                                }
-                                else
-                                        *((COUNT *)(*argp))++ = -1;
-                                ++((COUNT **)argp);
-                                ++fmt;
-                                break;
-
-                        case 'p':
-                                s = skipwh(s);
-                                q = (BYTE FAR *)0;
-                                for(p = s; !issep(*p); ++p)
-                                {
-                                        if(*p == '/' || *p == '\\')
-                                                q = p;
-                                }
-                                if(q != (BYTE FAR *)0)
-                                {
-                                        COUNT n = 0;
-
-                                        do
-                                        {
-                                                *((BYTE *)(*argp))++ = *s++;
-                                                ++n;
-                                        }
-                                        while(s <= q);
-                                        if(n > 1 && (((BYTE *)(*argp))[-1] == '\\' || ((BYTE *)(*argp))[-1] == '/'))
-                                                ((BYTE *)(*argp))[-1] = '\0';
-                                        ++ret_count;
-                                }
-                                *((BYTE *)(*argp))++ = '\0';
-                                ++((BYTE **)argp);
-                                ++fmt;
-                                break;
-                        }
-                        break;
-
-                case '[':
-                        start = fmt;
-                        startp = argp;
-                        s = skipwh(s);
-                        if(*s == optswitch)
-                        {
-                                ++s;
-                                ++fmt;
-                                while(*fmt != ']')
-                                {
-                                        if(*fmt == ':')
-                                        {
-                                                ++fmt;
-                                                continue;
-                                        }
-                                        if(*fmt++ == tolower(*s))
-                                        {
-                                                if(*fmt == ':')
-                                                {
-                                                        ++s, ++s;
-                                                        while(!issep(*s))
-                                                                *((BYTE *)(*argp))++ = *s++;
-                                                        ++fmt;
-                                                }
-                                                else
-                                                {
-                                                        *((COUNT *)(*argp)) ^= 1;
-                                                        ++s;
-                                                }
-
-                                                while(*fmt++ != ']')
-                                                        ++((COUNT **)argp);
-                                                --fmt;
-                                                ++ret_count;
-                                        }
-                                        else
-                                                ++((COUNT **)argp);
-                                }
-                                if(*(fmt + 1) == '+')
-                                {
-                                        argp = startp;
-                                        fmt = start;
-                                }
-                        }
-                        else
-                                while(!issep(*s))
-                                        ++s;
-                        break;
-
-                default:
-                        break;
-                }
-        }
-        return ret_count;
-}
-
-
-BOOL iswild(s)
-BYTE *s;
-{
-        for( ; *s != '\0'; ++s)
-                if(*s == '?' || *s == '*')
-                        return TRUE;
-        return FALSE;
-}
-
-
-static COUNT tolower(c)
-COUNT c;
-{
-        static BYTE *alpha[2] =
-        {
-                "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
-                "abcdefghijklmnopqrstuvwxyz"
-        };
-        COUNT idx;
-
-        for(idx = 0; alpha[0][idx] != '\0'; ++idx)
-        {
-                if(alpha[0][idx] == c)
-                        return alpha[1][idx];
-        }
-        return c;
-}
-
-
-static BOOL iswhite(c)
-COUNT c;
-{
-        return (c == ' ' || c == '\t');
-}
-
-
-static BYTE FAR *skipwh(s)
-BYTE FAR *s;
-{
-        while(iswhite(*s))
-                ++s;
-        return s;
-}
-
-
-static COUNT iseol(c)
-COUNT c;
-{
-        return(c == '\0' || c == '\r' || c == '\n');
-}
-
-
-COUNT issep(c)
-COUNT c;
-{
-        return(iseol(c) || iswhite(c) || c == optswitch);
-}
-
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/home.c kern2003/ipl/src/misc/home.c
--- kern2002/ipl/src/misc/home.c	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/home.c	Wed Dec 31 18:00:00 1969
@@ -1,89 +0,0 @@
-/****************************************************************/
-/*                                                              */
-/*                            home.c                            */
-/*                                                              */
-/*                 DOS Find Home Directory Functions            */
-/*                                                              */
-/*                        August 2, 1993                        */
-/*                                                              */
-/*                      Copyright (c) 1993                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-
-/* $Logfile:   C:/dos-c/src/misc/home.c_v  $ */
-static char *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/misc/home.c,v 1.2 1999/01/30 08:17:18 jprice Exp $";
-
-/*
- * $Log: home.c,v $
- * Revision 1.2  1999/01/30 08:17:18  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- *
- *
- *         Rev 1.2   29 Aug 1996 13:07:36   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:00   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:46   patv
- *      Initial revision.
- */
-
-#include "../../hdr/portab.h"
-#include "../../hdr/device.h"
-#include "../../hdr/date.h"
-#include "../../hdr/time.h"
-#include "../../hdr/tail.h"
-#include "../../hdr/fcb.h"
-#include "../../hdr/process.h"
-#include "proto.h"
-
-#define SUCCESS 0
-
-static COUNT home_driveno;
-static BYTE home[67];
-
-VOID FindHome()
-{
-        /* Get the current drive, so we can switch back.                */
-        home_driveno = DosGetDrive();
-
-        /* Get the current directory. Note that the DOS system call     */
-        /* does not return drive or leading '\', so we need to add      */
-        /* them.                                                        */
-        home[0] = '\\';
-        DosPwd(home_driveno + 1, (BYTE FAR *)&home[1]);
-}
-
-
-BOOL GoHome()
-{
-        DosSetDrive(home_driveno);
-        if((DosCd((BYTE FAR *)home)) != SUCCESS)
-                return FALSE;
-        return TRUE;
-}
-
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/not386.asm kern2003/ipl/src/misc/not386.asm
--- kern2002/ipl/src/misc/not386.asm	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/not386.asm	Wed Dec 31 18:00:00 1969
@@ -1,65 +0,0 @@
-;;; not386.asm
-;;;
-;;; This is 16-bit (real, V86 or protected mode) 80x86 code which tells
-;;; you whether the processor you're running on supports 32-bit operations.
-;;; ('386 or better).  Returns zero if it does, non-zero if it doesn't.
-;;; Actually, the return code indicates what test proved that it
-;;; doesn't.  If the return value is -2, the push sp test failed.
-;;; If the return value is 16, the shift test failed.
-;;;
-;;; This test is completely of the operating system (if any) running
-;;; on the processor.  It uses one word of stack space and preserves
-;;; all registers except flags and ax.
-;;;
-;;; If the last "xor ah,ah" is changed to "mov ah,0", the zero flag is
-;;; properly set on return from this function.
-
-
-;; The following magic incantation is a bit mysterious to me...
-_TEXT   segment byte public use16 'CODE'
-assume  cs:_TEXT
-
-_not386 proc
-public  _not386
-;;
-;; This first test detects 80x86 for x < 2.  On the 8086 and '186,
-;; "push sp" does "--sp; sp[0] = sp".  On all later processors, it does
-;; "sp[-1] = sp; --sp".
-;;
-        push    sp
-        pop     ax
-        sub     ax,sp
-        jne     return
-
-;; This test is the key one.  It will probably detect 8086, V30 and 80186
-;; as well as 80286, but I haven't had access to test it on any of those,
-;; so it's protected by the well-knwon test above.
-;;
-;; This test uses the fact that the '386 and above have a barrel shifter
-;; to do shifts, while the '286 does left shifts by releated adds.
-;; That means that on the '286, the auxilliary carry gets a copy of
-;; bit 4 of the shift output, while on the '386 and up, it's trashed
-;; (as it happens, set to 1) independent of the result.
-;;
-;; We do two shifts, which should produce different auxilliary carries
-;; on a '286 and XOR them to see if they are different.  Even on a
-;; future processor that does something different with the aux carry
-;; flag, it probably does something data-independent, so this will still
-;; work.  Note that all flags except aux carry are defined for shl
-;; output and will be the same for both cases.
-
-        mov     al,4
-        shl     al,1    ; Expected to produce ac = 0 on a '286
-        lahf
-        shl     al,1    ; Expected to produce ac = 1 on a '286
-        mov     al,ah
-        lahf
-        xor     al,ah   ; Xor the flags together to detect the difference
-        xor     ah,ah   ; Clear ah
-return:
-        ret
-
-_not386 endp
-_TEXT   ends
-
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/num.c kern2003/ipl/src/misc/num.c
--- kern2002/ipl/src/misc/num.c	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/num.c	Wed Dec 31 18:00:00 1969
@@ -1,93 +0,0 @@
-/****************************************************************/
-/*                                                              */
-/*                            num.c                             */
-/*                                                              */
-/*                     DOS Numeric Functions                    */
-/*                                                              */
-/*                        August 2, 1993                        */
-/*                                                              */
-/*                      Copyright (c) 1993                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-
-/* $Logfile:   C:/dos-c/src/misc/num.c_v  $ */
-static char *RcsId = "$Header: /home/cvsroot/kernel/ipl/src/misc/num.c,v 1.2 1999/01/30 08:17:18 jprice Exp $";
-
-/*
- * $Log: num.c,v $
- * Revision 1.2  1999/01/30 08:17:18  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- *
- *
- *         Rev 1.2   29 Aug 1996 13:07:38   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:02   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:48   patv
- *      Initial revision.
- */
-
-#include "../../hdr/portab.h"
-#include "globals.h"
-#include "proto.h"
-
-BOOL isnum(c)
-COUNT c;
-{
-        /* The following will need to be converted to portable (not     */
-        /* ascii dependant) soon.                                       */
-        return (c >= '0' && c <= '9');
-}
-
-
-COUNT tonum(c)
-COUNT c;
-{
-        if(isnum(c))
-                return (c - '0');
-        else
-                return 0;
-}
-
-COUNT atoi(s)
-BYTE s[];
-{
-        COUNT i, n, sign;
-
-        for(i = 0; isspace(s[i]); i++)
-                ;
-        sign = (s[i] == '-') ? -1 : 1;
-
-        if(s[i] == '+' || s[i] == '-')
-                i++;
-
-        for(n = 0; isdigit(s[i]); i++)
-                n = 10 * n + (s[i] - '0');
-
-        return sign * n;
-}
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/prf.c kern2003/ipl/src/misc/prf.c
--- kern2002/ipl/src/misc/prf.c	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/prf.c	Wed Dec 31 18:00:00 1969
@@ -1,394 +0,0 @@
-
-/****************************************************************/
-/*                                                              */
-/*                            prf.c                             */
-/*                                                              */
-/*                  Abbreviated printf Function                 */
-/*                     DOS-C kernel version                     */
-/*                                                              */
-/*                       January 10, 1993                       */
-/*                                                              */
-/*                      Copyright (c) 1995                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-#include "../../hdr/portab.h"
-
-/* $Logfile:   C:/dos-c/src/misc/prf.c_v  $ */
-static BYTE *prfRcsId = "$Header: /home/cvsroot/kernel/ipl/src/misc/prf.c,v 1.2 1999/01/30 08:17:18 jprice Exp $";
-
-/*
- * $Log: prf.c,v $
- * Revision 1.2  1999/01/30 08:17:18  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- *
- *
- *         Rev 1.2   29 Aug 1996 13:07:38   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:02   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:50   patv
- *      Initial revision.
- */
-
-static BYTE *charp;
-
-#ifdef PROTO
-VOID handle_char(COUNT);
-VOID put_console(COUNT);
-BYTE *ltob(LONG, BYTE *, COUNT);
-static BYTE *itob(COUNT, BYTE *, COUNT);
-COUNT do_printf(CONST BYTE *, REG BYTE **);
-#else
-VOID handle_char();
-VOID put_console();
-BYTE *ltob();
-static BYTE *itob();
-COUNT do_printf();
-#endif
-
-/* The following is user supplied and must match the following prototype */
-#ifdef PROTO
-VOID sto (COUNT);
-#else
-VOID sto ();
-#endif
-
-/* special console output routine */
-VOID put_console(c)
-COUNT c;
-{
-        if(c == '\n')
-                sto('\r');
-        sto(c);
-}
-
-
-/* special handler to switch between sprintf and printf */
-static VOID handle_char(c)
-COUNT c;
-{
-        if(charp == 0)
-                put_console(c);
-        else
-                *charp++ = c;
-}
-
-
-/* ltob -- convert an long integer to a string in any base (2-16) */
-static BYTE *ltob(n, s, base)
-LONG n;
-BYTE *s;
-COUNT base;
-{
-        ULONG u;
-        REG BYTE *p, *q;
-        REG negative, c;
-
-        if (n < 0 && base == -10)
-        {
-                negative = 1;
-                u = -n;
-        }
-        else
-        {
-                negative = 0;
-                u = n;
-        }
-        if (base == -10)                /* signals signed conversion */
-                base = 10;
-        p = q = s;
-        do
-        {                               /* generate digits in reverse order */
-                *p++ = "0123456789abcdef"[u % base];
-        } while ((u /= base) > 0);
-        if (negative)
-                *p++ = '-';
-        *p = '\0';                      /* terminate the string */
-        while (q < --p)
-        {                               /* reverse the digits */
-                c = *q;
-                *q++ = *p;
-                *p = c;
-        }
-        return s;
-}
-
-/* itob -- convert an long integer to a string in any base (2-16) */
-static BYTE *itob(n, s, base)
-COUNT n;
-BYTE *s;
-COUNT base;
-{
-        UWORD u;
-        REG BYTE *p, *q;
-        REG negative, c;
-
-        if (n < 0 && base == -10)
-        {
-                negative = 1;
-                u = -n;
-        }
-        else
-        {
-                negative = 0;
-                u = n;
-        }
-        if (base == -10)                /* signals signed conversion */
-                base = 10;
-        p = q = s;
-        do
-        {                               /* generate digits in reverse order */
-                *p++ = "0123456789abcdef"[u % base];
-        } while ((u /= base) > 0);
-        if (negative)
-                *p++ = '-';
-        *p = '\0';                      /* terminate the string */
-        while (q < --p)
-        {                               /* reverse the digits */
-                c = *q;
-                *q++ = *p;
-                *p = c;
-        }
-        return s;
-}
-
-#define NONE    0
-#define LEFT    1
-#define RIGHT   2
-
-/* printf -- short version of printf to conserve space */
-WORD printf(fmt, args)
-CONST BYTE *fmt;
-BYTE *args;
-{
-        charp = 0;
-        return do_printf(fmt, &args);
-}
-
-WORD sprintf(buff, fmt, args)
-BYTE *buff;
-CONST BYTE *fmt;
-BYTE *args;
-{
-        WORD ret;
-
-        charp = buff;
-        ret = do_printf(fmt, &args);
-        handle_char(NULL);
-        return ret;
-}
-
-
-static COUNT do_printf(fmt, arg)
-CONST BYTE *fmt;
-REG BYTE **arg;
-{
-        REG base;
-        BYTE s[11], *p, *ltob();
-        BYTE c, slen, flag, size, fill;
-
-        flag = NONE;
-        size = 0;
-        while ((c = *fmt++) != '\0')
-        {
-                if (size == 0 && flag == NONE && c != '%')
-                {
-                        handle_char(c);
-                        continue;
-                }
-                if(flag == NONE && *fmt == '0')
-                {
-                        flag = RIGHT;
-                        fill = '0';
-                }
-                switch(*fmt)
-                {
-                case '-':
-                        flag = RIGHT;
-                        fill = *(fmt + 1) == '0' ? '0' : ' ';
-                        continue;
-
-                case '0':
-                case '1':
-                case '2':
-                case '3':
-                case '4':
-                case '5':
-                case '6':
-                case '7':
-                case '8':
-                case '9':
-                        if(flag == NONE)
-                                flag = LEFT;
-                        size = *fmt++ - '0';
-                        while((c = *fmt++) != '\0')
-                        {
-                                switch(c)
-                                {
-                                case '0':
-                                case '1':
-                                case '2':
-                                case '3':
-                                case '4':
-                                case '5':
-                                case '6':
-                                case '7':
-                                case '8':
-                                case '9':
-                                        size = size * 10 + (c - '0');
-                                        continue;
-
-                                default:
-                                        --fmt;
-                                        break;
-                                }
-                                break;
-                        }
-                        break;
-                }
-                switch (c = *fmt++)
-                {
-                case 'c':
-                        handle_char(*(COUNT *)arg++);
-                        continue;
-
-                case 'd':
-                        base = -10;
-                        goto prt;
-
-                case 'o':
-                        base = 8;
-                        goto prt;
-
-                case 'u':
-                        base = 10;
-                        goto prt;
-
-                case 'x':
-                        base = 16;
-
-                prt:
-                        itob(*((COUNT *)arg)++, s, base);
-                        if(flag == RIGHT || flag == LEFT)
-                        {
-                                for(slen = 0, p = s; *p != '\0'; p++)
-                                        ++slen;
-                        }
-                        if(flag == RIGHT && slen < size)
-                        {
-                                WORD i;
-
-                                for(i = size - slen; i > 0; i--)
-                                        handle_char(fill);
-                        }
-                        for(p = s; *p != '\0'; p++)
-                                handle_char(*p);
-                        if(flag == LEFT)
-                        {
-                                WORD i;
-                                BYTE sp = ' ';
-
-                                for(i = size - slen; i > 0; i--)
-                                        handle_char(sp);
-                        }
-                        size = 0;
-                        flag = NONE;
-                        continue;
-
-                case 'l':
-                        switch(c = *fmt++)
-                        {
-                        case 'd':
-                                base = -10;
-                                goto lprt;
-
-                        case 'o':
-                                base = 8;
-                                goto lprt;
-
-                        case 'u':
-                                base = 10;
-                                goto lprt;
-
-                        case 'x':
-                                base = 16;
-
-                        lprt:
-                                ltob(*((LONG *)arg)++, s, base);
-                                if(flag == RIGHT || flag == LEFT)
-                                {
-                                        for(slen = 0, p = s; *p != '\0'; p++)
-                                                ++slen;
-                                }
-                                if(flag == RIGHT && slen < size)
-                                {
-                                        WORD i;
-
-                                        for(i = size - slen; i > 0; i--)
-                                                handle_char(fill);
-                                }
-                                for(p = s; *p != '\0'; p++)
-                                        handle_char(*p);
-                                if(flag == LEFT)
-                                {
-                                        WORD i;
-                                        BYTE sp = ' ';
-
-                                        for(i = size - slen; i > 0; i--)
-                                                handle_char(sp);
-                                }
-                                size = 0;
-                                flag = NONE;
-                                continue;
-
-                        default:
-                                handle_char(c);
-                        }
-
-                case 's':
-                        for(p = *arg; *p != '\0'; p++)
-                        {
-                                --size;
-                                handle_char(*p);
-                        }
-                        for( ; size > 0; size--)
-                                handle_char(' ');
-                        ++arg;
-                        size = 0;
-                        flag = NONE;
-                        continue;
-
-                default:
-                        handle_char(c);
-                        continue;
-                }
-        }
-        return 0;
-}
-
-
-
diff -b -B -d -N -s -w -r --unified kern2002/ipl/src/misc/strings.c kern2003/ipl/src/misc/strings.c
--- kern2002/ipl/src/misc/strings.c	Sat Jan 30 02:17:18 1999
+++ kern2003/ipl/src/misc/strings.c	Wed Dec 31 18:00:00 1969
@@ -1,175 +0,0 @@
-
-/****************************************************************/
-/*                                                              */
-/*                          strings.c                           */
-/*                                                              */
-/*                Global String Handling Functions              */
-/*                                                              */
-/*                      Copyright (c) 1995                      */
-/*                      Pasquale J. Villani                     */
-/*                      All Rights Reserved                     */
-/*                                                              */
-/* This file is part of DOS-C.                                  */
-/*                                                              */
-/* DOS-C is free software; you can redistribute it and/or       */
-/* modify it under the terms of the GNU General Public License  */
-/* as published by the Free Software Foundation; either version */
-/* 2, or (at your option) any later version.                    */
-/*                                                              */
-/* DOS-C is distributed in the hope that it will be useful, but */
-/* WITHOUT ANY WARRANTY; without even the implied warranty of   */
-/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See    */
-/* the GNU General Public License for more details.             */
-/*                                                              */
-/* You should have received a copy of the GNU General Public    */
-/* License along with DOS-C; see the file COPYING.  If not,     */
-/* write to the Free Software Foundation, 675 Mass Ave,         */
-/* Cambridge, MA 02139, USA.                                    */
-/****************************************************************/
-
-
-#include "../../hdr/portab.h"
-
-/* $Logfile:   C:/dos-c/src/misc/strings.c_v  $ */
-static BYTE *stringsRcsId = "$Header: /home/cvsroot/kernel/ipl/src/misc/strings.c,v 1.2 1999/01/30 08:17:18 jprice Exp $";
-
-/*
- * $Log: strings.c,v $
- * Revision 1.2  1999/01/30 08:17:18  jprice
- * Clean up
- *
- * Revision 1.1.1.1  1999/01/20 05:51:00  jprice
- * Imported sources
- *
- *
- *         Rev 1.2   29 Aug 1996 13:07:36   patv
- *      Bug fixes for v0.91b
- *
- *         Rev 1.1   01 Sep 1995 18:11:02   patv
- *      First GPL release.
- *
- *         Rev 1.0   02 Jul 1995 11:04:42   patv
- *      Initial revision.
- */
-
-#ifdef PROTO
-VOID strcpy(REG BYTE *, REG BYTE *);
-#endif
-
-
-COUNT strlen(s)
-REG BYTE *s;
-{
-        REG WORD cnt = 0;
-
-        while(*s++ != 0)
-                ++cnt;
-        return cnt;
-}
-
-
-COUNT fstrlen(s)
-REG BYTE FAR *s;
-{
-        REG WORD cnt = 0;
-
-        while(*s++ != 0)
-                ++cnt;
-        return cnt;
-}
-
-
-VOID strcpy(d, s)
-REG BYTE *d, *s;
-{
-        while(*s != 0)
-                *d++ = *s++;
-        *d = 0;
-}
-
-VOID strncpy(d, s, l)
-REG BYTE *d, *s;
-COUNT l;
-{
-        COUNT idx = 1;
-        while(*s != 0 && idx++ <= l)
-                *d++ = *s++;
-        *d = 0;
-}
-
-
-VOID strcat(d, s)
-REG BYTE *d, *s;
-{
-        while(*d != 0)
-                ++d;
-        strcpy(d, s);
-}
-
-
-COUNT strcmp(d, s)
-REG BYTE *d, *s;
-{
-        while(*s != '\0' && *d != '\0')
-        {
-                if(*d == *s)
-                        ++s, ++d;
-                else
-                        return *d - *s;
-        }
-        return *d - *s;
-}
-
-COUNT strncmp(d, s, l)
-REG BYTE *d, *s;
-COUNT l;
-{
-        COUNT index = 1;
-        while(*s != '\0' && *d != '\0' && index++ <= l)
-        {
-                if(*d == *s)
-                        ++s, ++d;
-                else
-                        return *d - *s;
-        }
-        return *d - *s;
-}
-
-
-VOID fstrncpy(d, s, l)
-REG BYTE FAR *d, FAR *s;
-COUNT l;
-{
-        COUNT idx = 1;
-        while(*s != 0 && idx++ <= l)
-                *d++ = *s++;
-        *d = 0;
-}
-
-
-/* Yet another change for true portability (WDL)                        */
-COUNT tolower(c)
-COUNT c;
-{
-        if(c >= 'A' && c <= 'Z')
-                return (c + ('a' - 'A'));
-        else
-                return c;
-}
-
-
-/* Yet another change for true portability (PJV)                        */
-COUNT toupper(c)
-COUNT c;
-{
-        if(c >= 'a' && c <= 'z')
-                return (c - ('a' - 'A'));
-        else
-                return c;
-}
-
-
-
-
-
-
Files kern2002/ipl/src/utils/exe2bin.exe and kern2003/ipl/src/utils/exe2bin.exe are identical
Files kern2002/ipl/src/utils/makelibm.bat and kern2003/ipl/src/utils/makelibm.bat are identical
Files kern2002/ipl/src/utils/mscpath.bat and kern2003/ipl/src/utils/mscpath.bat are identical
Files kern2002/ipl/src/utils/pop.bat and kern2003/ipl/src/utils/pop.bat are identical
Files kern2002/ipl/src/utils/proto.bat and kern2003/ipl/src/utils/proto.bat are identical
Files kern2002/ipl/src/utils/release.bat and kern2003/ipl/src/utils/release.bat are identical
Files kern2002/ipl/src/utils/rmfiles.bat and kern2003/ipl/src/utils/rmfiles.bat are identical
Files kern2002/ipl/src/utils/tgldump.c and kern2003/ipl/src/utils/tgldump.c are identical
Files kern2002/kernel/hdr/cds.h and kern2003/kernel/hdr/cds.h are identical
Files kern2002/kernel/hdr/clock.h and kern2003/kernel/hdr/clock.h are identical
Files kern2002/kernel/hdr/date.h and kern2003/kernel/hdr/date.h are identical
Files kern2002/kernel/hdr/dcb.h and kern2003/kernel/hdr/dcb.h are identical
Files kern2002/kernel/hdr/device.h and kern2003/kernel/hdr/device.h are identical
Files kern2002/kernel/hdr/dhdr.h and kern2003/kernel/hdr/dhdr.h are identical
Files kern2002/kernel/hdr/dirmatch.h and kern2003/kernel/hdr/dirmatch.h are identical
Files kern2002/kernel/hdr/dosnames.h and kern2003/kernel/hdr/dosnames.h are identical
Files kern2002/kernel/hdr/error.h and kern2003/kernel/hdr/error.h are identical
Files kern2002/kernel/hdr/exe.h and kern2003/kernel/hdr/exe.h are identical
Files kern2002/kernel/hdr/fat.h and kern2003/kernel/hdr/fat.h are identical
Files kern2002/kernel/hdr/fcb.h and kern2003/kernel/hdr/fcb.h are identical
Files kern2002/kernel/hdr/file.h and kern2003/kernel/hdr/file.h are identical
Files kern2002/kernel/hdr/fnode.h and kern2003/kernel/hdr/fnode.h are identical
Files kern2002/kernel/hdr/kbd.h and kern2003/kernel/hdr/kbd.h are identical
Files kern2002/kernel/hdr/mcb.h and kern2003/kernel/hdr/mcb.h are identical
Files kern2002/kernel/hdr/pcb.h and kern2003/kernel/hdr/pcb.h are identical
Files kern2002/kernel/hdr/portab.h and kern2003/kernel/hdr/portab.h are identical
Files kern2002/kernel/hdr/process.h and kern2003/kernel/hdr/process.h are identical
Files kern2002/kernel/hdr/sft.h and kern2003/kernel/hdr/sft.h are identical
Files kern2002/kernel/hdr/stacks.inc and kern2003/kernel/hdr/stacks.inc are identical
Files kern2002/kernel/hdr/tail.h and kern2003/kernel/hdr/tail.h are identical
Files kern2002/kernel/hdr/time.h and kern2003/kernel/hdr/time.h are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/hdr/version.h kern2003/kernel/hdr/version.h
--- kern2002/kernel/hdr/version.h	Sun Feb  7 23:58:24 1999
+++ kern2003/kernel/hdr/version.h	Mon Mar  1 01:19:48 1999
@@ -28,7 +28,7 @@
 
 #ifdef MAIN
 #ifdef VERSION_STRINGS
-static BYTE *date_hRcsId = "$Id: version.h,v 1.5 1999/02/08 05:58:24 jprice Exp $";
+static BYTE *date_hRcsId = "$Id: version.h,v 1.6 1999/03/01 07:19:48 jprice Exp $";
 #endif
 #endif
 
@@ -39,5 +39,5 @@
 
 #define REVISION_MAJOR  1
 #define REVISION_MINOR  1
-#define REVISION_SEQ    0
-#define BUILD           2002
+#define REVISION_SEQ    1
+#define BUILD           2003
Files kern2002/kernel/lib/dummy.txt and kern2003/kernel/lib/dummy.txt are identical
Files kern2002/kernel/src/boot/boot.asm and kern2003/kernel/src/boot/boot.asm are identical
Files kern2002/kernel/src/boot/boot.mak and kern2003/kernel/src/boot/boot.mak are identical
Files kern2002/kernel/src/drivers/console.asm and kern2003/kernel/src/drivers/console.asm are identical
Files kern2002/kernel/src/drivers/devend.asm and kern2003/kernel/src/drivers/devend.asm are identical
Files kern2002/kernel/src/drivers/device.mak and kern2003/kernel/src/drivers/device.mak are identical
Files kern2002/kernel/src/drivers/eoi.asm and kern2003/kernel/src/drivers/eoi.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/drivers/floppy.asm kern2003/kernel/src/drivers/floppy.asm
--- kern2002/kernel/src/drivers/floppy.asm	Sun Feb  7 23:49:46 1999
+++ kern2003/kernel/src/drivers/floppy.asm	Sat Feb 13 22:25:16 1999
@@ -27,9 +27,12 @@
 ;
 ; $Logfile:   C:/usr/patv/dos-c/src/drivers/floppy.asv  $
 ;
-; $Id: floppy.asm,v 1.3 1999/02/08 05:49:47 jprice Exp $
+; $Id: floppy.asm,v 1.4 1999/02/14 04:25:16 jprice Exp $
 ;
 ; $Log: floppy.asm,v $
+; Revision 1.4  1999/02/14 04:25:16  jprice
+; Added functions to check if a floppy disk has been changed.
+;
 ; Revision 1.3  1999/02/08 05:49:47  jprice
 ; Added Pat's 1937 kernel patches
 ;
@@ -115,6 +118,81 @@
 fl_rst1:        xor     ax,ax           ; FALSE on error
                 ret
 _fl_reset       endp
+
+
+;
+;
+; Read DASD Type
+;
+; COUNT fl_readdasd(WORD drive)
+;
+;       returns 0-3 if successful, 0xFF if error
+;
+; Code   Meaning
+;  0     The drive is not present
+;  1     Drive present, cannot detect disk change
+;  2     Drive present, can detect disk change
+;  3     Fixed disk
+;
+
+_fl_readdasd    proc    near
+                public  _fl_readdasd
+
+                push    bp              ; C entry
+                mov     bp,sp
+
+                mov     dl,[bp+4]       ; get the drive number
+                mov     ah,15h          ;  read DASD type
+                int     13h
+
+                jc      fl_rdasd1       ; cy==1 is error
+                mov     al,ah           ; for the return code
+                xor     ah,ah
+                pop     bp              ; C exit
+                ret
+
+fl_rdasd1:      mov     ah,0            ; BIOS reset disketter & fixed disk
+                int     13h
+                mov     ax,0FFh         ; 0xFF on error
+                pop     bp              ; C exit
+                ret
+_fl_readdasd    endp
+
+
+;
+;
+; Read disk change line status
+;
+; COUNT fl_diskchanged(WORD drive)
+;
+;       returns 1 if disk has changed, 0 if not, 0xFF if error
+;
+
+_fl_diskchanged proc    near
+                public  _fl_diskchanged
+
+                push    bp              ; C entry
+                mov     bp,sp
+
+                mov     dl,[bp+4]       ; get the drive number
+                mov     ah,16h          ;  read change status type
+                int     13h
+
+                jc      fl_dchanged1    ; cy==1 is error or disk has changed
+                xor     ax,ax           ; disk has not changed
+                pop     bp              ; C exit
+                ret
+
+fl_dchanged1:   cmp     ah,6
+                jne     fl_dc_error
+                mov     ax,1
+                pop     bp              ; C exit
+                ret
+
+fl_dc_error:    mov     ax,0FFh         ; 0xFF on error
+                pop     bp              ; C exit
+                ret
+_fl_diskchanged endp
 
 
 ;
Files kern2002/kernel/src/drivers/fmemcmp.asm and kern2003/kernel/src/drivers/fmemcmp.asm are identical
Files kern2002/kernel/src/drivers/fmemcpy.asm and kern2003/kernel/src/drivers/fmemcpy.asm are identical
Files kern2002/kernel/src/drivers/fmemset.asm and kern2003/kernel/src/drivers/fmemset.asm are identical
Files kern2002/kernel/src/drivers/getvec.asm and kern2003/kernel/src/drivers/getvec.asm are identical
Files kern2002/kernel/src/drivers/inb.asm and kern2003/kernel/src/drivers/inb.asm are identical
Files kern2002/kernel/src/drivers/int86.asm and kern2003/kernel/src/drivers/int86.asm are identical
Files kern2002/kernel/src/drivers/intr.asm and kern2003/kernel/src/drivers/intr.asm are identical
Files kern2002/kernel/src/drivers/inw.asm and kern2003/kernel/src/drivers/inw.asm are identical
Files kern2002/kernel/src/drivers/keyboard.asm and kern2003/kernel/src/drivers/keyboard.asm are identical
Files kern2002/kernel/src/drivers/outb.asm and kern2003/kernel/src/drivers/outb.asm are identical
Files kern2002/kernel/src/drivers/outw.asm and kern2003/kernel/src/drivers/outw.asm are identical
Files kern2002/kernel/src/drivers/rdatclk.asm and kern2003/kernel/src/drivers/rdatclk.asm are identical
Files kern2002/kernel/src/drivers/rdpcclk.asm and kern2003/kernel/src/drivers/rdpcclk.asm are identical
Files kern2002/kernel/src/drivers/setvec.asm and kern2003/kernel/src/drivers/setvec.asm are identical
Files kern2002/kernel/src/drivers/spl.asm and kern2003/kernel/src/drivers/spl.asm are identical
Files kern2002/kernel/src/drivers/timer.asm and kern2003/kernel/src/drivers/timer.asm are identical
Files kern2002/kernel/src/drivers/wratclk.asm and kern2003/kernel/src/drivers/wratclk.asm are identical
Files kern2002/kernel/src/drivers/wrpcclk.asm and kern2003/kernel/src/drivers/wrpcclk.asm are identical
Files kern2002/kernel/src/fs/blockio.c and kern2003/kernel/src/fs/blockio.c are identical
Files kern2002/kernel/src/fs/chario.c and kern2003/kernel/src/fs/chario.c are identical
Files kern2002/kernel/src/fs/dosfns.c and kern2003/kernel/src/fs/dosfns.c are identical
Files kern2002/kernel/src/fs/dosnames.c and kern2003/kernel/src/fs/dosnames.c are identical
Files kern2002/kernel/src/fs/error.c and kern2003/kernel/src/fs/error.c are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/fs/fatdir.c kern2003/kernel/src/fs/fatdir.c
--- kern2002/kernel/src/fs/fatdir.c	Mon Feb  8 20:54:22 1999
+++ kern2003/kernel/src/fs/fatdir.c	Sat Feb 13 22:27:10 1999
@@ -31,11 +31,14 @@
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *fatdirRcsId = "$Id: fatdir.c,v 1.5 1999/02/09 02:54:23 jprice Exp $";
+static BYTE *fatdirRcsId = "$Id: fatdir.c,v 1.6 1999/02/14 04:27:09 jprice Exp $";
 #endif
 
 /*
  * $Log: fatdir.c,v $
+ * Revision 1.6  1999/02/14 04:27:09  jprice
+ * Changed check media so that it checks if a floppy disk has been changed.
+ *
  * Revision 1.5  1999/02/09 02:54:23  jprice
  * Added Pat's 1937 kernel patches
  *
@@ -458,7 +461,7 @@
 #endif
   /* Clear buffers after release                                  */
   flush_buffers(disk);
-  setinvld(disk);
+//jpp:  setinvld(disk);
 
   /* and release this instance of the fnode                       */
   --(fnp->f_dpb)->dpb_count;
Files kern2002/kernel/src/fs/fatfs.c and kern2003/kernel/src/fs/fatfs.c are identical
Files kern2002/kernel/src/fs/fattab.c and kern2003/kernel/src/fs/fattab.c are identical
Files kern2002/kernel/src/fs/fcbfns.c and kern2003/kernel/src/fs/fcbfns.c are identical
Files kern2002/kernel/src/fs/misc.c and kern2003/kernel/src/fs/misc.c are identical
Files kern2002/kernel/src/fs/prf.c and kern2003/kernel/src/fs/prf.c are identical
Files kern2002/kernel/src/fs/syspack.c and kern2003/kernel/src/fs/syspack.c are identical
Files kern2002/kernel/src/kernel/001-437.nls and kern2003/kernel/src/kernel/001-437.nls are identical
Files kern2002/kernel/src/kernel/apisupt.asm and kern2003/kernel/src/kernel/apisupt.asm are identical
Files kern2002/kernel/src/kernel/asmsupt.asm and kern2003/kernel/src/kernel/asmsupt.asm are identical
Files kern2002/kernel/src/kernel/config.c and kern2003/kernel/src/kernel/config.c are identical
Files kern2002/kernel/src/kernel/console.asm and kern2003/kernel/src/kernel/console.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/kernel/dsk.c kern2003/kernel/src/kernel/dsk.c
--- kern2002/kernel/src/kernel/dsk.c	Sun Feb  7 23:55:56 1999
+++ kern2003/kernel/src/kernel/dsk.c	Sat Feb 13 22:26:46 1999
@@ -28,11 +28,14 @@
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-static BYTE *dskRcsId = "$Id: dsk.c,v 1.4 1999/02/08 05:55:57 jprice Exp $";
+static BYTE *dskRcsId = "$Id: dsk.c,v 1.5 1999/02/14 04:26:46 jprice Exp $";
 #endif
 
 /*
  * $Log: dsk.c,v $
+ * Revision 1.5  1999/02/14 04:26:46  jprice
+ * Changed check media so that it checks if a floppy disk has been changed.
+ *
  * Revision 1.4  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
@@ -73,6 +76,8 @@
 
 #ifdef PROTO
 BOOL fl_reset(VOID);
+COUNT fl_readdasd(WORD);
+COUNT fl_diskchanged(WORD);
 COUNT fl_rd_status(WORD);
 COUNT fl_read(WORD, WORD, WORD, WORD, WORD, BYTE FAR *);
 COUNT fl_write(WORD, WORD, WORD, WORD, WORD, BYTE FAR *);
@@ -80,6 +85,8 @@
 BOOL fl_format(WORD, BYTE FAR *);
 #else
 BOOL fl_reset();
+COUNT fl_readdasd();
+COUNT fl_diskchanged();
 COUNT fl_rd_status();
 COUNT fl_read();
 COUNT fl_write();
@@ -209,8 +216,7 @@
 
 #define hd(x)   ((x) & 0x80)
 
-COUNT
-processtable(COUNT ptDrive, BYTE ptHead, UWORD ptCylinder,
+COUNT processtable(COUNT ptDrive, BYTE ptHead, UWORD ptCylinder,
              BYTE ptSector, LONG ptAccuOff)
 {
   struct                        /* Temporary partition table    */
@@ -339,8 +345,7 @@
     return ((*dispatch[rp->r_command]) (rp));
 }
 
-static WORD
-  init(rqptr rp)
+static WORD init(rqptr rp)
 {
   extern COUNT fl_nrdrives(VOID);
   COUNT HardDrive,
@@ -392,18 +397,43 @@
   return S_DONE;
 }
 
-static WORD
-  mediachk(rqptr rp)
+static WORD mediachk(rqptr rp)
 {
-  if (hd(miarray[rp->r_unit].mi_drive))
+  COUNT drive = miarray[rp->r_unit].mi_drive;
+  COUNT result;
+
+  /* if it's a hard drive, media never changes */
+  if (hd(drive))
+    rp->r_mcretcode = M_NOT_CHANGED;
+  else  /* else, check floppy status */
+  {
+    if ((result = fl_readdasd(drive)) == 2) /* if we can detect a change ... */
+    {
+      if ((result = fl_diskchanged(drive)) == 1)  /* check if it has changed...*/
+        rp->r_mcretcode = M_CHANGED;
+      else if (result == 0)
     rp->r_mcretcode = M_NOT_CHANGED;
   else
+      {
+        rp->r_mcretcode = tdelay((LONG) 37) ? M_DONT_KNOW : M_NOT_CHANGED;
+//        rp->r_mcretcode = M_DONT_KNOW;
+      }
+    }
+    else if (result == 3)  /* if it's a fixed disk, then no change*/
+    {
+      rp->r_mcretcode = M_NOT_CHANGED;
+    }
+    else  /* can not detect or error... */
+    {
+//      rp->r_mcretcode = M_DONT_KNOW;
     rp->r_mcretcode = tdelay((LONG) 37) ? M_DONT_KNOW : M_NOT_CHANGED;
+    }
+  }
+
   return S_DONE;
 }
 
-static WORD
-  bldbpb(rqptr rp)
+static WORD bldbpb(rqptr rp)
 {
   REG retry = N_RETRY;
   ULONG count;
@@ -483,8 +513,7 @@
   return S_DONE;
 }
 
-static WORD
-  blockio(rqptr rp)
+static WORD blockio(rqptr rp)
 {
   REG retry = N_RETRY,
     remaining;
@@ -549,15 +578,13 @@
   return S_DONE;
 }
 
-static WORD
-  blk_error(rqptr rp)
+static WORD blk_error(rqptr rp)
 {
   rp->r_count = 0;
   return failure(E_FAILURE);    /* general failure */
 }
 
-static WORD
-  dskerr(COUNT code)
+static WORD dskerr(COUNT code)
 {
 /*      printf("diskette error:\nhead = %d\ntrack = %d\nsector = %d\ncount = %d\n",
    head, track, sector, count); */
@@ -592,8 +619,7 @@
 /*                                                                      */
 /* Do logical block number to physical head/track/sector mapping        */
 /*                                                                      */
-static COUNT
-  ltop(WORD * trackp, WORD * sectorp, WORD * headp, REG COUNT unit, COUNT count, LONG strt_sect, byteptr strt_addr)
+static COUNT ltop(WORD * trackp, WORD * sectorp, WORD * headp, REG COUNT unit, COUNT count, LONG strt_sect, byteptr strt_addr)
 {
 #ifdef I86
   ULONG ltemp;
Files kern2002/kernel/src/kernel/entry.asm and kern2003/kernel/src/kernel/entry.asm are identical
Files kern2002/kernel/src/kernel/execrh.asm and kern2003/kernel/src/kernel/execrh.asm are identical
Files kern2002/kernel/src/kernel/globals.h and kern2003/kernel/src/kernel/globals.h are identical
Files kern2002/kernel/src/kernel/initoem.c and kern2003/kernel/src/kernel/initoem.c are identical
Files kern2002/kernel/src/kernel/int2f.asm and kern2003/kernel/src/kernel/int2f.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/kernel/inthndlr.c kern2003/kernel/src/kernel/inthndlr.c
--- kern2002/kernel/src/kernel/inthndlr.c	Sun Feb  7 23:55:56 1999
+++ kern2003/kernel/src/kernel/inthndlr.c	Sun Feb 28 23:45:08 1999
@@ -31,11 +31,14 @@
 #include "globals.h"
 
 #ifdef VERSION_STRINGS
-BYTE *RcsId = "$Id: inthndlr.c,v 1.6 1999/02/08 05:55:57 jprice Exp $";
+BYTE *RcsId = "$Id: inthndlr.c,v 1.7 1999/03/01 05:45:08 jprice Exp $";
 #endif
 
 /*
  * $Log: inthndlr.c,v $
+ * Revision 1.7  1999/03/01 05:45:08  jprice
+ * Added some DEBUG ifdef's so that it will compile without DEBUG defined.
+ *
  * Revision 1.6  1999/02/08 05:55:57  jprice
  * Added Pat's 1937 kernel patches
  *
@@ -164,12 +167,16 @@
 
           /* Toggle DOS-C rdwrblock trace dump                    */
         case 0xfd:
+#ifdef DEBUG
           bDumpRdWrParms = !bDumpRdWrParms;
+#endif
           break;
 
           /* Toggle DOS-C syscall trace dump                      */
         case 0xfe:
+#ifdef DEBUG
           bDumpRegs = !bDumpRegs;
+#endif
           break;
 
           /* Get DOS-C release string pointer                     */
@@ -211,6 +218,7 @@
 
   p->ps_stack = (BYTE FAR *) r;
 
+#ifdef DEBUG
   if (bDumpRegs)
   {
     fbcopy((VOID FAR *) user_r, (VOID FAR *) & error_regs, sizeof(iregs));
@@ -218,6 +226,7 @@
     dump_regs = TRUE;
     dump();
   }
+#endif
 
   /* The dispatch handler                                         */
   switch (r->AH)
@@ -1277,7 +1286,9 @@
           break;
 
         case 0x02:
+#ifdef DEBUG
           bDumpRegs = FALSE;
+#endif
           break;
       }
 #endif
@@ -1384,6 +1395,7 @@
       break;
   }
 
+#ifdef DEBUG
   if (bDumpRegs)
   {
     fbcopy((VOID FAR *) user_r, (VOID FAR *) & error_regs,
@@ -1391,6 +1403,7 @@
     dump_regs = TRUE;
     dump();
   }
+#endif
 }
 
 VOID INRPT FAR int22_handler(void)
@@ -1554,10 +1567,14 @@
 {
   if (bTraceNext)
   {
+#ifdef DEBUG
     bDumpRegs = TRUE;
+#endif
     bTraceNext = FALSE;
   }
+#ifdef DEBUG
   else
     bDumpRegs = FALSE;
+#endif
 }
 #endif
Files kern2002/kernel/src/kernel/io.asm and kern2003/kernel/src/kernel/io.asm are identical
Files kern2002/kernel/src/kernel/io.inc and kern2003/kernel/src/kernel/io.inc are identical
Files kern2002/kernel/src/kernel/ioctl.c and kern2003/kernel/src/kernel/ioctl.c are identical
Files kern2002/kernel/src/kernel/irqstack.asm and kern2003/kernel/src/kernel/irqstack.asm are identical
Files kern2002/kernel/src/kernel/kernel.asm and kern2003/kernel/src/kernel/kernel.asm are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/kernel/kernel.mak kern2003/kernel/src/kernel/kernel.mak
--- kern2002/kernel/src/kernel/kernel.mak	Mon Feb  8 22:49:42 1999
+++ kern2003/kernel/src/kernel/kernel.mak	Mon Mar  1 00:04:38 1999
@@ -1,9 +1,15 @@
 #
 # Makefile for Borland C++ 3.1 for kernel.exe
 #
-# $Id: kernel.mak,v 1.5 1999/02/09 04:49:43 jprice Exp $
+# $Id: kernel.mak,v 1.7 1999/03/01 06:04:37 jprice Exp $
 #
 # $Log: kernel.mak,v $
+# Revision 1.7  1999/03/01 06:04:37  jprice
+# Fixed so it'll work with config.mak
+#
+# Revision 1.6  1999/03/01 05:46:43  jprice
+# Turned off DEBUG define.
+#
 # Revision 1.5  1999/02/09 04:49:43  jprice
 # Make makefile use common config.mak file
 #
@@ -63,10 +69,10 @@
 #
 # Compiler and Options for Borland C++
 # ------------------------------------
-CC = $(CC) +kernel.cfg
 LIBPATH = .
 INCLUDEPATH = ..\HDR
-CFLAGS          = -v -X -I. -D__STDC__=0 -DTSC -DDEBUG -DKERNEL -DI86 -DPROTO -DSHWR -DASMSUPT
+#CFLAGS          = -v -X -I. -D__STDC__=0 -DTSC -DDEBUG -DKERNEL -DI86 -DPROTO -DSHWR -DASMSUPT
+CFLAGS          = -v -X -I. -D__STDC__=0 -DTSC -DKERNEL -DI86 -DPROTO -DSHWR -DASMSUPT
 AFLAGS          = /Mx /Zi /DSTANDALONE=1 /I..\..\HDR
 LIBS            =..\..\LIB\DEVICE.LIB ..\..\LIB\LIBM.LIB
 
@@ -105,10 +111,10 @@
 
 #               *Implicit Rules*
 .c.obj:
-  $(CC) -c {$< }
+  $(CC) +kernel.cfg -c {$< }
 
 .cpp.obj:
-  $(CC) -c {$< }
+  $(CC) +kernel.cfg -c {$< }
 
 #               *List Macros*
 
Files kern2002/kernel/src/kernel/main.c and kern2003/kernel/src/kernel/main.c are identical
Files kern2002/kernel/src/kernel/memmgr.c and kern2003/kernel/src/kernel/memmgr.c are identical
Files kern2002/kernel/src/kernel/newstuff.c and kern2003/kernel/src/kernel/newstuff.c are identical
Files kern2002/kernel/src/kernel/nls.c and kern2003/kernel/src/kernel/nls.c are identical
Files kern2002/kernel/src/kernel/nlssupt.asm and kern2003/kernel/src/kernel/nlssupt.asm are identical
Files kern2002/kernel/src/kernel/printer.asm and kern2003/kernel/src/kernel/printer.asm are identical
Files kern2002/kernel/src/kernel/procsupt.asm and kern2003/kernel/src/kernel/procsupt.asm are identical
Files kern2002/kernel/src/kernel/proto.h and kern2003/kernel/src/kernel/proto.h are identical
Files kern2002/kernel/src/kernel/segs.inc and kern2003/kernel/src/kernel/segs.inc are identical
Files kern2002/kernel/src/kernel/serial.asm and kern2003/kernel/src/kernel/serial.asm are identical
Files kern2002/kernel/src/kernel/strings.c and kern2003/kernel/src/kernel/strings.c are identical
Files kern2002/kernel/src/kernel/sysclk.c and kern2003/kernel/src/kernel/sysclk.c are identical
Files kern2002/kernel/src/kernel/syscon.c and kern2003/kernel/src/kernel/syscon.c are identical
Files kern2002/kernel/src/kernel/systime.c and kern2003/kernel/src/kernel/systime.c are identical
Files kern2002/kernel/src/kernel/task.c and kern2003/kernel/src/kernel/task.c are identical
Files kern2002/kernel/src/misc/autoexec.bat and kern2003/kernel/src/misc/autoexec.bat are identical
Files kern2002/kernel/src/misc/config.sys and kern2003/kernel/src/misc/config.sys are identical
Files kern2002/kernel/src/misc/doslib.c and kern2003/kernel/src/misc/doslib.c are identical
Files kern2002/kernel/src/misc/dosopt.c and kern2003/kernel/src/misc/dosopt.c are identical
Files kern2002/kernel/src/misc/home.c and kern2003/kernel/src/misc/home.c are identical
Files kern2002/kernel/src/misc/num.c and kern2003/kernel/src/misc/num.c are identical
Files kern2002/kernel/src/misc/prf.c and kern2003/kernel/src/misc/prf.c are identical
Files kern2002/kernel/src/misc/strings.c and kern2003/kernel/src/misc/strings.c are identical
Files kern2002/kernel/src/utils/exe2bin.exe and kern2003/kernel/src/utils/exe2bin.exe are identical
Files kern2002/kernel/src/utils/indent.exe and kern2003/kernel/src/utils/indent.exe are identical
Files kern2002/kernel/src/utils/indent.pro and kern2003/kernel/src/utils/indent.pro are identical
Files kern2002/kernel/src/utils/makelibm.bat and kern2003/kernel/src/utils/makelibm.bat are identical
Files kern2002/kernel/src/utils/pop.bat and kern2003/kernel/src/utils/pop.bat are identical
Files kern2002/kernel/src/utils/proto.bat and kern2003/kernel/src/utils/proto.bat are identical
Files kern2002/kernel/src/utils/rmfiles.bat and kern2003/kernel/src/utils/rmfiles.bat are identical
Files kern2002/kernel/src/utils/sys.c and kern2003/kernel/src/utils/sys.c are identical
diff -b -B -d -N -s -w -r --unified kern2002/kernel/src/utils/sys.mak kern2003/kernel/src/utils/sys.mak
--- kern2002/kernel/src/utils/sys.mak	Mon Feb  8 22:49:52 1999
+++ kern2003/kernel/src/utils/sys.mak	Mon Mar  1 00:04:24 1999
@@ -1,26 +1,21 @@
-
 !include "..\..\..\config.mak"
 
 .AUTODEPEND
 
-#		*Translator Definitions*
-CC              = $(CC) +SYS.CFG
-
-
 #		*Implicit Rules*
 .c.obj:
-  $(CC) -c {$< }
+  $(CC) +SYS.CFG -c {$< }
 
 .cpp.obj:
-  $(CC) -c {$< }
+  $(CC) +SYS.CFG -c {$< }
 
 #		*List Macros*
 
-LIB	=  ..\..\lib\device.lib
+LIBS =  ..\..\lib\device.lib
 
 EXE_dependencies =  \
  sys.obj \
- $(LIB)
+ $(LIBS)
 
 #		*Explicit Rules*
 production:	sys.exe
@@ -37,7 +32,7 @@
 sys.obj
 sys
 		# no map file
-$(LIB)+
+$(LIBS)+
 emu.lib+
 maths.lib+
 cs.lib
@@ -45,7 +40,7 @@
 
 
 clobber:	clean
-		del sys.exe
+                del sys.com
 
 clean:
 		del *.obj
@@ -69,5 +64,3 @@
 -L$(LIBPATH)
 -DI86=1;PROTO=1
 | sys.cfg
-
-
diff -b -B -d -N -s -w -r --unified kern2002/mkboot.txt kern2003/mkboot.txt
--- kern2002/mkboot.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/mkboot.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,26 @@
+To create a bootable floppy:
+
+0. If you recieved DOS-C on diskette, copy the files into a directory
+set aside for the operating system.  If you downloaded, repeat the
+unpacking in a  directory set aside for the operating system if you
+did not already do so.  This will make certain that you do not
+inadverdantly mix DOS-C utilities with those of other DOS systems.
+
+1. Format a new floppy.  Do not enter a label for the disk, otherwise
+the sys utility will report an error and abort.
+
+2. Change directory (if necessary) to where the DOS-C files are
+stored.
+
+3. Enter the command:
+
+	sys a:
+
+	 -or-
+
+	sys b:
+
+to transfer the system files to the diskette.
+
+4. Write protect this disk and use it to boot from.
+
diff -b -B -d -N -s -w -r --unified kern2002/readme.txt kern2003/readme.txt
--- kern2002/readme.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/readme.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,32 @@
+INTRODUCTION
+------------
+This archive contains FreeDOS Kernel version 1.1, build 2003, also
+known as DOS-C, originally written by Pasquale J. Villani.
+
+The DOS-C is available by anonymous ftp at ftp.gcfl.net in
+/freedos/kernel.  It is also available from http://www.dosemu.org.
+
+DOS-C is also available through the FreeDOS project.  An ftp site is
+available for downloading Free-DOS at sunsite.unc.edu in
+/pub/micro/pc-stuff/freedos.
+
+
+AGREEMENT
+---------
+All users of DOS-C must accept the disclaimer of warranty and license
+terms contained in the file "COPYING" in order to use it.  You may
+not, under any circumstance, use this operating system or any
+component without first reading and agreeing to the terms of the
+license.
+
+BUG REPORTS
+-----------
+If you have found a bug, think you have found a bug, or would just
+like to make a suggestion, go to the bug tracking web page at
+http://www.gcfl.net/bugs/kernel or send email to
+kernel-bugs@gcfl.net.
+
+Copyright
+---------
+(c) Copyright 1995, 1996 by Pasquale J. Villani
+All Rights Reserved.
diff -b -B -d -N -s -w -r --unified kern2002/relnotes.txt kern2003/relnotes.txt
--- kern2002/relnotes.txt	Wed Dec 31 18:00:00 1969
+++ kern2003/relnotes.txt	Sun Feb 28 23:36:42 1999
@@ -0,0 +1,134 @@
+Release Notes for DOS-C version 1.0 Beta 2
+December 6, 1998
+
+Differences between DOS-C v1.0 Beta 2 and Beta 1
+------------------------------------------------
+1. Totally new IO subsystem.
+
+2. Drivers for printer and serial ports now supported.
+
+3. Complete rewrite of error subsystem.  Now matches
+
+4. IPL builds but will not run -- probably due to incorrect handling
+   of shared I/O subsystem (broken by kernel changes in shared files).
+
+5. Some bug fixes.
+
+NOTE: differences betweene 0.91a and 1.0 Beta 1 undcoumented.
+
+Differences between DOS-C v0.91 and DOS-C v0.91a
+------------------------------------------------
+1. IPL now builds and loads correctly.
+
+2. This release is built with Borland C++ v3.1 and needs MS-DOS exe2bin.
+Any deviations will require some work on your part.
+
+Differences between DOS-C v0.91 and DOS-C v0.91a
+------------------------------------------------
+1. Various changes in task handling that improved compatability.  DOS-C now
+runs DOOM, WordPerfect, MS-DOS applications such as QBASIC, etc.
+
+2. IPL does not build (broken by kernel changes in shared files).
+
+Differences between DOS-C v0.90a and DOS-C v0.91
+------------------------------------------------
+1. Added FreeDOS OEM ID (0xfd).
+
+2. Improved stack handling.  Now DOS-C uses three stacks: private kernel
+stack, character I/O stack and block I/O stack.  Error stack is still
+missing.  Now device drivers that do DOS system calls from within the
+driver work (e.g. - Logitech mouse.com).
+
+3. Added config.sys support.  The following config options are available:
+	- BUFFERS
+	- FILES
+	- COMMAND
+	- REM
+
+4. Improved int 2fh handler.  Now int 2fh is handled identically as MS-DOS
+with the exception of int 2hf 12XX calls.
+
+5. NLS functions are now supported, but NLSFUNC.EXE support is incomplete
+and untested.
+
+Differences between DOS-C v0.90 and DOS-C v0.90a
+------------------------------------------------
+1. Only ident strings for RCS and source placed under GPL.  All other
+functionality is identical.
+
+Differences between DOS-C and DOS/NT
+------------------------------------
+1. DOS-C is derived from DOS/NT.
+
+2. DOS-C contains FCB support, as well as other functionality not contained
+in DOS/NT.
+
+3. DOS-C is inteneded to work as a 100% DOS clone, although its initial
+release (0.90) still has some functionality missing.  See intfns.txt for
+details.
+
+Differences between release 1.03 and 1.02:
+-----------------------------------------
+1. Boot now knows about 1.2MB and 1.44MB drives.
+
+2. sys.exe error handler improved.  Now 5 retries are attempted on any disk
+operation before it exits.
+
+3. Kernel and ipl.sys exe loader bug fixed.  Kernel appears more stable as a
+result.
+
+4. "Production" code is now being distributed.  Symbol tables no longer in
+all exe files and remote debugger support no longer in kernel.
+
+Differences between release 1.02 and 1.0:
+-----------------------------------------
+1. Partitions >32 MB are now supported with this release.
+
+2. Undocumented get/set switchar is now supported.
+
+3. A new utility, sys.exe, is now supplied to create bootable floppies.
+
+
+The following differences exist between DOS/NT kernel and MS-DOS:
+
+1. The following interrupts are supported:
+	20h
+	21h
+	22h
+	23h
+	24h
+	27h
+	28h
+	2fh
+
+2. Interrupts 28h and 2fh are stubs in this version.
+
+3. A separate list, int21.txt, is provided to document the supported DOS int
+   21h functions.
+
+4. Directory updates do not occur until the final open handle to a file is
+   closed.
+
+5. Seeks past eof on files with write permission do not extend the file.
+
+6. Reading of config.sys is disabled for this release.
+
+7. Invalid function calls cause a register dump.
+
+7. There are no drivers for aux and lpt devices in this release.
+
+8. Command line editing does not support insert and delete.
+
+10. Error Handling is done entirely within the kernel.
+
+
+The following differences exist between DOS/NT command.com and MS-DOS:
+
+1. The command cls is not supported.
+
+2. Pipes are not supported.
+
+3. The dir command does not support the sort option.
+
+4. The copy command does not support append and device drivers.
+
