Bond697 icon

TwlMain()

Bond697 | PRO | 04/09/13 07:54:24 PM UTC | 0 ⭐ | 10706 👁️ | Never ⏰ | []
ARM |

5.94 KB

|

None

|

0 👍

/

0 👎

RAM_ARM9:02005124
RAM_ARM9:02005124             ; void __fastcall TwlMain()
RAM_ARM9:02005124             TwlMain                               ; CODE XREF: _start+1A8j
RAM_ARM9:02005124                                                     ; DATA XREF: _start+1A0o ...
RAM_ARM9:02005124 F8 B5                       PUSH    {R3-R7,LR}
RAM_ARM9:02005126 00 F0 1D F9                 BL      SystemInit
RAM_ARM9:0200512A 00 F0 C5 F9                 BL      setupSystem
RAM_ARM9:0200512E 25 49                       LDR     R1, =(_HBlankIntr+1) ; function
RAM_ARM9:02005130 02 20                       MOVS    R0, #2          ; intrBit
RAM_ARM9:02005132 74 F0 0B FE                 BL      OS_SetIrqFunction
RAM_ARM9:02005136 24 49                       LDR     R1, =(VBlankIntr+1) ; function
RAM_ARM9:02005138 01 20                       MOVS    R0, #1          ; intrBit
RAM_ARM9:0200513A 01 24                       MOVS    R4, #1
RAM_ARM9:0200513C 74 F0 06 FE                 BL      OS_SetIrqFunction
RAM_ARM9:02005140 03 20                       MOVS    R0, #3          ; intr
RAM_ARM9:02005142 74 F0 AB FE                 BL      OS_EnableIrqMask
RAM_ARM9:02005146 21 4E                       LDR     R6, =0x4000208
RAM_ARM9:02005148 30 88                       LDRH    R0, [R6]
RAM_ARM9:0200514A 01 20                       MOVS    R0, #1          ; enable
RAM_ARM9:0200514C 34 80                       STRH    R4, [R6]
RAM_ARM9:0200514E 6F F0 8F FB                 BL      GX_HBlankIntr
RAM_ARM9:02005152 01 20                       MOVS    R0, #1          ; enable
RAM_ARM9:02005154 6F F0 A0 FB                 BL      GX_VBlankIntr
RAM_ARM9:02005158 76 F0 D0 EF                 BLX     OS_EnableInterrupts
RAM_ARM9:0200515C 00 F0 82 F8                 BL      setupMainGFSystems
RAM_ARM9:02005160             ; ---------------------------------------------------------------------------
RAM_ARM9:02005160 1B 4C                       LDR     R4, =loc_209DC58
RAM_ARM9:02005162 35 1F                       SUBS    R5, R6, #4      ; 0x4000204
RAM_ARM9:02005164 F7 0A                       LSRS    R7, R6, #0xB    ; 0x8000
RAM_ARM9:02005166
RAM_ARM9:02005166             while_1_                                ; CODE XREF: NitroMain+96j
RAM_ARM9:02005166                                                     ; NitroMain+9Ej
RAM_ARM9:02005166 00 F0 63 F9                 BL      mem_cnt_dsi
RAM_ARM9:0200516A 00 F0 73 FA                 BL      sub_2005654
RAM_ARM9:0200516E 00 F0 DB F8                 BL      sub_2005328
RAM_ARM9:02005172 00 F0 79 FA                 BL      nullsub_4
RAM_ARM9:02005176 44 F0 B5 FC                 BL      sub_2049AE4
RAM_ARM9:0200517A 00 F0 33 F8                 BL      sub_20051E4
RAM_ARM9:0200517E 06 1C                       MOVS    R6, R0
RAM_ARM9:02005180 03 D0                       BEQ     loc_200518A
RAM_ARM9:02005182 29 88                       LDRH    R1, [R5]
RAM_ARM9:02005184 13 48                       LDR     R0, =0xFFFF7FFF
RAM_ARM9:02005186 08 40                       ANDS    R0, R1          ; give RAM access priority to the arm9
RAM_ARM9:02005188 28 80                       STRH    R0, [R5]
RAM_ARM9:0200518A
RAM_ARM9:0200518A             loc_200518A                             ; CODE XREF: NitroMain+5Cj
RAM_ARM9:0200518A 20 1C                       MOVS    R0, R4          ; thread
RAM_ARM9:0200518C 75 F0 62 FB                 BL      OS_IsThreadTerminated
RAM_ARM9:02005190 00 28                       CMP     R0, #0
RAM_ARM9:02005192 03 D1                       BNE     loc_200519C
RAM_ARM9:02005194 20 1C                       MOVS    R0, R4          ; thread
RAM_ARM9:02005196 00 21                       MOVS    R1, #0          ; queue
RAM_ARM9:02005198 75 F0 64 FB                 BL      OS_SleepThreadDirect
RAM_ARM9:0200519C
RAM_ARM9:0200519C             loc_200519C                             ; CODE XREF: NitroMain+6Ej
RAM_ARM9:0200519C 01 20                       MOVS    R0, #1          ; clear
RAM_ARM9:0200519E 01 21                       MOVS    R1, #1          ; irqFlags
RAM_ARM9:020051A0 74 F0 1C ED                 BLX     OS_WaitIrq      ; wait for vblank, save battery, etc
RAM_ARM9:020051A4 00 F0 58 F8                 BL      updateGfx
RAM_ARM9:020051A8 20 1C                       MOVS    R0, R4          ; thread
RAM_ARM9:020051AA 75 F0 53 FB                 BL      OS_IsThreadTerminated
RAM_ARM9:020051AE 00 28                       CMP     R0, #0
RAM_ARM9:020051B0 02 D1                       BNE     loc_20051B8
RAM_ARM9:020051B2 20 1C                       MOVS    R0, R4          ; thread
RAM_ARM9:020051B4 75 F0 AC FB                 BL      OS_WakeupThreadDirect
RAM_ARM9:020051B8
RAM_ARM9:020051B8             loc_20051B8                             ; CODE XREF: NitroMain+8Cj
RAM_ARM9:020051B8 00 2E                       CMP     R6, #0
RAM_ARM9:020051BA D4 D0                       BEQ     while_1_
RAM_ARM9:020051BC 28 88                       LDRH    R0, [R5]
RAM_ARM9:020051BE 38 43                       ORRS    R0, R7          ; give RAM access priority back to the arm7
RAM_ARM9:020051C0 28 80                       STRH    R0, [R5]
RAM_ARM9:020051C2 D0 E7                       B       while_1_
RAM_ARM9:020051C2             ; End of function NitroMain
RAM_ARM9:020051C2
RAM_ARM9:020051C2             ; ---------------------------------------------------------------------------
RAM_ARM9:020051C4             ; OSIrqFunction function
RAM_ARM9:020051C4 2D 52 00 02 function        DCD _HBlankIntr+1       ; DATA XREF: NitroMain+Ar
RAM_ARM9:020051C8             ; OSIrqFunction off_20051C8
RAM_ARM9:020051C8 35 52 00 02 off_20051C8     DCD VBlankIntr+1        ; DATA XREF: NitroMain+12r
RAM_ARM9:020051CC 08 02 00 04 dword_20051CC   DCD 0x4000208           ; DATA XREF: NitroMain+22r
RAM_ARM9:020051D0 58 DC 09 02 off_20051D0     DCD loc_209DC58         ; DATA XREF: NitroMain+3Cr
RAM_ARM9:020051D4 FF 7F FF FF dword_20051D4   DCD 0xFFFF7FFF          ; DATA XREF: NitroMain+60r

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