libww libww
WWitch compatibility library for the Wonderful toolchain
Loading...
Searching...
No Matches
key.h
Go to the documentation of this file.
1#include <sys/types.h>
2
3#ifndef __LIBWW_SYS_KEY_H__
4#define __LIBWW_SYS_KEY_H__
5
6/* Begin auto-generated section */
7
8/* Key masks */
9#define KEY_Y4 0x0800
10#define KEY_Y3 0x0400
11#define KEY_Y2 0x0200
12#define KEY_Y1 0x0100
13#define KEY_X4 0x0080
14#define KEY_X3 0x0040
15#define KEY_X2 0x0020
16#define KEY_X1 0x0010
17#define KEY_B 0x0008
18#define KEY_A 0x0004
19#define KEY_START 0x0002
20
21#define KEY_UP1 KEY_X1
22#define KEY_RIGHT1 KEY_X2
23#define KEY_DOWN1 KEY_X3
24#define KEY_LEFT1 KEY_X4
25#define KEY_UP2 KEY_Y1
26#define KEY_RIGHT2 KEY_Y2
27#define KEY_DOWN2 KEY_Y3
28#define KEY_LEFT2 KEY_Y4
29
34static inline uint16_t key_press_check(void) {
35 uint16_t result;
36 __asm volatile (
37 "int $0x11"
38 : "=a" (result)
39 : "Rah" ((uint8_t) 0x00)
40 : "cc", "memory"
41 );
42 return result;
43}
44
49static inline uint16_t key_hit_check(void) {
50 uint16_t result;
51 __asm volatile (
52 "int $0x11"
53 : "=a" (result)
54 : "Rah" ((uint8_t) 0x01)
55 : "cc", "memory"
56 );
57 return result;
58}
59
64static inline uint16_t key_wait(void) {
65 uint16_t result;
66 __asm volatile (
67 "int $0x11"
68 : "=a" (result)
69 : "Rah" ((uint8_t) 0x02)
70 : "cc", "memory"
71 );
72 return result;
73}
74
75static inline void key_set_repeat(uint8_t delay, uint8_t rate) {
76 uint16_t result;
77 __asm volatile (
78 "int $0x11"
79 : "=a" (result)
80 : "b" (((rate << 8) | delay)), "Rah" ((uint8_t) 0x03)
81 : "cc", "memory"
82 );
83}
84
85static inline uint16_t key_get_repeat(void) {
86 uint16_t result;
87 __asm volatile (
88 "int $0x11"
89 : "=a" (result)
90 : "Rah" ((uint8_t) 0x04)
91 : "cc", "memory"
92 );
93 return result;
94}
95
100static inline uint16_t key_hit_check_with_repeat(void) {
101 uint16_t result;
102 __asm volatile (
103 "int $0x11"
104 : "=a" (result)
105 : "Rah" ((uint8_t) 0x05)
106 : "cc", "memory"
107 );
108 return result;
109}
110
111/* End auto-generated section */
112
113
114#endif /* __LIBWW_SYS_KEY_H__ */
static uint16_t key_get_repeat(void)
Definition key.h:85
static uint16_t key_hit_check_with_repeat(void)
Definition key.h:100
static void key_set_repeat(uint8_t delay, uint8_t rate)
Definition key.h:75
static uint16_t key_wait(void)
Definition key.h:64
static uint16_t key_press_check(void)
Definition key.h:34
static uint16_t key_hit_check(void)
Definition key.h:49