|
|
1.1 ! root 1: .long ! 2: .dc.l codeend-_p_move_start ! 3: _p_move_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: _PM_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: _PM_UnsetThingPosition:: ! 143: ;============================================================================== ! 144: us_thing .equr r15 ! 145: us_blockx .equr r16 ! 146: us_blocky .equr r17 ! 147: us_next .equr r18 ! 148: us_prev .equr r19 ! 149: ! 150: load (FP),us_thing ! 151: ! 152: load (us_thing+6),us_next ; thing->snext ! 153: load (us_thing+7),us_prev ; thing->sprev ! 154: ! 155: or us_next,us_next ! 156: jr EQ,nosnext ! 157: nop ! 158: moveq #7*4,scratch ! 159: add us_next,scratch ; thing->snext->sprev ! 160: load (scratch),r31 ; DSP BUG ! 161: store us_prev,(scratch) ! 162: nosnext: ! 163: ! 164: or us_prev,us_prev ! 165: jr EQ,nosprev ! 166: nop ! 167: moveq #6*4,scratch ! 168: add us_prev,scratch ; thing->sprev->snext ! 169: load (scratch),r31 ; DSP BUG ! 170: store us_next,(scratch) ! 171: jr T,slinksdone ! 172: nop ! 173: ! 174: nosprev: ! 175: ! 176: load (us_thing+13),scratch ; thing->subsector ! 177: load (scratch),scratch ; thing->subsector->sector ! 178: movei #20*4,scratch2 ! 179: add scratch2,scratch ; thing->subsector->sector->thinglist ! 180: load (scratch),r31 ; DSP BUG ! 181: store us_next,(scratch) ! 182: ! 183: slinksdone: ! 184: ! 185: load (us_thing+25),scratch ; thing->flags ! 186: btst #4,scratch ; MF_NOBLOCKMAP ! 187: jump NE,(RETURNPOINT) ! 188: nop ! 189: ! 190: ; ! 191: ; block links ! 192: ; ! 193: load (us_thing+11),us_next ! 194: load (us_thing+12),us_prev ! 195: ! 196: or us_next,us_next ! 197: jr EQ,nobnext ! 198: nop ! 199: movei #12*4,scratch ! 200: add us_next,scratch ; thing->bnext->bprev ! 201: load (scratch),r31 ; DSP BUG ! 202: store us_prev,(scratch) ! 203: nobnext: ! 204: ! 205: or us_prev,us_prev ! 206: jr EQ,nobprev ! 207: nop ! 208: movei #11*4,scratch ! 209: add us_prev,scratch ! 210: load (scratch),r31 ; DSP BUG ! 211: store us_next,(scratch) ! 212: jump T,(RETURNPOINT) ! 213: nop ! 214: ! 215: nobprev: ! 216: ! 217: load (us_thing+3),us_blockx ! 218: movei #_bmaporgx,scratch ! 219: load (scratch),scratch ! 220: sub scratch,us_blockx ! 221: shrq #23,us_blockx ! 222: ! 223: load (us_thing+4),us_blocky ! 224: movei #_bmaporgy,scratch ! 225: load (scratch),scratch ! 226: sub scratch,us_blocky ! 227: shrq #23,us_blocky ! 228: ! 229: movei #_bmapwidth,scratch ! 230: load (scratch),scratch ! 231: mult scratch,us_blocky ! 232: add us_blockx,us_blocky ! 233: shlq #2,us_blocky ; int width table ! 234: ! 235: movei #_blocklinks,scratch ! 236: load (scratch),scratch ! 237: ! 238: add us_blocky,scratch ! 239: ! 240: load (scratch),r31 ; DSP BUG ! 241: store us_next,(scratch) ! 242: ! 243: jump T,(RETURNPOINT) ! 244: nop ! 245: ! 246: ! 247: codestart: ! 248: ; unfuckdsp output -- add loads before external dsp stores ! 249: ! 250: ;==================== ! 251: _P_TryMove2:: ! 252: ;3 dag registers 0 register variables ! 253: ;localoffset:4 regoffset:4 argoffset:20 ! 254: ;==================== ! 255: subq #20,FP ! 256: ! 257: movei #_trymove2,r0 ! 258: moveq #0,r1 ! 259: load (r0),r30 ; FUCKING dsp! ! 260: or r30,r30 ; FUCKING dsp! ! 261: store r1,(r0) ! 262: movei #_floatok,r0 ! 263: load (r0),r30 ; FUCKING dsp! ! 264: or r30,r30 ; FUCKING dsp! ! 265: store r1,(r0) ! 266: movei #_oldx,r0 ! 267: movei #_tmthing,r1 ! 268: load (r1),r1 ! 269: move r1,r2 ! 270: addq #12,r2 ! 271: load (r2),r2 ! 272: load (r0),r30 ; FUCKING dsp! ! 273: or r30,r30 ; FUCKING dsp! ! 274: store r2,(r0) ! 275: movei #_oldy,r0 ! 276: addq #16,r1 ! 277: load (r1),r1 ! 278: load (r0),r30 ; FUCKING dsp! ! 279: or r30,r30 ; FUCKING dsp! ! 280: store r1,(r0) ! 281: movei #_PM_CheckPosition,r0 ! 282: store r28,(FP+1) ; push ;(RETURNPOINT) ! 283: movei #L86,RETURNPOINT ! 284: jump T,(r0) ! 285: nop ; delay slot ! 286: L86: ! 287: load (FP+1), RETURNPOINT ; pop ! 288: ! 289: movei #_checkposonly,r0 ! 290: load (r0),r0 ! 291: moveq #0,r1 ! 292: cmp r0,r1 ! 293: movei #L72,scratch ! 294: jump EQ,(scratch) ! 295: nop ! 296: ! 297: movei #_checkposonly,r0 ! 298: moveq #0,r1 ! 299: load (r0),r30 ; FUCKING dsp! ! 300: or r30,r30 ; FUCKING dsp! ! 301: store r1,(r0) ! 302: ! 303: movei #L71,r0 ! 304: jump T,(r0) ! 305: nop ! 306: ! 307: L72: ! 308: ! 309: movei #_trymove2,r0 ! 310: load (r0),r0 ! 311: moveq #0,r1 ! 312: cmp r0,r1 ! 313: movei #L74,scratch ! 314: jump NE,(scratch) ! 315: nop ! 316: ! 317: ! 318: movei #L71,r0 ! 319: jump T,(r0) ! 320: nop ! 321: ! 322: L74: ! 323: ! 324: movei #_tmthing,r0 ! 325: load (r0),r0 ! 326: movei #100,r1 ! 327: add r1,r0 ! 328: load (r0),r0 ! 329: movei #4096,r1 ! 330: and r1,r0 ! 331: moveq #0,r1 ! 332: cmp r0,r1 ! 333: movei #L76,scratch ! 334: jump NE,(scratch) ! 335: nop ! 336: ! 337: movei #_trymove2,r0 ! 338: moveq #0,r1 ! 339: load (r0),r30 ; FUCKING dsp! ! 340: or r30,r30 ; FUCKING dsp! ! 341: store r1,(r0) ! 342: movei #_tmceilingz,r0 ! 343: load (r0),r0 ! 344: movei #_tmfloorz,r1 ! 345: load (r1),r1 ! 346: sub r1,r0 ! 347: movei #_tmthing,r1 ! 348: load (r1),r1 ! 349: movei #68,r2 ! 350: add r2,r1 ! 351: load (r1),r1 ! 352: cmp r0,r1 ! 353: movei #L78,scratch ! 354: jump EQ,(scratch) ! 355: nop ! 356: jump MI,(scratch) ! 357: nop ! 358: ! 359: ! 360: movei #L71,r0 ! 361: jump T,(r0) ! 362: nop ! 363: ! 364: L78: ! 365: ! 366: movei #_floatok,r0 ! 367: moveq #1,r1 ! 368: load (r0),r30 ; FUCKING dsp! ! 369: or r30,r30 ; FUCKING dsp! ! 370: store r1,(r0) ! 371: movei #_tmthing,r0 ! 372: load (r0),r0 ! 373: movei #100,r1 ! 374: move r0,r2 ! 375: add r1,r2 ! 376: load (r2),r1 ! 377: movei #32768,r2 ! 378: and r2,r1 ! 379: moveq #0,r2 ! 380: cmp r1,r2 ! 381: movei #L80,scratch ! 382: jump NE,(scratch) ! 383: nop ! 384: movei #_tmceilingz,r1 ! 385: load (r1),r1 ! 386: move r0,r2 ! 387: addq #20,r2 ! 388: load (r2),r2 ! 389: sub r2,r1 ! 390: movei #68,r2 ! 391: add r2,r0 ! 392: load (r0),r0 ! 393: cmp r1,r0 ! 394: movei #L80,scratch ! 395: jump EQ,(scratch) ! 396: nop ! 397: jump MI,(scratch) ! 398: nop ! 399: ! 400: ! 401: movei #L71,r0 ! 402: jump T,(r0) ! 403: nop ! 404: ! 405: L80: ! 406: ! 407: movei #_tmthing,r0 ! 408: load (r0),r0 ! 409: movei #100,r1 ! 410: move r0,r2 ! 411: add r1,r2 ! 412: load (r2),r1 ! 413: movei #32768,r2 ! 414: and r2,r1 ! 415: moveq #0,r2 ! 416: cmp r1,r2 ! 417: movei #L82,scratch ! 418: jump NE,(scratch) ! 419: nop ! 420: movei #_tmfloorz,r1 ! 421: load (r1),r1 ! 422: addq #20,r0 ! 423: load (r0),r0 ! 424: sub r0,r1 ! 425: movei #1572864,r0 ! 426: cmp r1,r0 ! 427: movei #L82,scratch ! 428: jump PL,(scratch) ! 429: nop ! 430: ! 431: ! 432: movei #L71,r0 ! 433: jump T,(r0) ! 434: nop ! 435: ! 436: L82: ! 437: ! 438: movei #_tmthing,r0 ! 439: load (r0),r0 ! 440: movei #100,r1 ! 441: add r1,r0 ! 442: load (r0),r0 ! 443: movei #17408,r1 ! 444: and r1,r0 ! 445: moveq #0,r1 ! 446: cmp r0,r1 ! 447: movei #L84,scratch ! 448: jump NE,(scratch) ! 449: nop ! 450: movei #_tmfloorz,r0 ! 451: load (r0),r0 ! 452: movei #_tmdropoffz,r1 ! 453: load (r1),r1 ! 454: sub r1,r0 ! 455: movei #1572864,r1 ! 456: cmp r0,r1 ! 457: movei #L84,scratch ! 458: jump PL,(scratch) ! 459: nop ! 460: ! 461: ! 462: movei #L71,r0 ! 463: jump T,(r0) ! 464: nop ! 465: ! 466: L84: ! 467: ! 468: L76: ! 469: ! 470: movei #_tmthing,r0 ! 471: load (r0),r0 ! 472: store r0,(FP) ; arg[] ! 473: movei #_PM_UnsetThingPosition,r0 ! 474: store r28,(FP+1) ; push ;(RETURNPOINT) ! 475: movei #L87,RETURNPOINT ! 476: jump T,(r0) ! 477: nop ; delay slot ! 478: L87: ! 479: load (FP+1), RETURNPOINT ; pop ! 480: ! 481: movei #_tmthing,r0 ! 482: load (r0),r0 ! 483: movei #56,r1 ! 484: add r1,r0 ! 485: movei #_tmfloorz,r1 ! 486: load (r1),r1 ! 487: load (r0),r30 ; FUCKING dsp! ! 488: or r30,r30 ; FUCKING dsp! ! 489: store r1,(r0) ! 490: ! 491: movei #_tmthing,r0 ! 492: load (r0),r0 ! 493: movei #60,r1 ! 494: add r1,r0 ! 495: movei #_tmceilingz,r1 ! 496: load (r1),r1 ! 497: load (r0),r30 ; FUCKING dsp! ! 498: or r30,r30 ; FUCKING dsp! ! 499: store r1,(r0) ! 500: ! 501: movei #_tmthing,r0 ! 502: load (r0),r0 ! 503: addq #12,r0 ! 504: movei #_tmx,r1 ! 505: load (r1),r1 ! 506: load (r0),r30 ; FUCKING dsp! ! 507: or r30,r30 ; FUCKING dsp! ! 508: store r1,(r0) ! 509: ! 510: movei #_tmthing,r0 ! 511: load (r0),r0 ! 512: addq #16,r0 ! 513: movei #_tmy,r1 ! 514: load (r1),r1 ! 515: load (r0),r30 ; FUCKING dsp! ! 516: or r30,r30 ; FUCKING dsp! ! 517: store r1,(r0) ! 518: ! 519: movei #_tmthing,r0 ! 520: load (r0),r0 ! 521: store r0,(FP) ; arg[] ! 522: movei #_PM_SetThingPosition,r0 ! 523: store r28,(FP+1) ; push ;(RETURNPOINT) ! 524: movei #L88,RETURNPOINT ! 525: jump T,(r0) ! 526: nop ; delay slot ! 527: L88: ! 528: load (FP+1), RETURNPOINT ; pop ! 529: ! 530: movei #_trymove2,r0 ! 531: moveq #1,r1 ! 532: load (r0),r30 ; FUCKING dsp! ! 533: or r30,r30 ; FUCKING dsp! ! 534: store r1,(r0) ! 535: ! 536: L71: ! 537: jump T,(RETURNPOINT) ! 538: addq #20,FP ; delay slot ! 539: ! 540: ;==================== ! 541: _PM_PointOnLineSide:: ! 542: ;6 dag registers 0 register variables ! 543: ;localoffset:0 regoffset:16 argoffset:16 ! 544: ;==================== ! 545: subq #16,FP ! 546: ! 547: move FP,r0 ; &dx ! 548: load (FP+4),r1 ; local x ! 549: load (FP+6),r2 ; local line ! 550: load (r2),r3 ! 551: load (r3),r3 ! 552: sub r3,r1 ! 553: load (r0),r30 ; FUCKING dsp! ! 554: or r30,r30 ; FUCKING dsp! ! 555: store r1,(r0) ! 556: move FP,r1 ! 557: addq #4,r1 ; &dy ! 558: load (FP+5),r3 ; local y ! 559: load (r2),r4 ! 560: addq #4,r4 ! 561: load (r4),r4 ! 562: sub r4,r3 ! 563: load (r1),r30 ; FUCKING dsp! ! 564: or r30,r30 ; FUCKING dsp! ! 565: store r3,(r1) ! 566: move FP,r3 ! 567: addq #8,r3 ; &left ! 568: move r2,r4 ! 569: addq #12,r4 ! 570: load (r4),r4 ! 571: moveq #16,r5 ! 572: sha r5,r4 ! 573: load (r0),r0 ! 574: sha r5,r0 ! 575: move r4,MATH_A ! 576: movei #L92,MATH_RTS ! 577: movei #GPU_IMUL,scratch ! 578: jump T,(scratch) ! 579: move r0,MATH_B ; delay slot ! 580: L92: ! 581: move MATH_C,r4 ! 582: load (r3),r30 ; FUCKING dsp! ! 583: or r30,r30 ; FUCKING dsp! ! 584: store r4,(r3) ! 585: move FP,r0 ! 586: addq #12,r0 ; &right ! 587: load (r1),r1 ! 588: sha r5,r1 ! 589: addq #8,r2 ! 590: load (r2),r2 ! 591: sha r5,r2 ! 592: move r1,MATH_A ! 593: movei #L93,MATH_RTS ! 594: movei #GPU_IMUL,scratch ! 595: jump T,(scratch) ! 596: move r2,MATH_B ; delay slot ! 597: L93: ! 598: move MATH_C,r1 ! 599: load (r0),r30 ; FUCKING dsp! ! 600: or r30,r30 ; FUCKING dsp! ! 601: store r1,(r0) ! 602: load (r0),r0 ! 603: load (r3),r1 ! 604: cmp r0,r1 ! 605: movei #L90,scratch ! 606: jump EQ,(scratch) ! 607: nop ! 608: jump MI,(scratch) ! 609: nop ! 610: ! 611: moveq #0,r0 ! 612: move r0,RETURNVALUE ! 613: ! 614: movei #L89,r0 ! 615: jump T,(r0) ! 616: nop ! 617: ! 618: L90: ! 619: ! 620: moveq #1,r0 ! 621: move r0,RETURNVALUE ! 622: ! 623: L89: ! 624: jump T,(RETURNPOINT) ! 625: addq #16,FP ; delay slot ! 626: ! 627: ;==================== ! 628: _PM_SetThingPosition:: ! 629: ;5 dag registers 0 register variables ! 630: ;localoffset:0 regoffset:20 argoffset:20 ! 631: ;==================== ! 632: subq #20,FP ! 633: ! 634: move FP,r0 ! 635: addq #12,r0 ; &ss ! 636: movei #_newsubsec,r1 ! 637: load (r1),r1 ! 638: load (r0),r30 ; FUCKING dsp! ! 639: or r30,r30 ; FUCKING dsp! ! 640: store r1,(r0) ! 641: load (FP+5),r0 ; local thing ! 642: movei #52,r2 ! 643: add r2,r0 ! 644: load (r0),r30 ; FUCKING dsp! ! 645: or r30,r30 ; FUCKING dsp! ! 646: store r1,(r0) ! 647: ! 648: load (FP+5),r0 ; local thing ! 649: movei #100,r1 ! 650: add r1,r0 ! 651: load (r0),r0 ! 652: moveq #8,r1 ! 653: and r1,r0 ! 654: moveq #0,r1 ! 655: cmp r0,r1 ! 656: movei #L95,scratch ! 657: jump NE,(scratch) ! 658: nop ! 659: ! 660: move FP,r0 ; &sec ! 661: load (FP+3),r1 ; local ss ! 662: load (r1),r1 ! 663: load (r0),r30 ; FUCKING dsp! ! 664: or r30,r30 ; FUCKING dsp! ! 665: store r1,(r0) ! 666: load (FP+5),r0 ; local thing ! 667: addq #28,r0 ! 668: moveq #0,r1 ! 669: load (r0),r30 ; FUCKING dsp! ! 670: or r30,r30 ; FUCKING dsp! ! 671: store r1,(r0) ! 672: ! 673: load (FP+5),r0 ; local thing ! 674: addq #24,r0 ! 675: load (FP),r1 ; local sec ! 676: movei #80,r2 ! 677: add r2,r1 ! 678: load (r1),r1 ! 679: load (r0),r30 ; FUCKING dsp! ! 680: or r30,r30 ; FUCKING dsp! ! 681: store r1,(r0) ! 682: ! 683: load (FP),r0 ; local sec ! 684: movei #80,r1 ! 685: add r1,r0 ! 686: load (r0),r0 ! 687: moveq #0,r1 ! 688: cmp r0,r1 ! 689: movei #L97,scratch ! 690: jump EQ,(scratch) ! 691: nop ! 692: ! 693: load (FP),r0 ; local sec ! 694: movei #80,r1 ! 695: add r1,r0 ! 696: load (r0),r0 ! 697: addq #28,r0 ! 698: load (FP+5),r1 ; local thing ! 699: load (r0),r30 ; FUCKING dsp! ! 700: or r30,r30 ; FUCKING dsp! ! 701: store r1,(r0) ! 702: ! 703: L97: ! 704: ! 705: load (FP),r0 ; local sec ! 706: movei #80,r1 ! 707: add r1,r0 ! 708: load (FP+5),r1 ; local thing ! 709: load (r0),r30 ; FUCKING dsp! ! 710: or r30,r30 ; FUCKING dsp! ! 711: store r1,(r0) ! 712: ! 713: L95: ! 714: ! 715: load (FP+5),r0 ; local thing ! 716: movei #100,r1 ! 717: add r1,r0 ! 718: load (r0),r0 ! 719: moveq #16,r1 ! 720: and r1,r0 ! 721: moveq #0,r1 ! 722: cmp r0,r1 ! 723: movei #L99,scratch ! 724: jump NE,(scratch) ! 725: nop ! 726: ! 727: move FP,r0 ! 728: addq #4,r0 ; &blockx ! 729: load (FP+5),r1 ; local thing ! 730: move r1,r2 ! 731: addq #12,r2 ! 732: load (r2),r2 ! 733: movei #_bmaporgx,r3 ! 734: load (r3),r3 ! 735: sub r3,r2 ! 736: moveq #23,r3 ! 737: sha r3,r2 ! 738: load (r0),r30 ; FUCKING dsp! ! 739: or r30,r30 ; FUCKING dsp! ! 740: store r2,(r0) ! 741: move FP,r2 ! 742: addq #8,r2 ; &blocky ! 743: addq #16,r1 ! 744: load (r1),r1 ! 745: movei #_bmaporgy,r4 ! 746: load (r4),r4 ! 747: sub r4,r1 ! 748: sha r3,r1 ! 749: load (r2),r30 ; FUCKING dsp! ! 750: or r30,r30 ; FUCKING dsp! ! 751: store r1,(r2) ! 752: load (r0),r0 ! 753: moveq #0,r1 ! 754: cmp r0,r1 ! 755: movei #L101,scratch ! 756: jump S_LT,(scratch) ! 757: nop ! 758: movei #_bmapwidth,r3 ! 759: load (r3),r3 ! 760: cmp r0,r3 ! 761: movei #L101,scratch ! 762: jump EQ,(scratch) ! 763: nop ! 764: jump MI,(scratch) ! 765: nop ! 766: load (r2),r0 ! 767: cmp r0,r1 ! 768: movei #L101,scratch ! 769: jump S_LT,(scratch) ! 770: nop ! 771: movei #_bmapheight,r1 ! 772: load (r1),r1 ! 773: cmp r0,r1 ! 774: movei #L101,scratch ! 775: jump EQ,(scratch) ! 776: nop ! 777: jump MI,(scratch) ! 778: nop ! 779: ! 780: move FP,r0 ! 781: addq #16,r0 ; &link ! 782: load (FP+2),r1 ; local blocky ! 783: movei #_bmapwidth,r2 ! 784: load (r2),r2 ! 785: move r1,MATH_A ! 786: movei #L105,MATH_RTS ! 787: movei #GPU_IMUL,scratch ! 788: jump T,(scratch) ! 789: move r2,MATH_B ; delay slot ! 790: L105: ! 791: move MATH_C,r1 ! 792: load (FP+1),r2 ; local blockx ! 793: add r2,r1 ! 794: shlq #2,r1 ! 795: movei #_blocklinks,r2 ! 796: load (r2),r2 ! 797: add r2,r1 ! 798: load (r0),r30 ; FUCKING dsp! ! 799: or r30,r30 ; FUCKING dsp! ! 800: store r1,(r0) ! 801: load (FP+5),r0 ; local thing ! 802: movei #48,r1 ! 803: add r1,r0 ! 804: moveq #0,r1 ! 805: load (r0),r30 ; FUCKING dsp! ! 806: or r30,r30 ; FUCKING dsp! ! 807: store r1,(r0) ! 808: ! 809: load (FP+5),r0 ; local thing ! 810: movei #44,r1 ! 811: add r1,r0 ! 812: load (FP+4),r1 ; local link ! 813: load (r1),r1 ! 814: load (r0),r30 ; FUCKING dsp! ! 815: or r30,r30 ; FUCKING dsp! ! 816: store r1,(r0) ! 817: ! 818: load (FP+4),r0 ; local link ! 819: load (r0),r0 ! 820: moveq #0,r1 ! 821: cmp r0,r1 ! 822: movei #L103,scratch ! 823: jump EQ,(scratch) ! 824: nop ! 825: ! 826: load (FP+4),r0 ; local link ! 827: load (r0),r0 ! 828: movei #48,r1 ! 829: add r1,r0 ! 830: load (FP+5),r1 ; local thing ! 831: load (r0),r30 ; FUCKING dsp! ! 832: or r30,r30 ; FUCKING dsp! ! 833: store r1,(r0) ! 834: ! 835: L103: ! 836: ! 837: load (FP+4),r0 ; local link ! 838: load (FP+5),r1 ; local thing ! 839: load (r0),r30 ; FUCKING dsp! ! 840: or r30,r30 ; FUCKING dsp! ! 841: store r1,(r0) ! 842: ! 843: movei #L102,r0 ! 844: jump T,(r0) ! 845: nop ! 846: ! 847: L101: ! 848: ! 849: load (FP+5),r0 ; local thing ! 850: movei #48,r1 ! 851: move r0,r2 ! 852: add r1,r2 ! 853: moveq #0,r1 ! 854: load (r2),r30 ; FUCKING dsp! ! 855: or r30,r30 ; FUCKING dsp! ! 856: store r1,(r2) ! 857: movei #44,r2 ! 858: add r2,r0 ! 859: load (r0),r30 ; FUCKING dsp! ! 860: or r30,r30 ; FUCKING dsp! ! 861: store r1,(r0) ! 862: ! 863: L102: ! 864: ! 865: L99: ! 866: ! 867: ! 868: L94: ! 869: jump T,(RETURNPOINT) ! 870: addq #20,FP ; delay slot ! 871: ! 872: ;==================== ! 873: _PM_CheckPosition:: ! 874: ;5 dag registers 6 register variables ! 875: ;localoffset:8 regoffset:8 argoffset:56 ! 876: ;==================== ! 877: movei #56,scratch ! 878: sub scratch,FP ! 879: ! 880: movei #_tmflags,r0 ! 881: movei #_tmthing,r1 ! 882: load (r1),r1 ! 883: movei #100,r2 ! 884: move r1,r3 ! 885: add r2,r3 ! 886: load (r3),r2 ! 887: load (r0),r30 ; FUCKING dsp! ! 888: or r30,r30 ; FUCKING dsp! ! 889: store r2,(r0) ! 890: movei #_tmbbox,r0 ! 891: movei #_tmy,r2 ! 892: load (r2),r2 ! 893: movei #64,r3 ! 894: add r3,r1 ! 895: load (r1),r3 ! 896: move r2,r4 ! 897: add r3,r4 ! 898: load (r0),r30 ; FUCKING dsp! ! 899: or r30,r30 ; FUCKING dsp! ! 900: store r4,(r0) ! 901: movei #_tmbbox+4,r0 ! 902: load (r1),r1 ! 903: sub r1,r2 ! 904: load (r0),r30 ; FUCKING dsp! ! 905: or r30,r30 ; FUCKING dsp! ! 906: store r2,(r0) ! 907: ! 908: movei #_tmbbox+12,r0 ! 909: movei #_tmx,r1 ! 910: load (r1),r1 ! 911: movei #_tmthing,r2 ! 912: load (r2),r2 ! 913: movei #64,r3 ! 914: add r3,r2 ! 915: load (r2),r2 ! 916: add r2,r1 ! 917: load (r0),r30 ; FUCKING dsp! ! 918: or r30,r30 ; FUCKING dsp! ! 919: store r1,(r0) ! 920: ! 921: movei #_tmbbox+8,r0 ! 922: movei #_tmx,r1 ! 923: load (r1),r1 ! 924: movei #_tmthing,r2 ! 925: load (r2),r2 ! 926: movei #64,r3 ! 927: add r3,r2 ! 928: load (r2),r2 ! 929: sub r2,r1 ! 930: load (r0),r30 ; FUCKING dsp! ! 931: or r30,r30 ; FUCKING dsp! ! 932: store r1,(r0) ! 933: ! 934: movei #_tmx,r0 ! 935: load (r0),r0 ! 936: store r0,(FP) ; arg[] ! 937: movei #_tmy,r0 ! 938: load (r0),r0 ! 939: or r0,scratch ; scoreboard bug ! 940: store r0,(FP+1) ; arg[] ! 941: movei #_PM_PointInSubsector,r0 ! 942: store r28,(FP+2) ; push ;(RETURNPOINT) ! 943: store r20,(FP+3) ; push ;(xl) ! 944: store r19,(FP+4) ; push ;(yl) ! 945: store r18,(FP+5) ; push ;(xh) ! 946: store r17,(FP+6) ; push ;(yh) ! 947: store r16,(FP+7) ; push ;(bx) ! 948: movei #L154,RETURNPOINT ! 949: jump T,(r0) ! 950: store r15,(FP+8) ; delay slot push ;(by) ! 951: L154: ! 952: load (FP+3),r20 ; pop ;(xl) ! 953: load (FP+4),r19 ; pop ;(yl) ! 954: load (FP+5),r18 ; pop ;(xh) ! 955: load (FP+6),r17 ; pop ;(yh) ! 956: load (FP+7),r16 ; pop ;(bx) ! 957: load (FP+8),r15 ; pop ;(by) ! 958: load (FP+2), RETURNPOINT ; pop ! 959: movei #_newsubsec,r0 ! 960: move r29,r1 ;(RETURNVALUE) ! 961: load (r0),r30 ; FUCKING dsp! ! 962: or r30,r30 ; FUCKING dsp! ! 963: store r1,(r0) ! 964: movei #_tmdropoffz,r0 ! 965: movei #_newsubsec,r1 ! 966: load (r1),r1 ! 967: load (r1),r2 ! 968: load (r2),r2 ! 969: load (r0),r30 ; FUCKING dsp! ! 970: or r30,r30 ; FUCKING dsp! ! 971: store r2,(r0) ! 972: movei #_tmfloorz,r0 ! 973: load (r0),r30 ; FUCKING dsp! ! 974: or r30,r30 ; FUCKING dsp! ! 975: store r2,(r0) ! 976: movei #_tmceilingz,r0 ! 977: load (r1),r1 ! 978: addq #4,r1 ! 979: load (r1),r1 ! 980: load (r0),r30 ; FUCKING dsp! ! 981: or r30,r30 ; FUCKING dsp! ! 982: store r1,(r0) ! 983: movei #_validcount,r0 ! 984: load (r0),r1 ! 985: addq #1,r1 ! 986: load (r0),r30 ; FUCKING dsp! ! 987: or r30,r30 ; FUCKING dsp! ! 988: store r1,(r0) ! 989: movei #_movething,r0 ! 990: moveq #0,r1 ! 991: load (r0),r30 ; FUCKING dsp! ! 992: or r30,r30 ; FUCKING dsp! ! 993: store r1,(r0) ! 994: movei #_blockline,r0 ! 995: load (r0),r30 ; FUCKING dsp! ! 996: or r30,r30 ; FUCKING dsp! ! 997: store r1,(r0) ! 998: movei #_tmflags,r0 ! 999: load (r0),r0 ! 1000: movei #4096,r1 ! 1001: and r1,r0 ! 1002: moveq #0,r1 ! 1003: cmp r0,r1 ! 1004: movei #L110,scratch ! 1005: jump EQ,(scratch) ! 1006: nop ! 1007: ! 1008: movei #_trymove2,r0 ! 1009: moveq #1,r1 ! 1010: load (r0),r30 ; FUCKING dsp! ! 1011: or r30,r30 ; FUCKING dsp! ! 1012: store r1,(r0) ! 1013: ! 1014: movei #L106,r0 ! 1015: jump T,(r0) ! 1016: nop ! 1017: ! 1018: L110: ! 1019: ! 1020: movei #_tmbbox+8,r0 ! 1021: load (r0),r0 ! 1022: movei #_bmaporgx,r1 ! 1023: load (r1),r1 ! 1024: sub r1,r0 ! 1025: movei #2097152,r2 ! 1026: sub r2,r0 ! 1027: moveq #23,r3 ! 1028: sha r3,r0 ! 1029: move r0,r20 ;(xl) ! 1030: movei #_tmbbox+12,r0 ! 1031: load (r0),r0 ! 1032: sub r1,r0 ! 1033: add r2,r0 ! 1034: sha r3,r0 ! 1035: move r0,r18 ;(xh) ! 1036: movei #_tmbbox+4,r0 ! 1037: load (r0),r0 ! 1038: movei #_bmaporgy,r1 ! 1039: load (r1),r1 ! 1040: sub r1,r0 ! 1041: sub r2,r0 ! 1042: sha r3,r0 ! 1043: move r0,r19 ;(yl) ! 1044: movei #_tmbbox,r0 ! 1045: load (r0),r0 ! 1046: sub r1,r0 ! 1047: add r2,r0 ! 1048: sha r3,r0 ! 1049: move r0,r17 ;(yh) ! 1050: moveq #0,r0 ! 1051: cmp r20,r0 ;(xl) ! 1052: movei #L115,scratch ! 1053: jump EQ,(scratch) ! 1054: nop ! 1055: jump MI,(scratch) ! 1056: nop ! 1057: ! 1058: moveq #0,r0 ! 1059: move r0,r20 ;(xl) ! 1060: ! 1061: L115: ! 1062: ! 1063: moveq #0,r0 ! 1064: cmp r19,r0 ;(yl) ! 1065: movei #L117,scratch ! 1066: jump EQ,(scratch) ! 1067: nop ! 1068: jump MI,(scratch) ! 1069: nop ! 1070: ! 1071: moveq #0,r0 ! 1072: move r0,r19 ;(yl) ! 1073: ! 1074: L117: ! 1075: ! 1076: movei #_bmapwidth,r0 ! 1077: load (r0),r0 ! 1078: cmp r18,r0 ;(xh) ! 1079: movei #L119,scratch ! 1080: jump S_LT,(scratch) ! 1081: nop ! 1082: ! 1083: movei #_bmapwidth,r0 ! 1084: load (r0),r0 ! 1085: subq #1,r0 ! 1086: move r0,r18 ;(xh) ! 1087: ! 1088: L119: ! 1089: ! 1090: movei #_bmapheight,r0 ! 1091: load (r0),r0 ! 1092: cmp r17,r0 ;(yh) ! 1093: movei #L121,scratch ! 1094: jump S_LT,(scratch) ! 1095: nop ! 1096: ! 1097: movei #_bmapheight,r0 ! 1098: load (r0),r0 ! 1099: subq #1,r0 ! 1100: move r0,r17 ;(yh) ! 1101: ! 1102: L121: ! 1103: ! 1104: move r20,r16 ;(xl)(bx) ! 1105: ! 1106: movei #L126,r0 ! 1107: jump T,(r0) ! 1108: nop ! 1109: ! 1110: L123: ! 1111: ! 1112: move r19,r15 ;(yl)(by) ! 1113: ! 1114: movei #L130,r0 ! 1115: jump T,(r0) ! 1116: nop ! 1117: ! 1118: L127: ! 1119: ! 1120: store r16,(FP) ; arg[] ;(bx) ! 1121: or r15,scratch ; scoreboard bug ;(by) ! 1122: store r15,(FP+1) ; arg[] ;(by) ! 1123: movei #_PM_MoveThingsIterator,r0 ! 1124: store r28,(FP+2) ; push ;(RETURNPOINT) ! 1125: store r20,(FP+3) ; push ;(xl) ! 1126: store r19,(FP+4) ; push ;(yl) ! 1127: store r18,(FP+5) ; push ;(xh) ! 1128: store r17,(FP+6) ; push ;(yh) ! 1129: store r16,(FP+7) ; push ;(bx) ! 1130: movei #L155,RETURNPOINT ! 1131: jump T,(r0) ! 1132: store r15,(FP+8) ; delay slot push ;(by) ! 1133: L155: ! 1134: load (FP+3),r20 ; pop ;(xl) ! 1135: load (FP+4),r19 ; pop ;(yl) ! 1136: load (FP+5),r18 ; pop ;(xh) ! 1137: load (FP+6),r17 ; pop ;(yh) ! 1138: load (FP+7),r16 ; pop ;(bx) ! 1139: load (FP+8),r15 ; pop ;(by) ! 1140: load (FP+2), RETURNPOINT ; pop ! 1141: moveq #0,r0 ! 1142: cmp r29,r0 ;(RETURNVALUE) ! 1143: movei #L131,scratch ! 1144: jump NE,(scratch) ! 1145: nop ! 1146: ! 1147: movei #_trymove2,r0 ! 1148: moveq #0,r1 ! 1149: load (r0),r30 ; FUCKING dsp! ! 1150: or r30,r30 ; FUCKING dsp! ! 1151: store r1,(r0) ! 1152: ! 1153: movei #L106,r0 ! 1154: jump T,(r0) ! 1155: nop ! 1156: ! 1157: L131: ! 1158: ! 1159: L128: ! 1160: ! 1161: move r15,r0 ;(by) ! 1162: addq #1,r0 ! 1163: move r0,r15 ;(by) ! 1164: ! 1165: L130: ! 1166: ! 1167: cmp r15,r17 ;(by)(yh) ! 1168: movei #L127,scratch ! 1169: jump PL,(scratch) ! 1170: nop ! 1171: ! 1172: L124: ! 1173: ! 1174: move r16,r0 ;(bx) ! 1175: addq #1,r0 ! 1176: move r0,r16 ;(bx) ! 1177: ! 1178: L126: ! 1179: ! 1180: cmp r16,r18 ;(bx)(xh) ! 1181: movei #L123,scratch ! 1182: jump PL,(scratch) ! 1183: nop ! 1184: ! 1185: movei #_tmbbox+8,r0 ! 1186: load (r0),r0 ! 1187: movei #_bmaporgx,r1 ! 1188: load (r1),r1 ! 1189: sub r1,r0 ! 1190: moveq #23,r2 ! 1191: sha r2,r0 ! 1192: move r0,r20 ;(xl) ! 1193: movei #_tmbbox+12,r0 ! 1194: load (r0),r0 ! 1195: sub r1,r0 ! 1196: sha r2,r0 ! 1197: move r0,r18 ;(xh) ! 1198: movei #_tmbbox+4,r0 ! 1199: load (r0),r0 ! 1200: movei #_bmaporgy,r1 ! 1201: load (r1),r1 ! 1202: sub r1,r0 ! 1203: sha r2,r0 ! 1204: move r0,r19 ;(yl) ! 1205: movei #_tmbbox,r0 ! 1206: load (r0),r0 ! 1207: sub r1,r0 ! 1208: sha r2,r0 ! 1209: move r0,r17 ;(yh) ! 1210: moveq #0,r0 ! 1211: cmp r20,r0 ;(xl) ! 1212: movei #L136,scratch ! 1213: jump EQ,(scratch) ! 1214: nop ! 1215: jump MI,(scratch) ! 1216: nop ! 1217: ! 1218: moveq #0,r0 ! 1219: move r0,r20 ;(xl) ! 1220: ! 1221: L136: ! 1222: ! 1223: moveq #0,r0 ! 1224: cmp r19,r0 ;(yl) ! 1225: movei #L138,scratch ! 1226: jump EQ,(scratch) ! 1227: nop ! 1228: jump MI,(scratch) ! 1229: nop ! 1230: ! 1231: moveq #0,r0 ! 1232: move r0,r19 ;(yl) ! 1233: ! 1234: L138: ! 1235: ! 1236: movei #_bmapwidth,r0 ! 1237: load (r0),r0 ! 1238: cmp r18,r0 ;(xh) ! 1239: movei #L140,scratch ! 1240: jump S_LT,(scratch) ! 1241: nop ! 1242: ! 1243: movei #_bmapwidth,r0 ! 1244: load (r0),r0 ! 1245: subq #1,r0 ! 1246: move r0,r18 ;(xh) ! 1247: ! 1248: L140: ! 1249: ! 1250: movei #_bmapheight,r0 ! 1251: load (r0),r0 ! 1252: cmp r17,r0 ;(yh) ! 1253: movei #L142,scratch ! 1254: jump S_LT,(scratch) ! 1255: nop ! 1256: ! 1257: movei #_bmapheight,r0 ! 1258: load (r0),r0 ! 1259: subq #1,r0 ! 1260: move r0,r17 ;(yh) ! 1261: ! 1262: L142: ! 1263: ! 1264: move r20,r16 ;(xl)(bx) ! 1265: ! 1266: movei #L147,r0 ! 1267: jump T,(r0) ! 1268: nop ! 1269: ! 1270: L144: ! 1271: ! 1272: move r19,r15 ;(yl)(by) ! 1273: ! 1274: movei #L151,r0 ! 1275: jump T,(r0) ! 1276: nop ! 1277: ! 1278: L148: ! 1279: ! 1280: store r16,(FP) ; arg[] ;(bx) ! 1281: or r15,scratch ; scoreboard bug ;(by) ! 1282: store r15,(FP+1) ; arg[] ;(by) ! 1283: movei #_PM_MoveLinesIterator,r0 ! 1284: store r28,(FP+2) ; push ;(RETURNPOINT) ! 1285: store r20,(FP+3) ; push ;(xl) ! 1286: store r19,(FP+4) ; push ;(yl) ! 1287: store r18,(FP+5) ; push ;(xh) ! 1288: store r17,(FP+6) ; push ;(yh) ! 1289: store r16,(FP+7) ; push ;(bx) ! 1290: movei #L156,RETURNPOINT ! 1291: jump T,(r0) ! 1292: store r15,(FP+8) ; delay slot push ;(by) ! 1293: L156: ! 1294: load (FP+3),r20 ; pop ;(xl) ! 1295: load (FP+4),r19 ; pop ;(yl) ! 1296: load (FP+5),r18 ; pop ;(xh) ! 1297: load (FP+6),r17 ; pop ;(yh) ! 1298: load (FP+7),r16 ; pop ;(bx) ! 1299: load (FP+8),r15 ; pop ;(by) ! 1300: load (FP+2), RETURNPOINT ; pop ! 1301: moveq #0,r0 ! 1302: cmp r29,r0 ;(RETURNVALUE) ! 1303: movei #L152,scratch ! 1304: jump NE,(scratch) ! 1305: nop ! 1306: ! 1307: movei #_trymove2,r0 ! 1308: moveq #0,r1 ! 1309: load (r0),r30 ; FUCKING dsp! ! 1310: or r30,r30 ; FUCKING dsp! ! 1311: store r1,(r0) ! 1312: ! 1313: movei #L106,r0 ! 1314: jump T,(r0) ! 1315: nop ! 1316: ! 1317: L152: ! 1318: ! 1319: L149: ! 1320: ! 1321: move r15,r0 ;(by) ! 1322: addq #1,r0 ! 1323: move r0,r15 ;(by) ! 1324: ! 1325: L151: ! 1326: ! 1327: cmp r15,r17 ;(by)(yh) ! 1328: movei #L148,scratch ! 1329: jump PL,(scratch) ! 1330: nop ! 1331: ! 1332: L145: ! 1333: ! 1334: move r16,r0 ;(bx) ! 1335: addq #1,r0 ! 1336: move r0,r16 ;(bx) ! 1337: ! 1338: L147: ! 1339: ! 1340: cmp r16,r18 ;(bx)(xh) ! 1341: movei #L144,scratch ! 1342: jump PL,(scratch) ! 1343: nop ! 1344: ! 1345: movei #_trymove2,r0 ! 1346: moveq #1,r1 ! 1347: load (r0),r30 ; FUCKING dsp! ! 1348: or r30,r30 ; FUCKING dsp! ! 1349: store r1,(r0) ! 1350: ! 1351: L106: ! 1352: movei #56,scratch ! 1353: jump T,(RETURNPOINT) ! 1354: add scratch,FP ; delay slot ! 1355: ! 1356: ;==================== ! 1357: _PM_BoxCrossLine:: ! 1358: ;4 dag registers 5 register variables ! 1359: ;localoffset:0 regoffset:40 argoffset:40 ! 1360: ;==================== ! 1361: movei #40,scratch ! 1362: sub scratch,FP ! 1363: ! 1364: movei #_tmbbox+12,r0 ! 1365: load (r0),r0 ! 1366: load (FP+10),r1 ; local ld ! 1367: movei #44,r2 ! 1368: move r1,r3 ! 1369: add r2,r3 ! 1370: load (r3),r2 ! 1371: cmp r0,r2 ! 1372: movei #L165,scratch ! 1373: jump PL,(scratch) ! 1374: nop ! 1375: movei #_tmbbox+8,r0 ! 1376: load (r0),r0 ! 1377: movei #48,r2 ! 1378: move r1,r3 ! 1379: add r2,r3 ! 1380: load (r3),r2 ! 1381: cmp r0,r2 ! 1382: movei #L165,scratch ! 1383: jump EQ,(scratch) ! 1384: nop ! 1385: jump MI,(scratch) ! 1386: nop ! 1387: movei #_tmbbox,r0 ! 1388: load (r0),r0 ! 1389: movei #40,r2 ! 1390: move r1,r3 ! 1391: add r2,r3 ! 1392: load (r3),r2 ! 1393: cmp r0,r2 ! 1394: movei #L165,scratch ! 1395: jump PL,(scratch) ! 1396: nop ! 1397: movei #_tmbbox+4,r0 ! 1398: load (r0),r0 ! 1399: movei #36,r2 ! 1400: add r2,r1 ! 1401: load (r1),r1 ! 1402: cmp r0,r1 ! 1403: movei #L158,scratch ! 1404: jump S_LT,(scratch) ! 1405: nop ! 1406: L165: ! 1407: ! 1408: moveq #0,r0 ! 1409: move r0,RETURNVALUE ! 1410: ! 1411: movei #L157,r0 ! 1412: jump T,(r0) ! 1413: nop ! 1414: ! 1415: L158: ! 1416: ! 1417: move FP,r0 ! 1418: addq #4,r0 ; &y1 ! 1419: movei #_tmbbox,r1 ! 1420: load (r1),r1 ! 1421: load (r0),r30 ; FUCKING dsp! ! 1422: or r30,r30 ; FUCKING dsp! ! 1423: store r1,(r0) ! 1424: move FP,r0 ! 1425: addq #12,r0 ; &y2 ! 1426: movei #_tmbbox+4,r1 ! 1427: load (r1),r1 ! 1428: load (r0),r30 ; FUCKING dsp! ! 1429: or r30,r30 ; FUCKING dsp! ! 1430: store r1,(r0) ! 1431: load (FP+10),r0 ; local ld ! 1432: movei #52,r1 ! 1433: add r1,r0 ! 1434: load (r0),r0 ! 1435: moveq #2,r1 ! 1436: cmp r0,r1 ! 1437: movei #L167,scratch ! 1438: jump NE,(scratch) ! 1439: nop ! 1440: ! 1441: move FP,r0 ; &x1 ! 1442: movei #_tmbbox+8,r1 ! 1443: load (r1),r1 ! 1444: load (r0),r30 ; FUCKING dsp! ! 1445: or r30,r30 ; FUCKING dsp! ! 1446: store r1,(r0) ! 1447: move FP,r0 ! 1448: addq #8,r0 ; &x2 ! 1449: movei #_tmbbox+12,r1 ! 1450: load (r1),r1 ! 1451: load (r0),r30 ; FUCKING dsp! ! 1452: or r30,r30 ; FUCKING dsp! ! 1453: store r1,(r0) ! 1454: ! 1455: movei #L168,r0 ! 1456: jump T,(r0) ! 1457: nop ! 1458: ! 1459: L167: ! 1460: ! 1461: move FP,r0 ; &x1 ! 1462: movei #_tmbbox+12,r1 ! 1463: load (r1),r1 ! 1464: load (r0),r30 ; FUCKING dsp! ! 1465: or r30,r30 ; FUCKING dsp! ! 1466: store r1,(r0) ! 1467: move FP,r0 ! 1468: addq #8,r0 ; &x2 ! 1469: movei #_tmbbox+8,r1 ! 1470: load (r1),r1 ! 1471: load (r0),r30 ; FUCKING dsp! ! 1472: or r30,r30 ; FUCKING dsp! ! 1473: store r1,(r0) ! 1474: ! 1475: L168: ! 1476: ! 1477: load (FP+10),r0 ; local ld ! 1478: load (r0),r1 ! 1479: load (r1),r1 ! 1480: move r1,r15 ;(lx) ! 1481: load (r0),r1 ! 1482: addq #4,r1 ! 1483: load (r1),r1 ! 1484: move r1,r16 ;(ly) ! 1485: move r0,r1 ! 1486: addq #8,r1 ! 1487: load (r1),r1 ! 1488: moveq #16,r2 ! 1489: sha r2,r1 ! 1490: move r1,r17 ;(ldx) ! 1491: addq #12,r0 ! 1492: load (r0),r0 ! 1493: sha r2,r0 ! 1494: move r0,r18 ;(ldy) ! 1495: move FP,r0 ! 1496: addq #16,r0 ; &dx1 ! 1497: load (FP),r1 ; local x1 ! 1498: sub r15,r1 ;(lx) ! 1499: sha r2,r1 ! 1500: load (r0),r30 ; FUCKING dsp! ! 1501: or r30,r30 ; FUCKING dsp! ! 1502: store r1,(r0) ! 1503: move FP,r0 ! 1504: addq #20,r0 ; &dy1 ! 1505: load (FP+1),r1 ; local y1 ! 1506: sub r16,r1 ;(ly) ! 1507: sha r2,r1 ! 1508: load (r0),r30 ; FUCKING dsp! ! 1509: or r30,r30 ; FUCKING dsp! ! 1510: store r1,(r0) ! 1511: move FP,r0 ! 1512: addq #24,r0 ; &dx2 ! 1513: load (FP+2),r1 ; local x2 ! 1514: sub r15,r1 ;(lx) ! 1515: sha r2,r1 ! 1516: load (r0),r30 ; FUCKING dsp! ! 1517: or r30,r30 ; FUCKING dsp! ! 1518: store r1,(r0) ! 1519: move FP,r0 ! 1520: addq #28,r0 ; &dy2 ! 1521: load (FP+3),r1 ; local y2 ! 1522: sub r16,r1 ;(ly) ! 1523: sha r2,r1 ! 1524: load (r0),r30 ; FUCKING dsp! ! 1525: or r30,r30 ; FUCKING dsp! ! 1526: store r1,(r0) ! 1527: load (FP+4),r0 ; local dx1 ! 1528: move r18,MATH_A ;(ldy) ! 1529: movei #L180,MATH_RTS ! 1530: movei #GPU_IMUL,scratch ! 1531: jump T,(scratch) ! 1532: move r0,MATH_B ; delay slot ! 1533: L180: ! 1534: move MATH_C,r1 ! 1535: load (FP+5),r0 ; local dy1 ! 1536: move r0,MATH_A ! 1537: movei #L181,MATH_RTS ! 1538: movei #GPU_IMUL,scratch ! 1539: jump T,(scratch) ! 1540: move r17,MATH_B ; delay slot ;(ldx) ! 1541: L181: ! 1542: move MATH_C,r0 ! 1543: cmp r1,r0 ! 1544: movei #L174,scratch ! 1545: jump EQ,(scratch) ! 1546: nop ! 1547: jump MI,(scratch) ! 1548: nop ! 1549: moveq #1,r0 ! 1550: move r0,r19 ;(173) ! 1551: movei #L175,r0 ! 1552: jump T,(r0) ! 1553: nop ! 1554: L174: ! 1555: moveq #0,r0 ! 1556: move r0,r19 ;(173) ! 1557: L175: ! 1558: move FP,r0 ! 1559: addq #32,r0 ; &side1 ! 1560: load (r0),r30 ; FUCKING dsp! ! 1561: or r30,r30 ; FUCKING dsp! ! 1562: store r19,(r0) ;(173) ! 1563: load (FP+6),r0 ; local dx2 ! 1564: move r18,MATH_A ;(ldy) ! 1565: movei #L182,MATH_RTS ! 1566: movei #GPU_IMUL,scratch ! 1567: jump T,(scratch) ! 1568: move r0,MATH_B ; delay slot ! 1569: L182: ! 1570: move MATH_C,r1 ! 1571: load (FP+7),r0 ; local dy2 ! 1572: move r0,MATH_A ! 1573: movei #L183,MATH_RTS ! 1574: movei #GPU_IMUL,scratch ! 1575: jump T,(scratch) ! 1576: move r17,MATH_B ; delay slot ;(ldx) ! 1577: L183: ! 1578: move MATH_C,r0 ! 1579: cmp r1,r0 ! 1580: movei #L176,scratch ! 1581: jump EQ,(scratch) ! 1582: nop ! 1583: jump MI,(scratch) ! 1584: nop ! 1585: moveq #1,r0 ! 1586: move r0,r19 ;(173) ! 1587: movei #L177,r0 ! 1588: jump T,(r0) ! 1589: nop ! 1590: L176: ! 1591: moveq #0,r0 ! 1592: move r0,r19 ;(173) ! 1593: L177: ! 1594: movei #36,r0 ! 1595: add FP,r0 ; &side2 ! 1596: load (r0),r30 ; FUCKING dsp! ! 1597: or r30,r30 ; FUCKING dsp! ! 1598: store r19,(r0) ;(173) ! 1599: load (FP+8),r0 ; local side1 ! 1600: load (FP+9),r1 ; local side2 ! 1601: cmp r0,r1 ! 1602: movei #L178,scratch ! 1603: jump EQ,(scratch) ! 1604: nop ! 1605: moveq #1,r0 ! 1606: move r0,r19 ;(173) ! 1607: movei #L179,r0 ! 1608: jump T,(r0) ! 1609: nop ! 1610: L178: ! 1611: moveq #0,r0 ! 1612: move r0,r19 ;(173) ! 1613: L179: ! 1614: move r19,RETURNVALUE ;(173) ! 1615: ! 1616: L157: ! 1617: movei #40,scratch ! 1618: jump T,(RETURNPOINT) ! 1619: add scratch,FP ; delay slot ! 1620: ! 1621: ;==================== ! 1622: _PIT_CheckLine:: ! 1623: ;3 dag registers 2 register variables ! 1624: ;localoffset:0 regoffset:12 argoffset:12 ! 1625: ;==================== ! 1626: subq #12,FP ! 1627: ! 1628: load (FP+3),r0 ; local ld ! 1629: movei #60,r1 ! 1630: add r1,r0 ! 1631: load (r0),r0 ! 1632: moveq #0,r1 ! 1633: cmp r0,r1 ! 1634: movei #L185,scratch ! 1635: jump NE,(scratch) ! 1636: nop ! 1637: ! 1638: moveq #0,r0 ! 1639: move r0,RETURNVALUE ! 1640: ! 1641: movei #L184,r0 ! 1642: jump T,(r0) ! 1643: nop ! 1644: ! 1645: L185: ! 1646: ! 1647: movei #_tmthing,r0 ! 1648: load (r0),r0 ! 1649: movei #100,r1 ! 1650: add r1,r0 ! 1651: load (r0),r0 ! 1652: movei #65536,r1 ! 1653: and r1,r0 ! 1654: moveq #0,r1 ! 1655: cmp r0,r1 ! 1656: movei #L187,scratch ! 1657: jump NE,(scratch) ! 1658: nop ! 1659: ! 1660: load (FP+3),r0 ; local ld ! 1661: addq #16,r0 ! 1662: load (r0),r0 ! 1663: moveq #1,r1 ! 1664: and r1,r0 ! 1665: moveq #0,r1 ! 1666: cmp r0,r1 ! 1667: movei #L189,scratch ! 1668: jump EQ,(scratch) ! 1669: nop ! 1670: ! 1671: moveq #0,r0 ! 1672: move r0,RETURNVALUE ! 1673: ! 1674: movei #L184,r0 ! 1675: jump T,(r0) ! 1676: nop ! 1677: ! 1678: L189: ! 1679: ! 1680: movei #_tmthing,r0 ! 1681: load (r0),r0 ! 1682: movei #128,r1 ! 1683: add r1,r0 ! 1684: load (r0),r0 ! 1685: moveq #0,r1 ! 1686: cmp r0,r1 ! 1687: movei #L191,scratch ! 1688: jump NE,(scratch) ! 1689: nop ! 1690: load (FP+3),r0 ; local ld ! 1691: addq #16,r0 ! 1692: load (r0),r0 ! 1693: moveq #2,r1 ! 1694: and r1,r0 ! 1695: moveq #0,r1 ! 1696: cmp r0,r1 ! 1697: movei #L191,scratch ! 1698: jump EQ,(scratch) ! 1699: nop ! 1700: ! 1701: moveq #0,r0 ! 1702: move r0,RETURNVALUE ! 1703: ! 1704: movei #L184,r0 ! 1705: jump T,(r0) ! 1706: nop ! 1707: ! 1708: L191: ! 1709: ! 1710: L187: ! 1711: ! 1712: load (FP+3),r0 ; local ld ! 1713: movei #56,r1 ! 1714: move r0,r2 ! 1715: add r1,r2 ! 1716: load (r2),r1 ! 1717: move r1,r15 ;(front) ! 1718: movei #60,r1 ! 1719: add r1,r0 ! 1720: load (r0),r0 ! 1721: move r0,r16 ;(back) ! 1722: moveq #4,r0 ! 1723: move r15,r1 ;(front) ! 1724: add r0,r1 ! 1725: load (r1),r1 ! 1726: load (r15),r2 ;(front) ! 1727: cmp r1,r2 ! 1728: movei #L195,scratch ! 1729: jump EQ,(scratch) ! 1730: nop ! 1731: move r16,r1 ;(back) ! 1732: add r0,r1 ! 1733: load (r1),r0 ! 1734: load (r16),r1 ;(back) ! 1735: cmp r0,r1 ! 1736: movei #L193,scratch ! 1737: jump NE,(scratch) ! 1738: nop ! 1739: L195: ! 1740: ! 1741: movei #_blockline,r0 ! 1742: load (FP+3),r1 ; local ld ! 1743: load (r0),r30 ; FUCKING dsp! ! 1744: or r30,r30 ; FUCKING dsp! ! 1745: store r1,(r0) ! 1746: moveq #0,r0 ! 1747: move r0,RETURNVALUE ! 1748: ! 1749: movei #L184,r0 ! 1750: jump T,(r0) ! 1751: nop ! 1752: ! 1753: L193: ! 1754: ! 1755: moveq #4,r0 ! 1756: move r15,r1 ;(front) ! 1757: add r0,r1 ! 1758: load (r1),r1 ! 1759: move r16,r2 ;(back) ! 1760: add r0,r2 ! 1761: load (r2),r0 ! 1762: cmp r1,r0 ! 1763: movei #L196,scratch ! 1764: jump EQ,(scratch) ! 1765: nop ! 1766: jump MI,(scratch) ! 1767: nop ! 1768: ! 1769: move FP,r0 ; &pm_opentop ! 1770: move r15,r1 ;(front) ! 1771: addq #4,r1 ! 1772: load (r1),r1 ! 1773: load (r0),r30 ; FUCKING dsp! ! 1774: or r30,r30 ; FUCKING dsp! ! 1775: store r1,(r0) ! 1776: ! 1777: movei #L197,r0 ! 1778: jump T,(r0) ! 1779: nop ! 1780: ! 1781: L196: ! 1782: ! 1783: move FP,r0 ; &pm_opentop ! 1784: move r16,r1 ;(back) ! 1785: addq #4,r1 ! 1786: load (r1),r1 ! 1787: load (r0),r30 ; FUCKING dsp! ! 1788: or r30,r30 ; FUCKING dsp! ! 1789: store r1,(r0) ! 1790: ! 1791: L197: ! 1792: ! 1793: load (r15),r0 ;(front) ! 1794: load (r16),r1 ;(back) ! 1795: cmp r0,r1 ! 1796: movei #L198,scratch ! 1797: jump PL,(scratch) ! 1798: nop ! 1799: ! 1800: move FP,r0 ! 1801: addq #4,r0 ; &pm_openbottom ! 1802: load (r15),r1 ;(front) ! 1803: load (r0),r30 ; FUCKING dsp! ! 1804: or r30,r30 ; FUCKING dsp! ! 1805: store r1,(r0) ! 1806: move FP,r0 ! 1807: addq #8,r0 ; &pm_lowfloor ! 1808: load (r16),r1 ;(back) ! 1809: load (r0),r30 ; FUCKING dsp! ! 1810: or r30,r30 ; FUCKING dsp! ! 1811: store r1,(r0) ! 1812: ! 1813: movei #L199,r0 ! 1814: jump T,(r0) ! 1815: nop ! 1816: ! 1817: L198: ! 1818: ! 1819: move FP,r0 ! 1820: addq #4,r0 ; &pm_openbottom ! 1821: load (r16),r1 ;(back) ! 1822: load (r0),r30 ; FUCKING dsp! ! 1823: or r30,r30 ; FUCKING dsp! ! 1824: store r1,(r0) ! 1825: move FP,r0 ! 1826: addq #8,r0 ; &pm_lowfloor ! 1827: load (r15),r1 ;(front) ! 1828: load (r0),r30 ; FUCKING dsp! ! 1829: or r30,r30 ; FUCKING dsp! ! 1830: store r1,(r0) ! 1831: ! 1832: L199: ! 1833: ! 1834: load (FP),r0 ; local pm_opentop ! 1835: movei #_tmceilingz,r1 ! 1836: load (r1),r1 ! 1837: cmp r0,r1 ! 1838: movei #L200,scratch ! 1839: jump EQ,(scratch) ! 1840: nop ! 1841: jump MI,(scratch) ! 1842: nop ! 1843: ! 1844: movei #_tmceilingz,r0 ! 1845: load (FP),r1 ; local pm_opentop ! 1846: load (r0),r30 ; FUCKING dsp! ! 1847: or r30,r30 ; FUCKING dsp! ! 1848: store r1,(r0) ! 1849: ! 1850: L200: ! 1851: ! 1852: load (FP+1),r0 ; local pm_openbottom ! 1853: movei #_tmfloorz,r1 ! 1854: load (r1),r1 ! 1855: cmp r0,r1 ! 1856: movei #L202,scratch ! 1857: jump PL,(scratch) ! 1858: nop ! 1859: ! 1860: movei #_tmfloorz,r0 ! 1861: load (FP+1),r1 ; local pm_openbottom ! 1862: load (r0),r30 ; FUCKING dsp! ! 1863: or r30,r30 ; FUCKING dsp! ! 1864: store r1,(r0) ! 1865: ! 1866: L202: ! 1867: ! 1868: load (FP+2),r0 ; local pm_lowfloor ! 1869: movei #_tmdropoffz,r1 ! 1870: load (r1),r1 ! 1871: cmp r0,r1 ! 1872: movei #L204,scratch ! 1873: jump EQ,(scratch) ! 1874: nop ! 1875: jump MI,(scratch) ! 1876: nop ! 1877: ! 1878: movei #_tmdropoffz,r0 ! 1879: load (FP+2),r1 ; local pm_lowfloor ! 1880: load (r0),r30 ; FUCKING dsp! ! 1881: or r30,r30 ; FUCKING dsp! ! 1882: store r1,(r0) ! 1883: ! 1884: L204: ! 1885: ! 1886: moveq #1,r0 ! 1887: move r0,RETURNVALUE ! 1888: ! 1889: L184: ! 1890: jump T,(RETURNPOINT) ! 1891: addq #12,FP ; delay slot ! 1892: ! 1893: ;==================== ! 1894: _PIT_CheckThing:: ! 1895: ;4 dag registers 4 register variables ! 1896: ;localoffset:0 regoffset:0 argoffset:0 ! 1897: ;==================== ! 1898: ! 1899: load (FP),r0 ; local thing ! 1900: movei #100,r1 ! 1901: add r1,r0 ! 1902: load (r0),r0 ! 1903: moveq #7,r1 ! 1904: and r1,r0 ! 1905: moveq #0,r1 ! 1906: cmp r0,r1 ! 1907: movei #L207,scratch ! 1908: jump NE,(scratch) ! 1909: nop ! 1910: ! 1911: moveq #1,r0 ! 1912: move r0,RETURNVALUE ! 1913: ! 1914: movei #L206,r0 ! 1915: jump T,(r0) ! 1916: nop ! 1917: ! 1918: L207: ! 1919: ! 1920: load (FP),r0 ; local thing ! 1921: movei #64,r1 ! 1922: move r0,r2 ! 1923: add r1,r2 ! 1924: load (r2),r2 ! 1925: movei #_tmthing,r3 ! 1926: load (r3),r3 ! 1927: add r1,r3 ! 1928: load (r3),r1 ! 1929: add r1,r2 ! 1930: move r2,r16 ;(blockdist) ! 1931: addq #12,r0 ! 1932: load (r0),r0 ! 1933: movei #_tmx,r1 ! 1934: load (r1),r1 ! 1935: sub r1,r0 ! 1936: move r0,r15 ;(delta) ! 1937: moveq #0,r0 ! 1938: cmp r15,r0 ;(delta) ! 1939: movei #L209,scratch ! 1940: jump EQ,(scratch) ! 1941: nop ! 1942: jump MI,(scratch) ! 1943: nop ! 1944: ! 1945: move r15,r0 ;(delta) ! 1946: neg r0 ! 1947: move r0,r15 ;(delta) ! 1948: ! 1949: L209: ! 1950: ! 1951: cmp r15,r16 ;(delta)(blockdist) ! 1952: movei #L211,scratch ! 1953: jump S_LT,(scratch) ! 1954: nop ! 1955: ! 1956: moveq #1,r0 ! 1957: move r0,RETURNVALUE ! 1958: ! 1959: movei #L206,r0 ! 1960: jump T,(r0) ! 1961: nop ! 1962: ! 1963: L211: ! 1964: ! 1965: load (FP),r0 ; local thing ! 1966: addq #16,r0 ! 1967: load (r0),r0 ! 1968: movei #_tmy,r1 ! 1969: load (r1),r1 ! 1970: sub r1,r0 ! 1971: move r0,r15 ;(delta) ! 1972: moveq #0,r0 ! 1973: cmp r15,r0 ;(delta) ! 1974: movei #L213,scratch ! 1975: jump EQ,(scratch) ! 1976: nop ! 1977: jump MI,(scratch) ! 1978: nop ! 1979: ! 1980: move r15,r0 ;(delta) ! 1981: neg r0 ! 1982: move r0,r15 ;(delta) ! 1983: ! 1984: L213: ! 1985: ! 1986: cmp r15,r16 ;(delta)(blockdist) ! 1987: movei #L215,scratch ! 1988: jump S_LT,(scratch) ! 1989: nop ! 1990: ! 1991: moveq #1,r0 ! 1992: move r0,RETURNVALUE ! 1993: ! 1994: movei #L206,r0 ! 1995: jump T,(r0) ! 1996: nop ! 1997: ! 1998: L215: ! 1999: ! 2000: load (FP),r0 ; local thing ! 2001: movei #_tmthing,r1 ! 2002: load (r1),r1 ! 2003: cmp r0,r1 ! 2004: movei #L217,scratch ! 2005: jump NE,(scratch) ! 2006: nop ! 2007: ! 2008: moveq #1,r0 ! 2009: move r0,RETURNVALUE ! 2010: ! 2011: movei #L206,r0 ! 2012: jump T,(r0) ! 2013: nop ! 2014: ! 2015: L217: ! 2016: ! 2017: movei #_tmthing,r0 ! 2018: load (r0),r0 ! 2019: movei #100,r1 ! 2020: add r1,r0 ! 2021: load (r0),r0 ! 2022: movei #16777216,r1 ! 2023: and r1,r0 ! 2024: moveq #0,r1 ! 2025: cmp r0,r1 ! 2026: movei #L219,scratch ! 2027: jump EQ,(scratch) ! 2028: nop ! 2029: ! 2030: movei #_movething,r0 ! 2031: load (FP),r1 ; local thing ! 2032: load (r0),r30 ; FUCKING dsp! ! 2033: or r30,r30 ; FUCKING dsp! ! 2034: store r1,(r0) ! 2035: moveq #0,r0 ! 2036: move r0,RETURNVALUE ! 2037: ! 2038: movei #L206,r0 ! 2039: jump T,(r0) ! 2040: nop ! 2041: ! 2042: L219: ! 2043: ! 2044: movei #_tmthing,r0 ! 2045: load (r0),r0 ! 2046: movei #100,r1 ! 2047: add r1,r0 ! 2048: load (r0),r0 ! 2049: movei #65536,r1 ! 2050: and r1,r0 ! 2051: moveq #0,r1 ! 2052: cmp r0,r1 ! 2053: movei #L221,scratch ! 2054: jump EQ,(scratch) ! 2055: nop ! 2056: ! 2057: movei #_tmthing,r0 ! 2058: load (r0),r0 ! 2059: moveq #20,r1 ! 2060: add r1,r0 ! 2061: load (r0),r0 ! 2062: load (FP),r2 ; local thing ! 2063: move r2,r3 ! 2064: add r1,r3 ! 2065: load (r3),r1 ! 2066: movei #68,r3 ! 2067: add r3,r2 ! 2068: load (r2),r2 ! 2069: add r2,r1 ! 2070: cmp r0,r1 ! 2071: movei #L223,scratch ! 2072: jump PL,(scratch) ! 2073: nop ! 2074: ! 2075: moveq #1,r0 ! 2076: move r0,RETURNVALUE ! 2077: ! 2078: movei #L206,r0 ! 2079: jump T,(r0) ! 2080: nop ! 2081: ! 2082: L223: ! 2083: ! 2084: movei #_tmthing,r0 ! 2085: load (r0),r0 ! 2086: moveq #20,r1 ! 2087: move r0,r2 ! 2088: add r1,r2 ! 2089: load (r2),r2 ! 2090: movei #68,r3 ! 2091: add r3,r0 ! 2092: load (r0),r0 ! 2093: add r0,r2 ! 2094: load (FP),r0 ; local thing ! 2095: add r1,r0 ! 2096: load (r0),r0 ! 2097: cmp r2,r0 ! 2098: movei #L225,scratch ! 2099: jump EQ,(scratch) ! 2100: nop ! 2101: jump MI,(scratch) ! 2102: nop ! 2103: ! 2104: moveq #1,r0 ! 2105: move r0,RETURNVALUE ! 2106: ! 2107: movei #L206,r0 ! 2108: jump T,(r0) ! 2109: nop ! 2110: ! 2111: L225: ! 2112: ! 2113: movei #_tmthing,r0 ! 2114: load (r0),r0 ! 2115: movei #116,r1 ! 2116: add r1,r0 ! 2117: load (r0),r0 ! 2118: movei #84,r1 ! 2119: add r1,r0 ! 2120: load (r0),r0 ! 2121: load (FP),r2 ; local thing ! 2122: add r1,r2 ! 2123: load (r2),r1 ! 2124: cmp r0,r1 ! 2125: movei #L227,scratch ! 2126: jump NE,(scratch) ! 2127: nop ! 2128: ! 2129: load (FP),r0 ; local thing ! 2130: movei #_tmthing,r1 ! 2131: load (r1),r1 ! 2132: movei #116,r2 ! 2133: add r2,r1 ! 2134: load (r1),r1 ! 2135: cmp r0,r1 ! 2136: movei #L229,scratch ! 2137: jump NE,(scratch) ! 2138: nop ! 2139: ! 2140: moveq #1,r0 ! 2141: move r0,RETURNVALUE ! 2142: ! 2143: movei #L206,r0 ! 2144: jump T,(r0) ! 2145: nop ! 2146: ! 2147: L229: ! 2148: ! 2149: load (FP),r0 ; local thing ! 2150: movei #84,r1 ! 2151: add r1,r0 ! 2152: load (r0),r0 ! 2153: moveq #0,r1 ! 2154: cmp r0,r1 ! 2155: movei #L231,scratch ! 2156: jump EQ,(scratch) ! 2157: nop ! 2158: ! 2159: moveq #0,r0 ! 2160: move r0,RETURNVALUE ! 2161: ! 2162: movei #L206,r0 ! 2163: jump T,(r0) ! 2164: nop ! 2165: ! 2166: L231: ! 2167: ! 2168: L227: ! 2169: ! 2170: load (FP),r0 ; local thing ! 2171: movei #100,r1 ! 2172: add r1,r0 ! 2173: load (r0),r0 ! 2174: moveq #4,r1 ! 2175: and r1,r0 ! 2176: moveq #0,r1 ! 2177: cmp r0,r1 ! 2178: movei #L233,scratch ! 2179: jump NE,(scratch) ! 2180: nop ! 2181: ! 2182: load (FP),r0 ; local thing ! 2183: movei #100,r1 ! 2184: add r1,r0 ! 2185: load (r0),r0 ! 2186: moveq #2,r1 ! 2187: and r1,r0 ! 2188: moveq #0,r1 ! 2189: cmp r0,r1 ! 2190: movei #L236,scratch ! 2191: jump NE,(scratch) ! 2192: nop ! 2193: moveq #1,r0 ! 2194: move r0,r17 ;(235) ! 2195: movei #L237,r0 ! 2196: jump T,(r0) ! 2197: nop ! 2198: L236: ! 2199: moveq #0,r0 ! 2200: move r0,r17 ;(235) ! 2201: L237: ! 2202: move r17,RETURNVALUE ;(235) ! 2203: ! 2204: movei #L206,r0 ! 2205: jump T,(r0) ! 2206: nop ! 2207: ! 2208: L233: ! 2209: ! 2210: movei #_movething,r0 ! 2211: load (FP),r1 ; local thing ! 2212: load (r0),r30 ; FUCKING dsp! ! 2213: or r30,r30 ; FUCKING dsp! ! 2214: store r1,(r0) ! 2215: moveq #0,r0 ! 2216: move r0,RETURNVALUE ! 2217: ! 2218: movei #L206,r0 ! 2219: jump T,(r0) ! 2220: nop ! 2221: ! 2222: L221: ! 2223: ! 2224: load (FP),r0 ; local thing ! 2225: movei #100,r1 ! 2226: add r1,r0 ! 2227: load (r0),r0 ! 2228: moveq #1,r1 ! 2229: and r1,r0 ! 2230: moveq #0,r1 ! 2231: cmp r0,r1 ! 2232: movei #L238,scratch ! 2233: jump EQ,(scratch) ! 2234: nop ! 2235: movei #_tmflags,r0 ! 2236: load (r0),r0 ! 2237: movei #2048,r2 ! 2238: and r2,r0 ! 2239: cmp r0,r1 ! 2240: movei #L238,scratch ! 2241: jump EQ,(scratch) ! 2242: nop ! 2243: ! 2244: movei #_movething,r0 ! 2245: load (FP),r1 ; local thing ! 2246: load (r0),r30 ; FUCKING dsp! ! 2247: or r30,r30 ; FUCKING dsp! ! 2248: store r1,(r0) ! 2249: moveq #1,r0 ! 2250: move r0,RETURNVALUE ! 2251: ! 2252: movei #L206,r0 ! 2253: jump T,(r0) ! 2254: nop ! 2255: ! 2256: L238: ! 2257: ! 2258: load (FP),r0 ; local thing ! 2259: movei #100,r1 ! 2260: add r1,r0 ! 2261: load (r0),r0 ! 2262: moveq #2,r1 ! 2263: and r1,r0 ! 2264: moveq #0,r1 ! 2265: cmp r0,r1 ! 2266: movei #L241,scratch ! 2267: jump NE,(scratch) ! 2268: nop ! 2269: moveq #1,r0 ! 2270: move r0,r18 ;(240) ! 2271: movei #L242,r0 ! 2272: jump T,(r0) ! 2273: nop ! 2274: L241: ! 2275: moveq #0,r0 ! 2276: move r0,r18 ;(240) ! 2277: L242: ! 2278: move r18,RETURNVALUE ;(240) ! 2279: ! 2280: L206: ! 2281: jump T,(RETURNPOINT) ! 2282: nop ; delay slot ! 2283: ! 2284: ;==================== ! 2285: _PM_MoveLinesIterator:: ! 2286: ;3 dag registers 3 register variables ! 2287: ;localoffset:4 regoffset:4 argoffset:32 ! 2288: ;==================== ! 2289: subq #32,FP ! 2290: ! 2291: load (FP+9),r0 ; local y ! 2292: movei #_bmapwidth,r1 ! 2293: load (r1),r1 ! 2294: move r0,MATH_A ! 2295: movei #L254,MATH_RTS ! 2296: movei #GPU_IMUL,scratch ! 2297: jump T,(scratch) ! 2298: move r1,MATH_B ; delay slot ! 2299: L254: ! 2300: move MATH_C,r0 ! 2301: load (FP+8),r1 ; local x ! 2302: add r1,r0 ! 2303: move r0,r17 ;(offset) ! 2304: movei #-1,r0 ! 2305: move r17,r1 ;(offset) ! 2306: sha r0,r1 ! 2307: movei #_blockmap,r2 ! 2308: load (r2),r2 ! 2309: add r2,r1 ! 2310: loadw (r1),r1 ! 2311: movei #$ffff8000,scratch ! 2312: add scratch,r1 ! 2313: xor scratch,r1 ! 2314: move r1,r17 ;(offset) ! 2315: move r17,r1 ;(offset) ! 2316: sha r0,r1 ! 2317: movei #_blockmaplump,r0 ! 2318: load (r0),r0 ! 2319: add r0,r1 ! 2320: move r1,r16 ;(list) ! 2321: ! 2322: movei #L247,r0 ! 2323: jump T,(r0) ! 2324: nop ! 2325: ! 2326: L244: ! 2327: ! 2328: movei #76,r0 ! 2329: loadw (r16),r1 ;(list) ! 2330: movei #$ffff8000,scratch ! 2331: add scratch,r1 ! 2332: xor scratch,r1 ! 2333: move r0,MATH_A ! 2334: movei #L255,MATH_RTS ! 2335: movei #GPU_IMUL,scratch ! 2336: jump T,(scratch) ! 2337: move r1,MATH_B ; delay slot ! 2338: L255: ! 2339: move MATH_C,r0 ! 2340: movei #_lines,r1 ! 2341: load (r1),r1 ! 2342: add r1,r0 ! 2343: move r0,r15 ;(ld) ! 2344: movei #64,r0 ! 2345: move r15,r1 ;(ld) ! 2346: add r0,r1 ! 2347: load (r1),r0 ! 2348: movei #_validcount,r1 ! 2349: load (r1),r1 ! 2350: cmp r0,r1 ! 2351: movei #L248,scratch ! 2352: jump NE,(scratch) ! 2353: nop ! 2354: ! 2355: movei #L245,r0 ! 2356: jump T,(r0) ! 2357: nop ! 2358: ! 2359: L248: ! 2360: ! 2361: movei #64,r0 ! 2362: move r15,r1 ;(ld) ! 2363: add r0,r1 ! 2364: movei #_validcount,r0 ! 2365: load (r0),r0 ! 2366: load (r1),r30 ; FUCKING dsp! ! 2367: or r30,r30 ; FUCKING dsp! ! 2368: store r0,(r1) ! 2369: ! 2370: store r15,(FP) ; arg[] ;(ld) ! 2371: movei #_PM_BoxCrossLine,r0 ! 2372: store r28,(FP+1) ; push ;(RETURNPOINT) ! 2373: store r17,(FP+2) ; push ;(offset) ! 2374: store r16,(FP+3) ; push ;(list) ! 2375: movei #L256,RETURNPOINT ! 2376: jump T,(r0) ! 2377: store r15,(FP+4) ; delay slot push ;(ld) ! 2378: L256: ! 2379: load (FP+2),r17 ; pop ;(offset) ! 2380: load (FP+3),r16 ; pop ;(list) ! 2381: load (FP+4),r15 ; pop ;(ld) ! 2382: load (FP+1), RETURNPOINT ; pop ! 2383: moveq #0,r0 ! 2384: cmp r29,r0 ;(RETURNVALUE) ! 2385: movei #L250,scratch ! 2386: jump EQ,(scratch) ! 2387: nop ! 2388: ! 2389: store r15,(FP) ; arg[] ;(ld) ! 2390: movei #_PIT_CheckLine,r0 ! 2391: store r28,(FP+1) ; push ;(RETURNPOINT) ! 2392: store r17,(FP+2) ; push ;(offset) ! 2393: store r16,(FP+3) ; push ;(list) ! 2394: movei #L257,RETURNPOINT ! 2395: jump T,(r0) ! 2396: store r15,(FP+4) ; delay slot push ;(ld) ! 2397: L257: ! 2398: load (FP+2),r17 ; pop ;(offset) ! 2399: load (FP+3),r16 ; pop ;(list) ! 2400: load (FP+4),r15 ; pop ;(ld) ! 2401: load (FP+1), RETURNPOINT ; pop ! 2402: moveq #0,r0 ! 2403: cmp r29,r0 ;(RETURNVALUE) ! 2404: movei #L252,scratch ! 2405: jump NE,(scratch) ! 2406: nop ! 2407: ! 2408: moveq #0,r0 ! 2409: move r0,RETURNVALUE ! 2410: ! 2411: movei #L243,r0 ! 2412: jump T,(r0) ! 2413: nop ! 2414: ! 2415: L252: ! 2416: ! 2417: L250: ! 2418: ! 2419: L245: ! 2420: ! 2421: move r16,r0 ;(list) ! 2422: addq #2,r0 ! 2423: move r0,r16 ;(list) ! 2424: ! 2425: L247: ! 2426: ! 2427: loadw (r16),r0 ;(list) ! 2428: movei #$ffff8000,scratch ! 2429: add scratch,r0 ! 2430: xor scratch,r0 ! 2431: movei #-1,r1 ! 2432: cmp r0,r1 ! 2433: movei #L244,scratch ! 2434: jump NE,(scratch) ! 2435: nop ! 2436: ! 2437: moveq #1,r0 ! 2438: move r0,RETURNVALUE ! 2439: ! 2440: L243: ! 2441: jump T,(RETURNPOINT) ! 2442: addq #32,FP ; delay slot ! 2443: ! 2444: ;==================== ! 2445: _PM_MoveThingsIterator:: ! 2446: ;2 dag registers 1 register variables ! 2447: ;localoffset:4 regoffset:4 argoffset:20 ! 2448: ;==================== ! 2449: subq #20,FP ! 2450: ! 2451: load (FP+6),r0 ; local y ! 2452: movei #_bmapwidth,r1 ! 2453: load (r1),r1 ! 2454: move r0,MATH_A ! 2455: movei #L265,MATH_RTS ! 2456: movei #GPU_IMUL,scratch ! 2457: jump T,(scratch) ! 2458: move r1,MATH_B ; delay slot ! 2459: L265: ! 2460: move MATH_C,r0 ! 2461: load (FP+5),r1 ; local x ! 2462: add r1,r0 ! 2463: shlq #2,r0 ! 2464: movei #_blocklinks,r1 ! 2465: load (r1),r1 ! 2466: add r1,r0 ! 2467: load (r0),r0 ! 2468: move r0,r15 ;(mobj) ! 2469: ! 2470: movei #L262,r0 ! 2471: jump T,(r0) ! 2472: nop ! 2473: ! 2474: L259: ! 2475: ! 2476: store r15,(FP) ; arg[] ;(mobj) ! 2477: movei #_PIT_CheckThing,r0 ! 2478: store r28,(FP+1) ; push ;(RETURNPOINT) ! 2479: movei #L266,RETURNPOINT ! 2480: jump T,(r0) ! 2481: store r15,(FP+2) ; delay slot push ;(mobj) ! 2482: L266: ! 2483: load (FP+2),r15 ; pop ;(mobj) ! 2484: load (FP+1), RETURNPOINT ; pop ! 2485: moveq #0,r0 ! 2486: cmp r29,r0 ;(RETURNVALUE) ! 2487: movei #L263,scratch ! 2488: jump NE,(scratch) ! 2489: nop ! 2490: ! 2491: moveq #0,r0 ! 2492: move r0,RETURNVALUE ! 2493: ! 2494: movei #L258,r0 ! 2495: jump T,(r0) ! 2496: nop ! 2497: ! 2498: L263: ! 2499: ! 2500: L260: ! 2501: ! 2502: movei #44,r0 ! 2503: move r15,r1 ;(mobj) ! 2504: add r0,r1 ! 2505: load (r1),r0 ! 2506: move r0,r15 ;(mobj) ! 2507: ! 2508: L262: ! 2509: ! 2510: move r15,r0 ;(mobj) ! 2511: moveq #0,r1 ! 2512: cmp r0,r1 ! 2513: movei #L259,scratch ! 2514: jump NE,(scratch) ! 2515: nop ! 2516: ! 2517: moveq #1,r0 ! 2518: move r0,RETURNVALUE ! 2519: ! 2520: L258: ! 2521: jump T,(RETURNPOINT) ! 2522: addq #20,FP ; delay slot ! 2523: ! 2524: ;======================= ! 2525: ! 2526: .long ! 2527: _tmflags:: ! 2528: .dc.l 0 ! 2529: .long ! 2530: _tmbbox:: ! 2531: .dc.l 0 ! 2532: .dc.l 0 ! 2533: .dc.l 0 ! 2534: .dc.l 0 ! 2535: .long ! 2536: _oldy:: ! 2537: .dc.l 0 ! 2538: .long ! 2539: _oldx:: ! 2540: .dc.l 0 ! 2541: .long ! 2542: _blockline:: ! 2543: .dc.l 0 ! 2544: .long ! 2545: _newsubsec:: ! 2546: .dc.l 0 ! 2547: .long ! 2548: _tmdropoffz:: ! 2549: .dc.l 0 ! 2550: .long ! 2551: _trymove2:: ! 2552: .dc.l 0 ! 2553: .extern _checkposonly ! 2554: .extern _tmy ! 2555: .extern _tmx ! 2556: .extern _tmthing ! 2557: .extern _PM_UnsetThingPosition ! 2558: .extern _PM_PointInSubsector ! 2559: .extern _blocklinks ! 2560: .extern _bmaporgy ! 2561: .extern _bmaporgx ! 2562: .extern _bmapheight ! 2563: .extern _bmapwidth ! 2564: .extern _blockmap ! 2565: .extern _blockmaplump ! 2566: .long ! 2567: _movething:: ! 2568: .dc.l 0 ! 2569: .long ! 2570: _tmceilingz:: ! 2571: .dc.l 0 ! 2572: .long ! 2573: _tmfloorz:: ! 2574: .dc.l 0 ! 2575: .long ! 2576: _floatok:: ! 2577: .dc.l 0 ! 2578: .extern _validcount ! 2579: .extern _lines ! 2580: ! 2581: .phrase ! 2582: .68000 ! 2583: codeend:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.