Replaced Exit() by exit() because Exit() is like abort().
[AROS-Contrib.git] / Games / Quake / d_varsa.s
blob537c6b42c40c0d99b202f43acd8b768efd8fa78d
1 /*
2 Copyright (C) 1996-1997 Id Software, Inc.
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 See the GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 // d_varsa.s
24 #include "asm_i386.h"
25 #include "quakeasm.h"
26 #include "asm_draw.h"
27 #include "d_ifacea.h"
29 #if id386
31 .data
33 //-------------------------------------------------------
34 // global refresh variables
35 //-------------------------------------------------------
37 // FIXME: put all refresh variables into one contiguous block. Make into one
38 // big structure, like cl or sv?
40 .align 4
41 .globl C(d_sdivzstepu)
42 .globl C(d_tdivzstepu)
43 .globl C(d_zistepu)
44 .globl C(d_sdivzstepv)
45 .globl C(d_tdivzstepv)
46 .globl C(d_zistepv)
47 .globl C(d_sdivzorigin)
48 .globl C(d_tdivzorigin)
49 .globl C(d_ziorigin)
50 C(d_sdivzstepu): .single 0
51 C(d_tdivzstepu): .single 0
52 C(d_zistepu): .single 0
53 C(d_sdivzstepv): .single 0
54 C(d_tdivzstepv): .single 0
55 C(d_zistepv): .single 0
56 C(d_sdivzorigin): .single 0
57 C(d_tdivzorigin): .single 0
58 C(d_ziorigin): .single 0
60 .globl C(sadjust)
61 .globl C(tadjust)
62 .globl C(bbextents)
63 .globl C(bbextentt)
64 C(sadjust): .long 0
65 C(tadjust): .long 0
66 C(bbextents): .long 0
67 C(bbextentt): .long 0
69 .globl C(cacheblock)
70 .globl C(d_viewbuffer)
71 .globl C(cachewidth)
72 .globl C(d_pzbuffer)
73 .globl C(d_zrowbytes)
74 .globl C(d_zwidth)
75 C(cacheblock): .long 0
76 C(cachewidth): .long 0
77 C(d_viewbuffer): .long 0
78 C(d_pzbuffer): .long 0
79 C(d_zrowbytes): .long 0
80 C(d_zwidth): .long 0
83 //-------------------------------------------------------
84 // ASM-only variables
85 //-------------------------------------------------------
86 .globl izi
87 izi: .long 0
89 .globl pbase, s, t, sfracf, tfracf, snext, tnext
90 .globl spancountminus1, zi16stepu, sdivz16stepu, tdivz16stepu
91 .globl zi8stepu, sdivz8stepu, tdivz8stepu, pz
92 s: .long 0
93 t: .long 0
94 snext: .long 0
95 tnext: .long 0
96 sfracf: .long 0
97 tfracf: .long 0
98 pbase: .long 0
99 zi8stepu: .long 0
100 sdivz8stepu: .long 0
101 tdivz8stepu: .long 0
102 zi16stepu: .long 0
103 sdivz16stepu: .long 0
104 tdivz16stepu: .long 0
105 spancountminus1: .long 0
106 pz: .long 0
108 .globl izistep
109 izistep: .long 0
111 //-------------------------------------------------------
112 // local variables for d_draw16.s
113 //-------------------------------------------------------
115 .globl reciprocal_table_16, entryvec_table_16
116 // 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13,
117 // 1/14, and 1/15 in 0.32 form
118 reciprocal_table_16: .long 0x40000000, 0x2aaaaaaa, 0x20000000
119 .long 0x19999999, 0x15555555, 0x12492492
120 .long 0x10000000, 0xe38e38e, 0xccccccc, 0xba2e8ba
121 .long 0xaaaaaaa, 0x9d89d89, 0x9249249, 0x8888888
123 #ifndef NeXT
124 .extern Entry2_16
125 .extern Entry3_16
126 .extern Entry4_16
127 .extern Entry5_16
128 .extern Entry6_16
129 .extern Entry7_16
130 .extern Entry8_16
131 .extern Entry9_16
132 .extern Entry10_16
133 .extern Entry11_16
134 .extern Entry12_16
135 .extern Entry13_16
136 .extern Entry14_16
137 .extern Entry15_16
138 .extern Entry16_16
139 #endif
141 entryvec_table_16: .long 0, Entry2_16, Entry3_16, Entry4_16
142 .long Entry5_16, Entry6_16, Entry7_16, Entry8_16
143 .long Entry9_16, Entry10_16, Entry11_16, Entry12_16
144 .long Entry13_16, Entry14_16, Entry15_16, Entry16_16
146 //-------------------------------------------------------
147 // local variables for d_parta.s
148 //-------------------------------------------------------
149 .globl DP_Count, DP_u, DP_v, DP_32768, DP_Color, DP_Pix, DP_EntryTable
150 DP_Count: .long 0
151 DP_u: .long 0
152 DP_v: .long 0
153 DP_32768: .single 32768.0
154 DP_Color: .long 0
155 DP_Pix: .long 0
158 #ifndef NeXT
159 .extern DP_1x1
160 .extern DP_2x2
161 .extern DP_3x3
162 .extern DP_4x4
163 #endif
165 DP_EntryTable: .long DP_1x1, DP_2x2, DP_3x3, DP_4x4
168 // advancetable is 8 bytes, but points to the middle of that range so negative
169 // offsets will work
171 .globl advancetable, sstep, tstep, pspantemp, counttemp, jumptemp
172 advancetable: .long 0, 0
173 sstep: .long 0
174 tstep: .long 0
176 pspantemp: .long 0
177 counttemp: .long 0
178 jumptemp: .long 0
180 // 1/2, 1/3, 1/4, 1/5, 1/6, and 1/7 in 0.32 form
181 .globl reciprocal_table, entryvec_table
182 reciprocal_table: .long 0x40000000, 0x2aaaaaaa, 0x20000000
183 .long 0x19999999, 0x15555555, 0x12492492
185 #ifndef NeXT
186 .extern Entry2_8
187 .extern Entry3_8
188 .extern Entry4_8
189 .extern Entry5_8
190 .extern Entry6_8
191 .extern Entry7_8
192 .extern Entry8_8
193 #endif
195 entryvec_table: .long 0, Entry2_8, Entry3_8, Entry4_8
196 .long Entry5_8, Entry6_8, Entry7_8, Entry8_8
198 #ifndef NeXT
199 .extern Spr8Entry2_8
200 .extern Spr8Entry3_8
201 .extern Spr8Entry4_8
202 .extern Spr8Entry5_8
203 .extern Spr8Entry6_8
204 .extern Spr8Entry7_8
205 .extern Spr8Entry8_8
206 #endif
208 .globl spr8entryvec_table
209 spr8entryvec_table: .long 0, Spr8Entry2_8, Spr8Entry3_8, Spr8Entry4_8
210 .long Spr8Entry5_8, Spr8Entry6_8, Spr8Entry7_8, Spr8Entry8_8
212 #endif // id386