r_aclipa.asm 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346
  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. Ltemp0 dd 0
  236. Ltemp1 dd 0
  237. _DATA ENDS
  238. _TEXT SEGMENT
  239. public _R_Alias_clip_bottom
  240. _R_Alias_clip_bottom:
  241. push esi
  242. push edi
  243. mov esi,ds:dword ptr[8+4+esp]
  244. mov edi,ds:dword ptr[8+8+esp]
  245. mov eax,ds:dword ptr[_r_refdef+52]
  246. LDoForwardOrBackward:
  247. mov edx,ds:dword ptr[0+4+esi]
  248. mov ecx,ds:dword ptr[0+4+edi]
  249. cmp edx,ecx
  250. jl LDoForward
  251. mov ecx,ds:dword ptr[0+4+esi]
  252. mov edx,ds:dword ptr[0+4+edi]
  253. mov edi,ds:dword ptr[8+4+esp]
  254. mov esi,ds:dword ptr[8+8+esp]
  255. LDoForward:
  256. sub ecx,edx
  257. sub eax,edx
  258. mov ds:dword ptr[Ltemp1],ecx
  259. mov ds:dword ptr[Ltemp0],eax
  260. fild ds:dword ptr[Ltemp1]
  261. fild ds:dword ptr[Ltemp0]
  262. mov edx,ds:dword ptr[8+12+esp]
  263. mov eax,2
  264. fdivrp st(1),st(0)
  265. LDo3Forward:
  266. fild ds:dword ptr[0+0+esi]
  267. fild ds:dword ptr[0+0+edi]
  268. fild ds:dword ptr[0+4+esi]
  269. fild ds:dword ptr[0+4+edi]
  270. fild ds:dword ptr[0+8+esi]
  271. fild ds:dword ptr[0+8+edi]
  272. fxch st(5)
  273. fsub st(4),st(0)
  274. fxch st(3)
  275. fsub st(2),st(0)
  276. fxch st(1)
  277. fsub st(5),st(0)
  278. fxch st(6)
  279. fmul st(4),st(0)
  280. add edi,12
  281. fmul st(2),st(0)
  282. add esi,12
  283. add edx,12
  284. fmul st(5),st(0)
  285. fxch st(3)
  286. faddp st(4),st(0)
  287. faddp st(1),st(0)
  288. fxch st(4)
  289. faddp st(3),st(0)
  290. fxch st(1)
  291. fadd ds:dword ptr[float_point5]
  292. fxch st(3)
  293. fadd ds:dword ptr[float_point5]
  294. fxch st(2)
  295. fadd ds:dword ptr[float_point5]
  296. fxch st(3)
  297. fistp ds:dword ptr[0+0-12+edx]
  298. fxch st(1)
  299. fistp ds:dword ptr[0+4-12+edx]
  300. fxch st(1)
  301. fistp ds:dword ptr[0+8-12+edx]
  302. dec eax
  303. jnz LDo3Forward
  304. fstp st(0)
  305. pop edi
  306. pop esi
  307. ret
  308. public _R_Alias_clip_top
  309. _R_Alias_clip_top:
  310. push esi
  311. push edi
  312. mov esi,ds:dword ptr[8+4+esp]
  313. mov edi,ds:dword ptr[8+8+esp]
  314. mov eax,ds:dword ptr[_r_refdef+20+4]
  315. jmp LDoForwardOrBackward
  316. public _R_Alias_clip_right
  317. _R_Alias_clip_right:
  318. push esi
  319. push edi
  320. mov esi,ds:dword ptr[8+4+esp]
  321. mov edi,ds:dword ptr[8+8+esp]
  322. mov eax,ds:dword ptr[_r_refdef+48]
  323. LRightLeftEntry:
  324. mov edx,ds:dword ptr[0+4+esi]
  325. mov ecx,ds:dword ptr[0+4+edi]
  326. cmp edx,ecx
  327. mov edx,ds:dword ptr[0+0+esi]
  328. mov ecx,ds:dword ptr[0+0+edi]
  329. jl LDoForward2
  330. mov ecx,ds:dword ptr[0+0+esi]
  331. mov edx,ds:dword ptr[0+0+edi]
  332. mov edi,ds:dword ptr[8+4+esp]
  333. mov esi,ds:dword ptr[8+8+esp]
  334. LDoForward2:
  335. jmp LDoForward
  336. public _R_Alias_clip_left
  337. _R_Alias_clip_left:
  338. push esi
  339. push edi
  340. mov esi,ds:dword ptr[8+4+esp]
  341. mov edi,ds:dword ptr[8+8+esp]
  342. mov eax,ds:dword ptr[_r_refdef+20+0]
  343. jmp LRightLeftEntry
  344. _TEXT ENDS
  345. END