Rev 5256 | Rev 6108 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5153 | IgorA | 1 | format MS COFF |
2 | public EXPORTS |
||
3 | section '.flat' code readable align 16 |
||
4 | |||
5 | include '../../../../../programs/proc32.inc' |
||
6 | include '../../../../../programs/macros.inc' |
||
7 | |||
8 | DEBUG equ 0 |
||
9 | |||
10 | include 'zgl.inc' |
||
11 | include 'zmath.asm' |
||
12 | include 'clip.asm' |
||
13 | include 'vertex.asm' |
||
14 | include 'api.asm' |
||
5353 | IgorA | 15 | include 'list.asm' ;gl_add_op |
5153 | IgorA | 16 | include 'init.asm' |
5353 | IgorA | 17 | include 'matrix.asm' ;gl_print_matrix |
5153 | IgorA | 18 | include 'texture.asm' |
19 | include 'misc.asm' |
||
20 | include 'clear.asm' |
||
21 | include 'light.asm' |
||
22 | include 'select.asm' |
||
23 | ;include 'get.asm' |
||
24 | ;include 'error.asm' |
||
25 | include 'zbuffer.asm' |
||
26 | include 'zline.asm' |
||
27 | ;include 'zdither.asm' |
||
28 | include 'ztriangle.asm' |
||
29 | ;include 'image_util.asm' |
||
30 | ;include 'msghandling.asm' |
||
31 | include 'arrays.asm' |
||
5256 | IgorA | 32 | include 'specbuf.asm' |
5153 | IgorA | 33 | |
34 | include 'kosgl.asm' |
||
5218 | IgorA | 35 | include 'glu.asm' |
5153 | IgorA | 36 | |
37 | if DEBUG |
||
38 | include 'info_fun_float.inc' |
||
39 | |||
40 | align 4 |
||
41 | txt_nl db 13,10,0 |
||
42 | txt_sp db ' ',0 |
||
5171 | IgorA | 43 | txt_op db 'Op_code',0 |
5153 | IgorA | 44 | txt_zp_sp db ', ',0 |
45 | m_1 db '(1)',13,10,0 |
||
46 | m_2 db '(2)',13,10,0 |
||
47 | m_3 db '(3)',13,10,0 |
||
48 | m_4 db '(4)',13,10,0 |
||
49 | m_5 db '(5)',13,10,0 |
||
5187 | IgorA | 50 | m_6 db '(6)',13,10,0 |
51 | m_7 db '(7)',13,10,0 |
||
52 | m_8 db '(8)',13,10,0 |
||
53 | m_9 db '(9)',13,10,0 |
||
5153 | IgorA | 54 | |
55 | buf_param rb 80 |
||
56 | |||
57 | align 4 |
||
5175 | IgorA | 58 | proc str_n_cat uses eax ecx edi esi, str1:dword, str2:dword, n_len:dword |
5153 | IgorA | 59 | mov esi,dword[str2] |
5175 | IgorA | 60 | mov ecx,dword[n_len] |
5153 | IgorA | 61 | mov edi,dword[str1] |
62 | stdcall str_len,edi |
||
63 | add edi,eax |
||
64 | cld |
||
65 | repne movsb |
||
66 | mov byte[edi],0 |
||
67 | ret |
||
68 | endp |
||
69 | |||
70 | ;input: |
||
71 | ; eax - число |
||
72 | ; edi - буфер для строки |
||
73 | ; len - длинна буфера |
||
74 | ;output: |
||
75 | align 4 |
||
76 | proc convert_int_to_str, len:dword |
||
77 | pushad |
||
78 | mov esi,[len] |
||
79 | add esi,edi |
||
80 | dec esi |
||
81 | call .str |
||
82 | popad |
||
83 | ret |
||
84 | endp |
||
85 | |||
86 | align 4 |
||
87 | .str: |
||
88 | mov ecx,0x0a ;задается система счисления изменяются регистры ebx,eax,ecx,edx входные параметры eax - число |
||
89 | ;преревод числа в ASCII строку взодные данные ecx=система счисленя edi адрес куда записывать, будем строку, причем конец переменной |
||
90 | cmp eax,ecx ;сравнить если в eax меньше чем в ecx то перейти на @@-1 т.е. на pop eax |
||
91 | jb @f |
||
92 | xor edx,edx ;очистить edx |
||
93 | div ecx ;разделить - остаток в edx |
||
94 | push edx ;положить в стек |
||
95 | ;dec edi ;смещение необходимое для записи с конца строки |
||
96 | call .str ;перейти на саму себя т.е. вызвать саму себя и так до того момента пока в eax не станет меньше чем в ecx |
||
97 | pop eax |
||
98 | @@: ;cmp al,10 ;проверить не меньше ли значение в al чем 10 (для системы счисленя 10 данная команда - лишная)) |
||
99 | cmp edi,esi |
||
100 | jge @f |
||
101 | or al,0x30 ;данная команда короче чем две выше |
||
102 | stosb ;записать элемент из регистра al в ячеку памяти es:edi |
||
103 | mov byte[edi],0 ;в конец строки ставим 0, что-бы не вылазил мусор |
||
104 | @@: |
||
105 | ret ;пока в стеке храниться кол-во вызовов то столько раз мы и будем вызываться |
||
106 | end if |
||
107 | |||
5353 | IgorA | 108 | ; *** |
109 | glVertex2d: ;(double ,double) |
||
110 | glVertex2dv: ;(double *) |
||
111 | glVertex3d: ;(double ,double ,double) |
||
112 | glVertex3dv: ;(double *) |
||
113 | glVertex4d: ;(double ,double ,double, double ) |
||
114 | glVertex4dv: ;(double *) |
||
115 | glColor3d: ;(double ,double ,double) |
||
116 | glColor3dv: ;(double *) |
||
117 | glColor4d: ;(double ,double ,double, double ) |
||
118 | glColor4dv: ;(double *) |
||
119 | glNormal3d: ;(double ,double ,double) |
||
120 | glNormal3dv: ;(double *) |
||
121 | glTexCoord1f: ;(float) |
||
122 | glTexCoord1d: ;(double) |
||
123 | glTexCoord1fv: ;(float *) |
||
124 | glTexCoord1dv: ;(double *) |
||
125 | glTexCoord2d: ;(double ,double) |
||
126 | glTexCoord2dv: ;(double *) |
||
127 | glTexCoord3f: ;(float ,float ,float) |
||
128 | glTexCoord3d: ;(double ,double ,double) |
||
129 | glTexCoord3fv: ;(float *) |
||
130 | glTexCoord3dv: ;(double *) |
||
131 | glTexCoord4d: ;(double ,double ,double, double ) |
||
132 | glTexCoord4fv: ;(float *) |
||
133 | glTexCoord4dv: ;(double *) |
||
134 | glGenTextures: ;(int n, unsigned int *textures) |
||
135 | glDeleteTextures: ;(int n, const unsigned int *textures) |
||
136 | glGetIntegerv: ;(int pname,int *params) |
||
137 | glGetFloatv: ;(int pname, float *v) |
||
138 | |||
5153 | IgorA | 139 | align 4 |
140 | f_kosgl_1 db 'kosglMakeCurrent',0 |
||
141 | err_0 db 'Error while initializing Z buffer',13,10,0 |
||
142 | f_zb_opn db ' ZB_open',0 |
||
143 | err_1 db 'gl_malloc(sizeof.ZBuffer)==0',13,10,0 |
||
144 | err_2 db 'gl_malloc(xsize*ysize*4)==0',13,10,0 |
||
145 | err_3 db 'bit mode not correct',13,10,0 |
||
146 | f_vp db ' glViewport',0 |
||
147 | err_4 db 'error while resizing display',13,10,0 |
||
148 | err_5 db 'size too small',13,10,0 |
||
149 | f_clipcode db ' gl_clipcode',0 |
||
150 | f_zbz db ' ZB_line_z',0 |
||
151 | f_zb db ' ZB_line',0 |
||
5171 | IgorA | 152 | f_find_l db 'find_list',0 |
153 | f_alloc_l db 'alloc_list',0 |
||
154 | f_is_l db 'glIsList',0 |
||
155 | f_gen_l db 'glGenLists',0 |
||
156 | f_end_l db 'glEndList',0 |
||
5187 | IgorA | 157 | f_fill_tr db 'ZB_fillTriangle...',0 |
158 | f_fill_tr_nl db ' lines',0 |
||
159 | f_fill_tr_nll db ' len',0 |
||
5153 | IgorA | 160 | |
161 | align 4 |
||
162 | proc dbg_print, fun:dword, mes:dword |
||
163 | pushad |
||
164 | mov eax,63 |
||
165 | mov ebx,1 |
||
166 | |||
167 | mov esi,[fun] |
||
168 | @@: |
||
169 | mov cl,byte[esi] |
||
170 | int 0x40 |
||
171 | inc esi |
||
172 | cmp byte[esi],0 |
||
173 | jne @b |
||
174 | mov cl,':' |
||
175 | int 0x40 |
||
176 | mov cl,' ' |
||
177 | int 0x40 |
||
178 | mov esi,[mes] |
||
179 | @@: |
||
180 | mov cl,byte[esi] |
||
181 | int 0x40 |
||
182 | inc esi |
||
183 | cmp byte[esi],0 |
||
184 | jne @b |
||
185 | popad |
||
186 | ret |
||
187 | endp |
||
188 | |||
189 | align 16 |
||
190 | EXPORTS: |
||
191 | macro E_LIB n |
||
192 | { |
||
193 | dd sz_#n, n |
||
194 | } |
||
195 | include 'export.inc' |
||
196 | dd 0,0 |
||
197 | macro E_LIB n |
||
198 | { |
||
199 | sz_#n db `n,0 |
||
200 | } |
||
201 | include 'export.inc' |