mirror of
https://github.com/pmret/papermario.git
synced 2024-11-15 23:42:42 +01:00
96 lines
4.1 KiB
ArmAsm
96 lines
4.1 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel osTimerInterrupt
|
|
/* 0418D4 800664D4 3C038009 */ lui $v1, 0x8009
|
|
/* 0418D8 800664D8 8C634670 */ lw $v1, 0x4670($v1)
|
|
/* 0418DC 800664DC 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 0418E0 800664E0 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 0418E4 800664E4 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 0418E8 800664E8 8C620000 */ lw $v0, ($v1)
|
|
/* 0418EC 800664EC 10430044 */ beq $v0, $v1, .L80066600
|
|
/* 0418F0 800664F0 00000000 */ nop
|
|
.L800664F4:
|
|
/* 0418F4 800664F4 3C028009 */ lui $v0, 0x8009
|
|
/* 0418F8 800664F8 8C424670 */ lw $v0, 0x4670($v0)
|
|
/* 0418FC 800664FC 8C500000 */ lw $s0, ($v0)
|
|
/* 041900 80066500 16020006 */ bne $s0, $v0, .L8006651C
|
|
/* 041904 80066504 00000000 */ nop
|
|
/* 041908 80066508 0C01B1A0 */ jal osSetCompare
|
|
/* 04190C 8006650C 00002021 */ addu $a0, $zero, $zero
|
|
/* 041910 80066510 3C01800A */ lui $at, 0x800a
|
|
/* 041914 80066514 08019980 */ j .L80066600
|
|
/* 041918 80066518 AC20A62C */ sw $zero, -0x59d4($at)
|
|
|
|
.L8006651C:
|
|
/* 04191C 8006651C 0C019680 */ jal osGetCount
|
|
/* 041920 80066520 00000000 */ nop
|
|
/* 041924 80066524 3C03800A */ lui $v1, 0x800a
|
|
/* 041928 80066528 8C63A62C */ lw $v1, -0x59d4($v1)
|
|
/* 04192C 8006652C 3C01800A */ lui $at, 0x800a
|
|
/* 041930 80066530 AC22A62C */ sw $v0, -0x59d4($at)
|
|
/* 041934 80066534 00431023 */ subu $v0, $v0, $v1
|
|
/* 041938 80066538 8E030010 */ lw $v1, 0x10($s0)
|
|
/* 04193C 8006653C 00403821 */ addu $a3, $v0, $zero
|
|
/* 041940 80066540 00003021 */ addu $a2, $zero, $zero
|
|
/* 041944 80066544 00C3102B */ sltu $v0, $a2, $v1
|
|
/* 041948 80066548 14400007 */ bnez $v0, .L80066568
|
|
/* 04194C 8006654C 00000000 */ nop
|
|
/* 041950 80066550 14660010 */ bne $v1, $a2, .L80066594
|
|
/* 041954 80066554 00000000 */ nop
|
|
/* 041958 80066558 8E020014 */ lw $v0, 0x14($s0)
|
|
/* 04195C 8006655C 00E2102B */ sltu $v0, $a3, $v0
|
|
/* 041960 80066560 1040000C */ beqz $v0, .L80066594
|
|
/* 041964 80066564 00000000 */ nop
|
|
.L80066568:
|
|
/* 041968 80066568 8E040010 */ lw $a0, 0x10($s0)
|
|
/* 04196C 8006656C 8E050014 */ lw $a1, 0x14($s0)
|
|
/* 041970 80066570 00A7102B */ sltu $v0, $a1, $a3
|
|
/* 041974 80066574 00A72823 */ subu $a1, $a1, $a3
|
|
/* 041978 80066578 00862023 */ subu $a0, $a0, $a2
|
|
/* 04197C 8006657C 00822023 */ subu $a0, $a0, $v0
|
|
/* 041980 80066580 AE040010 */ sw $a0, 0x10($s0)
|
|
/* 041984 80066584 0C019984 */ jal osSetTimerIntr
|
|
/* 041988 80066588 AE050014 */ sw $a1, 0x14($s0)
|
|
/* 04198C 8006658C 08019980 */ j .L80066600
|
|
/* 041990 80066590 00000000 */ nop
|
|
|
|
.L80066594:
|
|
/* 041994 80066594 8E030004 */ lw $v1, 4($s0)
|
|
/* 041998 80066598 8E020000 */ lw $v0, ($s0)
|
|
/* 04199C 8006659C AC620000 */ sw $v0, ($v1)
|
|
/* 0419A0 800665A0 8E030000 */ lw $v1, ($s0)
|
|
/* 0419A4 800665A4 8E020004 */ lw $v0, 4($s0)
|
|
/* 0419A8 800665A8 AC620004 */ sw $v0, 4($v1)
|
|
/* 0419AC 800665AC 8E040018 */ lw $a0, 0x18($s0)
|
|
/* 0419B0 800665B0 AE000000 */ sw $zero, ($s0)
|
|
/* 0419B4 800665B4 10800004 */ beqz $a0, .L800665C8
|
|
/* 0419B8 800665B8 AE000004 */ sw $zero, 4($s0)
|
|
/* 0419BC 800665BC 8E05001C */ lw $a1, 0x1c($s0)
|
|
/* 0419C0 800665C0 0C019608 */ jal osSendMesg
|
|
/* 0419C4 800665C4 00003021 */ addu $a2, $zero, $zero
|
|
.L800665C8:
|
|
/* 0419C8 800665C8 8E020008 */ lw $v0, 8($s0)
|
|
/* 0419CC 800665CC 14400004 */ bnez $v0, .L800665E0
|
|
/* 0419D0 800665D0 00000000 */ nop
|
|
/* 0419D4 800665D4 8E02000C */ lw $v0, 0xc($s0)
|
|
/* 0419D8 800665D8 1040FFC6 */ beqz $v0, .L800664F4
|
|
/* 0419DC 800665DC 00000000 */ nop
|
|
.L800665E0:
|
|
/* 0419E0 800665E0 8E020008 */ lw $v0, 8($s0)
|
|
/* 0419E4 800665E4 8E03000C */ lw $v1, 0xc($s0)
|
|
/* 0419E8 800665E8 02002021 */ addu $a0, $s0, $zero
|
|
/* 0419EC 800665EC AC820010 */ sw $v0, 0x10($a0)
|
|
/* 0419F0 800665F0 0C0199A4 */ jal osInsertTimer
|
|
/* 0419F4 800665F4 AC830014 */ sw $v1, 0x14($a0)
|
|
/* 0419F8 800665F8 0801993D */ j .L800664F4
|
|
/* 0419FC 800665FC 00000000 */ nop
|
|
|
|
.L80066600:
|
|
/* 041A00 80066600 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* 041A04 80066604 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 041A08 80066608 03E00008 */ jr $ra
|
|
/* 041A0C 8006660C 27BD0018 */ addiu $sp, $sp, 0x18
|
|
|