.text
.align 2
.code 32
.arm
entry:
020000C0 E3A00012 mov r0,#0x12
020000C4 E129F000 msr cpsr_fc,r0
020000C8 E59FD028 ldr r13,=#0x3007FA0
020000CC E3A0001F mov r0,#0x1F
020000D0 E129F000 msr cpsr_fc,r0
020000D4 E59FD018 ldr r13,=#0x3007E60
020000D8 E59F101C ldr r1,=#0x3007FFC
020000DC E28F0020 add r0,=#0x2000104
020000E0 E5810000 str r0,[r1]
020000E4 E59F1014 ldr r1,=#0x2000241
020000E8 E1A0E00F mov r14,r15
020000EC E12FFF11 bx r1
020000F0 EAFFFFF2 b #0x20000C0
.pool
020000F4 03007E60
020000F8 03007FA0
020000FC 03007FFC
02000100 02000241
irq handler:
02000104 E3A03301 mov r3,#0x4000000
02000108 E2833C02 add r3,r3,#0x200
0200010C E5932000 ldr r2,[r3]
02000110 E1D310B8 ldrh r1,[r3,#0x8]
02000114 E14F0000 mrs r0,spsr
02000118 E92D400F stmfd r13!,{r0-r3,r14}
0200011C E3A00001 mov r0,#0x1
02000120 E1C300B8 strh r0,[r3,#0x8]
02000124 E0021822 and r1,r2,r2,lsr #0x10
02000128 E3A0C000 mov r12,#0x0
0200012C E2110080 ands r0,r1,#0x80
02000130 1A000027 bne #0x20001D4
02000134 E28CC004 add r12,r12,#0x4
02000138 E2110001 ands r0,r1,#0x1
0200013C 1A000024 bne #0x20001D4
02000140 E28CC004 add r12,r12,#0x4
02000144 E2110002 ands r0,r1,#0x2
02000148 1A000021 bne #0x20001D4
0200014C E28CC004 add r12,r12,#0x4
02000150 E2110004 ands r0,r1,#0x4
02000154 1A00001E bne #0x20001D4
02000158 E28CC004 add r12,r12,#0x4
0200015C E2110008 ands r0,r1,#0x8
02000160 1A00001B bne #0x20001D4
02000164 E28CC004 add r12,r12,#0x4
02000168 E2110010 ands r0,r1,#0x10
0200016C 1A000018 bne #0x20001D4
02000170 E28CC004 add r12,r12,#0x4
02000174 E2110020 ands r0,r1,#0x20
02000178 1A000015 bne #0x20001D4
0200017C E28CC004 add r12,r12,#0x4
02000180 E2110040 ands r0,r1,#0x40
02000184 1A000012 bne #0x20001D4
02000188 E28CC004 add r12,r12,#0x4
0200018C E2110C01 ands r0,r1,#0x100
02000190 1A00000F bne #0x20001D4
02000194 E28CC004 add r12,r12,#0x4
02000198 E2110C02 ands r0,r1,#0x200
0200019C 1A00000C bne #0x20001D4
020001A0 E28CC004 add r12,r12,#0x4
020001A4 E2110B01 ands r0,r1,#0x400
020001A8 1A000009 bne #0x20001D4
020001AC E28CC004 add r12,r12,#0x4
020001B0 E2110B02 ands r0,r1,#0x800
020001B4 1A000006 bne #0x20001D4
020001B8 E28CC004 add r12,r12,#0x4
020001BC E2110A01 ands r0,r1,#0x1000
020001C0 1A000003 bne #0x20001D4
020001C4 E28CC004 add r12,r12,#0x4
020001C8 E2110A02 ands r0,r1,#0x2000
020001CC 1543017C strneb r0,[r3,-#0x17C]
020001D0 1AFFFFFE bne #0x20001D0
020001D4 E1C300B2 strh r0,[r3,#0x2]
020001D8 E3A01D83 mov r1,#0x20C0
020001DC E1C22000 bic r2,r2,r0
020001E0 E0011002 and r1,r1,r2
020001E4 E1C310B0 strh r1,[r3]
020001E8 E10F3000 mrs r3,cpsr
020001EC E3C330DF bic r3,r3,#0xDF
020001F0 E383301F orr r3,r3,#0x1F
020001F4 E129F003 msr cpsr_fc,r3
020001F8 E59F1038 ldr r1,=#0x2014390
020001FC E081100C add r1,r1,r12
02000200 E5910000 ldr r0,[r1]
02000204 E92D4000 stmfd r13!,{r14}
02000208 E28FE000 add r14,=#0x2000210
0200020C E12FFF10 bx r0
02000210 E8BD4000 ldmfd r13!,{r14}
02000214 E10F3000 mrs r3,cpsr
02000218 E3C330DF bic r3,r3,#0xDF
0200021C E3833092 orr r3,r3,#0x92
02000220 E129F003 msr cpsr_fc,r3
02000224 E8BD400F ldmfd r13!,{r0-r3,r14}
02000228 E1C320B0 strh r2,[r3]
0200022C E1C310B8 strh r1,[r3,#0x8]
02000230 E169F000 msr spsr_fc,r0
02000234 E12FFF1E bx r14
.pool
02000238 02014390
.text
.align 2
.code 16
.thumb
0200023C 4770 bx r14
0200023E 0000 lsl r0,r0,#0x0(padding)
agbMain:
02000240 B510 push {r4,r14}
02000242 4C0F ldr r4,=#0x3000130
02000244 490F ldr r1,=#0x4000208 // IME
02000246 2000 mov r0,#0x0
02000248 8008 strh r0,[r1] // IME = 0, turn off interrupts
0200024A 20FC mov r0,#0xFC // pass 0xFC to 0x20002A0 as an argument
0200024C F000F828 bl #0x20002A0
02000250 490D ldr r1,=#0x4000204 // cart waitstate control
02000252 4A0E ldr r2,=#0x45B4
02000254 1C10 mov r0,r2 // waitstate control = 0x45b4
02000256 8008 strh r0,[r1] // set waitstates, prefetch buffer
02000258 4A0D ldr r2,=#0x40000D4 // DMA3 source
0200025A 480E ldr r0,=#0x20143C8 // use this as DMA3 source
0200025C 6010 str r0,[r2] // set DMA3 src
0200025E 20C0 mov r0,#0xC0 // r0 = 0xC
02000260 0480 lsl r0,r0,#0x12 // r0 = 0x3000000
02000262 6050 str r0,[r2,#0x4] // DMA3 dest = 0x3000000
02000264 480C ldr r0,=#0x30001C4
02000266 490D ldr r1,=#0x3000000
02000268 1A40 sub r0,r0,r1 // r0 = r0-r1 = 0x1C4
0200026A 0FC1 lsr r1,r0,#0x1F // r1 = 0
0200026C 1840 add r0,r0,r1
0200026E 1040 asr r0,r0,#0x1
02000270 2180 mov r1,#0x80
02000272 0609 lsl r1,r1,#0x18
02000274 4308 orr r0,r1
02000276 6090 str r0,[r2,#0x8]
02000278 6890 ldr r0,[r2,#0x8]
0200027A F000F81B bl #0x20002B4
0200027E E7FE b #0x200027E
.pool
02000280 0130
02000282 0300
(0x03000130)
02000284 0208
02000286 0400
(0x04000208)
02000288 0204
0200028A 0400
(0x04000204)
0200028C 45B4
0200028E 0000
(0x030045B4)
02000290 00D4
02000292 0400
(0x040000D4)
02000294 43C8
02000296 0201
(0x020143C8)
02000298 01C4
0200029A 0300
(0x030001C4)
0200029C 0000
0200029E 0300
(0x03000000)
020002A0 DF01 swi #0x1 ;RegisterRamReset
020002A2 4770 bx r14
020002A4 4700 bx r0
020002A6 46C0 nop
020002A8 4708 bx r1
020002AA 46C0 nop
020002AC 4710 bx r2
020002AE 46C0 nop
020002B0 4718 bx r3
020002B2 46C0 nop
020002B4 4720 bx r4
020002B6 46C0 nop
020002B8 4728 bx r5
020002BA 46C0 nop
020002BC 4730 bx r6
020002BE 46C0 nop
020002C0 4738 bx r7
020002C2 46C0 nop
020002C4 4740 bx r8
020002C6 46C0 nop
020002C8 4748 bx r9
020002CA 46C0 nop
020002CC 4750 bx r10
020002CE 46C0 nop
020002D0 4758 bx r11
020002D2 46C0 nop
020002D4 4760 bx r12
020002D6 46C0 nop
020002D8 4768 bx r13
020002DA 46C0 nop
020002DC 4770 bx r14
020002DE 46C0 nop
020002E0 0000 lsl r0,r0,#0x0(padding)
.text
.align 2
.code 32
.arm
020143C8 E1A0C00D mov r12,r13
020143CC E92DDFF0 stmfd r13!,{r4-r12,r14,r15}
020143D0 E24CB004 sub r11,r12,#0x4
020143D4 E1A07000 mov r7,r0
020143D8 E4973004 ldr r3,[r7],#0x4
020143DC E1A0E001 mov r14,r1
020143E0 E08E9443 add r9,r14,r3,asr #0x8
020143E4 E15E0009 cmp r14,r9
020143E8 2A000040 bcs #0x20144F0
020143EC E3A08EFF mov r8,#0xFF0
020143F0 E288800F add r8,r8,#0xF
020143F4 E3A05080 mov r5,#0x80
020143F8 E4D7A001 ldrb r10,[r7],#0x1
020143FC E11A0005 tst r10,r5
02014400 0A000033 beq #0x20144D4
02014404 E4D73001 ldrb r3,[r7],#0x1
02014408 E4D71001 ldrb r1,[r7],#0x1
0201440C E24E0001 sub r0,r14,#0x1
02014410 E1811403 orr r1,r1,r3,lsl #0x8
02014414 E0013008 and r3,r1,r8
02014418 E0630000 rsb r0,r3,r0
0201441C E18E2000 orr r2,r14,r0
02014420 E3120001 tst r2,#0x1
02014424 E1A01641 mov r1,r1,asr #0xC
02014428 E2810003 add r0,r1,#0x3
0201442C 1A00000F bne #0x2014470
02014430 E1A0C141 mov r12,r1,asr #0x2
02014434 E35C0000 cmp r12,#0x0
02014438 E2014002 and r4,r1,#0x2
0201443C E2016001 and r6,r1,#0x1
02014440 E1A010A5 mov r1,r5,lsr #0x1
02014444 0A000005 beq #0x2014460
02014448 E0D030B2 ldrh r3,[r0],#0x2
0201444C E0CE30B2 strh r3,[r14],#0x2
02014450 E0D030B2 ldrh r3,[r0],#0x2
02014454 E0CE30B2 strh r3,[r14],#0x2
02014458 E25CC001 subs r12,r12,#0x1
0201445C 1AFFFFF9 bne #0x2014448
02014460 E3540000 cmp r4,#0x0
02014464 10D030B2 ldrneh r3,[r0],#0x2
02014468 10CE30B2 strneh r3,[r14],#0x2
0201446C EA000014 b #0x20144C4
02014470 E1A0C141 mov r12,r1,asr #0x2
02014474 E35C0000 cmp r12,#0x0
02014478 E2014002 and r4,r1,#0x2
0201447C E2016001 and r6,r1,#0x1
02014480 E1A010A5 mov r1,r5,lsr #0x1
02014484 0A000009 beq #0x20144B0
02014488 E4D03001 ldrb r3,[r0],#0x1
0201448C E4CE3001 strb r3,[r14],#0x1
02014490 E4D02001 ldrb r2,[r0],#0x1
02014494 E4CE2001 strb r2,[r14],#0x1
02014498 E4D03001 ldrb r3,[r0],#0x1
0201449C E4CE3001 strb r3,[r14],#0x1
020144A0 E4D02001 ldrb r2,[r0],#0x1
020144A4 E4CE2001 strb r2,[r14],#0x1
020144A8 E25CC001 subs r12,r12,#0x1
020144AC 1AFFFFF5 bne #0x2014488
020144B0 E3540000 cmp r4,#0x0
020144B4 14D03001 ldrneb r3,[r0],#0x1
020144B8 14CE3001 strneb r3,[r14],#0x1
020144BC 14D02001 ldrneb r2,[r0],#0x1
020144C0 14CE2001 strneb r2,[r14],#0x1
020144C4 E3560000 cmp r6,#0x0
020144C8 0A000004 beq #0x20144E0
020144CC E5D03000 ldrb r3,[r0]
020144D0 EA000001 b #0x20144DC
020144D4 E4D73001 ldrb r3,[r7],#0x1
020144D8 E1A010A5 mov r1,r5,lsr #0x1
020144DC E4CE3001 strb r3,[r14],#0x1
020144E0 E21150FF ands r5,r1,#0xFF
020144E4 1AFFFFC4 bne #0x20143FC
020144E8 E15E0009 cmp r14,r9
020144EC 3AFFFFC0 bcc #0x20143F4
020144F0 E91B6FF0 ldmdb r11,{r4-r11,r13,r14}
020144F4 E12FFF1E bx r14
020144F8 E1A0C00D mov r12,r13
020144FC E92DD830 stmfd r13!,{r4,r5,r11,r12,r14,r15}
02014500 E3A030AC mov r3,#0xAC
02014504 E2833402 add r3,r3,#0x2000000
02014508 E3A01000 mov r1,#0x0
0201450C E59F2068 ldr r2,=#0x2014384
02014510 E24CB004 sub r11,r12,#0x4
02014514 E59FC064 ldr r12,=#0x20003E0
02014518 E3A05402 mov r5,#0x2000000
0201451C E5934000 ldr r4,[r3]
02014520 E06C2002 rsb r2,r12,r2
02014524 E2620402 rsb r0,r2,#0x2000000
02014528 E2800BFF add r0,r0,#0x3FC00
0201452C E280C003 add r12,r0,#0x3
02014530 E1510002 cmp r1,r2
02014534 AA000004 bge #0x201454C
02014538 E7DC3001 ldrb r3,[r12,r1]
0201453C E7C03001 strb r3,[r0,r1]
02014540 E2811001 add r1,r1,#0x1
02014544 E1510002 cmp r1,r2
02014548 BAFFFFFA blt #0x2014538
0201454C E3A03F82 mov r3,#0x208
02014550 E2833301 add r3,r3,#0x4000000
02014554 E3A02000 mov r2,#0x0
02014558 E1C320B0 strh r2,[r3]
0201455C E3A01402 mov r1,#0x2000000
02014560 EBFFFF98 bl #0x20143C8
02014564 E3A030AC mov r3,#0xAC
02014568 E2833402 add r3,r3,#0x2000000
0201456C E5834000 str r4,[r3]
02014570 E1A0E00F mov r14,r15
02014574 E12FFF15 bx r5
02014578 EA000001 b #0x2014584
.pool
0201457C 02014384
02014580 020003E0
02014584 E91B6830 ldmdb r11,{r4,r5,r11,r13,r14}
02014588 E12FFF1E bx r14
.data
0201458C 53595346 "FSYS" - begin/end file system?
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