diff --git a/Makefile b/Makefile
index 54dff6d..aeaa47a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CFLAGS=-g
+CFLAGS=-g -DDEBUG_RESOURCE
 
 ######################################################################
 # FILES:
@@ -11,12 +11,15 @@
 DLL_LENGTH=256
 
 BUILDOBJS=dll_kernel.o dll_user.o dll_gdi.o dll_unixlib.o \
-	  dll_kernel_tab.o dll_user_tab.o dll_gdi_tab.o dll_unixlib_tab.o
+	  dll_win87em.o dll_shell.o \
+	  dll_kernel_tab.o dll_user_tab.o dll_gdi_tab.o dll_unixlib_tab.o \
+	  dll_win87em_tab.o dll_shell_tab.o
 
 MUST_BE_LINKED_FIRST=if1632.o $(BUILDOBJS)
 
 OBJS=$(MUST_BE_LINKED_FIRST) \
-	dump.o heap.o ldt.o kernel.o relay.o selector.o user.o wine.o
+	dump.o heap.o ldt.o kernel.o relay.o resource.o \
+	selector.o user.o wine.o
 
 TARGET=wine
 LIBS=-lldt
@@ -47,3 +50,9 @@
 
 dll_unixlib.S dll_unixlib_tab.c: build unixlib.spec
 	build unixlib.spec
+
+dll_win87em.S dll_win87em_tab.c: build win87em.spec
+	build win87em.spec
+
+dll_shell.S dll_shell_tab.c: build shell.spec
+	build shell.spec
diff --git a/README b/README
index 09eb3de..3bcf6c8 100644
--- a/README
+++ b/README
@@ -2,9 +2,19 @@
 warranty.  It is my intent to cover this code with the Gnu Public
 License.
 
-So here goes release 0.0.2 of the Windows loader.  It will do some 
-relocations and then run the program.  The program test.exe is a 
-Windows executable.  Try the command "wine test.exe".
+So here goes release 0.0.3 of the Windows loader.  It will do some 
+relocations and then run the program.  I have successfully loaded 
+the Windows solitaire game.  Try it.  It currently stops a call to
+GetObject().
+
+WHAT'S NEW with version 0.0.3:
+    - Fixed bug with sector sizes.
+    - Registers at program startup are now set correctly.
+    - Segment fixups for relocatable-segment internal entry points.
+    - Fixed bug in DOS PSP structure.
+    - Some resource loading is done.
+    - Added "return" ordinal type to build program.
+    - Added comment capability to build program.
 
 WHAT'S NEW with version 0.0.2:
 
@@ -34,10 +44,12 @@
     - Make changes to the kernel to allow more than 32 LDT entries.
     - Trap and handle DOS and DPMI calls.
     - Windows emulation library (connect to Peter MacDonald's library).
-    - Set registers correctly when starting Windows program.
     - Allowing loading of 16-bit DLLs for use with program.
-    - global memory allocation
-    - complete and improve local heap allocation
+    - global memory allocation.
+    - complete and improve local heap allocation.
+    - Handle self-loading applications.
+    - Deal with callback functions.
+    - Resource loading
 
 INSTALLATION:
 
diff --git a/build b/build
deleted file mode 100755
index d47f542..0000000
--- a/build
+++ /dev/null
Binary files differ
diff --git a/build-spec.txt b/build-spec.txt
index 61937bf..25dfed6 100644
--- a/build-spec.txt
+++ b/build-spec.txt
@@ -8,12 +8,18 @@
 		 HANDLERNAME([ARGNUM [ARGNUM [...]]])
 
 ORDINAL equate EXPORTNAME DATA
+
+ORDINAL return EXPORTNAME ARGLENGTH RETVALUE
+
+# COMMENT_TEXT
+
 --------------------
 General:
 
     "name", "id" and "length" fields are mandatory.  Specific ordinal 
 declarations are optional, but the default handler will print an
-error message.
+error message.  Lines whose first character is a '#' will be ignored
+as comments.
 
 Variable ordinals:
 
diff --git a/build.c b/build.c
index f7dd03d..8905cc9 100644
--- a/build.c
+++ b/build.c
@@ -1,6 +1,6 @@
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: build.c,v 1.2 1993/06/30 14:24:33 root Exp root $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -17,6 +17,7 @@
 #define FUNCTYPE_REG	19
 
 #define EQUATETYPE_ABS	18
+#define TYPE_RETURN	20
 
 #define MAX_ORDINALS	1024
 
@@ -45,6 +46,12 @@
     int arg_indices_32[16];
 } ORDFUNCDEF;
 
+typedef struct ordinal_return_definition_s
+{
+    int arg_size;
+    int ret_value;
+} ORDRETDEF;
+
 ORDDEF OrdinalDefinitions[MAX_ORDINALS];
 
 char LowerDLLName[80];
@@ -146,16 +153,26 @@
 	ParseBuffer = malloc(512);
 	ParseNext = ParseBuffer;
 	Line++;
-	if (fgets(ParseBuffer, 511, SpecFp) == NULL)
-	    return NULL;
+	while (1)
+	{
+	    if (fgets(ParseBuffer, 511, SpecFp) == NULL)
+		return NULL;
+	    if (ParseBuffer[0] != '#')
+		break;
+	}
     }
 
     while ((token = GetTokenInLine()) == NULL)
     {
 	ParseNext = ParseBuffer;
 	Line++;
-	if (fgets(ParseBuffer, 511, SpecFp) == NULL)
-	    return NULL;
+	while (1)
+	{
+	    if (fgets(ParseBuffer, 511, SpecFp) == NULL)
+		return NULL;
+	    if (ParseBuffer[0] != '#')
+		break;
+	}
     }
 
     return token;
@@ -388,6 +405,50 @@
 }
 
 int
