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