1 unit NEWEXE;
2 
3   interface
4 
5     const
6        EMAGIC = $5A4D;
7        ENEWEXE = 8*5;
8        ENEWHDR = $003C;
9        ERESWDS = $0010;
10        ERES1WDS = $0004;
11        ERES2WDS = $000A;
12        ECP = $0004;
13        ECBLP = $0002;
14        EMINALLOC = $000A;
15 
16     type
17        exe_hdr = record
18           e_magic : word;
19           e_cblp : word;
20           e_cp : word;
21           e_crlc : word;
22           e_cparhdr : word;
23           e_minalloc : word;
24           e_maxalloc : word;
25           e_ss : word;
26           e_sp : word;
27           e_csum : word;
28           e_ip : word;
29           e_cs : word;
30           e_lfarlc : word;
31           e_ovno : word;
32           e_res : array[0..ERES1WDS-1] of word;
33           e_oemid : word;
34           e_oeminfo : word;
35           e_res2 : array[0..ERES2WDS-1] of word;
36           e_lfanew : longint;
37        end;
38 
39     const
40        NEMAGIC = $454E;
41        NERESBYTES = 8;
42        NECRC = 8;
43 
44     type
45        new_exe = record
46           ne_magic : word;
47           ne_ver : byte;
48           ne_rev : byte;
49           ne_enttab : word;
50           ne_cbenttab : word;
51           ne_crc : longint;
52           ne_flags : word;
53           ne_autodata : word;
54           ne_heap : word;
55           ne_stack : word;
56           ne_csip : longint;
57           ne_sssp : longint;
58           ne_cseg : word;
59           ne_cmod : word;
60           ne_cbnrestab : word;
61           ne_segtab : word;
62           ne_rsrctab : word;
63           ne_restab : word;
64           ne_modtab : word;
65           ne_imptab : word;
66           ne_nrestab : longint;
67           ne_cmovent : word;
68           ne_align : word;
69           ne_cres : word;
70           ne_exetyp : byte;
71           ne_flagsothers : byte;
72           ne_res : array[0..NERESBYTES-1] of char;
73        end;
74 
75     const
76        NE_UNKNOWN = $0;
77        NE_OS2 = $1;
78        NE_WINDOWS = $2;
79        NE_DOS4 = $3;
80        NE_DEV386 = $4;
81        NENOTP = $8000;
82        NEIERR = $2000;
83        NEBOUND = $0800;
84        NEAPPTYP = $0700;
85        NENOTWINCOMPAT = $0100;
86        NEWINCOMPAT = $0200;
87        NEWINAPI = $0300;
88        NEFLTP = $0080;
89        NEI386 = $0040;
90        NEI286 = $0020;
91        NEI086 = $0010;
92        NEPROT = $0008;
93        NEPPLI = $0004;
94        NEINST = $0002;
95        NESOLO = $0001;
96        NElongintNAMES = $01;
97        NEWINISPROT = $02;
98        NEWINGETPROPFON = $04;
99        NEWLOAPPL = $80;
100 
101     type
102        new_seg = record
103           ns_sector : word;
104           ns_cbseg : word;
105           ns_flags : word;
106           ns_minalloc : word;
107        end;
108 
109     const
110        NSTYPE = $0007;
111        NSCODE = $0000;
112        NSDATA = $0001;
113        NSITER = $0008;
114        NSMOVE = $0010;
115        NSSHARED = $0020;
116        NSPRELOAD = $0040;
117        NSEXRD = $0080;
118        NSRELOC = $0100;
119        NSCONFORM = $0200;
120        NSEXPDOWN = $0200;
121        NSDPL = $0C00;
122        SHIFTDPL = 10;
123        NSDISCARD = $1000;
124        NS32BIT = $2000;
125        NSHUGE = $4000;
126        NSGDT = $8000;
127        NSPURE = NSSHARED;
128        NSALIGN = 9;
129        NSLOADED = $0004;
130 
131     type
132        new_rlcinfo = record
133           nr_nreloc : word;
134        end;
135 
136 {$PACKRECORDS NORMAL}
137     const
138        NRSTYP = $0f;
139        NRSBYT = $00;
140        NRSSEG = $02;
141        NRSPTR = $03;
142        NRSOFF = $05;
143        NRPTR48 = $06;
144        NROFF32 = $07;
145        NRSOFF32 = $08;
146        NRADD = $04;
147        NRRTYP = $03;
148        NRRINT = $00;
149        NRRORD = $01;
150        NRRNAM = $02;
151        NRROSF = $03;
152 
153     type
154        rsrc_string = record
155           rs_len : char;
156           rs_string : array[0..1-1] of char;
157        end;
158 
159        rsrc_typeinfo = record
160           rt_id : word;
161           rt_nres : word;
162           rt_proc : longint;
163        end;
164 
165        rsrc_nameinfo = record
166           rn_offset : word;
167           rn_length : word;
168           rn_flags : word;
169           rn_id : word;
170           rn_handle : word;
171           rn_usage : word;
172        end;
173 
174     const
175        RSORDID = $8000;
176        RNMOVE = $0010;
177        RNPURE = $0020;
178        RNPRELOAD = $0040;
179        RNDISCARD = $F000;
180 
181     type
182        new_rsrc = record
183           rs_align : word;
184           rs_typeinfo : rsrc_typeinfo;
185        end;
186 
187   implementation
188 
189 end.
190