More header unification...
[btb/d2x.git] / texmap / tmap_inc.asm
1 ;THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
2 ;SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
3 ;END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
4 ;ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
5 ;IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
6 ;SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
7 ;FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
8 ;CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
9 ;AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
10 ;COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
11 ;
12 ; $Source: /cvs/cvsroot/d2x/texmap/tmap_inc.asm,v $
13 ; $Revision: 1.1.1.1 $
14 ; $Author: bradleyb $
15 ; $Date: 2001-01-19 03:30:16 $
16 ;
17 ; Mike's include file for the texture mapper library.
18 ;
19 ; $Log: not supported by cvs2svn $
20 ; Revision 1.1.1.1  1999/06/14 22:13:53  donut
21 ; Import of d1x 1.37 source.
22 ;
23 ; Revision 1.10  1995/02/20  18:22:52  john
24 ; Put all the externs in the assembly modules into tmap_inc.asm.
25 ; Also, moved all the C versions of the inner loops into a new module,
26 ; scanline.c.
27 ;
28 ; Revision 1.9  1994/12/02  23:29:45  mike
29 ; Add y_pointers.
30 ;
31 ; Revision 1.8  1994/11/12  16:39:36  mike
32 ; jae to ja.
33 ;
34 ; Revision 1.7  1994/10/26  23:27:39  john
35 ; Took out references to gr_inverse_table.
36 ;
37 ; Revision 1.6  1994/10/26  23:21:55  mike
38 ; kill unused stuff.
39 ;
40 ; Revision 1.5  1994/07/27  18:39:20  john
41 ; Took out references to blend table
42 ;
43 ; Revision 1.4  1994/01/31  15:40:17  mike
44 ; Add window_height.
45 ;
46 ; Revision 1.3  1993/12/07  12:27:48  john
47 ; Moved bmd_palette to gr_palette
48 ;
49 ; Revision 1.2  1993/11/22  10:24:10  mike
50 ; *** empty log message ***
51 ;
52 ; Revision 1.1  1993/09/08  17:29:47  mike
53 ; Initial revision
54 ;
55 ;
56 ;
57
58 ; VESA in this file must be the same as VESA in tmap.h
59 VESA    equ     0
60
61 direct_to_video equ     0
62 %if direct_to_video
63   %if VESA
64
65 ; for vesa mode
66 WINDOW_LEFT     =       0
67 WINDOW_RIGHT    =       300
68 WINDOW_TOP      =       0
69 WINDOW_BOTTOM   =       200
70 WINDOW_WIDTH    =       WINDOW_RIGHT - WINDOW_LEFT
71 BYTES_PER_ROW   =       300*2
72
73   %else
74
75 ; for non-vesa mode
76 WINDOW_LEFT     =       58
77 WINDOW_RIGHT    =       262
78 WINDOW_TOP      =       34
79 WINDOW_BOTTOM   =       167
80 WINDOW_WIDTH    =       WINDOW_RIGHT - WINDOW_LEFT
81 BYTES_PER_ROW   =       320             ; number of bytes between rows
82
83   %endif
84
85 ; for vesa, 15 bit color, 640x480x2
86 SCREEN_WIDTH    =       640
87 SCREEN_HEIGHT   =       480
88 BYTES_PER_PIXEL =       2
89 %endif
90
91 %ifdef __ENV_LINUX__
92 ; It appears that ELF C compilers do not prefix symbols with '_', so here we
93 ; cater for them...
94 %define _gr_fade_table  gr_fade_table
95 %define _write_buffer   write_buffer
96 %define _window_left    window_left
97 %define _window_right   window_right
98 %define _window_top     window_top
99 %define _window_bottom  window_bottom
100 %define _window_width   window_width
101 %define _window_height  window_height
102 %define _bytes_per_row  bytes_per_row
103 %define _y_pointers     y_pointers
104
105 %define _per2_flag      per2_flag
106 %define _tmap_flat_cthru_table          tmap_flat_cthru_table
107 %define _tmap_flat_color                tmap_flat_color
108 %define _tmap_flat_shade_value          tmap_flat_shade_value
109 %define _dither_intensity_lighting      dither_intensity_lighting
110 %define _Lighting_on                    Lighting_on
111
112 %define _Transparency_on        Transparency_on
113 %define _fx_u                   fx_u
114 %define _fx_v                   fx_v
115 %define _fx_z                   fx_z
116 %define _fx_l                   fx_l
117 %define _fx_du_dx               fx_du_dx
118 %define _fx_dv_dx               fx_dv_dx
119 %define _fx_dz_dx               fx_dz_dx
120 %define _fx_dl_dx               fx_dl_dx
121 %define _fx_y                   fx_y
122 %define _fx_xleft               fx_xleft
123 %define _fx_xright              fx_xright
124 %define _pixptr                 pixptr
125 %endif
126
127         extern  _gr_fade_table;:byte
128 ;NO_INVERSE_TABLE       extrn   _gr_inverse_table:byte
129         extern  _write_buffer;:dword
130         extern  _window_left;:dword
131         extern _window_right;:dword
132         extern _window_top;:dword
133         extern _window_bottom;:dword,
134         extern _window_width;:dword,
135         extern _bytes_per_row;:dword,
136         extern _window_height;:dword
137         extern  _y_pointers;:dword
138
139 ;NO_INVERSE_TABLE _rgb_to_palette       equ     _gr_inverse_table
140 ;NO_INVERSE_TABLE _pixel_average        equ     _gr_inverse_table               ; should be blend table, but i took it out -john
141
142 max_window_width        equ     800
143 num_iters       equ     max_window_width
144
145 %if num_iters & 1
146 %assign num_iters num_iters+1
147 %endif
148         extern _per2_flag;:dword
149         extern _tmap_flat_cthru_table;:dword
150         extern _tmap_flat_color;:byte
151         extern _tmap_flat_shade_value;:byte
152         extern _dither_intensity_lighting;:dword
153         extern _Lighting_on;:dword
154
155 ; DPH: Selectors are about as portable as a rock.
156 ;        extern _pixel_data_selector;:word
157 ;        extern _gr_fade_table_selector;:word
158
159         extern _Transparency_on;:dword
160         extern _fx_u;:dword
161         extern _fx_v;:dword
162         extern _fx_z;:dword
163         extern _fx_l;:dword
164         extern _fx_du_dx;:dword
165         extern _fx_dv_dx;:dword
166         extern _fx_dz_dx;:dword
167         extern _fx_dl_dx;:dword
168         extern _fx_y;:dword
169         extern _fx_xleft;:dword
170         extern _fx_xright;:dword
171         extern _pixptr;:dword
172
173