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