Release 0.0.3
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.
This commit is contained in:
parent
2c25c3e944
commit
066d1e09a4
15
Makefile
15
Makefile
|
@ -1,4 +1,4 @@
|
|||
CFLAGS=-g
|
||||
CFLAGS=-g -DDEBUG_RESOURCE
|
||||
|
||||
######################################################################
|
||||
# FILES:
|
||||
|
@ -11,12 +11,15 @@ CFLAGS=-g
|
|||
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_gdi.S dll_gdi_tab.c: build gdi.spec
|
|||
|
||||
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
|
||||
|
|
24
README
24
README
|
@ -2,9 +2,19 @@ Copyright Robert J. Amstadt, 1993. All code is provided without
|
|||
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 @@ TODO:
|
|||
- 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:
|
||||
|
||||
|
|
|
@ -8,12 +8,18 @@ ORDINAL FUNCTYPE EXPORTNAME([ARGTYPE [ARGTYPE [...]]])
|
|||
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:
|
||||
|
||||
|
|
91
build.c
91
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 @@ typedef struct ordinal_function_definition_s
|
|||
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 @@ GetToken(void)
|
|||
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;
|
||||
|
@ -387,6 +404,50 @@ ParseEquate(int ordinal)
|
|||
return 0;
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -415,6 +476,8 @@ ParseOrdinal(int ordinal)
|
|||
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 @@ main(int argc, char **argv)
|
|||
{
|
||||
ORDDEF *odp;
|
||||
ORDFUNCDEF *fdp;
|
||||
ORDRETDEF *rdp;
|
||||
FILE *fp;
|
||||
char filename[80];
|
||||
char buffer[80];
|
||||
|
@ -553,6 +617,7 @@ main(int argc, char **argv)
|
|||
else
|
||||
{
|
||||
fdp = odp->additional_data;
|
||||
rdp = odp->additional_data;
|
||||
|
||||
switch (odp->type)
|
||||
{
|
||||
|
@ -573,6 +638,18 @@ main(int argc, char **argv)
|
|||
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");
|
||||
|
|
4
dlls.h
4
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 KERNEL_table[];
|
|||
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 */
|
||||
|
|
7
dump.c
7
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>
|
||||
|
|
|
@ -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
|
4
gdi.spec
4
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
|
||||
|
|
10
heap.c
10
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 @@ HEAP_LocalAlloc(int flags, int bytes)
|
|||
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 @@ HEAP_LocalAlloc(int flags, int bytes)
|
|||
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 @@ HEAP_LocalAlloc(int flags, int bytes)
|
|||
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;
|
||||
}
|
||||
|
|
19
if1632.S
19
if1632.S
|
@ -36,7 +36,7 @@ offset:
|
|||
.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 @@ offset:
|
|||
* 16 target ds
|
||||
*/
|
||||
.align 4
|
||||
.globl _CallTo16
|
||||
_CallTo16:
|
||||
.globl _CallToInit16
|
||||
_CallToInit16:
|
||||
pushl %ebp
|
||||
movl %esp,%ebp
|
||||
|
||||
|
@ -76,13 +76,17 @@ _CallTo16:
|
|||
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 @@ _KERNEL_InitTask:
|
|||
popl saved_16esp
|
||||
|
||||
popw %es
|
||||
/* movw _PSPSelector,%ax
|
||||
movw %ax,%es */
|
||||
popw %ds
|
||||
|
||||
.align 2,0x90
|
||||
|
@ -283,12 +289,11 @@ noargs_2:
|
|||
/*
|
||||
* 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
|
||||
|
|
|
@ -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
|
10
kernel.c
10
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 @@ KERNEL_LockSegment(int segment)
|
|||
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 @@ KERNEL_UnlockSegment(int segment)
|
|||
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 @@ int
|
|||
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 @@ int
|
|||
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
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
8
ldt.c
8
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>
|
||||
|
|
8
ldtlib.c
8
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>
|
||||
|
|
67
neexe.h
67
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 @@ struct dos_psp_s
|
|||
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 @@ struct dos_psp_s
|
|||
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 */
|
||||
|
|
|
@ -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 @@ extern int FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
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 */
|
||||
|
|
27
relay.c
27
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 @@ FindDLLTable(char *dll_name)
|
|||
{
|
||||
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 @@ FindOrdinalFromName(struct dll_table_entry_s *dll_table, char *func_name)
|
|||
{
|
||||
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;
|
||||
|
|
|
@ -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);
|
||||
}
|
2
segmem.h
2
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
|
||||
|
|
101
selector.c
101
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 @@ unsigned short PSPSelector;
|
|||
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, ð, 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 @@ CreatePSP(int sel_idx, struct segment_descriptor_s *s, FILE *zfile)
|
|||
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 @@ CreateSelectors(int fd, struct ne_segment_table_entry_s *seg_table,
|
|||
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 @@ CreateSelectors(int fd, struct ne_segment_table_entry_s *seg_table,
|
|||
/*
|
||||
* 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.
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
1 c _DebugPrintString(ptr) DebugPrintString(1)
|
||||
|
|
|
@ -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
|
2
user.c
2
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>
|
||||
|
|
|
@ -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)
|
||||
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)
|
||||
|
|
|
@ -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
|
|
@ -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
|
102
wine.c
102
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 Argc;
|
|||
int
|
||||
DebugPrintString(char *str)
|
||||
{
|
||||
fprintf(stderr, "%s", str);
|
||||
printf("%s", str);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -119,8 +121,12 @@ main(int argc, char **argv)
|
|||
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 @@ main(int argc, char **argv)
|
|||
}
|
||||
}
|
||||
|
||||
close(fd);
|
||||
/*
|
||||
* Fixup stack and jump to start.
|
||||
*/
|
||||
|
@ -156,7 +161,7 @@ main(int argc, char **argv)
|
|||
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 @@ FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
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 @@ FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
}
|
||||
|
||||
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 @@ FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
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 @@ FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
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 @@ FixupSegment(int fd, struct mz_header_s * mz_header,
|
|||
|
||||
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;
|
||||
}
|
||||
|
|
101
winetest/main.c
101
winetest/main.c
|
@ -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);
|
||||
}
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -1,2 +0,0 @@
|
|||
/* $Id$
|
||||
*/
|
|
@ -1,11 +0,0 @@
|
|||
#include <windows.h>
|
||||
|
||||
MainMenu MENU
|
||||
BEGIN
|
||||
POPUP "&File"
|
||||
BEGIN
|
||||
MENUITEM "E&xit", 100
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "&About...", 101
|
||||
END
|
||||
END
|
Loading…
Reference in New Issue