summaryrefslogtreecommitdiff
path: root/asm/MetroTRK/nubinit.s
blob: f826dfe99b1fcd7636683f0ea316d9e357f054aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global TRKNubWelcome
TRKNubWelcome:
/* 801D4B58 001D07B8  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801D4B5C 001D07BC  7C 08 02 A6 */	mflr r0
/* 801D4B60 001D07C0  3C 60 80 40 */	lis r3, lbl_803FD640@ha
/* 801D4B64 001D07C4  90 01 00 14 */	stw r0, 0x14(r1)
/* 801D4B68 001D07C8  38 63 D6 40 */	addi r3, r3, lbl_803FD640@l
/* 801D4B6C 001D07CC  48 00 4A 11 */	bl TRK_board_display
/* 801D4B70 001D07D0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801D4B74 001D07D4  7C 08 03 A6 */	mtlr r0
/* 801D4B78 001D07D8  38 21 00 10 */	addi r1, r1, 0x10
/* 801D4B7C 001D07DC  4E 80 00 20 */	blr

.global TRKTerminateNub
TRKTerminateNub:
/* 801D4B80 001D07E0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 801D4B84 001D07E4  7C 08 02 A6 */	mflr r0
/* 801D4B88 001D07E8  90 01 00 14 */	stw r0, 0x14(r1)
/* 801D4B8C 001D07EC  48 00 09 B9 */	bl TRKTerminateSerialHandler
/* 801D4B90 001D07F0  80 01 00 14 */	lwz r0, 0x14(r1)
/* 801D4B94 001D07F4  38 60 00 00 */	li r3, 0
/* 801D4B98 001D07F8  7C 08 03 A6 */	mtlr r0
/* 801D4B9C 001D07FC  38 21 00 10 */	addi r1, r1, 0x10
/* 801D4BA0 001D0800  4E 80 00 20 */	blr

