summaryrefslogtreecommitdiff
path: root/asm/MetroTRK/mslsupp.s
blob: 36fb110242473be35a68b84ada3d396fd6799c0c (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
.include "macros.inc"

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

.global __TRK_write_console
__TRK_write_console:
/* 801D8FC0 001D4C20  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801D8FC4 001D4C24  7C 08 02 A6 */	mflr r0
/* 801D8FC8 001D4C28  90 01 00 24 */	stw r0, 0x24(r1)
/* 801D8FCC 001D4C2C  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801D8FD0 001D4C30  7C BF 2B 78 */	mr r31, r5
/* 801D8FD4 001D4C34  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801D8FD8 001D4C38  7C 9E 23 78 */	mr r30, r4
/* 801D8FDC 001D4C3C  48 00 09 B1 */	bl GetUseSerialIO
/* 801D8FE0 001D4C40  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 801D8FE4 001D4C44  40 82 00 0C */	bne lbl_801D8FF0
/* 801D8FE8 001D4C48  38 60 00 01 */	li r3, 1
/* 801D8FEC 001D4C4C  48 00 00 78 */	b lbl_801D9064
lbl_801D8FF0:
/* 801D8FF0 001D4C50  4B FF D9 A1 */	bl GetTRKConnected
/* 801D8FF4 001D4C54  2C 03 00 00 */	cmpwi r3, 0
/* 801D8FF8 001D4C58  40 82 00 0C */	bne lbl_801D9004
/* 801D8FFC 001D4C5C  38 60 00 01 */	li r3, 1
/* 801D9000 001D4C60  48 00 00 64 */	b lbl_801D9064
lbl_801D9004:
/* 801D9004 001D4C64  80 1F 00 00 */	lwz r0, 0(r31)
/* 801D9008 001D4C68  7F C6 F3 78 */	mr r6, r30
/* 801D900C 001D4C6C  38 A1 00 08 */	addi r5, r1, 8
/* 801D9010 001D4C70  38 60 00 D0 */	li r3, 0xd0
/* 801D9014 001D4C74  90 01 00 08 */	stw r0, 8(r1)
/* 801D9018 001D4C78  38 80 00 01 */	li r4, 1
/* 801D901C 001D4C7C  4B FF FC 15 */	bl $6fill$6
/* 801D9020 001D4C80  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 801D9024 001D4C84  80 61 00 08 */	lwz r3, 8(r1)
/* 801D9028 001D4C88  2C 00 00 01 */	cmpwi r0, 1
/* 801D902C 001D4C8C  90 7F 00 00 */	stw r3, 0(r31)
/* 801D9030 001D4C90  41 82 00 30 */	beq lbl_801D9060
/* 801D9034 001D4C94  40 80 00 10 */	bge lbl_801D9044
/* 801D9038 001D4C98  2C 00 00 00 */	cmpwi r0, 0
/* 801D903C 001D4C9C  40 80 00 14 */	bge lbl_801D9050
/* 801D9040 001D4CA0  48 00 00 20 */	b lbl_801D9060
lbl_801D9044:
/* 801D9044 001D4CA4  2C 00 00 03 */	cmpwi r0, 3
/* 801D9048 001D4CA8  40 80 00 18 */	bge lbl_801D9060
/* 801D904C 001D4CAC  48 00 00 0C */	b lbl_801D9058
lbl_801D9050:
/* 801D9050 001D4CB0  38 60 00 00 */	li r3, 0
/* 801D9054 001D4CB4  48 00 00 10 */	b lbl_801D9064
lbl_801D9058:
/* 801D9058 001D4CB8  38 60 00 02 */	li r3, 2
/* 801D905C 001D4CBC  48 00 00 08 */	b lbl_801D9064
lbl_801D9060:
/* 801D9060 001D4CC0  38 60 00 01 */	li r3, 1
lbl_801D9064:
/* 801D9064 001D4CC4  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801D9068 001D4CC8  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801D906C 001D4CCC  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801D9070 001D4CD0  7C 08 03 A6 */	mtlr r0
/* 801D9074 001D4CD4  38 21 00 20 */	addi r1, r1, 0x20
/* 801D9078 001D4CD8  4E 80 00 20 */	blr

.global __read_console
__read_console:
/* 801D907C 001D4CDC  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 801D9080 001D4CE0  7C 08 02 A6 */	mflr r0
/* 801D9084 001D4CE4  90 01 00 24 */	stw r0, 0x24(r1)
/* 801D9088 001D4CE8  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 801D908C 001D4CEC  7C BF 2B 78 */	mr r31, r5
/* 801D9090 001D4CF0  93 C1 00 18 */	stw r30, 0x18(r1)
/* 801D9094 001D4CF4  7C 9E 23 78 */	mr r30, r4
/* 801D9098 001D4CF8  48 00 08 F5 */	bl GetUseSerialIO
/* 801D909C 001D4CFC  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 801D90A0 001D4D00  40 82 00 0C */	bne lbl_801D90AC
/* 801D90A4 001D4D04  38 60 00 01 */	li r3, 1
/* 801D90A8 001D4D08  48 00 00 78 */	b lbl_801D9120
lbl_801D90AC:
/* 801D90AC 001D4D0C  4B FF D8 E5 */	bl GetTRKConnected
/* 801D90B0 001D4D10  2C 03 00 00 */	cmpwi r3, 0
/* 801D90B4 001D4D14  40 82 00 0C */	bne lbl_801D90C0
/* 801D90B8 001D4D18  38 60 00 01 */	li r3, 1
/* 801D90BC 001D4D1C  48 00 00 64 */	b lbl_801D9120
lbl_801D90C0:
/* 801D90C0 001D4D20  80 1F 00 00 */	lwz r0, 0(r31)
/* 801D90C4 001D4D24  7F C6 F3 78 */	mr r6, r30
/* 801D90C8 001D4D28  38 A1 00 08 */	addi r5, r1, 8
/* 801D90CC 001D4D2C  38 60 00 D1 */	li r3, 0xd1
/* 801D90D0 001D4D30  90 01 00 08 */	stw r0, 8(r1)
/* 801D90D4 001D4D34  38 80 00 00 */	li r4, 0
/* 801D90D8 001D4D38  4B FF FB 59 */	bl $6fill$6
/* 801D90DC 001D4D3C  54 60 06 3E */	clrlwi r0, r3, 0x18
/* 801D90E0 001D4D40  80 61 00 08 */	lwz r3, 8(r1)
/* 801D90E4 001D4D44  2C 00 00 01 */	cmpwi r0, 1
/* 801D90E8 001D4D48  90 7F 00 00 */	stw r3, 0(r31)
/* 801D90EC 001D4D4C  41 82 00 30 */	beq lbl_801D911C
/* 801D90F0 001D4D50  40 80 00 10 */	bge lbl_801D9100
/* 801D90F4 001D4D54  2C 00 00 00 */	cmpwi r0, 0
/* 801D90F8 001D4D58  40 80 00 14 */	bge lbl_801D910C
/* 801D90FC 001D4D5C  48 00 00 20 */	b lbl_801D911C
lbl_801D9100:
/* 801D9100 001D4D60  2C 00 00 03 */	cmpwi r0, 3
/* 801D9104 001D4D64  40 80 00 18 */	bge lbl_801D911C
/* 801D9108 001D4D68  48 00 00 0C */	b lbl_801D9114
lbl_801D910C:
/* 801D910C 001D4D6C  38 60 00 00 */	li r3, 0
/* 801D9110 001D4D70  48 00 00 10 */	b lbl_801D9120
lbl_801D9114:
/* 801D9114 001D4D74  38 60 00 02 */	li r3, 2
/* 801D9118 001D4D78  48 00 00 08 */	b lbl_801D9120
lbl_801D911C:
/* 801D911C 001D4D7C  38 60 00 01 */	li r3, 1
lbl_801D9120:
/* 801D9120 001D4D80  80 01 00 24 */	lwz r0, 0x24(r1)
/* 801D9124 001D4D84  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 801D9128 001D4D88  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 801D912C 001D4D8C  7C 08 03 A6 */	mtlr r0
/* 801D9130 001D4D90  38 21 00 20 */	addi r1, r1, 0x20
/* 801D9134 001D4D94  4E 80 00 20 */	blr