+ParseReturn(int ordinal)
+{
+    ORDDEF *odp;
+    ORDRETDEF *rdp;
+    char *token;
+    char *endptr;
+    int value;
+    
+    if (ordinal >= MAX_ORDINALS)
+    {
+	fprintf(stderr, "%d: Ordinal number too large\n", Line);
+	exit(1);
+    }
+
+    rdp = malloc(sizeof(*rdp));
+    
+    odp = &OrdinalDefinitions[ordinal];
+    strcpy(odp->export_name, GetToken());
+    odp->valid = 1;
+    odp->type = TYPE_RETURN;
+    odp->additional_data = rdp;
+
+    token = GetToken();
+    rdp->arg_size = strtol(token, &endptr, 0);
+    if (endptr == NULL || *endptr != '\0')
+    {
+	fprintf(stderr, "%d: Expected number value, got '%s'\n", Line,
+		token);
+	exit(1);
+    }
+
+    token = GetToken();
+    rdp->ret_value = strtol(token, &endptr, 0);
+    if (endptr == NULL || *endptr != '\0')
+    {
+	fprintf(stderr, "%d: Expected number value, got '%s'\n", Line,
+		token);
+	exit(1);
+    }
+
+    return 0;
+}
+
+int
 ParseOrdinal(int ordinal)
 {
     char *token;
@@ -415,6 +476,8 @@
 	return ParseExportFunction(ordinal, FUNCTYPE_REG);
     else if (stricmp(token, "equate") == 0)
 	return ParseEquate(ordinal);
+    else if (stricmp(token, "return") == 0)
+	return ParseReturn(ordinal);
     else
     {
 	fprintf(stderr, 
@@ -509,6 +572,7 @@
 {
     ORDDEF *odp;
     ORDFUNCDEF *fdp;
+    ORDRETDEF *rdp;
     FILE *fp;
     char filename[80];
     char buffer[80];
@@ -553,6 +617,7 @@
 	else
 	{
 	    fdp = odp->additional_data;
+	    rdp = odp->additional_data;
 	    
 	    switch (odp->type)
 	    {
@@ -573,6 +638,18 @@
 		OutputVariableCode(fp, ".long", odp);
 		break;
 
+	      case TYPE_RETURN:
+		fprintf(fp, "_%s_Ordinal_%d:\n", UpperDLLName, i);
+		fprintf(fp, "\tmovw\t$%d,%%ax\n", rdp->ret_value & 0xffff);
+		fprintf(fp, "\tmovw\t$%d,%%dx\n", 
+			(rdp->ret_value >> 16) & 0xffff);
+		fprintf(fp, "\t.byte\t0x66\n");
+		if (rdp->arg_size != 0)
+		    fprintf(fp, "\tlret\t$%d\n", rdp->arg_size);
+		else
+		    fprintf(fp, "\tlret\n");
+		break;
+
 	      case FUNCTYPE_REG:
 		fprintf(fp, "_%s_Ordinal_%d:\n", UpperDLLName, i);
 		fprintf(fp, "\tpushw\t%%ax\n");
diff --git a/dlls.h b/dlls.h
index a43a9e0..87d3dc8 100644
--- a/dlls.h
+++ b/dlls.h
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: dlls.h,v 1.1 1993/06/29 15:55:18 root Exp $
  */
 /*
  * Copyright  Robert J. Amstadt, 1993
@@ -52,5 +52,7 @@
 extern struct dll_table_entry_s USER_table[];
 extern struct dll_table_entry_s GDI_table[];
 extern struct dll_table_entry_s UNIXLIB_table[];
+extern struct dll_table_entry_s WIN87EM_table[];
+extern struct dll_table_entry_s SHELL_table[];
 
 #endif /* DLLS_H */
diff --git a/dump.c b/dump.c
index 72edc7a..6c21f9e 100644
--- a/dump.c
+++ b/dump.c
@@ -1,9 +1,6 @@
-/* $Id$
- */
+static char RCSId[] = "$Id: dump.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
diff --git a/gdi-ordinals b/gdi-ordinals
new file mode 100644
index 0000000..55fcf49
--- /dev/null
+++ b/gdi-ordinals
@@ -0,0 +1,283 @@
+  1   1  4e0c  SETBKCOLOR exported, shared data
+  2   1  4e22  SETBKMODE exported
+  3   1  4b46  SETMAPMODE exported, shared data
+  4   1  4e6b  SETROP2 exported
+  5   1  5218  SETRELABS exported
+  6   1  4eb9  SETPOLYFILLMODE exported
+  7   1  4e92  SETSTRETCHBLTMODE exported
+  8   1  4a00  SETTEXTCHARACTEREXTRA exported, shared data
+  9   1  4df8  SETTEXTCOLOR exported, shared data
+ 10   1  49ec  SETTEXTJUSTIFICATION exported, shared data
+ 11   1  4ee0  SETWINDOWORG exported, shared data
+ 12   4  06c8  SETWINDOWEXT exported
+ 13   1  4f14  SETVIEWPORTORG exported, shared data
+ 14   4  06fc  SETVIEWPORTEXT exported
+ 15   1  4b12  OFFSETWINDOWORG exported
+ 16   4  0764  SCALEWINDOWEXT exported
+ 17   1  4ade  OFFSETVIEWPORTORG exported
+ 18   4  0730  SCALEVIEWPORTEXT exported
+ 19  21  0e96  LINETO exported, shared data
+ 20  21  0eaa  MOVETO exported, shared data
+ 21   1  4c50  EXCLUDECLIPRECT exported
+ 22   1  4c84  INTERSECTCLIPRECT exported
+ 23   9  1030  ARC exported, shared data
+ 24   9  101c  ELLIPSE exported, shared data
+ 25  15  08fc  FLOODFILL exported, shared data
+ 26   9  1044  PIE exported, shared data
+ 27  25  0000  RECTANGLE exported, shared data
+ 28   9  106c  ROUNDRECT exported, shared data
+ 29   1  4c14  PATBLT exported, shared data
+ 30   1  48cb  SAVEDC exported, shared data
+ 31  23  0383  SETPIXEL exported, shared data
+ 32   1  4d3a  OFFSETCLIPRGN exported, shared data
+ 33   1  4f95  TEXTOUT exported, shared data
+ 34   1  4bfa  BITBLT exported, shared data
+ 35   1  4be0  STRETCHBLT exported, shared data
+ 36  24  0000  POLYGON exported, shared data
+ 37  21  0ede  POLYLINE exported, shared data
+ 38   7  06d1  ESCAPE exported, shared data
+ 39   1  48b7  RESTOREDC exported, shared data
+ 40  26  0000  FILLRGN exported, shared data
+ 41  26  003a  FRAMERGN exported, shared data
+ 42   1  4dbd  INVERTRGN exported, shared data
+ 43  26  0020  PAINTRGN exported, shared data
+ 44   1  4c98  SELECTCLIPRGN exported, shared data
+ 45   1  4dd7  SELECTOBJECT exported, shared data
+ 46   1  79f4  __GP exported, shared data
+ 47   1  4d4e  COMBINERGN exported, shared data
+ 48   1  4929  CREATEBITMAP exported, shared data
+ 49   1  4943  CREATEBITMAPINDIRECT exported, shared data
+ 50   4  05d7  CREATEBRUSHINDIRECT exported, shared data
+ 51   4  05f1  CREATECOMPATIBLEBITMAP exported
+ 52   1  47c4  CREATECOMPATIBLEDC exported, shared data
+ 53   1  480a  CREATEDC exported
+ 54   9  020e  CREATEELLIPTICRGN exported, shared data
+ 55   9  0f99  CREATEELLIPTICRGNINDIRECT exported, shared data
+ 56   3  1589  CREATEFONT exported, shared data
+ 57   3  15b1  CREATEFONTINDIRECT exported, shared data
+ 58   4  05a7  CREATEHATCHBRUSH exported, shared data
+ 59   1  1ec0  WEP exported, shared data
+ 60   4  05c3  CREATEPATTERNBRUSH exported, shared data
+ 61   1  48f3  CREATEPEN exported, shared data
+ 62   1  490f  CREATEPENINDIRECT exported, shared data
+ 63   9  0fb3  CREATEPOLYGONRGN exported, shared data
+ 64   1  59cd  CREATERECTRGN exported, shared data
+ 65   1  4cb2  CREATERECTRGNINDIRECT exported, shared data
+ 66   4  017a  CREATESOLIDBRUSH exported, shared data
+ 67   1  4a14  DPTOLP exported
+ 68   1  4897  DELETEDC exported, shared data
+ 69   1  48df  DELETEOBJECT exported, shared data
+ 70   5  05a7  ENUMFONTS exported, shared data
+ 71   4  0678  ENUMOBJECTS exported, shared data
+ 72   1  4ccc  EQUALRGN exported, shared data
+ 73   1  16a5  EXCLUDEVISRECT exported
+ 74   1  4a76  GETBITMAPBITS exported
+ 75   1  515d  GETBKCOLOR exported, shared data
+ 76   1  5142  GETBKMODE exported
+ 77   1  4c64  GETCLIPBOX exported, shared data
+ 78   1  5157  GETCURRENTPOSITION exported
+ 79   1  5154  GETDCORG exported
+ 80   1  4a96  GETDEVICECAPS exported, shared data
+ 81   1  513f  GETMAPMODE exported
+ 82   4  06a8  GETOBJECT exported, shared data
+ 83  23  036f  GETPIXEL exported, shared data
+ 84   1  5139  GETPOLYFILLMODE exported
+ 85   1  5133  GETROP2 exported
+ 86   1  5145  GETRELABS exported
+ 87   1  4a5a  GETSTOCKOBJECT exported, shared data
+ 88   1  513c  GETSTRETCHBLTMODE exported
+ 89  16  0c63  GETTEXTCHARACTEREXTRA exported, shared data
+ 90   1  5160  GETTEXTCOLOR exported, shared data
+ 91   1  4b8d  GETTEXTEXTENT exported, shared data
+ 92   3  166a  GETTEXTFACE exported, shared data
+ 93   3  169a  GETTEXTMETRICS exported, shared data
+ 94   1  5151  GETVIEWPORTEXT exported
+ 95   1  514b  GETVIEWPORTORG exported
+ 96   1  514e  GETWINDOWEXT exported
+ 97   1  5148  GETWINDOWORG exported
+ 98   1  16a2  INTERSECTVISRECT exported
+ 99   1  4a37  LPTODP exported
+100  23  039b  LINEDDA exported, shared data
+101   1  4d26  OFFSETRGN exported, shared data
+102   1  2929  OFFSETVISRGN exported, shared data
+103   1  4da9  PTVISIBLE exported, shared data
+104   1  4d06  RECTVISIBLE exported, shared data
+105   1  1635  SELECTVISRGN exported, shared data
+106   1  4aaa  SETBITMAPBITS exported
+117   1  1118  SETDCORG exported, shared data
+119   2  0e25  ADDFONTRESOURCE exported, shared data
+121   1  2067  DEATH exported, shared data
+122   1  208e  RESURRECTION exported, shared data
+123  19  1603  PLAYMETAFILE exported, shared data
+124  19  1624  GETMETAFILE exported, shared data
+125  20  248b  CREATEMETAFILE exported, shared data
+126  20  24a5  CLOSEMETAFILE exported, shared data
+127  19  15ef  DELETEMETAFILE exported, shared data
+128   1  41b0  MULDIV exported, shared data
+129   1  076c  SAVEVISRGN exported, shared data
+130   1  07b2  RESTOREVISRGN exported, shared data
+131   1  200a  INQUIREVISRGN exported, shared data
+132   7  073d  SETENVIRONMENT exported, shared data
+133   7  0707  GETENVIRONMENT exported, shared data
+134   1  4b6d  GETRGNBOX exported, shared data
+135  15  087f  SCANLR exported, shared data
+136   6  0507  REMOVEFONTRESOURCE exported, shared data
+148   1  4c28  SETBRUSHORG exported, shared data
+149   1  515a  GETBRUSHORG exported
+150   1  4c3c  UNREALIZEOBJECT exported, shared data
+151  20  246b  COPYMETAFILE exported, shared data
+153   1  47d8  CREATEIC exported
+154   1  4aca  GETNEARESTCOLOR exported, shared data
+155   7  052d  QUERYABORT exported, shared data
+156   4  0605  CREATEDISCARDABLEBITMAP exported
+159  20  24b9  GETMETAFILEBITS exported, shared data
+160  20  24cd  SETMETAFILEBITS exported, shared data
+161   1  4d95  PTINREGION exported, shared data
+162   1  49b8  GETBITMAPDIMENSION exported, shared data
+163   1  4984  SETBITMAPDIMENSION exported, shared data
+169   1  4352  ISDCDIRTY exported, shared data
+170   1  439b  SETDCSTATUS exported, shared data
+172   1  4d81  SETRECTRGN exported, shared data
+173   1  5130  GETCLIPRGN exported, shared data
+175  19  166a  ENUMMETAFILE exported, shared data
+176  19  163e  PLAYMETAFILERECORD exported, shared data
+179   1  0601  GETDCSTATE exported, shared data
+180   1  0615  SETDCSTATE exported, shared data
+181   1  4ce6  RECTINREGION exported, shared data
+190  31  04ec  SETDCHOOK exported, shared data
+191  31  04b5  GETDCHOOK exported, shared data
+192   1  76b0  SETHOOKFLAGS exported, shared data
+193  31  0526  SETBOUNDSRECT exported, shared data
+194   1  76e4  GETBOUNDSRECT exported, shared data
+195   1  1ac6  SELECTBITMAP exported, shared data
+196  20  24e1  SETMETAFILEBITSBETTER exported, shared data
+201  13  014a  DMBITBLT exported
+202  13  014f  DMCOLORINFO exported
+206  13  0163  DMENUMDFONTS exported
+207  13  0169  DMENUMOBJ exported
+208  13  0159  DMOUTPUT exported
+209  13  0154  DMPIXEL exported
+210  13  015e  DMREALIZEOBJECT exported
+211  13  00df  DMSTRBLT exported, shared data
+212  13  016e  DMSCANLR exported
+213  13  0171  BRUTE exported, shared data
+214  13  0000  DMEXTTEXTOUT exported, shared data
+215  13  0130  DMGETCHARWIDTH exported, shared data
+216  13  0136  DMSTRETCHBLT exported, shared data
+217  13  013b  DMDIBBITS exported, shared data
+218  13  0140  DMSTRETCHDIBITS exported, shared data
+219  13  0145  DMSETDIBTODEV exported, shared data
+220  13  024d  DMTRANSPOSE exported, shared data
+230  27  0000  CREATEPQ exported
+231  27  00fb  MINPQ exported
+232  27  00fe  EXTRACTPQ exported
+233  27  0045  INSERTPQ exported
+234  27  01dc  SIZEPQ exported
+235  27  01cb  DELETEPQ exported
+240  28  01c3  OPENJOB exported, shared data
+241  28  08eb  WRITESPOOL exported, shared data
+242  28  0e82  WRITEDIALOG exported, shared data
+243  28  1292  CLOSEJOB exported, shared data
+244  28  13e0  DELETEJOB exported, shared data
+245  28  1802  GETSPOOLJOB exported, shared data
+246  28  06a1  STARTSPOOLPAGE exported, shared data
+247  28  1112  ENDSPOOLPAGE exported, shared data
+248  28  18e4  QUERYJOB exported, shared data
+250  28  0000  COPY exported, shared data
+253  28  0ff3  DELETESPOOLPAGE exported, shared data
+254  28  156f  SPOOLFILE exported, shared data
+300   5  093c  ENGINEENUMERATEFONT exported, shared data
+301   6  0560  ENGINEDELETEFONT exported, shared data
+302   3  2b2d  ENGINEREALIZEFONT exported, shared data
+303   3  2c8a  ENGINEGETCHARWIDTH exported, shared data
+304   5  0993  ENGINESETFONTCONTEXT exported, shared data
+305   7  09e9  ENGINEGETGLYPHBMP exported, shared data
+306   7  1184  ENGINEMAKEFONTDIR exported, shared data
+307   7  083d  GETCHARABCWIDTHS exported, shared data
+308   7  0876  GETOUTLINETEXTMETRICS exported, shared data
+309   7  0795  GETGLYPHOUTLINE exported, shared data
+310   7  0763  CREATESCALABLEFONTRESOURCE exported, shared data
+311   7  07fc  GETFONTDATA exported, shared data
+312   7  0d8a  CONVERTOUTLINEFONTFILE exported, shared data
+313   7  0d36  GETRASTERIZERCAPS exported, shared data
+314   1  669a  ENGINEEXTTEXTOUT exported, shared data
+330   5  05d7  ENUMFONTFAMILIES exported, shared data
+332   7  0896  GETKERNINGPAIRS exported, shared data
+345   1  5136  GETTEXTALIGN exported, shared data
+346   1  4e49  SETTEXTALIGN exported, shared data
+348   9  1058  CHORD exported, shared data
+349   3  163f  SETMAPPERFLAGS exported, shared data
+350   3  15cb  GETCHARWIDTH exported, shared data
+351   1  4f48  EXTTEXTOUT exported, shared data
+352   1  0a2e  GETPHYSICALFONTHANDLE exported, shared data
+353   3  160b  GETASPECTRATIOFILTER exported, shared data
+354   1  1fdf  SHRINKGDIHEAP exported, shared data
+355  48  02ef  FTRAPPING0 exported, shared data
+360  22  0023  CREATEPALETTE exported, shared data
+361  22  0271  GDISELECTPALETTE exported, shared data
+362  22  1088  GDIREALIZEPALETTE exported, shared data
+363  22  0050  GETPALETTEENTRIES exported, shared data
+364  22  00d2  SETPALETTEENTRIES exported, shared data
+365  22  101d  REALIZEDEFAULTPALETTE exported, shared data
+366  22  0109  UPDATECOLORS exported, shared data
+367  22  0000  ANIMATEPALETTE exported, shared data
+368  22  00be  RESIZEPALETTE exported, shared data
+370  22  0073  GETNEARESTPALETTEINDEX exported, shared data
+372  15  0910  EXTFLOODFILL exported, shared data
+373  22  00f5  SETSYSTEMPALETTEUSE exported, shared data
+374  22  00aa  GETSYSTEMPALETTEUSE exported, shared data
+375  22  0087  GETSYSTEMPALETTEENTRIES exported, shared data
+376  31  009c  RESETDC exported, shared data
+377  31  0045  STARTDOC exported, shared data
+378  31  002e  ENDDOC exported, shared data
+379  31  0068  STARTPAGE exported, shared data
+380  31  0017  ENDPAGE exported, shared data
+381  31  007c  SETABORTPROC exported, shared data
+382  31  0000  ABORTDOC exported, shared data
+400   1  420e  FASTWINDOWFRAME exported, shared data
+401   2  0403  GDIMOVEBITMAP exported, shared data
+403   2  042a  GDIINIT2 exported, shared data
+405   2  012e  FINALGDIINIT exported, shared data
+407   1  0ec1  CREATEUSERBITMAP exported
+409   4  0200  CREATEUSERDISCARDABLEBITMAP exported
+410  19  1490  ISVALIDMETAFILE exported, shared data
+411   1  511a  GETCURLOGFONT exported, shared data
+412  22  0b0c  ISDCCURRENTPALETTE exported, shared data
+439  11  0202  STRETCHDIBITS exported, shared data
+440  11  0000  SETDIBITS exported, shared data
+441  11  0196  GETDIBITS exported, shared data
+442  11  006c  CREATEDIBITMAP exported, shared data
+443  11  010a  SETDIBITSTODEVICE exported, shared data
+444   9  01be  CREATEROUNDRECTRGN exported, shared data
+445   4  0619  CREATEDIBPATTERNBRUSH exported, shared data
+449  11  1015  DEVICECOLORMATCH exported, shared data
+450  24  0023  POLYPOLYGON exported, shared data
+451   9  0fe3  CREATEPOLYPOLYGONRGN exported, shared data
+452  21  19a0  GDISEEGDIDO exported, shared data
+460   1  7690  GDITASKTERMINATION exported, shared data
+461   1  76a2  SETOBJECTOWNER exported, shared data
+462   1  1ec6  ISGDIOBJECT exported, shared data
+463   1  0e68  MAKEOBJECTPRIVATE exported, shared data
+464  19  1862  FIXUPBOGUSPUBLISHERMETAFILE exported, shared data
+465   1  29b7  RECTVISIBLE_EHH exported, shared data
+466   1  2aab  RECTINREGION_EHH exported, shared data
+467   1  56a3  UNICODETOANSI exported, shared data
+468   1  49cc  GETBITMAPDIMENSIONEX exported, shared data
+469   1  5eb5  GETBRUSHORGEX exported
+470   1  5ed8  GETCURRENTPOSITIONEX exported
+471   1  4bb4  GETTEXTEXTENTPOINT exported, shared data
+472   1  5f27  GETVIEWPORTEXTEX exported
+473   1  5f4a  GETVIEWPORTORGEX exported
+474   1  5f6d  GETWINDOWEXTEX exported
+475   1  5f90  GETWINDOWORGEX exported
+476   1  4af2  OFFSETVIEWPORTORGEX exported
+477   1  4b26  OFFSETWINDOWORGEX exported
+478   1  4998  SETBITMAPDIMENSIONEX exported, shared data
+479   4  0710  SETVIEWPORTEXTEX exported
+480   1  4f28  SETVIEWPORTORGEX exported, shared data
+481   4  06dc  SETWINDOWEXTEX exported
+482   1  4ef4  SETWINDOWORGEX exported, shared data
+483  21  0ebe  MOVETOEX exported, shared data
+484   4  0744  SCALEVIEWPORTEXTEX exported
+485   4  0778  SCALEWINDOWEXTEX exported
+486   3  161f  GETASPECTRATIOFILTEREX exported, shared data
diff --git a/gdi.spec b/gdi.spec
index 9f87b18..3537537 100644
--- a/gdi.spec
+++ b/gdi.spec
@@ -1,3 +1,5 @@
+# $Id: gdi.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
 name	gdi
 id	3
-length	256
+length	490
diff --git a/heap.c b/heap.c
index 156e9c8..b6e7f9c 100644
--- a/heap.c
+++ b/heap.c
@@ -1,4 +1,4 @@
-static char RCSId[] = "$Id$";
+static char RCSId[] = "$Id: heap.c,v 1.1 1993/06/29 15:55:18 root Exp $";
 static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
@@ -34,7 +34,7 @@
     MDESC *m, *m_new;
     
 #ifdef HEAP_DEBUG
-    fprintf(stderr, "LocalAlloc: flags %x, bytes %d, ", flags, bytes);
+    printf("LocalAlloc: flags %x, bytes %d, ", flags, bytes);
 #endif
 
     /*
@@ -63,7 +63,7 @@
 	    m->length -= (m_new->length + sizeof(MDESC));
 
 #ifdef HEAP_DEBUG
-	    fprintf(stderr, "Returning %x\n", (int) (m + 1));
+	    printf("Returning %x\n", (int) (m + 1));
 #endif
 	    return (void *) (m + 1);
 	}
@@ -80,13 +80,13 @@
 	    m->next->prev = m->prev;
 	
 #ifdef HEAP_DEBUG
-	fprintf(stderr, "Returning %x\n", (int) (m + 1));
+	printf("Returning %x\n", (int) (m + 1));
 #endif
 	return (void *) (m + 1);
     }
 
 #ifdef HEAP_DEBUG
-    fprintf(stderr, "Returning 0\n");
+    printf("Returning 0\n");
 #endif
     return 0;
 }
diff --git a/if1632.S b/if1632.S
index 7d2bbed..807d32e 100644
--- a/if1632.S
+++ b/if1632.S
@@ -36,7 +36,7 @@
 	.text
 
 /**********************************************************************
- *	int CallTo16(unsigned long csip, unsigned long sssp,
+ *	int CallToInit16(unsigned long csip, unsigned long sssp,
  *		     unsigned short ds)
  *
  *	Stack:	 	0	ebp
@@ -48,8 +48,8 @@
  *			16	target ds
  */
 	.align	4
-	.globl _CallTo16
-_CallTo16:
+	.globl _CallToInit16
+_CallToInit16:
 	pushl	%ebp
 	movl	%esp,%ebp
 
@@ -76,13 +76,17 @@
 	movl	%ebp,saved_ebp
 
 	/*
-	 * Load ds, es, sp, ss & bp
+	 * Load initial registers
 	 */
-	movl	$0,%eax
+	movw	_WIN_StackSize,%bx
+	movw	_WIN_HeapSize,%cx
+	movl	$0,%esi
+	xorl	%eax,%eax
 	movw	_PSPSelector,%ax
 	movw	%ax,%es
 	movw	16(%ebp),%ax
 	movw	%ax,%ds
+	movl	%eax,%edi
 	xorl	%eax,%eax
 	movw	12(%ebp),%ax
 	movl	%eax,%esp
@@ -257,6 +261,8 @@
 	popl	saved_16esp
 
 	popw	%es
+/*	movw	_PSPSelector,%ax
+	movw	%ax,%es */
 	popw	%ds
 
 	.align	2,0x90
@@ -283,12 +289,11 @@
 	/*
 	 * Last, we need to load the return values.
 	 */
+	movl	$0,%esi
 	movw	$1,%ax
 	movw	%gs:_WIN_StackSize,%cx
 	movw	$1,%dx
 	movw	0x80,%bx
-	movl	$0,%esi
-	movl	$1,%edi
 
 	.byte	0x66
 	lret
diff --git a/kernel-ordinals b/kernel-ordinals
new file mode 100644
index 0000000..f3ad91d
--- /dev/null
+++ b/kernel-ordinals
@@ -0,0 +1,233 @@
+  1   1  93ce  FATALEXIT exported, shared data
+  2   1  9d6f  EXITKERNEL exported
+  3   3  07c6  GETVERSION exported
+  4   2  28b7  LOCALINIT exported
+  5   1  0543  LOCALALLOC exported
+  6   1  0587  LOCALREALLOC exported
+  7   1  055f  LOCALFREE exported
+  8   1  0573  LOCALLOCK exported
+  9   1  05bd  LOCALUNLOCK exported
+ 10   1  05a9  LOCALSIZE exported
+ 11   1  8d6a  LOCALHANDLE exported
+ 12   1  05d1  LOCALFLAGS exported
+ 13   1  8d85  LOCALCOMPACT exported
+ 14   2  0278  LOCALNOTIFY exported
+ 15   1  022b  GLOBALALLOC exported
+ 16   1  028c  GLOBALREALLOC exported
+ 17   1  0247  GLOBALFREE exported
+ 18   1  0278  GLOBALLOCK exported
+ 19   1  02cb  GLOBALUNLOCK exported
+ 20   1  02b7  GLOBALSIZE exported
+ 21   1  0264  GLOBALHANDLE exported
+ 22   1  02e8  GLOBALFLAGS exported
+ 23   1  03b3  LOCKSEGMENT exported
+ 24   1  03c7  UNLOCKSEGMENT exported
+ 25   1  1105  GLOBALCOMPACT exported
+ 26   1  0e39  GLOBALFREEALL exported
+ 28   1  1190  GLOBALMASTERHANDLE exported
+ 29   1  7d21  YIELD exported
+ 30   1  7ca8  WAITEVENT exported
+ 31   1  7d92  POSTEVENT exported
+ 32   1  7df0  SETPRIORITY exported
+ 33   1  81e5  LOCKCURRENTTASK exported
+ 34   1  7de3  SETTASKQUEUE exported
+ 35   1  7d9d  GETTASKQUEUE exported
+ 36   1  842c  GETCURRENTTASK exported
+ 37   3  024e  GETCURRENTPDB exported
+ 38   1  7dc5  SETTASKSIGNALPROC exported
+ 41   1  9c8e  ENABLEDOS exported
+ 42   1  9c8f  DISABLEDOS exported
+ 45   2  0244  LOADMODULE exported
+ 46   2  0176  FREEMODULE exported
+ 47   2  01bb  GETMODULEHANDLE exported
+ 48   2  01d2  GETMODULEUSAGE exported
+ 49   2  01e6  GETMODULEFILENAME exported
+ 50   2  019e  GETPROCADDRESS exported
+ 51   3  00a8  MAKEPROCINSTANCE exported
+ 52   3  00c5  FREEPROCINSTANCE exported
+ 53   1  4927  CALLPROCINSTANCE exported
+ 54   2  0219  GETINSTANCEDATA exported
+ 55   3  08ee  CATCH exported
+ 56   3  0928  THROW exported
+ 57   1  0663  GETPROFILEINT exported, shared data
+ 58   1  0689  GETPROFILESTRING exported, shared data
+ 59   1  0763  WRITEPROFILESTRING exported, shared data
+ 60   3  0008  FINDRESOURCE exported
+ 61   1  0126  LOADRESOURCE exported
+ 62   1  018b  LOCKRESOURCE exported
+ 63   1  0177  FREERESOURCE exported
+ 64   1  0140  ACCESSRESOURCE exported
+ 65   1  019f  SIZEOFRESOURCE exported
+ 66   1  015d  ALLOCRESOURCE exported
+ 67   3  002e  SETRESOURCEHANDLER exported
+ 68   3  041a  INITATOMTABLE exported
+ 69   1  4942  FINDATOM exported
+ 70   1  493f  ADDATOM exported
+ 71   1  01b9  DELETEATOM exported
+ 72   1  01cd  GETATOMNAME exported
+ 73   1  01fd  GETATOMHANDLE exported
+ 74   1  05e5  OPENFILE exported
+ 75   3  04be  OPENPATHNAME exported
+ 76   3  04b6  DELETEPATHNAME exported
+ 77   1  83cd  RESERVED1 exported
+ 78   1  83ca  RESERVED2 exported
+ 79   1  83c4  RESERVED3 exported
+ 80   1  83c7  RESERVED4 exported
+ 81   1  046e  _LCLOSE exported
+ 82   1  04e6  _LREAD exported
+ 83   1  048d  _LCREAT exported
+ 84   1  04b8  _LLSEEK exported
+ 85   1  0443  _LOPEN exported
+ 86   1  0516  _LWRITE exported
+ 87   1  838e  RESERVED5 exported
+ 88   1  836f  LSTRCPY exported
+ 89   1  837f  LSTRCAT exported
+ 90   1  82f6  LSTRLEN exported
+ 91   2  268d  INITTASK exported
+ 92   3  0508  GETTEMPDRIVE exported
+ 93   1  48fa  GETCODEHANDLE exported
+ 94   3  03ce  DEFINEHANDLETABLE exported
+ 95   2  022d  LOADLIBRARY exported
+ 96   2  018a  FREELIBRARY exported
+ 97   3  00dc  GETTEMPFILENAME exported
+ 98   1  5c17  GETLASTDISKCHANGE exported
+ 99   1  0bc5  GETLPERRMODE exported
+100   2  2ab7  VALIDATECODESEGMENTS exported
+101   1  1d92  NOHOOKDOSCALL exported
+102   1  1d98  DOS3CALL exported
+103   1  9e19  NETBIOSCALL exported
+104   1  03db  GETCODEINFO exported
+105   3  07d9  GETEXEVERSION exported
+106   1  2ede  SETSWAPAREASIZE exported
+107   3  0132  SETERRORMODE exported
+108   1  11c6  SWITCHSTACKTO exported
+109   1  123c  SWITCHSTACKBACK exported
+110   1  7bac  PATCHCODEHANDLE exported
+111   1  02fc  GLOBALWIRE exported
+112   1  0310  GLOBALUNWIRE exported
+113 254  0003  __AHSHIFT exported
+114 254  0008  __AHINCR exported
+115   1  999b  OUTPUTDEBUGSTRING exported
+116   2  2797  INITLIB exported
+117   1  7d3e  OLDYIELD exported
+118   1  7da7  GETTASKQUEUEDS exported
+119   1  7db5  GETTASKQUEUEES exported
+120   1  72d4  UNDEFDYNLINK exported
+121   1  8db0  LOCALSHRINK exported
+122   1  81ff  ISTASKLOCKED exported
+123   1  4638  KBDRST exported
+124   1  9c90  ENABLEKERNEL exported
+125   1  9c91  DISABLEKERNEL exported
+126   1  2ea7  MEMORYFREED exported
+127   1  06d7  GETPRIVATEPROFILEINT exported, shared data
+128   1  0709  GETPRIVATEPROFILESTRING exported, shared data
+129   1  0795  WRITEPRIVATEPROFILESTRING exported, shared data
+130   3  0888  FILECDR exported
+131   3  08ce  GETDOSENVIRONMENT exported
+132   3  07ab  GETWINFLAGS exported
+133   1  4e78  GETEXEPTR exported
+134   3  0054  GETWINDOWSDIRECTORY exported
+135   3  007e  GETSYSTEMDIRECTORY exported
+136   3  0675  GETDRIVETYPE exported
+137   1  0211  FATALAPPEXIT exported
+138   2  1e4d  GETHEAPSPACES exported
+139   1  612c  DOSIGNAL exported
+140   3  068c  SETSIGHANDLER exported
+141   1  8014  INITTASK1 exported
+150   1  7cff  DIRECTEDYIELD exported
+151   3  07e6  WINOLDAPCALL exported
+152   3  08e2  GETNUMTASKS exported
+154   1  034c  GLOBALNOTIFY exported
+155   1  119f  GETTASKDS exported
+156   1  4632  LIMITEMSPAGES exported
+157   1  4639  GETCURPID exported
+158   1  7e3e  ISWINOLDAPTASK exported
+159   1  0ec5  GLOBALHANDLENORIP exported
+160   1  a940  EMSCOPY exported
+161   2  29c9  LOCALCOUNTFREE exported
+162   2  2a01  LOCALHEAPSIZE exported
+163   1  0338  GLOBALLRUOLDEST exported
+164   1  0324  GLOBALLRUNEWEST exported
+165   1  9e0c  A20PROC exported
+166   2  028f  WINEXEC exported
+167   1  4f02  GETEXPWINVER exported
+168   1  84b8  DIRECTRESALLOC exported
+169   1  0404  GETFREESPACE exported
+170   1  00d0  ALLOCCSTODSALIAS exported
+171   1  00e4  ALLOCDSTOCSALIAS exported
+172   1  21fb  ALLOCALIAS exported
+173 254  f000  __ROMBIOS exported
+174 254  a000  __A000H exported
+175   1  1d9e  ALLOCSELECTOR exported
+176   1  00f8  FREESELECTOR exported
+177   1  010c  PRESTOCHANGOSELECTOR exported
+178 254  0001  __WINFLAGS exported
+179 254  d000  __D000H exported
+180   1  26b9  LONGPTRADD exported
+181 254  b000  __B000H exported
+182 254  b800  __B800H exported
+183 254  0000  __0000H exported
+184   1  139a  GLOBALDOSALLOC exported
+185   1  13d4  GLOBALDOSFREE exported
+186   1  2252  GETSELECTORBASE exported
+187   1  2725  SETSELECTORBASE exported
+188   1  2755  GETSELECTORLIMIT exported
+189   1  276d  SETSELECTORLIMIT exported
+190 254  e000  __E000H exported
+191   1  0363  GLOBALPAGELOCK exported
+192   1  0377  GLOBALPAGEUNLOCK exported
+193 254  0040  __0040H exported
+194 254  f000  __F000H exported
+195 254  c000  __C000H exported
+196   1  279b  SELECTORACCESSRIGHTS exported
+197   1  038b  GLOBALFIX exported
+198   1  039f  GLOBALUNFIX exported
+199   1  0647  SETHANDLECOUNT exported
+200   1  3e4e  VALIDATEFREESPACES exported
+201   1  9ada  REPLACEINST exported
+202   3  081d  REGISTERPTRACE exported
+203   1  946e  DEBUGBREAK exported
+204   3  014e  SWAPRECORDING exported
+205   1  97e0  CVWBREAK exported
+206   1  1df5  ALLOCSELECTORARRAY exported
+207   1  8425  ISDBCSLEADBYTE exported
+310   2  2a0c  LOCALHANDLEDELTA exported
+311   1  9eaf  GETSETKERNELDOSPROC exported
+314   1  9835  DEBUGDEFINESEGMENT exported
+315   1  708b  WRITEOUTPROFILES exported, shared data
+316   1  127e  GETFREEMEMINFO exported
+318   1  9ecf  FATALEXITHOOK exported
+319   1  52fc  FLUSHCACHEDFILEHANDLE exported
+320   1  7e50  ISTASK exported
+323   2  1e9b  ISROMMODULE exported
+324   1  94cf  LOGERROR exported, shared data
+325   1  94f2  LOGPARAMERROR exported, shared data
+326   2  1ea0  ISROMFILE exported
+327   1  949b  K327 exported
+328   1  94ce  _DEBUGOUTPUT exported
+329   1  94c5  K329 exported
+332   4  0218  THHOOK exported
+334   1  4b62  ISBADREADPTR exported
+335   1  4b83  ISBADWRITEPTR exported
+336   1  4c28  ISBADCODEPTR exported
+337   1  4c4e  ISBADSTRINGPTR exported
+338   1  4c72  HASGPHANDLER exported
+339   1  a70e  DIAGQUERY exported
+340   1  a71d  DIAGOUTPUT exported
+341   3  084c  TOOLHELPHOOK exported
+342   1  a820  __GP exported, shared data
+343   2  0689  REGISTERWINOLDAPHOOK exported
+344   2  06f3  GETWINOLDAPHOOKS exported
+345   1  4d39  ISSHAREDSELECTOR exported
+346   1  4ba5  ISBADHUGEREADPTR exported
+347   1  4be5  ISBADHUGEWRITEPTR exported
+348   1  4d5c  HMEMCPY exported
+349   1  4dec  _HREAD exported
+350   1  4df1  _HWRITE exported
+351   1  5e92  BUNNY_351 exported
+353   1  831f  LSTRCPYN exported
+354   1  9eeb  GETAPPCOMPATFLAGS exported
+355   1  9f2a  GETWINDEBUGINFO exported, shared data
+356   1  9f36  SETWINDEBUGINFO exported, shared data
+403   1  29f1  K403 exported
+404   1  29ae  K404 exported
diff --git a/kernel.c b/kernel.c
index 4c57006..cf23a44 100644
--- a/kernel.c
+++ b/kernel.c
@@ -1,4 +1,4 @@
-static char RCSId[] = "$Id$";
+static char RCSId[] = "$Id: kernel.c,v 1.1 1993/06/29 15:55:18 root Exp $";
 static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
@@ -28,7 +28,7 @@
 	segment = *(Stack16Frame + 6);
 
 #ifdef RELAY_DEBUG
-    fprintf(stderr, "LockSegment: segment %x\n", segment);
+    printf("LockSegment: segment %x\n", segment);
 #endif
 
     return segment;
@@ -44,7 +44,7 @@
 	segment = *(Stack16Frame + 6);
 
 #ifdef RELAY_DEBUG
-    fprintf(stderr, "UnlockSegment: segment %x\n", segment);
+    printf("UnlockSegment: segment %x\n", segment);
 #endif
 
     return segment;
@@ -57,7 +57,7 @@
 KERNEL_WaitEvent(int task)
 {
 #ifdef RELAY_DEBUG
-    fprintf(stderr, "WaitEvent: task %d\n", task);
+    printf("WaitEvent: task %d\n", task);
 #endif
     return 0;
 }
@@ -68,7 +68,7 @@
 KERNEL_GetModuleFileName(int module, char *filename, int bytes)
 {
 #ifdef RELAY_DEBUG
-    fprintf(stderr, "GetModuleFileName: module %d, filename %x, bytes %d\n", 
+    printf("GetModuleFileName: module %d, filename %x, bytes %d\n", 
 	    module, filename, bytes);
 #endif
     
diff --git a/kernel.spec b/kernel.spec
index 58a0f0a..127fabe 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -1,8 +1,10 @@
+# $Id: kernel.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
 name	kernel
 id	1
-length	256
+length	410
 
-3   pascal GetVersion() KERNEL_GetVersion()
+3   return GetVersion 0 0x301
 5   pascal LocalAlloc(word word) HEAP_LocalAlloc(1 2)
 23  pascal LockSegment(s_word) KERNEL_LockSegment(1)
 24  pascal UnlockSegment(s_word) KERNEL_UnlockSegment(1)
diff --git a/ldt.c b/ldt.c
index facad91..7ab12df 100644
--- a/ldt.c
+++ b/ldt.c
@@ -1,8 +1,6 @@
-/* $Id$
- */
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: ldt.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <errno.h>
diff --git a/ldtlib.c b/ldtlib.c
index 137130d..cfd2e25 100644
--- a/ldtlib.c
+++ b/ldtlib.c
@@ -1,8 +1,6 @@
-/* $Id$
- */
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: ldtlib.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <errno.h>
diff --git a/neexe.h b/neexe.h
index d92b4a6..c1b0070 100644
--- a/neexe.h
+++ b/neexe.h
@@ -1,4 +1,4 @@
-/* $Id: neexe.h,v 1.1 1993/06/09 03:28:10 root Exp root $
+/* $Id: neexe.h,v 1.3 1993/06/30 14:24:33 root Exp root $
  */
 /*
  * Copyright  Robert J. Amstadt, 1993
@@ -143,9 +143,9 @@
     unsigned short pspNextParagraph;
     unsigned char  pspReserved1;
     unsigned char  pspDispatcher[5];
-    unsigned long  pspTerminateVector;
-    unsigned long  pspControlCVector;
-    unsigned long  pspCritErrorVector;
+    unsigned short pspTerminateVector[2];
+    unsigned short pspControlCVector[2];
+    unsigned short pspCritErrorVector[2];
     unsigned short pspReserved2[11];
     unsigned short pspEnvironment;
     unsigned short pspReserved3[23];
@@ -155,4 +155,63 @@
     unsigned char  pspCommandTail[128];
 };
 
+/*
+ * Entry table structures.
+ */
+struct entry_tab_header_s
+{
+    unsigned char n_entries;
+    unsigned char seg_number;
+};
+
+struct entry_tab_movable_s
+{
+    unsigned char flags;
+    unsigned char int3f[2];
+    unsigned char seg_number;
+    unsigned short offset;
+};
+
+struct entry_tab_fixed_s
+{
+    unsigned char flags;
+    unsigned char offset[2];
+};
+
+/*
+ * Resource table structures.
+ */
+struct resource_nameinfo_s
+{
+    unsigned short offset;
+    unsigned short length;
+    unsigned short flags;
+    unsigned short id;
+    unsigned short handle;
+    unsigned short usage;
+};
+
+struct resource_typeinfo_s
+{
+    unsigned short type_id;	/* Type identifier */
+    unsigned short count;	/* Number of resources of this type */
+    unsigned long  reserved;
+    /*
+     * Name info array.
+     */
+};
+
+#define NE_RSCTYPE_ACCELERATOR		0x8009
+#define NE_RSCTYPE_BITMAP		0x8002
+#define NE_RSCTYPE_CURSOR		0x8001
+#define NE_RSCTYPE_DIALOG		0x8005
+#define NE_RSCTYPE_FONT			0x8008
+#define NE_RSCTYPE_FONTDIR		0x8007
+#define NE_RSCTYPE_GROUP_CURSOR		0x800c
+#define NE_RSCTYPE_GROUP_ICON		0x800e
+#define NE_RSCTYPE_ICON			0x8003
+#define NE_RSCTYPE_MENU			0x8004
+#define NE_RSCTYPE_RCDATA		0x800a
+#define NE_RSCTYPE_STRING		0x8006
+
 #endif /* NEEXE_H */
diff --git a/prototypes.h b/prototypes.h
index 0b6b8ed..526079fc 100644
--- a/prototypes.h
+++ b/prototypes.h
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: prototypes.h,v 1.1 1993/06/29 15:55:18 root Exp $
  */
 /*
  * Copyright  Robert J. Amstadt, 1993
@@ -26,7 +26,14 @@
 			struct segment_descriptor_s *selecetor_table,
 			int segment_num);
 extern struct  dll_table_entry_s *FindDLLTable(char *dll_name);
+extern unsigned int GetEntryPointFromOrdinal(int fd, 
+					     struct mz_header_s *mz_header, 
+					     struct ne_header_s *ne_header, 
+					     int ordinal);
 
 extern char WIN_CommandLine[];
+extern struct mz_header_s *CurrentMZHeader;
+extern struct ne_header_s *CurrentNEHeader;
+extern int CurrentNEFile;
 
 #endif /* PROTOTYPES_H */
diff --git a/relay.c b/relay.c
index 067d0ab..0dc6d49 100644
--- a/relay.c
+++ b/relay.c
@@ -1,8 +1,5 @@
-/* $Id$
- */
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: relay.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -20,12 +17,16 @@
 #include "prototypes.h"
 #include "dlls.h"
 
-struct dll_name_table_entry_s dll_builtin_table[4] =
+#define N_BUILTINS	6
+
+struct dll_name_table_entry_s dll_builtin_table[N_BUILTINS] =
 {
-    { "KERNEL",  KERNEL_table, 	256, 1 },
-    { "USER",    USER_table, 	256, 2 },
-    { "GDI",     GDI_table, 	256, 3 },
-    { "UNIXLIB", UNIXLIB_table, 256, 4 },
+    { "KERNEL",  KERNEL_table, 	410, 1 },
+    { "USER",    USER_table, 	540, 2 },
+    { "GDI",     GDI_table, 	490, 3 },
+    { "UNIXLIB", UNIXLIB_table,  10, 4 },
+    { "WIN87EM", WIN87EM_table,  10, 5 },
+    { "SHELL",   SHELL_table,   256, 6 },
 };
 
 unsigned short *Stack16Frame;
@@ -170,7 +171,7 @@
 {
     int i;
 
-    for (i = 0; i < 4; i++)
+    for (i = 0; i < N_BUILTINS; i++)
 	if (strcmp(dll_builtin_table[i].dll_name, dll_name) == 0)
 	    return dll_builtin_table[i].dll_table;
     
@@ -185,11 +186,11 @@
 {
     int i, limit;
 
-    for (i = 0; i < 4; i++)
+    for (i = 0; i < N_BUILTINS; i++)
 	if (dll_table == dll_builtin_table[i].dll_table)
 	    break;
     
-    if (i == 4)
+    if (i == N_BUILTINS)
 	return 0;
 
     limit = dll_builtin_table[i].dll_table_length;
diff --git a/resource.c b/resource.c
new file mode 100644
index 0000000..7d674bc
--- /dev/null
+++ b/resource.c
@@ -0,0 +1,242 @@
+static char RCSId[] = "$Id: resource.c,v 1.3 1993/06/30 14:24:33 root Exp root $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "prototypes.h"
+#include "neexe.h"
+
+#define MIN(a,b)	((a) < (b) ? (a) : (b))
+
+typedef struct resource_data_s
+{
+    int resource_type;
+    void *resource_data;
+} RSCD;
+
+RSCD *Resources;
+int ResourceArraySize;
+
+/**********************************************************************
+ *					AddResource
+ */
+int
+AddResource(int type, void *data)
+{
+    RSCD *r;
+    int i;
+    int j;
+    
+    /*
+     * Find free resource id.
+     */
+    r = Resources;
+    for (i = 0; i < ResourceArraySize; i++, r++)
+	if (r->resource_type == 0)
+	    break;
+    
+    /*
+     * Do we need to add more resource slots?
+     */
+    if (i == ResourceArraySize)
+    {
+	if (ResourceArraySize > 0)
+	    r = realloc(Resources, (ResourceArraySize + 32) * sizeof(RSCD));
+	else
+	    r = malloc(32 * sizeof(RSCD));
+	if (r == NULL)
+	    return 0;
+
+	for (j = ResourceArraySize; j < ResourceArraySize + 32; j++)
+	    r[j].resource_type = 0;
+	
+	ResourceArraySize += 32;
+	Resources = r;
+	r = &Resources[i];
+    }
+    
+    /*
+     * Add new resource to list.
+     */
+    r->resource_type = type;
+    r->resource_data = data;
+
+    /*
+     * Return a unique handle.
+     */
+    return i + 1;
+}
+
+/**********************************************************************
+ *					FindResourceByNumber
+ */
+int
+FindResourceByNumber(struct resource_nameinfo_s *result_p,
+		     int type_id, int resource_id)
+{
+    struct resource_typeinfo_s typeinfo;
+    struct resource_nameinfo_s nameinfo;
+    unsigned short size_shift;
+    int i;
+
+    /*
+     * Move to beginning of resource table.
+     */
+    lseek(CurrentNEFile, (CurrentMZHeader->ne_offset +
+			  CurrentNEHeader->resource_tab_offset), SEEK_SET);
+    
+    /*
+     * Read block size.
+     */
+    if (read(CurrentNEFile, &size_shift, sizeof(size_shift)) != 
+	sizeof(size_shift))
+    {
+	return -1;
+    }
+    
+    /*
+     * Find resource.
+     */
+    typeinfo.type_id = 0xffff;
+    while (typeinfo.type_id != 0)
+    {
+	if (read(CurrentNEFile, &typeinfo, sizeof(typeinfo)) !=
+	    sizeof(typeinfo))
+	{
+	    return -1;
+	}
+	if (typeinfo.type_id != 0)
+	{
+	    for (i = 0; i < typeinfo.count; i++)
+	    {
+		if (read(CurrentNEFile, &nameinfo, sizeof(nameinfo)) != 
+		    sizeof(nameinfo))
+		{
+		    return -1;
+		}
+
+#if defined(DEBUG_RESOURCE) && defined(VERBOSE_DEBUG)
+		if (type_id == typeinfo.type_id)
+		{
+		    printf("FindResource: type id = %d, resource id = %x\n",
+			   type_id, nameinfo.id);
+		}
+#endif
+		if ((type_id == -1 || typeinfo.type_id == type_id) &&
+		    nameinfo.id == resource_id)
+		{
+		    memcpy(result_p, &nameinfo, sizeof(nameinfo));
+		    return size_shift;
+		}
+	    }
+	}
+    }
+    
+    return -1;
+}
+
+/**********************************************************************
+ *					RSC_LoadString
+ */
+int
+RSC_LoadString(int instance, int resource_id, char *buffer, int buflen)
+{
+    struct resource_nameinfo_s nameinfo;
+    unsigned short target_id;
+    unsigned char string_length;
+    int size_shift;
+    int string_num;
+    int i;
+
+#ifdef DEBUG_RESOURCE
+    printf("LoadString: instance = %04x, id = %d, "
+	   "buffer = %08x, length = %d\n",
+	   instance, resource_id, buffer, buflen);
+#endif
+    
+    /*
+     * Find string entry.
+     */
+    target_id = (resource_id >> 4) + 0x8001;
+    string_num = resource_id & 0x000f;
+
+    size_shift = FindResourceByNumber(&nameinfo, NE_RSCTYPE_STRING, target_id);
+    if (size_shift == -1)
+	return 0;
+    
+    lseek(CurrentNEFile, (int) nameinfo.offset << size_shift, SEEK_SET);
+
+    for (i = 0; i < string_num; i++)
+    {
+	read(CurrentNEFile, &string_length, 1);
+	lseek(CurrentNEFile, string_length, SEEK_CUR);
+    }
+			
+    read(CurrentNEFile, &string_length, 1);
+    i = MIN(string_length, buflen - 1);
+    read(CurrentNEFile, buffer, i);
+    buffer[i] = '\0';
+#ifdef DEBUG_RESOURCE
+    printf("            '%s'\n", buffer);
+#endif
+    return i;
+}
+
+/**********************************************************************
+ *					RSC_LoadBitmap
+ */
+int 
+RSC_LoadBitmap(int instance, char *bmp_name)
+{
+    struct resource_nameinfo_s nameinfo;
+    void *image;
+    int image_size;
+    int size_shift;
+    
+#ifdef DEBUG_RESOURCE
+    printf("LoadBitmap: instance = %04x, name = %08x\n",
+	   instance, bmp_name);
+#endif
+    /*
+     * Built-in bitmaps
+     */
+    if (instance == 0)
+    {
+	return 0;
+    }
+    /*
+     * Get bitmap by ordinal
+     */
+    else if (((int) bmp_name & 0xffff0000) == 0)
+    {
+	size_shift = FindResourceByNumber(&nameinfo, NE_RSCTYPE_BITMAP,
+					  (int) bmp_name | 0x8000);
+    }
+    /*
+     * Get bitmap by name
+     */
+    else
+    {
+	size_shift = -1;
+    }
+    if (size_shift == -1)
+	return 0;
+
+    /*
+     * Read bitmap.
+     */
+    lseek(CurrentNEFile, ((int) nameinfo.offset << size_shift), SEEK_SET);
+
+    image_size = nameinfo.length << size_shift;
+    image = malloc(image_size);
+    if (image == NULL || read(CurrentNEFile, image, image_size) != image_size)
+    {
+	free(image);
+	return 0;
+    }
+
+    /*
+     * Add to resource list.
+     */
+    return AddResource(NE_RSCTYPE_BITMAP, image);
+}
diff --git a/segmem.h b/segmem.h
index 39a0225..3495c8f 100644
--- a/segmem.h
+++ b/segmem.h
@@ -1,4 +1,4 @@
-/* $Id$
+/* $Id: segmem.h,v 1.1 1993/06/29 15:55:18 root Exp $
  */
 /*
  * Copyright  Robert J. Amstadt, 1993
diff --git a/selector.c b/selector.c
index 449e9ba..ba3a654 100644
--- a/selector.c
+++ b/selector.c
@@ -1,8 +1,5 @@
-/* $Id: exedump.c,v 1.1 1993/06/09 03:28:10 root Exp root $
- */
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: selector.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -29,6 +26,78 @@
 extern void KERNEL_Ordinal_102();
 extern void UNIXLIB_Ordinal_0();
 
+/**********************************************************************
+ *					GetEntryPointFromOrdinal
+ */
+unsigned int 
+GetEntryPointFromOrdinal(int fd, struct mz_header_s *mz_header, 
+			 struct ne_header_s *ne_header, int ordinal)
+{
+    struct entry_tab_header_s eth;
+    struct entry_tab_movable_s etm;
+    struct entry_tab_fixed_s etf;
+    int current_ordinal;
+    int i;
+    
+    /*
+     * Move to the beginning of the entry table.
+     */
+    lseek(fd, mz_header->ne_offset + ne_header->entry_tab_offset, SEEK_SET);
+
+    /*
+     * Let's walk through the table until we get to our entry.
+     */
+    current_ordinal = 1;
+    while (1)
+    {
+	/*
+	 * Read header for this bundle.
+	 */
+	if (read(fd, &eth, sizeof(eth)) != sizeof(eth))
+	    myerror("Error reading entry table");
+	
+	if (eth.n_entries == 0)
+	    return 0;
+
+	if (eth.seg_number == 0)
+	{
+	    current_ordinal++;
+	    continue;
+	}
+
+	/*
+	 * Read each of the bundle entries.
+	 */
+	for (i = 0; i < eth.n_entries; i++, current_ordinal++)
+	{
+	    if (eth.seg_number >= 0xfe)
+	    {
+		if (read(fd, &etm, sizeof(etm)) != sizeof(etm))
+		    myerror("Error reading entry table");
+
+		if (current_ordinal == ordinal)
+		{
+		    return ((unsigned int) 
+			    (SelectorTable[etm.seg_number - 1].base_addr + 
+			     etm.offset));
+		}
+	    }
+	    else
+	    {
+		if (read(fd, &etf, sizeof(etf)) != sizeof(etf))
+		    myerror("Error reading entry table");
+
+		if (current_ordinal == ordinal)
+		{
+		    return ((unsigned int) 
+			    (SelectorTable[eth.seg_number - 1].base_addr + 
+			     (int) etf.offset[0] + 
+			     ((int) etf.offset[1] << 8)));
+		}
+	    }
+	}
+    }
+}
 
 /**********************************************************************
  *					GetDOSEnvironment
@@ -113,9 +182,12 @@
     usp = (unsigned short *) &psp->pspDispatcher[1];
     *usp       = (unsigned short) KERNEL_Ordinal_102;
     *(usp + 1) = 0x23;
-    psp->pspTerminateVector = 0x00230000 | ((int) UNIXLIB_Ordinal_0 & 0xffff);
-    psp->pspControlCVector = 0x00230000 | ((int) UNIXLIB_Ordinal_0 & 0xffff);
-    psp->pspCritErrorVector = 0x00230000 | ((int) UNIXLIB_Ordinal_0 & 0xffff);
+    psp->pspTerminateVector[0] = (unsigned short) UNIXLIB_Ordinal_0;
+    psp->pspTerminateVector[1] = 0x0023;
+    psp->pspControlCVector[0] = (unsigned short) UNIXLIB_Ordinal_0;
+    psp->pspControlCVector[1] = 0x0023;
+    psp->pspCritErrorVector[0] = (unsigned short) UNIXLIB_Ordinal_0;
+    psp->pspCritErrorVector[1] = 0x0023;
     psp->pspEnvironment = SelectorTable[EnvironmentSelectorIdx].selector;
     psp->pspCommandTailCount = 1;
     strcpy(psp->pspCommandTail, "\r");
@@ -161,6 +233,14 @@
     zfile = fopen("/dev/zero","r");
     for (i = 0; i < ne_header->n_segment_tab; i++, s++)
     {
+#ifdef DEBUG_SEGMENT
+	printf("  %2d: OFFSET %04.4x, LENGTH %04.4x, ",
+	       i + 1, seg_table[i].seg_data_offset, 
+	       seg_table[i].seg_data_length);
+	printf("FLAGS %04.4x, MIN ALLOC %04.4x\n",
+	       seg_table[i].seg_flags, seg_table[i].min_alloc);
+#endif
+
 	/*
 	 * Store the flags in our table.
 	 */
@@ -231,9 +311,10 @@
 	    /*
 	     * Image in file.
 	     */
-	    status = lseek(fd, seg_table[i].seg_data_offset * 512, SEEK_SET);
+	    status = lseek(fd, seg_table[i].seg_data_offset * 
+			   (1 << ne_header->align_shift_count), SEEK_SET);
 	    if(read(fd, s->base_addr, old_length) != old_length)
-	      myerror("Unable to read segment from file");
+		myerror("Unable to read segment from file");
 	}
 	/*
 	 * Create entry in LDT for this segment.
diff --git a/shell.spec b/shell.spec
new file mode 100644
index 0000000..79f46d9
--- /dev/null
+++ b/shell.spec
@@ -0,0 +1,5 @@
+# $Id: shell.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
+name	shell
+id	5
+length	256
diff --git a/test.exe b/test.exe
deleted file mode 100755
index 3a75f7c..0000000
--- a/test.exe
+++ /dev/null
Binary files differ
diff --git a/unixlib.spec b/unixlib.spec
index 7b5b9dd..e24d02f 100644
--- a/unixlib.spec
+++ b/unixlib.spec
@@ -1,5 +1,7 @@
+# $Id: unixlib.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
 name	unixlib
 id	4
-length	256
+length	10
 
-1   c _DebugPrintString(ptr) DebugPrintString(1)
\ No newline at end of file
+1   c _DebugPrintString(ptr) DebugPrintString(1)
diff --git a/user-ordinals b/user-ordinals
new file mode 100644
index 0000000..6df81ba
--- /dev/null
+++ b/user-ordinals
@@ -0,0 +1,413 @@
+  1   1  ab5d  MESSAGEBOX exported, shared data
+  2   3  0059  OLDEXITWINDOWS exported, shared data
+  3   5  0165  ENABLEOEMLAYER exported, shared data
+  4   5  01a2  DISABLEOEMLAYER exported, shared data
+  5   5  03a2  INITAPP exported, shared data
+  6   1  81d4  POSTQUITMESSAGE exported, shared data
+  7   5  0303  EXITWINDOWS exported, shared data
+  8   3  0232  WEP exported, shared data
+ 10   1  a8e8  SETTIMER exported, shared data
+ 11   1  744c  BEAR11 exported, shared data
+ 12   1  a905  KILLTIMER exported, shared data
+ 13   1  729f  GETTICKCOUNT exported, shared data
+ 14   1  7439  GETTIMERRESOLUTION exported
+ 15   1  729f  GETCURRENTTIME exported, shared data
+ 16   1  abc5  CLIPCURSOR exported, shared data
+ 17   1  abab  GETCURSORPOS exported, shared data
+ 18   1  a8d4  SETCAPTURE exported, shared data
+ 19   1  28bd  RELEASECAPTURE exported, shared data
+ 20   1  8161  SETDOUBLECLICKTIME exported, shared data
+ 21   1  8171  GETDOUBLECLICKTIME exported, shared data
+ 22   1  a875  SETFOCUS exported, shared data
+ 23   1  8183  GETFOCUS exported, shared data
+ 24  13  24e7  REMOVEPROP exported, shared data
+ 25   1  1c95  GETPROP exported, shared data
+ 26  13  24ca  SETPROP exported, shared data
+ 27  13  2504  ENUMPROPS exported, shared data
+ 28   1  1874  CLIENTTOSCREEN exported, shared data
+ 29   1  189e  SCREENTOCLIENT exported, shared data
+ 30   1  713c  WINDOWFROMPOINT exported, shared data
+ 31   1  192d  ISICONIC exported, shared data
+ 32   1  1825  GETWINDOWRECT exported, shared data
+ 33   1  1828  GETCLIENTRECT exported, shared data
+ 34   1  a919  ENABLEWINDOW exported, shared data
+ 35   1  1912  ISWINDOWENABLED exported, shared data
+ 36   1  ab25  GETWINDOWTEXT exported, shared data
+ 37   1  ab05  SETWINDOWTEXT exported, shared data
+ 38   1  ab49  GETWINDOWTEXTLENGTH exported, shared data
+ 39   1  a971  BEGINPAINT exported, shared data
+ 40   1  a991  ENDPAINT exported, shared data
+ 41   8  0f1b  CREATEWINDOW exported, shared data
+ 42  14  103e  SHOWWINDOW exported, shared data
+ 43  14  1088  CLOSEWINDOW exported, shared data
+ 44  14  1074  OPENICON exported, shared data
+ 45   7  1836  BRINGWINDOWTOTOP exported, shared data
+ 46   2  0dde  GETPARENT exported, shared data
+ 47   1  1802  ISWINDOW exported, shared data
+ 48   1  1bd3  ISCHILD exported, shared data
+ 49   1  1c28  ISWINDOWVISIBLE exported, shared data
+ 50   6  1f72  FINDWINDOW exported, shared data
+ 51   1  1a6c  BEAR51 exported, shared data
+ 52  14  03f0  ANYPOPUP exported, shared data
+ 53   8  0faa  DESTROYWINDOW exported, shared data
+ 54   1  ad20  ENUMWINDOWS exported, shared data
+ 55   1  ad03  ENUMCHILDWINDOWS exported, shared data
+ 56   7  17a6  MOVEWINDOW exported, shared data
+ 57   8  0e7c  REGISTERCLASS exported, shared data
+ 58   8  0eeb  GETCLASSNAME exported, shared data
+ 59   1  a949  SETACTIVEWINDOW exported, shared data
+ 60   1  818d  GETACTIVEWINDOW exported, shared data
+ 61  13  23dd  SCROLLWINDOW exported, shared data
+ 62  18  1a00  SETSCROLLPOS exported, shared data
+ 63  18  1a22  GETSCROLLPOS exported, shared data
+ 64  18  1a44  SETSCROLLRANGE exported, shared data
+ 65  18  1a66  GETSCROLLRANGE exported, shared data
+ 66   1  a60b  GETDC exported, shared data
+ 67   1  a5f7  GETWINDOWDC exported, shared data
+ 68   1  a61f  RELEASEDC exported, shared data
+ 69   1  ab97  SETCURSOR exported, shared data
+ 70   1  822c  SETCURSORPOS exported, shared data
+ 71   1  150c  SHOWCURSOR exported, shared data
+ 72   1  1d3d  SETRECT exported, shared data
+ 73   1  1d64  SETRECTEMPTY exported, shared data
+ 74   1  1d7d  COPYRECT exported, shared data
+ 75   1  1d9a  ISRECTEMPTY exported, shared data
+ 76   1  1dc0  PTINRECT exported, shared data
+ 77   1  1df4  OFFSETRECT exported, shared data
+ 78   1  1e19  INFLATERECT exported, shared data
+ 79   1  1e3e  INTERSECTRECT exported, shared data
+ 80   1  1ea6  UNIONRECT exported, shared data
+ 81   1  ac40  FILLRECT exported, shared data
+ 82   1  acd0  INVERTRECT exported, shared data
+ 83   1  ac88  FRAMERECT exported, shared data
+ 84  13  239c  DRAWICON exported, shared data
+ 85   6  1e91  DRAWTEXT exported, shared data
+ 86  13  0229  BEAR86 exported, shared data
+ 87  25  263b  DIALOGBOX exported, shared data
+ 88  25  26e5  ENDDIALOG exported, shared data
+ 89  24  09ce  CREATEDIALOG exported, shared data
+ 90  25  2804  ISDIALOGMESSAGE exported, shared data
+ 91  25  26f9  GETDLGITEM exported, shared data
+ 92  25  2741  SETDLGITEMTEXT exported, shared data
+ 93  25  2761  GETDLGITEMTEXT exported, shared data
+ 94  25  270d  SETDLGITEMINT exported, shared data
+ 95  25  2721  GETDLGITEMINT exported, shared data
+ 96  25  2789  CHECKRADIOBUTTON exported, shared data
+ 97  25  2775  CHECKDLGBUTTON exported, shared data
+ 98  25  279d  ISDLGBUTTONCHECKED exported, shared data
+ 99  37  0fdf  DLGDIRSELECT exported, shared data
+100  37  0fb1  DLGDIRLIST exported, shared data
+101  25  27b1  SENDDLGITEMMESSAGE exported, shared data
+102   2  0cd2  ADJUSTWINDOWRECT exported, shared data
+103  25  2853  MAPDIALOGRECT exported, shared data
+104   1  1bab  MESSAGEBEEP exported, shared data
+105   6  1f5e  FLASHWINDOW exported, shared data
+106   1  4f46  GETKEYSTATE exported, shared data
+107   1  a7fc  DEFWINDOWPROC exported, shared data
+108   1  a68f  GETMESSAGE exported, shared data
+109   1  a744  PEEKMESSAGE exported, shared data
+110   1  a7b7  POSTMESSAGE exported, shared data
+111   1  a786  SENDMESSAGE exported, shared data
+112   1  3dc4  WAITMESSAGE exported, shared data
+113   1  a6b2  TRANSLATEMESSAGE exported, shared data
+114   1  a6fb  DISPATCHMESSAGE exported, shared data
+115   1  3c37  REPLYMESSAGE exported, shared data
+116   1  a7e8  POSTAPPMESSAGE exported, shared data
+118   1  8214  REGISTERWINDOWMESSAGE exported, shared data
+119   1  81ae  GETMESSAGEPOS exported, shared data
+120   1  81a1  GETMESSAGETIME exported, shared data
+121   1  ad68  SETWINDOWSHOOK exported, shared data
+122   1  a827  CALLWINDOWPROC exported, shared data
+123   1  a85b  CALLMSGFILTER exported, shared data
+124   1  a95d  UPDATEWINDOW exported, shared data
+125   1  aa27  INVALIDATERECT exported, shared data
+126   1  aa67  INVALIDATERGN exported, shared data
+127   1  aa47  VALIDATERECT exported, shared data
+128   1  aa93  VALIDATERGN exported, shared data
+129   2  0d8e  GETCLASSWORD exported, shared data
+130   2  0da2  SETCLASSWORD exported, shared data
+131   2  0db6  GETCLASSLONG exported, shared data
+132   2  0dca  SETCLASSLONG exported, shared data
+133   2  0d06  GETWINDOWWORD exported, shared data
+134   2  0d1a  SETWINDOWWORD exported, shared data
+135   2  0d3a  GETWINDOWLONG exported, shared data
+136   2  0d4e  SETWINDOWLONG exported, shared data
+137  39  0710  OPENCLIPBOARD exported, shared data
+138  39  0643  CLOSECLIPBOARD exported, shared data
+139  39  0261  EMPTYCLIPBOARD exported, shared data
+140  39  00ee  GETCLIPBOARDOWNER exported, shared data
+141  39  02f4  SETCLIPBOARDDATA exported, shared data
+142  39  0425  GETCLIPBOARDDATA exported, shared data
+143  39  0075  COUNTCLIPBOARDFORMATS exported, shared data
+144  39  06bb  ENUMCLIPBOARDFORMATS exported, shared data
+145   1  8214  REGISTERCLIPBOARDFORMAT exported, shared data
+146  39  0752  GETCLIPBOARDFORMATNAME exported, shared data
+147  39  0724  SETCLIPBOARDVIEWER exported, shared data
+148  39  00f9  GETCLIPBOARDVIEWER exported, shared data
+149  39  0738  CHANGECLIPBOARDCHAIN exported, shared data
+150   9  1076  LOADMENU exported, shared data
+151   9  0806  CREATEMENU exported, shared data
+152   9  118e  DESTROYMENU exported, shared data
+153   9  10db  CHANGEMENU exported, shared data
+154   9  11a2  CHECKMENUITEM exported, shared data
+155   9  11c7  ENABLEMENUITEM exported, shared data
+156   9  1160  GETSYSTEMMENU exported, shared data
+157   9  10ad  GETMENU exported, shared data
+158   9  10c1  SETMENU exported, shared data
+159   9  11ec  GETSUBMENU exported, shared data
+160  10  30c3  DRAWMENUBAR exported, shared data
+161   9  10fd  GETMENUSTRING exported, shared data
+162  19  0b49  HILITEMENUITEM exported, shared data
+163  13  2521  CREATECARET exported, shared data
+164  13  0bfa  DESTROYCARET exported, shared data
+165  13  0db8  SETCARETPOS exported, shared data
+166  13  254f  HIDECARET exported, shared data
+167  13  2563  SHOWCARET exported, shared data
+168   3  24fd  SETCARETBLINKTIME exported, shared data
+169  13  0d8f  GETCARETBLINKTIME exported, shared data
+170   4  04c0  ARRANGEICONICWINDOWS exported, shared data
+171   2  0e3c  WINHELP exported, shared data
+172  23  0ceb  SWITCHTOTHISWINDOW exported, shared data
+173  12  169b  LOADCURSOR exported, shared data
+174  12  1712  LOADICON exported, shared data
+175  12  167e  LOADBITMAP exported, shared data
+176  12  17af  LOADSTRING exported, shared data
+177  12  1661  LOADACCELERATORS exported, shared data
+178  19  0af4  TRANSLATEACCELERATOR exported, shared data
+179   1  a92d  GETSYSTEMMETRICS exported, shared data
+180   1  8135  GETSYSCOLOR exported, shared data
+181  41  186f  SETSYSCOLORS exported, shared data
+182   1  74f4  BEAR182 exported, shared data
+183  13  0d9a  GETCARETPOS exported, shared data
+184   1  490e  QUERYSENDMESSAGE exported, shared data
+185  10  30d7  GRAYSTRING exported, shared data
+186   1  1cee  SWAPMOUSEBUTTON exported
+187   9  00fe  ENDMENU exported, shared data
+188   1  a772  SETSYSMODALWINDOW exported, shared data
+189   1  19d4  GETSYSMODALWINDOW exported, shared data
+190   1  a9b1  GETUPDATERECT exported, shared data
+191   1  abf9  CHILDWINDOWFROMPOINT exported, shared data
+192   1  3dba  INSENDMESSAGE exported, shared data
+193  39  0030  ISCLIPBOARDFORMATAVAILABLE exported, shared data
+194  37  104d  DLGDIRSELECTCOMBOBOX exported, shared data
+195  37  101f  DLGDIRLISTCOMBOBOX exported, shared data
+196   6  1f1d  TABBEDTEXTOUT exported, shared data
+197   6  1edc  GETTABBEDTEXTEXTENT exported, shared data
+198  15  0875  CASCADECHILDWINDOWS exported, shared data
+199  15  0956  TILECHILDWINDOWS exported, shared data
+200  40  09d9  OPENCOMM exported, shared data
+201  40  09f6  SETCOMMSTATE exported, shared data
+202  40  0a13  GETCOMMSTATE exported, shared data
+203  40  0acd  GETCOMMERROR exported, shared data
+204  40  0a3d  READCOMM exported, shared data
+205  40  0a85  WRITECOMM exported, shared data
+206  40  0b1d  TRANSMITCOMMCHAR exported, shared data
+207  40  0aaf  CLOSECOMM exported, shared data
+208  40  0b3b  SETCOMMEVENTMASK exported, shared data
+209  40  0b64  GETCOMMEVENTMASK exported, shared data
+210  40  0b8d  SETCOMMBREAK exported, shared data
+211  40  0bab  CLEARCOMMBREAK exported, shared data
+212  40  0a67  UNGETCOMMCHAR exported, shared data
+213  40  0af4  BUILDCOMMDCB exported, shared data
+214  40  0be7  ESCAPECOMMFUNCTION exported, shared data
+215  40  0bc9  FLUSHCOMM exported, shared data
+216  41  181e  USERSEEUSERDO exported, shared data
+217   9  0163  LOOKUPMENUHANDLE exported, shared data
+218  25  2667  DIALOGBOXINDIRECT exported, shared data
+219  24  09fa  CREATEDIALOGINDIRECT exported, shared data
+220   9  1093  LOADMENUINDIRECT exported, shared data
+221  13  2409  SCROLLDC exported, shared data
+222   1  a889  GETKEYBOARDSTATE exported, shared data
+223   1  a8a3  SETKEYBOARDSTATE exported, shared data
+224   1  ad54  GETWINDOWTASK exported, shared data
+225   1  ad37  ENUMTASKWINDOWS exported, shared data
+226   1  4983  LOCKINPUT exported, shared data
+227  19  0ac0  GETNEXTDLGGROUPITEM exported, shared data
+228  19  0ada  GETNEXTDLGTABITEM exported, shared data
+229   2  0df2  GETTOPWINDOW exported, shared data
+230   2  08f2  GETNEXTWINDOW exported, shared data
+231   1  4afb  GETSYSTEMDEBUGSTATE exported, shared data
+232   7  17ba  SETWINDOWPOS exported, shared data
+233  14  109c  SETPARENT exported, shared data
+234   1  ad9a  UNHOOKWINDOWSHOOK exported, shared data
+235   1  adc4  DEFHOOKPROC exported, shared data
+236   1  8197  GETCAPTURE exported, shared data
+237   1  a9d1  GETUPDATERGN exported, shared data
+238   1  a9fa  EXCLUDEUPDATERGN exported, shared data
+239  25  2690  DIALOGBOXPARAM exported, shared data
+240  25  26bc  DIALOGBOXINDIRECTPARAM exported, shared data
+241  24  0a29  CREATEDIALOGPARAM exported, shared data
+242  24  0a55  CREATEDIALOGINDIRECTPARAM exported, shared data
+243  25  0aa3  GETDIALOGBASEUNITS exported, shared data
+244   1  2094  EQUALRECT exported, shared data
+245  40  0c06  ENABLECOMMNOTIFICATION exported, shared data
+246   5  05de  EXITWINDOWSEXEC exported, shared data
+247   1  14ca  GETCURSOR exported, shared data
+248  39  0600  GETOPENCLIPBOARDWINDOW exported, shared data
+249   1  4f59  GETASYNCKEYSTATE exported, shared data
+250   9  113b  GETMENUSTATE exported, shared data
+251   2  0e5c  SENDDRIVERMESSAGE exported, shared data
+252  41  18cb  OPENDRIVER exported, shared data
+253  41  18f1  CLOSEDRIVER exported, shared data
+254  41  1905  GETDRIVERMODULEHANDLE exported, shared data
+255   2  0e70  DEFDRIVERPROC exported, shared data
+256   2  0eaf  GETDRIVERINFO exported, shared data
+257   2  0e84  GETNEXTDRIVER exported, shared data
+258   1  18c8  MAPWINDOWPOINTS exported, shared data
+259   7  00b5  BEGINDEFERWINDOWPOS exported, shared data
+260   7  17eb  DEFERWINDOWPOS exported, shared data
+261   7  1822  ENDDEFERWINDOWPOS exported, shared data
+262   2  0e1a  GETWINDOW exported, shared data
+263   9  1217  GETMENUITEMCOUNT exported, shared data
+264   9  1200  GETMENUITEMID exported, shared data
+265  14  1060  SHOWOWNEDPOPUPS exported, shared data
+266   1  56b0  SETMESSAGEQUEUE exported, shared data
+267  18  1aa0  SHOWSCROLLBAR exported, shared data
+268   1  21cd  GLOBALADDATOM exported, shared data
+269   1  2236  GLOBALDELETEATOM exported, shared data
+270   1  2251  GLOBALFINDATOM exported, shared data
+271   1  226f  GLOBALGETATOMNAME exported, shared data
+272   1  1930  ISZOOMED exported, shared data
+273  41  1716  CONTROLPANELINFO exported, shared data
+274  23  0d8e  GETNEXTQUEUEWINDOW exported, shared data
+275   1  77a7  REPAINTSCREEN exported, shared data
+276   1  6eea  LOCKMYTASK exported, shared data
+277  25  27c5  GETDLGCTRLID exported, shared data
+278   1  19ca  GETDESKTOPHWND exported, shared data
+279  41  0a51  OLDSETDESKPATTERN exported, shared data
+280   9  1174  SETSYSTEMMENU exported, shared data
+282   6  1f95  SELECTPALETTE exported, shared data
+283   6  1fd1  REALIZEPALETTE exported, shared data
+284  41  1740  GETFREESYSTEMRESOURCES exported, shared data
+285  41  1736  BEAR285 exported, shared data
+286   1  19ca  GETDESKTOPWINDOW exported, shared data
+287   2  0e06  GETLASTACTIVEPOPUP exported, shared data
+288   1  81bb  GETMESSAGEEXTRAINFO exported, shared data
+289   1  4b59  KEYBD_EVENT exported, shared data
+290   1  aabf  REDRAWWINDOW exported, shared data
+291   1  adde  SETWINDOWSHOOKEX exported, shared data
+292   1  ae14  UNHOOKWINDOWSHOOKEX exported, shared data
+293   1  ae35  CALLNEXTHOOKEX exported, shared data
+294  13  23c9  LOCKWINDOWUPDATE exported, shared data
+299   1  507a  MOUSE_EVENT exported, shared data
+301  26  0000  BOZOSLIVEHERE exported, shared data
+306  10  1587  BEAR306 exported, shared data
+308  25  27d9  DEFDLGPROC exported, shared data
+309   1  abdf  GETCLIPCURSOR exported, shared data
+314   1  09bc  SIGNALPROC exported, shared data
+319  13  246c  SCROLLWINDOWEX exported, shared data
+320   1  9325  SYSERRORBOX exported, shared data
+321   1  a8bd  SETEVENTHOOK exported, shared data
+322  41  0e6e  WINOLDAPPHACKOMATIC exported, shared data
+323   1  244f  GETMESSAGE2 exported, shared data
+324   1  7766  FILLWINDOW exported, shared data
+325   1  76eb  PAINTRECT exported, shared data
+326   6  02d2  GETCONTROLBRUSH exported, shared data
+331   1  4f36  ENABLEHARDWAREINPUT exported
+332   1  3df2  USERYIELD exported, shared data
+333   1  334e  ISUSERIDLE exported, shared data
+334   1  4fed  GETQUEUESTATUS exported, shared data
+335   1  501c  GETINPUTSTATE exported, shared data
+336  12  0deb  LOADCURSORICONHANDLER exported, shared data
+337   1  530a  GETMOUSEEVENTPROC exported, shared data
+341   1  1798  _FFFE_FARFRAME exported, shared data
+343   1  9c7c  GETFILEPORTNAME exported, shared data
+356  12  0ff1  LOADDIBCURSORHANDLER exported, shared data
+357  12  100d  LOADDIBICONHANDLER exported, shared data
+358   9  0fa0  ISMENU exported, shared data
+359   1  a64c  GETDCEX exported, shared data
+362   1  8a00  DCHOOK exported, shared data
+368  12  176f  COPYICON exported, shared data
+369  12  16f8  COPYCURSOR exported, shared data
+370  14  0fde  GETWINDOWPLACEMENT exported, shared data
+371  14  100e  SETWINDOWPLACEMENT exported, shared data
+372  12  1789  GETINTERNALICONHEADER exported, shared data
+373   1  20b8  SUBTRACTRECT exported, shared data
+400   3  2570  FINALUSERINIT exported, shared data
+402  39  077c  GETPRIORITYCLIPBOARDFORMAT exported, shared data
+403   8  0ea5  UNREGISTERCLASS exported, shared data
+404   8  0ec2  GETCLASSINFO exported, shared data
+406  12  16b8  CREATECURSOR exported, shared data
+407  12  172f  CREATEICON exported, shared data
+408  12  0000  CREATECURSORICONINDIRECT exported, shared data
+410   9  122e  INSERTMENU exported, shared data
+411   9  1250  APPENDMENU exported, shared data
+412   9  1294  REMOVEMENU exported, shared data
+413   9  12b6  DELETEMENU exported, shared data
+414   9  1272  MODIFYMENU exported, shared data
+415   9  0813  CREATEPOPUPMENU exported, shared data
+416   9  132a  TRACKPOPUPMENU exported, shared data
+417   9  07ab  GETMENUCHECKMARKDIMENSIONS exported, shared data
+418   9  12d8  SETMENUITEMBITMAPS exported, shared data
+420  16  055a  _WSPRINTF exported, shared data
+421  16  0518  WVSPRINTF exported, shared data
+422  37  0fff  DLGDIRSELECTEX exported, shared data
+423  37  106d  DLGDIRSELECTCOMBOBOXEX exported, shared data
+430  11  0359  LSTRCMP exported, shared data
+431  11  0365  ANSIUPPER exported, shared data
+432  11  0381  ANSILOWER exported, shared data
+433  11  0203  ISCHARALPHA exported, shared data
+434  11  0208  ISCHARALPHANUMERIC exported, shared data
+435  11  020d  ISCHARUPPER exported, shared data
+436  11  0212  ISCHARLOWER exported, shared data
+437  11  039d  ANSIUPPERBUFF exported, shared data
+438  11  03b7  ANSILOWERBUFF exported, shared data
+445  15  1a6e  DEFFRAMEPROC exported, shared data
+447  15  1a82  DEFMDICHILDPROC exported, shared data
+451  15  1aad  TRANSLATEMDISYSACCEL exported, shared data
+452   8  0f57  CREATEWINDOWEX exported, shared data
+454   2  0cec  ADJUSTWINDOWRECTEX exported, shared data
+455  12  052b  GETICONID exported, shared data
+456  12  0328  LOADICONHANDLER exported, shared data
+457  12  175b  DESTROYICON exported, shared data
+458  12  16e4  DESTROYCURSOR exported, shared data
+459  12  01bb  DUMPICON exported, shared data
+460  14  0a85  GETINTERNALWINDOWPOS exported, shared data
+461  14  0aef  SETINTERNALWINDOWPOS exported, shared data
+462  15  0276  CALCCHILDSCROLL exported, shared data
+463  15  053f  SCROLLCHILDREN exported, shared data
+464  14  0fbe  DRAGOBJECT exported, shared data
+465  14  035e  DRAGDETECT exported, shared data
+466   1  ac0d  DRAWFOCUSRECT exported, shared data
+470  11  02e7  STRINGFUNC exported, shared data
+471  11  035f  LSTRCMPI exported, shared data
+472  11  03d1  ANSINEXT exported, shared data
+473  11  03eb  ANSIPREV exported, shared data
+480   1  1d38  GETUSERLOCALOBJTYPE exported, shared data
+481   1  4d6c  HARDWARE_EVENT exported, shared data
+482  18  1ac2  ENABLESCROLLBAR exported, shared data
+483  41  1895  SYSTEMPARAMETERSINFO exported, shared data
+484   1  b664  __GP exported, shared data
+499  22  005c  WNETERRORTEXT exported, shared data
+501  22  0a68  WNETOPENJOB exported, shared data
+502  22  0a9d  WNETCLOSEJOB exported, shared data
+503  22  0b40  WNETABORTJOB exported, shared data
+504  22  0acc  WNETHOLDJOB exported, shared data
+505  22  0ae9  WNETRELEASEJOB exported, shared data
+506  22  0b06  WNETCANCELJOB exported, shared data
+507  22  0b23  WNETSETJOBCOPIES exported, shared data
+508  22  09ca  WNETWATCHQUEUE exported, shared data
+509  22  09f9  WNETUNWATCHQUEUE exported, shared data
+510  22  0a16  WNETLOCKQUEUEDATA exported, shared data
+511  22  0a4b  WNETUNLOCKQUEUEDATA exported, shared data
+512  22  0992  WNETGETCONNECTION exported, shared data
+513  22  08a6  WNETGETCAPS exported, shared data
+514  22  08c7  WNETDEVICEMODE exported, shared data
+515  22  08de  WNETBROWSEDIALOG exported, shared data
+516  22  0914  WNETGETUSER exported, shared data
+517  22  0940  WNETADDCONNECTION exported, shared data
+518  22  0975  WNETCANCELCONNECTION exported, shared data
+519  22  0b63  WNETGETERROR exported, shared data
+520  22  0b80  WNETGETERRORTEXT exported, shared data
+521  22  0847  WNETENABLE exported, shared data
+522  22  084e  WNETDISABLE exported, shared data
+523  22  0478  WNETRESTORECONNECTION exported, shared data
+524  22  0855  WNETWRITEJOB exported, shared data
+525  22  085e  WNETCONNECTDIALOG exported, shared data
+526  22  0867  WNETDISCONNECTDIALOG exported, shared data
+527  22  0870  WNETCONNECTIONDIALOG exported, shared data
+528  22  0879  WNETVIEWQUEUEDIALOG exported, shared data
+529  22  088b  WNETPROPERTYDIALOG exported, shared data
+530  22  0894  WNETGETDIRECTORYTYPE exported, shared data
+531  22  089d  WNETDIRECTORYNOTIFY exported, shared data
+532  22  0882  WNETGETPROPERTYTEXT exported, shared data
diff --git a/user.c b/user.c
index 7b3ceed..8f7ac82 100644
--- a/user.c
+++ b/user.c
@@ -1,4 +1,4 @@
-static char RCSId[] = "$Id$";
+static char RCSId[] = "$Id: user.c,v 1.1 1993/06/29 15:55:18 root Exp $";
 static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
diff --git a/user.spec b/user.spec
index 152ef18..1bc3a9a 100644
--- a/user.spec
+++ b/user.spec
@@ -1,5 +1,9 @@
+# $Id: user.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
 name	user
 id	2
-length	256
+length	540
 
-5   pascal InitApp(word) USER_InitApp(1)
\ No newline at end of file
+5   pascal InitApp(word) USER_InitApp(1)
+175 pascal LoadBitmap(word ptr) RSC_LoadBitmap(1 2)
+176 pascal LoadString(word word ptr s_word) RSC_LoadString(1 2 3 4)
diff --git a/win87em.spec b/win87em.spec
new file mode 100644
index 0000000..5044d2d
--- /dev/null
+++ b/win87em.spec
@@ -0,0 +1,5 @@
+# $Id: win87em.spec,v 1.2 1993/06/30 14:24:33 root Exp root $
+#
+name	win87em
+id	5
+length	10
diff --git a/windows.h b/windows.h
new file mode 100644
index 0000000..7d89f66
--- /dev/null
+++ b/windows.h
@@ -0,0 +1,27 @@
+#ifndef WINDOWS_H
+#define WINDOWS_H
+
+typedef struct tagRGBQUAD
+{
+    unsigned char rgbBlue;
+    unsigned char rgbGreen;
+    unsigned char rgbRed;
+    unsigned char rgbReserved;
+};
+
+typedef struct tagBITMAPINFOHEADER
+{
+    unsigned long biSize;
+    unsigned long biWidth;
+    unsigned long biHeight;
+    unsigned short biPlanes;
+    unsigned short biBitCount;
+    unsigned long biCompression;
+    unsigned long biSizeImage;
+    unsigned long biXPelsPerMeter;
+    unsigned long biYPelsPerMeter;
+    unsigned long biClrUsed;
+    unsigned long biClrImportant;
+} BITMAPINFOHEADER;
+
+#endif
diff --git a/wine b/wine
deleted file mode 100755
index 57d7234..0000000
--- a/wine
+++ /dev/null
Binary files differ
diff --git a/wine.c b/wine.c
index 85d3844..3e53965 100644
--- a/wine.c
+++ b/wine.c
@@ -1,8 +1,5 @@
-/* $Id: exedump.c,v 1.1 1993/06/09 03:28:10 root Exp root $
- */
-/*
- * Copyright  Robert J. Amstadt, 1993
- */
+static char RCSId[] = "$Id: wine.c,v 1.1 1993/06/29 15:55:18 root Exp $";
+static char Copyright[] = "Copyright  Robert J. Amstadt, 1993";
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -20,13 +17,18 @@
 #include "prototypes.h"
 #include "dlls.h"
 
-extern int CallTo16(unsigned long csip, unsigned long sssp, unsigned short ds);
+extern int CallToInit16(unsigned long csip, unsigned long sssp, 
+			unsigned short ds);
 extern void CallTo32();
 
 unsigned short WIN_StackSize;
+unsigned short WIN_HeapSize;
 
 char **Argv;
 int Argc;
+struct mz_header_s *CurrentMZHeader;
+struct ne_header_s *CurrentNEHeader;
+int CurrentNEFile;
 
 /**********************************************************************
  *					DebugPrintString
@@ -34,7 +36,7 @@
 int
 DebugPrintString(char *str)
 {
-    fprintf(stderr, "%s", str);
+    printf("%s", str);
     return 0;
 }
 
@@ -119,8 +121,12 @@
     if (ne_header->header_type[0] != 'N' || ne_header->header_type[1] != 'E')
 	myerror("This is not a Windows program");
 
+    CurrentMZHeader = mz_header;
+    CurrentNEHeader = ne_header;
+    CurrentNEFile   = fd;
+
     WIN_StackSize = ne_header->stack_length;
-    
+    WIN_HeapSize = ne_header->local_heap_length;
 
     /*
      * Create segment selectors.
@@ -146,7 +152,6 @@
 	}
     }
 
-    close(fd);
     /*
      * Fixup stack and jump to start.
      */
@@ -156,7 +161,7 @@
     ss_reg = selector_table[ne_header->ss-1].selector;
     sp_reg = ne_header->sp;
 
-    rv = CallTo16(cs_reg << 16 | ip_reg, ss_reg << 16 | sp_reg, ds_reg);
+    rv = CallToInit16(cs_reg << 16 | ip_reg, ss_reg << 16 | sp_reg, ds_reg);
     printf ("rv = %x\n", rv);
 }
 
@@ -244,7 +249,8 @@
     if (i == 0)
 	i = 0x10000;
 
-    status = lseek(fd, seg->seg_data_offset * 512 + i, SEEK_SET);
+    status = lseek(fd, seg->seg_data_offset * 
+		       (1 << ne_header->align_shift_count) + i, SEEK_SET);
     n_entries = 0;
     read(fd, &n_entries, sizeof(short int));
     rep = (struct relocation_entry_s *)
@@ -273,6 +279,15 @@
 	    }
 	    
  	    dll_table = FindDLLTable(dll_name);
+	    if (dll_table == NULL)
+	    {
+		char s[80];
+		
+		sprintf(s, "Bad DLL name '%s'", dll_name);
+		myerror(s);
+		return -1;
+	    }
+
 	    ordinal = rep->target2;
 	    selector = dll_table[ordinal].selector;
 	    address  = (unsigned int) dll_table[ordinal].address;
@@ -289,6 +304,14 @@
 		return -1;
 	    }
  	    dll_table = FindDLLTable(dll_name);
+	    if (dll_table == NULL)
+	    {
+		char s[80];
+		
+		sprintf(s, "Bad DLL name '%s'", dll_name);
+		myerror(s);
+		return -1;
+	    }
 
 	    if (GetImportedName(fd, mz_header, ne_header, 
 				rep->target2, func_name) == NULL)
@@ -305,7 +328,48 @@
 	    break;
 	    
 	  case NE_RELTYPE_INTERNAL:
+	    if (rep->target1 == 0x00ff)
+	    {
+		address  = GetEntryPointFromOrdinal(fd, mz_header, ne_header,
+						    rep->target2);
+		selector = (address >> 16) & 0xffff;
+		address &= 0xffff;
+	    }
+	    else
+	    {
+		selector = selector_table[rep->target1-1].selector;
+		address  = rep->target2;
+	    }
+	    
+#ifdef DEBUG_FIXUP
+	    printf("%d: %04.4x:%04.4x\n", i + 1, selector, address);
+#endif
+	    break;
+
+	  case 7:
+	    /* Relocation type 7:
+	     *
+	     *    These appear to be used as fixups for the Windows
+	     * floating point emulator.  Let's just ignore them and
+	     * try to use the hardware floating point.  Linux should
+	     * successfully emulate the coprocessor if it doesn't
+	     * exist.
+	     */
+#ifdef DEBUG_FIXUP
+	    printf("%d: ADDR TYPE %d,  TYPE %d,  OFFSET %04.4x,  ",
+		   i + 1, rep->address_type, rep->relocation_type, 
+		   rep->offset);
+	    printf("TARGET %04.4x %04.4x\n", rep->target1, rep->target2);
+#endif
+	    continue;
+	    
 	  default:
+#ifdef DEBUG_FIXUP
+	    printf("%d: ADDR TYPE %d,  TYPE %d,  OFFSET %04.4x,  ",
+		   i + 1, rep->address_type, rep->relocation_type, 
+		   rep->offset);
+	    printf("TARGET %04.4x %04.4x\n", rep->target1, rep->target2);
+#endif
 	    free(rep1);
 	    return -1;
 	}
@@ -337,7 +401,23 @@
 
 	    break;
 	    
+	  case NE_RADDR_SELECTOR:
+	    do {
+		next_addr = *sp;
+		*sp     = (unsigned short) selector;
+		sp = (unsigned short *) ((char *) sel->base_addr + next_addr);
+	    } 
+	    while (next_addr != 0xffff);
+
+	    break;
+	    
 	  default:
+#ifdef DEBUG_FIXUP
+	    printf("%d: ADDR TYPE %d,  TYPE %d,  OFFSET %04.4x,  ",
+		   i + 1, rep->address_type, rep->relocation_type, 
+		   rep->offset);
+	    printf("TARGET %04.4x %04.4x\n", rep->target1, rep->target2);
+#endif
 	    free(rep1);
 	    return -1;
 	}
diff --git a/winetest/main.c b/winetest/main.c
deleted file mode 100755
index de7d738..0000000
--- a/winetest/main.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/*	MAIN.C
- *
- *	PURPOSE: 
- *
- *	FUNCTIONS:
- *          WinMain() - Initializes app, calls all other functions.
- */
-
-#include <windows.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-/*
- *	Globals
- */
-char	szAppName[] = "WineTest";
-
-extern long FAR PASCAL WineTestWndProc(HWND hwnd, unsigned message,
-                                       WORD wParam, LONG lParam);
-/* extern void FAR __cdecl DebugPrintString(const char FAR *str); */
-
-/*						WinMain
- */
-int PASCAL 
-WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine, int cmdShow)
-{
-    DebugPrintString("Hello\n");
-
-    return 0;
-#if 0    
-    HWND	hwnd;
-    MSG		msg;
-    WNDCLASS	wndclass;
-
-    if (hPrevInstance)
-    {
-	MessageBox(NULL, "This application is already running.", szAppName, 
-			MB_OK | MB_ICONEXCLAMATION | MB_SYSTEMMODAL);
-	return NULL;
-    }
-
-    wndclass.style		= CS_HREDRAW | CS_VREDRAW;
-    wndclass.lpfnWndProc	= WineTestWndProc;
-    wndclass.cbClsExtra		= 0;
-    wndclass.cbWndExtra		= 0;
-    wndclass.hInstance		= hInstance;
-    wndclass.hIcon		= LoadIcon(NULL, IDI_APPLICATION);
-    wndclass.hCursor		= LoadCursor(NULL, IDC_ARROW);
-    wndclass.hbrBackground	= GetStockObject(WHITE_BRUSH);
-    wndclass.lpszMenuName	= "MainMenu";
-    wndclass.lpszClassName	= szAppName;
-
-    RegisterClass(&wndclass);
-
-    hwnd = CreateWindow(szAppName, "Wine Tester",
-			WS_OVERLAPPEDWINDOW,
-			CW_USEDEFAULT,
-			CW_USEDEFAULT,
-			CW_USEDEFAULT,
-			CW_USEDEFAULT,
-			NULL, 
-    			NULL,
-			hInstance, 
-			NULL);
-    ShowWindow(hwnd, cmdShow);
-    UpdateWindow(hwnd);
-
-    while (GetMessage(&msg, NULL, NULL, NULL))
-    {
-        TranslateMessage((LPMSG) &msg);
-	DispatchMessage((LPMSG) &msg);
-    }
-
-    return msg.wParam;
-#endif /* 0 */
-}
-
-
-/*						WineTestWndProc
- */
-long FAR PASCAL 
-WineTestWndProc(HWND hwnd, unsigned message, WORD wParam, LONG lParam)
-{
-    static HANDLE hInstance;
-    FARPROC DlgProcInst;
-    LONG parm;
-
-    switch (message)
-    {
-	case WM_CREATE:
-	    hInstance = ((LPCREATESTRUCT) lParam)->hInstance;
-	    return 0;
-
-        case WM_DESTROY:
-            PostQuitMessage(0);
-            return 0;
-    }
-
-    return DefWindowProc(hwnd, message, wParam, lParam);
-}
diff --git a/winetest/makefile b/winetest/makefile
deleted file mode 100755
index 5f111dd..0000000
--- a/winetest/makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-####################################################################
-#
-#   PPI standard windows makefile
-#
-####################################################################
-
-####################################################################
-#
-#   Compiler options
-#
-AFLAGS=/ML /LA
-CFLAGS=-AM -Ozaxb2 -Gr -G2 -Zpei -W3 -DWINVER=0x0301
-LFLAGS=/CO
-
-####################################################################
-#
-#   Object files and target
-#
-OBJS=main.obj
-DIALOGS=
-TARGET=winetest
-
-####################################################################
-#
-#   Standard rules
-#
-ROOTS=$(OBJS:.obj=)
-
-all: $(TARGET).exe
-
-version:
-	coall -r$(RELEASE)
-	$(MAKE) all
-
-$(TARGET).res: $(TARGET).rc $(TARGET).h $(DIALOGS)
-	rc -r $(TARGET).rc
-
-$(TARGET).exe: $(TARGET).res $(TARGET).def $(TARGET).h $(OBJS)
-        link @<<
-$(ROOTS) /NOD $(LFLAGS)
-$@
-$(TARGET) /MAP:FULL
-libw slibcewn oldnames
-$(TARGET).def
-<<
-	rc -30 $(TARGET).res
-
diff --git a/winetest/winetest.def b/winetest/winetest.def
deleted file mode 100755
index bd9dbcc..0000000
--- a/winetest/winetest.def
+++ /dev/null
@@ -1,11 +0,0 @@
-NAME	     WINETEST
-
-DESCRIPTION  'Wine Tester'
-EXETYPE      WINDOWS
-STUB	     'WINSTUB.EXE'
-CODE	     PRELOAD MOVEABLE DISCARDABLE
-DATA	     PRELOAD MOVEABLE SINGLE 
-HEAPSIZE     8192
-STACKSIZE    8192
-EXPORTS      WineTestWndProc
-IMPORTS      UNIXLIB._DebugPrintString
diff --git a/winetest/winetest.h b/winetest/winetest.h
deleted file mode 100755
index c280412..0000000
--- a/winetest/winetest.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/*  $Id$
- */
diff --git a/winetest/winetest.rc b/winetest/winetest.rc
deleted file mode 100755
index af8228e..0000000
--- a/winetest/winetest.rc
+++ /dev/null
@@ -1,11 +0,0 @@
-#include <windows.h>
-
-MainMenu MENU
-BEGIN
-    POPUP "&File"
-    BEGIN
-        MENUITEM "E&xit",               	100
-        MENUITEM SEPARATOR
-        MENUITEM "&About...",           	101
-    END
-END
