r_varsa.asm 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. .386P
  2. .model FLAT
  3. ;
  4. ; d_varsa.s
  5. ;
  6. include qasm.inc
  7. include d_if.inc
  8. if id386
  9. _DATA SEGMENT
  10. ;-------------------------------------------------------
  11. ; ASM-only variables
  12. ;-------------------------------------------------------
  13. public float_1, float_particle_z_clip, float_point5
  14. public float_minus_1, float_0
  15. float_0 dd 0.0
  16. float_1 dd 1.0
  17. float_minus_1 dd -1.0
  18. float_particle_z_clip dd PARTICLE_Z_CLIP
  19. float_point5 dd 0.5
  20. public fp_16, fp_64k, fp_1m, fp_64kx64k
  21. public fp_1m_minus_1
  22. public fp_8
  23. fp_1m dd 1048576.0
  24. fp_1m_minus_1 dd 1048575.0
  25. fp_64k dd 65536.0
  26. fp_8 dd 8.0
  27. fp_16 dd 16.0
  28. fp_64kx64k dd 04f000000h ; (float)0x8000*0x10000
  29. public FloatZero, Float2ToThe31nd, FloatMinus2ToThe31nd
  30. FloatZero dd 0
  31. Float2ToThe31nd dd 04f000000h
  32. FloatMinus2ToThe31nd dd 0cf000000h
  33. public _r_bmodelactive
  34. _r_bmodelactive dd 0
  35. ;-------------------------------------------------------
  36. ; global refresh variables
  37. ;-------------------------------------------------------
  38. ; FIXME: put all refresh variables into one contiguous block. Make into one
  39. ; big structure, like cl or sv?
  40. align 4
  41. public _d_sdivzstepu
  42. public _d_tdivzstepu
  43. public _d_zistepu
  44. public _d_sdivzstepv
  45. public _d_tdivzstepv
  46. public _d_zistepv
  47. public _d_sdivzorigin
  48. public _d_tdivzorigin
  49. public _d_ziorigin
  50. _d_sdivzstepu dd 0
  51. _d_tdivzstepu dd 0
  52. _d_zistepu dd 0
  53. _d_sdivzstepv dd 0
  54. _d_tdivzstepv dd 0
  55. _d_zistepv dd 0
  56. _d_sdivzorigin dd 0
  57. _d_tdivzorigin dd 0
  58. _d_ziorigin dd 0
  59. public _sadjust
  60. public _tadjust
  61. public _bbextents
  62. public _bbextentt
  63. _sadjust dd 0
  64. _tadjust dd 0
  65. _bbextents dd 0
  66. _bbextentt dd 0
  67. public _cacheblock
  68. public _d_viewbuffer
  69. public _cachewidth
  70. public _d_pzbuffer
  71. public _d_zrowbytes
  72. public _d_zwidth
  73. _cacheblock dd 0
  74. _cachewidth dd 0
  75. _d_viewbuffer dd 0
  76. _d_pzbuffer dd 0
  77. _d_zrowbytes dd 0
  78. _d_zwidth dd 0
  79. ;-------------------------------------------------------
  80. ; ASM-only variables
  81. ;-------------------------------------------------------
  82. public izi
  83. izi dd 0
  84. public pbase, s, t, sfracf, tfracf, snext, tnext
  85. public spancountminus1, zi16stepu, sdivz16stepu, tdivz16stepu
  86. public zi8stepu, sdivz8stepu, tdivz8stepu, pz
  87. s dd 0
  88. t dd 0
  89. snext dd 0
  90. tnext dd 0
  91. sfracf dd 0
  92. tfracf dd 0
  93. pbase dd 0
  94. zi8stepu dd 0
  95. sdivz8stepu dd 0
  96. tdivz8stepu dd 0
  97. zi16stepu dd 0
  98. sdivz16stepu dd 0
  99. tdivz16stepu dd 0
  100. spancountminus1 dd 0
  101. pz dd 0
  102. public izistep
  103. izistep dd 0
  104. ;-------------------------------------------------------
  105. ; local variables for d_draw16.s
  106. ;-------------------------------------------------------
  107. public reciprocal_table_16, entryvec_table_16
  108. ; 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13,
  109. ; 1/14, and 1/15 in 0.32 form
  110. reciprocal_table_16 dd 040000000h, 02aaaaaaah, 020000000h
  111. dd 019999999h, 015555555h, 012492492h
  112. dd 010000000h, 0e38e38eh, 0ccccccch, 0ba2e8bah
  113. dd 0aaaaaaah, 09d89d89h, 09249249h, 08888888h
  114. externdef Entry2_16:dword
  115. externdef Entry3_16:dword
  116. externdef Entry4_16:dword
  117. externdef Entry5_16:dword
  118. externdef Entry6_16:dword
  119. externdef Entry7_16:dword
  120. externdef Entry8_16:dword
  121. externdef Entry9_16:dword
  122. externdef Entry10_16:dword
  123. externdef Entry11_16:dword
  124. externdef Entry12_16:dword
  125. externdef Entry13_16:dword
  126. externdef Entry14_16:dword
  127. externdef Entry15_16:dword
  128. externdef Entry16_16:dword
  129. entryvec_table_16 dd 0, Entry2_16, Entry3_16, Entry4_16
  130. dd Entry5_16, Entry6_16, Entry7_16, Entry8_16
  131. dd Entry9_16, Entry10_16, Entry11_16, Entry12_16
  132. dd Entry13_16, Entry14_16, Entry15_16, Entry16_16
  133. ;-------------------------------------------------------
  134. ; local variables for d_parta.s
  135. ;-------------------------------------------------------
  136. public DP_Count, DP_u, DP_v, DP_32768, DP_Color, DP_Pix
  137. DP_Count dd 0
  138. DP_u dd 0
  139. DP_v dd 0
  140. DP_32768 dd 32768.0
  141. DP_Color dd 0
  142. DP_Pix dd 0
  143. ;externdef DP_1x1:dword
  144. ;externdef DP_2x2:dword
  145. ;externdef DP_3x3:dword
  146. ;externdef DP_4x4:dword
  147. ;DP_EntryTable dd DP_1x1, DP_2x2, DP_3x3, DP_4x4
  148. ;
  149. ; advancetable is 8 bytes, but points to the middle of that range so negative
  150. ; offsets will work
  151. ;
  152. public advancetable, sstep, tstep, pspantemp, counttemp, jumptemp
  153. advancetable dd 0, 0
  154. sstep dd 0
  155. tstep dd 0
  156. pspantemp dd 0
  157. counttemp dd 0
  158. jumptemp dd 0
  159. ; 1/2, 1/3, 1/4, 1/5, 1/6, and 1/7 in 0.32 form
  160. ; public reciprocal_table, entryvec_table
  161. reciprocal_table dd 040000000h, 02aaaaaaah, 020000000h
  162. dd 019999999h, 015555555h, 012492492h
  163. ; externdef Entry2_8:dword
  164. ; externdef Entry3_8:dword
  165. ; externdef Entry4_8:dword
  166. ; externdef Entry5_8:dword
  167. ; externdef Entry6_8:dword
  168. ; externdef Entry7_8:dword
  169. ; externdef Entry8_8:dword
  170. ;entryvec_table dd 0, Entry2_8, Entry3_8, Entry4_8
  171. ; dd Entry5_8, Entry6_8, Entry7_8, Entry8_8
  172. externdef Spr8Entry2_8:dword
  173. externdef Spr8Entry3_8:dword
  174. externdef Spr8Entry4_8:dword
  175. externdef Spr8Entry5_8:dword
  176. externdef Spr8Entry6_8:dword
  177. externdef Spr8Entry7_8:dword
  178. externdef Spr8Entry8_8:dword
  179. public spr8entryvec_table
  180. spr8entryvec_table dd 0, Spr8Entry2_8, Spr8Entry3_8, Spr8Entry4_8
  181. dd Spr8Entry5_8, Spr8Entry6_8, Spr8Entry7_8, Spr8Entry8_8
  182. _DATA ENDS
  183. endif ; id386
  184. END