Merge commit '4d116a04e94cf0d19317d5b44e4fa9f34a3e5594'
This commit is contained in:
		| @@ -60,6 +60,7 @@ static inline void place_bit1(void); | ||||
| static inline void send_byte(uint8_t data); | ||||
| static inline uint16_t wait_data_lo(uint16_t us); | ||||
| static inline uint16_t wait_data_hi(uint16_t us); | ||||
| static inline uint16_t adb_host_dev_recv(uint8_t device); | ||||
|  | ||||
|  | ||||
| void adb_host_init(void) | ||||
| @@ -121,12 +122,33 @@ bool adb_host_psw(void) | ||||
| // | ||||
| // [from Apple IIgs Hardware Reference Second Edition] | ||||
|  | ||||
| enum { | ||||
|     ADDR_KEYB  = 0x20, | ||||
|     ADDR_MOUSE = 0x30 | ||||
| }; | ||||
|  | ||||
| uint16_t adb_host_kbd_recv(void) | ||||
| { | ||||
|     return adb_host_dev_recv(ADDR_KEYB); | ||||
| } | ||||
|  | ||||
| #ifdef ADB_MOUSE_ENABLE | ||||
| void adb_mouse_init(void) { | ||||
| 	    return; | ||||
| } | ||||
|  | ||||
| uint16_t adb_host_mouse_recv(void) | ||||
| { | ||||
|     return adb_host_dev_recv(ADDR_MOUSE); | ||||
| } | ||||
| #endif | ||||
|  | ||||
| static inline uint16_t adb_host_dev_recv(uint8_t device) | ||||
| { | ||||
|     uint16_t data = 0; | ||||
|     cli(); | ||||
|     attention(); | ||||
|     send_byte(0x2C);            // Addr:Keyboard(0010), Cmd:Talk(11), Register0(00) | ||||
|     send_byte(device|0x0C);     // Addr:Keyboard(0010)/Mouse(0011), Cmd:Talk(11), Register0(00) | ||||
|     place_bit0();               // Stopbit(0) | ||||
|     if (!wait_data_hi(500)) {    // Service Request(310us Adjustable Keyboard): just ignored | ||||
|         sei(); | ||||
|   | ||||
| @@ -56,7 +56,11 @@ POSSIBILITY OF SUCH DAMAGE. | ||||
| void     adb_host_init(void); | ||||
| bool     adb_host_psw(void); | ||||
| uint16_t adb_host_kbd_recv(void); | ||||
| uint16_t adb_host_mouse_recv(void); | ||||
| void     adb_host_listen(uint8_t cmd, uint8_t data_h, uint8_t data_l); | ||||
| void     adb_host_kbd_led(uint8_t led); | ||||
| void     adb_mouse_task(void); | ||||
| void     adb_mouse_init(void); | ||||
|  | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -11,6 +11,10 @@ ifdef MOUSEKEY_ENABLE | ||||
|     SRC += $(PJRC_DIR)/usb_mouse.c | ||||
| endif | ||||
|  | ||||
| ifdef ADB_MOUSE_ENABLE | ||||
|     SRC += $(PJRC_DIR)/usb_mouse.c | ||||
| endif | ||||
|  | ||||
| ifdef PS2_MOUSE_ENABLE | ||||
|     SRC += $(PJRC_DIR)/usb_mouse.c | ||||
| endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user