OXYGENHUB
◆ main x16-emulator / src / i2c.h
902 B · Objective-C · last changed chore(): initial commit 15 days ago source blame history raw
1
// Commander X16 Emulator
2
// Copyright (c) 2021 Michael Steil
3
// All rights reserved. License: 2-clause BSD
4
5
#ifndef _I2C_H_
6
#define _I2C_H_
7
8
#include <stdint.h>
9
10
#define I2C_DATA_MASK 1
11
#define I2C_CLK_MASK 2
12
13
typedef struct {
14
	int clk_in;
15
	int data_in;
16
	int data_out;
17
} i2c_port_t;
18
19
extern i2c_port_t i2c_port;
20
21
void i2c_reset_state();
22
void i2c_step();
23
24
void i2c_kbd_buffer_add(uint8_t value);
25
uint8_t i2c_kbd_buffer_next();
26
void i2c_kbd_buffer_flush();
27
28
void i2c_mse_buffer_add(uint8_t value);
29
uint8_t i2c_mse_buffer_next();
30
void i2c_mse_buffer_flush();
31
uint8_t i2c_mse_buffer_count();
32
33
// fake mouse
34
void mouse_button_down(int num);
35
void mouse_button_up(int num);
36
uint8_t mouse_get_buttons(void);
37
void mouse_move(int x, int y);
38
uint8_t mouse_read(uint8_t reg);
39
void mouse_send_state(void);
40
void mouse_set_wheel(int8_t y);
41
uint8_t mouse_get_device_id();
42
void mouse_set_device_id(uint8_t d);
43
44
#endif