RAM:02000120 RAM:02000120 ; =============== S U B R O U T I N E ======================================= RAM:02000120 RAM:02000120 RAM:02000120 isSioReady ; CODE XREF: isSioReady+8j RAM:02000120 ; sub_200014C:loc_2000150p ... RAM:02000120 B8 10 D0 E1 LDRH R1, [R0,#8] ; 4000128h 2 R/W SIOCNT SIO Control Register RAM:02000124 80 00 11 E3 TST R1, #0x80 ; 7 Start Bit (0=Inactive/Ready, 1=Start/Active) RAM:02000128 FC FF FF 0A BEQ isSioReady ; poll til ready RAM:0200012C RAM:0200012C loc_200012C ; CODE XREF: isSioReady+14j RAM:0200012C B8 10 D0 E1 LDRH R1, [R0,#8] RAM:02000130 80 00 11 E3 TST R1, #0x80 RAM:02000134 FC FF FF 1A BNE loc_200012C ; recheck for ready RAM:02000138 B8 10 D0 E1 LDRH R1, [R0,#8] RAM:0200013C 40 00 11 E3 TST R1, #0x40 ; this is unused, apparently should always be 0 RAM:02000140 1E FF 2F 11 BXNE LR ; if this is -NE, then the unused bit was set. exit. RAM:02000144 B0 10 D0 E1 LDRH R1, [R0] ; get SIO status RAM:02000148 1E FF 2F E1 BX LR RAM:02000148 ; End of function isSioReady RAM:02000148 RAM:0200014C RAM:0200014C ; =============== S U B R O U T I N E ======================================= RAM:0200014C RAM:0200014C RAM:0200014C sub_200014C ; CODE XREF: RAM:02000100j RAM:0200014C 8C 00 9F E5 LDR R0, =0x4000120 ; 4000120h 4 R/W SIODATA32 SIO Data (Normal-32bit Mode) RAM:02000150 RAM:02000150 loc_2000150 ; CODE XREF: sub_200014C+8j RAM:02000150 ; sub_200014C+18j ... RAM:02000150 F2 FF FF EB BL isSioReady RAM:02000154 FD FF FF 1A BNE loc_2000150 RAM:02000158 00 20 A0 E3 MOV R2, #0 RAM:0200015C BA 20 C0 E1 STRH R2, [R0,#0xA] RAM:02000160 00 00 51 E3 CMP R1, #0 RAM:02000164 F9 FF FF 1A BNE loc_2000150 RAM:02000168 02 29 A0 E3 MOV R2, #0x8000 RAM:0200016C RAM:0200016C loc_200016C ; CODE XREF: sub_200014C+34j RAM:0200016C 00 10 A0 E3 MOV R1, #0 RAM:02000170 RAM:02000170 loc_2000170 ; CODE XREF: sub_200014C+40j RAM:02000170 BA 10 C0 E1 STRH R1, [R0,#0xA] RAM:02000174 E9 FF FF EB BL isSioReady RAM:02000178 F4 FF FF 1A BNE loc_2000150 RAM:0200017C 02 00 51 E1 CMP R1, R2 RAM:02000180 F9 FF FF 1A BNE loc_200016C RAM:02000184 A2 22 A0 E1 MOV R2, R2,LSR#5 RAM:02000188 00 00 51 E3 CMP R1, #0 RAM:0200018C F7 FF FF 1A BNE loc_2000170 RAM:02000190 4C 30 9F E5 LDR R3, =word_20000AC RAM:02000194 B0 20 D3 E1 LDRH R2, [R3] RAM:02000198 BA 20 C0 E1 STRH R2, [R0,#0xA] RAM:0200019C DF FF FF EB BL isSioReady RAM:020001A0 RAM:020001A0 loc_20001A0 ; CODE XREF: sub_200014C:loc_20001A0j RAM:020001A0 ; sub_200014C+5Cj ... RAM:020001A0 FE FF FF 1A BNE loc_20001A0 RAM:020001A4 02 00 51 E1 CMP R1, R2 RAM:020001A8 FC FF FF 1A BNE loc_20001A0 RAM:020001AC B2 20 D3 E1 LDRH R2, [R3,#2] RAM:020001B0 BA 20 C0 E1 STRH R2, [R0,#0xA] RAM:020001B4 D9 FF FF EB BL isSioReady RAM:020001B8 F8 FF FF 1A BNE loc_20001A0 RAM:020001BC 02 00 51 E1 CMP R1, R2 RAM:020001C0 F6 FF FF 1A BNE loc_20001A0 RAM:020001C4 00 10 A0 E3 MOV R1, #0 RAM:020001C8 BA 10 C0 E1 STRH R1, [R0,#0xA] RAM:020001CC 14 00 9F E5 LDR R0, =unk_20002F0 RAM:020001D0 14 10 9F E5 LDR R1, =0x2010000 RAM:020001D4 00 00 11 EF SVC 0x110000 ; LZ77UnCompWram - compressed code to 2010000 RAM:020001D8 0C E0 9F E5 LDR LR, =0x2010000 RAM:020001DC 1E FF 2F E1 BX LR RAM:020001DC ; End of function sub_200014C RAM:020001DC RAM:020001DC ; --------------------------------------------------------------------------- RAM:020001E0 20 01 00 04 dword_20001E0 DCD 0x4000120 ; DATA XREF: sub_200014Cr RAM:020001E4 AC 00 00 02 off_20001E4 DCD word_20000AC ; DATA XREF: sub_200014C+44r RAM:020001E8 F0 02 00 02 off_20001E8 DCD unk_20002F0 ; DATA XREF: sub_200014C+80r RAM:020001EC 00 00 01 02 off_20001EC DCD 0x2010000 ; DATA XREF: sub_200014C+84r
Comments
0 B
|👍
/👎
0 B
|👍
/👎