Quake-2

Quake 2 GPL Source Release
Log | Files | Refs

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