Now include source for HLE BIOS, even without assembler script

This commit is contained in:
Jeffrey Pfau 2013-04-17 00:46:32 -07:00
parent 54fffb7fff
commit dd479ad907
1 changed files with 67 additions and 0 deletions

67
src/gba/hle-bios.s Normal file
View File

@ -0,0 +1,67 @@
#define nop andeq r0, r0
.text
b resetBase
b undefBase
b swiBase
b pabtBase
b dabtBase
nop
b irqBase
b fiqBase
resetBase:
mov pc, #0x8000000
swiBase:
cmp sp, #0
moveq sp, #0x04000000
subeq sp, #0x20
stmfd sp!, {lr}
ldrb r0, [lr, #-2]
cmp r0, #4
bleq IntrWait
cmp r0, #5
bleq IntrWait
ldmfd sp!, {lr}
movs pc, lr
irqBase:
stmfd sp!, {r0-r3, r12, lr}
mov r0, #0x04000000
add lr, pc, #0
ldr pc, [r0, #-4]
ldmfd sp!, {r0-r3, r12, lr}
subs pc, lr, #4
IntrWait:
stmfd sp!, {r2,lr}
add sp, #-4
strh r1, [sp, #0]
IntrWaitLoop:
mov r2, #0x04000000
add r2, #0x200
ldrh r0, [r2, #0]
strh r0, [sp, #2]
ldrh r1, [sp, #0]
orr r1, r0, r1
strh r1, [r2, #0]
mov r0, #0x1F
msr cpsr, r0
swi #0x020000
mov r0, #0xD3
msr cpsr, r0
mov r0, #0x04000000
ldrh r2, [r0, #-8]
ldrh r1, [sp, #0]
ands r1, r2
eorne r1, r2
strneh r1, [r0, #-8]
ldrh r0, [sp, #2]
mov r1, #0x04000000
add r1, #0x200
strh r0, [r1, #0]
beq IntrWaitLoop
add sp, #4
ldmfd sp!, {r2,pc}