1 .386P 2 .model FLAT 3 externdef _d_zistepu:dword 4 externdef _d_pzbuffer:dword 5 externdef _d_zistepv:dword 6 externdef _d_zrowbytes:dword 7 externdef _d_ziorigin:dword 8 externdef _r_turb_s:dword 9 externdef _r_turb_t:dword 10 externdef _r_turb_pdest:dword 11 externdef _r_turb_spancount:dword 12 externdef _r_turb_turb:dword 13 externdef _r_turb_pbase:dword 14 externdef _r_turb_sstep:dword 15 externdef _r_turb_tstep:dword 16 externdef _r_bmodelactive:dword 17 externdef _d_sdivzstepu:dword 18 externdef _d_tdivzstepu:dword 19 externdef _d_sdivzstepv:dword 20 externdef _d_tdivzstepv:dword 21 externdef _d_sdivzorigin:dword 22 externdef _d_tdivzorigin:dword 23 externdef _sadjust:dword 24 externdef _tadjust:dword 25 externdef _bbextents:dword 26 externdef _bbextentt:dword 27 externdef _cacheblock:dword 28 externdef _d_viewbuffer:dword 29 externdef _cachewidth:dword 30 externdef _d_pzbuffer:dword 31 externdef _d_zrowbytes:dword 32 externdef _d_zwidth:dword 33 externdef _d_scantable:dword 34 externdef _r_lightptr:dword 35 externdef _r_numvblocks:dword 36 externdef _prowdestbase:dword 37 externdef _pbasesource:dword 38 externdef _r_lightwidth:dword 39 externdef _lightright:dword 40 externdef _lightrightstep:dword 41 externdef _lightdeltastep:dword 42 externdef _lightdelta:dword 43 externdef _lightright:dword 44 externdef _lightdelta:dword 45 externdef _sourcetstep:dword 46 externdef _surfrowbytes:dword 47 externdef _lightrightstep:dword 48 externdef _lightdeltastep:dword 49 externdef _r_sourcemax:dword 50 externdef _r_stepback:dword 51 externdef _colormap:dword 52 externdef _blocksize:dword 53 externdef _sourcesstep:dword 54 externdef _lightleft:dword 55 externdef _blockdivshift:dword 56 externdef _blockdivmask:dword 57 externdef _lightleftstep:dword 58 externdef _r_origin:dword 59 externdef _r_ppn:dword 60 externdef _r_pup:dword 61 externdef _r_pright:dword 62 externdef _ycenter:dword 63 externdef _xcenter:dword 64 externdef _d_vrectbottom_particle:dword 65 externdef _d_vrectright_particle:dword 66 externdef _d_vrecty:dword 67 externdef _d_vrectx:dword 68 externdef _d_pix_shift:dword 69 externdef _d_pix_min:dword 70 externdef _d_pix_max:dword 71 externdef _d_y_aspect_shift:dword 72 externdef _screenwidth:dword 73 externdef _vright:dword 74 externdef _vup:dword 75 externdef _vpn:dword 76 externdef _BOPS_Error:dword 77 externdef _snd_scaletable:dword 78 externdef _paintbuffer:dword 79 externdef _snd_linear_count:dword 80 externdef _snd_p:dword 81 externdef _snd_vol:dword 82 externdef _snd_out:dword 83 externdef _r_leftclipped:dword 84 externdef _r_leftenter:dword 85 externdef _r_rightclipped:dword 86 externdef _r_rightenter:dword 87 externdef _modelorg:dword 88 externdef _xscale:dword 89 externdef _r_refdef:dword 90 externdef _yscale:dword 91 externdef _r_leftexit:dword 92 externdef _r_rightexit:dword 93 externdef _r_lastvertvalid:dword 94 externdef _cacheoffset:dword 95 externdef _newedges:dword 96 externdef _removeedges:dword 97 externdef _r_pedge:dword 98 externdef _r_framecount:dword 99 externdef _r_u1:dword 100 externdef _r_emitted:dword 101 externdef _edge_p:dword 102 externdef _surface_p:dword 103 externdef _surfaces:dword 104 externdef _r_lzi1:dword 105 externdef _r_v1:dword 106 externdef _r_ceilv1:dword 107 externdef _r_nearzi:dword 108 externdef _r_nearzionly:dword 109 externdef _edge_aftertail:dword 110 externdef _edge_tail:dword 111 externdef _current_iv:dword 112 externdef _edge_head_u_shift20:dword 113 externdef _span_p:dword 114 externdef _edge_head:dword 115 externdef _fv:dword 116 externdef _edge_tail_u_shift20:dword 117 externdef _r_apverts:dword 118 externdef _r_anumverts:dword 119 externdef _aliastransform:dword 120 externdef _r_avertexnormals:dword 121 externdef _r_plightvec:dword 122 externdef _r_ambientlight:dword 123 externdef _r_shadelight:dword 124 externdef _aliasxcenter:dword 125 externdef _aliasycenter:dword 126 externdef _a_sstepxfrac:dword 127 externdef _r_affinetridesc:dword 128 externdef _acolormap:dword 129 externdef _d_pcolormap:dword 130 externdef _r_affinetridesc:dword 131 externdef _d_sfrac:dword 132 externdef _d_ptex:dword 133 externdef _d_pedgespanpackage:dword 134 externdef _d_tfrac:dword 135 externdef _d_light:dword 136 externdef _d_zi:dword 137 externdef _d_pdest:dword 138 externdef _d_pz:dword 139 externdef _d_aspancount:dword 140 externdef _erroradjustup:dword 141 externdef _errorterm:dword 142 externdef _d_xdenom:dword 143 externdef _r_p0:dword 144 externdef _r_p1:dword 145 externdef _r_p2:dword 146 externdef _a_tstepxfrac:dword 147 externdef _r_sstepx:dword 148 externdef _r_tstepx:dword 149 externdef _a_ststepxwhole:dword 150 externdef _zspantable:dword 151 externdef _skintable:dword 152 externdef _r_zistepx:dword 153 externdef _erroradjustdown:dword 154 externdef _d_countextrastep:dword 155 externdef _ubasestep:dword 156 externdef _a_ststepxwhole:dword 157 externdef _a_tstepxfrac:dword 158 externdef _r_lstepx:dword 159 externdef _a_spans:dword 160 externdef _erroradjustdown:dword 161 externdef _d_pdestextrastep:dword 162 externdef _d_pzextrastep:dword 163 externdef _d_sfracextrastep:dword 164 externdef _d_ptexextrastep:dword 165 externdef _d_countextrastep:dword 166 externdef _d_tfracextrastep:dword 167 externdef _d_lightextrastep:dword 168 externdef _d_ziextrastep:dword 169 externdef _d_pdestbasestep:dword 170 externdef _d_pzbasestep:dword 171 externdef _d_sfracbasestep:dword 172 externdef _d_ptexbasestep:dword 173 externdef _ubasestep:dword 174 externdef _d_tfracbasestep:dword 175 externdef _d_lightbasestep:dword 176 externdef _d_zibasestep:dword 177 externdef _zspantable:dword 178 externdef _r_lstepy:dword 179 externdef _r_sstepy:dword 180 externdef _r_tstepy:dword 181 externdef _r_zistepy:dword 182 externdef _D_PolysetSetEdgeTable:dword 183 externdef _D_RasterizeAliasPolySmooth:dword 184 externdef float_point5:dword 185 externdef Float2ToThe31nd:dword 186 externdef izistep:dword 187 externdef izi:dword 188 externdef FloatMinus2ToThe31nd:dword 189 externdef float_1:dword 190 externdef float_particle_z_clip:dword 191 externdef float_minus_1:dword 192 externdef float_0:dword 193 externdef fp_16:dword 194 externdef fp_64k:dword 195 externdef fp_1m:dword 196 externdef fp_1m_minus_1:dword 197 externdef fp_8:dword 198 externdef entryvec_table:dword 199 externdef advancetable:dword 200 externdef sstep:dword 201 externdef tstep:dword 202 externdef pspantemp:dword 203 externdef counttemp:dword 204 externdef jumptemp:dword 205 externdef reciprocal_table:dword 206 externdef DP_Count:dword 207 externdef DP_u:dword 208 externdef DP_v:dword 209 externdef DP_32768:dword 210 externdef DP_Color:dword 211 externdef DP_Pix:dword 212 externdef DP_EntryTable:dword 213 externdef pbase:dword 214 externdef s:dword 215 externdef t:dword 216 externdef sfracf:dword 217 externdef tfracf:dword 218 externdef snext:dword 219 externdef tnext:dword 220 externdef spancountminus1:dword 221 externdef zi16stepu:dword 222 externdef sdivz16stepu:dword 223 externdef tdivz16stepu:dword 224 externdef zi8stepu:dword 225 externdef sdivz8stepu:dword 226 externdef tdivz8stepu:dword 227 externdef reciprocal_table_16:dword 228 externdef entryvec_table_16:dword 229 externdef ceil_cw:dword 230 externdef single_cw:dword 231 externdef fp_64kx64k:dword 232 externdef pz:dword 233 externdef spr8entryvec_table:dword 234 _DATA SEGMENT 235 align 4 236 Ljmptab dd Lcase0, Lcase1, Lcase2, Lcase3 237 dd Lcase4, Lcase5, Lcase6, Lcase7 238 _DATA ENDS 239 _TEXT SEGMENT 240 public _Invert24To16 241 _Invert24To16: 242 mov ecx,ds:dword ptr[4+esp] 243 mov edx,0100h 244 cmp ecx,edx 245 jle LOutOfRange 246 sub eax,eax 247 div ecx 248 ret 249 LOutOfRange: 250 mov eax,0FFFFFFFFh 251 ret 252 align 2 253 public _TransformVector 254 _TransformVector: 255 mov eax,ds:dword ptr[4+esp] 256 mov edx,ds:dword ptr[8+esp] 257 fld ds:dword ptr[eax] 258 fmul ds:dword ptr[_vright] 259 fld ds:dword ptr[eax] 260 fmul ds:dword ptr[_vup] 261 fld ds:dword ptr[eax] 262 fmul ds:dword ptr[_vpn] 263 fld ds:dword ptr[4+eax] 264 fmul ds:dword ptr[_vright+4] 265 fld ds:dword ptr[4+eax] 266 fmul ds:dword ptr[_vup+4] 267 fld ds:dword ptr[4+eax] 268 fmul ds:dword ptr[_vpn+4] 269 fxch st(2) 270 faddp st(5),st(0) 271 faddp st(3),st(0) 272 faddp st(1),st(0) 273 fld ds:dword ptr[8+eax] 274 fmul ds:dword ptr[_vright+8] 275 fld ds:dword ptr[8+eax] 276 fmul ds:dword ptr[_vup+8] 277 fld ds:dword ptr[8+eax] 278 fmul ds:dword ptr[_vpn+8] 279 fxch st(2) 280 faddp st(5),st(0) 281 faddp st(3),st(0) 282 faddp st(1),st(0) 283 fstp ds:dword ptr[8+edx] 284 fstp ds:dword ptr[4+edx] 285 fstp ds:dword ptr[edx] 286 ret 287 align 2 288 public _BoxOnPlaneSide 289 _BoxOnPlaneSide: 290 push ebx 291 mov edx,ds:dword ptr[4+12+esp] 292 mov ecx,ds:dword ptr[4+4+esp] 293 xor eax,eax 294 mov ebx,ds:dword ptr[4+8+esp] 295 mov al,ds:byte ptr[17+edx] 296 cmp al,8 297 jge Lerror 298 fld ds:dword ptr[0+edx] 299 fld st(0) 300 jmp dword ptr[Ljmptab+eax*4] 301 Lcase0: 302 fmul ds:dword ptr[ebx] 303 fld ds:dword ptr[0+4+edx] 304 fxch st(2) 305 fmul ds:dword ptr[ecx] 306 fxch st(2) 307 fld st(0) 308 fmul ds:dword ptr[4+ebx] 309 fld ds:dword ptr[0+8+edx] 310 fxch st(2) 311 fmul ds:dword ptr[4+ecx] 312 fxch st(2) 313 fld st(0) 314 fmul ds:dword ptr[8+ebx] 315 fxch st(5) 316 faddp st(3),st(0) 317 fmul ds:dword ptr[8+ecx] 318 fxch st(1) 319 faddp st(3),st(0) 320 fxch st(3) 321 faddp st(2),st(0) 322 jmp LSetSides 323 Lcase1: 324 fmul ds:dword ptr[ecx] 325 fld ds:dword ptr[0+4+edx] 326 fxch st(2) 327 fmul ds:dword ptr[ebx] 328 fxch st(2) 329 fld st(0) 330 fmul ds:dword ptr[4+ebx] 331 fld ds:dword ptr[0+8+edx] 332 fxch st(2) 333 fmul ds:dword ptr[4+ecx] 334 fxch st(2) 335 fld st(0) 336 fmul ds:dword ptr[8+ebx] 337 fxch st(5) 338 faddp st(3),st(0) 339 fmul ds:dword ptr[8+ecx] 340 fxch st(1) 341 faddp st(3),st(0) 342 fxch st(3) 343 faddp st(2),st(0) 344 jmp LSetSides 345 Lcase2: 346 fmul ds:dword ptr[ebx] 347 fld ds:dword ptr[0+4+edx] 348 fxch st(2) 349 fmul ds:dword ptr[ecx] 350 fxch st(2) 351 fld st(0) 352 fmul ds:dword ptr[4+ecx] 353 fld ds:dword ptr[0+8+edx] 354 fxch st(2) 355 fmul ds:dword ptr[4+ebx] 356 fxch st(2) 357 fld st(0) 358 fmul ds:dword ptr[8+ebx] 359 fxch st(5) 360 faddp st(3),st(0) 361 fmul ds:dword ptr[8+ecx] 362 fxch st(1) 363 faddp st(3),st(0) 364 fxch st(3) 365 faddp st(2),st(0) 366 jmp LSetSides 367 Lcase3: 368 fmul ds:dword ptr[ecx] 369 fld ds:dword ptr[0+4+edx] 370 fxch st(2) 371 fmul ds:dword ptr[ebx] 372 fxch st(2) 373 fld st(0) 374 fmul ds:dword ptr[4+ecx] 375 fld ds:dword ptr[0+8+edx] 376 fxch st(2) 377 fmul ds:dword ptr[4+ebx] 378 fxch st(2) 379 fld st(0) 380 fmul ds:dword ptr[8+ebx] 381 fxch st(5) 382 faddp st(3),st(0) 383 fmul ds:dword ptr[8+ecx] 384 fxch st(1) 385 faddp st(3),st(0) 386 fxch st(3) 387 faddp st(2),st(0) 388 jmp LSetSides 389 Lcase4: 390 fmul ds:dword ptr[ebx] 391 fld ds:dword ptr[0+4+edx] 392 fxch st(2) 393 fmul ds:dword ptr[ecx] 394 fxch st(2) 395 fld st(0) 396 fmul ds:dword ptr[4+ebx] 397 fld ds:dword ptr[0+8+edx] 398 fxch st(2) 399 fmul ds:dword ptr[4+ecx] 400 fxch st(2) 401 fld st(0) 402 fmul ds:dword ptr[8+ecx] 403 fxch st(5) 404 faddp st(3),st(0) 405 fmul ds:dword ptr[8+ebx] 406 fxch st(1) 407 faddp st(3),st(0) 408 fxch st(3) 409 faddp st(2),st(0) 410 jmp LSetSides 411 Lcase5: 412 fmul ds:dword ptr[ecx] 413 fld ds:dword ptr[0+4+edx] 414 fxch st(2) 415 fmul ds:dword ptr[ebx] 416 fxch st(2) 417 fld st(0) 418 fmul ds:dword ptr[4+ebx] 419 fld ds:dword ptr[0+8+edx] 420 fxch st(2) 421 fmul ds:dword ptr[4+ecx] 422 fxch st(2) 423 fld st(0) 424 fmul ds:dword ptr[8+ecx] 425 fxch st(5) 426 faddp st(3),st(0) 427 fmul ds:dword ptr[8+ebx] 428 fxch st(1) 429 faddp st(3),st(0) 430 fxch st(3) 431 faddp st(2),st(0) 432 jmp LSetSides 433 Lcase6: 434 fmul ds:dword ptr[ebx] 435 fld ds:dword ptr[0+4+edx] 436 fxch st(2) 437 fmul ds:dword ptr[ecx] 438 fxch st(2) 439 fld st(0) 440 fmul ds:dword ptr[4+ecx] 441 fld ds:dword ptr[0+8+edx] 442 fxch st(2) 443 fmul ds:dword ptr[4+ebx] 444 fxch st(2) 445 fld st(0) 446 fmul ds:dword ptr[8+ecx] 447 fxch st(5) 448 faddp st(3),st(0) 449 fmul ds:dword ptr[8+ebx] 450 fxch st(1) 451 faddp st(3),st(0) 452 fxch st(3) 453 faddp st(2),st(0) 454 jmp LSetSides 455 Lcase7: 456 fmul ds:dword ptr[ecx] 457 fld ds:dword ptr[0+4+edx] 458 fxch st(2) 459 fmul ds:dword ptr[ebx] 460 fxch st(2) 461 fld st(0) 462 fmul ds:dword ptr[4+ecx] 463 fld ds:dword ptr[0+8+edx] 464 fxch st(2) 465 fmul ds:dword ptr[4+ebx] 466 fxch st(2) 467 fld st(0) 468 fmul ds:dword ptr[8+ecx] 469 fxch st(5) 470 faddp st(3),st(0) 471 fmul ds:dword ptr[8+ebx] 472 fxch st(1) 473 faddp st(3),st(0) 474 fxch st(3) 475 faddp st(2),st(0) 476 LSetSides: 477 faddp st(2),st(0) 478 fcomp ds:dword ptr[12+edx] 479 xor ecx,ecx 480 fnstsw ax 481 fcomp ds:dword ptr[12+edx] 482 and ah,1 483 xor ah,1 484 add cl,ah 485 fnstsw ax 486 and ah,1 487 add ah,ah 488 add cl,ah 489 pop ebx 490 mov eax,ecx 491 ret 492 Lerror: 493 call near ptr _BOPS_Error 494 _TEXT ENDS 495 END 496