Annotation of quakeworld/client/math.asm, revision 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:  align 4
        !           236: Ljmptab dd Lcase0, Lcase1, Lcase2, Lcase3
        !           237:  dd Lcase4, Lcase5, Lcase6, Lcase7
        !           238: _DATA ENDS
        !           239: _TEXT SEGMENT
        !           240:  public _Invert24To16
        !           241: _Invert24To16:
        !           242:  mov ecx,ds:dword ptr[4+esp]
        !           243:  mov edx,0100h
        !           244:  cmp ecx,edx
        !           245:  jle LOutOfRange
        !           246:  sub eax,eax
        !           247:  div ecx
        !           248:  ret
        !           249: LOutOfRange:
        !           250:  mov eax,0FFFFFFFFh
        !           251:  ret
        !           252:  align 2
        !           253:  public _TransformVector
        !           254: _TransformVector:
        !           255:  mov eax,ds:dword ptr[4+esp]
        !           256:  mov edx,ds:dword ptr[8+esp]
        !           257:  fld ds:dword ptr[eax]
        !           258:  fmul ds:dword ptr[_vright]
        !           259:  fld ds:dword ptr[eax]
        !           260:  fmul ds:dword ptr[_vup]
        !           261:  fld ds:dword ptr[eax]
        !           262:  fmul ds:dword ptr[_vpn]
        !           263:  fld ds:dword ptr[4+eax]
        !           264:  fmul ds:dword ptr[_vright+4]
        !           265:  fld ds:dword ptr[4+eax]
        !           266:  fmul ds:dword ptr[_vup+4]
        !           267:  fld ds:dword ptr[4+eax]
        !           268:  fmul ds:dword ptr[_vpn+4]
        !           269:  fxch st(2)
        !           270:  faddp st(5),st(0)
        !           271:  faddp st(3),st(0)
        !           272:  faddp st(1),st(0)
        !           273:  fld ds:dword ptr[8+eax]
        !           274:  fmul ds:dword ptr[_vright+8]
        !           275:  fld ds:dword ptr[8+eax]
        !           276:  fmul ds:dword ptr[_vup+8]
        !           277:  fld ds:dword ptr[8+eax]
        !           278:  fmul ds:dword ptr[_vpn+8]
        !           279:  fxch st(2)
        !           280:  faddp st(5),st(0)
        !           281:  faddp st(3),st(0)
        !           282:  faddp st(1),st(0)
        !           283:  fstp ds:dword ptr[8+edx]
        !           284:  fstp ds:dword ptr[4+edx]
        !           285:  fstp ds:dword ptr[edx]
        !           286:  ret
        !           287:  align 2
        !           288:  public _BoxOnPlaneSide
        !           289: _BoxOnPlaneSide:
        !           290:  push ebx
        !           291:  mov edx,ds:dword ptr[4+12+esp]
        !           292:  mov ecx,ds:dword ptr[4+4+esp]
        !           293:  xor eax,eax
        !           294:  mov ebx,ds:dword ptr[4+8+esp]
        !           295:  mov al,ds:byte ptr[17+edx]
        !           296:  cmp al,8
        !           297:  jge Lerror
        !           298:  fld ds:dword ptr[0+edx]
        !           299:  fld st(0)
        !           300:  jmp dword ptr[Ljmptab+eax*4]
        !           301: Lcase0:
        !           302:  fmul ds:dword ptr[ebx]
        !           303:  fld ds:dword ptr[0+4+edx]
        !           304:  fxch st(2)
        !           305:  fmul ds:dword ptr[ecx]
        !           306:  fxch st(2)
        !           307:  fld st(0)
        !           308:  fmul ds:dword ptr[4+ebx]
        !           309:  fld ds:dword ptr[0+8+edx]
        !           310:  fxch st(2)
        !           311:  fmul ds:dword ptr[4+ecx]
        !           312:  fxch st(2)
        !           313:  fld st(0)
        !           314:  fmul ds:dword ptr[8+ebx]
        !           315:  fxch st(5)
        !           316:  faddp st(3),st(0)
        !           317:  fmul ds:dword ptr[8+ecx]
        !           318:  fxch st(1)
        !           319:  faddp st(3),st(0)
        !           320:  fxch st(3)
        !           321:  faddp st(2),st(0)
        !           322:  jmp LSetSides
        !           323: Lcase1:
        !           324:  fmul ds:dword ptr[ecx]
        !           325:  fld ds:dword ptr[0+4+edx]
        !           326:  fxch st(2)
        !           327:  fmul ds:dword ptr[ebx]
        !           328:  fxch st(2)
        !           329:  fld st(0)
        !           330:  fmul ds:dword ptr[4+ebx]
        !           331:  fld ds:dword ptr[0+8+edx]
        !           332:  fxch st(2)
        !           333:  fmul ds:dword ptr[4+ecx]
        !           334:  fxch st(2)
        !           335:  fld st(0)
        !           336:  fmul ds:dword ptr[8+ebx]
        !           337:  fxch st(5)
        !           338:  faddp st(3),st(0)
        !           339:  fmul ds:dword ptr[8+ecx]
        !           340:  fxch st(1)
        !           341:  faddp st(3),st(0)
        !           342:  fxch st(3)
        !           343:  faddp st(2),st(0)
        !           344:  jmp LSetSides
        !           345: Lcase2:
        !           346:  fmul ds:dword ptr[ebx]
        !           347:  fld ds:dword ptr[0+4+edx]
        !           348:  fxch st(2)
        !           349:  fmul ds:dword ptr[ecx]
        !           350:  fxch st(2)
        !           351:  fld st(0)
        !           352:  fmul ds:dword ptr[4+ecx]
        !           353:  fld ds:dword ptr[0+8+edx]
        !           354:  fxch st(2)
        !           355:  fmul ds:dword ptr[4+ebx]
        !           356:  fxch st(2)
        !           357:  fld st(0)
        !           358:  fmul ds:dword ptr[8+ebx]
        !           359:  fxch st(5)
        !           360:  faddp st(3),st(0)
        !           361:  fmul ds:dword ptr[8+ecx]
        !           362:  fxch st(1)
        !           363:  faddp st(3),st(0)
        !           364:  fxch st(3)
        !           365:  faddp st(2),st(0)
        !           366:  jmp LSetSides
        !           367: Lcase3:
        !           368:  fmul ds:dword ptr[ecx]
        !           369:  fld ds:dword ptr[0+4+edx]
        !           370:  fxch st(2)
        !           371:  fmul ds:dword ptr[ebx]
        !           372:  fxch st(2)
        !           373:  fld st(0)
        !           374:  fmul ds:dword ptr[4+ecx]
        !           375:  fld ds:dword ptr[0+8+edx]
        !           376:  fxch st(2)
        !           377:  fmul ds:dword ptr[4+ebx]
        !           378:  fxch st(2)
        !           379:  fld st(0)
        !           380:  fmul ds:dword ptr[8+ebx]
        !           381:  fxch st(5)
        !           382:  faddp st(3),st(0)
        !           383:  fmul ds:dword ptr[8+ecx]
        !           384:  fxch st(1)
        !           385:  faddp st(3),st(0)
        !           386:  fxch st(3)
        !           387:  faddp st(2),st(0)
        !           388:  jmp LSetSides
        !           389: Lcase4:
        !           390:  fmul ds:dword ptr[ebx]
        !           391:  fld ds:dword ptr[0+4+edx]
        !           392:  fxch st(2)
        !           393:  fmul ds:dword ptr[ecx]
        !           394:  fxch st(2)
        !           395:  fld st(0)
        !           396:  fmul ds:dword ptr[4+ebx]
        !           397:  fld ds:dword ptr[0+8+edx]
        !           398:  fxch st(2)
        !           399:  fmul ds:dword ptr[4+ecx]
        !           400:  fxch st(2)
        !           401:  fld st(0)
        !           402:  fmul ds:dword ptr[8+ecx]
        !           403:  fxch st(5)
        !           404:  faddp st(3),st(0)
        !           405:  fmul ds:dword ptr[8+ebx]
        !           406:  fxch st(1)
        !           407:  faddp st(3),st(0)
        !           408:  fxch st(3)
        !           409:  faddp st(2),st(0)
        !           410:  jmp LSetSides
        !           411: Lcase5:
        !           412:  fmul ds:dword ptr[ecx]
        !           413:  fld ds:dword ptr[0+4+edx]
        !           414:  fxch st(2)
        !           415:  fmul ds:dword ptr[ebx]
        !           416:  fxch st(2)
        !           417:  fld st(0)
        !           418:  fmul ds:dword ptr[4+ebx]
        !           419:  fld ds:dword ptr[0+8+edx]
        !           420:  fxch st(2)
        !           421:  fmul ds:dword ptr[4+ecx]
        !           422:  fxch st(2)
        !           423:  fld st(0)
        !           424:  fmul ds:dword ptr[8+ecx]
        !           425:  fxch st(5)
        !           426:  faddp st(3),st(0)
        !           427:  fmul ds:dword ptr[8+ebx]
        !           428:  fxch st(1)
        !           429:  faddp st(3),st(0)
        !           430:  fxch st(3)
        !           431:  faddp st(2),st(0)
        !           432:  jmp LSetSides
        !           433: Lcase6:
        !           434:  fmul ds:dword ptr[ebx]
        !           435:  fld ds:dword ptr[0+4+edx]
        !           436:  fxch st(2)
        !           437:  fmul ds:dword ptr[ecx]
        !           438:  fxch st(2)
        !           439:  fld st(0)
        !           440:  fmul ds:dword ptr[4+ecx]
        !           441:  fld ds:dword ptr[0+8+edx]
        !           442:  fxch st(2)
        !           443:  fmul ds:dword ptr[4+ebx]
        !           444:  fxch st(2)
        !           445:  fld st(0)
        !           446:  fmul ds:dword ptr[8+ecx]
        !           447:  fxch st(5)
        !           448:  faddp st(3),st(0)
        !           449:  fmul ds:dword ptr[8+ebx]
        !           450:  fxch st(1)
        !           451:  faddp st(3),st(0)
        !           452:  fxch st(3)
        !           453:  faddp st(2),st(0)
        !           454:  jmp LSetSides
        !           455: Lcase7:
        !           456:  fmul ds:dword ptr[ecx]
        !           457:  fld ds:dword ptr[0+4+edx]
        !           458:  fxch st(2)
        !           459:  fmul ds:dword ptr[ebx]
        !           460:  fxch st(2)
        !           461:  fld st(0)
        !           462:  fmul ds:dword ptr[4+ecx]
        !           463:  fld ds:dword ptr[0+8+edx]
        !           464:  fxch st(2)
        !           465:  fmul ds:dword ptr[4+ebx]
        !           466:  fxch st(2)
        !           467:  fld st(0)
        !           468:  fmul ds:dword ptr[8+ecx]
        !           469:  fxch st(5)
        !           470:  faddp st(3),st(0)
        !           471:  fmul ds:dword ptr[8+ebx]
        !           472:  fxch st(1)
        !           473:  faddp st(3),st(0)
        !           474:  fxch st(3)
        !           475:  faddp st(2),st(0)
        !           476: LSetSides:
        !           477:  faddp st(2),st(0)
        !           478:  fcomp ds:dword ptr[12+edx]
        !           479:  xor ecx,ecx
        !           480:  fnstsw ax
        !           481:  fcomp ds:dword ptr[12+edx]
        !           482:  and ah,1
        !           483:  xor ah,1
        !           484:  add cl,ah
        !           485:  fnstsw ax
        !           486:  and ah,1
        !           487:  add ah,ah
        !           488:  add cl,ah
        !           489:  pop ebx
        !           490:  mov eax,ecx
        !           491:  ret
        !           492: Lerror:
        !           493:  call near ptr _BOPS_Error
        !           494: _TEXT ENDS
        !           495:  END

unix.superglobalmegacorp.com

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