|
|
1.1 root 1: .386P
2: .model FLAT
3: externdef _d_zistepu:dword
4: externdef _d_pzbuffer:dword
5: externdef _d_zistepv:dword
6: externdef _d_zrowbytes:dword
7: externdef _d_ziorigin:dword
8: externdef _r_turb_s:dword
9: externdef _r_turb_t:dword
10: externdef _r_turb_pdest:dword
11: externdef _r_turb_spancount:dword
12: externdef _r_turb_turb:dword
13: externdef _r_turb_pbase:dword
14: externdef _r_turb_sstep:dword
15: externdef _r_turb_tstep:dword
16: externdef _r_bmodelactive:dword
17: externdef _d_sdivzstepu:dword
18: externdef _d_tdivzstepu:dword
19: externdef _d_sdivzstepv:dword
20: externdef _d_tdivzstepv:dword
21: externdef _d_sdivzorigin:dword
22: externdef _d_tdivzorigin:dword
23: externdef _sadjust:dword
24: externdef _tadjust:dword
25: externdef _bbextents:dword
26: externdef _bbextentt:dword
27: externdef _cacheblock:dword
28: externdef _d_viewbuffer:dword
29: externdef _cachewidth:dword
30: externdef _d_pzbuffer:dword
31: externdef _d_zrowbytes:dword
32: externdef _d_zwidth:dword
33: externdef _d_scantable:dword
34: externdef _r_lightptr:dword
35: externdef _r_numvblocks:dword
36: externdef _prowdestbase:dword
37: externdef _pbasesource:dword
38: externdef _r_lightwidth:dword
39: externdef _lightright:dword
40: externdef _lightrightstep:dword
41: externdef _lightdeltastep:dword
42: externdef _lightdelta:dword
43: externdef _lightright:dword
44: externdef _lightdelta:dword
45: externdef _sourcetstep:dword
46: externdef _surfrowbytes:dword
47: externdef _lightrightstep:dword
48: externdef _lightdeltastep:dword
49: externdef _r_sourcemax:dword
50: externdef _r_stepback:dword
51: externdef _colormap:dword
52: externdef _blocksize:dword
53: externdef _sourcesstep:dword
54: externdef _lightleft:dword
55: externdef _blockdivshift:dword
56: externdef _blockdivmask:dword
57: externdef _lightleftstep:dword
58: externdef _r_origin:dword
59: externdef _r_ppn:dword
60: externdef _r_pup:dword
61: externdef _r_pright:dword
62: externdef _ycenter:dword
63: externdef _xcenter:dword
64: externdef _d_vrectbottom_particle:dword
65: externdef _d_vrectright_particle:dword
66: externdef _d_vrecty:dword
67: externdef _d_vrectx:dword
68: externdef _d_pix_shift:dword
69: externdef _d_pix_min:dword
70: externdef _d_pix_max:dword
71: externdef _d_y_aspect_shift:dword
72: externdef _screenwidth:dword
73: externdef _vright:dword
74: externdef _vup:dword
75: externdef _vpn:dword
76: externdef _BOPS_Error:dword
77: externdef _snd_scaletable:dword
78: externdef _paintbuffer:dword
79: externdef _snd_linear_count:dword
80: externdef _snd_p:dword
81: externdef _snd_vol:dword
82: externdef _snd_out:dword
83: externdef _r_leftclipped:dword
84: externdef _r_leftenter:dword
85: externdef _r_rightclipped:dword
86: externdef _r_rightenter:dword
87: externdef _modelorg:dword
88: externdef _xscale:dword
89: externdef _r_refdef:dword
90: externdef _yscale:dword
91: externdef _r_leftexit:dword
92: externdef _r_rightexit:dword
93: externdef _r_lastvertvalid:dword
94: externdef _cacheoffset:dword
95: externdef _newedges:dword
96: externdef _removeedges:dword
97: externdef _r_pedge:dword
98: externdef _r_framecount:dword
99: externdef _r_u1:dword
100: externdef _r_emitted:dword
101: externdef _edge_p:dword
102: externdef _surface_p:dword
103: externdef _surfaces:dword
104: externdef _r_lzi1:dword
105: externdef _r_v1:dword
106: externdef _r_ceilv1:dword
107: externdef _r_nearzi:dword
108: externdef _r_nearzionly:dword
109: externdef _edge_aftertail:dword
110: externdef _edge_tail:dword
111: externdef _current_iv:dword
112: externdef _edge_head_u_shift20:dword
113: externdef _span_p:dword
114: externdef _edge_head:dword
115: externdef _fv:dword
116: externdef _edge_tail_u_shift20:dword
117: externdef _r_apverts:dword
118: externdef _r_anumverts:dword
119: externdef _aliastransform:dword
120: externdef _r_avertexnormals:dword
121: externdef _r_plightvec:dword
122: externdef _r_ambientlight:dword
123: externdef _r_shadelight:dword
124: externdef _aliasxcenter:dword
125: externdef _aliasycenter:dword
126: externdef _a_sstepxfrac:dword
127: externdef _r_affinetridesc:dword
128: externdef _acolormap:dword
129: externdef _d_pcolormap:dword
130: externdef _r_affinetridesc:dword
131: externdef _d_sfrac:dword
132: externdef _d_ptex:dword
133: externdef _d_pedgespanpackage:dword
134: externdef _d_tfrac:dword
135: externdef _d_light:dword
136: externdef _d_zi:dword
137: externdef _d_pdest:dword
138: externdef _d_pz:dword
139: externdef _d_aspancount:dword
140: externdef _erroradjustup:dword
141: externdef _errorterm:dword
142: externdef _d_xdenom:dword
143: externdef _r_p0:dword
144: externdef _r_p1:dword
145: externdef _r_p2:dword
146: externdef _a_tstepxfrac:dword
147: externdef _r_sstepx:dword
148: externdef _r_tstepx:dword
149: externdef _a_ststepxwhole:dword
150: externdef _zspantable:dword
151: externdef _skintable:dword
152: externdef _r_zistepx:dword
153: externdef _erroradjustdown:dword
154: externdef _d_countextrastep:dword
155: externdef _ubasestep:dword
156: externdef _a_ststepxwhole:dword
157: externdef _a_tstepxfrac:dword
158: externdef _r_lstepx:dword
159: externdef _a_spans:dword
160: externdef _erroradjustdown:dword
161: externdef _d_pdestextrastep:dword
162: externdef _d_pzextrastep:dword
163: externdef _d_sfracextrastep:dword
164: externdef _d_ptexextrastep:dword
165: externdef _d_countextrastep:dword
166: externdef _d_tfracextrastep:dword
167: externdef _d_lightextrastep:dword
168: externdef _d_ziextrastep:dword
169: externdef _d_pdestbasestep:dword
170: externdef _d_pzbasestep:dword
171: externdef _d_sfracbasestep:dword
172: externdef _d_ptexbasestep:dword
173: externdef _ubasestep:dword
174: externdef _d_tfracbasestep:dword
175: externdef _d_lightbasestep:dword
176: externdef _d_zibasestep:dword
177: externdef _zspantable:dword
178: externdef _r_lstepy:dword
179: externdef _r_sstepy:dword
180: externdef _r_tstepy:dword
181: externdef _r_zistepy:dword
182: externdef _D_PolysetSetEdgeTable:dword
183: externdef _D_RasterizeAliasPolySmooth:dword
184: externdef float_point5:dword
185: externdef Float2ToThe31nd:dword
186: externdef izistep:dword
187: externdef izi:dword
188: externdef FloatMinus2ToThe31nd:dword
189: externdef float_1:dword
190: externdef float_particle_z_clip:dword
191: externdef float_minus_1:dword
192: externdef float_0:dword
193: externdef fp_16:dword
194: externdef fp_64k:dword
195: externdef fp_1m:dword
196: externdef fp_1m_minus_1:dword
197: externdef fp_8:dword
198: externdef entryvec_table:dword
199: externdef advancetable:dword
200: externdef sstep:dword
201: externdef tstep:dword
202: externdef pspantemp:dword
203: externdef counttemp:dword
204: externdef jumptemp:dword
205: externdef reciprocal_table:dword
206: externdef DP_Count:dword
207: externdef DP_u:dword
208: externdef DP_v:dword
209: externdef DP_32768:dword
210: externdef DP_Color:dword
211: externdef DP_Pix:dword
212: externdef DP_EntryTable:dword
213: externdef pbase:dword
214: externdef s:dword
215: externdef t:dword
216: externdef sfracf:dword
217: externdef tfracf:dword
218: externdef snext:dword
219: externdef tnext:dword
220: externdef spancountminus1:dword
221: externdef zi16stepu:dword
222: externdef sdivz16stepu:dword
223: externdef tdivz16stepu:dword
224: externdef zi8stepu:dword
225: externdef sdivz8stepu:dword
226: externdef tdivz8stepu:dword
227: externdef reciprocal_table_16:dword
228: externdef entryvec_table_16:dword
229: externdef ceil_cw:dword
230: externdef single_cw:dword
231: externdef fp_64kx64k:dword
232: externdef pz:dword
233: externdef spr8entryvec_table:dword
234: _DATA SEGMENT
235: k dd 0
236: loopentry dd 0
237: align 4
238: blockjumptable16:
239: dd LEnter2_16
240: dd LEnter4_16
241: dd 0, LEnter8_16
242: dd 0, 0, 0, LEnter16_16
243: _DATA ENDS
244: _TEXT SEGMENT
245: align 4
246: public _R_Surf16Start
247: _R_Surf16Start:
248: align 4
249: public _R_DrawSurfaceBlock16
250: _R_DrawSurfaceBlock16:
251: push ebp
252: push edi
253: push esi
254: push ebx
255: mov eax,ds:dword ptr[_blocksize]
256: mov edi,ds:dword ptr[_prowdestbase]
257: mov esi,ds:dword ptr[_pbasesource]
258: mov ebx,ds:dword ptr[_sourcesstep]
259: mov ecx,ds:dword ptr[blockjumptable16-4+eax*2]
260: mov ds:dword ptr[k],eax
261: mov ds:dword ptr[loopentry],ecx
262: mov edx,ds:dword ptr[_lightleft]
263: mov ebp,ds:dword ptr[_lightright]
264: Lblockloop16:
265: sub ebp,edx
266: mov cl,ds:byte ptr[_blockdivshift]
267: sar ebp,cl
268: jns Lp1_16
269: test ebp,ds:dword ptr[_blockdivmask]
270: jz Lp1_16
271: inc ebp
272: Lp1_16:
273: sub eax,eax
274: sub ecx,ecx
275: jmp dword ptr[loopentry]
276: align 4
277: LEnter16_16:
278: mov al,ds:byte ptr[esi]
279: mov cl,ds:byte ptr[esi+ebx]
280: mov ah,dh
281: add edx,ebp
282: mov ch,dh
283: lea esi,ds:dword ptr[esi+ebx*2]
284: mov ax,ds:word ptr[12345678h+eax*2]
285: LBPatch0:
286: add edx,ebp
287: mov ds:word ptr[edi],ax
288: mov cx,ds:word ptr[12345678h+ecx*2]
289: LBPatch1:
290: mov ds:word ptr[2+edi],cx
291: add edi,04h
292: mov al,ds:byte ptr[esi]
293: mov cl,ds:byte ptr[esi+ebx]
294: mov ah,dh
295: add edx,ebp
296: mov ch,dh
297: lea esi,ds:dword ptr[esi+ebx*2]
298: mov ax,ds:word ptr[12345678h+eax*2]
299: LBPatch2:
300: add edx,ebp
301: mov ds:word ptr[edi],ax
302: mov cx,ds:word ptr[12345678h+ecx*2]
303: LBPatch3:
304: mov ds:word ptr[2+edi],cx
305: add edi,04h
306: mov al,ds:byte ptr[esi]
307: mov cl,ds:byte ptr[esi+ebx]
308: mov ah,dh
309: add edx,ebp
310: mov ch,dh
311: lea esi,ds:dword ptr[esi+ebx*2]
312: mov ax,ds:word ptr[12345678h+eax*2]
313: LBPatch4:
314: add edx,ebp
315: mov ds:word ptr[edi],ax
316: mov cx,ds:word ptr[12345678h+ecx*2]
317: LBPatch5:
318: mov ds:word ptr[2+edi],cx
319: add edi,04h
320: mov al,ds:byte ptr[esi]
321: mov cl,ds:byte ptr[esi+ebx]
322: mov ah,dh
323: add edx,ebp
324: mov ch,dh
325: lea esi,ds:dword ptr[esi+ebx*2]
326: mov ax,ds:word ptr[12345678h+eax*2]
327: LBPatch6:
328: add edx,ebp
329: mov ds:word ptr[edi],ax
330: mov cx,ds:word ptr[12345678h+ecx*2]
331: LBPatch7:
332: mov ds:word ptr[2+edi],cx
333: add edi,04h
334: LEnter8_16:
335: mov al,ds:byte ptr[esi]
336: mov cl,ds:byte ptr[esi+ebx]
337: mov ah,dh
338: add edx,ebp
339: mov ch,dh
340: lea esi,ds:dword ptr[esi+ebx*2]
341: mov ax,ds:word ptr[12345678h+eax*2]
342: LBPatch8:
343: add edx,ebp
344: mov ds:word ptr[edi],ax
345: mov cx,ds:word ptr[12345678h+ecx*2]
346: LBPatch9:
347: mov ds:word ptr[2+edi],cx
348: add edi,04h
349: mov al,ds:byte ptr[esi]
350: mov cl,ds:byte ptr[esi+ebx]
351: mov ah,dh
352: add edx,ebp
353: mov ch,dh
354: lea esi,ds:dword ptr[esi+ebx*2]
355: mov ax,ds:word ptr[12345678h+eax*2]
356: LBPatch10:
357: add edx,ebp
358: mov ds:word ptr[edi],ax
359: mov cx,ds:word ptr[12345678h+ecx*2]
360: LBPatch11:
361: mov ds:word ptr[2+edi],cx
362: add edi,04h
363: LEnter4_16:
364: mov al,ds:byte ptr[esi]
365: mov cl,ds:byte ptr[esi+ebx]
366: mov ah,dh
367: add edx,ebp
368: mov ch,dh
369: lea esi,ds:dword ptr[esi+ebx*2]
370: mov ax,ds:word ptr[12345678h+eax*2]
371: LBPatch12:
372: add edx,ebp
373: mov ds:word ptr[edi],ax
374: mov cx,ds:word ptr[12345678h+ecx*2]
375: LBPatch13:
376: mov ds:word ptr[2+edi],cx
377: add edi,04h
378: LEnter2_16:
379: mov al,ds:byte ptr[esi]
380: mov cl,ds:byte ptr[esi+ebx]
381: mov ah,dh
382: add edx,ebp
383: mov ch,dh
384: lea esi,ds:dword ptr[esi+ebx*2]
385: mov ax,ds:word ptr[12345678h+eax*2]
386: LBPatch14:
387: add edx,ebp
388: mov ds:word ptr[edi],ax
389: mov cx,ds:word ptr[12345678h+ecx*2]
390: LBPatch15:
391: mov ds:word ptr[2+edi],cx
392: add edi,04h
393: mov esi,ds:dword ptr[_pbasesource]
394: mov edx,ds:dword ptr[_lightleft]
395: mov ebp,ds:dword ptr[_lightright]
396: mov eax,ds:dword ptr[_sourcetstep]
397: mov ecx,ds:dword ptr[_lightrightstep]
398: mov edi,ds:dword ptr[_prowdestbase]
399: add esi,eax
400: add ebp,ecx
401: mov eax,ds:dword ptr[_lightleftstep]
402: mov ecx,ds:dword ptr[_surfrowbytes]
403: add edx,eax
404: add edi,ecx
405: mov ds:dword ptr[_pbasesource],esi
406: mov ds:dword ptr[_lightright],ebp
407: mov eax,ds:dword ptr[k]
408: mov ds:dword ptr[_lightleft],edx
409: dec eax
410: mov ds:dword ptr[_prowdestbase],edi
411: mov ds:dword ptr[k],eax
412: jnz Lblockloop16
413: pop ebx
414: pop esi
415: pop edi
416: pop ebp
417: ret
418: public _R_Surf16End
419: _R_Surf16End:
420: _TEXT ENDS
421: _DATA SEGMENT
422: align 4
423: LPatchTable16:
424: dd LBPatch0-4
425: dd LBPatch1-4
426: dd LBPatch2-4
427: dd LBPatch3-4
428: dd LBPatch4-4
429: dd LBPatch5-4
430: dd LBPatch6-4
431: dd LBPatch7-4
432: dd LBPatch8-4
433: dd LBPatch9-4
434: dd LBPatch10-4
435: dd LBPatch11-4
436: dd LBPatch12-4
437: dd LBPatch13-4
438: dd LBPatch14-4
439: dd LBPatch15-4
440: _DATA ENDS
441: _TEXT SEGMENT
442: align 4
443: public _R_Surf16Patch
444: _R_Surf16Patch:
445: push ebx
446: mov eax,ds:dword ptr[_colormap]
447: mov ebx,offset LPatchTable16
448: mov ecx,16
449: LPatchLoop16:
450: mov edx,ds:dword ptr[ebx]
451: add ebx,4
452: mov ds:dword ptr[edx],eax
453: dec ecx
454: jnz LPatchLoop16
455: pop ebx
456: ret
457: _TEXT ENDS
458: END
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.