diff options
Diffstat (limited to 'gba/source/link.c')
| -rw-r--r-- | gba/source/link.c | 22 |
1 files changed, 22 insertions, 0 deletions
| diff --git a/gba/source/link.c b/gba/source/link.c index acadf3b..26443c8 100644 --- a/gba/source/link.c +++ b/gba/source/link.c | |||
| @@ -27,6 +27,21 @@ void waitForAck() | |||
| 27 | REG_HS_CTRL |= JOY_RW; | 27 | REG_HS_CTRL |= JOY_RW; |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | u32 waitForResponse() | ||
| 31 | { | ||
| 32 | u32 val; | ||
| 33 | |||
| 34 | REG_JOYTR = 1; | ||
| 35 | while ((REG_HS_CTRL & JOY_WRITE) == 0); | ||
| 36 | val = REG_JOYRE; | ||
| 37 | REG_HS_CTRL |= JOY_RW; | ||
| 38 | REG_JOYTR = 0; | ||
| 39 | while ((REG_HS_CTRL & JOY_WRITE) == 0); | ||
| 40 | REG_HS_CTRL |= JOY_RW; | ||
| 41 | |||
| 42 | return val; | ||
| 43 | } | ||
| 44 | |||
| 30 | void sendS32(s32 val) | 45 | void sendS32(s32 val) |
| 31 | { | 46 | { |
| 32 | REG_JOYTR = val; | 47 | REG_JOYTR = val; |
| @@ -36,3 +51,10 @@ void sendU32(u32 val) | |||
| 36 | { | 51 | { |
| 37 | REG_JOYTR = val; | 52 | REG_JOYTR = val; |
| 38 | } | 53 | } |
| 54 | |||
| 55 | void directSendU32(u32 val) | ||
| 56 | { | ||
| 57 | REG_JOYTR = val; | ||
| 58 | while ((REG_HS_CTRL & JOY_READ) == 0); | ||
| 59 | REG_HS_CTRL |= JOY_RW; | ||
| 60 | } | ||
