|
|
1.1 ! root 1: .long ! 2: .dc.l codeend-_p_base_start ! 3: _p_base_start:: ! 4: .gpu ! 5: .org $f1b140 ! 6: ! 7: S_LE .ccdef $14 ; PL ! 8: U_LE .ccdef $04 ; CC ! 9: S_GT .ccdef $18 ; MI ! 10: U_GT .ccdef $08 ; CS ! 11: ! 12: S_LT .ccdef $15 ; PL+NE ! 13: U_LT .ccdef $05 ; CC+NE ! 14: ! 15: FP .equr r14 ! 16: scratch .equr r10 ! 17: scratch2 .equr r11 ! 18: RETURNVALUE .equr r29 ! 19: RETURNPOINT .equr r28 ! 20: MATH_A .equr r27 ! 21: MATH_B .equr r26 ! 22: MATH_C .equr r25 ! 23: MATH_RTS .equr r24 ! 24: MATH_SIGN .equr r23 ! 25: ! 26: movei #codestart,scratch ! 27: jump T,(scratch) ! 28: nop ! 29: ! 30: ! 31: GPU_IMUL: ! 32: move MATH_A,MATH_SIGN ! 33: xor MATH_B,MATH_SIGN ! 34: abs MATH_A ! 35: abs MATH_B ! 36: move MATH_A,MATH_C ! 37: mult MATH_B,MATH_C ! 38: move MATH_B,scratch2 ! 39: shrq #16,scratch2 ! 40: mult MATH_A,scratch2 ! 41: shlq #16,scratch2 ! 42: add scratch2,MATH_C ! 43: move MATH_A,scratch2 ! 44: shrq #16,scratch2 ! 45: mult MATH_B,scratch2 ! 46: shlq #16,scratch2 ! 47: add scratch2, MATH_C ! 48: btst #31,MATH_SIGN ! 49: jump EQ,(MATH_RTS) ! 50: nop ! 51: jump T,(MATH_RTS) ! 52: neg MATH_C ! 53: ! 54: ! 55: ;============================================================================= ! 56: _PB_PointInSubsector:: ; subsector_t * (fixed_t x, fixed_t y) ! 57: ;============================================================================= ! 58: .extern _nodes, _numnodes, _subsectors ! 59: ! 60: pi_node .equr r15 ! 61: pi_x .equr r16 ! 62: pi_y .equr r17 ! 63: pi_side .equr r18 ! 64: pi_nodebase .equr r19 ! 65: pi_nodex .equr r20 ! 66: pi_nodey .equr r21 ! 67: pi_nodedx .equr r22 ! 68: pi_nodedy .equr r23 ! 69: ! 70: load (FP),pi_x ! 71: load (FP+1),pi_y ! 72: ! 73: movei #_nodes,pi_nodebase ! 74: load (pi_nodebase),pi_nodebase ! 75: ! 76: movei #_numnodes,pi_node ! 77: load (pi_node),pi_node ! 78: subq #1,pi_node ; nodenum = numnodes-1 ! 79: ! 80: nodeloop: ! 81: btst #15,pi_node ! 82: jr EQ,notsubsec ! 83: nop ! 84: ! 85: bclr #15,pi_node ! 86: moveq #12,scratch ! 87: mult scratch,pi_node ! 88: movei #_subsectors,RETURNVALUE ! 89: load (RETURNVALUE),RETURNVALUE ! 90: ! 91: jump T,(RETURNPOINT) ! 92: add pi_node,RETURNVALUE ; delay slot ! 93: ! 94: notsubsec: ! 95: ! 96: movei #56,scratch ! 97: mult scratch,pi_node ! 98: add pi_nodebase,pi_node ! 99: ; ! 100: ; pi_side = pointonnodeside (x,y,node) ! 101: ; ! 102: load (pi_node),pi_nodex ! 103: load (pi_node+1),pi_nodey ! 104: load (pi_node+2),pi_nodedx ! 105: load (pi_node+3),pi_nodedy ! 106: ! 107: move pi_x,scratch ! 108: sub pi_nodex,scratch ! 109: ! 110: move pi_y,scratch2 ! 111: sub pi_nodey,scratch2 ! 112: ! 113: sharq #16,scratch ! 114: sharq #16,scratch2 ! 115: sharq #16,pi_nodedx ! 116: sharq #16,pi_nodedy ! 117: ! 118: imult pi_nodedy,scratch ! 119: imult pi_nodedx,scratch2 ! 120: ! 121: cmp scratch2,scratch ! 122: jr S_GT,backside ! 123: nop ! 124: ! 125: movei #48,scratch ! 126: jr T,gotside ! 127: nop ! 128: backside: ! 129: movei #52,scratch ! 130: gotside: ! 131: ; got a subsector, return &subsectors[nodenum&~NF_SUBSECTOR]; ! 132: ! 133: ; ! 134: ; nodenum = node->children[side] ! 135: ; ! 136: add scratch,pi_node ! 137: movei #nodeloop,scratch ! 138: jump T,(scratch) ! 139: load (pi_node),pi_node ! 140: ! 141: ! 142: ;============================================================================== ! 143: _PB_UnsetThingPosition:: ! 144: ;============================================================================== ! 145: us_thing .equr r15 ! 146: us_blockx .equr r16 ! 147: us_blocky .equr r17 ! 148: us_next .equr r18 ! 149: us_prev .equr r19 ! 150: ! 151: load (FP),us_thing ! 152: ! 153: load (us_thing+6),us_next ; thing->snext ! 154: load (us_thing+7),us_prev ; thing->sprev ! 155: ! 156: or us_next,us_next ! 157: jr EQ,nosnext ! 158: nop ! 159: moveq #7*4,scratch ! 160: add us_next,scratch ; thing->snext->sprev ! 161: load (scratch),r31 ; DSP BUG ! 162: store us_prev,(scratch) ! 163: nosnext: ! 164: ! 165: or us_prev,us_prev ! 166: jr EQ,nosprev ! 167: nop ! 168: moveq #6*4,scratch ! 169: add us_prev,scratch ; thing->sprev->snext ! 170: load (scratch),r31 ; DSP BUG ! 171: store us_next,(scratch) ! 172: jr T,slinksdone ! 173: nop ! 174: ! 175: nosprev: ! 176: ! 177: load (us_thing+13),scratch ; thing->subsector ! 178: load (scratch),scratch ; thing->subsector->sector ! 179: movei #20*4,scratch2 ! 180: add scratch2,scratch ; thing->subsector->sector->thinglist ! 181: load (scratch),r31 ; DSP BUG ! 182: store us_next,(scratch) ! 183: ! 184: slinksdone: ! 185: ! 186: load (us_thing+25),scratch ; thing->flags ! 187: btst #4,scratch ; MF_NOBLOCKMAP ! 188: jump NE,(RETURNPOINT) ! 189: nop ! 190: ! 191: ; ! 192: ; block links ! 193: ; ! 194: load (us_thing+11),us_next ! 195: load (us_thing+12),us_prev ! 196: ! 197: or us_next,us_next ! 198: jr EQ,nobnext ! 199: nop ! 200: movei #12*4,scratch ! 201: add us_next,scratch ; thing->bnext->bprev ! 202: load (scratch),r31 ; DSP BUG ! 203: store us_prev,(scratch) ! 204: nobnext: ! 205: ! 206: or us_prev,us_prev ! 207: jr EQ,nobprev ! 208: nop ! 209: movei #11*4,scratch ! 210: add us_prev,scratch ! 211: load (scratch),r31 ; DSP BUG ! 212: store us_next,(scratch) ! 213: jump T,(RETURNPOINT) ! 214: nop ! 215: ! 216: nobprev: ! 217: ! 218: load (us_thing+3),us_blockx ! 219: movei #_bmaporgx,scratch ! 220: load (scratch),scratch ! 221: sub scratch,us_blockx ! 222: shrq #23,us_blockx ! 223: ! 224: load (us_thing+4),us_blocky ! 225: movei #_bmaporgy,scratch ! 226: load (scratch),scratch ! 227: sub scratch,us_blocky ! 228: shrq #23,us_blocky ! 229: ! 230: movei #_bmapwidth,scratch ! 231: load (scratch),scratch ! 232: mult scratch,us_blocky ! 233: add us_blockx,us_blocky ! 234: shlq #2,us_blocky ; int width table ! 235: ! 236: movei #_blocklinks,scratch ! 237: load (scratch),scratch ! 238: ! 239: add us_blocky,scratch ! 240: ! 241: load (scratch),r31 ; DSP BUG ! 242: store us_next,(scratch) ! 243: ! 244: jump T,(RETURNPOINT) ! 245: nop ! 246: ! 247: ! 248: ! 249: codestart: ! 250: ; unfuckdsp output -- add loads before external dsp stores ! 251: ! 252: ;==================== ! 253: _P_RunMobjBase2:: ! 254: ;2 dag registers 0 register variables ! 255: ;localoffset:4 regoffset:4 argoffset:16 ! 256: ;==================== ! 257: subq #16,FP ! 258: ! 259: movei #_activemobjs,r0 ! 260: moveq #0,r1 ! 261: load (r0),r30 ; FUCKING dsp! ! 262: or r30,r30 ; FUCKING dsp! ! 263: store r1,(r0) ! 264: movei #_basething,r0 ! 265: movei #_mobjhead+4,r1 ! 266: load (r1),r1 ! 267: load (r0),r30 ; FUCKING dsp! ! 268: or r30,r30 ; FUCKING dsp! ! 269: store r1,(r0) ! 270: ! 271: movei #L75,r0 ! 272: jump T,(r0) ! 273: nop ! 274: ! 275: L72: ! 276: ! 277: movei #_basething,r0 ! 278: load (r0),r0 ! 279: movei #128,r1 ! 280: add r1,r0 ! 281: load (r0),r0 ! 282: moveq #0,r1 ! 283: cmp r0,r1 ! 284: movei #L77,scratch ! 285: jump EQ,(scratch) ! 286: nop ! 287: ! 288: movei #L73,r0 ! 289: jump T,(r0) ! 290: nop ! 291: ! 292: L77: ! 293: ! 294: movei #_activemobjs,r0 ! 295: load (r0),r1 ! 296: addq #1,r1 ! 297: load (r0),r30 ; FUCKING dsp! ! 298: or r30,r30 ; FUCKING dsp! ! 299: store r1,(r0) ! 300: movei #_basething,r0 ! 301: load (r0),r0 ! 302: addq #8,r0 ! 303: moveq #0,r1 ! 304: load (r0),r30 ; FUCKING dsp! ! 305: or r30,r30 ; FUCKING dsp! ! 306: store r1,(r0) ! 307: ! 308: movei #_basething,r0 ! 309: load (r0),r0 ! 310: store r0,(FP) ; arg[] ! 311: movei #_P_MobjThinker,r0 ! 312: store r28,(FP+1) ; push ;(RETURNPOINT) ! 313: movei #L79,RETURNPOINT ! 314: jump T,(r0) ! 315: nop ; delay slot ! 316: L79: ! 317: load (FP+1), RETURNPOINT ; pop ! 318: ! 319: L73: ! 320: ! 321: movei #_basething,r0 ! 322: load (r0),r1 ! 323: addq #4,r1 ! 324: load (r1),r1 ! 325: load (r0),r30 ; FUCKING dsp! ! 326: or r30,r30 ; FUCKING dsp! ! 327: store r1,(r0) ! 328: ! 329: L75: ! 330: ! 331: movei #_basething,r0 ! 332: load (r0),r0 ! 333: movei #_mobjhead,r1 ! 334: cmp r0,r1 ! 335: movei #L72,scratch ! 336: jump NE,(scratch) ! 337: nop ! 338: ! 339: ! 340: L71: ! 341: jump T,(RETURNPOINT) ! 342: addq #16,FP ; delay slot ! 343: ! 344: ;==================== ! 345: _P_XYMovement:: ! 346: ;4 dag registers 4 register variables ! 347: ;localoffset:8 regoffset:8 argoffset:44 ! 348: ;==================== ! 349: movei #44,scratch ! 350: sub scratch,FP ! 351: ! 352: load (FP+11),r0 ; local mo ! 353: movei #72,r1 ! 354: move r0,r2 ! 355: add r1,r2 ! 356: load (r2),r1 ! 357: movei #-8,r2 ! 358: and r2,r1 ! 359: move r1,r15 ;(xuse) ! 360: move r1,r17 ;(xleft) ! 361: movei #76,r1 ! 362: add r1,r0 ! 363: load (r0),r0 ! 364: and r2,r0 ! 365: move r0,r16 ;(yuse) ! 366: move r0,r18 ;(yleft) ! 367: ! 368: movei #L82,r0 ! 369: jump T,(r0) ! 370: nop ! 371: ! 372: L81: ! 373: ! 374: moveq #1,r0 ! 375: move r15,r1 ;(xuse) ! 376: sha r0,r1 ! 377: move r1,r15 ;(xuse) ! 378: move r16,r1 ;(yuse) ! 379: sha r0,r1 ! 380: move r1,r16 ;(yuse) ! 381: ! 382: L82: ! 383: ! 384: movei #1048576,r0 ! 385: cmp r15,r0 ;(xuse) ! 386: movei #L81,scratch ! 387: jump MI,(scratch) ! 388: nop ! 389: movei #-1048576,r1 ! 390: cmp r15,r1 ;(xuse) ! 391: movei #L81,scratch ! 392: jump S_LT,(scratch) ! 393: nop ! 394: cmp r16,r0 ;(yuse) ! 395: movei #L81,scratch ! 396: jump MI,(scratch) ! 397: nop ! 398: cmp r16,r1 ;(yuse) ! 399: movei #L81,scratch ! 400: jump S_LT,(scratch) ! 401: nop ! 402: ! 403: movei #L85,r0 ! 404: jump T,(r0) ! 405: nop ! 406: ! 407: L84: ! 408: ! 409: move r17,r0 ;(xleft) ! 410: sub r15,r0 ;(xuse) ! 411: move r0,r17 ;(xleft) ! 412: move r18,r0 ;(yleft) ! 413: sub r16,r0 ;(yuse) ! 414: move r0,r18 ;(yleft) ! 415: load (FP+11),r0 ; local mo ! 416: move r0,r1 ! 417: addq #12,r1 ! 418: load (r1),r1 ! 419: add r15,r1 ;(xuse) ! 420: store r1,(FP) ; arg[] ! 421: addq #16,r0 ! 422: load (r0),r0 ! 423: add r16,r0 ;(yuse) ! 424: or r0,scratch ; scoreboard bug ! 425: store r0,(FP+1) ; arg[] ! 426: movei #_PB_TryMove,r0 ! 427: store r28,(FP+2) ; push ;(RETURNPOINT) ! 428: store r18,(FP+3) ; push ;(yleft) ! 429: store r17,(FP+4) ; push ;(xleft) ! 430: store r16,(FP+5) ; push ;(yuse) ! 431: movei #L105,RETURNPOINT ! 432: jump T,(r0) ! 433: store r15,(FP+6) ; delay slot push ;(xuse) ! 434: L105: ! 435: load (FP+3),r18 ; pop ;(yleft) ! 436: load (FP+4),r17 ; pop ;(xleft) ! 437: load (FP+5),r16 ; pop ;(yuse) ! 438: load (FP+6),r15 ; pop ;(xuse) ! 439: load (FP+2), RETURNPOINT ; pop ! 440: moveq #0,r0 ! 441: cmp r29,r0 ;(RETURNVALUE) ! 442: movei #L87,scratch ! 443: jump NE,(scratch) ! 444: nop ! 445: ! 446: load (FP+11),r0 ; local mo ! 447: movei #100,r1 ! 448: add r1,r0 ! 449: load (r0),r0 ! 450: movei #16777216,r1 ! 451: and r1,r0 ! 452: moveq #0,r1 ! 453: cmp r0,r1 ! 454: movei #L89,scratch ! 455: jump EQ,(scratch) ! 456: nop ! 457: ! 458: load (FP+11),r0 ; local mo ! 459: movei #132,r1 ! 460: add r1,r0 ! 461: movei #_hitthing,r1 ! 462: load (r1),r1 ! 463: load (r0),r30 ; FUCKING dsp! ! 464: or r30,r30 ; FUCKING dsp! ! 465: store r1,(r0) ! 466: ! 467: load (FP+11),r0 ; local mo ! 468: addq #8,r0 ! 469: movei #_L_SkullBash,r1 ! 470: load (r0),r30 ; FUCKING dsp! ! 471: or r30,r30 ; FUCKING dsp! ! 472: store r1,(r0) ! 473: ! 474: L89: ! 475: ! 476: load (FP+11),r0 ; local mo ! 477: movei #100,r1 ! 478: add r1,r0 ! 479: load (r0),r0 ! 480: movei #65536,r1 ! 481: and r1,r0 ! 482: moveq #0,r1 ! 483: cmp r0,r1 ! 484: movei #L91,scratch ! 485: jump EQ,(scratch) ! 486: nop ! 487: ! 488: movei #_ceilingline,r0 ! 489: load (r0),r0 ! 490: move r0,r1 ! 491: moveq #0,r2 ! 492: cmp r1,r2 ! 493: movei #L93,scratch ! 494: jump EQ,(scratch) ! 495: nop ! 496: movei #60,r1 ! 497: add r1,r0 ! 498: load (r0),r0 ! 499: move r0,r1 ! 500: cmp r1,r2 ! 501: movei #L93,scratch ! 502: jump EQ,(scratch) ! 503: nop ! 504: addq #12,r0 ! 505: load (r0),r0 ! 506: movei #-1,r1 ! 507: cmp r0,r1 ! 508: movei #L93,scratch ! 509: jump NE,(scratch) ! 510: nop ! 511: ! 512: load (FP+11),r0 ; local mo ! 513: addq #8,r0 ! 514: movei #_P_RemoveMobj,r1 ! 515: load (r0),r30 ; FUCKING dsp! ! 516: or r30,r30 ; FUCKING dsp! ! 517: store r1,(r0) ! 518: ! 519: ! 520: movei #L80,r0 ! 521: jump T,(r0) ! 522: nop ! 523: ! 524: L93: ! 525: ! 526: load (FP+11),r0 ; local mo ! 527: movei #132,r1 ! 528: add r1,r0 ! 529: movei #_hitthing,r1 ! 530: load (r1),r1 ! 531: load (r0),r30 ; FUCKING dsp! ! 532: or r30,r30 ; FUCKING dsp! ! 533: store r1,(r0) ! 534: ! 535: load (FP+11),r0 ; local mo ! 536: addq #8,r0 ! 537: movei #_L_MissileHit,r1 ! 538: load (r0),r30 ; FUCKING dsp! ! 539: or r30,r30 ; FUCKING dsp! ! 540: store r1,(r0) ! 541: ! 542: ! 543: movei #L80,r0 ! 544: jump T,(r0) ! 545: nop ! 546: ! 547: L91: ! 548: ! 549: load (FP+11),r0 ; local mo ! 550: movei #76,r1 ! 551: move r0,r2 ! 552: add r1,r2 ! 553: moveq #0,r1 ! 554: load (r2),r30 ; FUCKING dsp! ! 555: or r30,r30 ; FUCKING dsp! ! 556: store r1,(r2) ! 557: movei #72,r2 ! 558: add r2,r0 ! 559: load (r0),r30 ; FUCKING dsp! ! 560: or r30,r30 ; FUCKING dsp! ! 561: store r1,(r0) ! 562: ! 563: ! 564: movei #L80,r0 ! 565: jump T,(r0) ! 566: nop ! 567: ! 568: L87: ! 569: ! 570: L85: ! 571: ! 572: moveq #0,r0 ! 573: cmp r17,r0 ;(xleft) ! 574: movei #L84,scratch ! 575: jump NE,(scratch) ! 576: nop ! 577: cmp r18,r0 ;(yleft) ! 578: movei #L84,scratch ! 579: jump NE,(scratch) ! 580: nop ! 581: ! 582: load (FP+11),r0 ; local mo ! 583: movei #100,r1 ! 584: add r1,r0 ! 585: load (r0),r0 ! 586: movei #16842752,r1 ! 587: and r1,r0 ! 588: moveq #0,r1 ! 589: cmp r0,r1 ! 590: movei #L95,scratch ! 591: jump EQ,(scratch) ! 592: nop ! 593: ! 594: ! 595: movei #L80,r0 ! 596: jump T,(r0) ! 597: nop ! 598: ! 599: L95: ! 600: ! 601: load (FP+11),r0 ; local mo ! 602: move r0,r1 ! 603: addq #20,r1 ! 604: load (r1),r1 ! 605: movei #56,r2 ! 606: add r2,r0 ! 607: load (r0),r0 ! 608: cmp r1,r0 ! 609: movei #L97,scratch ! 610: jump PL,(scratch) ! 611: nop ! 612: ! 613: ! 614: movei #L80,r0 ! 615: jump T,(r0) ! 616: nop ! 617: ! 618: L97: ! 619: ! 620: load (FP+11),r0 ; local mo ! 621: movei #100,r1 ! 622: add r1,r0 ! 623: load (r0),r0 ! 624: movei #1048576,r1 ! 625: and r1,r0 ! 626: moveq #0,r1 ! 627: cmp r0,r1 ! 628: movei #L99,scratch ! 629: jump EQ,(scratch) ! 630: nop ! 631: ! 632: load (FP+11),r0 ; local mo ! 633: movei #56,r1 ! 634: move r0,r2 ! 635: add r1,r2 ! 636: load (r2),r1 ! 637: movei #52,r2 ! 638: add r2,r0 ! 639: load (r0),r0 ! 640: load (r0),r0 ! 641: load (r0),r0 ! 642: cmp r1,r0 ! 643: movei #L101,scratch ! 644: jump EQ,(scratch) ! 645: nop ! 646: ! 647: ! 648: movei #L80,r0 ! 649: jump T,(r0) ! 650: nop ! 651: ! 652: L101: ! 653: ! 654: L99: ! 655: ! 656: load (FP+11),r0 ; local mo ! 657: movei #72,r1 ! 658: move r0,r2 ! 659: add r1,r2 ! 660: load (r2),r1 ! 661: movei #-4096,r2 ! 662: cmp r1,r2 ! 663: movei #L103,scratch ! 664: jump PL,(scratch) ! 665: nop ! 666: movei #4096,r3 ! 667: cmp r1,r3 ! 668: movei #L103,scratch ! 669: jump EQ,(scratch) ! 670: nop ! 671: jump MI,(scratch) ! 672: nop ! 673: movei #76,r1 ! 674: add r1,r0 ! 675: load (r0),r0 ! 676: cmp r0,r2 ! 677: movei #L103,scratch ! 678: jump PL,(scratch) ! 679: nop ! 680: cmp r0,r3 ! 681: movei #L103,scratch ! 682: jump EQ,(scratch) ! 683: nop ! 684: jump MI,(scratch) ! 685: nop ! 686: ! 687: load (FP+11),r0 ; local mo ! 688: movei #72,r1 ! 689: add r1,r0 ! 690: moveq #0,r1 ! 691: load (r0),r30 ; FUCKING dsp! ! 692: or r30,r30 ; FUCKING dsp! ! 693: store r1,(r0) ! 694: ! 695: load (FP+11),r0 ; local mo ! 696: movei #76,r1 ! 697: add r1,r0 ! 698: moveq #0,r1 ! 699: load (r0),r30 ; FUCKING dsp! ! 700: or r30,r30 ; FUCKING dsp! ! 701: store r1,(r0) ! 702: ! 703: movei #L104,r0 ! 704: jump T,(r0) ! 705: nop ! 706: ! 707: L103: ! 708: ! 709: load (FP+11),r0 ; local mo ! 710: movei #72,r1 ! 711: add r1,r0 ! 712: movei #210,r1 ! 713: load (r0),r2 ! 714: sharq #8,r2 ! 715: move r1,MATH_A ! 716: movei #L106,MATH_RTS ! 717: movei #GPU_IMUL,scratch ! 718: jump T,(scratch) ! 719: move r2,MATH_B ; delay slot ! 720: L106: ! 721: move MATH_C,r1 ! 722: load (r0),r30 ; FUCKING dsp! ! 723: or r30,r30 ; FUCKING dsp! ! 724: store r1,(r0) ! 725: ! 726: load (FP+11),r0 ; local mo ! 727: movei #76,r1 ! 728: add r1,r0 ! 729: movei #210,r1 ! 730: load (r0),r2 ! 731: sharq #8,r2 ! 732: move r1,MATH_A ! 733: movei #L107,MATH_RTS ! 734: movei #GPU_IMUL,scratch ! 735: jump T,(scratch) ! 736: move r2,MATH_B ; delay slot ! 737: L107: ! 738: move MATH_C,r1 ! 739: load (r0),r30 ; FUCKING dsp! ! 740: or r30,r30 ; FUCKING dsp! ! 741: store r1,(r0) ! 742: ! 743: L104: ! 744: ! 745: ! 746: L80: ! 747: movei #44,scratch ! 748: jump T,(RETURNPOINT) ! 749: add scratch,FP ; delay slot ! 750: ! 751: ;==================== ! 752: _P_FloatChange:: ! 753: ;5 dag registers 3 register variables ! 754: ;localoffset:0 regoffset:4 argoffset:4 ! 755: ;==================== ! 756: subq #4,FP ! 757: ! 758: load (FP+1),r0 ; local mo ! 759: movei #116,r1 ! 760: move r0,r2 ! 761: add r1,r2 ! 762: load (r2),r1 ! 763: moveq #12,r2 ! 764: add r2,r1 ! 765: load (r1),r1 ! 766: add r2,r0 ! 767: load (r0),r0 ! 768: sub r0,r1 ! 769: move r1,r15 ;(dx) ! 770: moveq #0,r0 ! 771: cmp r15,r0 ;(dx) ! 772: movei #L109,scratch ! 773: jump EQ,(scratch) ! 774: nop ! 775: jump MI,(scratch) ! 776: nop ! 777: ! 778: move r15,r0 ;(dx) ! 779: neg r0 ! 780: move r0,r15 ;(dx) ! 781: ! 782: L109: ! 783: ! 784: load (FP+1),r0 ; local mo ! 785: movei #116,r1 ! 786: move r0,r2 ! 787: add r1,r2 ! 788: load (r2),r1 ! 789: moveq #16,r2 ! 790: add r2,r1 ! 791: load (r1),r1 ! 792: add r2,r0 ! 793: load (r0),r0 ! 794: sub r0,r1 ! 795: move r1,r16 ;(dy) ! 796: moveq #0,r0 ! 797: cmp r16,r0 ;(dy) ! 798: movei #L111,scratch ! 799: jump EQ,(scratch) ! 800: nop ! 801: jump MI,(scratch) ! 802: nop ! 803: ! 804: move r16,r0 ;(dy) ! 805: neg r0 ! 806: move r0,r16 ;(dy) ! 807: ! 808: L111: ! 809: ! 810: cmp r15,r16 ;(dx)(dy) ! 811: movei #L113,scratch ! 812: jump EQ,(scratch) ! 813: nop ! 814: jump MI,(scratch) ! 815: nop ! 816: ! 817: move FP,r0 ; &dist ! 818: move r15,r1 ;(dx) ! 819: add r16,r1 ;(dy) ! 820: move r15,r2 ;(dx) ! 821: sharq #1,r2 ! 822: sub r2,r1 ! 823: load (r0),r30 ; FUCKING dsp! ! 824: or r30,r30 ; FUCKING dsp! ! 825: store r1,(r0) ! 826: ! 827: movei #L114,r0 ! 828: jump T,(r0) ! 829: nop ! 830: ! 831: L113: ! 832: ! 833: move FP,r0 ; &dist ! 834: move r15,r1 ;(dx) ! 835: add r16,r1 ;(dy) ! 836: move r16,r2 ;(dy) ! 837: sharq #1,r2 ! 838: sub r2,r1 ! 839: load (r0),r30 ; FUCKING dsp! ! 840: or r30,r30 ; FUCKING dsp! ! 841: store r1,(r0) ! 842: ! 843: L114: ! 844: ! 845: load (FP+1),r0 ; local mo ! 846: movei #116,r1 ! 847: move r0,r2 ! 848: add r1,r2 ! 849: load (r2),r1 ! 850: moveq #20,r2 ! 851: add r2,r1 ! 852: load (r1),r1 ! 853: movei #68,r3 ! 854: move r0,r4 ! 855: add r3,r4 ! 856: load (r4),r3 ! 857: sharq #1,r3 ! 858: add r3,r1 ! 859: add r2,r0 ! 860: load (r0),r0 ! 861: sub r0,r1 ! 862: move r1,r17 ;(delta) ! 863: moveq #0,r0 ! 864: cmp r17,r0 ;(delta) ! 865: movei #L115,scratch ! 866: jump EQ,(scratch) ! 867: nop ! 868: jump MI,(scratch) ! 869: nop ! 870: load (FP),r0 ; local dist ! 871: moveq #3,r1 ! 872: move r1,MATH_A ! 873: movei #L119,MATH_RTS ! 874: movei #GPU_IMUL,scratch ! 875: jump T,(scratch) ! 876: move r17,MATH_B ; delay slot ;(delta) ! 877: L119: ! 878: move MATH_C,r1 ! 879: neg r1 ! 880: cmp r0,r1 ! 881: movei #L115,scratch ! 882: jump EQ,(scratch) ! 883: nop ! 884: jump MI,(scratch) ! 885: nop ! 886: ! 887: load (FP+1),r0 ; local mo ! 888: addq #20,r0 ! 889: load (r0),r1 ! 890: movei #524288,r2 ! 891: sub r2,r1 ! 892: load (r0),r30 ; FUCKING dsp! ! 893: or r30,r30 ; FUCKING dsp! ! 894: store r1,(r0) ! 895: ! 896: movei #L116,r0 ! 897: jump T,(r0) ! 898: nop ! 899: ! 900: L115: ! 901: ! 902: moveq #0,r0 ! 903: cmp r17,r0 ;(delta) ! 904: movei #L117,scratch ! 905: jump PL,(scratch) ! 906: nop ! 907: load (FP),r0 ; local dist ! 908: moveq #3,r1 ! 909: move r1,MATH_A ! 910: movei #L120,MATH_RTS ! 911: movei #GPU_IMUL,scratch ! 912: jump T,(scratch) ! 913: move r17,MATH_B ; delay slot ;(delta) ! 914: L120: ! 915: move MATH_C,r1 ! 916: cmp r0,r1 ! 917: movei #L117,scratch ! 918: jump EQ,(scratch) ! 919: nop ! 920: jump MI,(scratch) ! 921: nop ! 922: ! 923: load (FP+1),r0 ; local mo ! 924: addq #20,r0 ! 925: load (r0),r1 ! 926: movei #524288,r2 ! 927: add r2,r1 ! 928: load (r0),r30 ; FUCKING dsp! ! 929: or r30,r30 ; FUCKING dsp! ! 930: store r1,(r0) ! 931: ! 932: L117: ! 933: ! 934: L116: ! 935: ! 936: ! 937: L108: ! 938: jump T,(RETURNPOINT) ! 939: addq #4,FP ; delay slot ! 940: ! 941: ;==================== ! 942: _P_ZMovement:: ! 943: ;4 dag registers 0 register variables ! 944: ;localoffset:4 regoffset:4 argoffset:24 ! 945: ;==================== ! 946: subq #24,FP ! 947: ! 948: load (FP+6),r0 ; local mo ! 949: move r0,r1 ! 950: addq #20,r1 ! 951: load (r1),r2 ! 952: movei #80,r3 ! 953: add r3,r0 ! 954: load (r0),r0 ! 955: add r0,r2 ! 956: load (r1),r30 ; FUCKING dsp! ! 957: or r30,r30 ; FUCKING dsp! ! 958: store r2,(r1) ! 959: ! 960: load (FP+6),r0 ; local mo ! 961: movei #100,r1 ! 962: move r0,r2 ! 963: add r1,r2 ! 964: load (r2),r1 ! 965: movei #16384,r2 ! 966: and r2,r1 ! 967: moveq #0,r2 ! 968: cmp r1,r2 ! 969: movei #L122,scratch ! 970: jump EQ,(scratch) ! 971: nop ! 972: movei #116,r1 ! 973: add r1,r0 ! 974: load (r0),r0 ! 975: moveq #0,r1 ! 976: cmp r0,r1 ! 977: movei #L122,scratch ! 978: jump EQ,(scratch) ! 979: nop ! 980: ! 981: load (FP+6),r0 ; local mo ! 982: store r0,(FP) ; arg[] ! 983: movei #_P_FloatChange,r0 ! 984: store r28,(FP+1) ; push ;(RETURNPOINT) ! 985: movei #L140,RETURNPOINT ! 986: jump T,(r0) ! 987: nop ; delay slot ! 988: L140: ! 989: load (FP+1), RETURNPOINT ; pop ! 990: ! 991: L122: ! 992: ! 993: load (FP+6),r0 ; local mo ! 994: move r0,r1 ! 995: addq #20,r1 ! 996: load (r1),r1 ! 997: movei #56,r2 ! 998: add r2,r0 ! 999: load (r0),r0 ! 1000: cmp r1,r0 ! 1001: movei #L124,scratch ! 1002: jump MI,(scratch) ! 1003: nop ! 1004: ! 1005: load (FP+6),r0 ; local mo ! 1006: movei #80,r1 ! 1007: add r1,r0 ! 1008: load (r0),r0 ! 1009: moveq #0,r1 ! 1010: cmp r0,r1 ! 1011: movei #L126,scratch ! 1012: jump EQ,(scratch) ! 1013: nop ! 1014: jump MI,(scratch) ! 1015: nop ! 1016: ! 1017: load (FP+6),r0 ; local mo ! 1018: movei #80,r1 ! 1019: add r1,r0 ! 1020: moveq #0,r1 ! 1021: load (r0),r30 ; FUCKING dsp! ! 1022: or r30,r30 ; FUCKING dsp! ! 1023: store r1,(r0) ! 1024: ! 1025: L126: ! 1026: ! 1027: load (FP+6),r0 ; local mo ! 1028: move r0,r1 ! 1029: addq #20,r1 ! 1030: movei #56,r2 ! 1031: add r2,r0 ! 1032: load (r0),r0 ! 1033: load (r1),r30 ; FUCKING dsp! ! 1034: or r30,r30 ; FUCKING dsp! ! 1035: store r0,(r1) ! 1036: ! 1037: load (FP+6),r0 ; local mo ! 1038: movei #100,r1 ! 1039: add r1,r0 ! 1040: load (r0),r0 ! 1041: movei #65536,r1 ! 1042: and r1,r0 ! 1043: moveq #0,r1 ! 1044: cmp r0,r1 ! 1045: movei #L125,scratch ! 1046: jump EQ,(scratch) ! 1047: nop ! 1048: ! 1049: load (FP+6),r0 ; local mo ! 1050: addq #8,r0 ! 1051: movei #_P_ExplodeMissile,r1 ! 1052: load (r0),r30 ; FUCKING dsp! ! 1053: or r30,r30 ; FUCKING dsp! ! 1054: store r1,(r0) ! 1055: ! 1056: ! 1057: movei #L121,r0 ! 1058: jump T,(r0) ! 1059: nop ! 1060: ! 1061: L124: ! 1062: ! 1063: load (FP+6),r0 ; local mo ! 1064: movei #100,r1 ! 1065: add r1,r0 ! 1066: load (r0),r0 ! 1067: movei #512,r1 ! 1068: and r1,r0 ! 1069: moveq #0,r1 ! 1070: cmp r0,r1 ! 1071: movei #L130,scratch ! 1072: jump NE,(scratch) ! 1073: nop ! 1074: ! 1075: load (FP+6),r0 ; local mo ! 1076: movei #80,r1 ! 1077: add r1,r0 ! 1078: load (r0),r0 ! 1079: moveq #0,r1 ! 1080: cmp r0,r1 ! 1081: movei #L132,scratch ! 1082: jump NE,(scratch) ! 1083: nop ! 1084: ! 1085: load (FP+6),r0 ; local mo ! 1086: movei #80,r1 ! 1087: add r1,r0 ! 1088: movei #-524288,r1 ! 1089: load (r0),r30 ; FUCKING dsp! ! 1090: or r30,r30 ; FUCKING dsp! ! 1091: store r1,(r0) ! 1092: ! 1093: movei #L133,r0 ! 1094: jump T,(r0) ! 1095: nop ! 1096: ! 1097: L132: ! 1098: ! 1099: load (FP+6),r0 ; local mo ! 1100: movei #80,r1 ! 1101: add r1,r0 ! 1102: load (r0),r1 ! 1103: movei #262144,r2 ! 1104: sub r2,r1 ! 1105: load (r0),r30 ; FUCKING dsp! ! 1106: or r30,r30 ; FUCKING dsp! ! 1107: store r1,(r0) ! 1108: ! 1109: L133: ! 1110: ! 1111: L130: ! 1112: ! 1113: L125: ! 1114: ! 1115: load (FP+6),r0 ; local mo ! 1116: move r0,r1 ! 1117: addq #20,r1 ! 1118: load (r1),r1 ! 1119: movei #68,r2 ! 1120: move r0,r3 ! 1121: add r2,r3 ! 1122: load (r3),r2 ! 1123: add r2,r1 ! 1124: movei #60,r2 ! 1125: add r2,r0 ! 1126: load (r0),r0 ! 1127: cmp r1,r0 ! 1128: movei #L134,scratch ! 1129: jump PL,(scratch) ! 1130: nop ! 1131: ! 1132: load (FP+6),r0 ; local mo ! 1133: movei #80,r1 ! 1134: add r1,r0 ! 1135: load (r0),r0 ! 1136: moveq #0,r1 ! 1137: cmp r0,r1 ! 1138: movei #L136,scratch ! 1139: jump PL,(scratch) ! 1140: nop ! 1141: ! 1142: load (FP+6),r0 ; local mo ! 1143: movei #80,r1 ! 1144: add r1,r0 ! 1145: moveq #0,r1 ! 1146: load (r0),r30 ; FUCKING dsp! ! 1147: or r30,r30 ; FUCKING dsp! ! 1148: store r1,(r0) ! 1149: ! 1150: L136: ! 1151: ! 1152: load (FP+6),r0 ; local mo ! 1153: move r0,r1 ! 1154: addq #20,r1 ! 1155: movei #60,r2 ! 1156: move r0,r3 ! 1157: add r2,r3 ! 1158: load (r3),r2 ! 1159: movei #68,r3 ! 1160: add r3,r0 ! 1161: load (r0),r0 ! 1162: sub r0,r2 ! 1163: load (r1),r30 ; FUCKING dsp! ! 1164: or r30,r30 ; FUCKING dsp! ! 1165: store r2,(r1) ! 1166: ! 1167: load (FP+6),r0 ; local mo ! 1168: movei #100,r1 ! 1169: add r1,r0 ! 1170: load (r0),r0 ! 1171: movei #65536,r1 ! 1172: and r1,r0 ! 1173: moveq #0,r1 ! 1174: cmp r0,r1 ! 1175: movei #L138,scratch ! 1176: jump EQ,(scratch) ! 1177: nop ! 1178: ! 1179: load (FP+6),r0 ; local mo ! 1180: addq #8,r0 ! 1181: movei #_P_ExplodeMissile,r1 ! 1182: load (r0),r30 ; FUCKING dsp! ! 1183: or r30,r30 ; FUCKING dsp! ! 1184: store r1,(r0) ! 1185: ! 1186: ! 1187: movei #L121,r0 ! 1188: jump T,(r0) ! 1189: nop ! 1190: ! 1191: L138: ! 1192: ! 1193: L134: ! 1194: ! 1195: ! 1196: L121: ! 1197: jump T,(RETURNPOINT) ! 1198: addq #24,FP ; delay slot ! 1199: ! 1200: ;==================== ! 1201: _P_MobjThinker:: ! 1202: ;4 dag registers 2 register variables ! 1203: ;localoffset:4 regoffset:4 argoffset:32 ! 1204: ;==================== ! 1205: subq #32,FP ! 1206: ! 1207: load (FP+8),r0 ; local mobj ! 1208: movei #72,r1 ! 1209: move r0,r2 ! 1210: add r1,r2 ! 1211: load (r2),r1 ! 1212: moveq #0,r2 ! 1213: cmp r1,r2 ! 1214: movei #L144,scratch ! 1215: jump NE,(scratch) ! 1216: nop ! 1217: movei #76,r1 ! 1218: add r1,r0 ! 1219: load (r0),r0 ! 1220: cmp r0,r2 ! 1221: movei #L142,scratch ! 1222: jump EQ,(scratch) ! 1223: nop ! 1224: L144: ! 1225: ! 1226: load (FP+8),r0 ; local mobj ! 1227: store r0,(FP) ; arg[] ! 1228: movei #_P_XYMovement,r0 ! 1229: store r28,(FP+1) ; push ;(RETURNPOINT) ! 1230: store r16,(FP+2) ; push ;(state) ! 1231: movei #L158,RETURNPOINT ! 1232: jump T,(r0) ! 1233: store r15,(FP+3) ; delay slot push ;(st) ! 1234: L158: ! 1235: load (FP+2),r16 ; pop ;(state) ! 1236: load (FP+3),r15 ; pop ;(st) ! 1237: load (FP+1), RETURNPOINT ; pop ! 1238: ! 1239: load (FP+8),r0 ; local mobj ! 1240: addq #8,r0 ! 1241: load (r0),r0 ! 1242: moveq #0,r1 ! 1243: cmp r0,r1 ! 1244: movei #L145,scratch ! 1245: jump EQ,(scratch) ! 1246: nop ! 1247: ! 1248: ! 1249: movei #L141,r0 ! 1250: jump T,(r0) ! 1251: nop ! 1252: ! 1253: L145: ! 1254: ! 1255: L142: ! 1256: ! 1257: load (FP+8),r0 ; local mobj ! 1258: move r0,r1 ! 1259: addq #20,r1 ! 1260: load (r1),r1 ! 1261: movei #56,r2 ! 1262: move r0,r3 ! 1263: add r2,r3 ! 1264: load (r3),r2 ! 1265: cmp r1,r2 ! 1266: movei #L149,scratch ! 1267: jump NE,(scratch) ! 1268: nop ! 1269: movei #80,r1 ! 1270: add r1,r0 ! 1271: load (r0),r0 ! 1272: moveq #0,r1 ! 1273: cmp r0,r1 ! 1274: movei #L147,scratch ! 1275: jump EQ,(scratch) ! 1276: nop ! 1277: L149: ! 1278: ! 1279: load (FP+8),r0 ; local mobj ! 1280: store r0,(FP) ; arg[] ! 1281: movei #_P_ZMovement,r0 ! 1282: store r28,(FP+1) ; push ;(RETURNPOINT) ! 1283: store r16,(FP+2) ; push ;(state) ! 1284: movei #L159,RETURNPOINT ! 1285: jump T,(r0) ! 1286: store r15,(FP+3) ; delay slot push ;(st) ! 1287: L159: ! 1288: load (FP+2),r16 ; pop ;(state) ! 1289: load (FP+3),r15 ; pop ;(st) ! 1290: load (FP+1), RETURNPOINT ; pop ! 1291: ! 1292: load (FP+8),r0 ; local mobj ! 1293: addq #8,r0 ! 1294: load (r0),r0 ! 1295: moveq #0,r1 ! 1296: cmp r0,r1 ! 1297: movei #L150,scratch ! 1298: jump EQ,(scratch) ! 1299: nop ! 1300: ! 1301: ! 1302: movei #L141,r0 ! 1303: jump T,(r0) ! 1304: nop ! 1305: ! 1306: L150: ! 1307: ! 1308: L147: ! 1309: ! 1310: load (FP+8),r0 ; local mobj ! 1311: movei #92,r1 ! 1312: add r1,r0 ! 1313: load (r0),r0 ! 1314: movei #-1,r1 ! 1315: cmp r0,r1 ! 1316: movei #L152,scratch ! 1317: jump NE,(scratch) ! 1318: nop ! 1319: ! 1320: ! 1321: movei #L141,r0 ! 1322: jump T,(r0) ! 1323: nop ! 1324: ! 1325: L152: ! 1326: ! 1327: load (FP+8),r0 ; local mobj ! 1328: movei #92,r1 ! 1329: add r1,r0 ! 1330: load (r0),r1 ! 1331: subq #1,r1 ! 1332: load (r0),r30 ; FUCKING dsp! ! 1333: or r30,r30 ; FUCKING dsp! ! 1334: store r1,(r0) ! 1335: ! 1336: load (FP+8),r0 ; local mobj ! 1337: movei #92,r1 ! 1338: add r1,r0 ! 1339: load (r0),r0 ! 1340: moveq #0,r1 ! 1341: cmp r0,r1 ! 1342: movei #L154,scratch ! 1343: jump PL,(scratch) ! 1344: nop ! 1345: ! 1346: ! 1347: movei #L141,r0 ! 1348: jump T,(r0) ! 1349: nop ! 1350: ! 1351: L154: ! 1352: ! 1353: load (FP+8),r0 ; local mobj ! 1354: movei #96,r1 ! 1355: add r1,r0 ! 1356: load (r0),r0 ! 1357: addq #16,r0 ! 1358: load (r0),r0 ! 1359: move r0,r16 ;(state) ! 1360: moveq #0,r0 ! 1361: cmp r16,r0 ;(state) ! 1362: movei #L156,scratch ! 1363: jump NE,(scratch) ! 1364: nop ! 1365: ! 1366: load (FP+8),r0 ; local mobj ! 1367: addq #8,r0 ! 1368: movei #_P_RemoveMobj,r1 ! 1369: load (r0),r30 ; FUCKING dsp! ! 1370: or r30,r30 ; FUCKING dsp! ! 1371: store r1,(r0) ! 1372: ! 1373: ! 1374: movei #L141,r0 ! 1375: jump T,(r0) ! 1376: nop ! 1377: ! 1378: L156: ! 1379: ! 1380: moveq #28,r0 ! 1381: move r0,MATH_A ! 1382: movei #L160,MATH_RTS ! 1383: movei #GPU_IMUL,scratch ! 1384: jump T,(scratch) ! 1385: move r16,MATH_B ; delay slot ;(state) ! 1386: L160: ! 1387: move MATH_C,r0 ! 1388: movei #_states,r1 ! 1389: add r1,r0 ! 1390: move r0,r15 ;(st) ! 1391: load (FP+8),r0 ; local mobj ! 1392: movei #96,r1 ! 1393: add r1,r0 ! 1394: load (r0),r30 ; FUCKING dsp! ! 1395: or r30,r30 ; FUCKING dsp! ! 1396: store r15,(r0) ;(st) ! 1397: ! 1398: load (FP+8),r0 ; local mobj ! 1399: movei #92,r1 ! 1400: add r1,r0 ! 1401: move r15,r1 ;(st) ! 1402: addq #8,r1 ! 1403: load (r1),r1 ! 1404: load (r0),r30 ; FUCKING dsp! ! 1405: or r30,r30 ; FUCKING dsp! ! 1406: store r1,(r0) ! 1407: ! 1408: load (FP+8),r0 ; local mobj ! 1409: movei #36,r1 ! 1410: add r1,r0 ! 1411: load (r15),r1 ;(st) ! 1412: load (r0),r30 ; FUCKING dsp! ! 1413: or r30,r30 ; FUCKING dsp! ! 1414: store r1,(r0) ! 1415: ! 1416: load (FP+8),r0 ; local mobj ! 1417: movei #40,r1 ! 1418: add r1,r0 ! 1419: move r15,r1 ;(st) ! 1420: addq #4,r1 ! 1421: load (r1),r1 ! 1422: load (r0),r30 ; FUCKING dsp! ! 1423: or r30,r30 ; FUCKING dsp! ! 1424: store r1,(r0) ! 1425: ! 1426: load (FP+8),r0 ; local mobj ! 1427: addq #8,r0 ! 1428: move r15,r1 ;(st) ! 1429: addq #12,r1 ! 1430: load (r1),r1 ! 1431: load (r0),r30 ; FUCKING dsp! ! 1432: or r30,r30 ; FUCKING dsp! ! 1433: store r1,(r0) ! 1434: ! 1435: ! 1436: L141: ! 1437: jump T,(RETURNPOINT) ! 1438: addq #32,FP ; delay slot ! 1439: ! 1440: ;==================== ! 1441: _PB_TryMove:: ! 1442: ;3 dag registers 0 register variables ! 1443: ;localoffset:4 regoffset:12 argoffset:28 ! 1444: ;==================== ! 1445: subq #28,FP ! 1446: ! 1447: movei #_testx,r0 ! 1448: load (FP+7),r1 ; local tryx ! 1449: load (r0),r30 ; FUCKING dsp! ! 1450: or r30,r30 ; FUCKING dsp! ! 1451: store r1,(r0) ! 1452: movei #_testy,r0 ! 1453: load (FP+8),r1 ; local tryy ! 1454: load (r0),r30 ; FUCKING dsp! ! 1455: or r30,r30 ; FUCKING dsp! ! 1456: store r1,(r0) ! 1457: movei #_PB_CheckPosition,r0 ! 1458: store r28,(FP+3) ; push ;(RETURNPOINT) ! 1459: movei #L172,RETURNPOINT ! 1460: jump T,(r0) ! 1461: nop ; delay slot ! 1462: L172: ! 1463: load (FP+3), RETURNPOINT ; pop ! 1464: moveq #0,r0 ! 1465: cmp r29,r0 ;(RETURNVALUE) ! 1466: movei #L162,scratch ! 1467: jump NE,(scratch) ! 1468: nop ! 1469: ! 1470: moveq #0,r0 ! 1471: move r0,RETURNVALUE ! 1472: ! 1473: movei #L161,r0 ! 1474: jump T,(r0) ! 1475: nop ! 1476: ! 1477: L162: ! 1478: ! 1479: movei #_testceilingz,r0 ! 1480: load (r0),r0 ! 1481: movei #_testfloorz,r1 ! 1482: load (r1),r1 ! 1483: sub r1,r0 ! 1484: movei #_basething,r1 ! 1485: load (r1),r1 ! 1486: movei #68,r2 ! 1487: add r2,r1 ! 1488: load (r1),r1 ! 1489: cmp r0,r1 ! 1490: movei #L164,scratch ! 1491: jump EQ,(scratch) ! 1492: nop ! 1493: jump MI,(scratch) ! 1494: nop ! 1495: ! 1496: moveq #0,r0 ! 1497: move r0,RETURNVALUE ! 1498: ! 1499: movei #L161,r0 ! 1500: jump T,(r0) ! 1501: nop ! 1502: ! 1503: L164: ! 1504: ! 1505: movei #_testceilingz,r0 ! 1506: load (r0),r0 ! 1507: movei #_basething,r1 ! 1508: load (r1),r1 ! 1509: move r1,r2 ! 1510: addq #20,r2 ! 1511: load (r2),r2 ! 1512: sub r2,r0 ! 1513: movei #68,r2 ! 1514: add r2,r1 ! 1515: load (r1),r1 ! 1516: cmp r0,r1 ! 1517: movei #L166,scratch ! 1518: jump EQ,(scratch) ! 1519: nop ! 1520: jump MI,(scratch) ! 1521: nop ! 1522: ! 1523: moveq #0,r0 ! 1524: move r0,RETURNVALUE ! 1525: ! 1526: movei #L161,r0 ! 1527: jump T,(r0) ! 1528: nop ! 1529: ! 1530: L166: ! 1531: ! 1532: movei #_testfloorz,r0 ! 1533: load (r0),r0 ! 1534: movei #_basething,r1 ! 1535: load (r1),r1 ! 1536: addq #20,r1 ! 1537: load (r1),r1 ! 1538: sub r1,r0 ! 1539: movei #1572864,r1 ! 1540: cmp r0,r1 ! 1541: movei #L168,scratch ! 1542: jump PL,(scratch) ! 1543: nop ! 1544: ! 1545: moveq #0,r0 ! 1546: move r0,RETURNVALUE ! 1547: ! 1548: movei #L161,r0 ! 1549: jump T,(r0) ! 1550: nop ! 1551: ! 1552: L168: ! 1553: ! 1554: movei #_testflags,r0 ! 1555: load (r0),r0 ! 1556: movei #17408,r1 ! 1557: and r1,r0 ! 1558: moveq #0,r1 ! 1559: cmp r0,r1 ! 1560: movei #L170,scratch ! 1561: jump NE,(scratch) ! 1562: nop ! 1563: movei #_testfloorz,r0 ! 1564: load (r0),r0 ! 1565: movei #_testdropoffz,r1 ! 1566: load (r1),r1 ! 1567: sub r1,r0 ! 1568: movei #1572864,r1 ! 1569: cmp r0,r1 ! 1570: movei #L170,scratch ! 1571: jump PL,(scratch) ! 1572: nop ! 1573: ! 1574: moveq #0,r0 ! 1575: move r0,RETURNVALUE ! 1576: ! 1577: movei #L161,r0 ! 1578: jump T,(r0) ! 1579: nop ! 1580: ! 1581: L170: ! 1582: ! 1583: movei #_basething,r0 ! 1584: load (r0),r0 ! 1585: store r0,(FP) ; arg[] ! 1586: movei #_PB_UnsetThingPosition,r0 ! 1587: store r28,(FP+3) ; push ;(RETURNPOINT) ! 1588: movei #L173,RETURNPOINT ! 1589: jump T,(r0) ! 1590: nop ; delay slot ! 1591: L173: ! 1592: load (FP+3), RETURNPOINT ; pop ! 1593: ! 1594: move FP,r0 ! 1595: addq #4,r0 ; &oldx ! 1596: movei #_basething,r1 ! 1597: load (r1),r1 ! 1598: move r1,r2 ! 1599: addq #12,r2 ! 1600: load (r2),r2 ! 1601: load (r0),r30 ; FUCKING dsp! ! 1602: or r30,r30 ; FUCKING dsp! ! 1603: store r2,(r0) ! 1604: move FP,r0 ! 1605: addq #8,r0 ; &oldy ! 1606: move r1,r2 ! 1607: addq #16,r2 ! 1608: load (r2),r2 ! 1609: load (r0),r30 ; FUCKING dsp! ! 1610: or r30,r30 ; FUCKING dsp! ! 1611: store r2,(r0) ! 1612: movei #56,r0 ! 1613: add r0,r1 ! 1614: movei #_testfloorz,r0 ! 1615: load (r0),r0 ! 1616: load (r1),r30 ; FUCKING dsp! ! 1617: or r30,r30 ; FUCKING dsp! ! 1618: store r0,(r1) ! 1619: ! 1620: movei #_basething,r0 ! 1621: load (r0),r0 ! 1622: movei #60,r1 ! 1623: add r1,r0 ! 1624: movei #_testceilingz,r1 ! 1625: load (r1),r1 ! 1626: load (r0),r30 ; FUCKING dsp! ! 1627: or r30,r30 ; FUCKING dsp! ! 1628: store r1,(r0) ! 1629: ! 1630: movei #_basething,r0 ! 1631: load (r0),r0 ! 1632: addq #12,r0 ! 1633: movei #_testx,r1 ! 1634: load (r1),r1 ! 1635: load (r0),r30 ; FUCKING dsp! ! 1636: or r30,r30 ; FUCKING dsp! ! 1637: store r1,(r0) ! 1638: ! 1639: movei #_basething,r0 ! 1640: load (r0),r0 ! 1641: addq #16,r0 ! 1642: movei #_testy,r1 ! 1643: load (r1),r1 ! 1644: load (r0),r30 ; FUCKING dsp! ! 1645: or r30,r30 ; FUCKING dsp! ! 1646: store r1,(r0) ! 1647: ! 1648: movei #_basething,r0 ! 1649: load (r0),r0 ! 1650: store r0,(FP) ; arg[] ! 1651: movei #_PB_SetThingPosition,r0 ! 1652: store r28,(FP+3) ; push ;(RETURNPOINT) ! 1653: movei #L174,RETURNPOINT ! 1654: jump T,(r0) ! 1655: nop ; delay slot ! 1656: L174: ! 1657: load (FP+3), RETURNPOINT ; pop ! 1658: ! 1659: moveq #1,r0 ! 1660: move r0,RETURNVALUE ! 1661: ! 1662: L161: ! 1663: jump T,(RETURNPOINT) ! 1664: addq #28,FP ; delay slot ! 1665: ! 1666: ;==================== ! 1667: _PB_SetThingPosition:: ! 1668: ;5 dag registers 1 register variables ! 1669: ;localoffset:0 regoffset:16 argoffset:16 ! 1670: ;==================== ! 1671: subq #16,FP ! 1672: ! 1673: move FP,r0 ; &ss ! 1674: movei #_testsubsec,r1 ! 1675: load (r1),r1 ! 1676: load (r0),r30 ; FUCKING dsp! ! 1677: or r30,r30 ; FUCKING dsp! ! 1678: store r1,(r0) ! 1679: load (FP+4),r0 ; local thing ! 1680: movei #52,r2 ! 1681: add r2,r0 ! 1682: load (r0),r30 ; FUCKING dsp! ! 1683: or r30,r30 ; FUCKING dsp! ! 1684: store r1,(r0) ! 1685: ! 1686: load (FP),r0 ; local ss ! 1687: load (r0),r0 ! 1688: move r0,r15 ;(sec) ! 1689: load (FP+4),r0 ; local thing ! 1690: addq #28,r0 ! 1691: moveq #0,r1 ! 1692: load (r0),r30 ; FUCKING dsp! ! 1693: or r30,r30 ; FUCKING dsp! ! 1694: store r1,(r0) ! 1695: ! 1696: load (FP+4),r0 ; local thing ! 1697: addq #24,r0 ! 1698: movei #80,r1 ! 1699: move r15,r2 ;(sec) ! 1700: add r1,r2 ! 1701: load (r2),r1 ! 1702: load (r0),r30 ; FUCKING dsp! ! 1703: or r30,r30 ; FUCKING dsp! ! 1704: store r1,(r0) ! 1705: ! 1706: movei #80,r0 ! 1707: move r15,r1 ;(sec) ! 1708: add r0,r1 ! 1709: load (r1),r0 ! 1710: moveq #0,r1 ! 1711: cmp r0,r1 ! 1712: movei #L176,scratch ! 1713: jump EQ,(scratch) ! 1714: nop ! 1715: ! 1716: movei #80,r0 ! 1717: move r15,r1 ;(sec) ! 1718: add r0,r1 ! 1719: load (r1),r0 ! 1720: addq #28,r0 ! 1721: load (FP+4),r1 ; local thing ! 1722: load (r0),r30 ; FUCKING dsp! ! 1723: or r30,r30 ; FUCKING dsp! ! 1724: store r1,(r0) ! 1725: ! 1726: L176: ! 1727: ! 1728: movei #80,r0 ! 1729: move r15,r1 ;(sec) ! 1730: add r0,r1 ! 1731: load (FP+4),r0 ; local thing ! 1732: load (r1),r30 ; FUCKING dsp! ! 1733: or r30,r30 ; FUCKING dsp! ! 1734: store r0,(r1) ! 1735: ! 1736: movei #_testflags,r0 ! 1737: load (r0),r0 ! 1738: moveq #16,r1 ! 1739: and r1,r0 ! 1740: moveq #0,r1 ! 1741: cmp r0,r1 ! 1742: movei #L178,scratch ! 1743: jump NE,(scratch) ! 1744: nop ! 1745: ! 1746: move FP,r0 ! 1747: addq #4,r0 ; &blockx ! 1748: load (FP+4),r1 ; local thing ! 1749: move r1,r2 ! 1750: addq #12,r2 ! 1751: load (r2),r2 ! 1752: movei #_bmaporgx,r3 ! 1753: load (r3),r3 ! 1754: sub r3,r2 ! 1755: moveq #23,r3 ! 1756: sha r3,r2 ! 1757: load (r0),r30 ; FUCKING dsp! ! 1758: or r30,r30 ; FUCKING dsp! ! 1759: store r2,(r0) ! 1760: move FP,r2 ! 1761: addq #8,r2 ; &blocky ! 1762: addq #16,r1 ! 1763: load (r1),r1 ! 1764: movei #_bmaporgy,r4 ! 1765: load (r4),r4 ! 1766: sub r4,r1 ! 1767: sha r3,r1 ! 1768: load (r2),r30 ; FUCKING dsp! ! 1769: or r30,r30 ; FUCKING dsp! ! 1770: store r1,(r2) ! 1771: load (r0),r0 ! 1772: moveq #0,r1 ! 1773: cmp r0,r1 ! 1774: movei #L180,scratch ! 1775: jump S_LT,(scratch) ! 1776: nop ! 1777: movei #_bmapwidth,r3 ! 1778: load (r3),r3 ! 1779: cmp r0,r3 ! 1780: movei #L180,scratch ! 1781: jump EQ,(scratch) ! 1782: nop ! 1783: jump MI,(scratch) ! 1784: nop ! 1785: load (r2),r0 ! 1786: cmp r0,r1 ! 1787: movei #L180,scratch ! 1788: jump S_LT,(scratch) ! 1789: nop ! 1790: movei #_bmapheight,r1 ! 1791: load (r1),r1 ! 1792: cmp r0,r1 ! 1793: movei #L180,scratch ! 1794: jump EQ,(scratch) ! 1795: nop ! 1796: jump MI,(scratch) ! 1797: nop ! 1798: ! 1799: move FP,r0 ! 1800: addq #12,r0 ; &link ! 1801: load (FP+2),r1 ; local blocky ! 1802: movei #_bmapwidth,r2 ! 1803: load (r2),r2 ! 1804: move r1,MATH_A ! 1805: movei #L184,MATH_RTS ! 1806: movei #GPU_IMUL,scratch ! 1807: jump T,(scratch) ! 1808: move r2,MATH_B ; delay slot ! 1809: L184: ! 1810: move MATH_C,r1 ! 1811: load (FP+1),r2 ; local blockx ! 1812: add r2,r1 ! 1813: shlq #2,r1 ! 1814: movei #_blocklinks,r2 ! 1815: load (r2),r2 ! 1816: add r2,r1 ! 1817: load (r0),r30 ; FUCKING dsp! ! 1818: or r30,r30 ; FUCKING dsp! ! 1819: store r1,(r0) ! 1820: load (FP+4),r0 ; local thing ! 1821: movei #48,r1 ! 1822: add r1,r0 ! 1823: moveq #0,r1 ! 1824: load (r0),r30 ; FUCKING dsp! ! 1825: or r30,r30 ; FUCKING dsp! ! 1826: store r1,(r0) ! 1827: ! 1828: load (FP+4),r0 ; local thing ! 1829: movei #44,r1 ! 1830: add r1,r0 ! 1831: load (FP+3),r1 ; local link ! 1832: load (r1),r1 ! 1833: load (r0),r30 ; FUCKING dsp! ! 1834: or r30,r30 ; FUCKING dsp! ! 1835: store r1,(r0) ! 1836: ! 1837: load (FP+3),r0 ; local link ! 1838: load (r0),r0 ! 1839: moveq #0,r1 ! 1840: cmp r0,r1 ! 1841: movei #L182,scratch ! 1842: jump EQ,(scratch) ! 1843: nop ! 1844: ! 1845: load (FP+3),r0 ; local link ! 1846: load (r0),r0 ! 1847: movei #48,r1 ! 1848: add r1,r0 ! 1849: load (FP+4),r1 ; local thing ! 1850: load (r0),r30 ; FUCKING dsp! ! 1851: or r30,r30 ; FUCKING dsp! ! 1852: store r1,(r0) ! 1853: ! 1854: L182: ! 1855: ! 1856: load (FP+3),r0 ; local link ! 1857: load (FP+4),r1 ; local thing ! 1858: load (r0),r30 ; FUCKING dsp! ! 1859: or r30,r30 ; FUCKING dsp! ! 1860: store r1,(r0) ! 1861: ! 1862: movei #L181,r0 ! 1863: jump T,(r0) ! 1864: nop ! 1865: ! 1866: L180: ! 1867: ! 1868: load (FP+4),r0 ; local thing ! 1869: movei #48,r1 ! 1870: move r0,r2 ! 1871: add r1,r2 ! 1872: moveq #0,r1 ! 1873: load (r2),r30 ; FUCKING dsp! ! 1874: or r30,r30 ; FUCKING dsp! ! 1875: store r1,(r2) ! 1876: movei #44,r2 ! 1877: add r2,r0 ! 1878: load (r0),r30 ; FUCKING dsp! ! 1879: or r30,r30 ; FUCKING dsp! ! 1880: store r1,(r0) ! 1881: ! 1882: L181: ! 1883: ! 1884: L178: ! 1885: ! 1886: ! 1887: L175: ! 1888: jump T,(RETURNPOINT) ! 1889: addq #16,FP ; delay slot ! 1890: ! 1891: ;==================== ! 1892: _PB_CheckPosition:: ! 1893: ;4 dag registers 7 register variables ! 1894: ;localoffset:8 regoffset:8 argoffset:56 ! 1895: ;==================== ! 1896: movei #56,scratch ! 1897: sub scratch,FP ! 1898: ! 1899: movei #_testflags,r0 ! 1900: movei #_basething,r1 ! 1901: load (r1),r1 ! 1902: movei #100,r2 ! 1903: move r1,r3 ! 1904: add r2,r3 ! 1905: load (r3),r2 ! 1906: load (r0),r30 ; FUCKING dsp! ! 1907: or r30,r30 ; FUCKING dsp! ! 1908: store r2,(r0) ! 1909: movei #64,r0 ! 1910: add r0,r1 ! 1911: load (r1),r0 ! 1912: move r0,r20 ;(r) ! 1913: movei #_testbbox,r0 ! 1914: movei #_testy,r1 ! 1915: load (r1),r1 ! 1916: move r1,r2 ! 1917: add r20,r2 ;(r) ! 1918: load (r0),r30 ; FUCKING dsp! ! 1919: or r30,r30 ; FUCKING dsp! ! 1920: store r2,(r0) ! 1921: movei #_testbbox+4,r0 ! 1922: sub r20,r1 ;(r) ! 1923: load (r0),r30 ; FUCKING dsp! ! 1924: or r30,r30 ; FUCKING dsp! ! 1925: store r1,(r0) ! 1926: ! 1927: movei #_testbbox+12,r0 ! 1928: movei #_testx,r1 ! 1929: load (r1),r1 ! 1930: add r20,r1 ;(r) ! 1931: load (r0),r30 ; FUCKING dsp! ! 1932: or r30,r30 ; FUCKING dsp! ! 1933: store r1,(r0) ! 1934: ! 1935: movei #_testbbox+8,r0 ! 1936: movei #_testx,r1 ! 1937: load (r1),r1 ! 1938: sub r20,r1 ;(r) ! 1939: load (r0),r30 ; FUCKING dsp! ! 1940: or r30,r30 ; FUCKING dsp! ! 1941: store r1,(r0) ! 1942: ! 1943: movei #_testx,r0 ! 1944: load (r0),r0 ! 1945: store r0,(FP) ; arg[] ! 1946: movei #_testy,r0 ! 1947: load (r0),r0 ! 1948: or r0,scratch ; scoreboard bug ! 1949: store r0,(FP+1) ; arg[] ! 1950: movei #_PB_PointInSubsector,r0 ! 1951: store r28,(FP+2) ; push ;(RETURNPOINT) ! 1952: store r21,(FP+3) ; push ;(xl) ! 1953: store r20,(FP+4) ; push ;(r) ! 1954: store r19,(FP+5) ; push ;(yl) ! 1955: store r18,(FP+6) ; push ;(xh) ! 1956: store r17,(FP+7) ; push ;(yh) ! 1957: store r16,(FP+8) ; push ;(bx) ! 1958: movei #L212,RETURNPOINT ! 1959: jump T,(r0) ! 1960: store r15,(FP+9) ; delay slot push ;(by) ! 1961: L212: ! 1962: load (FP+3),r21 ; pop ;(xl) ! 1963: load (FP+4),r20 ; pop ;(r) ! 1964: load (FP+5),r19 ; pop ;(yl) ! 1965: load (FP+6),r18 ; pop ;(xh) ! 1966: load (FP+7),r17 ; pop ;(yh) ! 1967: load (FP+8),r16 ; pop ;(bx) ! 1968: load (FP+9),r15 ; pop ;(by) ! 1969: load (FP+2), RETURNPOINT ; pop ! 1970: movei #_testsubsec,r0 ! 1971: move r29,r1 ;(RETURNVALUE) ! 1972: load (r0),r30 ; FUCKING dsp! ! 1973: or r30,r30 ; FUCKING dsp! ! 1974: store r1,(r0) ! 1975: movei #_testdropoffz,r0 ! 1976: movei #_testsubsec,r1 ! 1977: load (r1),r1 ! 1978: load (r1),r2 ! 1979: load (r2),r2 ! 1980: load (r0),r30 ; FUCKING dsp! ! 1981: or r30,r30 ; FUCKING dsp! ! 1982: store r2,(r0) ! 1983: movei #_testfloorz,r0 ! 1984: load (r0),r30 ; FUCKING dsp! ! 1985: or r30,r30 ; FUCKING dsp! ! 1986: store r2,(r0) ! 1987: movei #_testceilingz,r0 ! 1988: load (r1),r1 ! 1989: addq #4,r1 ! 1990: load (r1),r1 ! 1991: load (r0),r30 ; FUCKING dsp! ! 1992: or r30,r30 ; FUCKING dsp! ! 1993: store r1,(r0) ! 1994: movei #_validcount,r0 ! 1995: load (r0),r1 ! 1996: addq #1,r1 ! 1997: load (r0),r30 ; FUCKING dsp! ! 1998: or r30,r30 ; FUCKING dsp! ! 1999: store r1,(r0) ! 2000: movei #_ceilingline,r0 ! 2001: moveq #0,r1 ! 2002: load (r0),r30 ; FUCKING dsp! ! 2003: or r30,r30 ; FUCKING dsp! ! 2004: store r1,(r0) ! 2005: movei #_hitthing,r0 ! 2006: load (r0),r30 ; FUCKING dsp! ! 2007: or r30,r30 ; FUCKING dsp! ! 2008: store r1,(r0) ! 2009: movei #_testbbox+8,r0 ! 2010: load (r0),r0 ! 2011: movei #_bmaporgx,r1 ! 2012: load (r1),r1 ! 2013: sub r1,r0 ! 2014: movei #2097152,r2 ! 2015: sub r2,r0 ! 2016: moveq #23,r3 ! 2017: sha r3,r0 ! 2018: move r0,r21 ;(xl) ! 2019: movei #_testbbox+12,r0 ! 2020: load (r0),r0 ! 2021: sub r1,r0 ! 2022: add r2,r0 ! 2023: sha r3,r0 ! 2024: move r0,r18 ;(xh) ! 2025: movei #_testbbox+4,r0 ! 2026: load (r0),r0 ! 2027: movei #_bmaporgy,r1 ! 2028: load (r1),r1 ! 2029: sub r1,r0 ! 2030: sub r2,r0 ! 2031: sha r3,r0 ! 2032: move r0,r19 ;(yl) ! 2033: movei #_testbbox,r0 ! 2034: load (r0),r0 ! 2035: sub r1,r0 ! 2036: add r2,r0 ! 2037: sha r3,r0 ! 2038: move r0,r17 ;(yh) ! 2039: moveq #0,r0 ! 2040: cmp r21,r0 ;(xl) ! 2041: movei #L192,scratch ! 2042: jump EQ,(scratch) ! 2043: nop ! 2044: jump MI,(scratch) ! 2045: nop ! 2046: ! 2047: moveq #0,r0 ! 2048: move r0,r21 ;(xl) ! 2049: ! 2050: L192: ! 2051: ! 2052: moveq #0,r0 ! 2053: cmp r19,r0 ;(yl) ! 2054: movei #L194,scratch ! 2055: jump EQ,(scratch) ! 2056: nop ! 2057: jump MI,(scratch) ! 2058: nop ! 2059: ! 2060: moveq #0,r0 ! 2061: move r0,r19 ;(yl) ! 2062: ! 2063: L194: ! 2064: ! 2065: movei #_bmapwidth,r0 ! 2066: load (r0),r0 ! 2067: cmp r18,r0 ;(xh) ! 2068: movei #L196,scratch ! 2069: jump S_LT,(scratch) ! 2070: nop ! 2071: ! 2072: movei #_bmapwidth,r0 ! 2073: load (r0),r0 ! 2074: subq #1,r0 ! 2075: move r0,r18 ;(xh) ! 2076: ! 2077: L196: ! 2078: ! 2079: movei #_bmapheight,r0 ! 2080: load (r0),r0 ! 2081: cmp r17,r0 ;(yh) ! 2082: movei #L198,scratch ! 2083: jump S_LT,(scratch) ! 2084: nop ! 2085: ! 2086: movei #_bmapheight,r0 ! 2087: load (r0),r0 ! 2088: subq #1,r0 ! 2089: move r0,r17 ;(yh) ! 2090: ! 2091: L198: ! 2092: ! 2093: move r21,r16 ;(xl)(bx) ! 2094: ! 2095: movei #L203,r0 ! 2096: jump T,(r0) ! 2097: nop ! 2098: ! 2099: L200: ! 2100: ! 2101: move r19,r15 ;(yl)(by) ! 2102: ! 2103: movei #L207,r0 ! 2104: jump T,(r0) ! 2105: nop ! 2106: ! 2107: L204: ! 2108: ! 2109: store r16,(FP) ; arg[] ;(bx) ! 2110: or r15,scratch ; scoreboard bug ;(by) ! 2111: store r15,(FP+1) ; arg[] ;(by) ! 2112: movei #_PB_MoveThingsIterator,r0 ! 2113: store r28,(FP+2) ; push ;(RETURNPOINT) ! 2114: store r21,(FP+3) ; push ;(xl) ! 2115: store r20,(FP+4) ; push ;(r) ! 2116: store r19,(FP+5) ; push ;(yl) ! 2117: store r18,(FP+6) ; push ;(xh) ! 2118: store r17,(FP+7) ; push ;(yh) ! 2119: store r16,(FP+8) ; push ;(bx) ! 2120: movei #L213,RETURNPOINT ! 2121: jump T,(r0) ! 2122: store r15,(FP+9) ; delay slot push ;(by) ! 2123: L213: ! 2124: load (FP+3),r21 ; pop ;(xl) ! 2125: load (FP+4),r20 ; pop ;(r) ! 2126: load (FP+5),r19 ; pop ;(yl) ! 2127: load (FP+6),r18 ; pop ;(xh) ! 2128: load (FP+7),r17 ; pop ;(yh) ! 2129: load (FP+8),r16 ; pop ;(bx) ! 2130: load (FP+9),r15 ; pop ;(by) ! 2131: load (FP+2), RETURNPOINT ; pop ! 2132: moveq #0,r0 ! 2133: cmp r29,r0 ;(RETURNVALUE) ! 2134: movei #L208,scratch ! 2135: jump NE,(scratch) ! 2136: nop ! 2137: ! 2138: moveq #0,r0 ! 2139: move r0,RETURNVALUE ! 2140: ! 2141: movei #L185,r0 ! 2142: jump T,(r0) ! 2143: nop ! 2144: ! 2145: L208: ! 2146: ! 2147: store r16,(FP) ; arg[] ;(bx) ! 2148: or r15,scratch ; scoreboard bug ;(by) ! 2149: store r15,(FP+1) ; arg[] ;(by) ! 2150: movei #_PB_MoveLinesIterator,r0 ! 2151: store r28,(FP+2) ; push ;(RETURNPOINT) ! 2152: store r21,(FP+3) ; push ;(xl) ! 2153: store r20,(FP+4) ; push ;(r) ! 2154: store r19,(FP+5) ; push ;(yl) ! 2155: store r18,(FP+6) ; push ;(xh) ! 2156: store r17,(FP+7) ; push ;(yh) ! 2157: store r16,(FP+8) ; push ;(bx) ! 2158: movei #L214,RETURNPOINT ! 2159: jump T,(r0) ! 2160: store r15,(FP+9) ; delay slot push ;(by) ! 2161: L214: ! 2162: load (FP+3),r21 ; pop ;(xl) ! 2163: load (FP+4),r20 ; pop ;(r) ! 2164: load (FP+5),r19 ; pop ;(yl) ! 2165: load (FP+6),r18 ; pop ;(xh) ! 2166: load (FP+7),r17 ; pop ;(yh) ! 2167: load (FP+8),r16 ; pop ;(bx) ! 2168: load (FP+9),r15 ; pop ;(by) ! 2169: load (FP+2), RETURNPOINT ; pop ! 2170: moveq #0,r0 ! 2171: cmp r29,r0 ;(RETURNVALUE) ! 2172: movei #L210,scratch ! 2173: jump NE,(scratch) ! 2174: nop ! 2175: ! 2176: moveq #0,r0 ! 2177: move r0,RETURNVALUE ! 2178: ! 2179: movei #L185,r0 ! 2180: jump T,(r0) ! 2181: nop ! 2182: ! 2183: L210: ! 2184: ! 2185: L205: ! 2186: ! 2187: move r15,r0 ;(by) ! 2188: addq #1,r0 ! 2189: move r0,r15 ;(by) ! 2190: ! 2191: L207: ! 2192: ! 2193: cmp r15,r17 ;(by)(yh) ! 2194: movei #L204,scratch ! 2195: jump PL,(scratch) ! 2196: nop ! 2197: ! 2198: L201: ! 2199: ! 2200: move r16,r0 ;(bx) ! 2201: addq #1,r0 ! 2202: move r0,r16 ;(bx) ! 2203: ! 2204: L203: ! 2205: ! 2206: cmp r16,r18 ;(bx)(xh) ! 2207: movei #L200,scratch ! 2208: jump PL,(scratch) ! 2209: nop ! 2210: ! 2211: moveq #1,r0 ! 2212: move r0,RETURNVALUE ! 2213: ! 2214: L185: ! 2215: movei #56,scratch ! 2216: jump T,(RETURNPOINT) ! 2217: add scratch,FP ; delay slot ! 2218: ! 2219: ;==================== ! 2220: _PB_BoxCrossLine:: ! 2221: ;4 dag registers 5 register variables ! 2222: ;localoffset:0 regoffset:32 argoffset:32 ! 2223: ;==================== ! 2224: subq #32,FP ! 2225: ! 2226: movei #_testbbox+12,r0 ! 2227: load (r0),r0 ! 2228: load (FP+8),r1 ; local ld ! 2229: movei #44,r2 ! 2230: move r1,r3 ! 2231: add r2,r3 ! 2232: load (r3),r2 ! 2233: cmp r0,r2 ! 2234: movei #L223,scratch ! 2235: jump PL,(scratch) ! 2236: nop ! 2237: movei #_testbbox+8,r0 ! 2238: load (r0),r0 ! 2239: movei #48,r2 ! 2240: move r1,r3 ! 2241: add r2,r3 ! 2242: load (r3),r2 ! 2243: cmp r0,r2 ! 2244: movei #L223,scratch ! 2245: jump EQ,(scratch) ! 2246: nop ! 2247: jump MI,(scratch) ! 2248: nop ! 2249: movei #_testbbox,r0 ! 2250: load (r0),r0 ! 2251: movei #40,r2 ! 2252: move r1,r3 ! 2253: add r2,r3 ! 2254: load (r3),r2 ! 2255: cmp r0,r2 ! 2256: movei #L223,scratch ! 2257: jump PL,(scratch) ! 2258: nop ! 2259: movei #_testbbox+4,r0 ! 2260: load (r0),r0 ! 2261: movei #36,r2 ! 2262: add r2,r1 ! 2263: load (r1),r1 ! 2264: cmp r0,r1 ! 2265: movei #L216,scratch ! 2266: jump S_LT,(scratch) ! 2267: nop ! 2268: L223: ! 2269: ! 2270: moveq #0,r0 ! 2271: move r0,RETURNVALUE ! 2272: ! 2273: movei #L215,r0 ! 2274: jump T,(r0) ! 2275: nop ! 2276: ! 2277: L216: ! 2278: ! 2279: load (FP+8),r0 ; local ld ! 2280: movei #52,r1 ! 2281: add r1,r0 ! 2282: load (r0),r0 ! 2283: moveq #2,r1 ! 2284: cmp r0,r1 ! 2285: movei #L224,scratch ! 2286: jump NE,(scratch) ! 2287: nop ! 2288: ! 2289: move FP,r0 ; &x1 ! 2290: movei #_testbbox+8,r1 ! 2291: load (r1),r1 ! 2292: load (r0),r30 ; FUCKING dsp! ! 2293: or r30,r30 ; FUCKING dsp! ! 2294: store r1,(r0) ! 2295: move FP,r0 ! 2296: addq #4,r0 ; &x2 ! 2297: movei #_testbbox+12,r1 ! 2298: load (r1),r1 ! 2299: load (r0),r30 ; FUCKING dsp! ! 2300: or r30,r30 ; FUCKING dsp! ! 2301: store r1,(r0) ! 2302: ! 2303: movei #L225,r0 ! 2304: jump T,(r0) ! 2305: nop ! 2306: ! 2307: L224: ! 2308: ! 2309: move FP,r0 ; &x1 ! 2310: movei #_testbbox+12,r1 ! 2311: load (r1),r1 ! 2312: load (r0),r30 ; FUCKING dsp! ! 2313: or r30,r30 ; FUCKING dsp! ! 2314: store r1,(r0) ! 2315: move FP,r0 ! 2316: addq #4,r0 ; &x2 ! 2317: movei #_testbbox+8,r1 ! 2318: load (r1),r1 ! 2319: load (r0),r30 ; FUCKING dsp! ! 2320: or r30,r30 ; FUCKING dsp! ! 2321: store r1,(r0) ! 2322: ! 2323: L225: ! 2324: ! 2325: load (FP+8),r0 ; local ld ! 2326: load (r0),r1 ! 2327: load (r1),r1 ! 2328: move r1,r15 ;(lx) ! 2329: load (r0),r1 ! 2330: addq #4,r1 ! 2331: load (r1),r1 ! 2332: move r1,r16 ;(ly) ! 2333: move r0,r1 ! 2334: addq #8,r1 ! 2335: load (r1),r1 ! 2336: moveq #16,r2 ! 2337: sha r2,r1 ! 2338: move r1,r17 ;(ldx) ! 2339: addq #12,r0 ! 2340: load (r0),r0 ! 2341: sha r2,r0 ! 2342: move r0,r18 ;(ldy) ! 2343: move FP,r0 ! 2344: addq #8,r0 ; &dx1 ! 2345: load (FP),r1 ; local x1 ! 2346: sub r15,r1 ;(lx) ! 2347: sha r2,r1 ! 2348: load (r0),r30 ; FUCKING dsp! ! 2349: or r30,r30 ; FUCKING dsp! ! 2350: store r1,(r0) ! 2351: move FP,r0 ! 2352: addq #12,r0 ; &dy1 ! 2353: movei #_testbbox,r1 ! 2354: load (r1),r1 ! 2355: sub r16,r1 ;(ly) ! 2356: sha r2,r1 ! 2357: load (r0),r30 ; FUCKING dsp! ! 2358: or r30,r30 ; FUCKING dsp! ! 2359: store r1,(r0) ! 2360: move FP,r0 ! 2361: addq #16,r0 ; &dx2 ! 2362: load (FP+1),r1 ; local x2 ! 2363: sub r15,r1 ;(lx) ! 2364: sha r2,r1 ! 2365: load (r0),r30 ; FUCKING dsp! ! 2366: or r30,r30 ; FUCKING dsp! ! 2367: store r1,(r0) ! 2368: move FP,r0 ! 2369: addq #20,r0 ; &dy2 ! 2370: movei #_testbbox+4,r1 ! 2371: load (r1),r1 ! 2372: sub r16,r1 ;(ly) ! 2373: sha r2,r1 ! 2374: load (r0),r30 ; FUCKING dsp! ! 2375: or r30,r30 ; FUCKING dsp! ! 2376: store r1,(r0) ! 2377: load (FP+2),r0 ; local dx1 ! 2378: move r18,MATH_A ;(ldy) ! 2379: movei #L238,MATH_RTS ! 2380: movei #GPU_IMUL,scratch ! 2381: jump T,(scratch) ! 2382: move r0,MATH_B ; delay slot ! 2383: L238: ! 2384: move MATH_C,r1 ! 2385: load (FP+3),r0 ; local dy1 ! 2386: move r0,MATH_A ! 2387: movei #L239,MATH_RTS ! 2388: movei #GPU_IMUL,scratch ! 2389: jump T,(scratch) ! 2390: move r17,MATH_B ; delay slot ;(ldx) ! 2391: L239: ! 2392: move MATH_C,r0 ! 2393: cmp r1,r0 ! 2394: movei #L232,scratch ! 2395: jump EQ,(scratch) ! 2396: nop ! 2397: jump MI,(scratch) ! 2398: nop ! 2399: moveq #1,r0 ! 2400: move r0,r19 ;(231) ! 2401: movei #L233,r0 ! 2402: jump T,(r0) ! 2403: nop ! 2404: L232: ! 2405: moveq #0,r0 ! 2406: move r0,r19 ;(231) ! 2407: L233: ! 2408: move FP,r0 ! 2409: addq #24,r0 ; &side1 ! 2410: load (r0),r30 ; FUCKING dsp! ! 2411: or r30,r30 ; FUCKING dsp! ! 2412: store r19,(r0) ;(231) ! 2413: load (FP+4),r0 ; local dx2 ! 2414: move r18,MATH_A ;(ldy) ! 2415: movei #L240,MATH_RTS ! 2416: movei #GPU_IMUL,scratch ! 2417: jump T,(scratch) ! 2418: move r0,MATH_B ; delay slot ! 2419: L240: ! 2420: move MATH_C,r1 ! 2421: load (FP+5),r0 ; local dy2 ! 2422: move r0,MATH_A ! 2423: movei #L241,MATH_RTS ! 2424: movei #GPU_IMUL,scratch ! 2425: jump T,(scratch) ! 2426: move r17,MATH_B ; delay slot ;(ldx) ! 2427: L241: ! 2428: move MATH_C,r0 ! 2429: cmp r1,r0 ! 2430: movei #L234,scratch ! 2431: jump EQ,(scratch) ! 2432: nop ! 2433: jump MI,(scratch) ! 2434: nop ! 2435: moveq #1,r0 ! 2436: move r0,r19 ;(231) ! 2437: movei #L235,r0 ! 2438: jump T,(r0) ! 2439: nop ! 2440: L234: ! 2441: moveq #0,r0 ! 2442: move r0,r19 ;(231) ! 2443: L235: ! 2444: move FP,r0 ! 2445: addq #28,r0 ; &side2 ! 2446: load (r0),r30 ; FUCKING dsp! ! 2447: or r30,r30 ; FUCKING dsp! ! 2448: store r19,(r0) ;(231) ! 2449: load (FP+6),r0 ; local side1 ! 2450: load (FP+7),r1 ; local side2 ! 2451: cmp r0,r1 ! 2452: movei #L236,scratch ! 2453: jump EQ,(scratch) ! 2454: nop ! 2455: moveq #1,r0 ! 2456: move r0,r19 ;(231) ! 2457: movei #L237,r0 ! 2458: jump T,(r0) ! 2459: nop ! 2460: L236: ! 2461: moveq #0,r0 ! 2462: move r0,r19 ;(231) ! 2463: L237: ! 2464: move r19,RETURNVALUE ;(231) ! 2465: ! 2466: L215: ! 2467: jump T,(RETURNPOINT) ! 2468: addq #32,FP ; delay slot ! 2469: ! 2470: ;==================== ! 2471: _PB_CheckLine:: ! 2472: ;3 dag registers 2 register variables ! 2473: ;localoffset:0 regoffset:12 argoffset:12 ! 2474: ;==================== ! 2475: subq #12,FP ! 2476: ! 2477: load (FP+3),r0 ; local ld ! 2478: movei #60,r1 ! 2479: add r1,r0 ! 2480: load (r0),r0 ! 2481: moveq #0,r1 ! 2482: cmp r0,r1 ! 2483: movei #L243,scratch ! 2484: jump NE,(scratch) ! 2485: nop ! 2486: ! 2487: moveq #0,r0 ! 2488: move r0,RETURNVALUE ! 2489: ! 2490: movei #L242,r0 ! 2491: jump T,(r0) ! 2492: nop ! 2493: ! 2494: L243: ! 2495: ! 2496: movei #_testflags,r0 ! 2497: load (r0),r0 ! 2498: movei #65536,r1 ! 2499: and r1,r0 ! 2500: moveq #0,r1 ! 2501: cmp r0,r1 ! 2502: movei #L245,scratch ! 2503: jump NE,(scratch) ! 2504: nop ! 2505: load (FP+3),r0 ; local ld ! 2506: addq #16,r0 ! 2507: load (r0),r0 ! 2508: moveq #3,r2 ! 2509: and r2,r0 ! 2510: cmp r0,r1 ! 2511: movei #L245,scratch ! 2512: jump EQ,(scratch) ! 2513: nop ! 2514: ! 2515: moveq #0,r0 ! 2516: move r0,RETURNVALUE ! 2517: ! 2518: movei #L242,r0 ! 2519: jump T,(r0) ! 2520: nop ! 2521: ! 2522: L245: ! 2523: ! 2524: load (FP+3),r0 ; local ld ! 2525: movei #56,r1 ! 2526: move r0,r2 ! 2527: add r1,r2 ! 2528: load (r2),r1 ! 2529: move r1,r15 ;(front) ! 2530: movei #60,r1 ! 2531: add r1,r0 ! 2532: load (r0),r0 ! 2533: move r0,r16 ;(back) ! 2534: moveq #4,r0 ! 2535: move r15,r1 ;(front) ! 2536: add r0,r1 ! 2537: load (r1),r1 ! 2538: move r16,r2 ;(back) ! 2539: add r0,r2 ! 2540: load (r2),r0 ! 2541: cmp r1,r0 ! 2542: movei #L247,scratch ! 2543: jump EQ,(scratch) ! 2544: nop ! 2545: jump MI,(scratch) ! 2546: nop ! 2547: ! 2548: move FP,r0 ; &opentop ! 2549: move r15,r1 ;(front) ! 2550: addq #4,r1 ! 2551: load (r1),r1 ! 2552: load (r0),r30 ; FUCKING dsp! ! 2553: or r30,r30 ; FUCKING dsp! ! 2554: store r1,(r0) ! 2555: ! 2556: movei #L248,r0 ! 2557: jump T,(r0) ! 2558: nop ! 2559: ! 2560: L247: ! 2561: ! 2562: move FP,r0 ; &opentop ! 2563: move r16,r1 ;(back) ! 2564: addq #4,r1 ! 2565: load (r1),r1 ! 2566: load (r0),r30 ; FUCKING dsp! ! 2567: or r30,r30 ; FUCKING dsp! ! 2568: store r1,(r0) ! 2569: ! 2570: L248: ! 2571: ! 2572: load (r15),r0 ;(front) ! 2573: load (r16),r1 ;(back) ! 2574: cmp r0,r1 ! 2575: movei #L249,scratch ! 2576: jump PL,(scratch) ! 2577: nop ! 2578: ! 2579: move FP,r0 ! 2580: addq #4,r0 ; &openbottom ! 2581: load (r15),r1 ;(front) ! 2582: load (r0),r30 ; FUCKING dsp! ! 2583: or r30,r30 ; FUCKING dsp! ! 2584: store r1,(r0) ! 2585: move FP,r0 ! 2586: addq #8,r0 ; &lowfloor ! 2587: load (r16),r1 ;(back) ! 2588: load (r0),r30 ; FUCKING dsp! ! 2589: or r30,r30 ; FUCKING dsp! ! 2590: store r1,(r0) ! 2591: ! 2592: movei #L250,r0 ! 2593: jump T,(r0) ! 2594: nop ! 2595: ! 2596: L249: ! 2597: ! 2598: move FP,r0 ! 2599: addq #4,r0 ; &openbottom ! 2600: load (r16),r1 ;(back) ! 2601: load (r0),r30 ; FUCKING dsp! ! 2602: or r30,r30 ; FUCKING dsp! ! 2603: store r1,(r0) ! 2604: move FP,r0 ! 2605: addq #8,r0 ; &lowfloor ! 2606: load (r15),r1 ;(front) ! 2607: load (r0),r30 ; FUCKING dsp! ! 2608: or r30,r30 ; FUCKING dsp! ! 2609: store r1,(r0) ! 2610: ! 2611: L250: ! 2612: ! 2613: load (FP),r0 ; local opentop ! 2614: movei #_testceilingz,r1 ! 2615: load (r1),r1 ! 2616: cmp r0,r1 ! 2617: movei #L251,scratch ! 2618: jump EQ,(scratch) ! 2619: nop ! 2620: jump MI,(scratch) ! 2621: nop ! 2622: ! 2623: movei #_testceilingz,r0 ! 2624: load (FP),r1 ; local opentop ! 2625: load (r0),r30 ; FUCKING dsp! ! 2626: or r30,r30 ; FUCKING dsp! ! 2627: store r1,(r0) ! 2628: movei #_ceilingline,r0 ! 2629: load (FP+3),r1 ; local ld ! 2630: load (r0),r30 ; FUCKING dsp! ! 2631: or r30,r30 ; FUCKING dsp! ! 2632: store r1,(r0) ! 2633: ! 2634: L251: ! 2635: ! 2636: load (FP+1),r0 ; local openbottom ! 2637: movei #_testfloorz,r1 ! 2638: load (r1),r1 ! 2639: cmp r0,r1 ! 2640: movei #L253,scratch ! 2641: jump PL,(scratch) ! 2642: nop ! 2643: ! 2644: movei #_testfloorz,r0 ! 2645: load (FP+1),r1 ; local openbottom ! 2646: load (r0),r30 ; FUCKING dsp! ! 2647: or r30,r30 ; FUCKING dsp! ! 2648: store r1,(r0) ! 2649: ! 2650: L253: ! 2651: ! 2652: load (FP+2),r0 ; local lowfloor ! 2653: movei #_testdropoffz,r1 ! 2654: load (r1),r1 ! 2655: cmp r0,r1 ! 2656: movei #L255,scratch ! 2657: jump EQ,(scratch) ! 2658: nop ! 2659: jump MI,(scratch) ! 2660: nop ! 2661: ! 2662: movei #_testdropoffz,r0 ! 2663: load (FP+2),r1 ; local lowfloor ! 2664: load (r0),r30 ; FUCKING dsp! ! 2665: or r30,r30 ; FUCKING dsp! ! 2666: store r1,(r0) ! 2667: ! 2668: L255: ! 2669: ! 2670: moveq #1,r0 ! 2671: move r0,RETURNVALUE ! 2672: ! 2673: L242: ! 2674: jump T,(RETURNPOINT) ! 2675: addq #12,FP ; delay slot ! 2676: ! 2677: ;==================== ! 2678: _PB_CheckThing:: ! 2679: ;4 dag registers 4 register variables ! 2680: ;localoffset:0 regoffset:0 argoffset:0 ! 2681: ;==================== ! 2682: ! 2683: load (FP),r0 ; local thing ! 2684: movei #100,r1 ! 2685: add r1,r0 ! 2686: load (r0),r0 ! 2687: moveq #2,r1 ! 2688: and r1,r0 ! 2689: moveq #0,r1 ! 2690: cmp r0,r1 ! 2691: movei #L258,scratch ! 2692: jump NE,(scratch) ! 2693: nop ! 2694: ! 2695: moveq #1,r0 ! 2696: move r0,RETURNVALUE ! 2697: ! 2698: movei #L257,r0 ! 2699: jump T,(r0) ! 2700: nop ! 2701: ! 2702: L258: ! 2703: ! 2704: load (FP),r0 ; local thing ! 2705: movei #64,r1 ! 2706: move r0,r2 ! 2707: add r1,r2 ! 2708: load (r2),r2 ! 2709: movei #_basething,r3 ! 2710: load (r3),r3 ! 2711: add r1,r3 ! 2712: load (r3),r1 ! 2713: add r1,r2 ! 2714: move r2,r16 ;(blockdist) ! 2715: addq #12,r0 ! 2716: load (r0),r0 ! 2717: movei #_testx,r1 ! 2718: load (r1),r1 ! 2719: sub r1,r0 ! 2720: move r0,r15 ;(delta) ! 2721: moveq #0,r0 ! 2722: cmp r15,r0 ;(delta) ! 2723: movei #L260,scratch ! 2724: jump EQ,(scratch) ! 2725: nop ! 2726: jump MI,(scratch) ! 2727: nop ! 2728: ! 2729: move r15,r0 ;(delta) ! 2730: neg r0 ! 2731: move r0,r15 ;(delta) ! 2732: ! 2733: L260: ! 2734: ! 2735: cmp r15,r16 ;(delta)(blockdist) ! 2736: movei #L262,scratch ! 2737: jump S_LT,(scratch) ! 2738: nop ! 2739: ! 2740: moveq #1,r0 ! 2741: move r0,RETURNVALUE ! 2742: ! 2743: movei #L257,r0 ! 2744: jump T,(r0) ! 2745: nop ! 2746: ! 2747: L262: ! 2748: ! 2749: load (FP),r0 ; local thing ! 2750: addq #16,r0 ! 2751: load (r0),r0 ! 2752: movei #_testy,r1 ! 2753: load (r1),r1 ! 2754: sub r1,r0 ! 2755: move r0,r15 ;(delta) ! 2756: moveq #0,r0 ! 2757: cmp r15,r0 ;(delta) ! 2758: movei #L264,scratch ! 2759: jump EQ,(scratch) ! 2760: nop ! 2761: jump MI,(scratch) ! 2762: nop ! 2763: ! 2764: move r15,r0 ;(delta) ! 2765: neg r0 ! 2766: move r0,r15 ;(delta) ! 2767: ! 2768: L264: ! 2769: ! 2770: cmp r15,r16 ;(delta)(blockdist) ! 2771: movei #L266,scratch ! 2772: jump S_LT,(scratch) ! 2773: nop ! 2774: ! 2775: moveq #1,r0 ! 2776: move r0,RETURNVALUE ! 2777: ! 2778: movei #L257,r0 ! 2779: jump T,(r0) ! 2780: nop ! 2781: ! 2782: L266: ! 2783: ! 2784: load (FP),r0 ; local thing ! 2785: movei #_basething,r1 ! 2786: load (r1),r1 ! 2787: cmp r0,r1 ! 2788: movei #L268,scratch ! 2789: jump NE,(scratch) ! 2790: nop ! 2791: ! 2792: moveq #1,r0 ! 2793: move r0,RETURNVALUE ! 2794: ! 2795: movei #L257,r0 ! 2796: jump T,(r0) ! 2797: nop ! 2798: ! 2799: L268: ! 2800: ! 2801: movei #_testflags,r0 ! 2802: load (r0),r0 ! 2803: movei #16777216,r1 ! 2804: and r1,r0 ! 2805: moveq #0,r1 ! 2806: cmp r0,r1 ! 2807: movei #L270,scratch ! 2808: jump EQ,(scratch) ! 2809: nop ! 2810: ! 2811: movei #_hitthing,r0 ! 2812: load (FP),r1 ; local thing ! 2813: load (r0),r30 ; FUCKING dsp! ! 2814: or r30,r30 ; FUCKING dsp! ! 2815: store r1,(r0) ! 2816: moveq #0,r0 ! 2817: move r0,RETURNVALUE ! 2818: ! 2819: movei #L257,r0 ! 2820: jump T,(r0) ! 2821: nop ! 2822: ! 2823: L270: ! 2824: ! 2825: movei #_testflags,r0 ! 2826: load (r0),r0 ! 2827: movei #65536,r1 ! 2828: and r1,r0 ! 2829: moveq #0,r1 ! 2830: cmp r0,r1 ! 2831: movei #L272,scratch ! 2832: jump EQ,(scratch) ! 2833: nop ! 2834: ! 2835: movei #_basething,r0 ! 2836: load (r0),r0 ! 2837: moveq #20,r1 ! 2838: add r1,r0 ! 2839: load (r0),r0 ! 2840: load (FP),r2 ; local thing ! 2841: move r2,r3 ! 2842: add r1,r3 ! 2843: load (r3),r1 ! 2844: movei #68,r3 ! 2845: add r3,r2 ! 2846: load (r2),r2 ! 2847: add r2,r1 ! 2848: cmp r0,r1 ! 2849: movei #L274,scratch ! 2850: jump PL,(scratch) ! 2851: nop ! 2852: ! 2853: moveq #1,r0 ! 2854: move r0,RETURNVALUE ! 2855: ! 2856: movei #L257,r0 ! 2857: jump T,(r0) ! 2858: nop ! 2859: ! 2860: L274: ! 2861: ! 2862: movei #_basething,r0 ! 2863: load (r0),r0 ! 2864: moveq #20,r1 ! 2865: move r0,r2 ! 2866: add r1,r2 ! 2867: load (r2),r2 ! 2868: movei #68,r3 ! 2869: add r3,r0 ! 2870: load (r0),r0 ! 2871: add r0,r2 ! 2872: load (FP),r0 ; local thing ! 2873: add r1,r0 ! 2874: load (r0),r0 ! 2875: cmp r2,r0 ! 2876: movei #L276,scratch ! 2877: jump EQ,(scratch) ! 2878: nop ! 2879: jump MI,(scratch) ! 2880: nop ! 2881: ! 2882: moveq #1,r0 ! 2883: move r0,RETURNVALUE ! 2884: ! 2885: movei #L257,r0 ! 2886: jump T,(r0) ! 2887: nop ! 2888: ! 2889: L276: ! 2890: ! 2891: movei #_basething,r0 ! 2892: load (r0),r0 ! 2893: movei #116,r1 ! 2894: add r1,r0 ! 2895: load (r0),r0 ! 2896: movei #84,r1 ! 2897: add r1,r0 ! 2898: load (r0),r0 ! 2899: load (FP),r2 ; local thing ! 2900: add r1,r2 ! 2901: load (r2),r1 ! 2902: cmp r0,r1 ! 2903: movei #L278,scratch ! 2904: jump NE,(scratch) ! 2905: nop ! 2906: ! 2907: load (FP),r0 ; local thing ! 2908: movei #_basething,r1 ! 2909: load (r1),r1 ! 2910: movei #116,r2 ! 2911: add r2,r1 ! 2912: load (r1),r1 ! 2913: cmp r0,r1 ! 2914: movei #L280,scratch ! 2915: jump NE,(scratch) ! 2916: nop ! 2917: ! 2918: moveq #1,r0 ! 2919: move r0,RETURNVALUE ! 2920: ! 2921: movei #L257,r0 ! 2922: jump T,(r0) ! 2923: nop ! 2924: ! 2925: L280: ! 2926: ! 2927: load (FP),r0 ; local thing ! 2928: movei #84,r1 ! 2929: add r1,r0 ! 2930: load (r0),r0 ! 2931: moveq #0,r1 ! 2932: cmp r0,r1 ! 2933: movei #L282,scratch ! 2934: jump EQ,(scratch) ! 2935: nop ! 2936: ! 2937: moveq #0,r0 ! 2938: move r0,RETURNVALUE ! 2939: ! 2940: movei #L257,r0 ! 2941: jump T,(r0) ! 2942: nop ! 2943: ! 2944: L282: ! 2945: ! 2946: L278: ! 2947: ! 2948: load (FP),r0 ; local thing ! 2949: movei #100,r1 ! 2950: add r1,r0 ! 2951: load (r0),r0 ! 2952: moveq #4,r1 ! 2953: and r1,r0 ! 2954: moveq #0,r1 ! 2955: cmp r0,r1 ! 2956: movei #L284,scratch ! 2957: jump NE,(scratch) ! 2958: nop ! 2959: ! 2960: load (FP),r0 ; local thing ! 2961: movei #100,r1 ! 2962: add r1,r0 ! 2963: load (r0),r0 ! 2964: moveq #2,r1 ! 2965: and r1,r0 ! 2966: moveq #0,r1 ! 2967: cmp r0,r1 ! 2968: movei #L287,scratch ! 2969: jump NE,(scratch) ! 2970: nop ! 2971: moveq #1,r0 ! 2972: move r0,r17 ;(286) ! 2973: movei #L288,r0 ! 2974: jump T,(r0) ! 2975: nop ! 2976: L287: ! 2977: moveq #0,r0 ! 2978: move r0,r17 ;(286) ! 2979: L288: ! 2980: move r17,RETURNVALUE ;(286) ! 2981: ! 2982: movei #L257,r0 ! 2983: jump T,(r0) ! 2984: nop ! 2985: ! 2986: L284: ! 2987: ! 2988: movei #_hitthing,r0 ! 2989: load (FP),r1 ; local thing ! 2990: load (r0),r30 ; FUCKING dsp! ! 2991: or r30,r30 ; FUCKING dsp! ! 2992: store r1,(r0) ! 2993: moveq #0,r0 ! 2994: move r0,RETURNVALUE ! 2995: ! 2996: movei #L257,r0 ! 2997: jump T,(r0) ! 2998: nop ! 2999: ! 3000: L272: ! 3001: ! 3002: load (FP),r0 ; local thing ! 3003: movei #100,r1 ! 3004: add r1,r0 ! 3005: load (r0),r0 ! 3006: moveq #2,r1 ! 3007: and r1,r0 ! 3008: moveq #0,r1 ! 3009: cmp r0,r1 ! 3010: movei #L290,scratch ! 3011: jump NE,(scratch) ! 3012: nop ! 3013: moveq #1,r0 ! 3014: move r0,r18 ;(289) ! 3015: movei #L291,r0 ! 3016: jump T,(r0) ! 3017: nop ! 3018: L290: ! 3019: moveq #0,r0 ! 3020: move r0,r18 ;(289) ! 3021: L291: ! 3022: move r18,RETURNVALUE ;(289) ! 3023: ! 3024: L257: ! 3025: jump T,(RETURNPOINT) ! 3026: nop ; delay slot ! 3027: ! 3028: ;==================== ! 3029: _PB_MoveLinesIterator:: ! 3030: ;3 dag registers 3 register variables ! 3031: ;localoffset:4 regoffset:4 argoffset:32 ! 3032: ;==================== ! 3033: subq #32,FP ! 3034: ! 3035: load (FP+9),r0 ; local y ! 3036: movei #_bmapwidth,r1 ! 3037: load (r1),r1 ! 3038: move r0,MATH_A ! 3039: movei #L303,MATH_RTS ! 3040: movei #GPU_IMUL,scratch ! 3041: jump T,(scratch) ! 3042: move r1,MATH_B ; delay slot ! 3043: L303: ! 3044: move MATH_C,r0 ! 3045: load (FP+8),r1 ; local x ! 3046: add r1,r0 ! 3047: move r0,r17 ;(offset) ! 3048: movei #-1,r0 ! 3049: move r17,r1 ;(offset) ! 3050: sha r0,r1 ! 3051: movei #_blockmap,r2 ! 3052: load (r2),r2 ! 3053: add r2,r1 ! 3054: loadw (r1),r1 ! 3055: movei #$ffff8000,scratch ! 3056: add scratch,r1 ! 3057: xor scratch,r1 ! 3058: move r1,r17 ;(offset) ! 3059: move r17,r1 ;(offset) ! 3060: sha r0,r1 ! 3061: movei #_blockmaplump,r0 ! 3062: load (r0),r0 ! 3063: add r0,r1 ! 3064: move r1,r16 ;(list) ! 3065: ! 3066: movei #L296,r0 ! 3067: jump T,(r0) ! 3068: nop ! 3069: ! 3070: L293: ! 3071: ! 3072: movei #76,r0 ! 3073: loadw (r16),r1 ;(list) ! 3074: movei #$ffff8000,scratch ! 3075: add scratch,r1 ! 3076: xor scratch,r1 ! 3077: move r0,MATH_A ! 3078: movei #L304,MATH_RTS ! 3079: movei #GPU_IMUL,scratch ! 3080: jump T,(scratch) ! 3081: move r1,MATH_B ; delay slot ! 3082: L304: ! 3083: move MATH_C,r0 ! 3084: movei #_lines,r1 ! 3085: load (r1),r1 ! 3086: add r1,r0 ! 3087: move r0,r15 ;(ld) ! 3088: movei #64,r0 ! 3089: move r15,r1 ;(ld) ! 3090: add r0,r1 ! 3091: load (r1),r0 ! 3092: movei #_validcount,r1 ! 3093: load (r1),r1 ! 3094: cmp r0,r1 ! 3095: movei #L297,scratch ! 3096: jump NE,(scratch) ! 3097: nop ! 3098: ! 3099: movei #L294,r0 ! 3100: jump T,(r0) ! 3101: nop ! 3102: ! 3103: L297: ! 3104: ! 3105: movei #64,r0 ! 3106: move r15,r1 ;(ld) ! 3107: add r0,r1 ! 3108: movei #_validcount,r0 ! 3109: load (r0),r0 ! 3110: load (r1),r30 ; FUCKING dsp! ! 3111: or r30,r30 ; FUCKING dsp! ! 3112: store r0,(r1) ! 3113: ! 3114: store r15,(FP) ; arg[] ;(ld) ! 3115: movei #_PB_BoxCrossLine,r0 ! 3116: store r28,(FP+1) ; push ;(RETURNPOINT) ! 3117: store r17,(FP+2) ; push ;(offset) ! 3118: store r16,(FP+3) ; push ;(list) ! 3119: movei #L305,RETURNPOINT ! 3120: jump T,(r0) ! 3121: store r15,(FP+4) ; delay slot push ;(ld) ! 3122: L305: ! 3123: load (FP+2),r17 ; pop ;(offset) ! 3124: load (FP+3),r16 ; pop ;(list) ! 3125: load (FP+4),r15 ; pop ;(ld) ! 3126: load (FP+1), RETURNPOINT ; pop ! 3127: moveq #0,r0 ! 3128: cmp r29,r0 ;(RETURNVALUE) ! 3129: movei #L299,scratch ! 3130: jump EQ,(scratch) ! 3131: nop ! 3132: ! 3133: store r15,(FP) ; arg[] ;(ld) ! 3134: movei #_PB_CheckLine,r0 ! 3135: store r28,(FP+1) ; push ;(RETURNPOINT) ! 3136: store r17,(FP+2) ; push ;(offset) ! 3137: store r16,(FP+3) ; push ;(list) ! 3138: movei #L306,RETURNPOINT ! 3139: jump T,(r0) ! 3140: store r15,(FP+4) ; delay slot push ;(ld) ! 3141: L306: ! 3142: load (FP+2),r17 ; pop ;(offset) ! 3143: load (FP+3),r16 ; pop ;(list) ! 3144: load (FP+4),r15 ; pop ;(ld) ! 3145: load (FP+1), RETURNPOINT ; pop ! 3146: moveq #0,r0 ! 3147: cmp r29,r0 ;(RETURNVALUE) ! 3148: movei #L301,scratch ! 3149: jump NE,(scratch) ! 3150: nop ! 3151: ! 3152: moveq #0,r0 ! 3153: move r0,RETURNVALUE ! 3154: ! 3155: movei #L292,r0 ! 3156: jump T,(r0) ! 3157: nop ! 3158: ! 3159: L301: ! 3160: ! 3161: L299: ! 3162: ! 3163: L294: ! 3164: ! 3165: move r16,r0 ;(list) ! 3166: addq #2,r0 ! 3167: move r0,r16 ;(list) ! 3168: ! 3169: L296: ! 3170: ! 3171: loadw (r16),r0 ;(list) ! 3172: movei #$ffff8000,scratch ! 3173: add scratch,r0 ! 3174: xor scratch,r0 ! 3175: movei #-1,r1 ! 3176: cmp r0,r1 ! 3177: movei #L293,scratch ! 3178: jump NE,(scratch) ! 3179: nop ! 3180: ! 3181: moveq #1,r0 ! 3182: move r0,RETURNVALUE ! 3183: ! 3184: L292: ! 3185: jump T,(RETURNPOINT) ! 3186: addq #32,FP ; delay slot ! 3187: ! 3188: ;==================== ! 3189: _PB_MoveThingsIterator:: ! 3190: ;2 dag registers 1 register variables ! 3191: ;localoffset:4 regoffset:4 argoffset:20 ! 3192: ;==================== ! 3193: subq #20,FP ! 3194: ! 3195: load (FP+6),r0 ; local y ! 3196: movei #_bmapwidth,r1 ! 3197: load (r1),r1 ! 3198: move r0,MATH_A ! 3199: movei #L314,MATH_RTS ! 3200: movei #GPU_IMUL,scratch ! 3201: jump T,(scratch) ! 3202: move r1,MATH_B ; delay slot ! 3203: L314: ! 3204: move MATH_C,r0 ! 3205: load (FP+5),r1 ; local x ! 3206: add r1,r0 ! 3207: shlq #2,r0 ! 3208: movei #_blocklinks,r1 ! 3209: load (r1),r1 ! 3210: add r1,r0 ! 3211: load (r0),r0 ! 3212: move r0,r15 ;(mobj) ! 3213: ! 3214: movei #L311,r0 ! 3215: jump T,(r0) ! 3216: nop ! 3217: ! 3218: L308: ! 3219: ! 3220: store r15,(FP) ; arg[] ;(mobj) ! 3221: movei #_PB_CheckThing,r0 ! 3222: store r28,(FP+1) ; push ;(RETURNPOINT) ! 3223: movei #L315,RETURNPOINT ! 3224: jump T,(r0) ! 3225: store r15,(FP+2) ; delay slot push ;(mobj) ! 3226: L315: ! 3227: load (FP+2),r15 ; pop ;(mobj) ! 3228: load (FP+1), RETURNPOINT ; pop ! 3229: moveq #0,r0 ! 3230: cmp r29,r0 ;(RETURNVALUE) ! 3231: movei #L312,scratch ! 3232: jump NE,(scratch) ! 3233: nop ! 3234: ! 3235: moveq #0,r0 ! 3236: move r0,RETURNVALUE ! 3237: ! 3238: movei #L307,r0 ! 3239: jump T,(r0) ! 3240: nop ! 3241: ! 3242: L312: ! 3243: ! 3244: L309: ! 3245: ! 3246: movei #44,r0 ! 3247: move r15,r1 ;(mobj) ! 3248: add r0,r1 ! 3249: load (r1),r0 ! 3250: move r0,r15 ;(mobj) ! 3251: ! 3252: L311: ! 3253: ! 3254: move r15,r0 ;(mobj) ! 3255: moveq #0,r1 ! 3256: cmp r0,r1 ! 3257: movei #L308,scratch ! 3258: jump NE,(scratch) ! 3259: nop ! 3260: ! 3261: moveq #1,r0 ! 3262: move r0,RETURNVALUE ! 3263: ! 3264: L307: ! 3265: jump T,(RETURNPOINT) ! 3266: addq #20,FP ; delay slot ! 3267: ! 3268: ;======================= ! 3269: ! 3270: .extern _PB_UnsetThingPosition ! 3271: .extern _PB_PointInSubsector ! 3272: .long ! 3273: _testflags:: ! 3274: .dc.l 0 ! 3275: .long ! 3276: _testbbox:: ! 3277: .dc.l 0 ! 3278: .dc.l 0 ! 3279: .dc.l 0 ! 3280: .dc.l 0 ! 3281: .long ! 3282: _hitthing:: ! 3283: .dc.l 0 ! 3284: .long ! 3285: _ceilingline:: ! 3286: .dc.l 0 ! 3287: .long ! 3288: _testsubsec:: ! 3289: .dc.l 0 ! 3290: .long ! 3291: _testdropoffz:: ! 3292: .dc.l 0 ! 3293: .long ! 3294: _testceilingz:: ! 3295: .dc.l 0 ! 3296: .long ! 3297: _testfloorz:: ! 3298: .dc.l 0 ! 3299: .long ! 3300: _testy:: ! 3301: .dc.l 0 ! 3302: .long ! 3303: _testx:: ! 3304: .dc.l 0 ! 3305: .long ! 3306: _basething:: ! 3307: .dc.l 0 ! 3308: .extern _blocklinks ! 3309: .extern _bmaporgy ! 3310: .extern _bmaporgx ! 3311: .extern _bmapheight ! 3312: .extern _bmapwidth ! 3313: .extern _blockmap ! 3314: .extern _blockmaplump ! 3315: .extern _P_ExplodeMissile ! 3316: .extern _L_MissileHit ! 3317: .extern _L_SkullBash ! 3318: .extern _P_RemoveMobj ! 3319: .extern _activemobjs ! 3320: .extern _mobjhead ! 3321: .extern _validcount ! 3322: .extern _lines ! 3323: .extern _states ! 3324: ! 3325: .phrase ! 3326: .68000 ! 3327: codeend:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.