1 #ifndef __ASM_I386__
2 #define __ASM_I386__
3 
4 #ifdef ELF
5 #define C(label) label
6 #else
7 #define C(label) _##label
8 #endif
9 
10 
11 //#define GLQUAKE	1
12 
13 #if defined(_WIN32) && !defined(WINDED)
14 
15 #if defined(_M_IX86)
16 #define __i386__	1
17 #endif
18 
19 #endif
20 
21 #ifdef __i386__
22 #define id386	1
23 #else
24 #define id386	0
25 #endif
26 
27 // !!! must be kept the same as in d_iface.h !!!
28 #define TRANSPARENT_COLOR	255
29 
30 #ifndef GLQUAKE
31 	.extern C(d_zistepu)
32 	.extern C(d_pzbuffer)
33 	.extern C(d_zistepv)
34 	.extern C(d_zrowbytes)
35 	.extern C(d_ziorigin)
36 	.extern C(r_turb_s)
37 	.extern C(r_turb_t)
38 	.extern C(r_turb_pdest)
39 	.extern C(r_turb_spancount)
40 	.extern C(r_turb_turb)
41 	.extern C(r_turb_pbase)
42 	.extern C(r_turb_sstep)
43 	.extern C(r_turb_tstep)
44 	.extern	C(r_bmodelactive)
45 	.extern	C(d_sdivzstepu)
46 	.extern	C(d_tdivzstepu)
47 	.extern	C(d_sdivzstepv)
48 	.extern	C(d_tdivzstepv)
49 	.extern	C(d_sdivzorigin)
50 	.extern	C(d_tdivzorigin)
51 	.extern	C(sadjust)
52 	.extern	C(tadjust)
53 	.extern	C(bbextents)
54 	.extern	C(bbextentt)
55 	.extern	C(cacheblock)
56 	.extern	C(d_viewbuffer)
57 	.extern	C(cachewidth)
58 	.extern	C(d_pzbuffer)
59 	.extern	C(d_zrowbytes)
60 	.extern	C(d_zwidth)
61 	.extern C(d_scantable)
62 	.extern C(r_lightptr)
63 	.extern C(r_numvblocks)
64 	.extern C(prowdestbase)
65 	.extern C(pbasesource)
66 	.extern C(r_lightwidth)
67 	.extern C(lightright)
68 	.extern C(lightrightstep)
69 	.extern C(lightdeltastep)
70 	.extern C(lightdelta)
71 	.extern C(lightright)
72 	.extern C(lightdelta)
73 	.extern C(sourcetstep)
74 	.extern C(surfrowbytes)
75 	.extern C(lightrightstep)
76 	.extern C(lightdeltastep)
77 	.extern C(r_sourcemax)
78 	.extern C(r_stepback)
79 	.extern C(colormap)
80 	.extern C(blocksize)
81 	.extern C(sourcesstep)
82 	.extern C(lightleft)
83 	.extern C(blockdivshift)
84 	.extern C(blockdivmask)
85 	.extern C(lightleftstep)
86 	.extern C(r_origin)
87 	.extern C(r_ppn)
88 	.extern C(r_pup)
89 	.extern C(r_pright)
90 	.extern C(ycenter)
91 	.extern C(xcenter)
92 	.extern C(d_vrectbottom_particle)
93 	.extern C(d_vrectright_particle)
94 	.extern C(d_vrecty)
95 	.extern C(d_vrectx)
96 	.extern C(d_pix_shift)
97 	.extern C(d_pix_min)
98 	.extern C(d_pix_max)
99 	.extern C(d_y_aspect_shift)
100 	.extern C(screenwidth)
101 	.extern C(r_leftclipped)
102 	.extern C(r_leftenter)
103 	.extern C(r_rightclipped)
104 	.extern C(r_rightenter)
105 	.extern C(modelorg)
106 	.extern C(xscale)
107 	.extern C(r_refdef)
108 	.extern C(yscale)
109 	.extern C(r_leftexit)
110 	.extern C(r_rightexit)
111 	.extern C(r_lastvertvalid)
112 	.extern C(cacheoffset)
113 	.extern C(newedges)
114 	.extern C(removeedges)
115 	.extern C(r_pedge)
116 	.extern C(r_framecount)
117 	.extern C(r_u1)
118 	.extern C(r_emitted)
119 	.extern C(edge_p)
120 	.extern C(surface_p)
121 	.extern C(surfaces)
122 	.extern C(r_lzi1)
123 	.extern C(r_v1)
124 	.extern C(r_ceilv1)
125 	.extern C(r_nearzi)
126 	.extern C(r_nearzionly)
127 	.extern C(edge_aftertail)
128 	.extern C(edge_tail)
129 	.extern C(current_iv)
130 	.extern C(edge_head_u_shift20)
131 	.extern C(span_p)
132 	.extern C(edge_head)
133 	.extern C(fv)
134 	.extern C(edge_tail_u_shift20)
135 	.extern C(r_apverts)
136 	.extern C(r_anumverts)
137 	.extern C(aliastransform)
138 	.extern C(r_avertexnormals)
139 	.extern C(r_plightvec)
140 	.extern C(r_ambientlight)
141 	.extern C(r_shadelight)
142 	.extern C(aliasxcenter)
143 	.extern C(aliasycenter)
144 	.extern C(a_sstepxfrac)
145 	.extern C(r_affinetridesc)
146 	.extern C(acolormap)
147 	.extern C(d_pcolormap)
148 	.extern C(r_affinetridesc)
149 	.extern C(d_sfrac)
150 	.extern C(d_ptex)
151 	.extern C(d_pedgespanpackage)
152 	.extern C(d_tfrac)
153 	.extern C(d_light)
154 	.extern C(d_zi)
155 	.extern C(d_pdest)
156 	.extern C(d_pz)
157 	.extern C(d_aspancount)
158 	.extern C(erroradjustup)
159 	.extern C(errorterm)
160 	.extern C(d_xdenom)
161 	.extern C(r_p0)
162 	.extern C(r_p1)
163 	.extern C(r_p2)
164 	.extern C(a_tstepxfrac)
165 	.extern C(r_sstepx)
166 	.extern C(r_tstepx)
167 	.extern C(a_ststepxwhole)
168 	.extern C(zspantable)
169 	.extern C(skintable)
170 	.extern C(r_zistepx)
171 	.extern C(erroradjustdown)
172 	.extern C(d_countextrastep)
173 	.extern C(ubasestep)
174 	.extern C(a_ststepxwhole)
175 	.extern C(a_tstepxfrac)
176 	.extern C(r_lstepx)
177 	.extern C(a_spans)
178 	.extern C(erroradjustdown)
179 	.extern C(d_pdestextrastep)
180 	.extern C(d_pzextrastep)
181 	.extern C(d_sfracextrastep)
182 	.extern C(d_ptexextrastep)
183 	.extern C(d_countextrastep)
184 	.extern C(d_tfracextrastep)
185 	.extern C(d_lightextrastep)
186 	.extern C(d_ziextrastep)
187 	.extern C(d_pdestbasestep)
188 	.extern C(d_pzbasestep)
189 	.extern C(d_sfracbasestep)
190 	.extern C(d_ptexbasestep)
191 	.extern C(ubasestep)
192 	.extern C(d_tfracbasestep)
193 	.extern C(d_lightbasestep)
194 	.extern C(d_zibasestep)
195 	.extern C(zspantable)
196 	.extern C(r_lstepy)
197 	.extern C(r_sstepy)
198 	.extern C(r_tstepy)
199 	.extern C(r_zistepy)
200 	.extern C(D_PolysetSetEdgeTable)
201 	.extern C(D_RasterizeAliasPolySmooth)
202 
203 	.extern float_point5
204 	.extern Float2ToThe31nd
205 	.extern izistep
206 	.extern izi
207 	.extern FloatMinus2ToThe31nd
208 	.extern float_1
209 	.extern float_particle_z_clip
210 	.extern float_minus_1
211 	.extern float_0
212 	.extern fp_16
213 	.extern fp_64k
214 	.extern fp_1m
215 	.extern fp_1m_minus_1
216 	.extern fp_8
217 	.extern entryvec_table
218 	.extern advancetable
219 	.extern sstep
220 	.extern tstep
221 	.extern pspantemp
222 	.extern counttemp
223 	.extern jumptemp
224 	.extern reciprocal_table
225 	.extern DP_Count
226 	.extern DP_u
227 	.extern DP_v
228 	.extern DP_32768
229 	.extern DP_Color
230 	.extern DP_Pix
231 	.extern DP_EntryTable
232 	.extern	pbase
233 	.extern s
234 	.extern t
235 	.extern sfracf
236 	.extern tfracf
237 	.extern snext
238 	.extern tnext
239 	.extern	spancountminus1
240 	.extern zi16stepu
241 	.extern sdivz16stepu
242 	.extern tdivz16stepu
243 	.extern	zi8stepu
244 	.extern sdivz8stepu
245 	.extern tdivz8stepu
246 	.extern reciprocal_table_16
247 	.extern entryvec_table_16
248 	.extern ceil_cw
249 	.extern single_cw
250 	.extern fp_64kx64k
251 	.extern pz
252 	.extern spr8entryvec_table
253 #endif
254 
255 	.extern C(snd_scaletable)
256 	.extern C(paintbuffer)
257 	.extern C(snd_linear_count)
258 	.extern C(snd_p)
259 	.extern C(snd_vol)
260 	.extern C(snd_out)
261 	.extern C(vright)
262 	.extern C(vup)
263 	.extern C(vpn)
264 	.extern C(BOPS_Error)
265 
266 //
267 // !!! note that this file must match the corresponding C structures at all
268 // times !!!
269 //
270 
271 // plane_t structure
272 // !!! if this is changed, it must be changed in model.h too !!!
273 // !!! if the size of this is changed, the array lookup in SV_HullPointContents
274 //     must be changed too !!!
275 #define pl_normal	0
276 #define pl_dist		12
277 #define pl_type		16
278 #define pl_signbits	17
279 #define pl_pad		18
280 #define pl_size		20
281 
282 // hull_t structure
283 // !!! if this is changed, it must be changed in model.h too !!!
284 #define	hu_clipnodes		0
285 #define	hu_planes			4
286 #define	hu_firstclipnode	8
287 #define	hu_lastclipnode		12
288 #define	hu_clip_mins		16
289 #define	hu_clip_maxs		28
290 #define hu_size  			40
291 
292 // dnode_t structure
293 // !!! if this is changed, it must be changed in bspfile.h too !!!
294 #define	nd_planenum		0
295 #define	nd_children		4
296 #define	nd_mins			8
297 #define	nd_maxs			20
298 #define	nd_firstface	32
299 #define	nd_numfaces		36
300 #define nd_size			40
301 
302 // sfxcache_t structure
303 // !!! if this is changed, it much be changed in sound.h too !!!
304 #define sfxc_length		0
305 #define sfxc_loopstart	4
306 #define sfxc_speed		8
307 #define sfxc_width		12
308 #define sfxc_stereo		16
309 #define sfxc_data		20
310 
311 // channel_t structure
312 // !!! if this is changed, it much be changed in sound.h too !!!
313 #define ch_sfx			0
314 #define ch_leftvol		4
315 #define ch_rightvol		8
316 #define ch_end			12
317 #define ch_pos			16
318 #define ch_looping		20
319 #define ch_entnum		24
320 #define ch_entchannel	28
321 #define ch_origin		32
322 #define ch_dist_mult	44
323 #define ch_master_vol	48
324 #define ch_size			52
325 
326 // portable_samplepair_t structure
327 // !!! if this is changed, it much be changed in sound.h too !!!
328 #define psp_left		0
329 #define psp_right		4
330 #define psp_size		8
331 
332 
333 //
334 // !!! note that this file must match the corresponding C structures at all
335 // times !!!
336 //
337 
338 // !!! if this is changed, it must be changed in r_local.h too !!!
339 #define	NEAR_CLIP	0.01
340 
341 // !!! if this is changed, it must be changed in r_local.h too !!!
342 #define	CYCLE	128
343 
344 // espan_t structure
345 // !!! if this is changed, it must be changed in r_shared.h too !!!
346 #define espan_t_u    	0
347 #define espan_t_v	    4
348 #define espan_t_count   8
349 #define espan_t_pnext	12
350 #define espan_t_size    16
351 
352 // sspan_t structure
353 // !!! if this is changed, it must be changed in d_local.h too !!!
354 #define sspan_t_u    	0
355 #define sspan_t_v	    4
356 #define sspan_t_count   8
357 #define sspan_t_size    12
358 
359 // spanpackage_t structure
360 // !!! if this is changed, it must be changed in d_polyset.c too !!!
361 #define spanpackage_t_pdest				0
362 #define spanpackage_t_pz				4
363 #define spanpackage_t_count				8
364 #define spanpackage_t_ptex				12
365 #define spanpackage_t_sfrac				16
366 #define spanpackage_t_tfrac				20
367 #define spanpackage_t_light				24
368 #define spanpackage_t_zi				28
369 #define spanpackage_t_size				32
370 
371 // edge_t structure
372 // !!! if this is changed, it must be changed in r_shared.h too !!!
373 #define et_u			0
374 #define et_u_step		4
375 #define et_prev			8
376 #define et_next			12
377 #define et_surfs		16
378 #define et_nextremove	20
379 #define et_nearzi		24
380 #define et_owner		28
381 #define et_size			32
382 
383 // surf_t structure
384 // !!! if this is changed, it must be changed in r_shared.h too !!!
385 #define SURF_T_SHIFT	6
386 #define st_next			0
387 #define st_prev			4
388 #define st_spans		8
389 #define st_key			12
390 #define st_last_u		16
391 #define st_spanstate	20
392 #define st_flags		24
393 #define st_data			28
394 #define st_entity		32
395 #define st_nearzi		36
396 #define st_insubmodel	40
397 #define st_d_ziorigin	44
398 #define st_d_zistepu	48
399 #define st_d_zistepv	52
400 #define st_pad			56
401 #define st_size			64
402 
403 // clipplane_t structure
404 // !!! if this is changed, it must be changed in r_local.h too !!!
405 #define cp_normal		0
406 #define cp_dist			12
407 #define cp_next			16
408 #define cp_leftedge		20
409 #define cp_rightedge	21
410 #define cp_reserved		22
411 #define cp_size			24
412 
413 // medge_t structure
414 // !!! if this is changed, it must be changed in model.h too !!!
415 #define me_v				0
416 #define me_cachededgeoffset	4
417 #define me_size				8
418 
419 // mvertex_t structure
420 // !!! if this is changed, it must be changed in model.h too !!!
421 #define mv_position		0
422 #define mv_size			12
423 
424 // refdef_t structure
425 // !!! if this is changed, it must be changed in render.h too !!!
426 #define rd_vrect					0
427 #define rd_aliasvrect				20
428 #define rd_vrectright				40
429 #define rd_vrectbottom				44
430 #define rd_aliasvrectright			48
431 #define rd_aliasvrectbottom			52
432 #define rd_vrectrightedge			56
433 #define rd_fvrectx					60
434 #define rd_fvrecty					64
435 #define rd_fvrectx_adj				68
436 #define rd_fvrecty_adj				72
437 #define rd_vrect_x_adj_shift20		76
438 #define rd_vrectright_adj_shift20	80
439 #define rd_fvrectright_adj			84
440 #define rd_fvrectbottom_adj			88
441 #define rd_fvrectright				92
442 #define rd_fvrectbottom				96
443 #define rd_horizontalFieldOfView	100
444 #define rd_xOrigin					104
445 #define rd_yOrigin					108
446 #define rd_vieworg					112
447 #define rd_viewangles				124
448 #define rd_ambientlight				136
449 #define rd_size						140
450 
451 // mtriangle_t structure
452 // !!! if this is changed, it must be changed in model.h too !!!
453 #define mtri_facesfront		0
454 #define mtri_vertindex		4
455 #define mtri_size			16	// !!! if this changes, array indexing in !!!
456 								// !!! d_polysa.s must be changed to match !!!
457 #define mtri_shift			4
458 
459 #endif
460