.global TRKInitializeNub
TRKInitializeNub:
/* 801D4BA4 001D0804  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801D4BA8 001D0808  7C 08 02 A6 */	mflr r0
/* 801D4BAC 001D080C  38 A0 00 12 */	li r5, 0x12
/* 801D4BB0 001D0810  38 80 00 34 */	li r4, 0x34
/* 801D4BB4 001D0814  90 01 00 24 */	stw r0, 0x24(r1)
/* 801D4BB8 001D0818  38 60 00 56 */	li r3, 0x56
/* 801D4BBC 001D081C  38 00 00 78 */	li r0, 0x78
/* 801D4BC0 001D0820  38 C0 00 01 */	li r6, 1
/* 801D4BC4 001D0824  98 A1 00 08 */	stb r5, 8(r1)
/* 801D4BC8 001D0828  3C A0 80 49 */	lis r5, lbl_8048EE18@ha
/* 801D4BCC 001D082C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801D4BD0 001D0830  3B E0 00 00 */	li r31, 0
/* 801D4BD4 001D0834  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801D4BD8 001D0838  98 81 00 09 */	stb r4, 9(r1)
/* 801D4BDC 001D083C  98 61 00 0A */	stb r3, 0xa(r1)
/* 801D4BE0 001D0840  98 01 00 0B */	stb r0, 0xb(r1)
/* 801D4BE4 001D0844  80 61 00 08 */	lwz r3, 8(r1)
/* 801D4BE8 001D0848  94 C5 EE 18 */	stwu r6, lbl_8048EE18@l(r5)
/* 801D4BEC 001D084C  3C 03 ED CC */	addis r0, r3, 0xedcc
/* 801D4BF0 001D0850  28 00 56 78 */	cmplwi r0, 0x5678
/* 801D4BF4 001D0854  40 82 00 0C */	bne lbl_801D4C00
/* 801D4BF8 001D0858  90 C5 00 00 */	stw r6, 0(r5)
/* 801D4BFC 001D085C  48 00 00 1C */	b lbl_801D4C18
lbl_801D4C00:
/* 801D4C00 001D0860  3C 03 87 AA */	addis r0, r3, 0x87aa
/* 801D4C04 001D0864  28 00 34 12 */	cmplwi r0, 0x3412
/* 801D4C08 001D0868  40 82 00 0C */	bne lbl_801D4C14
/* 801D4C0C 001D086C  93 E5 00 00 */	stw r31, 0(r5)
/* 801D4C10 001D0870  48 00 00 08 */	b lbl_801D4C18
lbl_801D4C14:
/* 801D4C14 001D0874  7C DF 33 78 */	mr r31, r6
lbl_801D4C18:
/* 801D4C18 001D0878  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C1C 001D087C  40 82 00 08 */	bne lbl_801D4C24
/* 801D4C20 001D0880  48 00 0A D1 */	bl usr_put_initialize
lbl_801D4C24:
/* 801D4C24 001D0884  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C28 001D0888  40 82 00 0C */	bne lbl_801D4C34
/* 801D4C2C 001D088C  4B FF FE D5 */	bl TRKInitializeEventQueue
/* 801D4C30 001D0890  7C 7F 1B 78 */	mr r31, r3
lbl_801D4C34:
/* 801D4C34 001D0894  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C38 001D0898  40 82 00 0C */	bne lbl_801D4C44
/* 801D4C3C 001D089C  48 00 08 95 */	bl TRKInitializeMessageBuffers
/* 801D4C40 001D08A0  7C 7F 1B 78 */	mr r31, r3
lbl_801D4C44:
/* 801D4C44 001D08A4  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C48 001D08A8  40 82 00 0C */	bne lbl_801D4C54
/* 801D4C4C 001D08AC  48 00 0C 71 */	bl TRKInitializeDispatcher
/* 801D4C50 001D08B0  7C 7F 1B 78 */	mr r31, r3
lbl_801D4C54:
/* 801D4C54 001D08B4  48 00 48 D1 */	bl InitializeProgramEndTrap
/* 801D4C58 001D08B8  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C5C 001D08BC  40 82 00 0C */	bne lbl_801D4C68
/* 801D4C60 001D08C0  48 00 08 ED */	bl TRKInitializeSerialHandler
/* 801D4C64 001D08C4  7C 7F 1B 78 */	mr r31, r3
lbl_801D4C68:
/* 801D4C68 001D08C8  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C6C 001D08CC  40 82 00 0C */	bne lbl_801D4C78
/* 801D4C70 001D08D0  48 00 45 F5 */	bl TRKInitializeTarget
/* 801D4C74 001D08D4  7C 7F 1B 78 */	mr r31, r3
lbl_801D4C78:
/* 801D4C78 001D08D8  2C 1F 00 00 */	cmpwi r31, 0
/* 801D4C7C 001D08DC  40 82 00 44 */	bne lbl_801D4CC0
/* 801D4C80 001D08E0  3C 60 80 64 */	lis r3, lbl_8063F2A0@ha
/* 801D4C84 001D08E4  3C A0 00 01 */	lis r5, 0x0000E100@ha
/* 801D4C88 001D08E8  38 C3 F2 A0 */	addi r6, r3, lbl_8063F2A0@l
/* 801D4C8C 001D08EC  38 80 00 01 */	li r4, 1
/* 801D4C90 001D08F0  38 65 E1 00 */	addi r3, r5, 0x0000E100@l
/* 801D4C94 001D08F4  38 A0 00 00 */	li r5, 0
/* 801D4C98 001D08F8  48 00 4A 65 */	bl TRKInitializeIntDrivenUART
/* 801D4C9C 001D08FC  3C 80 80 64 */	lis r4, lbl_8063F2A0@ha
/* 801D4CA0 001D0900  7C 60 1B 78 */	mr r0, r3
/* 801D4CA4 001D0904  38 64 F2 A0 */	addi r3, r4, lbl_8063F2A0@l
/* 801D4CA8 001D0908  80 63 00 00 */	lwz r3, 0(r3)
/* 801D4CAC 001D090C  7C 1E 03 78 */	mr r30, r0
/* 801D4CB0 001D0910  48 00 29 3D */	bl TRKTargetSetInputPendingPtr
/* 801D4CB4 001D0914  2C 1E 00 00 */	cmpwi r30, 0
/* 801D4CB8 001D0918  41 82 00 08 */	beq lbl_801D4CC0
/* 801D4CBC 001D091C  7F DF F3 78 */	mr r31, r30
lbl_801D4CC0:
/* 801D4CC0 001D0920  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801D4CC4 001D0924  7F E3 FB 78 */	mr r3, r31
/* 801D4CC8 001D0928  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801D4CCC 001D092C  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801D4CD0 001D0930  7C 08 03 A6 */	mtlr r0
/* 801D4CD4 001D0934  38 21 00 20 */	addi r1, r1, 0x20
/* 801D4CD8 001D0938  4E 80 00 20 */	blr