Files
oot-gc/asm/SISamplingRate.s
T

112 lines
4.2 KiB
ArmAsm

# SISamplingRate.c
.include "macros.inc"
.section .text, "ax"
.balign 4
glabel SISetSamplingRate
/* 0A086C 800A5E0C 7C0802A6 */ mflr r0
/* 0A0870 800A5E10 90010004 */ stw r0, 4(r1)
/* 0A0874 800A5E14 9421FFE0 */ stwu r1, -0x20(r1)
/* 0A0878 800A5E18 93E1001C */ stw r31, 0x1c(r1)
/* 0A087C 800A5E1C 93C10018 */ stw r30, 0x18(r1)
/* 0A0880 800A5E20 93A10014 */ stw r29, 0x14(r1)
/* 0A0884 800A5E24 3BA30000 */ addi r29, r3, 0
/* 0A0888 800A5E28 281D000B */ cmplwi r29, 0xb
/* 0A088C 800A5E2C 3C60800F */ lis r3, XYNTSC@ha
/* 0A0890 800A5E30 3BE31638 */ addi r31, r3, XYNTSC@l
/* 0A0894 800A5E34 40810008 */ ble lbl_800A5E3C
/* 0A0898 800A5E38 3BA0000B */ li r29, 0xb
lbl_800A5E3C:
/* 0A089C 800A5E3C 4BFF8EC1 */ bl OSDisableInterrupts
/* 0A08A0 800A5E40 93AD8BC8 */ stw r29, SamplingRate@sda21(r13)
/* 0A08A4 800A5E44 7C7E1B78 */ mr r30, r3
/* 0A08A8 800A5E48 48001BB5 */ bl VIGetTvFormat
/* 0A08AC 800A5E4C 2C030002 */ cmpwi r3, 2
/* 0A08B0 800A5E50 41820024 */ beq lbl_800A5E74
/* 0A08B4 800A5E54 40800014 */ bge lbl_800A5E68
/* 0A08B8 800A5E58 2C030000 */ cmpwi r3, 0
/* 0A08BC 800A5E5C 41820018 */ beq lbl_800A5E74
/* 0A08C0 800A5E60 4080001C */ bge lbl_800A5E7C
/* 0A08C4 800A5E64 48000020 */ b lbl_800A5E84
lbl_800A5E68:
/* 0A08C8 800A5E68 2C030005 */ cmpwi r3, 5
/* 0A08CC 800A5E6C 41820008 */ beq lbl_800A5E74
/* 0A08D0 800A5E70 48000014 */ b lbl_800A5E84
lbl_800A5E74:
/* 0A08D4 800A5E74 7FE4FB78 */ mr r4, r31
/* 0A08D8 800A5E78 48000020 */ b lbl_800A5E98
lbl_800A5E7C:
/* 0A08DC 800A5E7C 389F0030 */ addi r4, r31, 0x30
/* 0A08E0 800A5E80 48000018 */ b lbl_800A5E98
lbl_800A5E84:
/* 0A08E4 800A5E84 387F0060 */ addi r3, r31, 0x60
/* 0A08E8 800A5E88 4CC63182 */ crclr 6
/* 0A08EC 800A5E8C 4BFF876D */ bl OSReport
/* 0A08F0 800A5E90 3BA00000 */ li r29, 0
/* 0A08F4 800A5E94 389F0000 */ addi r4, r31, 0
lbl_800A5E98:
/* 0A08F8 800A5E98 3C60CC00 */ lis r3, VI_REGS_BASE@ha
/* 0A08FC 800A5E9C A003206C */ lhz r0, (VI_REGS_BASE + VI_CLK)@l(r3)
/* 0A0900 800A5EA0 540007FF */ clrlwi. r0, r0, 0x1f
/* 0A0904 800A5EA4 4182000C */ beq lbl_800A5EB0
/* 0A0908 800A5EA8 38A00002 */ li r5, 2
/* 0A090C 800A5EAC 48000008 */ b lbl_800A5EB4
lbl_800A5EB0:
/* 0A0910 800A5EB0 38A00001 */ li r5, 1
lbl_800A5EB4:
/* 0A0914 800A5EB4 57A3103A */ slwi r3, r29, 2
/* 0A0918 800A5EB8 7C041A2E */ lhzx r0, r4, r3
/* 0A091C 800A5EBC 7C641A14 */ add r3, r4, r3
/* 0A0920 800A5EC0 88830002 */ lbz r4, 2(r3)
/* 0A0924 800A5EC4 7C6501D6 */ mullw r3, r5, r0
/* 0A0928 800A5EC8 4BFFF4A9 */ bl SISetXY
/* 0A092C 800A5ECC 7FC3F378 */ mr r3, r30
/* 0A0930 800A5ED0 4BFF8E55 */ bl OSRestoreInterrupts
/* 0A0934 800A5ED4 80010024 */ lwz r0, 0x24(r1)
/* 0A0938 800A5ED8 83E1001C */ lwz r31, 0x1c(r1)
/* 0A093C 800A5EDC 83C10018 */ lwz r30, 0x18(r1)
/* 0A0940 800A5EE0 83A10014 */ lwz r29, 0x14(r1)
/* 0A0944 800A5EE4 38210020 */ addi r1, r1, 0x20
/* 0A0948 800A5EE8 7C0803A6 */ mtlr r0
/* 0A094C 800A5EEC 4E800020 */ blr
glabel SIRefreshSamplingRate
/* 0A0950 800A5EF0 7C0802A6 */ mflr r0
/* 0A0954 800A5EF4 90010004 */ stw r0, 4(r1)
/* 0A0958 800A5EF8 9421FFF8 */ stwu r1, -8(r1)
/* 0A095C 800A5EFC 806D8BC8 */ lwz r3, SamplingRate@sda21(r13)
/* 0A0960 800A5F00 4BFFFF0D */ bl SISetSamplingRate
/* 0A0964 800A5F04 8001000C */ lwz r0, 0xc(r1)
/* 0A0968 800A5F08 38210008 */ addi r1, r1, 8
/* 0A096C 800A5F0C 7C0803A6 */ mtlr r0
/* 0A0970 800A5F10 4E800020 */ blr
.section .data, "wa"
.balign 8
/* 000EE6B8 800F1638 0030 */
XYNTSC:
.long 0x00F60200, 0x000F1200, 0x001E0900, 0x002C0600, 0x00340500, 0x00410400, 0x00570300, 0x00570300
.long 0x00570300, 0x00830200, 0x00830200, 0x00830200
/* 000EE6E8 800F1668 0030 */
XYPAL:
.long 0x01280200, 0x000F1500, 0x001D0B00, 0x002D0700, 0x00340600, 0x003F0500, 0x004E0400, 0x00680300
.long 0x00680300, 0x00680300, 0x00680300, 0x009C0200
/* 000EE718 800F1698 0033 */
D_800F1698:
.asciz "SISetSamplingRate: unknown TV format. Use default."
.balign 4
.section .sbss, "wa"
.balign 8
/* 000F1B28 801358A8 0004 */
SamplingRate:
.skip 4