550D[]
* SD Card Led On ROM:FFFF5104 LDR R2, =0xC0220000 ROM:FFFF5108 MOV R1, #0x46 ; overwrite previous value ROM:FFFF510C STR R1, [R2,#0x134] or ROM:FF2DF540 LDR R0, =0xC0220134 ROM:FF2DF544 LDR R1, [R0] ; previous value ROM:FF2DF548 ORR R1, R1, #2 ;set bit#1 ROM:FF2DF54C STR R1, [R0] ;store updated value * SD card Led off ROM:FFFF537C LDR R1, =0xC0220000 ROM:FFFF5380 MOV R0, #0x44 ;overwrite ROM:FFFF5384 STR R0, [R1,#0x134] or ROM:FF2DF574 LDR R0, =0xC0220134 ROM:FF2DF578 LDR R1, [R0] ROM:FF2DF57C BIC R1, R1, #2 ;bit clear ROM:FF2DF580 STR R1, [R0]
600D[]
* SD Card Led On ROM:FF34B710 LDR R0, =0xC0220134 ROM:FF34B714 LDR R1, [R0] ROM:FF34B718 ORR R1, R1, #2 ROM:FF34B71C STR R1, [R0] * SD Card Led Off ROM:FF34B744 LDR R0, =0xC0220134 ROM:FF34B748 LDR R1, [R0] ROM:FF34B74C BIC R1, R1, #2 ROM:FF34B750 STR R1, [R0]
1000D[]
* Drive Led On ROM:FFCFCACC MOV R3, 0xC02200E0 ROM:FFCFCAD8 STR R3, [R11,#unk_FFFFFFEC] ROM:FFCFCADC LDR R3, [R11,#unk_FFFFFFEC] ROM:FFCFCAE0 LDR R2, [R11,#unk_FFFFFFEC] ROM:FFCFCAE4 LDR R1, [R2] ROM:FFCFCAE8 ORR R2, R1, #2 ROM:FFCFCAEC STR R2, [R3] * Drive Led Off ROM:FFCFCB38 MOV R3, 0xC02200E0 ROM:FFCFCB44 STR R3, [R11,#unk_FFFFFFEC] ROM:FFCFCB48 LDR R3, [R11,#unk_FFFFFFEC] ROM:FFCFCB4C LDR R2, [R11,#unk_FFFFFFEC] ROM:FFCFCB50 LDR R1, [R2] ROM:FFCFCB54 BIC R2, R1, #2 ROM:FFCFCB58 STR R2, [R3]
See Coutts code :
#define LED_RED 0xC02200E0 #define LED_BLUE 0xC02200E8 ... while (1) { *((volatile long*)LED_BLUE) = 0x46; SleepTask(500); *((volatile long*)LED_BLUE) = 0x44; SleepTask(500); }
550D, 60D, 600D, 500D, 1100D[]
*(int*)0xC0220134 |= 2; // card LED on *(int*)0xC0220134 &= ~2; // card LED off
5D2, 50D[]
*(int*)0xC02200BC |= 2; // card LED on *(int*)0xC02200BC &= ~2; // card LED off
call("EdLedOn") // AJ: Blue LED on call("EdLedOff") // AJ: Blue LED off call("EdLedBlink") // AJ: Blue LED Blink (don't call it too quickly)
7D[]
LDR R6, =0xC0223000 MOV R0, #0x46 ; on STR R0, [R6,#0x2C] MOV R1, #0x44 ;off STR R1, [R6,#0x2C]