Annotation of quakeworld/client/surf16.asm, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.