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