summaryrefslogtreecommitdiff
path: root/asm/TRK_MINNOW_DOLPHIN/nubinit.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/TRK_MINNOW_DOLPHIN/nubinit.s')
-rw-r--r--asm/TRK_MINNOW_DOLPHIN/nubinit.s136
1 files changed, 136 insertions, 0 deletions
diff --git a/asm/TRK_MINNOW_DOLPHIN/nubinit.s b/asm/TRK_MINNOW_DOLPHIN/nubinit.s
new file mode 100644
index 0000000..38c1598
--- /dev/null
+++ b/asm/TRK_MINNOW_DOLPHIN/nubinit.s
@@ -0,0 +1,136 @@
+.include "macros.inc"
+
+.section .text, "ax" # 0x80005600 - 0x8036FBA0
+.global TRKInitializeNub
+TRKInitializeNub:
+/* 80087EC4 00084E04 7C 08 02 A6 */ mflr r0
+/* 80087EC8 00084E08 90 01 00 04 */ stw r0, 4(r1)
+/* 80087ECC 00084E0C 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80087ED0 00084E10 93 E1 00 0C */ stw r31, 0xc(r1)
+/* 80087ED4 00084E14 93 C1 00 08 */ stw r30, 8(r1)
+/* 80087ED8 00084E18 48 00 01 0D */ bl TRKInitializeEndian
+/* 80087EDC 00084E1C 7C 7E 1B 79 */ or. r30, r3, r3
+/* 80087EE0 00084E20 40 82 00 08 */ bne lbl_80087EE8
+/* 80087EE4 00084E24 48 00 0B AD */ bl usr_put_initialize
+lbl_80087EE8:
+/* 80087EE8 00084E28 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087EEC 00084E2C 40 82 00 0C */ bne lbl_80087EF8
+/* 80087EF0 00084E30 4B FF FD 79 */ bl TRKInitializeEventQueue
+/* 80087EF4 00084E34 7C 7E 1B 78 */ mr r30, r3
+lbl_80087EF8:
+/* 80087EF8 00084E38 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087EFC 00084E3C 40 82 00 0C */ bne lbl_80087F08
+/* 80087F00 00084E40 48 00 01 89 */ bl TRKInitializeMessageBuffers
+/* 80087F04 00084E44 7C 7E 1B 78 */ mr r30, r3
+lbl_80087F08:
+/* 80087F08 00084E48 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087F0C 00084E4C 40 82 00 0C */ bne lbl_80087F18
+/* 80087F10 00084E50 48 00 0B 85 */ bl TRKInitializeDispatcher
+/* 80087F14 00084E54 7C 7E 1B 78 */ mr r30, r3
+lbl_80087F18:
+/* 80087F18 00084E58 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087F1C 00084E5C 40 82 00 40 */ bne lbl_80087F5C
+/* 80087F20 00084E60 3C 60 80 3F */ lis r3, gTRKInputPendingPtr@ha
+/* 80087F24 00084E64 3B E3 AA D4 */ addi r31, r3, gTRKInputPendingPtr@l
+/* 80087F28 00084E68 3C 60 00 01 */ lis r3, 0x0000E100@ha
+/* 80087F2C 00084E6C 38 DF 00 00 */ addi r6, r31, 0
+/* 80087F30 00084E70 38 63 E1 00 */ addi r3, r3, 0x0000E100@l
+/* 80087F34 00084E74 38 80 00 01 */ li r4, 1
+/* 80087F38 00084E78 38 A0 00 00 */ li r5, 0
+/* 80087F3C 00084E7C 48 00 42 85 */ bl TRKInitializeIntDrivenUART
+/* 80087F40 00084E80 7C 60 1B 78 */ mr r0, r3
+/* 80087F44 00084E84 80 7F 00 00 */ lwz r3, 0(r31)
+/* 80087F48 00084E88 7C 1F 03 78 */ mr r31, r0
+/* 80087F4C 00084E8C 48 00 3A B9 */ bl TRKTargetSetInputPendingPtr
+/* 80087F50 00084E90 2C 1F 00 00 */ cmpwi r31, 0
+/* 80087F54 00084E94 41 82 00 08 */ beq lbl_80087F5C
+/* 80087F58 00084E98 7F FE FB 78 */ mr r30, r31
+lbl_80087F5C:
+/* 80087F5C 00084E9C 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087F60 00084EA0 40 82 00 0C */ bne lbl_80087F6C
+/* 80087F64 00084EA4 48 00 0B 01 */ bl TRKInitializeSerialHandler
+/* 80087F68 00084EA8 7C 7E 1B 78 */ mr r30, r3
+lbl_80087F6C:
+/* 80087F6C 00084EAC 2C 1E 00 00 */ cmpwi r30, 0
+/* 80087F70 00084EB0 40 82 00 0C */ bne lbl_80087F7C
+/* 80087F74 00084EB4 48 00 3C 91 */ bl TRKInitializeTarget
+/* 80087F78 00084EB8 7C 7E 1B 78 */ mr r30, r3
+lbl_80087F7C:
+/* 80087F7C 00084EBC 7F C3 F3 78 */ mr r3, r30
+/* 80087F80 00084EC0 83 E1 00 0C */ lwz r31, 0xc(r1)
+/* 80087F84 00084EC4 83 C1 00 08 */ lwz r30, 8(r1)
+/* 80087F88 00084EC8 38 21 00 10 */ addi r1, r1, 0x10
+/* 80087F8C 00084ECC 80 01 00 04 */ lwz r0, 4(r1)
+/* 80087F90 00084ED0 7C 08 03 A6 */ mtlr r0
+/* 80087F94 00084ED4 4E 80 00 20 */ blr
+
+.global TRKTerminateNub
+TRKTerminateNub:
+/* 80087F98 00084ED8 7C 08 02 A6 */ mflr r0
+/* 80087F9C 00084EDC 90 01 00 04 */ stw r0, 4(r1)
+/* 80087FA0 00084EE0 94 21 FF F8 */ stwu r1, -8(r1)
+/* 80087FA4 00084EE4 48 00 0A E5 */ bl TRKTerminateSerialHandler
+/* 80087FA8 00084EE8 38 60 00 00 */ li r3, 0
+/* 80087FAC 00084EEC 38 21 00 08 */ addi r1, r1, 8
+/* 80087FB0 00084EF0 80 01 00 04 */ lwz r0, 4(r1)
+/* 80087FB4 00084EF4 7C 08 03 A6 */ mtlr r0
+/* 80087FB8 00084EF8 4E 80 00 20 */ blr
+
+.global TRKNubWelcome
+TRKNubWelcome:
+/* 80087FBC 00084EFC 7C 08 02 A6 */ mflr r0
+/* 80087FC0 00084F00 3C 60 80 37 */ lis r3, "@40"@ha
+/* 80087FC4 00084F04 90 01 00 04 */ stw r0, 4(r1)
+/* 80087FC8 00084F08 38 63 21 F0 */ addi r3, r3, "@40"@l
+/* 80087FCC 00084F0C 94 21 FF F8 */ stwu r1, -8(r1)
+/* 80087FD0 00084F10 48 00 43 79 */ bl TRK_board_display
+/* 80087FD4 00084F14 38 21 00 08 */ addi r1, r1, 8
+/* 80087FD8 00084F18 80 01 00 04 */ lwz r0, 4(r1)
+/* 80087FDC 00084F1C 7C 08 03 A6 */ mtlr r0
+/* 80087FE0 00084F20 4E 80 00 20 */ blr
+
+.global TRKInitializeEndian
+TRKInitializeEndian:
+/* 80087FE4 00084F24 3C 60 80 3F */ lis r3, gTRKBigEndian@ha
+/* 80087FE8 00084F28 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80087FEC 00084F2C 38 A3 91 08 */ addi r5, r3, gTRKBigEndian@l
+/* 80087FF0 00084F30 38 C0 00 01 */ li r6, 1
+/* 80087FF4 00084F34 90 C5 00 00 */ stw r6, 0(r5)
+/* 80087FF8 00084F38 38 00 00 12 */ li r0, 0x12
+/* 80087FFC 00084F3C 38 60 00 34 */ li r3, 0x34
+/* 80088000 00084F40 98 01 00 08 */ stb r0, 8(r1)
+/* 80088004 00084F44 38 80 00 56 */ li r4, 0x56
+/* 80088008 00084F48 38 00 00 78 */ li r0, 0x78
+/* 8008800C 00084F4C 98 61 00 09 */ stb r3, 9(r1)
+/* 80088010 00084F50 38 60 00 00 */ li r3, 0
+/* 80088014 00084F54 98 81 00 0A */ stb r4, 0xa(r1)
+/* 80088018 00084F58 98 01 00 0B */ stb r0, 0xb(r1)
+/* 8008801C 00084F5C 80 81 00 08 */ lwz r4, 8(r1)
+/* 80088020 00084F60 3C 04 ED CC */ addis r0, r4, 0xedcc
+/* 80088024 00084F64 28 00 56 78 */ cmplwi r0, 0x5678
+/* 80088028 00084F68 40 82 00 0C */ bne lbl_80088034
+/* 8008802C 00084F6C 90 C5 00 00 */ stw r6, 0(r5)
+/* 80088030 00084F70 48 00 00 20 */ b lbl_80088050
+lbl_80088034:
+/* 80088034 00084F74 3C 04 87 AA */ addis r0, r4, 0x87aa
+/* 80088038 00084F78 28 00 34 12 */ cmplwi r0, 0x3412
+/* 8008803C 00084F7C 40 82 00 10 */ bne lbl_8008804C
+/* 80088040 00084F80 38 00 00 00 */ li r0, 0
+/* 80088044 00084F84 90 05 00 00 */ stw r0, 0(r5)
+/* 80088048 00084F88 48 00 00 08 */ b lbl_80088050
+lbl_8008804C:
+/* 8008804C 00084F8C 38 60 00 01 */ li r3, 1
+lbl_80088050:
+/* 80088050 00084F90 38 21 00 10 */ addi r1, r1, 0x10
+/* 80088054 00084F94 4E 80 00 20 */ blr
+
+.section .rodata, "a" # 0x8036FFA0 - 0x803A8380
+.balign 8
+"@40":
+ .asciz "MetroTRK for Dolphin v0.8"
+.balign 8
+
+.section .bss, "wa" # 0x803E6000 - 0x80408AC0
+.global gTRKBigEndian
+gTRKBigEndian:
+ .skip 0x8