From 07400e92d04dfd4d565ba707094e26c794936be6 Mon Sep 17 00:00:00 2001 From: Egor Ananyin Date: Mon, 6 Jul 2020 09:34:14 +0300 Subject: Decompile pad --- arm7/lib/src/PAD_xyButton.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 arm7/lib/src/PAD_xyButton.c (limited to 'arm7/lib/src') diff --git a/arm7/lib/src/PAD_xyButton.c b/arm7/lib/src/PAD_xyButton.c new file mode 100644 index 00000000..ed4e7c05 --- /dev/null +++ b/arm7/lib/src/PAD_xyButton.c @@ -0,0 +1,24 @@ +#include "function_target.h" +#include "OS_alarm.h" +#include "OS_tick.h" +#include "pad.h" + +static BOOL PADi_XYButtonAvailable; +static OSAlarm PADi_Alarm; + +extern void FUN_037FB92C(void); + +ARM_FUNC BOOL PAD_InitXYButton(void) { + OSTick tick; + if (!OS_IsTickAvailable() || !OS_IsAlarmAvailable()) + return FALSE; + else if (PADi_XYButtonAvailable) + return FALSE; + else { + OS_CreateAlarm(&PADi_Alarm); + tick = OS_GetTick(); + OS_SetPeriodicAlarm(&PADi_Alarm, tick + 0x82e, 0x82e, (OSAlarmHandler)FUN_037FB92C, NULL); + PADi_XYButtonAvailable = TRUE; + return TRUE; + } +} -- cgit v1.2.3 From 1f2f48038cabc775a4e5af8938d5cd619f7a4fd9 Mon Sep 17 00:00:00 2001 From: Egor Ananyin Date: Mon, 6 Jul 2020 16:58:16 +0300 Subject: I'm fucking stupid --- arm7/lib/src/PAD_xyButton.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arm7/lib/src') diff --git a/arm7/lib/src/PAD_xyButton.c b/arm7/lib/src/PAD_xyButton.c index ed4e7c05..d224d6a5 100644 --- a/arm7/lib/src/PAD_xyButton.c +++ b/arm7/lib/src/PAD_xyButton.c @@ -1,7 +1,7 @@ #include "function_target.h" #include "OS_alarm.h" #include "OS_tick.h" -#include "pad.h" +#include "PAD_xyButton.h" static BOOL PADi_XYButtonAvailable; static OSAlarm PADi_Alarm; -- cgit v1.2.3 From 388e4016a23dc5f3d7b140d500c42fd5c1d1943c Mon Sep 17 00:00:00 2001 From: Egor Ananyin Date: Mon, 6 Jul 2020 19:47:38 +0300 Subject: One more func --- arm7/lib/src/PAD_xyButton.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'arm7/lib/src') diff --git a/arm7/lib/src/PAD_xyButton.c b/arm7/lib/src/PAD_xyButton.c index d224d6a5..fa344f04 100644 --- a/arm7/lib/src/PAD_xyButton.c +++ b/arm7/lib/src/PAD_xyButton.c @@ -2,11 +2,12 @@ #include "OS_alarm.h" #include "OS_tick.h" #include "PAD_xyButton.h" +#include "registers.h" static BOOL PADi_XYButtonAvailable; static OSAlarm PADi_Alarm; -extern void FUN_037FB92C(void); +void EXIi_SelectRcnt(u16); ARM_FUNC BOOL PAD_InitXYButton(void) { OSTick tick; @@ -17,8 +18,16 @@ ARM_FUNC BOOL PAD_InitXYButton(void) { else { OS_CreateAlarm(&PADi_Alarm); tick = OS_GetTick(); - OS_SetPeriodicAlarm(&PADi_Alarm, tick + 0x82e, 0x82e, (OSAlarmHandler)FUN_037FB92C, NULL); + OS_SetPeriodicAlarm(&PADi_Alarm, tick + 0x82e, 0x82e, (OSAlarmHandler)PADi_xyButtonAlarmHandler, NULL); PADi_XYButtonAvailable = TRUE; return TRUE; } } + +void PADi_xyButtonAlarmHandler(void) { + u16 r4 = 0, r1; + EXIi_SelectRcnt(0x8000); + r1 = reg_EXTKEYIN; + if(r1 & EXTKEYIN_HINGE) r4 = 0x8000; + BUTTON_XY_BUF = r4 | ((r1 & (EXTKEYIN_X | EXTKEYIN_Y | EXTKEYIN_DEBUG)) << 10); +} -- cgit v1.2.3 From 85c37c87a3c79f97c9603129701f91785abd0ddc Mon Sep 17 00:00:00 2001 From: Egor Ananyin Date: Mon, 6 Jul 2020 19:55:37 +0300 Subject: cast --- arm7/lib/src/PAD_xyButton.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arm7/lib/src') diff --git a/arm7/lib/src/PAD_xyButton.c b/arm7/lib/src/PAD_xyButton.c index fa344f04..7c3eeac8 100644 --- a/arm7/lib/src/PAD_xyButton.c +++ b/arm7/lib/src/PAD_xyButton.c @@ -29,5 +29,5 @@ void PADi_xyButtonAlarmHandler(void) { EXIi_SelectRcnt(0x8000); r1 = reg_EXTKEYIN; if(r1 & EXTKEYIN_HINGE) r4 = 0x8000; - BUTTON_XY_BUF = r4 | ((r1 & (EXTKEYIN_X | EXTKEYIN_Y | EXTKEYIN_DEBUG)) << 10); + BUTTON_XY_BUF = (u16)(r4 | ((r1 & (EXTKEYIN_X | EXTKEYIN_Y | EXTKEYIN_DEBUG)) << 10)); } -- cgit v1.2.3