mirror of https://github.com/zeldaret/tp.git
238 lines
11 KiB
ArmAsm
238 lines
11 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 8033d3e0
|
|
|
|
|
|
.global GetFontCode
|
|
GetFontCode:
|
|
/* 8033D3E0 0033A320 54 60 04 3E */ clrlwi r0, r3, 0x10
|
|
/* 8033D3E4 0033A324 28 00 00 01 */ cmplwi r0, 1
|
|
/* 8033D3E8 0033A328 40 82 01 48 */ bne lbl_8033D530
|
|
/* 8033D3EC 0033A32C 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 8033D3F0 0033A330 28 00 00 20 */ cmplwi r0, 0x20
|
|
/* 8033D3F4 0033A334 41 80 00 24 */ blt lbl_8033D418
|
|
/* 8033D3F8 0033A338 28 00 00 DF */ cmplwi r0, 0xdf
|
|
/* 8033D3FC 0033A33C 41 81 00 1C */ bgt lbl_8033D418
|
|
/* 8033D400 0033A340 3C 60 80 3D */ lis r3, lbl_803CFC48@ha
|
|
/* 8033D404 0033A344 38 63 FC 48 */ addi r3, r3, lbl_803CFC48@l
|
|
/* 8033D408 0033A348 54 00 08 3C */ slwi r0, r0, 1
|
|
/* 8033D40C 0033A34C 7C 63 02 14 */ add r3, r3, r0
|
|
/* 8033D410 0033A350 A0 63 FF C0 */ lhz r3, -0x40(r3)
|
|
/* 8033D414 0033A354 4E 80 00 20 */ blr
|
|
lbl_8033D418:
|
|
/* 8033D418 0033A358 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 8033D41C 0033A35C 28 00 88 9E */ cmplwi r0, 0x889e
|
|
/* 8033D420 0033A360 40 81 00 7C */ ble lbl_8033D49C
|
|
/* 8033D424 0033A364 28 00 98 72 */ cmplwi r0, 0x9872
|
|
/* 8033D428 0033A368 41 81 00 74 */ bgt lbl_8033D49C
|
|
/* 8033D42C 0033A36C 7C 03 46 70 */ srawi r3, r0, 8
|
|
/* 8033D430 0033A370 54 04 06 3E */ clrlwi r4, r0, 0x18
|
|
/* 8033D434 0033A374 38 03 FF 78 */ addi r0, r3, -136
|
|
/* 8033D438 0033A378 28 04 00 40 */ cmplwi r4, 0x40
|
|
/* 8033D43C 0033A37C 1C A0 00 BC */ mulli r5, r0, 0xbc
|
|
/* 8033D440 0033A380 38 60 00 00 */ li r3, 0
|
|
/* 8033D444 0033A384 38 03 00 00 */ addi r0, r3, 0
|
|
/* 8033D448 0033A388 41 80 00 10 */ blt lbl_8033D458
|
|
/* 8033D44C 0033A38C 28 04 00 FC */ cmplwi r4, 0xfc
|
|
/* 8033D450 0033A390 41 81 00 08 */ bgt lbl_8033D458
|
|
/* 8033D454 0033A394 38 00 00 01 */ li r0, 1
|
|
lbl_8033D458:
|
|
/* 8033D458 0033A398 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8033D45C 0033A39C 41 82 00 14 */ beq lbl_8033D470
|
|
/* 8033D460 0033A3A0 54 80 06 3E */ clrlwi r0, r4, 0x18
|
|
/* 8033D464 0033A3A4 28 00 00 7F */ cmplwi r0, 0x7f
|
|
/* 8033D468 0033A3A8 41 82 00 08 */ beq lbl_8033D470
|
|
/* 8033D46C 0033A3AC 38 60 00 01 */ li r3, 1
|
|
lbl_8033D470:
|
|
/* 8033D470 0033A3B0 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 8033D474 0033A3B4 40 82 00 0C */ bne lbl_8033D480
|
|
/* 8033D478 0033A3B8 38 60 00 00 */ li r3, 0
|
|
/* 8033D47C 0033A3BC 4E 80 00 20 */ blr
|
|
lbl_8033D480:
|
|
/* 8033D480 0033A3C0 38 64 FF C0 */ addi r3, r4, -64
|
|
/* 8033D484 0033A3C4 2C 03 00 40 */ cmpwi r3, 0x40
|
|
/* 8033D488 0033A3C8 41 80 00 08 */ blt lbl_8033D490
|
|
/* 8033D48C 0033A3CC 38 63 FF FF */ addi r3, r3, -1
|
|
lbl_8033D490:
|
|
/* 8033D490 0033A3D0 38 63 02 BE */ addi r3, r3, 0x2be
|
|
/* 8033D494 0033A3D4 7C 65 1A 14 */ add r3, r5, r3
|
|
/* 8033D498 0033A3D8 4E 80 00 20 */ blr
|
|
lbl_8033D49C:
|
|
/* 8033D49C 0033A3DC 54 80 04 3E */ clrlwi r0, r4, 0x10
|
|
/* 8033D4A0 0033A3E0 28 00 81 40 */ cmplwi r0, 0x8140
|
|
/* 8033D4A4 0033A3E4 41 80 00 A8 */ blt lbl_8033D54C
|
|
/* 8033D4A8 0033A3E8 28 00 87 9E */ cmplwi r0, 0x879e
|
|
/* 8033D4AC 0033A3EC 40 80 00 A0 */ bge lbl_8033D54C
|
|
/* 8033D4B0 0033A3F0 7C 03 46 70 */ srawi r3, r0, 8
|
|
/* 8033D4B4 0033A3F4 54 04 06 3E */ clrlwi r4, r0, 0x18
|
|
/* 8033D4B8 0033A3F8 38 03 FF 7F */ addi r0, r3, -129
|
|
/* 8033D4BC 0033A3FC 28 04 00 40 */ cmplwi r4, 0x40
|
|
/* 8033D4C0 0033A400 1C A0 00 BC */ mulli r5, r0, 0xbc
|
|
/* 8033D4C4 0033A404 38 60 00 00 */ li r3, 0
|
|
/* 8033D4C8 0033A408 38 03 00 00 */ addi r0, r3, 0
|
|
/* 8033D4CC 0033A40C 41 80 00 10 */ blt lbl_8033D4DC
|
|
/* 8033D4D0 0033A410 28 04 00 FC */ cmplwi r4, 0xfc
|
|
/* 8033D4D4 0033A414 41 81 00 08 */ bgt lbl_8033D4DC
|
|
/* 8033D4D8 0033A418 38 00 00 01 */ li r0, 1
|
|
lbl_8033D4DC:
|
|
/* 8033D4DC 0033A41C 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8033D4E0 0033A420 41 82 00 14 */ beq lbl_8033D4F4
|
|
/* 8033D4E4 0033A424 54 80 06 3E */ clrlwi r0, r4, 0x18
|
|
/* 8033D4E8 0033A428 28 00 00 7F */ cmplwi r0, 0x7f
|
|
/* 8033D4EC 0033A42C 41 82 00 08 */ beq lbl_8033D4F4
|
|
/* 8033D4F0 0033A430 38 60 00 01 */ li r3, 1
|
|
lbl_8033D4F4:
|
|
/* 8033D4F4 0033A434 2C 03 00 00 */ cmpwi r3, 0
|
|
/* 8033D4F8 0033A438 40 82 00 0C */ bne lbl_8033D504
|
|
/* 8033D4FC 0033A43C 38 60 00 00 */ li r3, 0
|
|
/* 8033D500 0033A440 4E 80 00 20 */ blr
|
|
lbl_8033D504:
|
|
/* 8033D504 0033A444 38 64 FF C0 */ addi r3, r4, -64
|
|
/* 8033D508 0033A448 2C 03 00 40 */ cmpwi r3, 0x40
|
|
/* 8033D50C 0033A44C 41 80 00 08 */ blt lbl_8033D514
|
|
/* 8033D510 0033A450 38 63 FF FF */ addi r3, r3, -1
|
|
lbl_8033D514:
|
|
/* 8033D514 0033A454 7C 05 1A 14 */ add r0, r5, r3
|
|
/* 8033D518 0033A458 3C 60 80 3D */ lis r3, lbl_803CFDC8@ha
|
|
/* 8033D51C 0033A45C 54 04 08 3C */ slwi r4, r0, 1
|
|
/* 8033D520 0033A460 38 03 FD C8 */ addi r0, r3, lbl_803CFDC8@l
|
|
/* 8033D524 0033A464 7C 60 22 14 */ add r3, r0, r4
|
|
/* 8033D528 0033A468 A0 63 00 00 */ lhz r3, 0(r3)
|
|
/* 8033D52C 0033A46C 4E 80 00 20 */ blr
|
|
lbl_8033D530:
|
|
/* 8033D530 0033A470 54 83 04 3E */ clrlwi r3, r4, 0x10
|
|
/* 8033D534 0033A474 28 03 00 20 */ cmplwi r3, 0x20
|
|
/* 8033D538 0033A478 40 81 00 14 */ ble lbl_8033D54C
|
|
/* 8033D53C 0033A47C 28 03 00 FF */ cmplwi r3, 0xff
|
|
/* 8033D540 0033A480 41 81 00 0C */ bgt lbl_8033D54C
|
|
/* 8033D544 0033A484 38 63 FF E0 */ addi r3, r3, -32
|
|
/* 8033D548 0033A488 4E 80 00 20 */ blr
|
|
lbl_8033D54C:
|
|
/* 8033D54C 0033A48C 38 60 00 00 */ li r3, 0
|
|
/* 8033D550 0033A490 4E 80 00 20 */ blr
|
|
|
|
.global OSGetFontEncode
|
|
OSGetFontEncode:
|
|
/* 8033D554 0033A494 A0 6D 84 30 */ lhz r3, lbl_804509B0-_SDA_BASE_(r13)
|
|
/* 8033D558 0033A498 28 03 FF FF */ cmplwi r3, 0xffff
|
|
/* 8033D55C 0033A49C 4C 82 00 20 */ bnelr
|
|
/* 8033D560 0033A4A0 3C 60 80 00 */ lis r3, 0x800000CC@ha
|
|
/* 8033D564 0033A4A4 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
|
|
/* 8033D568 0033A4A8 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8033D56C 0033A4AC 41 82 00 0C */ beq lbl_8033D578
|
|
/* 8033D570 0033A4B0 41 80 00 2C */ blt lbl_8033D59C
|
|
/* 8033D574 0033A4B4 48 00 00 28 */ b lbl_8033D59C
|
|
lbl_8033D578:
|
|
/* 8033D578 0033A4B8 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
|
|
/* 8033D57C 0033A4BC A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
|
|
/* 8033D580 0033A4C0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
|
|
/* 8033D584 0033A4C4 41 82 00 0C */ beq lbl_8033D590
|
|
/* 8033D588 0033A4C8 38 00 00 01 */ li r0, 1
|
|
/* 8033D58C 0033A4CC 48 00 00 08 */ b lbl_8033D594
|
|
lbl_8033D590:
|
|
/* 8033D590 0033A4D0 38 00 00 00 */ li r0, 0
|
|
lbl_8033D594:
|
|
/* 8033D594 0033A4D4 B0 0D 84 30 */ sth r0, lbl_804509B0-_SDA_BASE_(r13)
|
|
/* 8033D598 0033A4D8 48 00 00 0C */ b lbl_8033D5A4
|
|
lbl_8033D59C:
|
|
/* 8033D59C 0033A4DC 38 00 00 00 */ li r0, 0
|
|
/* 8033D5A0 0033A4E0 B0 0D 84 30 */ sth r0, lbl_804509B0-_SDA_BASE_(r13)
|
|
lbl_8033D5A4:
|
|
.global ParseStringS
|
|
/* 8033D5A4 0033A4E4 3C 80 80 34 */ lis r4, ParseStringS@ha
|
|
/* 8033D5A8 0033A4E8 A0 6D 84 30 */ lhz r3, lbl_804509B0-_SDA_BASE_(r13)
|
|
.global ParseStringS
|
|
/* 8033D5AC 0033A4EC 38 04 D5 B8 */ addi r0, r4, ParseStringS@l
|
|
/* 8033D5B0 0033A4F0 90 0D 90 E8 */ stw r0, lbl_80451668-_SDA_BASE_(r13)
|
|
/* 8033D5B4 0033A4F4 4E 80 00 20 */ blr
|
|
.global ParseStringS
|
|
ParseStringS:
|
|
/* 8033D5B8 0033A4F8 7C 08 02 A6 */ mflr r0
|
|
/* 8033D5BC 0033A4FC 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 8033D5C0 0033A500 54 60 04 3E */ clrlwi r0, r3, 0x10
|
|
/* 8033D5C4 0033A504 2C 00 00 01 */ cmpwi r0, 1
|
|
/* 8033D5C8 0033A508 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 8033D5CC 0033A50C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 8033D5D0 0033A510 3B E6 00 00 */ addi r31, r6, 0
|
|
/* 8033D5D4 0033A514 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 8033D5D8 0033A518 3B C4 00 00 */ addi r30, r4, 0
|
|
/* 8033D5DC 0033A51C 38 80 00 00 */ li r4, 0
|
|
/* 8033D5E0 0033A520 41 82 00 30 */ beq lbl_8033D610
|
|
/* 8033D5E4 0033A524 40 80 00 E8 */ bge lbl_8033D6CC
|
|
/* 8033D5E8 0033A528 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8033D5EC 0033A52C 40 80 00 08 */ bge lbl_8033D5F4
|
|
/* 8033D5F0 0033A530 48 00 00 DC */ b lbl_8033D6CC
|
|
lbl_8033D5F4:
|
|
/* 8033D5F4 0033A534 88 1E 00 00 */ lbz r0, 0(r30)
|
|
/* 8033D5F8 0033A538 81 0D 90 E0 */ lwz r8, lbl_80451660-_SDA_BASE_(r13)
|
|
/* 8033D5FC 0033A53C 28 00 00 00 */ cmplwi r0, 0
|
|
/* 8033D600 0033A540 7C 04 03 78 */ mr r4, r0
|
|
/* 8033D604 0033A544 41 82 00 C8 */ beq lbl_8033D6CC
|
|
/* 8033D608 0033A548 3B DE 00 01 */ addi r30, r30, 1
|
|
/* 8033D60C 0033A54C 48 00 00 C0 */ b lbl_8033D6CC
|
|
lbl_8033D610:
|
|
/* 8033D610 0033A550 88 1E 00 00 */ lbz r0, 0(r30)
|
|
/* 8033D614 0033A554 81 0D 90 E4 */ lwz r8, lbl_80451664-_SDA_BASE_(r13)
|
|
/* 8033D618 0033A558 28 00 00 00 */ cmplwi r0, 0
|
|
/* 8033D61C 0033A55C 7C 04 03 78 */ mr r4, r0
|
|
/* 8033D620 0033A560 41 82 00 AC */ beq lbl_8033D6CC
|
|
/* 8033D624 0033A564 54 80 06 3E */ clrlwi r0, r4, 0x18
|
|
/* 8033D628 0033A568 28 00 00 81 */ cmplwi r0, 0x81
|
|
/* 8033D62C 0033A56C 38 C0 00 01 */ li r6, 1
|
|
/* 8033D630 0033A570 38 E0 00 00 */ li r7, 0
|
|
/* 8033D634 0033A574 3B DE 00 01 */ addi r30, r30, 1
|
|
/* 8033D638 0033A578 41 80 00 10 */ blt lbl_8033D648
|
|
/* 8033D63C 0033A57C 28 00 00 9F */ cmplwi r0, 0x9f
|
|
/* 8033D640 0033A580 41 81 00 08 */ bgt lbl_8033D648
|
|
/* 8033D644 0033A584 7C C7 33 78 */ mr r7, r6
|
|
lbl_8033D648:
|
|
/* 8033D648 0033A588 2C 07 00 00 */ cmpwi r7, 0
|
|
/* 8033D64C 0033A58C 40 82 00 2C */ bne lbl_8033D678
|
|
/* 8033D650 0033A590 54 80 06 3E */ clrlwi r0, r4, 0x18
|
|
/* 8033D654 0033A594 28 00 00 E0 */ cmplwi r0, 0xe0
|
|
/* 8033D658 0033A598 38 E0 00 00 */ li r7, 0
|
|
/* 8033D65C 0033A59C 41 80 00 10 */ blt lbl_8033D66C
|
|
/* 8033D660 0033A5A0 28 00 00 FC */ cmplwi r0, 0xfc
|
|
/* 8033D664 0033A5A4 41 81 00 08 */ bgt lbl_8033D66C
|
|
/* 8033D668 0033A5A8 38 E0 00 01 */ li r7, 1
|
|
lbl_8033D66C:
|
|
/* 8033D66C 0033A5AC 2C 07 00 00 */ cmpwi r7, 0
|
|
/* 8033D670 0033A5B0 40 82 00 08 */ bne lbl_8033D678
|
|
/* 8033D674 0033A5B4 38 C0 00 00 */ li r6, 0
|
|
lbl_8033D678:
|
|
/* 8033D678 0033A5B8 2C 06 00 00 */ cmpwi r6, 0
|
|
/* 8033D67C 0033A5BC 41 82 00 50 */ beq lbl_8033D6CC
|
|
/* 8033D680 0033A5C0 88 FE 00 00 */ lbz r7, 0(r30)
|
|
/* 8033D684 0033A5C4 38 00 00 00 */ li r0, 0
|
|
/* 8033D688 0033A5C8 7C 06 03 78 */ mr r6, r0
|
|
/* 8033D68C 0033A5CC 28 07 00 40 */ cmplwi r7, 0x40
|
|
/* 8033D690 0033A5D0 41 80 00 10 */ blt lbl_8033D6A0
|
|
/* 8033D694 0033A5D4 28 07 00 FC */ cmplwi r7, 0xfc
|
|
/* 8033D698 0033A5D8 41 81 00 08 */ bgt lbl_8033D6A0
|
|
/* 8033D69C 0033A5DC 38 C0 00 01 */ li r6, 1
|
|
lbl_8033D6A0:
|
|
/* 8033D6A0 0033A5E0 2C 06 00 00 */ cmpwi r6, 0
|
|
/* 8033D6A4 0033A5E4 41 82 00 10 */ beq lbl_8033D6B4
|
|
/* 8033D6A8 0033A5E8 28 07 00 7F */ cmplwi r7, 0x7f
|
|
/* 8033D6AC 0033A5EC 41 82 00 08 */ beq lbl_8033D6B4
|
|
/* 8033D6B0 0033A5F0 38 00 00 01 */ li r0, 1
|
|
lbl_8033D6B4:
|
|
/* 8033D6B4 0033A5F4 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8033D6B8 0033A5F8 41 82 00 14 */ beq lbl_8033D6CC
|
|
/* 8033D6BC 0033A5FC 88 1E 00 00 */ lbz r0, 0(r30)
|
|
/* 8033D6C0 0033A600 54 84 42 2E */ rlwinm r4, r4, 8, 8, 0x17
|
|
/* 8033D6C4 0033A604 3B DE 00 01 */ addi r30, r30, 1
|
|
/* 8033D6C8 0033A608 7C 84 03 78 */ or r4, r4, r0
|
|
lbl_8033D6CC:
|
|
/* 8033D6CC 0033A60C 91 05 00 00 */ stw r8, 0(r5)
|
|
/* 8033D6D0 0033A610 4B FF FD 11 */ bl GetFontCode
|
|
/* 8033D6D4 0033A614 90 7F 00 00 */ stw r3, 0(r31)
|
|
/* 8033D6D8 0033A618 7F C3 F3 78 */ mr r3, r30
|
|
/* 8033D6DC 0033A61C 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 8033D6E0 0033A620 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 8033D6E4 0033A624 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 8033D6E8 0033A628 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 8033D6EC 0033A62C 7C 08 03 A6 */ mtlr r0
|
|
/* 8033D6F0 0033A630 4E 80 00 20 */ blr
|
|
|