summaryrefslogtreecommitdiff
path: root/asm/MetroTRK/msghndlr.s
blob: 67ed25f2d019e0f67fc4f80d875adfa442f6b3f4 (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
.include "macros.inc"

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

.global TRKDoSetOption
TRKDoSetOption:
/* 801D58C4 001D1524  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801D58C8 001D1528  7C 08 02 A6 */	mflr r0
/* 801D58CC 001D152C  3C 80 80 40 */	lis r4, lbl_803FD680@ha
/* 801D58D0 001D1530  90 01 00 54 */	stw r0, 0x54(r1)
/* 801D58D4 001D1534  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 801D58D8 001D1538  3B E4 D6 80 */	addi r31, r4, lbl_803FD680@l
/* 801D58DC 001D153C  93 C1 00 48 */	stw r30, 0x48(r1)
/* 801D58E0 001D1540  88 03 00 18 */	lbz r0, 0x18(r3)
/* 801D58E4 001D1544  8B C3 00 1C */	lbz r30, 0x1c(r3)
/* 801D58E8 001D1548  28 00 00 01 */	cmplwi r0, 1
/* 801D58EC 001D154C  40 82 00 30 */	bne lbl_801D591C
/* 801D58F0 001D1550  38 7F 00 00 */	addi r3, r31, 0
/* 801D58F4 001D1554  4B FF FE 01 */	bl usr_puts_serial
/* 801D58F8 001D1558  28 1E 00 00 */	cmplwi r30, 0
/* 801D58FC 001D155C  41 82 00 10 */	beq lbl_801D590C
/* 801D5900 001D1560  38 7F 00 20 */	addi r3, r31, 0x20
/* 801D5904 001D1564  4B FF FD F1 */	bl usr_puts_serial
/* 801D5908 001D1568  48 00 00 0C */	b lbl_801D5914
lbl_801D590C:
/* 801D590C 001D156C  38 7F 00 28 */	addi r3, r31, 0x28
/* 801D5910 001D1570  4B FF FD E5 */	bl usr_puts_serial
lbl_801D5914:
/* 801D5914 001D1574  7F C3 F3 78 */	mr r3, r30
/* 801D5918 001D1578  48 00 40 85 */	bl SetUseSerialIO
lbl_801D591C:
/* 801D591C 001D157C  38 61 00 08 */	addi r3, r1, 8
/* 801D5920 001D1580  38 80 00 00 */	li r4, 0
/* 801D5924 001D1584  38 A0 00 40 */	li r5, 0x40
/* 801D5928 001D1588  4B E2 E8 0D */	bl TRK_memset
/* 801D592C 001D158C  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5930 001D1590  38 00 00 80 */	li r0, 0x80
/* 801D5934 001D1594  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5938 001D1598  38 C0 00 40 */	li r6, 0x40
/* 801D593C 001D159C  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5940 001D15A0  38 A0 00 00 */	li r5, 0
/* 801D5944 001D15A4  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D5948 001D15A8  38 61 00 08 */	addi r3, r1, 8
/* 801D594C 001D15AC  38 E8 00 01 */	addi r7, r8, 1
/* 801D5950 001D15B0  38 80 00 40 */	li r4, 0x40
/* 801D5954 001D15B4  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D5958 001D15B8  38 07 00 01 */	addi r0, r7, 1
/* 801D595C 001D15BC  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5960 001D15C0  90 C1 00 08 */	stw r6, 8(r1)
/* 801D5964 001D15C4  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D5968 001D15C8  90 09 00 00 */	stw r0, 0(r9)
/* 801D596C 001D15CC  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D5970 001D15D0  48 00 3C 9D */	bl TRKWriteUARTN
/* 801D5974 001D15D4  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801D5978 001D15D8  38 60 00 00 */	li r3, 0
/* 801D597C 001D15DC  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 801D5980 001D15E0  83 C1 00 48 */	lwz r30, 0x48(r1)
/* 801D5984 001D15E4  7C 08 03 A6 */	mtlr r0
/* 801D5988 001D15E8  38 21 00 50 */	addi r1, r1, 0x50
/* 801D598C 001D15EC  4E 80 00 20 */	blr

.global TRKDoStop
TRKDoStop:
/* 801D5990 001D15F0  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801D5994 001D15F4  7C 08 02 A6 */	mflr r0
/* 801D5998 001D15F8  90 01 00 54 */	stw r0, 0x54(r1)
/* 801D599C 001D15FC  93 E1 00 4C */	stw r31, 0x4c(r1)
/* 801D59A0 001D1600  48 00 1C 5D */	bl TRKTargetStop
/* 801D59A4 001D1604  2C 03 07 04 */	cmpwi r3, 0x704
/* 801D59A8 001D1608  41 82 00 2C */	beq lbl_801D59D4
/* 801D59AC 001D160C  40 80 00 10 */	bge lbl_801D59BC
/* 801D59B0 001D1610  2C 03 00 00 */	cmpwi r3, 0
/* 801D59B4 001D1614  41 82 00 18 */	beq lbl_801D59CC
/* 801D59B8 001D1618  48 00 00 34 */	b lbl_801D59EC
lbl_801D59BC:
/* 801D59BC 001D161C  2C 03 07 06 */	cmpwi r3, 0x706
/* 801D59C0 001D1620  41 82 00 24 */	beq lbl_801D59E4
/* 801D59C4 001D1624  40 80 00 28 */	bge lbl_801D59EC
/* 801D59C8 001D1628  48 00 00 14 */	b lbl_801D59DC
lbl_801D59CC:
/* 801D59CC 001D162C  3B E0 00 00 */	li r31, 0
/* 801D59D0 001D1630  48 00 00 20 */	b lbl_801D59F0
lbl_801D59D4:
/* 801D59D4 001D1634  3B E0 00 21 */	li r31, 0x21
/* 801D59D8 001D1638  48 00 00 18 */	b lbl_801D59F0
lbl_801D59DC:
/* 801D59DC 001D163C  3B E0 00 22 */	li r31, 0x22
/* 801D59E0 001D1640  48 00 00 10 */	b lbl_801D59F0
lbl_801D59E4:
/* 801D59E4 001D1644  3B E0 00 20 */	li r31, 0x20
/* 801D59E8 001D1648  48 00 00 08 */	b lbl_801D59F0
lbl_801D59EC:
/* 801D59EC 001D164C  3B E0 00 01 */	li r31, 1
lbl_801D59F0:
/* 801D59F0 001D1650  38 61 00 08 */	addi r3, r1, 8
/* 801D59F4 001D1654  38 80 00 00 */	li r4, 0
/* 801D59F8 001D1658  38 A0 00 40 */	li r5, 0x40
/* 801D59FC 001D165C  4B E2 E7 39 */	bl TRK_memset
/* 801D5A00 001D1660  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5A04 001D1664  38 00 00 80 */	li r0, 0x80
/* 801D5A08 001D1668  39 03 07 E8 */	addi r8, r3, lbl_804907E8@l
/* 801D5A0C 001D166C  38 A0 00 40 */	li r5, 0x40
/* 801D5A10 001D1670  80 E8 00 00 */	lwz r7, 0(r8)
/* 801D5A14 001D1674  38 61 00 08 */	addi r3, r1, 8
/* 801D5A18 001D1678  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D5A1C 001D167C  38 80 00 40 */	li r4, 0x40
/* 801D5A20 001D1680  38 C7 00 01 */	addi r6, r7, 1
/* 801D5A24 001D1684  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D5A28 001D1688  38 06 00 01 */	addi r0, r6, 1
/* 801D5A2C 001D168C  90 C8 00 00 */	stw r6, 0(r8)
/* 801D5A30 001D1690  90 A1 00 08 */	stw r5, 8(r1)
/* 801D5A34 001D1694  9B E1 00 10 */	stb r31, 0x10(r1)
/* 801D5A38 001D1698  90 08 00 00 */	stw r0, 0(r8)
/* 801D5A3C 001D169C  90 C1 00 14 */	stw r6, 0x14(r1)
/* 801D5A40 001D16A0  48 00 3B CD */	bl TRKWriteUARTN
/* 801D5A44 001D16A4  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801D5A48 001D16A8  38 60 00 00 */	li r3, 0
/* 801D5A4C 001D16AC  83 E1 00 4C */	lwz r31, 0x4c(r1)
/* 801D5A50 001D16B0  7C 08 03 A6 */	mtlr r0
/* 801D5A54 001D16B4  38 21 00 50 */	addi r1, r1, 0x50
/* 801D5A58 001D16B8  4E 80 00 20 */	blr

.global TRKDoStep
TRKDoStep:
/* 801D5A5C 001D16BC  94 21 FE A0 */	stwu r1, -0x160(r1)
/* 801D5A60 001D16C0  7C 08 02 A6 */	mflr r0
/* 801D5A64 001D16C4  38 80 00 00 */	li r4, 0
/* 801D5A68 001D16C8  90 01 01 64 */	stw r0, 0x164(r1)
/* 801D5A6C 001D16CC  BF 61 01 4C */	stmw r27, 0x14c(r1)
/* 801D5A70 001D16D0  7C 7B 1B 78 */	mr r27, r3
/* 801D5A74 001D16D4  4B FF F8 95 */	bl TRKSetBufferPosition
/* 801D5A78 001D16D8  8B FB 00 18 */	lbz r31, 0x18(r27)
/* 801D5A7C 001D16DC  83 BB 00 20 */	lwz r29, 0x20(r27)
/* 801D5A80 001D16E0  2C 1F 00 10 */	cmpwi r31, 0x10
/* 801D5A84 001D16E4  83 9B 00 24 */	lwz r28, 0x24(r27)
/* 801D5A88 001D16E8  41 82 00 2C */	beq lbl_801D5AB4
/* 801D5A8C 001D16EC  40 80 00 1C */	bge lbl_801D5AA8
/* 801D5A90 001D16F0  2C 1F 00 01 */	cmpwi r31, 1
/* 801D5A94 001D16F4  41 82 00 8C */	beq lbl_801D5B20
/* 801D5A98 001D16F8  40 80 00 FC */	bge lbl_801D5B94
/* 801D5A9C 001D16FC  2C 1F 00 00 */	cmpwi r31, 0
/* 801D5AA0 001D1700  40 80 00 14 */	bge lbl_801D5AB4
/* 801D5AA4 001D1704  48 00 00 F0 */	b lbl_801D5B94
lbl_801D5AA8:
/* 801D5AA8 001D1708  2C 1F 00 12 */	cmpwi r31, 0x12
/* 801D5AAC 001D170C  40 80 00 E8 */	bge lbl_801D5B94
/* 801D5AB0 001D1710  48 00 00 70 */	b lbl_801D5B20
lbl_801D5AB4:
/* 801D5AB4 001D1714  8B DB 00 1C */	lbz r30, 0x1c(r27)
/* 801D5AB8 001D1718  28 1E 00 01 */	cmplwi r30, 1
/* 801D5ABC 001D171C  40 80 01 38 */	bge lbl_801D5BF4
/* 801D5AC0 001D1720  38 61 01 08 */	addi r3, r1, 0x108
/* 801D5AC4 001D1724  38 80 00 00 */	li r4, 0
/* 801D5AC8 001D1728  38 A0 00 40 */	li r5, 0x40
/* 801D5ACC 001D172C  4B E2 E6 69 */	bl TRK_memset
/* 801D5AD0 001D1730  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5AD4 001D1734  38 00 00 80 */	li r0, 0x80
/* 801D5AD8 001D1738  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5ADC 001D173C  38 C0 00 40 */	li r6, 0x40
/* 801D5AE0 001D1740  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5AE4 001D1744  38 A0 00 11 */	li r5, 0x11
/* 801D5AE8 001D1748  98 01 01 0C */	stb r0, 0x10c(r1)
/* 801D5AEC 001D174C  38 61 01 08 */	addi r3, r1, 0x108
/* 801D5AF0 001D1750  38 E8 00 01 */	addi r7, r8, 1
/* 801D5AF4 001D1754  38 80 00 40 */	li r4, 0x40
/* 801D5AF8 001D1758  91 01 01 14 */	stw r8, 0x114(r1)
/* 801D5AFC 001D175C  38 07 00 01 */	addi r0, r7, 1
/* 801D5B00 001D1760  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5B04 001D1764  90 C1 01 08 */	stw r6, 0x108(r1)
/* 801D5B08 001D1768  98 A1 01 10 */	stb r5, 0x110(r1)
/* 801D5B0C 001D176C  90 09 00 00 */	stw r0, 0(r9)
/* 801D5B10 001D1770  90 E1 01 14 */	stw r7, 0x114(r1)
/* 801D5B14 001D1774  48 00 3A F9 */	bl TRKWriteUARTN
/* 801D5B18 001D1778  38 60 00 00 */	li r3, 0
/* 801D5B1C 001D177C  48 00 02 00 */	b lbl_801D5D1C
lbl_801D5B20:
/* 801D5B20 001D1780  48 00 1D 15 */	bl TRKTargetGetPC
/* 801D5B24 001D1784  7C 03 E8 40 */	cmplw r3, r29
/* 801D5B28 001D1788  41 80 00 0C */	blt lbl_801D5B34
/* 801D5B2C 001D178C  7C 03 E0 40 */	cmplw r3, r28
/* 801D5B30 001D1790  40 81 00 C4 */	ble lbl_801D5BF4
lbl_801D5B34:
/* 801D5B34 001D1794  38 61 00 C8 */	addi r3, r1, 0xc8
/* 801D5B38 001D1798  38 80 00 00 */	li r4, 0
/* 801D5B3C 001D179C  38 A0 00 40 */	li r5, 0x40
/* 801D5B40 001D17A0  4B E2 E5 F5 */	bl TRK_memset
/* 801D5B44 001D17A4  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5B48 001D17A8  38 00 00 80 */	li r0, 0x80
/* 801D5B4C 001D17AC  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5B50 001D17B0  38 C0 00 40 */	li r6, 0x40
/* 801D5B54 001D17B4  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5B58 001D17B8  38 A0 00 11 */	li r5, 0x11
/* 801D5B5C 001D17BC  98 01 00 CC */	stb r0, 0xcc(r1)
/* 801D5B60 001D17C0  38 61 00 C8 */	addi r3, r1, 0xc8
/* 801D5B64 001D17C4  38 E8 00 01 */	addi r7, r8, 1
/* 801D5B68 001D17C8  38 80 00 40 */	li r4, 0x40
/* 801D5B6C 001D17CC  91 01 00 D4 */	stw r8, 0xd4(r1)
/* 801D5B70 001D17D0  38 07 00 01 */	addi r0, r7, 1
/* 801D5B74 001D17D4  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5B78 001D17D8  90 C1 00 C8 */	stw r6, 0xc8(r1)
/* 801D5B7C 001D17DC  98 A1 00 D0 */	stb r5, 0xd0(r1)
/* 801D5B80 001D17E0  90 09 00 00 */	stw r0, 0(r9)
/* 801D5B84 001D17E4  90 E1 00 D4 */	stw r7, 0xd4(r1)
/* 801D5B88 001D17E8  48 00 3A 85 */	bl TRKWriteUARTN
/* 801D5B8C 001D17EC  38 60 00 00 */	li r3, 0
/* 801D5B90 001D17F0  48 00 01 8C */	b lbl_801D5D1C
lbl_801D5B94:
/* 801D5B94 001D17F4  38 61 00 88 */	addi r3, r1, 0x88
/* 801D5B98 001D17F8  38 80 00 00 */	li r4, 0
/* 801D5B9C 001D17FC  38 A0 00 40 */	li r5, 0x40
/* 801D5BA0 001D1800  4B E2 E5 95 */	bl TRK_memset
/* 801D5BA4 001D1804  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5BA8 001D1808  38 00 00 80 */	li r0, 0x80
/* 801D5BAC 001D180C  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5BB0 001D1810  38 C0 00 40 */	li r6, 0x40
/* 801D5BB4 001D1814  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5BB8 001D1818  38 A0 00 12 */	li r5, 0x12
/* 801D5BBC 001D181C  98 01 00 8C */	stb r0, 0x8c(r1)
/* 801D5BC0 001D1820  38 61 00 88 */	addi r3, r1, 0x88
/* 801D5BC4 001D1824  38 E8 00 01 */	addi r7, r8, 1
/* 801D5BC8 001D1828  38 80 00 40 */	li r4, 0x40
/* 801D5BCC 001D182C  91 01 00 94 */	stw r8, 0x94(r1)
/* 801D5BD0 001D1830  38 07 00 01 */	addi r0, r7, 1
/* 801D5BD4 001D1834  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5BD8 001D1838  90 C1 00 88 */	stw r6, 0x88(r1)
/* 801D5BDC 001D183C  98 A1 00 90 */	stb r5, 0x90(r1)
/* 801D5BE0 001D1840  90 09 00 00 */	stw r0, 0(r9)
/* 801D5BE4 001D1844  90 E1 00 94 */	stw r7, 0x94(r1)
/* 801D5BE8 001D1848  48 00 3A 25 */	bl TRKWriteUARTN
/* 801D5BEC 001D184C  38 60 00 00 */	li r3, 0
/* 801D5BF0 001D1850  48 00 01 2C */	b lbl_801D5D1C
lbl_801D5BF4:
/* 801D5BF4 001D1854  48 00 1A 31 */	bl TRKTargetStopped
/* 801D5BF8 001D1858  2C 03 00 00 */	cmpwi r3, 0
/* 801D5BFC 001D185C  40 82 00 64 */	bne lbl_801D5C60
/* 801D5C00 001D1860  38 61 00 48 */	addi r3, r1, 0x48
/* 801D5C04 001D1864  38 80 00 00 */	li r4, 0
/* 801D5C08 001D1868  38 A0 00 40 */	li r5, 0x40
/* 801D5C0C 001D186C  4B E2 E5 29 */	bl TRK_memset
/* 801D5C10 001D1870  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5C14 001D1874  38 00 00 80 */	li r0, 0x80
/* 801D5C18 001D1878  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5C1C 001D187C  38 C0 00 40 */	li r6, 0x40
/* 801D5C20 001D1880  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5C24 001D1884  38 A0 00 16 */	li r5, 0x16
/* 801D5C28 001D1888  98 01 00 4C */	stb r0, 0x4c(r1)
/* 801D5C2C 001D188C  38 61 00 48 */	addi r3, r1, 0x48
/* 801D5C30 001D1890  38 E8 00 01 */	addi r7, r8, 1
/* 801D5C34 001D1894  38 80 00 40 */	li r4, 0x40
/* 801D5C38 001D1898  91 01 00 54 */	stw r8, 0x54(r1)
/* 801D5C3C 001D189C  38 07 00 01 */	addi r0, r7, 1
/* 801D5C40 001D18A0  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5C44 001D18A4  90 C1 00 48 */	stw r6, 0x48(r1)
/* 801D5C48 001D18A8  98 A1 00 50 */	stb r5, 0x50(r1)
/* 801D5C4C 001D18AC  90 09 00 00 */	stw r0, 0(r9)
/* 801D5C50 001D18B0  90 E1 00 54 */	stw r7, 0x54(r1)
/* 801D5C54 001D18B4  48 00 39 B9 */	bl TRKWriteUARTN
/* 801D5C58 001D18B8  38 60 00 00 */	li r3, 0
/* 801D5C5C 001D18BC  48 00 00 C0 */	b lbl_801D5D1C
lbl_801D5C60:
/* 801D5C60 001D18C0  38 61 00 08 */	addi r3, r1, 8
/* 801D5C64 001D18C4  38 80 00 00 */	li r4, 0
/* 801D5C68 001D18C8  38 A0 00 40 */	li r5, 0x40
/* 801D5C6C 001D18CC  4B E2 E4 C9 */	bl TRK_memset
/* 801D5C70 001D18D0  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5C74 001D18D4  38 00 00 80 */	li r0, 0x80
/* 801D5C78 001D18D8  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5C7C 001D18DC  38 C0 00 40 */	li r6, 0x40
/* 801D5C80 001D18E0  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5C84 001D18E4  38 A0 00 00 */	li r5, 0
/* 801D5C88 001D18E8  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D5C8C 001D18EC  38 61 00 08 */	addi r3, r1, 8
/* 801D5C90 001D18F0  38 E8 00 01 */	addi r7, r8, 1
/* 801D5C94 001D18F4  38 80 00 40 */	li r4, 0x40
/* 801D5C98 001D18F8  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D5C9C 001D18FC  38 07 00 01 */	addi r0, r7, 1
/* 801D5CA0 001D1900  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5CA4 001D1904  90 C1 00 08 */	stw r6, 8(r1)
/* 801D5CA8 001D1908  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D5CAC 001D190C  90 09 00 00 */	stw r0, 0(r9)
/* 801D5CB0 001D1910  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D5CB4 001D1914  48 00 39 59 */	bl TRKWriteUARTN
/* 801D5CB8 001D1918  2C 1F 00 10 */	cmpwi r31, 0x10
/* 801D5CBC 001D191C  38 60 00 00 */	li r3, 0
/* 801D5CC0 001D1920  41 82 00 2C */	beq lbl_801D5CEC
/* 801D5CC4 001D1924  40 80 00 1C */	bge lbl_801D5CE0
/* 801D5CC8 001D1928  2C 1F 00 01 */	cmpwi r31, 1
/* 801D5CCC 001D192C  41 82 00 38 */	beq lbl_801D5D04
/* 801D5CD0 001D1930  40 80 00 4C */	bge lbl_801D5D1C
/* 801D5CD4 001D1934  2C 1F 00 00 */	cmpwi r31, 0
/* 801D5CD8 001D1938  40 80 00 14 */	bge lbl_801D5CEC
/* 801D5CDC 001D193C  48 00 00 40 */	b lbl_801D5D1C
lbl_801D5CE0:
/* 801D5CE0 001D1940  2C 1F 00 12 */	cmpwi r31, 0x12
/* 801D5CE4 001D1944  40 80 00 38 */	bge lbl_801D5D1C
/* 801D5CE8 001D1948  48 00 00 1C */	b lbl_801D5D04
lbl_801D5CEC:
/* 801D5CEC 001D194C  20 1F 00 10 */	subfic r0, r31, 0x10
/* 801D5CF0 001D1950  7F C3 F3 78 */	mr r3, r30
/* 801D5CF4 001D1954  7C 00 00 34 */	cntlzw r0, r0
/* 801D5CF8 001D1958  54 04 D9 7E */	srwi r4, r0, 5
/* 801D5CFC 001D195C  48 00 1B C5 */	bl TRKTargetSingleStep
/* 801D5D00 001D1960  48 00 00 1C */	b lbl_801D5D1C
lbl_801D5D04:
/* 801D5D04 001D1964  20 1F 00 11 */	subfic r0, r31, 0x11
/* 801D5D08 001D1968  7F A3 EB 78 */	mr r3, r29
/* 801D5D0C 001D196C  7C 00 00 34 */	cntlzw r0, r0
/* 801D5D10 001D1970  7F 84 E3 78 */	mr r4, r28
/* 801D5D14 001D1974  54 05 D9 7E */	srwi r5, r0, 5
/* 801D5D18 001D1978  48 00 1B 2D */	bl TRKTargetStepOutOfRange
lbl_801D5D1C:
/* 801D5D1C 001D197C  BB 61 01 4C */	lmw r27, 0x14c(r1)
/* 801D5D20 001D1980  80 01 01 64 */	lwz r0, 0x164(r1)
/* 801D5D24 001D1984  7C 08 03 A6 */	mtlr r0
/* 801D5D28 001D1988  38 21 01 60 */	addi r1, r1, 0x160
/* 801D5D2C 001D198C  4E 80 00 20 */	blr

.global TRKDoContinue
TRKDoContinue:
/* 801D5D30 001D1990  94 21 FF 70 */	stwu r1, -0x90(r1)
/* 801D5D34 001D1994  7C 08 02 A6 */	mflr r0
/* 801D5D38 001D1998  90 01 00 94 */	stw r0, 0x94(r1)
/* 801D5D3C 001D199C  48 00 18 E9 */	bl TRKTargetStopped
/* 801D5D40 001D19A0  2C 03 00 00 */	cmpwi r3, 0
/* 801D5D44 001D19A4  40 82 00 64 */	bne lbl_801D5DA8
/* 801D5D48 001D19A8  38 61 00 48 */	addi r3, r1, 0x48
/* 801D5D4C 001D19AC  38 80 00 00 */	li r4, 0
/* 801D5D50 001D19B0  38 A0 00 40 */	li r5, 0x40
/* 801D5D54 001D19B4  4B E2 E3 E1 */	bl TRK_memset
/* 801D5D58 001D19B8  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5D5C 001D19BC  38 00 00 80 */	li r0, 0x80
/* 801D5D60 001D19C0  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5D64 001D19C4  38 C0 00 40 */	li r6, 0x40
/* 801D5D68 001D19C8  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5D6C 001D19CC  38 A0 00 16 */	li r5, 0x16
/* 801D5D70 001D19D0  98 01 00 4C */	stb r0, 0x4c(r1)
/* 801D5D74 001D19D4  38 61 00 48 */	addi r3, r1, 0x48
/* 801D5D78 001D19D8  38 E8 00 01 */	addi r7, r8, 1
/* 801D5D7C 001D19DC  38 80 00 40 */	li r4, 0x40
/* 801D5D80 001D19E0  91 01 00 54 */	stw r8, 0x54(r1)
/* 801D5D84 001D19E4  38 07 00 01 */	addi r0, r7, 1
/* 801D5D88 001D19E8  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5D8C 001D19EC  90 C1 00 48 */	stw r6, 0x48(r1)
/* 801D5D90 001D19F0  98 A1 00 50 */	stb r5, 0x50(r1)
/* 801D5D94 001D19F4  90 09 00 00 */	stw r0, 0(r9)
/* 801D5D98 001D19F8  90 E1 00 54 */	stw r7, 0x54(r1)
/* 801D5D9C 001D19FC  48 00 38 71 */	bl TRKWriteUARTN
/* 801D5DA0 001D1A00  38 60 00 00 */	li r3, 0
/* 801D5DA4 001D1A04  48 00 00 60 */	b lbl_801D5E04
lbl_801D5DA8:
/* 801D5DA8 001D1A08  38 61 00 08 */	addi r3, r1, 8
/* 801D5DAC 001D1A0C  38 80 00 00 */	li r4, 0
/* 801D5DB0 001D1A10  38 A0 00 40 */	li r5, 0x40
/* 801D5DB4 001D1A14  4B E2 E3 81 */	bl TRK_memset
/* 801D5DB8 001D1A18  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5DBC 001D1A1C  38 00 00 80 */	li r0, 0x80
/* 801D5DC0 001D1A20  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5DC4 001D1A24  38 C0 00 40 */	li r6, 0x40
/* 801D5DC8 001D1A28  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5DCC 001D1A2C  38 A0 00 00 */	li r5, 0
/* 801D5DD0 001D1A30  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D5DD4 001D1A34  38 61 00 08 */	addi r3, r1, 8
/* 801D5DD8 001D1A38  38 E8 00 01 */	addi r7, r8, 1
/* 801D5DDC 001D1A3C  38 80 00 40 */	li r4, 0x40
/* 801D5DE0 001D1A40  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D5DE4 001D1A44  38 07 00 01 */	addi r0, r7, 1
/* 801D5DE8 001D1A48  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5DEC 001D1A4C  90 C1 00 08 */	stw r6, 8(r1)
/* 801D5DF0 001D1A50  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D5DF4 001D1A54  90 09 00 00 */	stw r0, 0(r9)
/* 801D5DF8 001D1A58  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D5DFC 001D1A5C  48 00 38 11 */	bl TRKWriteUARTN
/* 801D5E00 001D1A60  48 00 3B 59 */	bl TRKTargetContinue
lbl_801D5E04:
/* 801D5E04 001D1A64  80 01 00 94 */	lwz r0, 0x94(r1)
/* 801D5E08 001D1A68  7C 08 03 A6 */	mtlr r0
/* 801D5E0C 001D1A6C  38 21 00 90 */	addi r1, r1, 0x90
/* 801D5E10 001D1A70  4E 80 00 20 */	blr

.global TRKDoWriteRegisters
TRKDoWriteRegisters:
/* 801D5E14 001D1A74  94 21 FF 20 */	stwu r1, -0xe0(r1)
/* 801D5E18 001D1A78  7C 08 02 A6 */	mflr r0
/* 801D5E1C 001D1A7C  38 80 00 00 */	li r4, 0
/* 801D5E20 001D1A80  90 01 00 E4 */	stw r0, 0xe4(r1)
/* 801D5E24 001D1A84  93 E1 00 DC */	stw r31, 0xdc(r1)
/* 801D5E28 001D1A88  93 C1 00 D8 */	stw r30, 0xd8(r1)
/* 801D5E2C 001D1A8C  93 A1 00 D4 */	stw r29, 0xd4(r1)
/* 801D5E30 001D1A90  93 81 00 D0 */	stw r28, 0xd0(r1)
/* 801D5E34 001D1A94  7C 7C 1B 78 */	mr r28, r3
/* 801D5E38 001D1A98  8B E3 00 18 */	lbz r31, 0x18(r3)
/* 801D5E3C 001D1A9C  A3 C3 00 1C */	lhz r30, 0x1c(r3)
/* 801D5E40 001D1AA0  A3 A3 00 20 */	lhz r29, 0x20(r3)
/* 801D5E44 001D1AA4  4B FF F4 C5 */	bl TRKSetBufferPosition
/* 801D5E48 001D1AA8  7C 1E E8 40 */	cmplw r30, r29
/* 801D5E4C 001D1AAC  40 81 00 64 */	ble lbl_801D5EB0
/* 801D5E50 001D1AB0  38 61 00 4C */	addi r3, r1, 0x4c
/* 801D5E54 001D1AB4  38 80 00 00 */	li r4, 0
/* 801D5E58 001D1AB8  38 A0 00 40 */	li r5, 0x40
/* 801D5E5C 001D1ABC  4B E2 E2 D9 */	bl TRK_memset
/* 801D5E60 001D1AC0  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5E64 001D1AC4  38 00 00 80 */	li r0, 0x80
/* 801D5E68 001D1AC8  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D5E6C 001D1ACC  38 C0 00 40 */	li r6, 0x40
/* 801D5E70 001D1AD0  81 09 00 00 */	lwz r8, 0(r9)
/* 801D5E74 001D1AD4  38 A0 00 14 */	li r5, 0x14
/* 801D5E78 001D1AD8  98 01 00 50 */	stb r0, 0x50(r1)
/* 801D5E7C 001D1ADC  38 61 00 4C */	addi r3, r1, 0x4c
/* 801D5E80 001D1AE0  38 E8 00 01 */	addi r7, r8, 1
/* 801D5E84 001D1AE4  38 80 00 40 */	li r4, 0x40
/* 801D5E88 001D1AE8  91 01 00 58 */	stw r8, 0x58(r1)
/* 801D5E8C 001D1AEC  38 07 00 01 */	addi r0, r7, 1
/* 801D5E90 001D1AF0  90 E9 00 00 */	stw r7, 0(r9)
/* 801D5E94 001D1AF4  90 C1 00 4C */	stw r6, 0x4c(r1)
/* 801D5E98 001D1AF8  98 A1 00 54 */	stb r5, 0x54(r1)
/* 801D5E9C 001D1AFC  90 09 00 00 */	stw r0, 0(r9)
/* 801D5EA0 001D1B00  90 E1 00 58 */	stw r7, 0x58(r1)
/* 801D5EA4 001D1B04  48 00 37 69 */	bl TRKWriteUARTN
/* 801D5EA8 001D1B08  38 60 00 00 */	li r3, 0
/* 801D5EAC 001D1B0C  48 00 02 04 */	b lbl_801D60B0
lbl_801D5EB0:
/* 801D5EB0 001D1B10  7F 83 E3 78 */	mr r3, r28
/* 801D5EB4 001D1B14  38 80 00 40 */	li r4, 0x40
/* 801D5EB8 001D1B18  4B FF F4 51 */	bl TRKSetBufferPosition
/* 801D5EBC 001D1B1C  2C 1F 00 02 */	cmpwi r31, 2
/* 801D5EC0 001D1B20  41 82 00 64 */	beq lbl_801D5F24
/* 801D5EC4 001D1B24  40 80 00 14 */	bge lbl_801D5ED8
/* 801D5EC8 001D1B28  2C 1F 00 00 */	cmpwi r31, 0
/* 801D5ECC 001D1B2C  41 82 00 18 */	beq lbl_801D5EE4
/* 801D5ED0 001D1B30  40 80 00 34 */	bge lbl_801D5F04
/* 801D5ED4 001D1B34  48 00 00 90 */	b lbl_801D5F64
lbl_801D5ED8:
/* 801D5ED8 001D1B38  2C 1F 00 04 */	cmpwi r31, 4
/* 801D5EDC 001D1B3C  40 80 00 88 */	bge lbl_801D5F64
/* 801D5EE0 001D1B40  48 00 00 64 */	b lbl_801D5F44
lbl_801D5EE4:
/* 801D5EE4 001D1B44  7F C3 F3 78 */	mr r3, r30
/* 801D5EE8 001D1B48  7F A4 EB 78 */	mr r4, r29
/* 801D5EEC 001D1B4C  7F 85 E3 78 */	mr r5, r28
/* 801D5EF0 001D1B50  38 C1 00 08 */	addi r6, r1, 8
/* 801D5EF4 001D1B54  38 E0 00 00 */	li r7, 0
/* 801D5EF8 001D1B58  48 00 28 01 */	bl TRKTargetAccessDefault
/* 801D5EFC 001D1B5C  7C 7F 1B 78 */	mr r31, r3
/* 801D5F00 001D1B60  48 00 00 68 */	b lbl_801D5F68
lbl_801D5F04:
/* 801D5F04 001D1B64  7F C3 F3 78 */	mr r3, r30
/* 801D5F08 001D1B68  7F A4 EB 78 */	mr r4, r29
/* 801D5F0C 001D1B6C  7F 85 E3 78 */	mr r5, r28
/* 801D5F10 001D1B70  38 C1 00 08 */	addi r6, r1, 8
/* 801D5F14 001D1B74  38 E0 00 00 */	li r7, 0
/* 801D5F18 001D1B78  48 00 22 D5 */	bl TRKTargetAccessFP
/* 801D5F1C 001D1B7C  7C 7F 1B 78 */	mr r31, r3
/* 801D5F20 001D1B80  48 00 00 48 */	b lbl_801D5F68
lbl_801D5F24:
/* 801D5F24 001D1B84  7F C3 F3 78 */	mr r3, r30
/* 801D5F28 001D1B88  7F A4 EB 78 */	mr r4, r29
/* 801D5F2C 001D1B8C  7F 85 E3 78 */	mr r5, r28
/* 801D5F30 001D1B90  38 C1 00 08 */	addi r6, r1, 8
/* 801D5F34 001D1B94  38 E0 00 00 */	li r7, 0
/* 801D5F38 001D1B98  48 00 21 45 */	bl TRKTargetAccessExtended1
/* 801D5F3C 001D1B9C  7C 7F 1B 78 */	mr r31, r3
/* 801D5F40 001D1BA0  48 00 00 28 */	b lbl_801D5F68
lbl_801D5F44:
/* 801D5F44 001D1BA4  7F C3 F3 78 */	mr r3, r30
/* 801D5F48 001D1BA8  7F A4 EB 78 */	mr r4, r29
/* 801D5F4C 001D1BAC  7F 85 E3 78 */	mr r5, r28
/* 801D5F50 001D1BB0  38 C1 00 08 */	addi r6, r1, 8
/* 801D5F54 001D1BB4  38 E0 00 00 */	li r7, 0
/* 801D5F58 001D1BB8  48 00 1C ED */	bl TRKTargetAccessExtended2
/* 801D5F5C 001D1BBC  7C 7F 1B 78 */	mr r31, r3
/* 801D5F60 001D1BC0  48 00 00 08 */	b lbl_801D5F68
lbl_801D5F64:
/* 801D5F64 001D1BC4  3B E0 07 03 */	li r31, 0x703
lbl_801D5F68:
/* 801D5F68 001D1BC8  7F 83 E3 78 */	mr r3, r28
/* 801D5F6C 001D1BCC  38 80 00 00 */	li r4, 0
/* 801D5F70 001D1BD0  4B FF F3 C9 */	bl TRKResetBuffer
/* 801D5F74 001D1BD4  2C 1F 00 00 */	cmpwi r31, 0
/* 801D5F78 001D1BD8  40 82 00 54 */	bne lbl_801D5FCC
/* 801D5F7C 001D1BDC  38 61 00 8C */	addi r3, r1, 0x8c
/* 801D5F80 001D1BE0  38 80 00 00 */	li r4, 0
/* 801D5F84 001D1BE4  38 A0 00 40 */	li r5, 0x40
/* 801D5F88 001D1BE8  4B E2 E1 AD */	bl TRK_memset
/* 801D5F8C 001D1BEC  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D5F90 001D1BF0  38 00 00 40 */	li r0, 0x40
/* 801D5F94 001D1BF4  38 E3 07 E8 */	addi r7, r3, lbl_804907E8@l
/* 801D5F98 001D1BF8  38 A0 00 80 */	li r5, 0x80
/* 801D5F9C 001D1BFC  80 C7 00 00 */	lwz r6, 0(r7)
/* 801D5FA0 001D1C00  7F 83 E3 78 */	mr r3, r28
/* 801D5FA4 001D1C04  90 01 00 8C */	stw r0, 0x8c(r1)
/* 801D5FA8 001D1C08  38 81 00 8C */	addi r4, r1, 0x8c
/* 801D5FAC 001D1C0C  38 06 00 01 */	addi r0, r6, 1
/* 801D5FB0 001D1C10  98 A1 00 90 */	stb r5, 0x90(r1)
/* 801D5FB4 001D1C14  38 A0 00 40 */	li r5, 0x40
/* 801D5FB8 001D1C18  9B E1 00 94 */	stb r31, 0x94(r1)
/* 801D5FBC 001D1C1C  90 07 00 00 */	stw r0, 0(r7)
/* 801D5FC0 001D1C20  90 C1 00 98 */	stw r6, 0x98(r1)
/* 801D5FC4 001D1C24  4B FF F2 A1 */	bl TRKAppendBuffer
/* 801D5FC8 001D1C28  7C 7F 1B 78 */	mr r31, r3
lbl_801D5FCC:
/* 801D5FCC 001D1C2C  2C 1F 00 00 */	cmpwi r31, 0
/* 801D5FD0 001D1C30  41 82 00 D8 */	beq lbl_801D60A8
/* 801D5FD4 001D1C34  2C 1F 07 03 */	cmpwi r31, 0x703
/* 801D5FD8 001D1C38  41 82 00 38 */	beq lbl_801D6010
/* 801D5FDC 001D1C3C  40 80 00 1C */	bge lbl_801D5FF8
/* 801D5FE0 001D1C40  2C 1F 07 01 */	cmpwi r31, 0x701
/* 801D5FE4 001D1C44  41 82 00 34 */	beq lbl_801D6018
/* 801D5FE8 001D1C48  40 80 00 40 */	bge lbl_801D6028
/* 801D5FEC 001D1C4C  2C 1F 03 02 */	cmpwi r31, 0x302
/* 801D5FF0 001D1C50  41 82 00 30 */	beq lbl_801D6020
/* 801D5FF4 001D1C54  48 00 00 54 */	b lbl_801D6048
lbl_801D5FF8:
/* 801D5FF8 001D1C58  2C 1F 07 06 */	cmpwi r31, 0x706
/* 801D5FFC 001D1C5C  41 82 00 44 */	beq lbl_801D6040
/* 801D6000 001D1C60  40 80 00 48 */	bge lbl_801D6048
/* 801D6004 001D1C64  2C 1F 07 05 */	cmpwi r31, 0x705
/* 801D6008 001D1C68  40 80 00 30 */	bge lbl_801D6038
/* 801D600C 001D1C6C  48 00 00 24 */	b lbl_801D6030
lbl_801D6010:
/* 801D6010 001D1C70  3B E0 00 12 */	li r31, 0x12
/* 801D6014 001D1C74  48 00 00 38 */	b lbl_801D604C
lbl_801D6018:
/* 801D6018 001D1C78  3B E0 00 14 */	li r31, 0x14
/* 801D601C 001D1C7C  48 00 00 30 */	b lbl_801D604C
lbl_801D6020:
/* 801D6020 001D1C80  3B E0 00 02 */	li r31, 2
/* 801D6024 001D1C84  48 00 00 28 */	b lbl_801D604C
lbl_801D6028:
/* 801D6028 001D1C88  3B E0 00 15 */	li r31, 0x15
/* 801D602C 001D1C8C  48 00 00 20 */	b lbl_801D604C
lbl_801D6030:
/* 801D6030 001D1C90  3B E0 00 21 */	li r31, 0x21
/* 801D6034 001D1C94  48 00 00 18 */	b lbl_801D604C
lbl_801D6038:
/* 801D6038 001D1C98  3B E0 00 22 */	li r31, 0x22
/* 801D603C 001D1C9C  48 00 00 10 */	b lbl_801D604C
lbl_801D6040:
/* 801D6040 001D1CA0  3B E0 00 20 */	li r31, 0x20
/* 801D6044 001D1CA4  48 00 00 08 */	b lbl_801D604C
lbl_801D6048:
/* 801D6048 001D1CA8  3B E0 00 03 */	li r31, 3
lbl_801D604C:
/* 801D604C 001D1CAC  38 61 00 0C */	addi r3, r1, 0xc
/* 801D6050 001D1CB0  38 80 00 00 */	li r4, 0
/* 801D6054 001D1CB4  38 A0 00 40 */	li r5, 0x40
/* 801D6058 001D1CB8  4B E2 E0 DD */	bl TRK_memset
/* 801D605C 001D1CBC  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6060 001D1CC0  38 00 00 80 */	li r0, 0x80
/* 801D6064 001D1CC4  39 03 07 E8 */	addi r8, r3, lbl_804907E8@l
/* 801D6068 001D1CC8  38 A0 00 40 */	li r5, 0x40
/* 801D606C 001D1CCC  80 E8 00 00 */	lwz r7, 0(r8)
/* 801D6070 001D1CD0  38 61 00 0C */	addi r3, r1, 0xc
/* 801D6074 001D1CD4  98 01 00 10 */	stb r0, 0x10(r1)
/* 801D6078 001D1CD8  38 80 00 40 */	li r4, 0x40
/* 801D607C 001D1CDC  38 C7 00 01 */	addi r6, r7, 1
/* 801D6080 001D1CE0  90 E1 00 18 */	stw r7, 0x18(r1)
/* 801D6084 001D1CE4  38 06 00 01 */	addi r0, r6, 1
/* 801D6088 001D1CE8  90 C8 00 00 */	stw r6, 0(r8)
/* 801D608C 001D1CEC  90 A1 00 0C */	stw r5, 0xc(r1)
/* 801D6090 001D1CF0  9B E1 00 14 */	stb r31, 0x14(r1)
/* 801D6094 001D1CF4  90 08 00 00 */	stw r0, 0(r8)
/* 801D6098 001D1CF8  90 C1 00 18 */	stw r6, 0x18(r1)
/* 801D609C 001D1CFC  48 00 35 71 */	bl TRKWriteUARTN
/* 801D60A0 001D1D00  38 60 00 00 */	li r3, 0
/* 801D60A4 001D1D04  48 00 00 0C */	b lbl_801D60B0
lbl_801D60A8:
/* 801D60A8 001D1D08  7F 83 E3 78 */	mr r3, r28
/* 801D60AC 001D1D0C  4B FF EC 31 */	bl TRKMessageSend
lbl_801D60B0:
/* 801D60B0 001D1D10  80 01 00 E4 */	lwz r0, 0xe4(r1)
/* 801D60B4 001D1D14  83 E1 00 DC */	lwz r31, 0xdc(r1)
/* 801D60B8 001D1D18  83 C1 00 D8 */	lwz r30, 0xd8(r1)
/* 801D60BC 001D1D1C  83 A1 00 D4 */	lwz r29, 0xd4(r1)
/* 801D60C0 001D1D20  83 81 00 D0 */	lwz r28, 0xd0(r1)
/* 801D60C4 001D1D24  7C 08 03 A6 */	mtlr r0
/* 801D60C8 001D1D28  38 21 00 E0 */	addi r1, r1, 0xe0
/* 801D60CC 001D1D2C  4E 80 00 20 */	blr

.global TRKDoReadRegisters
TRKDoReadRegisters:
/* 801D60D0 001D1D30  94 21 FF 20 */	stwu r1, -0xe0(r1)
/* 801D60D4 001D1D34  7C 08 02 A6 */	mflr r0
/* 801D60D8 001D1D38  90 01 00 E4 */	stw r0, 0xe4(r1)
/* 801D60DC 001D1D3C  93 E1 00 DC */	stw r31, 0xdc(r1)
/* 801D60E0 001D1D40  7C 7F 1B 78 */	mr r31, r3
/* 801D60E4 001D1D44  A0 83 00 1C */	lhz r4, 0x1c(r3)
/* 801D60E8 001D1D48  A0 03 00 20 */	lhz r0, 0x20(r3)
/* 801D60EC 001D1D4C  7C 04 00 40 */	cmplw r4, r0
/* 801D60F0 001D1D50  40 81 00 64 */	ble lbl_801D6154
/* 801D60F4 001D1D54  38 61 00 4C */	addi r3, r1, 0x4c
/* 801D60F8 001D1D58  38 80 00 00 */	li r4, 0
/* 801D60FC 001D1D5C  38 A0 00 40 */	li r5, 0x40
/* 801D6100 001D1D60  4B E2 E0 35 */	bl TRK_memset
/* 801D6104 001D1D64  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6108 001D1D68  38 00 00 80 */	li r0, 0x80
/* 801D610C 001D1D6C  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D6110 001D1D70  38 C0 00 40 */	li r6, 0x40
/* 801D6114 001D1D74  81 09 00 00 */	lwz r8, 0(r9)
/* 801D6118 001D1D78  38 A0 00 14 */	li r5, 0x14
/* 801D611C 001D1D7C  98 01 00 50 */	stb r0, 0x50(r1)
/* 801D6120 001D1D80  38 61 00 4C */	addi r3, r1, 0x4c
/* 801D6124 001D1D84  38 E8 00 01 */	addi r7, r8, 1
/* 801D6128 001D1D88  38 80 00 40 */	li r4, 0x40
/* 801D612C 001D1D8C  91 01 00 58 */	stw r8, 0x58(r1)
/* 801D6130 001D1D90  38 07 00 01 */	addi r0, r7, 1
/* 801D6134 001D1D94  90 E9 00 00 */	stw r7, 0(r9)
/* 801D6138 001D1D98  90 C1 00 4C */	stw r6, 0x4c(r1)
/* 801D613C 001D1D9C  98 A1 00 54 */	stb r5, 0x54(r1)
/* 801D6140 001D1DA0  90 09 00 00 */	stw r0, 0(r9)
/* 801D6144 001D1DA4  90 E1 00 58 */	stw r7, 0x58(r1)
/* 801D6148 001D1DA8  48 00 34 C5 */	bl TRKWriteUARTN
/* 801D614C 001D1DAC  38 60 00 00 */	li r3, 0
/* 801D6150 001D1DB0  48 00 01 90 */	b lbl_801D62E0
lbl_801D6154:
/* 801D6154 001D1DB4  3C 80 80 49 */	lis r4, lbl_804907E8@ha
/* 801D6158 001D1DB8  38 00 00 80 */	li r0, 0x80
/* 801D615C 001D1DBC  38 C4 07 E8 */	addi r6, r4, lbl_804907E8@l
/* 801D6160 001D1DC0  38 E0 04 68 */	li r7, 0x468
/* 801D6164 001D1DC4  80 A6 00 00 */	lwz r5, 0(r6)
/* 801D6168 001D1DC8  38 80 00 00 */	li r4, 0
/* 801D616C 001D1DCC  98 01 00 90 */	stb r0, 0x90(r1)
/* 801D6170 001D1DD0  38 05 00 01 */	addi r0, r5, 1
/* 801D6174 001D1DD4  90 E1 00 8C */	stw r7, 0x8c(r1)
/* 801D6178 001D1DD8  90 06 00 00 */	stw r0, 0(r6)
/* 801D617C 001D1DDC  90 A1 00 98 */	stw r5, 0x98(r1)
/* 801D6180 001D1DE0  4B FF F1 B9 */	bl TRKResetBuffer
/* 801D6184 001D1DE4  7F E3 FB 78 */	mr r3, r31
/* 801D6188 001D1DE8  38 81 00 8C */	addi r4, r1, 0x8c
/* 801D618C 001D1DEC  38 A0 00 40 */	li r5, 0x40
/* 801D6190 001D1DF0  4B FF EE E5 */	bl TRKAppendBuffer_ui8
/* 801D6194 001D1DF4  7F E5 FB 78 */	mr r5, r31
/* 801D6198 001D1DF8  38 C1 00 08 */	addi r6, r1, 8
/* 801D619C 001D1DFC  38 60 00 00 */	li r3, 0
/* 801D61A0 001D1E00  38 80 00 24 */	li r4, 0x24
/* 801D61A4 001D1E04  38 E0 00 01 */	li r7, 1
/* 801D61A8 001D1E08  48 00 25 51 */	bl TRKTargetAccessDefault
/* 801D61AC 001D1E0C  2C 03 00 00 */	cmpwi r3, 0
/* 801D61B0 001D1E10  40 82 00 1C */	bne lbl_801D61CC
/* 801D61B4 001D1E14  7F E5 FB 78 */	mr r5, r31
/* 801D61B8 001D1E18  38 C1 00 08 */	addi r6, r1, 8
/* 801D61BC 001D1E1C  38 60 00 00 */	li r3, 0
/* 801D61C0 001D1E20  38 80 00 21 */	li r4, 0x21
/* 801D61C4 001D1E24  38 E0 00 01 */	li r7, 1
/* 801D61C8 001D1E28  48 00 20 25 */	bl TRKTargetAccessFP
lbl_801D61CC:
/* 801D61CC 001D1E2C  2C 03 00 00 */	cmpwi r3, 0
/* 801D61D0 001D1E30  40 82 00 1C */	bne lbl_801D61EC
/* 801D61D4 001D1E34  7F E5 FB 78 */	mr r5, r31
/* 801D61D8 001D1E38  38 C1 00 08 */	addi r6, r1, 8
/* 801D61DC 001D1E3C  38 60 00 00 */	li r3, 0
/* 801D61E0 001D1E40  38 80 00 60 */	li r4, 0x60
/* 801D61E4 001D1E44  38 E0 00 01 */	li r7, 1
/* 801D61E8 001D1E48  48 00 1E 95 */	bl TRKTargetAccessExtended1
lbl_801D61EC:
/* 801D61EC 001D1E4C  2C 03 00 00 */	cmpwi r3, 0
/* 801D61F0 001D1E50  40 82 00 1C */	bne lbl_801D620C
/* 801D61F4 001D1E54  7F E5 FB 78 */	mr r5, r31
/* 801D61F8 001D1E58  38 C1 00 08 */	addi r6, r1, 8
/* 801D61FC 001D1E5C  38 60 00 00 */	li r3, 0
/* 801D6200 001D1E60  38 80 00 1F */	li r4, 0x1f
/* 801D6204 001D1E64  38 E0 00 01 */	li r7, 1
/* 801D6208 001D1E68  48 00 1A 3D */	bl TRKTargetAccessExtended2
lbl_801D620C:
/* 801D620C 001D1E6C  2C 03 00 00 */	cmpwi r3, 0
/* 801D6210 001D1E70  41 82 00 C8 */	beq lbl_801D62D8
/* 801D6214 001D1E74  2C 03 07 04 */	cmpwi r3, 0x704
/* 801D6218 001D1E78  41 82 00 48 */	beq lbl_801D6260
/* 801D621C 001D1E7C  40 80 00 1C */	bge lbl_801D6238
/* 801D6220 001D1E80  2C 03 07 02 */	cmpwi r3, 0x702
/* 801D6224 001D1E84  41 82 00 34 */	beq lbl_801D6258
/* 801D6228 001D1E88  40 80 00 20 */	bge lbl_801D6248
/* 801D622C 001D1E8C  2C 03 07 01 */	cmpwi r3, 0x701
/* 801D6230 001D1E90  40 80 00 20 */	bge lbl_801D6250
/* 801D6234 001D1E94  48 00 00 44 */	b lbl_801D6278
lbl_801D6238:
/* 801D6238 001D1E98  2C 03 07 06 */	cmpwi r3, 0x706
/* 801D623C 001D1E9C  41 82 00 34 */	beq lbl_801D6270
/* 801D6240 001D1EA0  40 80 00 38 */	bge lbl_801D6278
/* 801D6244 001D1EA4  48 00 00 24 */	b lbl_801D6268
lbl_801D6248:
/* 801D6248 001D1EA8  3B E0 00 12 */	li r31, 0x12
/* 801D624C 001D1EAC  48 00 00 30 */	b lbl_801D627C
lbl_801D6250:
/* 801D6250 001D1EB0  3B E0 00 14 */	li r31, 0x14
/* 801D6254 001D1EB4  48 00 00 28 */	b lbl_801D627C
lbl_801D6258:
/* 801D6258 001D1EB8  3B E0 00 15 */	li r31, 0x15
/* 801D625C 001D1EBC  48 00 00 20 */	b lbl_801D627C
lbl_801D6260:
/* 801D6260 001D1EC0  3B E0 00 21 */	li r31, 0x21
/* 801D6264 001D1EC4  48 00 00 18 */	b lbl_801D627C
lbl_801D6268:
/* 801D6268 001D1EC8  3B E0 00 22 */	li r31, 0x22
/* 801D626C 001D1ECC  48 00 00 10 */	b lbl_801D627C
lbl_801D6270:
/* 801D6270 001D1ED0  3B E0 00 20 */	li r31, 0x20
/* 801D6274 001D1ED4  48 00 00 08 */	b lbl_801D627C
lbl_801D6278:
/* 801D6278 001D1ED8  3B E0 00 03 */	li r31, 3
lbl_801D627C:
/* 801D627C 001D1EDC  38 61 00 0C */	addi r3, r1, 0xc
/* 801D6280 001D1EE0  38 80 00 00 */	li r4, 0
/* 801D6284 001D1EE4  38 A0 00 40 */	li r5, 0x40
/* 801D6288 001D1EE8  4B E2 DE AD */	bl TRK_memset
/* 801D628C 001D1EEC  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6290 001D1EF0  38 00 00 80 */	li r0, 0x80
/* 801D6294 001D1EF4  39 03 07 E8 */	addi r8, r3, lbl_804907E8@l
/* 801D6298 001D1EF8  38 A0 00 40 */	li r5, 0x40
/* 801D629C 001D1EFC  80 E8 00 00 */	lwz r7, 0(r8)
/* 801D62A0 001D1F00  38 61 00 0C */	addi r3, r1, 0xc
/* 801D62A4 001D1F04  98 01 00 10 */	stb r0, 0x10(r1)
/* 801D62A8 001D1F08  38 80 00 40 */	li r4, 0x40
/* 801D62AC 001D1F0C  38 C7 00 01 */	addi r6, r7, 1
/* 801D62B0 001D1F10  90 E1 00 18 */	stw r7, 0x18(r1)
/* 801D62B4 001D1F14  38 06 00 01 */	addi r0, r6, 1
/* 801D62B8 001D1F18  90 C8 00 00 */	stw r6, 0(r8)
/* 801D62BC 001D1F1C  90 A1 00 0C */	stw r5, 0xc(r1)
/* 801D62C0 001D1F20  9B E1 00 14 */	stb r31, 0x14(r1)
/* 801D62C4 001D1F24  90 08 00 00 */	stw r0, 0(r8)
/* 801D62C8 001D1F28  90 C1 00 18 */	stw r6, 0x18(r1)
/* 801D62CC 001D1F2C  48 00 33 41 */	bl TRKWriteUARTN
/* 801D62D0 001D1F30  38 60 00 00 */	li r3, 0
/* 801D62D4 001D1F34  48 00 00 0C */	b lbl_801D62E0
lbl_801D62D8:
/* 801D62D8 001D1F38  7F E3 FB 78 */	mr r3, r31
/* 801D62DC 001D1F3C  4B FF EA 01 */	bl TRKMessageSend
lbl_801D62E0:
/* 801D62E0 001D1F40  80 01 00 E4 */	lwz r0, 0xe4(r1)
/* 801D62E4 001D1F44  83 E1 00 DC */	lwz r31, 0xdc(r1)
/* 801D62E8 001D1F48  7C 08 03 A6 */	mtlr r0
/* 801D62EC 001D1F4C  38 21 00 E0 */	addi r1, r1, 0xe0
/* 801D62F0 001D1F50  4E 80 00 20 */	blr

.global TRKDoWriteMemory
TRKDoWriteMemory:
/* 801D62F4 001D1F54  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 801D62F8 001D1F58  7C 2C 0B 78 */	mr r12, r1
/* 801D62FC 001D1F5C  21 6B F6 C0 */	subfic r11, r11, -2368
/* 801D6300 001D1F60  7C 21 59 6E */	stwux r1, r1, r11
/* 801D6304 001D1F64  7C 08 02 A6 */	mflr r0
/* 801D6308 001D1F68  90 0C 00 04 */	stw r0, 4(r12)
/* 801D630C 001D1F6C  93 EC FF FC */	stw r31, -4(r12)
/* 801D6310 001D1F70  93 CC FF F8 */	stw r30, -8(r12)
/* 801D6314 001D1F74  93 AC FF F4 */	stw r29, -0xc(r12)
/* 801D6318 001D1F78  7C 7D 1B 78 */	mr r29, r3
/* 801D631C 001D1F7C  8B E3 00 18 */	lbz r31, 0x18(r3)
/* 801D6320 001D1F80  83 C3 00 20 */	lwz r30, 0x20(r3)
/* 801D6324 001D1F84  57 E0 07 BD */	rlwinm. r0, r31, 0, 0x1e, 0x1e
/* 801D6328 001D1F88  A0 83 00 1C */	lhz r4, 0x1c(r3)
/* 801D632C 001D1F8C  41 82 00 64 */	beq lbl_801D6390
/* 801D6330 001D1F90  38 61 00 64 */	addi r3, r1, 0x64
/* 801D6334 001D1F94  38 80 00 00 */	li r4, 0
/* 801D6338 001D1F98  38 A0 00 40 */	li r5, 0x40
/* 801D633C 001D1F9C  4B E2 DD F9 */	bl TRK_memset
/* 801D6340 001D1FA0  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6344 001D1FA4  38 00 00 80 */	li r0, 0x80
/* 801D6348 001D1FA8  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D634C 001D1FAC  38 C0 00 40 */	li r6, 0x40
/* 801D6350 001D1FB0  81 09 00 00 */	lwz r8, 0(r9)
/* 801D6354 001D1FB4  38 A0 00 12 */	li r5, 0x12
/* 801D6358 001D1FB8  98 01 00 68 */	stb r0, 0x68(r1)
/* 801D635C 001D1FBC  38 61 00 64 */	addi r3, r1, 0x64
/* 801D6360 001D1FC0  38 E8 00 01 */	addi r7, r8, 1
/* 801D6364 001D1FC4  38 80 00 40 */	li r4, 0x40
/* 801D6368 001D1FC8  91 01 00 70 */	stw r8, 0x70(r1)
/* 801D636C 001D1FCC  38 07 00 01 */	addi r0, r7, 1
/* 801D6370 001D1FD0  90 E9 00 00 */	stw r7, 0(r9)
/* 801D6374 001D1FD4  90 C1 00 64 */	stw r6, 0x64(r1)
/* 801D6378 001D1FD8  98 A1 00 6C */	stb r5, 0x6c(r1)
/* 801D637C 001D1FDC  90 09 00 00 */	stw r0, 0(r9)
/* 801D6380 001D1FE0  90 E1 00 70 */	stw r7, 0x70(r1)
/* 801D6384 001D1FE4  48 00 32 89 */	bl TRKWriteUARTN
/* 801D6388 001D1FE8  38 60 00 00 */	li r3, 0
/* 801D638C 001D1FEC  48 00 01 64 */	b lbl_801D64F0
lbl_801D6390:
/* 801D6390 001D1FF0  90 81 00 20 */	stw r4, 0x20(r1)
/* 801D6394 001D1FF4  38 80 00 40 */	li r4, 0x40
/* 801D6398 001D1FF8  4B FF EF 71 */	bl TRKSetBufferPosition
/* 801D639C 001D1FFC  80 A1 00 20 */	lwz r5, 0x20(r1)
/* 801D63A0 001D2000  7F A3 EB 78 */	mr r3, r29
/* 801D63A4 001D2004  38 81 01 00 */	addi r4, r1, 0x100
/* 801D63A8 001D2008  4B FF EE 31 */	bl TRKReadBuffer
/* 801D63AC 001D200C  57 E0 EF FE */	rlwinm r0, r31, 0x1d, 0x1f, 0x1f
/* 801D63B0 001D2010  7F C4 F3 78 */	mr r4, r30
/* 801D63B4 001D2014  38 61 01 00 */	addi r3, r1, 0x100
/* 801D63B8 001D2018  38 A1 00 20 */	addi r5, r1, 0x20
/* 801D63BC 001D201C  68 06 00 01 */	xori r6, r0, 1
/* 801D63C0 001D2020  38 E0 00 00 */	li r7, 0
/* 801D63C4 001D2024  48 00 24 75 */	bl TRKTargetAccessMemory
/* 801D63C8 001D2028  7C 60 1B 78 */	mr r0, r3
/* 801D63CC 001D202C  7F A3 EB 78 */	mr r3, r29
/* 801D63D0 001D2030  7C 1F 03 78 */	mr r31, r0
/* 801D63D4 001D2034  38 80 00 00 */	li r4, 0
/* 801D63D8 001D2038  4B FF EF 61 */	bl TRKResetBuffer
/* 801D63DC 001D203C  2C 1F 00 00 */	cmpwi r31, 0
/* 801D63E0 001D2040  40 82 00 54 */	bne lbl_801D6434
/* 801D63E4 001D2044  38 61 00 A4 */	addi r3, r1, 0xa4
/* 801D63E8 001D2048  38 80 00 00 */	li r4, 0
/* 801D63EC 001D204C  38 A0 00 40 */	li r5, 0x40
/* 801D63F0 001D2050  4B E2 DD 45 */	bl TRK_memset
/* 801D63F4 001D2054  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D63F8 001D2058  38 00 00 40 */	li r0, 0x40
/* 801D63FC 001D205C  38 E3 07 E8 */	addi r7, r3, lbl_804907E8@l
/* 801D6400 001D2060  38 A0 00 80 */	li r5, 0x80
/* 801D6404 001D2064  80 C7 00 00 */	lwz r6, 0(r7)
/* 801D6408 001D2068  7F A3 EB 78 */	mr r3, r29
/* 801D640C 001D206C  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 801D6410 001D2070  38 81 00 A4 */	addi r4, r1, 0xa4
/* 801D6414 001D2074  38 06 00 01 */	addi r0, r6, 1
/* 801D6418 001D2078  98 A1 00 A8 */	stb r5, 0xa8(r1)
/* 801D641C 001D207C  38 A0 00 40 */	li r5, 0x40
/* 801D6420 001D2080  9B E1 00 AC */	stb r31, 0xac(r1)
/* 801D6424 001D2084  90 07 00 00 */	stw r0, 0(r7)
/* 801D6428 001D2088  90 C1 00 B0 */	stw r6, 0xb0(r1)
/* 801D642C 001D208C  4B FF EE 39 */	bl TRKAppendBuffer
/* 801D6430 001D2090  7C 7F 1B 78 */	mr r31, r3
lbl_801D6434:
/* 801D6434 001D2094  2C 1F 00 00 */	cmpwi r31, 0
/* 801D6438 001D2098  41 82 00 B0 */	beq lbl_801D64E8
/* 801D643C 001D209C  38 1F F9 00 */	addi r0, r31, -1792
/* 801D6440 001D20A0  28 00 00 06 */	cmplwi r0, 6
/* 801D6444 001D20A4  41 81 00 44 */	bgt lbl_801D6488
/* 801D6448 001D20A8  3C 60 80 42 */	lis r3, lbl_804231F8@ha
/* 801D644C 001D20AC  54 00 10 3A */	slwi r0, r0, 2
/* 801D6450 001D20B0  38 63 31 F8 */	addi r3, r3, lbl_804231F8@l
/* 801D6454 001D20B4  7C 03 00 2E */	lwzx r0, r3, r0
/* 801D6458 001D20B8  7C 09 03 A6 */	mtctr r0
/* 801D645C 001D20BC  4E 80 04 20 */	bctr
/* 801D6460 001D20C0  3B E0 00 15 */	li r31, 0x15
/* 801D6464 001D20C4  48 00 00 28 */	b lbl_801D648C
/* 801D6468 001D20C8  3B E0 00 13 */	li r31, 0x13
/* 801D646C 001D20CC  48 00 00 20 */	b lbl_801D648C
/* 801D6470 001D20D0  3B E0 00 21 */	li r31, 0x21
/* 801D6474 001D20D4  48 00 00 18 */	b lbl_801D648C
/* 801D6478 001D20D8  3B E0 00 22 */	li r31, 0x22
/* 801D647C 001D20DC  48 00 00 10 */	b lbl_801D648C
/* 801D6480 001D20E0  3B E0 00 20 */	li r31, 0x20
/* 801D6484 001D20E4  48 00 00 08 */	b lbl_801D648C
lbl_801D6488:
/* 801D6488 001D20E8  3B E0 00 03 */	li r31, 3
lbl_801D648C:
/* 801D648C 001D20EC  38 61 00 24 */	addi r3, r1, 0x24
/* 801D6490 001D20F0  38 80 00 00 */	li r4, 0
/* 801D6494 001D20F4  38 A0 00 40 */	li r5, 0x40
/* 801D6498 001D20F8  4B E2 DC 9D */	bl TRK_memset
/* 801D649C 001D20FC  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D64A0 001D2100  38 00 00 80 */	li r0, 0x80
/* 801D64A4 001D2104  39 03 07 E8 */	addi r8, r3, lbl_804907E8@l
/* 801D64A8 001D2108  38 A0 00 40 */	li r5, 0x40
/* 801D64AC 001D210C  80 E8 00 00 */	lwz r7, 0(r8)
/* 801D64B0 001D2110  38 61 00 24 */	addi r3, r1, 0x24
/* 801D64B4 001D2114  98 01 00 28 */	stb r0, 0x28(r1)
/* 801D64B8 001D2118  38 80 00 40 */	li r4, 0x40
/* 801D64BC 001D211C  38 C7 00 01 */	addi r6, r7, 1
/* 801D64C0 001D2120  90 E1 00 30 */	stw r7, 0x30(r1)
/* 801D64C4 001D2124  38 06 00 01 */	addi r0, r6, 1
/* 801D64C8 001D2128  90 C8 00 00 */	stw r6, 0(r8)
/* 801D64CC 001D212C  90 A1 00 24 */	stw r5, 0x24(r1)
/* 801D64D0 001D2130  9B E1 00 2C */	stb r31, 0x2c(r1)
/* 801D64D4 001D2134  90 08 00 00 */	stw r0, 0(r8)
/* 801D64D8 001D2138  90 C1 00 30 */	stw r6, 0x30(r1)
/* 801D64DC 001D213C  48 00 31 31 */	bl TRKWriteUARTN
/* 801D64E0 001D2140  38 60 00 00 */	li r3, 0
/* 801D64E4 001D2144  48 00 00 0C */	b lbl_801D64F0
lbl_801D64E8:
/* 801D64E8 001D2148  7F A3 EB 78 */	mr r3, r29
/* 801D64EC 001D214C  4B FF E7 F1 */	bl TRKMessageSend
lbl_801D64F0:
/* 801D64F0 001D2150  81 41 00 00 */	lwz r10, 0(r1)
/* 801D64F4 001D2154  80 0A 00 04 */	lwz r0, 4(r10)
/* 801D64F8 001D2158  83 EA FF FC */	lwz r31, -4(r10)
/* 801D64FC 001D215C  83 CA FF F8 */	lwz r30, -8(r10)
/* 801D6500 001D2160  83 AA FF F4 */	lwz r29, -0xc(r10)
/* 801D6504 001D2164  7C 08 03 A6 */	mtlr r0
/* 801D6508 001D2168  7D 41 53 78 */	mr r1, r10
/* 801D650C 001D216C  4E 80 00 20 */	blr

.global TRKDoReadMemory
TRKDoReadMemory:
/* 801D6510 001D2170  54 2B 06 FE */	clrlwi r11, r1, 0x1b
/* 801D6514 001D2174  7C 2C 0B 78 */	mr r12, r1
/* 801D6518 001D2178  21 6B F6 C0 */	subfic r11, r11, -2368
/* 801D651C 001D217C  7C 21 59 6E */	stwux r1, r1, r11
/* 801D6520 001D2180  7C 08 02 A6 */	mflr r0
/* 801D6524 001D2184  90 0C 00 04 */	stw r0, 4(r12)
/* 801D6528 001D2188  93 EC FF FC */	stw r31, -4(r12)
/* 801D652C 001D218C  7C 7F 1B 78 */	mr r31, r3
/* 801D6530 001D2190  93 CC FF F8 */	stw r30, -8(r12)
/* 801D6534 001D2194  93 AC FF F4 */	stw r29, -0xc(r12)
/* 801D6538 001D2198  93 8C FF F0 */	stw r28, -0x10(r12)
/* 801D653C 001D219C  8B C3 00 18 */	lbz r30, 0x18(r3)
/* 801D6540 001D21A0  83 83 00 20 */	lwz r28, 0x20(r3)
/* 801D6544 001D21A4  57 C0 07 BD */	rlwinm. r0, r30, 0, 0x1e, 0x1e
/* 801D6548 001D21A8  A0 63 00 1C */	lhz r3, 0x1c(r3)
/* 801D654C 001D21AC  41 82 00 64 */	beq lbl_801D65B0
/* 801D6550 001D21B0  38 61 00 64 */	addi r3, r1, 0x64
/* 801D6554 001D21B4  38 80 00 00 */	li r4, 0
/* 801D6558 001D21B8  38 A0 00 40 */	li r5, 0x40
/* 801D655C 001D21BC  4B E2 DB D9 */	bl TRK_memset
/* 801D6560 001D21C0  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6564 001D21C4  38 00 00 80 */	li r0, 0x80
/* 801D6568 001D21C8  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D656C 001D21CC  38 C0 00 40 */	li r6, 0x40
/* 801D6570 001D21D0  81 09 00 00 */	lwz r8, 0(r9)
/* 801D6574 001D21D4  38 A0 00 12 */	li r5, 0x12
/* 801D6578 001D21D8  98 01 00 68 */	stb r0, 0x68(r1)
/* 801D657C 001D21DC  38 61 00 64 */	addi r3, r1, 0x64
/* 801D6580 001D21E0  38 E8 00 01 */	addi r7, r8, 1
/* 801D6584 001D21E4  38 80 00 40 */	li r4, 0x40
/* 801D6588 001D21E8  91 01 00 70 */	stw r8, 0x70(r1)
/* 801D658C 001D21EC  38 07 00 01 */	addi r0, r7, 1
/* 801D6590 001D21F0  90 E9 00 00 */	stw r7, 0(r9)
/* 801D6594 001D21F4  90 C1 00 64 */	stw r6, 0x64(r1)
/* 801D6598 001D21F8  98 A1 00 6C */	stb r5, 0x6c(r1)
/* 801D659C 001D21FC  90 09 00 00 */	stw r0, 0(r9)
/* 801D65A0 001D2200  90 E1 00 70 */	stw r7, 0x70(r1)
/* 801D65A4 001D2204  48 00 30 69 */	bl TRKWriteUARTN
/* 801D65A8 001D2208  38 60 00 00 */	li r3, 0
/* 801D65AC 001D220C  48 00 01 88 */	b lbl_801D6734
lbl_801D65B0:
/* 801D65B0 001D2210  57 C0 EF FE */	rlwinm r0, r30, 0x1d, 0x1f, 0x1f
/* 801D65B4 001D2214  90 61 00 20 */	stw r3, 0x20(r1)
/* 801D65B8 001D2218  7F 84 E3 78 */	mr r4, r28
/* 801D65BC 001D221C  38 61 01 00 */	addi r3, r1, 0x100
/* 801D65C0 001D2220  38 A1 00 20 */	addi r5, r1, 0x20
/* 801D65C4 001D2224  68 06 00 01 */	xori r6, r0, 1
/* 801D65C8 001D2228  38 E0 00 01 */	li r7, 1
/* 801D65CC 001D222C  48 00 22 6D */	bl TRKTargetAccessMemory
/* 801D65D0 001D2230  7C 60 1B 78 */	mr r0, r3
/* 801D65D4 001D2234  7F E3 FB 78 */	mr r3, r31
/* 801D65D8 001D2238  7C 1D 03 78 */	mr r29, r0
/* 801D65DC 001D223C  38 80 00 00 */	li r4, 0
/* 801D65E0 001D2240  4B FF ED 59 */	bl TRKResetBuffer
/* 801D65E4 001D2244  2C 1D 00 00 */	cmpwi r29, 0
/* 801D65E8 001D2248  40 82 00 90 */	bne lbl_801D6678
/* 801D65EC 001D224C  38 61 00 A4 */	addi r3, r1, 0xa4
/* 801D65F0 001D2250  38 80 00 00 */	li r4, 0
/* 801D65F4 001D2254  38 A0 00 40 */	li r5, 0x40
/* 801D65F8 001D2258  4B E2 DB 3D */	bl TRK_memset
/* 801D65FC 001D225C  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6600 001D2260  80 81 00 20 */	lwz r4, 0x20(r1)
/* 801D6604 001D2264  38 E3 07 E8 */	addi r7, r3, lbl_804907E8@l
/* 801D6608 001D2268  39 00 00 80 */	li r8, 0x80
/* 801D660C 001D226C  80 C7 00 00 */	lwz r6, 0(r7)
/* 801D6610 001D2270  38 04 00 40 */	addi r0, r4, 0x40
/* 801D6614 001D2274  90 01 00 A4 */	stw r0, 0xa4(r1)
/* 801D6618 001D2278  7F E3 FB 78 */	mr r3, r31
/* 801D661C 001D227C  38 06 00 01 */	addi r0, r6, 1
/* 801D6620 001D2280  38 81 00 A4 */	addi r4, r1, 0xa4
/* 801D6624 001D2284  9B A1 00 AC */	stb r29, 0xac(r1)
/* 801D6628 001D2288  38 A0 00 40 */	li r5, 0x40
/* 801D662C 001D228C  99 01 00 A8 */	stb r8, 0xa8(r1)
/* 801D6630 001D2290  90 07 00 00 */	stw r0, 0(r7)
/* 801D6634 001D2294  90 C1 00 B0 */	stw r6, 0xb0(r1)
/* 801D6638 001D2298  4B FF EC 2D */	bl TRKAppendBuffer
/* 801D663C 001D229C  57 C0 06 73 */	rlwinm. r0, r30, 0, 0x19, 0x19
/* 801D6640 001D22A0  41 82 00 24 */	beq lbl_801D6664
/* 801D6644 001D22A4  57 80 06 FE */	clrlwi r0, r28, 0x1b
/* 801D6648 001D22A8  38 81 01 00 */	addi r4, r1, 0x100
/* 801D664C 001D22AC  80 A1 00 20 */	lwz r5, 0x20(r1)
/* 801D6650 001D22B0  7F E3 FB 78 */	mr r3, r31
/* 801D6654 001D22B4  7C 84 02 14 */	add r4, r4, r0
/* 801D6658 001D22B8  4B FF EC 0D */	bl TRKAppendBuffer
/* 801D665C 001D22BC  7C 7D 1B 78 */	mr r29, r3
/* 801D6660 001D22C0  48 00 00 18 */	b lbl_801D6678
lbl_801D6664:
/* 801D6664 001D22C4  80 A1 00 20 */	lwz r5, 0x20(r1)
/* 801D6668 001D22C8  7F E3 FB 78 */	mr r3, r31
/* 801D666C 001D22CC  38 81 01 00 */	addi r4, r1, 0x100
/* 801D6670 001D22D0  4B FF EB F5 */	bl TRKAppendBuffer
/* 801D6674 001D22D4  7C 7D 1B 78 */	mr r29, r3
lbl_801D6678:
/* 801D6678 001D22D8  2C 1D 00 00 */	cmpwi r29, 0
/* 801D667C 001D22DC  41 82 00 B0 */	beq lbl_801D672C
/* 801D6680 001D22E0  38 1D F9 00 */	addi r0, r29, -1792
/* 801D6684 001D22E4  28 00 00 06 */	cmplwi r0, 6
/* 801D6688 001D22E8  41 81 00 44 */	bgt lbl_801D66CC
/* 801D668C 001D22EC  3C 60 80 42 */	lis r3, lbl_80423214@ha
/* 801D6690 001D22F0  54 00 10 3A */	slwi r0, r0, 2
/* 801D6694 001D22F4  38 63 32 14 */	addi r3, r3, lbl_80423214@l
/* 801D6698 001D22F8  7C 03 00 2E */	lwzx r0, r3, r0
/* 801D669C 001D22FC  7C 09 03 A6 */	mtctr r0
/* 801D66A0 001D2300  4E 80 04 20 */	bctr
/* 801D66A4 001D2304  3B A0 00 15 */	li r29, 0x15
/* 801D66A8 001D2308  48 00 00 28 */	b lbl_801D66D0
/* 801D66AC 001D230C  3B A0 00 13 */	li r29, 0x13
/* 801D66B0 001D2310  48 00 00 20 */	b lbl_801D66D0
/* 801D66B4 001D2314  3B A0 00 21 */	li r29, 0x21
/* 801D66B8 001D2318  48 00 00 18 */	b lbl_801D66D0
/* 801D66BC 001D231C  3B A0 00 22 */	li r29, 0x22
/* 801D66C0 001D2320  48 00 00 10 */	b lbl_801D66D0
/* 801D66C4 001D2324  3B A0 00 20 */	li r29, 0x20
/* 801D66C8 001D2328  48 00 00 08 */	b lbl_801D66D0
lbl_801D66CC:
/* 801D66CC 001D232C  3B A0 00 03 */	li r29, 3
lbl_801D66D0:
/* 801D66D0 001D2330  38 61 00 24 */	addi r3, r1, 0x24
/* 801D66D4 001D2334  38 80 00 00 */	li r4, 0
/* 801D66D8 001D2338  38 A0 00 40 */	li r5, 0x40
/* 801D66DC 001D233C  4B E2 DA 59 */	bl TRK_memset
/* 801D66E0 001D2340  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D66E4 001D2344  38 00 00 80 */	li r0, 0x80
/* 801D66E8 001D2348  39 03 07 E8 */	addi r8, r3, lbl_804907E8@l
/* 801D66EC 001D234C  38 A0 00 40 */	li r5, 0x40
/* 801D66F0 001D2350  80 E8 00 00 */	lwz r7, 0(r8)
/* 801D66F4 001D2354  38 61 00 24 */	addi r3, r1, 0x24
/* 801D66F8 001D2358  98 01 00 28 */	stb r0, 0x28(r1)
/* 801D66FC 001D235C  38 80 00 40 */	li r4, 0x40
/* 801D6700 001D2360  38 C7 00 01 */	addi r6, r7, 1
/* 801D6704 001D2364  90 E1 00 30 */	stw r7, 0x30(r1)
/* 801D6708 001D2368  38 06 00 01 */	addi r0, r6, 1
/* 801D670C 001D236C  90 C8 00 00 */	stw r6, 0(r8)
/* 801D6710 001D2370  90 A1 00 24 */	stw r5, 0x24(r1)
/* 801D6714 001D2374  9B A1 00 2C */	stb r29, 0x2c(r1)
/* 801D6718 001D2378  90 08 00 00 */	stw r0, 0(r8)
/* 801D671C 001D237C  90 C1 00 30 */	stw r6, 0x30(r1)
/* 801D6720 001D2380  48 00 2E ED */	bl TRKWriteUARTN
/* 801D6724 001D2384  38 60 00 00 */	li r3, 0
/* 801D6728 001D2388  48 00 00 0C */	b lbl_801D6734
lbl_801D672C:
/* 801D672C 001D238C  7F E3 FB 78 */	mr r3, r31
/* 801D6730 001D2390  4B FF E5 AD */	bl TRKMessageSend
lbl_801D6734:
/* 801D6734 001D2394  81 41 00 00 */	lwz r10, 0(r1)
/* 801D6738 001D2398  80 0A 00 04 */	lwz r0, 4(r10)
/* 801D673C 001D239C  83 EA FF FC */	lwz r31, -4(r10)
/* 801D6740 001D23A0  83 CA FF F8 */	lwz r30, -8(r10)
/* 801D6744 001D23A4  83 AA FF F4 */	lwz r29, -0xc(r10)
/* 801D6748 001D23A8  83 8A FF F0 */	lwz r28, -0x10(r10)
/* 801D674C 001D23AC  7C 08 03 A6 */	mtlr r0
/* 801D6750 001D23B0  7D 41 53 78 */	mr r1, r10
/* 801D6754 001D23B4  4E 80 00 20 */	blr

.global TRKDoSupportMask
TRKDoSupportMask:
/* 801D6758 001D23B8  38 60 00 00 */	li r3, 0
/* 801D675C 001D23BC  4E 80 00 20 */	blr

.global TRKDoVersions
TRKDoVersions:
/* 801D6760 001D23C0  38 60 00 00 */	li r3, 0
/* 801D6764 001D23C4  4E 80 00 20 */	blr

.global TRKDoOverride
TRKDoOverride:
/* 801D6768 001D23C8  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801D676C 001D23CC  7C 08 02 A6 */	mflr r0
/* 801D6770 001D23D0  38 80 00 00 */	li r4, 0
/* 801D6774 001D23D4  38 A0 00 40 */	li r5, 0x40
/* 801D6778 001D23D8  90 01 00 54 */	stw r0, 0x54(r1)
/* 801D677C 001D23DC  38 61 00 08 */	addi r3, r1, 8
/* 801D6780 001D23E0  4B E2 D9 B5 */	bl TRK_memset
/* 801D6784 001D23E4  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6788 001D23E8  38 00 00 80 */	li r0, 0x80
/* 801D678C 001D23EC  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D6790 001D23F0  38 C0 00 40 */	li r6, 0x40
/* 801D6794 001D23F4  81 09 00 00 */	lwz r8, 0(r9)
/* 801D6798 001D23F8  38 A0 00 00 */	li r5, 0
/* 801D679C 001D23FC  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D67A0 001D2400  38 61 00 08 */	addi r3, r1, 8
/* 801D67A4 001D2404  38 E8 00 01 */	addi r7, r8, 1
/* 801D67A8 001D2408  38 80 00 40 */	li r4, 0x40
/* 801D67AC 001D240C  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D67B0 001D2410  38 07 00 01 */	addi r0, r7, 1
/* 801D67B4 001D2414  90 E9 00 00 */	stw r7, 0(r9)
/* 801D67B8 001D2418  90 C1 00 08 */	stw r6, 8(r1)
/* 801D67BC 001D241C  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D67C0 001D2420  90 09 00 00 */	stw r0, 0(r9)
/* 801D67C4 001D2424  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D67C8 001D2428  48 00 2E 45 */	bl TRKWriteUARTN
/* 801D67CC 001D242C  48 00 2A E5 */	bl __TRK_copy_vectors
/* 801D67D0 001D2430  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801D67D4 001D2434  38 60 00 00 */	li r3, 0
/* 801D67D8 001D2438  7C 08 03 A6 */	mtlr r0
/* 801D67DC 001D243C  38 21 00 50 */	addi r1, r1, 0x50
/* 801D67E0 001D2440  4E 80 00 20 */	blr

.global TRKDoReset
TRKDoReset:
/* 801D67E4 001D2444  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801D67E8 001D2448  7C 08 02 A6 */	mflr r0
/* 801D67EC 001D244C  38 80 00 00 */	li r4, 0
/* 801D67F0 001D2450  38 A0 00 40 */	li r5, 0x40
/* 801D67F4 001D2454  90 01 00 54 */	stw r0, 0x54(r1)
/* 801D67F8 001D2458  38 61 00 08 */	addi r3, r1, 8
/* 801D67FC 001D245C  4B E2 D9 39 */	bl TRK_memset
/* 801D6800 001D2460  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6804 001D2464  38 00 00 80 */	li r0, 0x80
/* 801D6808 001D2468  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D680C 001D246C  38 C0 00 40 */	li r6, 0x40
/* 801D6810 001D2470  81 09 00 00 */	lwz r8, 0(r9)
/* 801D6814 001D2474  38 A0 00 00 */	li r5, 0
/* 801D6818 001D2478  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D681C 001D247C  38 61 00 08 */	addi r3, r1, 8
/* 801D6820 001D2480  38 E8 00 01 */	addi r7, r8, 1
/* 801D6824 001D2484  38 80 00 40 */	li r4, 0x40
/* 801D6828 001D2488  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D682C 001D248C  38 07 00 01 */	addi r0, r7, 1
/* 801D6830 001D2490  90 E9 00 00 */	stw r7, 0(r9)
/* 801D6834 001D2494  90 C1 00 08 */	stw r6, 8(r1)
/* 801D6838 001D2498  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D683C 001D249C  90 09 00 00 */	stw r0, 0(r9)
/* 801D6840 001D24A0  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D6844 001D24A4  48 00 2D C9 */	bl TRKWriteUARTN
/* 801D6848 001D24A8  4B E2 F8 75 */	bl __TRK_reset
/* 801D684C 001D24AC  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801D6850 001D24B0  38 60 00 00 */	li r3, 0
/* 801D6854 001D24B4  7C 08 03 A6 */	mtlr r0
/* 801D6858 001D24B8  38 21 00 50 */	addi r1, r1, 0x50
/* 801D685C 001D24BC  4E 80 00 20 */	blr

.global TRKDoDisconnect
TRKDoDisconnect:
/* 801D6860 001D24C0  94 21 FF A0 */	stwu r1, -0x60(r1)
/* 801D6864 001D24C4  7C 08 02 A6 */	mflr r0
/* 801D6868 001D24C8  3C 60 80 49 */	lis r3, lbl_804907EC@ha
/* 801D686C 001D24CC  38 A0 00 40 */	li r5, 0x40
/* 801D6870 001D24D0  90 01 00 64 */	stw r0, 0x64(r1)
/* 801D6874 001D24D4  38 83 07 EC */	addi r4, r3, lbl_804907EC@l
/* 801D6878 001D24D8  38 00 00 00 */	li r0, 0
/* 801D687C 001D24DC  38 61 00 14 */	addi r3, r1, 0x14
/* 801D6880 001D24E0  90 04 00 00 */	stw r0, 0(r4)
/* 801D6884 001D24E4  38 80 00 00 */	li r4, 0
/* 801D6888 001D24E8  4B E2 D8 AD */	bl TRK_memset
/* 801D688C 001D24EC  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D6890 001D24F0  38 00 00 80 */	li r0, 0x80
/* 801D6894 001D24F4  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D6898 001D24F8  38 C0 00 40 */	li r6, 0x40
/* 801D689C 001D24FC  81 09 00 00 */	lwz r8, 0(r9)
/* 801D68A0 001D2500  38 A0 00 00 */	li r5, 0
/* 801D68A4 001D2504  98 01 00 18 */	stb r0, 0x18(r1)
/* 801D68A8 001D2508  38 61 00 14 */	addi r3, r1, 0x14
/* 801D68AC 001D250C  38 E8 00 01 */	addi r7, r8, 1
/* 801D68B0 001D2510  38 80 00 40 */	li r4, 0x40
/* 801D68B4 001D2514  91 01 00 20 */	stw r8, 0x20(r1)
/* 801D68B8 001D2518  38 07 00 01 */	addi r0, r7, 1
/* 801D68BC 001D251C  90 E9 00 00 */	stw r7, 0(r9)
/* 801D68C0 001D2520  90 C1 00 14 */	stw r6, 0x14(r1)
/* 801D68C4 001D2524  98 A1 00 1C */	stb r5, 0x1c(r1)
/* 801D68C8 001D2528  90 09 00 00 */	stw r0, 0(r9)
/* 801D68CC 001D252C  90 E1 00 20 */	stw r7, 0x20(r1)
/* 801D68D0 001D2530  48 00 2D 3D */	bl TRKWriteUARTN
/* 801D68D4 001D2534  38 61 00 08 */	addi r3, r1, 8
/* 801D68D8 001D2538  38 80 00 01 */	li r4, 1
/* 801D68DC 001D253C  4B FF E0 79 */	bl TRKConstructEvent
/* 801D68E0 001D2540  38 61 00 08 */	addi r3, r1, 8
/* 801D68E4 001D2544  4B FF E0 89 */	bl TRKPostEvent
/* 801D68E8 001D2548  80 01 00 64 */	lwz r0, 0x64(r1)
/* 801D68EC 001D254C  38 60 00 00 */	li r3, 0
/* 801D68F0 001D2550  7C 08 03 A6 */	mtlr r0
/* 801D68F4 001D2554  38 21 00 60 */	addi r1, r1, 0x60
/* 801D68F8 001D2558  4E 80 00 20 */	blr

.global TRKDoConnect
TRKDoConnect:
/* 801D68FC 001D255C  94 21 FF B0 */	stwu r1, -0x50(r1)
/* 801D6900 001D2560  7C 08 02 A6 */	mflr r0
/* 801D6904 001D2564  3C 60 80 49 */	lis r3, lbl_804907EC@ha
/* 801D6908 001D2568  38 A0 00 40 */	li r5, 0x40
/* 801D690C 001D256C  90 01 00 54 */	stw r0, 0x54(r1)
/* 801D6910 001D2570  38 83 07 EC */	addi r4, r3, lbl_804907EC@l
/* 801D6914 001D2574  38 00 00 01 */	li r0, 1
/* 801D6918 001D2578  38 61 00 08 */	addi r3, r1, 8
/* 801D691C 001D257C  90 04 00 00 */	stw r0, 0(r4)
/* 801D6920 001D2580  38 80 00 00 */	li r4, 0
/* 801D6924 001D2584  4B E2 D8 11 */	bl TRK_memset
/* 801D6928 001D2588  3C 60 80 49 */	lis r3, lbl_804907E8@ha
/* 801D692C 001D258C  38 00 00 80 */	li r0, 0x80
/* 801D6930 001D2590  39 23 07 E8 */	addi r9, r3, lbl_804907E8@l
/* 801D6934 001D2594  38 C0 00 40 */	li r6, 0x40
/* 801D6938 001D2598  81 09 00 00 */	lwz r8, 0(r9)
/* 801D693C 001D259C  38 A0 00 00 */	li r5, 0
/* 801D6940 001D25A0  98 01 00 0C */	stb r0, 0xc(r1)
/* 801D6944 001D25A4  38 61 00 08 */	addi r3, r1, 8
/* 801D6948 001D25A8  38 E8 00 01 */	addi r7, r8, 1
/* 801D694C 001D25AC  38 80 00 40 */	li r4, 0x40
/* 801D6950 001D25B0  91 01 00 14 */	stw r8, 0x14(r1)
/* 801D6954 001D25B4  38 07 00 01 */	addi r0, r7, 1
/* 801D6958 001D25B8  90 E9 00 00 */	stw r7, 0(r9)
/* 801D695C 001D25BC  90 C1 00 08 */	stw r6, 8(r1)
/* 801D6960 001D25C0  98 A1 00 10 */	stb r5, 0x10(r1)
/* 801D6964 001D25C4  90 09 00 00 */	stw r0, 0(r9)
/* 801D6968 001D25C8  90 E1 00 14 */	stw r7, 0x14(r1)
/* 801D696C 001D25CC  48 00 2C A1 */	bl TRKWriteUARTN
/* 801D6970 001D25D0  80 01 00 54 */	lwz r0, 0x54(r1)
/* 801D6974 001D25D4  38 60 00 00 */	li r3, 0
/* 801D6978 001D25D8  7C 08 03 A6 */	mtlr r0
/* 801D697C 001D25DC  38 21 00 50 */	addi r1, r1, 0x50
/* 801D6980 001D25E0  4E 80 00 20 */	blr

.global SetTRKConnected
SetTRKConnected:
/* 801D6984 001D25E4  3C 80 80 49 */	lis r4, lbl_804907EC@ha
/* 801D6988 001D25E8  90 64 07 EC */	stw r3, lbl_804907EC@l(r4)
/* 801D698C 001D25EC  4E 80 00 20 */	blr

.global GetTRKConnected
GetTRKConnected:
/* 801D6990 001D25F0  3C 60 80 49 */	lis r3, lbl_804907EC@ha
/* 801D6994 001D25F4  38 63 07 EC */	addi r3, r3, lbl_804907EC@l
/* 801D6998 001D25F8  80 63 00 00 */	lwz r3, 0(r3)
/* 801D699C 001D25FC  4E 80 00 20 */	blr