summaryrefslogtreecommitdiff
path: root/asm/libgcnmultiboot.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/libgcnmultiboot.s')
-rw-r--r--asm/libgcnmultiboot.s136
1 files changed, 68 insertions, 68 deletions
diff --git a/asm/libgcnmultiboot.s b/asm/libgcnmultiboot.s
index 08a61d9bf..e6d1b1eae 100644
--- a/asm/libgcnmultiboot.s
+++ b/asm/libgcnmultiboot.s
@@ -1,12 +1,12 @@
-; This library can be used to download and execute a multi-boot image from
-; a GameCube using the JOY Bus protocol over the link cable.
+@ This library can be used to download and execute a multi-boot image from
+@ a GameCube using the JOY Bus protocol over the link cable.
.set GCMB_STRUCT_BASE_DEST_PTR, 0x20
.set GCMB_STRUCT_CUR_DEST_PTR, 0x24
.set GCMB_STRUCT_SERIAL_INTR_HANDLER, 0x28
thumb_func_start GameCubeMultiBoot_Hash
-GameCubeMultiBoot_Hash: ; 82DED70
+GameCubeMultiBoot_Hash: @ 82DED70
push {r4,lr}
ldr r4, pool_HashVal
eors r3, r1
@@ -26,8 +26,8 @@ $skipEor:
thumb_func_end GameCubeMultiBoot_Hash
thumb_func_start GameCubeMultiBoot_Main
-; void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb);
-GameCubeMultiBoot_Main: ; 82DED84
+@ void GameCubeMultiBoot_Main(struct GameCubeMultiBoot *mb);
+GameCubeMultiBoot_Main: @ 82DED84
ldr r1, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
cmp r1, 0
beq _082DEDAA
@@ -166,13 +166,13 @@ _082DEE76:
pool_HashVal: .4byte 0xa1c1
-pool_Kawa: .ascii "Kawa" ; name of BIOS developer
+pool_Kawa: .ascii "Kawa" @ name of BIOS developer
pool_NintendoLogo: .4byte RomHeaderNintendoLogo
thumb_func_start GameCubeMultiBoot_ExecuteProgram
-; void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb);
-GameCubeMultiBoot_ExecuteProgram: ; 82DEE84
+@ void GameCubeMultiBoot_ExecuteProgram(struct GameCubeMultiBoot *mb);
+GameCubeMultiBoot_ExecuteProgram: @ 82DEE84
ldrb r1, [r0, 0x2]
cmp r1, 0x2
bne $unableToExecute
@@ -187,20 +187,20 @@ $unableToExecute:
thumb_func_end GameCubeMultiBoot_ExecuteProgram
thumb_func_start GameCubeMultiBoot_Init
-; void GameCubeMultiBoot_Init(struct GameCubeMultiBoot *mb);
-GameCubeMultiBoot_Init: ; 82DEE98
+@ void GameCubeMultiBoot_Init(struct GameCubeMultiBoot *mb);
+GameCubeMultiBoot_Init: @ 82DEE98
ldr r3, pool_InterruptRegs
-; Save IME register.
+@ Save IME register.
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
-; Disable interrupts.
+@ Disable interrupts.
movs r1, 0
strh r1, [r3, OFFSET_REG_IME - 0x200]
-; Set the handler to the "Stop" routine.
-; Unless the first command that is received is a device reset command, the
-; "Stop" routine will be executed and no further commands will be processed.
+@ Set the handler to the "Stop" routine.
+@ Unless the first command that is received is a device reset command, the
+@ "Stop" routine will be executed and no further commands will be processed.
adr r3, GcMbIntrHandler_Stop
str r3, [r0, GCMB_STRUCT_SERIAL_INTR_HANDLER]
@@ -212,7 +212,7 @@ GameCubeMultiBoot_Init: ; 82DEE98
adds r3, r0, 0
adds r3, GCMB_STRUCT_BASE_DEST_PTR
-; clear all but the last 3 fields of the struct
+@ clear all but the last 3 fields of the struct
$clearStructLoop:
stm r0!, {r1}
cmp r0, r3
@@ -226,43 +226,43 @@ $clearStructLoop:
ldr r3, pool_SerialRegs
-; Turn off JOY Bus mode.
+@ Turn off JOY Bus mode.
lsls r0, r3, 10
strh r0, [r3, OFFSET_REG_RCNT - 0x120]
-; Turn on JOY Bus mode.
+@ Turn on JOY Bus mode.
movs r0, 0xC0
lsls r0, 8
strh r0, [r3, OFFSET_REG_RCNT - 0x120]
-; Init JOY Bus registers.
+@ Init JOY Bus registers.
movs r0, 0x47
strh r0, [r3, OFFSET_REG_JOYCNT - 0x120]
strh r1, [r3, OFFSET_REG_JOYSTAT - 0x120]
ldr r3, pool_InterruptRegs
-; Acknowledge serial interrupt.
+@ Acknowledge serial interrupt.
movs r0, INTR_FLAG_SERIAL
strh r0, [r3, OFFSET_REG_IF - 0x200]
-; Enable serial interrupt.
+@ Enable serial interrupt.
ldrh r1, [r3, OFFSET_REG_IE - 0x200]
orrs r1, r0
strh r1, [r3, OFFSET_REG_IE - 0x200]
-; Restore IME register.
+@ Restore IME register.
strh r2, [r3, OFFSET_REG_IME - 0x200]
bx lr
thumb_func_end GameCubeMultiBoot_Init
non_word_aligned_thumb_func_start GameCubeMultiBoot_HandleSerialInterrupt
-; void GameCubeMultiBoot_HandleSerialInterrupt(struct GameCubeMultiBoot *mb);
-GameCubeMultiBoot_HandleSerialInterrupt: ; 82DEEE2
+@ void GameCubeMultiBoot_HandleSerialInterrupt(struct GameCubeMultiBoot *mb);
+GameCubeMultiBoot_HandleSerialInterrupt: @ 82DEEE2
ldr r3, pool_SerialRegs
-; Acknowledge reset/receive/send flags.
+@ Acknowledge reset/receive/send flags.
ldrh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
strh r1, [r3, OFFSET_REG_JOYCNT - 0x120]
@@ -273,16 +273,16 @@ GameCubeMultiBoot_HandleSerialInterrupt: ; 82DEEE2
cmp r2, 0
beq GameCubeMultiBoot_HandleSerialInterruptDone
- lsrs r1, 1 ; was a device reset command received?
- bcs GameCubeMultiBoot_BeginHandshake ; branch if so
+ lsrs r1, 1 @ was a device reset command received?
+ bcs GameCubeMultiBoot_BeginHandshake @ branch if so
mov pc, r2
.align 2, 0
-; Zero the status and the interrupt handler pointer.
-; Commands from the GameCube will not be processed after this is executed
-; unless GameCubeMultiBoot_Init() is called again.
+@ Zero the status and the interrupt handler pointer.
+@ Commands from the GameCube will not be processed after this is executed
+@ unless GameCubeMultiBoot_Init() is called again.
GcMbIntrHandler_Stop:
movs r2, 0
strh r2, [r3, OFFSET_REG_JOYSTAT - 0x120]
@@ -317,27 +317,27 @@ GameCubeMultiBoot_BeginHandshake:
.align 2, 0
-GcMbIntrHandler_CheckGameCodeSent: ; 82DEF24
+GcMbIntrHandler_CheckGameCodeSent: @ 82DEF24
lsls r1, 31
- bcc GcMbIntrHandler_Stop ; stop if send failed
- bmi GameCubeMultiBoot_CheckHandshakeResponse ; branch if receive is complete
+ bcc GcMbIntrHandler_Stop @ stop if send failed
+ bmi GameCubeMultiBoot_CheckHandshakeResponse @ branch if receive is complete
-; If the response hasn't been fully received yet,
-; check again upon the next interrupt.
+@ If the response hasn't been fully received yet,
+@ check again upon the next interrupt.
adr r2, GcMbIntrHandler_CheckHandshakeResponse
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_CheckHandshakeResponse: ; 82DEF30
- lsrs r1, 1 ; is receive complete?
- bcc GcMbIntrHandler_Stop ; stop if not
+GcMbIntrHandler_CheckHandshakeResponse: @ 82DEF30
+ lsrs r1, 1 @ is receive complete?
+ bcc GcMbIntrHandler_Stop @ stop if not
GameCubeMultiBoot_CheckHandshakeResponse:
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
ldr r2, pool_RubyUSAGameCode
cmp r1, r2
- bne GcMbIntrHandler_Stop ; stop if the GameCube didn't reply with the same game code
+ bne GcMbIntrHandler_Stop @ stop if the GameCube didn't reply with the same game code
ldrb r1, [r0, 0x3]
strb r1, [r0, 0xB]
adr r2, GcMbIntrHandler_82DEF44
@@ -345,9 +345,9 @@ GameCubeMultiBoot_CheckHandshakeResponse:
.align 2, 0
-GcMbIntrHandler_82DEF44: ; 82DEF44
- lsrs r1, 1 ; is receive complete?
- bcc GcMbIntrHandler_Stop ; branch if not
+GcMbIntrHandler_82DEF44: @ 82DEF44
+ lsrs r1, 1 @ is receive complete?
+ bcc GcMbIntrHandler_Stop @ branch if not
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
lsrs r2, r1, 24
cmp r2, 0xDD
@@ -383,18 +383,18 @@ _082DEF72:
.align 2, 0
-GcMbIntrHandler_82DEF84: ; 82DEF84
+GcMbIntrHandler_82DEF84: @ 82DEF84
lsls r1, 31
- bcc GcMbIntrHandler_Stop ; stop if send failed
- bmi _082DEF94 ; branch if receive is complete
+ bcc GcMbIntrHandler_Stop @ stop if send failed
+ bmi _082DEF94 @ branch if receive is complete
adr r2, GcMbIntrHandler_82DEF90
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_82DEF90: ; 82DEF90
- lsrs r1, 1 ; is receive complete?
- bcc GcMbIntrHandler_Stop ; branch if not
+GcMbIntrHandler_82DEF90: @ 82DEF90
+ lsrs r1, 1 @ is receive complete?
+ bcc GcMbIntrHandler_Stop @ branch if not
_082DEF94:
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
ldr r2, _082DF034
@@ -415,9 +415,9 @@ _082DEFA6:
.align 2, 0
-GcMbIntrHandler_82DEFB4: ; 82DEFB4
- lsrs r1, 1 ; is receive complete?
- bcc GcMbIntrHandler_Stop ; branch if not
+GcMbIntrHandler_82DEFB4: @ 82DEFB4
+ lsrs r1, 1 @ is receive complete?
+ bcc GcMbIntrHandler_Stop @ branch if not
ldr r2, [r0, GCMB_STRUCT_CUR_DEST_PTR]
movs r1, 0x4
ands r1, r2
@@ -456,18 +456,18 @@ _082DEFE2:
.align 2, 0
-GcMbIntrHandler_82DEFF0: ; 82DEFF0
+GcMbIntrHandler_82DEFF0: @ 82DEFF0
lsls r1, 31
- bcc _082DEFE2 ; branch if send failed
- bmi _082DF000 ; branch if receive is complete
+ bcc _082DEFE2 @ branch if send failed
+ bmi _082DF000 @ branch if receive is complete
adr r2, GcMbIntrHandler_82DEFFC
b GameCubeMultiBoot_SetInterruptHandler
.align 2, 0
-GcMbIntrHandler_82DEFFC: ; 82DEFFC
- lsrs r1, 1 ; is receive complete?
- bcc _082DEFE2 ; branch if not
+GcMbIntrHandler_82DEFFC: @ 82DEFFC
+ lsrs r1, 1 @ is receive complete?
+ bcc _082DEFE2 @ branch if not
_082DF000:
ldr r1, [r3, OFFSET_REG_JOY_RECV - 0x120]
@@ -480,45 +480,45 @@ _082DF000:
.align 2, 0
-GcMbIntrHandler_82DF010: ; 82DF010
+GcMbIntrHandler_82DF010: @ 82DF010
b GcMbIntrHandler_Stop
thumb_func_end GameCubeMultiBoot_HandleSerialInterrupt
non_word_aligned_thumb_func_start GameCubeMultiBoot_Quit
-; void GameCubeMultiBoot_Quit();
-GameCubeMultiBoot_Quit: ; 82DF012
+@ void GameCubeMultiBoot_Quit();
+GameCubeMultiBoot_Quit: @ 82DF012
ldr r3, pool_InterruptRegs
-; Save IME register.
+@ Save IME register.
ldrh r2, [r3, OFFSET_REG_IME - 0x200]
-; Disable interrupts.
+@ Disable interrupts.
movs r1, 0
strh r1, [r3, OFFSET_REG_IME - 0x200]
ldr r3, pool_SerialRegs
-; Acknowledge all JOYCNT flags.
+@ Acknowledge all JOYCNT flags.
movs r0, 0x7
strh r0, [r3, OFFSET_REG_JOYCNT - 0x120]
-; Turn off JOY Bus mode.
+@ Turn off JOY Bus mode.
lsls r0, r3, 10
- strh r0, [r3, OFFSET_REG_RCNT - 0x120] ; store 0x8000
+ strh r0, [r3, OFFSET_REG_RCNT - 0x120] @ store 0x8000
ldr r3, pool_InterruptRegs
-; Acknowledge serial interrupt.
+@ Acknowledge serial interrupt.
movs r0, INTR_FLAG_SERIAL
strh r0, [r3, OFFSET_REG_IF - 0x200]
-; Disable serial interrupt.
+@ Disable serial interrupt.
ldrh r1, [r3, OFFSET_REG_IE - 0x200]
bics r1, r0
strh r1, [r3, OFFSET_REG_IE - 0x200]
-; Restore IME register.
+@ Restore IME register.
strh r2, [r3, OFFSET_REG_IME - 0x200]
bx lr